Commit c3f4ecc2 authored by nano's avatar nano

update package

parent c1ba2a38
......@@ -2,7 +2,14 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="f0cbce64-0ebc-4f60-8c2d-2fe9e214a8c0" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/routes/package.ts" />
<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/main.ts" afterPath="$PROJECT_DIR$/package/main.ts" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/server.ts" afterPath="$PROJECT_DIR$/server.ts" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/models/Package.ts" afterPath="$PROJECT_DIR$/src/models/Package.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/upload.ts" afterPath="$PROJECT_DIR$/src/routes/upload.ts" />
</list>
<ignored path="mycard-console-backend.iws" />
<ignored path=".idea/workspace.xml" />
......@@ -25,11 +32,11 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="app.ts" pinned="false" current-in-tab="true">
<file leaf-file-name="app.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/routes/app.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="351">
<caret line="168" column="25" lean-forward="false" selection-start-line="168" selection-start-column="25" selection-end-line="168" selection-end-column="25" />
<state relative-caret-position="259">
<caret line="26" column="0" lean-forward="false" selection-start-line="26" selection-start-column="0" selection-end-line="26" selection-end-column="0" />
<folding>
<element signature="e#39#73#0" expanded="true" />
</folding>
......@@ -37,12 +44,14 @@
</provider>
</entry>
</file>
<file leaf-file-name="App.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/models/App.ts">
<file leaf-file-name="utils.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/package/utils.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="289">
<caret line="114" column="18" lean-forward="false" selection-start-line="114" selection-start-column="18" selection-end-line="114" selection-end-column="18" />
<folding />
<state relative-caret-position="761">
<caret line="53" column="38" lean-forward="false" selection-start-line="53" selection-start-column="38" selection-end-line="53" selection-end-column="38" />
<folding>
<element signature="e#0#38#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
......@@ -50,19 +59,21 @@
<file leaf-file-name="Package.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/models/Package.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="433">
<caret line="54" column="39" lean-forward="false" selection-start-line="54" selection-start-column="39" selection-end-line="54" selection-end-column="39" />
<state relative-caret-position="-590">
<caret line="21" column="15" lean-forward="true" selection-start-line="21" selection-start-column="15" selection-end-line="21" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Iridium.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/models/Iridium.ts">
<file leaf-file-name="package.ts" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/routes/package.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="7" lean-forward="false" selection-start-line="0" selection-start-column="7" selection-end-line="0" selection-end-column="7" />
<folding />
<state relative-caret-position="-110">
<caret line="16" column="2" lean-forward="true" selection-start-line="16" selection-start-column="2" selection-end-line="16" selection-end-column="2" />
<folding>
<element signature="e#39#73#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
......@@ -70,8 +81,8 @@
<file leaf-file-name="upload.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/routes/upload.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="256">
<caret line="167" column="0" lean-forward="false" selection-start-line="167" selection-start-column="0" selection-end-line="168" selection-end-column="0" />
<state relative-caret-position="310">
<caret line="93" column="48" lean-forward="true" selection-start-line="93" selection-start-column="48" selection-end-line="93" selection-end-column="48" />
<folding>
<element signature="e#0#28#0" expanded="true" />
</folding>
......@@ -79,6 +90,18 @@
</provider>
</entry>
</file>
<file leaf-file-name="main.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/package/main.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-824">
<caret line="12" column="22" lean-forward="false" selection-start-line="12" selection-start-column="22" selection-end-line="12" selection-end-column="22" />
<folding>
<element signature="e#0#25#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
......@@ -126,19 +149,22 @@
<option value="$PROJECT_DIR$/src/models/inversify.config.ts" />
<option value="$PROJECT_DIR$/src/inversify.config.ts" />
<option value="$PROJECT_DIR$/src/models/User.ts" />
<option value="$PROJECT_DIR$/server.ts" />
<option value="$PROJECT_DIR$/tsconfig.json" />
<option value="$PROJECT_DIR$/src/models/Iridium.ts" />
<option value="$PROJECT_DIR$/src/utils.ts" />
<option value="$PROJECT_DIR$/bin/run" />
<option value="$PROJECT_DIR$/package/utils.ts" />
<option value="$PROJECT_DIR$/package/main.ts" />
<option value="$PROJECT_DIR$/src/models/Package.ts" />
<option value="$PROJECT_DIR$/src/models/App.ts" />
<option value="$PROJECT_DIR$/.env" />
<option value="$PROJECT_DIR$/src/routes/config.ts" />
<option value="$PROJECT_DIR$/src/routes/upload.ts" />
<option value="$PROJECT_DIR$/src/routes/package.json" />
<option value="$PROJECT_DIR$/server.ts" />
<option value="$PROJECT_DIR$/src/routes/app.ts" />
<option value="$PROJECT_DIR$/config.ts" />
<option value="$PROJECT_DIR$/package/main.ts" />
<option value="$PROJECT_DIR$/src/routes/upload.ts" />
<option value="$PROJECT_DIR$/src/models/Package.ts" />
<option value="$PROJECT_DIR$/src/routes/package.ts" />
</list>
</option>
</component>
......@@ -158,8 +184,8 @@
<handled-path value="$PROJECT_DIR$/node_modules" />
</component>
<component name="ProjectFrameBounds">
<option name="x" value="422" />
<option name="y" value="354" />
<option name="x" value="149" />
<option name="y" value="350" />
<option name="width" value="1492" />
<option name="height" value="968" />
</component>
......@@ -194,6 +220,20 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="moecube-console" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="moecube-console" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="test" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="moecube-console" />
......@@ -226,6 +266,38 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="moecube-console" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="moecube-console" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<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" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="moecube-console" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="moecube-console" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="package" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Scope" />
......@@ -375,11 +447,12 @@
<workItem from="1492397500450" duration="9337000" />
<workItem from="1492407479780" duration="11530000" />
<workItem from="1492482951965" duration="50292000" />
<workItem from="1492655792313" duration="5818000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="82894000" />
<option name="totallyTimeSpent" value="88712000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
......@@ -391,7 +464,7 @@
</todo-panel>
</component>
<component name="ToolWindowManager">
<frame x="422" y="354" width="1492" height="968" extended-state="0" />
<frame x="149" y="350" width="1492" height="968" extended-state="0" />
<editor active="true" />
<layout>
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
......@@ -400,18 +473,18 @@
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32990867" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32975295" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Thumbnails" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32990867" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.35045663" 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.32990867" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.23725356" sideWeight="0.49384886" order="0" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32876712" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.23725356" sideWeight="0.50615114" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.23725356" sideWeight="0.50615114" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Thumbnails" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32990867" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.091216214" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
</layout>
......@@ -438,6 +511,8 @@
<option value="$PROJECT_DIR$/package/main.js.map" />
<option value="$PROJECT_DIR$/package/utils.js" />
<option value="$PROJECT_DIR$/package/main.js" />
<option value="$PROJECT_DIR$/src/routes/package.js" />
<option value="$PROJECT_DIR$/src/routes/package.js.map" />
</list>
</option>
</component>
......@@ -457,12 +532,38 @@
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/models/Package.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="972">
<caret line="54" column="39" lean-forward="false" selection-start-line="54" selection-start-column="39" selection-end-line="54" selection-end-column="39" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/Iridium.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="7" lean-forward="false" selection-start-line="0" selection-start-column="7" selection-end-line="0" selection-end-column="7" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/upload.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2790">
<caret line="167" column="0" lean-forward="false" selection-start-line="167" selection-start-column="0" selection-end-line="168" selection-end-column="0" />
<folding>
<element signature="e#0#28#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/app.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="234">
<caret line="15" column="6" lean-forward="true" selection-start-line="15" selection-start-column="6" selection-end-line="15" selection-end-column="6" />
<folding>
<element signature="e#74#115#0" expanded="false" />
<element signature="e#39#73#0" expanded="true" />
</folding>
</state>
</provider>
......@@ -480,7 +581,7 @@
<state relative-caret-position="198">
<caret line="13" column="3" lean-forward="true" selection-start-line="13" selection-start-column="3" selection-end-line="13" selection-end-column="3" />
<folding>
<element signature="e#74#115#0" expanded="false" />
<element signature="e#39#73#0" expanded="true" />
</folding>
</state>
</provider>
......@@ -489,7 +590,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="720">
<caret line="45" column="24" lean-forward="false" selection-start-line="45" selection-start-column="24" selection-end-line="45" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
......@@ -497,9 +597,7 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="7" column="58" lean-forward="true" selection-start-line="7" selection-start-column="58" selection-end-line="7" selection-end-column="58" />
<folding>
<element signature="e#0#37#0" expanded="false" />
</folding>
<folding />
</state>
</provider>
</entry>
......@@ -508,7 +606,8 @@
<state relative-caret-position="918">
<caret line="54" column="25" lean-forward="false" selection-start-line="54" selection-start-column="25" selection-end-line="54" selection-end-column="25" />
<folding>
<element signature="e#881#926#0" expanded="false" />
<element signature="e#352#394#0" expanded="true" />
<element signature="e#924#969#0" expanded="false" />
</folding>
</state>
</provider>
......@@ -518,7 +617,7 @@
<state relative-caret-position="840">
<caret line="44" column="29" lean-forward="false" selection-start-line="44" selection-start-column="29" selection-end-line="44" selection-end-column="29" />
<folding>
<element signature="e#74#115#0" expanded="false" />
<element signature="e#39#73#0" expanded="true" />
</folding>
</state>
</provider>
......@@ -529,7 +628,8 @@
<state relative-caret-position="1200">
<caret line="62" column="27" lean-forward="false" selection-start-line="62" selection-start-column="27" selection-end-line="62" selection-end-column="27" />
<folding>
<element signature="e#881#926#0" expanded="false" />
<element signature="e#352#394#0" expanded="true" />
<element signature="e#924#969#0" expanded="false" />
</folding>
</state>
</provider>
......@@ -540,7 +640,7 @@
<state relative-caret-position="80">
<caret line="6" column="0" lean-forward="false" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
<folding>
<element signature="e#74#115#0" expanded="false" />
<element signature="e#39#73#0" expanded="true" />
</folding>
</state>
</provider>
......@@ -589,7 +689,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-5396">
<caret line="337" column="12" lean-forward="false" selection-start-line="337" selection-start-column="12" selection-end-line="337" selection-end-column="12" />
<folding />
</state>
</provider>
</entry>
......@@ -605,7 +704,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="192">
<caret line="45" column="24" lean-forward="false" selection-start-line="45" selection-start-column="24" selection-end-line="45" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
......@@ -628,7 +726,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="5" column="0" lean-forward="true" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
......@@ -640,21 +737,10 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/server.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="3" lean-forward="false" selection-start-line="0" selection-start-column="3" selection-end-line="0" selection-end-column="40" />
<folding>
<element signature="e#881#926#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/@types/fs-extra-promise/index.d.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="172">
<caret line="56" column="31" lean-forward="false" selection-start-line="56" selection-start-column="31" selection-end-line="56" selection-end-column="31" />
<folding />
</state>
</provider>
</entry>
......@@ -666,21 +752,10 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/package/utils.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-344">
<caret line="53" column="38" lean-forward="false" selection-start-line="53" selection-start-column="38" selection-end-line="53" selection-end-column="38" />
<folding>
<element signature="e#0#38#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/iridium/dist/test/Utilities.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="324">
<caret line="18" column="3" lean-forward="true" selection-start-line="18" selection-start-column="3" selection-end-line="18" selection-end-column="3" />
<folding />
</state>
</provider>
</entry>
......@@ -688,114 +763,141 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252">
<caret line="14" column="68" lean-forward="true" selection-start-line="14" selection-start-column="68" selection-end-line="14" selection-end-column="68" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test/apps/ab2d4c10-2422-11e7-83af-af2e08cd288d/1/dist/index.js">
<entry file="file://$PROJECT_DIR$/test/apps/ab2d4c10-2422-11e7-83af-af2e08cd288d/1/dist/index.js" />
<entry file="file://$PROJECT_DIR$/node_modules/iridium/dist/lib/Conditions.d.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1214">
<caret line="0" column="146" lean-forward="false" selection-start-line="0" selection-start-column="146" selection-end-line="0" selection-end-column="146" />
<folding />
<state relative-caret-position="90">
<caret line="5" column="10" lean-forward="true" selection-start-line="5" selection-start-column="10" selection-end-line="5" selection-end-column="10" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/inversify.config.ts">
<entry file="file://$PROJECT_DIR$/node_modules/iridium/dist/lib/Model.d.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
<caret line="4" column="0" lean-forward="true" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
<folding>
<element signature="e#0#37#0" expanded="false" />
</folding>
<state relative-caret-position="217">
<caret line="164" column="14" lean-forward="true" selection-start-line="164" selection-start-column="14" selection-end-line="164" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/Iridium.ts">
<entry file="file://$PROJECT_DIR$/node_modules/aria2/index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="7" lean-forward="false" selection-start-line="0" selection-start-column="7" selection-end-line="0" selection-end-column="7" />
<folding />
<state relative-caret-position="259">
<caret line="288" column="43" lean-forward="true" selection-start-line="288" selection-start-column="43" selection-end-line="288" selection-end-column="43" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/iridium/dist/lib/Conditions.d.ts">
<entry file="file://$PROJECT_DIR$/.env">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="5" column="10" lean-forward="true" selection-start-line="5" selection-start-column="10" selection-end-line="5" selection-end-column="10" />
<folding />
<caret line="5" column="0" lean-forward="false" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/iridium/dist/lib/Model.d.ts">
<entry file="file://$PROJECT_DIR$/src/routes/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="217">
<caret line="164" column="14" lean-forward="true" selection-start-line="164" selection-start-column="14" selection-end-line="164" selection-end-column="14" />
<state relative-caret-position="18">
<caret line="1" column="17" lean-forward="false" selection-start-line="1" selection-start-column="11" selection-end-line="1" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/Package.ts">
<entry file="file://$PROJECT_DIR$/src/models/App.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="433">
<caret line="54" column="39" lean-forward="false" selection-start-line="54" selection-start-column="39" selection-end-line="54" selection-end-column="39" />
<state relative-caret-position="161">
<caret line="23" column="1" lean-forward="false" selection-start-line="23" selection-start-column="0" selection-end-line="24" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/App.ts">
<entry file="file://$PROJECT_DIR$/server.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="289">
<caret line="114" column="18" lean-forward="false" selection-start-line="114" selection-start-column="18" selection-end-line="114" selection-end-column="18" />
<folding />
<state relative-caret-position="389">
<caret line="68" column="30" lean-forward="true" selection-start-line="68" selection-start-column="30" selection-end-line="68" selection-end-column="30" />
<folding>
<element signature="e#352#394#0" expanded="true" />
<element signature="e#924#969#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/aria2/index.js">
<entry file="file://$PROJECT_DIR$/src/models/Iridium.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="259">
<caret line="288" column="43" lean-forward="true" selection-start-line="288" selection-start-column="43" selection-end-line="288" selection-end-column="43" />
<state relative-caret-position="0">
<caret line="0" column="7" lean-forward="false" selection-start-line="0" selection-start-column="7" selection-end-line="0" selection-end-column="7" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.env">
<entry file="file://$PROJECT_DIR$/config.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="5" column="0" lean-forward="false" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
<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$/config.ts">
<entry file="file://$PROJECT_DIR$/src/inversify.config.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
<caret line="4" column="1" lean-forward="true" selection-start-line="4" selection-start-column="1" selection-end-line="4" selection-end-column="1" />
<state relative-caret-position="54">
<caret line="4" column="0" lean-forward="true" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/package/main.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="36">
<caret line="2" column="38" lean-forward="true" selection-start-line="2" selection-start-column="38" selection-end-line="2" selection-end-column="38" />
<state relative-caret-position="-824">
<caret line="12" column="22" lean-forward="false" selection-start-line="12" selection-start-column="22" selection-end-line="12" selection-end-column="22" />
<folding>
<element signature="e#0#25#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/package/utils.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="761">
<caret line="53" column="38" lean-forward="false" selection-start-line="53" selection-start-column="38" selection-end-line="53" selection-end-column="38" />
<folding>
<element signature="e#0#38#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/app.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="259">
<caret line="26" column="0" lean-forward="false" selection-start-line="26" selection-start-column="0" selection-end-line="26" selection-end-column="0" />
<folding>
<element signature="e#39#73#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/Package.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-590">
<caret line="21" column="15" lean-forward="true" selection-start-line="21" selection-start-column="15" selection-end-line="21" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/upload.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="256">
<caret line="167" column="0" lean-forward="false" selection-start-line="167" selection-start-column="0" selection-end-line="168" selection-end-column="0" />
<state relative-caret-position="310">
<caret line="93" column="48" lean-forward="true" selection-start-line="93" selection-start-column="48" selection-end-line="93" selection-end-column="48" />
<folding>
<element signature="e#0#28#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/app.ts">
<entry file="file://$PROJECT_DIR$/src/routes/package.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="351">
<caret line="168" column="25" lean-forward="false" selection-start-line="168" selection-start-column="25" selection-end-line="168" selection-end-column="25" />
<state relative-caret-position="-110">
<caret line="16" column="2" lean-forward="true" selection-start-line="16" selection-start-column="2" selection-end-line="16" selection-end-column="2" />
<folding>
<element signature="e#39#73#0" expanded="true" />
</folding>
......
import * as path from 'path'
export default {
upload_path: path.join(__dirname, "./test/upload")
upload_path: path.join(__dirname, "./test/upload"),
download_path: path.join(__dirname, "./test/release/downloads")
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ import * as path from 'path'
import * as fs from 'fs-extra-promise'
import {mongodb} from '../src/models/iridium'
import {crawlPath, caculateSHA256, archive, archiveSingle, untar} from "./utils";
import {Archive, File} from "../src/models/Package";
const upload_path = path.join(__dirname, '../test/upload')
const release_path = path.join(__dirname, '../test/release')
......@@ -31,45 +32,51 @@ export async function bundle(...args) {
// untar upload package
await untar(uploadFile_path, package_path)
let hashes = new Map<string, object>();
// let hashes = {}
let files = new Map<string, File>();
let archives = new Map<string, Archive>();
// let files = {}
await crawlPath(package_path, {
onFile: async (file) => {
let hash = await caculateSHA256(file)
let file_hash = await caculateSHA256(file)
hashes.set(file, {
file: file,
hash: hash,
files.set(file, {
path: file,
hash: file_hash,
size: (await fs.statAsync(file)).size.toString()
})
// hashes[file] = {
// file: file,
// hash: hash,
// size: (await fs.statAsync(file)).size.toString()
// }
let sand_file = path.join(sand_path, `${hash}.tar.gz`)
let sand_file = path.join(sand_path, `${file_hash}.tar.gz`)
archives.set(sand_file, {
path: sand_file,
hash: await caculateSHA256(sand_file),
size: (await fs.statAsync(sand_file)).size.toString()
})
await archiveSingle(sand_file, [file], package_path)
},
onDir: async (files, _path, depth) => {
},
})
// TODO: 上传checksum: hashes
// TODO: 上传checksum: files
const full_file = path.join(full_path, `${package_id}.tar.gz`)
const fullFile = path.join(full_path, `${package_id}.tar.gz`)
await fs.removeAsync(full_file)
await archive(full_file, await fs.readdirAsync(package_path), package_path)
await fs.removeAsync(fullFile)
await archive(fullFile, await fs.readdirAsync(package_path), package_path)
// TODO: 上传meta
const full_hash = await caculateSHA256(full_file)
const full_size = (await fs.statAsync(full_file)).size.toString()
const fullHash = await caculateSHA256(fullFile)
const fullSize = (await fs.statAsync(fullFile)).size.toString()
// TODO: 增量包
return {
files: Array.from(hashes.values())
files: Array.from(files.values()),
archives: Array.from(archives.values()),
fullFile,
fullSize,
fullHash
}
}
......@@ -9,6 +9,7 @@ import { mongodb } from './src/models/iridium'
// import index from './routes/index';
import upload from './src/routes/upload';
// import users from './src/routes/users';
import package from './src/routes/package'
import apps from './src/routes/app';
// import packages from './routes/packages';
......@@ -64,6 +65,7 @@ app.use(bodyParser());
// app.use(users.routes());
app.use(apps.routes());
app.use(upload.routes());
app.use(package.routes());
// app.use(packages.routes());
mongodb.connect().then(() => {
......
......@@ -16,16 +16,26 @@ export interface File {
hash: string;
}
export interface Archive {
path: string;
size: number;
hash: string;
}
export interface Package {
id: string;
name: string;
appId: string;
fullSize: number;
fullHash: string;
fullPath: string;
version: string;
status: string;
type: string;
locales: Locale[];
platforms: Platform[];
files?: File[];
archives?: Archive[];
}
......@@ -38,6 +48,12 @@ export class PackageSchema extends Instance<Package, PackageSchema> implements P
name: string;
@Property(String, false)
appId: string;
@Property(Number, false)
fullSize: number;
@Property(String, false)
fullHash: string;
@Property(String, false)
fullPath: string;
@Property(String, true)
type: string;
@Property(String, true)
......@@ -50,6 +66,8 @@ export class PackageSchema extends Instance<Package, PackageSchema> implements P
platforms: Platform[];
@Property(Array, false)
files: File[];
@Property(Array, false)
archives: Archive[];
static onCreating(pack: Package){
pack.status = pack.status || 'init'
......
......@@ -23,11 +23,11 @@ const router = new Router();
// })
// });
router.get('/apps', async (ctx: Context, next) => {
router.get('/v1/apps', async (ctx: Context, next) => {
ctx.body = await mongodb.Apps.find({}).toArray()
})
router.post('/apps/:id', async (ctx: Context, next) => {
router.post('/v1/app/:id', async (ctx: Context, next) => {
if (!ctx.request.body.id || ctx.params.id !== ctx.request.body.id) {
ctx.throw(400, "App is not same")
}
......@@ -43,7 +43,7 @@ router.post('/apps/:id', async (ctx: Context, next) => {
}
})
router.patch('/apps/:id', async (ctx: Context, next) => {
router.patch('/v1/app/:id', async (ctx: Context, next) => {
let _app: App = ctx.request.body
let app: AppSchema | null = await mongodb.Apps.findOne({id: ctx.params.id});
if (!app) {
......@@ -53,141 +53,9 @@ router.patch('/apps/:id', async (ctx: Context, next) => {
ctx.throw(400, `Can not change AppID`)
}
// if(Array.isArray(data.packages)) {
// data.packages = await Promise.all(data.packages.map(async _p => {
// if(_p._id) {
// const p = await mongodb.Packages.findOne({_id: toObjectID(_p._id)})
//
// if(!_p.platforms) {
// ctx.throw(400, `请填写支持的平台:${_p.id}`)
// }
// else if(!_p.locales) {
// ctx.throw(400, `请填写支持的语言:${_p.id}`)
// }
// else if(!_p.version) {
// ctx.throw(400, `请填写版本号:${_p.id}`)
// }
// else if(vercomp(_p.version, p.version) == -1){
// ctx.throw(400, `版本号有误 :${_p.id}`)
// }
//
// if(p.status == 'init') {
// p.handleUpdate(_p)
// await p.save()
// return p._id
// }
// else {
// return p._id
// }
//
// } else {
// let pack: Package = {
// id: _p.id,
// name: _p.name,
// version: _p.version,
// appId: ctx.params.id,
// locales: _p.locales,
// platforms: _p.platforms,
// status: 'init'
// }
// const newP = await mongodb.Packages.insert(pack)
// return newP._id
// }
// }))
// }
app!.handleUpdate(_app)
ctx.body = await app!.save()
})
router.get('/packages/ready', async (ctx: Context, next) => {
if (!ctx.request.query.appId) {
ctx.throw(400, "appId must be required!")
}
let packs = await mongodb.Packages.find({appId: ctx.request.query.appId, status: 'uploaded'})
ctx.body = {
[ctx.request.query.appId]: packs
}
})
router.get('/packages/manage', async (ctx: Context, next) => {
if (!ctx.request.query.appId) {
ctx.throw(400, "appId must be required!")
}
let packs = await mongodb.Packages.find({appId: ctx.request.query.appId, type: 'editing'}).toArray()
ctx.body = {
[ctx.request.query.appId]: packs
}
})
router.post('/packages', async (ctx: Context, next) => {
const _p: Package = ctx.request.body
if (!_p.id) {
ctx.throw(400, `id 参数缺失:${_p.id}`)
}
if (!_p.platforms || _p.platforms.length == 0) {
ctx.throw(400, `请填写支持的平台:${_p.id}`)
}
else if (!_p.locales || _p.locales.length == 0) {
ctx.throw(400, `请填写支持的语言:${_p.id}`)
}
else if (!_p.version) {
ctx.throw(400, `请填写版本号:${_p.id}`)
}
await mongodb.Packages.update({id: _p.id}, {$set: { type: 'edited' }}, {multi: true})
let _pack: Package = {
id: _p.id,
name: _p.name,
version: _p.version,
appId: _p.appId,
locales: _p.locales,
platforms: _p.platforms,
status: 'init',
type: 'editing'
}
ctx.body = await mongodb.Packages.insert(_pack)
})
router.patch('/packages', async (ctx: Context, next) => {
const _p: Package = ctx.request.body
const p = await mongodb.Packages.findOne({_id: toObjectID(_p._id)})
if (!_p.id) {
ctx.throw(400, `id 参数缺失:${_p.id}`)
}
if (!_p.platforms || _p.platforms.length == 0) {
ctx.throw(400, `请填写支持的平台:${_p.id}`)
}
else if (!_p.locales || _p.locales.length == 0) {
ctx.throw(400, `请填写支持的语言:${_p.id}`)
}
else if (!_p.version) {
ctx.throw(400, `请填写版本号:${_p.id}`)
}
if (p.status == 'init') {
p.handleUpdate(_p)
ctx.body = await p.save()
} else {
ctx.throw(400, `非法操作:${_p.id}`)
}
})
router.delete('/packages', async(ctx: Context, next) => {
const _p: Package = ctx.request.body
const p = await mongodb.Packages.findOne({_id: toObjectID(_p._id)})
p.type = 'edited'
p.status = 'delete'
await p.save()
ctx.body = {
message: 'delete successful'
}
})
export default router
\ No newline at end of file
import Router = require('koa-router');
import {toObjectID} from 'iridium'
import {mongodb} from '../models/iridium'
import {Context} from "koa";
import config from '../../config'
import {Archive, Package} from "../models/Package";
const router = new Router();
router.get('/v2/packages', async (ctx: Context, next) => {
if (!ctx.request.query.appId) {
ctx.throw(400, "appId must be required!")
}
let packs = await mongodb.Packages.find({appId: ctx.request.query.appId, status: 'uploaded'})
ctx.body = {
[ctx.request.query.appId]: packs
}
})
router.post('/v2/package/:id/update', async (ctx: Context, next) => {
const package_id = ctx.params.id
const download_path = config.download_path
const request_overhead = 1024 * 1024
let sandSize = ctx.request.body.length * request_overhead
let pack = await mongodb.Packages.findOne({id: package_id, status: 'ready'})
let {fullSize, fullPath} = pack!
let files
let fullFiles = new Map<string, Archive>()
pack!.archives.map((f) => {
fullFiles.set(f.path, f)
})
if(fullSize > sandSize) {
files = ctx.request.body.map((_file) => {
const file: Archive|undefined = fullFiles.get(_file)
if(!file) {
//
}
sandSize += file.size
return {
path: file.path,
size: file.size,
hash: file.hash
}
})
}
if( sandSize <= fullSize ) {
files = [{
path: pack.fullPath,
size: pack.fullSize,
hash: pack.fullHash
}]
}
ctx.body = files
})
router.get('/v1/packages', async (ctx: Context, next) => {
if (!ctx.request.query.appId) {
ctx.throw(400, "appId must be required!")
}
let packs = await mongodb.Packages.find({appId: ctx.request.query.appId, type: 'editing'}).toArray()
ctx.body = {
[ctx.request.query.appId]: packs
}
})
router.post('/v1/package', async (ctx: Context, next) => {
const _p: Package = ctx.request.body
if (!_p.id) {
ctx.throw(400, `id 参数缺失:${_p.id}`)
}
if (!_p.platforms || _p.platforms.length == 0) {
ctx.throw(400, `请填写支持的平台:${_p.id}`)
}
else if (!_p.locales || _p.locales.length == 0) {
ctx.throw(400, `请填写支持的语言:${_p.id}`)
}
else if (!_p.version) {
ctx.throw(400, `请填写版本号:${_p.id}`)
}
await mongodb.Packages.update({id: _p.id}, {$set: { type: 'edited' }}, {multi: true})
let _pack: Package = {
id: _p.id,
name: _p.name,
version: _p.version,
appId: _p.appId,
locales: _p.locales,
platforms: _p.platforms,
status: 'init',
type: 'editing'
}
ctx.body = await mongodb.Packages.insert(_pack)
})
router.patch('/v1/package', async (ctx: Context, next) => {
const _p: Package = ctx.request.body
const p = await mongodb.Packages.findOne({_id: toObjectID(_p._id)})
if (!_p.id) {
ctx.throw(400, `id 参数缺失:${_p.id}`)
}
if (!_p.platforms || _p.platforms.length == 0) {
ctx.throw(400, `请填写支持的平台:${_p.id}`)
}
else if (!_p.locales || _p.locales.length == 0) {
ctx.throw(400, `请填写支持的语言:${_p.id}`)
}
else if (!_p.version) {
ctx.throw(400, `请填写版本号:${_p.id}`)
}
if (p.status == 'init') {
p.handleUpdate(_p)
ctx.body = await p.save()
} else {
ctx.throw(400, `非法操作:${_p.id}`)
}
})
router.delete('/v1/package', async(ctx: Context, next) => {
const _p: Package = ctx.request.body
const p = await mongodb.Packages.findOne({_id: toObjectID(_p._id)})
p.type = 'edited'
p.status = 'delete'
await p.save()
ctx.body = {
message: 'delete successful'
}
})
export default router
\ No newline at end of file
......@@ -86,23 +86,23 @@ export const UploadPackage = async (ctx: Context) => {
file.on('close', async() => {
pack.status = 'uploading'
await pack.save()
pack!.status = 'uploading'
await pack!.save()
resolve(pack)
resolve(pack!)
// 上传完, 打包
const bundled = await bundle(filename)
pack.files = bundled.files
pack.status = 'uploaded'
await pack.save()
Object.assign(pack, bundled)
pack!.status = 'uploaded'
await pack!.save()
// 打包完,上传阿里云
})
file.on('error', async (error) => {
pack.status = 'failed'
await pack.save()
pack!.status = 'failed'
await pack!.save()
reject(error)
})
......@@ -167,11 +167,11 @@ const uploadPackageUrl = async (ctx: Context) => {
}
router.post('/upload/image', UploadImage)
router.post('/v1/upload/image', UploadImage)
router.post('/upload/package/:id', UploadPackage)
router.post('/v1/upload/package/:id', UploadPackage)
router.post('/upload/packageUrl', uploadPackageUrl)
router.post('/v1/upload/packageUrl', uploadPackageUrl)
export default router
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