@gtkx/cli 1.5.0 → 2.0.0-beta.1

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.
Files changed (211) hide show
  1. package/README.md +5 -5
  2. package/dist/cli.js +4 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/codegen/freshness.d.ts.map +1 -1
  5. package/dist/codegen/freshness.js +45 -15
  6. package/dist/codegen/freshness.js.map +1 -1
  7. package/dist/codegen/reference.d.ts +17 -0
  8. package/dist/codegen/reference.d.ts.map +1 -0
  9. package/dist/codegen/reference.js +31 -0
  10. package/dist/codegen/reference.js.map +1 -0
  11. package/dist/codegen/report.d.ts.map +1 -1
  12. package/dist/codegen/report.js +18 -15
  13. package/dist/codegen/report.js.map +1 -1
  14. package/dist/codegen/run-codegen.d.ts +5 -5
  15. package/dist/codegen/run-codegen.d.ts.map +1 -1
  16. package/dist/codegen/run-codegen.js +24 -59
  17. package/dist/codegen/run-codegen.js.map +1 -1
  18. package/dist/codegen/store-resolver.d.ts +0 -1
  19. package/dist/codegen/store-resolver.d.ts.map +1 -1
  20. package/dist/codegen/store-resolver.js +8 -17
  21. package/dist/codegen/store-resolver.js.map +1 -1
  22. package/dist/commands/docs.d.ts.map +1 -1
  23. package/dist/commands/docs.js +6 -22
  24. package/dist/commands/docs.js.map +1 -1
  25. package/dist/commands/mcp.d.ts +13 -0
  26. package/dist/commands/mcp.d.ts.map +1 -0
  27. package/dist/commands/mcp.js +68 -0
  28. package/dist/commands/mcp.js.map +1 -0
  29. package/dist/deploy/freedesktop/copyright.d.ts.map +1 -1
  30. package/dist/deploy/freedesktop/copyright.js +2 -13
  31. package/dist/deploy/freedesktop/copyright.js.map +1 -1
  32. package/dist/deploy/freedesktop/xml.d.ts.map +1 -1
  33. package/dist/deploy/freedesktop/xml.js +21 -25
  34. package/dist/deploy/freedesktop/xml.js.map +1 -1
  35. package/dist/deploy/node-runtime/license.d.ts.map +1 -1
  36. package/dist/deploy/node-runtime/license.js +2 -9
  37. package/dist/deploy/node-runtime/license.js.map +1 -1
  38. package/dist/deploy/notices/gtkx.js +1 -1
  39. package/dist/deploy/notices/gtkx.js.map +1 -1
  40. package/dist/deploy/notices/libraries.d.ts.map +1 -1
  41. package/dist/deploy/notices/libraries.js +2 -1
  42. package/dist/deploy/notices/libraries.js.map +1 -1
  43. package/dist/deploy/notices/packages.d.ts.map +1 -1
  44. package/dist/deploy/notices/packages.js +3 -10
  45. package/dist/deploy/notices/packages.js.map +1 -1
  46. package/dist/deploy/payload/copy-tree.d.ts.map +1 -1
  47. package/dist/deploy/payload/copy-tree.js +3 -3
  48. package/dist/deploy/payload/copy-tree.js.map +1 -1
  49. package/dist/deploy/payload/stage.d.ts.map +1 -1
  50. package/dist/deploy/payload/stage.js +1 -3
  51. package/dist/deploy/payload/stage.js.map +1 -1
  52. package/dist/deploy/settings/build-manifest.d.ts.map +1 -1
  53. package/dist/deploy/settings/build-manifest.js +4 -15
  54. package/dist/deploy/settings/build-manifest.js.map +1 -1
  55. package/dist/deploy/settings/libraries.d.ts.map +1 -1
  56. package/dist/deploy/settings/libraries.js +2 -21
  57. package/dist/deploy/settings/libraries.js.map +1 -1
  58. package/dist/deploy/settings/paths.d.ts +1 -2
  59. package/dist/deploy/settings/paths.d.ts.map +1 -1
  60. package/dist/deploy/settings/paths.js +5 -15
  61. package/dist/deploy/settings/paths.js.map +1 -1
  62. package/dist/deploy/settings/screenshots.d.ts.map +1 -1
  63. package/dist/deploy/settings/screenshots.js +6 -31
  64. package/dist/deploy/settings/screenshots.js.map +1 -1
  65. package/dist/deploy/targets/flatpak-pnpm.js +4 -4
  66. package/dist/deploy/targets/flatpak-pnpm.js.map +1 -1
  67. package/dist/deploy/targets/flatpak-source.d.ts.map +1 -1
  68. package/dist/deploy/targets/flatpak-source.js +4 -4
  69. package/dist/deploy/targets/flatpak-source.js.map +1 -1
  70. package/dist/deploy/targets/flatpak-sources.js +1 -1
  71. package/dist/deploy/targets/flatpak-sources.js.map +1 -1
  72. package/dist/deploy/tools.d.ts.map +1 -1
  73. package/dist/deploy/tools.js +1 -3
  74. package/dist/deploy/tools.js.map +1 -1
  75. package/dist/dev/runner-main.js +1 -1
  76. package/dist/dev/runner-main.js.map +1 -1
  77. package/dist/dev/schema-dir.d.ts +1 -1
  78. package/dist/dev/schema-dir.d.ts.map +1 -1
  79. package/dist/dev/schema-dir.js +2 -4
  80. package/dist/dev/schema-dir.js.map +1 -1
  81. package/dist/i18n/catalogs.d.ts.map +1 -1
  82. package/dist/i18n/catalogs.js +2 -1
  83. package/dist/i18n/catalogs.js.map +1 -1
  84. package/dist/i18n/metadata-templates.d.ts.map +1 -1
  85. package/dist/i18n/metadata-templates.js +2 -1
  86. package/dist/i18n/metadata-templates.js.map +1 -1
  87. package/dist/i18n/source-messages.d.ts +3 -21
  88. package/dist/i18n/source-messages.d.ts.map +1 -1
  89. package/dist/i18n/source-messages.js +66 -85
  90. package/dist/i18n/source-messages.js.map +1 -1
  91. package/dist/i18n/types.d.ts +6 -7
  92. package/dist/i18n/types.d.ts.map +1 -1
  93. package/dist/i18n/types.js +83 -96
  94. package/dist/i18n/types.js.map +1 -1
  95. package/dist/internal/agent-rules.d.ts +7 -0
  96. package/dist/internal/agent-rules.d.ts.map +1 -0
  97. package/dist/internal/agent-rules.js +106 -0
  98. package/dist/internal/agent-rules.js.map +1 -0
  99. package/dist/internal/docs-elements.d.ts +8 -0
  100. package/dist/internal/docs-elements.d.ts.map +1 -0
  101. package/dist/internal/docs-elements.js +12 -0
  102. package/dist/internal/docs-elements.js.map +1 -0
  103. package/dist/internal/icon-path.d.ts.map +1 -1
  104. package/dist/internal/icon-path.js +5 -16
  105. package/dist/internal/icon-path.js.map +1 -1
  106. package/dist/internal/source-imports.d.ts.map +1 -1
  107. package/dist/internal/source-imports.js +10 -42
  108. package/dist/internal/source-imports.js.map +1 -1
  109. package/dist/mcp/client-config.d.ts +22 -0
  110. package/dist/mcp/client-config.d.ts.map +1 -0
  111. package/dist/mcp/client-config.js +94 -0
  112. package/dist/mcp/client-config.js.map +1 -0
  113. package/dist/settings/render.d.ts +0 -1
  114. package/dist/settings/render.d.ts.map +1 -1
  115. package/dist/settings/render.js +1 -11
  116. package/dist/settings/render.js.map +1 -1
  117. package/dist/settings/schema.d.ts +2 -2
  118. package/dist/settings/schema.d.ts.map +1 -1
  119. package/dist/settings/schema.js +21 -62
  120. package/dist/settings/schema.js.map +1 -1
  121. package/dist/vite-plugins/asset-imports.d.ts +1 -2
  122. package/dist/vite-plugins/asset-imports.d.ts.map +1 -1
  123. package/dist/vite-plugins/asset-imports.js +19 -32
  124. package/dist/vite-plugins/asset-imports.js.map +1 -1
  125. package/dist/vite-plugins/asset-specifier.d.ts +1 -3
  126. package/dist/vite-plugins/asset-specifier.d.ts.map +1 -1
  127. package/dist/vite-plugins/asset-specifier.js +1 -4
  128. package/dist/vite-plugins/asset-specifier.js.map +1 -1
  129. package/dist/vite-plugins/i18n.d.ts.map +1 -1
  130. package/dist/vite-plugins/i18n.js +2 -1
  131. package/dist/vite-plugins/i18n.js.map +1 -1
  132. package/dist/vite-plugins/index.js +2 -2
  133. package/dist/vite-plugins/index.js.map +1 -1
  134. package/dist/vite-plugins/resources.d.ts.map +1 -1
  135. package/dist/vite-plugins/resources.js +31 -96
  136. package/dist/vite-plugins/resources.js.map +1 -1
  137. package/dist/vite-plugins/settings-worker-env.d.ts.map +1 -1
  138. package/dist/vite-plugins/settings-worker-env.js +1 -3
  139. package/dist/vite-plugins/settings-worker-env.js.map +1 -1
  140. package/dist/vite-plugins/settings.d.ts +1 -2
  141. package/dist/vite-plugins/settings.d.ts.map +1 -1
  142. package/dist/vite-plugins/settings.js +8 -13
  143. package/dist/vite-plugins/settings.js.map +1 -1
  144. package/dist/vite-plugins/undeclared-library.d.ts.map +1 -1
  145. package/dist/vite-plugins/undeclared-library.js +10 -13
  146. package/dist/vite-plugins/undeclared-library.js.map +1 -1
  147. package/dist/vite-plugins/worker.d.ts.map +1 -1
  148. package/dist/vite-plugins/worker.js +0 -1
  149. package/dist/vite-plugins/worker.js.map +1 -1
  150. package/package.json +21 -14
  151. package/src/cli.ts +5 -0
  152. package/src/codegen/freshness.ts +66 -16
  153. package/src/codegen/reference.ts +52 -0
  154. package/src/codegen/report.ts +16 -17
  155. package/src/codegen/run-codegen.ts +31 -91
  156. package/src/codegen/store-resolver.ts +8 -24
  157. package/src/commands/docs.ts +6 -36
  158. package/src/commands/mcp.ts +81 -0
  159. package/src/deploy/freedesktop/copyright.ts +2 -14
  160. package/src/deploy/freedesktop/xml.ts +24 -32
  161. package/src/deploy/node-runtime/license.ts +2 -8
  162. package/src/deploy/notices/gtkx.ts +1 -1
  163. package/src/deploy/notices/libraries.ts +2 -1
  164. package/src/deploy/notices/packages.ts +3 -11
  165. package/src/deploy/payload/copy-tree.ts +3 -4
  166. package/src/deploy/payload/stage.ts +2 -6
  167. package/src/deploy/settings/build-manifest.ts +4 -16
  168. package/src/deploy/settings/libraries.ts +1 -25
  169. package/src/deploy/settings/paths.ts +6 -16
  170. package/src/deploy/settings/screenshots.ts +8 -46
  171. package/src/deploy/targets/flatpak-pnpm.ts +4 -4
  172. package/src/deploy/targets/flatpak-source.ts +4 -4
  173. package/src/deploy/targets/flatpak-sources.ts +1 -1
  174. package/src/deploy/tools.ts +1 -3
  175. package/src/dev/runner-main.ts +1 -1
  176. package/src/dev/schema-dir.ts +2 -4
  177. package/src/i18n/catalogs.ts +2 -1
  178. package/src/i18n/metadata-templates.ts +2 -1
  179. package/src/i18n/source-messages.ts +77 -115
  180. package/src/i18n/types.ts +97 -131
  181. package/src/internal/agent-rules.ts +135 -0
  182. package/src/internal/docs-elements.ts +21 -0
  183. package/src/internal/icon-path.ts +6 -19
  184. package/src/internal/source-imports.ts +14 -50
  185. package/src/mcp/client-config.ts +130 -0
  186. package/src/settings/render.ts +1 -13
  187. package/src/settings/schema.ts +19 -81
  188. package/src/vite-plugins/asset-imports.ts +20 -44
  189. package/src/vite-plugins/asset-specifier.ts +0 -5
  190. package/src/vite-plugins/i18n.ts +2 -1
  191. package/src/vite-plugins/index.ts +2 -2
  192. package/src/vite-plugins/resources.ts +36 -139
  193. package/src/vite-plugins/settings-worker-env.ts +1 -3
  194. package/src/vite-plugins/settings.ts +11 -19
  195. package/src/vite-plugins/undeclared-library.ts +14 -20
  196. package/src/vite-plugins/worker.ts +0 -1
  197. package/dist/i18n/binding-extractor.d.ts +0 -30
  198. package/dist/i18n/binding-extractor.d.ts.map +0 -1
  199. package/dist/i18n/binding-extractor.js +0 -1324
  200. package/dist/i18n/binding-extractor.js.map +0 -1
  201. package/dist/i18n/extractor-plugin.d.ts +0 -8
  202. package/dist/i18n/extractor-plugin.d.ts.map +0 -1
  203. package/dist/i18n/extractor-plugin.js +0 -247
  204. package/dist/i18n/extractor-plugin.js.map +0 -1
  205. package/dist/internal/data-dir.d.ts +0 -4
  206. package/dist/internal/data-dir.d.ts.map +0 -1
  207. package/dist/internal/data-dir.js +0 -52
  208. package/dist/internal/data-dir.js.map +0 -1
  209. package/src/i18n/binding-extractor.ts +0 -1969
  210. package/src/i18n/extractor-plugin.ts +0 -413
  211. package/src/internal/data-dir.ts +0 -70
