@shijiu/jsview-vue 0.9.249 → 0.9.254

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/dom/bin/package.json +11 -11
  2. package/dom/browser-root-style.css +21 -21
  3. package/loader/jsview-main.js +41 -41
  4. package/loader/jsview.config.default.js +37 -37
  5. package/loader/jsview.default.config.js +37 -37
  6. package/package.json +1 -1
  7. package/patches/node_modules/@babel/preset-env/lib/available-plugins.js +218 -218
  8. package/patches/node_modules/@vue/cli-plugin-typescript/index.js +100 -100
  9. package/patches/node_modules/@vue/cli-service/lib/commands/serve.js +395 -395
  10. package/patches/node_modules/@vue/cli-service/lib/config/app.js +272 -272
  11. package/patches/node_modules/@vue/cli-service/lib/config/assets.js +70 -70
  12. package/patches/node_modules/@vue/cli-service/lib/config/base.js +212 -212
  13. package/patches/node_modules/postcss-js/objectifier.js +90 -90
  14. package/patches/node_modules/vue-loader/dist/resolveScript.js +70 -70
  15. package/samples/AdvanceMetroWidget/App.vue +122 -122
  16. package/samples/AdvanceMetroWidget/Frame.vue +100 -100
  17. package/samples/AdvanceMetroWidget/Item.vue +57 -57
  18. package/samples/AdvanceMetroWidget/data.js +136 -136
  19. package/samples/AnimPicture/App.vue +223 -223
  20. package/samples/Basic/App.vue +128 -128
  21. package/samples/Basic/components/TitleBar.vue +28 -28
  22. package/samples/Basic/components/anim/AnimGroup.vue +67 -67
  23. package/samples/Basic/components/anim/AnimKeyframeBasic.vue +101 -101
  24. package/samples/Basic/components/anim/AnimKeyframeComposite.vue +52 -52
  25. package/samples/Basic/components/anim/AnimTransition.vue +116 -116
  26. package/samples/Basic/components/div/DivBackground.vue +14 -14
  27. package/samples/Basic/components/div/DivClip.vue +80 -80
  28. package/samples/Basic/components/div/DivCssScoped.vue +26 -26
  29. package/samples/Basic/components/div/DivCssVar.vue +49 -49
  30. package/samples/Basic/components/div/DivGroup1.vue +32 -32
  31. package/samples/Basic/components/div/DivGroup2.vue +40 -40
  32. package/samples/Basic/components/div/DivLayout.vue +11 -11
  33. package/samples/Basic/components/div/DivRadius.vue +46 -46
  34. package/samples/Basic/components/text/TextAlign.vue +47 -47
  35. package/samples/Basic/components/text/TextFontStyle.vue +57 -57
  36. package/samples/Basic/components/text/TextGroup.vue +31 -31
  37. package/samples/Basic/components/text/TextOverflow.vue +77 -77
  38. package/samples/BasicFocusControl/App.vue +124 -124
  39. package/samples/BasicFocusControl/components/BaseBlock.vue +50 -50
  40. package/samples/BasicFocusControl/components/MainArea.vue +97 -97
  41. package/samples/BasicFocusControl/components/MainAreaLeftBlock.vue +20 -20
  42. package/samples/BasicFocusControl/components/MainAreaRightBlock.vue +29 -29
  43. package/samples/BasicFocusControl/components/SideBar.vue +72 -72
  44. package/samples/BasicFocusControl/components/SideBarBlock.vue +29 -29
  45. package/samples/ClassNameDemo/App.vue +119 -119
  46. package/samples/ClassNameDemo/components/ContentItem.vue +252 -252
  47. package/samples/ClassNameDemo/components/LoadingView.vue +43 -43
  48. package/samples/ClassNameDemo/components/TitleView.vue +24 -24
  49. package/samples/ClassNameDemo/data.js +24 -24
  50. package/samples/ColorSpace/App.vue +134 -134
  51. package/samples/DemoHomepage/App.vue +31 -31
  52. package/samples/DemoHomepage/components/BodyFrame.vue +81 -81
  53. package/samples/DemoHomepage/components/Dialog.vue +93 -93
  54. package/samples/DemoHomepage/components/Item.vue +76 -76
  55. package/samples/DemoHomepage/components/TabFrame.vue +86 -86
  56. package/samples/DemoHomepage/router.js +132 -132
  57. package/samples/DemoHomepage/views/Homepage.vue +186 -186
  58. package/samples/FlipCard/App.vue +80 -80
  59. package/samples/FlipCard/FlipCard.vue +123 -123
  60. package/samples/FlipCard/data.js +12 -12
  61. package/samples/FlowMultiWidget/App.vue +90 -90
  62. package/samples/FlowMultiWidget/components/Block.vue +106 -106
  63. package/samples/FlowMultiWidget/components/FlowPage.vue +59 -59
  64. package/samples/FlowMultiWidget/components/Item.vue +102 -102
  65. package/samples/FlowMultiWidget/components/MenuItem.vue +71 -71
  66. package/samples/FlowMultiWidget/components/MyMenu.vue +89 -89
  67. package/samples/FlowMultiWidget/data.js +446 -446
  68. package/samples/HashHistory/App.vue +124 -124
  69. package/samples/HashHistory/components/HorizontalButtonList.vue +113 -113
  70. package/samples/HashHistory/components/Item.vue +73 -73
  71. package/samples/HashHistory/router.js +29 -29
  72. package/samples/HashHistory/views/BasePage.vue +18 -18
  73. package/samples/HashHistory/views/MainPage.vue +67 -67
  74. package/samples/HashHistory/views/SubPage.vue +78 -78
  75. package/samples/HashHistory/views/SubPageFirst.vue +9 -9
  76. package/samples/HashHistory/views/SubPageSecond.vue +9 -9
  77. package/samples/LongImage/App.vue +96 -96
  78. package/samples/LongImage/Button.vue +153 -153
  79. package/samples/LongImage/LongImageScroll.vue +126 -126
  80. package/samples/LongImage/Scroll.vue +15 -15
  81. package/samples/LongText/App.vue +111 -111
  82. package/samples/LongText/Button.vue +153 -153
  83. package/samples/LongText/LongTextScroll.vue +224 -224
  84. package/samples/LongText/Scroll.vue +15 -15
  85. package/samples/Preload/App.vue +145 -145
  86. package/samples/Preload/data.js +22 -22
  87. package/samples/Preload/preloadItem.vue +21 -21
  88. package/samples/QrcodeDemo/App.vue +72 -72
  89. package/samples/SimpleWidgetDemo/App.vue +203 -203
  90. package/samples/SimpleWidgetDemo/Item.vue +82 -82
  91. package/samples/SimpleWidgetDemo/components/ContentItem.vue +411 -411
  92. package/samples/SimpleWidgetDemo/components/MyTab.vue +116 -116
  93. package/samples/SimpleWidgetDemo/data.js +110 -110
  94. package/samples/SprayView/App.vue +269 -269
  95. package/samples/SpriteImage/App.vue +174 -174
  96. package/samples/SpriteImage/images/egg_break.json +116 -116
  97. package/samples/TextBox/App.vue +178 -178
  98. package/samples/TextBox/RenderCenter.vue +108 -108
  99. package/samples/TextBox/RenderLeft.vue +108 -108
  100. package/samples/TextBox/RenderOneLine.vue +119 -119
  101. package/samples/TextBox/RenderRight.vue +106 -106
  102. package/samples/TextShadowDemo/App.vue +97 -97
  103. package/samples/TextureSize/App.vue +141 -141
  104. package/samples/ThrowMoveDemo/AccelerateDemo.vue +117 -117
  105. package/samples/ThrowMoveDemo/App.vue +113 -113
  106. package/samples/ThrowMoveDemo/LRParabolicDemo.vue +115 -115
  107. package/samples/ThrowMoveDemo/TargetDemo.vue +116 -116
  108. package/samples/ThrowMoveDemo/UDParabolicDemo.vue +121 -121
  109. package/samples/TransitPage/App.vue +40 -40
  110. package/samples/VideoDemo/App.vue +137 -137
  111. package/samples/VideoDemo/components/Button.vue +68 -68
  112. package/samples/VideoDemo/components/Controllor.vue +195 -195
  113. package/samples/VideoDemo/components/VideoFrame.vue +152 -152
  114. package/scripts/common.js +115 -115
  115. package/scripts/deploy-fast-pack.js +16 -16
  116. package/scripts/deploy-fast-publish.js +43 -38
  117. package/scripts/deploy-git-commit-empty.js +21 -21
  118. package/scripts/deploy-prepare.js +56 -59
  119. package/scripts/jsview-install-local-packages.js +73 -73
  120. package/scripts/jsview-post-build.js +127 -127
  121. package/scripts/jsview-post-install.js +78 -78
  122. package/scripts/jsview-run-android.js +64 -64
  123. package/scripts/make-js.sh +181 -181
  124. package/utils/JsViewEngineWidget/bin/index.js +1 -1
  125. package/utils/JsViewEngineWidget/bin/package.json +11 -11
  126. package/utils/JsViewVueTools/JsvHashHistory.js +111 -111
  127. package/utils/JsViewVueTools/JsvRuntimeBridge.js +417 -417
  128. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserPreload.vue +80 -80
  129. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserQrcode.vue +147 -147
  130. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserSpray.vue +54 -54
  131. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/ApicDataBase.js +28 -28
  132. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/BrowserApic.vue +123 -123
  133. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/GifData.js +83 -83
  134. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/LoopToolBase.js +25 -25
  135. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/NormalLoopTool.js +61 -61
  136. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/PartLoopTool.js +119 -119
  137. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/Viewer.js +106 -106
  138. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/WebpData.js +141 -141
  139. package/utils/JsViewVueWidget/BrowserDebugWidget/WidgetLoader.js +20 -20
  140. package/utils/JsViewVueWidget/JsvActorMove/ActorControlBase.js +204 -204
  141. package/utils/JsViewVueWidget/JsvActorMove/JsvActorMove.vue +63 -63
  142. package/utils/JsViewVueWidget/JsvActorMove/JsvActorMoveControl.js +426 -426
  143. package/utils/JsViewVueWidget/JsvActorMove/index.js +12 -12
  144. package/utils/JsViewVueWidget/JsvApic/JsvApic.vue +178 -178
  145. package/utils/JsViewVueWidget/JsvApic/index.js +17 -17
  146. package/utils/JsViewVueWidget/JsvMarquee.vue +196 -196
  147. package/utils/JsViewVueWidget/JsvNinePatch.vue +76 -76
  148. package/utils/JsViewVueWidget/JsvPreload/JsvPreload.vue +350 -350
  149. package/utils/JsViewVueWidget/JsvPreload/index.js +21 -21
  150. package/utils/JsViewVueWidget/JsvQrcode/JsvQrcode.vue +140 -140
  151. package/utils/JsViewVueWidget/JsvQrcode/index.js +18 -18
  152. package/utils/JsViewVueWidget/JsvSpray/JsvSpray.vue +139 -139
  153. package/utils/JsViewVueWidget/JsvSpray/index.js +14 -14
  154. package/utils/JsViewVueWidget/JsvSpriteAnim/JsvSpriteAnim.vue +447 -447
  155. package/utils/JsViewVueWidget/JsvSpriteAnim/SpriteController.js +56 -56
  156. package/utils/JsViewVueWidget/JsvSpriteAnim/index.js +6 -6
  157. package/utils/JsViewVueWidget/JsvSwiper/Indicator.vue +34 -34
  158. package/utils/JsViewVueWidget/JsvSwiper/JsvSwiper.vue +494 -494
  159. package/utils/JsViewVueWidget/JsvSwiper/index.js +9 -9
  160. package/utils/JsViewVueWidget/JsvSwiper3D/Indicator.vue +34 -34
  161. package/utils/JsViewVueWidget/JsvSwiper3D/JsvSwiper.vue +403 -403
  162. package/utils/JsViewVueWidget/JsvSwiper3D/index.js +9 -9
  163. package/utils/JsViewVueWidget/JsvTextBox.vue +110 -110
  164. package/utils/JsViewVueWidget/JsvVideo.vue +35 -35
  165. package/vetur.config.js +5 -5
