Commit 045e05c1 authored by nano's avatar nano

fix mongoldb dot question

parent 7b89fae6
...@@ -2,8 +2,16 @@ ...@@ -2,8 +2,16 @@
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="f0cbce64-0ebc-4f60-8c2d-2fe9e214a8c0" name="Default" comment=""> <list default="true" id="f0cbce64-0ebc-4f60-8c2d-2fe9e214a8c0" name="Default" comment="">
<change type="DELETED" beforePath="$PROJECT_DIR$/src/dot.ts" afterPath="" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/config.ts" afterPath="$PROJECT_DIR$/config.ts" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/package.json" afterPath="$PROJECT_DIR$/package.json" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/models/App.ts" afterPath="$PROJECT_DIR$/src/models/App.ts" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/routes/app.ts" afterPath="$PROJECT_DIR$/src/routes/app.ts" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/routes/app.ts" afterPath="$PROJECT_DIR$/src/routes/app.ts" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/routes/package.ts" afterPath="$PROJECT_DIR$/src/routes/package.ts" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/utils.ts" afterPath="$PROJECT_DIR$/src/utils.ts" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/test.ts" afterPath="$PROJECT_DIR$/test.ts" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test.ts" afterPath="$PROJECT_DIR$/test.ts" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/yarn.lock" afterPath="$PROJECT_DIR$/yarn.lock" />
</list> </list>
<ignored path="mycard-console-backend.iws" /> <ignored path="mycard-console-backend.iws" />
<ignored path=".idea/workspace.xml" /> <ignored path=".idea/workspace.xml" />
...@@ -26,106 +34,75 @@ ...@@ -26,106 +34,75 @@
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="Dockerfile" pinned="false" current-in-tab="false"> <file leaf-file-name="migrate.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Dockerfile"> <entry file="file://$PROJECT_DIR$/migrate.ts">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="304"> <state relative-caret-position="210">
<caret line="19" column="0" lean-forward="false" selection-start-line="19" selection-start-column="0" selection-end-line="19" selection-end-column="0" /> <caret line="24" column="17" lean-forward="false" selection-start-line="24" selection-start-column="17" selection-end-line="24" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="app.ts" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/routes/app.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="221">
<caret line="64" column="9" lean-forward="true" selection-start-line="64" selection-start-column="9" selection-end-line="64" selection-end-column="9" />
<folding> <folding>
<element signature="e#39#81#0" expanded="true" /> <element signature="e#0#26#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="upload.ts" pinned="false" current-in-tab="false"> <file leaf-file-name="test.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/routes/upload.ts"> <entry file="file://$PROJECT_DIR$/test.ts">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="376"> <state relative-caret-position="479">
<caret line="149" column="0" lean-forward="false" selection-start-line="149" selection-start-column="0" selection-end-line="150" selection-end-column="0" /> <caret line="46" column="46" lean-forward="false" selection-start-line="46" selection-start-column="46" selection-end-line="46" selection-end-column="46" />
<folding> <folding>
<element signature="e#0#28#0" expanded="true" /> <element signature="n#!!doc" expanded="true" />
<element signature="e#355#397#0" expanded="true" /> <element signature="e#44#86#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="update.hbs" pinned="false" current-in-tab="false"> <file leaf-file-name="package.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/views/update.hbs"> <entry file="file://$PROJECT_DIR$/src/routes/package.ts">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144"> <state relative-caret-position="3386">
<caret line="8" column="15" lean-forward="false" selection-start-line="8" selection-start-column="15" selection-end-line="8" selection-end-column="15" /> <caret line="215" column="22" lean-forward="false" selection-start-line="215" selection-start-column="22" selection-end-line="215" selection-end-column="22" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="package.ts" pinned="false" current-in-tab="false"> <file leaf-file-name="App.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/routes/package.ts"> <entry file="file://$PROJECT_DIR$/src/models/App.ts">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="89"> <state relative-caret-position="584">
<caret line="20" column="12" lean-forward="false" selection-start-line="20" selection-start-column="12" selection-end-line="20" selection-end-column="36" /> <caret line="123" column="0" lean-forward="false" selection-start-line="123" selection-start-column="0" selection-end-line="124" selection-end-column="0" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="test.ts" pinned="false" current-in-tab="false"> <file leaf-file-name="app.ts" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/test.ts"> <entry file="file://$PROJECT_DIR$/src/routes/app.ts">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252"> <state relative-caret-position="180">
<caret line="14" column="102" lean-forward="true" selection-start-line="14" selection-start-column="102" selection-end-line="14" selection-end-column="102" /> <caret line="10" column="0" lean-forward="true" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
<folding> <folding>
<element signature="n#!!doc" expanded="true" /> <element signature="e#39#81#0" expanded="true" />
<element signature="e#44#86#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="main.ts" pinned="false" current-in-tab="false"> <file leaf-file-name="utils.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/package/main.ts"> <entry file="file://$PROJECT_DIR$/src/utils.ts">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="315"> <state relative-caret-position="54">
<caret line="65" column="54" lean-forward="false" selection-start-line="65" selection-start-column="54" selection-end-line="65" selection-end-column="54" /> <caret line="3" column="15" lean-forward="false" selection-start-line="3" selection-start-column="15" selection-end-line="3" selection-end-column="15" />
<folding> <folding>
<element signature="e#0#29#0" expanded="true" /> <element signature="e#0#24#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="server.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/server.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="159">
<caret line="39" column="0" lean-forward="false" selection-start-line="39" selection-start-column="0" selection-end-line="40" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="package.json" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="342">
<caret line="19" column="29" lean-forward="false" selection-start-line="19" selection-start-column="29" selection-end-line="19" selection-end-column="29" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf> </leaf>
</component> </component>
<component name="FileTemplateManagerImpl"> <component name="FileTemplateManagerImpl">
...@@ -139,10 +116,6 @@ ...@@ -139,10 +116,6 @@
</component> </component>
<component name="FindInProjectRecents"> <component name="FindInProjectRecents">
<findStrings> <findStrings>
<find>news</find>
<find>fil</find>
<find>co</find>
<find>files</find>
<find>hashes</find> <find>hashes</find>
<find>console.log</find> <find>console.log</find>
<find>0</find> <find>0</find>
...@@ -169,6 +142,10 @@ ...@@ -169,6 +142,10 @@
<find>joi.ob</find> <find>joi.ob</find>
<find>http://114.215.243.95:8001</find> <find>http://114.215.243.95:8001</find>
<find>joi</find> <find>joi</find>
<find>entri</find>
<find>admin</find>
<find>patch</find>
<find>files</find>
</findStrings> </findStrings>
</component> </component>
<component name="Git.Settings"> <component name="Git.Settings">
...@@ -200,17 +177,19 @@ ...@@ -200,17 +177,19 @@
<option value="$PROJECT_DIR$/docker-compose.yml" /> <option value="$PROJECT_DIR$/docker-compose.yml" />
<option value="$PROJECT_DIR$/src/routes/upload.js" /> <option value="$PROJECT_DIR$/src/routes/upload.js" />
<option value="$PROJECT_DIR$/src/routes/upload.ts" /> <option value="$PROJECT_DIR$/src/routes/upload.ts" />
<option value="$PROJECT_DIR$/config.ts" />
<option value="$PROJECT_DIR$/Dockerfile" /> <option value="$PROJECT_DIR$/Dockerfile" />
<option value="$PROJECT_DIR$/entrypoint.sh" /> <option value="$PROJECT_DIR$/entrypoint.sh" />
<option value="$PROJECT_DIR$/src/utils.ts" />
<option value="$PROJECT_DIR$/src/models/App.ts" />
<option value="$PROJECT_DIR$/server.ts" /> <option value="$PROJECT_DIR$/server.ts" />
<option value="$PROJECT_DIR$/src/routes/package.ts" />
<option value="$PROJECT_DIR$/views/update.hbs" /> <option value="$PROJECT_DIR$/views/update.hbs" />
<option value="$PROJECT_DIR$/package/main.ts" /> <option value="$PROJECT_DIR$/package/main.ts" />
<option value="$PROJECT_DIR$/package.json" /> <option value="$PROJECT_DIR$/package.json" />
<option value="$PROJECT_DIR$/test.ts" /> <option value="$PROJECT_DIR$/test.ts" />
<option value="$PROJECT_DIR$/config.ts" />
<option value="$PROJECT_DIR$/src/routes/package.ts" />
<option value="$PROJECT_DIR$/src/models/App.ts" />
<option value="$PROJECT_DIR$/migrate.ts" />
<option value="$PROJECT_DIR$/src/dot.ts" />
<option value="$PROJECT_DIR$/src/utils.ts" />
<option value="$PROJECT_DIR$/src/routes/app.ts" /> <option value="$PROJECT_DIR$/src/routes/app.ts" />
</list> </list>
</option> </option>
...@@ -231,8 +210,8 @@ ...@@ -231,8 +210,8 @@
<handled-path value="$PROJECT_DIR$/node_modules" /> <handled-path value="$PROJECT_DIR$/node_modules" />
</component> </component>
<component name="ProjectFrameBounds"> <component name="ProjectFrameBounds">
<option name="x" value="445" /> <option name="x" value="230" />
<option name="y" value="1103" /> <option name="y" value="1138" />
<option name="width" value="1232" /> <option name="width" value="1232" />
<option name="height" value="777" /> <option name="height" value="777" />
</component> </component>
...@@ -310,7 +289,11 @@ ...@@ -310,7 +289,11 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="package" /> <option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="models" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
</PATH> </PATH>
...@@ -486,12 +469,12 @@ ...@@ -486,12 +469,12 @@
<workItem from="1493107593448" duration="867000" /> <workItem from="1493107593448" duration="867000" />
<workItem from="1493174892830" duration="25000" /> <workItem from="1493174892830" duration="25000" />
<workItem from="1493174934848" duration="6205000" /> <workItem from="1493174934848" duration="6205000" />
<workItem from="1493198225466" duration="20790000" /> <workItem from="1493198225466" duration="31925000" />
</task> </task>
<servers /> <servers />
</component> </component>
<component name="TimeTrackingManager"> <component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="172016000" /> <option name="totallyTimeSpent" value="183151000" />
</component> </component>
<component name="TodoView"> <component name="TodoView">
<todo-panel id="selected-file"> <todo-panel id="selected-file">
...@@ -503,7 +486,7 @@ ...@@ -503,7 +486,7 @@
</todo-panel> </todo-panel>
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="445" y="1103" width="1232" height="777" extended-state="0" /> <frame x="230" y="1138" width="1232" height="777" extended-state="0" />
<editor active="true" /> <editor active="true" />
<layout> <layout>
<window_info id="TypeScript" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32846716" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="TypeScript" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32846716" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
...@@ -555,6 +538,8 @@ ...@@ -555,6 +538,8 @@
<option value="$USER_HOME$/demo/moecube/app/main-aot.js" /> <option value="$USER_HOME$/demo/moecube/app/main-aot.js" />
<option value="$PROJECT_DIR$/test.js" /> <option value="$PROJECT_DIR$/test.js" />
<option value="$PROJECT_DIR$/test.js.map" /> <option value="$PROJECT_DIR$/test.js.map" />
<option value="$PROJECT_DIR$/migrate.js.map" />
<option value="$PROJECT_DIR$/migrate.js" />
</list> </list>
</option> </option>
</component> </component>
...@@ -574,22 +559,6 @@ ...@@ -574,22 +559,6 @@
<watches-manager /> <watches-manager />
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/router.ts" />
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="20">
<caret line="1" column="12" lean-forward="true" selection-start-line="1" selection-start-column="12" selection-end-line="1" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/mongodb.js" />
<entry file="file://$PROJECT_DIR$/server.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/mongodb.ts" /> <entry file="file://$PROJECT_DIR$/src/models/mongodb.ts" />
<entry file="file://$PROJECT_DIR$/node_modules/@types/koa/index.d.ts"> <entry file="file://$PROJECT_DIR$/node_modules/@types/koa/index.d.ts">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
...@@ -744,14 +713,6 @@ ...@@ -744,14 +713,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$APPLICATION_HOME_DIR$/plugins/JavaScriptLanguage/jsLanguageServicesImpl/external/lib.es6.d.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="137">
<caret line="998" column="4" lean-forward="false" selection-start-line="998" selection-start-column="4" selection-end-line="998" selection-end-column="4" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/iridium/dist/lib/Instance.d.ts"> <entry file="file://$PROJECT_DIR$/node_modules/iridium/dist/lib/Instance.d.ts">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="558"> <state relative-caret-position="558">
...@@ -768,14 +729,6 @@ ...@@ -768,14 +729,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/config.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="28" lean-forward="true" selection-start-line="0" selection-start-column="28" selection-end-line="0" selection-end-column="28" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.env"> <entry file="file://$PROJECT_DIR$/.env">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90"> <state relative-caret-position="90">
...@@ -792,28 +745,18 @@ ...@@ -792,28 +745,18 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/utils.ts"> <entry file="file://$PROJECT_DIR$/entrypoint.sh">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="214">
<caret line="29" column="7" lean-forward="true" selection-start-line="29" selection-start-column="7" selection-end-line="29" selection-end-column="7" />
<folding>
<element signature="e#0#24#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/App.ts">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="155"> <state relative-caret-position="108">
<caret line="116" column="30" lean-forward="true" selection-start-line="116" selection-start-column="30" selection-end-line="116" selection-end-column="30" /> <caret line="6" column="0" lean-forward="true" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/entrypoint.sh"> <entry file="file://$PROJECT_DIR$/src/models/Package.ts">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108"> <state relative-caret-position="-779">
<caret line="6" column="0" lean-forward="true" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" /> <caret line="3" column="0" lean-forward="false" selection-start-line="3" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
<folding /> <folding />
</state> </state>
</provider> </provider>
...@@ -826,44 +769,46 @@ ...@@ -826,44 +769,46 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/views/update.hbs"> <entry file="file://$PROJECT_DIR$/src/routes/upload.ts">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144"> <state relative-caret-position="178">
<caret line="8" column="15" lean-forward="false" selection-start-line="8" selection-start-column="15" selection-end-line="8" selection-end-column="15" /> <caret line="138" column="0" lean-forward="true" selection-start-line="138" selection-start-column="0" selection-end-line="138" selection-end-column="0" />
<folding /> <folding>
<element signature="e#0#28#0" expanded="true" />
<element signature="e#355#397#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/routes/upload.ts"> <entry file="file://$PROJECT_DIR$/package.json">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="376"> <state relative-caret-position="342">
<caret line="149" column="0" lean-forward="false" selection-start-line="149" selection-start-column="0" selection-end-line="150" selection-end-column="0" /> <caret line="20" column="29" lean-forward="false" selection-start-line="20" selection-start-column="29" selection-end-line="20" selection-end-column="29" />
<folding> <folding>
<element signature="e#0#28#0" expanded="true" /> <marker date="1493354750000" expanded="true" signature="245:835" ph="{&quot;@types/joi&quot;: &quot;^10.3.0&quot;...}" />
<element signature="e#355#397#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/models/Package.ts"> <entry file="file://$PROJECT_DIR$/server.ts">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-779"> <state relative-caret-position="612">
<caret line="3" column="0" lean-forward="false" selection-start-line="3" selection-start-column="0" selection-end-line="4" selection-end-column="0" /> <caret line="39" column="0" lean-forward="false" selection-start-line="39" selection-start-column="0" selection-end-line="40" selection-end-column="0" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/routes/package.ts"> <entry file="file://$PROJECT_DIR$/views/update.hbs">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="89"> <state relative-caret-position="144">
<caret line="20" column="12" lean-forward="false" selection-start-line="20" selection-start-column="12" selection-end-line="20" selection-end-column="36" /> <caret line="8" column="15" lean-forward="false" selection-start-line="8" selection-start-column="15" selection-end-line="8" selection-end-column="15" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/package/main.ts"> <entry file="file://$PROJECT_DIR$/package/main.ts">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="315"> <state relative-caret-position="1170">
<caret line="65" column="54" lean-forward="false" selection-start-line="65" selection-start-column="54" selection-end-line="65" selection-end-column="54" /> <caret line="65" column="54" lean-forward="false" selection-start-line="65" selection-start-column="54" selection-end-line="65" selection-end-column="54" />
<folding> <folding>
<element signature="e#0#29#0" expanded="true" /> <element signature="e#0#29#0" expanded="true" />
...@@ -871,26 +816,34 @@ ...@@ -871,26 +816,34 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/server.ts"> <entry file="file://$PROJECT_DIR$/node_modules/axios/index.d.ts">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="159"> <state relative-caret-position="36">
<caret line="39" column="0" lean-forward="false" selection-start-line="39" selection-start-column="0" selection-end-line="40" selection-end-column="0" /> <caret line="2" column="1" lean-forward="true" selection-start-line="2" selection-start-column="1" selection-end-line="2" selection-end-column="1" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/package.json"> <entry file="file://$PROJECT_DIR$/config.ts">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="342"> <state relative-caret-position="162">
<caret line="19" column="29" lean-forward="false" selection-start-line="19" selection-start-column="29" selection-end-line="19" selection-end-column="29" /> <caret line="9" column="9" lean-forward="false" selection-start-line="9" selection-start-column="9" selection-end-line="9" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/migrate.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="109">
<caret line="48" column="13" lean-forward="true" selection-start-line="48" selection-start-column="13" selection-end-line="48" selection-end-column="13" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/test.ts"> <entry file="file://$PROJECT_DIR$/test.ts">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252"> <state relative-caret-position="479">
<caret line="14" column="102" lean-forward="true" selection-start-line="14" selection-start-column="102" selection-end-line="14" selection-end-column="102" /> <caret line="46" column="46" lean-forward="false" selection-start-line="46" selection-start-column="46" selection-end-line="46" selection-end-column="46" />
<folding> <folding>
<element signature="n#!!doc" expanded="true" /> <element signature="n#!!doc" expanded="true" />
<element signature="e#44#86#0" expanded="true" /> <element signature="e#44#86#0" expanded="true" />
...@@ -898,10 +851,62 @@ ...@@ -898,10 +851,62 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/migrate.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="210">
<caret line="24" column="17" lean-forward="false" selection-start-line="24" selection-start-column="17" selection-end-line="24" selection-end-column="17" />
<folding>
<element signature="e#0#26#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/package.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3386">
<caret line="215" column="22" lean-forward="false" selection-start-line="215" selection-start-column="22" selection-end-line="215" selection-end-column="22" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/App.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="584">
<caret line="123" column="0" lean-forward="false" selection-start-line="123" selection-start-column="0" selection-end-line="124" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/dot.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/utils.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="54">
<caret line="3" column="15" lean-forward="false" selection-start-line="3" selection-start-column="15" selection-end-line="3" selection-end-column="15" />
<folding>
<element signature="e#0#24#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$APPLICATION_HOME_DIR$/plugins/JavaScriptLanguage/jsLanguageServicesImpl/external/lib.es6.d.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="885" column="30" lean-forward="true" selection-start-line="885" selection-start-column="30" selection-end-line="885" selection-end-column="30" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/app.ts"> <entry file="file://$PROJECT_DIR$/src/routes/app.ts">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="221"> <state relative-caret-position="180">
<caret line="64" column="9" lean-forward="true" selection-start-line="64" selection-start-column="9" selection-end-line="64" selection-end-column="9" /> <caret line="10" column="0" lean-forward="true" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
<folding> <folding>
<element signature="e#39#81#0" expanded="true" /> <element signature="e#39#81#0" expanded="true" />
</folding> </folding>
......
import * as path from 'path' import * as path from 'path';
let baseUrl = 'http://127.0.01:8001'
export default { export default {
upload_path: path.join(__dirname, "./test/upload"), upload_path: path.join(__dirname, './test/upload'),
download_path: path.join(__dirname, "./test/release/downloads") download_path: path.join(__dirname, './test/release/downloads'),
} new_apps_json: `${baseUrl}/v2/apps`,
\ No newline at end of file old_apps_json: 'https://api.moecube.com/apps.json',
new_app: (appId) => `${baseUrl}/v1/app/${appId}`,
old_metalinks: (package_id) => `https://cdn01.moecube.com/release/metalinks/${package_id}.meta4llf`,
new_metalinks: (package_id) => `${baseUrl}/${package_id}/meta`,
old_checksums: (package_id) => `https://cdn01.moecube.com/release/checksums/${package_id}`,
new_checksums: (package_id) => `${baseUrl}/${package_id}/checksum`,
};
import axios from 'axios';
import config from './config';
async function createApp(app) {
return await axios.post(config.new_app(app.id), {
id: app.id,
name: app.name,
author: '1',
});
}
async function updateApp(app) {
const {id, name, description, developers, publishers, released_at, category, tags, dependencies, references, homepage, actions, version, conference, icon, cover, background, news, ...other} = app;
return await axios.patch(config.new_app(app.id), {
id,
name,
description,
developers,
publishers,
released_at,
category,
tags,
dependencies,
references,
homepage,
homepage,
actions,
version,
conference,
icon,
cover,
background,
news: {}
...other,
});
}
async function main() {
let {data} = await axios.get(config.old_apps_json);
try {
for (let app of data) {
await createApp(app).catch(error => {});
await updateApp(app);
}
} catch (e) {
console.trace(e);
}
}
main();
...@@ -10,11 +10,13 @@ ...@@ -10,11 +10,13 @@
"pretest": "tsc" "pretest": "tsc"
}, },
"dependencies": { "dependencies": {
"@types/axios": "^0.14.0",
"@types/joi": "^10.3.0", "@types/joi": "^10.3.0",
"aliyun-oss-upload-stream": "^1.3.0", "aliyun-oss-upload-stream": "^1.3.0",
"aliyun-sdk": "^1.9.22", "aliyun-sdk": "^1.9.22",
"aria2": "^3.0.0", "aria2": "^3.0.0",
"async-busboy": "^0.4.0", "async-busboy": "^0.4.0",
"axios": "^0.16.1",
"bluebird": "^3.5.0", "bluebird": "^3.5.0",
"dotenv": "^4.0.0", "dotenv": "^4.0.0",
"fs-extra-promise": "^1.0.1", "fs-extra-promise": "^1.0.1",
......
export const dot = '__<DOT>__';
...@@ -24,6 +24,8 @@ interface File { ...@@ -24,6 +24,8 @@ interface File {
} }
export interface App { export interface App {
id: string; id: string;
status: string; status: string;
...@@ -41,7 +43,7 @@ export interface App { ...@@ -41,7 +43,7 @@ export interface App {
homepage?: string; homepage?: string;
locales?: string[]; locales?: string[];
actions?: Platform<{ [key: string]: { execuate: string, args: string[], env: { [key: string]: string } } }>; actions?: Platform<{ [key: string]: { execuate: string, args: string[], env: { [key: string]: string } } }>;
files?: { [key: string]: { sync: boolean } }; files?: { [key: string]: { sync: boolean, ignore: boolean } };
version?: Platform<string>; version?: Platform<string>;
news?: I18n<{ title: string, url: string, image: string }[]>; news?: I18n<{ title: string, url: string, image: string }[]>;
conference?: string; conference?: string;
...@@ -49,7 +51,6 @@ export interface App { ...@@ -49,7 +51,6 @@ export interface App {
icon?: string; icon?: string;
cover?: string; cover?: string;
background?: string; background?: string;
// packages?: Package[];
created_at?: Date; created_at?: Date;
} }
...@@ -89,7 +90,7 @@ export class AppSchema extends Instance<App, AppSchema> implements App { ...@@ -89,7 +90,7 @@ export class AppSchema extends Instance<App, AppSchema> implements App {
@Property(Object, false) @Property(Object, false)
actions?: Platform<{ [key: string]: { execuate: string, args: string[], env: { [key: string]: string } } }>; actions?: Platform<{ [key: string]: { execuate: string, args: string[], env: { [key: string]: string } } }>;
@Property(Object, false) @Property(Object, false)
files?: { [key: string]: { sync: boolean } }; files?: { [key: string]: { sync: boolean, ignore: boolean} };
@Property(Object, false) @Property(Object, false)
version?: Platform<string>; version?: Platform<string>;
@Property(Object, false) @Property(Object, false)
......
...@@ -4,8 +4,11 @@ import {App} from '../models/App'; ...@@ -4,8 +4,11 @@ import {App} from '../models/App';
import {Context} from 'koa'; import {Context} from 'koa';
import * as joi from 'joi'; import * as joi from 'joi';
import {promisify as py} from 'bluebird'; import {promisify as py} from 'bluebird';
import {dot} from '../utils';
const router = new Router(); const router = new Router();
const isTest = process.env['ENV'] !== 'production';
let validate: any = py(joi.validate); let validate: any = py(joi.validate);
router.get('/v2/apps', async (ctx: Context, next) => { router.get('/v2/apps', async (ctx: Context, next) => {
...@@ -19,10 +22,20 @@ router.get('/v1/apps', async (ctx: Context, next) => { ...@@ -19,10 +22,20 @@ router.get('/v1/apps', async (ctx: Context, next) => {
} }
let apps = {}; let apps = {};
if (payload.admin == 'true') { if (isTest || payload.admin == 'true') {
apps = await mongodb.Apps.find({}).toArray(); apps = await mongodb.Apps.find({}).map(app => {
if (app.files) {
app.files = Object.assign({}, ...Object.keys(app.files).map(key => ({[key.replace(new RegExp(dot, 'g'), '.')]: app.files![key]})));
}
return app;
});
} else { } else {
apps = await mongodb.Apps.find({author: payload.author}).toArray(); apps = await mongodb.Apps.find({author: payload.author}).map(app => {
if (app.files) {
app.files = Object.assign({}, ...Object.keys(app.files).map(key => ({[key.replace(new RegExp(dot, 'g'), '.')]: app.files![key]})));
}
return app;
});
} }
ctx.body = apps; ctx.body = apps;
}); });
...@@ -71,6 +84,9 @@ router.patch('/v1/app/:id', async (ctx: Context, next) => { ...@@ -71,6 +84,9 @@ router.patch('/v1/app/:id', async (ctx: Context, next) => {
return ctx.throw(e); return ctx.throw(e);
} }
} }
if (_app.files && Object.keys(_app.files).length > 0) {
_app.files = Object.assign({}, ...Object.keys(_app.files).map(key => ({[key.replace(new RegExp('\\.', 'g'), dot)]: _app.files[key]})));
}
app.handleUpdate(_app); app.handleUpdate(_app);
......
...@@ -18,6 +18,7 @@ router.get('/v2/packages', async (ctx: Context, next) => { ...@@ -18,6 +18,7 @@ router.get('/v2/packages', async (ctx: Context, next) => {
ctx.body = packs ctx.body = packs
}); });
router.get('/v2/package/:id/checksum', async (ctx: Context, next) => { router.get('/v2/package/:id/checksum', async (ctx: Context, next) => {
let pack = await mongodb.Packages.findOne({id: ctx.params.id, status: 'uploaded'}); let pack = await mongodb.Packages.findOne({id: ctx.params.id, status: 'uploaded'});
if (!pack) { if (!pack) {
......
import {URL} from 'url'; import {URL} from 'url';
import * as child_process from 'child_process'; import * as child_process from 'child_process';
export const dot = '__<DOT>__';
export const handleImg = (img) => { export const handleImg = (img) => {
if (img) { if (img) {
let url: URL; let url: URL;
......
...@@ -4,25 +4,17 @@ ...@@ -4,25 +4,17 @@
import * as fetch from 'isomorphic-fetch'; import * as fetch from 'isomorphic-fetch';
import * as _ from 'lodash'; import * as _ from 'lodash';
import {XmlDocument} from 'xmldoc'; import {XmlDocument} from 'xmldoc';
import config from './config';
// 配置
const old_apps_json = 'https://api.moecube.com/apps.json';
const new_apps_json = 'http://127.0.01:8001/v2/apps';
const old_metalinks = (package_id) => `https://cdn01.moecube.com/release/metalinks/${package_id}.meta4`;
const new_metalinks = (package_id) => `http://127.0.0.1:8001/v2/package/${package_id}/meta`; // 修改
const old_checksums = (package_id) => `https://cdn01.moecube.com/release/checksums/${package_id}`;
const new_checksums = (package_id) => `http://127.0.0.1:8001/v2/package/${package_id}/checksum`; // 修改
async function test_checksums() { async function test_checksums() {
const apps: any[] = (await (await fetch(new_apps_json)).json()) const apps: any[] = (await (await fetch(config.new_apps_json)).json())
.filter(i => !['ygopro', 'desmume'].includes(i.id)); // 排除 ygopro 和 desmume .filter(i => !['ygopro', 'desmume'].includes(i.id)); // 排除 ygopro 和 desmume
for (let app of _.sampleSize(apps, 5)) { for (let app of _.sampleSize(apps, 5)) {
console.log(`正在测试 ${app.id} 的 checksum`); console.log(`正在测试 ${app.id} 的 checksum`);
const old_checksum = await (await fetch(old_checksums(app.id))).text(); const old_checksum = await (await fetch(config.old_checksums(app.id))).text();
const new_checksum = await (await fetch(new_checksums(app.id))).text(); const new_checksum = await (await fetch(config.new_checksums(app.id))).text();
if (old_checksum !== new_checksum) { if (old_checksum !== new_checksum) {
console.log('', old_checksum); console.log('', old_checksum);
console.log('', new_checksum); console.log('', new_checksum);
...@@ -31,12 +23,12 @@ async function test_checksums() { ...@@ -31,12 +23,12 @@ async function test_checksums() {
} }
} }
async function test_download() { async function test_download() {
const apps: any[] = (await (await fetch(new_apps_json)).json()) const apps: any[] = (await (await fetch(config.new_apps_json)).json())
.filter(i => !['ygopro', 'desmume'].includes(i.id)); // 排除 ygopro 和 desmume .filter(i => !['ygopro', 'desmume'].includes(i.id)); // 排除 ygopro 和 desmume
const app: any = _.sample(apps); const app: any = _.sample(apps);
console.log(`正在测试 ${app.id} 的 下载`); console.log(`正在测试 ${app.id} 的 下载`);
const metalink = await (await fetch(new_metalinks(app.id))).text(); const metalink = await (await fetch(config.new_metalinks(app.id))).text();
const xml = new XmlDocument(metalink); const xml = new XmlDocument(metalink);
const url = xml.valueWithPath('file.url'); const url = xml.valueWithPath('file.url');
const response = await fetch(url, {method: 'HEAD'}); const response = await fetch(url, {method: 'HEAD'});
...@@ -49,13 +41,14 @@ async function test_update() { ...@@ -49,13 +41,14 @@ async function test_update() {
} }
async function test_apps_json() { async function test_apps_json() {
const old_apps = await (await fetch(old_apps_json)).json(); const old_apps = await (await fetch(config.old_apps_json)).json();
const new_apps = await (await fetch(new_apps_json)).json(); const new_apps = await (await fetch(config.new_apps_json)).json();
for (let new_app of new_apps) { for (let new_app of new_apps) {
let old_app = old_apps.find(i => i.id == new_app.id); let old_app = old_apps.find(i => i.id == new_app.id);
delete old_app.network;
delete old_app.author; delete old_app.author;
delete new_app.author; delete new_app.author;
delete old_app.news;
delete new_app.news;
if (!old_app) { if (!old_app) {
throw `应用 ${new_app.id} 在旧的列表不存在`; throw `应用 ${new_app.id} 在旧的列表不存在`;
} }
......
...@@ -6,6 +6,12 @@ ...@@ -6,6 +6,12 @@
version "1.3.2" version "1.3.2"
resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.2.tgz#52897ad5a51f05ea2f57f8e8136085c7d1c385a5" resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.2.tgz#52897ad5a51f05ea2f57f8e8136085c7d1c385a5"
"@types/axios@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@types/axios/-/axios-0.14.0.tgz#ec2300fbe7d7dddd7eb9d3abf87999964cafce46"
dependencies:
axios "*"
"@types/bluebird@*", "@types/bluebird@^3.5.0", "@types/bluebird@^3.5.2": "@types/bluebird@*", "@types/bluebird@^3.5.0", "@types/bluebird@^3.5.2":
version "3.5.2" version "3.5.2"
resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.2.tgz#ecf1104217495e50fe0b588d538146cd6f733b89" resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.2.tgz#ecf1104217495e50fe0b588d538146cd6f733b89"
...@@ -303,6 +309,12 @@ aws4@^1.2.1: ...@@ -303,6 +309,12 @@ aws4@^1.2.1:
version "1.6.0" version "1.6.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
axios@*, axios@^0.16.1:
version "0.16.1"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.16.1.tgz#c0b6d26600842384b8f509e57111f0d2df8223ca"
dependencies:
follow-redirects "^1.2.3"
babel-code-frame@^6.22.0: babel-code-frame@^6.22.0:
version "6.22.0" version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4"
...@@ -546,7 +558,7 @@ dashdash@^1.12.0: ...@@ -546,7 +558,7 @@ dashdash@^1.12.0:
dependencies: dependencies:
assert-plus "^1.0.0" assert-plus "^1.0.0"
debug@*, debug@^2.1.0, debug@^2.2.0: debug@*, debug@^2.1.0, debug@^2.2.0, debug@^2.4.5:
version "2.6.4" version "2.6.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.4.tgz#7586a9b3c39741c0282ae33445c4e8ac74734fe0" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.4.tgz#7586a9b3c39741c0282ae33445c4e8ac74734fe0"
dependencies: dependencies:
...@@ -718,6 +730,12 @@ findup-sync@~0.3.0: ...@@ -718,6 +730,12 @@ findup-sync@~0.3.0:
dependencies: dependencies:
glob "~5.0.0" glob "~5.0.0"
follow-redirects@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.2.3.tgz#01abaeca85e3609837d9fcda3167a7e42fdaca21"
dependencies:
debug "^2.4.5"
for-in@^1.0.1: for-in@^1.0.1:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment