@shijiu/jsview 2.2.201 → 2.2.426-test.0
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.
- package/dom/bin/DroidSansFallback.ttf +0 -0
- package/dom/bin/NotoColorEmoji.ttf +0 -0
- package/dom/bin/jsview-dom-browser-engine-core.min.js +2 -0
- package/dom/bin/jsview-dom-browser-engine-modules.min.js +2 -0
- package/dom/bin/jsview-dom-browser-forge.1385.f80e.wasm +0 -0
- package/dom/bin/jsview-dom-browser-forge.min.js +1 -0
- package/dom/bin/jsview-dom-browser-forge.worker.min.js +1 -0
- package/dom/bin/jsview-dom-browser.min.js +1 -1
- package/dom/bin/jsview-dom-native.min.js +1 -1
- package/dom/bin/jsview-engine-js-browser.min.js +1 -22
- package/dom/bin/jsview-engine-js-native.min.js +2 -0
- package/dom/bin/jsview-forge-define.min.js +1 -1
- package/dom/index.mjs +38 -14
- package/dom/target_core_revision.mjs +10 -5
- package/loader/jsv-core-api/jsview-core-api-glue.js +74 -0
- package/loader/jsv-core-api/wasm/backgroundtask.js +66 -0
- package/loader/jsv-core-api/wasm/core-api.js +206 -0
- package/loader/jsview-config.js +22 -0
- package/loader/jsview-loader.js +74 -85
- package/loader/jsview-main.mjs +8 -14
- package/loader/jsview.config.default.js +2 -2
- package/package.json +1 -1
- package/patches/node_modules/vite/dist/node/jsview-vite-extension.js +67 -6
- package/shijiu-jsview-0.0.0.tgz +0 -0
- package/tools/https-server-config/cert.pem +61 -0
- package/tools/https-server-config/key.pem +27 -0
- package/tools/https-server-config/serve.config.json +16 -0
- package/tools/jsview-common.mjs +87 -3
- package/tools/jsview-post-build.mjs +248 -70
- package/tools/jsview-post-install.mjs +7 -4
- package/tools/jsview-retrieve-sourcemap.mjs +64 -49
- package/tools/jsview-run-tool.mjs +53 -3
- package/tools/jsview-vue-devtools.mjs +2 -0
package/loader/jsview-loader.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import JsViewDefConfig from "./jsview.config.default"
|
|
2
|
-
import { loadJsViewDomAsync } from '../dom'
|
|
2
|
+
import { loadJsViewDomAsync, loadEngineJs } from '../dom'
|
|
3
3
|
import TargetRevision from "../dom/target_core_revision"
|
|
4
4
|
|
|
5
|
+
function isNoWasm() {
|
|
6
|
+
return (window.JsvCoreApi.Platform != "pc-wasm");
|
|
7
|
+
}
|
|
8
|
+
|
|
5
9
|
const CYCLE_TIME = 10000;
|
|
6
10
|
const BLOCK_CHECK_TIME = 5000; // + CYCLE_TIME, 总计15秒
|
|
7
11
|
class JsThreadBlockTester {
|
|
@@ -12,7 +16,7 @@ class JsThreadBlockTester {
|
|
|
12
16
|
const preTimestamp = JsThreadBlockTester.#timestamp;
|
|
13
17
|
JsThreadBlockTester.#timestamp = Date.now();
|
|
14
18
|
const gap = JsThreadBlockTester.#timestamp - preTimestamp;
|
|
15
|
-
window.
|
|
19
|
+
window.JsvCoreApi.logD(JsThreadBlockTester.#TAG, `check, pre: ${preTimestamp}, cur: ${JsThreadBlockTester.#timestamp}, cur-pre: ${gap}`);
|
|
16
20
|
if (gap > CYCLE_TIME + BLOCK_CHECK_TIME) {
|
|
17
21
|
console.warn(JsThreadBlockTester.#TAG, `js thread blocked, preTime: ${preTimestamp}, curTime: ${JsThreadBlockTester.#timestamp}, curTime-preTime: ${gap}`);
|
|
18
22
|
}
|
|
@@ -32,7 +36,7 @@ class JsThreadBlockTester {
|
|
|
32
36
|
|
|
33
37
|
static init() {
|
|
34
38
|
JsThreadBlockTester.#start();
|
|
35
|
-
window.
|
|
39
|
+
window.JsvCoreApi.onVisibilityChange(JsThreadBlockTester.#onVisibleChange);
|
|
36
40
|
}
|
|
37
41
|
|
|
38
42
|
static #start() {
|
|
@@ -59,37 +63,42 @@ export default class JsViewLoader {
|
|
|
59
63
|
return this.#config;
|
|
60
64
|
}
|
|
61
65
|
|
|
62
|
-
initForgeEnv() {
|
|
63
|
-
if (typeof window.Forge === 'undefined') { // Browser没有默认Forge
|
|
64
|
-
window.Forge = {};
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
window.Forge.DesignMap = this.#makeForgeDesignedMap.bind(this);
|
|
68
|
-
window.Forge.RunApp = this.#runForgeApp.bind(this);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
66
|
async initJsViewEnv(appName, onLoaded, permission) {
|
|
72
|
-
|
|
73
|
-
|
|
67
|
+
let onForgeAppReady = () => {
|
|
68
|
+
onLoaded?.();
|
|
69
|
+
}
|
|
74
70
|
|
|
75
|
-
//
|
|
71
|
+
// 加载嵌入到 dom 模块中的 EngineJs
|
|
72
|
+
await loadEngineJs(
|
|
73
|
+
isNoWasm(),
|
|
74
|
+
(activityManager) => {
|
|
75
|
+
console.log("JsView Loader: On RenderBridge ready.");
|
|
76
|
+
this.#forgeActivityManager = activityManager;
|
|
77
|
+
this.#tryStartForgeApp(onForgeAppReady);
|
|
78
|
+
},
|
|
79
|
+
this.#makeForgeDesignedMap.bind(this)
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
// 加载JsView Dom
|
|
83
|
+
const jsviewDom = await loadJsViewDomAsync(isNoWasm());
|
|
84
|
+
|
|
85
|
+
// 加载ForgeFront
|
|
76
86
|
jsviewDom.InitEnv();
|
|
77
87
|
|
|
78
|
-
|
|
79
|
-
this.#forgeAppClass = jsviewDom.NativeForgeApp;
|
|
88
|
+
this.#forgeAppClass = jsviewDom.ForgeAppClass;
|
|
80
89
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
this.#
|
|
90
|
+
// /static/js/: (可选配置)填写main.js或者bundle.js相对于index.html的相对位置,
|
|
91
|
+
// 用于image / import.then的相对寻址
|
|
92
|
+
if (typeof this.#config.jsviewConfig.jsRelativeDepth == "number") {
|
|
93
|
+
window.location?.jsvSetRelativeDepth?.(this.#config.jsviewConfig.jsRelativeDepth)
|
|
85
94
|
}
|
|
86
95
|
|
|
87
|
-
this.#loadJsViewEnvAsync(appName,
|
|
96
|
+
this.#loadJsViewEnvAsync(appName, permission);
|
|
88
97
|
|
|
89
98
|
// 环境启动后,动态加载React框架和main
|
|
90
99
|
this.#checkEngineVersion();
|
|
91
100
|
this.#jsviewInited = true;
|
|
92
|
-
this.#tryStartForgeApp();
|
|
101
|
+
this.#tryStartForgeApp(onForgeAppReady);
|
|
93
102
|
|
|
94
103
|
console.log("JsView Loader: Load done. AppName=" + appName);
|
|
95
104
|
}
|
|
@@ -117,74 +126,57 @@ export default class JsViewLoader {
|
|
|
117
126
|
return target;
|
|
118
127
|
}
|
|
119
128
|
|
|
120
|
-
#loadJsViewEnvAsync(appName,
|
|
129
|
+
#loadJsViewEnvAsync(appName, permission) {
|
|
121
130
|
console.log("StartApp...");
|
|
122
131
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
132
|
+
if (appName) {
|
|
133
|
+
window.JsvCoreApi.setMiniAppPermissionInfo(JSON.stringify(permission));
|
|
134
|
+
window.JsvCoreApi.notifyAppName(appName);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// (可选配置)按键接受的扩展,例如将静音按键(JAVA键值为164)映射为JS键值20001,PS:注意"164"的引号
|
|
138
|
+
window.JsvCoreApi.addKeysMap(this.#config.vendorConfig.bindKeys);
|
|
139
|
+
|
|
140
|
+
// (可选配置)localStorage支持
|
|
141
|
+
let storageDomain = this.#config.jsviewConfig.localStorage.domain;
|
|
142
|
+
if (!storageDomain || storageDomain === "default") {
|
|
143
|
+
// 兼容历史版本出现的default字符串设置
|
|
144
|
+
storageDomain = appName; // null/default场景,不和其他应用共享localStorage, 也规避了考虑同名item问题
|
|
145
|
+
} else if (storageDomain === "follow-url") {
|
|
146
|
+
if (window.location.protocol == "file:") {
|
|
147
|
+
// file方式加载,使用appName
|
|
148
|
+
storageDomain = appName;
|
|
149
|
+
console.warn("Storage domain follow-url not support file://");
|
|
150
|
+
} else {
|
|
151
|
+
storageDomain = window.location.hostname;
|
|
129
152
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
let storageDomain = this.#config.jsviewConfig.localStorage.domain;
|
|
135
|
-
if (!storageDomain || storageDomain === "default") {
|
|
136
|
-
// 兼容历史版本出现的default字符串设置
|
|
137
|
-
storageDomain = appName; // null/default场景,不和其他应用共享localStorage, 也规避了考虑同名item问题
|
|
138
|
-
} else if (storageDomain === "follow-url") {
|
|
139
|
-
if (window.location.protocol == "file:") {
|
|
140
|
-
// file方式加载,使用appName
|
|
153
|
+
const ipv4Regex = /^(\d{1,3}\.){3}\d{1,3}$/;
|
|
154
|
+
const ipv6Regex = /^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/;
|
|
155
|
+
if (ipv4Regex.test(storageDomain) || ipv6Regex.test(storageDomain)) {
|
|
156
|
+
// ip形式, 不能作为合格domain, 使用appName作为domain
|
|
141
157
|
storageDomain = appName;
|
|
142
|
-
console.warn("Storage domain follow-url not support
|
|
143
|
-
} else {
|
|
144
|
-
storageDomain = window.location.hostname;
|
|
145
|
-
|
|
146
|
-
const ipv4Regex = /^(\d{1,3}\.){3}\d{1,3}$/;
|
|
147
|
-
const ipv6Regex = /^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/;
|
|
148
|
-
if (ipv4Regex.test(storageDomain) || ipv6Regex.test(storageDomain)) {
|
|
149
|
-
// ip形式, 不能作为合格domain, 使用appName作为domain
|
|
150
|
-
storageDomain = appName;
|
|
151
|
-
console.warn("Storage domain follow-url not support host with ip");
|
|
152
|
-
}
|
|
158
|
+
console.warn("Storage domain follow-url not support host with ip");
|
|
153
159
|
}
|
|
154
160
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
const localStorageKeys = this.#config.jsviewConfig.localStorage.presetKeys;
|
|
159
|
-
window.JsView.enableStorageNames(...localStorageKeys);
|
|
161
|
+
}
|
|
162
|
+
console.log(`Storage domain [${storageDomain}]`);
|
|
163
|
+
window.JsvCoreApi.setStorageDomain(storageDomain); // Domain为app包名
|
|
160
164
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
if (cookiesDomain) {
|
|
164
|
-
console.log("Enable cookie for domain " + cookiesDomain);
|
|
165
|
-
window.JsView.setCookieDomain?.(cookiesDomain);
|
|
166
|
-
}
|
|
165
|
+
const localStorageKeys = this.#config.jsviewConfig.localStorage.presetKeys;
|
|
166
|
+
window.JsvCoreApi.enableStorageNames(...localStorageKeys);
|
|
167
167
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
this.#forgeAppClass.SetRender(function () {
|
|
174
|
-
onLoaded();
|
|
175
|
-
})
|
|
168
|
+
// (可选设置)cookies的支持
|
|
169
|
+
const cookiesDomain = this.#config.jsviewConfig.cookies?.domain;
|
|
170
|
+
if (cookiesDomain) {
|
|
171
|
+
console.log("Enable cookie for domain " + cookiesDomain);
|
|
172
|
+
window.JsvCoreApi.setCookieDomain(cookiesDomain);
|
|
176
173
|
}
|
|
177
174
|
}
|
|
178
175
|
|
|
179
176
|
#checkEngineVersion() {
|
|
180
|
-
if (!window.JsView) {
|
|
181
|
-
return;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
177
|
// 检查配套引擎的版本
|
|
185
|
-
if (window.
|
|
186
|
-
|
|
187
|
-
console.warn(`Warning: JsView Engine version miss matched, some effect will be lost or crash!! current using core=${window.JsView.CodeRevision} engine=${window.Forge.Version}(but core should be ${TargetRevision.CoreRevision}, engine should be ${TargetRevision.JseRevision} url=${TargetRevision.JseUrl})`);
|
|
178
|
+
if (window.JsvCoreApi.CodeRevision !== TargetRevision.CoreRevision /* Native引擎版本(由APK启动参数 CORE 决定) */) {
|
|
179
|
+
console.warn(`Warning: JsView Engine version miss matched, some effect will be lost or crash!! current using core=${window.JsvCoreApi.CodeRevision} (but core should be ${TargetRevision.CoreRevision})`);
|
|
188
180
|
}
|
|
189
181
|
}
|
|
190
182
|
|
|
@@ -220,13 +212,7 @@ export default class JsViewLoader {
|
|
|
220
212
|
return designMap;
|
|
221
213
|
}
|
|
222
214
|
|
|
223
|
-
#
|
|
224
|
-
console.log("JsView Loader: Run forge app.");
|
|
225
|
-
this.#forgeActivityManager = activityManager;
|
|
226
|
-
this.#tryStartForgeApp();
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
#tryStartForgeApp() {
|
|
215
|
+
#tryStartForgeApp(onForgeAppReady) {
|
|
230
216
|
if (!this.#forgeActivityManager ||
|
|
231
217
|
this.#jsviewInited == false) {
|
|
232
218
|
return;
|
|
@@ -235,6 +221,9 @@ export default class JsViewLoader {
|
|
|
235
221
|
console.log("JsView Loader: Start forge app.");
|
|
236
222
|
// eslint-disable-next-line new-cap
|
|
237
223
|
this.#forgeApp = new this.#forgeAppClass(this.#forgeActivityManager);
|
|
224
|
+
|
|
225
|
+
// Forge app创建完成
|
|
226
|
+
onForgeAppReady();
|
|
238
227
|
}
|
|
239
228
|
|
|
240
229
|
#config = JsViewDefConfig;
|
package/loader/jsview-main.mjs
CHANGED
|
@@ -1,31 +1,25 @@
|
|
|
1
|
+
|
|
1
2
|
async function main() {
|
|
2
|
-
const {
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
const {
|
|
4
|
+
appConfig,
|
|
5
|
+
jsviewVendorConfig,
|
|
6
|
+
PERMISSION,
|
|
7
|
+
JsViewLoader,
|
|
8
|
+
} = await import('./jsview-config.js');
|
|
5
9
|
|
|
6
|
-
let JsViewLoader = null;
|
|
7
|
-
// 根据JsViewConfig, 判断厂商是否设置了使用远程loader启动
|
|
8
|
-
const remoteLoader = jsviewVendorConfig.jsviewConfig.remoteLoader;
|
|
9
|
-
if (remoteLoader) {
|
|
10
|
-
JsViewLoader = (await import(remoteLoader)).default;
|
|
11
|
-
} else {
|
|
12
|
-
JsViewLoader = (await import('./jsview-loader.js')).default;
|
|
13
|
-
}
|
|
14
10
|
const jsviewLoader = new JsViewLoader();
|
|
15
11
|
|
|
16
12
|
// 使用vendor配置值覆盖默认配置。
|
|
17
13
|
const config = jsviewLoader.mergeConfig(jsviewVendorConfig);
|
|
18
14
|
console.log("JsView config: " + JSON.stringify(config));
|
|
19
15
|
|
|
20
|
-
jsviewLoader.initForgeEnv();
|
|
21
|
-
|
|
22
16
|
// 初始化jsview运行环境。
|
|
23
17
|
const onInitJsViewEnv = async function () {
|
|
24
18
|
// JsView环境加载完毕后,加载vue/react的main.js文件。
|
|
25
19
|
try {
|
|
26
20
|
await import('/src/main.tsx');
|
|
27
21
|
} finally {
|
|
28
|
-
window.
|
|
22
|
+
window.JsvCoreApi.onMainTsDone(); // 通知Java, 此时app首次渲染执行完毕
|
|
29
23
|
}
|
|
30
24
|
};
|
|
31
25
|
jsviewLoader.initJsViewEnv(appConfig.AppName, onInitJsViewEnv, PERMISSION);
|
package/package.json
CHANGED
|
@@ -2,6 +2,7 @@ import { defineConfig } from 'vite'
|
|
|
2
2
|
import fs from 'fs'
|
|
3
3
|
import path from 'path'
|
|
4
4
|
// import fullReload from 'vite-plugin-full-reload';
|
|
5
|
+
// import wasm from "vite-plugin-wasm";
|
|
5
6
|
|
|
6
7
|
// https://vitejs.dev/config/
|
|
7
8
|
const jsviewConfig = defineConfig({
|
|
@@ -23,10 +24,10 @@ const jsviewConfig = defineConfig({
|
|
|
23
24
|
polyfill: false
|
|
24
25
|
},
|
|
25
26
|
rollupOptions: {
|
|
27
|
+
onwarn: onRollupWarning,
|
|
26
28
|
output: {
|
|
27
|
-
assetFileNames:
|
|
28
|
-
chunkFileNames:
|
|
29
|
-
// chunkFileNames: 'js/[name].[hash].js',
|
|
29
|
+
assetFileNames: getFileName,
|
|
30
|
+
chunkFileNames: getFileName,
|
|
30
31
|
entryFileNames: 'js/main.jsv.[hash].js',
|
|
31
32
|
format: 'esm',
|
|
32
33
|
manualChunks: {
|
|
@@ -42,7 +43,7 @@ const jsviewConfig = defineConfig({
|
|
|
42
43
|
},
|
|
43
44
|
plugins: [
|
|
44
45
|
{
|
|
45
|
-
name: 'remove-bangs',
|
|
46
|
+
name: 'vite-plugin-remove-bangs',
|
|
46
47
|
renderChunk(code) { return {
|
|
47
48
|
code: code.replace(/^\/\/!/g, '//').replace(/^\/\*!/g, '/*'),
|
|
48
49
|
map: null,
|
|
@@ -72,9 +73,10 @@ const jsviewConfig = defineConfig({
|
|
|
72
73
|
'jsview-vue-samples',
|
|
73
74
|
],
|
|
74
75
|
},
|
|
75
|
-
|
|
76
|
+
plugins: [
|
|
76
77
|
// fullReload('node_modules/@shijiu/**/*'),
|
|
77
|
-
|
|
78
|
+
// wasm(),
|
|
79
|
+
],
|
|
78
80
|
resolve: {
|
|
79
81
|
alias: {
|
|
80
82
|
// 'jsview': path.resolve(process.cwd(), 'node_modules/@shijiu/jsview'),
|
|
@@ -87,7 +89,12 @@ const jsviewConfig = defineConfig({
|
|
|
87
89
|
preserveSymlinks: true
|
|
88
90
|
},
|
|
89
91
|
server: {
|
|
92
|
+
headers: { // 启用浏览器SharedArrayBuffer,webassmbly的thread用
|
|
93
|
+
'Cross-Origin-Opener-Policy': 'same-origin',
|
|
94
|
+
'Cross-Origin-Embedder-Policy': 'require-corp',
|
|
95
|
+
},
|
|
90
96
|
host: true,
|
|
97
|
+
https: process.env['JSVIEW_ENABLE_HTTPS'] ? getHttpsConfig() : false,
|
|
91
98
|
open: !process.env['JSVIEW_DISABLE_OPEN_BROWSER'] && process.platform === "darwin",
|
|
92
99
|
watch: {
|
|
93
100
|
ignored: [
|
|
@@ -95,6 +102,16 @@ const jsviewConfig = defineConfig({
|
|
|
95
102
|
],
|
|
96
103
|
}
|
|
97
104
|
},
|
|
105
|
+
worker: {
|
|
106
|
+
format: 'esm',
|
|
107
|
+
rollupOptions: {
|
|
108
|
+
output: {
|
|
109
|
+
assetFileNames: getFileName,
|
|
110
|
+
chunkFileNames: getFileName,
|
|
111
|
+
entryFileNames: getFileName,
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
},
|
|
98
115
|
});
|
|
99
116
|
|
|
100
117
|
function getModuleDir() {
|
|
@@ -135,6 +152,50 @@ function ensureFramework(originConfig) {
|
|
|
135
152
|
return framework;
|
|
136
153
|
}
|
|
137
154
|
|
|
155
|
+
function getFileName(chunkInfo) {
|
|
156
|
+
if(chunkInfo.name.endsWith('.css')) {
|
|
157
|
+
return 'css/[name].[hash].css';
|
|
158
|
+
} else if(chunkInfo.name.endsWith('.ttf')) {
|
|
159
|
+
return 'assets/[name].ttf';
|
|
160
|
+
} else if(chunkInfo.name.endsWith('.wasm')) {
|
|
161
|
+
return 'js/[name].wasm';
|
|
162
|
+
} else if(chunkInfo.type == 'chunk') {
|
|
163
|
+
return (process.env['JSVIEW_KEEP_CHUNKNAME'] ? 'js/[name].[hash].js' : 'js/chunk.jsv2.[hash].js');
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
return 'assets/[name].[hash].[ext]'
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
function onRollupWarning(warning, defaultHandler) {
|
|
170
|
+
if (warning.code === 'FILE_NAME_CONFLICT') {
|
|
171
|
+
if(warning.message.includes('jsview-dom-browser-forge')
|
|
172
|
+
&& warning.message.includes('.wasm')) {
|
|
173
|
+
console.info('\nJsView Info: Ignore warning', warning.message)
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
} else if (warning.code === 'EVAL') {
|
|
177
|
+
if(warning.message.includes('mock.js')) {
|
|
178
|
+
console.info('\nJsView Info: Ignore warning', warning.message)
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
defaultHandler(warning);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
function getHttpsConfig() {
|
|
187
|
+
const configDir = path.resolve(getModuleDir(), '@shijiu/jsview/tools/https-server-config');
|
|
188
|
+
const certFilePath = path.resolve(configDir, 'cert.pem');
|
|
189
|
+
const keyFilePath = path.resolve(configDir, 'key.pem');
|
|
190
|
+
|
|
191
|
+
return {
|
|
192
|
+
cert: fs.readFileSync(certFilePath),
|
|
193
|
+
key: fs.readFileSync(keyFilePath),
|
|
194
|
+
maxVersion: 'TLSv1.2',
|
|
195
|
+
minVersion: 'TLSv1',
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
138
199
|
function jsvCreateJsViewViteConfig(originConfig) {
|
|
139
200
|
let aliasJsView;
|
|
140
201
|
|
|
Binary file
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
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
|
|
34
|
+
-----END CERTIFICATE-----
|
|
35
|
+
-----BEGIN CERTIFICATE-----
|
|
36
|
+
MIIEqjCCA5KgAwIBAgIQDeD/te5iy2EQn2CMnO1e0zANBgkqhkiG9w0BAQsFADBh
|
|
37
|
+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
|
38
|
+
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
|
|
39
|
+
MjAeFw0xNzExMjcxMjQ2NDBaFw0yNzExMjcxMjQ2NDBaMG4xCzAJBgNVBAYTAlVT
|
|
40
|
+
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
|
|
41
|
+
b20xLTArBgNVBAMTJEVuY3J5cHRpb24gRXZlcnl3aGVyZSBEViBUTFMgQ0EgLSBH
|
|
42
|
+
MjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAO8Uf46i/nr7pkgTDqnE
|
|
43
|
+
eSIfCFqvPnUq3aF1tMJ5hh9MnO6Lmt5UdHfBGwC9Si+XjK12cjZgxObsL6Rg1njv
|
|
44
|
+
NhAMJ4JunN0JGGRJGSevbJsA3sc68nbPQzuKp5Jc8vpryp2mts38pSCXorPR+sch
|
|
45
|
+
QisKA7OSQ1MjcFN0d7tbrceWFNbzgL2csJVQeogOBGSe/KZEIZw6gXLKeFe7mupn
|
|
46
|
+
NYJROi2iC11+HuF79iAttMc32Cv6UOxixY/3ZV+LzpLnklFq98XORgwkIJL1HuvP
|
|
47
|
+
ha8yvb+W6JislZJL+HLFtidoxmI7Qm3ZyIV66W533DsGFimFJkz3y0GeHWuSVMbI
|
|
48
|
+
lfsCAwEAAaOCAU8wggFLMB0GA1UdDgQWBBR435GQX+7erPbFdevVTFVT7yRKtjAf
|
|
49
|
+
BgNVHSMEGDAWgBROIlQgGJXm427mD/r6uRLtBhePOTAOBgNVHQ8BAf8EBAMCAYYw
|
|
50
|
+
HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8C
|
|
51
|
+
AQAwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp
|
|
52
|
+
Y2VydC5jb20wQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQu
|
|
53
|
+
Y29tL0RpZ2lDZXJ0R2xvYmFsUm9vdEcyLmNybDBMBgNVHSAERTBDMDcGCWCGSAGG
|
|
54
|
+
/WwBAjAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BT
|
|
55
|
+
MAgGBmeBDAECATANBgkqhkiG9w0BAQsFAAOCAQEAoBs1eCLKakLtVRPFRjBIJ9LJ
|
|
56
|
+
L0s8ZWum8U8/1TMVkQMBn+CPb5xnCD0GSA6L/V0ZFrMNqBirrr5B241OesECvxIi
|
|
57
|
+
98bZ90h9+q/X5eMyOD35f8YTaEMpdnQCnawIwiHx06/0BfiTj+b/XQih+mqt3ZXe
|
|
58
|
+
xNCJqKexdiB2IWGSKcgahPacWkk/BAQFisKIFYEqHzV974S3FAz/8LIfD58xnsEN
|
|
59
|
+
GfzyIDkH3JrwYZ8caPTf6ZX9M1GrISN8HnWTtdNCH2xEajRa/h9ZBXjUyFKQrGk2
|
|
60
|
+
n2hcLrfZSbynEC/pSw/ET7H5nWwckjmAJ1l9fcnbqkU/pf6uMQmnfl0JQjJNSg==
|
|
61
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
|
2
|
+
MIIEowIBAAKCAQEAp7m9ocHPmt+oXOV8EYPRgAznJNPpRUQMFj8ZKEyhdobnFQwE
|
|
3
|
+
jNlu+YlwJD2jjlkpKBrGwgUqU73VtZZkA6TMEmkD6ZOnGnkIt1wEK/ApuhMBaBty
|
|
4
|
+
o5VyYEA2JjEaxPgjH6+EpSeLBvpkjDxzjYBXDwQwfvYaDAvRcas/gPCFHvraSFSM
|
|
5
|
+
sWgtiZCOxT7VixsFGalZsd6sJ24vHaPOks6eTmSkHogVUiX74ag6qfavtkPtJLY7
|
|
6
|
+
18tq7umut1fISgOUSzt13KUHz68jPn1+FP9K73hfaYKNCnfTar8d51YIJRySnpCN
|
|
7
|
+
bKedbjK7/s1uEK7Lg2Llsnm5kze0WhYhN5CAqQIDAQABAoIBADntueQjVzurYa/s
|
|
8
|
+
BqTZ/UKXskGS+y9UKESKuHqltOKGB0vKocuv0VdYM6Ygr9ubSc6zKNCcDhlsKGKW
|
|
9
|
+
NabYhS8anCJRP9ax1OPXYQ133kGJDORTDo4XMLCznMAmF5POC/uGmG6eMLNRSebx
|
|
10
|
+
fgtyNx9VmBZRk39zmXwD5GP5LlEbTQ70MB56DdpQPOe8UZgT3aITZTRhGxwk9Z7N
|
|
11
|
+
YdhJLVRyS3lufnLxBgj+VFMmqViBgWPfi/T73V1tg+6i/n+MHVPY8XprqiioO3yE
|
|
12
|
+
FPDe4+5AciimTg9QrlqF7ZmyRx9c0zdxs2aDewPXovp4fmyO91I81f/XbxwR4Hg+
|
|
13
|
+
WbHUZ60CgYEA4sHLxidVhQD6wZrbmbjY3zgHsAtpKqst+xiRD73Uo4UM5B7A3+bo
|
|
14
|
+
v5HJx/PX+Ax4O8PZz8ghGS+J8xXXAAHdnBetYT5YniOfkFw/XDl7y1IazY+74k5e
|
|
15
|
+
Wew+mdELKRJtW/3ylFDcsHMxy9aA+jNVm0m8hjMnHdhufPZhs6wdpAsCgYEAvVsR
|
|
16
|
+
Rizx710Hlon5/byYPgo+vjPxTHNH/5b4nLmYTNsDWzVO8LqVkPpT8XewfEAYSOpp
|
|
17
|
+
uAYfK2GJc36XFX/0sZJFwuChKapnuL2r2x1OLKqJjKK/f+5XUirRFh//bMpS/FsM
|
|
18
|
+
+0/DWnfYsw9dwgnH2JIuods1+8SL7uFWYBV5SpsCgYBoT8YxzX5lxOGVlmtW99Ws
|
|
19
|
+
OdYvgdBLNJveWprApw7eeiJH/m2zkkGXfrVYKjA7h2D3/UyBbQrszxWioXVaJ4GO
|
|
20
|
+
gMXdahTSCokom4b6Ied0zLxPu8Mug+abbzYNBEEiD7wHCXdCC0C6WwOZRX/nmR3U
|
|
21
|
+
ZcM36OghrqKFEcI4KQEpqQKBgQCRzus5T2io+cjbCbofwba1pyvzSIoZZXfef0FH
|
|
22
|
+
Zb66B7fI5v63beW38prrCFA1DSHmG+N2WfhsbjnqXmM2ogYpKkpfqptPOzGNVzhb
|
|
23
|
+
jHBjAprSWYv+lehVlDTWxaLpAc7vFamkZyI1qq2KDF4VCXUC9mXEKsmh6hIayxe4
|
|
24
|
+
+zAf2wKBgA8qx/b8IpSc/9KJATtpNwnSWkDhwzazU8rwHTE8QDsbmSurf2eBtC3e
|
|
25
|
+
5Gki7XcXpVIroERRfy5jdKfZ0xb5SmBsqCxu3NTDLtwuV3PMqh5oSGi6fjzL6/dn
|
|
26
|
+
XNaHyu1jMd2g3AxoWVk6+41iuHEIJZ2UnJhrFXsIsWejmrni6vGT
|
|
27
|
+
-----END RSA PRIVATE KEY-----
|