@@ -1,21 +1,21 @@
1
- #!/usr/bin/env node
2
-
3
- const { execSync } = require('child_process');
4
-
5
- function main() {
6
- // 安装dom和widget
7
- let cmdLine = "git diff --cached";
8
- console.info("\nRunning [" + cmdLine + "]... ");
9
- let ret = execSync(cmdLine, { stderr: "inherit" });
10
- if(ret) {
11
- console.error("\nError: There have same uncommitted files in cache, please cleanup first.");
12
- process.exit(1);
13
- }
14
-
15
-
16
- // 安装dom和widget
17
- cmdLine = "git commit --allow-empty -m \"强制版本+1\"";
18
- console.info("\nRunning [" + cmdLine + "]... ");
19
- execSync(cmdLine, { stdio: "inherit", stderr: "inherit" });
20
- }
21
- main();
1
+ #!/usr/bin/env node
2
+
3
+ const { execSync } = require('child_process');
4
+
5
+ function main() {
6
+ // 安装dom和widget
7
+ let cmdLine = "git diff --cached";
8
+ console.info("\nRunning [" + cmdLine + "]... ");
9
+ let ret = execSync(cmdLine, { stderr: "inherit" });
10
+ if(ret) {
11
+ console.error("\nError: There have same uncommitted files in cache, please cleanup first.");
12
+ process.exit(1);
13
+ }
14
+
15
+
16
+ // 安装dom和widget
17
+ cmdLine = "git commit --allow-empty -m \"强制版本+1\"";
18
+ console.info("\nRunning [" + cmdLine + "]... ");
19
+ execSync(cmdLine, { stdio: "inherit", stderr: "inherit" });
20
+ }
21
+ main();
@@ -1,59 +1,56 @@
1
- #!/usr/bin/env node
2
-
3
- const fs = require('fs');
4
- const path = require('path');
5
- const { execSync } = require('child_process');
6
- const { cpSync, syncReadIO, updateVersion } = require('./common');
7
-
8
- async function updateVersionWithPrompt() {
9
- const options = {};
10
- options.projectDir = process.cwd();
11
-
12
- const gitChanges = updateVersion(options.projectDir);
13
- if (gitChanges) {
14
- console.log('Git changes:\n' + gitChanges);
15
-
16
- const answer = await syncReadIO('Warning: Git working directory not clean, do you want to update version continue? [yes/NO]\n');
17
- if (answer?.toLowerCase() === 'yes') {
18
- updateVersion(options.projectDir, true);
19
- } else {
20
- console.error("Error: User cancelled.")
21
- process.exit(1);
22
- }
23
- }
24
- }
25
-
26
- function buildAndInstallModules(moduleName, projectDir, sourceDir, distBinDir) {
27
- console.info('\nBuilding ' + moduleName + '... ');
28
- pkgPkgFile = path.resolve(sourceDir, 'package.json');
29
- if (!fs.existsSync(pkgPkgFile)) {
30
- console.error('Error: Failed to build ' + moduleName + ', "' + path.relative(options.projectDir, pkgPkgFile) + '" is not exists.');
31
- process.exit(1);
32
- }
33
-
34
- cmdLine = 'cd ' + sourceDir + ' && npm install && npm run build';
35
- console.info('Run [' + cmdLine + ']... ');
36
- execSync(cmdLine, { stdio: 'inherit', stderr: 'inherit' });
37
-
38
- cpSync(projectDir, path.resolve(sourceDir, 'dist'), distBinDir);
39
- }
40
-
41
- async function main() {
42
- const options = {};
43
- options.projectDir = process.cwd();
44
- options.domBinDir = path.resolve(options.projectDir, 'dom/bin');
45
- options.widgetBinDir = path.resolve(options.projectDir, 'utils/JsViewEngineWidget/bin');
46
- options.domSourceDir = path.resolve(options.projectDir, 'deps/jsview-dom');
47
- options.widgetSourceDir = path.resolve(options.projectDir, 'deps/jsview-vue3-engine-widget');
48
-
49
- const ret = await updateVersionWithPrompt();
50
-
51
- buildAndInstallModules('jsview-dom',
52
- options.projectDir,
53
- options.domSourceDir, options.domBinDir);
54
- buildAndInstallModules('jsview-vue3-engine-widget',
55
- options.projectDir,
56
- options.widgetSourceDir, options.widgetBinDir);
57
- }
58
-
59
- main();
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const { execSync } = require('child_process');
6
+ const { cpSync, syncReadIO, updateVersion } = require('./common');
7
+
8
+ async function updateVersionWithPrompt(projectDir) {
9
+ const gitChanges = updateVersion(projectDir);
10
+ if (gitChanges) {
11
+ console.log('Git changes:\n' + gitChanges);
12
+
13
+ const answer = await syncReadIO('Warning: Git working directory not clean, do you want to update version continue? [yes/NO]\n');
14
+ if (answer?.toLowerCase() === 'yes') {
15
+ updateVersion(projectDir, true);
16
+ } else {
17
+ console.error("Error: User cancelled.")
18
+ process.exit(1);
19
+ }
20
+ }
21
+ }
22
+
23
+ function buildAndInstallModules(moduleName, projectDir, sourceDir, distBinDir) {
24
+ console.info('\nBuilding ' + moduleName + '... ');
25
+ pkgPkgFile = path.resolve(sourceDir, 'package.json');
26
+ if (!fs.existsSync(pkgPkgFile)) {
27
+ console.error('Error: Failed to build ' + moduleName + ', "' + path.relative(projectDir, pkgPkgFile) + '" is not exists.');
28
+ process.exit(1);
29
+ }
30
+
31
+ cmdLine = 'cd ' + sourceDir + ' && npm install && npm run build';
32
+ console.info('Run [' + cmdLine + ']... ');
33
+ execSync(cmdLine, { stdio: 'inherit', stderr: 'inherit' });
34
+
35
+ cpSync(projectDir, path.resolve(sourceDir, 'dist'), distBinDir);
36
+ }
37
+
38
+ async function main() {
39
+ const options = {};
40
+ options.projectDir = process.cwd();
41
+ options.domBinDir = path.resolve(options.projectDir, 'dom/bin');
42
+ options.widgetBinDir = path.resolve(options.projectDir, 'utils/JsViewEngineWidget/bin');
43
+ options.domSourceDir = path.resolve(options.projectDir, 'deps/jsview-dom');
44
+ options.widgetSourceDir = path.resolve(options.projectDir, 'deps/jsview-vue3-engine-widget');
45
+
46
+ const ret = await updateVersionWithPrompt(options.projectDir);
47
+
48
+ buildAndInstallModules('jsview-dom',
49
+ options.projectDir,
50
+ options.domSourceDir, options.domBinDir);
51
+ buildAndInstallModules('jsview-vue3-engine-widget',
52
+ options.projectDir,
53
+ options.widgetSourceDir, options.widgetBinDir);
54
+ }
55
+
56
+ main();
@@ -1,73 +1,73 @@
1
- #!/usr/bin/env node
2
-
3
- const path = require("path");
4
- const fs = require("fs");
5
- const { execSync } = require('child_process');
6
- const { cpSync, rmSync } = require('./common');
7
-
8
- function installPackages(options) {
9
- // react/vue3共同的dom
10
- const jsviewDomDir = options.rootDir + '/jsview/dom/bin/';
11
- const jsviewDomPath = fs.readdirSync(jsviewDomDir).pop(); // 选择最后一个tgz
12
- console.info('Found jsview-dom package: ' + jsviewDomDir + '/' + jsviewDomPath);
13
- let cmdLine = "npm install file:" + jsviewDomDir + '/' + jsviewDomPath + " jsview-dom";
14
- console.info("\nRunning [" + cmdLine + "]... ");
15
- execSync(cmdLine, { stdio: "inherit", stderr: "inherit" });
16
-
17
- // vue专有的widget
18
- const jsviewReactWidgetDir = options.rootDir + '/jsview/utils/JsViewEngineWidget/bin/';
19
- const jsviewReactWidgetPath = fs.readdirSync(jsviewReactWidgetDir).pop(); // 选择最后一个tgz
20
- console.info('Found jsview-vue-widget package: ' + jsviewReactWidgetDir + '/' + jsviewReactWidgetPath);
21
- cmdLine = "npm install file:" + jsviewReactWidgetDir + '/' + jsviewReactWidgetPath + " @shijiu-jsview/vue-widget";
22
- console.info("\nRunning [" + cmdLine + "]... ");
23
- execSync(cmdLine, { stdio: "inherit", stderr: "inherit" });
24
-
25
- console.info("\nPatching jsview from " + options.patchDir);
26
- cpSync(
27
- options.rootDir,
28
- options.patchDir + "/node_modules",
29
- options.rootDir + "/node_modules"
30
- );
31
-
32
- console.info("\nCleanup node_modules cache... ");
33
- const nodeModuleCacheDir = options.rootDir + "/node_modules/.cache";
34
- rmSync(nodeModuleCacheDir);
35
- }
36
-
37
- async function printRevision(options) {
38
- const jsveiwVersionFile = options.jsviewDir + "/dom/target_core_revision.js";
39
-
40
- const jsviewTargetVersion = require(jsveiwVersionFile);
41
-
42
- console.log("");
43
- console.log("**************************************************");
44
- console.log("* Update revision to:");
45
- console.log("* CORE: " + jsviewTargetVersion.CoreRevision);
46
- console.log("* ENGINE JS URL: " + jsviewTargetVersion.JseUrl);
47
- console.log("**************************************************");
48
- }
49
-
50
- function backupPkgLock() {
51
- const pkgLockName = 'package-lock.json';
52
- const scriptDir = path.resolve(__dirname);
53
- const rootDir = path.join(scriptDir, '/../../');
54
-
55
- console.info("\nBackuping " + pkgLockName);
56
- cpSync(rootDir, rootDir + pkgLockName, rootDir + '/jsview/patch/' + pkgLockName);
57
- }
58
-
59
- function main() {
60
- const options = {
61
- rootDir: path.resolve(__dirname, "../../"),
62
- jsviewDir: path.resolve(__dirname, "../"),
63
- patchDir: path.resolve(__dirname, "../patch"),
64
- };
65
-
66
-
67
- installPackages(options);
68
-
69
- backupPkgLock();
70
-
71
- printRevision(options);
72
- }
73
- main();
1
+ #!/usr/bin/env node
2
+
3
+ const path = require("path");
4
+ const fs = require("fs");
5
+ const { execSync } = require('child_process');
6
+ const { cpSync, rmSync } = require('./common');
7
+
8
+ function installPackages(options) {
9
+ // react/vue3共同的dom
10
+ const jsviewDomDir = options.rootDir + '/jsview/dom/bin/';
11
+ const jsviewDomPath = fs.readdirSync(jsviewDomDir).pop(); // 选择最后一个tgz
12
+ console.info('Found jsview-dom package: ' + jsviewDomDir + '/' + jsviewDomPath);
13
+ let cmdLine = "npm install file:" + jsviewDomDir + '/' + jsviewDomPath + " jsview-dom";
14
+ console.info("\nRunning [" + cmdLine + "]... ");
15
+ execSync(cmdLine, { stdio: "inherit", stderr: "inherit" });
16
+
17
+ // vue专有的widget
18
+ const jsviewReactWidgetDir = options.rootDir + '/jsview/utils/JsViewEngineWidget/bin/';
19
+ const jsviewReactWidgetPath = fs.readdirSync(jsviewReactWidgetDir).pop(); // 选择最后一个tgz
20
+ console.info('Found jsview-vue-widget package: ' + jsviewReactWidgetDir + '/' + jsviewReactWidgetPath);
21
+ cmdLine = "npm install file:" + jsviewReactWidgetDir + '/' + jsviewReactWidgetPath + " @shijiu-jsview/vue-widget";
22
+ console.info("\nRunning [" + cmdLine + "]... ");
23
+ execSync(cmdLine, { stdio: "inherit", stderr: "inherit" });
24
+
25
+ console.info("\nPatching jsview from " + options.patchDir);
26
+ cpSync(
27
+ options.rootDir,
28
+ options.patchDir + "/node_modules",
29
+ options.rootDir + "/node_modules"
30
+ );
31
+
32
+ console.info("\nCleanup node_modules cache... ");
33
+ const nodeModuleCacheDir = options.rootDir + "/node_modules/.cache";
34
+ rmSync(nodeModuleCacheDir);
35
+ }
36
+
37
+ async function printRevision(options) {
38
+ const jsveiwVersionFile = options.jsviewDir + "/dom/target_core_revision.js";
39
+
40
+ const jsviewTargetVersion = require(jsveiwVersionFile);
41
+
42
+ console.log("");
43
+ console.log("**************************************************");
44
+ console.log("* Update revision to:");
45
+ console.log("* CORE: " + jsviewTargetVersion.CoreRevision);
46
+ console.log("* ENGINE JS URL: " + jsviewTargetVersion.JseUrl);
47
+ console.log("**************************************************");
48
+ }
49
+
50
+ function backupPkgLock() {
51
+ const pkgLockName = 'package-lock.json';
52
+ const scriptDir = path.resolve(__dirname);
53
+ const rootDir = path.join(scriptDir, '/../../');
54
+
55
+ console.info("\nBackuping " + pkgLockName);
56
+ cpSync(rootDir, rootDir + pkgLockName, rootDir + '/jsview/patch/' + pkgLockName);
57
+ }
58
+
59
+ function main() {
60
+ const options = {
61
+ rootDir: path.resolve(__dirname, "../../"),
62
+ jsviewDir: path.resolve(__dirname, "../"),
63
+ patchDir: path.resolve(__dirname, "../patch"),
64
+ };
65
+
66
+
67
+ installPackages(options);
68
+
69
+ backupPkgLock();
70
+
71
+ printRevision(options);
72
+ }
73
+ main();
@@ -1,127 +1,127 @@
1
- #!/usr/bin/env node
2
-
3
- const crypto = require('crypto');
4
- const fs = require('fs');
5
- const path = require('path');
6
-
7
- // main.js处理AppData信息
8
- function prepareMainAppData(options, fileMd5)
9
- {
10
- // 加载私钥文件
11
- const privateKeyFile = path.resolve(options.appConfigDir, 'app_sign_private_key.crt');
12
- if (!fs.existsSync(privateKeyFile)) {
13
- console.error('Failed to open private key file from ' + privateKeyFile);
14
- process.exit(1);
15
- }
16
- const privateKeyText = fs.readFileSync(privateKeyFile);
17
- if (privateKeyText.indexOf('-----BEGIN PRIVATE KEY-----') < 0) {
18
- console.error('Get private from src/appConfig/app_sign_private_key.crt failed.');
19
- process.exit(1);
20
- }
21
-
22
- // 加载公钥文件
23
- const publicKeyFile = path.resolve(options.appConfigDir, 'app_sign_public_key.pem');
24
- if (!fs.existsSync(publicKeyFile)) {
25
- console.error('Failed to open public key file from ' + publicKeyFile);
26
- process.exit(1);
27
- }
28
- const publicKeyText = fs.readFileSync(publicKeyFile);
29
- if (publicKeyText.indexOf('-----BEGIN PUBLIC KEY-----') < 0) {
30
- console.error('Get private from src/appConfig/app_sign_public_key.pem failed.');
31
- process.exit(1);
32
- }
33
- // 公钥格式转化pem -> der,因为java中的解码处理只识别der格式
34
- let publicKeyDerText = publicKeyText.toString();
35
- if (publicKeyDerText.indexOf('\r') >= 0) {
36
- publicKeyDerText = publicKeyDerText.replace(/\r/g, '');
37
- }
38
- if (publicKeyDerText.indexOf('\n') >= 0) {
39
- publicKeyDerText = publicKeyDerText.replace(/\n/g, '');
40
- }
41
- publicKeyDerText = publicKeyDerText.replace('-----BEGIN PUBLIC KEY-----', '');
42
- publicKeyDerText = publicKeyDerText.replace('-----END PUBLIC KEY-----', '');
43
-
44
- // 编码md5值
45
- const encryptCodeBase64 = crypto.privateEncrypt({
46
- key: privateKeyText,
47
- padding: crypto.constants.RSA_PKCS1_PADDING
48
- },
49
- Buffer.from(fileMd5)
50
- ).toString('base64');
51
-
52
- // 校验publicKey是否是配对的
53
- const decryptCode = crypto.publicDecrypt({
54
- key: publicKeyText,
55
- padding: crypto.constants.RSA_PKCS1_PADDING
56
- },
57
- Buffer.from(encryptCodeBase64, 'base64')
58
- ).toString();
59
- if (decryptCode !== fileMd5) {
60
- console.error('Error: public key dismath to private key!');
61
- process.exit(1);
62
- }
63
-
64
- // 获取AppData信息
65
- const appConfigFile = path.resolve(options.appConfigDir, 'app_config.json');
66
- if (!fs.existsSync(appConfigFile)) {
67
- console.error('Failed to open app config file from ' + appConfigFile);
68
- process.exit(1);
69
- }
70
- const appConfigText = fs.readFileSync(appConfigFile);
71
- const appDataOriginJson = JSON.parse(appConfigText);
72
-
73
- // 组装AppData
74
- let targetAppData = {};
75
- Object.assign(targetAppData, appDataOriginJson); // 同步包括AppName在内的所有信息
76
- targetAppData.PublicKeys = [publicKeyDerText]; // 使用签名数组,支持后续追加签名
77
- targetAppData.EncryptCodes = [encryptCodeBase64]; // 同样使用数组,支持后续追加
78
-
79
- return JSON.stringify(targetAppData);
80
- }
81
-
82
- function signApp(options)
83
- {
84
- const jsDir = path.resolve(options.distDir, 'js');
85
- const jsFiles = fs.readdirSync(jsDir);
86
- jsFiles.forEach((file, index) => {
87
- if (!file.endsWith('.js')) {
88
- return;
89
- }
90
-
91
- const jsFile = path.resolve(jsDir, file);
92
- console.log('Updating ' + path.relative(options.projectDir, jsFile));
93
-
94
- var jsvAppContents = fs.readFileSync(jsFile);
95
- const jsvAppMd5 = crypto.createHash('md5').update(jsvAppContents).digest('hex');
96
- let appDataInfo = '';
97
- if (jsFile.indexOf('main.jsv.') > 0) {
98
- // 对main文件加入应用头信息
99
- appDataInfo = prepareMainAppData(options, jsvAppMd5);
100
-
101
- // 格式化jsvapp信息 /*jsvapp:内容长度:{内容}*/
102
- // 使用TextEncoder解决中文长度问题
103
- const infoLen = new TextEncoder().encode(appDataInfo).length;
104
- appDataInfo = '/*jsvapp:' + infoLen + ':' + appDataInfo + '*/';
105
- }
106
- jsvAppContents = '/*jsvmd5:' + jsvAppMd5 + '*/' + appDataInfo + jsvAppContents;
107
- fs.writeFileSync(jsFile, jsvAppContents);
108
- });
109
- }
110
-
111
- function main() {
112
- const options = {};
113
- options.projectDir = process.cwd();
114
- options.modulesDir = path.resolve(options.projectDir, "node_modules");
115
- options.jsviewDir = path.resolve(options.modulesDir, "@shijiu/jsview-vue");
116
- options.patchesDir = path.resolve(options.jsviewDir, "patches");
117
- options.distDir = path.resolve(options.projectDir, "dist");
118
- options.appConfigDir = path.resolve(options.projectDir, "src/appConfig");
119
-
120
- console.info('Signing JsView App...');
121
- console.info();
122
- signApp(options);
123
- console.info();
124
- console.info('Sign complete.');
125
- }
126
-
127
- main();
1
+ #!/usr/bin/env node
2
+
3
+ const crypto = require('crypto');
4
+ const fs = require('fs');
5
+ const path = require('path');
6
+
7
+ // main.js处理AppData信息
8
+ function prepareMainAppData(options, fileMd5)
9
+ {
10
+ // 加载私钥文件
11
+ const privateKeyFile = path.resolve(options.appConfigDir, 'app_sign_private_key.crt');
12
+ if (!fs.existsSync(privateKeyFile)) {
13
+ console.error('Failed to open private key file from ' + privateKeyFile);
14
+ process.exit(1);
15
+ }
16
+ const privateKeyText = fs.readFileSync(privateKeyFile);
17
+ if (privateKeyText.indexOf('-----BEGIN PRIVATE KEY-----') < 0) {
18
+ console.error('Get private from src/appConfig/app_sign_private_key.crt failed.');
19
+ process.exit(1);
20
+ }
21
+
22
+ // 加载公钥文件
23
+ const publicKeyFile = path.resolve(options.appConfigDir, 'app_sign_public_key.pem');
24
+ if (!fs.existsSync(publicKeyFile)) {
25
+ console.error('Failed to open public key file from ' + publicKeyFile);
26
+ process.exit(1);
27
+ }
28
+ const publicKeyText = fs.readFileSync(publicKeyFile);
29
+ if (publicKeyText.indexOf('-----BEGIN PUBLIC KEY-----') < 0) {
30
+ console.error('Get private from src/appConfig/app_sign_public_key.pem failed.');
31
+ process.exit(1);
32
+ }
33
+ // 公钥格式转化pem -> der,因为java中的解码处理只识别der格式
34
+ let publicKeyDerText = publicKeyText.toString();
35
+ if (publicKeyDerText.indexOf('\r') >= 0) {
36
+ publicKeyDerText = publicKeyDerText.replace(/\r/g, '');
37
+ }
38
+ if (publicKeyDerText.indexOf('\n') >= 0) {
39
+ publicKeyDerText = publicKeyDerText.replace(/\n/g, '');
40
+ }
41
+ publicKeyDerText = publicKeyDerText.replace('-----BEGIN PUBLIC KEY-----', '');
42
+ publicKeyDerText = publicKeyDerText.replace('-----END PUBLIC KEY-----', '');
43
+
44
+ // 编码md5值
45
+ const encryptCodeBase64 = crypto.privateEncrypt({
46
+ key: privateKeyText,
47
+ padding: crypto.constants.RSA_PKCS1_PADDING
48
+ },
49
+ Buffer.from(fileMd5)
50
+ ).toString('base64');
51
+
52
+ // 校验publicKey是否是配对的
53
+ const decryptCode = crypto.publicDecrypt({
54
+ key: publicKeyText,
55
+ padding: crypto.constants.RSA_PKCS1_PADDING
56
+ },
57
+ Buffer.from(encryptCodeBase64, 'base64')
58
+ ).toString();
59
+ if (decryptCode !== fileMd5) {
60
+ console.error('Error: public key dismath to private key!');
61
+ process.exit(1);
62
+ }
63
+
64
+ // 获取AppData信息
65
+ const appConfigFile = path.resolve(options.appConfigDir, 'app_config.json');
66
+ if (!fs.existsSync(appConfigFile)) {
67
+ console.error('Failed to open app config file from ' + appConfigFile);
68
+ process.exit(1);
69
+ }
70
+ const appConfigText = fs.readFileSync(appConfigFile);
71
+ const appDataOriginJson = JSON.parse(appConfigText);
72
+
73
+ // 组装AppData
74
+ let targetAppData = {};
75
+ Object.assign(targetAppData, appDataOriginJson); // 同步包括AppName在内的所有信息
76
+ targetAppData.PublicKeys = [publicKeyDerText]; // 使用签名数组,支持后续追加签名
77
+ targetAppData.EncryptCodes = [encryptCodeBase64]; // 同样使用数组,支持后续追加
78
+
79
+ return JSON.stringify(targetAppData);
80
+ }
81
+
82
+ function signApp(options)
83
+ {
84
+ const jsDir = path.resolve(options.distDir, 'js');
85
+ const jsFiles = fs.readdirSync(jsDir);
86
+ jsFiles.forEach((file, index) => {
87
+ if (!file.endsWith('.js')) {
88
+ return;
89
+ }
90
+
91
+ const jsFile = path.resolve(jsDir, file);
92
+ console.log('Updating ' + path.relative(options.projectDir, jsFile));
93
+
94
+ var jsvAppContents = fs.readFileSync(jsFile);
95
+ const jsvAppMd5 = crypto.createHash('md5').update(jsvAppContents).digest('hex');
96
+ let appDataInfo = '';
97
+ if (jsFile.indexOf('main.jsv.') > 0) {
98
+ // 对main文件加入应用头信息
99
+ appDataInfo = prepareMainAppData(options, jsvAppMd5);
100
+
101
+ // 格式化jsvapp信息 /*jsvapp:内容长度:{内容}*/
102
+ // 使用TextEncoder解决中文长度问题
103
+ const infoLen = new TextEncoder().encode(appDataInfo).length;
104
+ appDataInfo = '/*jsvapp:' + infoLen + ':' + appDataInfo + '*/';
105
+ }
106
+ jsvAppContents = '/*jsvmd5:' + jsvAppMd5 + '*/' + appDataInfo + jsvAppContents;
107
+ fs.writeFileSync(jsFile, jsvAppContents);
108
+ });
109
+ }
110
+
111
+ function main() {
112
+ const options = {};
113
+ options.projectDir = process.cwd();
114
+ options.modulesDir = path.resolve(options.projectDir, "node_modules");
115
+ options.jsviewDir = path.resolve(options.modulesDir, "@shijiu/jsview-vue");
116
+ options.patchesDir = path.resolve(options.jsviewDir, "patches");
117
+ options.distDir = path.resolve(options.projectDir, "dist");
118
+ options.appConfigDir = path.resolve(options.projectDir, "src/appConfig");
119
+
120
+ console.info('Signing JsView App...');
121
+ console.info();
122
+ signApp(options);
123
+ console.info();
124
+ console.info('Sign complete.');
125
+ }
126
+
127
+ main();