refactor(electron): typescript check on build scripts (#4650)

This commit is contained in:
Alex Yang 2023-10-18 01:13:47 -05:00 committed by GitHub
parent 9b3e6bf1f5
commit 524e48c8e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 226 additions and 311 deletions

View File

@ -213,8 +213,7 @@ jobs:
node-version: 18
- name: Generate Release yml
run: |
cp ./apps/electron/scripts/generate-yml.js .
node generate-yml.js
node ./apps/electron/scripts/generate-yml.js
env:
RELEASE_VERSION: ${{ needs.set-build-version.outputs.version }}
- name: Create Release Draft

View File

@ -366,8 +366,7 @@ jobs:
node-version: 18
- name: Generate Release yml
run: |
cp ./apps/electron/scripts/generate-yml.js .
node generate-yml.js
node ./apps/electron/scripts/generate-yml.js
env:
RELEASE_VERSION: ${{ github.event.inputs.version || needs.before-make.outputs.RELEASE_VERSION }}
- name: Create Release Draft

View File

@ -0,0 +1,13 @@
diff --git a/dist/util/forge-config.js b/dist/util/forge-config.js
index 3466ac1a340c8dfe5ea8997178961e8328457d68..cb83d7e9ee8b67896adda10dbdc0c7dae3a4004b 100644
--- a/dist/util/forge-config.js
+++ b/dist/util/forge-config.js
@@ -130,7 +130,7 @@ exports.default = async (dir) => {
try {
// The loaded "config" could potentially be a static forge config, ESM module or async function
// eslint-disable-next-line @typescript-eslint/no-var-requires
- const loaded = require(path_1.default.resolve(dir, forgeConfig));
+ const loaded = await import(path_1.default.resolve(dir, forgeConfig));
const maybeForgeConfig = 'default' in loaded ? loaded.default : loaded;
forgeConfig = typeof maybeForgeConfig === 'function' ? await maybeForgeConfig() : maybeForgeConfig;
}

View File

@ -1,23 +1,24 @@
/* eslint-disable @typescript-eslint/no-var-requires */
import cp from 'node:child_process';
import { rm, symlink } from 'node:fs/promises';
import path from 'node:path';
import { fileURLToPath } from 'node:url';
const path = require('node:path');
const { rm, symlink } = require('node:fs/promises');
import { utils } from '@electron-forge/core';
const {
utils: { fromBuildIdentifier },
} = require('@electron-forge/core');
const {
import {
arch,
buildType,
icnsPath,
icoPath,
iconPngPath,
iconUrl,
icoPath,
platform,
productName,
iconUrl,
} = require('./scripts/make-env');
} from './scripts/make-env.js';
const fromBuildIdentifier = utils.fromBuildIdentifier;
const __dirname = fileURLToPath(new URL('.', import.meta.url));
const makers = [
!process.env.SKIP_BUNDLE &&
platform === 'darwin' && {
@ -90,7 +91,7 @@ const makers = [
/**
* @type {import('@electron-forge/shared-types').ForgeConfig}
*/
module.exports = {
export default {
buildIdentifier: buildType,
packagerConfig: {
name: productName,
@ -147,8 +148,6 @@ module.exports = {
return;
}
const { $ } = await import('zx');
// TODO: right now we do not need the following
// it is for octobase-node, but we dont use it for now.
if (platform === 'darwin' && arch === 'arm64') {
@ -157,13 +156,17 @@ module.exports = {
process.env.TARGET = 'aarch64-apple-darwin';
}
if (platform === 'win32') {
$.shell = 'powershell.exe';
$.prefix = '';
}
// run yarn generate-assets
await $`yarn generate-assets`;
cp.spawnSync('yarn', ['generate-assets'], {
stdio: 'inherit',
env: {
...process.env,
NODE_OPTIONS: (process.env.NODE_OPTIONS ?? '').replace(
'--loader ts-node/esm',
''
),
},
cwd: __dirname,
});
},
},
};

View File

@ -2,23 +2,23 @@
"name": "@affine/electron",
"private": true,
"version": "0.10.0-canary.1",
"author": "affine",
"author": "toeverything",
"repository": {
"url": "https://github.com/toeverything/AFFiNE",
"type": "git"
},
"description": "AFFiNE App",
"description": "AFFiNE Desktop App",
"homepage": "https://github.com/toeverything/AFFiNE",
"scripts": {
"start": "electron .",
"dev": "yarn cross-env DEV_SERVER_URL=http://localhost:8080 node scripts/dev.mjs",
"dev:prod": "yarn node scripts/dev.mjs",
"build": "NODE_ENV=production zx scripts/build-layers.mjs",
"build:dev": "NODE_ENV=development zx scripts/build-layers.mjs",
"generate-assets": "zx scripts/generate-assets.mjs",
"dev": "DEV_SERVER_URL=http://localhost:8080 yarn ts-node ./scripts/dev.ts",
"dev:prod": "yarn ts-node scripts/dev.ts",
"build": "NODE_ENV=production ts-node scripts/build-layers.ts",
"build:dev": "NODE_ENV=development ts-node scripts/build-layers.ts",
"generate-assets": "ts-node scripts/generate-assets.ts",
"package": "electron-forge package",
"make": "electron-forge make",
"make-squirrel": "yarn ts-node-esm -T scripts/make-squirrel.mts"
"make": "NODE_OPTIONS=\"--loader ts-node/esm\" electron-forge make",
"make-squirrel": "yarn ts-node scripts/make-squirrel.ts"
},
"config": {
"forge": "./forge.config.js"
@ -51,7 +51,6 @@
"@toeverything/infra": "workspace:*",
"@types/uuid": "^9.0.5",
"builder-util-runtime": "^9.2.1",
"cross-env": "7.0.3",
"electron": "^27.0.0",
"electron-log": "^5.0.0-rc.1",
"electron-squirrel-startup": "1.0.0",
@ -69,8 +68,7 @@
"uuid": "^9.0.1",
"vitest": "0.34.6",
"which": "^4.0.0",
"zod": "^3.22.4",
"zx": "^7.2.3"
"zod": "^3.22.4"
},
"dependencies": {
"async-call-rpc": "^6.3.1",
@ -89,7 +87,6 @@
}
]
},
"stableVersion": "0.5.3",
"peerDependencies": {
"ts-node": "*"
}

View File

@ -1,23 +1,12 @@
#!/usr/bin/env zx
import 'zx/globals';
import * as esbuild from 'esbuild';
import { config } from './common.mjs';
const NODE_ENV =
process.env.NODE_ENV === 'development' ? 'development' : 'production';
if (process.platform === 'win32') {
$.shell = true;
$.prefix = '';
}
import { config, mode } from './common';
async function buildLayers() {
const common = config();
const define = {
'process.env.NODE_ENV': `"${NODE_ENV}"`,
const define: Record<string, string> = {
'process.env.NODE_ENV': `"${mode}"`,
'process.env.BUILD_TYPE': `"${process.env.BUILD_TYPE || 'stable'}"`,
};
@ -28,10 +17,10 @@ async function buildLayers() {
}
await esbuild.build({
...common.layers,
...common,
define: define,
});
}
await buildLayers();
echo('Build layers done');
console.log('Build layers done');

View File

@ -1,59 +0,0 @@
import { resolve } from 'node:path';
import { fileURLToPath } from 'url';
export const electronDir = fileURLToPath(new URL('..', import.meta.url));
export const rootDir = resolve(electronDir, '..', '..');
export const NODE_MAJOR_VERSION = 18;
// hard-coded for now:
// fixme(xp): report error if app is not running on DEV_SERVER_URL
const DEV_SERVER_URL = process.env.DEV_SERVER_URL;
/** @type 'production' | 'development'' */
const mode = (process.env.NODE_ENV = process.env.NODE_ENV || 'development');
/** @return {{layers: import('esbuild').BuildOptions}} */
export const config = () => {
const define = Object.fromEntries([
['process.env.NODE_ENV', `"${mode}"`],
['process.env.USE_WORKER', '"true"'],
]);
if (DEV_SERVER_URL) {
define['process.env.DEV_SERVER_URL'] = `"${DEV_SERVER_URL}"`;
}
return {
layers: {
entryPoints: [
resolve(electronDir, './src/main/index.ts'),
resolve(electronDir, './src/preload/index.ts'),
resolve(electronDir, './src/helper/index.ts'),
],
entryNames: '[dir]',
outdir: resolve(electronDir, './dist'),
bundle: true,
target: `node${NODE_MAJOR_VERSION}`,
platform: 'node',
external: [
'electron',
'electron-updater',
'@toeverything/plugin-infra',
'yjs',
'semver',
'tinykeys',
],
define: define,
format: 'cjs',
loader: {
'.node': 'copy',
},
assetNames: '[name]',
treeShaking: true,
sourcemap: 'linked',
},
};
};

View File

@ -0,0 +1,57 @@
import { resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
import type { BuildOptions } from 'esbuild';
export const electronDir = fileURLToPath(new URL('..', import.meta.url));
export const rootDir = resolve(electronDir, '..', '..');
export const NODE_MAJOR_VERSION = 18;
// hard-coded for now:
// fixme(xp): report error if app is not running on DEV_SERVER_URL
const DEV_SERVER_URL = process.env.DEV_SERVER_URL;
export const mode = (process.env.NODE_ENV =
process.env.NODE_ENV || 'development');
export const config = (): BuildOptions => {
const define = Object.fromEntries([
['process.env.NODE_ENV', `"${mode}"`],
['process.env.USE_WORKER', '"true"'],
]);
if (DEV_SERVER_URL) {
define['process.env.DEV_SERVER_URL'] = `"${DEV_SERVER_URL}"`;
}
return {
entryPoints: [
resolve(electronDir, './src/main/index.ts'),
resolve(electronDir, './src/preload/index.ts'),
resolve(electronDir, './src/helper/index.ts'),
],
entryNames: '[dir]',
outdir: resolve(electronDir, './dist'),
bundle: true,
target: `node${NODE_MAJOR_VERSION}`,
platform: 'node',
external: [
'electron',
'electron-updater',
'@toeverything/plugin-infra',
'yjs',
'semver',
'tinykeys',
],
define: define,
format: 'cjs',
loader: {
'.node': 'copy',
},
assetNames: '[name]',
treeShaking: true,
sourcemap: 'linked',
};
};

View File

@ -1,10 +1,11 @@
/* eslint-disable no-async-promise-executor */
import { spawn } from 'node:child_process';
import type { ChildProcessWithoutNullStreams } from 'child_process';
import electronPath from 'electron';
import * as esbuild from 'esbuild';
import { config } from './common.mjs';
import { config } from './common';
// this means we don't spawn electron windows, mainly for testing
const watchMode = process.argv.includes('--watch');
@ -17,8 +18,7 @@ const stderrFilterPatterns = [
/ExtensionLoadWarning/,
];
/** @type {ChildProcessWithoutNullStreams | null} */
let spawnProcess = null;
let spawnProcess: ChildProcessWithoutNullStreams | null = null;
function spawnOrReloadElectron() {
if (watchMode) {
@ -33,7 +33,7 @@ function spawnOrReloadElectron() {
spawnProcess = spawn(String(electronPath), ['.']);
spawnProcess.stdout.on('data', d => {
let str = d.toString().trim();
const str = d.toString().trim();
if (str) {
console.log(str);
}
@ -53,13 +53,13 @@ function spawnOrReloadElectron() {
const common = config();
async function watchLayers() {
return new Promise(async resolve => {
return new Promise<void>(async resolve => {
let initialBuild = false;
const buildContext = await esbuild.context({
...common.layers,
...common,
plugins: [
...(common.layers.plugins ?? []),
...(common.plugins ?? []),
{
name: 'electron-dev:reload-app-on-layers-change',
setup(build) {

View File

@ -1,10 +1,13 @@
#!/usr/bin/env zx
import 'zx/globals';
import { spawnSync } from 'node:child_process';
import { createRequire } from 'node:module';
import path from 'node:path';
import { fileURLToPath } from 'node:url';
import fs from 'fs-extra';
import { glob } from 'glob';
const require = createRequire(import.meta.url);
const __dirname = fileURLToPath(new URL('.', import.meta.url));
const repoRootDir = path.join(__dirname, '..', '..', '..');
const electronRootDir = path.join(__dirname, '..');
@ -32,24 +35,31 @@ if (releaseVersionEnv && electronPackageJson.version !== releaseVersionEnv) {
}
// copy web dist files to electron dist
if (process.platform === 'win32') {
$.shell = 'powershell.exe';
$.prefix = '';
}
process.env.DISTRIBUTION = 'desktop';
$.env.DISTRIBUTION = 'desktop';
cd(repoRootDir);
const cwd = repoRootDir;
if (!process.env.SKIP_PLUGIN_BUILD) {
await $`yarn -T run build:plugins`;
spawnSync('yarn', ['build:plugins'], {
stdio: 'inherit',
env: process.env,
cwd,
});
}
// step 1: build web (nextjs) dist
// step 1: build web dist
if (!process.env.SKIP_WEB_BUILD) {
await $`yarn nx build @affine/core`;
spawnSync('yarn', ['nx', 'build', '@affine/core'], {
stdio: 'inherit',
env: process.env,
cwd,
});
await $`yarn workspace @affine/electron build`;
spawnSync('yarn', ['workspace', '@affine/electron', 'build'], {
stdio: 'inherit',
env: process.env,
cwd,
});
// step 1.5: amend sourceMappingURL to allow debugging in devtools
await glob('**/*.{js,css}', { cwd: affineCoreOutDir }).then(files => {

View File

@ -1,9 +1,6 @@
// do not run in your local machine
/* eslint-disable */
const fs = require('node:fs');
const path = require('node:path');
const crypto = require('node:crypto');
/* eslint-enable */
import crypto from 'node:crypto';
import fs from 'node:fs';
import path from 'node:path';
const yml = {
version: process.env.RELEASE_VERSION ?? '0.0.0',
@ -12,9 +9,9 @@ const yml = {
const generateYml = platform => {
const regex = new RegExp(`^affine-.*-${platform}-.*.(exe|zip|dmg|AppImage)$`);
const files = fs.readdirSync(__dirname).filter(file => regex.test(file));
const files = fs.readdirSync(process.cwd()).filter(file => regex.test(file));
files.forEach(fileName => {
const filePath = path.join(__dirname, './', fileName);
const filePath = path.join(process.cwd(), './', fileName);
try {
const fileData = fs.readFileSync(filePath);
const hash = crypto
@ -54,5 +51,6 @@ const generateYml = platform => {
fs.writeFileSync(fileName, ymlStr);
};
generateYml('windows');
generateYml('macos');

View File

@ -1,11 +1,12 @@
/* eslint-disable @typescript-eslint/no-var-requires */
import path from 'node:path';
import { fileURLToPath } from 'node:url';
const { z } = require('zod');
const path = require('node:path');
import { z } from 'zod';
const ReleaseTypeSchema = z.enum(['stable', 'beta', 'canary', 'internal']);
const __dirname = fileURLToPath(new URL('.', import.meta.url));
const ROOT = path.resolve(__dirname, '..');
const envBuildType = (process.env.BUILD_TYPE || 'canary').trim().toLowerCase();
@ -39,15 +40,15 @@ const platform =
? process.argv[process.argv.indexOf('--platform') + 1]
: process.platform;
module.exports = {
ROOT,
export {
arch,
buildType,
productName,
icoPath,
icnsPath,
iconPngPath,
iconUrl,
arch,
icoPath,
platform,
productName,
ROOT,
stableBuild,
};

View File

@ -11,7 +11,7 @@ import {
platform,
productName,
ROOT,
} from './make-env';
} from './make-env.js';
async function ensureDirectory(dir: string) {
if (await fs.pathExists(dir)) {

View File

@ -0,0 +1,3 @@
{
"type": "module"
}

View File

@ -9,7 +9,16 @@
"allowSyntheticDefaultImports": true,
"noEmit": false,
"outDir": "./lib/scripts",
"types": ["node"],
"allowJs": true
},
"include": ["./scripts", "esbuild.main.config.ts", "esbuild.plugin.config.ts"]
"include": [
"./scripts",
"esbuild.main.config.ts",
"esbuild.plugin.config.ts"
],
"ts-node": {
"esm": true,
"experimentalSpecifierResolution": "node"
}
}

View File

@ -180,6 +180,8 @@
"unbox-primitive": "npm:@nolyfill/unbox-primitive@latest",
"which-boxed-primitive": "npm:@nolyfill/which-boxed-primitive@latest",
"which-typed-array": "npm:@nolyfill/which-typed-array@latest",
"next-auth@^4.23.2": "patch:next-auth@npm%3A4.23.2#./.yarn/patches/next-auth-npm-4.23.2-5f0e551bc7.patch"
"next-auth@^4.23.2": "patch:next-auth@npm%3A4.23.2#./.yarn/patches/next-auth-npm-4.23.2-5f0e551bc7.patch",
"@electron-forge/core@^6.4.2": "patch:@electron-forge/core@npm%3A6.4.2#./.yarn/patches/@electron-forge-core-npm-6.4.2-ab60c87e75.patch",
"@electron-forge/core@6.4.2": "patch:@electron-forge/core@npm%3A6.4.2#./.yarn/patches/@electron-forge-core-npm-6.4.2-ab60c87e75.patch"
}
}

208
yarn.lock
View File

@ -413,7 +413,6 @@ __metadata:
"@types/uuid": ^9.0.5
async-call-rpc: ^6.3.1
builder-util-runtime: ^9.2.1
cross-env: 7.0.3
electron: ^27.0.0
electron-log: ^5.0.0-rc.1
electron-squirrel-startup: 1.0.0
@ -436,7 +435,6 @@ __metadata:
which: ^4.0.0
yjs: ^13.6.8
zod: ^3.22.4
zx: ^7.2.3
peerDependencies:
ts-node: "*"
languageName: unknown
@ -3998,7 +3996,7 @@ __metadata:
languageName: node
linkType: hard
"@electron-forge/core@npm:6.4.2, @electron-forge/core@npm:^6.4.2":
"@electron-forge/core@npm:6.4.2":
version: 6.4.2
resolution: "@electron-forge/core@npm:6.4.2"
dependencies:
@ -4040,6 +4038,48 @@ __metadata:
languageName: node
linkType: hard
"@electron-forge/core@patch:@electron-forge/core@npm%3A6.4.2#./.yarn/patches/@electron-forge-core-npm-6.4.2-ab60c87e75.patch::locator=%40affine%2Fmonorepo%40workspace%3A.":
version: 6.4.2
resolution: "@electron-forge/core@patch:@electron-forge/core@npm%3A6.4.2#./.yarn/patches/@electron-forge-core-npm-6.4.2-ab60c87e75.patch::version=6.4.2&hash=792119&locator=%40affine%2Fmonorepo%40workspace%3A."
dependencies:
"@electron-forge/core-utils": 6.4.2
"@electron-forge/maker-base": 6.4.2
"@electron-forge/plugin-base": 6.4.2
"@electron-forge/publisher-base": 6.4.2
"@electron-forge/shared-types": 6.4.2
"@electron-forge/template-base": 6.4.2
"@electron-forge/template-vite": 6.4.2
"@electron-forge/template-vite-typescript": 6.4.2
"@electron-forge/template-webpack": 6.4.2
"@electron-forge/template-webpack-typescript": 6.4.2
"@electron/get": ^2.0.0
"@electron/rebuild": ^3.2.10
"@malept/cross-spawn-promise": ^2.0.0
chalk: ^4.0.0
debug: ^4.3.1
electron-packager: ^17.1.2
fast-glob: ^3.2.7
filenamify: ^4.1.0
find-up: ^5.0.0
fs-extra: ^10.0.0
got: ^11.8.5
interpret: ^3.1.1
listr2: ^5.0.3
lodash: ^4.17.20
log-symbols: ^4.0.0
node-fetch: ^2.6.7
progress: ^2.0.3
rechoir: ^0.8.0
resolve-package: ^1.0.1
semver: ^7.2.1
source-map-support: ^0.5.13
sudo-prompt: ^9.1.1
username: ^5.1.0
yarn-or-npm: ^3.0.1
checksum: 72a0a74b0f84b848e4aa1423757a8cc5234ce45963dd6aaed92878f29234894e8d97d8270bd21d6ceedba44447409c85394f7fb75d8e239a2abe704f9f0eb214
languageName: node
linkType: hard
"@electron-forge/maker-base@npm:6.4.2, @electron-forge/maker-base@npm:^6.0.4":
version: 6.4.2
resolution: "@electron-forge/maker-base@npm:6.4.2"
@ -12887,7 +12927,7 @@ __metadata:
languageName: node
linkType: hard
"@types/fs-extra@npm:^11.0.1, @types/fs-extra@npm:^11.0.2":
"@types/fs-extra@npm:^11.0.2":
version: 11.0.2
resolution: "@types/fs-extra@npm:11.0.2"
dependencies:
@ -13197,7 +13237,7 @@ __metadata:
languageName: node
linkType: hard
"@types/minimist@npm:^1.2.0, @types/minimist@npm:^1.2.2":
"@types/minimist@npm:^1.2.0":
version: 1.2.3
resolution: "@types/minimist@npm:1.2.3"
checksum: 666ea4f8c39dcbdfbc3171fe6b3902157c845cc9cb8cee33c10deb706cda5e0cc80f98ace2d6d29f6774b0dc21180c96cd73c592a1cbefe04777247c7ba0e84b
@ -13244,7 +13284,7 @@ __metadata:
languageName: node
linkType: hard
"@types/node@npm:^18.11.18, @types/node@npm:^18.16.3, @types/node@npm:^18.18.5":
"@types/node@npm:^18.11.18, @types/node@npm:^18.18.5":
version: 18.18.5
resolution: "@types/node@npm:18.18.5"
checksum: fc8c9b2bf226270cf9085a7dac76ce09dd7c3519ec9b687ee2b50385954ab3709c45ca82d002d1536e24286803cd194d7ab7008acebdcd6681b8b19d4277fa5c
@ -13327,13 +13367,6 @@ __metadata:
languageName: node
linkType: hard
"@types/ps-tree@npm:^1.1.2":
version: 1.1.3
resolution: "@types/ps-tree@npm:1.1.3"
checksum: 39910838a103223a004bbd1306f9e6ab716b7df656a814bf555310ab7f6f7059fcdd4453064104b6a03b536e2c433100494328cf150d5e33379a968212ac654e
languageName: node
linkType: hard
"@types/qs@npm:*, @types/qs@npm:^6.9.5":
version: 6.9.8
resolution: "@types/qs@npm:6.9.8"
@ -13576,13 +13609,6 @@ __metadata:
languageName: node
linkType: hard
"@types/which@npm:^3.0.0":
version: 3.0.0
resolution: "@types/which@npm:3.0.0"
checksum: 0dccb4b39b19dbf24e45461da581e1e6329ca06f28e467348d982d57ce4da342762c6594d3aa759682d26b9238e0a05938eb64221e7420ea890a1aaca22c2fca
languageName: node
linkType: hard
"@types/ws@npm:^8.0.0, @types/ws@npm:^8.5.5, @types/ws@npm:^8.5.7":
version: 8.5.7
resolution: "@types/ws@npm:8.5.7"
@ -17450,7 +17476,7 @@ __metadata:
languageName: node
linkType: hard
"cross-env@npm:7.0.3, cross-env@npm:^7.0.3":
"cross-env@npm:^7.0.3":
version: 7.0.3
resolution: "cross-env@npm:7.0.3"
dependencies:
@ -18672,7 +18698,7 @@ __metadata:
languageName: node
linkType: hard
"duplexer@npm:^0.1.1, duplexer@npm:~0.1.1":
"duplexer@npm:^0.1.1":
version: 0.1.2
resolution: "duplexer@npm:0.1.2"
checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0
@ -19910,21 +19936,6 @@ __metadata:
languageName: node
linkType: hard
"event-stream@npm:=3.3.4":
version: 3.3.4
resolution: "event-stream@npm:3.3.4"
dependencies:
duplexer: ~0.1.1
from: ~0
map-stream: ~0.1.0
pause-stream: 0.0.11
split: 0.3
stream-combiner: ~0.0.4
through: ~2.3.1
checksum: 80b467820b6daf824d9fb4345d2daf115a056e5c104463f2e98534e92d196a27f2df5ea2aa085624db26f4c45698905499e881d13bc7c01f7a13eac85be72a22
languageName: node
linkType: hard
"event-target-shim@npm:^5.0.0":
version: 5.0.1
resolution: "event-target-shim@npm:5.0.1"
@ -20826,13 +20837,6 @@ __metadata:
languageName: node
linkType: hard
"from@npm:~0":
version: 0.1.7
resolution: "from@npm:0.1.7"
checksum: b85125b7890489656eb2e4f208f7654a93ec26e3aefaf3bbbcc0d496fc1941e4405834fcc9fe7333192aa2187905510ace70417bbf9ac6f6f4784a731d986939
languageName: node
linkType: hard
"fromentries@npm:^1.2.0, fromentries@npm:^1.3.2":
version: 1.3.2
resolution: "fromentries@npm:1.3.2"
@ -20994,15 +20998,6 @@ __metadata:
languageName: node
linkType: hard
"fx@npm:*":
version: 30.2.0
resolution: "fx@npm:30.2.0"
bin:
fx: index.js
checksum: 55ed5ddbd1e3f411bb5af1cb115c19a185c0bc51aa4ec232bacf31d34d8b5c97a61b0e6baea37b087b24312b5be0011ab8e0688562758e182b1a5553896c6399
languageName: node
linkType: hard
"galactus@npm:^1.0.0":
version: 1.0.0
resolution: "galactus@npm:1.0.0"
@ -25592,13 +25587,6 @@ __metadata:
languageName: node
linkType: hard
"map-stream@npm:~0.1.0":
version: 0.1.0
resolution: "map-stream@npm:0.1.0"
checksum: 38abbe4eb883888031e6b2fc0630bc583c99396be16b8ace5794b937b682a8a081f03e8b15bfd4914d1bc88318f0e9ac73ba3512ae65955cd449f63256ddb31d
languageName: node
linkType: hard
"markdown-to-jsx@npm:^7.1.8":
version: 7.3.2
resolution: "markdown-to-jsx@npm:7.3.2"
@ -26049,7 +26037,7 @@ __metadata:
languageName: node
linkType: hard
"minimist@npm:^1.1.0, minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6, minimist@npm:^1.2.7, minimist@npm:^1.2.8, minimist@npm:~1.2.5":
"minimist@npm:^1.1.0, minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6, minimist@npm:^1.2.7, minimist@npm:~1.2.5":
version: 1.2.8
resolution: "minimist@npm:1.2.8"
checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0
@ -26630,17 +26618,6 @@ __metadata:
languageName: node
linkType: hard
"node-fetch@npm:3.3.1":
version: 3.3.1
resolution: "node-fetch@npm:3.3.1"
dependencies:
data-uri-to-buffer: ^4.0.0
fetch-blob: ^3.1.4
formdata-polyfill: ^4.0.10
checksum: 62145fd3ba4770a76110bc31fdc0054ab2f5442b5ce96e9c4b39fc9e94a3d305560eec76e1165d9259eab866e02a8eecf9301062bb5dfc9f08a4d08b69d223dd
languageName: node
linkType: hard
"node-fetch@npm:^2, node-fetch@npm:^2.0.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.12, node-fetch@npm:^2.6.2, node-fetch@npm:^2.6.7, node-fetch@npm:^2.6.9":
version: 2.7.0
resolution: "node-fetch@npm:2.7.0"
@ -27915,15 +27892,6 @@ __metadata:
languageName: node
linkType: hard
"pause-stream@npm:0.0.11":
version: 0.0.11
resolution: "pause-stream@npm:0.0.11"
dependencies:
through: ~2.3
checksum: 3c4a14052a638b92e0c96eb00c0d7977df7f79ea28395250c525d197f1fc02d34ce1165d5362e2e6ebbb251524b94a76f3f0d4abc39ab8b016d97449fe15583c
languageName: node
linkType: hard
"pdf-lib@npm:^1.17.1":
version: 1.17.1
resolution: "pdf-lib@npm:1.17.1"
@ -28938,17 +28906,6 @@ __metadata:
languageName: node
linkType: hard
"ps-tree@npm:^1.2.0":
version: 1.2.0
resolution: "ps-tree@npm:1.2.0"
dependencies:
event-stream: =3.3.4
bin:
ps-tree: ./bin/ps-tree.js
checksum: e635dd00f53d30d31696cf5f95b3a8dbdf9b1aeb36d4391578ce8e8cd22949b7c5536c73b0dc18c78615ea3ddd4be96101166be59ca2e3e3cb1e2f79ba3c7f98
languageName: node
linkType: hard
"pstree.remy@npm:^1.1.8":
version: 1.1.8
resolution: "pstree.remy@npm:1.1.8"
@ -31257,15 +31214,6 @@ __metadata:
languageName: node
linkType: hard
"split@npm:0.3":
version: 0.3.3
resolution: "split@npm:0.3.3"
dependencies:
through: 2
checksum: 2e076634c9637cfdc54ab4387b6a243b8c33b360874a25adf6f327a5647f07cb3bf1c755d515248eb3afee4e382278d01f62c62d87263c118f28065b86f74f02
languageName: node
linkType: hard
"sponge-case@npm:^1.0.1":
version: 1.0.1
resolution: "sponge-case@npm:1.0.1"
@ -31435,15 +31383,6 @@ __metadata:
languageName: node
linkType: hard
"stream-combiner@npm:~0.0.4":
version: 0.0.4
resolution: "stream-combiner@npm:0.0.4"
dependencies:
duplexer: ~0.1.1
checksum: 844b622cfe8b9de45a6007404f613b60aaf85200ab9862299066204242f89a7c8033b1c356c998aa6cfc630f6cd9eba119ec1c6dc1f93e245982be4a847aee7d
languageName: node
linkType: hard
"stream-shift@npm:^1.0.0":
version: 1.0.1
resolution: "stream-shift@npm:1.0.1"
@ -32262,7 +32201,7 @@ __metadata:
languageName: node
linkType: hard
"through@npm:2, through@npm:>=2.2.7 <3, through@npm:^2.3.4, through@npm:^2.3.6, through@npm:^2.3.8, through@npm:~2.3, through@npm:~2.3.1":
"through@npm:>=2.2.7 <3, through@npm:^2.3.4, through@npm:^2.3.6, through@npm:^2.3.8":
version: 2.3.8
resolution: "through@npm:2.3.8"
checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd
@ -34025,15 +33964,6 @@ __metadata:
languageName: node
linkType: hard
"webpod@npm:^0":
version: 0.0.2
resolution: "webpod@npm:0.0.2"
bin:
webpod: dist/index.js
checksum: 3c6f7376cf06804a0b68adec3c33d1aceb9a1d13854beac542b95dcdb6f6cee34cd05fbd2228e01b67c2ce48673650296976dd694bd8d0ff10920a32dbe2e30a
languageName: node
linkType: hard
"websocket-driver@npm:>=0.5.1, websocket-driver@npm:^0.7.4":
version: 0.7.4
resolution: "websocket-driver@npm:0.7.4"
@ -34123,17 +34053,6 @@ __metadata:
languageName: node
linkType: hard
"which@npm:^3.0.0":
version: 3.0.1
resolution: "which@npm:3.0.1"
dependencies:
isexe: ^2.0.0
bin:
node-which: bin/which.js
checksum: adf720fe9d84be2d9190458194f814b5e9015ae4b88711b150f30d0f4d0b646544794b86f02c7ebeec1db2029bc3e83a7ff156f542d7521447e5496543e26890
languageName: node
linkType: hard
"which@npm:^4.0.0":
version: 4.0.0
resolution: "which@npm:4.0.0"
@ -34557,7 +34476,7 @@ __metadata:
languageName: node
linkType: hard
"yaml@npm:^2.2.1, yaml@npm:^2.2.2, yaml@npm:^2.3.1":
"yaml@npm:^2.2.1, yaml@npm:^2.3.1":
version: 2.3.3
resolution: "yaml@npm:2.3.3"
checksum: cdfd132e7e0259f948929efe8835923df05c013c273c02bb7a2de9b46ac3af53c2778a35b32c7c0f877cc355dc9340ed564018c0242bfbb1278c2a3e53a0e99e
@ -34733,28 +34652,3 @@ __metadata:
checksum: 80bfd7f8039b24fddeb0718a2ec7c02aa9856e4838d6aa4864335a047b6b37a3273b191ef335bf0b2002e5c514ef261ffcda5a589fb084a48c336ffc4cdbab7f
languageName: node
linkType: hard
"zx@npm:^7.2.3":
version: 7.2.3
resolution: "zx@npm:7.2.3"
dependencies:
"@types/fs-extra": ^11.0.1
"@types/minimist": ^1.2.2
"@types/node": ^18.16.3
"@types/ps-tree": ^1.1.2
"@types/which": ^3.0.0
chalk: ^5.2.0
fs-extra: ^11.1.1
fx: "*"
globby: ^13.1.4
minimist: ^1.2.8
node-fetch: 3.3.1
ps-tree: ^1.2.0
webpod: ^0
which: ^3.0.0
yaml: ^2.2.2
bin:
zx: build/cli.js
checksum: 33b05e26ec3a429de6ff8db759d7b7857b947f4845025416db410bedaa8e613608a6d1916f257e129625d0192b6ba43e482356c6844ff90d15b0fd06dd9b98d2
languageName: node
linkType: hard