create-jsview 2.1.5

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 (40) hide show
  1. package/common.mjs +223 -0
  2. package/index.mjs +25 -0
  3. package/package.json +35 -0
  4. package/project-creator.mjs +54 -0
  5. package/project-upgrader.mjs +193 -0
  6. package/template-react-webpack/README.md +16 -0
  7. package/template-react-webpack/_gitignore +23 -0
  8. package/template-react-webpack/package-lock-json +27673 -0
  9. package/template-react-webpack/package.json +32 -0
  10. package/template-react-webpack/public/index.html +12 -0
  11. package/template-react-webpack/src/App.css +38 -0
  12. package/template-react-webpack/src/App.js +18 -0
  13. package/template-react-webpack/src/appConfig/HOW_TO_CONFIG.md +20 -0
  14. package/template-react-webpack/src/appConfig/app.config.mjs +7 -0
  15. package/template-react-webpack/src/appConfig/app_sign_private_key_sample.crt +28 -0
  16. package/template-react-webpack/src/appConfig/app_sign_public_key_sample.pem +9 -0
  17. package/template-react-webpack/src/appConfig/jsview.config.mjs +41 -0
  18. package/template-react-webpack/src/logo.png +0 -0
  19. package/template-react-webpack/src/main.tsx +19 -0
  20. package/template-react-webpack/tsconfig.json +9 -0
  21. package/template-vue-vite/.vscode/extensions.json +3 -0
  22. package/template-vue-vite/README.md +16 -0
  23. package/template-vue-vite/_gitignore +24 -0
  24. package/template-vue-vite/index.html +13 -0
  25. package/template-vue-vite/package-lock-json +1625 -0
  26. package/template-vue-vite/package.json +34 -0
  27. package/template-vue-vite/src/App.vue +25 -0
  28. package/template-vue-vite/src/appConfig/HOW_TO_CONFIG.md +15 -0
  29. package/template-vue-vite/src/appConfig/app.config.mjs +7 -0
  30. package/template-vue-vite/src/appConfig/app_sign_private_key_sample.crt +28 -0
  31. package/template-vue-vite/src/appConfig/app_sign_public_key_sample.pem +9 -0
  32. package/template-vue-vite/src/appConfig/jsview.config.mjs +43 -0
  33. package/template-vue-vite/src/appConfig/permission.js +1 -0
  34. package/template-vue-vite/src/assets/logo.png +0 -0
  35. package/template-vue-vite/src/components/HelloWorld.vue +19 -0
  36. package/template-vue-vite/src/env.d.ts +8 -0
  37. package/template-vue-vite/src/main.tsx +16 -0
  38. package/template-vue-vite/tsconfig.json +27 -0
  39. package/template-vue-vite/tsconfig.node.json +8 -0
  40. package/template-vue-vite/vite.config.ts +9 -0
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "jsview-vue-test",
3
+ "private": true,
4
+ "version": "0.0.0",
5
+ "type": "module",
6
+ "scripts": {
7
+ "android": "node node_modules/@shijiu/jsview/tools/jsview-run-android.mjs --framework=vue",
8
+ "build": "vue-tsc && vite build",
9
+ "dev": "vite",
10
+ "postbuild": "node node_modules/@shijiu/jsview/tools/jsview-post-build.mjs --framework=vue",
11
+ "postinstall": "node node_modules/@shijiu/jsview/tools/jsview-post-install.mjs --framework=vue",
12
+ "preview": "vite preview",
13
+ "start": "vite"
14
+ },
15
+ "dependencies": {
16
+ "@shijiu/jsview": "2.1.5",
17
+ "@shijiu/jsview-vue": "2.1.5",
18
+ "vue": "3.2.45",
19
+ "vue-router": "4.1.6"
20
+ },
21
+ "devDependencies": {
22
+ "@vitejs/plugin-vue": "4.0.0",
23
+ "typescript": "4.9.3",
24
+ "vite": "4.0.0",
25
+ "vue-tsc": "1.0.11"
26
+ },
27
+ "browserslist": [
28
+ "chrome 102",
29
+ "not dead"
30
+ ],
31
+ "engines": {
32
+ "node": ">=16.0.0"
33
+ }
34
+ }
@@ -0,0 +1,25 @@
1
+ <template>
2
+ <div>
3
+ <img src="./assets/logo.png" class="logo-size">
4
+ <HelloWorld msg="Hello JsView-Vue + Vite App" :style="{top: 50, width:220}"/>
5
+ </div>
6
+ </template>
7
+
8
+ <script setup>
9
+ import { onMounted } from "vue"
10
+ import { jJsvRuntimeBridge } from "jsview";
11
+ import HelloWorld from './components/HelloWorld.vue';
12
+
13
+ onMounted(()=>{
14
+ /* apk到收到此调用后才会结束启动过程,去掉启动图(否则会显示加载超时的界面) */
15
+ jJsvRuntimeBridge.notifyPageLoaded();
16
+ });
17
+
18
+ </script>
19
+
20
+ <style scoped>
21
+ .logo-size {
22
+ width: 200;
23
+ height: 200;
24
+ }
25
+ </style>
@@ -0,0 +1,15 @@
1
+ app_data文件夹用来记录APP的设定信息,包括APP的全球唯一标识,签名信息
2
+
3
+ 1. 全球唯一标识AppName设定方法:
4
+ 修改app.config.js文件中的AppName信息,一般命名方法为 domain/子应用名
5
+
6
+ 2. 签名信息,使用RSA签名,设定方法:
7
+ 执行:node ./node_modules/@shijiu/jsview/tools/jsview-generate-keypair.mjs
8
+
9
+ 将生成公钥文件app_sign_public_key.pem和私钥文件app_sign_private_key.crt。
10
+
11
+ JsView签名原理说明:
12
+ 在进行js build时,会将 main.jsv.xxxx.js (包含AppName具体值)文件的md5值用私钥进行编码,编码出的内容和公钥一起写入到该文件的文件头中,JsView加载后用公钥反编码出该md5值,和文件的md5进行比对,若md5一致则认为此公钥合法,然后此公钥会和AppName进行映射,作为设定快捷访问地址等权限控制的调用作为参考,以防止其他APP对本APP(以AppName为查询键)的私有内容进行非法访问和破坏。
13
+
14
+ 注意: 私钥(app_sign_private_key.crt)不要被泄漏,私钥若泄漏,则其他APP可以伪装AppName,查询本APP的私有内容,覆盖本APP设定的快捷访问地址。
15
+
@@ -0,0 +1,7 @@
1
+ export default {
2
+ AppName: "xxxx.domain.cn/XXXX",
3
+ AppTitle: "Demo中文名(UTF8)",
4
+ AppVersion: "1.00",
5
+ AppIcon:"https://oss.image.qcast.cn/JsViewVideo/ImageTestSample/JsvMiniAppIcon300x160.png", // 上线前请更换, 此为小程序之家APK上线后的图标规范
6
+ AppRectIcon:"https://oss.image.qcast.cn/JsViewVideo/ImageTestSample/JsvMiniAppIcon256x256.png", // 上线前请更换, 此为小程序之家APK上线后的图标规范
7
+ }
@@ -0,0 +1,28 @@
1
+ -----BEGIN PRIVATE KEY-----
2
+ MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCwk2Cd0mwQMdMm
3
+ YCxPCj9NysWdjJKi6XJhhMzZoC29h0UTr7PRyqCqb8W/iOiIjbH+fGIeiAMf5w/R
4
+ vWL4DrpTm0HWxvxM2WaV47j2T4G88IyE1pWAaQ/MlPFevFVvq0kc/R5x3hrpJUl6
5
+ TFfXgjV9hHPIbvh/Zen0rMQoimcX2oozkeUK4kpiHCBF225l+kBXwAJYmoSOTBIW
6
+ GjX8CdHMQ1iHlecjfCFjCLE75WUJfNIFZI/XS9Eve6ItrApbX4hUFyYbRMrZ0epq
7
+ lvf4qQ0SkuU/g3GWbvrcVs4I0C3YTZ6cXcIVgfnjzT6ZPTfiCQU+sgH11RQOy1jq
8
+ Nc8H2MwJAgMBAAECggEAM+ngigYHh2terPWxkTtuCS0IlJ1zrzn7SviEUadqS0Kt
9
+ 6G/L6m4sdm+OMBXMZ/lgz3U6U8ehQ4vndr67jjqmRVZsMP0nyGBSbNca1i/h8O64
10
+ IYYFRk+dOYTAwh2U8NPnFwLEJK4sM0enJrGzUcUSfOioMdGOdcY81pbExTaLwNMe
11
+ sfoysoM0NpsWBLjvh4VErggirYCvEHOmVwK9o2WSf+JGDHRcs84HOD3wZm8+/hKU
12
+ 4P4OnZCEBn4i96AOBlXnLwbNdcnj37jCLv7lzL/T728hF6Y1uEygL9YEe15WMaSI
13
+ zuwzY4WwcIt+yYnhWYNbSHEvFf3UUeqNj0H5erVSEQKBgQDVPwvIce8ExoSoTaRt
14
+ UX7LlS3VKSCwvozx2Hgy9+fCmHQShI+MSgusHkRbo43nSnOLjkCwklzdG9QBPUx8
15
+ /hXaytiOZFyICAOW5oBw2HRvXOgwsjT57fj8SmuAtt/4FuYQT9TdWNduSqINg7dV
16
+ YPLg8b4SJr+QyGBY58hcX/MpKwKBgQDT+jLTCQIQLEMQ3uDn4hcP8/wxCxR43Xmg
17
+ 0QsElQRhFGQAP8px6YGH1tjyNXGDak1QnywrAY6UiPhxZ2DORqYhU7Nzx9DogS0q
18
+ Obk/YnSzMKgzUb14J/pfV1LuRzf8/y0QTJMREE1h5yIqevfXuU38mpd4dLmlt2th
19
+ B0UZ118dmwKBgQCx/N5r3tT+qmfdRnkAma34ZLqNmbdkbpeb4O9qs0qpPLBdKHHc
20
+ SY12iwjJaDkwHQ9WI1TRTEjgcLLCmhR2m2lIZljceN5W2EGOuTPpfHGq5eQTiRr4
21
+ pO1WPxN9qqZEH3DFmqx0WAvwTbD3EMJ8K+BtarkX02m/gdARRN0SZS/DYwKBgQCi
22
+ 17A3otHs7rPOwAly2aLx5HM2kdZ2S13mhvC54mhs06dG8bpp7AJQAmLDHv9G/2DJ
23
+ sJ3To+yOevKw28PocymorI5NQZFhK+swZwvCf7Y6+gQc+IxfRAb5OzJAToHaX4WU
24
+ 4d6Q2z83GMKMc8718CrTBUebh8AeaFubPGR/R46QRQKBgQDId416dMuNDl25nJo6
25
+ OO4ZWuY/4XJKsgrP5sLIVgHDrevWYD8DB1tr5IQ0mLHUD4vbeMaU1sSEZ2OD14lv
26
+ caSFkmxEmU5cukZVZMegfgv84hLE+GYGqhozn/6mMgNjN5BY3Z0jss4gloIq+swu
27
+ K4Fyi4fDxXMRNr/ajjfGaxeYhA==
28
+ -----END PRIVATE KEY-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN PUBLIC KEY-----
2
+ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsJNgndJsEDHTJmAsTwo/
3
+ TcrFnYySoulyYYTM2aAtvYdFE6+z0cqgqm/Fv4joiI2x/nxiHogDH+cP0b1i+A66
4
+ U5tB1sb8TNlmleO49k+BvPCMhNaVgGkPzJTxXrxVb6tJHP0ecd4a6SVJekxX14I1
5
+ fYRzyG74f2Xp9KzEKIpnF9qKM5HlCuJKYhwgRdtuZfpAV8ACWJqEjkwSFho1/AnR
6
+ zENYh5XnI3whYwixO+VlCXzSBWSP10vRL3uiLawKW1+IVBcmG0TK2dHqapb3+KkN
7
+ EpLlP4Nxlm763FbOCNAt2E2enF3CFYH5480+mT034gkFPrIB9dUUDstY6jXPB9jM
8
+ CQIDAQAB
9
+ -----END PUBLIC KEY-----
@@ -0,0 +1,43 @@
1
+ export default {
2
+ jsviewConfig: {
3
+ // (可选配置)remote loader
4
+ remoteLoader: null,
5
+
6
+ // (可选配置)localStorage支持
7
+ // presetKeys为预置key,可以直接使用localStorage.xxx的形式,避免undefined错误
8
+ localStorage: {
9
+ domain: null, // 默认自动使用app.config.mjs的AppName作为domain, 可以设置为其他值
10
+ presetKeys: [
11
+ 'value1',
12
+ 'value3'
13
+ ]
14
+ },
15
+
16
+ cookies: {
17
+ domain: '' // 当非null非空时,激活cookie功能,使ajax请求时自动带上cookies,并且document.cookie的get/set可用
18
+ },
19
+
20
+ // (可选配置)填写main.js或者bundle.js相对于index.html的相对位置,
21
+ // 用于image/import.then的相对寻址, vue3默认值是/js/
22
+ jsSubPath: '/js/'
23
+ },
24
+
25
+ vendorConfig: {
26
+ // (可选配置)设置屏幕坐标映射值,screenWidth为屏幕画布定义的宽度,displayScale为清晰度,
27
+ // 默认值是画布宽度1280px, 清晰度为1.0
28
+ designedMap: {
29
+ screenWidth: 1280,
30
+ displayScale: 1.5
31
+ },
32
+
33
+ // (可选配置)按键接受的扩展,例如将静音按键(JAVA键值为164)映射为JS键值20001,
34
+ // PS:注意'164'的引号
35
+ bindKeys: {
36
+ keys: {
37
+ 164: 20001
38
+ },
39
+ syncKeys: {
40
+ }
41
+ }
42
+ }
43
+ }
@@ -0,0 +1 @@
1
+ export const PERMISSION = {}
@@ -0,0 +1,19 @@
1
+ <template>
2
+ <div class="msg">{{ msg }}</div>
3
+ </template>
4
+
5
+ <script lang="ts">
6
+ export default {
7
+ props: {
8
+ msg: String
9
+ }
10
+ }
11
+ </script>
12
+
13
+ <!-- Add "scoped" attribute to limit CSS to this component only -->
14
+ <style scoped>
15
+ .msg {
16
+ font-size: 16;
17
+ color: #00FFFF;
18
+ }
19
+ </style>
@@ -0,0 +1,8 @@
1
+ /// <reference types="vite/client" />
2
+
3
+ declare module '*.vue' {
4
+ import type { DefineComponent } from 'vue'
5
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
6
+ const component: DefineComponent<{}, {}, any>
7
+ export default component
8
+ }
@@ -0,0 +1,16 @@
1
+ import { createApp } from 'vue'
2
+ import { jsvCreateFocusManager } from 'jsview'
3
+ import App from './App.vue'
4
+
5
+ const app = createApp(App)
6
+
7
+
8
+ // 注册JsView定制的焦点控制插件
9
+ app.use(jsvCreateFocusManager(), '#app')
10
+
11
+ app.mount('#app')
12
+
13
+ /* 备注: */
14
+ // 1. App.vue是一个最简的 Vue3 样例(参考`npm init vite`),可在此基础上进行二次开发。
15
+ // 2. 参考 http://jsview-dev.shijiutv.com/tour/1.js-develop/1.1.basic-js-tour.html
16
+ // 的'示例代码以及其源代码' 栏目进行samples代码安装和使用
@@ -0,0 +1,27 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "esnext",
4
+ "useDefineForClassFields": true,
5
+ "module": "esnext",
6
+ "moduleResolution": "node",
7
+ "strict": true,
8
+ "jsx": "preserve",
9
+ "resolveJsonModule": true,
10
+ "isolatedModules": true,
11
+ "esModuleInterop": true,
12
+ "lib": ["esnext", "dom"],
13
+ "skipLibCheck": true,
14
+ "noEmit": true,
15
+ "allowJs": true,
16
+ "experimentalDecorators": true,
17
+ "paths": {
18
+ "jsview": [ "./node_modules/@shijiu/jsview-vue" ],
19
+ "jsview-vue-samples/*": [ "./node_modules/@shijiu/jsview-vue-samples/*" ]
20
+ }
21
+ },
22
+ "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue",
23
+ "node_modules/@shijiu/jsview-vue/**/*.vue",
24
+ "node_modules/@shijiu/jsview-vue-samples/**/*.vue",
25
+ ],
26
+ "references": [{ "path": "./tsconfig.node.json" }]
27
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "module": "esnext",
5
+ "moduleResolution": "node"
6
+ },
7
+ "include": ["vite.config.ts"]
8
+ }
@@ -0,0 +1,9 @@
1
+ import { defineConfig } from 'vite'
2
+ import vue from '@vitejs/plugin-vue'
3
+
4
+ // https://vitejs.dev/config/
5
+ export default defineConfig({
6
+ plugins: [
7
+ vue()
8
+ ]
9
+ })