diff --git a/.eslintignore b/.eslintignore
deleted file mode 100644
index 487598e..0000000
--- a/.eslintignore
+++ /dev/null
@@ -1,5 +0,0 @@
-*.*
-!*.js
-!*.ts
-!*.vue
-node_modules
\ No newline at end of file
diff --git a/.eslintrc.js b/.eslintrc.js
deleted file mode 100644
index 57ddc11..0000000
--- a/.eslintrc.js
+++ /dev/null
@@ -1,26 +0,0 @@
-module.exports = {
- env: {
- browser: true,
- es6: true,
- node: true
- },
- extends: [
- 'plugin:vue/essential',
- 'standard'
- ],
- globals: {
- Atomics: 'readonly',
- SharedArrayBuffer: 'readonly'
- },
- parserOptions: {
- ecmaVersion: 2018,
- parser: '@typescript-eslint/parser',
- sourceType: 'module'
- },
- plugins: [
- 'vue',
- '@typescript-eslint'
- ],
- rules: {
- }
-}
diff --git a/.gitignore b/.gitignore
index b512c09..344e452 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,34 @@
-node_modules
\ No newline at end of file
+
+# Created by https://www.toptal.com/developers/gitignore/api/macos
+# Edit at https://www.toptal.com/developers/gitignore?templates=macos
+
+### macOS ###
+# General
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# End of https://www.toptal.com/developers/gitignore/api/macos
+
diff --git a/data/.markdownlint.json b/.markdownlint.json
similarity index 100%
rename from data/.markdownlint.json
rename to .markdownlint.json
diff --git a/data/config.json b/config.json
similarity index 100%
rename from data/config.json
rename to config.json
diff --git a/data/posts/blog/2019/08/千字文.md b/data/posts/blog/2019/08/千字文.md
deleted file mode 100644
index 97c47f9..0000000
--- a/data/posts/blog/2019/08/千字文.md
+++ /dev/null
@@ -1,149 +0,0 @@
----
-title: "千字文"
-date: "2019-08-10"
-tag:
- - 千字文
- - 汉字
- - essay
----
-
-1
-天地玄黃,宇宙洪荒。
-日月盈昃,辰宿列張。
-寒來暑往,秋收冬藏。
-閏餘成歲,律呂調陽。
-雲騰致雨,露結為霜。
-金生麗水,玉出崑岡。
-劍號巨闕,珠稱夜光。
-果珍李柰,菜重芥薑。
-海咸河淡,鱗潛羽翔。
-
-2
-龍師火帝,鳥官人皇。
-始制文字,乃服衣裳。
-推位讓國,有虞陶唐。
-弔民伐罪,周發殷湯。
-坐朝問道,垂拱平章。
-愛育黎首,臣伏戎羌。
-遐邇一體,率賓歸王。
-鳴鳳在竹,白駒食場。
-化被草木,賴及萬方。
-
-
-
-3
-蓋此身髮,四大五常。
-恭惟鞠養,豈敢毀傷。
-女慕貞絜,男效才良。
-知過必改,得能莫忘。
-罔談彼短,靡恃己長。
-信使可覆,器欲難量。
-墨悲絲染,詩讚羔羊。
-景行維賢,克念作聖。
-德建名立,形端表正。
-空谷傳聲,虛堂習聽。
-禍因惡積,福緣善慶。
-尺璧非寶,寸陰是競。
-資父事君,曰嚴與敬。
-孝當竭力,忠則盡命。
-臨深履薄,夙興溫凊。
-似蘭斯馨,如松之盛。
-川流不息,淵澄取映。
-容止若思,言辭安定。
-篤初誠美,慎終宜令。
-榮業所基,藉甚無竟。
-學優登仕,攝職從政。
-存以甘棠,去而益詠。
-樂殊貴賤,禮別尊卑。
-上和下睦,夫唱婦隨。
-外受傅訓,入奉母儀。
-諸姑伯叔,猶子比兒。
-孔懷兄弟,同氣連根。
-交友投分,切磨箴規。
-仁慈隱惻,造次弗離。
-節義廉退,顛沛匪虧。
-性靜情逸,心動神疲。
-守真志滿,逐物意移。
-堅持雅操,好爵自縻。
-
-4
-都邑華夏,東西二京。
-背邙面洛,浮渭據涇。
-宮殿盤郁,樓觀飛驚。
-圖寫禽獸,畫彩仙靈。
-丙舍傍啟,甲帳對楹。
-肆筵設席,鼓瑟吹笙。
-升階納陛,弁轉疑星。
-右通廣內,左達承明。
-既集墳典,亦聚群英。
-杜稿鍾隸,漆書壁經。
-府羅將相,路俠槐卿。
-戶封八縣,家給千兵。
-高冠陪輦,驅轂振纓。
-世祿侈富,車駕肥輕。
-策功茂實,勒碑刻銘。
-磻溪伊尹,佐時阿衡。
-奄宅曲阜,微旦孰營。
-桓公匡合,濟弱扶傾。
-綺回漢惠,說感武丁。
-俊乂密勿,多士寔寧。
-晉楚更霸,趙魏困橫。
-假途滅虢,踐土會盟。
-何遵約法,韓弊煩刑。
-起翦頗牧,用軍最精。
-宣威沙漠,馳譽丹青。
-九州禹跡,百郡秦并。
-岳宗泰岱,禪主云亭。
-雁門紫塞,雞田赤城。
-昆池碣石,鉅野洞庭。
-曠遠綿邈,岩岫杳冥。
-
-5
-治本於農,務茲稼穡。
-俶載南畝,我藝黍稷。
-稅熟貢新,勸賞黜陟。
-孟軻敦素,史魚秉直。
-庶幾中庸,勞謙謹敕。
-聆音察理,鑒貌辨色。
-貽厥嘉猷,勉其祗植。
-省躬譏誡,寵增抗極。
-殆辱近恥,林皋幸即。
-兩疏見機,解組誰逼。
-索居閒處,沉默寂寥。
-求古尋論,散慮逍遙。
-欣奏累遣,慼謝歡招。
-渠荷的歷,園莽抽條。
-枇杷晚翠,梧桐蚤凋。
-陳根委翳,落葉飄搖。
-游鵾獨運,凌摩絳霄。
-
-6
-耽讀玩市,寓目囊箱。
-易輶攸畏,屬耳垣牆。
-具膳餐飯,適口充腸。
-飽飫烹宰,飢厭糟糠。
-親戚故舊,老少異糧。
-妾御績紡,待巾帷房。
-紈扇圓潔,銀燭煒煌。
-晝眠夕寐,藍筍象床。
-弦歌酒宴,接杯舉觴。
-矯手頓足,悅豫且康。
-嫡後嗣續,祭祀烝嘗。
-稽顙再拜,悚懼恐惶。
-箋牒簡要,顧答審詳。
-骸垢想浴,執熱願涼。
-驢騾犢特,駭躍超驤。
-誅斬賊盜,捕獲叛亡。
-
-7
-布射僚丸,嵇琴阮嘯。
-恬筆倫紙,鈞巧任釣。
-釋紛利俗,竝皆佳妙。
-毛施淑姿,工顰妍笑。
-年矢每催,曦暉朗曜。
-璿璣懸斡,晦魄環照。
-指薪修祜,永綏吉劭。
-矩步引領,俯仰廊廟。
-束帶矜庄,徘徊瞻眺。
-孤陋寡聞,愚蒙等誚。
-謂語助者,焉哉乎也。
diff --git a/data/posts/blog/2019/11/emoji1.md b/data/posts/blog/2019/11/emoji1.md
deleted file mode 100644
index d3e8e8c..0000000
--- a/data/posts/blog/2019/11/emoji1.md
+++ /dev/null
@@ -1,95 +0,0 @@
----
-title: "Chinese from Emoji 1: 学习用品"
-date: 2019-11-26
-image: https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQpaKJKlp3UhF_S-Q5sPWmLnKhwb8Ey0sqA7ersas1OJcAgZFzB
-tag:
- - vocab
- - emoji
- - quiz
----
-
-Try listening to these vocabs.
-
-✂️🎒✏️📎☄️🖊🖋🖍
-
-
-
-✂️
-
-
-
- 
-
- 剪刀 ✂️ jian3 dao1
-
-
-
-🎒
-
-
-
- 
-
- 书包 🎒 shu1 bao1
-
-
-
-✏️
-
-
-
- 
-
- 铅笔 ✏️ qian1 bi3
-
-
-
-📎
-
-
-
- 
-
- 回形针 📎 hui2 xing2 zhen1
-
-
-
-☄️
-
-
-
- 
-
- 彗星 ☄️ hui4 xing1
-
-
-
-🖊
-
-
-
- 
-
- 圆珠笔 🖊 yuan2 zhu1 bi3
-
-
-
-🖋
-
-
-
- 
-
- 钢笔 🖋 gang1 bi3
-
-
-
-🖍
-
-
-
- 
-
- 蜡笔 🖍 la4 bi3
-
-
diff --git a/data/posts/blog/2019/11/emoji2.md b/data/posts/blog/2019/11/emoji2.md
deleted file mode 100644
index c10dce7..0000000
--- a/data/posts/blog/2019/11/emoji2.md
+++ /dev/null
@@ -1,317 +0,0 @@
----
-title: "Chinese from Emoji 2: 陆地动物"
-date: 2019-11-27
-image: https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQpaKJKlp3UhF_S-Q5sPWmLnKhwb8Ey0sqA7ersas1OJcAgZFzB
-tag:
- - vocab
- - emoji
- - quiz
----
-
-Try listening to these vocabs.
-
-🐇🐿🦌🐑🐔🦃🐃🦇🦘🐘🐐🐎🦓🦔🐱🦒
-
-🦏🐒🐂🦁🐅🐆🐭🦊🐺🐻🐼🐖🐷🐗🦛
-
-
-
-🐇
-
-
-
- 
-
- 兔子
-
-
-
-🐿
-
-
-
- 
-
- 松鼠
-
-
-
-🦌
-
-
-
- 
-
- 鹿
-
-
-
-🐑
-
-
-
- 
-
- 羊
-
-
-
-🐔
-
-
-
- 
-
- 鸡
-
-
-
-🦃
-
-
-
- 
-
- 火鸡
-
-
-
-🐃
-
-
-
- 
-
- 水牛
-
-
-
-🦇
-
-
-
- 
-
- 蝙蝠
-
-
-
-🦘
-
-
-
- 
-
- 袋鼠
-
-
-
-🐘
-
-
-
- 
-
- 象
-
-
-
-🐐
-
-
-
- 
-
- 山羊
-
-
-
-🐎
-
-
-
- 
-
- 马
-
-
-
-🦓
-
-
-
- 
-
- 斑马
-
-
-
-🦔
-
-
-
- 
-
- 刺猬
-
-
-
-🐱
-
-
-
- 
-
- 猫
-
-
-
-🦒
-
-
-
- 
-
- 长颈鹿
-
-
-
-🦏
-
-
-
- 
-
- 犀牛
-
-
-
-🐒
-
-
-
- 
-
- 猴子
-
-
-
-🐂
-
-
-
- 
-
- 牛
-
-
-
-🦁
-
-
-
- 
-
- 狮子
-
-
-
-🐅
-
-
-
- 
-
- 老虎
-
-
-
-🐆
-
-
-
- 
-
- 豹
-
-
-
-🐭
-
-
-
- 
-
- 鼠
-
-
-
-🦊
-
-
-
- 
-
- 狐狸
-
-
-
-🐺
-
-
-
- 
-
- 狼
-
-
-
-🐻
-
-
-
- 
-
- 熊 🐻 (● ̄(エ) ̄●)
-
-
-
-🐼
-
-
-
- 
-
- 熊猫
-
-
-
-🐷
-
-
-
- 
-
- 猪 🐖 🐷 ^(\* ̄(oo) ̄)^
-
-
-
-🐗
-
-
-
- 
-
- 野猪
-
-
-
-🦛
-
-
-
- 
-
- 河马
-
-
diff --git a/data/favicon.ico b/media/favicon.ico
similarity index 100%
rename from data/favicon.ico
rename to media/favicon.ico
diff --git a/package.json b/package.json
deleted file mode 100644
index 916a833..0000000
--- a/package.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "name": "zhdiary",
- "version": "1.0.0",
- "private": true,
- "repository": "https://github.com/patarapolw/zhdiary.git",
- "author": "Pacharapol Withayasakpunt (https://polvcode.dev)",
- "license": "MIT",
- "devDependencies": {
- "@typescript-eslint/eslint-plugin": "^2.21.0",
- "@typescript-eslint/parser": "^2.21.0",
- "eslint": ">=6.2.2",
- "eslint-config-standard": "^14.1.0",
- "eslint-plugin-import": ">=2.18.0",
- "eslint-plugin-node": ">=9.1.0",
- "eslint-plugin-promise": ">=4.2.1",
- "eslint-plugin-standard": ">=4.0.0",
- "eslint-plugin-vue": "^6.2.1",
- "typescript": "^3.8.2"
- }
-}
diff --git a/post/2019/08/千字文.md b/post/2019/08/千字文.md
new file mode 100644
index 0000000..07ab9b4
--- /dev/null
+++ b/post/2019/08/千字文.md
@@ -0,0 +1,156 @@
+---
+title: "千字文"
+date: "2019-08-10"
+tag:
+ - 千字文
+ - 汉字
+ - essay
+---
+
+1
+
+- [天地玄黃,宇宙洪荒。](/posts/千字文/千字文1.1)
+- [日月盈昃,辰宿列張。](/posts/千字文/千字文1.2)
+- [寒來暑往,秋收冬藏。](/posts/千字文/千字文1.3)
+- [閏餘成歲,律呂調陽。](/posts/千字文/千字文1.4)
+- [雲騰致雨,露結為霜。](/posts/千字文/千字文1.5)
+- [金生麗水,玉出崑岡。](/posts/千字文/千字文1.6)
+- [劍號巨闕,珠稱夜光。](/posts/千字文/千字文1.7)
+- [果珍李柰,菜重芥薑。](/posts/千字文/千字文1.8)
+- [海咸河淡,鱗潛羽翔。](/posts/千字文/千字文1.9)
+
+2
+
+- [龍師火帝,鳥官人皇。](/posts/千字文/千字文2.1)
+- [始制文字,乃服衣裳。](/posts/千字文/千字文2.2)
+- [推位讓國,有虞陶唐。](/posts/千字文/千字文2.3)
+- [弔民伐罪,周發殷湯。](/posts/千字文/千字文2.4)
+- [坐朝問道,垂拱平章。](/posts/千字文/千字文2.5)
+- [愛育黎首,臣伏戎羌。](/posts/千字文/千字文2.6)
+- [遐邇一體,率賓歸王。](/posts/千字文/千字文2.7)
+- [鳴鳳在竹,白駒食場。](/posts/千字文/千字文2.8)
+- [化被草木,賴及萬方。](/posts/千字文/千字文2.9)
+
+
+
+3
+
+- [蓋此身髮,四大五常。](/posts/千字文/千字文3.1)
+- [恭惟鞠養,豈敢毀傷。](/posts/千字文/千字文3.2)
+- [女慕貞絜,男效才良。](/posts/千字文/千字文3.3)
+- 知過必改,得能莫忘。
+- 罔談彼短,靡恃己長。
+- 信使可覆,器欲難量。
+- 墨悲絲染,詩讚羔羊。
+- 景行維賢,克念作聖。
+- 德建名立,形端表正。
+- 空谷傳聲,虛堂習聽。
+- 禍因惡積,福緣善慶。
+- 尺璧非寶,寸陰是競。
+- 資父事君,曰嚴與敬。
+- 孝當竭力,忠則盡命。
+- 臨深履薄,夙興溫凊。
+- 似蘭斯馨,如松之盛。
+- 川流不息,淵澄取映。
+- 容止若思,言辭安定。
+- 篤初誠美,慎終宜令。
+- 榮業所基,藉甚無竟。
+- 學優登仕,攝職從政。
+- 存以甘棠,去而益詠。
+- 樂殊貴賤,禮別尊卑。
+- 上和下睦,夫唱婦隨。
+- 外受傅訓,入奉母儀。
+- 諸姑伯叔,猶子比兒。
+- 孔懷兄弟,同氣連根。
+- 交友投分,切磨箴規。
+- 仁慈隱惻,造次弗離。
+- 節義廉退,顛沛匪虧。
+- 性靜情逸,心動神疲。
+- 守真志滿,逐物意移。
+- 堅持雅操,好爵自縻。
+
+4
+
+- 都邑華夏,東西二京。
+- 背邙面洛,浮渭據涇。
+- 宮殿盤郁,樓觀飛驚。
+- 圖寫禽獸,畫彩仙靈。
+- 丙舍傍啟,甲帳對楹。
+- 肆筵設席,鼓瑟吹笙。
+- 升階納陛,弁轉疑星。
+- 右通廣內,左達承明。
+- 既集墳典,亦聚群英。
+- 杜稿鍾隸,漆書壁經。
+- 府羅將相,路俠槐卿。
+- 戶封八縣,家給千兵。
+- 高冠陪輦,驅轂振纓。
+- 世祿侈富,車駕肥輕。
+- 策功茂實,勒碑刻銘。
+- 磻溪伊尹,佐時阿衡。
+- 奄宅曲阜,微旦孰營。
+- 桓公匡合,濟弱扶傾。
+- 綺回漢惠,說感武丁。
+- 俊乂密勿,多士寔寧。
+- 晉楚更霸,趙魏困橫。
+- 假途滅虢,踐土會盟。
+- 何遵約法,韓弊煩刑。
+- 起翦頗牧,用軍最精。
+- 宣威沙漠,馳譽丹青。
+- 九州禹跡,百郡秦并。
+- 岳宗泰岱,禪主云亭。
+- 雁門紫塞,雞田赤城。
+- 昆池碣石,鉅野洞庭。
+- 曠遠綿邈,岩岫杳冥。
+
+5
+
+- 治本於農,務茲稼穡。
+- 俶載南畝,我藝黍稷。
+- 稅熟貢新,勸賞黜陟。
+- 孟軻敦素,史魚秉直。
+- 庶幾中庸,勞謙謹敕。
+- 聆音察理,鑒貌辨色。
+- 貽厥嘉猷,勉其祗植。
+- 省躬譏誡,寵增抗極。
+- 殆辱近恥,林皋幸即。
+- 兩疏見機,解組誰逼。
+- 索居閒處,沉默寂寥。
+- 求古尋論,散慮逍遙。
+- 欣奏累遣,慼謝歡招。
+- 渠荷的歷,園莽抽條。
+- 枇杷晚翠,梧桐蚤凋。
+- 陳根委翳,落葉飄搖。
+- 游鵾獨運,凌摩絳霄。
+
+6
+
+- 耽讀玩市,寓目囊箱。
+- 易輶攸畏,屬耳垣牆。
+- 具膳餐飯,適口充腸。
+- 飽飫烹宰,飢厭糟糠。
+- 親戚故舊,老少異糧。
+- 妾御績紡,待巾帷房。
+- 紈扇圓潔,銀燭煒煌。
+- 晝眠夕寐,藍筍象床。
+- 弦歌酒宴,接杯舉觴。
+- 矯手頓足,悅豫且康。
+- 嫡後嗣續,祭祀烝嘗。
+- 稽顙再拜,悚懼恐惶。
+- 箋牒簡要,顧答審詳。
+- 骸垢想浴,執熱願涼。
+- 驢騾犢特,駭躍超驤。
+- 誅斬賊盜,捕獲叛亡。
+
+7
+
+- 布射僚丸,嵇琴阮嘯。
+- 恬筆倫紙,鈞巧任釣。
+- 釋紛利俗,竝皆佳妙。
+- 毛施淑姿,工顰妍笑。
+- 年矢每催,曦暉朗曜。
+- 璿璣懸斡,晦魄環照。
+- 指薪修祜,永綏吉劭。
+- 矩步引領,俯仰廊廟。
+- 束帶矜庄,徘徊瞻眺。
+- 孤陋寡聞,愚蒙等誚。
+- 謂語助者,焉哉乎也。
diff --git a/data/posts/blog/2019/08/句子1.1.md b/post/2019/08/句子1.1.md
similarity index 77%
rename from data/posts/blog/2019/08/句子1.1.md
rename to post/2019/08/句子1.1.md
index ec9d4c1..16a49a6 100644
--- a/data/posts/blog/2019/08/句子1.1.md
+++ b/post/2019/08/句子1.1.md
@@ -8,6 +8,6 @@ tag:
### Sentence quiz
-Please see /slides/old/句子1.1.md
+Please see `/slides/old/句子1.1.md`
Highlight text and press "x" inside the presentation to speak.
diff --git a/data/posts/blog/2019/08/句子1.2.md b/post/2019/08/句子1.2.md
similarity index 77%
rename from data/posts/blog/2019/08/句子1.2.md
rename to post/2019/08/句子1.2.md
index 7e8a42b..3ae5f2d 100644
--- a/data/posts/blog/2019/08/句子1.2.md
+++ b/post/2019/08/句子1.2.md
@@ -8,6 +8,6 @@ tag:
### Sentence quiz
-Please see /slides/old/句子1.2.md
+Please see `/slides/old/句子1.2.md`
Highlight text and press "x" inside the presentation to speak.
diff --git a/data/posts/blog/2019/08/句子1.3.md b/post/2019/08/句子1.3.md
similarity index 77%
rename from data/posts/blog/2019/08/句子1.3.md
rename to post/2019/08/句子1.3.md
index d8693da..38a0656 100644
--- a/data/posts/blog/2019/08/句子1.3.md
+++ b/post/2019/08/句子1.3.md
@@ -8,6 +8,6 @@ tag:
### Sentence quiz
-Please see /slides/old/句子1.3.md
+Please see `/slides/old/句子1.3.md`
Highlight text and press "x" inside the presentation to speak.
diff --git a/data/posts/blog/2019/08/身体1.md b/post/2019/08/身体1.md
similarity index 93%
rename from data/posts/blog/2019/08/身体1.md
rename to post/2019/08/身体1.md
index 0123d94..68a9219 100644
--- a/data/posts/blog/2019/08/身体1.md
+++ b/post/2019/08/身体1.md
@@ -10,18 +10,20 @@ From
### Sentence quiz
-Please see /slides/old/身体1.md
+Please see `/slides/old/身体1.md`
Highlight text and press "x" inside the presentation to speak.
-
+
-```css parsed
+
+ | |
+--- | --- | ---
胳膊 | gēbo | arm
手膀 | shǒubǎng | arm
肚子 | dùzi | belly; abdomen; stomach
diff --git a/data/posts/blog/2019/09/zhlab.md b/post/2019/09/zhlab.md
similarity index 76%
rename from data/posts/blog/2019/09/zhlab.md
rename to post/2019/09/zhlab.md
index 3af9adb..f14968a 100644
--- a/data/posts/blog/2019/09/zhlab.md
+++ b/post/2019/09/zhlab.md
@@ -5,6 +5,6 @@ tag:
- diary
---
-Apparently, yesterday, I made a Chinese learning resources, aggregated from various textbooks. I plan to make it mostly in JSON format (see /resources), for easy computerized parsing. I am a tech guy after all.
+Apparently, yesterday, I made a Chinese learning resources, aggregated from various textbooks. I plan to make it mostly in JSON format (see `/resources`), for easy computerized parsing. I am a tech guy after all.
I also move the contents from and to here.
diff --git a/data/posts/blog/2019/09/蔬果.md b/post/2019/09/蔬果.md
similarity index 72%
rename from data/posts/blog/2019/09/蔬果.md
rename to post/2019/09/蔬果.md
index f4ad64f..29bd228 100644
--- a/data/posts/blog/2019/09/蔬果.md
+++ b/post/2019/09/蔬果.md
@@ -6,4 +6,4 @@ tag:
- quiz
---
-See /slides/vocab/chinese/2019-09-30-fruit.md
+See `/slides/vocab/chinese/2019-09-30-fruit`
diff --git a/data/posts/blog/2019/10/movement-notice.md b/post/2019/10/movement-notice.md
similarity index 100%
rename from data/posts/blog/2019/10/movement-notice.md
rename to post/2019/10/movement-notice.md
diff --git a/post/2019/11/emoji1.md b/post/2019/11/emoji1.md
new file mode 100644
index 0000000..9aef2de
--- /dev/null
+++ b/post/2019/11/emoji1.md
@@ -0,0 +1,95 @@
+---
+title: "Chinese from Emoji 1: 学习用品"
+date: 2019-11-26
+image: https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQpaKJKlp3UhF_S-Q5sPWmLnKhwb8Ey0sqA7ersas1OJcAgZFzB
+tag:
+ - vocab
+ - emoji
+ - quiz
+---
+
+Try listening to these vocabs.
+
+✂️🎒✏️📎☄️🖊🖋🖍
+
+
+
+✂️
+
+::: spoiler
+
+
+
+剪刀 ✂️ jian3 dao1
+
+:::
+
+🎒
+
+::: spoiler
+
+
+
+书包 🎒 shu1 bao1
+
+:::
+
+✏️
+
+::: spoiler
+
+
+
+铅笔 ✏️ qian1 bi3
+
+:::
+
+📎
+
+::: spoiler
+
+
+
+回形针 📎 hui2 xing2 zhen1
+
+:::
+
+☄️
+
+::: spoiler
+
+
+
+彗星 ☄️ hui4 xing1
+
+:::
+
+🖊
+
+::: spoiler
+
+
+
+圆珠笔 🖊 yuan2 zhu1 bi3
+
+:::
+
+🖋
+
+::: spoiler
+
+
+
+钢笔 🖋 gang1 bi3
+
+:::
+
+🖍
+
+::: spoiler
+
+
+
+蜡笔 🖍 la4 bi3
+
+:::
diff --git a/post/2019/11/emoji2.md b/post/2019/11/emoji2.md
new file mode 100644
index 0000000..39864fd
--- /dev/null
+++ b/post/2019/11/emoji2.md
@@ -0,0 +1,317 @@
+---
+title: "Chinese from Emoji 2: 陆地动物"
+date: 2019-11-27
+image: https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQpaKJKlp3UhF_S-Q5sPWmLnKhwb8Ey0sqA7ersas1OJcAgZFzB
+tag:
+ - vocab
+ - emoji
+ - quiz
+---
+
+Try listening to these vocabs.
+
+🐇🐿🦌🐑🐔🦃🐃🦇🦘🐘🐐🐎🦓🦔🐱🦒
+
+🦏🐒🐂🦁🐅🐆🐭🦊🐺🐻🐼🐖🐷🐗🦛
+
+
+
+🐇
+
+::: spoiler
+
+
+
+兔子
+
+:::
+
+🐿
+
+::: spoiler
+
+
+
+松鼠
+
+:::
+
+🦌
+
+::: spoiler
+
+
+
+鹿
+
+:::
+
+🐑
+
+::: spoiler
+
+
+
+羊
+
+:::
+
+🐔
+
+::: spoiler
+
+
+
+鸡
+
+:::
+
+🦃
+
+::: spoiler
+
+
+
+火鸡
+
+:::
+
+🐃
+
+::: spoiler
+
+
+
+水牛
+
+:::
+
+🦇
+
+::: spoiler
+
+
+
+蝙蝠
+
+:::
+
+🦘
+
+::: spoiler
+
+
+
+袋鼠
+
+:::
+
+🐘
+
+::: spoiler
+
+
+
+象
+
+:::
+
+🐐
+
+::: spoiler
+
+
+
+山羊
+
+:::
+
+🐎
+
+::: spoiler
+
+
+
+马
+
+:::
+
+🦓
+
+::: spoiler
+
+
+
+斑马
+
+:::
+
+🦔
+
+::: spoiler
+
+
+
+刺猬
+
+:::
+
+🐱
+
+::: spoiler
+
+
+
+猫
+
+:::
+
+🦒
+
+::: spoiler
+
+
+
+长颈鹿
+
+:::
+
+🦏
+
+::: spoiler
+
+
+
+犀牛
+
+:::
+
+🐒
+
+::: spoiler
+
+
+
+猴子
+
+:::
+
+🐂
+
+::: spoiler
+
+
+
+牛
+
+:::
+
+🦁
+
+::: spoiler
+
+
+
+狮子
+
+:::
+
+🐅
+
+::: spoiler
+
+
+
+老虎
+
+:::
+
+🐆
+
+::: spoiler
+
+
+
+豹
+
+:::
+
+🐭
+
+::: spoiler
+
+
+
+鼠
+
+:::
+
+🦊
+
+::: spoiler
+
+
+
+狐狸
+
+:::
+
+🐺
+
+::: spoiler
+
+
+
+狼
+
+:::
+
+🐻
+
+::: spoiler
+
+
+
+熊 🐻 (● ̄(エ) ̄●)
+
+:::
+
+🐼
+
+::: spoiler
+
+
+
+熊猫
+
+:::
+
+🐷
+
+::: spoiler
+
+
+
+猪 🐖 🐷 ^(\* ̄(oo) ̄)^
+
+:::
+
+🐗
+
+::: spoiler
+
+
+
+野猪
+
+:::
+
+🦛
+
+::: spoiler
+
+
+
+河马
+
+:::
diff --git a/data/posts/blog/2019/11/move-to-netlify.md b/post/2019/11/move-to-netlify.md
similarity index 100%
rename from data/posts/blog/2019/11/move-to-netlify.md
rename to post/2019/11/move-to-netlify.md
diff --git a/data/posts/blog/2019/12/back-to-former.md b/post/2019/12/back-to-former.md
similarity index 100%
rename from data/posts/blog/2019/12/back-to-former.md
rename to post/2019/12/back-to-former.md
diff --git a/data/posts/blog/2019/12/emoji-animal1.md b/post/2019/12/emoji-animal1.md
similarity index 100%
rename from data/posts/blog/2019/12/emoji-animal1.md
rename to post/2019/12/emoji-animal1.md
diff --git a/data/posts/blog/2020/02/我和你-song.md b/post/2020/02/我和你-song.md
similarity index 98%
rename from data/posts/blog/2020/02/我和你-song.md
rename to post/2020/02/我和你-song.md
index 5eff1fa..41c1c5b 100644
--- a/data/posts/blog/2020/02/我和你-song.md
+++ b/post/2020/02/我和你-song.md
@@ -8,7 +8,7 @@ tag:
-
+
鄧麗君
diff --git a/data/posts/千字文/千字文1.1.md b/post/千字文/千字文1.1.md
similarity index 100%
rename from data/posts/千字文/千字文1.1.md
rename to post/千字文/千字文1.1.md
diff --git a/data/posts/千字文/千字文1.2.md b/post/千字文/千字文1.2.md
similarity index 100%
rename from data/posts/千字文/千字文1.2.md
rename to post/千字文/千字文1.2.md
diff --git a/data/posts/千字文/千字文1.3.md b/post/千字文/千字文1.3.md
similarity index 100%
rename from data/posts/千字文/千字文1.3.md
rename to post/千字文/千字文1.3.md
diff --git a/data/posts/千字文/千字文1.4.md b/post/千字文/千字文1.4.md
similarity index 100%
rename from data/posts/千字文/千字文1.4.md
rename to post/千字文/千字文1.4.md
diff --git a/data/posts/千字文/千字文1.5.md b/post/千字文/千字文1.5.md
similarity index 100%
rename from data/posts/千字文/千字文1.5.md
rename to post/千字文/千字文1.5.md
diff --git a/data/posts/千字文/千字文1.6.md b/post/千字文/千字文1.6.md
similarity index 100%
rename from data/posts/千字文/千字文1.6.md
rename to post/千字文/千字文1.6.md
diff --git a/data/posts/千字文/千字文1.7.md b/post/千字文/千字文1.7.md
similarity index 100%
rename from data/posts/千字文/千字文1.7.md
rename to post/千字文/千字文1.7.md
diff --git a/data/posts/千字文/千字文1.8.md b/post/千字文/千字文1.8.md
similarity index 100%
rename from data/posts/千字文/千字文1.8.md
rename to post/千字文/千字文1.8.md
diff --git a/data/posts/千字文/千字文1.9.md b/post/千字文/千字文1.9.md
similarity index 100%
rename from data/posts/千字文/千字文1.9.md
rename to post/千字文/千字文1.9.md
diff --git a/data/posts/千字文/千字文2.1.md b/post/千字文/千字文2.1.md
similarity index 100%
rename from data/posts/千字文/千字文2.1.md
rename to post/千字文/千字文2.1.md
diff --git a/data/posts/千字文/千字文2.2.md b/post/千字文/千字文2.2.md
similarity index 100%
rename from data/posts/千字文/千字文2.2.md
rename to post/千字文/千字文2.2.md
diff --git a/data/posts/千字文/千字文2.3.md b/post/千字文/千字文2.3.md
similarity index 100%
rename from data/posts/千字文/千字文2.3.md
rename to post/千字文/千字文2.3.md
diff --git a/data/posts/千字文/千字文2.4.md b/post/千字文/千字文2.4.md
similarity index 100%
rename from data/posts/千字文/千字文2.4.md
rename to post/千字文/千字文2.4.md
diff --git a/data/posts/千字文/千字文2.5.md b/post/千字文/千字文2.5.md
similarity index 100%
rename from data/posts/千字文/千字文2.5.md
rename to post/千字文/千字文2.5.md
diff --git a/data/posts/千字文/千字文2.6.md b/post/千字文/千字文2.6.md
similarity index 100%
rename from data/posts/千字文/千字文2.6.md
rename to post/千字文/千字文2.6.md
diff --git a/data/posts/千字文/千字文2.7.md b/post/千字文/千字文2.7.md
similarity index 100%
rename from data/posts/千字文/千字文2.7.md
rename to post/千字文/千字文2.7.md
diff --git a/data/posts/千字文/千字文2.8.md b/post/千字文/千字文2.8.md
similarity index 100%
rename from data/posts/千字文/千字文2.8.md
rename to post/千字文/千字文2.8.md
diff --git a/data/posts/千字文/千字文2.9.md b/post/千字文/千字文2.9.md
similarity index 100%
rename from data/posts/千字文/千字文2.9.md
rename to post/千字文/千字文2.9.md
diff --git a/data/posts/千字文/千字文3.1.md b/post/千字文/千字文3.1.md
similarity index 100%
rename from data/posts/千字文/千字文3.1.md
rename to post/千字文/千字文3.1.md
diff --git a/data/posts/千字文/千字文3.2.md b/post/千字文/千字文3.2.md
similarity index 100%
rename from data/posts/千字文/千字文3.2.md
rename to post/千字文/千字文3.2.md
diff --git a/data/posts/千字文/千字文3.3.md b/post/千字文/千字文3.3.md
similarity index 100%
rename from data/posts/千字文/千字文3.3.md
rename to post/千字文/千字文3.3.md
diff --git a/data/resources/.markdownlint.json b/resources/.markdownlint.json
similarity index 100%
rename from data/resources/.markdownlint.json
rename to resources/.markdownlint.json
diff --git a/data/resources/old/user/category/人体.md b/resources/old/user/category/人体.md
similarity index 100%
rename from data/resources/old/user/category/人体.md
rename to resources/old/user/category/人体.md
diff --git a/data/resources/old/user/category/政治.md b/resources/old/user/category/政治.md
similarity index 100%
rename from data/resources/old/user/category/政治.md
rename to resources/old/user/category/政治.md
diff --git a/data/resources/old/user/essay/一棵开花的树.md b/resources/old/user/essay/一棵开花的树.md
similarity index 100%
rename from data/resources/old/user/essay/一棵开花的树.md
rename to resources/old/user/essay/一棵开花的树.md
diff --git a/data/resources/old/user/essay/再别康桥.md b/resources/old/user/essay/再别康桥.md
similarity index 100%
rename from data/resources/old/user/essay/再别康桥.md
rename to resources/old/user/essay/再别康桥.md
diff --git a/data/resources/old/user/essay/微信.md b/resources/old/user/essay/微信.md
similarity index 100%
rename from data/resources/old/user/essay/微信.md
rename to resources/old/user/essay/微信.md
diff --git a/data/resources/old/user/textbook/01.md b/resources/old/user/textbook/01.md
similarity index 100%
rename from data/resources/old/user/textbook/01.md
rename to resources/old/user/textbook/01.md
diff --git a/data/resources/old/user/textbook/02.md b/resources/old/user/textbook/02.md
similarity index 100%
rename from data/resources/old/user/textbook/02.md
rename to resources/old/user/textbook/02.md
diff --git a/data/resources/old/user/textbook/03.md b/resources/old/user/textbook/03.md
similarity index 100%
rename from data/resources/old/user/textbook/03.md
rename to resources/old/user/textbook/03.md
diff --git a/data/resources/old/user/textbook/07.md b/resources/old/user/textbook/07.md
similarity index 100%
rename from data/resources/old/user/textbook/07.md
rename to resources/old/user/textbook/07.md
diff --git a/data/resources/old/user/textbook/08.md b/resources/old/user/textbook/08.md
similarity index 100%
rename from data/resources/old/user/textbook/08.md
rename to resources/old/user/textbook/08.md
diff --git a/data/resources/old/user/textbook/12.md b/resources/old/user/textbook/12.md
similarity index 100%
rename from data/resources/old/user/textbook/12.md
rename to resources/old/user/textbook/12.md
diff --git a/data/resources/old/user/textbook/13.md b/resources/old/user/textbook/13.md
similarity index 100%
rename from data/resources/old/user/textbook/13.md
rename to resources/old/user/textbook/13.md
diff --git a/data/resources/old/user/textbook/14.md b/resources/old/user/textbook/14.md
similarity index 100%
rename from data/resources/old/user/textbook/14.md
rename to resources/old/user/textbook/14.md
diff --git a/data/resources/old/user/textbook/15.md b/resources/old/user/textbook/15.md
similarity index 100%
rename from data/resources/old/user/textbook/15.md
rename to resources/old/user/textbook/15.md
diff --git a/data/resources/old/user/textbook/16.md b/resources/old/user/textbook/16.md
similarity index 100%
rename from data/resources/old/user/textbook/16.md
rename to resources/old/user/textbook/16.md
diff --git a/data/resources/old/user/textbook/17.md b/resources/old/user/textbook/17.md
similarity index 100%
rename from data/resources/old/user/textbook/17.md
rename to resources/old/user/textbook/17.md
diff --git a/data/resources/old/user/textbook/18.md b/resources/old/user/textbook/18.md
similarity index 100%
rename from data/resources/old/user/textbook/18.md
rename to resources/old/user/textbook/18.md
diff --git a/data/resources/old/user/textbook/19.md b/resources/old/user/textbook/19.md
similarity index 100%
rename from data/resources/old/user/textbook/19.md
rename to resources/old/user/textbook/19.md
diff --git a/data/resources/old/user/textbook/20.md b/resources/old/user/textbook/20.md
similarity index 100%
rename from data/resources/old/user/textbook/20.md
rename to resources/old/user/textbook/20.md
diff --git a/data/resources/old/user/textbook/21.md b/resources/old/user/textbook/21.md
similarity index 100%
rename from data/resources/old/user/textbook/21.md
rename to resources/old/user/textbook/21.md
diff --git a/data/resources/old/user/textbook/22.md b/resources/old/user/textbook/22.md
similarity index 100%
rename from data/resources/old/user/textbook/22.md
rename to resources/old/user/textbook/22.md
diff --git a/data/resources/old/user/textbook/23.md b/resources/old/user/textbook/23.md
similarity index 100%
rename from data/resources/old/user/textbook/23.md
rename to resources/old/user/textbook/23.md
diff --git a/data/resources/old/user/textbook/24.md b/resources/old/user/textbook/24.md
similarity index 100%
rename from data/resources/old/user/textbook/24.md
rename to resources/old/user/textbook/24.md
diff --git a/data/resources/old/user/textbook/25.md b/resources/old/user/textbook/25.md
similarity index 100%
rename from data/resources/old/user/textbook/25.md
rename to resources/old/user/textbook/25.md
diff --git a/data/resources/sentences/2019-09-23-cyber.md b/resources/sentences/2019-09-23-cyber.md
similarity index 100%
rename from data/resources/sentences/2019-09-23-cyber.md
rename to resources/sentences/2019-09-23-cyber.md
diff --git a/data/resources/sentences/2019-09-24-cyber.md b/resources/sentences/2019-09-24-cyber.md
similarity index 100%
rename from data/resources/sentences/2019-09-24-cyber.md
rename to resources/sentences/2019-09-24-cyber.md
diff --git a/data/resources/vocab/2019/09/2019-09-23-人身.md b/resources/vocab/2019/09/2019-09-23-人身.md
similarity index 100%
rename from data/resources/vocab/2019/09/2019-09-23-人身.md
rename to resources/vocab/2019/09/2019-09-23-人身.md
diff --git a/data/resources/vocab/2019/09/2019-09-24-动词.md b/resources/vocab/2019/09/2019-09-24-动词.md
similarity index 100%
rename from data/resources/vocab/2019/09/2019-09-24-动词.md
rename to resources/vocab/2019/09/2019-09-24-动词.md
diff --git a/data/resources/vocab/2019/09/2019-09-25-web.md b/resources/vocab/2019/09/2019-09-25-web.md
similarity index 100%
rename from data/resources/vocab/2019/09/2019-09-25-web.md
rename to resources/vocab/2019/09/2019-09-25-web.md
diff --git a/data/resources/vocab/2019/09/2019-09-25-亲戚.md b/resources/vocab/2019/09/2019-09-25-亲戚.md
similarity index 100%
rename from data/resources/vocab/2019/09/2019-09-25-亲戚.md
rename to resources/vocab/2019/09/2019-09-25-亲戚.md
diff --git a/data/resources/vocab/2019/09/2019-09-25-关系.md b/resources/vocab/2019/09/2019-09-25-关系.md
similarity index 100%
rename from data/resources/vocab/2019/09/2019-09-25-关系.md
rename to resources/vocab/2019/09/2019-09-25-关系.md
diff --git a/data/resources/vocab/2019/09/2019-09-26-职业.md b/resources/vocab/2019/09/2019-09-26-职业.md
similarity index 100%
rename from data/resources/vocab/2019/09/2019-09-26-职业.md
rename to resources/vocab/2019/09/2019-09-26-职业.md
diff --git a/data/resources/vocab/2019/09/2019-09-27-衣服.md b/resources/vocab/2019/09/2019-09-27-衣服.md
similarity index 100%
rename from data/resources/vocab/2019/09/2019-09-27-衣服.md
rename to resources/vocab/2019/09/2019-09-27-衣服.md
diff --git a/data/resources/vocab/2019/09/2019-09-27-餐厅.md b/resources/vocab/2019/09/2019-09-27-餐厅.md
similarity index 100%
rename from data/resources/vocab/2019/09/2019-09-27-餐厅.md
rename to resources/vocab/2019/09/2019-09-27-餐厅.md
diff --git a/data/resources/vocab/2019/09/2019-09-28-菜单.md b/resources/vocab/2019/09/2019-09-28-菜单.md
similarity index 100%
rename from data/resources/vocab/2019/09/2019-09-28-菜单.md
rename to resources/vocab/2019/09/2019-09-28-菜单.md
diff --git a/data/resources/vocab/2019/09/2019-09-29-性格.md b/resources/vocab/2019/09/2019-09-29-性格.md
similarity index 100%
rename from data/resources/vocab/2019/09/2019-09-29-性格.md
rename to resources/vocab/2019/09/2019-09-29-性格.md
diff --git a/data/resources/vocab/2019/09/2019-09-29-菜单.md b/resources/vocab/2019/09/2019-09-29-菜单.md
similarity index 100%
rename from data/resources/vocab/2019/09/2019-09-29-菜单.md
rename to resources/vocab/2019/09/2019-09-29-菜单.md
diff --git a/data/resources/vocab/2019/09/2019-09-30-水果.md b/resources/vocab/2019/09/2019-09-30-水果.md
similarity index 100%
rename from data/resources/vocab/2019/09/2019-09-30-水果.md
rename to resources/vocab/2019/09/2019-09-30-水果.md
diff --git a/data/resources/vocab/2019/09/2019-09-30-蔬菜.md b/resources/vocab/2019/09/2019-09-30-蔬菜.md
similarity index 100%
rename from data/resources/vocab/2019/09/2019-09-30-蔬菜.md
rename to resources/vocab/2019/09/2019-09-30-蔬菜.md
diff --git a/data/resources/vocab/2019/10/2019-10-01-性质.md b/resources/vocab/2019/10/2019-10-01-性质.md
similarity index 100%
rename from data/resources/vocab/2019/10/2019-10-01-性质.md
rename to resources/vocab/2019/10/2019-10-01-性质.md
diff --git a/data/resources/vocab/2019/10/2019-10-02-住宅.md b/resources/vocab/2019/10/2019-10-02-住宅.md
similarity index 100%
rename from data/resources/vocab/2019/10/2019-10-02-住宅.md
rename to resources/vocab/2019/10/2019-10-02-住宅.md
diff --git a/data/resources/vocab/2019/10/2019-10-11-政治.md b/resources/vocab/2019/10/2019-10-11-政治.md
similarity index 100%
rename from data/resources/vocab/2019/10/2019-10-11-政治.md
rename to resources/vocab/2019/10/2019-10-11-政治.md
diff --git a/data/resources/vocab/2019/10/2019-10-17-政府.md b/resources/vocab/2019/10/2019-10-17-政府.md
similarity index 100%
rename from data/resources/vocab/2019/10/2019-10-17-政府.md
rename to resources/vocab/2019/10/2019-10-17-政府.md
diff --git a/data/resources/vocab/2019/10/2019-10-18-交通.md b/resources/vocab/2019/10/2019-10-18-交通.md
similarity index 100%
rename from data/resources/vocab/2019/10/2019-10-18-交通.md
rename to resources/vocab/2019/10/2019-10-18-交通.md
diff --git a/data/resources/vocab/2019/10/2019-10-18-政府.md b/resources/vocab/2019/10/2019-10-18-政府.md
similarity index 100%
rename from data/resources/vocab/2019/10/2019-10-18-政府.md
rename to resources/vocab/2019/10/2019-10-18-政府.md
diff --git a/data/resources/vocab/2019/10/2019-10-19-火车站.md b/resources/vocab/2019/10/2019-10-19-火车站.md
similarity index 100%
rename from data/resources/vocab/2019/10/2019-10-19-火车站.md
rename to resources/vocab/2019/10/2019-10-19-火车站.md
diff --git a/data/resources/vocab/2019/10/2019-10-21-机场.md b/resources/vocab/2019/10/2019-10-21-机场.md
similarity index 100%
rename from data/resources/vocab/2019/10/2019-10-21-机场.md
rename to resources/vocab/2019/10/2019-10-21-机场.md
diff --git a/data/resources/vocab/2019/10/2019-10-21-港口.md b/resources/vocab/2019/10/2019-10-21-港口.md
similarity index 100%
rename from data/resources/vocab/2019/10/2019-10-21-港口.md
rename to resources/vocab/2019/10/2019-10-21-港口.md
diff --git a/data/resources/vocab/2019/10/2019-10-22-交通.md b/resources/vocab/2019/10/2019-10-22-交通.md
similarity index 100%
rename from data/resources/vocab/2019/10/2019-10-22-交通.md
rename to resources/vocab/2019/10/2019-10-22-交通.md
diff --git a/data/resources/vocab/2019/10/2019-10-26-医院.md b/resources/vocab/2019/10/2019-10-26-医院.md
similarity index 100%
rename from data/resources/vocab/2019/10/2019-10-26-医院.md
rename to resources/vocab/2019/10/2019-10-26-医院.md
diff --git a/data/resources/vocab/2019/10/2019-10-30-病症.md b/resources/vocab/2019/10/2019-10-30-病症.md
similarity index 100%
rename from data/resources/vocab/2019/10/2019-10-30-病症.md
rename to resources/vocab/2019/10/2019-10-30-病症.md
diff --git a/data/resources/vocab/2019/11/2019-11-08-医疗.md b/resources/vocab/2019/11/2019-11-08-医疗.md
similarity index 100%
rename from data/resources/vocab/2019/11/2019-11-08-医疗.md
rename to resources/vocab/2019/11/2019-11-08-医疗.md
diff --git a/data/resources/vocab/2019/12/2019-12-08-动物.md b/resources/vocab/2019/12/2019-12-08-动物.md
similarity index 100%
rename from data/resources/vocab/2019/12/2019-12-08-动物.md
rename to resources/vocab/2019/12/2019-12-08-动物.md
diff --git a/data/resources/vocab/2019/12/2019-12-13-动物.md b/resources/vocab/2019/12/2019-12-13-动物.md
similarity index 100%
rename from data/resources/vocab/2019/12/2019-12-13-动物.md
rename to resources/vocab/2019/12/2019-12-13-动物.md
diff --git a/data/slides/.markdownlint.json b/slides/.markdownlint.json
similarity index 100%
rename from data/slides/.markdownlint.json
rename to slides/.markdownlint.json
diff --git a/data/slides/old/idiom1.md b/slides/old/idiom1.md
similarity index 100%
rename from data/slides/old/idiom1.md
rename to slides/old/idiom1.md
diff --git a/data/slides/old/句子1.1.md b/slides/old/句子1.1.md
similarity index 100%
rename from data/slides/old/句子1.1.md
rename to slides/old/句子1.1.md
diff --git a/data/slides/old/句子1.2.md b/slides/old/句子1.2.md
similarity index 100%
rename from data/slides/old/句子1.2.md
rename to slides/old/句子1.2.md
diff --git a/data/slides/old/句子1.3.md b/slides/old/句子1.3.md
similarity index 100%
rename from data/slides/old/句子1.3.md
rename to slides/old/句子1.3.md
diff --git a/data/slides/old/句子x1.md b/slides/old/句子x1.md
similarity index 100%
rename from data/slides/old/句子x1.md
rename to slides/old/句子x1.md
diff --git a/data/slides/old/汉语常用反义词/11-20.md b/slides/old/汉语常用反义词/11-20.md
similarity index 100%
rename from data/slides/old/汉语常用反义词/11-20.md
rename to slides/old/汉语常用反义词/11-20.md
diff --git a/data/slides/old/泰语分类词汇/调味料词汇.md b/slides/old/泰语分类词汇/调味料词汇.md
similarity index 100%
rename from data/slides/old/泰语分类词汇/调味料词汇.md
rename to slides/old/泰语分类词汇/调味料词汇.md
diff --git a/data/slides/old/身体1.md b/slides/old/身体1.md
similarity index 100%
rename from data/slides/old/身体1.md
rename to slides/old/身体1.md
diff --git a/data/slides/sentences/2019-09-27.md b/slides/sentences/2019-09-27.md
similarity index 100%
rename from data/slides/sentences/2019-09-27.md
rename to slides/sentences/2019-09-27.md
diff --git a/data/slides/vocab/chinese/2019-09-26-body.md b/slides/vocab/chinese/2019-09-26-body.md
similarity index 100%
rename from data/slides/vocab/chinese/2019-09-26-body.md
rename to slides/vocab/chinese/2019-09-26-body.md
diff --git a/data/slides/vocab/chinese/2019-09-26-expression.md b/slides/vocab/chinese/2019-09-26-expression.md
similarity index 100%
rename from data/slides/vocab/chinese/2019-09-26-expression.md
rename to slides/vocab/chinese/2019-09-26-expression.md
diff --git a/data/slides/vocab/chinese/2019-09-27-relationship.md b/slides/vocab/chinese/2019-09-27-relationship.md
similarity index 100%
rename from data/slides/vocab/chinese/2019-09-27-relationship.md
rename to slides/vocab/chinese/2019-09-27-relationship.md
diff --git a/data/slides/vocab/chinese/2019-09-30-fruit.md b/slides/vocab/chinese/2019-09-30-fruit.md
similarity index 100%
rename from data/slides/vocab/chinese/2019-09-30-fruit.md
rename to slides/vocab/chinese/2019-09-30-fruit.md
diff --git a/data/slides/vocab/images/2019-09-26-IT.md b/slides/vocab/images/2019-09-26-IT.md
similarity index 100%
rename from data/slides/vocab/images/2019-09-26-IT.md
rename to slides/vocab/images/2019-09-26-IT.md
diff --git a/data/slides/vocab/images/2019-09-26-body.md b/slides/vocab/images/2019-09-26-body.md
similarity index 100%
rename from data/slides/vocab/images/2019-09-26-body.md
rename to slides/vocab/images/2019-09-26-body.md
diff --git a/data/slides/vocab/images/2019-09-29-动词.md b/slides/vocab/images/2019-09-29-动词.md
similarity index 100%
rename from data/slides/vocab/images/2019-09-29-动词.md
rename to slides/vocab/images/2019-09-29-动词.md
diff --git a/data/slides/vocab/images/2019-09-29-性格.md b/slides/vocab/images/2019-09-29-性格.md
similarity index 100%
rename from data/slides/vocab/images/2019-09-29-性格.md
rename to slides/vocab/images/2019-09-29-性格.md
diff --git a/data/slides/vocab/listening/2019-10-03-daily-stuff.md b/slides/vocab/listening/2019-10-03-daily-stuff.md
similarity index 100%
rename from data/slides/vocab/listening/2019-10-03-daily-stuff.md
rename to slides/vocab/listening/2019-10-03-daily-stuff.md
diff --git a/data/slides/vocab/listening/2019-10-19-交通.md b/slides/vocab/listening/2019-10-19-交通.md
similarity index 100%
rename from data/slides/vocab/listening/2019-10-19-交通.md
rename to slides/vocab/listening/2019-10-19-交通.md
diff --git a/data/slides/vocab/listening/2019-10-20-火车站.md b/slides/vocab/listening/2019-10-20-火车站.md
similarity index 100%
rename from data/slides/vocab/listening/2019-10-20-火车站.md
rename to slides/vocab/listening/2019-10-20-火车站.md
diff --git a/web/backend/.gitignore b/web/backend/.gitignore
deleted file mode 100644
index b512c09..0000000
--- a/web/backend/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
\ No newline at end of file
diff --git a/web/backend/assets/.gitignore b/web/backend/assets/.gitignore
deleted file mode 100644
index ee518af..0000000
--- a/web/backend/assets/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*
-*.*
-!.gitignore
\ No newline at end of file
diff --git a/web/backend/package.json b/web/backend/package.json
deleted file mode 100644
index f765af4..0000000
--- a/web/backend/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "backend",
- "version": "1.0.0",
- "private": true,
- "author": "Pacharapol Withayasakpunt (https://polvcode.dev)",
- "license": "MIT",
- "scripts": {
- "dev": "ts-node-dev src/index.ts"
- },
- "dependencies": {
- "@patarapolw/qsearch": "^1.1.1",
- "cors": "^2.8.5",
- "dayjs": "^1.8.21",
- "express": "^4.17.1",
- "fast-glob": "^3.2.2",
- "gray-matter": "^4.0.2",
- "nedb-promises": "^4.0.1",
- "pug": "^2.0.4",
- "scope-css": "^1.2.1",
- "showdown": "^1.9.1"
- },
- "devDependencies": {
- "@types/cors": "^2.8.6",
- "@types/express": "^4.17.2",
- "@types/node": "^13.7.6",
- "@types/pug": "^2.0.4",
- "@types/showdown": "^1.9.3",
- "ts-node-dev": "^1.0.0-pre.44",
- "typescript": "^3.8.2"
- }
-}
diff --git a/web/backend/scripts/prepare.ts b/web/backend/scripts/prepare.ts
deleted file mode 100644
index 3e6e5eb..0000000
--- a/web/backend/scripts/prepare.ts
+++ /dev/null
@@ -1,107 +0,0 @@
-import fs from 'fs'
-import crypto from 'crypto'
-
-import matter from 'gray-matter'
-import glob from 'fast-glob'
-import DataStore from 'nedb-promises'
-import dayjs from 'dayjs'
-
-import MakeHtml from '../src/utils/make-html'
-
-// eslint-disable-next-line camelcase
-const excerpt_separator = ''
-const db = new DataStore('assets/data.nedb')
-
-;(async () => {
- await db.ensureIndex({ fieldName: 'h', unique: true })
-
- const files = await glob('**/*.md', {
- cwd: '../../data'
- })
- await Promise.all(files.map(async (f) => {
- let type = ''
-
- if (f.startsWith('slides/')) {
- type = 'slides'
- }
-
- const s = fs.readFileSync(`../../data/${f}`, 'utf8')
- const h = crypto.createHash('sha256').update(s).digest('base64')
-
- const { data, content, excerpt } = matter(s, {
- excerpt_separator
- })
-
- try {
- if (type === 'slides') {
- const slides = content.split(/\n===\n/g).map((ss) => {
- return ss.split(/\n--\n/g).map((s) => {
- const make = new MakeHtml()
- return make.parse(s)
- }).reduce((prev, c, i) => ({ ...prev, [i.toString()]: c }), {} as any)
- }).reduce((prev, c, i) => ({ ...prev, [i.toString()]: c }), {} as any)
-
- const computedExcerpt = slides['0']['0']
-
- await db.insert({
- ...data,
- date: formatDate(data.date),
- filename: f,
- type,
- slug: f.replace(/^slides\//, '').replace(/\.md$/, ''),
- h,
- excerpt: computedExcerpt,
- slides
- })
- } else {
- const make = new MakeHtml()
-
- let computedExcerpt = ''
- let computedContent = ''
-
- if (excerpt) {
- computedExcerpt = make.parse(excerpt)
- computedContent = make.parse(content.substr(excerpt.length + excerpt_separator.length))
- } else {
- computedContent = make.parse(content)
- computedExcerpt = computedContent.substr(0, 500).replace(/<[^>]*$/, '')
- computedContent = computedContent.substr(computedExcerpt.length)
- }
-
- await db.insert({
- ...data,
- date: formatDate(data.date),
- filename: f,
- type: f.split('/')[0],
- slug: f.startsWith('posts/blog/')
- ? f.replace(/^posts\/blog\//, '').replace(/\.md$/, '')
- : f.startsWith('posts/')
- ? (() => {
- const ff = f.split('/')
- return ff[ff.length - 1].replace(/\.md$/, '')
- })()
- : f.replace(/^[^/]+?\//, '').replace(/\.md$/, ''),
- h,
- excerpt: computedExcerpt,
- remaining: computedContent
- })
- }
- } catch (e) {
- console.error(e, f)
- }
- }))
-})().catch(console.error)
-
-const tzOffset = new Date().getTimezoneOffset()
-
-function formatDate (d?: string | Date) {
- if (d) {
- if (typeof d === 'string') {
- return dayjs(d).toDate()
- } else {
- return dayjs(d).add(tzOffset, 'minute').toDate()
- }
- }
-
- return d
-}
diff --git a/web/backend/src/api/data.ts b/web/backend/src/api/data.ts
deleted file mode 100644
index 4b18af8..0000000
--- a/web/backend/src/api/data.ts
+++ /dev/null
@@ -1,65 +0,0 @@
-import fs from 'fs'
-import path from 'path'
-
-import { Router } from 'express'
-import bodyParser from 'body-parser'
-import QSearch from '@patarapolw/qsearch'
-
-import MakeHtml from '../utils/make-html'
-import { db } from '../global'
-
-const dataRouter = Router()
-dataRouter.use(bodyParser.json())
-
-dataRouter.get('/*', (req, res) => {
- const p = path.join('../../data', `${req.params[0]}.md`)
-
- if (fs.existsSync(p)) {
- const d = fs.readFileSync(p, 'utf8')
- const html = new MakeHtml().parse(d)
-
- res.send(html)
- } else {
- res.sendStatus(404)
- }
-})
-
-dataRouter.post('/:type', async (req, res, next) => {
- try {
- const { q, cond = {}, project, offset, limit } = req.body
- const $and = [
- { type: req.params.type },
- cond
- ]
-
- if (q) {
- const parser = new QSearch({
- dialect: 'nedb',
- schema: {
- title: {},
- slug: {},
- excerpt: {},
- date: { type: 'date' }
- }
- })
- $and.push(parser.parse(q).cond)
- }
-
- const count = await db.count({ $and })
-
- let c = db.find({ $and }, project).sort({ date: -1 }).skip(offset || 0)
-
- if (limit !== null) {
- c = c.limit(limit || 5)
- }
-
- res.json({
- data: await c,
- count
- })
- } catch (e) {
- next(e)
- }
-})
-
-export default dataRouter
diff --git a/web/backend/src/api/index.ts b/web/backend/src/api/index.ts
deleted file mode 100644
index eebd8af..0000000
--- a/web/backend/src/api/index.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { Router } from 'express'
-import cors from 'cors'
-import dataRouter from './data'
-
-const apiRouter = Router()
-apiRouter.use(cors())
-
-apiRouter.get('/', (req, res) => res.sendStatus(200))
-apiRouter.get('/api/favicon.ico', (req, res) => {
- res.sendFile('../../data/favicon.ico')
-})
-
-apiRouter.use('/data', dataRouter)
-
-export default apiRouter
diff --git a/web/backend/src/global.ts b/web/backend/src/global.ts
deleted file mode 100644
index 8fc3702..0000000
--- a/web/backend/src/global.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import DataStore from 'nedb-promises'
-
-export const db = new DataStore('assets/data.nedb')
diff --git a/web/backend/src/index.ts b/web/backend/src/index.ts
deleted file mode 100644
index 895f147..0000000
--- a/web/backend/src/index.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import express from 'express'
-import apiRouter from './api'
-
-const app = express()
-const PORT = process.env.PORT || '48000'
-
-app.use('/api', apiRouter)
-
-app.listen(PORT, () => {
- console.info(`Server is running at http://localhost:${PORT}`)
-})
diff --git a/web/backend/src/utils/make-html.ts b/web/backend/src/utils/make-html.ts
deleted file mode 100644
index 63e30a4..0000000
--- a/web/backend/src/utils/make-html.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-import pug from 'pug'
-// @ts-ignore
-import scopeCss from 'scope-css'
-import showdown from 'showdown'
-
-export default class MakeHtml {
- md = new showdown.Converter({
- metadata: true
- })
-
- constructor (public id = 'el-' + Math.random().toString(36).substr(2)) {
- this.md.setFlavor('github')
-
- this.md.addExtension({
- type: 'lang',
- filter (text) {
- const rowRegex = /(?:(?:^|\r?\n)(?:\| )?(?:(?:.* \| )+.+)*(?:.* \| )+.+(?: \|)?(?:$|\r?\n))+/m
- text = text.replace(rowRegex, (p0) => {
- return `${
- p0.trim().split('\n').map((pi) => {
- pi = pi.trim().replace(/^|/, '').replace(/|$/, '')
- return `${
- pi.split(' | ').map((x) => x.trim()).map((qi) => {
- return `| ${qi} | `
- })
- }
`
- })
- }
`
- })
- return text
- }
- }, 'table')
- }
-
- parse (d: string) {
- d = d
- .replace(/```pug parsed\n(.+?)\n```/gs, (_, p1) => {
- return pug.compile(p1, {
- filters: {
- markdown: (s: string) => `${s}`
- }
- })()
- })
- .replace(/```css parsed\n(.+?)\n```/gs, (_, p1) => {
- return ``
- })
- .replace(/]*)>(.+?)<\/x-markdown>/gs, (_, p1: string, p2: string) => {
- const lines = p2.split('\n')
- const marginRegex = new RegExp(`^ {1,${Math.max(0,
- ...lines
- .map((line) => /^ +[^ ]/.exec(line))
- .map((m) => m ? m[0].length : 0)
- )}}`)
-
- return `${
- lines.map((line) => line.replace(marginRegex, '')).join('\n')
- }`
- })
-
- return `${this.md.makeHtml(d)}
`
- }
-}
diff --git a/web/backend/tsconfig.json b/web/backend/tsconfig.json
deleted file mode 100644
index c939016..0000000
--- a/web/backend/tsconfig.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "compilerOptions": {
- /* Basic Options */
- // "incremental": true, /* Enable incremental compilation */
- "target": "esnext", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
- "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
- // "lib": [], /* Specify library files to be included in the compilation. */
- // "allowJs": true, /* Allow javascript files to be compiled. */
- // "checkJs": true, /* Report errors in .js files. */
- // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
- // "declaration": true, /* Generates corresponding '.d.ts' file. */
- // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */
- // "sourceMap": true, /* Generates corresponding '.map' file. */
- // "outFile": "./", /* Concatenate and emit output to single file. */
- // "outDir": "./", /* Redirect output structure to the directory. */
- // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
- // "composite": true, /* Enable project compilation */
- // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */
- // "removeComments": true, /* Do not emit comments to output. */
- // "noEmit": true, /* Do not emit outputs. */
- // "importHelpers": true, /* Import emit helpers from 'tslib'. */
- // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
- // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
-
- /* Strict Type-Checking Options */
- "strict": true, /* Enable all strict type-checking options. */
- "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
- "strictNullChecks": true, /* Enable strict null checks. */
- "strictFunctionTypes": true, /* Enable strict checking of function types. */
- "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
- "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */
- "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */
- "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
-
- /* Additional Checks */
- // "noUnusedLocals": true, /* Report errors on unused locals. */
- // "noUnusedParameters": true, /* Report errors on unused parameters. */
- // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
- // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
-
- /* Module Resolution Options */
- // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
- // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */
- // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
- // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
- // "typeRoots": [], /* List of folders to include type definitions from. */
- // "types": [], /* Type declaration files to be included in compilation. */
- // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
- "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
- // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
- // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
-
- /* Source Map Options */
- // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
- // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
- // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
- // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
-
- /* Experimental Options */
- // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
- // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
-
- /* Advanced Options */
- "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */
- }
-}
diff --git a/web/backend/yarn.lock b/web/backend/yarn.lock
deleted file mode 100644
index e037543..0000000
--- a/web/backend/yarn.lock
+++ /dev/null
@@ -1,1864 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@nodelib/fs.scandir@2.1.3":
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b"
- integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==
- dependencies:
- "@nodelib/fs.stat" "2.0.3"
- run-parallel "^1.1.9"
-
-"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2":
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3"
- integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==
-
-"@nodelib/fs.walk@^1.2.3":
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976"
- integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==
- dependencies:
- "@nodelib/fs.scandir" "2.1.3"
- fastq "^1.6.0"
-
-"@patarapolw/qsearch@^1.1.1":
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/@patarapolw/qsearch/-/qsearch-1.1.1.tgz#58fb4c53a1a89f2981a88f848287e4ebd399aba1"
- integrity sha512-Z7H3FX5WWYwGK4ZpVZqHBHQyhtqYOZaTW1FIWb6aspHgKgkym/YixpVDzI+pRK6Wa/oN/UhwJnKt/twOfJcL3g==
- dependencies:
- dot-prop "^5.2.0"
- escape-string-regexp "^2.0.0"
- shlex "^2.0.1"
-
-"@types/babel-types@*", "@types/babel-types@^7.0.0":
- version "7.0.7"
- resolved "https://registry.yarnpkg.com/@types/babel-types/-/babel-types-7.0.7.tgz#667eb1640e8039436028055737d2b9986ee336e3"
- integrity sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ==
-
-"@types/babylon@^6.16.2":
- version "6.16.5"
- resolved "https://registry.yarnpkg.com/@types/babylon/-/babylon-6.16.5.tgz#1c5641db69eb8cdf378edd25b4be7754beeb48b4"
- integrity sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==
- dependencies:
- "@types/babel-types" "*"
-
-"@types/body-parser@*":
- version "1.19.0"
- resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f"
- integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==
- dependencies:
- "@types/connect" "*"
- "@types/node" "*"
-
-"@types/connect@*":
- version "3.4.33"
- resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546"
- integrity sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==
- dependencies:
- "@types/node" "*"
-
-"@types/cors@^2.8.6":
- version "2.8.6"
- resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.6.tgz#cfaab33c49c15b1ded32f235111ce9123009bd02"
- integrity sha512-invOmosX0DqbpA+cE2yoHGUlF/blyf7nB0OGYBBiH27crcVm5NmFaZkLP4Ta1hGaesckCi5lVLlydNJCxkTOSg==
- dependencies:
- "@types/express" "*"
-
-"@types/express-serve-static-core@*":
- version "4.17.2"
- resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.2.tgz#f6f41fa35d42e79dbf6610eccbb2637e6008a0cf"
- integrity sha512-El9yMpctM6tORDAiBwZVLMcxoTMcqqRO9dVyYcn7ycLWbvR8klrDn8CAOwRfZujZtWD7yS/mshTdz43jMOejbg==
- dependencies:
- "@types/node" "*"
- "@types/range-parser" "*"
-
-"@types/express@*", "@types/express@^4.17.2":
- version "4.17.2"
- resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.2.tgz#a0fb7a23d8855bac31bc01d5a58cadd9b2173e6c"
- integrity sha512-5mHFNyavtLoJmnusB8OKJ5bshSzw+qkMIBAobLrIM48HJvunFva9mOa6aBwh64lBFyNwBbs0xiEFuj4eU/NjCA==
- dependencies:
- "@types/body-parser" "*"
- "@types/express-serve-static-core" "*"
- "@types/serve-static" "*"
-
-"@types/mime@*":
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.1.tgz#dc488842312a7f075149312905b5e3c0b054c79d"
- integrity sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw==
-
-"@types/node@*", "@types/node@^13.7.6":
- version "13.7.6"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.6.tgz#cb734a7c191472ae6a2b3a502b4dfffcea974113"
- integrity sha512-eyK7MWD0R1HqVTp+PtwRgFeIsemzuj4gBFSQxfPHY5iMjS7474e5wq+VFgTcdpyHeNxyKSaetYAjdMLJlKoWqA==
-
-"@types/pug@^2.0.4":
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.4.tgz#8772fcd0418e3cd2cc171555d73007415051f4b2"
- integrity sha1-h3L80EGOPNLMFxVV1zAHQVBR9LI=
-
-"@types/range-parser@*":
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c"
- integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==
-
-"@types/serve-static@*":
- version "1.13.3"
- resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.3.tgz#eb7e1c41c4468272557e897e9171ded5e2ded9d1"
- integrity sha512-oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g==
- dependencies:
- "@types/express-serve-static-core" "*"
- "@types/mime" "*"
-
-"@types/showdown@^1.9.3":
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/@types/showdown/-/showdown-1.9.3.tgz#eaa881b03a32d3720184731754d3025fc450b970"
- integrity sha512-akvzSmrvY4J5d3tHzUUiQr0xpjd4Nb3uzWW6dtwzYJ+qW/KdWw5F8NLatnor5q/1LURHnzDA1ReEwCVqcatRnw==
-
-"@types/strip-bom@^3.0.0":
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2"
- integrity sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=
-
-"@types/strip-json-comments@0.0.30":
- version "0.0.30"
- resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1"
- integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==
-
-accepts@~1.3.7:
- version "1.3.7"
- resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
- integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
- dependencies:
- mime-types "~2.1.24"
- negotiator "0.6.2"
-
-acorn-globals@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf"
- integrity sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=
- dependencies:
- acorn "^4.0.4"
-
-acorn@^3.1.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
- integrity sha1-ReN/s56No/JbruP/U2niu18iAXo=
-
-acorn@^4.0.4, acorn@~4.0.2:
- version "4.0.13"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
- integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=
-
-align-text@^0.1.1, align-text@^0.1.3:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
- integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=
- dependencies:
- kind-of "^3.0.2"
- longest "^1.0.1"
- repeat-string "^1.5.2"
-
-ansi-regex@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
- integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
-
-ansi-styles@^3.2.0:
- 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"
-
-arg@^4.1.0:
- version "4.1.3"
- resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
- integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
-
-argparse@^1.0.7:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
- integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
- dependencies:
- sprintf-js "~1.0.2"
-
-array-find-index@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
- integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=
-
-array-flatten@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
- integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
-
-asap@~2.0.3:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
- integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
-
-async@0.2.10:
- version "0.2.10"
- resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
- integrity sha1-trvgsGdLnXGXCMo43owjfLUmw9E=
-
-babel-runtime@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
- integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
- dependencies:
- core-js "^2.4.0"
- regenerator-runtime "^0.11.0"
-
-babel-types@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
- integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=
- dependencies:
- babel-runtime "^6.26.0"
- esutils "^2.0.2"
- lodash "^4.17.4"
- to-fast-properties "^1.0.3"
-
-babylon@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
- integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
-
-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=
-
-binary-search-tree@0.2.5:
- version "0.2.5"
- resolved "https://registry.yarnpkg.com/binary-search-tree/-/binary-search-tree-0.2.5.tgz#7dbb3b210fdca082450dad2334c304af39bdc784"
- integrity sha1-fbs7IQ/coIJFDa0jNMMErzm9x4Q=
- dependencies:
- underscore "~1.4.4"
-
-body-parser@1.19.0:
- version "1.19.0"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
- integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
- dependencies:
- bytes "3.1.0"
- content-type "~1.0.4"
- debug "2.6.9"
- depd "~1.1.2"
- http-errors "1.7.2"
- iconv-lite "0.4.24"
- on-finished "~2.3.0"
- qs "6.7.0"
- raw-body "2.4.0"
- type-is "~1.6.17"
-
-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"
-
-braces@^3.0.1:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
- integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
- dependencies:
- fill-range "^7.0.1"
-
-buffer-from@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
- integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
-
-bytes@3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
- integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
-
-camelcase-keys@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
- integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc=
- dependencies:
- camelcase "^2.0.0"
- map-obj "^1.0.0"
-
-camelcase@^1.0.2:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
- integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=
-
-camelcase@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
- integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=
-
-camelcase@^5.0.0:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
- integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
-
-center-align@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
- integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60=
- dependencies:
- align-text "^0.1.3"
- lazy-cache "^1.0.3"
-
-character-parser@^2.1.1:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0"
- integrity sha1-x84o821LzZdE5f/CxfzeHHMmH8A=
- dependencies:
- is-regex "^1.0.3"
-
-clean-css@^4.1.11:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78"
- integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==
- dependencies:
- source-map "~0.6.0"
-
-cliui@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
- integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=
- dependencies:
- center-align "^0.1.1"
- right-align "^0.1.1"
- wordwrap "0.0.2"
-
-cliui@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
- integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==
- dependencies:
- string-width "^3.1.0"
- strip-ansi "^5.2.0"
- wrap-ansi "^5.1.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=
-
-constantinople@^3.0.1, constantinople@^3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-3.1.2.tgz#d45ed724f57d3d10500017a7d3a889c1381ae647"
- integrity sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==
- dependencies:
- "@types/babel-types" "^7.0.0"
- "@types/babylon" "^6.16.2"
- babel-types "^6.26.0"
- babylon "^6.18.0"
-
-content-disposition@0.5.3:
- version "0.5.3"
- resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
- integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
- dependencies:
- safe-buffer "5.1.2"
-
-content-type@~1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
- integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
-
-cookie-signature@1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
- integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
-
-cookie@0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
- integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
-
-core-js@^2.4.0:
- version "2.6.11"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c"
- integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==
-
-cors@^2.8.5:
- version "2.8.5"
- resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
- integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
- dependencies:
- object-assign "^4"
- vary "^1"
-
-currently-unhandled@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
- integrity sha1-mI3zP+qxke95mmE2nddsF635V+o=
- dependencies:
- array-find-index "^1.0.1"
-
-dateformat@~1.0.4-1.2.3:
- version "1.0.12"
- resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9"
- integrity sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=
- dependencies:
- get-stdin "^4.0.1"
- meow "^3.3.0"
-
-dayjs@^1.8.21:
- version "1.8.21"
- resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.21.tgz#98299185b72b9b679f31c7ed987b63923c961552"
- integrity sha512-1kbWK0hziklUHkGgiKr7xm59KwAg/K3Tp7H/8X+f58DnNCwY3pKYjOCJpIlVs125FRBukGVZdKZojC073D0IeQ==
-
-debounce@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.0.tgz#44a540abc0ea9943018dc0eaa95cce87f65cd131"
- integrity sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==
-
-debug@2.6.9:
- version "2.6.9"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
- integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
- dependencies:
- ms "2.0.0"
-
-decamelize@^1.0.0, decamelize@^1.1.2, decamelize@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
- integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
-
-depd@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
- integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
-
-destroy@~1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
- integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
-
-diff@^4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
- integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
-
-doctypes@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9"
- integrity sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=
-
-dot-prop@^5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb"
- integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==
- dependencies:
- is-obj "^2.0.0"
-
-dynamic-dedupe@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz#06e44c223f5e4e94d78ef9db23a6515ce2f962a1"
- integrity sha1-BuRMIj9eTpTXjvnbI6ZRXOL5YqE=
- dependencies:
- xtend "^4.0.0"
-
-ee-first@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
- integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
-
-emoji-regex@^7.0.1:
- version "7.0.3"
- resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
- integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
-
-encodeurl@~1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
- integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
-
-error-ex@^1.2.0:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
- integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
- dependencies:
- is-arrayish "^0.2.1"
-
-escape-html@~1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
- integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
-
-escape-string-regexp@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
- integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
-
-escaper@^2.5.3:
- version "2.5.3"
- resolved "https://registry.yarnpkg.com/escaper/-/escaper-2.5.3.tgz#8b8fe90ba364054151ab7eff18b4ce43b1e13ab5"
- integrity sha512-QGb9sFxBVpbzMggrKTX0ry1oiI4CSDAl9vIL702hzl1jGW8VZs7qfqTRX7WDOjoNDoEVGcEtu1ZOQgReSfT2kQ==
-
-esprima@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
- integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-
-esutils@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
- integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
-
-etag@~1.8.1:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
- integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
-
-express@^4.17.1:
- version "4.17.1"
- resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
- integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
- dependencies:
- accepts "~1.3.7"
- array-flatten "1.1.1"
- body-parser "1.19.0"
- content-disposition "0.5.3"
- content-type "~1.0.4"
- cookie "0.4.0"
- cookie-signature "1.0.6"
- debug "2.6.9"
- depd "~1.1.2"
- encodeurl "~1.0.2"
- escape-html "~1.0.3"
- etag "~1.8.1"
- finalhandler "~1.1.2"
- fresh "0.5.2"
- merge-descriptors "1.0.1"
- methods "~1.1.2"
- on-finished "~2.3.0"
- parseurl "~1.3.3"
- path-to-regexp "0.1.7"
- proxy-addr "~2.0.5"
- qs "6.7.0"
- range-parser "~1.2.1"
- safe-buffer "5.1.2"
- send "0.17.1"
- serve-static "1.14.1"
- setprototypeof "1.1.1"
- statuses "~1.5.0"
- type-is "~1.6.18"
- utils-merge "1.0.1"
- vary "~1.1.2"
-
-extend-shallow@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
- integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
- dependencies:
- is-extendable "^0.1.0"
-
-fast-glob@^3.2.2:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.2.tgz#ade1a9d91148965d4bf7c51f72e1ca662d32e63d"
- integrity sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==
- dependencies:
- "@nodelib/fs.stat" "^2.0.2"
- "@nodelib/fs.walk" "^1.2.3"
- glob-parent "^5.1.0"
- merge2 "^1.3.0"
- micromatch "^4.0.2"
- picomatch "^2.2.1"
-
-fastq@^1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.0.tgz#4ec8a38f4ac25f21492673adb7eae9cfef47d1c2"
- integrity sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA==
- dependencies:
- reusify "^1.0.0"
-
-filewatcher@~3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/filewatcher/-/filewatcher-3.0.1.tgz#f4a1957355ddaf443ccd78a895f3d55e23c8a034"
- integrity sha1-9KGVc1Xdr0Q8zXiolfPVXiPIoDQ=
- dependencies:
- debounce "^1.0.0"
-
-fill-range@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
- integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
- dependencies:
- to-regex-range "^5.0.1"
-
-finalhandler@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
- integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
- dependencies:
- debug "2.6.9"
- encodeurl "~1.0.2"
- escape-html "~1.0.3"
- on-finished "~2.3.0"
- parseurl "~1.3.3"
- statuses "~1.5.0"
- unpipe "~1.0.0"
-
-find-up@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
- integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=
- dependencies:
- path-exists "^2.0.0"
- pinkie-promise "^2.0.0"
-
-find-up@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
- integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
- dependencies:
- locate-path "^3.0.0"
-
-forwarded@~0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
- integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
-
-fresh@0.5.2:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
- integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
-
-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=
-
-function-bind@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
- integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
-
-get-caller-file@^2.0.1:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
- integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
-
-get-stdin@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
- integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=
-
-glob-parent@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2"
- integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==
- dependencies:
- is-glob "^4.0.1"
-
-glob@^7.1.3:
- 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.2:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
- integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
-
-gray-matter@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.2.tgz#9aa379e3acaf421193fce7d2a28cebd4518ac454"
- integrity sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw==
- dependencies:
- js-yaml "^3.11.0"
- kind-of "^6.0.2"
- section-matter "^1.0.0"
- strip-bom-string "^1.0.0"
-
-growly@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
- integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
-
-has@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
- integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
- dependencies:
- function-bind "^1.1.1"
-
-hosted-git-info@^2.1.4:
- version "2.8.7"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.7.tgz#4d2e0d5248e1cfabc984b0f6a6d75fe36e679511"
- integrity sha512-ChkjQtKJ3GI6SsI4O5jwr8q8EPrWCnxuc4Tbx+vRI5x6mDOpjKKltNo1lRlszw3xwgTOSns1ZRBiMmmwpcvLxg==
-
-http-errors@1.7.2:
- version "1.7.2"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
- integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
- dependencies:
- depd "~1.1.2"
- inherits "2.0.3"
- setprototypeof "1.1.1"
- statuses ">= 1.5.0 < 2"
- toidentifier "1.0.0"
-
-http-errors@~1.7.2:
- version "1.7.3"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
- integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
- dependencies:
- depd "~1.1.2"
- inherits "2.0.4"
- setprototypeof "1.1.1"
- statuses ">= 1.5.0 < 2"
- toidentifier "1.0.0"
-
-iconv-lite@0.4.24:
- version "0.4.24"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
- integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
- dependencies:
- safer-buffer ">= 2.1.2 < 3"
-
-immediate@~3.0.5:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
- integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=
-
-indent-string@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
- integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=
- dependencies:
- repeating "^2.0.0"
-
-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, inherits@2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
- integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
-inherits@2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
- integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
-
-ipaddr.js@1.9.1:
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
- integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
-
-is-arrayish@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
- integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
-
-is-buffer@^1.1.5:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
- integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-
-is-expression@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-3.0.0.tgz#39acaa6be7fd1f3471dc42c7416e61c24317ac9f"
- integrity sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=
- dependencies:
- acorn "~4.0.2"
- object-assign "^4.0.1"
-
-is-extendable@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
- integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
-
-is-extglob@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
- integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
-
-is-finite@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3"
- integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==
-
-is-fullwidth-code-point@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
- integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
-
-is-glob@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
- integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
- dependencies:
- is-extglob "^2.1.1"
-
-is-number@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
- integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-
-is-obj@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
- integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
-
-is-promise@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
- integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
-
-is-regex@^1.0.3:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae"
- integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==
- dependencies:
- has "^1.0.3"
-
-is-regexp@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
- integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=
-
-is-utf8@^0.2.0:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
- integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
-
-is-wsl@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
- integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
-
-isexe@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
- integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
-
-js-stringify@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db"
- integrity sha1-Fzb939lyTyijaCrcYjCufk6Weds=
-
-js-yaml@^3.11.0:
- version "3.13.1"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
- integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
- dependencies:
- argparse "^1.0.7"
- esprima "^4.0.0"
-
-jstransformer@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3"
- integrity sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=
- dependencies:
- is-promise "^2.0.0"
- promise "^7.0.1"
-
-kind-of@^3.0.2:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
- integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
- dependencies:
- is-buffer "^1.1.5"
-
-kind-of@^6.0.0, kind-of@^6.0.2:
- version "6.0.3"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
- integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
-
-lazy-cache@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
- integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4=
-
-lie@3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e"
- integrity sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=
- dependencies:
- immediate "~3.0.5"
-
-load-json-file@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
- integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^2.2.0"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
- strip-bom "^2.0.0"
-
-localforage@^1.3.0:
- version "1.7.3"
- resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.7.3.tgz#0082b3ca9734679e1bd534995bdd3b24cf10f204"
- integrity sha512-1TulyYfc4udS7ECSBT2vwJksWbkwwTX8BzeUIiq8Y07Riy7bDAAnxDaPU/tWyOVmQAcWJIEIFP9lPfBGqVoPgQ==
- dependencies:
- lie "3.1.1"
-
-locate-path@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
- integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
- dependencies:
- p-locate "^3.0.0"
- path-exists "^3.0.0"
-
-lodash@^4.17.4:
- version "4.17.15"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
- integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
-
-longest@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
- integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=
-
-loud-rejection@^1.0.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
- integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=
- dependencies:
- currently-unhandled "^0.4.1"
- signal-exit "^3.0.0"
-
-make-error@^1.1.1:
- version "1.3.6"
- resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
- integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
-
-map-obj@^1.0.0, map-obj@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
- integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
-
-media-typer@0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
- integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
-
-meow@^3.3.0:
- version "3.7.0"
- resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
- integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=
- dependencies:
- camelcase-keys "^2.0.0"
- decamelize "^1.1.2"
- loud-rejection "^1.0.0"
- map-obj "^1.0.1"
- minimist "^1.1.3"
- normalize-package-data "^2.3.4"
- object-assign "^4.0.1"
- read-pkg-up "^1.0.1"
- redent "^1.0.0"
- trim-newlines "^1.0.0"
-
-merge-descriptors@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
- integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
-
-merge2@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81"
- integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==
-
-methods@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
- integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
-
-micromatch@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
- integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
- dependencies:
- braces "^3.0.1"
- picomatch "^2.0.5"
-
-mime-db@1.43.0:
- version "1.43.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58"
- integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==
-
-mime-types@~2.1.24:
- version "2.1.26"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06"
- integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==
- dependencies:
- mime-db "1.43.0"
-
-mime@1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
- integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
-
-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"
-
-minimist@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
- integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
-
-minimist@^1.1.3:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
- integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
-
-mkdirp@^0.5.1, mkdirp@~0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
- integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
- dependencies:
- minimist "0.0.8"
-
-ms@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
- integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
-
-ms@2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
- integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
-
-nedb-promises@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/nedb-promises/-/nedb-promises-4.0.1.tgz#4d0bd1553d045acca5d6713ad76eb97aa830b390"
- integrity sha512-I6nVZ0zjjYGfja2UU8lDSEzjfQTS8bo+8jvn7apILpynYDKzLpl6YRfdPa+uRSUYDN9bH45wJ+gvRWcOjO2g5g==
- dependencies:
- nedb "^1.8.0"
-
-nedb@^1.8.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/nedb/-/nedb-1.8.0.tgz#0e3502cd82c004d5355a43c9e55577bd7bd91d88"
- integrity sha1-DjUCzYLABNU1WkPJ5VV3vXvZHYg=
- dependencies:
- async "0.2.10"
- binary-search-tree "0.2.5"
- localforage "^1.3.0"
- mkdirp "~0.5.1"
- underscore "~1.4.4"
-
-negotiator@0.6.2:
- version "0.6.2"
- resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
- integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
-
-node-notifier@^5.4.0:
- version "5.4.3"
- resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50"
- integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==
- dependencies:
- growly "^1.3.0"
- is-wsl "^1.1.0"
- semver "^5.5.0"
- shellwords "^0.1.1"
- which "^1.3.0"
-
-normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
- integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
- dependencies:
- hosted-git-info "^2.1.4"
- resolve "^1.10.0"
- semver "2 || 3 || 4 || 5"
- validate-npm-package-license "^3.0.1"
-
-object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
- integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
-
-on-finished@~2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
- integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
- dependencies:
- ee-first "1.1.1"
-
-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"
-
-p-limit@^2.0.0:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e"
- integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==
- dependencies:
- p-try "^2.0.0"
-
-p-locate@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
- integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
- dependencies:
- p-limit "^2.0.0"
-
-p-try@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
- integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
-
-parse-json@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
- integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=
- dependencies:
- error-ex "^1.2.0"
-
-parseurl@~1.3.3:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
- integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
-
-path-exists@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
- integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=
- dependencies:
- pinkie-promise "^2.0.0"
-
-path-exists@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
- integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
-
-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=
-
-path-parse@^1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
- integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
-
-path-to-regexp@0.1.7:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
- integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
-
-path-type@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
- integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=
- dependencies:
- graceful-fs "^4.1.2"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
-
-picomatch@^2.0.5, picomatch@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a"
- integrity sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==
-
-pify@^2.0.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
- integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
-
-pinkie-promise@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
- integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
- dependencies:
- pinkie "^2.0.0"
-
-pinkie@^2.0.0:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
- integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
-
-promise@^7.0.1:
- version "7.3.1"
- resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
- integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
- dependencies:
- asap "~2.0.3"
-
-proxy-addr@~2.0.5:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf"
- integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==
- dependencies:
- forwarded "~0.1.2"
- ipaddr.js "1.9.1"
-
-pug-attrs@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/pug-attrs/-/pug-attrs-2.0.4.tgz#b2f44c439e4eb4ad5d4ef25cac20d18ad28cc336"
- integrity sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==
- dependencies:
- constantinople "^3.0.1"
- js-stringify "^1.0.1"
- pug-runtime "^2.0.5"
-
-pug-code-gen@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-2.0.2.tgz#ad0967162aea077dcf787838d94ed14acb0217c2"
- integrity sha512-kROFWv/AHx/9CRgoGJeRSm+4mLWchbgpRzTEn8XCiwwOy6Vh0gAClS8Vh5TEJ9DBjaP8wCjS3J6HKsEsYdvaCw==
- dependencies:
- constantinople "^3.1.2"
- doctypes "^1.1.0"
- js-stringify "^1.0.1"
- pug-attrs "^2.0.4"
- pug-error "^1.3.3"
- pug-runtime "^2.0.5"
- void-elements "^2.0.1"
- with "^5.0.0"
-
-pug-error@^1.3.3:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-1.3.3.tgz#f342fb008752d58034c185de03602dd9ffe15fa6"
- integrity sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ==
-
-pug-filters@^3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-3.1.1.tgz#ab2cc82db9eeccf578bda89130e252a0db026aa7"
- integrity sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg==
- dependencies:
- clean-css "^4.1.11"
- constantinople "^3.0.1"
- jstransformer "1.0.0"
- pug-error "^1.3.3"
- pug-walk "^1.1.8"
- resolve "^1.1.6"
- uglify-js "^2.6.1"
-
-pug-lexer@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/pug-lexer/-/pug-lexer-4.1.0.tgz#531cde48c7c0b1fcbbc2b85485c8665e31489cfd"
- integrity sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==
- dependencies:
- character-parser "^2.1.1"
- is-expression "^3.0.0"
- pug-error "^1.3.3"
-
-pug-linker@^3.0.6:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-3.0.6.tgz#f5bf218b0efd65ce6670f7afc51658d0f82989fb"
- integrity sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg==
- dependencies:
- pug-error "^1.3.3"
- pug-walk "^1.1.8"
-
-pug-load@^2.0.12:
- version "2.0.12"
- resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-2.0.12.tgz#d38c85eb85f6e2f704dea14dcca94144d35d3e7b"
- integrity sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==
- dependencies:
- object-assign "^4.1.0"
- pug-walk "^1.1.8"
-
-pug-parser@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-5.0.1.tgz#03e7ada48b6840bd3822f867d7d90f842d0ffdc9"
- integrity sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA==
- dependencies:
- pug-error "^1.3.3"
- token-stream "0.0.1"
-
-pug-runtime@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/pug-runtime/-/pug-runtime-2.0.5.tgz#6da7976c36bf22f68e733c359240d8ae7a32953a"
- integrity sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw==
-
-pug-strip-comments@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz#cc1b6de1f6e8f5931cf02ec66cdffd3f50eaf8a8"
- integrity sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==
- dependencies:
- pug-error "^1.3.3"
-
-pug-walk@^1.1.8:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-1.1.8.tgz#b408f67f27912f8c21da2f45b7230c4bd2a5ea7a"
- integrity sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA==
-
-pug@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/pug/-/pug-2.0.4.tgz#ee7682ec0a60494b38d48a88f05f3b0ac931377d"
- integrity sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw==
- dependencies:
- pug-code-gen "^2.0.2"
- pug-filters "^3.1.1"
- pug-lexer "^4.1.0"
- pug-linker "^3.0.6"
- pug-load "^2.0.12"
- pug-parser "^5.0.1"
- pug-runtime "^2.0.5"
- pug-strip-comments "^1.0.4"
-
-qs@6.7.0:
- version "6.7.0"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
- integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
-
-range-parser@~1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
- integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
-
-raw-body@2.4.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
- integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
- dependencies:
- bytes "3.1.0"
- http-errors "1.7.2"
- iconv-lite "0.4.24"
- unpipe "1.0.0"
-
-read-pkg-up@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
- integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=
- dependencies:
- find-up "^1.0.0"
- read-pkg "^1.0.0"
-
-read-pkg@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
- integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=
- dependencies:
- load-json-file "^1.0.0"
- normalize-package-data "^2.3.2"
- path-type "^1.0.0"
-
-redent@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
- integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=
- dependencies:
- indent-string "^2.1.0"
- strip-indent "^1.0.1"
-
-regenerator-runtime@^0.11.0:
- version "0.11.1"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
- integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
-
-repeat-string@^1.5.2:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
- integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
-
-repeating@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
- integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=
- dependencies:
- is-finite "^1.0.0"
-
-require-directory@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
- integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
-
-require-main-filename@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
- integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
-
-resolve@^1.0.0, resolve@^1.1.6, resolve@^1.10.0:
- version "1.15.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8"
- integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==
- dependencies:
- path-parse "^1.0.6"
-
-reusify@^1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
- integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
-
-right-align@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
- integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8=
- dependencies:
- align-text "^0.1.1"
-
-rimraf@^2.6.1:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
- integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
- dependencies:
- glob "^7.1.3"
-
-run-parallel@^1.1.9:
- version "1.1.9"
- resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679"
- integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==
-
-safe-buffer@5.1.2:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
- integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-
-"safer-buffer@>= 2.1.2 < 3":
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
- integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-
-scope-css@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/scope-css/-/scope-css-1.2.1.tgz#c35768bc900cad030a3e0d663a818c0f6a57f40e"
- integrity sha512-UjLRmyEYaDNiOS673xlVkZFlVCtckJR/dKgr434VMm7Lb+AOOqXKdAcY7PpGlJYErjXXJzKN7HWo4uRPiZZG0Q==
- dependencies:
- escaper "^2.5.3"
- slugify "^1.3.1"
- strip-css-comments "^3.0.0"
-
-section-matter@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167"
- integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==
- dependencies:
- extend-shallow "^2.0.1"
- kind-of "^6.0.0"
-
-"semver@2 || 3 || 4 || 5", semver@^5.5.0:
- version "5.7.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
- integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-
-send@0.17.1:
- version "0.17.1"
- resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
- integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
- dependencies:
- debug "2.6.9"
- depd "~1.1.2"
- destroy "~1.0.4"
- encodeurl "~1.0.2"
- escape-html "~1.0.3"
- etag "~1.8.1"
- fresh "0.5.2"
- http-errors "~1.7.2"
- mime "1.6.0"
- ms "2.1.1"
- on-finished "~2.3.0"
- range-parser "~1.2.1"
- statuses "~1.5.0"
-
-serve-static@1.14.1:
- version "1.14.1"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
- integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
- dependencies:
- encodeurl "~1.0.2"
- escape-html "~1.0.3"
- parseurl "~1.3.3"
- send "0.17.1"
-
-set-blocking@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
- integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
-
-setprototypeof@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
- integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
-
-shellwords@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
- integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
-
-shlex@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/shlex/-/shlex-2.0.1.tgz#f3dfa388400604928fdc2d50388f421b8895ddf6"
- integrity sha512-XrweL4ORG4Y9E9VvqsAjQ0Dhr4oW3BP6d4IceL7EnRA5Y7KU+4wCFg9HMhFm7SxhVswKu9emOvblBr7J17Vqtg==
-
-showdown@^1.9.1:
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/showdown/-/showdown-1.9.1.tgz#134e148e75cd4623e09c21b0511977d79b5ad0ef"
- integrity sha512-9cGuS382HcvExtf5AHk7Cb4pAeQQ+h0eTr33V1mu+crYWV4KvWAw6el92bDrqGEk5d46Ai/fhbEUwqJ/mTCNEA==
- dependencies:
- yargs "^14.2"
-
-signal-exit@^3.0.0:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
- integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
-
-slugify@^1.3.1:
- version "1.3.6"
- resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.3.6.tgz#ba5fd6159b570fe4811d02ea9b1f4906677638c3"
- integrity sha512-wA9XS475ZmGNlEnYYLPReSfuz/c3VQsEMoU43mi6OnKMCdbnFXd4/Yg7J0lBv8jkPolacMpOrWEaoYxuE1+hoQ==
-
-source-map-support@^0.5.12, source-map-support@^0.5.6:
- version "0.5.16"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042"
- integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==
- dependencies:
- buffer-from "^1.0.0"
- source-map "^0.6.0"
-
-source-map@^0.6.0, source-map@~0.6.0:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
- integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-
-source-map@~0.5.1:
- version "0.5.7"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
- integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
-
-spdx-correct@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4"
- integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==
- dependencies:
- spdx-expression-parse "^3.0.0"
- spdx-license-ids "^3.0.0"
-
-spdx-exceptions@^2.1.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977"
- integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==
-
-spdx-expression-parse@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
- integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==
- dependencies:
- spdx-exceptions "^2.1.0"
- spdx-license-ids "^3.0.0"
-
-spdx-license-ids@^3.0.0:
- version "3.0.5"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654"
- integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==
-
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
- integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
-
-"statuses@>= 1.5.0 < 2", statuses@~1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
- integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
-
-string-width@^3.0.0, string-width@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
- integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
- dependencies:
- emoji-regex "^7.0.1"
- is-fullwidth-code-point "^2.0.0"
- strip-ansi "^5.1.0"
-
-strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
- integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
- dependencies:
- ansi-regex "^4.1.0"
-
-strip-bom-string@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92"
- integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=
-
-strip-bom@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
- integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=
- dependencies:
- is-utf8 "^0.2.0"
-
-strip-bom@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
- integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
-
-strip-css-comments@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/strip-css-comments/-/strip-css-comments-3.0.0.tgz#7a5625eff8a2b226cf8947a11254da96e13dae89"
- integrity sha1-elYl7/iisibPiUehElTaluE9rok=
- dependencies:
- is-regexp "^1.0.0"
-
-strip-indent@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
- integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=
- dependencies:
- get-stdin "^4.0.1"
-
-strip-json-comments@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
- integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
-
-to-fast-properties@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
- integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=
-
-to-regex-range@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
- integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
- dependencies:
- is-number "^7.0.0"
-
-toidentifier@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
- integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
-
-token-stream@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-0.0.1.tgz#ceeefc717a76c4316f126d0b9dbaa55d7e7df01a"
- integrity sha1-zu78cXp2xDFvEm0LnbqlXX598Bo=
-
-tree-kill@^1.2.1:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
- integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==
-
-trim-newlines@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
- integrity sha1-WIeWa7WCpFA6QetST301ARgVphM=
-
-ts-node-dev@^1.0.0-pre.44:
- version "1.0.0-pre.44"
- resolved "https://registry.yarnpkg.com/ts-node-dev/-/ts-node-dev-1.0.0-pre.44.tgz#2f4d666088481fb9c4e4f5bc8f15995bd8b06ecb"
- integrity sha512-M5ZwvB6FU3jtc70i5lFth86/6Qj5XR5nMMBwVxZF4cZhpO7XcbWw6tbNiJo22Zx0KfjEj9py5DANhwLOkPPufw==
- dependencies:
- dateformat "~1.0.4-1.2.3"
- dynamic-dedupe "^0.3.0"
- filewatcher "~3.0.0"
- minimist "^1.1.3"
- mkdirp "^0.5.1"
- node-notifier "^5.4.0"
- resolve "^1.0.0"
- rimraf "^2.6.1"
- source-map-support "^0.5.12"
- tree-kill "^1.2.1"
- ts-node "*"
- tsconfig "^7.0.0"
-
-ts-node@*:
- version "8.6.2"
- resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.6.2.tgz#7419a01391a818fbafa6f826a33c1a13e9464e35"
- integrity sha512-4mZEbofxGqLL2RImpe3zMJukvEvcO1XP8bj8ozBPySdCUXEcU5cIRwR0aM3R+VoZq7iXc8N86NC0FspGRqP4gg==
- dependencies:
- arg "^4.1.0"
- diff "^4.0.1"
- make-error "^1.1.1"
- source-map-support "^0.5.6"
- yn "3.1.1"
-
-tsconfig@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7"
- integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==
- dependencies:
- "@types/strip-bom" "^3.0.0"
- "@types/strip-json-comments" "0.0.30"
- strip-bom "^3.0.0"
- strip-json-comments "^2.0.0"
-
-type-is@~1.6.17, type-is@~1.6.18:
- version "1.6.18"
- resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
- integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
- dependencies:
- media-typer "0.3.0"
- mime-types "~2.1.24"
-
-typescript@^3.8.2:
- version "3.8.2"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.2.tgz#91d6868aaead7da74f493c553aeff76c0c0b1d5a"
- integrity sha512-EgOVgL/4xfVrCMbhYKUQTdF37SQn4Iw73H5BgCrF1Abdun7Kwy/QZsE/ssAy0y4LxBbvua3PIbFsbRczWWnDdQ==
-
-uglify-js@^2.6.1:
- version "2.8.29"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
- integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0=
- dependencies:
- source-map "~0.5.1"
- yargs "~3.10.0"
- optionalDependencies:
- uglify-to-browserify "~1.0.0"
-
-uglify-to-browserify@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
- integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc=
-
-underscore@~1.4.4:
- version "1.4.4"
- resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604"
- integrity sha1-YaajIBBiKvoHljvzJSA88SI51gQ=
-
-unpipe@1.0.0, unpipe@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
- integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
-
-utils-merge@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
- integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
-
-validate-npm-package-license@^3.0.1:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
- integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
- dependencies:
- spdx-correct "^3.0.0"
- spdx-expression-parse "^3.0.0"
-
-vary@^1, vary@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
- integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
-
-void-elements@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
- integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=
-
-which-module@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
- integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
-
-which@^1.3.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
- integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
- dependencies:
- isexe "^2.0.0"
-
-window-size@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
- integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=
-
-with@^5.0.0:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/with/-/with-5.1.1.tgz#fa4daa92daf32c4ea94ed453c81f04686b575dfe"
- integrity sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=
- dependencies:
- acorn "^3.1.0"
- acorn-globals "^3.0.0"
-
-wordwrap@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
- integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=
-
-wrap-ansi@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
- integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==
- dependencies:
- ansi-styles "^3.2.0"
- string-width "^3.0.0"
- strip-ansi "^5.0.0"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
- integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-
-xtend@^4.0.0:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
- integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
-
-y18n@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
- integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
-
-yargs-parser@^15.0.0:
- version "15.0.0"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.0.tgz#cdd7a97490ec836195f59f3f4dbe5ea9e8f75f08"
- integrity sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==
- dependencies:
- camelcase "^5.0.0"
- decamelize "^1.2.0"
-
-yargs@^14.2:
- version "14.2.2"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.2.tgz#2769564379009ff8597cdd38fba09da9b493c4b5"
- integrity sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA==
- dependencies:
- cliui "^5.0.0"
- decamelize "^1.2.0"
- find-up "^3.0.0"
- get-caller-file "^2.0.1"
- require-directory "^2.1.1"
- require-main-filename "^2.0.0"
- set-blocking "^2.0.0"
- string-width "^3.0.0"
- which-module "^2.0.0"
- y18n "^4.0.0"
- yargs-parser "^15.0.0"
-
-yargs@~3.10.0:
- version "3.10.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
- integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=
- dependencies:
- camelcase "^1.0.2"
- cliui "^2.1.0"
- decamelize "^1.0.0"
- window-size "0.1.0"
-
-yn@3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
- integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
diff --git a/web/frontend/.gitignore b/web/frontend/.gitignore
deleted file mode 100644
index a0dddc6..0000000
--- a/web/frontend/.gitignore
+++ /dev/null
@@ -1,21 +0,0 @@
-.DS_Store
-node_modules
-/dist
-
-# local env files
-.env.local
-.env.*.local
-
-# Log files
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-
-# Editor directories and files
-.idea
-.vscode
-*.suo
-*.ntvs*
-*.njsproj
-*.sln
-*.sw?
diff --git a/web/frontend/babel.config.js b/web/frontend/babel.config.js
deleted file mode 100644
index e955840..0000000
--- a/web/frontend/babel.config.js
+++ /dev/null
@@ -1,5 +0,0 @@
-module.exports = {
- presets: [
- '@vue/cli-plugin-babel/preset'
- ]
-}
diff --git a/web/frontend/package.json b/web/frontend/package.json
deleted file mode 100644
index 1724761..0000000
--- a/web/frontend/package.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "frontend",
- "version": "0.1.0",
- "private": true,
- "scripts": {
- "serve": "vue-cli-service serve",
- "build": "vue-cli-service build"
- },
- "dependencies": {
- "axios": "^0.19.2",
- "buefy": "^0.8.12",
- "core-js": "^3.6.4",
- "dayjs": "^1.8.21",
- "vue": "^2.6.11",
- "vue-class-component": "^7.2.2",
- "vue-extend-layout": "^2.0.6",
- "vue-meta": "^2.3.3",
- "vue-property-decorator": "^8.3.0",
- "vue-router": "^3.1.5"
- },
- "devDependencies": {
- "@vue/cli-plugin-babel": "~4.2.0",
- "@vue/cli-plugin-router": "~4.2.0",
- "@vue/cli-plugin-typescript": "~4.2.0",
- "@vue/cli-service": "~4.2.0",
- "prerender-spa-plugin": "^3.2.1",
- "sass": "^1.25.0",
- "sass-loader": "^8.0.2",
- "typescript": "~3.7.5",
- "vue-cli-plugin-layouts": "~1.0.2",
- "vue-cli-plugin-prerender-spa": "~1.1.6",
- "vue-cli-plugin-pug": "^1.0.7",
- "vue-template-compiler": "^2.6.11"
- },
- "browserslist": [
- "> 1%",
- "last 2 versions"
- ]
-}
diff --git a/web/frontend/public/index.html b/web/frontend/public/index.html
deleted file mode 100644
index 39bdf80..0000000
--- a/web/frontend/public/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
- ZhDiary
-
-
-
-
-
-
-
diff --git a/web/frontend/src/App.vue b/web/frontend/src/App.vue
deleted file mode 100644
index e9b712b..0000000
--- a/web/frontend/src/App.vue
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/web/frontend/src/assets/.gitkeep b/web/frontend/src/assets/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/web/frontend/src/components/Empty.vue b/web/frontend/src/components/Empty.vue
deleted file mode 100644
index 5840535..0000000
--- a/web/frontend/src/components/Empty.vue
+++ /dev/null
@@ -1,11 +0,0 @@
-
-.container.m-md
- h4.title.is-4 Sorry, but no post can be found.
-
-
-
diff --git a/web/frontend/src/components/PostHeader.vue b/web/frontend/src/components/PostHeader.vue
deleted file mode 100644
index 672bc0f..0000000
--- a/web/frontend/src/components/PostHeader.vue
+++ /dev/null
@@ -1,27 +0,0 @@
-
-.post-meta(style="margin-bottom: 0.5em;")
- .post-meta-author(v-if="author")
- a(:href="author.link" style="width: 24px; min-width: 24px")
- img(:src="author.avatar" style="border-radius: 50%; margin-right: 1em;")
- a.mr-md(:href="author.link" style="margin-right: 1em;") {{author.login}}
- div(style="flex-grow: 1")
- div {{dateString}}
-
-
-
diff --git a/web/frontend/src/components/PostTeaser.vue b/web/frontend/src/components/PostTeaser.vue
deleted file mode 100644
index cce0fcf..0000000
--- a/web/frontend/src/components/PostTeaser.vue
+++ /dev/null
@@ -1,66 +0,0 @@
-
-.card.blog-post(style="margin-top: 1em; margin-bottom: 1em")
- .card-content
- PostHeader(:header="header")
- .post-content
- .image-teaser(v-if="header.image")
- img(:src="header.image")
- h2.title {{header.title}}
- .content(v-html="header.excerpt")
- div(style="display: flex; justify-content: flex-end")
- router-link.button.is-danger.is-outlined(:to="url") Read more
-
-
-
-
-
diff --git a/web/frontend/src/global.ts b/web/frontend/src/global.ts
deleted file mode 100644
index 5e263cc..0000000
--- a/web/frontend/src/global.ts
+++ /dev/null
@@ -1 +0,0 @@
-export const config = JSON.parse(process.env.VUE_APP_CONFIG!)
diff --git a/web/frontend/src/layouts/default.vue b/web/frontend/src/layouts/default.vue
deleted file mode 100644
index 330cddb..0000000
--- a/web/frontend/src/layouts/default.vue
+++ /dev/null
@@ -1,91 +0,0 @@
-
-section
- b-navbar.navbar-shadow.noscroll.is-fixed-top(style="max-width: 100vw;")
- template(slot="brand")
- div(style="display: inline-flex; overflow: auto; max-width: calc(100vw - 3.25rem); flex-grow: 1")
- b-navbar-item(tag="router-link" to="/")
- h1.bold {{config.banner}}
- template(slot="start")
- b-navbar-item(
- v-for="t in config.tabs"
- :key="t.name"
- :tag="t.to ? 'router-link' : 'a'"
- :href="t.to ? '' : t.url"
- :to="t.to ? t.to : ''"
- :target="t.to ? '' : '_blank'"
- ) {{t.name}}
- template(slot="end")
- form.field.m-sm.px-md(@submit.prevent="onSearch" style="margin: 0.4rem; padding-left: 0.5rem; padding-right: 0.5rem")
- .control.has-icons-right
- input.input.is-rounded(type="search" placeholder="Search" v-model="q")
- span.icon.is-right
- fa(icon="search")
- section(style="margin-top: 3.25rem")
- .columns
- .column.column.is-three-fifths-desktop.is-offset-one-fifth-desktop
- router-view
-
-
-
-
-
diff --git a/web/frontend/src/main.ts b/web/frontend/src/main.ts
deleted file mode 100644
index 8627fe1..0000000
--- a/web/frontend/src/main.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import Vue from 'vue'
-
-import App from './App.vue'
-import router from './router'
-
-import './plugins/buefy'
-import './plugins/meta'
-
-Vue.config.productionTip = false
-
-new Vue({
- router,
- render: h => h(App),
- mounted: () => document.dispatchEvent(new Event('x-app-rendered'))
-}).$mount('#app')
diff --git a/web/frontend/src/plugins/buefy.ts b/web/frontend/src/plugins/buefy.ts
deleted file mode 100644
index 2540fd8..0000000
--- a/web/frontend/src/plugins/buefy.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import Vue from 'vue'
-import Buefy from 'buefy'
-import 'buefy/dist/buefy.css'
-
-Vue.use(Buefy)
diff --git a/web/frontend/src/plugins/meta.ts b/web/frontend/src/plugins/meta.ts
deleted file mode 100644
index b9ff774..0000000
--- a/web/frontend/src/plugins/meta.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import Vue from 'vue'
-import VueMeta from 'vue-meta'
-
-Vue.use(VueMeta, {
- // optional pluginOptions
- refreshOnceOnNavigation: true
-})
diff --git a/web/frontend/src/router/index.ts b/web/frontend/src/router/index.ts
deleted file mode 100644
index cbb498f..0000000
--- a/web/frontend/src/router/index.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-import Vue from 'vue'
-import VueRouter from 'vue-router'
-
-Vue.use(VueRouter)
-
-const router = new VueRouter({
- mode: 'history',
- routes: [
- {
- path: '/',
- component: () => import('../views/QueryView.vue'),
- meta: {
- layout: 'default'
- }
- },
- {
- path: '/:page',
- component: () => import('../views/QueryView.vue'),
- meta: {
- layout: 'default'
- }
- },
- {
- path: '/tag/:tag',
- component: () => import('../views/QueryView.vue'),
- meta: {
- layout: 'default'
- }
- },
- {
- path: '/tag/:tag/:page',
- component: () => import('../views/QueryView.vue'),
- meta: {
- layout: 'default'
- }
- },
- {
- path: '/posts/*',
- component: () => import('../views/PostView.vue'),
- meta: {
- layout: 'default'
- }
- }
- ]
-})
-
-export default router
diff --git a/web/frontend/src/shims-tsx.d.ts b/web/frontend/src/shims-tsx.d.ts
deleted file mode 100644
index c656c68..0000000
--- a/web/frontend/src/shims-tsx.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import Vue, { VNode } from 'vue'
-
-declare global {
- namespace JSX {
- // tslint:disable no-empty-interface
- interface Element extends VNode {}
- // tslint:disable no-empty-interface
- interface ElementClass extends Vue {}
- interface IntrinsicElements {
- [elem: string]: any
- }
- }
-}
diff --git a/web/frontend/src/shims-vue.d.ts b/web/frontend/src/shims-vue.d.ts
deleted file mode 100644
index d9f24fa..0000000
--- a/web/frontend/src/shims-vue.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare module '*.vue' {
- import Vue from 'vue'
- export default Vue
-}
diff --git a/web/frontend/src/utils.ts b/web/frontend/src/utils.ts
deleted file mode 100644
index 95efd41..0000000
--- a/web/frontend/src/utils.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import axios from 'axios'
-
-export function normalizeArray (a: T | T[]): T | undefined {
- return Array.isArray(a) ? a[0] : a
-}
-
-export const isRendered = !!document.getElementById('app')!.getAttribute('data-server-rendered')
-
-export const api = axios.create({
- baseURL: isRendered ? '/api' : 'http://localhost:48000/api'
-})
diff --git a/web/frontend/src/views/PostView.vue b/web/frontend/src/views/PostView.vue
deleted file mode 100644
index efbc99e..0000000
--- a/web/frontend/src/views/PostView.vue
+++ /dev/null
@@ -1,148 +0,0 @@
-
-section
- .blog-post(v-if="post.excerpt")
- .card(style="margin-top: 1rem; margin-bottom: 1rem;")
- .card-content.content
- PostHeader(:header="post")
- h1.title {{post.title}}
- .image-full(v-if="post.image")
- img(:src="post.image" :alt="post.title")
- div(v-html="post.excerpt + post.remaining")
- div(style="word-break: break-word")
- span(style="margin-right: 0.5rem;") Tag:
- span(v-for="t in post.tag || []" :key="t" style="margin-right: 0.5rem;")
- router-link(:to="'/tag/' + t") {{t}}
- .card.my-lg
- .card-content
- vue-disqus(v-if="disqus" :shortname="disqus" :identifier="$route.path")
- Empty(v-else)
-
-
-
-
-
diff --git a/web/frontend/src/views/QueryView.vue b/web/frontend/src/views/QueryView.vue
deleted file mode 100644
index f162725..0000000
--- a/web/frontend/src/views/QueryView.vue
+++ /dev/null
@@ -1,156 +0,0 @@
-
-section
- section(v-if="tag" style="margin: 1rem;")
- h2.title.is-2
- span(style="margin-right: 0.5rem;") Tag:
- span(style="font-weight: 400") {{tag}}
- section(v-if="posts.length > 0")
- PostTeaser(v-for="p in posts" :header="p" :key="p.slug")
- b-pagination(:current.sync="page" :total="count" :per-page="5"
- size="default" rounded style="margin-top: 1rem;")
- div(v-else)
- Empty
-
-
-
diff --git a/web/frontend/tsconfig.json b/web/frontend/tsconfig.json
deleted file mode 100644
index b57578e..0000000
--- a/web/frontend/tsconfig.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "compilerOptions": {
- "target": "esnext",
- "module": "esnext",
- "strict": true,
- "jsx": "preserve",
- "importHelpers": true,
- "moduleResolution": "node",
- "experimentalDecorators": true,
- "esModuleInterop": true,
- "allowSyntheticDefaultImports": true,
- "sourceMap": true,
- "baseUrl": ".",
- "types": [
- "webpack-env"
- ],
- "paths": {
- "@/*": [
- "src/*"
- ]
- },
- "lib": [
- "esnext",
- "dom",
- "dom.iterable",
- "scripthost"
- ]
- },
- "include": [
- "src/**/*.ts",
- "src/**/*.tsx",
- "src/**/*.vue",
- "tests/**/*.ts",
- "tests/**/*.tsx"
- ],
- "exclude": [
- "node_modules"
- ]
-}
diff --git a/web/frontend/vue.config.js b/web/frontend/vue.config.js
deleted file mode 100644
index a7318b2..0000000
--- a/web/frontend/vue.config.js
+++ /dev/null
@@ -1,21 +0,0 @@
-process.env.VUE_APP_CONFIG = JSON.stringify(require('../../data/config.json'))
-
-module.exports = {
- pluginOptions: {
- prerenderSpa: {
- registry: undefined,
- renderRoutes: [
- '/'
- ],
- useRenderEvent: true,
- headless: true,
- onlyProduction: true,
- postProcess: route => {
- route.html = route.html
- .replace(/