@gtkx/cli 1.4.0 → 1.6.0
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 +1 -1
- package/dist/builder.d.ts +1 -0
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +2 -2
- package/dist/builder.js.map +1 -1
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/codegen/freshness.d.ts.map +1 -1
- package/dist/codegen/freshness.js +2 -1
- package/dist/codegen/freshness.js.map +1 -1
- package/dist/codegen/reference.d.ts +17 -0
- package/dist/codegen/reference.d.ts.map +1 -0
- package/dist/codegen/reference.js +37 -0
- package/dist/codegen/reference.js.map +1 -0
- package/dist/codegen/report.d.ts.map +1 -1
- package/dist/codegen/report.js +17 -3
- package/dist/codegen/report.js.map +1 -1
- package/dist/codegen/run-codegen.d.ts +4 -0
- package/dist/codegen/run-codegen.d.ts.map +1 -1
- package/dist/codegen/run-codegen.js +93 -27
- package/dist/codegen/run-codegen.js.map +1 -1
- package/dist/commands/codegen.js +1 -1
- package/dist/commands/codegen.js.map +1 -1
- package/dist/commands/docs.d.ts.map +1 -1
- package/dist/commands/docs.js +10 -16
- package/dist/commands/docs.js.map +1 -1
- package/dist/commands/mcp.d.ts +13 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +68 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/deploy/freedesktop/localize.d.ts +6 -0
- package/dist/deploy/freedesktop/localize.d.ts.map +1 -0
- package/dist/deploy/freedesktop/localize.js +107 -0
- package/dist/deploy/freedesktop/localize.js.map +1 -0
- package/dist/deploy/install-hints.d.ts.map +1 -1
- package/dist/deploy/install-hints.js +5 -0
- package/dist/deploy/install-hints.js.map +1 -1
- package/dist/deploy/notices/gtkx.js +1 -1
- package/dist/deploy/notices/gtkx.js.map +1 -1
- package/dist/deploy/notices/libraries.d.ts.map +1 -1
- package/dist/deploy/notices/libraries.js +2 -1
- package/dist/deploy/notices/libraries.js.map +1 -1
- package/dist/deploy/payload/launcher.d.ts.map +1 -1
- package/dist/deploy/payload/launcher.js +2 -0
- package/dist/deploy/payload/launcher.js.map +1 -1
- package/dist/deploy/payload/stage.d.ts +1 -1
- package/dist/deploy/payload/stage.d.ts.map +1 -1
- package/dist/deploy/payload/stage.js +20 -11
- package/dist/deploy/payload/stage.js.map +1 -1
- package/dist/deploy/run-deploy.d.ts.map +1 -1
- package/dist/deploy/run-deploy.js +87 -15
- package/dist/deploy/run-deploy.js.map +1 -1
- package/dist/deploy/settings/libraries.d.ts.map +1 -1
- package/dist/deploy/settings/libraries.js +7 -9
- package/dist/deploy/settings/libraries.js.map +1 -1
- package/dist/deploy/targets/flatpak-source.d.ts.map +1 -1
- package/dist/deploy/targets/flatpak-source.js +21 -10
- package/dist/deploy/targets/flatpak-source.js.map +1 -1
- package/dist/deploy/tools.d.ts +6 -1
- package/dist/deploy/tools.d.ts.map +1 -1
- package/dist/deploy/tools.js +27 -4
- package/dist/deploy/tools.js.map +1 -1
- package/dist/dev/locale-dir.d.ts +3 -0
- package/dist/dev/locale-dir.d.ts.map +1 -0
- package/dist/dev/locale-dir.js +17 -0
- package/dist/dev/locale-dir.js.map +1 -0
- package/dist/dev/runner-main.d.ts.map +1 -1
- package/dist/dev/runner-main.js +4 -1
- package/dist/dev/runner-main.js.map +1 -1
- package/dist/dev/runner.d.ts.map +1 -1
- package/dist/dev/runner.js +6 -0
- package/dist/dev/runner.js.map +1 -1
- package/dist/dev/vite-dev-server.d.ts +1 -0
- package/dist/dev/vite-dev-server.d.ts.map +1 -1
- package/dist/dev/vite-dev-server.js.map +1 -1
- package/dist/i18n/binding-extractor.d.ts +30 -0
- package/dist/i18n/binding-extractor.d.ts.map +1 -0
- package/dist/i18n/binding-extractor.js +1324 -0
- package/dist/i18n/binding-extractor.js.map +1 -0
- package/dist/i18n/catalog-template.d.ts +3 -0
- package/dist/i18n/catalog-template.d.ts.map +1 -0
- package/dist/i18n/catalog-template.js +18 -0
- package/dist/i18n/catalog-template.js.map +1 -0
- package/dist/i18n/catalogs.d.ts +21 -0
- package/dist/i18n/catalogs.d.ts.map +1 -0
- package/dist/i18n/catalogs.js +139 -0
- package/dist/i18n/catalogs.js.map +1 -0
- package/dist/i18n/extractor-plugin.d.ts +8 -0
- package/dist/i18n/extractor-plugin.d.ts.map +1 -0
- package/dist/i18n/extractor-plugin.js +247 -0
- package/dist/i18n/extractor-plugin.js.map +1 -0
- package/dist/i18n/metadata-templates.d.ts +11 -0
- package/dist/i18n/metadata-templates.d.ts.map +1 -0
- package/dist/i18n/metadata-templates.js +11 -0
- package/dist/i18n/metadata-templates.js.map +1 -0
- package/dist/i18n/source-messages.d.ts +23 -0
- package/dist/i18n/source-messages.d.ts.map +1 -0
- package/dist/i18n/source-messages.js +403 -0
- package/dist/i18n/source-messages.js.map +1 -0
- package/dist/i18n/types.d.ts +10 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +108 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/internal/agent-rules.d.ts +7 -0
- package/dist/internal/agent-rules.d.ts.map +1 -0
- package/dist/internal/agent-rules.js +106 -0
- package/dist/internal/agent-rules.js.map +1 -0
- package/dist/internal/docs-elements.d.ts +8 -0
- package/dist/internal/docs-elements.d.ts.map +1 -0
- package/dist/internal/docs-elements.js +12 -0
- package/dist/internal/docs-elements.js.map +1 -0
- package/dist/internal/source-imports.d.ts +5 -1
- package/dist/internal/source-imports.d.ts.map +1 -1
- package/dist/internal/source-imports.js +25 -47
- package/dist/internal/source-imports.js.map +1 -1
- package/dist/mcp/client-config.d.ts +22 -0
- package/dist/mcp/client-config.d.ts.map +1 -0
- package/dist/mcp/client-config.js +94 -0
- package/dist/mcp/client-config.js.map +1 -0
- package/dist/mcp/client.d.ts +0 -1
- package/dist/mcp/client.d.ts.map +1 -1
- package/dist/mcp/client.js +11 -39
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/handlers.d.ts +2 -1
- package/dist/mcp/handlers.d.ts.map +1 -1
- package/dist/mcp/handlers.js.map +1 -1
- package/dist/settings/render.d.ts +4 -1
- package/dist/settings/render.d.ts.map +1 -1
- package/dist/settings/render.js +11 -2
- package/dist/settings/render.js.map +1 -1
- package/dist/settings/schema.d.ts.map +1 -1
- package/dist/settings/schema.js +3 -1
- package/dist/settings/schema.js.map +1 -1
- package/dist/vite-plugins/animated.d.ts +5 -0
- package/dist/vite-plugins/animated.d.ts.map +1 -0
- package/dist/vite-plugins/animated.js +325 -0
- package/dist/vite-plugins/animated.js.map +1 -0
- package/dist/vite-plugins/asset-imports.d.ts.map +1 -1
- package/dist/vite-plugins/asset-imports.js +4 -14
- package/dist/vite-plugins/asset-imports.js.map +1 -1
- package/dist/vite-plugins/i18n.d.ts +5 -0
- package/dist/vite-plugins/i18n.d.ts.map +1 -0
- package/dist/vite-plugins/i18n.js +88 -0
- package/dist/vite-plugins/i18n.js.map +1 -0
- package/dist/vite-plugins/index.d.ts +1 -1
- package/dist/vite-plugins/index.d.ts.map +1 -1
- package/dist/vite-plugins/index.js +5 -1
- 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 +12 -57
- 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 +128 -135
- package/dist/vite-plugins/self-contained.js.map +1 -1
- package/dist/vite-plugins/settings-worker-env.js +2 -2
- package/dist/vite-plugins/settings-worker-env.js.map +1 -1
- package/dist/vite-plugins/settings.d.ts.map +1 -1
- package/dist/vite-plugins/settings.js +2 -1
- package/dist/vite-plugins/settings.js.map +1 -1
- package/package.json +11 -9
- package/src/builder.ts +3 -2
- package/src/cli.ts +5 -0
- package/src/codegen/freshness.ts +2 -1
- package/src/codegen/reference.ts +59 -0
- package/src/codegen/report.ts +18 -3
- package/src/codegen/run-codegen.ts +134 -31
- package/src/commands/codegen.ts +1 -1
- package/src/commands/docs.ts +10 -28
- package/src/commands/mcp.ts +81 -0
- package/src/deploy/freedesktop/localize.ts +144 -0
- package/src/deploy/install-hints.ts +5 -0
- package/src/deploy/notices/gtkx.ts +1 -1
- package/src/deploy/notices/libraries.ts +2 -1
- package/src/deploy/payload/launcher.ts +2 -0
- package/src/deploy/payload/stage.ts +35 -10
- package/src/deploy/run-deploy.ts +128 -13
- package/src/deploy/settings/libraries.ts +7 -10
- package/src/deploy/targets/flatpak-source.ts +33 -10
- package/src/deploy/tools.ts +36 -3
- package/src/dev/locale-dir.ts +22 -0
- package/src/dev/runner-main.ts +4 -1
- package/src/dev/runner.ts +8 -0
- package/src/dev/vite-dev-server.ts +1 -0
- package/src/i18n/binding-extractor.ts +1969 -0
- package/src/i18n/catalog-template.ts +24 -0
- package/src/i18n/catalogs.ts +216 -0
- package/src/i18n/extractor-plugin.ts +413 -0
- package/src/i18n/metadata-templates.ts +29 -0
- package/src/i18n/source-messages.ts +608 -0
- package/src/i18n/types.ts +154 -0
- package/src/internal/agent-rules.ts +135 -0
- package/src/internal/docs-elements.ts +21 -0
- package/src/internal/source-imports.ts +31 -60
- package/src/mcp/client-config.ts +130 -0
- package/src/mcp/client.ts +17 -44
- package/src/mcp/handlers.ts +7 -6
- package/src/settings/render.ts +16 -2
- package/src/settings/schema.ts +3 -1
- package/src/vite-plugins/animated.ts +486 -0
- package/src/vite-plugins/asset-imports.ts +5 -17
- package/src/vite-plugins/i18n.ts +146 -0
- package/src/vite-plugins/index.ts +5 -0
- package/src/vite-plugins/resources.ts +12 -74
- package/src/vite-plugins/self-contained.ts +150 -169
- package/src/vite-plugins/settings-worker-env.ts +2 -2
- package/src/vite-plugins/settings.ts +2 -1
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import { createConfigLoader } from "@gtkx/config/internal";
|
|
2
2
|
import createConfigPlugin from "@gtkx/config/vite-plugin";
|
|
3
|
+
import { gtkxAnimated } from "./animated.js";
|
|
3
4
|
import { gtkxAssetImports } from "./asset-imports.js";
|
|
4
5
|
import { gtkxBuiltUrl } from "./built-url.js";
|
|
5
6
|
import { gtkxCss } from "./css.js";
|
|
7
|
+
import { gtkxI18n } from "./i18n.js";
|
|
6
8
|
import { gtkxIcons } from "./icons.js";
|
|
7
9
|
import { gtkxReactCompiler } from "./react-compiler.js";
|
|
8
10
|
import { gtkxResources } from "./resources.js";
|
|
9
11
|
import { gtkxSettings } from "./settings.js";
|
|
10
12
|
import { gtkxStoreLinks } from "./store-links.js";
|
|
11
13
|
import { gtkxUndeclaredLibrary } from "./undeclared-library.js";
|
|
12
|
-
const gtkxVitePlugins = (mode, entryPath, buildManifest) => {
|
|
14
|
+
const gtkxVitePlugins = (mode, entryPath, buildManifest, shouldPreserveI18nMetadata = true) => {
|
|
13
15
|
const loadConfig = createConfigLoader(mode === undefined ? {} : { mode });
|
|
14
16
|
return [
|
|
15
17
|
createConfigPlugin({ name: "gtkx:config", loadConfig }),
|
|
18
|
+
...(entryPath === undefined ? [] : [gtkxI18n(entryPath, loadConfig, shouldPreserveI18nMetadata)]),
|
|
16
19
|
gtkxStoreLinks(),
|
|
17
20
|
gtkxUndeclaredLibrary(loadConfig),
|
|
18
21
|
gtkxSettings(loadConfig, buildManifest),
|
|
@@ -21,6 +24,7 @@ const gtkxVitePlugins = (mode, entryPath, buildManifest) => {
|
|
|
21
24
|
gtkxBuiltUrl(),
|
|
22
25
|
gtkxResources(loadConfig, entryPath),
|
|
23
26
|
gtkxCss(),
|
|
27
|
+
gtkxAnimated(loadConfig),
|
|
24
28
|
gtkxReactCompiler(loadConfig),
|
|
25
29
|
];
|
|
26
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vite-plugins/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,eAAe,GAAG,CACpB,IAAa,EACb,SAAkB,EAClB,aAAsC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vite-plugins/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,eAAe,GAAG,CACpB,IAAa,EACb,SAAkB,EAClB,aAAsC,EACtC,0BAA0B,GAAG,IAAI,EACzB,EAAE;IACV,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1E,OAAO;QACH,kBAAkB,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;QACvD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,0BAA0B,CAAC,CAAC,CAAC;QACjG,cAAc,EAAE;QAChB,qBAAqB,CAAC,UAAU,CAAC;QACjC,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC;QACvC,SAAS,CAAC,UAAU,CAAC;QACrB,gBAAgB,CAAC,UAAU,CAAC;QAC5B,YAAY,EAAE;QACd,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC;QACpC,OAAO,EAAE;QACT,YAAY,CAAC,UAAU,CAAC;QACxB,iBAAiB,CAAC,UAAU,CAAC;KAChC,CAAC;AACN,CAAC,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC","sourcesContent":["import type { Plugin } from \"vite\";\nimport { createConfigLoader } from \"@gtkx/config/internal\";\nimport createConfigPlugin from \"@gtkx/config/vite-plugin\";\nimport type { BuildManifestCollector } from \"../internal/build-manifest.js\";\nimport { gtkxAnimated } from \"./animated.js\";\nimport { gtkxAssetImports } from \"./asset-imports.js\";\nimport { gtkxBuiltUrl } from \"./built-url.js\";\nimport { gtkxCss } from \"./css.js\";\nimport { gtkxI18n } from \"./i18n.js\";\nimport { gtkxIcons } from \"./icons.js\";\nimport { gtkxReactCompiler } from \"./react-compiler.js\";\nimport { gtkxResources } from \"./resources.js\";\nimport { gtkxSettings } from \"./settings.js\";\nimport { gtkxStoreLinks } from \"./store-links.js\";\nimport { gtkxUndeclaredLibrary } from \"./undeclared-library.js\";\n\nconst gtkxVitePlugins = (\n mode?: string,\n entryPath?: string,\n buildManifest?: BuildManifestCollector,\n shouldPreserveI18nMetadata = true,\n): Plugin[] => {\n const loadConfig = createConfigLoader(mode === undefined ? {} : { mode });\n\n return [\n createConfigPlugin({ name: \"gtkx:config\", loadConfig }),\n ...(entryPath === undefined ? [] : [gtkxI18n(entryPath, loadConfig, shouldPreserveI18nMetadata)]),\n gtkxStoreLinks(),\n gtkxUndeclaredLibrary(loadConfig),\n gtkxSettings(loadConfig, buildManifest),\n gtkxIcons(loadConfig),\n gtkxAssetImports(loadConfig),\n gtkxBuiltUrl(),\n gtkxResources(loadConfig, entryPath),\n gtkxCss(),\n gtkxAnimated(loadConfig),\n gtkxReactCompiler(loadConfig),\n ];\n};\n\nexport { gtkxVitePlugins };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAc,MAAM,EAAuD,MAAM,MAAM,CAAC;AAylDpG,iBAAS,aAAa,CAAC,UAAU,GAAE,YAAmC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAyBlG;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createConfigLoader, resourceBasePath } from "@gtkx/config/internal";
|
|
1
|
+
import { createConfigLoader, resolveFuture, resourceBasePath } from "@gtkx/config/internal";
|
|
2
2
|
import { error, info, isRecord, sortStrings } from "@gtkx/utils";
|
|
3
3
|
import { copyFileSync, existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
4
4
|
import { basename, dirname, extname, isAbsolute, join, posix, relative, sep } from "node:path";
|
|
@@ -6,7 +6,7 @@ import { parseSync } from "vite";
|
|
|
6
6
|
import { resolveDataDir } from "../internal/data-dir.js";
|
|
7
7
|
import { listFilesRecursive } from "../internal/list-files.js";
|
|
8
8
|
import { runCliTool } from "../internal/run-cli-tool.js";
|
|
9
|
-
import { parseRuntimeImportsIn } from "../internal/source-imports.js";
|
|
9
|
+
import { parseRuntimeImportsIn, sourceLanguage } from "../internal/source-imports.js";
|
|
10
10
|
import { createRetainedStagingDir, withStagingDir } from "../internal/staging-dir.js";
|
|
11
11
|
import { ASSET_RE } from "./asset-extensions.js";
|
|
12
12
|
import { DATA_PREFIX, isBareRelativeAsset, isDataAsset, parseIconSpecifier, parseResourceSpecifier, } from "./asset-specifier.js";
|
|
@@ -49,16 +49,6 @@ const STOCK_ICON_CONTEXTS = new Set([
|
|
|
49
49
|
]);
|
|
50
50
|
const ICON_SIZE_RE = /^([1-9]\d*)x\1(?:@[1-9]\d*)?$/;
|
|
51
51
|
const RESERVED_ICON_NAMES = new Set(["", ".", ".."]);
|
|
52
|
-
const SOURCE_LANGUAGES = new Map([
|
|
53
|
-
[".cjs", "jsx"],
|
|
54
|
-
[".cts", "ts"],
|
|
55
|
-
[".js", "jsx"],
|
|
56
|
-
[".jsx", "jsx"],
|
|
57
|
-
[".mjs", "jsx"],
|
|
58
|
-
[".mts", "ts"],
|
|
59
|
-
[".ts", "ts"],
|
|
60
|
-
[".tsx", "tsx"],
|
|
61
|
-
]);
|
|
62
52
|
const toForwardSlashes = (value) => value.replaceAll(/[/\\]/g, "/");
|
|
63
53
|
const isWithin = (root, path) => {
|
|
64
54
|
const rel = relative(root, path);
|
|
@@ -159,7 +149,7 @@ const derivedIconEntry = (state, sourcePath, requestedName) => {
|
|
|
159
149
|
return { iconIdentity, iconName, resourcePath };
|
|
160
150
|
};
|
|
161
151
|
const hasSideEffectIconImport = (code, id) => {
|
|
162
|
-
const lang =
|
|
152
|
+
const lang = sourceLanguage(stripQuery(id));
|
|
163
153
|
if (lang === undefined || !code.includes("?icon")) {
|
|
164
154
|
return false;
|
|
165
155
|
}
|
|
@@ -251,14 +241,6 @@ const registerDevAsset = (state) => {
|
|
|
251
241
|
}
|
|
252
242
|
};
|
|
253
243
|
const importerKey = (importer) => stripQuery(importer);
|
|
254
|
-
const claimEntry = (state, resourcePath, importer) => {
|
|
255
|
-
if (importer === undefined) {
|
|
256
|
-
return;
|
|
257
|
-
}
|
|
258
|
-
const importers = state.entryImporters.get(resourcePath) ?? new Set();
|
|
259
|
-
importers.add(importerKey(importer));
|
|
260
|
-
state.entryImporters.set(resourcePath, importers);
|
|
261
|
-
};
|
|
262
244
|
const trackBundledSpecifier = (state, importer, source) => {
|
|
263
245
|
if (importer === undefined) {
|
|
264
246
|
return;
|
|
@@ -268,32 +250,22 @@ const trackBundledSpecifier = (state, importer, source) => {
|
|
|
268
250
|
specifiers.add(source);
|
|
269
251
|
state.bundledSpecifiers.set(key, specifiers);
|
|
270
252
|
};
|
|
271
|
-
const claimIcon = (state, iconIdentity, importer) => {
|
|
272
|
-
if (importer === undefined) {
|
|
273
|
-
return;
|
|
274
|
-
}
|
|
275
|
-
const importers = state.iconImporters.get(iconIdentity) ?? new Set();
|
|
276
|
-
importers.add(importerKey(importer));
|
|
277
|
-
state.iconImporters.set(iconIdentity, importers);
|
|
278
|
-
};
|
|
279
253
|
const createResourceEntry = (sourcePath, resourcePath) => ({
|
|
280
254
|
sourcePath,
|
|
281
255
|
stagedRelPath: resourcePath.replace(/^\/+/, ""),
|
|
282
256
|
resourcePath,
|
|
283
257
|
});
|
|
284
|
-
const activateEntry = (state, entry
|
|
258
|
+
const activateEntry = (state, entry) => {
|
|
285
259
|
const existing = state.entries.get(entry.resourcePath);
|
|
286
260
|
if (existing !== undefined) {
|
|
287
261
|
if (existing.sourcePath !== entry.sourcePath) {
|
|
288
262
|
throw new Error(`${existing.sourcePath} and ${entry.sourcePath} both resolve to the GResource path ` +
|
|
289
263
|
entry.resourcePath);
|
|
290
264
|
}
|
|
291
|
-
claimEntry(state, entry.resourcePath, importer);
|
|
292
265
|
return existing;
|
|
293
266
|
}
|
|
294
267
|
state.entries.set(entry.resourcePath, entry);
|
|
295
268
|
state.sourcePaths.add(entry.sourcePath);
|
|
296
|
-
claimEntry(state, entry.resourcePath, importer);
|
|
297
269
|
return entry;
|
|
298
270
|
};
|
|
299
271
|
const isDeclarativeImporter = (state, importer) => !state.isBuild && state.isV2 && importer !== undefined;
|
|
@@ -344,10 +316,6 @@ const declareResolvedIcon = (state, importer, iconIdentity, entry) => {
|
|
|
344
316
|
declareIcon(state, importer, iconIdentity, entry);
|
|
345
317
|
}
|
|
346
318
|
};
|
|
347
|
-
const activateIcon = (state, importer, iconIdentity, entry) => {
|
|
348
|
-
state.iconOwners.set(iconIdentity, entry);
|
|
349
|
-
claimIcon(state, iconIdentity, importer);
|
|
350
|
-
};
|
|
351
319
|
const registerEntry = (state, absPath, rel, importer) => {
|
|
352
320
|
const resourcePath = validateResourcePath(rel.startsWith("/") ? rel : `${state.prefix}/${rel}`);
|
|
353
321
|
let entry = createResourceEntry(absPath, resourcePath);
|
|
@@ -357,7 +325,7 @@ const registerEntry = (state, absPath, rel, importer) => {
|
|
|
357
325
|
return entry;
|
|
358
326
|
}
|
|
359
327
|
}
|
|
360
|
-
return activateEntry(state, entry
|
|
328
|
+
return activateEntry(state, entry);
|
|
361
329
|
};
|
|
362
330
|
const registerIconEntry = (state, sourcePath, derived, importer) => {
|
|
363
331
|
const shouldActivate = !isDeclarativeImporter(state, importer) ||
|
|
@@ -368,7 +336,7 @@ const registerIconEntry = (state, sourcePath, derived, importer) => {
|
|
|
368
336
|
const entry = registerEntry(state, sourcePath, derived.resourcePath, importer);
|
|
369
337
|
declareResolvedIcon(state, importer, derived.iconIdentity, entry);
|
|
370
338
|
if (shouldActivate) {
|
|
371
|
-
|
|
339
|
+
state.iconOwners.set(derived.iconIdentity, entry);
|
|
372
340
|
}
|
|
373
341
|
return entry;
|
|
374
342
|
};
|
|
@@ -554,8 +522,7 @@ const isSameSpecifiers = (left, right) => left === undefined
|
|
|
554
522
|
const bundledSpecifiersIn = (imports) => new Set(imports
|
|
555
523
|
.filter((entry) => parseResourceSpecifier(entry.source) !== null || parseIconSpecifier(entry.source) !== null)
|
|
556
524
|
.map((entry) => entry.source));
|
|
557
|
-
const isSourceModule = (file) =>
|
|
558
|
-
SOURCE_LANGUAGES.has(extname(file).toLowerCase());
|
|
525
|
+
const isSourceModule = (file) => sourceLanguage(file) !== undefined;
|
|
559
526
|
const isBundledSource = (source) => parseResourceSpecifier(source) !== null || parseIconSpecifier(source) !== null;
|
|
560
527
|
const validateUnbundledV2Source = (source) => {
|
|
561
528
|
if (isLegacyDataSpecifier(source)) {
|
|
@@ -689,20 +656,18 @@ const activeImporterKeys = (state) => {
|
|
|
689
656
|
return active;
|
|
690
657
|
};
|
|
691
658
|
const isImporterActive = (state, importer) => activeImporterKeys(state).has(importerKey(importer));
|
|
692
|
-
const activateDeclaredIcon = (state,
|
|
659
|
+
const activateDeclaredIcon = (state, iconIdentity, entry) => {
|
|
693
660
|
const existing = state.iconOwners.get(iconIdentity);
|
|
694
661
|
if (existing !== undefined && existing.sourcePath !== entry.sourcePath) {
|
|
695
662
|
throw new Error(`${existing.sourcePath} and ${entry.sourcePath} both claim the themed icon ${iconIdentity}`);
|
|
696
663
|
}
|
|
697
|
-
|
|
698
|
-
state.iconOwners.set(iconIdentity, activeEntry);
|
|
699
|
-
claimIcon(state, iconIdentity, importer);
|
|
664
|
+
state.iconOwners.set(iconIdentity, activateEntry(state, entry));
|
|
700
665
|
};
|
|
701
666
|
const activateDeclaredEntries = (state, importer) => {
|
|
702
667
|
const entries = state.declaredEntries.get(importer)?.values() ?? [];
|
|
703
668
|
for (const entry of entries) {
|
|
704
669
|
if (isDeclaredSourceAvailable(state, entry.sourcePath)) {
|
|
705
|
-
activateEntry(state, entry
|
|
670
|
+
activateEntry(state, entry);
|
|
706
671
|
}
|
|
707
672
|
}
|
|
708
673
|
};
|
|
@@ -710,7 +675,7 @@ const activateDeclaredIcons = (state, importer) => {
|
|
|
710
675
|
const icons = state.declaredIcons.get(importer) ?? [];
|
|
711
676
|
for (const [iconIdentity, entry] of icons) {
|
|
712
677
|
if (isDeclaredSourceAvailable(state, entry.sourcePath)) {
|
|
713
|
-
activateDeclaredIcon(state,
|
|
678
|
+
activateDeclaredIcon(state, iconIdentity, entry);
|
|
714
679
|
}
|
|
715
680
|
}
|
|
716
681
|
};
|
|
@@ -723,14 +688,10 @@ const activateDeclaredClaims = (state, active) => {
|
|
|
723
688
|
const rebuildActiveClaims = (state) => {
|
|
724
689
|
const previous = {
|
|
725
690
|
entries: state.entries,
|
|
726
|
-
entryImporters: state.entryImporters,
|
|
727
|
-
iconImporters: state.iconImporters,
|
|
728
691
|
iconOwners: state.iconOwners,
|
|
729
692
|
sourcePaths: state.sourcePaths,
|
|
730
693
|
};
|
|
731
694
|
state.entries = new Map();
|
|
732
|
-
state.entryImporters = new Map();
|
|
733
|
-
state.iconImporters = new Map();
|
|
734
695
|
state.iconOwners = new Map();
|
|
735
696
|
state.sourcePaths = new Set();
|
|
736
697
|
try {
|
|
@@ -738,8 +699,6 @@ const rebuildActiveClaims = (state) => {
|
|
|
738
699
|
}
|
|
739
700
|
catch (error_) {
|
|
740
701
|
state.entries = previous.entries;
|
|
741
|
-
state.entryImporters = previous.entryImporters;
|
|
742
|
-
state.iconImporters = previous.iconImporters;
|
|
743
702
|
state.iconOwners = previous.iconOwners;
|
|
744
703
|
state.sourcePaths = previous.sourcePaths;
|
|
745
704
|
throw error_;
|
|
@@ -840,7 +799,6 @@ const prepareReconciliation = async (ctx, state, reconciliation) => {
|
|
|
840
799
|
};
|
|
841
800
|
const commitReconciliation = (state, candidate) => {
|
|
842
801
|
state.entries = candidate.entries;
|
|
843
|
-
state.entryImporters = candidate.entryImporters;
|
|
844
802
|
state.bundledSpecifiers = candidate.bundledSpecifiers;
|
|
845
803
|
state.moduleDependencies = candidate.moduleDependencies;
|
|
846
804
|
state.prunedDependencies = candidate.prunedDependencies;
|
|
@@ -849,7 +807,6 @@ const commitReconciliation = (state, candidate) => {
|
|
|
849
807
|
state.missingSourcePaths = candidate.missingSourcePaths;
|
|
850
808
|
state.sourcePaths = candidate.sourcePaths;
|
|
851
809
|
state.iconOwners = candidate.iconOwners;
|
|
852
|
-
state.iconImporters = candidate.iconImporters;
|
|
853
810
|
};
|
|
854
811
|
const reconcileV2Importer = async (ctx, state, id) => {
|
|
855
812
|
const reconciliation = await importerReconciliation(ctx, state, id);
|
|
@@ -867,7 +824,7 @@ const resolveResourceConfig = async (state, config, loadConfig) => {
|
|
|
867
824
|
const loaded = await loadConfig.load(config.root ?? process.cwd());
|
|
868
825
|
state.prefix = resourceBasePath(loaded.config.applicationId);
|
|
869
826
|
state.root = loaded.root;
|
|
870
|
-
state.isV2 = loaded.config.future
|
|
827
|
+
state.isV2 = resolveFuture(loaded.config.future).isResourceImported;
|
|
871
828
|
return {
|
|
872
829
|
assetsInclude: [ASSET_RE],
|
|
873
830
|
};
|
|
@@ -1064,7 +1021,6 @@ function gtkxResources(loadConfig = createConfigLoader(), entryPath) {
|
|
|
1064
1021
|
isBuild: false,
|
|
1065
1022
|
isV2: false,
|
|
1066
1023
|
entries: new Map(),
|
|
1067
|
-
entryImporters: new Map(),
|
|
1068
1024
|
bundledSpecifiers: new Map(),
|
|
1069
1025
|
moduleDependencies: new Map(),
|
|
1070
1026
|
prunedDependencies: new Map(),
|
|
@@ -1080,7 +1036,6 @@ function gtkxResources(loadConfig = createConfigLoader(), entryPath) {
|
|
|
1080
1036
|
dataDir: null,
|
|
1081
1037
|
bundleReferenceId: null,
|
|
1082
1038
|
iconOwners: new Map(),
|
|
1083
|
-
iconImporters: new Map(),
|
|
1084
1039
|
};
|
|
1085
1040
|
return createResourcesPlugin(state, loadConfig);
|
|
1086
1041
|
}
|