From 14e360b4e094c8ad1dd2dfdb59482daf9920d9e1 Mon Sep 17 00:00:00 2001 From: Cyberhan123 <255542417@qq.com> Date: Thu, 26 May 2022 23:21:37 +0800 Subject: [PATCH 1/5] feat(main-app): change main app to esbuild Co-authored-by: hyrious --- cspell.config.js | 4 + desktop/main-app/package.json | 10 +- .../scripts/esbuild/esbuild.common.ts | 12 + .../main-app/scripts/esbuild/esbuild.dev.ts | 52 ++++ .../main-app/scripts/esbuild/esbuild.prod.ts | 25 ++ desktop/main-app/scripts/esbuild/paths.ts | 9 + .../esbuild/plugin/dotEnvFlowPlugin.ts | 58 ++++ desktop/main-app/src/utils/runtime.ts | 2 +- desktop/main-app/tsconfig.json | 4 +- package.json | 2 +- pnpm-lock.yaml | 267 ++++++------------ 11 files changed, 251 insertions(+), 194 deletions(-) create mode 100644 desktop/main-app/scripts/esbuild/esbuild.common.ts create mode 100644 desktop/main-app/scripts/esbuild/esbuild.dev.ts create mode 100644 desktop/main-app/scripts/esbuild/esbuild.prod.ts create mode 100644 desktop/main-app/scripts/esbuild/paths.ts create mode 100644 desktop/main-app/scripts/esbuild/plugin/dotEnvFlowPlugin.ts diff --git a/cspell.config.js b/cspell.config.js index 47a6e915f5f..767cf159e8e 100644 --- a/cspell.config.js +++ b/cspell.config.js @@ -67,6 +67,7 @@ module.exports = { "submenu", "unhide", "nsis", + "respawn", // file type "avif", @@ -162,6 +163,9 @@ module.exports = { // vscode "dbaeumer", "keystyle", + + // esbuild config + "metafile", ], flagWords: ["fuck", "bitch", "asshole", "bullshit", "crap", "suck", "wtf"], dictionaries: [ diff --git a/desktop/main-app/package.json b/desktop/main-app/package.json index 56a2a248782..1c04fb435d5 100644 --- a/desktop/main-app/package.json +++ b/desktop/main-app/package.json @@ -13,12 +13,16 @@ "url": "https://github.com/netless-io/flat" }, "scripts": { - "start": "cross-env NODE_ENV=development webpack --config webpack/webpack.dev.js", + "_start": "cross-env NODE_ENV=development webpack --config webpack/webpack.dev.js", "start:cn": "cross-env FLAT_REGION=CN pnpm start", "start:us": "cross-env FLAT_REGION=US pnpm start", - "build": "cross-env NODE_ENV=production webpack --config webpack/webpack.prod.js", + "_start:esbuild": "esbuild-dev --cjs scripts/esbuild/esbuild.dev.ts", + "start": "cross-env NODE_ENV=development pnpm run _start:esbuild", + "_build": "cross-env NODE_ENV=production webpack --config webpack/webpack.prod.js", "build:cn": "cross-env FLAT_REGION=CN pnpm build", "build:us": "cross-env FLAT_REGION=US pnpm build", + "_build:esbuild": "esbuild-dev --cjs scripts/esbuild/esbuild.prod.ts", + "build": "cross-env NODE_ENV=production pnpm run _build:esbuild", "build:debug": "cross-env FLAT_DEBUG=debug webpack --config webpack/webpack.debug.js", "pack:win": "node ./scripts/pack win", "pack:mac": "node ./scripts/pack mac", @@ -28,7 +32,9 @@ "_launch:electron": "node --trace-uncaught ./scripts/launch/electron.js" }, "devDependencies": { + "@types/dotenv-flow": "^3.2.0", "@types/webpack-env": "^1.16.3", + "dotenv-flow": "^3.2.0", "dotenv-flow-webpack": "^1.1.0", "electron": "12.0.15", "electron-builder": "^23.0.3", diff --git a/desktop/main-app/scripts/esbuild/esbuild.common.ts b/desktop/main-app/scripts/esbuild/esbuild.common.ts new file mode 100644 index 00000000000..751c8123f8c --- /dev/null +++ b/desktop/main-app/scripts/esbuild/esbuild.common.ts @@ -0,0 +1,12 @@ +import { autoChooseConfig } from "../../../../scripts/utils/auto-choose-config"; +import pkg from "../../package.json"; +import dotEnvFlowPlugin from "./plugin/dotEnvFlowPlugin"; + +export const external = Object.keys(pkg.dependencies); + +export const dotenvPlugin = dotEnvFlowPlugin({ + path: autoChooseConfig(), + system_vars: true, + default_node_env: "development", + silent: true, +}); diff --git a/desktop/main-app/scripts/esbuild/esbuild.dev.ts b/desktop/main-app/scripts/esbuild/esbuild.dev.ts new file mode 100644 index 00000000000..72fae0df706 --- /dev/null +++ b/desktop/main-app/scripts/esbuild/esbuild.dev.ts @@ -0,0 +1,52 @@ +import { ChildProcess, spawn } from "child_process"; +import esbuild from "esbuild"; +import { dotenvPlugin, external } from "./esbuild.common"; +import * as paths from "./paths"; + +let child: ChildProcess | undefined; +const respawn = () => { + if (child) { + child.kill("SIGTERM"); + } + child = spawn("pnpm", ["electron", paths.dist], { stdio: "inherit" }); +}; + +const buildPreload = esbuild.build({ + entryPoints: [paths.preloadPath], + bundle: true, + platform: "browser", + target: "chrome89", + external: [...external, "electron", "os", "path"], + outfile: paths.preloadDist, + watch: true, +}); + +const buildMain = esbuild.build({ + entryPoints: [paths.entryFile], + bundle: true, + platform: "node", + target: "node14", + external: [...external, "electron", "electron-devtools-vendor"], + sourcemap: true, + outfile: paths.dist, + watch: { + onRebuild(error) { + if (error) { + console.error("watch build failed:", error); + } else { + respawn(); + } + }, + }, + plugins: [dotenvPlugin], +}); + +const allDone = Promise.all([buildPreload, buildMain]); + +const stop = () => + allDone.then(rs => rs.forEach(r => r.stop && r.stop())).catch(() => process.exit(1)); + +process.on("SIGINT", stop); +process.on("SIGTERM", stop); + +allDone.then(respawn); diff --git a/desktop/main-app/scripts/esbuild/esbuild.prod.ts b/desktop/main-app/scripts/esbuild/esbuild.prod.ts new file mode 100644 index 00000000000..1af7c822af4 --- /dev/null +++ b/desktop/main-app/scripts/esbuild/esbuild.prod.ts @@ -0,0 +1,25 @@ +import esbuild from "esbuild"; +import { dotenvPlugin, external } from "./esbuild.common"; +import * as paths from "./paths"; + +const buildPreload = esbuild.build({ + entryPoints: [paths.preloadPath], + bundle: true, + platform: "browser", + target: "chrome89", + external: [...external, "electron", "os", "path"], + outfile: paths.preloadDist, +}); + +const buildMain = esbuild.build({ + entryPoints: [paths.entryFile], + bundle: true, + platform: "node", + target: "node14", + external: [...external, "electron", "electron-devtools-vendor"], + sourcemap: true, + outfile: paths.dist, + plugins: [dotenvPlugin], +}); + +Promise.all([buildPreload, buildMain]).catch(() => process.exit(1)); diff --git a/desktop/main-app/scripts/esbuild/paths.ts b/desktop/main-app/scripts/esbuild/paths.ts new file mode 100644 index 00000000000..a2dcafa4f53 --- /dev/null +++ b/desktop/main-app/scripts/esbuild/paths.ts @@ -0,0 +1,9 @@ +import path from "path"; + +const resolvePath = (...relativePath: string[]): string => + path.resolve(__dirname, "..", "..", ...relativePath); + +export const dist = resolvePath("dist/index.js"); +export const preloadDist = resolvePath("dist/preload.js"); +export const entryFile = resolvePath("src", "index.ts"); +export const preloadPath = resolvePath("src", "preload.ts"); diff --git a/desktop/main-app/scripts/esbuild/plugin/dotEnvFlowPlugin.ts b/desktop/main-app/scripts/esbuild/plugin/dotEnvFlowPlugin.ts new file mode 100644 index 00000000000..df55c565e96 --- /dev/null +++ b/desktop/main-app/scripts/esbuild/plugin/dotEnvFlowPlugin.ts @@ -0,0 +1,58 @@ +import { Plugin, PluginBuild } from "esbuild"; +import dotenvFlow, { DotenvConfigOptions } from "dotenv-flow"; + +function parseWithEnvObject(orgEnv: Record): Record { + return Reflect.ownKeys(orgEnv) + ?.map(item => { + const result: Record = {}; + if (typeof item === "string" && orgEnv?.[item]) { + result[`process.env.${item}`] = JSON.stringify(orgEnv?.[item]); + } + return result; + }) + ?.reduce((prev, cur) => { + return { + ...prev, + ...cur, + }; + }, {}); +} + +// Configuration define refer to https://github.com/kerimdzhanov/dotenv-flow-webpack +type DotEnvPluginOptionsType = Omit & { + system_vars?: boolean; +}; + +type DotEnvPluginType = (options: DotEnvPluginOptionsType) => Plugin; + +const dotEnvFlowPlugin: DotEnvPluginType = options => { + return { + name: "DotEnvFlow", + setup(build: PluginBuild) { + let sysEnvList = {}; + + const esbuildOptions = build.initialOptions; + + const result = dotenvFlow.config(options); + + if (result.error) { + console.warn("esbuild dotenvFlow throw error:", result.error); + return; + } + + if (options?.system_vars) { + sysEnvList = parseWithEnvObject(process.env); + } + + const configEnvList = parseWithEnvObject(result?.parsed || {}); + + esbuildOptions.define = { + ...esbuildOptions?.define, + ...sysEnvList, + ...configEnvList, + }; + }, + }; +}; + +export default dotEnvFlowPlugin; diff --git a/desktop/main-app/src/utils/runtime.ts b/desktop/main-app/src/utils/runtime.ts index 10e7dca1b13..8a6d8a6fbdf 100644 --- a/desktop/main-app/src/utils/runtime.ts +++ b/desktop/main-app/src/utils/runtime.ts @@ -28,7 +28,7 @@ const staticPath = isProduction const preloadPath = isProduction || isDebug ? path.join(__dirname, "preload.js") - : path.resolve(__dirname, "..", "..", "dist", "preload.js"); + : path.resolve(__dirname, "..", "dist", "preload.js"); // eslint-disable-next-line @typescript-eslint/no-var-requires const appVersion = isProduction ? app.getVersion() : require("../../package.json").version; diff --git a/desktop/main-app/tsconfig.json b/desktop/main-app/tsconfig.json index e980a14f1b5..357e0fb8882 100644 --- a/desktop/main-app/tsconfig.json +++ b/desktop/main-app/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "target": "es2017", "module": "CommonJS", - "lib": ["es2017", "DOM"] + "lib": ["es2017", "DOM"], }, - "include": ["src/**/*.ts", "typings/*.ts"] + "include": ["src/**/*.ts", "typings/*.ts", "scripts/**/*.ts"] } diff --git a/package.json b/package.json index 3ba6582fbbe..b0035944ad8 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "devDependencies": { "@commitlint/cli": "^17.0.0", "@commitlint/config-angular": "^17.0.0", - "@hyrious/esbuild-dev": "^0.7.6", + "@hyrious/esbuild-dev": "^0.8.3", "@netless/eslint-plugin": "^2.0.0", "@types/fs-extra": "^9.0.13", "@types/lodash-es": "^4.17.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d5aeb870eeb..e391304178a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ importers: specifiers: '@commitlint/cli': ^17.0.0 '@commitlint/config-angular': ^17.0.0 - '@hyrious/esbuild-dev': ^0.7.6 + '@hyrious/esbuild-dev': ^0.8.3 '@netless/eslint-plugin': ^2.0.0 '@types/fs-extra': ^9.0.13 '@types/lodash-es': ^4.17.6 @@ -53,7 +53,7 @@ importers: devDependencies: '@commitlint/cli': 17.0.0 '@commitlint/config-angular': 17.0.0 - '@hyrious/esbuild-dev': 0.7.6_esbuild@0.14.38 + '@hyrious/esbuild-dev': 0.8.3_esbuild@0.14.38 '@netless/eslint-plugin': 2.0.0_eslint@8.14.0 '@types/fs-extra': 9.0.13 '@types/lodash-es': 4.17.6 @@ -94,7 +94,9 @@ importers: desktop/main-app: specifiers: '@netless/flat-service-provider-agora-rtc-electron': workspace:* + '@types/dotenv-flow': ^3.2.0 '@types/webpack-env': ^1.16.3 + dotenv-flow: ^3.2.0 dotenv-flow-webpack: ^1.1.0 electron: 12.0.15 electron-builder: ^23.0.3 @@ -123,7 +125,9 @@ importers: semver: 7.3.7 value-enhancer: 1.3.2 devDependencies: + '@types/dotenv-flow': 3.2.0 '@types/webpack-env': 1.16.4 + dotenv-flow: 3.2.0 dotenv-flow-webpack: 1.1.0 electron: 12.0.15 electron-builder: 23.0.3 @@ -152,7 +156,7 @@ importers: '@netless/app-plyr': ^0.2.2 '@netless/app-quill': ^0.1.0 '@netless/app-selector': ^0.0.2 - '@netless/app-slide': 0.3.0-canary.10 + '@netless/app-slide': 0.3.0-canary.7 '@netless/combine-player': ^1.1.6 '@netless/flat-i18n': workspace:* '@netless/flat-pages': workspace:* @@ -216,7 +220,7 @@ importers: '@netless/app-plyr': 0.2.2 '@netless/app-quill': 0.1.0 '@netless/app-selector': 0.0.2 - '@netless/app-slide': 0.3.0-canary.10 + '@netless/app-slide': 0.3.0-canary.7 '@netless/combine-player': 1.1.6 '@netless/flat-i18n': link:../../packages/flat-i18n '@netless/flat-pages': link:../../packages/flat-pages @@ -406,7 +410,7 @@ importers: '@netless/app-iframe-bridge': ^0.0.2 '@netless/app-monaco': 0.2.0-canary.0 '@netless/app-plyr': ^0.2.2 - '@netless/app-slide': 0.3.0-canary.10 + '@netless/app-slide': 0.3.0-canary.7 '@netless/combine-player': ^1.1.6 '@netless/flat-i18n': workspace:* '@netless/flat-server-api': workspace:* @@ -417,7 +421,6 @@ importers: '@netless/mini-svg-data-uri': 0.0.1 '@types/loadable__component': ^5.13.4 '@types/mime': ^2.0.3 - '@types/video.js': ^7.3.46 antd: ^4.22.8 axios: ^0.26.1 classnames: ^2.3.1 @@ -449,7 +452,7 @@ importers: '@netless/app-iframe-bridge': 0.0.2 '@netless/app-monaco': 0.2.0-canary.0 '@netless/app-plyr': 0.2.2 - '@netless/app-slide': 0.3.0-canary.10 + '@netless/app-slide': 0.3.0-canary.7 '@netless/combine-player': 1.1.6 '@netless/flat-i18n': link:../flat-i18n '@netless/flat-server-api': link:../flat-server-api @@ -482,7 +485,6 @@ importers: '@netless/mini-svg-data-uri': 0.0.1 '@types/loadable__component': 5.13.4 '@types/mime': 2.0.3 - '@types/video.js': 7.3.46 dotenv: 16.0.0 dotenv-expand: 8.0.3 eslint-loader: 4.0.2 @@ -517,16 +519,13 @@ importers: packages/flat-stores: specifiers: - '@netless/fastboard': 1.0.0-canary.7 + '@netless/fastboard': 1.0.0-canary.5 '@netless/flat-i18n': workspace:* '@netless/flat-server-api': workspace:* '@netless/flat-services': workspace:* - '@netless/sync-player': ^1.0.7 - '@netless/window-manager': 1.0.0-canary.53 + '@netless/window-manager': 1.0.0-canary.51 flat-components: workspace:* - hls.js: ^1.2.1 mobx: ^6.6.1 - polly-js: ^1.8.3 prettier: ^2.3.0 react: ^17.0.2 side-effect-manager: ^1.2.1 @@ -537,15 +536,12 @@ importers: '@netless/flat-i18n': link:../flat-i18n '@netless/flat-server-api': link:../flat-server-api '@netless/flat-services': link:../flat-services - '@netless/sync-player': 1.0.7_white-web-sdk-esm@2.16.34 flat-components: link:../flat-components - hls.js: 1.2.1 - polly-js: 1.8.3 side-effect-manager: 1.2.1 uuid: 8.3.2 devDependencies: - '@netless/fastboard': 1.0.0-canary.7_ayu22vuam2jcfnyaaly7yhty7q - '@netless/window-manager': 1.0.0-canary.53_white-web-sdk-esm@2.16.34 + '@netless/fastboard': 1.0.0-canary.5_mmp4rjrhi6ss7hn4rcz5yutum4 + '@netless/window-manager': 1.0.0-canary.51_white-web-sdk-esm@2.16.34 mobx: 6.6.1 prettier: 2.6.2 react: 17.0.2 @@ -608,7 +604,6 @@ importers: service-providers/agora-rtm: specifiers: - '@netless/flat-server-api': workspace:* '@netless/flat-services': workspace:* agora-rtm-sdk: ^1.4.4 prettier: ^2.3.0 @@ -616,7 +611,6 @@ importers: typescript: ^4.7.4 uuid: ^8.3.2 dependencies: - '@netless/flat-server-api': link:../../packages/flat-server-api '@netless/flat-services': link:../../packages/flat-services agora-rtm-sdk: 1.4.4 side-effect-manager: 1.2.1 @@ -654,13 +648,13 @@ importers: service-providers/fastboard: specifiers: '@lukeed/uuid': ^2.0.0 - '@netless/fastboard': 1.0.0-canary.7 + '@netless/fastboard': 1.0.0-canary.5 '@netless/flat-i18n': workspace:* '@netless/flat-server-api': workspace:* '@netless/flat-service-provider-file-convert-netless': workspace:* '@netless/flat-services': workspace:* '@netless/white-snapshot': ^0.4.2 - '@netless/window-manager': 1.0.0-canary.53 + '@netless/window-manager': 1.0.0-canary.51 prettier: ^2.3.0 side-effect-manager: ^1.2.1 typescript: ^4.7.4 @@ -668,13 +662,13 @@ importers: white-web-sdk: npm:white-web-sdk-esm@2.16.34 dependencies: '@lukeed/uuid': 2.0.0 - '@netless/fastboard': 1.0.0-canary.7_ayu22vuam2jcfnyaaly7yhty7q + '@netless/fastboard': 1.0.0-canary.5_mmp4rjrhi6ss7hn4rcz5yutum4 '@netless/flat-i18n': link:../../packages/flat-i18n '@netless/flat-server-api': link:../../packages/flat-server-api '@netless/flat-service-provider-file-convert-netless': link:../file-convert-netless '@netless/flat-services': link:../../packages/flat-services '@netless/white-snapshot': 0.4.2 - '@netless/window-manager': 1.0.0-canary.53_white-web-sdk-esm@2.16.34 + '@netless/window-manager': 1.0.0-canary.51_white-web-sdk-esm@2.16.34 side-effect-manager: 1.2.1 value-enhancer: 1.3.2 white-web-sdk: /white-web-sdk-esm/2.16.34 @@ -729,13 +723,13 @@ importers: service-providers/file-preview-netless-slide: specifiers: - '@netless/app-slide': 0.3.0-canary.10 + '@netless/app-slide': 0.3.0-canary.7 '@netless/flat-service-provider-file-convert-netless': workspace:* '@netless/flat-services': workspace:* prettier: ^2.3.0 typescript: ^4.7.4 dependencies: - '@netless/app-slide': 0.3.0-canary.10 + '@netless/app-slide': 0.3.0-canary.7 '@netless/flat-service-provider-file-convert-netless': link:../file-convert-netless '@netless/flat-services': link:../../packages/flat-services devDependencies: @@ -756,7 +750,7 @@ importers: '@netless/app-plyr': ^0.2.2 '@netless/app-quill': ^0.1.0 '@netless/app-selector': ^0.0.2 - '@netless/app-slide': 0.3.0-canary.10 + '@netless/app-slide': 0.3.0-canary.7 '@netless/combine-player': ^1.1.6 '@netless/flat-i18n': workspace:* '@netless/flat-pages': workspace:* @@ -819,7 +813,7 @@ importers: '@netless/app-plyr': 0.2.2 '@netless/app-quill': 0.1.0 '@netless/app-selector': 0.0.2 - '@netless/app-slide': 0.3.0-canary.10 + '@netless/app-slide': 0.3.0-canary.7 '@netless/combine-player': 1.1.6 '@netless/flat-i18n': link:../../packages/flat-i18n '@netless/flat-pages': link:../../packages/flat-pages @@ -3045,9 +3039,9 @@ packages: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true - /@hyrious/esbuild-dev/0.7.6_esbuild@0.14.38: - resolution: {integrity: sha512-ULrwpkaXG7RLg8u7Zd3y8feJqyL9lpy5hv848/33Swa9EXT02uvABrPPdNczyLln3DAlKnwy2Up9K8B/ZcphWw==} - engines: {node: '>=16.13.0'} + /@hyrious/esbuild-dev/0.8.3_esbuild@0.14.38: + resolution: {integrity: sha512-kM3+q5D6eSunAzmbccetW70w/KouSW4oQJ6gGx8ynCXmJL/Kcy4q6rBPkLdp8pPbFihTTVOf/vOiCdyHsOcI5A==} + engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: esbuild: '*' @@ -3308,10 +3302,10 @@ packages: - ts-node dev: false - /@netless/app-slide/0.3.0-canary.10: - resolution: {integrity: sha512-pE85t1X0NkbIggKOf3kGImiY6sJmHocefGnsfCurRSVyJtX8dtya4esaFYDGfjuP6bJ+saNm9SgsnTKAkQGW+A==} + /@netless/app-slide/0.3.0-canary.7: + resolution: {integrity: sha512-k93RBwVnNHH6OdG5Q+6WKnxBcJm0WHJ4sQAZcgGBW4c87/TaZiE2h7NoEcG45Au+D+szos8TxjaLV/zM0mmKXg==} dependencies: - '@netless/slide': 0.6.5 + '@netless/slide': 0.5.13 /@netless/canvas-polyfill/0.0.4: resolution: {integrity: sha512-7NzsJrba0R/mq/l10SkIZQwbrNVJyPxZYrjK6xL3Ts732iWAVuS2UB0u3s6iGeUVcqV39A679yva8APWRl4M0A==} @@ -3332,35 +3326,35 @@ packages: - supports-color dev: true - /@netless/fastboard-core/1.0.0-canary.7_ayu22vuam2jcfnyaaly7yhty7q: - resolution: {integrity: sha512-wblXojxoGw7QE+H+YkAoydm0zx7CQtp66EESx902g9e4skghP7V+RgeevrB0DdipPFHme/jolBbpSWa9i4qxww==} + /@netless/fastboard-core/1.0.0-canary.5_mmp4rjrhi6ss7hn4rcz5yutum4: + resolution: {integrity: sha512-g+B/U4qNU7mJOoOGoUdRpEvt7n/nm6DUA+adFsZd5mYXo8tH6Jubg68a473GUxZPSiQfjFL8J9tkyZms19hLsQ==} peerDependencies: '@netless/window-manager': '>=1.0.0-canary.0' white-web-sdk: '>=2.16.0' dependencies: '@lukeed/uuid': 2.0.0 '@netless/synced-store': 2.0.7_white-web-sdk-esm@2.16.34 - '@netless/window-manager': 1.0.0-canary.53_white-web-sdk-esm@2.16.34 + '@netless/window-manager': 1.0.0-canary.51_white-web-sdk-esm@2.16.34 white-web-sdk: /white-web-sdk-esm/2.16.34 - /@netless/fastboard-ui/1.0.0-canary.7_cdb3cxxszhadikmporkl6mi74y: - resolution: {integrity: sha512-fFDTCf//0RFrnwVtSNa0C2MgQihKU9Vl1F9jyO5/Azjiuzrw+mWIEMMW5tS/JkjToiujP1USZQOa2mP0T6dOfA==} + /@netless/fastboard-ui/1.0.0-canary.5_q3q3mehaqyljusltw53sy5zeiu: + resolution: {integrity: sha512-rAh/GlC7mgdQj74dqkxaiK0c/eQzznWfhhrK1pokCEUS2hknyM8POGoBsofhfDCwl3lVjKHfZHuXaMefVuGyJA==} peerDependencies: - '@netless/fastboard-core': 1.0.0-canary.7 + '@netless/fastboard-core': 1.0.0-canary.5 dependencies: - '@netless/fastboard-core': 1.0.0-canary.7_ayu22vuam2jcfnyaaly7yhty7q + '@netless/fastboard-core': 1.0.0-canary.5_mmp4rjrhi6ss7hn4rcz5yutum4 tippy.js: 6.3.7 - /@netless/fastboard/1.0.0-canary.7_ayu22vuam2jcfnyaaly7yhty7q: - resolution: {integrity: sha512-1/veeLuG8/YO//pqb9LkEqMLBDKcy3j3iPS03dDB9neeZy5WxcGMjU8rbE98jW/JUb9lUpZxQlOTmIklg2MNUQ==} + /@netless/fastboard/1.0.0-canary.5_mmp4rjrhi6ss7hn4rcz5yutum4: + resolution: {integrity: sha512-Xn3iXTZHtK2o9rpfKDP0tdcEPf+TqZfoOTzH2iQffhpT4IDRV687TvNA1gbRSF2LcyQnA2rW+lgC1mIhCmqe/w==} peerDependencies: '@netless/window-manager': '>=1.0.0-canary.0' white-web-sdk: '>=2.16.0' dependencies: - '@netless/app-slide': 0.3.0-canary.10 - '@netless/fastboard-core': 1.0.0-canary.7_ayu22vuam2jcfnyaaly7yhty7q - '@netless/fastboard-ui': 1.0.0-canary.7_cdb3cxxszhadikmporkl6mi74y - '@netless/window-manager': 1.0.0-canary.53_white-web-sdk-esm@2.16.34 + '@netless/app-slide': 0.3.0-canary.7 + '@netless/fastboard-core': 1.0.0-canary.5_mmp4rjrhi6ss7hn4rcz5yutum4 + '@netless/fastboard-ui': 1.0.0-canary.5_q3q3mehaqyljusltw53sy5zeiu + '@netless/window-manager': 1.0.0-canary.51_white-web-sdk-esm@2.16.34 white-web-sdk: /white-web-sdk-esm/2.16.34 /@netless/mini-svg-data-uri/0.0.1: @@ -3368,8 +3362,8 @@ packages: hasBin: true dev: true - /@netless/slide/0.6.5: - resolution: {integrity: sha512-HxoeX7pSUpQezdCy0SH7FkBOPdn9X6n2ESC4YuEe8u5bsBXMrjso+YxG/ljuc7bi72eKBw9CVwBaWrdYJ8dglw==} + /@netless/slide/0.5.13: + resolution: {integrity: sha512-Epb2WOtVwZLDbtGlWEinfHi74JdnrqcW3AwuoISYHzirCRwGgrqWqFYSb8IxMuUrBWCEvJ3I1WDAaDmzUD5YSg==} dependencies: '@juggle/resize-observer': 3.4.0 '@types/lodash': 4.14.182 @@ -3378,17 +3372,6 @@ packages: localforage: 1.10.0 lodash: 4.17.21 - /@netless/sync-player/1.0.7_white-web-sdk-esm@2.16.34: - resolution: {integrity: sha512-r4gnHRosOI95NYZwqSedDI8WR4m5mkuO8Ueq9blHOJ1ZjbeB8bMIdmZJ4nLcXKO/EhxEt8xlF8qJelOF7LCsrA==} - peerDependencies: - white-web-sdk: '>=2' - dependencies: - eventemitter3: 4.0.7 - side-effect-manager: 1.2.1 - video.js: 7.20.2 - white-web-sdk: /white-web-sdk-esm/2.16.34 - dev: false - /@netless/synced-store/2.0.7_white-web-sdk-esm@2.16.34: resolution: {integrity: sha512-E5ukXMTLa0Mlhlv9Rcy3MJSAM5kwiLoXQy42OCSIFdBR8jf0BKbSUXSjnA8J+FZq6UidNtGaadDWjhwlM1z5MA==} requiresBuild: true @@ -3418,8 +3401,8 @@ packages: html2canvas: 1.4.1 dev: false - /@netless/window-manager/1.0.0-canary.53_white-web-sdk-esm@2.16.34: - resolution: {integrity: sha512-5npiGhvXcPsHULOim2q10B3IqSev8+UcsY7zyPyMoiY2uY/BmJuF/Ps+oJvECpflwCb7DtTVSQgDZ7D+7HHqqQ==} + /@netless/window-manager/1.0.0-canary.51_white-web-sdk-esm@2.16.34: + resolution: {integrity: sha512-ZKOaFogWdV6SccPRG57j+nOJ0W6Xx1dgKJDRsxA3WRTRIEWvRfoxQVPW/UrqJ++hcgWTnS3IWQVbZiIEfSMyyw==} peerDependencies: white-web-sdk: ^2.16.0 dependencies: @@ -3721,7 +3704,7 @@ packages: '@storybook/components': 6.3.13_sfoxds7t5ydpegc3knd667wn6m '@storybook/core-events': 6.3.13 '@storybook/theming': 6.3.13_sfoxds7t5ydpegc3knd667wn6m - core-js: 3.24.1 + core-js: 3.22.4 global: 4.4.0 memoizerific: 1.11.3 react: 17.0.2 @@ -3750,7 +3733,7 @@ packages: '@storybook/components': 6.3.13_sfoxds7t5ydpegc3knd667wn6m '@storybook/node-logger': 6.3.13 '@storybook/theming': 6.3.13_sfoxds7t5ydpegc3knd667wn6m - core-js: 3.24.1 + core-js: 3.22.4 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 ts-dedent: 2.2.0 @@ -3825,7 +3808,7 @@ packages: acorn: 7.4.1 acorn-jsx: 5.3.2_acorn@7.4.1 acorn-walk: 7.2.0 - core-js: 3.24.1 + core-js: 3.22.4 doctrine: 3.0.0 escodegen: 2.0.0 fast-deep-equal: 3.1.3 @@ -3999,7 +3982,7 @@ packages: '@storybook/client-api': 6.3.13_sfoxds7t5ydpegc3knd667wn6m '@storybook/components': 6.3.13_sfoxds7t5ydpegc3knd667wn6m '@storybook/theming': 6.3.13_sfoxds7t5ydpegc3knd667wn6m - core-js: 3.24.1 + core-js: 3.22.4 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 regenerator-runtime: 0.13.9 @@ -4047,7 +4030,7 @@ packages: '@storybook/core-events': 6.3.13 '@storybook/router': 6.3.13_sfoxds7t5ydpegc3knd667wn6m '@storybook/theming': 6.3.13_sfoxds7t5ydpegc3knd667wn6m - core-js: 3.24.1 + core-js: 3.22.4 global: 4.4.0 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 @@ -4069,7 +4052,7 @@ packages: '@storybook/semver': 7.3.2 '@storybook/theming': 6.3.13_sfoxds7t5ydpegc3knd667wn6m '@types/reach__router': 1.3.10 - core-js: 3.24.1 + core-js: 3.22.4 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -4262,7 +4245,7 @@ packages: '@storybook/channels': 6.3.13 '@storybook/client-logger': 6.3.13 '@storybook/core-events': 6.3.13 - core-js: 3.24.1 + core-js: 3.22.4 global: 4.4.0 qs: 6.10.3 telejson: 5.3.3 @@ -4271,7 +4254,7 @@ packages: /@storybook/channels/6.3.13: resolution: {integrity: sha512-LQEJ9tox/RIRV4mOMPniesfPdWGOU3YI27+MY7NGnhrG58np9h9Sp2dJTpH5X7jmZT0zK5/XpwlbKmz+CeFiGQ==} dependencies: - core-js: 3.24.1 + core-js: 3.22.4 ts-dedent: 2.2.0 util-deprecate: 1.0.2 dev: true @@ -4307,7 +4290,7 @@ packages: /@storybook/client-logger/6.3.13: resolution: {integrity: sha512-4cPsx6V2UsK3KODYHp/k7FMG3HIIgkGh2v3yrpHFoZqYSvFzjoToapc11jYw91maZ4Prj0Agl6GccDxzcsBecQ==} dependencies: - core-js: 3.24.1 + core-js: 3.22.4 global: 4.4.0 dev: true @@ -4325,7 +4308,7 @@ packages: '@types/overlayscrollbars': 1.12.1 '@types/react-syntax-highlighter': 11.0.5 color-convert: 2.0.1 - core-js: 3.24.1 + core-js: 3.22.4 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -4369,7 +4352,7 @@ packages: '@storybook/ui': 6.3.13_sfoxds7t5ydpegc3knd667wn6m airbnb-js-shims: 2.2.1 ansi-to-html: 0.6.15 - core-js: 3.24.1 + core-js: 3.22.4 global: 4.4.0 lodash: 4.17.21 qs: 6.10.3 @@ -4406,7 +4389,7 @@ packages: '@storybook/ui': 6.3.13_sfoxds7t5ydpegc3knd667wn6m airbnb-js-shims: 2.2.1 ansi-to-html: 0.6.15 - core-js: 3.24.1 + core-js: 3.22.4 global: 4.4.0 lodash: 4.17.21 qs: 6.10.3 @@ -4443,7 +4426,7 @@ packages: '@storybook/ui': 6.3.13_sfoxds7t5ydpegc3knd667wn6m airbnb-js-shims: 2.2.1 ansi-to-html: 0.6.15 - core-js: 3.24.1 + core-js: 3.22.4 global: 4.4.0 lodash: 4.17.21 qs: 6.10.3 @@ -4498,7 +4481,7 @@ packages: babel-plugin-macros: 3.1.0 babel-plugin-polyfill-corejs3: 0.1.7_@babel+core@7.17.10 chalk: 4.1.2 - core-js: 3.24.1 + core-js: 3.22.4 express: 4.18.1 file-system-cache: 1.0.5 find-up: 5.0.0 @@ -4528,7 +4511,7 @@ packages: /@storybook/core-events/6.3.13: resolution: {integrity: sha512-0uuyrlIn3nOlJMcM+rJtZs+eF/7LUzDxsgcxESdzqCl9WWHb7+ERmEaxOryQZjdSnRbm1mxhTw4RbWbwqBuckg==} dependencies: - core-js: 3.24.1 + core-js: 3.22.4 dev: true /@storybook/core-server/6.3.13_w6tv4oyoa4hlw4dxxlhu54rui4: @@ -4950,7 +4933,7 @@ packages: '@reach/router': 1.3.4_sfoxds7t5ydpegc3knd667wn6m '@storybook/client-logger': 6.3.13 '@types/reach__router': 1.3.10 - core-js: 3.24.1 + core-js: 3.22.4 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -4966,7 +4949,7 @@ packages: engines: {node: '>=10'} hasBin: true dependencies: - core-js: 3.24.1 + core-js: 3.22.4 find-up: 4.1.0 dev: true @@ -5030,7 +5013,7 @@ packages: '@storybook/theming': 6.3.13_sfoxds7t5ydpegc3knd667wn6m '@types/markdown-to-jsx': 6.11.3 copy-to-clipboard: 3.3.1 - core-js: 3.24.1 + core-js: 3.22.4 core-js-pure: 3.22.4 downshift: 6.1.7_react@17.0.2 emotion-theming: 10.3.0_gfrer23gq2rp2t523t6qbxrx6m @@ -5151,6 +5134,10 @@ packages: '@types/ms': 0.7.31 dev: true + /@types/dotenv-flow/3.2.0: + resolution: {integrity: sha512-A79hbPwocbYkcTwGcDOFbKDuqyVo5mLAz/6Iq465YZ7R7Go5bT1PIM8I2jlPQkaD9u9fbotGVLkUPhX+9XUHfw==} + dev: true + /@types/eslint-scope/3.7.3: resolution: {integrity: sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==} dependencies: @@ -5194,7 +5181,7 @@ packages: requiresBuild: true dependencies: '@types/minimatch': 3.0.5 - '@types/node': 18.7.9 + '@types/node': 17.0.40 dev: true /@types/graceful-fs/4.1.5: @@ -5339,6 +5326,10 @@ packages: resolution: {integrity: sha512-XImEz7XwTvDBtzlTnm8YvMqGW/ErMWBsKZ+hMTvnDIjGCKxwK5Xpc+c/oQjOauwq8M4OS11hEkpjX8rrI/eEgA==} dev: true + /@types/node/17.0.40: + resolution: {integrity: sha512-UXdBxNGqTMtm7hCwh9HtncFVLrXoqA3oJW30j6XWp5BH/wu3mVeaxo7cq5benFdBw34HB3XDT2TRPI7rXZ+mDg==} + dev: true + /@types/node/18.7.9: resolution: {integrity: sha512-0N5Y1XAdcl865nDdjbO0m3T6FdmQ4ijE89/urOHLREyTXbpMWbSafx9y7XIsgWGtwUP2iYTinLyyW3FatAxBLQ==} @@ -5486,10 +5477,6 @@ packages: dev: true optional: true - /@types/video.js/7.3.46: - resolution: {integrity: sha512-nWuT2/UyTDzr60btoB3nJD8Bpeh6kxmaiGvmeG7JPqlfCiR12uVnE9+XUUkEcHTPjgaSd+11PfhI2pEIb+TxNw==} - dev: true - /@types/webpack-env/1.16.4: resolution: {integrity: sha512-llS8qveOUX3wxHnSykP5hlYFFuMfJ9p5JvIyCiBgp7WTfl6K5ZcyHj8r8JsN/J6QODkAsRRCLIcTuOCu8etkUw==} dev: true @@ -5497,7 +5484,7 @@ packages: /@types/webpack-sources/3.2.0: resolution: {integrity: sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==} dependencies: - '@types/node': 18.7.9 + '@types/node': 17.0.31 '@types/source-list-map': 0.1.2 source-map: 0.7.3 dev: true @@ -5708,22 +5695,6 @@ packages: eslint-visitor-keys: 3.3.0 dev: true - /@videojs/http-streaming/2.14.2_video.js@7.20.2: - resolution: {integrity: sha512-K1raSfO/pq5r8iUas3OSYni0kXOj91n8ealIpV02khghzGv9LQ6O3YUqYd/eAhJ1HIrmZWOnrYpK/P+mhUExXQ==} - engines: {node: '>=8', npm: '>=5'} - peerDependencies: - video.js: ^6 || ^7 - dependencies: - '@babel/runtime': 7.18.9 - '@videojs/vhs-utils': 3.0.5 - aes-decrypter: 3.1.3 - global: 4.4.0 - m3u8-parser: 4.7.1 - mpd-parser: 0.21.1 - mux.js: 6.0.1 - video.js: 7.20.2 - dev: false - /@videojs/http-streaming/2.2.4: resolution: {integrity: sha512-gzT46RpAEegOhMId/zZ6uXCVGDMPOv8qmoTykBuvd6/4lVM3lZ1ZJCq0kytAkisDuDKipy93gP46oZEtonlc/Q==} engines: {node: '>=8', npm: '>=5'} @@ -5747,15 +5718,6 @@ packages: url-toolkit: 2.2.5 dev: false - /@videojs/vhs-utils/3.0.5: - resolution: {integrity: sha512-PKVgdo8/GReqdx512F+ombhS+Bzogiofy1LgAj4tN8PfdBx3HSS7V5WfJotKTqtOWGwVfSWsrYN/t09/DSryrw==} - engines: {node: '>=8', npm: '>=5'} - dependencies: - '@babel/runtime': 7.18.9 - global: 4.4.0 - url-toolkit: 2.2.5 - dev: false - /@videojs/xhr/2.5.1: resolution: {integrity: sha512-wV9nGESHseSK+S9ePEru2+OJZ1jq/ZbbzniGQ4weAmTIepuBMSYPx5zrxxQA0E786T5ykpO8ts+LayV+3/oI2w==} dependencies: @@ -5764,14 +5726,6 @@ packages: is-function: 1.0.2 dev: false - /@videojs/xhr/2.6.0: - resolution: {integrity: sha512-7J361GiN1tXpm+gd0xz2QWr3xNWBE+rytvo8J3KuggFaLg+U37gZQ2BuPLcnkfGffy2e+ozY70RHC8jt7zjA6Q==} - dependencies: - '@babel/runtime': 7.18.9 - global: 4.4.0 - is-function: 1.0.2 - dev: false - /@vitejs/plugin-react/1.3.2: resolution: {integrity: sha512-aurBNmMo0kz1O4qRoY+FM4epSA39y3ShWGuqfLRA/3z0oEJAdtoSfgA3aO98/PCCHAqMaduLxIxErWrVKIFzXA==} engines: {node: '>=12.0.0'} @@ -6054,11 +6008,6 @@ packages: webpack-cli: 4.9.2 dev: true - /@xmldom/xmldom/0.7.5: - resolution: {integrity: sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==} - engines: {node: '>=10.0.0'} - dev: false - /@xobotyi/scrollbar-width/1.9.5: resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} dev: false @@ -6171,15 +6120,6 @@ packages: pkcs7: 1.0.4 dev: false - /aes-decrypter/3.1.3: - resolution: {integrity: sha512-VkG9g4BbhMBy+N5/XodDeV6F02chEk9IpgRTq/0bS80y4dzy79VH2Gtms02VXomf3HmyRe3yyJYkJ990ns+d6A==} - dependencies: - '@babel/runtime': 7.18.9 - '@videojs/vhs-utils': 3.0.5 - global: 4.4.0 - pkcs7: 1.0.4 - dev: false - /agent-base/6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -6543,7 +6483,7 @@ packages: resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==} engines: {node: '>=6.0'} dependencies: - '@babel/runtime': 7.18.9 + '@babel/runtime': 7.17.9 '@babel/runtime-corejs3': 7.17.9 dev: true @@ -7058,7 +6998,7 @@ packages: '@babel/preset-env': 7.17.10_@babel+core@7.17.10 '@babel/preset-react': 7.16.7_@babel+core@7.17.10 '@babel/preset-typescript': 7.16.7_@babel+core@7.17.10 - '@babel/runtime': 7.18.9 + '@babel/runtime': 7.17.9 babel-plugin-macros: 3.1.0 babel-plugin-transform-react-remove-prop-types: 0.4.24 transitivePeerDependencies: @@ -11879,10 +11819,6 @@ packages: value-equal: 1.0.1 dev: false - /hls.js/1.2.1: - resolution: {integrity: sha512-+m/5+ikSpmQQvb6FmVWZUZfzvTJMn/QVfiCGP1Oq9WW4RKrAvxlExkhhbcVGgGqLNPFk1kdFkVQur//wKu3JVw==} - dev: false - /hmac-drbg/1.0.1: resolution: {integrity: sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=} dependencies: @@ -12230,7 +12166,7 @@ packages: dev: true /individual/2.0.0: - resolution: {integrity: sha512-pWt8hBCqJsUWI/HtcfWod7+N9SgAqyPEaF7JQjwzjn5vGrpg6aQ5qeAFQ7dx//UH4J1O+7xqew+gCeeFt6xN/g==} + resolution: {integrity: sha1-gzsJfa0jKU52EXqY+zjg2a1hu5c=} dev: false /infer-owner/1.0.4: @@ -13494,14 +13430,6 @@ packages: global: 4.4.0 dev: false - /m3u8-parser/4.7.1: - resolution: {integrity: sha512-pbrQwiMiq+MmI9bl7UjtPT3AK603PV9bogNlr83uC+X9IoxqL5E4k7kU7fMQ0dpRgxgeSMygqUa0IMLQNXLBNA==} - dependencies: - '@babel/runtime': 7.18.9 - '@videojs/vhs-utils': 3.0.5 - global: 4.4.0 - dev: false - /make-dir/1.3.0: resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} engines: {node: '>=4'} @@ -13846,7 +13774,7 @@ packages: engines: {node: '>=4'} /min-document/2.19.0: - resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} + resolution: {integrity: sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=} dependencies: dom-walk: 0.1.2 @@ -14038,16 +13966,6 @@ packages: xmldom: 0.1.31 dev: false - /mpd-parser/0.21.1: - resolution: {integrity: sha512-BxlSXWbKE1n7eyEPBnTEkrzhS3PdmkkKdM1pgKbPnPOH0WFZIc0sPOWi7m0Uo3Wd2a4Or8Qf4ZbS7+ASqQ49fw==} - hasBin: true - dependencies: - '@babel/runtime': 7.18.9 - '@videojs/vhs-utils': 3.0.5 - '@xmldom/xmldom': 0.7.5 - global: 4.4.0 - dev: false - /ms/2.0.0: resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} @@ -14066,15 +13984,6 @@ packages: resolution: {integrity: sha512-YSr6B8MUgE4S18MptbY2XM+JKGbw9JDkgs7YkuE/T2fpDKjOhZfb/nD6vmsVxvLYOExWNaQn1UGBp6PGsnTtew==} dev: false - /mux.js/6.0.1: - resolution: {integrity: sha512-22CHb59rH8pWGcPGW5Og7JngJ9s+z4XuSlYvnxhLuc58cA1WqGDQPzuG8I+sPm1/p0CdgpzVTaKW408k5DNn8w==} - engines: {node: '>=8', npm: '>=5'} - hasBin: true - dependencies: - '@babel/runtime': 7.18.9 - global: 4.4.0 - dev: false - /mv/2.1.1: resolution: {integrity: sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=} engines: {node: '>=0.8.0'} @@ -15414,7 +15323,7 @@ packages: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} /process/0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + resolution: {integrity: sha1-czIwDoQBYb2j5podHZGn1LwW8YI=} engines: {node: '>= 0.6.0'} /process/0.5.2: @@ -17307,7 +17216,7 @@ packages: dev: true /rust-result/1.0.0: - resolution: {integrity: sha512-6cJzSBU+J/RJCF063onnQf0cDUOHs9uZI1oroSGnHOph+CQTIJ5Pp2hK5kEQq1+7yE/EEWfulSNXAQ2jikPthA==} + resolution: {integrity: sha1-NMdbLm3Dn+WHXlveyFteD5FTb3I=} dependencies: individual: 2.0.0 dev: false @@ -19626,24 +19535,6 @@ packages: videojs-vtt.js: 0.15.3 dev: false - /video.js/7.20.2: - resolution: {integrity: sha512-hdvAHKAyaL6bCDkeu0pPtFYKi1EDaOUovm7FN1xqBDolUxgH8FKy1WIgTS+Ouuaw7R54SCTcSeXjZEizhy9ouQ==} - dependencies: - '@babel/runtime': 7.18.9 - '@videojs/http-streaming': 2.14.2_video.js@7.20.2 - '@videojs/vhs-utils': 3.0.5 - '@videojs/xhr': 2.6.0 - aes-decrypter: 3.1.3 - global: 4.4.0 - keycode: 2.2.1 - m3u8-parser: 4.7.1 - mpd-parser: 0.21.1 - mux.js: 6.0.1 - safe-json-parse: 4.0.0 - videojs-font: 3.2.0 - videojs-vtt.js: 0.15.3 - dev: false - /videojs-font/3.2.0: resolution: {integrity: sha512-g8vHMKK2/JGorSfqAZQUmYYNnXmfec4MLhwtEFS+mMs2IDY398GLysy6BH6K+aS1KMNu/xWZ8Sue/X/mdQPliA==} dev: false From da436f3ffec25e3bd14a72894b675a4e90110bf4 Mon Sep 17 00:00:00 2001 From: hyrious Date: Tue, 6 Sep 2022 15:57:10 +0800 Subject: [PATCH 2/5] feat(main-app): add replace import meta plugin --- .../scripts/esbuild/esbuild.common.ts | 3 ++ .../main-app/scripts/esbuild/esbuild.dev.ts | 4 +- .../main-app/scripts/esbuild/esbuild.prod.ts | 4 +- .../esbuild/plugin/replaceImportMeta.ts | 37 +++++++++++++++++++ desktop/main-app/src/utils/runtime.ts | 2 +- 5 files changed, 45 insertions(+), 5 deletions(-) create mode 100644 desktop/main-app/scripts/esbuild/plugin/replaceImportMeta.ts diff --git a/desktop/main-app/scripts/esbuild/esbuild.common.ts b/desktop/main-app/scripts/esbuild/esbuild.common.ts index 751c8123f8c..c4c4a1315d8 100644 --- a/desktop/main-app/scripts/esbuild/esbuild.common.ts +++ b/desktop/main-app/scripts/esbuild/esbuild.common.ts @@ -1,6 +1,7 @@ import { autoChooseConfig } from "../../../../scripts/utils/auto-choose-config"; import pkg from "../../package.json"; import dotEnvFlowPlugin from "./plugin/dotEnvFlowPlugin"; +import { replaceImportMeta } from "./plugin/replaceImportMeta"; export const external = Object.keys(pkg.dependencies); @@ -10,3 +11,5 @@ export const dotenvPlugin = dotEnvFlowPlugin({ default_node_env: "development", silent: true, }); + +export const replaceMetaPlugin = replaceImportMeta(); diff --git a/desktop/main-app/scripts/esbuild/esbuild.dev.ts b/desktop/main-app/scripts/esbuild/esbuild.dev.ts index 72fae0df706..920c3f34615 100644 --- a/desktop/main-app/scripts/esbuild/esbuild.dev.ts +++ b/desktop/main-app/scripts/esbuild/esbuild.dev.ts @@ -1,6 +1,6 @@ import { ChildProcess, spawn } from "child_process"; import esbuild from "esbuild"; -import { dotenvPlugin, external } from "./esbuild.common"; +import { dotenvPlugin, external, replaceMetaPlugin } from "./esbuild.common"; import * as paths from "./paths"; let child: ChildProcess | undefined; @@ -38,7 +38,7 @@ const buildMain = esbuild.build({ } }, }, - plugins: [dotenvPlugin], + plugins: [dotenvPlugin, replaceMetaPlugin], }); const allDone = Promise.all([buildPreload, buildMain]); diff --git a/desktop/main-app/scripts/esbuild/esbuild.prod.ts b/desktop/main-app/scripts/esbuild/esbuild.prod.ts index 1af7c822af4..16669082e47 100644 --- a/desktop/main-app/scripts/esbuild/esbuild.prod.ts +++ b/desktop/main-app/scripts/esbuild/esbuild.prod.ts @@ -1,5 +1,5 @@ import esbuild from "esbuild"; -import { dotenvPlugin, external } from "./esbuild.common"; +import { dotenvPlugin, external, replaceMetaPlugin } from "./esbuild.common"; import * as paths from "./paths"; const buildPreload = esbuild.build({ @@ -19,7 +19,7 @@ const buildMain = esbuild.build({ external: [...external, "electron", "electron-devtools-vendor"], sourcemap: true, outfile: paths.dist, - plugins: [dotenvPlugin], + plugins: [dotenvPlugin, replaceMetaPlugin], }); Promise.all([buildPreload, buildMain]).catch(() => process.exit(1)); diff --git a/desktop/main-app/scripts/esbuild/plugin/replaceImportMeta.ts b/desktop/main-app/scripts/esbuild/plugin/replaceImportMeta.ts new file mode 100644 index 00000000000..614933b9560 --- /dev/null +++ b/desktop/main-app/scripts/esbuild/plugin/replaceImportMeta.ts @@ -0,0 +1,37 @@ +import { Plugin } from "esbuild"; +import { readFile } from "fs-extra"; +import { dirname } from "path"; +import { pathToFileURL } from "url"; + +export interface ReplaceImportMetaOptions { + /** + * Passed to `onLoad()`. + * @default /\.[jt]s$/ + */ + filter?: RegExp; +} + +/** + * Replace `import.meta.url` and `__dirname`, `__filename` with absolute path. + * Taken from https://github.com/vitejs/vite/blob/main/packages/vite/src/node/config.ts + */ +export function replaceImportMeta(options: ReplaceImportMetaOptions = {}): Plugin { + const filter = options.filter ?? /\.[jt]s$/; + + return { + name: "replace-import-meta", + setup({ onLoad }) { + onLoad({ filter }, async args => { + const contents = await readFile(args.path, "utf8"); + const import_meta_url = JSON.stringify(pathToFileURL(args.path).href); + return { + loader: "default", + contents: contents + .replace(/\bimport\.meta\.url\b/g, import_meta_url) + .replace(/\b__dirname\b/g, JSON.stringify(dirname(args.path))) + .replace(/\b__filename\b/g, JSON.stringify(args.path)), + }; + }); + }, + }; +} diff --git a/desktop/main-app/src/utils/runtime.ts b/desktop/main-app/src/utils/runtime.ts index 8a6d8a6fbdf..10e7dca1b13 100644 --- a/desktop/main-app/src/utils/runtime.ts +++ b/desktop/main-app/src/utils/runtime.ts @@ -28,7 +28,7 @@ const staticPath = isProduction const preloadPath = isProduction || isDebug ? path.join(__dirname, "preload.js") - : path.resolve(__dirname, "..", "dist", "preload.js"); + : path.resolve(__dirname, "..", "..", "dist", "preload.js"); // eslint-disable-next-line @typescript-eslint/no-var-requires const appVersion = isProduction ? app.getVersion() : require("../../package.json").version; From b6f59ff1c87945a54828732b38faaa95ab1d08d7 Mon Sep 17 00:00:00 2001 From: hyrious Date: Tue, 13 Sep 2022 15:25:20 +0800 Subject: [PATCH 3/5] Update desktop/main-app/scripts/esbuild/paths.ts Co-authored-by: Black-Hole <158blackhole@gmail.com> --- desktop/main-app/scripts/esbuild/paths.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/desktop/main-app/scripts/esbuild/paths.ts b/desktop/main-app/scripts/esbuild/paths.ts index a2dcafa4f53..34677b49f7f 100644 --- a/desktop/main-app/scripts/esbuild/paths.ts +++ b/desktop/main-app/scripts/esbuild/paths.ts @@ -3,7 +3,7 @@ import path from "path"; const resolvePath = (...relativePath: string[]): string => path.resolve(__dirname, "..", "..", ...relativePath); -export const dist = resolvePath("dist/index.js"); -export const preloadDist = resolvePath("dist/preload.js"); +export const dist = resolvePath("dist", "index.js"); +export const preloadDist = resolvePath("dist", "preload.js"); export const entryFile = resolvePath("src", "index.ts"); export const preloadPath = resolvePath("src", "preload.ts"); From 91b129dfcd875d293c929dce5092a8772f26daed Mon Sep 17 00:00:00 2001 From: hyrious Date: Tue, 13 Sep 2022 15:29:12 +0800 Subject: [PATCH 4/5] update lockfile --- pnpm-lock.yaml | 166 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 144 insertions(+), 22 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e391304178a..73a30ee4f6b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -421,6 +421,7 @@ importers: '@netless/mini-svg-data-uri': 0.0.1 '@types/loadable__component': ^5.13.4 '@types/mime': ^2.0.3 + '@types/video.js': ^7.3.46 antd: ^4.22.8 axios: ^0.26.1 classnames: ^2.3.1 @@ -485,6 +486,7 @@ importers: '@netless/mini-svg-data-uri': 0.0.1 '@types/loadable__component': 5.13.4 '@types/mime': 2.0.3 + '@types/video.js': 7.3.47 dotenv: 16.0.0 dotenv-expand: 8.0.3 eslint-loader: 4.0.2 @@ -519,13 +521,16 @@ importers: packages/flat-stores: specifiers: - '@netless/fastboard': 1.0.0-canary.5 + '@netless/fastboard': 1.0.0-canary.6 '@netless/flat-i18n': workspace:* '@netless/flat-server-api': workspace:* '@netless/flat-services': workspace:* - '@netless/window-manager': 1.0.0-canary.51 + '@netless/sync-player': ^1.0.6 + '@netless/window-manager': 1.0.0-canary.52 flat-components: workspace:* + hls.js: ^1.2.1 mobx: ^6.6.1 + polly-js: ^1.8.3 prettier: ^2.3.0 react: ^17.0.2 side-effect-manager: ^1.2.1 @@ -536,12 +541,15 @@ importers: '@netless/flat-i18n': link:../flat-i18n '@netless/flat-server-api': link:../flat-server-api '@netless/flat-services': link:../flat-services + '@netless/sync-player': 1.0.6_white-web-sdk-esm@2.16.34 flat-components: link:../flat-components + hls.js: 1.2.3 + polly-js: 1.8.3 side-effect-manager: 1.2.1 uuid: 8.3.2 devDependencies: - '@netless/fastboard': 1.0.0-canary.5_mmp4rjrhi6ss7hn4rcz5yutum4 - '@netless/window-manager': 1.0.0-canary.51_white-web-sdk-esm@2.16.34 + '@netless/fastboard': 1.0.0-canary.6_ubyj6piufzu7ykiacmzdszyuvu + '@netless/window-manager': 1.0.0-canary.52_white-web-sdk-esm@2.16.34 mobx: 6.6.1 prettier: 2.6.2 react: 17.0.2 @@ -604,6 +612,7 @@ importers: service-providers/agora-rtm: specifiers: + '@netless/flat-server-api': workspace:* '@netless/flat-services': workspace:* agora-rtm-sdk: ^1.4.4 prettier: ^2.3.0 @@ -611,6 +620,7 @@ importers: typescript: ^4.7.4 uuid: ^8.3.2 dependencies: + '@netless/flat-server-api': link:../../packages/flat-server-api '@netless/flat-services': link:../../packages/flat-services agora-rtm-sdk: 1.4.4 side-effect-manager: 1.2.1 @@ -648,13 +658,13 @@ importers: service-providers/fastboard: specifiers: '@lukeed/uuid': ^2.0.0 - '@netless/fastboard': 1.0.0-canary.5 + '@netless/fastboard': 1.0.0-canary.6 '@netless/flat-i18n': workspace:* '@netless/flat-server-api': workspace:* '@netless/flat-service-provider-file-convert-netless': workspace:* '@netless/flat-services': workspace:* '@netless/white-snapshot': ^0.4.2 - '@netless/window-manager': 1.0.0-canary.51 + '@netless/window-manager': 1.0.0-canary.52 prettier: ^2.3.0 side-effect-manager: ^1.2.1 typescript: ^4.7.4 @@ -662,13 +672,13 @@ importers: white-web-sdk: npm:white-web-sdk-esm@2.16.34 dependencies: '@lukeed/uuid': 2.0.0 - '@netless/fastboard': 1.0.0-canary.5_mmp4rjrhi6ss7hn4rcz5yutum4 + '@netless/fastboard': 1.0.0-canary.6_ubyj6piufzu7ykiacmzdszyuvu '@netless/flat-i18n': link:../../packages/flat-i18n '@netless/flat-server-api': link:../../packages/flat-server-api '@netless/flat-service-provider-file-convert-netless': link:../file-convert-netless '@netless/flat-services': link:../../packages/flat-services '@netless/white-snapshot': 0.4.2 - '@netless/window-manager': 1.0.0-canary.51_white-web-sdk-esm@2.16.34 + '@netless/window-manager': 1.0.0-canary.52_white-web-sdk-esm@2.16.34 side-effect-manager: 1.2.1 value-enhancer: 1.3.2 white-web-sdk: /white-web-sdk-esm/2.16.34 @@ -3326,35 +3336,35 @@ packages: - supports-color dev: true - /@netless/fastboard-core/1.0.0-canary.5_mmp4rjrhi6ss7hn4rcz5yutum4: - resolution: {integrity: sha512-g+B/U4qNU7mJOoOGoUdRpEvt7n/nm6DUA+adFsZd5mYXo8tH6Jubg68a473GUxZPSiQfjFL8J9tkyZms19hLsQ==} + /@netless/fastboard-core/1.0.0-canary.6_ubyj6piufzu7ykiacmzdszyuvu: + resolution: {integrity: sha512-lcPYhsFuHEPgi+nOHtqR0bX/nbAM3fKvJXgkBwh9ATstUArz15WOb/W7AwXGw/INze+tsRbIxnbA/5Y/z8hKvA==} peerDependencies: '@netless/window-manager': '>=1.0.0-canary.0' white-web-sdk: '>=2.16.0' dependencies: '@lukeed/uuid': 2.0.0 '@netless/synced-store': 2.0.7_white-web-sdk-esm@2.16.34 - '@netless/window-manager': 1.0.0-canary.51_white-web-sdk-esm@2.16.34 + '@netless/window-manager': 1.0.0-canary.52_white-web-sdk-esm@2.16.34 white-web-sdk: /white-web-sdk-esm/2.16.34 - /@netless/fastboard-ui/1.0.0-canary.5_q3q3mehaqyljusltw53sy5zeiu: - resolution: {integrity: sha512-rAh/GlC7mgdQj74dqkxaiK0c/eQzznWfhhrK1pokCEUS2hknyM8POGoBsofhfDCwl3lVjKHfZHuXaMefVuGyJA==} + /@netless/fastboard-ui/1.0.0-canary.6_m23f4skpfoq3arppzbqjiodchi: + resolution: {integrity: sha512-yvAhixIuv5QrJ1w49iRNCXUm+bLCl9U2bEU5IaCiPDL0neuo8vLOONI96KBqxS9JQLQVwNtJ/ZCnfbIUVh1/1g==} peerDependencies: - '@netless/fastboard-core': 1.0.0-canary.5 + '@netless/fastboard-core': 1.0.0-canary.6 dependencies: - '@netless/fastboard-core': 1.0.0-canary.5_mmp4rjrhi6ss7hn4rcz5yutum4 + '@netless/fastboard-core': 1.0.0-canary.6_ubyj6piufzu7ykiacmzdszyuvu tippy.js: 6.3.7 - /@netless/fastboard/1.0.0-canary.5_mmp4rjrhi6ss7hn4rcz5yutum4: - resolution: {integrity: sha512-Xn3iXTZHtK2o9rpfKDP0tdcEPf+TqZfoOTzH2iQffhpT4IDRV687TvNA1gbRSF2LcyQnA2rW+lgC1mIhCmqe/w==} + /@netless/fastboard/1.0.0-canary.6_ubyj6piufzu7ykiacmzdszyuvu: + resolution: {integrity: sha512-w36BHxkkreCVztCirKRItaMtSy80aRLaE6ApYyVLvegyiopOa4LoY5GRkL117ySxnXLK+DGnAicgB7eFc9gEqA==} peerDependencies: '@netless/window-manager': '>=1.0.0-canary.0' white-web-sdk: '>=2.16.0' dependencies: '@netless/app-slide': 0.3.0-canary.7 - '@netless/fastboard-core': 1.0.0-canary.5_mmp4rjrhi6ss7hn4rcz5yutum4 - '@netless/fastboard-ui': 1.0.0-canary.5_q3q3mehaqyljusltw53sy5zeiu - '@netless/window-manager': 1.0.0-canary.51_white-web-sdk-esm@2.16.34 + '@netless/fastboard-core': 1.0.0-canary.6_ubyj6piufzu7ykiacmzdszyuvu + '@netless/fastboard-ui': 1.0.0-canary.6_m23f4skpfoq3arppzbqjiodchi + '@netless/window-manager': 1.0.0-canary.52_white-web-sdk-esm@2.16.34 white-web-sdk: /white-web-sdk-esm/2.16.34 /@netless/mini-svg-data-uri/0.0.1: @@ -3372,6 +3382,18 @@ packages: localforage: 1.10.0 lodash: 4.17.21 + /@netless/sync-player/1.0.6_white-web-sdk-esm@2.16.34: + resolution: {integrity: sha512-lyWeZOwuIOIRdHbPKM1dlvy4QSXOquYSO/vQZDEbkyRmJEtBptn7FS+sgKGWaSjKI+yol6XcAEpU7gWPrT/76w==} + peerDependencies: + white-web-sdk: '>=2' + dependencies: + '@babel/runtime': 7.18.9 + eventemitter3: 4.0.7 + side-effect-manager: 1.2.1 + video.js: 7.20.2 + white-web-sdk: /white-web-sdk-esm/2.16.34 + dev: false + /@netless/synced-store/2.0.7_white-web-sdk-esm@2.16.34: resolution: {integrity: sha512-E5ukXMTLa0Mlhlv9Rcy3MJSAM5kwiLoXQy42OCSIFdBR8jf0BKbSUXSjnA8J+FZq6UidNtGaadDWjhwlM1z5MA==} requiresBuild: true @@ -3401,8 +3423,8 @@ packages: html2canvas: 1.4.1 dev: false - /@netless/window-manager/1.0.0-canary.51_white-web-sdk-esm@2.16.34: - resolution: {integrity: sha512-ZKOaFogWdV6SccPRG57j+nOJ0W6Xx1dgKJDRsxA3WRTRIEWvRfoxQVPW/UrqJ++hcgWTnS3IWQVbZiIEfSMyyw==} + /@netless/window-manager/1.0.0-canary.52_white-web-sdk-esm@2.16.34: + resolution: {integrity: sha512-ksr+iy8BfIzVZON8kUniz5qA4AkRUoTIya0x8rZTHfRZ3kfeLPxOR3KCXjLNY3zRXtgEgPGBNcOuXMizhUDcug==} peerDependencies: white-web-sdk: ^2.16.0 dependencies: @@ -5477,6 +5499,10 @@ packages: dev: true optional: true + /@types/video.js/7.3.47: + resolution: {integrity: sha512-dh4pnTpJVSXk6UYtYNtcokeKqbc3liAnDj0PQJ67oXudXWSdrltGu5lqhXQ1OMnKuNLbJPANIiVhObpgEUqXoA==} + dev: true + /@types/webpack-env/1.16.4: resolution: {integrity: sha512-llS8qveOUX3wxHnSykP5hlYFFuMfJ9p5JvIyCiBgp7WTfl6K5ZcyHj8r8JsN/J6QODkAsRRCLIcTuOCu8etkUw==} dev: true @@ -5695,6 +5721,22 @@ packages: eslint-visitor-keys: 3.3.0 dev: true + /@videojs/http-streaming/2.14.2_video.js@7.20.2: + resolution: {integrity: sha512-K1raSfO/pq5r8iUas3OSYni0kXOj91n8ealIpV02khghzGv9LQ6O3YUqYd/eAhJ1HIrmZWOnrYpK/P+mhUExXQ==} + engines: {node: '>=8', npm: '>=5'} + peerDependencies: + video.js: ^6 || ^7 + dependencies: + '@babel/runtime': 7.18.9 + '@videojs/vhs-utils': 3.0.5 + aes-decrypter: 3.1.3 + global: 4.4.0 + m3u8-parser: 4.7.1 + mpd-parser: 0.21.1 + mux.js: 6.0.1 + video.js: 7.20.2 + dev: false + /@videojs/http-streaming/2.2.4: resolution: {integrity: sha512-gzT46RpAEegOhMId/zZ6uXCVGDMPOv8qmoTykBuvd6/4lVM3lZ1ZJCq0kytAkisDuDKipy93gP46oZEtonlc/Q==} engines: {node: '>=8', npm: '>=5'} @@ -5718,6 +5760,15 @@ packages: url-toolkit: 2.2.5 dev: false + /@videojs/vhs-utils/3.0.5: + resolution: {integrity: sha512-PKVgdo8/GReqdx512F+ombhS+Bzogiofy1LgAj4tN8PfdBx3HSS7V5WfJotKTqtOWGwVfSWsrYN/t09/DSryrw==} + engines: {node: '>=8', npm: '>=5'} + dependencies: + '@babel/runtime': 7.18.9 + global: 4.4.0 + url-toolkit: 2.2.5 + dev: false + /@videojs/xhr/2.5.1: resolution: {integrity: sha512-wV9nGESHseSK+S9ePEru2+OJZ1jq/ZbbzniGQ4weAmTIepuBMSYPx5zrxxQA0E786T5ykpO8ts+LayV+3/oI2w==} dependencies: @@ -5726,6 +5777,14 @@ packages: is-function: 1.0.2 dev: false + /@videojs/xhr/2.6.0: + resolution: {integrity: sha512-7J361GiN1tXpm+gd0xz2QWr3xNWBE+rytvo8J3KuggFaLg+U37gZQ2BuPLcnkfGffy2e+ozY70RHC8jt7zjA6Q==} + dependencies: + '@babel/runtime': 7.18.9 + global: 4.4.0 + is-function: 1.0.2 + dev: false + /@vitejs/plugin-react/1.3.2: resolution: {integrity: sha512-aurBNmMo0kz1O4qRoY+FM4epSA39y3ShWGuqfLRA/3z0oEJAdtoSfgA3aO98/PCCHAqMaduLxIxErWrVKIFzXA==} engines: {node: '>=12.0.0'} @@ -6008,6 +6067,11 @@ packages: webpack-cli: 4.9.2 dev: true + /@xmldom/xmldom/0.7.5: + resolution: {integrity: sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==} + engines: {node: '>=10.0.0'} + dev: false + /@xobotyi/scrollbar-width/1.9.5: resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} dev: false @@ -6120,6 +6184,15 @@ packages: pkcs7: 1.0.4 dev: false + /aes-decrypter/3.1.3: + resolution: {integrity: sha512-VkG9g4BbhMBy+N5/XodDeV6F02chEk9IpgRTq/0bS80y4dzy79VH2Gtms02VXomf3HmyRe3yyJYkJ990ns+d6A==} + dependencies: + '@babel/runtime': 7.18.9 + '@videojs/vhs-utils': 3.0.5 + global: 4.4.0 + pkcs7: 1.0.4 + dev: false + /agent-base/6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -11819,6 +11892,10 @@ packages: value-equal: 1.0.1 dev: false + /hls.js/1.2.3: + resolution: {integrity: sha512-CC/vHi82ldiiydIhliNI3whlcepRXxI2jdpd/KKb6lyEv+74e7lXs4cGk5PHfTLxZMKOj6+m5LX9VAbvV/r7AQ==} + dev: false + /hmac-drbg/1.0.1: resolution: {integrity: sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=} dependencies: @@ -13430,6 +13507,14 @@ packages: global: 4.4.0 dev: false + /m3u8-parser/4.7.1: + resolution: {integrity: sha512-pbrQwiMiq+MmI9bl7UjtPT3AK603PV9bogNlr83uC+X9IoxqL5E4k7kU7fMQ0dpRgxgeSMygqUa0IMLQNXLBNA==} + dependencies: + '@babel/runtime': 7.18.9 + '@videojs/vhs-utils': 3.0.5 + global: 4.4.0 + dev: false + /make-dir/1.3.0: resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} engines: {node: '>=4'} @@ -13966,6 +14051,16 @@ packages: xmldom: 0.1.31 dev: false + /mpd-parser/0.21.1: + resolution: {integrity: sha512-BxlSXWbKE1n7eyEPBnTEkrzhS3PdmkkKdM1pgKbPnPOH0WFZIc0sPOWi7m0Uo3Wd2a4Or8Qf4ZbS7+ASqQ49fw==} + hasBin: true + dependencies: + '@babel/runtime': 7.18.9 + '@videojs/vhs-utils': 3.0.5 + '@xmldom/xmldom': 0.7.5 + global: 4.4.0 + dev: false + /ms/2.0.0: resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} @@ -13984,6 +14079,15 @@ packages: resolution: {integrity: sha512-YSr6B8MUgE4S18MptbY2XM+JKGbw9JDkgs7YkuE/T2fpDKjOhZfb/nD6vmsVxvLYOExWNaQn1UGBp6PGsnTtew==} dev: false + /mux.js/6.0.1: + resolution: {integrity: sha512-22CHb59rH8pWGcPGW5Og7JngJ9s+z4XuSlYvnxhLuc58cA1WqGDQPzuG8I+sPm1/p0CdgpzVTaKW408k5DNn8w==} + engines: {node: '>=8', npm: '>=5'} + hasBin: true + dependencies: + '@babel/runtime': 7.18.9 + global: 4.4.0 + dev: false + /mv/2.1.1: resolution: {integrity: sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=} engines: {node: '>=0.8.0'} @@ -19535,6 +19639,24 @@ packages: videojs-vtt.js: 0.15.3 dev: false + /video.js/7.20.2: + resolution: {integrity: sha512-hdvAHKAyaL6bCDkeu0pPtFYKi1EDaOUovm7FN1xqBDolUxgH8FKy1WIgTS+Ouuaw7R54SCTcSeXjZEizhy9ouQ==} + dependencies: + '@babel/runtime': 7.18.9 + '@videojs/http-streaming': 2.14.2_video.js@7.20.2 + '@videojs/vhs-utils': 3.0.5 + '@videojs/xhr': 2.6.0 + aes-decrypter: 3.1.3 + global: 4.4.0 + keycode: 2.2.1 + m3u8-parser: 4.7.1 + mpd-parser: 0.21.1 + mux.js: 6.0.1 + safe-json-parse: 4.0.0 + videojs-font: 3.2.0 + videojs-vtt.js: 0.15.3 + dev: false + /videojs-font/3.2.0: resolution: {integrity: sha512-g8vHMKK2/JGorSfqAZQUmYYNnXmfec4MLhwtEFS+mMs2IDY398GLysy6BH6K+aS1KMNu/xWZ8Sue/X/mdQPliA==} dev: false From 2e032fca46c9d76fe6b85550ef02d82e867dbce8 Mon Sep 17 00:00:00 2001 From: hyrious Date: Tue, 20 Sep 2022 11:53:13 +0800 Subject: [PATCH 5/5] rebase main --- .../main-app/scripts/esbuild/esbuild.prod.ts | 5 +- desktop/main-app/scripts/esbuild/paths.ts | 2 +- pnpm-lock.yaml | 81 +++++++++---------- 3 files changed, 44 insertions(+), 44 deletions(-) diff --git a/desktop/main-app/scripts/esbuild/esbuild.prod.ts b/desktop/main-app/scripts/esbuild/esbuild.prod.ts index 16669082e47..30aa44ce608 100644 --- a/desktop/main-app/scripts/esbuild/esbuild.prod.ts +++ b/desktop/main-app/scripts/esbuild/esbuild.prod.ts @@ -1,5 +1,5 @@ import esbuild from "esbuild"; -import { dotenvPlugin, external, replaceMetaPlugin } from "./esbuild.common"; +import { dotenvPlugin, external } from "./esbuild.common"; import * as paths from "./paths"; const buildPreload = esbuild.build({ @@ -9,6 +9,7 @@ const buildPreload = esbuild.build({ target: "chrome89", external: [...external, "electron", "os", "path"], outfile: paths.preloadDist, + plugins: [dotenvPlugin], }); const buildMain = esbuild.build({ @@ -19,7 +20,7 @@ const buildMain = esbuild.build({ external: [...external, "electron", "electron-devtools-vendor"], sourcemap: true, outfile: paths.dist, - plugins: [dotenvPlugin, replaceMetaPlugin], + plugins: [dotenvPlugin], }); Promise.all([buildPreload, buildMain]).catch(() => process.exit(1)); diff --git a/desktop/main-app/scripts/esbuild/paths.ts b/desktop/main-app/scripts/esbuild/paths.ts index 34677b49f7f..3d728c02904 100644 --- a/desktop/main-app/scripts/esbuild/paths.ts +++ b/desktop/main-app/scripts/esbuild/paths.ts @@ -3,7 +3,7 @@ import path from "path"; const resolvePath = (...relativePath: string[]): string => path.resolve(__dirname, "..", "..", ...relativePath); -export const dist = resolvePath("dist", "index.js"); +export const dist = resolvePath("dist", "main.js"); export const preloadDist = resolvePath("dist", "preload.js"); export const entryFile = resolvePath("src", "index.ts"); export const preloadPath = resolvePath("src", "preload.ts"); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 73a30ee4f6b..3d4ae6f937c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -156,7 +156,7 @@ importers: '@netless/app-plyr': ^0.2.2 '@netless/app-quill': ^0.1.0 '@netless/app-selector': ^0.0.2 - '@netless/app-slide': 0.3.0-canary.7 + '@netless/app-slide': 0.3.0-canary.10 '@netless/combine-player': ^1.1.6 '@netless/flat-i18n': workspace:* '@netless/flat-pages': workspace:* @@ -220,7 +220,7 @@ importers: '@netless/app-plyr': 0.2.2 '@netless/app-quill': 0.1.0 '@netless/app-selector': 0.0.2 - '@netless/app-slide': 0.3.0-canary.7 + '@netless/app-slide': 0.3.0-canary.10 '@netless/combine-player': 1.1.6 '@netless/flat-i18n': link:../../packages/flat-i18n '@netless/flat-pages': link:../../packages/flat-pages @@ -410,7 +410,7 @@ importers: '@netless/app-iframe-bridge': ^0.0.2 '@netless/app-monaco': 0.2.0-canary.0 '@netless/app-plyr': ^0.2.2 - '@netless/app-slide': 0.3.0-canary.7 + '@netless/app-slide': 0.3.0-canary.10 '@netless/combine-player': ^1.1.6 '@netless/flat-i18n': workspace:* '@netless/flat-server-api': workspace:* @@ -453,7 +453,7 @@ importers: '@netless/app-iframe-bridge': 0.0.2 '@netless/app-monaco': 0.2.0-canary.0 '@netless/app-plyr': 0.2.2 - '@netless/app-slide': 0.3.0-canary.7 + '@netless/app-slide': 0.3.0-canary.10 '@netless/combine-player': 1.1.6 '@netless/flat-i18n': link:../flat-i18n '@netless/flat-server-api': link:../flat-server-api @@ -521,12 +521,12 @@ importers: packages/flat-stores: specifiers: - '@netless/fastboard': 1.0.0-canary.6 + '@netless/fastboard': 1.0.0-canary.7 '@netless/flat-i18n': workspace:* '@netless/flat-server-api': workspace:* '@netless/flat-services': workspace:* - '@netless/sync-player': ^1.0.6 - '@netless/window-manager': 1.0.0-canary.52 + '@netless/sync-player': ^1.0.7 + '@netless/window-manager': 1.0.0-canary.53 flat-components: workspace:* hls.js: ^1.2.1 mobx: ^6.6.1 @@ -541,15 +541,15 @@ importers: '@netless/flat-i18n': link:../flat-i18n '@netless/flat-server-api': link:../flat-server-api '@netless/flat-services': link:../flat-services - '@netless/sync-player': 1.0.6_white-web-sdk-esm@2.16.34 + '@netless/sync-player': 1.0.7_white-web-sdk-esm@2.16.34 flat-components: link:../flat-components hls.js: 1.2.3 polly-js: 1.8.3 side-effect-manager: 1.2.1 uuid: 8.3.2 devDependencies: - '@netless/fastboard': 1.0.0-canary.6_ubyj6piufzu7ykiacmzdszyuvu - '@netless/window-manager': 1.0.0-canary.52_white-web-sdk-esm@2.16.34 + '@netless/fastboard': 1.0.0-canary.7_ayu22vuam2jcfnyaaly7yhty7q + '@netless/window-manager': 1.0.0-canary.53_white-web-sdk-esm@2.16.34 mobx: 6.6.1 prettier: 2.6.2 react: 17.0.2 @@ -658,13 +658,13 @@ importers: service-providers/fastboard: specifiers: '@lukeed/uuid': ^2.0.0 - '@netless/fastboard': 1.0.0-canary.6 + '@netless/fastboard': 1.0.0-canary.7 '@netless/flat-i18n': workspace:* '@netless/flat-server-api': workspace:* '@netless/flat-service-provider-file-convert-netless': workspace:* '@netless/flat-services': workspace:* '@netless/white-snapshot': ^0.4.2 - '@netless/window-manager': 1.0.0-canary.52 + '@netless/window-manager': 1.0.0-canary.53 prettier: ^2.3.0 side-effect-manager: ^1.2.1 typescript: ^4.7.4 @@ -672,13 +672,13 @@ importers: white-web-sdk: npm:white-web-sdk-esm@2.16.34 dependencies: '@lukeed/uuid': 2.0.0 - '@netless/fastboard': 1.0.0-canary.6_ubyj6piufzu7ykiacmzdszyuvu + '@netless/fastboard': 1.0.0-canary.7_ayu22vuam2jcfnyaaly7yhty7q '@netless/flat-i18n': link:../../packages/flat-i18n '@netless/flat-server-api': link:../../packages/flat-server-api '@netless/flat-service-provider-file-convert-netless': link:../file-convert-netless '@netless/flat-services': link:../../packages/flat-services '@netless/white-snapshot': 0.4.2 - '@netless/window-manager': 1.0.0-canary.52_white-web-sdk-esm@2.16.34 + '@netless/window-manager': 1.0.0-canary.53_white-web-sdk-esm@2.16.34 side-effect-manager: 1.2.1 value-enhancer: 1.3.2 white-web-sdk: /white-web-sdk-esm/2.16.34 @@ -733,13 +733,13 @@ importers: service-providers/file-preview-netless-slide: specifiers: - '@netless/app-slide': 0.3.0-canary.7 + '@netless/app-slide': 0.3.0-canary.10 '@netless/flat-service-provider-file-convert-netless': workspace:* '@netless/flat-services': workspace:* prettier: ^2.3.0 typescript: ^4.7.4 dependencies: - '@netless/app-slide': 0.3.0-canary.7 + '@netless/app-slide': 0.3.0-canary.10 '@netless/flat-service-provider-file-convert-netless': link:../file-convert-netless '@netless/flat-services': link:../../packages/flat-services devDependencies: @@ -760,7 +760,7 @@ importers: '@netless/app-plyr': ^0.2.2 '@netless/app-quill': ^0.1.0 '@netless/app-selector': ^0.0.2 - '@netless/app-slide': 0.3.0-canary.7 + '@netless/app-slide': 0.3.0-canary.10 '@netless/combine-player': ^1.1.6 '@netless/flat-i18n': workspace:* '@netless/flat-pages': workspace:* @@ -823,7 +823,7 @@ importers: '@netless/app-plyr': 0.2.2 '@netless/app-quill': 0.1.0 '@netless/app-selector': 0.0.2 - '@netless/app-slide': 0.3.0-canary.7 + '@netless/app-slide': 0.3.0-canary.10 '@netless/combine-player': 1.1.6 '@netless/flat-i18n': link:../../packages/flat-i18n '@netless/flat-pages': link:../../packages/flat-pages @@ -3312,10 +3312,10 @@ packages: - ts-node dev: false - /@netless/app-slide/0.3.0-canary.7: - resolution: {integrity: sha512-k93RBwVnNHH6OdG5Q+6WKnxBcJm0WHJ4sQAZcgGBW4c87/TaZiE2h7NoEcG45Au+D+szos8TxjaLV/zM0mmKXg==} + /@netless/app-slide/0.3.0-canary.10: + resolution: {integrity: sha512-pE85t1X0NkbIggKOf3kGImiY6sJmHocefGnsfCurRSVyJtX8dtya4esaFYDGfjuP6bJ+saNm9SgsnTKAkQGW+A==} dependencies: - '@netless/slide': 0.5.13 + '@netless/slide': 0.6.5 /@netless/canvas-polyfill/0.0.4: resolution: {integrity: sha512-7NzsJrba0R/mq/l10SkIZQwbrNVJyPxZYrjK6xL3Ts732iWAVuS2UB0u3s6iGeUVcqV39A679yva8APWRl4M0A==} @@ -3336,35 +3336,35 @@ packages: - supports-color dev: true - /@netless/fastboard-core/1.0.0-canary.6_ubyj6piufzu7ykiacmzdszyuvu: - resolution: {integrity: sha512-lcPYhsFuHEPgi+nOHtqR0bX/nbAM3fKvJXgkBwh9ATstUArz15WOb/W7AwXGw/INze+tsRbIxnbA/5Y/z8hKvA==} + /@netless/fastboard-core/1.0.0-canary.7_ayu22vuam2jcfnyaaly7yhty7q: + resolution: {integrity: sha512-wblXojxoGw7QE+H+YkAoydm0zx7CQtp66EESx902g9e4skghP7V+RgeevrB0DdipPFHme/jolBbpSWa9i4qxww==} peerDependencies: '@netless/window-manager': '>=1.0.0-canary.0' white-web-sdk: '>=2.16.0' dependencies: '@lukeed/uuid': 2.0.0 '@netless/synced-store': 2.0.7_white-web-sdk-esm@2.16.34 - '@netless/window-manager': 1.0.0-canary.52_white-web-sdk-esm@2.16.34 + '@netless/window-manager': 1.0.0-canary.53_white-web-sdk-esm@2.16.34 white-web-sdk: /white-web-sdk-esm/2.16.34 - /@netless/fastboard-ui/1.0.0-canary.6_m23f4skpfoq3arppzbqjiodchi: - resolution: {integrity: sha512-yvAhixIuv5QrJ1w49iRNCXUm+bLCl9U2bEU5IaCiPDL0neuo8vLOONI96KBqxS9JQLQVwNtJ/ZCnfbIUVh1/1g==} + /@netless/fastboard-ui/1.0.0-canary.7_cdb3cxxszhadikmporkl6mi74y: + resolution: {integrity: sha512-fFDTCf//0RFrnwVtSNa0C2MgQihKU9Vl1F9jyO5/Azjiuzrw+mWIEMMW5tS/JkjToiujP1USZQOa2mP0T6dOfA==} peerDependencies: - '@netless/fastboard-core': 1.0.0-canary.6 + '@netless/fastboard-core': 1.0.0-canary.7 dependencies: - '@netless/fastboard-core': 1.0.0-canary.6_ubyj6piufzu7ykiacmzdszyuvu + '@netless/fastboard-core': 1.0.0-canary.7_ayu22vuam2jcfnyaaly7yhty7q tippy.js: 6.3.7 - /@netless/fastboard/1.0.0-canary.6_ubyj6piufzu7ykiacmzdszyuvu: - resolution: {integrity: sha512-w36BHxkkreCVztCirKRItaMtSy80aRLaE6ApYyVLvegyiopOa4LoY5GRkL117ySxnXLK+DGnAicgB7eFc9gEqA==} + /@netless/fastboard/1.0.0-canary.7_ayu22vuam2jcfnyaaly7yhty7q: + resolution: {integrity: sha512-1/veeLuG8/YO//pqb9LkEqMLBDKcy3j3iPS03dDB9neeZy5WxcGMjU8rbE98jW/JUb9lUpZxQlOTmIklg2MNUQ==} peerDependencies: '@netless/window-manager': '>=1.0.0-canary.0' white-web-sdk: '>=2.16.0' dependencies: - '@netless/app-slide': 0.3.0-canary.7 - '@netless/fastboard-core': 1.0.0-canary.6_ubyj6piufzu7ykiacmzdszyuvu - '@netless/fastboard-ui': 1.0.0-canary.6_m23f4skpfoq3arppzbqjiodchi - '@netless/window-manager': 1.0.0-canary.52_white-web-sdk-esm@2.16.34 + '@netless/app-slide': 0.3.0-canary.10 + '@netless/fastboard-core': 1.0.0-canary.7_ayu22vuam2jcfnyaaly7yhty7q + '@netless/fastboard-ui': 1.0.0-canary.7_cdb3cxxszhadikmporkl6mi74y + '@netless/window-manager': 1.0.0-canary.53_white-web-sdk-esm@2.16.34 white-web-sdk: /white-web-sdk-esm/2.16.34 /@netless/mini-svg-data-uri/0.0.1: @@ -3372,8 +3372,8 @@ packages: hasBin: true dev: true - /@netless/slide/0.5.13: - resolution: {integrity: sha512-Epb2WOtVwZLDbtGlWEinfHi74JdnrqcW3AwuoISYHzirCRwGgrqWqFYSb8IxMuUrBWCEvJ3I1WDAaDmzUD5YSg==} + /@netless/slide/0.6.5: + resolution: {integrity: sha512-HxoeX7pSUpQezdCy0SH7FkBOPdn9X6n2ESC4YuEe8u5bsBXMrjso+YxG/ljuc7bi72eKBw9CVwBaWrdYJ8dglw==} dependencies: '@juggle/resize-observer': 3.4.0 '@types/lodash': 4.14.182 @@ -3382,12 +3382,11 @@ packages: localforage: 1.10.0 lodash: 4.17.21 - /@netless/sync-player/1.0.6_white-web-sdk-esm@2.16.34: - resolution: {integrity: sha512-lyWeZOwuIOIRdHbPKM1dlvy4QSXOquYSO/vQZDEbkyRmJEtBptn7FS+sgKGWaSjKI+yol6XcAEpU7gWPrT/76w==} + /@netless/sync-player/1.0.7_white-web-sdk-esm@2.16.34: + resolution: {integrity: sha512-r4gnHRosOI95NYZwqSedDI8WR4m5mkuO8Ueq9blHOJ1ZjbeB8bMIdmZJ4nLcXKO/EhxEt8xlF8qJelOF7LCsrA==} peerDependencies: white-web-sdk: '>=2' dependencies: - '@babel/runtime': 7.18.9 eventemitter3: 4.0.7 side-effect-manager: 1.2.1 video.js: 7.20.2 @@ -3423,8 +3422,8 @@ packages: html2canvas: 1.4.1 dev: false - /@netless/window-manager/1.0.0-canary.52_white-web-sdk-esm@2.16.34: - resolution: {integrity: sha512-ksr+iy8BfIzVZON8kUniz5qA4AkRUoTIya0x8rZTHfRZ3kfeLPxOR3KCXjLNY3zRXtgEgPGBNcOuXMizhUDcug==} + /@netless/window-manager/1.0.0-canary.53_white-web-sdk-esm@2.16.34: + resolution: {integrity: sha512-5npiGhvXcPsHULOim2q10B3IqSev8+UcsY7zyPyMoiY2uY/BmJuF/Ps+oJvECpflwCb7DtTVSQgDZ7D+7HHqqQ==} peerDependencies: white-web-sdk: ^2.16.0 dependencies: