@gtkx/cli 1.0.0-rc.1 → 1.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/dist/builder.d.ts +3 -2
  2. package/dist/builder.d.ts.map +1 -1
  3. package/dist/builder.js +2 -1
  4. package/dist/builder.js.map +1 -1
  5. package/dist/cli.d.ts +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +21 -6
  8. package/dist/cli.js.map +1 -1
  9. package/dist/codegen/freshness.d.ts +5 -5
  10. package/dist/codegen/freshness.d.ts.map +1 -1
  11. package/dist/codegen/freshness.js +26 -23
  12. package/dist/codegen/freshness.js.map +1 -1
  13. package/dist/codegen/report.d.ts +2 -1
  14. package/dist/codegen/report.d.ts.map +1 -1
  15. package/dist/codegen/report.js +4 -2
  16. package/dist/codegen/report.js.map +1 -1
  17. package/dist/codegen/run-codegen.d.ts +8 -8
  18. package/dist/codegen/run-codegen.d.ts.map +1 -1
  19. package/dist/codegen/run-codegen.js +72 -43
  20. package/dist/codegen/run-codegen.js.map +1 -1
  21. package/dist/codegen/store-resolver.d.ts +8 -5
  22. package/dist/codegen/store-resolver.d.ts.map +1 -1
  23. package/dist/codegen/store-resolver.js +26 -6
  24. package/dist/codegen/store-resolver.js.map +1 -1
  25. package/dist/commands/build.d.ts +4 -3
  26. package/dist/commands/build.d.ts.map +1 -1
  27. package/dist/commands/build.js +2 -1
  28. package/dist/commands/build.js.map +1 -1
  29. package/dist/commands/codegen.d.ts +2 -1
  30. package/dist/commands/codegen.d.ts.map +1 -1
  31. package/dist/commands/codegen.js +6 -4
  32. package/dist/commands/codegen.js.map +1 -1
  33. package/dist/commands/dev.d.ts +2 -1
  34. package/dist/commands/dev.d.ts.map +1 -1
  35. package/dist/commands/dev.js +2 -1
  36. package/dist/commands/dev.js.map +1 -1
  37. package/dist/commands/docs.d.ts +2 -1
  38. package/dist/commands/docs.d.ts.map +1 -1
  39. package/dist/commands/docs.js +22 -7
  40. package/dist/commands/docs.js.map +1 -1
  41. package/dist/dev/icon-dir.d.ts +2 -1
  42. package/dist/dev/icon-dir.d.ts.map +1 -1
  43. package/dist/dev/icon-dir.js +6 -3
  44. package/dist/dev/icon-dir.js.map +1 -1
  45. package/dist/dev/refresh-tracker.d.ts +5 -4
  46. package/dist/dev/refresh-tracker.d.ts.map +1 -1
  47. package/dist/dev/refresh-tracker.js +6 -5
  48. package/dist/dev/refresh-tracker.js.map +1 -1
  49. package/dist/dev/runner-deps.d.ts +2 -1
  50. package/dist/dev/runner-deps.d.ts.map +1 -1
  51. package/dist/dev/runner-deps.js +20 -4
  52. package/dist/dev/runner-deps.js.map +1 -1
  53. package/dist/dev/runner-main.d.ts +2 -1
  54. package/dist/dev/runner-main.d.ts.map +1 -1
  55. package/dist/dev/runner-main.js +3 -2
  56. package/dist/dev/runner-main.js.map +1 -1
  57. package/dist/dev/runner.d.ts +6 -5
  58. package/dist/dev/runner.d.ts.map +1 -1
  59. package/dist/dev/runner.js +69 -38
  60. package/dist/dev/runner.js.map +1 -1
  61. package/dist/dev/schema-dir.d.ts +2 -1
  62. package/dist/dev/schema-dir.d.ts.map +1 -1
  63. package/dist/dev/schema-dir.js +4 -2
  64. package/dist/dev/schema-dir.js.map +1 -1
  65. package/dist/dev/supervisor.d.ts +7 -6
  66. package/dist/dev/supervisor.d.ts.map +1 -1
  67. package/dist/dev/supervisor.js +107 -67
  68. package/dist/dev/supervisor.js.map +1 -1
  69. package/dist/dev/vite-dev-server.d.ts +3 -3
  70. package/dist/dev/vite-dev-server.d.ts.map +1 -1
  71. package/dist/dev/vite-dev-server.js +2 -1
  72. package/dist/dev/vite-dev-server.js.map +1 -1
  73. package/dist/internal/banner.d.ts +2 -1
  74. package/dist/internal/banner.d.ts.map +1 -1
  75. package/dist/internal/banner.js +2 -1
  76. package/dist/internal/banner.js.map +1 -1
  77. package/dist/internal/data-dir.d.ts +3 -2
  78. package/dist/internal/data-dir.d.ts.map +1 -1
  79. package/dist/internal/data-dir.js +29 -14
  80. package/dist/internal/data-dir.js.map +1 -1
  81. package/dist/internal/entry-arg.d.ts +5 -4
  82. package/dist/internal/entry-arg.d.ts.map +1 -1
  83. package/dist/internal/entry-arg.js +10 -7
  84. package/dist/internal/entry-arg.js.map +1 -1
  85. package/dist/internal/errors.d.ts +3 -2
  86. package/dist/internal/errors.d.ts.map +1 -1
  87. package/dist/internal/errors.js +7 -5
  88. package/dist/internal/errors.js.map +1 -1
  89. package/dist/internal/list-files.d.ts +3 -2
  90. package/dist/internal/list-files.d.ts.map +1 -1
  91. package/dist/internal/list-files.js +5 -3
  92. package/dist/internal/list-files.js.map +1 -1
  93. package/dist/internal/resolve-cli-tool.d.ts +2 -1
  94. package/dist/internal/resolve-cli-tool.d.ts.map +1 -1
  95. package/dist/internal/resolve-cli-tool.js +17 -10
  96. package/dist/internal/resolve-cli-tool.js.map +1 -1
  97. package/dist/internal/staging-dir.d.ts +3 -2
  98. package/dist/internal/staging-dir.d.ts.map +1 -1
  99. package/dist/internal/staging-dir.js +3 -2
  100. package/dist/internal/staging-dir.js.map +1 -1
  101. package/dist/internal/xdg-data-dirs.d.ts +2 -1
  102. package/dist/internal/xdg-data-dirs.d.ts.map +1 -1
  103. package/dist/internal/xdg-data-dirs.js +4 -2
  104. package/dist/internal/xdg-data-dirs.js.map +1 -1
  105. package/dist/mcp/client.d.ts +9 -4
  106. package/dist/mcp/client.d.ts.map +1 -1
  107. package/dist/mcp/client.js +106 -81
  108. package/dist/mcp/client.js.map +1 -1
  109. package/dist/mcp/handlers.d.ts +3 -2
  110. package/dist/mcp/handlers.d.ts.map +1 -1
  111. package/dist/mcp/handlers.js +89 -61
  112. package/dist/mcp/handlers.js.map +1 -1
  113. package/dist/mcp/index.d.ts +2 -2
  114. package/dist/mcp/index.d.ts.map +1 -1
  115. package/dist/mcp/index.js +30 -13
  116. package/dist/mcp/index.js.map +1 -1
  117. package/dist/mcp/serialize-widget.d.ts +3 -3
  118. package/dist/mcp/serialize-widget.d.ts.map +1 -1
  119. package/dist/mcp/serialize-widget.js +9 -6
  120. package/dist/mcp/serialize-widget.js.map +1 -1
  121. package/dist/mcp/testing-loader.d.ts +3 -4
  122. package/dist/mcp/testing-loader.d.ts.map +1 -1
  123. package/dist/mcp/testing-loader.js +43 -21
  124. package/dist/mcp/testing-loader.js.map +1 -1
  125. package/dist/mcp/widget-registry.d.ts +3 -2
  126. package/dist/mcp/widget-registry.d.ts.map +1 -1
  127. package/dist/mcp/widget-registry.js +4 -3
  128. package/dist/mcp/widget-registry.js.map +1 -1
  129. package/dist/refresh-globals.d.ts +2 -0
  130. package/dist/refresh-globals.d.ts.map +1 -0
  131. package/dist/refresh-globals.js +8 -0
  132. package/dist/refresh-globals.js.map +1 -0
  133. package/dist/refresh-runtime.d.ts +5 -11
  134. package/dist/refresh-runtime.d.ts.map +1 -1
  135. package/dist/refresh-runtime.js +16 -14
  136. package/dist/refresh-runtime.js.map +1 -1
  137. package/dist/settings/compile.d.ts +2 -1
  138. package/dist/settings/compile.d.ts.map +1 -1
  139. package/dist/settings/compile.js +6 -4
  140. package/dist/settings/compile.js.map +1 -1
  141. package/dist/settings/parser.d.ts +6 -5
  142. package/dist/settings/parser.d.ts.map +1 -1
  143. package/dist/settings/parser.js +26 -22
  144. package/dist/settings/parser.js.map +1 -1
  145. package/dist/settings/render.d.ts +3 -2
  146. package/dist/settings/render.d.ts.map +1 -1
  147. package/dist/settings/render.js +38 -64
  148. package/dist/settings/render.js.map +1 -1
  149. package/dist/settings/schema.d.ts +8 -8
  150. package/dist/settings/schema.d.ts.map +1 -1
  151. package/dist/settings/schema.js +61 -43
  152. package/dist/settings/schema.js.map +1 -1
  153. package/dist/vite-plugins/asset-extensions.d.ts +4 -3
  154. package/dist/vite-plugins/asset-extensions.d.ts.map +1 -1
  155. package/dist/vite-plugins/asset-extensions.js +4 -3
  156. package/dist/vite-plugins/asset-extensions.js.map +1 -1
  157. package/dist/vite-plugins/built-url.d.ts +2 -1
  158. package/dist/vite-plugins/built-url.d.ts.map +1 -1
  159. package/dist/vite-plugins/built-url.js +19 -13
  160. package/dist/vite-plugins/built-url.js.map +1 -1
  161. package/dist/vite-plugins/css.d.ts +2 -1
  162. package/dist/vite-plugins/css.d.ts.map +1 -1
  163. package/dist/vite-plugins/css.js +23 -15
  164. package/dist/vite-plugins/css.js.map +1 -1
  165. package/dist/vite-plugins/fast-refresh/refresh-filter.d.ts +5 -4
  166. package/dist/vite-plugins/fast-refresh/refresh-filter.d.ts.map +1 -1
  167. package/dist/vite-plugins/fast-refresh/refresh-filter.js +11 -7
  168. package/dist/vite-plugins/fast-refresh/refresh-filter.js.map +1 -1
  169. package/dist/vite-plugins/fast-refresh/swc-refresh.d.ts +4 -3
  170. package/dist/vite-plugins/fast-refresh/swc-refresh.d.ts.map +1 -1
  171. package/dist/vite-plugins/fast-refresh/swc-refresh.js +45 -41
  172. package/dist/vite-plugins/fast-refresh/swc-refresh.js.map +1 -1
  173. package/dist/vite-plugins/icons.d.ts +2 -1
  174. package/dist/vite-plugins/icons.d.ts.map +1 -1
  175. package/dist/vite-plugins/icons.js +24 -20
  176. package/dist/vite-plugins/icons.js.map +1 -1
  177. package/dist/vite-plugins/index.d.ts +2 -1
  178. package/dist/vite-plugins/index.d.ts.map +1 -1
  179. package/dist/vite-plugins/index.js +3 -2
  180. package/dist/vite-plugins/index.js.map +1 -1
  181. package/dist/vite-plugins/native.d.ts +2 -1
  182. package/dist/vite-plugins/native.d.ts.map +1 -1
  183. package/dist/vite-plugins/native.js +6 -4
  184. package/dist/vite-plugins/native.js.map +1 -1
  185. package/dist/vite-plugins/react-compiler.d.ts +3 -2
  186. package/dist/vite-plugins/react-compiler.d.ts.map +1 -1
  187. package/dist/vite-plugins/react-compiler.js +26 -20
  188. package/dist/vite-plugins/react-compiler.js.map +1 -1
  189. package/dist/vite-plugins/react-dom-prebundle.d.ts +2 -1
  190. package/dist/vite-plugins/react-dom-prebundle.d.ts.map +1 -1
  191. package/dist/vite-plugins/react-dom-prebundle.js +2 -1
  192. package/dist/vite-plugins/react-dom-prebundle.js.map +1 -1
  193. package/dist/vite-plugins/resource-init-module.d.ts +2 -1
  194. package/dist/vite-plugins/resource-init-module.d.ts.map +1 -1
  195. package/dist/vite-plugins/resource-init-module.js +39 -38
  196. package/dist/vite-plugins/resource-init-module.js.map +1 -1
  197. package/dist/vite-plugins/resource-shared.d.ts +7 -5
  198. package/dist/vite-plugins/resource-shared.d.ts.map +1 -1
  199. package/dist/vite-plugins/resource-shared.js +17 -10
  200. package/dist/vite-plugins/resource-shared.js.map +1 -1
  201. package/dist/vite-plugins/resources.d.ts +3 -2
  202. package/dist/vite-plugins/resources.d.ts.map +1 -1
  203. package/dist/vite-plugins/resources.js +94 -54
  204. package/dist/vite-plugins/resources.js.map +1 -1
  205. package/dist/vite-plugins/settings-worker-env.d.ts +2 -1
  206. package/dist/vite-plugins/settings-worker-env.d.ts.map +1 -1
  207. package/dist/vite-plugins/settings-worker-env.js +4 -2
  208. package/dist/vite-plugins/settings-worker-env.js.map +1 -1
  209. package/dist/vite-plugins/settings.d.ts +2 -1
  210. package/dist/vite-plugins/settings.d.ts.map +1 -1
  211. package/dist/vite-plugins/settings.js +56 -32
  212. package/dist/vite-plugins/settings.js.map +1 -1
  213. package/dist/vite-plugins/strip-query.d.ts +3 -0
  214. package/dist/vite-plugins/strip-query.d.ts.map +1 -0
  215. package/dist/vite-plugins/strip-query.js +6 -0
  216. package/dist/vite-plugins/strip-query.js.map +1 -0
  217. package/dist/vite-plugins/undeclared-library.d.ts +2 -1
  218. package/dist/vite-plugins/undeclared-library.d.ts.map +1 -1
  219. package/dist/vite-plugins/undeclared-library.js +8 -5
  220. package/dist/vite-plugins/undeclared-library.js.map +1 -1
  221. package/dist/vite-plugins/virtual-module.d.ts +2 -2
  222. package/dist/vite-plugins/virtual-module.d.ts.map +1 -1
  223. package/dist/vite-plugins/virtual-module.js +5 -3
  224. package/dist/vite-plugins/virtual-module.js.map +1 -1
  225. package/dist/vitest-plugin.d.ts.map +1 -1
  226. package/dist/vitest-plugin.js.map +1 -1
  227. package/env.d.ts +21 -61
  228. package/package.json +12 -14
  229. package/src/babel-modules.d.ts +0 -2
  230. package/src/builder.ts +7 -6
  231. package/src/cli.ts +26 -6
  232. package/src/codegen/freshness.ts +38 -25
  233. package/src/codegen/report.ts +10 -2
  234. package/src/codegen/run-codegen.ts +135 -60
  235. package/src/codegen/store-resolver.ts +56 -15
  236. package/src/commands/build.ts +3 -2
  237. package/src/commands/codegen.ts +9 -4
  238. package/src/commands/dev.ts +3 -4
  239. package/src/commands/docs.ts +36 -7
  240. package/src/dev/icon-dir.ts +13 -3
  241. package/src/dev/refresh-tracker.ts +12 -8
  242. package/src/dev/runner-deps.ts +30 -7
  243. package/src/dev/runner-main.ts +4 -3
  244. package/src/dev/runner.ts +100 -41
  245. package/src/dev/schema-dir.ts +7 -2
  246. package/src/dev/supervisor.ts +169 -71
  247. package/src/dev/vite-dev-server.ts +4 -2
  248. package/src/internal/banner.ts +5 -1
  249. package/src/internal/data-dir.ts +47 -16
  250. package/src/internal/entry-arg.ts +16 -8
  251. package/src/internal/errors.ts +15 -7
  252. package/src/internal/list-files.ts +10 -4
  253. package/src/internal/resolve-cli-tool.ts +28 -12
  254. package/src/internal/staging-dir.ts +5 -2
  255. package/src/internal/xdg-data-dirs.ts +8 -2
  256. package/src/mcp/client.ts +143 -85
  257. package/src/mcp/handlers.ts +126 -69
  258. package/src/mcp/index.ts +38 -14
  259. package/src/mcp/serialize-widget.ts +15 -8
  260. package/src/mcp/testing-loader.ts +64 -23
  261. package/src/mcp/widget-registry.ts +11 -5
  262. package/src/refresh-globals.ts +10 -0
  263. package/src/refresh-runtime.ts +20 -16
  264. package/src/settings/compile.ts +7 -4
  265. package/src/settings/parser.ts +69 -30
  266. package/src/settings/render.ts +66 -66
  267. package/src/settings/schema.ts +100 -46
  268. package/src/vite-plugins/asset-extensions.ts +4 -3
  269. package/src/vite-plugins/built-url.ts +30 -15
  270. package/src/vite-plugins/css.ts +35 -20
  271. package/src/vite-plugins/fast-refresh/refresh-filter.ts +18 -10
  272. package/src/vite-plugins/fast-refresh/swc-refresh.ts +60 -47
  273. package/src/vite-plugins/icons.ts +40 -24
  274. package/src/vite-plugins/index.ts +6 -3
  275. package/src/vite-plugins/native.ts +14 -5
  276. package/src/vite-plugins/react-compiler.ts +44 -30
  277. package/src/vite-plugins/react-dom-prebundle.ts +4 -1
  278. package/src/vite-plugins/resource-init-module.ts +41 -38
  279. package/src/vite-plugins/resource-shared.ts +27 -14
  280. package/src/vite-plugins/resources.ts +153 -59
  281. package/src/vite-plugins/settings-worker-env.ts +7 -2
  282. package/src/vite-plugins/settings.ts +107 -42
  283. package/src/vite-plugins/strip-query.ts +7 -0
  284. package/src/vite-plugins/undeclared-library.ts +21 -12
  285. package/src/vite-plugins/virtual-module.ts +9 -2
  286. package/src/vitest-plugin.ts +1 -2
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/settings/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from \"node:crypto\";\nimport { copyFileSync, type Dirent, mkdirSync, mkdtempSync, readdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { tmpdir } from \"node:os\";\nimport { dirname, join, relative } from \"node:path\";\nimport { sortStrings, warn } from \"@gtkx/utils\";\nimport { DATA_IMPORT_PREFIX } from \"../internal/data-dir.js\";\nimport { removeTempDir } from \"../internal/staging-dir.js\";\nimport { compileSchemas } from \"./compile.js\";\nimport { type ParsedSchemaFile, parseSchemaXml, SchemaParseError } from \"./parser.js\";\nimport { renderEnvModule } from \"./render.js\";\n\nexport const SCHEMA_SUFFIX = \".gschema.xml\";\n\nexport const prependSchemaDir = (dir: string, existing: string | undefined): string => {\n if (existing === undefined || existing.length === 0) return dir;\n if (existing.split(\":\").includes(dir)) return existing;\n return `${dir}:${existing}`;\n};\n\nconst STAGED_NAME_LENGTH = 16;\n\nconst stagedSchemaName = (filePath: string): string =>\n `${createHash(\"sha1\").update(filePath).digest(\"hex\").slice(0, STAGED_NAME_LENGTH)}${SCHEMA_SUFFIX}`;\n\nexport const stageSchema = (dir: string, filePath: string): void => {\n copyFileSync(filePath, join(dir, stagedSchemaName(filePath)));\n};\n\nconst toForwardSlashes = (value: string): string => value.replaceAll(/[/\\\\]/g, \"/\");\n\nconst moduleSpecifierFor = (dataDirAbs: string, filePath: string): string =>\n `${DATA_IMPORT_PREFIX}/${toForwardSlashes(relative(dataDirAbs, filePath))}`;\n\ntype SchemaEnvResult = {\n path: string;\n written: boolean;\n};\n\nconst readVisibleEntries = (dir: string): Dirent[] => {\n try {\n return readdirSync(dir, { withFileTypes: true }).filter((entry) => !entry.name.startsWith(\".\"));\n } catch {\n return [];\n }\n};\n\nconst isSchemaFile = (entry: Dirent): boolean => entry.isFile() && entry.name.endsWith(SCHEMA_SUFFIX);\n\nexport const findSchemaFiles = (dataDir: string): string[] => {\n const found: string[] = [];\n const walk = (dir: string): void => {\n for (const entry of readVisibleEntries(dir)) {\n const full = join(dir, entry.name);\n if (entry.isDirectory()) {\n walk(full);\n } else if (isSchemaFile(entry)) {\n found.push(full);\n }\n }\n };\n walk(dataDir);\n return sortStrings(found);\n};\n\nexport const stageAndCompileProjectSchemas = (root: string, dataDir: string | null): string | null => {\n if (dataDir === null) return null;\n const schemaFiles = findSchemaFiles(join(root, dataDir));\n if (schemaFiles.length === 0) return null;\n\n const dir = mkdtempSync(join(tmpdir(), \"gtkx-schemas-\"));\n for (const filePath of schemaFiles) stageSchema(dir, filePath);\n compileSchemas(dir);\n process.once(\"exit\", () => removeTempDir(dir));\n\n return dir;\n};\n\nexport const schemaEnvPath = (rootDir: string): string => join(rootDir, \"node_modules\", \".gtkx\", \"env.d.ts\");\n\nconst parseProjectSchemas = (schemaFiles: string[], dataDirAbs: string): ParsedSchemaFile[] => {\n const parsed: ParsedSchemaFile[] = [];\n for (const filePath of schemaFiles) {\n const specifier = moduleSpecifierFor(dataDirAbs, filePath);\n try {\n parsed.push(parseSchemaXml(readFileSync(filePath, \"utf-8\"), specifier));\n } catch (error) {\n if (!(error instanceof SchemaParseError)) throw error;\n warn(`Skipping ${filePath} in schema type generation: ${error.message}`);\n }\n }\n return parsed;\n};\n\nconst writeIfChanged = (path: string, content: string): boolean => {\n let existing: string | null = null;\n try {\n existing = readFileSync(path, \"utf-8\");\n } catch {\n existing = null;\n }\n if (existing === content) return false;\n mkdirSync(dirname(path), { recursive: true });\n writeFileSync(path, content);\n return true;\n};\n\nexport const emitSchemaEnv = (rootDir: string, dataDir: string | null): SchemaEnvResult => {\n const dataDirAbs = dataDir === null ? null : join(rootDir, dataDir);\n const schemaFiles = dataDirAbs === null ? [] : findSchemaFiles(dataDirAbs);\n const parsed = dataDirAbs === null ? [] : parseProjectSchemas(schemaFiles, dataDirAbs);\n const content = renderEnvModule(parsed);\n const path = schemaEnvPath(rootDir);\n const written = writeIfChanged(path, content);\n return { path, written };\n};\n"]}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/settings/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { sortStrings, warn } from \"@gtkx/utils\";\nimport { createHash } from \"node:crypto\";\nimport { copyFileSync, type Dirent, mkdirSync, mkdtempSync, readdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { tmpdir } from \"node:os\";\nimport { dirname, join, relative } from \"node:path\";\nimport { DATA_IMPORT_PREFIX } from \"../internal/data-dir.js\";\nimport { removeTempDir } from \"../internal/staging-dir.js\";\nimport { compileSchemas } from \"./compile.js\";\nimport { type ParsedSchemaFile, parseSchemaXml, SchemaParseError } from \"./parser.js\";\nimport { renderEnvModule } from \"./render.js\";\n\ntype SchemaEnvResult = {\n path: string;\n written: boolean;\n};\n\nconst SCHEMA_SUFFIX = \".gschema.xml\";\nconst STAGED_NAME_LENGTH = 16;\n\nconst prependSchemaDir = (dir: string, existing: string | undefined): string => {\n if (existing === undefined || existing.length === 0) {\n return dir;\n }\n\n if (existing.split(\":\").includes(dir)) {\n return existing;\n }\n\n return `${dir}:${existing}`;\n};\n\nconst stagedSchemaName = (filePath: string): string =>\n `${createHash(\"sha1\").update(filePath).digest(\"hex\").slice(0, STAGED_NAME_LENGTH)}${SCHEMA_SUFFIX}`;\n\nconst stageSchema = (dir: string, filePath: string): void => {\n copyFileSync(filePath, join(dir, stagedSchemaName(filePath)));\n};\n\nconst toForwardSlashes = (value: string): string => value.replaceAll(/[/\\\\]/g, \"/\");\n\nconst getModuleSpecifier = (dataDirAbs: string, filePath: string): string =>\n `${DATA_IMPORT_PREFIX}/${toForwardSlashes(relative(dataDirAbs, filePath))}`;\n\nconst readVisibleEntries = (dir: string): Dirent[] => {\n try {\n return readdirSync(dir, { withFileTypes: true }).filter((entry) => !entry.name.startsWith(\".\"));\n } catch {\n return [];\n }\n};\n\nconst isSchemaFile = (entry: Dirent): boolean => entry.isFile() && entry.name.endsWith(SCHEMA_SUFFIX);\n\nconst collectSchemaFiles = (dir: string, found: string[]): void => {\n for (const entry of readVisibleEntries(dir)) {\n const full = join(dir, entry.name);\n\n if (entry.isDirectory()) {\n collectSchemaFiles(full, found);\n } else if (isSchemaFile(entry)) {\n found.push(full);\n }\n }\n};\n\nconst findSchemaFiles = (dataDir: string): string[] => {\n const found: string[] = [];\n collectSchemaFiles(dataDir, found);\n\n return sortStrings(found);\n};\n\nconst stageAndCompileProjectSchemas = (root: string, dataDir: string | null): string | null => {\n if (dataDir === null) {\n return null;\n }\n\n const schemaFiles = findSchemaFiles(join(root, dataDir));\n\n if (schemaFiles.length === 0) {\n return null;\n }\n\n const dir = mkdtempSync(join(tmpdir(), \"gtkx-schemas-\"));\n\n for (const filePath of schemaFiles) {\n stageSchema(dir, filePath);\n }\n\n compileSchemas(dir);\n\n process.once(\"exit\", () => {\n removeTempDir(dir);\n });\n\n return dir;\n};\n\nconst schemaEnvPath = (rootDir: string): string => join(rootDir, \"node_modules\", \".gtkx\", \"env.d.ts\");\n\nconst parseSchemaFileOrWarn = (filePath: string, dataDirAbs: string): ParsedSchemaFile | null => {\n const specifier = getModuleSpecifier(dataDirAbs, filePath);\n\n try {\n return parseSchemaXml(readFileSync(filePath, \"utf8\"), specifier);\n } catch (error) {\n if (!(error instanceof SchemaParseError)) {\n throw error;\n }\n\n warn(`Skipping ${filePath} in schema type generation: ${error.message}`);\n\n return null;\n }\n};\n\nconst parseProjectSchemas = (schemaFiles: string[], dataDirAbs: string): ParsedSchemaFile[] => {\n const parsed: ParsedSchemaFile[] = [];\n\n for (const filePath of schemaFiles) {\n const result = parseSchemaFileOrWarn(filePath, dataDirAbs);\n\n if (result !== null) {\n parsed.push(result);\n }\n }\n\n return parsed;\n};\n\nconst readFileOrNull = (path: string): string | null => {\n try {\n return readFileSync(path, \"utf8\");\n } catch {\n return null;\n }\n};\n\nconst didWriteChanges = (path: string, content: string): boolean => {\n if (readFileOrNull(path) === content) {\n return false;\n }\n\n mkdirSync(dirname(path), { recursive: true });\n writeFileSync(path, content);\n\n return true;\n};\n\nconst emitSchemaEnv = (rootDir: string, dataDir: string | null): SchemaEnvResult => {\n const dataDirAbs = dataDir === null ? null : join(rootDir, dataDir);\n const schemaFiles = dataDirAbs === null ? [] : findSchemaFiles(dataDirAbs);\n const parsed = dataDirAbs === null ? [] : parseProjectSchemas(schemaFiles, dataDirAbs);\n const content = renderEnvModule(parsed);\n const path = schemaEnvPath(rootDir);\n const isWritten = didWriteChanges(path, content);\n\n return { path, written: isWritten };\n};\n\nexport {\n SCHEMA_SUFFIX,\n prependSchemaDir,\n stageSchema,\n findSchemaFiles,\n stageAndCompileProjectSchemas,\n schemaEnvPath,\n emitSchemaEnv,\n};\n"]}
@@ -1,4 +1,5 @@
1
- export declare const ASSET_EXTENSIONS: string[];
2
- export declare const ASSET_RE: RegExp;
3
- export declare const ASSET_PATH_RE: RegExp;
1
+ declare const ASSET_EXTENSIONS: string[];
2
+ declare const ASSET_RE: RegExp;
3
+ declare const ASSET_PATH_RE: RegExp;
4
+ export { ASSET_EXTENSIONS, ASSET_RE, ASSET_PATH_RE };
4
5
  //# sourceMappingURL=asset-extensions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"asset-extensions.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/asset-extensions.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,UAuB5B,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAoE,CAAC;AAE1F,eAAO,MAAM,aAAa,QAA6E,CAAC"}
