@gtkx/cli 1.6.0 → 2.0.0-beta.2
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/README.md +5 -5
- package/dist/builder.d.ts +1 -0
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +17 -5
- package/dist/builder.js.map +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/codegen/freshness.d.ts.map +1 -1
- package/dist/codegen/freshness.js +45 -16
- package/dist/codegen/freshness.js.map +1 -1
- package/dist/codegen/reference.d.ts.map +1 -1
- package/dist/codegen/reference.js +1 -7
- package/dist/codegen/reference.js.map +1 -1
- package/dist/codegen/report.d.ts.map +1 -1
- package/dist/codegen/report.js +5 -16
- package/dist/codegen/report.js.map +1 -1
- package/dist/codegen/run-codegen.d.ts +7 -7
- package/dist/codegen/run-codegen.d.ts.map +1 -1
- package/dist/codegen/run-codegen.js +35 -107
- package/dist/codegen/run-codegen.js.map +1 -1
- package/dist/codegen/store-resolver.d.ts +1 -2
- package/dist/codegen/store-resolver.d.ts.map +1 -1
- package/dist/codegen/store-resolver.js +10 -19
- package/dist/codegen/store-resolver.js.map +1 -1
- package/dist/commands/build.d.ts +5 -0
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +83 -10
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/codegen.d.ts +1 -0
- package/dist/commands/codegen.d.ts.map +1 -1
- package/dist/commands/codegen.js +6 -5
- package/dist/commands/codegen.js.map +1 -1
- package/dist/commands/deploy.d.ts +1 -0
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +4 -2
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.d.ts +8 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +19 -1
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/docs.d.ts.map +1 -1
- package/dist/commands/docs.js +5 -15
- package/dist/commands/docs.js.map +1 -1
- package/dist/deploy/freedesktop/copyright.d.ts.map +1 -1
- package/dist/deploy/freedesktop/copyright.js +2 -13
- package/dist/deploy/freedesktop/copyright.js.map +1 -1
- package/dist/deploy/freedesktop/metainfo.d.ts.map +1 -1
- package/dist/deploy/freedesktop/metainfo.js +41 -2
- package/dist/deploy/freedesktop/metainfo.js.map +1 -1
- package/dist/deploy/freedesktop/xml.d.ts.map +1 -1
- package/dist/deploy/freedesktop/xml.js +21 -25
- package/dist/deploy/freedesktop/xml.js.map +1 -1
- package/dist/deploy/nfpm/config.d.ts.map +1 -1
- package/dist/deploy/nfpm/config.js +5 -2
- package/dist/deploy/nfpm/config.js.map +1 -1
- package/dist/deploy/nfpm/contents.d.ts.map +1 -1
- package/dist/deploy/nfpm/contents.js +8 -0
- package/dist/deploy/nfpm/contents.js.map +1 -1
- package/dist/deploy/node-runtime/elf.d.ts +2 -1
- package/dist/deploy/node-runtime/elf.d.ts.map +1 -1
- package/dist/deploy/node-runtime/elf.js +32 -5
- package/dist/deploy/node-runtime/elf.js.map +1 -1
- package/dist/deploy/node-runtime/index.d.ts +2 -1
- package/dist/deploy/node-runtime/index.d.ts.map +1 -1
- package/dist/deploy/node-runtime/index.js +73 -4
- package/dist/deploy/node-runtime/index.js.map +1 -1
- package/dist/deploy/node-runtime/license.d.ts.map +1 -1
- package/dist/deploy/node-runtime/license.js +2 -9
- package/dist/deploy/node-runtime/license.js.map +1 -1
- package/dist/deploy/notices/node-runtime.js +2 -2
- package/dist/deploy/notices/node-runtime.js.map +1 -1
- package/dist/deploy/notices/packages.d.ts.map +1 -1
- package/dist/deploy/notices/packages.js +3 -10
- package/dist/deploy/notices/packages.js.map +1 -1
- package/dist/deploy/payload/copy-tree.d.ts.map +1 -1
- package/dist/deploy/payload/copy-tree.js +3 -3
- package/dist/deploy/payload/copy-tree.js.map +1 -1
- package/dist/deploy/payload/launcher.d.ts.map +1 -1
- package/dist/deploy/payload/launcher.js +14 -1
- package/dist/deploy/payload/launcher.js.map +1 -1
- package/dist/deploy/payload/stage.d.ts.map +1 -1
- package/dist/deploy/payload/stage.js +2 -4
- 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 +100 -14
- package/dist/deploy/run-deploy.js.map +1 -1
- package/dist/deploy/settings/build-manifest.d.ts +6 -1
- package/dist/deploy/settings/build-manifest.d.ts.map +1 -1
- package/dist/deploy/settings/build-manifest.js +17 -17
- package/dist/deploy/settings/build-manifest.js.map +1 -1
- package/dist/deploy/settings/extra-files.d.ts +1 -1
- package/dist/deploy/settings/extra-files.d.ts.map +1 -1
- package/dist/deploy/settings/extra-files.js +22 -1
- package/dist/deploy/settings/extra-files.js.map +1 -1
- package/dist/deploy/settings/index.d.ts +1 -0
- 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/libraries.d.ts.map +1 -1
- package/dist/deploy/settings/libraries.js +2 -19
- package/dist/deploy/settings/libraries.js.map +1 -1
- package/dist/deploy/settings/paths.d.ts +2 -2
- package/dist/deploy/settings/paths.d.ts.map +1 -1
- package/dist/deploy/settings/paths.js +110 -12
- package/dist/deploy/settings/paths.js.map +1 -1
- package/dist/deploy/settings/screenshots.d.ts.map +1 -1
- package/dist/deploy/settings/screenshots.js +6 -31
- package/dist/deploy/settings/screenshots.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-source.d.ts.map +1 -1
- package/dist/deploy/targets/flatpak-source.js +15 -6
- package/dist/deploy/targets/flatpak-source.js.map +1 -1
- package/dist/deploy/targets/flatpak-sources.js +1 -1
- package/dist/deploy/targets/flatpak-sources.js.map +1 -1
- package/dist/deploy/types.d.ts +1 -0
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/deploy/types.js.map +1 -1
- package/dist/dev/headless.d.ts +3 -0
- package/dist/dev/headless.d.ts.map +1 -0
- package/dist/dev/headless.js +35 -0
- package/dist/dev/headless.js.map +1 -0
- package/dist/dev/runner-deps.js +1 -1
- package/dist/dev/runner-deps.js.map +1 -1
- package/dist/dev/runner-main.d.ts.map +1 -1
- package/dist/dev/runner-main.js +1 -2
- package/dist/dev/runner-main.js.map +1 -1
- package/dist/dev/schema-dir.d.ts +1 -1
- package/dist/dev/schema-dir.d.ts.map +1 -1
- package/dist/dev/schema-dir.js +2 -4
- package/dist/dev/schema-dir.js.map +1 -1
- package/dist/i18n/catalogs.d.ts.map +1 -1
- package/dist/i18n/catalogs.js +2 -1
- package/dist/i18n/catalogs.js.map +1 -1
- package/dist/i18n/metadata-templates.d.ts.map +1 -1
- package/dist/i18n/metadata-templates.js +2 -1
- package/dist/i18n/metadata-templates.js.map +1 -1
- package/dist/i18n/source-messages.d.ts +3 -21
- package/dist/i18n/source-messages.d.ts.map +1 -1
- package/dist/i18n/source-messages.js +900 -85
- package/dist/i18n/source-messages.js.map +1 -1
- package/dist/i18n/types.d.ts +6 -7
- package/dist/i18n/types.d.ts.map +1 -1
- package/dist/i18n/types.js +83 -96
- package/dist/i18n/types.js.map +1 -1
- package/dist/internal/build-manifest.d.ts +5 -2
- package/dist/internal/build-manifest.d.ts.map +1 -1
- package/dist/internal/build-manifest.js +15 -2
- package/dist/internal/build-manifest.js.map +1 -1
- package/dist/internal/build-output.d.ts +8 -0
- package/dist/internal/build-output.d.ts.map +1 -0
- package/dist/internal/build-output.js +69 -0
- package/dist/internal/build-output.js.map +1 -0
- package/dist/internal/docs-elements.js +2 -2
- package/dist/internal/docs-elements.js.map +1 -1
- package/dist/internal/entry-arg.d.ts +4 -1
- package/dist/internal/entry-arg.d.ts.map +1 -1
- package/dist/internal/entry-arg.js +7 -1
- package/dist/internal/entry-arg.js.map +1 -1
- package/dist/internal/icon-path.d.ts.map +1 -1
- package/dist/internal/icon-path.js +5 -16
- package/dist/internal/icon-path.js.map +1 -1
- package/dist/internal/output-directory.d.ts +15 -0
- package/dist/internal/output-directory.d.ts.map +1 -0
- package/dist/internal/output-directory.js +490 -0
- package/dist/internal/output-directory.js.map +1 -0
- package/dist/internal/prepare-project.d.ts +2 -0
- package/dist/internal/prepare-project.d.ts.map +1 -1
- package/dist/internal/prepare-project.js +3 -3
- package/dist/internal/prepare-project.js.map +1 -1
- package/dist/internal/source-imports.d.ts.map +1 -1
- package/dist/internal/source-imports.js +10 -41
- package/dist/internal/source-imports.js.map +1 -1
- package/dist/mcp/client.js +2 -2
- package/dist/mcp/client.js.map +1 -1
- package/dist/settings/render.d.ts +0 -1
- package/dist/settings/render.d.ts.map +1 -1
- package/dist/settings/render.js +1 -11
- package/dist/settings/render.js.map +1 -1
- package/dist/settings/schema.d.ts +2 -2
- package/dist/settings/schema.d.ts.map +1 -1
- package/dist/settings/schema.js +21 -62
- package/dist/settings/schema.js.map +1 -1
- package/dist/vite-plugins/asset-imports.d.ts +1 -2
- package/dist/vite-plugins/asset-imports.d.ts.map +1 -1
- package/dist/vite-plugins/asset-imports.js +19 -32
- package/dist/vite-plugins/asset-imports.js.map +1 -1
- package/dist/vite-plugins/asset-specifier.d.ts +1 -3
- package/dist/vite-plugins/asset-specifier.d.ts.map +1 -1
- package/dist/vite-plugins/asset-specifier.js +1 -4
- package/dist/vite-plugins/asset-specifier.js.map +1 -1
- package/dist/vite-plugins/build-manifest.d.ts +5 -1
- package/dist/vite-plugins/build-manifest.d.ts.map +1 -1
- package/dist/vite-plugins/build-manifest.js +2 -1
- package/dist/vite-plugins/build-manifest.js.map +1 -1
- package/dist/vite-plugins/i18n.d.ts.map +1 -1
- package/dist/vite-plugins/i18n.js +59 -6
- package/dist/vite-plugins/i18n.js.map +1 -1
- package/dist/vite-plugins/index.d.ts +8 -1
- package/dist/vite-plugins/index.d.ts.map +1 -1
- package/dist/vite-plugins/index.js +8 -6
- package/dist/vite-plugins/index.js.map +1 -1
- package/dist/vite-plugins/resources.d.ts.map +1 -1
- package/dist/vite-plugins/resources.js +32 -97
- package/dist/vite-plugins/resources.js.map +1 -1
- package/dist/vite-plugins/self-contained.d.ts.map +1 -1
- package/dist/vite-plugins/self-contained.js +159 -158
- package/dist/vite-plugins/self-contained.js.map +1 -1
- package/dist/vite-plugins/settings-worker-env.d.ts.map +1 -1
- package/dist/vite-plugins/settings-worker-env.js +2 -4
- package/dist/vite-plugins/settings-worker-env.js.map +1 -1
- package/dist/vite-plugins/settings.d.ts +1 -2
- package/dist/vite-plugins/settings.d.ts.map +1 -1
- package/dist/vite-plugins/settings.js +8 -14
- package/dist/vite-plugins/settings.js.map +1 -1
- package/dist/vite-plugins/undeclared-library.d.ts.map +1 -1
- package/dist/vite-plugins/undeclared-library.js +10 -13
- package/dist/vite-plugins/undeclared-library.js.map +1 -1
- package/dist/vite-plugins/worker.d.ts.map +1 -1
- package/dist/vite-plugins/worker.js +0 -1
- package/dist/vite-plugins/worker.js.map +1 -1
- package/package.json +21 -15
- package/src/builder.ts +18 -5
- package/src/cli.ts +3 -0
- package/src/codegen/freshness.ts +66 -17
- package/src/codegen/reference.ts +1 -8
- package/src/codegen/report.ts +5 -21
- package/src/codegen/run-codegen.ts +42 -151
- package/src/codegen/store-resolver.ts +10 -26
- package/src/commands/build.ts +13 -2
- package/src/commands/codegen.ts +6 -5
- package/src/commands/deploy.ts +4 -2
- package/src/commands/dev.ts +20 -1
- package/src/commands/docs.ts +5 -17
- package/src/deploy/freedesktop/copyright.ts +2 -14
- package/src/deploy/freedesktop/metainfo.ts +73 -21
- package/src/deploy/freedesktop/xml.ts +24 -32
- package/src/deploy/nfpm/config.ts +5 -2
- package/src/deploy/nfpm/contents.ts +8 -0
- package/src/deploy/node-runtime/elf.ts +43 -5
- package/src/deploy/node-runtime/index.ts +105 -5
- package/src/deploy/node-runtime/license.ts +2 -8
- package/src/deploy/notices/node-runtime.ts +2 -2
- package/src/deploy/notices/packages.ts +3 -11
- package/src/deploy/payload/copy-tree.ts +3 -4
- package/src/deploy/payload/launcher.ts +20 -1
- package/src/deploy/payload/stage.ts +3 -7
- package/src/deploy/run-deploy.ts +56 -16
- package/src/deploy/settings/build-manifest.ts +30 -17
- package/src/deploy/settings/extra-files.ts +26 -2
- package/src/deploy/settings/index.ts +3 -1
- package/src/deploy/settings/libraries.ts +1 -22
- package/src/deploy/settings/paths.ts +68 -13
- package/src/deploy/settings/screenshots.ts +8 -46
- package/src/deploy/targets/flatpak-pnpm.ts +4 -4
- package/src/deploy/targets/flatpak-source.ts +17 -6
- package/src/deploy/targets/flatpak-sources.ts +1 -1
- package/src/deploy/types.ts +1 -0
- package/src/dev/headless.ts +40 -0
- package/src/dev/runner-deps.ts +1 -1
- package/src/dev/runner-main.ts +1 -2
- package/src/dev/schema-dir.ts +2 -4
- package/src/i18n/catalogs.ts +2 -1
- package/src/i18n/metadata-templates.ts +2 -1
- package/src/i18n/source-messages.ts +1442 -262
- package/src/i18n/types.ts +97 -131
- package/src/internal/build-manifest.ts +25 -1
- package/src/internal/build-output.ts +99 -0
- package/src/internal/docs-elements.ts +2 -2
- package/src/internal/entry-arg.ts +8 -1
- package/src/internal/icon-path.ts +6 -19
- package/src/internal/output-directory.ts +699 -0
- package/src/internal/prepare-project.ts +5 -5
- package/src/internal/source-imports.ts +14 -50
- package/src/mcp/client.ts +2 -2
- package/src/settings/render.ts +1 -13
- package/src/settings/schema.ts +19 -81
- package/src/vite-plugins/asset-imports.ts +20 -44
- package/src/vite-plugins/asset-specifier.ts +0 -5
- package/src/vite-plugins/build-manifest.ts +7 -1
- package/src/vite-plugins/i18n.ts +87 -5
- package/src/vite-plugins/index.ts +16 -11
- package/src/vite-plugins/resources.ts +37 -140
- package/src/vite-plugins/self-contained.ts +184 -185
- package/src/vite-plugins/settings-worker-env.ts +2 -4
- package/src/vite-plugins/settings.ts +11 -20
- package/src/vite-plugins/undeclared-library.ts +14 -20
- package/src/vite-plugins/worker.ts +0 -1
- package/dist/i18n/binding-extractor.d.ts +0 -30
- package/dist/i18n/binding-extractor.d.ts.map +0 -1
- package/dist/i18n/binding-extractor.js +0 -1324
- package/dist/i18n/binding-extractor.js.map +0 -1
- package/dist/i18n/extractor-plugin.d.ts +0 -8
- package/dist/i18n/extractor-plugin.d.ts.map +0 -1
- package/dist/i18n/extractor-plugin.js +0 -247
- package/dist/i18n/extractor-plugin.js.map +0 -1
- package/dist/internal/data-dir.d.ts +0 -4
- package/dist/internal/data-dir.d.ts.map +0 -1
- package/dist/internal/data-dir.js +0 -52
- package/dist/internal/data-dir.js.map +0 -1
- package/dist/vite-plugins/animated.d.ts +0 -5
- package/dist/vite-plugins/animated.d.ts.map +0 -1
- package/dist/vite-plugins/animated.js +0 -325
- package/dist/vite-plugins/animated.js.map +0 -1
- package/src/i18n/binding-extractor.ts +0 -1969
- package/src/i18n/extractor-plugin.ts +0 -413
- package/src/internal/data-dir.ts +0 -70
- package/src/vite-plugins/animated.ts +0 -486
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packages.js","sourceRoot":"","sources":["../../../src/deploy/notices/packages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG1C,OAAO,EAAwB,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAY1D,MAAM,iBAAiB,GAAG,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"packages.js","sourceRoot":"","sources":["../../../src/deploy/notices/packages.ts"],"names":[],"mappings":"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","sourcesContent":["import { sortStringsBy, warn } from \"@gtkx/utils\";\nimport hostedGitInfo from \"hosted-git-info\";\nimport { existsSync, realpathSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport type { RecordedPackage } from \"../../internal/build-manifest.js\";\nimport type { DeploySettings } from \"../types.js\";\nimport { type PackageManifest, readPackageManifest } from \"../settings/package-manifest.js\";\nimport { copyrightLines, licenseTextIn } from \"./text.js\";\n\ntype BundledPackage = {\n name: string;\n version: string | null;\n license: string | null;\n source: string | null;\n copyright: string[];\n text: string | null;\n isPresent: boolean;\n};\n\nconst MANIFEST_FILENAME = \"package.json\";\n\nconst realPath = (path: string): string => {\n try {\n return realpathSync(path);\n } catch {\n return path;\n }\n};\n\nconst authorLine = (manifest: PackageManifest): string[] => {\n const { name, email } = manifest.author;\n\n if (name === null) {\n return [];\n }\n\n return [email === null ? name : `${name} <${email}>`];\n};\n\nconst sourceUrl = (manifest: PackageManifest): string | null => {\n const configured = manifest.repository ?? manifest.homepage;\n\n if (configured === null) {\n return null;\n }\n\n const url = configured.replace(/^git\\+/, \"\").replace(/\\.git$/, \"\").replace(/^git:\\/\\//, \"https://\");\n\n return hostedGitInfo.fromUrl(url)?.browse() ?? (url.startsWith(\"http\") ? url : null);\n};\n\nconst missingPackage = (entry: RecordedPackage): BundledPackage => ({\n name: entry.name,\n version: entry.version,\n license: null,\n source: null,\n copyright: [],\n text: null,\n isPresent: false,\n});\n\nconst packageIn = (entry: RecordedPackage, dir: string): BundledPackage => {\n if (!existsSync(join(dir, MANIFEST_FILENAME))) {\n return missingPackage(entry);\n }\n\n const manifest = readPackageManifest(dir);\n const text = licenseTextIn(dir);\n const copyright = copyrightLines(text);\n\n return {\n name: manifest.name ?? entry.name,\n version: manifest.version ?? entry.version,\n license: manifest.license,\n source: sourceUrl(manifest),\n copyright: copyright.length === 0 ? authorLine(manifest) : copyright,\n text,\n isPresent: true,\n };\n};\n\nconst keyFor = (entry: BundledPackage): string => `${entry.name}@${entry.version ?? \"\"}`;\n\nconst dedupe = (entries: BundledPackage[]): BundledPackage[] => {\n const unique: Map<string, BundledPackage> = new Map();\n\n for (const entry of entries) {\n unique.set(keyFor(entry), entry);\n }\n\n return sortStringsBy(unique.values(), keyFor);\n};\n\nconst warnMissing = (entries: BundledPackage[]): void => {\n const missing = entries.filter((entry) => !entry.isPresent);\n\n if (missing.length === 0) {\n return;\n }\n\n warn(\n `The third-party notices name ${missing.map((entry) => keyFor(entry)).join(\", \")} without any license: ` +\n \"`gtkx build` recorded where each package was installed and those directories are no longer there. \" +\n \"Deploy from the tree the build ran in, or build again, so the notices carry their terms.\",\n );\n};\n\nconst bundledPackages = (settings: DeploySettings, recorded: RecordedPackage[]): BundledPackage[] => {\n const root = realPath(settings.paths.root);\n\n const entries = recorded\n .map((entry) => ({ entry, dir: resolve(settings.paths.dist, entry.dir) }))\n .filter(({ dir }) => realPath(dir) !== root)\n .map(({ entry, dir }) => packageIn(entry, dir));\n\n const bundled = dedupe(entries);\n warnMissing(bundled);\n\n return bundled;\n};\n\nexport { type BundledPackage, bundledPackages };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-tree.d.ts","sourceRoot":"","sources":["../../../src/deploy/payload/copy-tree.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"copy-tree.d.ts","sourceRoot":"","sources":["../../../src/deploy/payload/copy-tree.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,QAAA,MAAM,eAAe,MAAQ,CAAC;AA4B9B,QAAA,MAAM,QAAQ,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM,EAAE,QAAQ,MAAM,EAAE,aAAmB,KAAG,UAG7E,CAAC;AAEP,QAAA,MAAM,SAAS,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM,EAAE,UAAU,MAAM,EAAE,aAAoB,KAAG,UAGjF,CAAC;AAIP,QAAA,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,MACmC,CAAC;AAE9E,QAAA,MAAM,QAAQ,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,EAAE,WAAW,MAAM,KAAG,UAAU,EAEwB,CAAC;AAExG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { isPathInside } from "@gtkx/utils";
|
|
1
2
|
import { chmodSync, copyFileSync, mkdirSync, statSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { dirname,
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
3
4
|
import { listFilesRecursive } from "../../internal/list-files.js";
|
|
4
5
|
const EXECUTABLE_MODE = 0o755;
|
|
5
6
|
const READABLE_MODE = 0o644;
|
|
@@ -11,8 +12,7 @@ const modeFor = (rel) => {
|
|
|
11
12
|
return EXECUTABLE_SUFFIXES.some((suffix) => name.endsWith(suffix)) ? EXECUTABLE_MODE : READABLE_MODE;
|
|
12
13
|
};
|
|
13
14
|
const assertInsideRoot = (root, rel, abs) => {
|
|
14
|
-
|
|
15
|
-
if (escape.length === 0 || escape.startsWith("..") || isAbsolute(escape)) {
|
|
15
|
+
if (!isPathInside(root, abs)) {
|
|
16
16
|
throw new Error(`Cannot stage "${rel}": it resolves outside the staging directory`);
|
|
17
17
|
}
|
|
18
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-tree.js","sourceRoot":"","sources":["../../../src/deploy/payload/copy-tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"copy-tree.js","sourceRoot":"","sources":["../../../src/deploy/payload/copy-tree.ts"],"names":[],"mappings":"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","sourcesContent":["import { isPathInside } from \"@gtkx/utils\";\nimport { chmodSync, copyFileSync, mkdirSync, statSync, writeFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport type { StagedFile } from \"../types.js\";\nimport { listFilesRecursive } from \"../../internal/list-files.js\";\n\nconst EXECUTABLE_MODE = 0o755;\nconst READABLE_MODE = 0o644;\nconst EXECUTABLE_SUFFIXES = [\".node\", \".so\"];\nconst MODE_MASK = 0o7777;\nconst EXECUTE_MASK = 0o111;\n\nconst modeFor = (rel: string): number => {\n const name = rel.split(\"/\").at(-1) ?? rel;\n\n return EXECUTABLE_SUFFIXES.some((suffix) => name.endsWith(suffix)) ? EXECUTABLE_MODE : READABLE_MODE;\n};\n\nconst assertInsideRoot = (root: string, rel: string, abs: string): void => {\n if (!isPathInside(root, abs)) {\n throw new Error(`Cannot stage \"${rel}\": it resolves outside the staging directory`);\n }\n};\n\nconst placeFile = (root: string, rel: string, mode: number, write: (target: string) => void): StagedFile => {\n const abs = join(root, rel);\n assertInsideRoot(root, rel, abs);\n mkdirSync(dirname(abs), { recursive: true });\n write(abs);\n chmodSync(abs, mode);\n\n return { rel, abs, mode };\n};\n\nconst copyInto = (root: string, rel: string, source: string, mode = modeFor(rel)): StagedFile =>\n placeFile(root, rel, mode, (target) => {\n copyFileSync(source, target);\n });\n\nconst writeInto = (root: string, rel: string, contents: string, mode = READABLE_MODE): StagedFile =>\n placeFile(root, rel, mode, (target) => {\n writeFileSync(target, contents);\n });\n\nconst sourceMode = (path: string): number => statSync(path).mode & MODE_MASK;\n\nconst executableModeFor = (path: string): number =>\n (sourceMode(path) & EXECUTE_MASK) === 0 ? READABLE_MODE : EXECUTABLE_MODE;\n\nconst copyTree = (root: string, relBase: string, sourceDir: string): StagedFile[] =>\n listFilesRecursive(sourceDir)\n .map((file) => copyInto(root, join(relBase, file.rel), file.absPath, sourceMode(file.absPath)));\n\nexport { copyInto, copyTree, EXECUTABLE_MODE, executableModeFor, writeInto };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../../src/deploy/payload/launcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,QAAA,MAAM,aAAa,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../../src/deploy/payload/launcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,QAAA,MAAM,aAAa,SAAS,CAAC;AA0B7B,QAAA,MAAM,cAAc,GAAI,UAAU,cAAc,KAAG,MAgBlD,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import { BUNDLE_FILENAME } from "../../vite-plugins/esm-extension.js";
|
|
2
2
|
const NODE_FILENAME = "node";
|
|
3
|
+
const SHELL_SINGLE_QUOTE = "'";
|
|
4
|
+
const SHELL_SINGLE_QUOTE_ESCAPE = "'\"'\"'";
|
|
3
5
|
const compileCacheLines = (binaryName) => [
|
|
4
6
|
"cache_home=${XDG_CACHE_HOME:-${HOME:-/tmp}/.cache}",
|
|
5
7
|
`NODE_COMPILE_CACHE="$cache_home/${binaryName}/node"`,
|
|
6
8
|
"export NODE_COMPILE_CACHE",
|
|
7
9
|
];
|
|
10
|
+
const shellQuote = (value) => SHELL_SINGLE_QUOTE + value.split(SHELL_SINGLE_QUOTE).join(SHELL_SINGLE_QUOTE_ESCAPE) + SHELL_SINGLE_QUOTE;
|
|
11
|
+
const launcherEnvLines = (settings) => Object.entries(settings.deploy.launcherEnv ?? {})
|
|
12
|
+
.toSorted(([left], [right]) => left.localeCompare(right))
|
|
13
|
+
.map(([name, value]) => `export ${name}=${shellQuote(value)}`);
|
|
14
|
+
const launcherCommand = (settings, libDir) => [
|
|
15
|
+
`"${libDir}/${NODE_FILENAME}"`,
|
|
16
|
+
...(settings.deploy.nodeFlags ?? []).map((flag) => shellQuote(flag)),
|
|
17
|
+
`"${libDir}/${BUNDLE_FILENAME}"`,
|
|
18
|
+
'"$@"',
|
|
19
|
+
].join(" ");
|
|
8
20
|
const renderLauncher = (settings) => {
|
|
9
21
|
const libDir = `$prefix/lib/${settings.binaryName}`;
|
|
10
22
|
const shouldUseCompileCache = settings.deploy.node?.shouldUseCompileCache !== false;
|
|
@@ -16,7 +28,8 @@ const renderLauncher = (settings) => {
|
|
|
16
28
|
'GTKX_LOCALE_DIR="$prefix/share/locale"',
|
|
17
29
|
"export GTKX_LOCALE_DIR",
|
|
18
30
|
...(shouldUseCompileCache ? compileCacheLines(settings.binaryName) : []),
|
|
19
|
-
|
|
31
|
+
...launcherEnvLines(settings),
|
|
32
|
+
`exec ${launcherCommand(settings, libDir)}`,
|
|
20
33
|
"",
|
|
21
34
|
].join("\n");
|
|
22
35
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../../src/deploy/payload/launcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAEtE,MAAM,aAAa,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../../src/deploy/payload/launcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAEtE,MAAM,aAAa,GAAG,MAAM,CAAC;AAC7B,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,yBAAyB,GAAG,SAAS,CAAC;AAE5C,MAAM,iBAAiB,GAAG,CAAC,UAAkB,EAAY,EAAE,CAAC;IACxD,oDAAoD;IACpD,mCAAmC,UAAU,QAAQ;IACrD,2BAA2B;CAC9B,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE,CACzC,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,kBAAkB,CAAC;AAE9G,MAAM,gBAAgB,GAAG,CAAC,QAAwB,EAAY,EAAE,CAC5D,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;KAC5C,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KACxD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,UAAU,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAEvE,MAAM,eAAe,GAAG,CAAC,QAAwB,EAAE,MAAc,EAAU,EAAE,CACzE;IACI,IAAI,MAAM,IAAI,aAAa,GAAG;IAC9B,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACpE,IAAI,MAAM,IAAI,eAAe,GAAG;IAChC,MAAM;CACT,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEhB,MAAM,cAAc,GAAG,CAAC,QAAwB,EAAU,EAAE;IACxD,MAAM,MAAM,GAAG,eAAe,QAAQ,CAAC,UAAU,EAAE,CAAC;IACpD,MAAM,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,KAAK,KAAK,CAAC;IAEpF,OAAO;QACH,WAAW;QACX,QAAQ;QACR,0BAA0B;QAC1B,wCAAwC;QACxC,wCAAwC;QACxC,wBAAwB;QACxB,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QAC7B,QAAQ,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;QAC3C,EAAE;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC","sourcesContent":["import type { DeploySettings } from \"../types.js\";\nimport { BUNDLE_FILENAME } from \"../../vite-plugins/esm-extension.js\";\n\nconst NODE_FILENAME = \"node\";\nconst SHELL_SINGLE_QUOTE = \"'\";\nconst SHELL_SINGLE_QUOTE_ESCAPE = \"'\\\"'\\\"'\";\n\nconst compileCacheLines = (binaryName: string): string[] => [\n \"cache_home=${XDG_CACHE_HOME:-${HOME:-/tmp}/.cache}\",\n `NODE_COMPILE_CACHE=\"$cache_home/${binaryName}/node\"`,\n \"export NODE_COMPILE_CACHE\",\n];\n\nconst shellQuote = (value: string): string =>\n SHELL_SINGLE_QUOTE + value.split(SHELL_SINGLE_QUOTE).join(SHELL_SINGLE_QUOTE_ESCAPE) + SHELL_SINGLE_QUOTE;\n\nconst launcherEnvLines = (settings: DeploySettings): string[] =>\n Object.entries(settings.deploy.launcherEnv ?? {})\n .toSorted(([left], [right]) => left.localeCompare(right))\n .map(([name, value]) => `export ${name}=${shellQuote(value)}`);\n\nconst launcherCommand = (settings: DeploySettings, libDir: string): string =>\n [\n `\"${libDir}/${NODE_FILENAME}\"`,\n ...(settings.deploy.nodeFlags ?? []).map((flag) => shellQuote(flag)),\n `\"${libDir}/${BUNDLE_FILENAME}\"`,\n '\"$@\"',\n ].join(\" \");\n\nconst renderLauncher = (settings: DeploySettings): string => {\n const libDir = `$prefix/lib/${settings.binaryName}`;\n const shouldUseCompileCache = settings.deploy.node?.shouldUseCompileCache !== false;\n\n return [\n \"#!/bin/sh\",\n \"set -e\",\n 'self=$(readlink -f \"$0\")',\n 'prefix=$(dirname \"$(dirname \"$self\")\")',\n 'GTKX_LOCALE_DIR=\"$prefix/share/locale\"',\n \"export GTKX_LOCALE_DIR\",\n ...(shouldUseCompileCache ? compileCacheLines(settings.binaryName) : []),\n ...launcherEnvLines(settings),\n `exec ${launcherCommand(settings, libDir)}`,\n \"\",\n ].join(\"\\n\");\n};\n\nexport { NODE_FILENAME, renderLauncher };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../../src/deploy/payload/stage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAa5G,KAAK,YAAY,GAAG;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;CAC5B,CAAC;AAEF,KAAK,cAAc,GAAG;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;
|
|
1
|
+
{"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../../src/deploy/payload/stage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAa5G,KAAK,YAAY,GAAG;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;CAC5B,CAAC;AAEF,KAAK,cAAc,GAAG;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAGF,QAAA,MAAM,gBAAgB,wBAAwB,CAAC;AAmB/C,QAAA,MAAM,kBAAkB,GAAI,UAAU,cAAc,KAAG,MAA8C,CAAC;AACtG,QAAA,MAAM,kBAAkB,GAAI,UAAU,cAAc,KAAG,MAA0D,CAAC;AAIlH,QAAA,MAAM,sBAAsB,GAAI,UAAU,cAAc,KAAG,MACe,CAAC;AA+C3E,QAAA,MAAM,YAAY,GAAI,8BAA8B,YAAY,KAAG,UAAU,EAc5E,CAAC;AA0DF,QAAA,MAAM,aAAa,GACf,UAAU,cAAc,EACxB,SAAS,aAAa,EAAE,EACxB,UAAU,cAAc,KACzB,MAAM,CAAC,gBAAgB,EAAE,UAAU,EAAE,CAKtC,CAAC;AAEH,OAAO,EACH,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,cAAc,EACnB,aAAa,EACb,YAAY,GACf,CAAC"}
|
|
@@ -13,7 +13,6 @@ import { stageIcons } from "./icons.js";
|
|
|
13
13
|
import { NODE_FILENAME, renderLauncher } from "./launcher.js";
|
|
14
14
|
import { stageSchemas } from "./schemas.js";
|
|
15
15
|
const DIST_ICONS_DIR = "icons";
|
|
16
|
-
const LEGACY_PACKAGES_MANIFEST_FILENAME = "gtkx-packages.json";
|
|
17
16
|
const NOTICES_FILENAME = "THIRD-PARTY-NOTICES";
|
|
18
17
|
const NODE_LICENSE_FILENAME = "LICENSE";
|
|
19
18
|
const SHARE_APPLICATIONS = "share/applications";
|
|
@@ -34,7 +33,6 @@ const licenseDirFor = (settings) => `${SHARE_LICENSES}/${settings.binaryName}`;
|
|
|
34
33
|
const licenseDestination = (settings) => `${licenseDirFor(settings)}/LICENSE`;
|
|
35
34
|
const noticesDestination = (settings) => `${licenseDirFor(settings)}/${NOTICES_FILENAME}`;
|
|
36
35
|
const isIconAsset = (rel) => rel === DIST_ICONS_DIR || rel.startsWith(`${DIST_ICONS_DIR}/`);
|
|
37
|
-
const isBuildMetadata = (rel) => rel === BUILD_MANIFEST_FILENAME || rel === LEGACY_PACKAGES_MANIFEST_FILENAME;
|
|
38
36
|
const isLocaleAsset = (rel) => rel === LOCALE_DIRNAME || rel.startsWith(`${LOCALE_DIRNAME}/`);
|
|
39
37
|
const nodeLicenseDestination = (settings) => `${licenseDirFor(settings)}/${NODE_FILENAME}/${NODE_LICENSE_FILENAME}`;
|
|
40
38
|
const stageRuntimeFiles = (settings, root) => {
|
|
@@ -43,7 +41,7 @@ const stageRuntimeFiles = (settings, root) => {
|
|
|
43
41
|
throw new Error(`Cannot deploy: ${join(dist, BUNDLE_FILENAME)} is missing. Run \`gtkx build\` first.`);
|
|
44
42
|
}
|
|
45
43
|
return listFilesRecursive(dist)
|
|
46
|
-
.filter((file) => !isIconAsset(file.rel) &&
|
|
44
|
+
.filter((file) => !isIconAsset(file.rel) && file.rel !== BUILD_MANIFEST_FILENAME && !isLocaleAsset(file.rel))
|
|
47
45
|
.map((file) => copyInto(root, join(libDirFor(settings), file.rel), file.absPath));
|
|
48
46
|
};
|
|
49
47
|
const stageCatalogs = (settings, root) => listFilesRecursive(join(settings.paths.dist, LOCALE_DIRNAME))
|
|
@@ -75,10 +73,10 @@ const stagePayload = ({ settings, node, metadata }) => {
|
|
|
75
73
|
...stageNodeBinary(settings, root, node),
|
|
76
74
|
...stageRuntimeFiles(settings, root),
|
|
77
75
|
...stageCatalogs(settings, root),
|
|
76
|
+
...stageExtraFiles(settings, root),
|
|
78
77
|
...stageMetadata(settings, root, metadata),
|
|
79
78
|
...stageIcons(settings, root),
|
|
80
79
|
...stageSchemas(settings, root),
|
|
81
|
-
...stageExtraFiles(settings, root),
|
|
82
80
|
]);
|
|
83
81
|
};
|
|
84
82
|
const withoutDbusActivation = (desktopEntry) => desktopEntry
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage.js","sourceRoot":"","sources":["../../../src/deploy/payload/stage.ts"],"names":[],"mappings":"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","sourcesContent":["import { sortStringsBy } from \"@gtkx/utils\";\nimport { existsSync, rmSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport type { DeploySettings, DeployTargetName, NodeRuntime, NoticeSection, StagedFile } from \"../types.js\";\nimport { LOCALE_DIRNAME } from \"../../i18n/catalogs.js\";\nimport { BUILD_MANIFEST_FILENAME } from \"../../internal/build-manifest.js\";\nimport { listFilesRecursive } from \"../../internal/list-files.js\";\nimport { BUNDLE_FILENAME } from \"../../vite-plugins/esm-extension.js\";\nimport { renderCopyright } from \"../freedesktop/copyright.js\";\nimport { renderDbusService } from \"../freedesktop/dbus-service.js\";\nimport { renderNotices } from \"../notices/render.js\";\nimport { copyInto, EXECUTABLE_MODE, executableModeFor, writeInto } from \"./copy-tree.js\";\nimport { stageIcons } from \"./icons.js\";\nimport { NODE_FILENAME, renderLauncher } from \"./launcher.js\";\nimport { stageSchemas } from \"./schemas.js\";\n\ntype StageRequest = {\n settings: DeploySettings;\n node: NodeRuntime | null;\n metadata: StagedMetadata;\n};\n\ntype StagedMetadata = {\n desktopEntry: string;\n metainfo: string;\n mimePackage: string | null;\n};\n\nconst DIST_ICONS_DIR = \"icons\";\nconst LEGACY_PACKAGES_MANIFEST_FILENAME = \"gtkx-packages.json\";\nconst NOTICES_FILENAME = \"THIRD-PARTY-NOTICES\";\nconst NODE_LICENSE_FILENAME = \"LICENSE\";\nconst SHARE_APPLICATIONS = \"share/applications\";\nconst SHARE_METAINFO = \"share/metainfo\";\nconst SHARE_MIME_PACKAGES = \"share/mime/packages\";\nconst SHARE_DOC = \"share/doc\";\nconst SHARE_LICENSES = \"share/licenses\";\nconst SHARE_DBUS_SERVICES = \"share/dbus-1/services\";\nconst SHARE_LOCALE = `share/${LOCALE_DIRNAME}`;\n\nconst PREFIX_FOR: Record<DeployTargetName, string> = {\n appimage: \"/usr\",\n deb: \"/usr\",\n flatpak: \"/app\",\n rpm: \"/usr\",\n};\n\nconst libDirFor = (settings: DeploySettings): string => `lib/${settings.binaryName}`;\nconst licenseDirFor = (settings: DeploySettings): string => `${SHARE_LICENSES}/${settings.binaryName}`;\nconst licenseDestination = (settings: DeploySettings): string => `${licenseDirFor(settings)}/LICENSE`;\nconst noticesDestination = (settings: DeploySettings): string => `${licenseDirFor(settings)}/${NOTICES_FILENAME}`;\nconst isIconAsset = (rel: string): boolean => rel === DIST_ICONS_DIR || rel.startsWith(`${DIST_ICONS_DIR}/`);\n\nconst isBuildMetadata = (rel: string): boolean =>\n rel === BUILD_MANIFEST_FILENAME || rel === LEGACY_PACKAGES_MANIFEST_FILENAME;\n\nconst isLocaleAsset = (rel: string): boolean => rel === LOCALE_DIRNAME || rel.startsWith(`${LOCALE_DIRNAME}/`);\n\nconst nodeLicenseDestination = (settings: DeploySettings): string =>\n `${licenseDirFor(settings)}/${NODE_FILENAME}/${NODE_LICENSE_FILENAME}`;\n\nconst stageRuntimeFiles = (settings: DeploySettings, root: string): StagedFile[] => {\n const dist = settings.paths.dist;\n\n if (!existsSync(join(dist, BUNDLE_FILENAME))) {\n throw new Error(`Cannot deploy: ${join(dist, BUNDLE_FILENAME)} is missing. Run \\`gtkx build\\` first.`);\n }\n\n return listFilesRecursive(dist)\n .filter((file) => !isIconAsset(file.rel) && !isBuildMetadata(file.rel) && !isLocaleAsset(file.rel))\n .map((file) => copyInto(root, join(libDirFor(settings), file.rel), file.absPath));\n};\n\nconst stageCatalogs = (settings: DeploySettings, root: string): StagedFile[] =>\n listFilesRecursive(join(settings.paths.dist, LOCALE_DIRNAME))\n .map((file) => copyInto(root, join(SHARE_LOCALE, file.rel), file.absPath));\n\nconst stageNodeBinary = (settings: DeploySettings, root: string, node: NodeRuntime | null): StagedFile[] =>\n node === null ? [] : [copyInto(root, join(libDirFor(settings), NODE_FILENAME), node.path, EXECUTABLE_MODE)];\n\nconst stageMetadata = (settings: DeploySettings, root: string, metadata: StagedMetadata): StagedFile[] => [\n writeInto(root, join(SHARE_APPLICATIONS, `${settings.applicationId}.desktop`), metadata.desktopEntry),\n writeInto(root, join(SHARE_METAINFO, `${settings.applicationId}.metainfo.xml`), metadata.metainfo),\n ...(metadata.mimePackage === null\n ? []\n : [writeInto(root, join(SHARE_MIME_PACKAGES, `${settings.applicationId}.xml`), metadata.mimePackage)]),\n];\n\nconst stageExtraFiles = (settings: DeploySettings, root: string): StagedFile[] =>\n settings.extraFiles.map((file) => {\n const source = resolve(settings.paths.root, file.source);\n\n return copyInto(root, file.destination, source, file.mode ?? executableModeFor(source));\n });\n\nconst byRelativePath = (files: StagedFile[]): StagedFile[] => {\n const latest: Map<string, StagedFile> = new Map();\n\n for (const file of files) {\n latest.set(file.rel, file);\n }\n\n return sortStringsBy(latest.values(), (file) => file.rel);\n};\n\nconst stagePayload = ({ settings, node, metadata }: StageRequest): StagedFile[] => {\n const root = settings.paths.stage;\n rmSync(root, { recursive: true, force: true, maxRetries: 5 });\n\n return byRelativePath([\n writeInto(root, join(\"bin\", settings.binaryName), renderLauncher(settings), EXECUTABLE_MODE),\n ...stageNodeBinary(settings, root, node),\n ...stageRuntimeFiles(settings, root),\n ...stageCatalogs(settings, root),\n ...stageMetadata(settings, root, metadata),\n ...stageIcons(settings, root),\n ...stageSchemas(settings, root),\n ...stageExtraFiles(settings, root),\n ]);\n};\n\nconst withoutDbusActivation = (desktopEntry: string): string =>\n desktopEntry\n .split(\"\\n\")\n .filter((line) => line !== \"DBusActivatable=true\")\n .join(\"\\n\");\n\nconst stageActivation = (\n settings: DeploySettings,\n root: string,\n target: DeployTargetName,\n metadata: StagedMetadata,\n): StagedFile[] => {\n if (!settings.isDbusActivatable) {\n return [];\n }\n\n if (target === \"appimage\") {\n return [writeInto(\n root,\n join(SHARE_APPLICATIONS, `${settings.applicationId}.desktop`),\n withoutDbusActivation(metadata.desktopEntry),\n )];\n }\n\n return [writeInto(\n root,\n join(SHARE_DBUS_SERVICES, `${settings.applicationId}.service`),\n renderDbusService(settings, PREFIX_FOR[target]),\n )];\n};\n\nconst stageOverlay = (\n settings: DeploySettings,\n target: DeployTargetName,\n notices: NoticeSection[],\n metadata: StagedMetadata,\n): StagedFile[] => {\n const root = join(settings.paths.overlay, target);\n rmSync(root, { recursive: true, force: true, maxRetries: 5 });\n const licenseFile = settings.paths.licenseFile;\n const activation = stageActivation(settings, root, target, metadata);\n\n if (target === \"deb\") {\n return [\n ...activation,\n writeInto(root, join(SHARE_DOC, settings.binaryName, \"copyright\"), renderCopyright(settings, notices)),\n ];\n }\n\n return [\n ...activation,\n ...(licenseFile === null ? [] : [copyInto(root, licenseDestination(settings), licenseFile)]),\n writeInto(root, noticesDestination(settings), renderNotices(settings, notices)),\n ];\n};\n\nconst stageOverlays = (\n settings: DeploySettings,\n notices: NoticeSection[],\n metadata: StagedMetadata,\n): Record<DeployTargetName, StagedFile[]> => ({\n appimage: stageOverlay(settings, \"appimage\", notices, metadata),\n deb: stageOverlay(settings, \"deb\", notices, metadata),\n flatpak: stageOverlay(settings, \"flatpak\", notices, metadata),\n rpm: stageOverlay(settings, \"rpm\", notices, metadata),\n});\n\nexport {\n licenseDestination,\n nodeLicenseDestination,\n NOTICES_FILENAME,\n noticesDestination,\n type StagedMetadata,\n stageOverlays,\n stagePayload,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"stage.js","sourceRoot":"","sources":["../../../src/deploy/payload/stage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAc5C,MAAM,cAAc,GAAG,OAAO,CAAC;AAC/B,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;AAC/C,MAAM,qBAAqB,GAAG,SAAS,CAAC;AACxC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAChD,MAAM,cAAc,GAAG,gBAAgB,CAAC;AACxC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAClD,MAAM,SAAS,GAAG,WAAW,CAAC;AAC9B,MAAM,cAAc,GAAG,gBAAgB,CAAC;AACxC,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AACpD,MAAM,YAAY,GAAG,SAAS,cAAc,EAAE,CAAC;AAE/C,MAAM,UAAU,GAAqC;IACjD,QAAQ,EAAE,MAAM;IAChB,GAAG,EAAE,MAAM;IACX,OAAO,EAAE,MAAM;IACf,GAAG,EAAE,MAAM;CACd,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,QAAwB,EAAU,EAAE,CAAC,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC;AACrF,MAAM,aAAa,GAAG,CAAC,QAAwB,EAAU,EAAE,CAAC,GAAG,cAAc,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;AACvG,MAAM,kBAAkB,GAAG,CAAC,QAAwB,EAAU,EAAE,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;AACtG,MAAM,kBAAkB,GAAG,CAAC,QAAwB,EAAU,EAAE,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC;AAClH,MAAM,WAAW,GAAG,CAAC,GAAW,EAAW,EAAE,CAAC,GAAG,KAAK,cAAc,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,CAAC,CAAC;AAC7G,MAAM,aAAa,GAAG,CAAC,GAAW,EAAW,EAAE,CAAC,GAAG,KAAK,cAAc,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,CAAC,CAAC;AAE/G,MAAM,sBAAsB,GAAG,CAAC,QAAwB,EAAU,EAAE,CAChE,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,aAAa,IAAI,qBAAqB,EAAE,CAAC;AAE3E,MAAM,iBAAiB,GAAG,CAAC,QAAwB,EAAE,IAAY,EAAgB,EAAE;IAC/E,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;IAEjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,wCAAwC,CAAC,CAAC;IAC3G,CAAC;IAED,OAAO,kBAAkB,CAAC,IAAI,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACb,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,uBAAuB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC9F,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1F,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,QAAwB,EAAE,IAAY,EAAgB,EAAE,CAC3E,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;KACxD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAEnF,MAAM,eAAe,GAAG,CAAC,QAAwB,EAAE,IAAY,EAAE,IAAwB,EAAgB,EAAE,CACvG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;AAEhH,MAAM,aAAa,GAAG,CAAC,QAAwB,EAAE,IAAY,EAAE,QAAwB,EAAgB,EAAE,CAAC;IACtG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,GAAG,QAAQ,CAAC,aAAa,UAAU,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC;IACrG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,GAAG,QAAQ,CAAC,aAAa,eAAe,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAClG,GAAG,CAAC,QAAQ,CAAC,WAAW,KAAK,IAAI;QAC7B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAAE,GAAG,QAAQ,CAAC,aAAa,MAAM,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;CAC7G,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,QAAwB,EAAE,IAAY,EAAgB,EAAE,CAC7E,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAEzD,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5F,CAAC,CAAC,CAAC;AAEP,MAAM,cAAc,GAAG,CAAC,KAAmB,EAAgB,EAAE;IACzD,MAAM,MAAM,GAA4B,IAAI,GAAG,EAAE,CAAC;IAElD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAgB,EAAgB,EAAE;IAC9E,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;IAClC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IAE9D,OAAO,cAAc,CAAC;QAClB,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;QAC5F,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC;QACxC,GAAG,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC;QACpC,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC;QAChC,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC;QAClC,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC;QAC1C,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC;QAC7B,GAAG,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC;KAClC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,YAAoB,EAAU,EAAE,CAC3D,YAAY;KACP,KAAK,CAAC,IAAI,CAAC;KACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC;KACjD,IAAI,CAAC,IAAI,CAAC,CAAC;AAEpB,MAAM,eAAe,GAAG,CACpB,QAAwB,EACxB,IAAY,EACZ,MAAwB,EACxB,QAAwB,EACZ,EAAE;IACd,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QACxB,OAAO,CAAC,SAAS,CACb,IAAI,EACJ,IAAI,CAAC,kBAAkB,EAAE,GAAG,QAAQ,CAAC,aAAa,UAAU,CAAC,EAC7D,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAC/C,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,SAAS,CACb,IAAI,EACJ,IAAI,CAAC,mBAAmB,EAAE,GAAG,QAAQ,CAAC,aAAa,UAAU,CAAC,EAC9D,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAClD,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACjB,QAAwB,EACxB,MAAwB,EACxB,OAAwB,EACxB,QAAwB,EACZ,EAAE;IACd,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;IAC/C,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAErE,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO;YACH,GAAG,UAAU;YACb,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SACzG,CAAC;IACN,CAAC;IAED,OAAO;QACH,GAAG,UAAU;QACb,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QAC5F,SAAS,CAAC,IAAI,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KAClF,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAClB,QAAwB,EACxB,OAAwB,EACxB,QAAwB,EACc,EAAE,CAAC,CAAC;IAC1C,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC/D,GAAG,EAAE,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;IACrD,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC7D,GAAG,EAAE,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;CACxD,CAAC,CAAC;AAEH,OAAO,EACH,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAElB,aAAa,EACb,YAAY,GACf,CAAC","sourcesContent":["import { sortStringsBy } from \"@gtkx/utils\";\nimport { existsSync, rmSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport type { DeploySettings, DeployTargetName, NodeRuntime, NoticeSection, StagedFile } from \"../types.js\";\nimport { LOCALE_DIRNAME } from \"../../i18n/catalogs.js\";\nimport { BUILD_MANIFEST_FILENAME } from \"../../internal/build-manifest.js\";\nimport { listFilesRecursive } from \"../../internal/list-files.js\";\nimport { BUNDLE_FILENAME } from \"../../vite-plugins/esm-extension.js\";\nimport { renderCopyright } from \"../freedesktop/copyright.js\";\nimport { renderDbusService } from \"../freedesktop/dbus-service.js\";\nimport { renderNotices } from \"../notices/render.js\";\nimport { copyInto, EXECUTABLE_MODE, executableModeFor, writeInto } from \"./copy-tree.js\";\nimport { stageIcons } from \"./icons.js\";\nimport { NODE_FILENAME, renderLauncher } from \"./launcher.js\";\nimport { stageSchemas } from \"./schemas.js\";\n\ntype StageRequest = {\n settings: DeploySettings;\n node: NodeRuntime | null;\n metadata: StagedMetadata;\n};\n\ntype StagedMetadata = {\n desktopEntry: string;\n metainfo: string;\n mimePackage: string | null;\n};\n\nconst DIST_ICONS_DIR = \"icons\";\nconst NOTICES_FILENAME = \"THIRD-PARTY-NOTICES\";\nconst NODE_LICENSE_FILENAME = \"LICENSE\";\nconst SHARE_APPLICATIONS = \"share/applications\";\nconst SHARE_METAINFO = \"share/metainfo\";\nconst SHARE_MIME_PACKAGES = \"share/mime/packages\";\nconst SHARE_DOC = \"share/doc\";\nconst SHARE_LICENSES = \"share/licenses\";\nconst SHARE_DBUS_SERVICES = \"share/dbus-1/services\";\nconst SHARE_LOCALE = `share/${LOCALE_DIRNAME}`;\n\nconst PREFIX_FOR: Record<DeployTargetName, string> = {\n appimage: \"/usr\",\n deb: \"/usr\",\n flatpak: \"/app\",\n rpm: \"/usr\",\n};\n\nconst libDirFor = (settings: DeploySettings): string => `lib/${settings.binaryName}`;\nconst licenseDirFor = (settings: DeploySettings): string => `${SHARE_LICENSES}/${settings.binaryName}`;\nconst licenseDestination = (settings: DeploySettings): string => `${licenseDirFor(settings)}/LICENSE`;\nconst noticesDestination = (settings: DeploySettings): string => `${licenseDirFor(settings)}/${NOTICES_FILENAME}`;\nconst isIconAsset = (rel: string): boolean => rel === DIST_ICONS_DIR || rel.startsWith(`${DIST_ICONS_DIR}/`);\nconst isLocaleAsset = (rel: string): boolean => rel === LOCALE_DIRNAME || rel.startsWith(`${LOCALE_DIRNAME}/`);\n\nconst nodeLicenseDestination = (settings: DeploySettings): string =>\n `${licenseDirFor(settings)}/${NODE_FILENAME}/${NODE_LICENSE_FILENAME}`;\n\nconst stageRuntimeFiles = (settings: DeploySettings, root: string): StagedFile[] => {\n const dist = settings.paths.dist;\n\n if (!existsSync(join(dist, BUNDLE_FILENAME))) {\n throw new Error(`Cannot deploy: ${join(dist, BUNDLE_FILENAME)} is missing. Run \\`gtkx build\\` first.`);\n }\n\n return listFilesRecursive(dist)\n .filter((file) =>\n !isIconAsset(file.rel) && file.rel !== BUILD_MANIFEST_FILENAME && !isLocaleAsset(file.rel))\n .map((file) => copyInto(root, join(libDirFor(settings), file.rel), file.absPath));\n};\n\nconst stageCatalogs = (settings: DeploySettings, root: string): StagedFile[] =>\n listFilesRecursive(join(settings.paths.dist, LOCALE_DIRNAME))\n .map((file) => copyInto(root, join(SHARE_LOCALE, file.rel), file.absPath));\n\nconst stageNodeBinary = (settings: DeploySettings, root: string, node: NodeRuntime | null): StagedFile[] =>\n node === null ? [] : [copyInto(root, join(libDirFor(settings), NODE_FILENAME), node.path, EXECUTABLE_MODE)];\n\nconst stageMetadata = (settings: DeploySettings, root: string, metadata: StagedMetadata): StagedFile[] => [\n writeInto(root, join(SHARE_APPLICATIONS, `${settings.applicationId}.desktop`), metadata.desktopEntry),\n writeInto(root, join(SHARE_METAINFO, `${settings.applicationId}.metainfo.xml`), metadata.metainfo),\n ...(metadata.mimePackage === null\n ? []\n : [writeInto(root, join(SHARE_MIME_PACKAGES, `${settings.applicationId}.xml`), metadata.mimePackage)]),\n];\n\nconst stageExtraFiles = (settings: DeploySettings, root: string): StagedFile[] =>\n settings.extraFiles.map((file) => {\n const source = resolve(settings.paths.root, file.source);\n\n return copyInto(root, file.destination, source, file.mode ?? executableModeFor(source));\n });\n\nconst byRelativePath = (files: StagedFile[]): StagedFile[] => {\n const latest: Map<string, StagedFile> = new Map();\n\n for (const file of files) {\n latest.set(file.rel, file);\n }\n\n return sortStringsBy(latest.values(), (file) => file.rel);\n};\n\nconst stagePayload = ({ settings, node, metadata }: StageRequest): StagedFile[] => {\n const root = settings.paths.stage;\n rmSync(root, { recursive: true, force: true, maxRetries: 5 });\n\n return byRelativePath([\n writeInto(root, join(\"bin\", settings.binaryName), renderLauncher(settings), EXECUTABLE_MODE),\n ...stageNodeBinary(settings, root, node),\n ...stageRuntimeFiles(settings, root),\n ...stageCatalogs(settings, root),\n ...stageExtraFiles(settings, root),\n ...stageMetadata(settings, root, metadata),\n ...stageIcons(settings, root),\n ...stageSchemas(settings, root),\n ]);\n};\n\nconst withoutDbusActivation = (desktopEntry: string): string =>\n desktopEntry\n .split(\"\\n\")\n .filter((line) => line !== \"DBusActivatable=true\")\n .join(\"\\n\");\n\nconst stageActivation = (\n settings: DeploySettings,\n root: string,\n target: DeployTargetName,\n metadata: StagedMetadata,\n): StagedFile[] => {\n if (!settings.isDbusActivatable) {\n return [];\n }\n\n if (target === \"appimage\") {\n return [writeInto(\n root,\n join(SHARE_APPLICATIONS, `${settings.applicationId}.desktop`),\n withoutDbusActivation(metadata.desktopEntry),\n )];\n }\n\n return [writeInto(\n root,\n join(SHARE_DBUS_SERVICES, `${settings.applicationId}.service`),\n renderDbusService(settings, PREFIX_FOR[target]),\n )];\n};\n\nconst stageOverlay = (\n settings: DeploySettings,\n target: DeployTargetName,\n notices: NoticeSection[],\n metadata: StagedMetadata,\n): StagedFile[] => {\n const root = join(settings.paths.overlay, target);\n rmSync(root, { recursive: true, force: true, maxRetries: 5 });\n const licenseFile = settings.paths.licenseFile;\n const activation = stageActivation(settings, root, target, metadata);\n\n if (target === \"deb\") {\n return [\n ...activation,\n writeInto(root, join(SHARE_DOC, settings.binaryName, \"copyright\"), renderCopyright(settings, notices)),\n ];\n }\n\n return [\n ...activation,\n ...(licenseFile === null ? [] : [copyInto(root, licenseDestination(settings), licenseFile)]),\n writeInto(root, noticesDestination(settings), renderNotices(settings, notices)),\n ];\n};\n\nconst stageOverlays = (\n settings: DeploySettings,\n notices: NoticeSection[],\n metadata: StagedMetadata,\n): Record<DeployTargetName, StagedFile[]> => ({\n appimage: stageOverlay(settings, \"appimage\", notices, metadata),\n deb: stageOverlay(settings, \"deb\", notices, metadata),\n flatpak: stageOverlay(settings, \"flatpak\", notices, metadata),\n rpm: stageOverlay(settings, \"rpm\", notices, metadata),\n});\n\nexport {\n licenseDestination,\n nodeLicenseDestination,\n NOTICES_FILENAME,\n noticesDestination,\n type StagedMetadata,\n stageOverlays,\n stagePayload,\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-deploy.d.ts","sourceRoot":"","sources":["../../src/deploy/run-deploy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-deploy.d.ts","sourceRoot":"","sources":["../../src/deploy/run-deploy.ts"],"names":[],"mappings":"AA2DA,KAAK,aAAa,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,eAAe,EAAE,OAAO,CAAC;CAC5B,CAAC;AA2XF,QAAA,MAAM,SAAS,GAAU,SAAS,aAAa,KAAG,OAAO,CAAC,IAAI,CA4C7D,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -1,3 +1,55 @@
|
|
|
1
|
+
var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
|
|
2
|
+
if (value !== null && value !== void 0) {
|
|
3
|
+
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
4
|
+
var dispose, inner;
|
|
5
|
+
if (async) {
|
|
6
|
+
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
7
|
+
dispose = value[Symbol.asyncDispose];
|
|
8
|
+
}
|
|
9
|
+
if (dispose === void 0) {
|
|
10
|
+
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
11
|
+
dispose = value[Symbol.dispose];
|
|
12
|
+
if (async) inner = dispose;
|
|
13
|
+
}
|
|
14
|
+
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
15
|
+
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
|
16
|
+
env.stack.push({ value: value, dispose: dispose, async: async });
|
|
17
|
+
}
|
|
18
|
+
else if (async) {
|
|
19
|
+
env.stack.push({ async: true });
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
};
|
|
23
|
+
var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
|
|
24
|
+
return function (env) {
|
|
25
|
+
function fail(e) {
|
|
26
|
+
env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
27
|
+
env.hasError = true;
|
|
28
|
+
}
|
|
29
|
+
var r, s = 0;
|
|
30
|
+
function next() {
|
|
31
|
+
while (r = env.stack.pop()) {
|
|
32
|
+
try {
|
|
33
|
+
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
34
|
+
if (r.dispose) {
|
|
35
|
+
var result = r.dispose.call(r.value);
|
|
36
|
+
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
|
37
|
+
}
|
|
38
|
+
else s |= 1;
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
fail(e);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
45
|
+
if (env.hasError) throw env.error;
|
|
46
|
+
}
|
|
47
|
+
return next();
|
|
48
|
+
};
|
|
49
|
+
})(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
50
|
+
var e = new Error(message);
|
|
51
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
52
|
+
});
|
|
1
53
|
import { loadConfig } from "@gtkx/config";
|
|
2
54
|
import { info, warn } from "@gtkx/utils";
|
|
3
55
|
import { existsSync, mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
@@ -7,6 +59,7 @@ import { ensureGenerated } from "../codegen/run-codegen.js";
|
|
|
7
59
|
import { replaceCatalogTemplate } from "../i18n/catalog-template.js";
|
|
8
60
|
import { compileCatalogs, LOCALE_DIRNAME, requiresCatalogInitialization, resolveCatalogProject, synchronizeCatalogs, } from "../i18n/catalogs.js";
|
|
9
61
|
import { extractSourceCatalogTo } from "../i18n/source-messages.js";
|
|
62
|
+
import { prepareBuildOutDir, resolveBuildOutDir } from "../internal/build-output.js";
|
|
10
63
|
import { discoverSourceFiles } from "../internal/source-imports.js";
|
|
11
64
|
import { renderDesktopEntry } from "./freedesktop/desktop-entry.js";
|
|
12
65
|
import { extractMetadataMessages, localizeMetadata } from "./freedesktop/localize.js";
|
|
@@ -20,6 +73,7 @@ import { DEFAULT_TARGETS, parseTargetList, targetsFor } from "./registry.js";
|
|
|
20
73
|
import { readBuildManifest } from "./settings/build-manifest.js";
|
|
21
74
|
import { resolveDeploySettings } from "./settings/index.js";
|
|
22
75
|
import { readPackageManifest } from "./settings/package-manifest.js";
|
|
76
|
+
import { prepareDeployOutDir } from "./settings/paths.js";
|
|
23
77
|
import { missingDeployError } from "./settings/starter.js";
|
|
24
78
|
import { finishArgsFor, hasDisplaySocket, runtimeLabelFor } from "./targets/flatpak-manifest.js";
|
|
25
79
|
import { detectPackageManager } from "./targets/flatpak-sources.js";
|
|
@@ -174,11 +228,23 @@ const resolveTargetNames = (options, settings) => {
|
|
|
174
228
|
return settings.deploy.targets ?? DEFAULT_TARGETS;
|
|
175
229
|
};
|
|
176
230
|
const loadSettings = async (options) => {
|
|
177
|
-
const { config, root } = await loadConfig(options.cwd, {
|
|
231
|
+
const { config, configFile, root } = await loadConfig(options.cwd, {
|
|
232
|
+
mode: BUILD_MODE,
|
|
233
|
+
configFile: options.configFile,
|
|
234
|
+
});
|
|
178
235
|
if (config.deploy === undefined) {
|
|
179
236
|
throw missingDeployError(config.applicationId, readPackageManifest(root));
|
|
180
237
|
}
|
|
181
|
-
return
|
|
238
|
+
return {
|
|
239
|
+
config,
|
|
240
|
+
configFile,
|
|
241
|
+
settings: resolveDeploySettings({
|
|
242
|
+
root,
|
|
243
|
+
config,
|
|
244
|
+
configFile,
|
|
245
|
+
outDirOverride: options.outDir,
|
|
246
|
+
}),
|
|
247
|
+
};
|
|
182
248
|
};
|
|
183
249
|
const synchronizeMetadataCatalogs = async (settings, templates, project) => {
|
|
184
250
|
if (project === null) {
|
|
@@ -200,22 +266,36 @@ const synchronizeMetadataCatalogs = async (settings, templates, project) => {
|
|
|
200
266
|
rmSync(stagingDir, { recursive: true, force: true });
|
|
201
267
|
}
|
|
202
268
|
};
|
|
203
|
-
const buildPayload = async (options,
|
|
269
|
+
const buildPayload = async ({ options, loaded, targets, project, buildOutDir, }) => {
|
|
270
|
+
const settings = loaded.settings;
|
|
204
271
|
const templates = renderMetadata(settings);
|
|
205
|
-
if (
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
272
|
+
if (buildOutDir !== null) {
|
|
273
|
+
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
274
|
+
try {
|
|
275
|
+
info(`Building ${options.entry}`);
|
|
276
|
+
const preparedOutput = __addDisposableResource(env_1, prepareBuildOutDir(settings.paths.root, buildOutDir), false);
|
|
277
|
+
await buildApp({
|
|
278
|
+
entry: options.entry,
|
|
279
|
+
configFile: options.configFile,
|
|
280
|
+
vite: { root: options.cwd, build: { outDir: preparedOutput.path, emptyOutDir: false } },
|
|
281
|
+
});
|
|
282
|
+
preparedOutput.commit();
|
|
283
|
+
await synchronizeMetadataCatalogs(settings, templates, project);
|
|
284
|
+
}
|
|
285
|
+
catch (e_1) {
|
|
286
|
+
env_1.error = e_1;
|
|
287
|
+
env_1.hasError = true;
|
|
288
|
+
}
|
|
289
|
+
finally {
|
|
290
|
+
__disposeResources(env_1);
|
|
291
|
+
}
|
|
212
292
|
}
|
|
213
293
|
else if (project !== null) {
|
|
214
294
|
compileCatalogs(project, join(settings.paths.dist, LOCALE_DIRNAME));
|
|
215
295
|
}
|
|
216
296
|
const metadata = localizeMetadata(templates, project);
|
|
217
297
|
validateMetadata(settings, metadata, isFlathubSubmission(settings, targets));
|
|
218
|
-
const buildManifest = readBuildManifest(settings);
|
|
298
|
+
const buildManifest = readBuildManifest(settings, loaded);
|
|
219
299
|
const builtSettings = {
|
|
220
300
|
...settings,
|
|
221
301
|
paths: { ...settings.paths, schemaFiles: buildManifest.schemaFiles },
|
|
@@ -263,9 +343,11 @@ const announce = (settings, targets) => {
|
|
|
263
343
|
info(`Deploying ${settings.name} ${version} as ${settings.binaryName} (${settings.arch.rpm}) to ${names}`);
|
|
264
344
|
};
|
|
265
345
|
const runDeploy = async (options) => {
|
|
266
|
-
let
|
|
346
|
+
let loaded = await loadSettings(options);
|
|
347
|
+
let settings = loaded.settings;
|
|
267
348
|
let project = resolveCatalogProject(settings.paths.root, settings.applicationId);
|
|
268
349
|
let targets = targetsFor(resolveTargetNames(options, settings));
|
|
350
|
+
let buildOutDir = options.shouldSkipBuild ? null : resolveBuildOutDir(settings.paths.root, settings.paths.dist);
|
|
269
351
|
announce(settings, targets);
|
|
270
352
|
preflight({
|
|
271
353
|
targets,
|
|
@@ -278,12 +360,16 @@ const runDeploy = async (options) => {
|
|
|
278
360
|
await ensureGenerated(options.cwd, {
|
|
279
361
|
shouldAnnounce: true,
|
|
280
362
|
mode: BUILD_MODE,
|
|
363
|
+
configFile: options.configFile,
|
|
281
364
|
});
|
|
282
|
-
|
|
365
|
+
loaded = await loadSettings(options);
|
|
366
|
+
settings = loaded.settings;
|
|
283
367
|
project = resolveCatalogProject(settings.paths.root, settings.applicationId);
|
|
284
368
|
targets = targetsFor(resolveTargetNames(options, settings));
|
|
369
|
+
buildOutDir = resolveBuildOutDir(settings.paths.root, settings.paths.dist);
|
|
285
370
|
}
|
|
286
|
-
|
|
371
|
+
prepareDeployOutDir(settings.paths.root, settings.paths.outDir);
|
|
372
|
+
const payload = await buildPayload({ options, loaded, targets, project, buildOutDir });
|
|
287
373
|
const rendered = renderTargetManifests(targets, payload);
|
|
288
374
|
if (options.shouldPrintManifests) {
|
|
289
375
|
const count = rendered.values().toArray().flat().length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-deploy.js","sourceRoot":"","sources":["../../src/deploy/run-deploy.ts"],"names":[],"mappings":"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","sourcesContent":["import { loadConfig } from \"@gtkx/config\";\nimport { info, warn } from \"@gtkx/utils\";\nimport { existsSync, mkdirSync, mkdtempSync, rmSync, writeFileSync } from \"node:fs\";\nimport { dirname, join, relative } from \"node:path\";\nimport type {\n DeployArtifact,\n DeployManifest,\n DeployPayload,\n DeploySettings,\n DeployTarget,\n DeployTool,\n} from \"./types.js\";\nimport { build as buildApp } from \"../builder.js\";\nimport { ensureGenerated } from \"../codegen/run-codegen.js\";\nimport { replaceCatalogTemplate } from \"../i18n/catalog-template.js\";\nimport {\n type CatalogProject,\n compileCatalogs,\n LOCALE_DIRNAME,\n requiresCatalogInitialization,\n resolveCatalogProject,\n synchronizeCatalogs,\n} from \"../i18n/catalogs.js\";\nimport { extractSourceCatalogTo } from \"../i18n/source-messages.js\";\nimport { discoverSourceFiles } from \"../internal/source-imports.js\";\nimport { renderDesktopEntry } from \"./freedesktop/desktop-entry.js\";\nimport { extractMetadataMessages, localizeMetadata } from \"./freedesktop/localize.js\";\nimport { renderMetainfo } from \"./freedesktop/metainfo.js\";\nimport { renderMimePackage } from \"./freedesktop/mime-package.js\";\nimport { validateDesktopEntry, validateMetainfo } from \"./freedesktop/validate.js\";\nimport { resolveNodeRuntime } from \"./node-runtime/index.js\";\nimport { collectNotices } from \"./notices/collect.js\";\nimport { type StagedMetadata, stageOverlays, stagePayload } from \"./payload/stage.js\";\nimport { DEFAULT_TARGETS, parseTargetList, targetsFor } from \"./registry.js\";\nimport { readBuildManifest } from \"./settings/build-manifest.js\";\nimport { resolveDeploySettings } from \"./settings/index.js\";\nimport { readPackageManifest } from \"./settings/package-manifest.js\";\nimport { missingDeployError } from \"./settings/starter.js\";\nimport { finishArgsFor, hasDisplaySocket, runtimeLabelFor } from \"./targets/flatpak-manifest.js\";\nimport { detectPackageManager } from \"./targets/flatpak-sources.js\";\nimport {\n APPSTREAMCLI,\n assertTools,\n DESKTOP_FILE_VALIDATE,\n FLATPAK_NODE_GENERATOR,\n FLATPAK_NODE_GENERATOR_PNPM,\n MSGFMT,\n MSGGREP,\n MSGINIT,\n MSGMERGE,\n probeTools,\n STRIP,\n TAR,\n warnMissingOptional,\n XGETTEXT,\n} from \"./tools.js\";\n\ntype DeployOptions = {\n entry: string;\n cwd: string;\n targets?: string | undefined;\n outDir?: string | undefined;\n shouldPrintManifests: boolean;\n shouldSkipBuild: boolean;\n};\n\ntype PreflightRequest = {\n targets: DeployTarget[];\n settings: DeploySettings;\n project: CatalogProject | null;\n shouldPrintManifests: boolean;\n shouldSkipBuild: boolean;\n};\n\nconst BUILD_MODE = \"production\";\nconst BYTES_PER_MIB = 1024 * 1024;\nconst WEBKIT_LIBRARY = \"WebKit-6.0\";\nconst NETWORK_ARG = \"--share=network\";\nconst APPIMAGE_TARGET = \"appimage\";\nconst FLATPAK_TARGET = \"flatpak\";\n\nconst displayPath = (settings: DeploySettings, path: string): string => relative(settings.paths.root, path);\nconst megabytes = (size: number): string => (size / BYTES_PER_MIB).toFixed(1);\n\nconst writeManifest = (manifest: DeployManifest): void => {\n mkdirSync(dirname(manifest.path), { recursive: true });\n writeFileSync(manifest.path, manifest.contents);\n};\n\nconst renderMetadata = (settings: DeploySettings): StagedMetadata => ({\n desktopEntry: renderDesktopEntry(settings),\n metainfo: renderMetainfo(settings),\n mimePackage: renderMimePackage(settings),\n});\n\nconst isFlathubSubmission = (settings: DeploySettings, targets: DeployTarget[]): boolean =>\n settings.deploy.flatpak?.mode === \"source\" && targets.some((target) => target.name === FLATPAK_TARGET);\n\nconst validateMetadata = (settings: DeploySettings, metadata: StagedMetadata, areWarningsFatal: boolean): void => {\n const dir = settings.paths.metadata;\n mkdirSync(dir, { recursive: true });\n const desktopPath = join(dir, `${settings.applicationId}.desktop`);\n const metainfoPath = join(dir, `${settings.applicationId}.metainfo.xml`);\n writeFileSync(desktopPath, metadata.desktopEntry);\n writeFileSync(metainfoPath, metadata.metainfo);\n validateDesktopEntry(desktopPath);\n validateMetainfo(metainfoPath, areWarningsFatal);\n info(\"Validated the desktop entry and the metainfo\");\n};\n\nconst warnMissingDisplay = (settings: DeploySettings, finishArgs: string[]): void => {\n if (hasDisplaySocket(finishArgs)) {\n return;\n }\n\n warn(\n `The flatpak permissions grant no display socket, so ${settings.name} will start without a window. ` +\n \"Grant one through `deploy.flatpak.finishArgs`, such as `--socket=wayland`.\",\n );\n};\n\nconst warnMissingNetwork = (settings: DeploySettings, finishArgs: string[]): void => {\n if (settings.deploy.flatpak?.finishArgs === undefined || finishArgs.includes(NETWORK_ARG)) {\n return;\n }\n\n if (!settings.libraries.includes(WEBKIT_LIBRARY)) {\n return;\n }\n\n warn(`This app declares ${WEBKIT_LIBRARY} but its flatpak permissions omit ${NETWORK_ARG}, so pages will not load`);\n};\n\nconst warnFlatpakPermissions = (targets: DeployTarget[], settings: DeploySettings): void => {\n if (targets.every((target) => target.name !== FLATPAK_TARGET)) {\n return;\n }\n\n const finishArgs = finishArgsFor(settings);\n warnMissingDisplay(settings, finishArgs);\n warnMissingNetwork(settings, finishArgs);\n};\n\nconst minimumSummary = (settings: DeploySettings): string =>\n settings.libraries\n .filter((library) => settings.minimumLibraryVersions[library] !== undefined)\n .map((library) => `${library} >= ${String(settings.minimumLibraryVersions[library])}`)\n .join(\", \");\n\nconst warnAppImageMinimums = (settings: DeploySettings, summary: string): void => {\n warn(\n `An AppImage cannot declare a dependency, so nothing stops ${settings.name} from starting on a host ` +\n `whose libraries are older than the ones its bindings were generated against (${summary}). ` +\n \"Publish that requirement alongside the AppImage, or build on the oldest host you support.\",\n );\n};\n\nconst warnFlatpakMinimums = (settings: DeploySettings, summary: string): void => {\n warn(\n `The flatpak bundles binaries built against ${summary}, but runs them on ` +\n `${runtimeLabelFor(settings)}, whose libraries are whatever that runtime ships. ` +\n 'Set `deploy.flatpak.mode: \"source\"` to build inside the runtime instead.',\n );\n};\n\nconst warnUnusedMinimums = (settings: DeploySettings): void => {\n const minimums = settings.deploy.minimumLibraryVersions;\n\n if (minimums === undefined) {\n return;\n }\n\n const unused = Object.keys(minimums).filter((library) => !settings.libraries.includes(library));\n\n if (unused.length === 0) {\n return;\n }\n\n warn(\n `\\`deploy.minimumLibraryVersions\\` names ${unused.join(\", \")}, which this project generates no bindings for, ` +\n \"so those minimums change nothing.\",\n );\n};\n\nconst isPrebuiltFlatpak = (targets: DeployTarget[], settings: DeploySettings): boolean =>\n targets.some((target) => target.name === FLATPAK_TARGET) && settings.deploy.flatpak?.mode !== \"source\";\n\nconst warnLibraryMinimums = (targets: DeployTarget[], settings: DeploySettings): void => {\n const summary = minimumSummary(settings);\n\n if (summary.length > 0 && targets.some((target) => target.name === APPIMAGE_TARGET)) {\n warnAppImageMinimums(settings, summary);\n }\n\n if (summary.length > 0 && isPrebuiltFlatpak(targets, settings)) {\n warnFlatpakMinimums(settings, summary);\n }\n\n warnUnusedMinimums(settings);\n};\n\nconst sourceModeTools = (targets: DeployTarget[], settings: DeploySettings): DeployTool[] => {\n const isFlatpakSource = settings.deploy.flatpak?.mode === \"source\";\n\n if (!isFlatpakSource || targets.every((target) => target.name !== FLATPAK_TARGET)) {\n return [];\n }\n\n return detectPackageManager(settings) === \"pnpm\" ? [FLATPAK_NODE_GENERATOR_PNPM] : [FLATPAK_NODE_GENERATOR];\n};\n\nconst isNodeRequired = (targets: DeployTarget[], settings: DeploySettings): boolean =>\n !(settings.deploy.flatpak?.mode === \"source\" && targets.every((target) => target.name === FLATPAK_TARGET));\n\nconst runtimeToolsFor = (targets: DeployTarget[], settings: DeploySettings): DeployTool[] => {\n if (!isNodeRequired(targets, settings)) {\n return [];\n }\n\n const node = settings.deploy.node ?? {};\n const archiveTools = (node.source ?? \"download\") === \"download\" ? [TAR] : [];\n\n return node.shouldStrip === false ? archiveTools : [...archiveTools, STRIP];\n};\n\nconst mutableCatalogTools = (project: CatalogProject): DeployTool[] => {\n if (project.catalogs.length === 0) {\n return [MSGGREP, XGETTEXT];\n }\n\n return [\n MSGFMT,\n MSGGREP,\n ...(requiresCatalogInitialization(project) ? [MSGINIT] : []),\n MSGMERGE,\n XGETTEXT,\n ];\n};\n\nconst catalogTools = (project: CatalogProject | null, shouldSkipBuild: boolean): DeployTool[] => {\n if (project === null) {\n return [];\n }\n\n if (!shouldSkipBuild) {\n return mutableCatalogTools(project);\n }\n\n return project.catalogs.length === 0 ? [] : [MSGFMT];\n};\n\nconst preflight = ({\n targets,\n settings,\n project,\n shouldPrintManifests,\n shouldSkipBuild,\n}: PreflightRequest): void => {\n const packagerTools = shouldPrintManifests\n ? []\n : [...runtimeToolsFor(targets, settings), ...targets.flatMap((target) => target.tools)];\n\n const required = [\n DESKTOP_FILE_VALIDATE,\n APPSTREAMCLI,\n ...catalogTools(project, shouldSkipBuild),\n ...sourceModeTools(targets, settings),\n ];\n\n const report = probeTools([...required, ...packagerTools]);\n assertTools(report);\n warnMissingOptional(report);\n warnFlatpakPermissions(targets, settings);\n warnLibraryMinimums(targets, settings);\n};\n\nconst resolveTargetNames = (options: DeployOptions, settings: DeploySettings): string[] => {\n if (options.targets !== undefined) {\n return parseTargetList(options.targets);\n }\n\n return settings.deploy.targets ?? DEFAULT_TARGETS;\n};\n\nconst loadSettings = async (options: DeployOptions): Promise<DeploySettings> => {\n const { config, root } = await loadConfig(options.cwd, { mode: BUILD_MODE });\n\n if (config.deploy === undefined) {\n throw missingDeployError(config.applicationId, readPackageManifest(root));\n }\n\n return resolveDeploySettings({ root, config, outDirOverride: options.outDir });\n};\n\nconst synchronizeMetadataCatalogs = async (\n settings: DeploySettings,\n templates: StagedMetadata,\n project: CatalogProject | null,\n): Promise<void> => {\n if (project === null) {\n return;\n }\n\n const srcDir = join(project.root, \"src\");\n const sourceFiles = discoverSourceFiles(existsSync(srcDir) ? srcDir : project.root);\n const stagingDir = mkdtempSync(join(project.poDir, \".gtkx-deploy-i18n-\"));\n const stagedTemplate = join(stagingDir, `${project.domain}.pot`);\n const template = join(project.poDir, `${project.domain}.pot`);\n\n try {\n await extractSourceCatalogTo(project, sourceFiles, stagedTemplate);\n extractMetadataMessages(templates, project, stagedTemplate);\n replaceCatalogTemplate(stagedTemplate, template);\n synchronizeCatalogs(project);\n compileCatalogs(project, join(settings.paths.dist, LOCALE_DIRNAME));\n } finally {\n rmSync(stagingDir, { recursive: true, force: true });\n }\n};\n\nconst buildPayload = async (\n options: DeployOptions,\n settings: DeploySettings,\n targets: DeployTarget[],\n project: CatalogProject | null,\n): Promise<DeployPayload> => {\n const templates = renderMetadata(settings);\n\n if (!options.shouldSkipBuild) {\n info(`Building ${options.entry}`);\n\n await buildApp({\n entry: options.entry,\n vite: { root: options.cwd },\n });\n\n await synchronizeMetadataCatalogs(settings, templates, project);\n } else if (project !== null) {\n compileCatalogs(project, join(settings.paths.dist, LOCALE_DIRNAME));\n }\n\n const metadata = localizeMetadata(templates, project);\n validateMetadata(settings, metadata, isFlathubSubmission(settings, targets));\n const buildManifest = readBuildManifest(settings);\n\n const builtSettings: DeploySettings = {\n ...settings,\n paths: { ...settings.paths, schemaFiles: buildManifest.schemaFiles },\n };\n\n const node = options.shouldPrintManifests || !isNodeRequired(targets, builtSettings)\n ? null\n : await resolveNodeRuntime(builtSettings);\n\n const stage = stagePayload({ settings: builtSettings, node, metadata });\n info(`Staged ${String(stage.length)} files into ${displayPath(builtSettings, builtSettings.paths.stage)}`);\n const notices = collectNotices({ settings: builtSettings, node, packages: buildManifest.packages });\n\n return {\n settings: builtSettings,\n node,\n stage,\n notices,\n overlays: stageOverlays(builtSettings, notices, metadata),\n };\n};\n\nconst renderTargetManifests = (\n targets: DeployTarget[],\n payload: DeployPayload,\n): Map<DeployTarget, DeployManifest[]> => {\n const rendered: Map<DeployTarget, DeployManifest[]> = new Map();\n\n for (const target of targets) {\n const manifests = target.render(payload);\n\n for (const manifest of manifests) {\n writeManifest(manifest);\n info(`Wrote ${displayPath(payload.settings, manifest.path)}`);\n }\n\n rendered.set(target, manifests);\n }\n\n return rendered;\n};\n\nconst packTargets = async (\n rendered: Map<DeployTarget, DeployManifest[]>,\n payload: DeployPayload,\n): Promise<DeployArtifact[]> => {\n const artifacts: DeployArtifact[] = [];\n\n for (const [target, manifests] of rendered) {\n const built = await target.pack(payload, manifests);\n\n for (const artifact of built) {\n info(`Built ${displayPath(payload.settings, artifact.path)} (${megabytes(artifact.size)} MiB)`);\n }\n\n artifacts.push(...built);\n }\n\n return artifacts;\n};\n\nconst announce = (settings: DeploySettings, targets: DeployTarget[]): void => {\n const names = targets.map((target) => target.name).join(\", \");\n const version = `${settings.versions.packageVersion}-${settings.versions.debRevision}`;\n info(`Deploying ${settings.name} ${version} as ${settings.binaryName} (${settings.arch.rpm}) to ${names}`);\n};\n\nconst runDeploy = async (options: DeployOptions): Promise<void> => {\n let settings = await loadSettings(options);\n let project = resolveCatalogProject(settings.paths.root, settings.applicationId);\n let targets = targetsFor(resolveTargetNames(options, settings));\n announce(settings, targets);\n\n preflight({\n targets,\n settings,\n project,\n shouldPrintManifests: options.shouldPrintManifests,\n shouldSkipBuild: options.shouldSkipBuild,\n });\n\n if (!options.shouldSkipBuild) {\n await ensureGenerated(options.cwd, {\n shouldAnnounce: true,\n mode: BUILD_MODE,\n });\n\n settings = await loadSettings(options);\n project = resolveCatalogProject(settings.paths.root, settings.applicationId);\n targets = targetsFor(resolveTargetNames(options, settings));\n }\n\n const payload = await buildPayload(options, settings, targets, project);\n const rendered = renderTargetManifests(targets, payload);\n\n if (options.shouldPrintManifests) {\n const count = rendered.values().toArray().flat().length;\n info(`Wrote ${String(count)} manifests, 0 packages built`);\n\n return;\n }\n\n const artifacts = await packTargets(rendered, payload);\n const output = displayPath(settings, settings.paths.output);\n info(`Deploy complete: ${String(artifacts.length)} artifacts in ${output}`);\n};\n\nexport { runDeploy };\n"]}
|
|
1
|
+
{"version":3,"file":"run-deploy.js","sourceRoot":"","sources":["../../src/deploy/run-deploy.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Config, loadConfig } from \"@gtkx/config\";\nimport { info, warn } from \"@gtkx/utils\";\nimport { existsSync, mkdirSync, mkdtempSync, rmSync, writeFileSync } from \"node:fs\";\nimport { dirname, join, relative } from \"node:path\";\nimport type {\n DeployArtifact,\n DeployManifest,\n DeployPayload,\n DeploySettings,\n DeployTarget,\n DeployTool,\n} from \"./types.js\";\nimport { build as buildApp } from \"../builder.js\";\nimport { ensureGenerated } from \"../codegen/run-codegen.js\";\nimport { replaceCatalogTemplate } from \"../i18n/catalog-template.js\";\nimport {\n type CatalogProject,\n compileCatalogs,\n LOCALE_DIRNAME,\n requiresCatalogInitialization,\n resolveCatalogProject,\n synchronizeCatalogs,\n} from \"../i18n/catalogs.js\";\nimport { extractSourceCatalogTo } from \"../i18n/source-messages.js\";\nimport { prepareBuildOutDir, resolveBuildOutDir } from \"../internal/build-output.js\";\nimport { discoverSourceFiles } from \"../internal/source-imports.js\";\nimport { renderDesktopEntry } from \"./freedesktop/desktop-entry.js\";\nimport { extractMetadataMessages, localizeMetadata } from \"./freedesktop/localize.js\";\nimport { renderMetainfo } from \"./freedesktop/metainfo.js\";\nimport { renderMimePackage } from \"./freedesktop/mime-package.js\";\nimport { validateDesktopEntry, validateMetainfo } from \"./freedesktop/validate.js\";\nimport { resolveNodeRuntime } from \"./node-runtime/index.js\";\nimport { collectNotices } from \"./notices/collect.js\";\nimport { type StagedMetadata, stageOverlays, stagePayload } from \"./payload/stage.js\";\nimport { DEFAULT_TARGETS, parseTargetList, targetsFor } from \"./registry.js\";\nimport { readBuildManifest } from \"./settings/build-manifest.js\";\nimport { resolveDeploySettings } from \"./settings/index.js\";\nimport { readPackageManifest } from \"./settings/package-manifest.js\";\nimport { prepareDeployOutDir } from \"./settings/paths.js\";\nimport { missingDeployError } from \"./settings/starter.js\";\nimport { finishArgsFor, hasDisplaySocket, runtimeLabelFor } from \"./targets/flatpak-manifest.js\";\nimport { detectPackageManager } from \"./targets/flatpak-sources.js\";\nimport {\n APPSTREAMCLI,\n assertTools,\n DESKTOP_FILE_VALIDATE,\n FLATPAK_NODE_GENERATOR,\n FLATPAK_NODE_GENERATOR_PNPM,\n MSGFMT,\n MSGGREP,\n MSGINIT,\n MSGMERGE,\n probeTools,\n STRIP,\n TAR,\n warnMissingOptional,\n XGETTEXT,\n} from \"./tools.js\";\n\ntype DeployOptions = {\n entry: string;\n cwd: string;\n configFile?: string | undefined;\n targets?: string | undefined;\n outDir?: string | undefined;\n shouldPrintManifests: boolean;\n shouldSkipBuild: boolean;\n};\n\ntype PreflightRequest = {\n targets: DeployTarget[];\n settings: DeploySettings;\n project: CatalogProject | null;\n shouldPrintManifests: boolean;\n shouldSkipBuild: boolean;\n};\n\ntype LoadedDeploySettings = {\n config: Config;\n configFile: string;\n settings: DeploySettings;\n};\n\ntype BuildPayloadRequest = {\n options: DeployOptions;\n loaded: LoadedDeploySettings;\n targets: DeployTarget[];\n project: CatalogProject | null;\n buildOutDir: string | null;\n};\n\nconst BUILD_MODE = \"production\";\nconst BYTES_PER_MIB = 1024 * 1024;\nconst WEBKIT_LIBRARY = \"WebKit-6.0\";\nconst NETWORK_ARG = \"--share=network\";\nconst APPIMAGE_TARGET = \"appimage\";\nconst FLATPAK_TARGET = \"flatpak\";\n\nconst displayPath = (settings: DeploySettings, path: string): string => relative(settings.paths.root, path);\nconst megabytes = (size: number): string => (size / BYTES_PER_MIB).toFixed(1);\n\nconst writeManifest = (manifest: DeployManifest): void => {\n mkdirSync(dirname(manifest.path), { recursive: true });\n writeFileSync(manifest.path, manifest.contents);\n};\n\nconst renderMetadata = (settings: DeploySettings): StagedMetadata => ({\n desktopEntry: renderDesktopEntry(settings),\n metainfo: renderMetainfo(settings),\n mimePackage: renderMimePackage(settings),\n});\n\nconst isFlathubSubmission = (settings: DeploySettings, targets: DeployTarget[]): boolean =>\n settings.deploy.flatpak?.mode === \"source\" && targets.some((target) => target.name === FLATPAK_TARGET);\n\nconst validateMetadata = (settings: DeploySettings, metadata: StagedMetadata, areWarningsFatal: boolean): void => {\n const dir = settings.paths.metadata;\n mkdirSync(dir, { recursive: true });\n const desktopPath = join(dir, `${settings.applicationId}.desktop`);\n const metainfoPath = join(dir, `${settings.applicationId}.metainfo.xml`);\n writeFileSync(desktopPath, metadata.desktopEntry);\n writeFileSync(metainfoPath, metadata.metainfo);\n validateDesktopEntry(desktopPath);\n validateMetainfo(metainfoPath, areWarningsFatal);\n info(\"Validated the desktop entry and the metainfo\");\n};\n\nconst warnMissingDisplay = (settings: DeploySettings, finishArgs: string[]): void => {\n if (hasDisplaySocket(finishArgs)) {\n return;\n }\n\n warn(\n `The flatpak permissions grant no display socket, so ${settings.name} will start without a window. ` +\n \"Grant one through `deploy.flatpak.finishArgs`, such as `--socket=wayland`.\",\n );\n};\n\nconst warnMissingNetwork = (settings: DeploySettings, finishArgs: string[]): void => {\n if (settings.deploy.flatpak?.finishArgs === undefined || finishArgs.includes(NETWORK_ARG)) {\n return;\n }\n\n if (!settings.libraries.includes(WEBKIT_LIBRARY)) {\n return;\n }\n\n warn(`This app declares ${WEBKIT_LIBRARY} but its flatpak permissions omit ${NETWORK_ARG}, so pages will not load`);\n};\n\nconst warnFlatpakPermissions = (targets: DeployTarget[], settings: DeploySettings): void => {\n if (targets.every((target) => target.name !== FLATPAK_TARGET)) {\n return;\n }\n\n const finishArgs = finishArgsFor(settings);\n warnMissingDisplay(settings, finishArgs);\n warnMissingNetwork(settings, finishArgs);\n};\n\nconst minimumSummary = (settings: DeploySettings): string =>\n settings.libraries\n .filter((library) => settings.minimumLibraryVersions[library] !== undefined)\n .map((library) => `${library} >= ${String(settings.minimumLibraryVersions[library])}`)\n .join(\", \");\n\nconst warnAppImageMinimums = (settings: DeploySettings, summary: string): void => {\n warn(\n `An AppImage cannot declare a dependency, so nothing stops ${settings.name} from starting on a host ` +\n `whose libraries are older than the ones its bindings were generated against (${summary}). ` +\n \"Publish that requirement alongside the AppImage, or build on the oldest host you support.\",\n );\n};\n\nconst warnFlatpakMinimums = (settings: DeploySettings, summary: string): void => {\n warn(\n `The flatpak bundles binaries built against ${summary}, but runs them on ` +\n `${runtimeLabelFor(settings)}, whose libraries are whatever that runtime ships. ` +\n 'Set `deploy.flatpak.mode: \"source\"` to build inside the runtime instead.',\n );\n};\n\nconst warnUnusedMinimums = (settings: DeploySettings): void => {\n const minimums = settings.deploy.minimumLibraryVersions;\n\n if (minimums === undefined) {\n return;\n }\n\n const unused = Object.keys(minimums).filter((library) => !settings.libraries.includes(library));\n\n if (unused.length === 0) {\n return;\n }\n\n warn(\n `\\`deploy.minimumLibraryVersions\\` names ${unused.join(\", \")}, which this project generates no bindings for, ` +\n \"so those minimums change nothing.\",\n );\n};\n\nconst isPrebuiltFlatpak = (targets: DeployTarget[], settings: DeploySettings): boolean =>\n targets.some((target) => target.name === FLATPAK_TARGET) && settings.deploy.flatpak?.mode !== \"source\";\n\nconst warnLibraryMinimums = (targets: DeployTarget[], settings: DeploySettings): void => {\n const summary = minimumSummary(settings);\n\n if (summary.length > 0 && targets.some((target) => target.name === APPIMAGE_TARGET)) {\n warnAppImageMinimums(settings, summary);\n }\n\n if (summary.length > 0 && isPrebuiltFlatpak(targets, settings)) {\n warnFlatpakMinimums(settings, summary);\n }\n\n warnUnusedMinimums(settings);\n};\n\nconst sourceModeTools = (targets: DeployTarget[], settings: DeploySettings): DeployTool[] => {\n const isFlatpakSource = settings.deploy.flatpak?.mode === \"source\";\n\n if (!isFlatpakSource || targets.every((target) => target.name !== FLATPAK_TARGET)) {\n return [];\n }\n\n return detectPackageManager(settings) === \"pnpm\" ? [FLATPAK_NODE_GENERATOR_PNPM] : [FLATPAK_NODE_GENERATOR];\n};\n\nconst isNodeRequired = (targets: DeployTarget[], settings: DeploySettings): boolean =>\n !(settings.deploy.flatpak?.mode === \"source\" && targets.every((target) => target.name === FLATPAK_TARGET));\n\nconst runtimeToolsFor = (targets: DeployTarget[], settings: DeploySettings): DeployTool[] => {\n if (!isNodeRequired(targets, settings)) {\n return [];\n }\n\n const node = settings.deploy.node ?? {};\n const archiveTools = (node.source ?? \"download\") === \"download\" ? [TAR] : [];\n\n return node.shouldStrip === false ? archiveTools : [...archiveTools, STRIP];\n};\n\nconst mutableCatalogTools = (project: CatalogProject): DeployTool[] => {\n if (project.catalogs.length === 0) {\n return [MSGGREP, XGETTEXT];\n }\n\n return [\n MSGFMT,\n MSGGREP,\n ...(requiresCatalogInitialization(project) ? [MSGINIT] : []),\n MSGMERGE,\n XGETTEXT,\n ];\n};\n\nconst catalogTools = (project: CatalogProject | null, shouldSkipBuild: boolean): DeployTool[] => {\n if (project === null) {\n return [];\n }\n\n if (!shouldSkipBuild) {\n return mutableCatalogTools(project);\n }\n\n return project.catalogs.length === 0 ? [] : [MSGFMT];\n};\n\nconst preflight = ({\n targets,\n settings,\n project,\n shouldPrintManifests,\n shouldSkipBuild,\n}: PreflightRequest): void => {\n const packagerTools = shouldPrintManifests\n ? []\n : [...runtimeToolsFor(targets, settings), ...targets.flatMap((target) => target.tools)];\n\n const required = [\n DESKTOP_FILE_VALIDATE,\n APPSTREAMCLI,\n ...catalogTools(project, shouldSkipBuild),\n ...sourceModeTools(targets, settings),\n ];\n\n const report = probeTools([...required, ...packagerTools]);\n assertTools(report);\n warnMissingOptional(report);\n warnFlatpakPermissions(targets, settings);\n warnLibraryMinimums(targets, settings);\n};\n\nconst resolveTargetNames = (options: DeployOptions, settings: DeploySettings): string[] => {\n if (options.targets !== undefined) {\n return parseTargetList(options.targets);\n }\n\n return settings.deploy.targets ?? DEFAULT_TARGETS;\n};\n\nconst loadSettings = async (options: DeployOptions): Promise<LoadedDeploySettings> => {\n const { config, configFile, root } = await loadConfig(options.cwd, {\n mode: BUILD_MODE,\n configFile: options.configFile,\n });\n\n if (config.deploy === undefined) {\n throw missingDeployError(config.applicationId, readPackageManifest(root));\n }\n\n return {\n config,\n configFile,\n settings: resolveDeploySettings({\n root,\n config,\n configFile,\n outDirOverride: options.outDir,\n }),\n };\n};\n\nconst synchronizeMetadataCatalogs = async (\n settings: DeploySettings,\n templates: StagedMetadata,\n project: CatalogProject | null,\n): Promise<void> => {\n if (project === null) {\n return;\n }\n\n const srcDir = join(project.root, \"src\");\n const sourceFiles = discoverSourceFiles(existsSync(srcDir) ? srcDir : project.root);\n const stagingDir = mkdtempSync(join(project.poDir, \".gtkx-deploy-i18n-\"));\n const stagedTemplate = join(stagingDir, `${project.domain}.pot`);\n const template = join(project.poDir, `${project.domain}.pot`);\n\n try {\n await extractSourceCatalogTo(project, sourceFiles, stagedTemplate);\n extractMetadataMessages(templates, project, stagedTemplate);\n replaceCatalogTemplate(stagedTemplate, template);\n synchronizeCatalogs(project);\n compileCatalogs(project, join(settings.paths.dist, LOCALE_DIRNAME));\n } finally {\n rmSync(stagingDir, { recursive: true, force: true });\n }\n};\n\nconst buildPayload = async ({\n options,\n loaded,\n targets,\n project,\n buildOutDir,\n}: BuildPayloadRequest): Promise<DeployPayload> => {\n const settings = loaded.settings;\n const templates = renderMetadata(settings);\n\n if (buildOutDir !== null) {\n info(`Building ${options.entry}`);\n using preparedOutput = prepareBuildOutDir(settings.paths.root, buildOutDir);\n\n await buildApp({\n entry: options.entry,\n configFile: options.configFile,\n vite: { root: options.cwd, build: { outDir: preparedOutput.path, emptyOutDir: false } },\n });\n\n preparedOutput.commit();\n await synchronizeMetadataCatalogs(settings, templates, project);\n } else if (project !== null) {\n compileCatalogs(project, join(settings.paths.dist, LOCALE_DIRNAME));\n }\n\n const metadata = localizeMetadata(templates, project);\n validateMetadata(settings, metadata, isFlathubSubmission(settings, targets));\n const buildManifest = readBuildManifest(settings, loaded);\n\n const builtSettings: DeploySettings = {\n ...settings,\n paths: { ...settings.paths, schemaFiles: buildManifest.schemaFiles },\n };\n\n const node = options.shouldPrintManifests || !isNodeRequired(targets, builtSettings)\n ? null\n : await resolveNodeRuntime(builtSettings);\n\n const stage = stagePayload({ settings: builtSettings, node, metadata });\n info(`Staged ${String(stage.length)} files into ${displayPath(builtSettings, builtSettings.paths.stage)}`);\n const notices = collectNotices({ settings: builtSettings, node, packages: buildManifest.packages });\n\n return {\n settings: builtSettings,\n node,\n stage,\n notices,\n overlays: stageOverlays(builtSettings, notices, metadata),\n };\n};\n\nconst renderTargetManifests = (\n targets: DeployTarget[],\n payload: DeployPayload,\n): Map<DeployTarget, DeployManifest[]> => {\n const rendered: Map<DeployTarget, DeployManifest[]> = new Map();\n\n for (const target of targets) {\n const manifests = target.render(payload);\n\n for (const manifest of manifests) {\n writeManifest(manifest);\n info(`Wrote ${displayPath(payload.settings, manifest.path)}`);\n }\n\n rendered.set(target, manifests);\n }\n\n return rendered;\n};\n\nconst packTargets = async (\n rendered: Map<DeployTarget, DeployManifest[]>,\n payload: DeployPayload,\n): Promise<DeployArtifact[]> => {\n const artifacts: DeployArtifact[] = [];\n\n for (const [target, manifests] of rendered) {\n const built = await target.pack(payload, manifests);\n\n for (const artifact of built) {\n info(`Built ${displayPath(payload.settings, artifact.path)} (${megabytes(artifact.size)} MiB)`);\n }\n\n artifacts.push(...built);\n }\n\n return artifacts;\n};\n\nconst announce = (settings: DeploySettings, targets: DeployTarget[]): void => {\n const names = targets.map((target) => target.name).join(\", \");\n const version = `${settings.versions.packageVersion}-${settings.versions.debRevision}`;\n info(`Deploying ${settings.name} ${version} as ${settings.binaryName} (${settings.arch.rpm}) to ${names}`);\n};\n\nconst runDeploy = async (options: DeployOptions): Promise<void> => {\n let loaded = await loadSettings(options);\n let settings = loaded.settings;\n let project = resolveCatalogProject(settings.paths.root, settings.applicationId);\n let targets = targetsFor(resolveTargetNames(options, settings));\n let buildOutDir = options.shouldSkipBuild ? null : resolveBuildOutDir(settings.paths.root, settings.paths.dist);\n announce(settings, targets);\n\n preflight({\n targets,\n settings,\n project,\n shouldPrintManifests: options.shouldPrintManifests,\n shouldSkipBuild: options.shouldSkipBuild,\n });\n\n if (!options.shouldSkipBuild) {\n await ensureGenerated(options.cwd, {\n shouldAnnounce: true,\n mode: BUILD_MODE,\n configFile: options.configFile,\n });\n\n loaded = await loadSettings(options);\n settings = loaded.settings;\n project = resolveCatalogProject(settings.paths.root, settings.applicationId);\n targets = targetsFor(resolveTargetNames(options, settings));\n buildOutDir = resolveBuildOutDir(settings.paths.root, settings.paths.dist);\n }\n\n prepareDeployOutDir(settings.paths.root, settings.paths.outDir);\n const payload = await buildPayload({ options, loaded, targets, project, buildOutDir });\n const rendered = renderTargetManifests(targets, payload);\n\n if (options.shouldPrintManifests) {\n const count = rendered.values().toArray().flat().length;\n info(`Wrote ${String(count)} manifests, 0 packages built`);\n\n return;\n }\n\n const artifacts = await packTargets(rendered, payload);\n const output = displayPath(settings, settings.paths.output);\n info(`Deploy complete: ${String(artifacts.length)} artifacts in ${output}`);\n};\n\nexport { runDeploy };\n"]}
|