Sabtu 23 November 2019
This commit is contained in:
parent
fb35b2f5fb
commit
a28b0eea95
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
node_modules
|
221
Application/Assets/metaforums.css
Normal file
221
Application/Assets/metaforums.css
Normal file
@ -0,0 +1,221 @@
|
|||||||
|
@tailwind base;
|
||||||
|
|
||||||
|
|
||||||
|
html {
|
||||||
|
@apply min-h-screen;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
@apply min-h-screen;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-group {
|
||||||
|
@apply py-2;
|
||||||
|
}
|
||||||
|
.input-group label {
|
||||||
|
@apply text-lg;
|
||||||
|
}
|
||||||
|
input[type=text], input[type=password] {
|
||||||
|
@apply border-gray-500 border px-2 py-2 rounded w-full bg-white;
|
||||||
|
}
|
||||||
|
select {
|
||||||
|
@apply border-gray-500 border px-2 py-2 rounded bg-white text-yuika-blue-500 appearance-none;
|
||||||
|
}
|
||||||
|
textarea {
|
||||||
|
@apply border-gray-500 border px-2 py-2 rounded w-full bg-white;
|
||||||
|
}
|
||||||
|
button {
|
||||||
|
@apply rounded px-2 py-2 text-white bg-yuika-blue-500;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
@apply text-4xl;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
@apply text-3xl;
|
||||||
|
}
|
||||||
|
h3 {
|
||||||
|
@apply text-2xl;
|
||||||
|
}
|
||||||
|
h4 {
|
||||||
|
@apply text-xl;
|
||||||
|
}
|
||||||
|
h5 {
|
||||||
|
@apply text-lg;
|
||||||
|
}
|
||||||
|
h6 {
|
||||||
|
@apply text-base;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
@apply my-4;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
@apply bg-gray-200 border border-gray-500 py-1 px-2 text-yuika-blue-700;
|
||||||
|
}
|
||||||
|
|
||||||
|
dt {
|
||||||
|
@apply float-left mr-4 text-lg text-yuika-blue-700;
|
||||||
|
}
|
||||||
|
dd {
|
||||||
|
@apply text-base text-gray-700;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol {
|
||||||
|
@apply list-decimal;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
@apply list-disc;
|
||||||
|
}
|
||||||
|
|
||||||
|
td, th {
|
||||||
|
@apply border border-gray-500 py-2 px-2;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
@apply bg-gray-200 text-yuika-blue-700;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
@apply bg-gray-200 py-2 px-2 border-gray-500;
|
||||||
|
}
|
||||||
|
pre code {
|
||||||
|
@apply border-none;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
@apply block pl-8 border-l-4 border-yuika-blue-500 my-2;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
@apply text-yuika-blue-500;
|
||||||
|
}
|
||||||
|
|
||||||
|
header {
|
||||||
|
@apply h-16 w-full z-10 flex flex-row justify-start items-center px-4 text-white text-lg bg-yuika-blue-500;
|
||||||
|
min-height: 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-link {
|
||||||
|
@apply px-2 text-white;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
@apply h-16 w-full z-10 flex flex-row justify-start items-center px-4 text-white text-lg bg-yuika-blue-500;
|
||||||
|
min-height: 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
main {
|
||||||
|
@apply mx-auto w-full py-4 px-4;
|
||||||
|
min-height: calc(100vh - 8rem);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.header-middle {
|
||||||
|
@apply flex-grow;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-title {
|
||||||
|
@apply text-4xl text-center mb-4;
|
||||||
|
}
|
||||||
|
|
||||||
|
#forumbrowser {
|
||||||
|
@apply flex flex-row justify-start items-start;
|
||||||
|
}
|
||||||
|
.forumbrowser-left {
|
||||||
|
@apply flex flex-col mx-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.forumbrowser-item {
|
||||||
|
@apply px-2 border-r-2 border-white text-yuika-blue-500 cursor-pointer flex flex-col justify-center items-end h-8 transition-colors;
|
||||||
|
}
|
||||||
|
.forumbrowser-item.selected {
|
||||||
|
@apply border-yuika-blue-500 bg-yuika-blue-100 transition-colors;
|
||||||
|
}
|
||||||
|
.forumbrowser-item:hover {
|
||||||
|
@apply bg-yuika-blue-100 transition-colors;
|
||||||
|
}
|
||||||
|
|
||||||
|
.forumbrowser-right-table {
|
||||||
|
@apply flex flex-col flex-grow;
|
||||||
|
}
|
||||||
|
.forumbrowser-right {
|
||||||
|
@apply text-left py-2 px-1 flex flex-row h-8 border-white border-l-2 text-yuika-blue-500 cursor-pointer transition-colors;
|
||||||
|
}
|
||||||
|
.forumbrowser-right.selected {
|
||||||
|
@apply border-yuika-blue-500 bg-yuika-blue-100 transition-colors;
|
||||||
|
}
|
||||||
|
.forumbrowser-right:hover {
|
||||||
|
@apply bg-yuika-blue-100 transition-colors;
|
||||||
|
}
|
||||||
|
.forumbrowser-right-col {
|
||||||
|
@apply px-2 flex flex-col justify-center items-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.forum-post {
|
||||||
|
@apply border my-4 border-yuika-blue-500;
|
||||||
|
}
|
||||||
|
.forum-post-title {
|
||||||
|
@apply h-12 w-full text-white py-2 px-2 flex flex-row justify-start items-center flex flex-row bg-yuika-blue-500;
|
||||||
|
}
|
||||||
|
.forum-post-content {
|
||||||
|
@apply flex flex-row py-2 px-2;
|
||||||
|
min-height: 200px;
|
||||||
|
}
|
||||||
|
.forum-post-user {
|
||||||
|
@apply w-1/6 py-2 px-4 flex flex-col;
|
||||||
|
}
|
||||||
|
.forum-post-user-detail {
|
||||||
|
@apply flex flex-col justify-center;
|
||||||
|
}
|
||||||
|
.forum-post-user-detail img{
|
||||||
|
@apply rounded-full w-full;
|
||||||
|
}
|
||||||
|
.forum-post-text {
|
||||||
|
@apply w-5/6 py-2 px-2;
|
||||||
|
}
|
||||||
|
.forum-post-profile {
|
||||||
|
@apply w-5/6 py-2 px-2 flex flex-col;
|
||||||
|
}
|
||||||
|
.forum-post-profile-detail {
|
||||||
|
@apply flex flex-row;
|
||||||
|
}
|
||||||
|
.forum-post-profile-about {
|
||||||
|
min-height: 100px;
|
||||||
|
}
|
||||||
|
.forum-post-footer {
|
||||||
|
@apply h-12 w-full py-2 flex flex-row justify-start items-center;
|
||||||
|
}
|
||||||
|
.forum-post-footer-left {
|
||||||
|
@apply px-2;
|
||||||
|
}
|
||||||
|
.forum-post-footer-mid {
|
||||||
|
@apply flex-grow px-2;
|
||||||
|
}
|
||||||
|
.forum-post-footer-right {
|
||||||
|
@apply px-2;
|
||||||
|
}
|
||||||
|
.forum-post-footer-action {
|
||||||
|
@apply px-4 cursor-pointer border-b-2 border-white py-2;
|
||||||
|
}
|
||||||
|
.forum-post-footer-action:hover {
|
||||||
|
@apply bg-gray-200 border-yuika-blue-500 transition-colors;
|
||||||
|
}
|
||||||
|
.forum-post-footer-action.danger:hover{
|
||||||
|
@apply bg-red-200 border-red-500 text-red-700 transition-colors;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lock-message {
|
||||||
|
@apply bg-red-200 py-4 px-4 border-red-500 border my-2 mx-2;
|
||||||
|
}
|
||||||
|
|
||||||
|
#forumbrowser {
|
||||||
|
@apply flex flex-row my-4;
|
||||||
|
}
|
||||||
|
#editor-poster {
|
||||||
|
@apply h-full;
|
||||||
|
}
|
||||||
|
@tailwind components;
|
||||||
|
|
||||||
|
@tailwind utilities;
|
||||||
|
|
@ -28,4 +28,10 @@ class Post extends DBModel {
|
|||||||
$id = Thread::find($this->thread_id)->main_post->id;
|
$id = Thread::find($this->thread_id)->main_post->id;
|
||||||
return ($id == $this->id);
|
return ($id == $this->id);
|
||||||
}
|
}
|
||||||
|
public function is_favorited() {
|
||||||
|
$query = new QueryBuilder();
|
||||||
|
$query = $query->where('user_id',ServiceContainer::Authentication()->user()->id)->where('post_id',$this->id);
|
||||||
|
$is_fav = UserFavorite::selectOne($query);
|
||||||
|
return isset($is_fav);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -28,7 +28,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="forum-post-footer-mid">
|
<div class="forum-post-footer-mid">
|
||||||
<select name="duration">
|
<select name="duration">
|
||||||
|
<option value="+ 1 hour">1 hours</option>
|
||||||
<option value="+ 6 hour">6 hours</option>
|
<option value="+ 6 hour">6 hours</option>
|
||||||
|
<option value="+ 24 hour">24 hours</option>
|
||||||
|
<option value="+ 72 hour">3 days</option>
|
||||||
|
<option value="+ 7 day">1 week</option>
|
||||||
|
<option value="+ 30 day">1 month</option>
|
||||||
<option value="2099-12-31 23:59">indefinitely</option>
|
<option value="2099-12-31 23:59">indefinitely</option>
|
||||||
</select>
|
</select>
|
||||||
<select name="action">
|
<select name="action">
|
||||||
|
@ -63,16 +63,16 @@ This thread has been locked for <?php echo $thread->lock()->duration ?>. See the
|
|||||||
<?php if($post->user_id == $auth->user()->id) { ?>
|
<?php if($post->user_id == $auth->user()->id) { ?>
|
||||||
<a class="forum-post-footer-action" @click="reply(<?php echo $post->id ?>)">Reply</a>
|
<a class="forum-post-footer-action" @click="reply(<?php echo $post->id ?>)">Reply</a>
|
||||||
<a class="forum-post-footer-action" @click="edit(<?php echo $post->id ?>)">Edit</a>
|
<a class="forum-post-footer-action" @click="edit(<?php echo $post->id ?>)">Edit</a>
|
||||||
<a class="forum-post-footer-action" @click="delete_post(<?php echo $post->id ?>)">Delete</a>
|
<a class="forum-post-footer-action danger" @click="delete_post(<?php echo $post->id ?>)">Delete</a>
|
||||||
<?php } else { ?>
|
<?php } else { ?>
|
||||||
<a class="forum-post-footer-action" @click="favorite(<?php echo $post->id ?>)">Favorite</a>
|
<a class="forum-post-footer-action" @click="favorite(<?php echo $post->id ?>)"><?php echo $post->is_favorited() ? 'Unfavorite' : 'Favorite' ?></a>
|
||||||
<a class="forum-post-footer-action" @click="reply(<?php echo $post->id ?>)">Reply</a>
|
<a class="forum-post-footer-action" @click="reply(<?php echo $post->id ?>)">Reply</a>
|
||||||
<?php if(!$auth->user()->didIModerateThis($thread->category()->id) && $auth->user()->is_confirmed ) { ?>
|
<?php if(!$auth->user()->didIModerateThis($thread->category()->id) && $auth->user()->is_confirmed ) { ?>
|
||||||
<a class="forum-post-footer-action" @click="report(<?php echo $post->id ?>)">Report Abuse</a>
|
<a class="forum-post-footer-action danger" @click="report(<?php echo $post->id ?>)">Report Abuse</a>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<?php if($auth->user()->didIModerateThis($thread->category()->id) || $auth->user()->is_admin ) { ?>
|
<?php if($auth->user()->didIModerateThis($thread->category()->id) || $auth->user()->is_admin ) { ?>
|
||||||
<a class="forum-post-footer-action" @click="moderate(<?php echo $post->id ?>)">Moderate</a>
|
<a class="forum-post-footer-action danger" @click="moderate(<?php echo $post->id ?>)">Moderate</a>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
</div>
|
</div>
|
||||||
|
43
README.md
43
README.md
@ -1,13 +1,13 @@
|
|||||||
# Metaforums
|
# Metaforums
|
||||||
An online web-based discussion forum application
|
An online web-based discussion forum application
|
||||||
|
|
||||||
|
|
||||||
## How to set up
|
## How to set up
|
||||||
|
|
||||||
1. Make sure mod_rewrite is enabled on Apache.
|
1. Make sure mod_rewrite is enabled on Apache.
|
||||||
2. Create a MySQL / MariaDB database, and import Metaforums' schema (`schema.sql`) into the database.
|
2. Create a MySQL / MariaDB database, and import Metaforums' schema (`schema.sql`) into the database.
|
||||||
3. Modify backend/config.php and adjust the configuration as needed.
|
3. Modify config.php and adjust the configuration as needed.
|
||||||
4. Point the browser to `localhost`
|
4. Put all project files in the DocumentRoot (this application cannot be in a subfolder)
|
||||||
|
5. Point the browser to `localhost` or wherever the application is located.
|
||||||
|
|
||||||
## Sample database data
|
## Sample database data
|
||||||
|
|
||||||
@ -40,11 +40,20 @@ An online web-based discussion forum application
|
|||||||
|
|
||||||
### Post sources
|
### Post sources
|
||||||
|
|
||||||
|
"A Full Style Test" is courtesy of [Ghost's demo blog](https://demo.ghost.io/style-test/), used to test styling.
|
||||||
|
|
||||||
|
|
||||||
## Project Structure
|
## Project Structure
|
||||||
|
|
||||||
- index.php
|
- index.php
|
||||||
The main handler of backend functions. Handles routing, loading of Application services, and response handling.
|
The main handler of backend functions. Handles routing, loading of Application services, and response handling.
|
||||||
|
- autoload.php
|
||||||
|
Autoload is a PHP OOP feature that allows automatic loading of classes using the use keyword. This file provides
|
||||||
|
a simple autoloading function.
|
||||||
|
- routes.php
|
||||||
|
This files lists all routes used by the application
|
||||||
|
- config.php
|
||||||
|
This file contains application configuration.
|
||||||
- Application/
|
- Application/
|
||||||
Application contains classes that are the core of the application itself
|
Application contains classes that are the core of the application itself
|
||||||
- Assets/
|
- Assets/
|
||||||
@ -53,14 +62,24 @@ An online web-based discussion forum application
|
|||||||
Controllers contain controllers that return HTTP responses
|
Controllers contain controllers that return HTTP responses
|
||||||
- Foundations/
|
- Foundations/
|
||||||
Foundations are helper classes for various functions, such as an SQL query builder, and base model implementation;
|
Foundations are helper classes for various functions, such as an SQL query builder, and base model implementation;
|
||||||
|
- DateHelper
|
||||||
|
Contains date facilities.
|
||||||
|
- MailBuilder
|
||||||
|
Contains a mail composing class.
|
||||||
|
- Model
|
||||||
|
The base model implementation. Contains common code for all models.
|
||||||
- SQLHelper
|
- SQLHelper
|
||||||
Contains SQL escaping facilities.
|
Contains SQL escaping facilities.
|
||||||
- QueryBuilder
|
- QueryBuilder
|
||||||
The SQL query builder.
|
The SQL query builder.
|
||||||
- Model
|
|
||||||
The base model implementation. Contains common code for all models.
|
|
||||||
- HTTP
|
- HTTP
|
||||||
HTTP contains a number of abstractions for HTTP, such as Request class.
|
HTTP contains a number of abstractions for HTTP, such as Request class.
|
||||||
|
- Request
|
||||||
|
Abstracts away PHP request parameters.
|
||||||
|
- Response
|
||||||
|
Abstracts away responses, including status code, views, and JSON data.
|
||||||
|
- File
|
||||||
|
Handles uploaded files
|
||||||
- Models/
|
- Models/
|
||||||
Models contain database models.
|
Models contain database models.
|
||||||
- Services/
|
- Services/
|
||||||
@ -81,6 +100,8 @@ An online web-based discussion forum application
|
|||||||
Provides view rendering facilities
|
Provides view rendering facilities
|
||||||
- Static/
|
- Static/
|
||||||
Static contains static files served directly by the application. For example, this contains built CSS.
|
Static contains static files served directly by the application. For example, this contains built CSS.
|
||||||
|
- Storage/
|
||||||
|
This is where application storage are saved.
|
||||||
- Views/
|
- Views/
|
||||||
Views contains all views used by the application
|
Views contains all views used by the application
|
||||||
|
|
||||||
@ -102,6 +123,18 @@ Here, jQuery is mainly used for its AJAX functionality.
|
|||||||
|
|
||||||
[Project Website](https://jquery.com)
|
[Project Website](https://jquery.com)
|
||||||
|
|
||||||
|
### TinyMCE
|
||||||
|
|
||||||
|
TinyMCE is a JavaScrip text editor.
|
||||||
|
|
||||||
|
[Project Website](https://www.tiny.cloud)
|
||||||
|
|
||||||
|
### tailwindcss-transitions
|
||||||
|
|
||||||
|
Tailwind CSS plugin to generate transition utilities
|
||||||
|
|
||||||
|
[Project Website](https://github.com/benface/tailwindcss-transitions)
|
||||||
|
|
||||||
## CSS Frameworks and Styles used
|
## CSS Frameworks and Styles used
|
||||||
|
|
||||||
### Tailwind
|
### Tailwind
|
||||||
|
2
build_css.sh
Executable file
2
build_css.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
npx tailwind build Application/Assets/metaforums.css -o Application/Static/css/metaforums.css
|
6
package.json
Normal file
6
package.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"dependencies": {
|
||||||
|
"tailwindcss": "^1.1.3",
|
||||||
|
"tailwindcss-transitions": "^2.1.0"
|
||||||
|
}
|
||||||
|
}
|
157
schema.sql
Normal file
157
schema.sql
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
-- Adminer 4.7.5 MySQL dump
|
||||||
|
|
||||||
|
SET NAMES utf8;
|
||||||
|
SET time_zone = '+00:00';
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE `category` (
|
||||||
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`group_id` int(11) NOT NULL,
|
||||||
|
`category_name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `group_id` (`group_id`),
|
||||||
|
CONSTRAINT `category_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `group` (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE `group` (
|
||||||
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`group_name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE `moderatorcategory` (
|
||||||
|
`user_id` int(11) NOT NULL,
|
||||||
|
`category_id` int(11) NOT NULL,
|
||||||
|
PRIMARY KEY (`user_id`,`category_id`),
|
||||||
|
KEY `category_id` (`category_id`),
|
||||||
|
CONSTRAINT `moderatorcategory_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`),
|
||||||
|
CONSTRAINT `moderatorcategory_ibfk_2` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE `post` (
|
||||||
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`thread_id` int(11) DEFAULT NULL,
|
||||||
|
`user_id` int(11) NOT NULL,
|
||||||
|
`title` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`post` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`created_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE current_timestamp(),
|
||||||
|
`updated_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE current_timestamp(),
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `thread_id` (`thread_id`),
|
||||||
|
KEY `user_id` (`user_id`),
|
||||||
|
CONSTRAINT `post_ibfk_1` FOREIGN KEY (`thread_id`) REFERENCES `thread` (`id`),
|
||||||
|
CONSTRAINT `post_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE `thread` (
|
||||||
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`category_id` int(11) NOT NULL,
|
||||||
|
`title` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`author` int(11) NOT NULL,
|
||||||
|
`view_count` int(11) NOT NULL DEFAULT 0,
|
||||||
|
`lock_moderator` int(11) DEFAULT NULL,
|
||||||
|
`created_at` datetime DEFAULT NULL,
|
||||||
|
`updated_at` datetime DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `author` (`author`),
|
||||||
|
KEY `category_id` (`category_id`),
|
||||||
|
KEY `lock_moderator` (`lock_moderator`),
|
||||||
|
CONSTRAINT `thread_ibfk_1` FOREIGN KEY (`author`) REFERENCES `user` (`id`),
|
||||||
|
CONSTRAINT `thread_ibfk_2` FOREIGN KEY (`lock_moderator`) REFERENCES `user` (`id`),
|
||||||
|
CONSTRAINT `thread_ibfk_3` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`),
|
||||||
|
CONSTRAINT `thread_ibfk_4` FOREIGN KEY (`lock_moderator`) REFERENCES `user` (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE `user` (
|
||||||
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`username` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`about` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`email` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`email_visible` tinyint(1) NOT NULL,
|
||||||
|
`avatar_path` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`password` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
|
||||||
|
`role` int(11) NOT NULL,
|
||||||
|
`is_confirmed` tinyint(1) NOT NULL,
|
||||||
|
`is_deactivated` tinyint(1) NOT NULL DEFAULT 0,
|
||||||
|
`last_login` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE current_timestamp(),
|
||||||
|
`logged_in` tinyint(1) NOT NULL DEFAULT 0,
|
||||||
|
`created_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE current_timestamp(),
|
||||||
|
`updated_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE current_timestamp(),
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE `useraction` (
|
||||||
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`user_id` int(11) DEFAULT NULL,
|
||||||
|
`category_id` int(11) DEFAULT NULL,
|
||||||
|
`thread_id` int(11) DEFAULT NULL,
|
||||||
|
`action_type` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`reason` varchar(300) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`action_at` datetime NOT NULL,
|
||||||
|
`expired_at` datetime NOT NULL,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `user_id` (`user_id`),
|
||||||
|
KEY `category_id` (`category_id`),
|
||||||
|
KEY `thread_id` (`thread_id`),
|
||||||
|
CONSTRAINT `useraction_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`),
|
||||||
|
CONSTRAINT `useraction_ibfk_2` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`),
|
||||||
|
CONSTRAINT `useraction_ibfk_3` FOREIGN KEY (`thread_id`) REFERENCES `thread` (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE `userchange` (
|
||||||
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`user_id` int(11) NOT NULL,
|
||||||
|
`action_type` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`confirm_key` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`data` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`best_before` datetime NOT NULL,
|
||||||
|
`is_confirmed` tinyint(1) NOT NULL DEFAULT 0,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `user_id` (`user_id`),
|
||||||
|
KEY `confirm_key` (`confirm_key`),
|
||||||
|
CONSTRAINT `userchange_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE `userconfirmation` (
|
||||||
|
`confirm_key` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`user_id` int(11) NOT NULL,
|
||||||
|
`best_before` datetime NOT NULL,
|
||||||
|
PRIMARY KEY (`confirm_key`),
|
||||||
|
KEY `user_id` (`user_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE `userfavorite` (
|
||||||
|
`post_id` int(11) NOT NULL,
|
||||||
|
`user_id` int(11) NOT NULL,
|
||||||
|
KEY `post_id` (`post_id`),
|
||||||
|
KEY `user_id` (`user_id`),
|
||||||
|
CONSTRAINT `userfavorite_ibfk_1` FOREIGN KEY (`post_id`) REFERENCES `post` (`id`),
|
||||||
|
CONSTRAINT `userfavorite_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE `userreport` (
|
||||||
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`user_id` int(11) NOT NULL,
|
||||||
|
`post_id` int(11) NOT NULL,
|
||||||
|
`reason` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`report_date` datetime NOT NULL,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `user_id` (`user_id`),
|
||||||
|
KEY `post_id` (`post_id`),
|
||||||
|
CONSTRAINT `userreport_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`),
|
||||||
|
CONSTRAINT `userreport_ibfk_2` FOREIGN KEY (`post_id`) REFERENCES `post` (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
|
||||||
|
-- 2019-11-20 20:22:32
|
33
tailwind.config.js
Normal file
33
tailwind.config.js
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
module.exports = {
|
||||||
|
theme: {
|
||||||
|
transitionProperty: {
|
||||||
|
'none': 'none',
|
||||||
|
'all': 'all',
|
||||||
|
'color': 'color',
|
||||||
|
'bg': 'background-color',
|
||||||
|
'border': 'border-color',
|
||||||
|
'colors': ['color', 'background-color', 'border-color'],
|
||||||
|
'opacity': 'opacity',
|
||||||
|
'transform': 'transform',
|
||||||
|
},
|
||||||
|
extend: {
|
||||||
|
colors: {
|
||||||
|
'yuika-blue': {
|
||||||
|
'100': '#C6E7F8',
|
||||||
|
'200': '#9FD3F0',
|
||||||
|
'300': '#7BBEE5',
|
||||||
|
'400': '#5AA7D7',
|
||||||
|
'500': '#3B90C6',
|
||||||
|
'600': '#2E72AA',
|
||||||
|
'700': '#22558C',
|
||||||
|
'800': '#173B6C',
|
||||||
|
'900': '#0E254C',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
variants: {},
|
||||||
|
plugins: [
|
||||||
|
require('tailwindcss-transitions')(),
|
||||||
|
],
|
||||||
|
}
|
372
yarn.lock
Normal file
372
yarn.lock
Normal file
@ -0,0 +1,372 @@
|
|||||||
|
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||||
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
||||||
|
ansi-styles@^3.2.1:
|
||||||
|
version "3.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
|
||||||
|
integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
|
||||||
|
dependencies:
|
||||||
|
color-convert "^1.9.0"
|
||||||
|
|
||||||
|
autoprefixer@^9.4.5:
|
||||||
|
version "9.7.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.2.tgz#26cf729fbb709323b40171a874304884dcceffed"
|
||||||
|
integrity sha512-LCAfcdej1182uVvPOZnytbq61AhnOZ/4JelDaJGDeNwewyU1AMaNthcHsyz1NRjTmd2FkurMckLWfkHg3Z//KA==
|
||||||
|
dependencies:
|
||||||
|
browserslist "^4.7.3"
|
||||||
|
caniuse-lite "^1.0.30001010"
|
||||||
|
chalk "^2.4.2"
|
||||||
|
normalize-range "^0.1.2"
|
||||||
|
num2fraction "^1.2.2"
|
||||||
|
postcss "^7.0.23"
|
||||||
|
postcss-value-parser "^4.0.2"
|
||||||
|
|
||||||
|
balanced-match@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
||||||
|
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
||||||
|
|
||||||
|
brace-expansion@^1.1.7:
|
||||||
|
version "1.1.11"
|
||||||
|
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
||||||
|
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
|
||||||
|
dependencies:
|
||||||
|
balanced-match "^1.0.0"
|
||||||
|
concat-map "0.0.1"
|
||||||
|
|
||||||
|
browserslist@^4.7.3:
|
||||||
|
version "4.7.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.3.tgz#02341f162b6bcc1e1028e30624815d4924442dc3"
|
||||||
|
integrity sha512-jWvmhqYpx+9EZm/FxcZSbUZyDEvDTLDi3nSAKbzEkyWvtI0mNSmUosey+5awDW1RUlrgXbQb5A6qY1xQH9U6MQ==
|
||||||
|
dependencies:
|
||||||
|
caniuse-lite "^1.0.30001010"
|
||||||
|
electron-to-chromium "^1.3.306"
|
||||||
|
node-releases "^1.1.40"
|
||||||
|
|
||||||
|
bytes@^3.0.0:
|
||||||
|
version "3.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
|
||||||
|
integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
|
||||||
|
|
||||||
|
camelcase-css@^2.0.1:
|
||||||
|
version "2.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
|
||||||
|
integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
|
||||||
|
|
||||||
|
caniuse-lite@^1.0.30001010:
|
||||||
|
version "1.0.30001011"
|
||||||
|
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001011.tgz#0d6c4549c78c4a800bb043a83ca0cbe0aee6c6e1"
|
||||||
|
integrity sha512-h+Eqyn/YA6o6ZTqpS86PyRmNWOs1r54EBDcd2NTwwfsXQ8re1B38SnB+p2RKF8OUsyEIjeDU8XGec1RGO/wYCg==
|
||||||
|
|
||||||
|
chalk@^2.4.1, chalk@^2.4.2:
|
||||||
|
version "2.4.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
||||||
|
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
|
||||||
|
dependencies:
|
||||||
|
ansi-styles "^3.2.1"
|
||||||
|
escape-string-regexp "^1.0.5"
|
||||||
|
supports-color "^5.3.0"
|
||||||
|
|
||||||
|
color-convert@^1.9.0:
|
||||||
|
version "1.9.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
|
||||||
|
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
|
||||||
|
dependencies:
|
||||||
|
color-name "1.1.3"
|
||||||
|
|
||||||
|
color-name@1.1.3:
|
||||||
|
version "1.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
|
||||||
|
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
|
||||||
|
|
||||||
|
concat-map@0.0.1:
|
||||||
|
version "0.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||||
|
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
|
||||||
|
|
||||||
|
css-unit-converter@^1.1.1:
|
||||||
|
version "1.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996"
|
||||||
|
integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=
|
||||||
|
|
||||||
|
cssesc@^3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
|
||||||
|
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
|
||||||
|
|
||||||
|
electron-to-chromium@^1.3.306:
|
||||||
|
version "1.3.311"
|
||||||
|
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.311.tgz#73baa361e2b1f44b7b4f1a443aaa1372f8074ebb"
|
||||||
|
integrity sha512-7GH6RKCzziLzJ9ejmbiBEdzHZsc6C3eRpav14dmRfTWMpNgMqpP1ukw/FU/Le2fR+ep642naq7a23xNdmh2s+A==
|
||||||
|
|
||||||
|
escape-string-regexp@^1.0.5:
|
||||||
|
version "1.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
||||||
|
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
|
||||||
|
|
||||||
|
fs-extra@^8.0.0:
|
||||||
|
version "8.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
|
||||||
|
integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
|
||||||
|
dependencies:
|
||||||
|
graceful-fs "^4.2.0"
|
||||||
|
jsonfile "^4.0.0"
|
||||||
|
universalify "^0.1.0"
|
||||||
|
|
||||||
|
fs.realpath@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
||||||
|
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
|
||||||
|
|
||||||
|
glob@^7.1.2:
|
||||||
|
version "7.1.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
|
||||||
|
integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
|
||||||
|
dependencies:
|
||||||
|
fs.realpath "^1.0.0"
|
||||||
|
inflight "^1.0.4"
|
||||||
|
inherits "2"
|
||||||
|
minimatch "^3.0.4"
|
||||||
|
once "^1.3.0"
|
||||||
|
path-is-absolute "^1.0.0"
|
||||||
|
|
||||||
|
graceful-fs@^4.1.6, graceful-fs@^4.2.0:
|
||||||
|
version "4.2.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
|
||||||
|
integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
|
||||||
|
|
||||||
|
has-flag@^3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
|
||||||
|
integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
|
||||||
|
|
||||||
|
indexes-of@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
|
||||||
|
integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
|
||||||
|
|
||||||
|
inflight@^1.0.4:
|
||||||
|
version "1.0.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
||||||
|
integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
|
||||||
|
dependencies:
|
||||||
|
once "^1.3.0"
|
||||||
|
wrappy "1"
|
||||||
|
|
||||||
|
inherits@2:
|
||||||
|
version "2.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
||||||
|
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
||||||
|
|
||||||
|
jsonfile@^4.0.0:
|
||||||
|
version "4.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
|
||||||
|
integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
|
||||||
|
optionalDependencies:
|
||||||
|
graceful-fs "^4.1.6"
|
||||||
|
|
||||||
|
lodash.toarray@^4.4.0:
|
||||||
|
version "4.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561"
|
||||||
|
integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE=
|
||||||
|
|
||||||
|
lodash@^4.17.11, lodash@^4.17.15:
|
||||||
|
version "4.17.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
|
||||||
|
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
|
||||||
|
|
||||||
|
minimatch@^3.0.4:
|
||||||
|
version "3.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
|
||||||
|
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
|
||||||
|
dependencies:
|
||||||
|
brace-expansion "^1.1.7"
|
||||||
|
|
||||||
|
node-emoji@^1.8.1:
|
||||||
|
version "1.10.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da"
|
||||||
|
integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==
|
||||||
|
dependencies:
|
||||||
|
lodash.toarray "^4.4.0"
|
||||||
|
|
||||||
|
node-releases@^1.1.40:
|
||||||
|
version "1.1.41"
|
||||||
|
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.41.tgz#57674a82a37f812d18e3b26118aefaf53a00afed"
|
||||||
|
integrity sha512-+IctMa7wIs8Cfsa8iYzeaLTFwv5Y4r5jZud+4AnfymzeEXKBCavFX0KBgzVaPVqf0ywa6PrO8/b+bPqdwjGBSg==
|
||||||
|
dependencies:
|
||||||
|
semver "^6.3.0"
|
||||||
|
|
||||||
|
normalize-range@^0.1.2:
|
||||||
|
version "0.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
|
||||||
|
integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
|
||||||
|
|
||||||
|
normalize.css@^8.0.1:
|
||||||
|
version "8.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3"
|
||||||
|
integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==
|
||||||
|
|
||||||
|
num2fraction@^1.2.2:
|
||||||
|
version "1.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
|
||||||
|
integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
|
||||||
|
|
||||||
|
object-assign@^4.1.1:
|
||||||
|
version "4.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
||||||
|
integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
|
||||||
|
|
||||||
|
once@^1.3.0:
|
||||||
|
version "1.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
||||||
|
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
||||||
|
dependencies:
|
||||||
|
wrappy "1"
|
||||||
|
|
||||||
|
path-is-absolute@^1.0.0:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||||
|
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
|
||||||
|
|
||||||
|
postcss-functions@^3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-3.0.0.tgz#0e94d01444700a481de20de4d55fb2640564250e"
|
||||||
|
integrity sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4=
|
||||||
|
dependencies:
|
||||||
|
glob "^7.1.2"
|
||||||
|
object-assign "^4.1.1"
|
||||||
|
postcss "^6.0.9"
|
||||||
|
postcss-value-parser "^3.3.0"
|
||||||
|
|
||||||
|
postcss-js@^2.0.0:
|
||||||
|
version "2.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-2.0.3.tgz#a96f0f23ff3d08cec7dc5b11bf11c5f8077cdab9"
|
||||||
|
integrity sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w==
|
||||||
|
dependencies:
|
||||||
|
camelcase-css "^2.0.1"
|
||||||
|
postcss "^7.0.18"
|
||||||
|
|
||||||
|
postcss-nested@^4.1.1:
|
||||||
|
version "4.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-4.2.1.tgz#4bc2e5b35e3b1e481ff81e23b700da7f82a8b248"
|
||||||
|
integrity sha512-AMayXX8tS0HCp4O4lolp4ygj9wBn32DJWXvG6gCv+ZvJrEa00GUxJcJEEzMh87BIe6FrWdYkpR2cuyqHKrxmXw==
|
||||||
|
dependencies:
|
||||||
|
postcss "^7.0.21"
|
||||||
|
postcss-selector-parser "^6.0.2"
|
||||||
|
|
||||||
|
postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2:
|
||||||
|
version "6.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c"
|
||||||
|
integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==
|
||||||
|
dependencies:
|
||||||
|
cssesc "^3.0.0"
|
||||||
|
indexes-of "^1.0.1"
|
||||||
|
uniq "^1.0.1"
|
||||||
|
|
||||||
|
postcss-value-parser@^3.3.0:
|
||||||
|
version "3.3.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
|
||||||
|
integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
|
||||||
|
|
||||||
|
postcss-value-parser@^4.0.2:
|
||||||
|
version "4.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9"
|
||||||
|
integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==
|
||||||
|
|
||||||
|
postcss@^6.0.9:
|
||||||
|
version "6.0.23"
|
||||||
|
resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
|
||||||
|
integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==
|
||||||
|
dependencies:
|
||||||
|
chalk "^2.4.1"
|
||||||
|
source-map "^0.6.1"
|
||||||
|
supports-color "^5.4.0"
|
||||||
|
|
||||||
|
postcss@^7.0.11, postcss@^7.0.18, postcss@^7.0.21, postcss@^7.0.23:
|
||||||
|
version "7.0.23"
|
||||||
|
resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.23.tgz#9f9759fad661b15964f3cfc3140f66f1e05eadc1"
|
||||||
|
integrity sha512-hOlMf3ouRIFXD+j2VJecwssTwbvsPGJVMzupptg+85WA+i7MwyrydmQAgY3R+m0Bc0exunhbJmijy8u8+vufuQ==
|
||||||
|
dependencies:
|
||||||
|
chalk "^2.4.2"
|
||||||
|
source-map "^0.6.1"
|
||||||
|
supports-color "^6.1.0"
|
||||||
|
|
||||||
|
pretty-hrtime@^1.0.3:
|
||||||
|
version "1.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
|
||||||
|
integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=
|
||||||
|
|
||||||
|
reduce-css-calc@^2.1.6:
|
||||||
|
version "2.1.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.7.tgz#1ace2e02c286d78abcd01fd92bfe8097ab0602c2"
|
||||||
|
integrity sha512-fDnlZ+AybAS3C7Q9xDq5y8A2z+lT63zLbynew/lur/IR24OQF5x98tfNwf79mzEdfywZ0a2wpM860FhFfMxZlA==
|
||||||
|
dependencies:
|
||||||
|
css-unit-converter "^1.1.1"
|
||||||
|
postcss-value-parser "^3.3.0"
|
||||||
|
|
||||||
|
semver@^6.3.0:
|
||||||
|
version "6.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
||||||
|
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
||||||
|
|
||||||
|
source-map@^0.6.1:
|
||||||
|
version "0.6.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
||||||
|
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
||||||
|
|
||||||
|
supports-color@^5.3.0, supports-color@^5.4.0:
|
||||||
|
version "5.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
|
||||||
|
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
|
||||||
|
dependencies:
|
||||||
|
has-flag "^3.0.0"
|
||||||
|
|
||||||
|
supports-color@^6.1.0:
|
||||||
|
version "6.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
|
||||||
|
integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
|
||||||
|
dependencies:
|
||||||
|
has-flag "^3.0.0"
|
||||||
|
|
||||||
|
tailwindcss-transitions@^2.1.0:
|
||||||
|
version "2.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/tailwindcss-transitions/-/tailwindcss-transitions-2.1.0.tgz#54ca6c293a197300c5eb1ab3775dc29f083432f1"
|
||||||
|
integrity sha512-WafCC+ujZk2rUECdBoFeF8lKTmrrpNudrHxSHNikYfaYyVR7BRRqpB2n49/wxzg8/YWy8OK42MvQnFuJBb2yxw==
|
||||||
|
dependencies:
|
||||||
|
lodash "^4.17.15"
|
||||||
|
|
||||||
|
tailwindcss@^1.1.3:
|
||||||
|
version "1.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-1.1.3.tgz#ad154f78e1e44060e32e3ed44b27287c2be126a6"
|
||||||
|
integrity sha512-8sa/QO+blnu3WXUylsgvYZlUbBpVH36QeGuZxgSGqp1dF3g4AGe1azt8FsO8i8Hfe9Oyvwhx3iSjRDak3nngeQ==
|
||||||
|
dependencies:
|
||||||
|
autoprefixer "^9.4.5"
|
||||||
|
bytes "^3.0.0"
|
||||||
|
chalk "^2.4.1"
|
||||||
|
fs-extra "^8.0.0"
|
||||||
|
lodash "^4.17.11"
|
||||||
|
node-emoji "^1.8.1"
|
||||||
|
normalize.css "^8.0.1"
|
||||||
|
postcss "^7.0.11"
|
||||||
|
postcss-functions "^3.0.0"
|
||||||
|
postcss-js "^2.0.0"
|
||||||
|
postcss-nested "^4.1.1"
|
||||||
|
postcss-selector-parser "^6.0.0"
|
||||||
|
pretty-hrtime "^1.0.3"
|
||||||
|
reduce-css-calc "^2.1.6"
|
||||||
|
|
||||||
|
uniq@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
|
||||||
|
integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
|
||||||
|
|
||||||
|
universalify@^0.1.0:
|
||||||
|
version "0.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
|
||||||
|
integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
|
||||||
|
|
||||||
|
wrappy@1:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||||
|
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
Loading…
Reference in New Issue
Block a user