1
+ {"version":3,"file":"asset-extensions.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/asset-extensions.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,gBAAgB,UAuBrB,CAAC;AAEF,QAAA,MAAM,QAAQ,QAAoE,CAAC;AACnF,QAAA,MAAM,aAAa,QAA6E,CAAC;AAEjG,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- export const ASSET_EXTENSIONS = [
1
+ const ASSET_EXTENSIONS = [
2
2
  "png",
3
3
  "jpg",
4
4
  "jpeg",
@@ -22,6 +22,7 @@ export const ASSET_EXTENSIONS = [
22
22
  "data",
23
23
  "gpa",
24
24
  ];
25
- export const ASSET_RE = new RegExp(String.raw `\.(?:${ASSET_EXTENSIONS.join("|")})$`, "i");
26
- export const ASSET_PATH_RE = new RegExp(String.raw `\.(?:${ASSET_EXTENSIONS.join("|")})(?:\?.*)?$`, "i");
25
+ const ASSET_RE = new RegExp(String.raw `\.(?:${ASSET_EXTENSIONS.join("|")})$`, "i");
26
+ const ASSET_PATH_RE = new RegExp(String.raw `\.(?:${ASSET_EXTENSIONS.join("|")})(?:\?.*)?$`, "i");
27
+ export { ASSET_EXTENSIONS, ASSET_RE, ASSET_PATH_RE };
27
28
  //# sourceMappingURL=asset-extensions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"asset-extensions.js","sourceRoot":"","sources":["../../src/vite-plugins/asset-extensions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;CACR,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,QAAQ,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAE1F,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,QAAQ,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC","sourcesContent":["export const ASSET_EXTENSIONS = [\n \"png\",\n \"jpg\",\n \"jpeg\",\n \"gif\",\n \"svg\",\n \"webp\",\n \"webm\",\n \"mp4\",\n \"ogg\",\n \"mp3\",\n \"wav\",\n \"flac\",\n \"aac\",\n \"woff\",\n \"woff2\",\n \"eot\",\n \"ttf\",\n \"otf\",\n \"ico\",\n \"avif\",\n \"data\",\n \"gpa\",\n];\n\nexport const ASSET_RE = new RegExp(String.raw`\\.(?:${ASSET_EXTENSIONS.join(\"|\")})$`, \"i\");\n\nexport const ASSET_PATH_RE = new RegExp(String.raw`\\.(?:${ASSET_EXTENSIONS.join(\"|\")})(?:\\?.*)?$`, \"i\");\n"]}
1
+ {"version":3,"file":"asset-extensions.js","sourceRoot":"","sources":["../../src/vite-plugins/asset-extensions.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG;IACrB,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;CACR,CAAC;AAEF,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,QAAQ,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACnF,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,QAAQ,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AAEjG,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC","sourcesContent":["const ASSET_EXTENSIONS = [\n \"png\",\n \"jpg\",\n \"jpeg\",\n \"gif\",\n \"svg\",\n \"webp\",\n \"webm\",\n \"mp4\",\n \"ogg\",\n \"mp3\",\n \"wav\",\n \"flac\",\n \"aac\",\n \"woff\",\n \"woff2\",\n \"eot\",\n \"ttf\",\n \"otf\",\n \"ico\",\n \"avif\",\n \"data\",\n \"gpa\",\n];\n\nconst ASSET_RE = new RegExp(String.raw`\\.(?:${ASSET_EXTENSIONS.join(\"|\")})$`, \"i\");\nconst ASSET_PATH_RE = new RegExp(String.raw`\\.(?:${ASSET_EXTENSIONS.join(\"|\")})(?:\\?.*)?$`, \"i\");\n\nexport { ASSET_EXTENSIONS, ASSET_RE, ASSET_PATH_RE };\n"]}
@@ -1,3 +1,4 @@
1
1
  import type { Plugin } from "vite";
2
- export declare function gtkxBuiltUrl(assetBase?: string): Plugin;
2
+ declare function gtkxBuiltUrl(assetBase?: string): Plugin;
3
+ export { gtkxBuiltUrl };
3
4
  //# sourceMappingURL=built-url.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"built-url.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/built-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,wBAAgB,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAgCvD"}
1
+ {"version":3,"file":"built-url.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/built-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AA4BnC,iBAAS,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAmBhD;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -1,4 +1,20 @@
1
- export function gtkxBuiltUrl(assetBase) {
1
+ const renderAssetUrl = (filename, type, assetBase) => {
2
+ if (type !== "asset") {
3
+ return undefined;
4
+ }
5
+ if (assetBase) {
6
+ const executableDir = "require(\"path\").dirname(process.execPath)";
7
+ return {
8
+ runtime: `require("path").join(${executableDir},` +
9
+ `${JSON.stringify(assetBase)},${JSON.stringify(filename)})`,
10
+ };
11
+ }
12
+ const filenameLiteral = JSON.stringify(`./${filename}`);
13
+ return {
14
+ runtime: `new URL(${filenameLiteral}, import.meta.url).pathname`,
15
+ };
16
+ };
17
+ function gtkxBuiltUrl(assetBase) {
2
18
  return {
3
19
  name: "gtkx:built-url",
4
20
  apply: "build",
@@ -9,22 +25,12 @@ export function gtkxBuiltUrl(assetBase) {
9
25
  return {
10
26
  experimental: {
11
27
  renderBuiltUrl(filename, { type }) {
12
- if (type !== "asset") {
13
- return;
14
- }
15
- if (assetBase) {
16
- return {
17
- runtime: `require("path").join(require("path").dirname(process.execPath),${JSON.stringify(assetBase)},${JSON.stringify(filename)})`,
18
- };
19
- }
20
- const filenameLiteral = JSON.stringify(`./${filename}`);
21
- return {
22
- runtime: `new URL(${filenameLiteral}, import.meta.url).pathname`,
23
- };
28
+ return renderAssetUrl(filename, type, assetBase);
24
29
  },
25
30
  },
26
31
  };
27
32
  },
28
33
  };
29
34
  }
35
+ export { gtkxBuiltUrl };
30
36
  //# sourceMappingURL=built-url.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"built-url.js","sourceRoot":"","sources":["../../src/vite-plugins/built-url.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,SAAkB;IAC3C,OAAO;QACH,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,OAAO;QAEd,MAAM,CAAC,UAAU;YACb,IAAI,UAAU,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC;gBAC1C,OAAO;YACX,CAAC;YAED,OAAO;gBACH,YAAY,EAAE;oBACV,cAAc,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE;wBAC7B,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;4BACnB,OAAO;wBACX,CAAC;wBAED,IAAI,SAAS,EAAE,CAAC;4BACZ,OAAO;gCACH,OAAO,EAAE,kEAAkE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG;6BACtI,CAAC;wBACN,CAAC;wBAED,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;wBACxD,OAAO;4BACH,OAAO,EAAE,WAAW,eAAe,6BAA6B;yBACnE,CAAC;oBACN,CAAC;iBACJ;aACJ,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC","sourcesContent":["import type { Plugin } from \"vite\";\n\nexport function gtkxBuiltUrl(assetBase?: string): Plugin {\n return {\n name: \"gtkx:built-url\",\n apply: \"build\",\n\n config(userConfig) {\n if (userConfig.experimental?.renderBuiltUrl) {\n return;\n }\n\n return {\n experimental: {\n renderBuiltUrl(filename, { type }) {\n if (type !== \"asset\") {\n return;\n }\n\n if (assetBase) {\n return {\n runtime: `require(\"path\").join(require(\"path\").dirname(process.execPath),${JSON.stringify(assetBase)},${JSON.stringify(filename)})`,\n };\n }\n\n const filenameLiteral = JSON.stringify(`./${filename}`);\n return {\n runtime: `new URL(${filenameLiteral}, import.meta.url).pathname`,\n };\n },\n },\n };\n },\n };\n}\n"]}
1
+ {"version":3,"file":"built-url.js","sourceRoot":"","sources":["../../src/vite-plugins/built-url.ts"],"names":[],"mappings":"AAEA,MAAM,cAAc,GAAG,CACnB,QAAgB,EAChB,IAAY,EACZ,SAA6B,EACE,EAAE;IACjC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACZ,MAAM,aAAa,GAAG,6CAA6C,CAAC;QAEpE,OAAO;YACH,OAAO,EACH,wBAAwB,aAAa,GAAG;gBACxC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG;SAClE,CAAC;IACN,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;IAExD,OAAO;QACH,OAAO,EAAE,WAAW,eAAe,6BAA6B;KACnE,CAAC;AACN,CAAC,CAAC;AAEF,SAAS,YAAY,CAAC,SAAkB;IACpC,OAAO;QACH,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,OAAO;QAEd,MAAM,CAAC,UAAU;YACb,IAAI,UAAU,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC;gBAC1C,OAAO;YACX,CAAC;YAED,OAAO;gBACH,YAAY,EAAE;oBACV,cAAc,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE;wBAC7B,OAAO,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;oBACrD,CAAC;iBACJ;aACJ,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC","sourcesContent":["import type { Plugin } from \"vite\";\n\nconst renderAssetUrl = (\n filename: string,\n type: string,\n assetBase: string | undefined,\n): { runtime: string } | undefined => {\n if (type !== \"asset\") {\n return undefined;\n }\n\n if (assetBase) {\n const executableDir = \"require(\\\"path\\\").dirname(process.execPath)\";\n\n return {\n runtime:\n `require(\"path\").join(${executableDir},` +\n `${JSON.stringify(assetBase)},${JSON.stringify(filename)})`,\n };\n }\n\n const filenameLiteral = JSON.stringify(`./${filename}`);\n\n return {\n runtime: `new URL(${filenameLiteral}, import.meta.url).pathname`,\n };\n};\n\nfunction gtkxBuiltUrl(assetBase?: string): Plugin {\n return {\n name: \"gtkx:built-url\",\n apply: \"build\",\n\n config(userConfig) {\n if (userConfig.experimental?.renderBuiltUrl) {\n return;\n }\n\n return {\n experimental: {\n renderBuiltUrl(filename, { type }) {\n return renderAssetUrl(filename, type, assetBase);\n },\n },\n };\n },\n };\n}\n\nexport { gtkxBuiltUrl };\n"]}
@@ -1,3 +1,4 @@
1
1
  import type { Plugin } from "vite";
2
- export declare function gtkxCss(): Plugin;
2
+ declare function gtkxCss(): Plugin;
3
+ export { gtkxCss };
3
4
  //# sourceMappingURL=css.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"css.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/css.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAQnC,wBAAgB,OAAO,IAAI,MAAM,CA4BhC"}
1
+ {"version":3,"file":"css.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/css.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAqCnC,iBAAS,OAAO,IAAI,MAAM,CAazB;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -4,27 +4,35 @@ const CSS_RE = /\.css$/i;
4
4
  const INJECT_SUFFIX = "?inject";
5
5
  const VIRTUAL_PREFIX = "\0gtkx-css:";
6
6
  const { isVirtual, fromVirtualId, resolveToVirtual } = createVirtualNamespace(VIRTUAL_PREFIX);
7
- export function gtkxCss() {
7
+ const resolveCssId = async (ctx, request) => {
8
+ if (!CSS_RE.test(request.source)) {
9
+ return;
10
+ }
11
+ const virtualId = await resolveToVirtual(ctx, request);
12
+ if (virtualId === undefined) {
13
+ return;
14
+ }
15
+ return virtualId + INJECT_SUFFIX;
16
+ };
17
+ const loadInjectedCss = (id) => {
18
+ if (!isVirtual(id) || !id.endsWith(INJECT_SUFFIX)) {
19
+ return;
20
+ }
21
+ const filePath = fromVirtualId(id.slice(0, -INJECT_SUFFIX.length));
22
+ const content = readFileSync(filePath, "utf8");
23
+ return ["import { injectGlobal } from \"@gtkx/css\";", `injectGlobal(${JSON.stringify(content)});`].join("\n");
24
+ };
25
+ function gtkxCss() {
8
26
  return {
9
27
  name: "gtkx:css",
10
28
  enforce: "pre",
11
- async resolveId(source, importer, options) {
12
- if (!CSS_RE.test(source)) {
13
- return;
14
- }
15
- const virtualId = await resolveToVirtual(this, { source, importer, options });
16
- if (virtualId === undefined)
17
- return;
18
- return virtualId + INJECT_SUFFIX;
29
+ resolveId(source, importer, options) {
30
+ return resolveCssId(this, { source, importer, options });
19
31
  },
20
32
  load(id) {
21
- if (isVirtual(id) && id.endsWith(INJECT_SUFFIX)) {
22
- const filePath = fromVirtualId(id.slice(0, -INJECT_SUFFIX.length));
23
- const content = readFileSync(filePath, "utf-8");
24
- return [`import { injectGlobal } from "@gtkx/css";`, `injectGlobal(${JSON.stringify(content)});`].join("\n");
25
- }
26
- return;
33
+ return loadInjectedCss(id);
27
34
  },
28
35
  };
29
36
  }
37
+ export { gtkxCss };
30
38
  //# sourceMappingURL=css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"css.js","sourceRoot":"","sources":["../../src/vite-plugins/css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,MAAM,GAAG,SAAS,CAAC;AACzB,MAAM,aAAa,GAAG,SAAS,CAAC;AAChC,MAAM,cAAc,GAAG,aAAa,CAAC;AACrC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;AAE9F,MAAM,UAAU,OAAO;IACnB,OAAO;QACH,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,KAAK;QAEd,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO;YACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvB,OAAO;YACX,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9E,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO;YAEpC,OAAO,SAAS,GAAG,aAAa,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,EAAE;YACH,IAAI,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC9C,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnE,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAChD,OAAO,CAAC,2CAA2C,EAAE,gBAAgB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAClG,IAAI,CACP,CAAC;YACN,CAAC;YAED,OAAO;QACX,CAAC;KACJ,CAAC;AACN,CAAC","sourcesContent":["import { readFileSync } from \"node:fs\";\nimport type { Plugin } from \"vite\";\nimport { createVirtualNamespace } from \"./virtual-module.js\";\n\nconst CSS_RE = /\\.css$/i;\nconst INJECT_SUFFIX = \"?inject\";\nconst VIRTUAL_PREFIX = \"\\0gtkx-css:\";\nconst { isVirtual, fromVirtualId, resolveToVirtual } = createVirtualNamespace(VIRTUAL_PREFIX);\n\nexport function gtkxCss(): Plugin {\n return {\n name: \"gtkx:css\",\n enforce: \"pre\",\n\n async resolveId(source, importer, options) {\n if (!CSS_RE.test(source)) {\n return;\n }\n\n const virtualId = await resolveToVirtual(this, { source, importer, options });\n if (virtualId === undefined) return;\n\n return virtualId + INJECT_SUFFIX;\n },\n\n load(id) {\n if (isVirtual(id) && id.endsWith(INJECT_SUFFIX)) {\n const filePath = fromVirtualId(id.slice(0, -INJECT_SUFFIX.length));\n const content = readFileSync(filePath, \"utf-8\");\n return [`import { injectGlobal } from \"@gtkx/css\";`, `injectGlobal(${JSON.stringify(content)});`].join(\n \"\\n\",\n );\n }\n\n return;\n },\n };\n}\n"]}
1
+ {"version":3,"file":"css.js","sourceRoot":"","sources":["../../src/vite-plugins/css.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAK7D,MAAM,MAAM,GAAG,SAAS,CAAC;AACzB,MAAM,aAAa,GAAG,SAAS,CAAC;AAChC,MAAM,cAAc,GAAG,aAAa,CAAC;AACrC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;AAE9F,MAAM,YAAY,GAAG,KAAK,EAAE,GAAsB,EAAE,OAA0B,EAA+B,EAAE;IAC3G,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,OAAO;IACX,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAEvD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;IACX,CAAC;IAED,OAAO,SAAS,GAAG,aAAa,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,EAAU,EAAsB,EAAE;IACvD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAChD,OAAO;IACX,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAE/C,OAAO,CAAC,6CAA6C,EAAE,gBAAgB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnH,CAAC,CAAC;AAEF,SAAS,OAAO;IACZ,OAAO;QACH,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,KAAK;QAEd,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO;YAC/B,OAAO,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,EAAE;YACH,OAAO,eAAe,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC;KACJ,CAAC;AACN,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC","sourcesContent":["import type { Plugin } from \"vite\";\nimport { readFileSync } from \"node:fs\";\nimport { createVirtualNamespace } from \"./virtual-module.js\";\n\ntype CssResolveContext = Parameters<typeof resolveToVirtual>[0];\ntype CssResolveRequest = Parameters<typeof resolveToVirtual>[1];\n\nconst CSS_RE = /\\.css$/i;\nconst INJECT_SUFFIX = \"?inject\";\nconst VIRTUAL_PREFIX = \"\\0gtkx-css:\";\nconst { isVirtual, fromVirtualId, resolveToVirtual } = createVirtualNamespace(VIRTUAL_PREFIX);\n\nconst resolveCssId = async (ctx: CssResolveContext, request: CssResolveRequest): Promise<string | undefined> => {\n if (!CSS_RE.test(request.source)) {\n return;\n }\n\n const virtualId = await resolveToVirtual(ctx, request);\n\n if (virtualId === undefined) {\n return;\n }\n\n return virtualId + INJECT_SUFFIX;\n};\n\nconst loadInjectedCss = (id: string): string | undefined => {\n if (!isVirtual(id) || !id.endsWith(INJECT_SUFFIX)) {\n return;\n }\n\n const filePath = fromVirtualId(id.slice(0, -INJECT_SUFFIX.length));\n const content = readFileSync(filePath, \"utf8\");\n\n return [\"import { injectGlobal } from \\\"@gtkx/css\\\";\", `injectGlobal(${JSON.stringify(content)});`].join(\"\\n\");\n};\n\nfunction gtkxCss(): Plugin {\n return {\n name: \"gtkx:css\",\n enforce: \"pre\",\n\n resolveId(source, importer, options) {\n return resolveCssId(this, { source, importer, options });\n },\n\n load(id) {\n return loadInjectedCss(id);\n },\n };\n}\n\nexport { gtkxCss };\n"]}
@@ -1,7 +1,8 @@
1
- export declare const REFRESH_REG = "$RefreshReg$";
2
- export declare const REFRESH_SIG = "$RefreshSig$";
3
- export declare const REFRESH_RUNTIME_SPECIFIER = "@gtkx/cli/refresh-runtime";
4
- export declare const shouldTransformForRefresh: (id: string, transformOptions: {
1
+ declare const REFRESH_REG = "$RefreshReg$";
2
+ declare const REFRESH_SIG = "$RefreshSig$";
3
+ declare const REFRESH_RUNTIME_SPECIFIER = "@gtkx/cli/refresh-runtime";
4
+ declare const shouldTransformForRefresh: (id: string, transformOptions: {
5
5
  ssr?: boolean | undefined;
6
6
  } | undefined) => boolean;
7
+ export { REFRESH_REG, REFRESH_SIG, REFRESH_RUNTIME_SPECIFIER, shouldTransformForRefresh };
7
8
  //# sourceMappingURL=refresh-filter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"refresh-filter.d.ts","sourceRoot":"","sources":["../../../src/vite-plugins/fast-refresh/refresh-filter.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,iBAAiB,CAAC;AAE1C,eAAO,MAAM,WAAW,iBAAiB,CAAC;AAE1C,eAAO,MAAM,yBAAyB,8BAA8B,CAAC;AAKrE,eAAO,MAAM,yBAAyB,OAC9B,MAAM,oBACQ;IAAE,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAAG,SAAS,KAC5D,OAKF,CAAC"}
1
+ {"version":3,"file":"refresh-filter.d.ts","sourceRoot":"","sources":["../../../src/vite-plugins/fast-refresh/refresh-filter.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,WAAW,iBAAiB,CAAC;AACnC,QAAA,MAAM,WAAW,iBAAiB,CAAC;AACnC,QAAA,MAAM,yBAAyB,8BAA8B,CAAC;AAI9D,QAAA,MAAM,yBAAyB,GAC3B,IAAI,MAAM,EACV,kBAAkB;IAAE,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAAG,SAAS,KAC5D,OAcF,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAC"}
@@ -1,15 +1,19 @@
1
- export const REFRESH_REG = "$RefreshReg$";
2
- export const REFRESH_SIG = "$RefreshSig$";
3
- export const REFRESH_RUNTIME_SPECIFIER = "@gtkx/cli/refresh-runtime";
1
+ const REFRESH_REG = "$RefreshReg$";
2
+ const REFRESH_SIG = "$RefreshSig$";
3
+ const REFRESH_RUNTIME_SPECIFIER = "@gtkx/cli/refresh-runtime";
4
4
  const REFRESH_INCLUDE = /\.[tj]sx?$/;
5
5
  const REFRESH_EXCLUDE = /node_modules|[/\\]dist[/\\]|[/\\]\.gtkx[/\\]/;
6
- export const shouldTransformForRefresh = (id, transformOptions) => {
7
- if (!transformOptions?.ssr)
6
+ const shouldTransformForRefresh = (id, transformOptions) => {
7
+ if (!transformOptions?.ssr) {
8
8
  return false;
9
- if (!REFRESH_INCLUDE.test(id))
9
+ }
10
+ if (!REFRESH_INCLUDE.test(id)) {
10
11
  return false;
11
- if (REFRESH_EXCLUDE.test(id))
12
+ }
13
+ if (REFRESH_EXCLUDE.test(id)) {
12
14
  return false;
15
+ }
13
16
  return true;
14
17
  };
18
+ export { REFRESH_REG, REFRESH_SIG, REFRESH_RUNTIME_SPECIFIER, shouldTransformForRefresh };
15
19
  //# sourceMappingURL=refresh-filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"refresh-filter.js","sourceRoot":"","sources":["../../../src/vite-plugins/fast-refresh/refresh-filter.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AAErE,MAAM,eAAe,GAAG,YAAY,CAAC;AACrC,MAAM,eAAe,GAAG,8CAA8C,CAAC;AAEvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACrC,EAAU,EACV,gBAA2D,EACpD,EAAE;IACT,IAAI,CAAC,gBAAgB,EAAE,GAAG;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC","sourcesContent":["export const REFRESH_REG = \"$RefreshReg$\";\n\nexport const REFRESH_SIG = \"$RefreshSig$\";\n\nexport const REFRESH_RUNTIME_SPECIFIER = \"@gtkx/cli/refresh-runtime\";\n\nconst REFRESH_INCLUDE = /\\.[tj]sx?$/;\nconst REFRESH_EXCLUDE = /node_modules|[/\\\\]dist[/\\\\]|[/\\\\]\\.gtkx[/\\\\]/;\n\nexport const shouldTransformForRefresh = (\n id: string,\n transformOptions: { ssr?: boolean | undefined } | undefined,\n): boolean => {\n if (!transformOptions?.ssr) return false;\n if (!REFRESH_INCLUDE.test(id)) return false;\n if (REFRESH_EXCLUDE.test(id)) return false;\n return true;\n};\n"]}
1
+ {"version":3,"file":"refresh-filter.js","sourceRoot":"","sources":["../../../src/vite-plugins/fast-refresh/refresh-filter.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,cAAc,CAAC;AACnC,MAAM,WAAW,GAAG,cAAc,CAAC;AACnC,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AAC9D,MAAM,eAAe,GAAG,YAAY,CAAC;AACrC,MAAM,eAAe,GAAG,8CAA8C,CAAC;AAEvE,MAAM,yBAAyB,GAAG,CAC9B,EAAU,EACV,gBAA2D,EACpD,EAAE;IACT,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAC","sourcesContent":["const REFRESH_REG = \"$RefreshReg$\";\nconst REFRESH_SIG = \"$RefreshSig$\";\nconst REFRESH_RUNTIME_SPECIFIER = \"@gtkx/cli/refresh-runtime\";\nconst REFRESH_INCLUDE = /\\.[tj]sx?$/;\nconst REFRESH_EXCLUDE = /node_modules|[/\\\\]dist[/\\\\]|[/\\\\]\\.gtkx[/\\\\]/;\n\nconst shouldTransformForRefresh = (\n id: string,\n transformOptions: { ssr?: boolean | undefined } | undefined,\n): boolean => {\n if (!transformOptions?.ssr) {\n return false;\n }\n\n if (!REFRESH_INCLUDE.test(id)) {\n return false;\n }\n\n if (REFRESH_EXCLUDE.test(id)) {\n return false;\n }\n\n return true;\n};\n\nexport { REFRESH_REG, REFRESH_SIG, REFRESH_RUNTIME_SPECIFIER, shouldTransformForRefresh };\n"]}
@@ -1,5 +1,6 @@
1
1
  import type { Plugin } from "vite";
2
- export declare function gtkxSwcRefresh(): Plugin;
3
- export declare function gtkxRefreshRuntime(): Plugin;
4
- export declare const gtkxFastRefresh: () => Plugin[];
2
+ declare function gtkxSwcRefresh(): Plugin;
3
+ declare function gtkxRefreshRuntime(): Plugin;
4
+ declare const gtkxFastRefresh: () => Plugin[];
5
+ export { gtkxSwcRefresh, gtkxRefreshRuntime, gtkxFastRefresh };
5
6
  //# sourceMappingURL=swc-refresh.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"swc-refresh.d.ts","sourceRoot":"","sources":["../../../src/vite-plugins/fast-refresh/swc-refresh.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,wBAAgB,cAAc,IAAI,MAAM,CAoCvC;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAiC3C;AAED,eAAO,MAAM,eAAe,QAAO,MAAM,EAA8C,CAAC"}
1
+ {"version":3,"file":"swc-refresh.d.ts","sourceRoot":"","sources":["../../../src/vite-plugins/fast-refresh/swc-refresh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAmDnC,iBAAS,cAAc,IAAI,MAAM,CAgBhC;AAED,iBAAS,kBAAkB,IAAI,MAAM,CAkBpC;AAED,QAAA,MAAM,eAAe,QAAO,MAAM,EAA8C,CAAC;AAEjF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC"}
@@ -1,7 +1,41 @@
1
- import { fileURLToPath } from "node:url";
2
1
  import { transform } from "@swc/core";
2
+ import { fileURLToPath } from "node:url";
3
3
  import { REFRESH_REG, REFRESH_RUNTIME_SPECIFIER, REFRESH_SIG, shouldTransformForRefresh } from "./refresh-filter.js";
4
- export function gtkxSwcRefresh() {
4
+ const buildSwcOptions = (id) => {
5
+ const isTsx = id.endsWith(".tsx");
6
+ const isTs = id.endsWith(".ts") || isTsx;
7
+ return {
8
+ filename: id,
9
+ sourceFileName: id,
10
+ sourceMaps: true,
11
+ jsc: {
12
+ parser: isTs ? { syntax: "typescript", tsx: isTsx } : { syntax: "ecmascript", jsx: true },
13
+ transform: {
14
+ react: {
15
+ runtime: "automatic",
16
+ development: true,
17
+ refresh: true,
18
+ },
19
+ },
20
+ target: "es2022",
21
+ },
22
+ };
23
+ };
24
+ const buildRefreshResult = (result) => result.map === undefined ? { code: result.code } : { code: result.code, map: result.map };
25
+ const injectRefreshRegistration = (code, id, transformOptions) => {
26
+ if (!shouldTransformForRefresh(id, transformOptions)) {
27
+ return;
28
+ }
29
+ if (!code.includes(REFRESH_REG) && !code.includes(REFRESH_SIG)) {
30
+ return;
31
+ }
32
+ const header = `
33
+ import { createModuleRegistration as __createModuleRegistration__ } from "${REFRESH_RUNTIME_SPECIFIER}";
34
+ const { ${REFRESH_REG}, ${REFRESH_SIG} } = __createModuleRegistration__(${JSON.stringify(id)});
35
+ `;
36
+ return { code: header + code, map: null };
37
+ };
38
+ function gtkxSwcRefresh() {
5
39
  return {
6
40
  name: "gtkx:swc-refresh",
7
41
  enforce: "pre",
@@ -10,57 +44,27 @@ export function gtkxSwcRefresh() {
10
44
  if (!shouldTransformForRefresh(id, transformOptions)) {
11
45
  return;
12
46
  }
13
- const isTsx = id.endsWith(".tsx");
14
- const isTs = id.endsWith(".ts") || isTsx;
15
- const swcOptions = {
16
- filename: id,
17
- sourceFileName: id,
18
- sourceMaps: true,
19
- jsc: {
20
- parser: isTs ? { syntax: "typescript", tsx: isTsx } : { syntax: "ecmascript", jsx: true },
21
- transform: {
22
- react: {
23
- runtime: "automatic",
24
- development: true,
25
- refresh: true,
26
- },
27
- },
28
- target: "es2022",
29
- },
30
- };
31
- const result = await transform(code, swcOptions);
32
- return result.map === undefined ? { code: result.code } : { code: result.code, map: result.map };
47
+ const result = await transform(code, buildSwcOptions(id));
48
+ return buildRefreshResult(result);
33
49
  },
34
50
  };
35
51
  }
36
- export function gtkxRefreshRuntime() {
52
+ function gtkxRefreshRuntime() {
37
53
  return {
38
54
  name: "gtkx:refresh-runtime",
39
55
  enforce: "post",
40
56
  apply: "serve",
41
57
  resolveId(id) {
42
- if (id !== REFRESH_RUNTIME_SPECIFIER)
43
- return undefined;
58
+ if (id !== REFRESH_RUNTIME_SPECIFIER) {
59
+ return;
60
+ }
44
61
  return fileURLToPath(import.meta.resolve(REFRESH_RUNTIME_SPECIFIER));
45
62
  },
46
63
  transform(code, id, transformOptions) {
47
- if (!shouldTransformForRefresh(id, transformOptions)) {
48
- return;
49
- }
50
- if (!code.includes(REFRESH_REG) && !code.includes(REFRESH_SIG)) {
51
- return;
52
- }
53
- const moduleIdJson = JSON.stringify(id);
54
- const header = `
55
- import { createModuleRegistration as __createModuleRegistration__ } from "${REFRESH_RUNTIME_SPECIFIER}";
56
- const { ${REFRESH_REG}, ${REFRESH_SIG} } = __createModuleRegistration__(${moduleIdJson});
57
- `;
58
- return {
59
- code: header + code,
60
- map: null,
61
- };
64
+ return injectRefreshRegistration(code, id, transformOptions);
62
65
  },
63
66
  };
64
67
  }
65
- export const gtkxFastRefresh = () => [gtkxSwcRefresh(), gtkxRefreshRuntime()];
68
+ const gtkxFastRefresh = () => [gtkxSwcRefresh(), gtkxRefreshRuntime()];
69
+ export { gtkxSwcRefresh, gtkxRefreshRuntime, gtkxFastRefresh };
66
70
  //# sourceMappingURL=swc-refresh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"swc-refresh.js","sourceRoot":"","sources":["../../../src/vite-plugins/fast-refresh/swc-refresh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAA8B,SAAS,EAAE,MAAM,WAAW,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAErH,MAAM,UAAU,cAAc;IAC1B,OAAO;QACH,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QAEd,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,gBAAgB;YACtC,IAAI,CAAC,yBAAyB,CAAC,EAAE,EAAE,gBAAgB,CAAC,EAAE,CAAC;gBACnD,OAAO;YACX,CAAC;YAED,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;YAEzC,MAAM,UAAU,GAAe;gBAC3B,QAAQ,EAAE,EAAE;gBACZ,cAAc,EAAE,EAAE;gBAClB,UAAU,EAAE,IAAI;gBAChB,GAAG,EAAE;oBACD,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE;oBACzF,SAAS,EAAE;wBACP,KAAK,EAAE;4BACH,OAAO,EAAE,WAAW;4BACpB,WAAW,EAAE,IAAI;4BACjB,OAAO,EAAE,IAAI;yBAChB;qBACJ;oBACD,MAAM,EAAE,QAAQ;iBACnB;aACJ,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAEjD,OAAO,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;QACrG,CAAC;KACJ,CAAC;AACN,CAAC;AAED,MAAM,UAAU,kBAAkB;IAC9B,OAAO;QACH,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,OAAO;QAEd,SAAS,CAAC,EAAE;YACR,IAAI,EAAE,KAAK,yBAAyB;gBAAE,OAAO,SAAS,CAAC;YACvD,OAAO,aAAa,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,gBAAgB;YAChC,IAAI,CAAC,yBAAyB,CAAC,EAAE,EAAE,gBAAgB,CAAC,EAAE,CAAC;gBACnD,OAAO;YACX,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC7D,OAAO;YACX,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAExC,MAAM,MAAM,GAAG;4EACiD,yBAAyB;UAC3F,WAAW,KAAK,WAAW,qCAAqC,YAAY;CACrF,CAAC;YAEU,OAAO;gBACH,IAAI,EAAE,MAAM,GAAG,IAAI;gBACnB,GAAG,EAAE,IAAI;aACZ,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,GAAa,EAAE,CAAC,CAAC,cAAc,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC","sourcesContent":["import { fileURLToPath } from \"node:url\";\nimport { type Options as SwcOptions, transform } from \"@swc/core\";\nimport type { Plugin } from \"vite\";\nimport { REFRESH_REG, REFRESH_RUNTIME_SPECIFIER, REFRESH_SIG, shouldTransformForRefresh } from \"./refresh-filter.js\";\n\nexport function gtkxSwcRefresh(): Plugin {\n return {\n name: \"gtkx:swc-refresh\",\n enforce: \"pre\",\n apply: \"serve\",\n\n async transform(code, id, transformOptions) {\n if (!shouldTransformForRefresh(id, transformOptions)) {\n return;\n }\n\n const isTsx = id.endsWith(\".tsx\");\n const isTs = id.endsWith(\".ts\") || isTsx;\n\n const swcOptions: SwcOptions = {\n filename: id,\n sourceFileName: id,\n sourceMaps: true,\n jsc: {\n parser: isTs ? { syntax: \"typescript\", tsx: isTsx } : { syntax: \"ecmascript\", jsx: true },\n transform: {\n react: {\n runtime: \"automatic\",\n development: true,\n refresh: true,\n },\n },\n target: \"es2022\",\n },\n };\n\n const result = await transform(code, swcOptions);\n\n return result.map === undefined ? { code: result.code } : { code: result.code, map: result.map };\n },\n };\n}\n\nexport function gtkxRefreshRuntime(): Plugin {\n return {\n name: \"gtkx:refresh-runtime\",\n enforce: \"post\",\n apply: \"serve\",\n\n resolveId(id) {\n if (id !== REFRESH_RUNTIME_SPECIFIER) return undefined;\n return fileURLToPath(import.meta.resolve(REFRESH_RUNTIME_SPECIFIER));\n },\n\n transform(code, id, transformOptions) {\n if (!shouldTransformForRefresh(id, transformOptions)) {\n return;\n }\n\n if (!code.includes(REFRESH_REG) && !code.includes(REFRESH_SIG)) {\n return;\n }\n\n const moduleIdJson = JSON.stringify(id);\n\n const header = `\nimport { createModuleRegistration as __createModuleRegistration__ } from \"${REFRESH_RUNTIME_SPECIFIER}\";\nconst { ${REFRESH_REG}, ${REFRESH_SIG} } = __createModuleRegistration__(${moduleIdJson});\n`;\n\n return {\n code: header + code,\n map: null,\n };\n },\n };\n}\n\nexport const gtkxFastRefresh = (): Plugin[] => [gtkxSwcRefresh(), gtkxRefreshRuntime()];\n"]}
1
+ {"version":3,"file":"swc-refresh.js","sourceRoot":"","sources":["../../../src/vite-plugins/fast-refresh/swc-refresh.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Plugin } from \"vite\";\nimport { type Output, type Options as SwcOptions, transform } from \"@swc/core\";\nimport { fileURLToPath } from \"node:url\";\nimport { REFRESH_REG, REFRESH_RUNTIME_SPECIFIER, REFRESH_SIG, shouldTransformForRefresh } from \"./refresh-filter.js\";\n\nconst buildSwcOptions = (id: string): SwcOptions => {\n const isTsx = id.endsWith(\".tsx\");\n const isTs = id.endsWith(\".ts\") || isTsx;\n\n return {\n filename: id,\n sourceFileName: id,\n sourceMaps: true,\n jsc: {\n parser: isTs ? { syntax: \"typescript\", tsx: isTsx } : { syntax: \"ecmascript\", jsx: true },\n transform: {\n react: {\n runtime: \"automatic\",\n development: true,\n refresh: true,\n },\n },\n target: \"es2022\",\n },\n };\n};\n\nconst buildRefreshResult = (result: Output): { code: string; map?: string } =>\n result.map === undefined ? { code: result.code } : { code: result.code, map: result.map };\n\nconst injectRefreshRegistration = (\n code: string,\n id: string,\n transformOptions: { ssr?: boolean | undefined } | undefined,\n): { code: string; map: null } | undefined => {\n if (!shouldTransformForRefresh(id, transformOptions)) {\n return;\n }\n\n if (!code.includes(REFRESH_REG) && !code.includes(REFRESH_SIG)) {\n return;\n }\n\n const header = `\nimport { createModuleRegistration as __createModuleRegistration__ } from \"${REFRESH_RUNTIME_SPECIFIER}\";\nconst { ${REFRESH_REG}, ${REFRESH_SIG} } = __createModuleRegistration__(${JSON.stringify(id)});\n`;\n\n return { code: header + code, map: null };\n};\n\nfunction gtkxSwcRefresh(): Plugin {\n return {\n name: \"gtkx:swc-refresh\",\n enforce: \"pre\",\n apply: \"serve\",\n\n async transform(code, id, transformOptions) {\n if (!shouldTransformForRefresh(id, transformOptions)) {\n return;\n }\n\n const result = await transform(code, buildSwcOptions(id));\n\n return buildRefreshResult(result);\n },\n };\n}\n\nfunction gtkxRefreshRuntime(): Plugin {\n return {\n name: \"gtkx:refresh-runtime\",\n enforce: \"post\",\n apply: \"serve\",\n\n resolveId(id) {\n if (id !== REFRESH_RUNTIME_SPECIFIER) {\n return;\n }\n\n return fileURLToPath(import.meta.resolve(REFRESH_RUNTIME_SPECIFIER));\n },\n\n transform(code, id, transformOptions) {\n return injectRefreshRegistration(code, id, transformOptions);\n },\n };\n}\n\nconst gtkxFastRefresh = (): Plugin[] => [gtkxSwcRefresh(), gtkxRefreshRuntime()];\n\nexport { gtkxSwcRefresh, gtkxRefreshRuntime, gtkxFastRefresh };\n"]}
@@ -1,3 +1,4 @@
1
1
  import type { Plugin } from "vite";
2
- export declare function gtkxIcons(): Plugin;
2
+ declare function gtkxIcons(): Plugin;
3
+ export { gtkxIcons };
3
4
  //# sourceMappingURL=icons.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/icons.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,MAAM,CAAC;AAqB/C,wBAAgB,SAAS,IAAI,MAAM,CAiClC"}
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/icons.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,MAAM,CAAC;AA6C/C,iBAAS,SAAS,IAAI,MAAM,CA0B3B;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -1,18 +1,31 @@
1
+ import { info } from "@gtkx/utils";
1
2
  import { readFileSync } from "node:fs";
2
3
  import { join } from "node:path";
3
- import { info } from "@gtkx/utils";
4
4
  import { prependBanner } from "../internal/banner.js";
5
5
  import { resolveDataDir } from "../internal/data-dir.js";
6
6
  import { listFilesRecursive } from "../internal/list-files.js";
7
7
  const ICONS_DIR = "icons";
8
8
  const XDG_ENV_BANNER = [
9
- `process.env.XDG_DATA_DIRS = [`,
10
- ` decodeURIComponent(new URL(".", import.meta.url).pathname),`,
11
- ` process.env.XDG_DATA_DIRS || "/usr/local/share:/usr/share",`,
12
- `].join(":");`,
9
+ "process.env.XDG_DATA_DIRS = [",
10
+ " decodeURIComponent(new URL(\".\", import.meta.url).pathname),",
11
+ " process.env.XDG_DATA_DIRS || \"/usr/local/share:/usr/share\",",
12
+ "].join(\":\");",
13
13
  ].join("\n");
14
14
  const findIconFiles = (iconsDir) => iconsDir === null ? [] : listFilesRecursive(iconsDir);
15
- export function gtkxIcons() {
15
+ const resolveIconsDir = (config) => {
16
+ const root = config.root ?? process.cwd();
17
+ const dataDir = resolveDataDir(root);
18
+ return dataDir === null ? null : join(root, dataDir, ICONS_DIR);
19
+ };
20
+ const emitIcons = (ctx, icons) => {
21
+ for (const { absPath, rel } of icons) {
22
+ ctx.emitFile({ type: "asset", fileName: join(ICONS_DIR, rel), source: readFileSync(absPath) });
23
+ }
24
+ if (icons.length > 0) {
25
+ info(`Copied ${String(icons.length)} icon(s) into ${ICONS_DIR}/`);
26
+ }
27
+ };
28
+ function gtkxIcons() {
16
29
  const state = {
17
30
  iconsDir: null,
18
31
  };
@@ -21,27 +34,18 @@ export function gtkxIcons() {
21
34
  enforce: "pre",
22
35
  apply: "build",
23
36
  config(config) {
24
- const root = config.root ?? process.cwd();
25
- const dataDir = resolveDataDir(root);
26
- state.iconsDir = dataDir === null ? null : join(root, dataDir, ICONS_DIR);
37
+ state.iconsDir = resolveIconsDir(config);
27
38
  },
28
39
  outputOptions(options) {
29
- if (findIconFiles(state.iconsDir).length === 0)
40
+ if (findIconFiles(state.iconsDir).length === 0) {
30
41
  return;
42
+ }
31
43
  return prependBanner(options, XDG_ENV_BANNER);
32
44
  },
33
45
  buildEnd() {
34
- const icons = findIconFiles(state.iconsDir);
35
- for (const { absPath, rel } of icons) {
36
- this.emitFile({
37
- type: "asset",
38
- fileName: join(ICONS_DIR, rel),
39
- source: readFileSync(absPath),
40
- });
41
- }
42
- if (icons.length > 0)
43
- info(`Copied ${icons.length} icon(s) into ${ICONS_DIR}/`);
46
+ emitIcons(this, findIconFiles(state.iconsDir));
44
47
  },
45
48
  };
46
49
  }
50
+ export { gtkxIcons };
47
51
  //# sourceMappingURL=icons.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/vite-plugins/icons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAmB,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEhF,MAAM,SAAS,GAAG,OAAO,CAAC;AAE1B,MAAM,cAAc,GAAG;IACnB,+BAA+B;IAC/B,iEAAiE;IACjE,iEAAiE;IACjE,cAAc;CACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAMb,MAAM,aAAa,GAAG,CAAC,QAAuB,EAAgB,EAAE,CAC5D,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAE1D,MAAM,UAAU,SAAS;IACrB,MAAM,KAAK,GAAgB;QACvB,QAAQ,EAAE,IAAI;KACjB,CAAC;IAEF,OAAO;QACH,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QAEd,MAAM,CAAC,MAAkB;YACrB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YACrC,KAAK,CAAC,QAAQ,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAC9E,CAAC;QAED,aAAa,CAAC,OAAO;YACjB,IAAI,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YACvD,OAAO,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAClD,CAAC;QAED,QAAQ;YACJ,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC5C,KAAK,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,KAAK,EAAE,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC;oBACV,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC;oBAC9B,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC;iBAChC,CAAC,CAAC;YACP,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,UAAU,KAAK,CAAC,MAAM,iBAAiB,SAAS,GAAG,CAAC,CAAC;QACpF,CAAC;KACJ,CAAC;AACN,CAAC","sourcesContent":["import { readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { info } from \"@gtkx/utils\";\nimport type { Plugin, UserConfig } from \"vite\";\nimport { prependBanner } from \"../internal/banner.js\";\nimport { resolveDataDir } from \"../internal/data-dir.js\";\nimport { type ListedFile, listFilesRecursive } from \"../internal/list-files.js\";\n\nconst ICONS_DIR = \"icons\";\n\nconst XDG_ENV_BANNER = [\n `process.env.XDG_DATA_DIRS = [`,\n ` decodeURIComponent(new URL(\".\", import.meta.url).pathname),`,\n ` process.env.XDG_DATA_DIRS || \"/usr/local/share:/usr/share\",`,\n `].join(\":\");`,\n].join(\"\\n\");\n\ntype PluginState = {\n iconsDir: string | null;\n};\n\nconst findIconFiles = (iconsDir: string | null): ListedFile[] =>\n iconsDir === null ? [] : listFilesRecursive(iconsDir);\n\nexport function gtkxIcons(): Plugin {\n const state: PluginState = {\n iconsDir: null,\n };\n\n return {\n name: \"gtkx:icons\",\n enforce: \"pre\",\n apply: \"build\",\n\n config(config: UserConfig) {\n const root = config.root ?? process.cwd();\n const dataDir = resolveDataDir(root);\n state.iconsDir = dataDir === null ? null : join(root, dataDir, ICONS_DIR);\n },\n\n outputOptions(options) {\n if (findIconFiles(state.iconsDir).length === 0) return;\n return prependBanner(options, XDG_ENV_BANNER);\n },\n\n buildEnd() {\n const icons = findIconFiles(state.iconsDir);\n for (const { absPath, rel } of icons) {\n this.emitFile({\n type: \"asset\",\n fileName: join(ICONS_DIR, rel),\n source: readFileSync(absPath),\n });\n }\n if (icons.length > 0) info(`Copied ${icons.length} icon(s) into ${ICONS_DIR}/`);\n },\n };\n}\n"]}
1
+ {"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/vite-plugins/icons.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAmB,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAUhF,MAAM,SAAS,GAAG,OAAO,CAAC;AAE1B,MAAM,cAAc,GAAG;IACnB,+BAA+B;IAC/B,mEAAmE;IACnE,mEAAmE;IACnE,gBAAgB;CACnB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,aAAa,GAAG,CAAC,QAAuB,EAAgB,EAAE,CAC5D,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAE1D,MAAM,eAAe,GAAG,CAAC,MAAkB,EAAiB,EAAE;IAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAErC,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,GAAkB,EAAE,KAAmB,EAAQ,EAAE;IAChE,KAAK,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,KAAK,EAAE,CAAC;QACnC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,SAAS,GAAG,CAAC,CAAC;IACtE,CAAC;AACL,CAAC,CAAC;AAEF,SAAS,SAAS;IACd,MAAM,KAAK,GAAgB;QACvB,QAAQ,EAAE,IAAI;KACjB,CAAC;IAEF,OAAO;QACH,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QAEd,MAAM,CAAC,MAAkB;YACrB,KAAK,CAAC,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAED,aAAa,CAAC,OAAO;YACjB,IAAI,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7C,OAAO;YACX,CAAC;YAED,OAAO,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAClD,CAAC;QAED,QAAQ;YACJ,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnD,CAAC;KACJ,CAAC;AACN,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,CAAC","sourcesContent":["import type { Plugin, UserConfig } from \"vite\";\nimport { info } from \"@gtkx/utils\";\nimport { readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { prependBanner } from \"../internal/banner.js\";\nimport { resolveDataDir } from \"../internal/data-dir.js\";\nimport { type ListedFile, listFilesRecursive } from \"../internal/list-files.js\";\n\ntype PluginState = {\n iconsDir: string | null;\n};\n\ntype PluginContext = {\n emitFile: (file: { type: \"asset\"; fileName: string; source: Buffer }) => void;\n};\n\nconst ICONS_DIR = \"icons\";\n\nconst XDG_ENV_BANNER = [\n \"process.env.XDG_DATA_DIRS = [\",\n \" decodeURIComponent(new URL(\\\".\\\", import.meta.url).pathname),\",\n \" process.env.XDG_DATA_DIRS || \\\"/usr/local/share:/usr/share\\\",\",\n \"].join(\\\":\\\");\",\n].join(\"\\n\");\n\nconst findIconFiles = (iconsDir: string | null): ListedFile[] =>\n iconsDir === null ? [] : listFilesRecursive(iconsDir);\n\nconst resolveIconsDir = (config: UserConfig): string | null => {\n const root = config.root ?? process.cwd();\n const dataDir = resolveDataDir(root);\n\n return dataDir === null ? null : join(root, dataDir, ICONS_DIR);\n};\n\nconst emitIcons = (ctx: PluginContext, icons: ListedFile[]): void => {\n for (const { absPath, rel } of icons) {\n ctx.emitFile({ type: \"asset\", fileName: join(ICONS_DIR, rel), source: readFileSync(absPath) });\n }\n\n if (icons.length > 0) {\n info(`Copied ${String(icons.length)} icon(s) into ${ICONS_DIR}/`);\n }\n};\n\nfunction gtkxIcons(): Plugin {\n const state: PluginState = {\n iconsDir: null,\n };\n\n return {\n name: \"gtkx:icons\",\n enforce: \"pre\",\n apply: \"build\",\n\n config(config: UserConfig) {\n state.iconsDir = resolveIconsDir(config);\n },\n\n outputOptions(options) {\n if (findIconFiles(state.iconsDir).length === 0) {\n return;\n }\n\n return prependBanner(options, XDG_ENV_BANNER);\n },\n\n buildEnd() {\n emitIcons(this, findIconFiles(state.iconsDir));\n },\n };\n}\n\nexport { gtkxIcons };\n"]}
@@ -1,3 +1,4 @@
1
1
  import type { Plugin } from "vite";
2
- export declare const gtkxVitePlugins: (mode?: string) => Plugin[];
2
+ declare const gtkxVitePlugins: (mode?: string) => Plugin[];
3
+ export { gtkxVitePlugins };
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAQnC,eAAO,MAAM,eAAe,UAAW,MAAM,KAAG,MAAM,EAWrD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAUnC,QAAA,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,MAAM,EAY9C,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC"}