@@ -1 +1 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/vite-plugins/resources.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ConfigLoader } from \"@gtkx/config\";\nimport type { ModuleNode, Plugin, ResolvedConfig, Rolldown, UserConfig, ViteDevServer } from \"vite\";\nimport { createConfigLoader, resourceBasePath } from \"@gtkx/config/internal\";\nimport { error, info, isRecord, sortStrings } from \"@gtkx/utils\";\nimport { copyFileSync, existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from \"node:fs\";\nimport { basename, dirname, extname, isAbsolute, join, posix, relative, sep } from \"node:path\";\nimport { parseSync } from \"vite\";\nimport { resolveDataDir } from \"../internal/data-dir.js\";\nimport { type ListedFile, listFilesRecursive } from \"../internal/list-files.js\";\nimport { runCliTool } from \"../internal/run-cli-tool.js\";\nimport { parseRuntimeImportsIn, type SourceImport, sourceLanguage } from \"../internal/source-imports.js\";\nimport { createRetainedStagingDir, type RetainedStagingDir, withStagingDir } from \"../internal/staging-dir.js\";\nimport { ASSET_RE } from \"./asset-extensions.js\";\nimport {\n DATA_PREFIX,\n isBareRelativeAsset,\n isDataAsset,\n parseIconSpecifier,\n parseResourceSpecifier,\n} from \"./asset-specifier.js\";\nimport { renderInitModule } from \"./resource-init-module.js\";\nimport {\n BUNDLE_FILENAME,\n escapeXml,\n fromVirtualId,\n ICON_NAME_SEPARATOR,\n isVirtual,\n REFRESH_EXPORT,\n REGISTER_REFRESH_EXPORT,\n REL_SEPARATOR,\n RESOURCE_PATH_EXPORT,\n toVirtualId,\n VIRTUAL_INIT,\n} from \"./resource-shared.js\";\nimport { stripQuery } from \"./strip-query.js\";\n\ntype ResourceEntry = {\n sourcePath: string;\n stagedRelPath: string;\n resourcePath: string;\n};\n\ntype PluginState = {\n prefix: string;\n root: string;\n isBuild: boolean;\n isV2: boolean;\n entries: Map<string, ResourceEntry>;\n bundledSpecifiers: Map<string, Set<string>>;\n moduleDependencies: Map<string, Set<string>>;\n prunedDependencies: Map<string, Set<string>>;\n declaredEntries: Map<string, Map<string, ResourceEntry>>;\n declaredIcons: Map<string, Map<string, ResourceEntry>>;\n entryModule: string | null;\n sourcePaths: Set<string>;\n missingSourcePaths: Set<string>;\n stagingDir: RetainedStagingDir;\n devBundlePath: string;\n server: ViteDevServer | null;\n compiledSignature: string;\n dataDir: string | null;\n bundleReferenceId: string | null;\n iconOwners: Map<string, ResourceEntry>;\n};\n\ntype ResolveContext = {\n resolve: (\n source: string,\n importer?: string,\n options?: Record<string, unknown>,\n ) => Promise<{ id: string; external?: boolean | string } | null>;\n};\n\ntype PackageOwner = {\n dir: string;\n name: string;\n};\n\ntype AssetResolveRequest = {\n assetSource: string;\n importer: string | undefined;\n resourcePath: string | null;\n options: Record<string, unknown> | undefined;\n};\n\ntype IconResolveRequest = {\n assetSource: string;\n iconName: string | null;\n importer: string | undefined;\n options: Record<string, unknown> | undefined;\n};\n\ntype ResolvedIconEntry = {\n entry: ResourceEntry;\n iconName: string;\n};\n\ntype RetainedIconModuleId = {\n id: string;\n moduleSideEffects: true;\n};\n\ntype ResourceModuleId = string | RetainedIconModuleId;\n\ntype ImporterReconciliation = {\n currentBundled: Set<string>;\n currentDependencies: Set<string>;\n file: string;\n imports: SourceImport[];\n key: string;\n previousBundled: Set<string> | undefined;\n previousDependencies: Set<string> | undefined;\n};\n\ntype DerivedIconEntry = {\n iconIdentity: string;\n iconName: string;\n resourcePath: string;\n};\n\ntype LegacyResolveRequest = {\n source: string;\n importer: string | undefined;\n options: Record<string, unknown> | undefined;\n};\n\nconst RESOURCE_COMPILER = \"glib-compile-resources\";\nconst MANIFEST_PREFIX = \"/\";\nconst DEV_STAGING_PREFIX = \"resources-dev\";\nconst MANIFEST_FILENAME = \"package.json\";\nconst BUNDLED_QUERY_MENTION_RE = /[?&](?:icon|resource)(?:[=&]|$)/;\nconst ICON_EXTENSIONS: Set<string> = new Set([\".png\", \".svg\", \".xpm\"]);\n\nconst ICON_CONTEXTS: Set<string> = new Set([\n \"actions\",\n \"animations\",\n \"apps\",\n \"categories\",\n \"devices\",\n \"emblems\",\n \"emotes\",\n \"filesystems\",\n \"intl\",\n \"mimetypes\",\n \"places\",\n \"status\",\n]);\n\nconst STOCK_ICON_CONTEXTS: Set<string> = new Set([\n \"chart\",\n \"code\",\n \"data\",\n \"form\",\n \"image\",\n \"io\",\n \"media\",\n \"navigation\",\n \"net\",\n \"object\",\n \"table\",\n \"text\",\n]);\n\nconst ICON_SIZE_RE = /^([1-9]\\d*)x\\1(?:@[1-9]\\d*)?$/;\nconst RESERVED_ICON_NAMES: Set<string> = new Set([\"\", \".\", \"..\"]);\n\nconst toForwardSlashes = (value: string): string => value.replaceAll(/[/\\\\]/g, \"/\");\n\nconst isWithin = (root: string, path: string): boolean => {\n const rel = relative(root, path);\n\n return rel.length > 0 && !isAbsolute(rel) && rel !== \"..\" && !rel.startsWith(`..${sep}`);\n};\n\nconst isDependencyFile = (root: string, path: string): boolean =>\n isWithin(root, path) && relative(root, path).split(sep).includes(\"node_modules\");\n\nconst packageIdentityIn = (dir: string): string | null => {\n try {\n const manifest: unknown = JSON.parse(readFileSync(join(dir, MANIFEST_FILENAME), \"utf8\"));\n\n return isRecord(manifest) && typeof manifest.name === \"string\" ? manifest.name : null;\n } catch {\n return null;\n }\n};\n\nconst packageIn = (dir: string): PackageOwner | null => {\n const name = packageIdentityIn(dir);\n\n if (name !== null) {\n return { dir, name };\n }\n\n const parent = dirname(dir);\n\n return parent === dir ? null : packageIn(parent);\n};\n\nconst packageForFile = (file: string): PackageOwner | null => packageIn(dirname(file));\n\nconst validateResourcePath = (resourcePath: string): string => {\n if (\n resourcePath === \"/\" ||\n !resourcePath.startsWith(\"/\") ||\n resourcePath.endsWith(\"/\") ||\n resourcePath.includes(\"\\0\") ||\n posix.normalize(resourcePath) !== resourcePath\n ) {\n throw new Error(\n `${JSON.stringify(resourcePath)} is not a valid GResource path; use an absolute normalized path`,\n );\n }\n\n return resourcePath;\n};\n\nconst derivedResourcePath = (state: PluginState, sourcePath: string): string => {\n if (isWithin(state.root, sourcePath) && !isDependencyFile(state.root, sourcePath)) {\n return validateResourcePath(`${state.prefix}/${toForwardSlashes(relative(state.root, sourcePath))}`);\n }\n\n const owner = packageForFile(sourcePath);\n\n if (owner === null || !isWithin(owner.dir, sourcePath)) {\n throw new Error(`${sourcePath} is outside the application and does not belong to a named package`);\n }\n\n const packagePath = toForwardSlashes(relative(owner.dir, sourcePath));\n\n return validateResourcePath(`${state.prefix}/${owner.name}/${packagePath}`);\n};\n\nconst iconExtension = (sourcePath: string): string => {\n const extension = extname(sourcePath).toLowerCase();\n\n if (!ICON_EXTENSIONS.has(extension)) {\n throw new Error(`${sourcePath} is not a supported themed icon; use an SVG, PNG, or XPM file`);\n }\n\n return extension;\n};\n\nconst hasIconNamePathSeparator = (value: string): boolean =>\n value.includes(\"\\0\") || value.includes(\"/\") || value.includes(\"\\\\\");\n\nconst validateIconName = (value: string): string => {\n if (\n RESERVED_ICON_NAMES.has(value) ||\n hasIconNamePathSeparator(value) ||\n ICON_EXTENSIONS.has(extname(value).toLowerCase())\n ) {\n throw new Error(\n `${JSON.stringify(value)} is not a valid icon name; use an extensionless filename without slashes`,\n );\n }\n\n return value;\n};\n\nconst isIconContext = (parts: string[]): boolean => {\n const [first, second] = parts;\n\n if (parts.length === 1) {\n return first !== undefined && ICON_CONTEXTS.has(first);\n }\n\n return parts.length === 2 && first === \"stock\" && second !== undefined && STOCK_ICON_CONTEXTS.has(second);\n};\n\nconst isIconLayout = (parts: string[]): boolean => {\n const [size, ...context] = parts;\n\n if (size === \"symbolic\") {\n return context.length === 1 && context[0] === \"apps\";\n }\n\n return size !== undefined && (size === \"scalable\" || ICON_SIZE_RE.test(size)) && isIconContext(context);\n};\n\nconst iconLayoutInParts = (parts: string[], beforeIndex: number): string | null => {\n const index = parts.lastIndexOf(\"icons\", beforeIndex);\n\n if (index === -1) {\n return null;\n }\n\n const treePath = parts.slice(index + 1, -1);\n const layout = treePath[0] === \"hicolor\" ? treePath.slice(1) : treePath;\n\n return isIconLayout(layout) ? layout.join(\"/\") : iconLayoutInParts(parts, index - 1);\n};\n\nconst iconLayoutFromTree = (sourcePath: string): string | null => {\n const parts = toForwardSlashes(sourcePath).split(\"/\");\n\n return iconLayoutInParts(parts, parts.length - 2);\n};\n\nconst derivedIconEntry = (\n state: PluginState,\n sourcePath: string,\n requestedName: string | null,\n): DerivedIconEntry => {\n const extension = iconExtension(sourcePath);\n const sourceName = basename(sourcePath, extname(sourcePath));\n const iconName = validateIconName(requestedName ?? sourceName);\n const layout = iconLayoutFromTree(sourcePath);\n\n const iconIdentity = layout === null\n ? `${state.prefix}/icons/${iconName}`\n : `${state.prefix}/icons/${layout}/${iconName}`;\n\n const resourcePath = validateResourcePath(`${iconIdentity}${extension}`);\n\n return { iconIdentity, iconName, resourcePath };\n};\n\nconst hasSideEffectIconImport = (code: string, id: string): boolean => {\n const lang = sourceLanguage(stripQuery(id));\n\n if (lang === undefined || !code.includes(\"?icon\")) {\n return false;\n }\n\n const parsed = parseSync(id, code, { lang });\n\n if (parsed.errors.length > 0) {\n return false;\n }\n\n return parsed.module.staticImports.some(\n (statement) => statement.entries.length === 0 && parseIconSpecifier(statement.moduleRequest.value) !== null,\n );\n};\n\nconst retainSideEffectIconImport = (\n state: PluginState,\n code: string,\n id: string,\n): { code: string; moduleSideEffects: true } | null =>\n state.isV2 && hasSideEffectIconImport(code, id)\n ? { code, moduleSideEffects: true }\n : null;\n\nconst compileBundle = (state: PluginState, outputPath: string): Buffer =>\n withStagingDir(\"resources\", (dir) => {\n const manifest = stageBundle(dir, state.entries);\n\n return runCompiler(dir, manifest, outputPath);\n });\n\nconst stageBundle = (dir: string, entries: Map<string, ResourceEntry>): string => {\n const fileNodes: string[] = [];\n\n for (const entry of entries.values()) {\n const targetPath = join(dir, entry.stagedRelPath);\n mkdirSync(dirname(targetPath), { recursive: true });\n copyFileSync(entry.sourcePath, targetPath);\n fileNodes.push(` <file>${escapeXml(entry.stagedRelPath)}</file>`);\n }\n\n const prefix = escapeXml(MANIFEST_PREFIX);\n const manifest = join(dir, \"gtkx.gresource.xml\");\n\n const xml = [\n \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\",\n \"<gresources>\",\n ` <gresource prefix=\"${prefix}\">`,\n ...fileNodes,\n \" </gresource>\",\n \"</gresources>\",\n \"\",\n ].join(\"\\n\");\n\n writeFileSync(manifest, xml);\n\n return manifest;\n};\n\nconst runCompiler = (sourceDir: string, manifest: string, outputPath: string): Buffer => {\n runCliTool({\n tool: RESOURCE_COMPILER,\n args: [`--sourcedir=${sourceDir}`, `--target=${outputPath}`, manifest],\n });\n\n return readFileSync(outputPath);\n};\n\nconst ensureStagingDir = (state: PluginState): void => {\n state.devBundlePath = join(state.stagingDir.retain(), BUNDLE_FILENAME);\n};\n\nconst releaseStagingDir = (state: PluginState): void => {\n state.stagingDir.release();\n state.devBundlePath = \"\";\n state.compiledSignature = \"\";\n};\n\nconst entriesSignature = (state: PluginState): string =>\n sortStrings([...state.entries].map(([resourcePath, entry]) => `${resourcePath}\\0${entry.sourcePath}`)).join(\"\\0\");\n\nconst compileDevBundle = (state: PluginState): void => {\n ensureStagingDir(state);\n\n if (state.entries.size === 0) {\n rmSync(state.devBundlePath, { force: true });\n state.compiledSignature = \"\";\n\n return;\n }\n\n compileBundle(state, state.devBundlePath);\n state.compiledSignature = entriesSignature(state);\n};\n\nconst isRefreshHook = (value: unknown): value is () => void => typeof value === \"function\";\n\nconst refreshRegisteredDevBundle = (state: PluginState): void => {\n const server = state.server;\n\n if (!server) {\n return;\n }\n\n const refresh: unknown = server.moduleGraph.getModuleById(VIRTUAL_INIT)?.ssrModule?.[REFRESH_EXPORT];\n\n if (isRefreshHook(refresh)) {\n refresh();\n }\n};\n\nconst scanDataAssets = (dataDir: string): ListedFile[] => listFilesRecursive(dataDir, (name) => ASSET_RE.test(name));\n\nconst primeLegacyDevBundle = (state: PluginState): void => {\n if (state.dataDir === null) {\n return;\n }\n\n for (const { absPath, rel } of scanDataAssets(state.dataDir)) {\n registerEntry(state, absPath, rel);\n }\n\n compileDevBundle(state);\n};\n\nconst registerDevAsset = (state: PluginState): void => {\n if (entriesSignature(state) !== state.compiledSignature) {\n compileDevBundle(state);\n }\n};\n\nconst importerKey = (importer: string): string => stripQuery(importer);\n\nconst trackBundledSpecifier = (state: PluginState, importer: string | undefined, source: string): void => {\n if (importer === undefined) {\n return;\n }\n\n const key = importerKey(importer);\n const specifiers = state.bundledSpecifiers.get(key) ?? new Set<string>();\n specifiers.add(source);\n state.bundledSpecifiers.set(key, specifiers);\n};\n\nconst createResourceEntry = (sourcePath: string, resourcePath: string): ResourceEntry => ({\n sourcePath,\n stagedRelPath: resourcePath.replace(/^\\/+/, \"\"),\n resourcePath,\n});\n\nconst activateEntry = (state: PluginState, entry: ResourceEntry): ResourceEntry => {\n const existing = state.entries.get(entry.resourcePath);\n\n if (existing !== undefined) {\n if (existing.sourcePath !== entry.sourcePath) {\n throw new Error(\n `${existing.sourcePath} and ${entry.sourcePath} both resolve to the GResource path ` +\n entry.resourcePath,\n );\n }\n\n return existing;\n }\n\n state.entries.set(entry.resourcePath, entry);\n state.sourcePaths.add(entry.sourcePath);\n\n return entry;\n};\n\nconst isDeclarativeImporter = (state: PluginState, importer: string | undefined): importer is string =>\n !state.isBuild && state.isV2 && importer !== undefined;\n\nconst setSourceAvailability = (state: PluginState, file: string, isAvailable: boolean): void => {\n if (isAvailable) {\n state.missingSourcePaths.delete(file);\n\n return;\n }\n\n state.missingSourcePaths.add(file);\n};\n\nconst isDeclaredSourceAvailable = (state: PluginState, sourcePath: string): boolean => {\n const isAvailable = existsSync(sourcePath);\n setSourceAvailability(state, sourcePath, isAvailable);\n\n return isAvailable;\n};\n\nconst declareEntry = (state: PluginState, importer: string, entry: ResourceEntry): ResourceEntry => {\n const key = importerKey(importer);\n const declarations = state.declaredEntries.get(key) ?? new Map<string, ResourceEntry>();\n const existing = declarations.get(entry.resourcePath);\n\n if (existing !== undefined && existing.sourcePath !== entry.sourcePath) {\n throw new Error(\n `${existing.sourcePath} and ${entry.sourcePath} both resolve to the GResource path ` +\n entry.resourcePath,\n );\n }\n\n const declared = existing ?? entry;\n declarations.set(entry.resourcePath, declared);\n state.declaredEntries.set(key, declarations);\n state.server?.watcher.add(dirname(declared.sourcePath));\n\n return declared;\n};\n\nconst declareIcon = (\n state: PluginState,\n importer: string,\n iconIdentity: string,\n entry: ResourceEntry,\n): void => {\n const key = importerKey(importer);\n const declarations = state.declaredIcons.get(key) ?? new Map<string, ResourceEntry>();\n const existing = declarations.get(iconIdentity);\n\n if (existing !== undefined && existing.sourcePath !== entry.sourcePath) {\n throw new Error(\n `${existing.sourcePath} and ${entry.sourcePath} both claim the themed icon ${iconIdentity}`,\n );\n }\n\n declarations.set(iconIdentity, existing ?? entry);\n state.declaredIcons.set(key, declarations);\n};\n\nconst assertIconIdentityAvailable = (\n state: PluginState,\n iconIdentity: string,\n sourcePath: string,\n): void => {\n const existing = state.iconOwners.get(iconIdentity);\n\n if (existing !== undefined && existing.sourcePath !== sourcePath) {\n throw new Error(\n `${existing.sourcePath} and ${sourcePath} both claim the themed icon ${iconIdentity}`,\n );\n }\n};\n\nconst declareResolvedIcon = (\n state: PluginState,\n importer: string | undefined,\n iconIdentity: string,\n entry: ResourceEntry,\n): void => {\n if (isDeclarativeImporter(state, importer)) {\n declareIcon(state, importer, iconIdentity, entry);\n }\n};\n\nconst registerEntry = (\n state: PluginState,\n absPath: string,\n rel: string,\n importer?: string,\n): ResourceEntry => {\n const resourcePath = validateResourcePath(rel.startsWith(\"/\") ? rel : `${state.prefix}/${rel}`);\n let entry = createResourceEntry(absPath, resourcePath);\n\n if (isDeclarativeImporter(state, importer)) {\n entry = declareEntry(state, importer, entry);\n\n if (!isImporterActive(state, importer) || !isDeclaredSourceAvailable(state, absPath)) {\n return entry;\n }\n }\n\n return activateEntry(state, entry);\n};\n\nconst registerIconEntry = (\n state: PluginState,\n sourcePath: string,\n derived: DerivedIconEntry,\n importer: string | undefined,\n): ResourceEntry => {\n const shouldActivate = !isDeclarativeImporter(state, importer) ||\n (isImporterActive(state, importer) && isDeclaredSourceAvailable(state, sourcePath));\n\n if (shouldActivate) {\n assertIconIdentityAvailable(state, derived.iconIdentity, sourcePath);\n }\n\n const entry = registerEntry(state, sourcePath, derived.resourcePath, importer);\n declareResolvedIcon(state, importer, derived.iconIdentity, entry);\n\n if (shouldActivate) {\n state.iconOwners.set(derived.iconIdentity, entry);\n }\n\n return entry;\n};\n\nconst isTrackedSource = (state: PluginState, file: string): boolean => state.sourcePaths.has(file);\n\nconst hasSourceEntry = (entries: Map<string, ResourceEntry>, file: string): boolean => {\n for (const entry of entries.values()) {\n if (entry.sourcePath === file) {\n return true;\n }\n }\n\n return false;\n};\n\nconst hasDeclaredSource = (\n declarations: Map<string, Map<string, ResourceEntry>>,\n file: string,\n): boolean => {\n for (const entries of declarations.values()) {\n if (hasSourceEntry(entries, file)) {\n return true;\n }\n }\n\n return false;\n};\n\nconst isDeclaredSource = (state: PluginState, file: string): boolean =>\n hasDeclaredSource(state.declaredEntries, file) || hasDeclaredSource(state.declaredIcons, file);\n\nconst virtualAssetId = (entry: ResourceEntry): string =>\n toVirtualId(entry.sourcePath) + REL_SEPARATOR + entry.resourcePath;\n\nconst virtualIconId = ({ entry, iconName }: ResolvedIconEntry): string =>\n virtualAssetId(entry) + ICON_NAME_SEPARATOR + iconName;\n\nconst resolveAssetSource = async (\n ctx: ResolveContext,\n request: { assetSource: string; importer: string | undefined; options: Record<string, unknown> | undefined },\n): Promise<string | undefined> => {\n const resolved = await ctx.resolve(request.assetSource, request.importer, {\n ...request.options,\n skipSelf: true,\n });\n\n if (!resolved || resolved.external) {\n return undefined;\n }\n\n const sourcePath = stripQuery(resolved.id);\n\n if (!isAbsolute(sourcePath)) {\n throw new Error(`${JSON.stringify(request.assetSource)} did not resolve to a file-backed asset`);\n }\n\n return sourcePath;\n};\n\nconst resolveAssetEntry = async (\n ctx: ResolveContext,\n state: PluginState,\n request: AssetResolveRequest,\n): Promise<ResourceEntry | undefined> => {\n const sourcePath = await resolveAssetSource(ctx, request);\n\n if (sourcePath === undefined) {\n return undefined;\n }\n\n return registerEntry(\n state,\n sourcePath,\n request.resourcePath === null\n ? derivedResourcePath(state, sourcePath)\n : validateResourcePath(request.resourcePath),\n request.importer,\n );\n};\n\nconst resolveIconEntry = async (\n ctx: ResolveContext,\n state: PluginState,\n request: IconResolveRequest,\n): Promise<ResolvedIconEntry | undefined> => {\n const sourcePath = await resolveAssetSource(ctx, request);\n\n if (sourcePath === undefined) {\n return undefined;\n }\n\n const derived = derivedIconEntry(state, sourcePath, request.iconName);\n\n return {\n entry: registerIconEntry(state, sourcePath, derived, request.importer),\n iconName: derived.iconName,\n };\n};\n\nconst resolveLegacyAssetEntry = async (\n ctx: ResolveContext,\n state: PluginState,\n request: LegacyResolveRequest,\n): Promise<ResourceEntry | undefined> => {\n const resolved = await ctx.resolve(request.source, request.importer, { ...request.options, skipSelf: true });\n\n if (!resolved || resolved.external) {\n return undefined;\n }\n\n const sourcePath = stripQuery(resolved.id);\n\n if (!isAbsolute(sourcePath)) {\n return undefined;\n }\n\n return registerEntry(state, sourcePath, request.source.slice(DATA_PREFIX.length));\n};\n\nconst loadInitModule = (state: PluginState): string => {\n if (state.isBuild) {\n if (state.bundleReferenceId === null) {\n throw new Error(\"Cannot render the GResource loader before its bundle has been emitted\");\n }\n\n return renderInitModule({ isBuild: true, bundleReferenceId: state.bundleReferenceId });\n }\n\n ensureStagingDir(state);\n\n return renderInitModule({ isBuild: false, devBundlePath: state.devBundlePath });\n};\n\nconst virtualAssetMetadata = (virtualId: string): { absPath: string; iconName: string | null; rel: string } => {\n const rest = fromVirtualId(virtualId);\n const separatorIndex = rest.indexOf(REL_SEPARATOR);\n const relAndMetadata = rest.slice(separatorIndex + REL_SEPARATOR.length);\n const iconSeparatorIndex = relAndMetadata.indexOf(ICON_NAME_SEPARATOR);\n\n return {\n absPath: rest.slice(0, separatorIndex),\n iconName: iconSeparatorIndex === -1\n ? null\n : relAndMetadata.slice(iconSeparatorIndex + ICON_NAME_SEPARATOR.length),\n rel: iconSeparatorIndex === -1 ? relAndMetadata : relAndMetadata.slice(0, iconSeparatorIndex),\n };\n};\n\nconst resourcePathExport = (entry: ResourceEntry, iconName: string | null): string[] =>\n iconName === null ? [`export const ${RESOURCE_PATH_EXPORT} = ${JSON.stringify(entry.resourcePath)};`] : [];\n\nconst assetModuleImports = (iconName: string | null): string[] => {\n const initBindings = iconName === null\n ? \"ensureRegistered\"\n : `ensureRegistered, ${REGISTER_REFRESH_EXPORT}`;\n\n return [\n `import { ${initBindings} } from ${JSON.stringify(VIRTUAL_INIT)};`,\n ...(iconName === null\n ? []\n : [\n \"import { Display } from \\\"@gtkx/gi/gdk\\\";\",\n \"import { IconTheme } from \\\"@gtkx/gi/gtk\\\";\",\n ]),\n ];\n};\n\nconst iconThemeRegistration = (state: PluginState, iconName: string | null): string[] => {\n if (iconName === null) {\n return [];\n }\n\n const resourceIconPath = `${state.prefix}/icons`;\n\n return [\n `const resourceIconPath = ${JSON.stringify(resourceIconPath)};`,\n \"function refreshIconTheme() {\",\n \" const display = Display.getDefault();\",\n \" if (!display) return;\",\n \" const theme = IconTheme.getForDisplay(display);\",\n \" const paths = theme.getResourcePath() ?? [];\",\n \" theme.setResourcePath(paths.includes(resourceIconPath) ? [...paths] : [...paths, resourceIconPath]);\",\n \"}\",\n `${REGISTER_REFRESH_EXPORT}(resourceIconPath, refreshIconTheme);`,\n ];\n};\n\nconst loadedResourceEntry = (\n state: PluginState,\n sourcePath: string,\n resourcePath: string,\n): { entry: ResourceEntry; isRegistered: boolean } => {\n const registered = state.entries.get(resourcePath);\n\n if (registered === undefined) {\n return { entry: createResourceEntry(sourcePath, resourcePath), isRegistered: false };\n }\n\n if (registered.sourcePath !== sourcePath) {\n throw new Error(\n `${registered.sourcePath} and ${sourcePath} both resolve to the GResource path ${resourcePath}`,\n );\n }\n\n return { entry: registered, isRegistered: true };\n};\n\nconst compileLoadedDevAsset = (state: PluginState, isRegistered: boolean): void => {\n if (isRegistered && !state.isBuild) {\n registerDevAsset(state);\n }\n};\n\nconst loadAssetModule = (state: PluginState, virtualId: string): string => {\n const { absPath, iconName, rel } = virtualAssetMetadata(virtualId);\n const resourcePath = validateResourcePath(rel);\n const { entry, isRegistered } = loadedResourceEntry(state, absPath, resourcePath);\n const uri = `resource://${entry.resourcePath}`;\n const defaultValue = iconName ?? (state.isV2 ? entry.resourcePath : uri);\n compileLoadedDevAsset(state, isRegistered);\n\n return [\n ...assetModuleImports(iconName),\n \"ensureRegistered();\",\n ...iconThemeRegistration(state, iconName),\n `export default ${JSON.stringify(defaultValue)};`,\n ...resourcePathExport(entry, iconName),\n ].join(\"\\n\");\n};\n\nconst finalizeBuildBundle = (\n ctx: Pick<Rolldown.PluginContext, \"getFileName\">,\n bundle: Rolldown.OutputBundle,\n state: PluginState,\n): void => {\n if (!state.isBuild || state.bundleReferenceId === null) {\n return;\n }\n\n const fileName = ctx.getFileName(state.bundleReferenceId);\n const output = bundle[fileName];\n\n if (output?.type !== \"asset\") {\n throw new Error(`Cannot find the emitted ${BUNDLE_FILENAME} asset`);\n }\n\n if (state.entries.size === 0) {\n Reflect.deleteProperty(bundle, fileName);\n\n return;\n }\n\n const compiled = withStagingDir(\"resources-out\", (outDir) => compileBundle(state, join(outDir, BUNDLE_FILENAME)));\n output.source = compiled;\n info(`Compiled ${String(state.entries.size)} resource(s) into ${BUNDLE_FILENAME}`);\n};\n\nconst refreshDevRegistration = (state: PluginState): void => {\n compileDevBundle(state);\n\n try {\n refreshRegisteredDevBundle(state);\n } catch (error_) {\n error(\"Failed to refresh GResource bundle:\", error_);\n }\n};\n\nconst isSameSpecifiers = (left: Set<string> | undefined, right: Set<string>): boolean =>\n left === undefined\n ? right.size === 0\n : left.size === right.size && [...right].every((source) => left.has(source));\n\nconst bundledSpecifiersIn = (imports: SourceImport[]): Set<string> =>\n new Set(\n imports\n .filter((entry) =>\n parseResourceSpecifier(entry.source) !== null || parseIconSpecifier(entry.source) !== null)\n .map((entry) => entry.source),\n );\n\nconst isSourceModule = (file: string): boolean => sourceLanguage(file) !== undefined;\n\nconst isBundledSource = (source: string): boolean =>\n parseResourceSpecifier(source) !== null || parseIconSpecifier(source) !== null;\n\nconst validateUnbundledV2Source = (source: string): void => {\n if (isLegacyDataSpecifier(source)) {\n throw new Error(`${JSON.stringify(source)} uses the legacy #data asset form`);\n }\n\n rejectInvalidV2Specifier(source);\n};\n\nconst resolvedModuleDependency = async (\n ctx: ResolveContext,\n source: string,\n importer: string,\n): Promise<string | null> => {\n if (isBundledSource(source)) {\n return null;\n }\n\n validateUnbundledV2Source(source);\n const resolved = await ctx.resolve(source, importer, { skipSelf: true });\n\n if (resolved === null) {\n throw new Error(`${JSON.stringify(source)} could not be resolved from ${importer}`);\n }\n\n return resolved.external ? null : importerKey(resolved.id);\n};\n\nconst resolvedModuleDependencies = async (\n ctx: ResolveContext,\n imports: SourceImport[],\n importer: string,\n): Promise<Set<string>> => {\n const dependencies: Set<string> = new Set();\n\n for (const entry of imports) {\n const dependency = await resolvedModuleDependency(ctx, entry.source, importer);\n\n if (dependency !== null) {\n dependencies.add(dependency);\n }\n }\n\n return dependencies;\n};\n\nconst importerReconciliation = async (\n ctx: ResolveContext,\n state: PluginState,\n id: string,\n): Promise<ImporterReconciliation | null> => {\n const file = stripQuery(id);\n const key = importerKey(file);\n\n if (!state.isV2 || state.isBuild || !isSourceModule(file)) {\n return null;\n }\n\n const imports = parseRuntimeImportsIn(file);\n\n if (imports === null) {\n return null;\n }\n\n return {\n currentBundled: bundledSpecifiersIn(imports),\n currentDependencies: await resolvedModuleDependencies(ctx, imports, file),\n file,\n imports,\n key,\n previousBundled: state.bundledSpecifiers.get(key),\n previousDependencies: state.moduleDependencies.get(key),\n };\n};\n\nconst moduleNodeKey = (module: ModuleNode): string => importerKey(module.id ?? module.file ?? module.url);\n\nconst moduleNodeFor = (state: PluginState, id: string): ModuleNode | undefined => {\n const server = state.server;\n\n if (server === null) {\n return undefined;\n }\n\n return server.moduleGraph.getModuleById(id) ?? server.moduleGraph.getModuleById(importerKey(id));\n};\n\nconst restoreDependencies = (pruned: Set<string>, current: Set<string>): void => {\n for (const dependency of current) {\n pruned.delete(dependency);\n }\n};\n\nconst pruneRemovedDependencies = (\n pruned: Set<string>,\n previous: Set<string> | undefined,\n current: Set<string>,\n): void => {\n if (previous === undefined) {\n return;\n }\n\n for (const dependency of previous) {\n if (!current.has(dependency)) {\n pruned.add(dependency);\n }\n }\n};\n\nconst storePrunedDependencies = (state: PluginState, key: string, pruned: Set<string>): void => {\n if (pruned.size === 0) {\n state.prunedDependencies.delete(key);\n\n return;\n }\n\n state.prunedDependencies.set(key, pruned);\n};\n\nconst updatePrunedDependencies = (\n state: PluginState,\n key: string,\n previous: Set<string> | undefined,\n current: Set<string>,\n): void => {\n const pruned = state.prunedDependencies.get(key) ?? new Set<string>();\n restoreDependencies(pruned, current);\n pruneRemovedDependencies(pruned, previous, current);\n storePrunedDependencies(state, key, pruned);\n};\n\nconst isPrunedDependency = (state: PluginState, importer: ModuleNode, imported: ModuleNode): boolean =>\n state.prunedDependencies.get(moduleNodeKey(importer))?.has(moduleNodeKey(imported)) === true;\n\nconst fallbackRootModules = (state: PluginState): string[] => {\n const roots: string[] = [];\n\n for (const key of state.moduleDependencies.keys()) {\n if (moduleNodeFor(state, key)?.importers.size === 0) {\n roots.push(key);\n }\n }\n\n return roots;\n};\n\nconst enqueueCurrentDependencies = (state: PluginState, key: string, pending: string[]): void => {\n const dependencies = state.moduleDependencies.get(key) ?? [];\n\n for (const dependency of dependencies) {\n pending.push(dependency);\n }\n};\n\nconst enqueueGraphDependencies = (state: PluginState, key: string, pending: string[]): void => {\n const module = moduleNodeFor(state, key);\n\n if (module === undefined) {\n return;\n }\n\n for (const imported of module.importedModules) {\n if (!isPrunedDependency(state, module, imported)) {\n pending.push(moduleNodeKey(imported));\n }\n }\n};\n\nconst visitActiveImporter = (\n state: PluginState,\n active: Set<string>,\n pending: string[],\n key: string,\n): void => {\n if (active.has(key)) {\n return;\n }\n\n active.add(key);\n enqueueCurrentDependencies(state, key, pending);\n enqueueGraphDependencies(state, key, pending);\n};\n\nconst activeImporterKeys = (state: PluginState): Set<string> => {\n const active: Set<string> = new Set();\n const roots = state.entryModule === null ? fallbackRootModules(state) : [state.entryModule];\n const pending = [...roots];\n\n while (pending.length > 0) {\n const key = pending.pop();\n\n if (key === undefined || active.has(key)) {\n continue;\n }\n\n visitActiveImporter(state, active, pending, key);\n }\n\n return active;\n};\n\nconst isImporterActive = (state: PluginState, importer: string): boolean =>\n activeImporterKeys(state).has(importerKey(importer));\n\nconst activateDeclaredIcon = (\n state: PluginState,\n iconIdentity: string,\n entry: ResourceEntry,\n): void => {\n const existing = state.iconOwners.get(iconIdentity);\n\n if (existing !== undefined && existing.sourcePath !== entry.sourcePath) {\n throw new Error(\n `${existing.sourcePath} and ${entry.sourcePath} both claim the themed icon ${iconIdentity}`,\n );\n }\n\n state.iconOwners.set(iconIdentity, activateEntry(state, entry));\n};\n\nconst activateDeclaredEntries = (state: PluginState, importer: string): void => {\n const entries = state.declaredEntries.get(importer)?.values() ?? [];\n\n for (const entry of entries) {\n if (isDeclaredSourceAvailable(state, entry.sourcePath)) {\n activateEntry(state, entry);\n }\n }\n};\n\nconst activateDeclaredIcons = (state: PluginState, importer: string): void => {\n const icons = state.declaredIcons.get(importer) ?? [];\n\n for (const [iconIdentity, entry] of icons) {\n if (isDeclaredSourceAvailable(state, entry.sourcePath)) {\n activateDeclaredIcon(state, iconIdentity, entry);\n }\n }\n};\n\nconst activateDeclaredClaims = (state: PluginState, active: Set<string>): void => {\n for (const importer of sortStrings(active)) {\n activateDeclaredEntries(state, importer);\n activateDeclaredIcons(state, importer);\n }\n};\n\nconst rebuildActiveClaims = (state: PluginState): void => {\n const previous = {\n entries: state.entries,\n iconOwners: state.iconOwners,\n sourcePaths: state.sourcePaths,\n };\n\n state.entries = new Map();\n state.iconOwners = new Map();\n state.sourcePaths = new Set();\n\n try {\n activateDeclaredClaims(state, activeImporterKeys(state));\n } catch (error_) {\n state.entries = previous.entries;\n state.iconOwners = previous.iconOwners;\n state.sourcePaths = previous.sourcePaths;\n throw error_;\n }\n};\n\nconst forgetImporterDeclarations = (state: PluginState, importer: string): void => {\n state.declaredEntries.delete(importer);\n state.declaredIcons.delete(importer);\n};\n\nconst cloneStringSetMap = (source: Map<string, Set<string>>): Map<string, Set<string>> => {\n const clone: Map<string, Set<string>> = new Map();\n\n for (const [key, values] of source) {\n clone.set(key, new Set(values));\n }\n\n return clone;\n};\n\nconst cloneDeclarationMap = (\n source: Map<string, Map<string, ResourceEntry>>,\n): Map<string, Map<string, ResourceEntry>> => {\n const clone: Map<string, Map<string, ResourceEntry>> = new Map();\n\n for (const [key, declarations] of source) {\n clone.set(key, new Map(declarations));\n }\n\n return clone;\n};\n\nconst reconciliationCandidate = (state: PluginState): PluginState => ({\n ...state,\n bundledSpecifiers: cloneStringSetMap(state.bundledSpecifiers),\n moduleDependencies: cloneStringSetMap(state.moduleDependencies),\n prunedDependencies: cloneStringSetMap(state.prunedDependencies),\n declaredEntries: cloneDeclarationMap(state.declaredEntries),\n declaredIcons: cloneDeclarationMap(state.declaredIcons),\n missingSourcePaths: new Set(state.missingSourcePaths),\n});\n\nconst storeBundledSpecifiers = (state: PluginState, importer: string, specifiers: Set<string>): void => {\n if (specifiers.size === 0) {\n state.bundledSpecifiers.delete(importer);\n\n return;\n }\n\n state.bundledSpecifiers.set(importer, specifiers);\n};\n\nconst applyImporterGraph = (state: PluginState, reconciliation: ImporterReconciliation): void => {\n updatePrunedDependencies(\n state,\n reconciliation.key,\n reconciliation.previousDependencies,\n reconciliation.currentDependencies,\n );\n\n state.moduleDependencies.set(reconciliation.key, reconciliation.currentDependencies);\n storeBundledSpecifiers(state, reconciliation.key, reconciliation.currentBundled);\n};\n\nconst declareReconciledResource = async (\n ctx: ResolveContext,\n state: PluginState,\n importer: string,\n source: string,\n): Promise<void> => {\n const resourceSpecifier = parseResourceSpecifier(source);\n\n if (resourceSpecifier === null) {\n return;\n }\n\n const entry = await resolveAssetEntry(ctx, state, {\n assetSource: resourceSpecifier.assetSource,\n importer,\n resourcePath: resourceSpecifier.resourcePath,\n options: undefined,\n });\n\n if (entry === undefined || state.missingSourcePaths.has(entry.sourcePath)) {\n throw new Error(`${JSON.stringify(source)} did not resolve to a bundled resource`);\n }\n};\n\nconst declareReconciledIcon = async (\n ctx: ResolveContext,\n state: PluginState,\n importer: string,\n source: string,\n): Promise<void> => {\n const iconSpecifier = parseIconSpecifier(source);\n\n if (iconSpecifier === null) {\n return;\n }\n\n const entry = await resolveIconEntry(ctx, state, {\n assetSource: iconSpecifier.assetSource,\n iconName: iconSpecifier.iconName,\n importer,\n options: undefined,\n });\n\n if (entry === undefined || state.missingSourcePaths.has(entry.entry.sourcePath)) {\n throw new Error(`${JSON.stringify(source)} did not resolve to a bundled icon`);\n }\n};\n\nconst declareReconciledSource = async (\n ctx: ResolveContext,\n state: PluginState,\n importer: string,\n source: string,\n): Promise<void> => {\n await declareReconciledResource(ctx, state, importer, source);\n await declareReconciledIcon(ctx, state, importer, source);\n};\n\nconst declareReconciledImports = async (\n ctx: ResolveContext,\n state: PluginState,\n reconciliation: ImporterReconciliation,\n): Promise<void> => {\n for (const entry of reconciliation.imports) {\n if (isBundledSource(entry.source)) {\n await declareReconciledSource(ctx, state, reconciliation.file, entry.source);\n }\n }\n};\n\nconst prepareReconciliation = async (\n ctx: ResolveContext,\n state: PluginState,\n reconciliation: ImporterReconciliation,\n): Promise<PluginState> => {\n const candidate = reconciliationCandidate(state);\n\n const isBundledChanged = !isSameSpecifiers(\n reconciliation.previousBundled,\n reconciliation.currentBundled,\n );\n\n if (isBundledChanged) {\n forgetImporterDeclarations(candidate, reconciliation.key);\n }\n\n applyImporterGraph(candidate, reconciliation);\n rebuildActiveClaims(candidate);\n\n if (isBundledChanged) {\n await declareReconciledImports(ctx, candidate, reconciliation);\n }\n\n return candidate;\n};\n\nconst commitReconciliation = (state: PluginState, candidate: PluginState): void => {\n state.entries = candidate.entries;\n state.bundledSpecifiers = candidate.bundledSpecifiers;\n state.moduleDependencies = candidate.moduleDependencies;\n state.prunedDependencies = candidate.prunedDependencies;\n state.declaredEntries = candidate.declaredEntries;\n state.declaredIcons = candidate.declaredIcons;\n state.missingSourcePaths = candidate.missingSourcePaths;\n state.sourcePaths = candidate.sourcePaths;\n state.iconOwners = candidate.iconOwners;\n};\n\nconst reconcileV2Importer = async (ctx: ResolveContext, state: PluginState, id: string): Promise<void> => {\n const reconciliation = await importerReconciliation(ctx, state, id);\n\n if (reconciliation === null) {\n return;\n }\n\n const previousSignature = entriesSignature(state);\n const candidate = await prepareReconciliation(ctx, state, reconciliation);\n commitReconciliation(state, candidate);\n\n if (entriesSignature(state) !== previousSignature) {\n refreshDevRegistration(state);\n }\n};\n\nconst resolveResourceConfig = async (state: PluginState, config: UserConfig, loadConfig: ConfigLoader) => {\n const loaded = await loadConfig.load(config.root ?? process.cwd());\n state.prefix = resourceBasePath(loaded.config.applicationId);\n state.root = loaded.root;\n state.isV2 = loaded.config.future?.v2ResourceImports === true;\n\n return {\n assetsInclude: [ASSET_RE],\n };\n};\n\nconst refreshTrackedSource = (state: PluginState, file: string): void => {\n if (!isTrackedSource(state, file)) {\n return;\n }\n\n try {\n refreshDevRegistration(state);\n } catch (error_) {\n error(\"GResource refresh failed:\", error_);\n }\n};\n\nconst rebuildForSourceAvailability = (state: PluginState, previousSignature: string): void => {\n try {\n rebuildActiveClaims(state);\n\n if (entriesSignature(state) !== previousSignature) {\n refreshDevRegistration(state);\n }\n } catch (error_) {\n error(\"GResource source update failed:\", error_);\n }\n};\n\nconst updateTrackedSourceAvailability = (state: PluginState, file: string, isAvailable: boolean): void => {\n if (!isTrackedSource(state, file) && !state.missingSourcePaths.has(file) && !isDeclaredSource(state, file)) {\n return;\n }\n\n const previousSignature = entriesSignature(state);\n setSourceAvailability(state, file, isAvailable);\n rebuildForSourceAvailability(state, previousSignature);\n};\n\nconst attachResourceWatcher = (state: PluginState, server: ViteDevServer): void => {\n state.server = server;\n\n const onChange = (file: string): void => {\n refreshTrackedSource(state, file);\n };\n\n const onAdd = (file: string): void => {\n updateTrackedSourceAvailability(state, file, true);\n };\n\n const onUnlink = (file: string): void => {\n updateTrackedSourceAvailability(state, file, false);\n };\n\n const onClose = (): void => {\n releaseStagingDir(state);\n };\n\n server.httpServer?.once(\"close\", onClose);\n server.watcher.once(\"close\", onClose);\n server.watcher.on(\"change\", onChange);\n server.watcher.on(\"add\", onAdd);\n server.watcher.on(\"unlink\", onUnlink);\n};\n\nconst applyResolvedConfig = (state: PluginState, config: ResolvedConfig): void => {\n state.isBuild = config.command === \"build\";\n state.root = config.root;\n state.dataDir = null;\n\n if (state.isBuild || state.isV2) {\n return;\n }\n\n const relativeDataDir = resolveDataDir(config.root);\n state.dataDir = relativeDataDir === null ? null : join(config.root, relativeDataDir);\n};\n\nconst loadResourceModule = (state: PluginState, id: string): string | undefined => {\n if (id === VIRTUAL_INIT) {\n return loadInitModule(state);\n }\n\n if (!isVirtual(id)) {\n return undefined;\n }\n\n return loadAssetModule(state, id);\n};\n\nconst isLegacyDataSpecifier = (source: string): boolean =>\n source.startsWith(DATA_PREFIX) && ASSET_RE.test(stripQuery(source));\n\nconst rejectInvalidV2Specifier = (source: string): void => {\n if (BUNDLED_QUERY_MENTION_RE.test(source)) {\n throw new Error(\n `${JSON.stringify(source)} is not a valid bundled asset import; use ?resource, ` +\n \"?resource=/absolute/path, ?icon, or ?icon=name\",\n );\n }\n\n if (isBareRelativeAsset(source)) {\n throw new Error(\n `${JSON.stringify(source)} must choose ?resource for a GResource, ?icon for a themed icon, ` +\n \"or ?url for an emitted file\",\n );\n }\n};\n\nconst resolveExplicitResourceId = async (\n ctx: ResolveContext,\n state: PluginState,\n request: LegacyResolveRequest,\n): Promise<string | undefined> => {\n const specifier = parseResourceSpecifier(request.source);\n\n if (specifier === null) {\n return undefined;\n }\n\n const entry = await resolveAssetEntry(ctx, state, {\n assetSource: specifier.assetSource,\n importer: request.importer,\n resourcePath: specifier.resourcePath,\n options: request.options,\n });\n\n return entry === undefined ? undefined : virtualAssetId(entry);\n};\n\nconst resolveIconResourceId = async (\n ctx: ResolveContext,\n state: PluginState,\n request: LegacyResolveRequest,\n): Promise<RetainedIconModuleId | undefined> => {\n const specifier = parseIconSpecifier(request.source);\n\n if (specifier === null) {\n return undefined;\n }\n\n const resolved = await resolveIconEntry(ctx, state, {\n assetSource: specifier.assetSource,\n iconName: specifier.iconName,\n importer: request.importer,\n options: request.options,\n });\n\n return resolved === undefined\n ? undefined\n : { id: virtualIconId(resolved), moduleSideEffects: true };\n};\n\nconst resolveV2ResourceId = async (\n ctx: ResolveContext,\n state: PluginState,\n request: LegacyResolveRequest,\n): Promise<ResourceModuleId | undefined> => {\n if (isLegacyDataSpecifier(request.source)) {\n throw new Error(\n `${JSON.stringify(request.source)} uses the legacy #data asset form; import it relatively with ` +\n \"?resource or ?url\",\n );\n }\n\n if (parseResourceSpecifier(request.source) !== null) {\n const resolved = await resolveExplicitResourceId(ctx, state, request);\n trackBundledSpecifier(state, request.importer, request.source);\n\n return resolved;\n }\n\n if (parseIconSpecifier(request.source) !== null) {\n const resolved = await resolveIconResourceId(ctx, state, request);\n trackBundledSpecifier(state, request.importer, request.source);\n\n return resolved;\n }\n\n rejectInvalidV2Specifier(request.source);\n\n return undefined;\n};\n\nconst resolveLegacyResourceId = async (\n ctx: ResolveContext,\n state: PluginState,\n request: LegacyResolveRequest,\n): Promise<string | undefined> => {\n if (BUNDLED_QUERY_MENTION_RE.test(request.source)) {\n throw new Error(`${JSON.stringify(request.source)} requires future.v2ResourceImports`);\n }\n\n if (!isDataAsset(request.source)) {\n return undefined;\n }\n\n const entry = await resolveLegacyAssetEntry(ctx, state, request);\n\n return entry === undefined ? undefined : virtualAssetId(entry);\n};\n\nconst resolveResourceId = (\n ctx: ResolveContext,\n state: PluginState,\n request: LegacyResolveRequest,\n): Promise<ResourceModuleId | undefined> => {\n if (request.source === VIRTUAL_INIT) {\n return Promise.resolve(VIRTUAL_INIT);\n }\n\n return state.isV2\n ? resolveV2ResourceId(ctx, state, request)\n : resolveLegacyResourceId(ctx, state, request);\n};\n\nconst configureResourceServer = (state: PluginState, server: ViteDevServer): void => {\n attachResourceWatcher(state, server);\n primeLegacyDevBundle(state);\n};\n\nconst createResourcesPlugin = (state: PluginState, loadConfig: ConfigLoader): Plugin => ({\n name: \"gtkx:resources\",\n enforce: \"pre\",\n perEnvironmentStartEndDuringDev: true,\n\n config: (config: UserConfig) => resolveResourceConfig(state, config, loadConfig),\n\n configResolved: (config: ResolvedConfig) => {\n applyResolvedConfig(state, config);\n },\n\n configureServer: (server) => {\n configureResourceServer(state, server);\n },\n\n buildStart() {\n if (state.isBuild && state.bundleReferenceId === null) {\n state.bundleReferenceId = this.emitFile({\n type: \"asset\",\n fileName: BUNDLE_FILENAME,\n source: \"\",\n });\n }\n },\n\n resolveId(source, importer, options) {\n return resolveResourceId(this, state, { source, importer, options });\n },\n\n load(id) {\n return loadResourceModule(state, id);\n },\n\n async transform(code, id) {\n await reconcileV2Importer(this, state, id);\n\n return retainSideEffectIconImport(state, code, id);\n },\n\n generateBundle(_options, bundle) {\n finalizeBuildBundle(this, bundle, state);\n },\n\n closeBundle() {\n releaseStagingDir(state);\n },\n});\n\nfunction gtkxResources(loadConfig: ConfigLoader = createConfigLoader(), entryPath?: string): Plugin {\n const state: PluginState = {\n prefix: \"\",\n root: \"\",\n isBuild: false,\n isV2: false,\n entries: new Map(),\n bundledSpecifiers: new Map(),\n moduleDependencies: new Map(),\n prunedDependencies: new Map(),\n declaredEntries: new Map(),\n declaredIcons: new Map(),\n entryModule: entryPath === undefined ? null : importerKey(entryPath),\n sourcePaths: new Set(),\n missingSourcePaths: new Set(),\n stagingDir: createRetainedStagingDir(DEV_STAGING_PREFIX),\n devBundlePath: \"\",\n server: null,\n compiledSignature: \"\",\n dataDir: null,\n bundleReferenceId: null,\n iconOwners: new Map(),\n };\n\n return createResourcesPlugin(state, loadConfig);\n}\n\nexport { gtkxResources };\n"]}
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/vite-plugins/resources.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ConfigLoader } from \"@gtkx/config\";\nimport type { ModuleNode, Plugin, ResolvedConfig, Rolldown, UserConfig, ViteDevServer } from \"vite\";\nimport { createConfigLoader, resourceBasePath } from \"@gtkx/config/internal\";\nimport { error, info, isPathInside, isRecord, sortStrings, toPosixPath } from \"@gtkx/utils\";\nimport { copyFileSync, existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from \"node:fs\";\nimport { basename, dirname, extname, isAbsolute, join, posix, relative, sep } from \"node:path\";\nimport { parseSync } from \"vite\";\nimport { withExclusiveLoad } from \"../internal/module-loads.js\";\nimport { runCliTool } from \"../internal/run-cli-tool.js\";\nimport { parseRuntimeImportsIn, type SourceImport, sourceLanguage } from \"../internal/source-imports.js\";\nimport { createRetainedStagingDir, type RetainedStagingDir, withStagingDir } from \"../internal/staging-dir.js\";\nimport { ASSET_RE } from \"./asset-extensions.js\";\nimport {\n isBareRelativeAsset,\n parseIconSpecifier,\n parseResourceSpecifier,\n} from \"./asset-specifier.js\";\nimport { renderInitModule } from \"./resource-init-module.js\";\nimport {\n BUNDLE_FILENAME,\n escapeXml,\n fromVirtualId,\n ICON_NAME_SEPARATOR,\n isVirtual,\n REFRESH_EXPORT,\n REGISTER_REFRESH_EXPORT,\n REL_SEPARATOR,\n RESOURCE_PATH_EXPORT,\n toVirtualId,\n VIRTUAL_INIT,\n} from \"./resource-shared.js\";\nimport { stripQuery } from \"./strip-query.js\";\n\ntype ResourceEntry = {\n sourcePath: string;\n stagedRelPath: string;\n resourcePath: string;\n};\n\ntype PluginState = {\n prefix: string;\n root: string;\n isBuild: boolean;\n entries: Map<string, ResourceEntry>;\n bundledSpecifiers: Map<string, Set<string>>;\n moduleDependencies: Map<string, Set<string>>;\n prunedDependencies: Map<string, Set<string>>;\n declaredEntries: Map<string, Map<string, ResourceEntry>>;\n declaredIcons: Map<string, Map<string, ResourceEntry>>;\n entryModule: string | null;\n sourcePaths: Set<string>;\n missingSourcePaths: Set<string>;\n stagingDir: RetainedStagingDir;\n devBundlePath: string;\n server: ViteDevServer | null;\n compiledSignature: string;\n bundleReferenceId: string | null;\n iconOwners: Map<string, ResourceEntry>;\n};\n\ntype ResolveContext = {\n resolve: (\n source: string,\n importer?: string,\n options?: Record<string, unknown>,\n ) => Promise<{ id: string; external?: boolean | string } | null>;\n};\n\ntype PackageOwner = {\n dir: string;\n name: string;\n};\n\ntype AssetResolveRequest = {\n assetSource: string;\n importer: string | undefined;\n resourcePath: string | null;\n options: Record<string, unknown> | undefined;\n};\n\ntype IconResolveRequest = {\n assetSource: string;\n iconName: string | null;\n importer: string | undefined;\n options: Record<string, unknown> | undefined;\n};\n\ntype ResolvedIconEntry = {\n entry: ResourceEntry;\n iconName: string;\n};\n\ntype RetainedIconModuleId = {\n id: string;\n moduleSideEffects: true;\n};\n\ntype ResourceModuleId = string | RetainedIconModuleId;\n\ntype ImporterReconciliation = {\n currentBundled: Set<string>;\n currentDependencies: Set<string>;\n file: string;\n imports: SourceImport[];\n key: string;\n previousBundled: Set<string> | undefined;\n previousDependencies: Set<string> | undefined;\n};\n\ntype DerivedIconEntry = {\n iconIdentity: string;\n iconName: string;\n resourcePath: string;\n};\n\ntype ResolveRequest = {\n source: string;\n importer: string | undefined;\n options: Record<string, unknown> | undefined;\n};\n\nconst RESOURCE_COMPILER = \"glib-compile-resources\";\nconst MANIFEST_PREFIX = \"/\";\nconst DEV_STAGING_PREFIX = \"resources-dev\";\nconst MANIFEST_FILENAME = \"package.json\";\nconst DATA_PREFIX = \"#data/\";\nconst BUNDLED_QUERY_MENTION_RE = /[?&](?:icon|resource)(?:[=&]|$)/;\nconst ICON_EXTENSIONS: Set<string> = new Set([\".png\", \".svg\", \".xpm\"]);\n\nconst ICON_CONTEXTS: Set<string> = new Set([\n \"actions\",\n \"animations\",\n \"apps\",\n \"categories\",\n \"devices\",\n \"emblems\",\n \"emotes\",\n \"filesystems\",\n \"intl\",\n \"mimetypes\",\n \"places\",\n \"status\",\n]);\n\nconst STOCK_ICON_CONTEXTS: Set<string> = new Set([\n \"chart\",\n \"code\",\n \"data\",\n \"form\",\n \"image\",\n \"io\",\n \"media\",\n \"navigation\",\n \"net\",\n \"object\",\n \"table\",\n \"text\",\n]);\n\nconst ICON_SIZE_RE = /^([1-9]\\d*)x\\1(?:@[1-9]\\d*)?$/;\nconst RESERVED_ICON_NAMES: Set<string> = new Set([\"\", \".\", \"..\"]);\n\nconst isDependencyFile = (root: string, path: string): boolean =>\n isPathInside(root, path) && relative(root, path).split(sep).includes(\"node_modules\");\n\nconst packageIdentityIn = (dir: string): string | null => {\n try {\n const manifest: unknown = JSON.parse(readFileSync(join(dir, MANIFEST_FILENAME), \"utf8\"));\n\n return isRecord(manifest) && typeof manifest.name === \"string\" ? manifest.name : null;\n } catch {\n return null;\n }\n};\n\nconst packageIn = (dir: string): PackageOwner | null => {\n const name = packageIdentityIn(dir);\n\n if (name !== null) {\n return { dir, name };\n }\n\n const parent = dirname(dir);\n\n return parent === dir ? null : packageIn(parent);\n};\n\nconst packageForFile = (file: string): PackageOwner | null => packageIn(dirname(file));\n\nconst validateResourcePath = (resourcePath: string): string => {\n if (\n resourcePath === \"/\" ||\n !resourcePath.startsWith(\"/\") ||\n resourcePath.endsWith(\"/\") ||\n resourcePath.includes(\"\\0\") ||\n posix.normalize(resourcePath) !== resourcePath\n ) {\n throw new Error(\n `${JSON.stringify(resourcePath)} is not a valid GResource path; use an absolute normalized path`,\n );\n }\n\n return resourcePath;\n};\n\nconst derivedResourcePath = (state: PluginState, sourcePath: string): string => {\n if (isPathInside(state.root, sourcePath) && !isDependencyFile(state.root, sourcePath)) {\n return validateResourcePath(`${state.prefix}/${toPosixPath(relative(state.root, sourcePath))}`);\n }\n\n const owner = packageForFile(sourcePath);\n\n if (owner === null || !isPathInside(owner.dir, sourcePath)) {\n throw new Error(`${sourcePath} is outside the application and does not belong to a named package`);\n }\n\n const packagePath = toPosixPath(relative(owner.dir, sourcePath));\n\n return validateResourcePath(`${state.prefix}/${owner.name}/${packagePath}`);\n};\n\nconst iconExtension = (sourcePath: string): string => {\n const extension = extname(sourcePath).toLowerCase();\n\n if (!ICON_EXTENSIONS.has(extension)) {\n throw new Error(`${sourcePath} is not a supported themed icon; use an SVG, PNG, or XPM file`);\n }\n\n return extension;\n};\n\nconst hasIconNamePathSeparator = (value: string): boolean =>\n value.includes(\"\\0\") || value.includes(\"/\") || value.includes(\"\\\\\");\n\nconst validateIconName = (value: string): string => {\n if (\n RESERVED_ICON_NAMES.has(value) ||\n hasIconNamePathSeparator(value) ||\n ICON_EXTENSIONS.has(extname(value).toLowerCase())\n ) {\n throw new Error(\n `${JSON.stringify(value)} is not a valid icon name; use an extensionless filename without slashes`,\n );\n }\n\n return value;\n};\n\nconst isIconContext = (parts: string[]): boolean => {\n const [first, second] = parts;\n\n if (parts.length === 1) {\n return first !== undefined && ICON_CONTEXTS.has(first);\n }\n\n return parts.length === 2 && first === \"stock\" && second !== undefined && STOCK_ICON_CONTEXTS.has(second);\n};\n\nconst isIconLayout = (parts: string[]): boolean => {\n const [size, ...context] = parts;\n\n if (size === \"symbolic\") {\n return context.length === 1 && context[0] === \"apps\";\n }\n\n return size !== undefined && (size === \"scalable\" || ICON_SIZE_RE.test(size)) && isIconContext(context);\n};\n\nconst iconLayoutInParts = (parts: string[], beforeIndex: number): string | null => {\n const index = parts.lastIndexOf(\"icons\", beforeIndex);\n\n if (index === -1) {\n return null;\n }\n\n const treePath = parts.slice(index + 1, -1);\n const layout = treePath[0] === \"hicolor\" ? treePath.slice(1) : treePath;\n\n return isIconLayout(layout) ? layout.join(\"/\") : iconLayoutInParts(parts, index - 1);\n};\n\nconst iconLayoutFromTree = (sourcePath: string): string | null => {\n const parts = toPosixPath(sourcePath).split(\"/\");\n\n return iconLayoutInParts(parts, parts.length - 2);\n};\n\nconst derivedIconEntry = (\n state: PluginState,\n sourcePath: string,\n requestedName: string | null,\n): DerivedIconEntry => {\n const extension = iconExtension(sourcePath);\n const sourceName = basename(sourcePath, extname(sourcePath));\n const iconName = validateIconName(requestedName ?? sourceName);\n const layout = iconLayoutFromTree(sourcePath);\n\n const iconIdentity = layout === null\n ? `${state.prefix}/icons/${iconName}`\n : `${state.prefix}/icons/${layout}/${iconName}`;\n\n const resourcePath = validateResourcePath(`${iconIdentity}${extension}`);\n\n return { iconIdentity, iconName, resourcePath };\n};\n\nconst hasSideEffectIconImport = (code: string, id: string): boolean => {\n const lang = sourceLanguage(stripQuery(id));\n\n if (lang === undefined || !code.includes(\"?icon\")) {\n return false;\n }\n\n const parsed = parseSync(id, code, { lang });\n\n if (parsed.errors.length > 0) {\n return false;\n }\n\n return parsed.module.staticImports.some(\n (statement) => statement.entries.length === 0 && parseIconSpecifier(statement.moduleRequest.value) !== null,\n );\n};\n\nconst retainSideEffectIconImport = (\n code: string,\n id: string,\n): { code: string; moduleSideEffects: true } | null =>\n hasSideEffectIconImport(code, id)\n ? { code, moduleSideEffects: true }\n : null;\n\nconst compileBundle = (state: PluginState, outputPath: string): Buffer =>\n withStagingDir(\"resources\", (dir) => {\n const manifest = stageBundle(dir, state.entries);\n\n return runCompiler(dir, manifest, outputPath);\n });\n\nconst stageBundle = (dir: string, entries: Map<string, ResourceEntry>): string => {\n const fileNodes: string[] = [];\n\n for (const entry of entries.values()) {\n const targetPath = join(dir, entry.stagedRelPath);\n mkdirSync(dirname(targetPath), { recursive: true });\n copyFileSync(entry.sourcePath, targetPath);\n fileNodes.push(` <file>${escapeXml(entry.stagedRelPath)}</file>`);\n }\n\n const prefix = escapeXml(MANIFEST_PREFIX);\n const manifest = join(dir, \"gtkx.gresource.xml\");\n\n const xml = [\n \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\",\n \"<gresources>\",\n ` <gresource prefix=\"${prefix}\">`,\n ...fileNodes,\n \" </gresource>\",\n \"</gresources>\",\n \"\",\n ].join(\"\\n\");\n\n writeFileSync(manifest, xml);\n\n return manifest;\n};\n\nconst runCompiler = (sourceDir: string, manifest: string, outputPath: string): Buffer => {\n runCliTool({\n tool: RESOURCE_COMPILER,\n args: [`--sourcedir=${sourceDir}`, `--target=${outputPath}`, manifest],\n });\n\n return readFileSync(outputPath);\n};\n\nconst ensureStagingDir = (state: PluginState): void => {\n state.devBundlePath = join(state.stagingDir.retain(), BUNDLE_FILENAME);\n};\n\nconst releaseStagingDir = (state: PluginState): void => {\n state.stagingDir.release();\n state.devBundlePath = \"\";\n state.compiledSignature = \"\";\n};\n\nconst entriesSignature = (state: PluginState): string =>\n sortStrings([...state.entries].map(([resourcePath, entry]) => `${resourcePath}\\0${entry.sourcePath}`)).join(\"\\0\");\n\nconst compileDevBundle = (state: PluginState): void => {\n ensureStagingDir(state);\n\n if (state.entries.size === 0) {\n rmSync(state.devBundlePath, { force: true });\n state.compiledSignature = \"\";\n\n return;\n }\n\n compileBundle(state, state.devBundlePath);\n state.compiledSignature = entriesSignature(state);\n};\n\nconst isRefreshHook = (value: unknown): value is () => void => typeof value === \"function\";\n\nconst refreshRegisteredDevBundle = (state: PluginState): void => {\n const server = state.server;\n\n if (!server) {\n return;\n }\n\n const refresh: unknown = server.moduleGraph.getModuleById(VIRTUAL_INIT)?.ssrModule?.[REFRESH_EXPORT];\n\n if (isRefreshHook(refresh)) {\n refresh();\n }\n};\n\nconst registerDevAsset = (state: PluginState): void => {\n if (entriesSignature(state) !== state.compiledSignature) {\n compileDevBundle(state);\n }\n};\n\nconst importerKey = (importer: string): string => stripQuery(importer);\n\nconst trackBundledSpecifier = (state: PluginState, importer: string | undefined, source: string): void => {\n if (importer === undefined) {\n return;\n }\n\n const key = importerKey(importer);\n const specifiers = state.bundledSpecifiers.get(key) ?? new Set<string>();\n specifiers.add(source);\n state.bundledSpecifiers.set(key, specifiers);\n};\n\nconst createResourceEntry = (sourcePath: string, resourcePath: string): ResourceEntry => ({\n sourcePath,\n stagedRelPath: resourcePath.replace(/^\\/+/, \"\"),\n resourcePath,\n});\n\nconst activateEntry = (state: PluginState, entry: ResourceEntry): ResourceEntry => {\n const existing = state.entries.get(entry.resourcePath);\n\n if (existing !== undefined) {\n if (existing.sourcePath !== entry.sourcePath) {\n throw new Error(\n `${existing.sourcePath} and ${entry.sourcePath} both resolve to the GResource path ` +\n entry.resourcePath,\n );\n }\n\n return existing;\n }\n\n state.entries.set(entry.resourcePath, entry);\n state.sourcePaths.add(entry.sourcePath);\n\n return entry;\n};\n\nconst isDeclarativeImporter = (state: PluginState, importer: string | undefined): importer is string =>\n !state.isBuild && importer !== undefined;\n\nconst setSourceAvailability = (state: PluginState, file: string, isAvailable: boolean): void => {\n if (isAvailable) {\n state.missingSourcePaths.delete(file);\n\n return;\n }\n\n state.missingSourcePaths.add(file);\n};\n\nconst isDeclaredSourceAvailable = (state: PluginState, sourcePath: string): boolean => {\n const isAvailable = existsSync(sourcePath);\n setSourceAvailability(state, sourcePath, isAvailable);\n\n return isAvailable;\n};\n\nconst declareEntry = (state: PluginState, importer: string, entry: ResourceEntry): ResourceEntry => {\n const key = importerKey(importer);\n const declarations = state.declaredEntries.get(key) ?? new Map<string, ResourceEntry>();\n const existing = declarations.get(entry.resourcePath);\n\n if (existing !== undefined && existing.sourcePath !== entry.sourcePath) {\n throw new Error(\n `${existing.sourcePath} and ${entry.sourcePath} both resolve to the GResource path ` +\n entry.resourcePath,\n );\n }\n\n const declared = existing ?? entry;\n declarations.set(entry.resourcePath, declared);\n state.declaredEntries.set(key, declarations);\n state.server?.watcher.add(dirname(declared.sourcePath));\n\n return declared;\n};\n\nconst declareIcon = (\n state: PluginState,\n importer: string,\n iconIdentity: string,\n entry: ResourceEntry,\n): void => {\n const key = importerKey(importer);\n const declarations = state.declaredIcons.get(key) ?? new Map<string, ResourceEntry>();\n const existing = declarations.get(iconIdentity);\n\n if (existing !== undefined && existing.sourcePath !== entry.sourcePath) {\n throw new Error(\n `${existing.sourcePath} and ${entry.sourcePath} both claim the themed icon ${iconIdentity}`,\n );\n }\n\n declarations.set(iconIdentity, existing ?? entry);\n state.declaredIcons.set(key, declarations);\n};\n\nconst assertIconIdentityAvailable = (\n state: PluginState,\n iconIdentity: string,\n sourcePath: string,\n): void => {\n const existing = state.iconOwners.get(iconIdentity);\n\n if (existing !== undefined && existing.sourcePath !== sourcePath) {\n throw new Error(\n `${existing.sourcePath} and ${sourcePath} both claim the themed icon ${iconIdentity}`,\n );\n }\n};\n\nconst declareResolvedIcon = (\n state: PluginState,\n importer: string | undefined,\n iconIdentity: string,\n entry: ResourceEntry,\n): void => {\n if (isDeclarativeImporter(state, importer)) {\n declareIcon(state, importer, iconIdentity, entry);\n }\n};\n\nconst registerEntry = (\n state: PluginState,\n absPath: string,\n rel: string,\n importer?: string,\n): ResourceEntry => {\n const resourcePath = validateResourcePath(rel.startsWith(\"/\") ? rel : `${state.prefix}/${rel}`);\n let entry = createResourceEntry(absPath, resourcePath);\n\n if (isDeclarativeImporter(state, importer)) {\n entry = declareEntry(state, importer, entry);\n\n if (!isImporterActive(state, importer) || !isDeclaredSourceAvailable(state, absPath)) {\n return entry;\n }\n }\n\n return activateEntry(state, entry);\n};\n\nconst registerIconEntry = (\n state: PluginState,\n sourcePath: string,\n derived: DerivedIconEntry,\n importer: string | undefined,\n): ResourceEntry => {\n const shouldActivate = !isDeclarativeImporter(state, importer) ||\n (isImporterActive(state, importer) && isDeclaredSourceAvailable(state, sourcePath));\n\n if (shouldActivate) {\n assertIconIdentityAvailable(state, derived.iconIdentity, sourcePath);\n }\n\n const entry = registerEntry(state, sourcePath, derived.resourcePath, importer);\n declareResolvedIcon(state, importer, derived.iconIdentity, entry);\n\n if (shouldActivate) {\n state.iconOwners.set(derived.iconIdentity, entry);\n }\n\n return entry;\n};\n\nconst isTrackedSource = (state: PluginState, file: string): boolean => state.sourcePaths.has(file);\n\nconst hasSourceEntry = (entries: Map<string, ResourceEntry>, file: string): boolean => {\n for (const entry of entries.values()) {\n if (entry.sourcePath === file) {\n return true;\n }\n }\n\n return false;\n};\n\nconst hasDeclaredSource = (\n declarations: Map<string, Map<string, ResourceEntry>>,\n file: string,\n): boolean => {\n for (const entries of declarations.values()) {\n if (hasSourceEntry(entries, file)) {\n return true;\n }\n }\n\n return false;\n};\n\nconst isDeclaredSource = (state: PluginState, file: string): boolean =>\n hasDeclaredSource(state.declaredEntries, file) || hasDeclaredSource(state.declaredIcons, file);\n\nconst virtualAssetId = (entry: ResourceEntry): string =>\n toVirtualId(entry.sourcePath) + REL_SEPARATOR + entry.resourcePath;\n\nconst virtualIconId = ({ entry, iconName }: ResolvedIconEntry): string =>\n virtualAssetId(entry) + ICON_NAME_SEPARATOR + iconName;\n\nconst resolveAssetSource = async (\n ctx: ResolveContext,\n request: { assetSource: string; importer: string | undefined; options: Record<string, unknown> | undefined },\n): Promise<string | undefined> => {\n const resolved = await ctx.resolve(request.assetSource, request.importer, {\n ...request.options,\n skipSelf: true,\n });\n\n if (!resolved || resolved.external) {\n return undefined;\n }\n\n const sourcePath = stripQuery(resolved.id);\n\n if (!isAbsolute(sourcePath)) {\n throw new Error(`${JSON.stringify(request.assetSource)} did not resolve to a file-backed asset`);\n }\n\n return sourcePath;\n};\n\nconst resolveAssetEntry = async (\n ctx: ResolveContext,\n state: PluginState,\n request: AssetResolveRequest,\n): Promise<ResourceEntry | undefined> => {\n const sourcePath = await resolveAssetSource(ctx, request);\n\n if (sourcePath === undefined) {\n return undefined;\n }\n\n return registerEntry(\n state,\n sourcePath,\n request.resourcePath === null\n ? derivedResourcePath(state, sourcePath)\n : validateResourcePath(request.resourcePath),\n request.importer,\n );\n};\n\nconst resolveIconEntry = async (\n ctx: ResolveContext,\n state: PluginState,\n request: IconResolveRequest,\n): Promise<ResolvedIconEntry | undefined> => {\n const sourcePath = await resolveAssetSource(ctx, request);\n\n if (sourcePath === undefined) {\n return undefined;\n }\n\n const derived = derivedIconEntry(state, sourcePath, request.iconName);\n\n return {\n entry: registerIconEntry(state, sourcePath, derived, request.importer),\n iconName: derived.iconName,\n };\n};\n\nconst loadInitModule = (state: PluginState): string => {\n if (state.isBuild) {\n if (state.bundleReferenceId === null) {\n throw new Error(\"Cannot render the GResource loader before its bundle has been emitted\");\n }\n\n return renderInitModule({ isBuild: true, bundleReferenceId: state.bundleReferenceId });\n }\n\n ensureStagingDir(state);\n\n return renderInitModule({ isBuild: false, devBundlePath: state.devBundlePath });\n};\n\nconst virtualAssetMetadata = (virtualId: string): { absPath: string; iconName: string | null; rel: string } => {\n const rest = fromVirtualId(virtualId);\n const separatorIndex = rest.indexOf(REL_SEPARATOR);\n const relAndMetadata = rest.slice(separatorIndex + REL_SEPARATOR.length);\n const iconSeparatorIndex = relAndMetadata.indexOf(ICON_NAME_SEPARATOR);\n\n return {\n absPath: rest.slice(0, separatorIndex),\n iconName: iconSeparatorIndex === -1\n ? null\n : relAndMetadata.slice(iconSeparatorIndex + ICON_NAME_SEPARATOR.length),\n rel: iconSeparatorIndex === -1 ? relAndMetadata : relAndMetadata.slice(0, iconSeparatorIndex),\n };\n};\n\nconst resourcePathExport = (entry: ResourceEntry, iconName: string | null): string[] =>\n iconName === null ? [`export const ${RESOURCE_PATH_EXPORT} = ${JSON.stringify(entry.resourcePath)};`] : [];\n\nconst assetModuleImports = (iconName: string | null): string[] => {\n const initBindings = iconName === null\n ? \"ensureRegistered\"\n : `ensureRegistered, ${REGISTER_REFRESH_EXPORT}`;\n\n return [\n `import { ${initBindings} } from ${JSON.stringify(VIRTUAL_INIT)};`,\n ...(iconName === null\n ? []\n : [\n \"import { Display } from \\\"@gtkx/gi/gdk\\\";\",\n \"import { IconTheme } from \\\"@gtkx/gi/gtk\\\";\",\n ]),\n ];\n};\n\nconst iconThemeRegistration = (state: PluginState, iconName: string | null): string[] => {\n if (iconName === null) {\n return [];\n }\n\n const resourceIconPath = `${state.prefix}/icons`;\n\n return [\n `const resourceIconPath = ${JSON.stringify(resourceIconPath)};`,\n \"function refreshIconTheme() {\",\n \" const display = Display.getDefault();\",\n \" if (!display) return;\",\n \" const theme = IconTheme.getForDisplay(display);\",\n \" const paths = theme.getResourcePath() ?? [];\",\n \" theme.setResourcePath(paths.includes(resourceIconPath) ? [...paths] : [...paths, resourceIconPath]);\",\n \"}\",\n `${REGISTER_REFRESH_EXPORT}(resourceIconPath, refreshIconTheme);`,\n ];\n};\n\nconst loadedResourceEntry = (\n state: PluginState,\n sourcePath: string,\n resourcePath: string,\n): { entry: ResourceEntry; isRegistered: boolean } => {\n const registered = state.entries.get(resourcePath);\n\n if (registered === undefined) {\n return { entry: createResourceEntry(sourcePath, resourcePath), isRegistered: false };\n }\n\n if (registered.sourcePath !== sourcePath) {\n throw new Error(\n `${registered.sourcePath} and ${sourcePath} both resolve to the GResource path ${resourcePath}`,\n );\n }\n\n return { entry: registered, isRegistered: true };\n};\n\nconst compileLoadedDevAsset = (state: PluginState, isRegistered: boolean): void => {\n if (isRegistered && !state.isBuild) {\n registerDevAsset(state);\n }\n};\n\nconst loadAssetModule = (state: PluginState, virtualId: string): string => {\n const { absPath, iconName, rel } = virtualAssetMetadata(virtualId);\n const resourcePath = validateResourcePath(rel);\n const { entry, isRegistered } = loadedResourceEntry(state, absPath, resourcePath);\n const defaultValue = iconName ?? entry.resourcePath;\n compileLoadedDevAsset(state, isRegistered);\n\n return [\n ...assetModuleImports(iconName),\n \"ensureRegistered();\",\n ...iconThemeRegistration(state, iconName),\n `export default ${JSON.stringify(defaultValue)};`,\n ...resourcePathExport(entry, iconName),\n ].join(\"\\n\");\n};\n\nconst finalizeBuildBundle = (\n ctx: Pick<Rolldown.PluginContext, \"getFileName\">,\n bundle: Rolldown.OutputBundle,\n state: PluginState,\n): void => {\n if (!state.isBuild || state.bundleReferenceId === null) {\n return;\n }\n\n const fileName = ctx.getFileName(state.bundleReferenceId);\n const output = bundle[fileName];\n\n if (output?.type !== \"asset\") {\n throw new Error(`Cannot find the emitted ${BUNDLE_FILENAME} asset`);\n }\n\n if (state.entries.size === 0) {\n Reflect.deleteProperty(bundle, fileName);\n\n return;\n }\n\n const compiled = withStagingDir(\"resources-out\", (outDir) => compileBundle(state, join(outDir, BUNDLE_FILENAME)));\n output.source = compiled;\n info(`Compiled ${String(state.entries.size)} resource(s) into ${BUNDLE_FILENAME}`);\n};\n\nconst refreshDevRegistration = (state: PluginState): void => {\n compileDevBundle(state);\n\n try {\n refreshRegisteredDevBundle(state);\n } catch (error_) {\n error(\"Failed to refresh GResource bundle:\", error_);\n }\n};\n\nconst isSameSpecifiers = (left: Set<string> | undefined, right: Set<string>): boolean =>\n left === undefined\n ? right.size === 0\n : left.size === right.size && [...right].every((source) => left.has(source));\n\nconst bundledSpecifiersIn = (imports: SourceImport[]): Set<string> =>\n new Set(\n imports\n .filter((entry) =>\n parseResourceSpecifier(entry.source) !== null || parseIconSpecifier(entry.source) !== null)\n .map((entry) => entry.source),\n );\n\nconst isSourceModule = (file: string): boolean => sourceLanguage(file) !== undefined;\n\nconst isBundledSource = (source: string): boolean =>\n parseResourceSpecifier(source) !== null || parseIconSpecifier(source) !== null;\n\nconst validateUnbundledSource = (source: string): void => {\n if (isLegacyDataSpecifier(source)) {\n throw new Error(`${JSON.stringify(source)} uses the legacy #data asset form`);\n }\n\n rejectInvalidSpecifier(source);\n};\n\nconst resolvedModuleDependency = async (\n ctx: ResolveContext,\n source: string,\n importer: string,\n): Promise<string | null> => {\n if (isBundledSource(source)) {\n return null;\n }\n\n validateUnbundledSource(source);\n const resolved = await ctx.resolve(source, importer, { skipSelf: true });\n\n if (resolved === null) {\n throw new Error(`${JSON.stringify(source)} could not be resolved from ${importer}`);\n }\n\n return resolved.external ? null : importerKey(resolved.id);\n};\n\nconst resolvedModuleDependencies = async (\n ctx: ResolveContext,\n imports: SourceImport[],\n importer: string,\n): Promise<Set<string>> => {\n const dependencies: Set<string> = new Set();\n\n for (const entry of imports) {\n const dependency = await resolvedModuleDependency(ctx, entry.source, importer);\n\n if (dependency !== null) {\n dependencies.add(dependency);\n }\n }\n\n return dependencies;\n};\n\nconst importerReconciliation = async (\n ctx: ResolveContext,\n state: PluginState,\n id: string,\n): Promise<ImporterReconciliation | null> => {\n const file = stripQuery(id);\n const key = importerKey(file);\n\n if (state.isBuild || !isSourceModule(file)) {\n return null;\n }\n\n const imports = parseRuntimeImportsIn(file);\n\n if (imports === null) {\n return null;\n }\n\n return {\n currentBundled: bundledSpecifiersIn(imports),\n currentDependencies: await resolvedModuleDependencies(ctx, imports, file),\n file,\n imports,\n key,\n previousBundled: state.bundledSpecifiers.get(key),\n previousDependencies: state.moduleDependencies.get(key),\n };\n};\n\nconst moduleNodeKey = (module: ModuleNode): string => importerKey(module.id ?? module.file ?? module.url);\n\nconst moduleNodeFor = (state: PluginState, id: string): ModuleNode | undefined => {\n const server = state.server;\n\n if (server === null) {\n return undefined;\n }\n\n return server.moduleGraph.getModuleById(id) ?? server.moduleGraph.getModuleById(importerKey(id));\n};\n\nconst restoreDependencies = (pruned: Set<string>, current: Set<string>): void => {\n for (const dependency of current) {\n pruned.delete(dependency);\n }\n};\n\nconst pruneRemovedDependencies = (\n pruned: Set<string>,\n previous: Set<string> | undefined,\n current: Set<string>,\n): void => {\n if (previous === undefined) {\n return;\n }\n\n for (const dependency of previous) {\n if (!current.has(dependency)) {\n pruned.add(dependency);\n }\n }\n};\n\nconst storePrunedDependencies = (state: PluginState, key: string, pruned: Set<string>): void => {\n if (pruned.size === 0) {\n state.prunedDependencies.delete(key);\n\n return;\n }\n\n state.prunedDependencies.set(key, pruned);\n};\n\nconst updatePrunedDependencies = (\n state: PluginState,\n key: string,\n previous: Set<string> | undefined,\n current: Set<string>,\n): void => {\n const pruned = state.prunedDependencies.get(key) ?? new Set<string>();\n restoreDependencies(pruned, current);\n pruneRemovedDependencies(pruned, previous, current);\n storePrunedDependencies(state, key, pruned);\n};\n\nconst isPrunedDependency = (state: PluginState, importer: ModuleNode, imported: ModuleNode): boolean =>\n state.prunedDependencies.get(moduleNodeKey(importer))?.has(moduleNodeKey(imported)) === true;\n\nconst fallbackRootModules = (state: PluginState): string[] => {\n const roots: string[] = [];\n\n for (const key of state.moduleDependencies.keys()) {\n if (moduleNodeFor(state, key)?.importers.size === 0) {\n roots.push(key);\n }\n }\n\n return roots;\n};\n\nconst enqueueCurrentDependencies = (state: PluginState, key: string, pending: string[]): void => {\n const dependencies = state.moduleDependencies.get(key) ?? [];\n\n for (const dependency of dependencies) {\n pending.push(dependency);\n }\n};\n\nconst enqueueGraphDependencies = (state: PluginState, key: string, pending: string[]): void => {\n const module = moduleNodeFor(state, key);\n\n if (module === undefined) {\n return;\n }\n\n for (const imported of module.importedModules) {\n if (!isPrunedDependency(state, module, imported)) {\n pending.push(moduleNodeKey(imported));\n }\n }\n};\n\nconst visitActiveImporter = (\n state: PluginState,\n active: Set<string>,\n pending: string[],\n key: string,\n): void => {\n if (active.has(key)) {\n return;\n }\n\n active.add(key);\n enqueueCurrentDependencies(state, key, pending);\n enqueueGraphDependencies(state, key, pending);\n};\n\nconst activeImporterKeys = (state: PluginState): Set<string> => {\n const active: Set<string> = new Set();\n const roots = state.entryModule === null ? fallbackRootModules(state) : [state.entryModule];\n const pending = [...roots];\n\n while (pending.length > 0) {\n const key = pending.pop();\n\n if (key === undefined || active.has(key)) {\n continue;\n }\n\n visitActiveImporter(state, active, pending, key);\n }\n\n return active;\n};\n\nconst isImporterActive = (state: PluginState, importer: string): boolean =>\n activeImporterKeys(state).has(importerKey(importer));\n\nconst activateDeclaredIcon = (\n state: PluginState,\n iconIdentity: string,\n entry: ResourceEntry,\n): void => {\n const existing = state.iconOwners.get(iconIdentity);\n\n if (existing !== undefined && existing.sourcePath !== entry.sourcePath) {\n throw new Error(\n `${existing.sourcePath} and ${entry.sourcePath} both claim the themed icon ${iconIdentity}`,\n );\n }\n\n state.iconOwners.set(iconIdentity, activateEntry(state, entry));\n};\n\nconst activateDeclaredEntries = (state: PluginState, importer: string): void => {\n const entries = state.declaredEntries.get(importer)?.values() ?? [];\n\n for (const entry of entries) {\n if (isDeclaredSourceAvailable(state, entry.sourcePath)) {\n activateEntry(state, entry);\n }\n }\n};\n\nconst activateDeclaredIcons = (state: PluginState, importer: string): void => {\n const icons = state.declaredIcons.get(importer) ?? [];\n\n for (const [iconIdentity, entry] of icons) {\n if (isDeclaredSourceAvailable(state, entry.sourcePath)) {\n activateDeclaredIcon(state, iconIdentity, entry);\n }\n }\n};\n\nconst activateDeclaredClaims = (state: PluginState, active: Set<string>): void => {\n for (const importer of sortStrings(active)) {\n activateDeclaredEntries(state, importer);\n activateDeclaredIcons(state, importer);\n }\n};\n\nconst rebuildActiveClaims = (state: PluginState): void => {\n const previous = {\n entries: state.entries,\n iconOwners: state.iconOwners,\n sourcePaths: state.sourcePaths,\n };\n\n state.entries = new Map();\n state.iconOwners = new Map();\n state.sourcePaths = new Set();\n\n try {\n activateDeclaredClaims(state, activeImporterKeys(state));\n } catch (error_) {\n state.entries = previous.entries;\n state.iconOwners = previous.iconOwners;\n state.sourcePaths = previous.sourcePaths;\n throw error_;\n }\n};\n\nconst forgetImporterDeclarations = (state: PluginState, importer: string): void => {\n state.declaredEntries.delete(importer);\n state.declaredIcons.delete(importer);\n};\n\nconst cloneMapValues = <Value>(source: Map<string, Value>, clone: (value: Value) => Value): Map<string, Value> =>\n new Map([...source].map(([key, value]) => [key, clone(value)]));\n\nconst reconciliationCandidate = (state: PluginState): PluginState => ({\n ...state,\n bundledSpecifiers: cloneMapValues(state.bundledSpecifiers, (values) => new Set(values)),\n moduleDependencies: cloneMapValues(state.moduleDependencies, (values) => new Set(values)),\n prunedDependencies: cloneMapValues(state.prunedDependencies, (values) => new Set(values)),\n declaredEntries: cloneMapValues(state.declaredEntries, (entries) => new Map(entries)),\n declaredIcons: cloneMapValues(state.declaredIcons, (entries) => new Map(entries)),\n missingSourcePaths: new Set(state.missingSourcePaths),\n});\n\nconst storeBundledSpecifiers = (state: PluginState, importer: string, specifiers: Set<string>): void => {\n if (specifiers.size === 0) {\n state.bundledSpecifiers.delete(importer);\n\n return;\n }\n\n state.bundledSpecifiers.set(importer, specifiers);\n};\n\nconst applyImporterGraph = (state: PluginState, reconciliation: ImporterReconciliation): void => {\n updatePrunedDependencies(\n state,\n reconciliation.key,\n reconciliation.previousDependencies,\n reconciliation.currentDependencies,\n );\n\n state.moduleDependencies.set(reconciliation.key, reconciliation.currentDependencies);\n storeBundledSpecifiers(state, reconciliation.key, reconciliation.currentBundled);\n};\n\nconst declareReconciledResource = async (\n ctx: ResolveContext,\n state: PluginState,\n importer: string,\n source: string,\n): Promise<void> => {\n const resourceSpecifier = parseResourceSpecifier(source);\n\n if (resourceSpecifier === null) {\n return;\n }\n\n const entry = await resolveAssetEntry(ctx, state, {\n assetSource: resourceSpecifier.assetSource,\n importer,\n resourcePath: resourceSpecifier.resourcePath,\n options: undefined,\n });\n\n if (entry === undefined || state.missingSourcePaths.has(entry.sourcePath)) {\n throw new Error(`${JSON.stringify(source)} did not resolve to a bundled resource`);\n }\n};\n\nconst declareReconciledIcon = async (\n ctx: ResolveContext,\n state: PluginState,\n importer: string,\n source: string,\n): Promise<void> => {\n const iconSpecifier = parseIconSpecifier(source);\n\n if (iconSpecifier === null) {\n return;\n }\n\n const entry = await resolveIconEntry(ctx, state, {\n assetSource: iconSpecifier.assetSource,\n iconName: iconSpecifier.iconName,\n importer,\n options: undefined,\n });\n\n if (entry === undefined || state.missingSourcePaths.has(entry.entry.sourcePath)) {\n throw new Error(`${JSON.stringify(source)} did not resolve to a bundled icon`);\n }\n};\n\nconst declareReconciledSource = async (\n ctx: ResolveContext,\n state: PluginState,\n importer: string,\n source: string,\n): Promise<void> => {\n await declareReconciledResource(ctx, state, importer, source);\n await declareReconciledIcon(ctx, state, importer, source);\n};\n\nconst declareReconciledImports = async (\n ctx: ResolveContext,\n state: PluginState,\n reconciliation: ImporterReconciliation,\n): Promise<void> => {\n for (const entry of reconciliation.imports) {\n if (isBundledSource(entry.source)) {\n await declareReconciledSource(ctx, state, reconciliation.file, entry.source);\n }\n }\n};\n\nconst prepareReconciliation = async (\n ctx: ResolveContext,\n state: PluginState,\n reconciliation: ImporterReconciliation,\n): Promise<PluginState> => {\n const candidate = reconciliationCandidate(state);\n\n const isBundledChanged = !isSameSpecifiers(\n reconciliation.previousBundled,\n reconciliation.currentBundled,\n );\n\n if (isBundledChanged) {\n forgetImporterDeclarations(candidate, reconciliation.key);\n }\n\n applyImporterGraph(candidate, reconciliation);\n rebuildActiveClaims(candidate);\n\n if (isBundledChanged) {\n await declareReconciledImports(ctx, candidate, reconciliation);\n }\n\n return candidate;\n};\n\nconst commitReconciliation = (state: PluginState, candidate: PluginState): void => {\n state.entries = candidate.entries;\n state.bundledSpecifiers = candidate.bundledSpecifiers;\n state.moduleDependencies = candidate.moduleDependencies;\n state.prunedDependencies = candidate.prunedDependencies;\n state.declaredEntries = candidate.declaredEntries;\n state.declaredIcons = candidate.declaredIcons;\n state.missingSourcePaths = candidate.missingSourcePaths;\n state.sourcePaths = candidate.sourcePaths;\n state.iconOwners = candidate.iconOwners;\n};\n\nconst reconcileImporter = async (ctx: ResolveContext, state: PluginState, id: string): Promise<void> => {\n const reconciliation = await importerReconciliation(ctx, state, id);\n\n if (reconciliation === null) {\n return;\n }\n\n const previousSignature = entriesSignature(state);\n const candidate = await prepareReconciliation(ctx, state, reconciliation);\n commitReconciliation(state, candidate);\n\n if (entriesSignature(state) !== previousSignature) {\n refreshDevRegistration(state);\n }\n};\n\nconst resolveResourceConfig = async (state: PluginState, config: UserConfig, loadConfig: ConfigLoader) => {\n const loaded = await loadConfig.load(config.root ?? process.cwd());\n state.prefix = resourceBasePath(loaded.config.applicationId);\n state.root = loaded.root;\n\n return {\n assetsInclude: [ASSET_RE],\n };\n};\n\nconst refreshTrackedSource = (state: PluginState, file: string): void => {\n if (!isTrackedSource(state, file)) {\n return;\n }\n\n try {\n refreshDevRegistration(state);\n } catch (error_) {\n error(\"GResource refresh failed:\", error_);\n }\n};\n\nconst rebuildForSourceAvailability = (state: PluginState, previousSignature: string): void => {\n try {\n rebuildActiveClaims(state);\n\n if (entriesSignature(state) !== previousSignature) {\n refreshDevRegistration(state);\n }\n } catch (error_) {\n error(\"GResource source update failed:\", error_);\n }\n};\n\nconst updateTrackedSourceAvailability = (state: PluginState, file: string, isAvailable: boolean): void => {\n if (!isTrackedSource(state, file) && !state.missingSourcePaths.has(file) && !isDeclaredSource(state, file)) {\n return;\n }\n\n const previousSignature = entriesSignature(state);\n setSourceAvailability(state, file, isAvailable);\n rebuildForSourceAvailability(state, previousSignature);\n};\n\nconst attachResourceWatcher = (state: PluginState, server: ViteDevServer): void => {\n state.server = server;\n\n const onChange = (file: string): void => {\n refreshTrackedSource(state, file);\n };\n\n const onAdd = (file: string): void => {\n updateTrackedSourceAvailability(state, file, true);\n };\n\n const onUnlink = (file: string): void => {\n updateTrackedSourceAvailability(state, file, false);\n };\n\n const onClose = (): void => {\n releaseStagingDir(state);\n };\n\n server.httpServer?.once(\"close\", onClose);\n server.watcher.once(\"close\", onClose);\n server.watcher.on(\"change\", onChange);\n server.watcher.on(\"add\", onAdd);\n server.watcher.on(\"unlink\", onUnlink);\n};\n\nconst applyResolvedConfig = (state: PluginState, config: ResolvedConfig): void => {\n state.isBuild = config.command === \"build\";\n state.root = config.root;\n};\n\nconst loadResourceModule = (state: PluginState, id: string): string | undefined => {\n if (id === VIRTUAL_INIT) {\n return loadInitModule(state);\n }\n\n if (!isVirtual(id)) {\n return undefined;\n }\n\n return loadAssetModule(state, id);\n};\n\nconst isLegacyDataSpecifier = (source: string): boolean =>\n source.startsWith(DATA_PREFIX) && ASSET_RE.test(stripQuery(source));\n\nconst rejectInvalidSpecifier = (source: string): void => {\n if (BUNDLED_QUERY_MENTION_RE.test(source)) {\n throw new Error(\n `${JSON.stringify(source)} is not a valid bundled asset import; use ?resource, ` +\n \"?resource=/absolute/path, ?icon, or ?icon=name\",\n );\n }\n\n if (isBareRelativeAsset(source)) {\n throw new Error(\n `${JSON.stringify(source)} must choose ?resource for a GResource, ?icon for a themed icon, ` +\n \"or ?url for an emitted file\",\n );\n }\n};\n\nconst resolveExplicitResourceId = async (\n ctx: ResolveContext,\n state: PluginState,\n request: ResolveRequest,\n): Promise<string | undefined> => {\n const specifier = parseResourceSpecifier(request.source);\n\n if (specifier === null) {\n return undefined;\n }\n\n const entry = await resolveAssetEntry(ctx, state, {\n assetSource: specifier.assetSource,\n importer: request.importer,\n resourcePath: specifier.resourcePath,\n options: request.options,\n });\n\n return entry === undefined ? undefined : virtualAssetId(entry);\n};\n\nconst resolveIconResourceId = async (\n ctx: ResolveContext,\n state: PluginState,\n request: ResolveRequest,\n): Promise<RetainedIconModuleId | undefined> => {\n const specifier = parseIconSpecifier(request.source);\n\n if (specifier === null) {\n return undefined;\n }\n\n const resolved = await resolveIconEntry(ctx, state, {\n assetSource: specifier.assetSource,\n iconName: specifier.iconName,\n importer: request.importer,\n options: request.options,\n });\n\n return resolved === undefined\n ? undefined\n : { id: virtualIconId(resolved), moduleSideEffects: true };\n};\n\nconst resolveBundledResourceId = async (\n ctx: ResolveContext,\n state: PluginState,\n request: ResolveRequest,\n): Promise<ResourceModuleId | undefined> => {\n if (isLegacyDataSpecifier(request.source)) {\n throw new Error(\n `${JSON.stringify(request.source)} uses the legacy #data asset form; import it relatively with ` +\n \"?resource or ?url\",\n );\n }\n\n if (parseResourceSpecifier(request.source) !== null) {\n const resolved = await resolveExplicitResourceId(ctx, state, request);\n trackBundledSpecifier(state, request.importer, request.source);\n\n return resolved;\n }\n\n if (parseIconSpecifier(request.source) !== null) {\n const resolved = await resolveIconResourceId(ctx, state, request);\n trackBundledSpecifier(state, request.importer, request.source);\n\n return resolved;\n }\n\n rejectInvalidSpecifier(request.source);\n\n return undefined;\n};\n\nconst resolveResourceId = (\n ctx: ResolveContext,\n state: PluginState,\n request: ResolveRequest,\n): Promise<ResourceModuleId | undefined> => {\n if (request.source === VIRTUAL_INIT) {\n return Promise.resolve(VIRTUAL_INIT);\n }\n\n return resolveBundledResourceId(ctx, state, request);\n};\n\nconst createResourcesPlugin = (state: PluginState, loadConfig: ConfigLoader): Plugin => ({\n name: \"gtkx:resources\",\n enforce: \"pre\",\n perEnvironmentStartEndDuringDev: true,\n\n config: (config: UserConfig) => resolveResourceConfig(state, config, loadConfig),\n\n configResolved: (config: ResolvedConfig) => {\n applyResolvedConfig(state, config);\n },\n\n configureServer: (server) => {\n attachResourceWatcher(state, server);\n },\n\n buildStart() {\n if (state.isBuild && state.bundleReferenceId === null) {\n state.bundleReferenceId = this.emitFile({\n type: \"asset\",\n fileName: BUNDLE_FILENAME,\n source: \"\",\n });\n }\n },\n\n resolveId(source, importer, options) {\n return resolveResourceId(this, state, { source, importer, options });\n },\n\n load(id) {\n return loadResourceModule(state, id);\n },\n\n async transform(code, id) {\n await withExclusiveLoad(state, () => reconcileImporter(this, state, id));\n\n return retainSideEffectIconImport(code, id);\n },\n\n generateBundle(_options, bundle) {\n finalizeBuildBundle(this, bundle, state);\n },\n\n closeBundle() {\n releaseStagingDir(state);\n },\n});\n\nfunction gtkxResources(loadConfig: ConfigLoader = createConfigLoader(), entryPath?: string): Plugin {\n const state: PluginState = {\n prefix: \"\",\n root: \"\",\n isBuild: false,\n entries: new Map(),\n bundledSpecifiers: new Map(),\n moduleDependencies: new Map(),\n prunedDependencies: new Map(),\n declaredEntries: new Map(),\n declaredIcons: new Map(),\n entryModule: entryPath === undefined ? null : importerKey(entryPath),\n sourcePaths: new Set(),\n missingSourcePaths: new Set(),\n stagingDir: createRetainedStagingDir(DEV_STAGING_PREFIX),\n devBundlePath: \"\",\n server: null,\n compiledSignature: \"\",\n bundleReferenceId: null,\n iconOwners: new Map(),\n };\n\n return createResourcesPlugin(state, loadConfig);\n}\n\nexport { gtkxResources };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"settings-worker-env.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/settings-worker-env.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C,iBAAS,qBAAqB,IAAI,MAAM,CAyBvC;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"settings-worker-env.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/settings-worker-env.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,iBAAS,qBAAqB,IAAI,MAAM,CAwBvC;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { createConfigLoader } from "@gtkx/config/internal";
2
- import { resolveDataDir } from "../internal/data-dir.js";
3
2
  import { prependSchemaDir, stageAndCompileProjectSchemas } from "../settings/schema.js";
