@gtkx/cli 2.0.0-beta.7 → 2.0.0-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/deploy.d.ts +4 -0
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +6 -0
- package/dist/commands/deploy.js.map +1 -1
- package/dist/deploy/download.d.ts +7 -3
- package/dist/deploy/download.d.ts.map +1 -1
- package/dist/deploy/download.js +19 -15
- package/dist/deploy/download.js.map +1 -1
- package/dist/deploy/native-addon.d.ts +5 -0
- package/dist/deploy/native-addon.d.ts.map +1 -0
- package/dist/deploy/native-addon.js +134 -0
- package/dist/deploy/native-addon.js.map +1 -0
- package/dist/deploy/node-runtime/download.js +2 -2
- package/dist/deploy/node-runtime/download.js.map +1 -1
- package/dist/deploy/node-runtime/elf.d.ts +3 -1
- package/dist/deploy/node-runtime/elf.d.ts.map +1 -1
- package/dist/deploy/node-runtime/elf.js +3 -1
- package/dist/deploy/node-runtime/elf.js.map +1 -1
- package/dist/deploy/node-runtime/index.d.ts.map +1 -1
- package/dist/deploy/node-runtime/index.js +14 -2
- package/dist/deploy/node-runtime/index.js.map +1 -1
- package/dist/deploy/payload/stage.d.ts +2 -1
- package/dist/deploy/payload/stage.d.ts.map +1 -1
- package/dist/deploy/payload/stage.js +22 -2
- package/dist/deploy/payload/stage.js.map +1 -1
- package/dist/deploy/run-deploy.d.ts +1 -0
- package/dist/deploy/run-deploy.d.ts.map +1 -1
- package/dist/deploy/run-deploy.js +135 -79
- package/dist/deploy/run-deploy.js.map +1 -1
- package/dist/deploy/settings/arch.d.ts +9 -3
- package/dist/deploy/settings/arch.d.ts.map +1 -1
- package/dist/deploy/settings/arch.js +27 -6
- package/dist/deploy/settings/arch.js.map +1 -1
- package/dist/deploy/settings/index.d.ts +2 -1
- package/dist/deploy/settings/index.d.ts.map +1 -1
- package/dist/deploy/settings/index.js +2 -1
- package/dist/deploy/settings/index.js.map +1 -1
- package/dist/deploy/settings/paths.d.ts +2 -1
- package/dist/deploy/settings/paths.d.ts.map +1 -1
- package/dist/deploy/settings/paths.js +6 -5
- package/dist/deploy/settings/paths.js.map +1 -1
- package/dist/deploy/targets/appimage.d.ts.map +1 -1
- package/dist/deploy/targets/appimage.js +1 -0
- package/dist/deploy/targets/appimage.js.map +1 -1
- package/dist/deploy/targets/flatpak-pnpm.js +4 -4
- package/dist/deploy/targets/flatpak-pnpm.js.map +1 -1
- package/dist/deploy/targets/flatpak.d.ts.map +1 -1
- package/dist/deploy/targets/flatpak.js +1 -0
- package/dist/deploy/targets/flatpak.js.map +1 -1
- package/dist/deploy/targets/nfpm-target.d.ts.map +1 -1
- package/dist/deploy/targets/nfpm-target.js +1 -0
- package/dist/deploy/targets/nfpm-target.js.map +1 -1
- package/dist/deploy/types.d.ts +4 -2
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/deploy/types.js.map +1 -1
- package/dist/deploy/vendored/appimagetool.js +2 -2
- package/dist/deploy/vendored/appimagetool.js.map +1 -1
- package/dist/deploy/vendored/nfpm.js +1 -1
- package/dist/deploy/vendored/nfpm.js.map +1 -1
- package/dist/dev/font-dir.d.ts +1 -1
- package/dist/dev/font-dir.d.ts.map +1 -1
- package/dist/dev/font-dir.js +0 -3
- package/dist/dev/font-dir.js.map +1 -1
- package/dist/dev/runner.d.ts.map +1 -1
- package/dist/dev/runner.js +19 -6
- package/dist/dev/runner.js.map +1 -1
- package/dist/internal/font-staging.d.ts +5 -2
- package/dist/internal/font-staging.d.ts.map +1 -1
- package/dist/internal/font-staging.js +76 -27
- package/dist/internal/font-staging.js.map +1 -1
- package/dist/internal/source-imports.js +1 -1
- package/dist/internal/source-imports.js.map +1 -1
- package/dist/vite-plugins/font-worker-env.d.ts.map +1 -1
- package/dist/vite-plugins/font-worker-env.js +2 -5
- package/dist/vite-plugins/font-worker-env.js.map +1 -1
- package/dist/vite-plugins/font.d.ts.map +1 -1
- package/dist/vite-plugins/font.js +16 -4
- package/dist/vite-plugins/font.js.map +1 -1
- package/dist/vite-plugins/icons.js +2 -2
- package/dist/vite-plugins/icons.js.map +1 -1
- package/dist/vite-plugins/react-compiler.js +2 -2
- package/dist/vite-plugins/react-compiler.js.map +1 -1
- package/dist/vite-plugins/resources.js +2 -2
- package/dist/vite-plugins/resources.js.map +1 -1
- package/dist/vite-plugins/settings-worker-env.js +2 -2
- package/dist/vite-plugins/settings-worker-env.js.map +1 -1
- package/dist/vite-plugins/store-links.d.ts.map +1 -1
- package/dist/vite-plugins/store-links.js +2 -1
- package/dist/vite-plugins/store-links.js.map +1 -1
- package/dist/vite-plugins/undeclared-library.js +2 -2
- package/dist/vite-plugins/undeclared-library.js.map +1 -1
- package/package.json +13 -13
- package/src/commands/deploy.ts +6 -0
- package/src/deploy/download.ts +33 -17
- package/src/deploy/native-addon.ts +183 -0
- package/src/deploy/node-runtime/download.ts +2 -2
- package/src/deploy/node-runtime/elf.ts +4 -1
- package/src/deploy/node-runtime/index.ts +24 -4
- package/src/deploy/payload/stage.ts +34 -2
- package/src/deploy/run-deploy.ts +203 -93
- package/src/deploy/settings/arch.ts +40 -8
- package/src/deploy/settings/index.ts +4 -1
- package/src/deploy/settings/paths.ts +8 -6
- package/src/deploy/targets/appimage.ts +1 -0
- package/src/deploy/targets/flatpak-pnpm.ts +4 -4
- package/src/deploy/targets/flatpak.ts +1 -0
- package/src/deploy/targets/nfpm-target.ts +1 -0
- package/src/deploy/types.ts +4 -1
- package/src/deploy/vendored/appimagetool.ts +2 -2
- package/src/deploy/vendored/nfpm.ts +1 -1
- package/src/dev/font-dir.ts +1 -6
- package/src/dev/runner.ts +24 -6
- package/src/internal/font-staging.ts +99 -27
- package/src/internal/source-imports.ts +1 -1
- package/src/vite-plugins/font-worker-env.ts +2 -6
- package/src/vite-plugins/font.ts +21 -3
- package/src/vite-plugins/icons.ts +2 -2
- package/src/vite-plugins/react-compiler.ts +2 -2
- package/src/vite-plugins/resources.ts +2 -2
- package/src/vite-plugins/settings-worker-env.ts +2 -2
- package/src/vite-plugins/store-links.ts +2 -1
- package/src/vite-plugins/undeclared-library.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flatpak.js","sourceRoot":"","sources":["../../../src/deploy/targets/flatpak.ts"],"names":[],"mappings":"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","sourcesContent":["import { errorMessage, info, tryResolveExecutable } from \"@gtkx/utils\";\nimport { existsSync, mkdirSync, statSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { stringify } from \"yaml\";\nimport type { DeployArtifact, DeployManifest, DeployPayload, DeploySettings, DeployTarget } from \"../types.js\";\nimport { runCliTool } from \"../../internal/run-cli-tool.js\";\nimport { APPSTREAMCLI, DESKTOP_FILE_VALIDATE, FLATPAK, FLATPAK_BUILDER } from \"../tools.js\";\nimport { branchFor, renderFlatpakManifest } from \"./flatpak-manifest.js\";\nimport { detectPackageManager, generateNodeSources, pnpmPinFor } from \"./flatpak-sources.js\";\n\ntype BuilderInvocation = {\n tool: string;\n prefix: string[];\n};\n\nconst PREFIX = \"/app\";\nconst TARGET_DIR = \"flatpak\";\nconst FLATHUB_REPO = \"https://dl.flathub.org/repo/flathub.flatpakrepo\";\nconst BUILDER_REF = \"org.flatpak.Builder\";\n\nconst flatpakTarget: DeployTarget = {\n name: \"flatpak\",\n prefix: PREFIX,\n tools: [FLATPAK, FLATPAK_BUILDER, DESKTOP_FILE_VALIDATE, APPSTREAMCLI],\n render: (payload) => renderManifests(payload),\n pack: (payload) => Promise.try(() => packFlatpak(payload)),\n};\n\nconst flatpakDir = (settings: DeploySettings): string => join(settings.paths.targets, TARGET_DIR);\n\nconst manifestPathFor = (settings: DeploySettings): string =>\n join(flatpakDir(settings), `${settings.applicationId}.yml`);\n\nconst resolveBuilder = (): BuilderInvocation => {\n if (tryResolveExecutable(FLATPAK_BUILDER.command) !== undefined) {\n return { tool: FLATPAK_BUILDER.command, prefix: [] };\n }\n\n return { tool: FLATPAK.command, prefix: [\"run\", BUILDER_REF] };\n};\n\nconst isSourceMode = (settings: DeploySettings): boolean => settings.deploy.flatpak?.mode === \"source\";\n\nconst renderManifests = (payload: DeployPayload): DeployManifest[] => {\n const settings = payload.settings;\n\n if (isSourceMode(settings)) {\n const manager = detectPackageManager(settings);\n generateNodeSources(settings, manager, pnpmPinFor(settings, manager));\n }\n\n return [{\n path: manifestPathFor(settings),\n contents: stringify(renderFlatpakManifest(payload), { lineWidth: 0 }),\n }];\n};\n\nconst builderArgsFor = (settings: DeploySettings, dir: string): string[] => [\n \"--force-clean\",\n \"--user\",\n \"--install-deps-from=flathub\",\n `--default-branch=${branchFor(settings)}`,\n ...(settings.deploy.flatpak?.shouldUseRofilesFuse === false ? [\"--disable-rofiles-fuse\"] : []),\n `--state-dir=${join(dir, \"state\")}`,\n `--repo=${join(dir, \"repo\")}`,\n join(dir, \"build\"),\n manifestPathFor(settings),\n];\n\nconst buildFlatpak = (settings: DeploySettings): void => {\n const dir = flatpakDir(settings);\n const builder = resolveBuilder();\n info(\"flatpak: running flatpak-builder, this can take several minutes\");\n\n try {\n runCliTool({\n tool: builder.tool,\n args: [...builder.prefix, ...builderArgsFor(settings, dir)],\n target: \"the flatpak\",\n shouldStream: true,\n });\n } catch (error) {\n throw new Error(\n `${errorMessage(error)}\\n\\nIf it stopped at \"Failure spawning rofiles-fuse\", the build is running ` +\n \"somewhere FUSE is unavailable, such as a container. Set `deploy.flatpak.shouldUseRofilesFuse: false` \" +\n \"to build without it.\",\n { cause: error },\n );\n }\n};\n\nconst bundleArgsFor = (settings: DeploySettings, target: string): string[] => {\n const signing = settings.deploy.signing?.flatpak;\n const runtimeRepo = settings.deploy.flatpak?.runtimeRepo ?? FLATHUB_REPO;\n\n return [\n \"build-bundle\",\n join(flatpakDir(settings), \"repo\"),\n target,\n settings.applicationId,\n branchFor(settings),\n `--arch=${settings.arch.flatpak}`,\n `--runtime-repo=${runtimeRepo}`,\n ...(signing === undefined ? [] : [`--gpg-sign=${signing.gpgKeyId}`]),\n ...(signing?.gpgHomeDir === undefined ? [] : [`--gpg-homedir=${signing.gpgHomeDir}`]),\n ];\n};\n\nconst bundleFlatpak = (settings: DeploySettings): DeployArtifact => {\n const output = settings.paths.output;\n mkdirSync(output, { recursive: true });\n const version = settings.versions.packageVersion;\n const target = join(output, `${settings.applicationId}-${version}-${settings.arch.flatpak}.flatpak`);\n runCliTool({ tool: FLATPAK.command, args: bundleArgsFor(settings, target), target: \"the flatpak bundle\" });\n\n if (!existsSync(target)) {\n throw new Error(`flatpak build-bundle reported success but wrote no bundle at ${target}`);\n }\n\n return { path: target, size: statSync(target).size };\n};\n\nconst installFlatpak = (settings: DeploySettings): void => {\n runCliTool({\n tool: FLATPAK.command,\n args: [\"install\", \"--user\", \"--noninteractive\", \"--reinstall\", join(flatpakDir(settings), \"repo\"),\n settings.applicationId],\n target: \"the flatpak\",\n shouldStream: true,\n });\n};\n\nconst packFlatpak = (payload: DeployPayload): DeployArtifact[] => {\n const settings = payload.settings;\n buildFlatpak(settings);\n\n if (settings.deploy.flatpak?.shouldInstall === true) {\n installFlatpak(settings);\n }\n\n return settings.deploy.flatpak?.shouldEmitBundle === false ? [] : [bundleFlatpak(settings)];\n};\n\nexport { flatpakTarget };\n"]}
|
|
1
|
+
{"version":3,"file":"flatpak.js","sourceRoot":"","sources":["../../../src/deploy/targets/flatpak.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAO7F,MAAM,MAAM,GAAG,MAAM,CAAC;AACtB,MAAM,UAAU,GAAG,SAAS,CAAC;AAC7B,MAAM,YAAY,GAAG,iDAAiD,CAAC;AACvE,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAE1C,MAAM,aAAa,GAAiB;IAChC,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,YAAY,CAAC;IACtE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC;IAC7C,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;CAC7D,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,QAAwB,EAAU,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAElG,MAAM,eAAe,GAAG,CAAC,QAAwB,EAAU,EAAE,CACzD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,GAAG,QAAQ,CAAC,aAAa,MAAM,CAAC,CAAC;AAEhE,MAAM,cAAc,GAAG,GAAsB,EAAE;IAC3C,IAAI,oBAAoB,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;QAC9D,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACzD,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,QAAwB,EAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,KAAK,QAAQ,CAAC;AAEvG,MAAM,eAAe,GAAG,CAAC,OAAsB,EAAoB,EAAE;IACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAElC,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC/C,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,CAAC;YACJ,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC;YAC/B,QAAQ,EAAE,SAAS,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;SACxE,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,QAAwB,EAAE,GAAW,EAAY,EAAE,CAAC;IACxE,eAAe;IACf,QAAQ;IACR,6BAA6B;IAC7B,oBAAoB,SAAS,CAAC,QAAQ,CAAC,EAAE;IACzC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAoB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9F,eAAe,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE;IACnC,UAAU,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE;IAC7B,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,QAAQ,CAAC;CAC5B,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACpD,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,IAAI,CAAC,iEAAiE,CAAC,CAAC;IAExE,IAAI,CAAC;QACD,UAAU,CAAC;YACP,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC3D,MAAM,EAAE,aAAa;YACrB,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACX,GAAG,YAAY,CAAC,KAAK,CAAC,6EAA6E;YACnG,uGAAuG;YACvG,sBAAsB,EACtB,EAAE,KAAK,EAAE,KAAK,EAAE,CACnB,CAAC;IACN,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,QAAwB,EAAE,MAAc,EAAY,EAAE;IACzE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;IACjD,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,IAAI,YAAY,CAAC;IAEzE,OAAO;QACH,cAAc;QACd,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClC,MAAM;QACN,QAAQ,CAAC,aAAa;QACtB,SAAS,CAAC,QAAQ,CAAC;QACnB,UAAU,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE;QACjC,kBAAkB,WAAW,EAAE;QAC/B,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpE,GAAG,CAAC,OAAO,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;KACxF,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,QAAwB,EAAkB,EAAE;IAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;IACrC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,CAAC;IACrG,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAE3G,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,gEAAgE,MAAM,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACtD,UAAU,CAAC;QACP,IAAI,EAAE,OAAO,CAAC,OAAO;QACrB,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAC7F,QAAQ,CAAC,aAAa,CAAC;QAC3B,MAAM,EAAE,aAAa;QACrB,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,OAAsB,EAAoB,EAAE;IAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEvB,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,EAAE,CAAC;QAClD,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChG,CAAC,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC","sourcesContent":["import { errorMessage, info, tryResolveExecutable } from \"@gtkx/utils\";\nimport { existsSync, mkdirSync, statSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { stringify } from \"yaml\";\nimport type { DeployArtifact, DeployManifest, DeployPayload, DeploySettings, DeployTarget } from \"../types.js\";\nimport { runCliTool } from \"../../internal/run-cli-tool.js\";\nimport { APPSTREAMCLI, DESKTOP_FILE_VALIDATE, FLATPAK, FLATPAK_BUILDER } from \"../tools.js\";\nimport { branchFor, renderFlatpakManifest } from \"./flatpak-manifest.js\";\nimport { detectPackageManager, generateNodeSources, pnpmPinFor } from \"./flatpak-sources.js\";\n\ntype BuilderInvocation = {\n tool: string;\n prefix: string[];\n};\n\nconst PREFIX = \"/app\";\nconst TARGET_DIR = \"flatpak\";\nconst FLATHUB_REPO = \"https://dl.flathub.org/repo/flathub.flatpakrepo\";\nconst BUILDER_REF = \"org.flatpak.Builder\";\n\nconst flatpakTarget: DeployTarget = {\n name: \"flatpak\",\n prefix: PREFIX,\n isHostOnly: true,\n tools: [FLATPAK, FLATPAK_BUILDER, DESKTOP_FILE_VALIDATE, APPSTREAMCLI],\n render: (payload) => renderManifests(payload),\n pack: (payload) => Promise.try(() => packFlatpak(payload)),\n};\n\nconst flatpakDir = (settings: DeploySettings): string => join(settings.paths.targets, TARGET_DIR);\n\nconst manifestPathFor = (settings: DeploySettings): string =>\n join(flatpakDir(settings), `${settings.applicationId}.yml`);\n\nconst resolveBuilder = (): BuilderInvocation => {\n if (tryResolveExecutable(FLATPAK_BUILDER.command) !== undefined) {\n return { tool: FLATPAK_BUILDER.command, prefix: [] };\n }\n\n return { tool: FLATPAK.command, prefix: [\"run\", BUILDER_REF] };\n};\n\nconst isSourceMode = (settings: DeploySettings): boolean => settings.deploy.flatpak?.mode === \"source\";\n\nconst renderManifests = (payload: DeployPayload): DeployManifest[] => {\n const settings = payload.settings;\n\n if (isSourceMode(settings)) {\n const manager = detectPackageManager(settings);\n generateNodeSources(settings, manager, pnpmPinFor(settings, manager));\n }\n\n return [{\n path: manifestPathFor(settings),\n contents: stringify(renderFlatpakManifest(payload), { lineWidth: 0 }),\n }];\n};\n\nconst builderArgsFor = (settings: DeploySettings, dir: string): string[] => [\n \"--force-clean\",\n \"--user\",\n \"--install-deps-from=flathub\",\n `--default-branch=${branchFor(settings)}`,\n ...(settings.deploy.flatpak?.shouldUseRofilesFuse === false ? [\"--disable-rofiles-fuse\"] : []),\n `--state-dir=${join(dir, \"state\")}`,\n `--repo=${join(dir, \"repo\")}`,\n join(dir, \"build\"),\n manifestPathFor(settings),\n];\n\nconst buildFlatpak = (settings: DeploySettings): void => {\n const dir = flatpakDir(settings);\n const builder = resolveBuilder();\n info(\"flatpak: running flatpak-builder, this can take several minutes\");\n\n try {\n runCliTool({\n tool: builder.tool,\n args: [...builder.prefix, ...builderArgsFor(settings, dir)],\n target: \"the flatpak\",\n shouldStream: true,\n });\n } catch (error) {\n throw new Error(\n `${errorMessage(error)}\\n\\nIf it stopped at \"Failure spawning rofiles-fuse\", the build is running ` +\n \"somewhere FUSE is unavailable, such as a container. Set `deploy.flatpak.shouldUseRofilesFuse: false` \" +\n \"to build without it.\",\n { cause: error },\n );\n }\n};\n\nconst bundleArgsFor = (settings: DeploySettings, target: string): string[] => {\n const signing = settings.deploy.signing?.flatpak;\n const runtimeRepo = settings.deploy.flatpak?.runtimeRepo ?? FLATHUB_REPO;\n\n return [\n \"build-bundle\",\n join(flatpakDir(settings), \"repo\"),\n target,\n settings.applicationId,\n branchFor(settings),\n `--arch=${settings.arch.flatpak}`,\n `--runtime-repo=${runtimeRepo}`,\n ...(signing === undefined ? [] : [`--gpg-sign=${signing.gpgKeyId}`]),\n ...(signing?.gpgHomeDir === undefined ? [] : [`--gpg-homedir=${signing.gpgHomeDir}`]),\n ];\n};\n\nconst bundleFlatpak = (settings: DeploySettings): DeployArtifact => {\n const output = settings.paths.output;\n mkdirSync(output, { recursive: true });\n const version = settings.versions.packageVersion;\n const target = join(output, `${settings.applicationId}-${version}-${settings.arch.flatpak}.flatpak`);\n runCliTool({ tool: FLATPAK.command, args: bundleArgsFor(settings, target), target: \"the flatpak bundle\" });\n\n if (!existsSync(target)) {\n throw new Error(`flatpak build-bundle reported success but wrote no bundle at ${target}`);\n }\n\n return { path: target, size: statSync(target).size };\n};\n\nconst installFlatpak = (settings: DeploySettings): void => {\n runCliTool({\n tool: FLATPAK.command,\n args: [\"install\", \"--user\", \"--noninteractive\", \"--reinstall\", join(flatpakDir(settings), \"repo\"),\n settings.applicationId],\n target: \"the flatpak\",\n shouldStream: true,\n });\n};\n\nconst packFlatpak = (payload: DeployPayload): DeployArtifact[] => {\n const settings = payload.settings;\n buildFlatpak(settings);\n\n if (settings.deploy.flatpak?.shouldInstall === true) {\n installFlatpak(settings);\n }\n\n return settings.deploy.flatpak?.shouldEmitBundle === false ? [] : [bundleFlatpak(settings)];\n};\n\nexport { flatpakTarget };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nfpm-target.d.ts","sourceRoot":"","sources":["../../../src/deploy/targets/nfpm-target.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiD,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/F,OAAO,EAA0B,KAAK,YAAY,EAAoB,MAAM,mBAAmB,CAAC;AA2BhG,QAAA,MAAM,UAAU,GAAI,UAAU,YAAY,KAAG,
|
|
1
|
+
{"version":3,"file":"nfpm-target.d.ts","sourceRoot":"","sources":["../../../src/deploy/targets/nfpm-target.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiD,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/F,OAAO,EAA0B,KAAK,YAAY,EAAoB,MAAM,mBAAmB,CAAC;AA2BhG,QAAA,MAAM,UAAU,GAAI,UAAU,YAAY,KAAG,YAO3C,CAAC;AAEH,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -23,6 +23,7 @@ const packPackage = async (payload, packager) => [
|
|
|
23
23
|
const nfpmTarget = (packager) => ({
|
|
24
24
|
name: packager,
|
|
25
25
|
prefix: PREFIX,
|
|
26
|
+
isHostOnly: false,
|
|
26
27
|
tools: [TAR],
|
|
27
28
|
render: (payload) => renderManifests(payload, packager),
|
|
28
29
|
pack: (payload) => packPackage(payload, packager),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nfpm-target.js","sourceRoot":"","sources":["../../../src/deploy/targets/nfpm-target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAE,sBAAsB,EAAqB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,MAAM,iBAAiB,GAAG,WAAW,CAAC;AACtC,MAAM,MAAM,GAAG,MAAM,CAAC;AAEtB,MAAM,eAAe,GAAG,CAAC,OAAsB,EAAE,QAAsB,EAAU,EAAE,CAC/E,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AAEtE,MAAM,eAAe,GAAG,CAAC,OAAsB,EAAE,QAAsB,EAAoB,EAAE;IACzF,MAAM,YAAY,GAAG,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE/D,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,GAAG,QAAQ,8BAA8B,YAAY,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,CAAC;YACJ,IAAI,EAAE,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC;YACxC,QAAQ,EAAE,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;SAC3F,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,KAAK,EAAE,OAAsB,EAAE,QAAsB,EAA6B,EAAE,CAAC;IACrG,MAAM,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;CAC5E,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,QAAsB,EAAgB,EAAE,CAAC,CAAC;IAC1D,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,CAAC,GAAG,CAAC;IACZ,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC;IACvD,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC;CACpD,CAAC,CAAC;AAEH,OAAO,EAAE,UAAU,EAAE,CAAC","sourcesContent":["import { info } from \"@gtkx/utils\";\nimport { join } from \"node:path\";\nimport { stringify } from \"yaml\";\nimport type { DeployArtifact, DeployManifest, DeployPayload, DeployTarget } from \"../types.js\";\nimport { glibcMinimumForPackage, type NfpmPackager, renderNfpmConfig } from \"../nfpm/config.js\";\nimport { packWithNfpm } from \"../nfpm/pack.js\";\nimport { TAR } from \"../tools.js\";\n\nconst MANIFEST_FILENAME = \"nfpm.yaml\";\nconst PREFIX = \"/usr\";\n\nconst manifestPathFor = (payload: DeployPayload, packager: NfpmPackager): string =>\n join(payload.settings.paths.targets, packager, MANIFEST_FILENAME);\n\nconst renderManifests = (payload: DeployPayload, packager: NfpmPackager): DeployManifest[] => {\n const glibcMinimum = glibcMinimumForPackage(payload, packager);\n\n if (glibcMinimum !== null) {\n info(`${packager} package requires glibc >= ${glibcMinimum}`);\n }\n\n return [{\n path: manifestPathFor(payload, packager),\n contents: stringify(renderNfpmConfig(payload, packager, glibcMinimum), { lineWidth: 0 }),\n }];\n};\n\nconst packPackage = async (payload: DeployPayload, packager: NfpmPackager): Promise<DeployArtifact[]> => [\n await packWithNfpm(payload, packager, manifestPathFor(payload, packager)),\n];\n\nconst nfpmTarget = (packager: NfpmPackager): DeployTarget => ({\n name: packager,\n prefix: PREFIX,\n tools: [TAR],\n render: (payload) => renderManifests(payload, packager),\n pack: (payload) => packPackage(payload, packager),\n});\n\nexport { nfpmTarget };\n"]}
|
|
1
|
+
{"version":3,"file":"nfpm-target.js","sourceRoot":"","sources":["../../../src/deploy/targets/nfpm-target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAE,sBAAsB,EAAqB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,MAAM,iBAAiB,GAAG,WAAW,CAAC;AACtC,MAAM,MAAM,GAAG,MAAM,CAAC;AAEtB,MAAM,eAAe,GAAG,CAAC,OAAsB,EAAE,QAAsB,EAAU,EAAE,CAC/E,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AAEtE,MAAM,eAAe,GAAG,CAAC,OAAsB,EAAE,QAAsB,EAAoB,EAAE;IACzF,MAAM,YAAY,GAAG,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE/D,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,GAAG,QAAQ,8BAA8B,YAAY,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,CAAC;YACJ,IAAI,EAAE,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC;YACxC,QAAQ,EAAE,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;SAC3F,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,KAAK,EAAE,OAAsB,EAAE,QAAsB,EAA6B,EAAE,CAAC;IACrG,MAAM,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;CAC5E,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,QAAsB,EAAgB,EAAE,CAAC,CAAC;IAC1D,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,KAAK;IACjB,KAAK,EAAE,CAAC,GAAG,CAAC;IACZ,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC;IACvD,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC;CACpD,CAAC,CAAC;AAEH,OAAO,EAAE,UAAU,EAAE,CAAC","sourcesContent":["import { info } from \"@gtkx/utils\";\nimport { join } from \"node:path\";\nimport { stringify } from \"yaml\";\nimport type { DeployArtifact, DeployManifest, DeployPayload, DeployTarget } from \"../types.js\";\nimport { glibcMinimumForPackage, type NfpmPackager, renderNfpmConfig } from \"../nfpm/config.js\";\nimport { packWithNfpm } from \"../nfpm/pack.js\";\nimport { TAR } from \"../tools.js\";\n\nconst MANIFEST_FILENAME = \"nfpm.yaml\";\nconst PREFIX = \"/usr\";\n\nconst manifestPathFor = (payload: DeployPayload, packager: NfpmPackager): string =>\n join(payload.settings.paths.targets, packager, MANIFEST_FILENAME);\n\nconst renderManifests = (payload: DeployPayload, packager: NfpmPackager): DeployManifest[] => {\n const glibcMinimum = glibcMinimumForPackage(payload, packager);\n\n if (glibcMinimum !== null) {\n info(`${packager} package requires glibc >= ${glibcMinimum}`);\n }\n\n return [{\n path: manifestPathFor(payload, packager),\n contents: stringify(renderNfpmConfig(payload, packager, glibcMinimum), { lineWidth: 0 }),\n }];\n};\n\nconst packPackage = async (payload: DeployPayload, packager: NfpmPackager): Promise<DeployArtifact[]> => [\n await packWithNfpm(payload, packager, manifestPathFor(payload, packager)),\n];\n\nconst nfpmTarget = (packager: NfpmPackager): DeployTarget => ({\n name: packager,\n prefix: PREFIX,\n isHostOnly: false,\n tools: [TAR],\n render: (payload) => renderManifests(payload, packager),\n pack: (payload) => packPackage(payload, packager),\n});\n\nexport { nfpmTarget };\n"]}
|
package/dist/deploy/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Config } from "@gtkx/config";
|
|
2
2
|
import type { ResolvedApplicationIcon } from "../internal/icon-path.js";
|
|
3
3
|
type DeployConfig = NonNullable<Config["deploy"]>;
|
|
4
|
+
type DeployArchName = NonNullable<DeployConfig["architectures"]>[number];
|
|
4
5
|
type DeployTargetName = NonNullable<DeployConfig["targets"]>[number];
|
|
5
6
|
type PackageFamily = "arch" | "debian" | "fedora" | "suse" | "unknown";
|
|
6
7
|
type DeployTool = {
|
|
@@ -80,7 +81,7 @@ type DeployArch = {
|
|
|
80
81
|
rpm: string;
|
|
81
82
|
flatpak: string;
|
|
82
83
|
appimage: string;
|
|
83
|
-
node:
|
|
84
|
+
node: DeployArchName;
|
|
84
85
|
};
|
|
85
86
|
type DeployPaths = {
|
|
86
87
|
root: string;
|
|
@@ -153,9 +154,10 @@ type DeployArtifact = {
|
|
|
153
154
|
type DeployTarget = {
|
|
154
155
|
name: DeployTargetName;
|
|
155
156
|
prefix: string;
|
|
157
|
+
isHostOnly: boolean;
|
|
156
158
|
tools: DeployTool[];
|
|
157
159
|
render: (payload: DeployPayload) => DeployManifest[];
|
|
158
160
|
pack: (payload: DeployPayload, manifests: DeployManifest[]) => Promise<DeployArtifact[]>;
|
|
159
161
|
};
|
|
160
|
-
export type { DeployArch, DeployArtifact, DeployConfig, DeployDesktopAction, DeployDeveloper, DeployExtraFile, DeployFileAssociation, DeployManifest, DeployPaths, DeployPayload, DeployRelease, DeployScreenshot, DeploySettings, DeployTarget, DeployTargetName, DeployTool, DeployVersions, NodeRuntime, Notice, NoticeSection, PackageFamily, StagedFile, };
|
|
162
|
+
export type { DeployArch, DeployArchName, DeployArtifact, DeployConfig, DeployDesktopAction, DeployDeveloper, DeployExtraFile, DeployFileAssociation, DeployManifest, DeployPaths, DeployPayload, DeployRelease, DeployScreenshot, DeploySettings, DeployTarget, DeployTargetName, DeployTool, DeployVersions, NodeRuntime, Notice, NoticeSection, PackageFamily, StagedFile, };
|
|
161
163
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/deploy/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/deploy/types.ts"],"names":[],"mappings":"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"}
|
package/dist/deploy/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/deploy/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Config } from \"@gtkx/config\";\nimport type { ResolvedApplicationIcon } from \"../internal/icon-path.js\";\n\ntype DeployConfig = NonNullable<Config[\"deploy\"]>;\ntype DeployTargetName = NonNullable<DeployConfig[\"targets\"]>[number];\ntype PackageFamily = \"arch\" | \"debian\" | \"fedora\" | \"suse\" | \"unknown\";\n\ntype DeployTool = {\n command: string;\n purpose: string;\n isOptional: boolean;\n isPresent?: () => boolean;\n};\n\ntype StagedFile = {\n rel: string;\n abs: string;\n mode: number;\n};\n\ntype NodeRuntime = {\n path: string;\n licenseFile: string | null;\n version: string;\n glibcMinimum: string | null;\n isStripped: boolean;\n};\n\ntype Notice = {\n subject: string;\n license: string;\n source: string | null;\n copyright: string[];\n text: string | null;\n};\n\ntype NoticeSection = {\n title: string;\n files: string[];\n summary: string[];\n notices: Notice[];\n};\n\ntype DeployDeveloper = {\n id: string | null;\n name: string;\n email: string | null;\n};\n\ntype DeployScreenshot = {\n url: string;\n caption: string | null;\n isDefault: boolean;\n};\n\ntype DeployRelease = {\n version: string;\n date: string;\n type: string | null;\n urgency: string | null;\n notes: string[];\n url: string | null;\n};\n\ntype DeployFileAssociation = {\n extension: string;\n mimeType: string;\n description: string | null;\n};\n\ntype DeployExtraFile = {\n destination: string;\n source: string;\n mode: number | null;\n};\n\ntype DeployDesktopAction = {\n id: string;\n name: string;\n args: string[];\n icon: string | null;\n};\n\ntype DeployVersions = {\n upstream: string;\n packageVersion: string;\n debRevision: string;\n rpmRelease: string;\n epoch: number | null;\n};\n\ntype DeployArch = {\n deb: string;\n rpm: string;\n flatpak: string;\n appimage: string;\n node:
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/deploy/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Config } from \"@gtkx/config\";\nimport type { ResolvedApplicationIcon } from \"../internal/icon-path.js\";\n\ntype DeployConfig = NonNullable<Config[\"deploy\"]>;\ntype DeployArchName = NonNullable<DeployConfig[\"architectures\"]>[number];\ntype DeployTargetName = NonNullable<DeployConfig[\"targets\"]>[number];\ntype PackageFamily = \"arch\" | \"debian\" | \"fedora\" | \"suse\" | \"unknown\";\n\ntype DeployTool = {\n command: string;\n purpose: string;\n isOptional: boolean;\n isPresent?: () => boolean;\n};\n\ntype StagedFile = {\n rel: string;\n abs: string;\n mode: number;\n};\n\ntype NodeRuntime = {\n path: string;\n licenseFile: string | null;\n version: string;\n glibcMinimum: string | null;\n isStripped: boolean;\n};\n\ntype Notice = {\n subject: string;\n license: string;\n source: string | null;\n copyright: string[];\n text: string | null;\n};\n\ntype NoticeSection = {\n title: string;\n files: string[];\n summary: string[];\n notices: Notice[];\n};\n\ntype DeployDeveloper = {\n id: string | null;\n name: string;\n email: string | null;\n};\n\ntype DeployScreenshot = {\n url: string;\n caption: string | null;\n isDefault: boolean;\n};\n\ntype DeployRelease = {\n version: string;\n date: string;\n type: string | null;\n urgency: string | null;\n notes: string[];\n url: string | null;\n};\n\ntype DeployFileAssociation = {\n extension: string;\n mimeType: string;\n description: string | null;\n};\n\ntype DeployExtraFile = {\n destination: string;\n source: string;\n mode: number | null;\n};\n\ntype DeployDesktopAction = {\n id: string;\n name: string;\n args: string[];\n icon: string | null;\n};\n\ntype DeployVersions = {\n upstream: string;\n packageVersion: string;\n debRevision: string;\n rpmRelease: string;\n epoch: number | null;\n};\n\ntype DeployArch = {\n deb: string;\n rpm: string;\n flatpak: string;\n appimage: string;\n node: DeployArchName;\n};\n\ntype DeployPaths = {\n root: string;\n dist: string;\n outDir: string;\n metadata: string;\n runtime: string;\n stage: string;\n overlay: string;\n targets: string;\n output: string;\n applicationIcon: ResolvedApplicationIcon;\n licenseFile: string | null;\n schemaFiles: string[];\n};\n\ntype DeploySettings = {\n applicationId: string;\n configFile: string;\n binaryName: string;\n name: string;\n genericName: string | null;\n summary: string;\n description: string[];\n keywords: string[];\n categories: string[];\n mimeTypes: string[];\n developer: DeployDeveloper;\n license: string;\n metadataLicense: string;\n copyright: string;\n homepage: string | null;\n urls: Record<string, string>;\n screenshots: DeployScreenshot[];\n branding: { light: string; dark: string } | null;\n contentRating: Record<string, string>;\n releases: DeployRelease[];\n execArgs: string[];\n execToken: string | null;\n fileAssociations: DeployFileAssociation[];\n protocols: string[];\n desktopActions: DeployDesktopAction[];\n desktopEntry: Record<string, string>;\n isDbusActivatable: boolean;\n extraFiles: DeployExtraFile[];\n versions: DeployVersions;\n arch: DeployArch;\n paths: DeployPaths;\n libraries: string[];\n minimumLibraryVersions: Record<string, string>;\n deploy: DeployConfig;\n};\n\ntype DeployPayload = {\n settings: DeploySettings;\n node: NodeRuntime | null;\n stage: StagedFile[];\n notices: NoticeSection[];\n overlays: Record<DeployTargetName, StagedFile[]>;\n};\n\ntype DeployManifest = {\n path: string;\n contents: string;\n};\n\ntype DeployArtifact = {\n path: string;\n size: number;\n};\n\ntype DeployTarget = {\n name: DeployTargetName;\n prefix: string;\n isHostOnly: boolean;\n tools: DeployTool[];\n render: (payload: DeployPayload) => DeployManifest[];\n pack: (payload: DeployPayload, manifests: DeployManifest[]) => Promise<DeployArtifact[]>;\n};\n\nexport type {\n DeployArch,\n DeployArchName,\n DeployArtifact,\n DeployConfig,\n DeployDesktopAction,\n DeployDeveloper,\n DeployExtraFile,\n DeployFileAssociation,\n DeployManifest,\n DeployPaths,\n DeployPayload,\n DeployRelease,\n DeployScreenshot,\n DeploySettings,\n DeployTarget,\n DeployTargetName,\n DeployTool,\n DeployVersions,\n NodeRuntime,\n Notice,\n NoticeSection,\n PackageFamily,\n StagedFile,\n};\n"]}
|
|
@@ -26,14 +26,14 @@ const resolveAppimageTooling = async (arch) => {
|
|
|
26
26
|
url: `${APPIMAGETOOL_URL}/appimagetool-${arch}.AppImage`,
|
|
27
27
|
dest: join(dir, `appimagetool-${arch}`),
|
|
28
28
|
label: `appimagetool ${APPIMAGETOOL_VERSION}`,
|
|
29
|
-
|
|
29
|
+
digest: digestFor(APPIMAGETOOL_DIGESTS, arch, "appimagetool"),
|
|
30
30
|
mode: EXECUTABLE_MODE,
|
|
31
31
|
});
|
|
32
32
|
const runtime = await downloadFile({
|
|
33
33
|
url: `${RUNTIME_URL}/runtime-${arch}`,
|
|
34
34
|
dest: join(dir, `runtime-${arch}`),
|
|
35
35
|
label: `the AppImage runtime ${RUNTIME_VERSION}`,
|
|
36
|
-
|
|
36
|
+
digest: digestFor(RUNTIME_DIGESTS, arch, "the AppImage runtime"),
|
|
37
37
|
mode: EXECUTABLE_MODE,
|
|
38
38
|
});
|
|
39
39
|
return { tool, runtime };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appimagetool.js","sourceRoot":"","sources":["../../../src/deploy/vendored/appimagetool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAOxD,MAAM,oBAAoB,GAAG,OAAO,CAAC;AACrC,MAAM,eAAe,GAAG,UAAU,CAAC;AACnC,MAAM,gBAAgB,GAAG,8DAA8D,oBAAoB,EAAE,CAAC;AAC9G,MAAM,WAAW,GAAG,+DAA+D,eAAe,EAAE,CAAC;AACrG,MAAM,eAAe,GAAG,KAAK,CAAC;AAE9B,MAAM,oBAAoB,GAA2B;IACjD,OAAO,EAAE,kEAAkE;IAC3E,MAAM,EAAE,kEAAkE;CAC7E,CAAC;AAEF,MAAM,eAAe,GAA2B;IAC5C,OAAO,EAAE,kEAAkE;IAC3E,MAAM,EAAE,kEAAkE;CAC7E,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,OAA+B,EAAE,IAAY,EAAE,OAAe,EAAU,EAAE;IACzF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,4BAA4B,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,KAAK,EAAE,IAAY,EAA4B,EAAE;IAC5E,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,UAAU,EAAE,GAAG,oBAAoB,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC;IAEjF,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC;QAC5B,GAAG,EAAE,GAAG,gBAAgB,iBAAiB,IAAI,WAAW;QACxD,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,gBAAgB,IAAI,EAAE,CAAC;QACvC,KAAK,EAAE,gBAAgB,oBAAoB,EAAE;QAC7C,MAAM,EAAE,SAAS,CAAC,oBAAoB,EAAE,IAAI,EAAE,cAAc,CAAC;QAC7D,IAAI,EAAE,eAAe;KACxB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC;QAC/B,GAAG,EAAE,GAAG,WAAW,YAAY,IAAI,EAAE;QACrC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,IAAI,EAAE,CAAC;QAClC,KAAK,EAAE,wBAAwB,eAAe,EAAE;QAChD,MAAM,EAAE,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,sBAAsB,CAAC;QAChE,IAAI,EAAE,eAAe;KACxB,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,CAAC","sourcesContent":["import { join } from \"node:path\";\nimport { cacheDir, downloadFile } from \"../download.js\";\n\ntype AppimageTooling = {\n tool: string;\n runtime: string;\n};\n\nconst APPIMAGETOOL_VERSION = \"1.9.1\";\nconst RUNTIME_VERSION = \"20251108\";\nconst APPIMAGETOOL_URL = `https://github.com/AppImage/appimagetool/releases/download/${APPIMAGETOOL_VERSION}`;\nconst RUNTIME_URL = `https://github.com/AppImage/type2-runtime/releases/download/${RUNTIME_VERSION}`;\nconst EXECUTABLE_MODE = 0o755;\n\nconst APPIMAGETOOL_DIGESTS: Record<string, string> = {\n aarch64: \"f0837e7448a0c1e4e650a93bb3e85802546e60654ef287576f46c71c126a9158\",\n x86_64: \"ed4ce84f0d9caff66f50bcca6ff6f35aae54ce8135408b3fa33abfc3cb384eb0\",\n};\n\nconst RUNTIME_DIGESTS: Record<string, string> = {\n aarch64: \"00cbdfcf917cc6c0ff6d3347d59e0ca1f7f45a6df1a428a0d6d8a78664d87444\",\n x86_64: \"2fca8b443c92510f1483a883f60061ad09b46b978b2631c807cd873a47ec260d\",\n};\n\nconst digestFor = (digests: Record<string, string>, arch: string, subject: string): string => {\n const digest = digests[arch];\n\n if (digest === undefined) {\n throw new Error(`${subject} has no pinned build for ${arch}`);\n }\n\n return digest;\n};\n\nconst resolveAppimageTooling = async (arch: string): Promise<AppimageTooling> => {\n const dir = cacheDir([\"appimage\", `${APPIMAGETOOL_VERSION}-${RUNTIME_VERSION}`]);\n\n const tool = await downloadFile({\n url: `${APPIMAGETOOL_URL}/appimagetool-${arch}.AppImage`,\n dest: join(dir, `appimagetool-${arch}`),\n label: `appimagetool ${APPIMAGETOOL_VERSION}`,\n
|
|
1
|
+
{"version":3,"file":"appimagetool.js","sourceRoot":"","sources":["../../../src/deploy/vendored/appimagetool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAOxD,MAAM,oBAAoB,GAAG,OAAO,CAAC;AACrC,MAAM,eAAe,GAAG,UAAU,CAAC;AACnC,MAAM,gBAAgB,GAAG,8DAA8D,oBAAoB,EAAE,CAAC;AAC9G,MAAM,WAAW,GAAG,+DAA+D,eAAe,EAAE,CAAC;AACrG,MAAM,eAAe,GAAG,KAAK,CAAC;AAE9B,MAAM,oBAAoB,GAA2B;IACjD,OAAO,EAAE,kEAAkE;IAC3E,MAAM,EAAE,kEAAkE;CAC7E,CAAC;AAEF,MAAM,eAAe,GAA2B;IAC5C,OAAO,EAAE,kEAAkE;IAC3E,MAAM,EAAE,kEAAkE;CAC7E,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,OAA+B,EAAE,IAAY,EAAE,OAAe,EAAU,EAAE;IACzF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,4BAA4B,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,KAAK,EAAE,IAAY,EAA4B,EAAE;IAC5E,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,UAAU,EAAE,GAAG,oBAAoB,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC;IAEjF,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC;QAC5B,GAAG,EAAE,GAAG,gBAAgB,iBAAiB,IAAI,WAAW;QACxD,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,gBAAgB,IAAI,EAAE,CAAC;QACvC,KAAK,EAAE,gBAAgB,oBAAoB,EAAE;QAC7C,MAAM,EAAE,SAAS,CAAC,oBAAoB,EAAE,IAAI,EAAE,cAAc,CAAC;QAC7D,IAAI,EAAE,eAAe;KACxB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC;QAC/B,GAAG,EAAE,GAAG,WAAW,YAAY,IAAI,EAAE;QACrC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,IAAI,EAAE,CAAC;QAClC,KAAK,EAAE,wBAAwB,eAAe,EAAE;QAChD,MAAM,EAAE,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,sBAAsB,CAAC;QAChE,IAAI,EAAE,eAAe;KACxB,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,CAAC","sourcesContent":["import { join } from \"node:path\";\nimport { cacheDir, downloadFile } from \"../download.js\";\n\ntype AppimageTooling = {\n tool: string;\n runtime: string;\n};\n\nconst APPIMAGETOOL_VERSION = \"1.9.1\";\nconst RUNTIME_VERSION = \"20251108\";\nconst APPIMAGETOOL_URL = `https://github.com/AppImage/appimagetool/releases/download/${APPIMAGETOOL_VERSION}`;\nconst RUNTIME_URL = `https://github.com/AppImage/type2-runtime/releases/download/${RUNTIME_VERSION}`;\nconst EXECUTABLE_MODE = 0o755;\n\nconst APPIMAGETOOL_DIGESTS: Record<string, string> = {\n aarch64: \"f0837e7448a0c1e4e650a93bb3e85802546e60654ef287576f46c71c126a9158\",\n x86_64: \"ed4ce84f0d9caff66f50bcca6ff6f35aae54ce8135408b3fa33abfc3cb384eb0\",\n};\n\nconst RUNTIME_DIGESTS: Record<string, string> = {\n aarch64: \"00cbdfcf917cc6c0ff6d3347d59e0ca1f7f45a6df1a428a0d6d8a78664d87444\",\n x86_64: \"2fca8b443c92510f1483a883f60061ad09b46b978b2631c807cd873a47ec260d\",\n};\n\nconst digestFor = (digests: Record<string, string>, arch: string, subject: string): string => {\n const digest = digests[arch];\n\n if (digest === undefined) {\n throw new Error(`${subject} has no pinned build for ${arch}`);\n }\n\n return digest;\n};\n\nconst resolveAppimageTooling = async (arch: string): Promise<AppimageTooling> => {\n const dir = cacheDir([\"appimage\", `${APPIMAGETOOL_VERSION}-${RUNTIME_VERSION}`]);\n\n const tool = await downloadFile({\n url: `${APPIMAGETOOL_URL}/appimagetool-${arch}.AppImage`,\n dest: join(dir, `appimagetool-${arch}`),\n label: `appimagetool ${APPIMAGETOOL_VERSION}`,\n digest: digestFor(APPIMAGETOOL_DIGESTS, arch, \"appimagetool\"),\n mode: EXECUTABLE_MODE,\n });\n\n const runtime = await downloadFile({\n url: `${RUNTIME_URL}/runtime-${arch}`,\n dest: join(dir, `runtime-${arch}`),\n label: `the AppImage runtime ${RUNTIME_VERSION}`,\n digest: digestFor(RUNTIME_DIGESTS, arch, \"the AppImage runtime\"),\n mode: EXECUTABLE_MODE,\n });\n\n return { tool, runtime };\n};\n\nexport { resolveAppimageTooling };\n"]}
|
|
@@ -43,7 +43,7 @@ const downloadNfpm = async (dir, binary) => {
|
|
|
43
43
|
url: `${NFPM_BASE_URL}/${assetName}`,
|
|
44
44
|
dest: join(dir, assetName),
|
|
45
45
|
label: `nfpm ${NFPM_VERSION}`,
|
|
46
|
-
|
|
46
|
+
digest: digestFor(process.arch),
|
|
47
47
|
});
|
|
48
48
|
extractNfpm(archive, binary);
|
|
49
49
|
return binary;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nfpm.js","sourceRoot":"","sources":["../../../src/deploy/vendored/nfpm.ts"],"names":[],"mappings":"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","sourcesContent":["import { mkdtempSync, renameSync, rmSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { runCliTool } from \"../../internal/run-cli-tool.js\";\nimport { cacheDir, downloadFile } from \"../download.js\";\n\nconst NFPM_VERSION = \"2.47.0\";\nconst NFPM_BASE_URL = `https://github.com/goreleaser/nfpm/releases/download/v${NFPM_VERSION}`;\n\nconst NFPM_ASSET_ARCH: Record<string, string> = {\n arm64: \"arm64\",\n x64: \"x86_64\",\n};\n\nconst NFPM_DIGESTS: Record<string, string> = {\n arm64: \"1c0f5f2999b9a974bfb04fdb0cc3306096de530ac5dbb25d739cc5f5219c919c\",\n x86_64: \"0660ca602b2d2d2ae4781a06c692b3eeb9d437ffea05b831d76e41f4a3188783\",\n};\n\nconst assetArchFor = (arch: string): string => {\n const assetArch = NFPM_ASSET_ARCH[arch];\n\n if (assetArch === undefined) {\n throw new Error(`nfpm has no Linux build for ${arch}`);\n }\n\n return assetArch;\n};\n\nconst assetNameFor = (arch: string): string => `nfpm_${NFPM_VERSION}_Linux_${assetArchFor(arch)}.tar.gz`;\n\nconst digestFor = (arch: string): string => {\n const digest = NFPM_DIGESTS[assetArchFor(arch)];\n\n if (digest === undefined) {\n throw new Error(`nfpm ${NFPM_VERSION} has no pinned digest for ${arch}`);\n }\n\n return digest;\n};\n\nconst extractNfpm = (archive: string, binary: string): void => {\n const dir = mkdtempSync(`${binary}-`);\n\n try {\n runCliTool({ tool: \"tar\", args: [\"-xzf\", archive, \"-C\", dir, \"nfpm\"], target: assetNameFor(process.arch) });\n renameSync(join(dir, \"nfpm\"), binary);\n } finally {\n rmSync(dir, { recursive: true, force: true, maxRetries: 5 });\n }\n};\n\nconst downloadNfpm = async (dir: string, binary: string): Promise<string> => {\n const assetName = assetNameFor(process.arch);\n\n const archive = await downloadFile({\n url: `${NFPM_BASE_URL}/${assetName}`,\n dest: join(dir, assetName),\n label: `nfpm ${NFPM_VERSION}`,\n
|
|
1
|
+
{"version":3,"file":"nfpm.js","sourceRoot":"","sources":["../../../src/deploy/vendored/nfpm.ts"],"names":[],"mappings":"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","sourcesContent":["import { mkdtempSync, renameSync, rmSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { runCliTool } from \"../../internal/run-cli-tool.js\";\nimport { cacheDir, downloadFile } from \"../download.js\";\n\nconst NFPM_VERSION = \"2.47.0\";\nconst NFPM_BASE_URL = `https://github.com/goreleaser/nfpm/releases/download/v${NFPM_VERSION}`;\n\nconst NFPM_ASSET_ARCH: Record<string, string> = {\n arm64: \"arm64\",\n x64: \"x86_64\",\n};\n\nconst NFPM_DIGESTS: Record<string, string> = {\n arm64: \"1c0f5f2999b9a974bfb04fdb0cc3306096de530ac5dbb25d739cc5f5219c919c\",\n x86_64: \"0660ca602b2d2d2ae4781a06c692b3eeb9d437ffea05b831d76e41f4a3188783\",\n};\n\nconst assetArchFor = (arch: string): string => {\n const assetArch = NFPM_ASSET_ARCH[arch];\n\n if (assetArch === undefined) {\n throw new Error(`nfpm has no Linux build for ${arch}`);\n }\n\n return assetArch;\n};\n\nconst assetNameFor = (arch: string): string => `nfpm_${NFPM_VERSION}_Linux_${assetArchFor(arch)}.tar.gz`;\n\nconst digestFor = (arch: string): string => {\n const digest = NFPM_DIGESTS[assetArchFor(arch)];\n\n if (digest === undefined) {\n throw new Error(`nfpm ${NFPM_VERSION} has no pinned digest for ${arch}`);\n }\n\n return digest;\n};\n\nconst extractNfpm = (archive: string, binary: string): void => {\n const dir = mkdtempSync(`${binary}-`);\n\n try {\n runCliTool({ tool: \"tar\", args: [\"-xzf\", archive, \"-C\", dir, \"nfpm\"], target: assetNameFor(process.arch) });\n renameSync(join(dir, \"nfpm\"), binary);\n } finally {\n rmSync(dir, { recursive: true, force: true, maxRetries: 5 });\n }\n};\n\nconst downloadNfpm = async (dir: string, binary: string): Promise<string> => {\n const assetName = assetNameFor(process.arch);\n\n const archive = await downloadFile({\n url: `${NFPM_BASE_URL}/${assetName}`,\n dest: join(dir, assetName),\n label: `nfpm ${NFPM_VERSION}`,\n digest: digestFor(process.arch),\n });\n\n extractNfpm(archive, binary);\n\n return binary;\n};\n\nconst resolveNfpm = async (): Promise<string> => {\n const override = process.env.GTKX_NFPM;\n\n if (override !== undefined && override.length > 0) {\n return override;\n }\n\n const dir = cacheDir([\"nfpm\", NFPM_VERSION]);\n\n return downloadNfpm(dir, join(dir, \"nfpm\"));\n};\n\nexport { resolveNfpm };\n"]}
|
package/dist/dev/font-dir.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"font-dir.d.ts","sourceRoot":"","sources":["../../src/dev/font-dir.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,
|
|
1
|
+
{"version":3,"file":"font-dir.d.ts","sourceRoot":"","sources":["../../src/dev/font-dir.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,MAKzC,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
package/dist/dev/font-dir.js
CHANGED
|
@@ -2,9 +2,6 @@ import { stageProjectFonts } from "../internal/font-staging.js";
|
|
|
2
2
|
import { prependXdgDataDir } from "../internal/xdg-data-dirs.js";
|
|
3
3
|
const prepareDevFontDir = (root) => {
|
|
4
4
|
const shareDir = stageProjectFonts(root);
|
|
5
|
-
if (shareDir === null) {
|
|
6
|
-
return null;
|
|
7
|
-
}
|
|
8
5
|
process.env.XDG_DATA_DIRS = prependXdgDataDir(shareDir, process.env.XDG_DATA_DIRS);
|
|
9
6
|
return shareDir;
|
|
10
7
|
};
|
package/dist/dev/font-dir.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"font-dir.js","sourceRoot":"","sources":["../../src/dev/font-dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,iBAAiB,GAAG,CAAC,IAAY,
|
|
1
|
+
{"version":3,"file":"font-dir.js","sourceRoot":"","sources":["../../src/dev/font-dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAU,EAAE;IAC/C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAEnF,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,CAAC","sourcesContent":["import { stageProjectFonts } from \"../internal/font-staging.js\";\nimport { prependXdgDataDir } from \"../internal/xdg-data-dirs.js\";\n\nconst prepareDevFontDir = (root: string): string => {\n const shareDir = stageProjectFonts(root);\n process.env.XDG_DATA_DIRS = prependXdgDataDir(shareDir, process.env.XDG_DATA_DIRS);\n\n return shareDir;\n};\n\nexport { prepareDevFontDir };\n"]}
|
package/dist/dev/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/dev/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/dev/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAUjD,OAAO,EAEH,KAAK,SAAS,EAIjB,MAAM,sBAAsB,CAAC;AAE9B,KAAK,aAAa,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEtE,KAAK,aAAa,GAAG;IACjB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACvD,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClG,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACtE,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtF,aAAa,IAAI,IAAI,CAAC;IACtB,wBAAwB,CAAC,UAAU,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACvD,mBAAmB,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IACrE,sBAAsB,IAAI,mBAAmB,CAAC;IAC9C,uBAAuB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpE,sBAAsB,IAAI,IAAI,CAAC;IAC/B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IAC5D,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IACpG,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACzC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACrC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;CAC7B,CAAC;AAEF,KAAK,SAAS,GAAG;IACb,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,CAAC;AAilBF,QAAA,MAAM,eAAe,GAAI,MAAM,aAAa,KAAG,SAe7C,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,CAAC"}
|
package/dist/dev/runner.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { error, warn } from "@gtkx/utils";
|
|
2
2
|
import { isCatalogSource } from "../i18n/catalogs.js";
|
|
3
|
+
import { hasUnstagedFontImport } from "../internal/font-staging.js";
|
|
3
4
|
import { loadModuleExclusively, withExclusiveLoad } from "../internal/module-loads.js";
|
|
4
5
|
import { createChangeQueue } from "./change-queue.js";
|
|
5
6
|
import { createFailureTracker } from "./failure-tracker.js";
|
|
@@ -214,6 +215,10 @@ const restartForServerConfig = async (session, changedPath) => {
|
|
|
214
215
|
session.deps.log(`Server config changed: ${changedPath}`);
|
|
215
216
|
await requestRestart(session);
|
|
216
217
|
};
|
|
218
|
+
const restartForFont = async (session, changedPath) => {
|
|
219
|
+
session.deps.log(`Font import added: ${changedPath}`);
|
|
220
|
+
await requestRestart(session);
|
|
221
|
+
};
|
|
217
222
|
const restartForCatalog = async (session, changedPath) => {
|
|
218
223
|
if (session.deps.hasWrittenCatalog(changedPath)) {
|
|
219
224
|
return;
|
|
@@ -221,16 +226,24 @@ const restartForCatalog = async (session, changedPath) => {
|
|
|
221
226
|
session.deps.log(`Translation catalog changed: ${changedPath}`);
|
|
222
227
|
await requestRestart(session);
|
|
223
228
|
};
|
|
224
|
-
const
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
}
|
|
228
|
-
if (isCatalogSource(session.server.config.root, change.path)) {
|
|
229
|
+
const didRestartForChange = async (session, change) => {
|
|
230
|
+
const { root } = session.server.config;
|
|
231
|
+
if (isCatalogSource(root, change.path)) {
|
|
229
232
|
await restartForCatalog(session, change.path);
|
|
230
|
-
return;
|
|
233
|
+
return true;
|
|
231
234
|
}
|
|
232
235
|
if (isServerConfigFile(session.server.config, change.path)) {
|
|
233
236
|
await restartForServerConfig(session, change.path);
|
|
237
|
+
return true;
|
|
238
|
+
}
|
|
239
|
+
if (change.event !== "unlink" && hasUnstagedFontImport(root, change.path)) {
|
|
240
|
+
await restartForFont(session, change.path);
|
|
241
|
+
return true;
|
|
242
|
+
}
|
|
243
|
+
return false;
|
|
244
|
+
};
|
|
245
|
+
const applyChange = async (session, change) => {
|
|
246
|
+
if (session.controller.isShuttingDown() || await didRestartForChange(session, change)) {
|
|
234
247
|
return;
|
|
235
248
|
}
|
|
236
249
|
if (change.event === "add") {
|
package/dist/dev/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/dev/runner.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ApplicationInstance } from \"@gtkx/runtime/internal\";\nimport type { InlineConfig, Plugin } from \"vite\";\nimport { error, warn } from \"@gtkx/utils\";\nimport { isCatalogSource } from \"../i18n/catalogs.js\";\nimport { loadModuleExclusively, withExclusiveLoad } from \"../internal/module-loads.js\";\nimport { createChangeQueue, type WatchedChange } from \"./change-queue.js\";\nimport { createFailureTracker, type FailureTracker } from \"./failure-tracker.js\";\nimport { isMissingImport, missingImportName } from \"./missing-import.js\";\nimport { createRefreshTracker, type RefreshTracker } from \"./refresh-tracker.js\";\nimport { RESTART_EXIT_CODE } from \"./supervisor.js\";\nimport {\n createDevServerConfig,\n type DevServer,\n type DevServerChangedModule,\n type DevServerWatchEvent,\n isServerConfigFile,\n} from \"./vite-dev-server.js\";\n\ntype LoadAppModule = (id: string) => Promise<Record<string, unknown>>;\n\ntype DevRunnerDeps = {\n createServer(config: InlineConfig): Promise<DevServer>;\n waitForApplicationId(timeoutMs: number, shouldKeepWaiting: () => boolean): Promise<string | null>;\n getConfiguredApplicationId(root: string): Promise<string | undefined>;\n startMcpClient(applicationId: string, loadAppModule: LoadAppModule): Promise<unknown>;\n stopMcpClient(): void;\n watchApplicationShutdown(onShutdown: () => void): void;\n watchUncaughtErrors(onUncaughtError: (cause: unknown) => void): void;\n getApplicationInstance(): ApplicationInstance;\n installShutdownHandlers(onSignal: () => void | Promise<void>): void;\n quitDefaultApplication(): void;\n performRefresh: () => void;\n isRefreshBoundary(module: Record<string, unknown>): boolean;\n staleExportName(previous: Record<string, unknown>, current: Record<string, unknown>): string | null;\n readFileRevision(path: string): Promise<string>;\n hasWrittenCatalog(path: string): boolean;\n plugins(entryPath: string): Plugin[];\n log(message: string): void;\n exit(code: number): never;\n};\n\ntype DevRunner = {\n run(entryPath: string): Promise<void>;\n};\n\ntype ShutdownController = {\n isShuttingDown: () => boolean;\n shutdown: (quitApplication: () => void) => Promise<void>;\n};\n\ntype DevSession = {\n server: DevServer;\n deps: DevRunnerDeps;\n controller: ShutdownController;\n refreshTracker: RefreshTracker;\n failure: FailureTracker;\n pendingSaves: Map<string, string>;\n};\n\ntype SettledLoad = {\n loadedExports: Record<string, unknown>;\n isSettled: boolean;\n};\n\ntype SettleAttempt = {\n loadedExports: Record<string, unknown> | null;\n module: DevServerChangedModule;\n};\n\nconst APPLICATION_MOUNT_TIMEOUT_MS = 10_000;\nconst OWNED_ID_EXIT_CODE = 1;\nconst LOAD_ATTEMPT_LIMIT = 5;\nconst WATCH_EVENTS: DevServerWatchEvent[] = [\"add\", \"change\", \"unlink\"];\nconst SKIP_REASON = `did not settle in ${String(LOAD_ATTEMPT_LIMIT)} attempts; save it again to patch the window.`;\nconst DROPPED_REFRESH = \"Fast Refresh dropped\";\nconst SAVE_ACTION = \"File changed\";\nconst RETRY_ACTION = \"Retrying pending save\";\n\nconst announceFailure = (server: DevServer, cause: unknown): void => {\n if (cause instanceof Error) {\n server.ssrFixStacktrace(cause);\n }\n\n error(\"Application error; keeping the dev server up. Fix the error and save again.\", cause);\n};\n\nconst parkSession = (session: DevSession): void => {\n session.deps.log(\"Waiting for a change to restart the application...\");\n};\n\nconst requestRestart = async (session: DevSession): Promise<never> => {\n session.deps.log(\"Full restart (process restart)\");\n\n try {\n await session.server.close();\n } catch (error_) {\n error(\"Error closing server before the restart:\", error_);\n }\n\n return session.deps.exit(RESTART_EXIT_CODE);\n};\n\nconst requiresRestart = (session: DevSession, module: DevServerChangedModule): boolean => {\n if (session.failure.isDown()) {\n return true;\n }\n\n const loadedExports = module.ssrModule;\n\n if (!loadedExports) {\n return false;\n }\n\n return !session.deps.isRefreshBoundary(loadedExports);\n};\n\nconst invalidateChangedModule = (session: DevSession, module: DevServerChangedModule): void => {\n session.server.moduleGraph.invalidateModule(module);\n\n for (const importer of module.importers) {\n session.server.moduleGraph.invalidateModule(importer);\n }\n};\n\nconst isEvaluationCurrent = (\n session: DevSession,\n changedPath: string,\n loadedExports: Record<string, unknown>,\n): boolean => {\n const evaluated = session.server.moduleGraph.getModuleById(changedPath);\n\n if (!evaluated?.ssrTransformResult) {\n return false;\n }\n\n return evaluated.ssrModule === loadedExports;\n};\n\nconst loadInvalidatedModule = (\n session: DevSession,\n changedPath: string,\n module: DevServerChangedModule,\n): Promise<SettledLoad> =>\n withExclusiveLoad(session.server, async () => {\n const revision = await session.deps.readFileRevision(changedPath);\n invalidateChangedModule(session, module);\n const loadedExports = await session.server.ssrLoadModule(changedPath);\n const settledRevision = await session.deps.readFileRevision(changedPath);\n\n return {\n loadedExports,\n isSettled: settledRevision === revision && isEvaluationCurrent(session, changedPath, loadedExports),\n };\n });\n\nconst settleAttempt = async (\n session: DevSession,\n changedPath: string,\n module: DevServerChangedModule,\n): Promise<SettleAttempt> => {\n const { loadedExports, isSettled } = await loadInvalidatedModule(session, changedPath, module);\n\n if (isSettled) {\n return { loadedExports, module };\n }\n\n return { loadedExports: null, module: session.server.moduleGraph.getModuleById(changedPath) ?? module };\n};\n\nconst loadSettledExports = async (\n session: DevSession,\n changedPath: string,\n changedModule: DevServerChangedModule,\n): Promise<Record<string, unknown> | null> => {\n let module = changedModule;\n\n for (let round = 0; round < LOAD_ATTEMPT_LIMIT && !session.controller.isShuttingDown(); round++) {\n const attempt = await settleAttempt(session, changedPath, module);\n\n if (attempt.loadedExports) {\n return attempt.loadedExports;\n }\n\n module = attempt.module;\n }\n\n return null;\n};\n\nconst droppedExportName = (previous: Record<string, unknown>, current: Record<string, unknown>): string | null => {\n const kept = new Set(Object.keys(current));\n\n for (const name of Object.keys(previous)) {\n if (!kept.has(name)) {\n return name;\n }\n }\n\n return null;\n};\n\nconst unpatchedExportReason = (\n session: DevSession,\n previous: Record<string, unknown> | null,\n current: Record<string, unknown>,\n): string | null => {\n if (!previous) {\n return null;\n }\n\n const dropped = droppedExportName(previous, current);\n\n if (dropped !== null) {\n return `no longer exports ${dropped}, which its importers still hold`;\n }\n\n const stale = session.deps.staleExportName(previous, current);\n\n if (stale === null) {\n return null;\n }\n\n return `renamed the component it exports as ${stale}, which the window is still rendering`;\n};\n\nconst refreshChangedModule = async (\n session: DevSession,\n changedPath: string,\n changedModule: DevServerChangedModule,\n previous: Record<string, unknown> | null,\n): Promise<void> => {\n const loadedExports = await loadSettledExports(session, changedPath, changedModule);\n\n if (session.controller.isShuttingDown()) {\n return;\n }\n\n if (!loadedExports) {\n warn(`Fast Refresh skipped: ${changedPath} ${SKIP_REASON}`);\n\n return;\n }\n\n if (!session.deps.isRefreshBoundary(loadedExports)) {\n await requestRestart(session);\n\n return;\n }\n\n const unpatched = unpatchedExportReason(session, previous, loadedExports);\n\n if (unpatched !== null) {\n warn(`${DROPPED_REFRESH}: ${changedPath} ${unpatched}`);\n await requestRestart(session);\n\n return;\n }\n\n session.pendingSaves.delete(changedPath);\n session.deps.log(\"Running Fast Refresh...\");\n session.deps.performRefresh();\n session.deps.log(\"Fast Refresh complete\");\n};\n\nconst applyModuleChange = async (session: DevSession, changedPath: string, action: string): Promise<void> => {\n const module = session.server.moduleGraph.getModuleById(changedPath);\n\n if (!module) {\n return;\n }\n\n session.deps.log(`${action}: ${changedPath}`);\n\n if (requiresRestart(session, module)) {\n await requestRestart(session);\n\n return;\n }\n\n await refreshChangedModule(session, changedPath, module, module.ssrModule ?? null);\n};\n\nconst awaitMissingImport = (session: DevSession, changedPath: string, cause: unknown): void => {\n const missingName = missingImportName(cause);\n\n if (missingName === null) {\n session.pendingSaves.delete(changedPath);\n\n return;\n }\n\n session.pendingSaves.set(changedPath, missingName);\n};\n\nconst applySave = async (session: DevSession, changedPath: string, action: string): Promise<void> => {\n try {\n await applyModuleChange(session, changedPath, action);\n } catch (error_) {\n if (session.controller.isShuttingDown()) {\n return;\n }\n\n awaitMissingImport(session, changedPath, error_);\n error(\"Hot reload failed:\", error_);\n }\n};\n\nconst savesAwaiting = (session: DevSession, createdPath: string): string[] =>\n [...session.pendingSaves]\n .filter(([, missingName]) => isMissingImport(createdPath, missingName))\n .map(([changedPath]) => changedPath);\n\nconst retryPendingSaves = async (session: DevSession, waiting: string[]): Promise<void> => {\n for (const changedPath of waiting) {\n if (session.controller.isShuttingDown()) {\n return;\n }\n\n session.pendingSaves.delete(changedPath);\n await applySave(session, changedPath, RETRY_ACTION);\n }\n};\n\nconst handleFileCreate = async (session: DevSession, createdPath: string): Promise<void> => {\n const waiting = savesAwaiting(session, createdPath);\n\n if (waiting.length === 0) {\n return;\n }\n\n session.deps.log(`File created: ${createdPath}`);\n\n if (session.failure.isDown()) {\n await requestRestart(session);\n\n return;\n }\n\n await retryPendingSaves(session, waiting);\n};\n\nconst handleFileRemove = async (session: DevSession, removedPath: string): Promise<void> => {\n if (!session.server.moduleGraph.getModuleById(removedPath)) {\n return;\n }\n\n session.deps.log(`File removed: ${removedPath}`);\n await requestRestart(session);\n};\n\nconst createShutdownController = (server: DevServer, deps: DevRunnerDeps): ShutdownController => {\n let isShuttingDown = false;\n\n return {\n isShuttingDown: () => isShuttingDown,\n shutdown: async (quitApplication: () => void): Promise<void> => {\n if (isShuttingDown) {\n return;\n }\n\n isShuttingDown = true;\n quitApplication();\n deps.stopMcpClient();\n await server.close();\n },\n };\n};\n\nconst restartForServerConfig = async (session: DevSession, changedPath: string): Promise<void> => {\n session.deps.log(`Server config changed: ${changedPath}`);\n await requestRestart(session);\n};\n\nconst restartForCatalog = async (session: DevSession, changedPath: string): Promise<void> => {\n if (session.deps.hasWrittenCatalog(changedPath)) {\n return;\n }\n\n session.deps.log(`Translation catalog changed: ${changedPath}`);\n await requestRestart(session);\n};\n\nconst applyChange = async (session: DevSession, change: WatchedChange): Promise<void> => {\n if (session.controller.isShuttingDown()) {\n return;\n }\n\n if (isCatalogSource(session.server.config.root, change.path)) {\n await restartForCatalog(session, change.path);\n\n return;\n }\n\n if (isServerConfigFile(session.server.config, change.path)) {\n await restartForServerConfig(session, change.path);\n\n return;\n }\n\n if (change.event === \"add\") {\n await handleFileCreate(session, change.path);\n\n return;\n }\n\n if (change.event === \"unlink\") {\n await handleFileRemove(session, change.path);\n\n return;\n }\n\n await applySave(session, change.path, SAVE_ACTION);\n};\n\nconst watchProjectFiles = (session: DevSession): void => {\n const queue = createChangeQueue((change) => applyChange(session, change));\n\n for (const event of WATCH_EVENTS) {\n session.server.watcher.on(event, (path) => {\n queue.enqueue({ event, path });\n });\n }\n};\n\nconst onShutdownSignal = (session: DevSession): (() => Promise<void>) => async () => {\n if (session.controller.isShuttingDown()) {\n return;\n }\n\n session.deps.log(\"Received shutdown signal - stopping dev runner...\");\n\n await session.controller.shutdown(() => {\n session.deps.quitDefaultApplication();\n });\n};\n\nconst closeAndExit = async (session: DevSession, code = 0): Promise<never> => {\n try {\n await session.controller.shutdown((): void => undefined);\n } catch (error_) {\n error(\"Error closing server:\", error_);\n\n return session.deps.exit(1);\n }\n\n return session.deps.exit(code);\n};\n\nconst isSessionInactive = (session: DevSession): boolean => {\n if (session.controller.isShuttingDown()) {\n return true;\n }\n\n if (!session.failure.isDown()) {\n return false;\n }\n\n parkSession(session);\n\n return true;\n};\n\nconst stopForApplicationQuit = (session: DevSession): Promise<never> => {\n session.deps.log(\"Application quit - stopping dev runner...\");\n\n return closeAndExit(session);\n};\n\nconst settleUnmount = (session: DevSession, wasRefreshing: boolean): void => {\n if (isSessionInactive(session)) {\n return;\n }\n\n if (!wasRefreshing) {\n void stopForApplicationQuit(session);\n\n return;\n }\n\n session.deps.log(\"Application unmounted during Fast Refresh - restarting dev runner...\");\n session.deps.exit(RESTART_EXIT_CODE);\n};\n\nconst handleApplicationShutdown = (session: DevSession): void => {\n if (isSessionInactive(session)) {\n return;\n }\n\n const wasRefreshing = session.refreshTracker.isRefreshing();\n\n session.failure.settleUnmount(() => {\n settleUnmount(session, wasRefreshing);\n });\n};\n\nconst onApplicationShutdown = (session: DevSession): (() => void) => () => {\n handleApplicationShutdown(session);\n};\n\nconst refusedExitCode = (): number => (process.exitCode === undefined ? 1 : Number(process.exitCode));\n\nconst connectApplication = async (session: DevSession, liveApplicationId: string): Promise<void> => {\n const { deps, server } = session;\n deps.watchApplicationShutdown(onApplicationShutdown(session));\n const applicationId = (await deps.getConfiguredApplicationId(process.cwd())) ?? liveApplicationId;\n deps.log(`Connected application ID: ${applicationId}`);\n await deps.startMcpClient(applicationId, (id) => loadModuleExclusively(server, id));\n};\n\nconst stopForOwnedApplicationId = async (session: DevSession, liveApplicationId: string): Promise<void> => {\n session.deps.log(\n `Another process already owns ${liveApplicationId}, so this session can never show a window - ` +\n \"stopping dev runner. Quit that instance or change applicationId, then start gtkx dev again.\",\n );\n\n await closeAndExit(session, OWNED_ID_EXIT_CODE);\n};\n\nconst stopForStoppedApplication = async (session: DevSession, instance: ApplicationInstance): Promise<void> => {\n if (session.failure.hasReported()) {\n session.deps.log(\"Application stopped before the dev runner attached.\");\n session.failure.fail();\n\n return;\n }\n\n if (instance === \"shutDown\") {\n await stopForApplicationQuit(session);\n\n return;\n }\n\n session.deps.log(\"Application refused its command line - stopping dev runner...\");\n await closeAndExit(session, refusedExitCode());\n};\n\nconst connectLiveApplication = async (session: DevSession, liveApplicationId: string): Promise<void> => {\n const instance = session.deps.getApplicationInstance();\n\n if (instance === \"primary\") {\n await connectApplication(session, liveApplicationId);\n\n return;\n }\n\n if (instance === \"remote\") {\n await stopForOwnedApplicationId(session, liveApplicationId);\n\n return;\n }\n\n await stopForStoppedApplication(session, instance);\n};\n\nconst attachApplication = async (session: DevSession): Promise<void> => {\n const { deps, failure } = session;\n\n const liveApplicationId = await deps.waitForApplicationId(\n APPLICATION_MOUNT_TIMEOUT_MS,\n () => !failure.isDown(),\n );\n\n if (failure.isDown()) {\n return;\n }\n\n if (liveApplicationId === null) {\n deps.log(\"Entry did not mount an application - MCP client not started.\");\n\n return;\n }\n\n await connectLiveApplication(session, liveApplicationId);\n};\n\nconst loadEntry = async (session: DevSession, entryPath: string): Promise<void> => {\n session.deps.log(`Loading entry: ${entryPath}`);\n\n try {\n await loadModuleExclusively(session.server, entryPath);\n } catch (error_) {\n awaitMissingImport(session, entryPath, error_);\n session.failure.fail(error_);\n }\n};\n\nconst hasApplicationStopped = (instance: ApplicationInstance): boolean =>\n instance === \"shutDown\" || instance === \"unregistered\";\n\nconst isApplicationLost = (session: DevSession): boolean =>\n session.failure.hasReported() && hasApplicationStopped(session.deps.getApplicationInstance());\n\nconst announceReady = (session: DevSession): void => {\n if (isApplicationLost(session)) {\n session.failure.fail();\n }\n\n if (isSessionInactive(session)) {\n return;\n }\n\n session.deps.log(\"HMR enabled - watching for changes...\");\n};\n\nconst createSession = (server: DevServer, deps: DevRunnerDeps): DevSession => {\n const refreshTracker = createRefreshTracker(deps.performRefresh);\n\n return {\n server,\n deps: { ...deps, performRefresh: refreshTracker.performRefresh },\n controller: createShutdownController(server, deps),\n refreshTracker,\n failure: createFailureTracker((cause) => {\n announceFailure(server, cause);\n }, refreshTracker.isRefreshing),\n pendingSaves: new Map(),\n };\n};\n\nconst createDevRunner = (deps: DevRunnerDeps): DevRunner => ({\n async run(entryPath: string): Promise<void> {\n const server = await deps.createServer(createDevServerConfig(process.cwd(), deps.plugins(entryPath)));\n const session = createSession(server, deps);\n deps.installShutdownHandlers(onShutdownSignal(session));\n\n deps.watchUncaughtErrors((cause) => {\n session.failure.report(cause);\n });\n\n watchProjectFiles(session);\n await loadEntry(session, entryPath);\n await attachApplication(session);\n announceReady(session);\n },\n});\n\nexport { createDevRunner, type DevRunnerDeps };\n"]}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/dev/runner.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ApplicationInstance } from \"@gtkx/runtime/internal\";\nimport type { InlineConfig, Plugin } from \"vite\";\nimport { error, warn } from \"@gtkx/utils\";\nimport { isCatalogSource } from \"../i18n/catalogs.js\";\nimport { hasUnstagedFontImport } from \"../internal/font-staging.js\";\nimport { loadModuleExclusively, withExclusiveLoad } from \"../internal/module-loads.js\";\nimport { createChangeQueue, type WatchedChange } from \"./change-queue.js\";\nimport { createFailureTracker, type FailureTracker } from \"./failure-tracker.js\";\nimport { isMissingImport, missingImportName } from \"./missing-import.js\";\nimport { createRefreshTracker, type RefreshTracker } from \"./refresh-tracker.js\";\nimport { RESTART_EXIT_CODE } from \"./supervisor.js\";\nimport {\n createDevServerConfig,\n type DevServer,\n type DevServerChangedModule,\n type DevServerWatchEvent,\n isServerConfigFile,\n} from \"./vite-dev-server.js\";\n\ntype LoadAppModule = (id: string) => Promise<Record<string, unknown>>;\n\ntype DevRunnerDeps = {\n createServer(config: InlineConfig): Promise<DevServer>;\n waitForApplicationId(timeoutMs: number, shouldKeepWaiting: () => boolean): Promise<string | null>;\n getConfiguredApplicationId(root: string): Promise<string | undefined>;\n startMcpClient(applicationId: string, loadAppModule: LoadAppModule): Promise<unknown>;\n stopMcpClient(): void;\n watchApplicationShutdown(onShutdown: () => void): void;\n watchUncaughtErrors(onUncaughtError: (cause: unknown) => void): void;\n getApplicationInstance(): ApplicationInstance;\n installShutdownHandlers(onSignal: () => void | Promise<void>): void;\n quitDefaultApplication(): void;\n performRefresh: () => void;\n isRefreshBoundary(module: Record<string, unknown>): boolean;\n staleExportName(previous: Record<string, unknown>, current: Record<string, unknown>): string | null;\n readFileRevision(path: string): Promise<string>;\n hasWrittenCatalog(path: string): boolean;\n plugins(entryPath: string): Plugin[];\n log(message: string): void;\n exit(code: number): never;\n};\n\ntype DevRunner = {\n run(entryPath: string): Promise<void>;\n};\n\ntype ShutdownController = {\n isShuttingDown: () => boolean;\n shutdown: (quitApplication: () => void) => Promise<void>;\n};\n\ntype DevSession = {\n server: DevServer;\n deps: DevRunnerDeps;\n controller: ShutdownController;\n refreshTracker: RefreshTracker;\n failure: FailureTracker;\n pendingSaves: Map<string, string>;\n};\n\ntype SettledLoad = {\n loadedExports: Record<string, unknown>;\n isSettled: boolean;\n};\n\ntype SettleAttempt = {\n loadedExports: Record<string, unknown> | null;\n module: DevServerChangedModule;\n};\n\nconst APPLICATION_MOUNT_TIMEOUT_MS = 10_000;\nconst OWNED_ID_EXIT_CODE = 1;\nconst LOAD_ATTEMPT_LIMIT = 5;\nconst WATCH_EVENTS: DevServerWatchEvent[] = [\"add\", \"change\", \"unlink\"];\nconst SKIP_REASON = `did not settle in ${String(LOAD_ATTEMPT_LIMIT)} attempts; save it again to patch the window.`;\nconst DROPPED_REFRESH = \"Fast Refresh dropped\";\nconst SAVE_ACTION = \"File changed\";\nconst RETRY_ACTION = \"Retrying pending save\";\n\nconst announceFailure = (server: DevServer, cause: unknown): void => {\n if (cause instanceof Error) {\n server.ssrFixStacktrace(cause);\n }\n\n error(\"Application error; keeping the dev server up. Fix the error and save again.\", cause);\n};\n\nconst parkSession = (session: DevSession): void => {\n session.deps.log(\"Waiting for a change to restart the application...\");\n};\n\nconst requestRestart = async (session: DevSession): Promise<never> => {\n session.deps.log(\"Full restart (process restart)\");\n\n try {\n await session.server.close();\n } catch (error_) {\n error(\"Error closing server before the restart:\", error_);\n }\n\n return session.deps.exit(RESTART_EXIT_CODE);\n};\n\nconst requiresRestart = (session: DevSession, module: DevServerChangedModule): boolean => {\n if (session.failure.isDown()) {\n return true;\n }\n\n const loadedExports = module.ssrModule;\n\n if (!loadedExports) {\n return false;\n }\n\n return !session.deps.isRefreshBoundary(loadedExports);\n};\n\nconst invalidateChangedModule = (session: DevSession, module: DevServerChangedModule): void => {\n session.server.moduleGraph.invalidateModule(module);\n\n for (const importer of module.importers) {\n session.server.moduleGraph.invalidateModule(importer);\n }\n};\n\nconst isEvaluationCurrent = (\n session: DevSession,\n changedPath: string,\n loadedExports: Record<string, unknown>,\n): boolean => {\n const evaluated = session.server.moduleGraph.getModuleById(changedPath);\n\n if (!evaluated?.ssrTransformResult) {\n return false;\n }\n\n return evaluated.ssrModule === loadedExports;\n};\n\nconst loadInvalidatedModule = (\n session: DevSession,\n changedPath: string,\n module: DevServerChangedModule,\n): Promise<SettledLoad> =>\n withExclusiveLoad(session.server, async () => {\n const revision = await session.deps.readFileRevision(changedPath);\n invalidateChangedModule(session, module);\n const loadedExports = await session.server.ssrLoadModule(changedPath);\n const settledRevision = await session.deps.readFileRevision(changedPath);\n\n return {\n loadedExports,\n isSettled: settledRevision === revision && isEvaluationCurrent(session, changedPath, loadedExports),\n };\n });\n\nconst settleAttempt = async (\n session: DevSession,\n changedPath: string,\n module: DevServerChangedModule,\n): Promise<SettleAttempt> => {\n const { loadedExports, isSettled } = await loadInvalidatedModule(session, changedPath, module);\n\n if (isSettled) {\n return { loadedExports, module };\n }\n\n return { loadedExports: null, module: session.server.moduleGraph.getModuleById(changedPath) ?? module };\n};\n\nconst loadSettledExports = async (\n session: DevSession,\n changedPath: string,\n changedModule: DevServerChangedModule,\n): Promise<Record<string, unknown> | null> => {\n let module = changedModule;\n\n for (let round = 0; round < LOAD_ATTEMPT_LIMIT && !session.controller.isShuttingDown(); round++) {\n const attempt = await settleAttempt(session, changedPath, module);\n\n if (attempt.loadedExports) {\n return attempt.loadedExports;\n }\n\n module = attempt.module;\n }\n\n return null;\n};\n\nconst droppedExportName = (previous: Record<string, unknown>, current: Record<string, unknown>): string | null => {\n const kept = new Set(Object.keys(current));\n\n for (const name of Object.keys(previous)) {\n if (!kept.has(name)) {\n return name;\n }\n }\n\n return null;\n};\n\nconst unpatchedExportReason = (\n session: DevSession,\n previous: Record<string, unknown> | null,\n current: Record<string, unknown>,\n): string | null => {\n if (!previous) {\n return null;\n }\n\n const dropped = droppedExportName(previous, current);\n\n if (dropped !== null) {\n return `no longer exports ${dropped}, which its importers still hold`;\n }\n\n const stale = session.deps.staleExportName(previous, current);\n\n if (stale === null) {\n return null;\n }\n\n return `renamed the component it exports as ${stale}, which the window is still rendering`;\n};\n\nconst refreshChangedModule = async (\n session: DevSession,\n changedPath: string,\n changedModule: DevServerChangedModule,\n previous: Record<string, unknown> | null,\n): Promise<void> => {\n const loadedExports = await loadSettledExports(session, changedPath, changedModule);\n\n if (session.controller.isShuttingDown()) {\n return;\n }\n\n if (!loadedExports) {\n warn(`Fast Refresh skipped: ${changedPath} ${SKIP_REASON}`);\n\n return;\n }\n\n if (!session.deps.isRefreshBoundary(loadedExports)) {\n await requestRestart(session);\n\n return;\n }\n\n const unpatched = unpatchedExportReason(session, previous, loadedExports);\n\n if (unpatched !== null) {\n warn(`${DROPPED_REFRESH}: ${changedPath} ${unpatched}`);\n await requestRestart(session);\n\n return;\n }\n\n session.pendingSaves.delete(changedPath);\n session.deps.log(\"Running Fast Refresh...\");\n session.deps.performRefresh();\n session.deps.log(\"Fast Refresh complete\");\n};\n\nconst applyModuleChange = async (session: DevSession, changedPath: string, action: string): Promise<void> => {\n const module = session.server.moduleGraph.getModuleById(changedPath);\n\n if (!module) {\n return;\n }\n\n session.deps.log(`${action}: ${changedPath}`);\n\n if (requiresRestart(session, module)) {\n await requestRestart(session);\n\n return;\n }\n\n await refreshChangedModule(session, changedPath, module, module.ssrModule ?? null);\n};\n\nconst awaitMissingImport = (session: DevSession, changedPath: string, cause: unknown): void => {\n const missingName = missingImportName(cause);\n\n if (missingName === null) {\n session.pendingSaves.delete(changedPath);\n\n return;\n }\n\n session.pendingSaves.set(changedPath, missingName);\n};\n\nconst applySave = async (session: DevSession, changedPath: string, action: string): Promise<void> => {\n try {\n await applyModuleChange(session, changedPath, action);\n } catch (error_) {\n if (session.controller.isShuttingDown()) {\n return;\n }\n\n awaitMissingImport(session, changedPath, error_);\n error(\"Hot reload failed:\", error_);\n }\n};\n\nconst savesAwaiting = (session: DevSession, createdPath: string): string[] =>\n [...session.pendingSaves]\n .filter(([, missingName]) => isMissingImport(createdPath, missingName))\n .map(([changedPath]) => changedPath);\n\nconst retryPendingSaves = async (session: DevSession, waiting: string[]): Promise<void> => {\n for (const changedPath of waiting) {\n if (session.controller.isShuttingDown()) {\n return;\n }\n\n session.pendingSaves.delete(changedPath);\n await applySave(session, changedPath, RETRY_ACTION);\n }\n};\n\nconst handleFileCreate = async (session: DevSession, createdPath: string): Promise<void> => {\n const waiting = savesAwaiting(session, createdPath);\n\n if (waiting.length === 0) {\n return;\n }\n\n session.deps.log(`File created: ${createdPath}`);\n\n if (session.failure.isDown()) {\n await requestRestart(session);\n\n return;\n }\n\n await retryPendingSaves(session, waiting);\n};\n\nconst handleFileRemove = async (session: DevSession, removedPath: string): Promise<void> => {\n if (!session.server.moduleGraph.getModuleById(removedPath)) {\n return;\n }\n\n session.deps.log(`File removed: ${removedPath}`);\n await requestRestart(session);\n};\n\nconst createShutdownController = (server: DevServer, deps: DevRunnerDeps): ShutdownController => {\n let isShuttingDown = false;\n\n return {\n isShuttingDown: () => isShuttingDown,\n shutdown: async (quitApplication: () => void): Promise<void> => {\n if (isShuttingDown) {\n return;\n }\n\n isShuttingDown = true;\n quitApplication();\n deps.stopMcpClient();\n await server.close();\n },\n };\n};\n\nconst restartForServerConfig = async (session: DevSession, changedPath: string): Promise<void> => {\n session.deps.log(`Server config changed: ${changedPath}`);\n await requestRestart(session);\n};\n\nconst restartForFont = async (session: DevSession, changedPath: string): Promise<void> => {\n session.deps.log(`Font import added: ${changedPath}`);\n await requestRestart(session);\n};\n\nconst restartForCatalog = async (session: DevSession, changedPath: string): Promise<void> => {\n if (session.deps.hasWrittenCatalog(changedPath)) {\n return;\n }\n\n session.deps.log(`Translation catalog changed: ${changedPath}`);\n await requestRestart(session);\n};\n\nconst didRestartForChange = async (session: DevSession, change: WatchedChange): Promise<boolean> => {\n const { root } = session.server.config;\n\n if (isCatalogSource(root, change.path)) {\n await restartForCatalog(session, change.path);\n\n return true;\n }\n\n if (isServerConfigFile(session.server.config, change.path)) {\n await restartForServerConfig(session, change.path);\n\n return true;\n }\n\n if (change.event !== \"unlink\" && hasUnstagedFontImport(root, change.path)) {\n await restartForFont(session, change.path);\n\n return true;\n }\n\n return false;\n};\n\nconst applyChange = async (session: DevSession, change: WatchedChange): Promise<void> => {\n if (session.controller.isShuttingDown() || await didRestartForChange(session, change)) {\n return;\n }\n\n if (change.event === \"add\") {\n await handleFileCreate(session, change.path);\n\n return;\n }\n\n if (change.event === \"unlink\") {\n await handleFileRemove(session, change.path);\n\n return;\n }\n\n await applySave(session, change.path, SAVE_ACTION);\n};\n\nconst watchProjectFiles = (session: DevSession): void => {\n const queue = createChangeQueue((change) => applyChange(session, change));\n\n for (const event of WATCH_EVENTS) {\n session.server.watcher.on(event, (path) => {\n queue.enqueue({ event, path });\n });\n }\n};\n\nconst onShutdownSignal = (session: DevSession): (() => Promise<void>) => async () => {\n if (session.controller.isShuttingDown()) {\n return;\n }\n\n session.deps.log(\"Received shutdown signal - stopping dev runner...\");\n\n await session.controller.shutdown(() => {\n session.deps.quitDefaultApplication();\n });\n};\n\nconst closeAndExit = async (session: DevSession, code = 0): Promise<never> => {\n try {\n await session.controller.shutdown((): void => undefined);\n } catch (error_) {\n error(\"Error closing server:\", error_);\n\n return session.deps.exit(1);\n }\n\n return session.deps.exit(code);\n};\n\nconst isSessionInactive = (session: DevSession): boolean => {\n if (session.controller.isShuttingDown()) {\n return true;\n }\n\n if (!session.failure.isDown()) {\n return false;\n }\n\n parkSession(session);\n\n return true;\n};\n\nconst stopForApplicationQuit = (session: DevSession): Promise<never> => {\n session.deps.log(\"Application quit - stopping dev runner...\");\n\n return closeAndExit(session);\n};\n\nconst settleUnmount = (session: DevSession, wasRefreshing: boolean): void => {\n if (isSessionInactive(session)) {\n return;\n }\n\n if (!wasRefreshing) {\n void stopForApplicationQuit(session);\n\n return;\n }\n\n session.deps.log(\"Application unmounted during Fast Refresh - restarting dev runner...\");\n session.deps.exit(RESTART_EXIT_CODE);\n};\n\nconst handleApplicationShutdown = (session: DevSession): void => {\n if (isSessionInactive(session)) {\n return;\n }\n\n const wasRefreshing = session.refreshTracker.isRefreshing();\n\n session.failure.settleUnmount(() => {\n settleUnmount(session, wasRefreshing);\n });\n};\n\nconst onApplicationShutdown = (session: DevSession): (() => void) => () => {\n handleApplicationShutdown(session);\n};\n\nconst refusedExitCode = (): number => (process.exitCode === undefined ? 1 : Number(process.exitCode));\n\nconst connectApplication = async (session: DevSession, liveApplicationId: string): Promise<void> => {\n const { deps, server } = session;\n deps.watchApplicationShutdown(onApplicationShutdown(session));\n const applicationId = (await deps.getConfiguredApplicationId(process.cwd())) ?? liveApplicationId;\n deps.log(`Connected application ID: ${applicationId}`);\n await deps.startMcpClient(applicationId, (id) => loadModuleExclusively(server, id));\n};\n\nconst stopForOwnedApplicationId = async (session: DevSession, liveApplicationId: string): Promise<void> => {\n session.deps.log(\n `Another process already owns ${liveApplicationId}, so this session can never show a window - ` +\n \"stopping dev runner. Quit that instance or change applicationId, then start gtkx dev again.\",\n );\n\n await closeAndExit(session, OWNED_ID_EXIT_CODE);\n};\n\nconst stopForStoppedApplication = async (session: DevSession, instance: ApplicationInstance): Promise<void> => {\n if (session.failure.hasReported()) {\n session.deps.log(\"Application stopped before the dev runner attached.\");\n session.failure.fail();\n\n return;\n }\n\n if (instance === \"shutDown\") {\n await stopForApplicationQuit(session);\n\n return;\n }\n\n session.deps.log(\"Application refused its command line - stopping dev runner...\");\n await closeAndExit(session, refusedExitCode());\n};\n\nconst connectLiveApplication = async (session: DevSession, liveApplicationId: string): Promise<void> => {\n const instance = session.deps.getApplicationInstance();\n\n if (instance === \"primary\") {\n await connectApplication(session, liveApplicationId);\n\n return;\n }\n\n if (instance === \"remote\") {\n await stopForOwnedApplicationId(session, liveApplicationId);\n\n return;\n }\n\n await stopForStoppedApplication(session, instance);\n};\n\nconst attachApplication = async (session: DevSession): Promise<void> => {\n const { deps, failure } = session;\n\n const liveApplicationId = await deps.waitForApplicationId(\n APPLICATION_MOUNT_TIMEOUT_MS,\n () => !failure.isDown(),\n );\n\n if (failure.isDown()) {\n return;\n }\n\n if (liveApplicationId === null) {\n deps.log(\"Entry did not mount an application - MCP client not started.\");\n\n return;\n }\n\n await connectLiveApplication(session, liveApplicationId);\n};\n\nconst loadEntry = async (session: DevSession, entryPath: string): Promise<void> => {\n session.deps.log(`Loading entry: ${entryPath}`);\n\n try {\n await loadModuleExclusively(session.server, entryPath);\n } catch (error_) {\n awaitMissingImport(session, entryPath, error_);\n session.failure.fail(error_);\n }\n};\n\nconst hasApplicationStopped = (instance: ApplicationInstance): boolean =>\n instance === \"shutDown\" || instance === \"unregistered\";\n\nconst isApplicationLost = (session: DevSession): boolean =>\n session.failure.hasReported() && hasApplicationStopped(session.deps.getApplicationInstance());\n\nconst announceReady = (session: DevSession): void => {\n if (isApplicationLost(session)) {\n session.failure.fail();\n }\n\n if (isSessionInactive(session)) {\n return;\n }\n\n session.deps.log(\"HMR enabled - watching for changes...\");\n};\n\nconst createSession = (server: DevServer, deps: DevRunnerDeps): DevSession => {\n const refreshTracker = createRefreshTracker(deps.performRefresh);\n\n return {\n server,\n deps: { ...deps, performRefresh: refreshTracker.performRefresh },\n controller: createShutdownController(server, deps),\n refreshTracker,\n failure: createFailureTracker((cause) => {\n announceFailure(server, cause);\n }, refreshTracker.isRefreshing),\n pendingSaves: new Map(),\n };\n};\n\nconst createDevRunner = (deps: DevRunnerDeps): DevRunner => ({\n async run(entryPath: string): Promise<void> {\n const server = await deps.createServer(createDevServerConfig(process.cwd(), deps.plugins(entryPath)));\n const session = createSession(server, deps);\n deps.installShutdownHandlers(onShutdownSignal(session));\n\n deps.watchUncaughtErrors((cause) => {\n session.failure.report(cause);\n });\n\n watchProjectFiles(session);\n await loadEntry(session, entryPath);\n await attachApplication(session);\n announceReady(session);\n },\n});\n\nexport { createDevRunner, type DevRunnerDeps };\n"]}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
type FontStagingStatus = "absent" | "staged" | "unmanaged";
|
|
2
|
+
declare const stagedFontStatus: (sourcePath: string, content: Buffer) => FontStagingStatus;
|
|
3
|
+
declare const hasUnstagedFontImport: (root: string, filePath: string) => boolean;
|
|
4
|
+
declare const stageProjectFonts: (root: string) => string;
|
|
5
|
+
export { hasUnstagedFontImport, stagedFontStatus, stageProjectFonts };
|
|
3
6
|
//# sourceMappingURL=font-staging.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"font-staging.d.ts","sourceRoot":"","sources":["../../src/internal/font-staging.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"font-staging.d.ts","sourceRoot":"","sources":["../../src/internal/font-staging.ts"],"names":[],"mappings":"AASA,KAAK,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;AAsE3D,QAAA,MAAM,gBAAgB,GAAI,YAAY,MAAM,EAAE,SAAS,MAAM,KAAG,iBAQ/D,CAAC;AAiBF,QAAA,MAAM,qBAAqB,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,KAAG,OAQ/D,CAAC;AAEF,QAAA,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,MAYzC,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC"}
|