4
3
  function gtkxSettingsWorkerEnv() {
5
4
  const loadConfig = createConfigLoader();
@@ -8,8 +7,7 @@ function gtkxSettingsWorkerEnv() {
8
7
  enforce: "pre",
9
8
  async config(config) {
10
9
  const loaded = await loadConfig.load(config.root ?? process.cwd());
11
- const dataDir = loaded.config.future?.v2ResourceImports === true ? null : resolveDataDir(loaded.root);
12
- const dir = stageAndCompileProjectSchemas(loaded.root, dataDir);
10
+ const dir = stageAndCompileProjectSchemas(loaded.root);
13
11
  if (dir === null) {
14
12
  return;
15
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"settings-worker-env.js","sourceRoot":"","sources":["../../src/vite-plugins/settings-worker-env.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAExF,SAAS,qBAAqB;IAC1B,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC;IAExC,OAAO;QACH,IAAI,EAAE,0BAA0B;QAChC,OAAO,EAAE,KAAK;QAEd,KAAK,CAAC,MAAM,CAAC,MAAkB;YAC3B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtG,MAAM,GAAG,GAAG,6BAA6B,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEhE,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACf,OAAO;YACX,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,GAAG,CAAC;YAEtC,OAAO;gBACH,IAAI,EAAE;oBACF,GAAG,EAAE,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;iBACzF;aACJ,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC","sourcesContent":["import type { UserConfig } from \"vite\";\nimport type { Plugin } from \"vitest/config\";\nimport { createConfigLoader } from \"@gtkx/config/internal\";\nimport { resolveDataDir } from \"../internal/data-dir.js\";\nimport { prependSchemaDir, stageAndCompileProjectSchemas } from \"../settings/schema.js\";\n\nfunction gtkxSettingsWorkerEnv(): Plugin {\n const loadConfig = createConfigLoader();\n\n return {\n name: \"gtkx:settings-worker-env\",\n enforce: \"pre\",\n\n async config(config: UserConfig) {\n const loaded = await loadConfig.load(config.root ?? process.cwd());\n const dataDir = loaded.config.future?.v2ResourceImports === true ? null : resolveDataDir(loaded.root);\n const dir = stageAndCompileProjectSchemas(loaded.root, dataDir);\n\n if (dir === null) {\n return;\n }\n\n process.env.GTKX_DEV_SCHEMA_DIR = dir;\n\n return {\n test: {\n env: { GSETTINGS_SCHEMA_DIR: prependSchemaDir(dir, process.env.GSETTINGS_SCHEMA_DIR) },\n },\n };\n },\n };\n}\n\nexport { gtkxSettingsWorkerEnv };\n"]}
1
+ {"version":3,"file":"settings-worker-env.js","sourceRoot":"","sources":["../../src/vite-plugins/settings-worker-env.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAExF,SAAS,qBAAqB;IAC1B,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC;IAExC,OAAO;QACH,IAAI,EAAE,0BAA0B;QAChC,OAAO,EAAE,KAAK;QAEd,KAAK,CAAC,MAAM,CAAC,MAAkB;YAC3B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACnE,MAAM,GAAG,GAAG,6BAA6B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEvD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACf,OAAO;YACX,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,GAAG,CAAC;YAEtC,OAAO;gBACH,IAAI,EAAE;oBACF,GAAG,EAAE,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;iBACzF;aACJ,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC","sourcesContent":["import type { UserConfig } from \"vite\";\nimport type { Plugin } from \"vitest/config\";\nimport { createConfigLoader } from \"@gtkx/config/internal\";\nimport { prependSchemaDir, stageAndCompileProjectSchemas } from \"../settings/schema.js\";\n\nfunction gtkxSettingsWorkerEnv(): Plugin {\n const loadConfig = createConfigLoader();\n\n return {\n name: \"gtkx:settings-worker-env\",\n enforce: \"pre\",\n\n async config(config: UserConfig) {\n const loaded = await loadConfig.load(config.root ?? process.cwd());\n const dir = stageAndCompileProjectSchemas(loaded.root);\n\n if (dir === null) {\n return;\n }\n\n process.env.GTKX_DEV_SCHEMA_DIR = dir;\n\n return {\n test: {\n env: { GSETTINGS_SCHEMA_DIR: prependSchemaDir(dir, process.env.GSETTINGS_SCHEMA_DIR) },\n },\n };\n },\n };\n}\n\nexport { gtkxSettingsWorkerEnv };\n"]}
@@ -1,6 +1,5 @@
1
- import type { ConfigLoader } from "@gtkx/config";
2
1
  import type { Plugin } from "vite";
3
2
  import type { BuildManifestCollector } from "../internal/build-manifest.js";
4
- declare function gtkxSettings(loadConfig: ConfigLoader, buildManifest?: BuildManifestCollector): Plugin;
3
+ declare function gtkxSettings(buildManifest?: BuildManifestCollector): Plugin;
5
4
  export { gtkxSettings };
6
5
  //# sourceMappingURL=settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAc,MAAM,EAA6C,MAAM,MAAM,CAAC;AAI1F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAkQ5E,iBAAS,YAAY,CAAC,UAAU,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,sBAAsB,GAAG,MAAM,CA6D9F;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,MAAM,EAAiC,MAAM,MAAM,CAAC;AAI9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AA+P5E,iBAAS,YAAY,CAAC,aAAa,CAAC,EAAE,sBAAsB,GAAG,MAAM,CAyDpE;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -2,7 +2,6 @@ import { error, errorMessage, info, sortStrings } from "@gtkx/utils";
2
2
  import { readFileSync } from "node:fs";
3
3
  import { basename, join } from "node:path";
4
4
  import { prependBanner } from "../internal/banner.js";
5
- import { resolveDataDir } from "../internal/data-dir.js";
6
5
  import { createRetainedStagingDir, withStagingDir } from "../internal/staging-dir.js";
7
6
  import { compileSchemas } from "../settings/compile.js";
8
7
  import { parseSchemaXml, SchemaParseError } from "../settings/parser.js";
@@ -43,7 +42,7 @@ const syncSchemaEnv = (state) => {
43
42
  return;
44
43
  }
45
44
  try {
46
- emitSchemaEnv(state.rootDir, state.dataDir, state.isV2ResourceImports);
45
+ emitSchemaEnv(state.rootDir);
47
46
  }
48
47
  catch (error_) {
49
48
  error(`Failed to generate GSettings schema types: ${errorMessage(error_)}`);
@@ -63,11 +62,6 @@ const scheduleSchemaEnvSync = (state) => {
63
62
  syncSchemaEnv(state);
64
63
  }, SCHEMA_ENV_DEBOUNCE_MS);
65
64
  };
66
- const applyUserConfig = async (state, config, loadConfig) => {
67
- const loaded = await loadConfig.load(config.root ?? process.cwd());
68
- state.isV2ResourceImports = loaded.config.future?.v2ResourceImports === true;
69
- state.dataDir = state.isV2ResourceImports ? null : resolveDataDir(loaded.root);
70
- };
71
65
  const applyResolvedConfig = (state, config) => {
72
66
  state.isBuild = config.command === "build";
73
67
  state.rootDir = typeof config.root === "string" ? config.root : null;
@@ -116,6 +110,11 @@ const compileBuildSchemas = (schemaFiles) => withStagingDir("schemas-build", (di
116
110
  compileSchemas(dir);
117
111
  return readFileSync(join(dir, "gschemas.compiled"));
118
112
  });
113
+ const rejectLegacySchemaSpecifier = (source) => {
114
+ if (source.startsWith("#data/")) {
115
+ throw new Error(`${JSON.stringify(source)} uses the legacy #data schema form`);
116
+ }
117
+ };
119
118
  const buildSchemaPaths = (rootDir, schemaFiles) => schemaFiles.map((filePath) => {
120
119
  const rel = projectRelativeSchemaPath(rootDir, filePath);
121
120
  if (rel === null) {
@@ -179,12 +178,10 @@ const watchSchemaFiles = (state, server) => {
179
178
  server.watcher.on("add", refreshSchemaTypes);
180
179
  server.watcher.on("unlink", refreshSchemaTypes);
181
180
  };
182
- function gtkxSettings(loadConfig, buildManifest) {
181
+ function gtkxSettings(buildManifest) {
183
182
  const state = {
184
183
  schemaDir: createRetainedStagingDir(SCHEMA_STAGING_PREFIX),
185
184
  rootDir: null,
186
- dataDir: null,
187
- isV2ResourceImports: false,
188
185
  isBuild: false,
189
186
  schemaEnvTimer: null,
190
187
  trackedSchemas: new Map(),
@@ -193,9 +190,6 @@ function gtkxSettings(loadConfig, buildManifest) {
193
190
  return {
194
191
  name: "gtkx:settings",
195
192
  enforce: "pre",
196
- async config(config) {
197
- await applyUserConfig(state, config, loadConfig);
198
- },
199
193
  configResolved(config) {
200
194
  applyResolvedConfig(state, config);
201
195
  },
@@ -212,6 +206,7 @@ function gtkxSettings(loadConfig, buildManifest) {
212
206
  if (!source.endsWith(SCHEMA_SUFFIX)) {
213
207
  return;
214
208
  }
209
+ rejectLegacySchemaSpecifier(source);
215
210
  return resolveToVirtual(this, { source, importer, options });
216
211
  },
217
212
  load(id) {