@gtkx/cli 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/builder.d.ts +1 -1
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +20 -3
- package/dist/builder.js.map +1 -1
- package/dist/cli.js +6 -2
- package/dist/cli.js.map +1 -1
- package/dist/codegen/freshness.js +2 -2
- package/dist/codegen/freshness.js.map +1 -1
- package/dist/codegen/run-codegen.d.ts +8 -5
- package/dist/codegen/run-codegen.d.ts.map +1 -1
- package/dist/codegen/run-codegen.js +24 -19
- package/dist/codegen/run-codegen.js.map +1 -1
- package/dist/codegen/store-resolver.d.ts +1 -1
- package/dist/codegen/store-resolver.d.ts.map +1 -1
- package/dist/codegen/store-resolver.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +5 -6
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/codegen.d.ts.map +1 -1
- package/dist/commands/codegen.js +11 -1
- package/dist/commands/codegen.js.map +1 -1
- package/dist/commands/deploy.d.ts +22 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +44 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +4 -4
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/docs.d.ts +2 -2
- package/dist/commands/docs.d.ts.map +1 -1
- package/dist/commands/docs.js +27 -4
- package/dist/commands/docs.js.map +1 -1
- package/dist/deploy/depends.d.ts +8 -0
- package/dist/deploy/depends.d.ts.map +1 -0
- package/dist/deploy/depends.js +27 -0
- package/dist/deploy/depends.js.map +1 -0
- package/dist/deploy/download.d.ts +20 -0
- package/dist/deploy/download.d.ts.map +1 -0
- package/dist/deploy/download.js +98 -0
- package/dist/deploy/download.js.map +1 -0
- package/dist/deploy/freedesktop/copyright.d.ts +4 -0
- package/dist/deploy/freedesktop/copyright.d.ts.map +1 -0
- package/dist/deploy/freedesktop/copyright.js +33 -0
- package/dist/deploy/freedesktop/copyright.js.map +1 -0
- package/dist/deploy/freedesktop/dbus-service.d.ts +4 -0
- package/dist/deploy/freedesktop/dbus-service.d.ts.map +1 -0
- package/dist/deploy/freedesktop/dbus-service.js +15 -0
- package/dist/deploy/freedesktop/dbus-service.js.map +1 -0
- package/dist/deploy/freedesktop/desktop-entry.d.ts +4 -0
- package/dist/deploy/freedesktop/desktop-entry.d.ts.map +1 -0
- package/dist/deploy/freedesktop/desktop-entry.js +73 -0
- package/dist/deploy/freedesktop/desktop-entry.js.map +1 -0
- package/dist/deploy/freedesktop/ini.d.ts +7 -0
- package/dist/deploy/freedesktop/ini.d.ts.map +1 -0
- package/dist/deploy/freedesktop/ini.js +22 -0
- package/dist/deploy/freedesktop/ini.js.map +1 -0
- package/dist/deploy/freedesktop/metainfo-sections.d.ts +13 -0
- package/dist/deploy/freedesktop/metainfo-sections.d.ts.map +1 -0
- package/dist/deploy/freedesktop/metainfo-sections.js +73 -0
- package/dist/deploy/freedesktop/metainfo-sections.js.map +1 -0
- package/dist/deploy/freedesktop/metainfo.d.ts +4 -0
- package/dist/deploy/freedesktop/metainfo.d.ts.map +1 -0
- package/dist/deploy/freedesktop/metainfo.js +29 -0
- package/dist/deploy/freedesktop/metainfo.js.map +1 -0
- package/dist/deploy/freedesktop/mime-package.d.ts +4 -0
- package/dist/deploy/freedesktop/mime-package.d.ts.map +1 -0
- package/dist/deploy/freedesktop/mime-package.js +16 -0
- package/dist/deploy/freedesktop/mime-package.js.map +1 -0
- package/dist/deploy/freedesktop/validate.d.ts +4 -0
- package/dist/deploy/freedesktop/validate.d.ts.map +1 -0
- package/dist/deploy/freedesktop/validate.js +81 -0
- package/dist/deploy/freedesktop/validate.js.map +1 -0
- package/dist/deploy/freedesktop/xml.d.ts +11 -0
- package/dist/deploy/freedesktop/xml.d.ts.map +1 -0
- package/dist/deploy/freedesktop/xml.js +33 -0
- package/dist/deploy/freedesktop/xml.js.map +1 -0
- package/dist/deploy/git.d.ts +4 -0
- package/dist/deploy/git.d.ts.map +1 -0
- package/dist/deploy/git.js +17 -0
- package/dist/deploy/git.js.map +1 -0
- package/dist/deploy/install-hints.d.ts +5 -0
- package/dist/deploy/install-hints.d.ts.map +1 -0
- package/dist/deploy/install-hints.js +85 -0
- package/dist/deploy/install-hints.js.map +1 -0
- package/dist/deploy/nfpm/config.d.ts +8 -0
- package/dist/deploy/nfpm/config.d.ts.map +1 -0
- package/dist/deploy/nfpm/config.js +119 -0
- package/dist/deploy/nfpm/config.js.map +1 -0
- package/dist/deploy/nfpm/contents.d.ts +12 -0
- package/dist/deploy/nfpm/contents.d.ts.map +1 -0
- package/dist/deploy/nfpm/contents.js +48 -0
- package/dist/deploy/nfpm/contents.js.map +1 -0
- package/dist/deploy/nfpm/description.d.ts +5 -0
- package/dist/deploy/nfpm/description.d.ts.map +1 -0
- package/dist/deploy/nfpm/description.js +5 -0
- package/dist/deploy/nfpm/description.js.map +1 -0
- package/dist/deploy/nfpm/optional.d.ts +5 -0
- package/dist/deploy/nfpm/optional.d.ts.map +1 -0
- package/dist/deploy/nfpm/optional.js +4 -0
- package/dist/deploy/nfpm/optional.js.map +1 -0
- package/dist/deploy/nfpm/pack.d.ts +5 -0
- package/dist/deploy/nfpm/pack.d.ts.map +1 -0
- package/dist/deploy/nfpm/pack.js +32 -0
- package/dist/deploy/nfpm/pack.js.map +1 -0
- package/dist/deploy/node-runtime/download.d.ts +3 -0
- package/dist/deploy/node-runtime/download.d.ts.map +1 -0
- package/dist/deploy/node-runtime/download.js +39 -0
- package/dist/deploy/node-runtime/download.js.map +1 -0
- package/dist/deploy/node-runtime/elf.d.ts +7 -0
- package/dist/deploy/node-runtime/elf.d.ts.map +1 -0
- package/dist/deploy/node-runtime/elf.js +100 -0
- package/dist/deploy/node-runtime/elf.js.map +1 -0
- package/dist/deploy/node-runtime/guard.d.ts +4 -0
- package/dist/deploy/node-runtime/guard.d.ts.map +1 -0
- package/dist/deploy/node-runtime/guard.js +22 -0
- package/dist/deploy/node-runtime/guard.js.map +1 -0
- package/dist/deploy/node-runtime/index.d.ts +4 -0
- package/dist/deploy/node-runtime/index.d.ts.map +1 -0
- package/dist/deploy/node-runtime/index.js +61 -0
- package/dist/deploy/node-runtime/index.js.map +1 -0
- package/dist/deploy/payload/copy-tree.d.ts +7 -0
- package/dist/deploy/payload/copy-tree.d.ts.map +1 -0
- package/dist/deploy/payload/copy-tree.js +36 -0
- package/dist/deploy/payload/copy-tree.js.map +1 -0
- package/dist/deploy/payload/icons.d.ts +6 -0
- package/dist/deploy/payload/icons.d.ts.map +1 -0
- package/dist/deploy/payload/icons.js +53 -0
- package/dist/deploy/payload/icons.js.map +1 -0
- package/dist/deploy/payload/launcher.d.ts +5 -0
- package/dist/deploy/payload/launcher.d.ts.map +1 -0
- package/dist/deploy/payload/launcher.js +22 -0
- package/dist/deploy/payload/launcher.js.map +1 -0
- package/dist/deploy/payload/schemas.d.ts +4 -0
- package/dist/deploy/payload/schemas.d.ts.map +1 -0
- package/dist/deploy/payload/schemas.js +17 -0
- package/dist/deploy/payload/schemas.js.map +1 -0
- package/dist/deploy/payload/stage.d.ts +15 -0
- package/dist/deploy/payload/stage.d.ts.map +1 -0
- package/dist/deploy/payload/stage.js +100 -0
- package/dist/deploy/payload/stage.js.map +1 -0
- package/dist/deploy/registry.d.ts +7 -0
- package/dist/deploy/registry.d.ts.map +1 -0
- package/dist/deploy/registry.js +30 -0
- package/dist/deploy/registry.js.map +1 -0
- package/dist/deploy/run-deploy.d.ts +11 -0
- package/dist/deploy/run-deploy.d.ts.map +1 -0
- package/dist/deploy/run-deploy.js +153 -0
- package/dist/deploy/run-deploy.js.map +1 -0
- package/dist/deploy/settings/arch.d.ts +4 -0
- package/dist/deploy/settings/arch.d.ts.map +1 -0
- package/dist/deploy/settings/arch.js +13 -0
- package/dist/deploy/settings/arch.js.map +1 -0
- package/dist/deploy/settings/categories.d.ts +4 -0
- package/dist/deploy/settings/categories.d.ts.map +1 -0
- package/dist/deploy/settings/categories.js +29 -0
- package/dist/deploy/settings/categories.js.map +1 -0
- package/dist/deploy/settings/exec.d.ts +6 -0
- package/dist/deploy/settings/exec.d.ts.map +1 -0
- package/dist/deploy/settings/exec.js +20 -0
- package/dist/deploy/settings/exec.js.map +1 -0
- package/dist/deploy/settings/identity.d.ts +18 -0
- package/dist/deploy/settings/identity.d.ts.map +1 -0
- package/dist/deploy/settings/identity.js +73 -0
- package/dist/deploy/settings/identity.js.map +1 -0
- package/dist/deploy/settings/index.d.ts +11 -0
- package/dist/deploy/settings/index.d.ts.map +1 -0
- package/dist/deploy/settings/index.js +103 -0
- package/dist/deploy/settings/index.js.map +1 -0
- package/dist/deploy/settings/package-manifest.d.ts +15 -0
- package/dist/deploy/settings/package-manifest.d.ts.map +1 -0
- package/dist/deploy/settings/package-manifest.js +41 -0
- package/dist/deploy/settings/package-manifest.js.map +1 -0
- package/dist/deploy/settings/paths.d.ts +9 -0
- package/dist/deploy/settings/paths.d.ts.map +1 -0
- package/dist/deploy/settings/paths.js +82 -0
- package/dist/deploy/settings/paths.js.map +1 -0
- package/dist/deploy/settings/screenshots.d.ts +8 -0
- package/dist/deploy/settings/screenshots.d.ts.map +1 -0
- package/dist/deploy/settings/screenshots.js +79 -0
- package/dist/deploy/settings/screenshots.js.map +1 -0
- package/dist/deploy/settings/starter.d.ts +4 -0
- package/dist/deploy/settings/starter.d.ts.map +1 -0
- package/dist/deploy/settings/starter.js +28 -0
- package/dist/deploy/settings/starter.js.map +1 -0
- package/dist/deploy/settings/version.d.ts +9 -0
- package/dist/deploy/settings/version.d.ts.map +1 -0
- package/dist/deploy/settings/version.js +37 -0
- package/dist/deploy/settings/version.js.map +1 -0
- package/dist/deploy/targets/appimage.d.ts +4 -0
- package/dist/deploy/targets/appimage.d.ts.map +1 -0
- package/dist/deploy/targets/appimage.js +105 -0
- package/dist/deploy/targets/appimage.js.map +1 -0
- package/dist/deploy/targets/deb.d.ts +4 -0
- package/dist/deploy/targets/deb.d.ts.map +1 -0
- package/dist/deploy/targets/deb.js +4 -0
- package/dist/deploy/targets/deb.js.map +1 -0
- package/dist/deploy/targets/flatpak-manifest.d.ts +6 -0
- package/dist/deploy/targets/flatpak-manifest.d.ts.map +1 -0
- package/dist/deploy/targets/flatpak-manifest.js +48 -0
- package/dist/deploy/targets/flatpak-manifest.js.map +1 -0
- package/dist/deploy/targets/flatpak-prebuilt.d.ts +8 -0
- package/dist/deploy/targets/flatpak-prebuilt.d.ts.map +1 -0
- package/dist/deploy/targets/flatpak-prebuilt.js +43 -0
- package/dist/deploy/targets/flatpak-prebuilt.js.map +1 -0
- package/dist/deploy/targets/flatpak-source.d.ts +5 -0
- package/dist/deploy/targets/flatpak-source.d.ts.map +1 -0
- package/dist/deploy/targets/flatpak-source.js +110 -0
- package/dist/deploy/targets/flatpak-source.js.map +1 -0
- package/dist/deploy/targets/flatpak-sources.d.ts +17 -0
- package/dist/deploy/targets/flatpak-sources.d.ts.map +1 -0
- package/dist/deploy/targets/flatpak-sources.js +108 -0
- package/dist/deploy/targets/flatpak-sources.js.map +1 -0
- package/dist/deploy/targets/flatpak.d.ts +4 -0
- package/dist/deploy/targets/flatpak.d.ts.map +1 -0
- package/dist/deploy/targets/flatpak.js +112 -0
- package/dist/deploy/targets/flatpak.js.map +1 -0
- package/dist/deploy/targets/nfpm-target.d.ts +5 -0
- package/dist/deploy/targets/nfpm-target.d.ts.map +1 -0
- package/dist/deploy/targets/nfpm-target.js +26 -0
- package/dist/deploy/targets/nfpm-target.js.map +1 -0
- package/dist/deploy/targets/rpm.d.ts +4 -0
- package/dist/deploy/targets/rpm.d.ts.map +1 -0
- package/dist/deploy/targets/rpm.js +4 -0
- package/dist/deploy/targets/rpm.js.map +1 -0
- package/dist/deploy/tools.d.ts +18 -0
- package/dist/deploy/tools.d.ts.map +1 -0
- package/dist/deploy/tools.js +92 -0
- package/dist/deploy/tools.js.map +1 -0
- package/dist/deploy/types.d.ts +140 -0
- package/dist/deploy/types.d.ts.map +1 -0
- package/dist/deploy/types.js +2 -0
- package/dist/deploy/types.js.map +1 -0
- package/dist/deploy/vendored/appimagetool.d.ts +7 -0
- package/dist/deploy/vendored/appimagetool.d.ts.map +1 -0
- package/dist/deploy/vendored/appimagetool.js +42 -0
- package/dist/deploy/vendored/appimagetool.js.map +1 -0
- package/dist/deploy/vendored/nfpm.d.ts +3 -0
- package/dist/deploy/vendored/nfpm.d.ts.map +1 -0
- package/dist/deploy/vendored/nfpm.js +60 -0
- package/dist/deploy/vendored/nfpm.js.map +1 -0
- package/dist/dev/change-queue.d.ts +11 -0
- package/dist/dev/change-queue.d.ts.map +1 -0
- package/dist/dev/change-queue.js +34 -0
- package/dist/dev/change-queue.js.map +1 -0
- package/dist/dev/failure-tracker.d.ts +10 -0
- package/dist/dev/failure-tracker.d.ts.map +1 -0
- package/dist/dev/failure-tracker.js +61 -0
- package/dist/dev/failure-tracker.js.map +1 -0
- package/dist/dev/missing-import.d.ts +4 -0
- package/dist/dev/missing-import.d.ts.map +1 -0
- package/dist/dev/missing-import.js +23 -0
- package/dist/dev/missing-import.js.map +1 -0
- package/dist/dev/runner-deps.d.ts.map +1 -1
- package/dist/dev/runner-deps.js +25 -6
- package/dist/dev/runner-deps.js.map +1 -1
- package/dist/dev/runner.d.ts +8 -4
- package/dist/dev/runner.d.ts.map +1 -1
- package/dist/dev/runner.js +334 -66
- package/dist/dev/runner.js.map +1 -1
- package/dist/dev/supervisor.d.ts +1 -2
- package/dist/dev/supervisor.d.ts.map +1 -1
- package/dist/dev/supervisor.js +1 -1
- package/dist/dev/supervisor.js.map +1 -1
- package/dist/dev/vite-dev-server.d.ts +13 -2
- package/dist/dev/vite-dev-server.d.ts.map +1 -1
- package/dist/dev/vite-dev-server.js +30 -2
- package/dist/dev/vite-dev-server.js.map +1 -1
- package/dist/internal/entry-arg.d.ts +1 -7
- package/dist/internal/entry-arg.d.ts.map +1 -1
- package/dist/internal/entry-arg.js +18 -11
- package/dist/internal/entry-arg.js.map +1 -1
- package/dist/internal/module-loads.d.ts +7 -0
- package/dist/internal/module-loads.d.ts.map +1 -0
- package/dist/internal/module-loads.js +21 -0
- package/dist/internal/module-loads.js.map +1 -0
- package/dist/internal/prepare-project.d.ts +16 -0
- package/dist/internal/prepare-project.d.ts.map +1 -0
- package/dist/internal/prepare-project.js +15 -0
- package/dist/internal/prepare-project.js.map +1 -0
- package/dist/internal/run-cli-tool.d.ts +2 -1
- package/dist/internal/run-cli-tool.d.ts.map +1 -1
- package/dist/internal/run-cli-tool.js +15 -6
- package/dist/internal/run-cli-tool.js.map +1 -1
- package/dist/internal/staging-dir.d.ts +8 -1
- package/dist/internal/staging-dir.d.ts.map +1 -1
- package/dist/internal/staging-dir.js +38 -2
- package/dist/internal/staging-dir.js.map +1 -1
- package/dist/mcp/serialize-widget.d.ts +2 -1
- package/dist/mcp/serialize-widget.d.ts.map +1 -1
- package/dist/mcp/serialize-widget.js +1 -1
- package/dist/mcp/serialize-widget.js.map +1 -1
- package/dist/mcp/testing-loader.d.ts +5 -2
- package/dist/mcp/testing-loader.d.ts.map +1 -1
- package/dist/mcp/testing-loader.js +7 -3
- package/dist/mcp/testing-loader.js.map +1 -1
- package/dist/refresh-runtime.d.ts +2 -1
- package/dist/refresh-runtime.d.ts.map +1 -1
- package/dist/refresh-runtime.js +32 -2
- package/dist/refresh-runtime.js.map +1 -1
- package/dist/settings/schema.d.ts +1 -2
- package/dist/settings/schema.d.ts.map +1 -1
- package/dist/settings/schema.js +1 -1
- package/dist/settings/schema.js.map +1 -1
- package/dist/vite-plugins/asset-extensions.d.ts +2 -1
- package/dist/vite-plugins/asset-extensions.d.ts.map +1 -1
- package/dist/vite-plugins/asset-extensions.js +2 -1
- package/dist/vite-plugins/asset-extensions.js.map +1 -1
- package/dist/vite-plugins/asset-imports.d.ts +4 -0
- package/dist/vite-plugins/asset-imports.d.ts.map +1 -0
- package/dist/vite-plugins/asset-imports.js +88 -0
- package/dist/vite-plugins/asset-imports.js.map +1 -0
- package/dist/vite-plugins/asset-specifier.d.ts +5 -0
- package/dist/vite-plugins/asset-specifier.d.ts.map +1 -0
- package/dist/vite-plugins/asset-specifier.js +7 -0
- package/dist/vite-plugins/asset-specifier.js.map +1 -0
- package/dist/vite-plugins/esm-extension.d.ts +4 -0
- package/dist/vite-plugins/esm-extension.d.ts.map +1 -0
- package/dist/vite-plugins/esm-extension.js +4 -0
- package/dist/vite-plugins/esm-extension.js.map +1 -0
- package/dist/vite-plugins/fast-refresh/swc-refresh.d.ts +1 -3
- package/dist/vite-plugins/fast-refresh/swc-refresh.d.ts.map +1 -1
- package/dist/vite-plugins/fast-refresh/swc-refresh.js +1 -1
- package/dist/vite-plugins/fast-refresh/swc-refresh.js.map +1 -1
- package/dist/vite-plugins/index.d.ts.map +1 -1
- package/dist/vite-plugins/index.js +4 -0
- package/dist/vite-plugins/index.js.map +1 -1
- package/dist/vite-plugins/resource-shared.d.ts +2 -1
- package/dist/vite-plugins/resource-shared.d.ts.map +1 -1
- package/dist/vite-plugins/resource-shared.js +2 -1
- package/dist/vite-plugins/resource-shared.js.map +1 -1
- package/dist/vite-plugins/resources.d.ts.map +1 -1
- package/dist/vite-plugins/resources.js +30 -29
- package/dist/vite-plugins/resources.js.map +1 -1
- package/dist/vite-plugins/self-contained.d.ts +4 -0
- package/dist/vite-plugins/self-contained.d.ts.map +1 -0
- package/dist/vite-plugins/self-contained.js +244 -0
- package/dist/vite-plugins/self-contained.js.map +1 -0
- package/dist/vite-plugins/settings.d.ts.map +1 -1
- package/dist/vite-plugins/settings.js +19 -40
- package/dist/vite-plugins/settings.js.map +1 -1
- package/dist/vite-plugins/store-links.d.ts +4 -0
- package/dist/vite-plugins/store-links.d.ts.map +1 -0
- package/dist/vite-plugins/store-links.js +19 -0
- package/dist/vite-plugins/store-links.js.map +1 -0
- package/dist/vite-plugins/undeclared-library.d.ts.map +1 -1
- package/dist/vite-plugins/undeclared-library.js +51 -12
- package/dist/vite-plugins/undeclared-library.js.map +1 -1
- package/dist/vite-plugins/worker.d.ts.map +1 -1
- package/dist/vite-plugins/worker.js +3 -1
- package/dist/vite-plugins/worker.js.map +1 -1
- package/env.d.ts +106 -25
- package/package.json +20 -13
- package/src/builder.ts +22 -4
- package/src/cli.ts +7 -2
- package/src/codegen/freshness.ts +2 -2
- package/src/codegen/run-codegen.ts +37 -23
- package/src/codegen/store-resolver.ts +1 -1
- package/src/commands/build.ts +5 -6
- package/src/commands/codegen.ts +14 -1
- package/src/commands/deploy.ts +47 -0
- package/src/commands/dev.ts +4 -4
- package/src/commands/docs.ts +39 -4
- package/src/deploy/depends.ts +42 -0
- package/src/deploy/download.ts +148 -0
- package/src/deploy/freedesktop/copyright.ts +41 -0
- package/src/deploy/freedesktop/dbus-service.ts +19 -0
- package/src/deploy/freedesktop/desktop-entry.ts +102 -0
- package/src/deploy/freedesktop/ini.ts +39 -0
- package/src/deploy/freedesktop/metainfo-sections.ts +116 -0
- package/src/deploy/freedesktop/metainfo.ts +46 -0
- package/src/deploy/freedesktop/mime-package.ts +28 -0
- package/src/deploy/freedesktop/validate.ts +124 -0
- package/src/deploy/freedesktop/xml.ts +53 -0
- package/src/deploy/git.ts +20 -0
- package/src/deploy/install-hints.ts +108 -0
- package/src/deploy/nfpm/config.ts +153 -0
- package/src/deploy/nfpm/contents.ts +69 -0
- package/src/deploy/nfpm/description.ts +11 -0
- package/src/deploy/nfpm/optional.ts +8 -0
- package/src/deploy/nfpm/pack.ts +44 -0
- package/src/deploy/node-runtime/download.ts +48 -0
- package/src/deploy/node-runtime/elf.ts +145 -0
- package/src/deploy/node-runtime/guard.ts +29 -0
- package/src/deploy/node-runtime/index.ts +80 -0
- package/src/deploy/payload/copy-tree.ts +51 -0
- package/src/deploy/payload/icons.ts +80 -0
- package/src/deploy/payload/launcher.ts +27 -0
- package/src/deploy/payload/schemas.ts +27 -0
- package/src/deploy/payload/stage.ts +145 -0
- package/src/deploy/registry.ts +40 -0
- package/src/deploy/run-deploy.ts +235 -0
- package/src/deploy/settings/arch.ts +18 -0
- package/src/deploy/settings/categories.ts +39 -0
- package/src/deploy/settings/exec.ts +29 -0
- package/src/deploy/settings/identity.ts +133 -0
- package/src/deploy/settings/index.ts +189 -0
- package/src/deploy/settings/package-manifest.ts +66 -0
- package/src/deploy/settings/paths.ts +115 -0
- package/src/deploy/settings/screenshots.ts +125 -0
- package/src/deploy/settings/starter.ts +41 -0
- package/src/deploy/settings/version.ts +59 -0
- package/src/deploy/targets/appimage.ts +140 -0
- package/src/deploy/targets/deb.ts +6 -0
- package/src/deploy/targets/flatpak-manifest.ts +61 -0
- package/src/deploy/targets/flatpak-prebuilt.ts +59 -0
- package/src/deploy/targets/flatpak-source.ts +168 -0
- package/src/deploy/targets/flatpak-sources.ts +171 -0
- package/src/deploy/targets/flatpak.ts +143 -0
- package/src/deploy/targets/nfpm-target.ts +33 -0
- package/src/deploy/targets/rpm.ts +6 -0
- package/src/deploy/tools.ts +135 -0
- package/src/deploy/types.ts +174 -0
- package/src/deploy/vendored/appimagetool.ts +57 -0
- package/src/deploy/vendored/nfpm.ts +79 -0
- package/src/dev/change-queue.ts +59 -0
- package/src/dev/failure-tracker.ts +92 -0
- package/src/dev/missing-import.ts +32 -0
- package/src/dev/runner-deps.ts +34 -6
- package/src/dev/runner.ts +506 -102
- package/src/dev/supervisor.ts +0 -3
- package/src/dev/vite-dev-server.ts +54 -3
- package/src/internal/entry-arg.ts +25 -11
- package/src/internal/module-loads.ts +32 -0
- package/src/internal/prepare-project.ts +23 -0
- package/src/internal/run-cli-tool.ts +22 -6
- package/src/internal/staging-dir.ts +57 -2
- package/src/mcp/serialize-widget.ts +3 -2
- package/src/mcp/testing-loader.ts +19 -4
- package/src/refresh-runtime.ts +48 -2
- package/src/settings/schema.ts +0 -1
- package/src/vite-plugins/asset-extensions.ts +2 -1
- package/src/vite-plugins/asset-imports.ts +134 -0
- package/src/vite-plugins/asset-specifier.ts +9 -0
- package/src/vite-plugins/esm-extension.ts +4 -0
- package/src/vite-plugins/fast-refresh/swc-refresh.ts +1 -1
- package/src/vite-plugins/index.ts +4 -0
- package/src/vite-plugins/resource-shared.ts +2 -0
- package/src/vite-plugins/resources.ts +33 -33
- package/src/vite-plugins/self-contained.ts +352 -0
- package/src/vite-plugins/settings.ts +21 -48
- package/src/vite-plugins/store-links.ts +25 -0
- package/src/vite-plugins/undeclared-library.ts +74 -12
- package/src/vite-plugins/worker.ts +4 -1
- package/dist/internal.d.ts +0 -3
- package/dist/internal.d.ts.map +0 -1
- package/dist/internal.js +0 -3
- package/dist/internal.js.map +0 -1
- package/src/internal.ts +0 -2
|
@@ -4,8 +4,9 @@ import { join } from "node:path";
|
|
|
4
4
|
const removeTempDir = (dir) => {
|
|
5
5
|
rmSync(dir, { recursive: true, force: true, maxRetries: 5 });
|
|
6
6
|
};
|
|
7
|
+
const createStagingDir = (prefix) => mkdtempSync(join(tmpdir(), `gtkx-${prefix}-`));
|
|
7
8
|
const withStagingDir = (prefix, produce) => {
|
|
8
|
-
const dir =
|
|
9
|
+
const dir = createStagingDir(prefix);
|
|
9
10
|
try {
|
|
10
11
|
return produce(dir);
|
|
11
12
|
}
|
|
@@ -13,5 +14,40 @@ const withStagingDir = (prefix, produce) => {
|
|
|
13
14
|
removeTempDir(dir);
|
|
14
15
|
}
|
|
15
16
|
};
|
|
16
|
-
|
|
17
|
+
const createRetainedStagingDir = (prefix) => {
|
|
18
|
+
let path = null;
|
|
19
|
+
let cleanupProcessExit = null;
|
|
20
|
+
const release = () => {
|
|
21
|
+
if (path !== null && cleanupProcessExit) {
|
|
22
|
+
removeTempDir(path);
|
|
23
|
+
process.removeListener("exit", cleanupProcessExit);
|
|
24
|
+
cleanupProcessExit = null;
|
|
25
|
+
}
|
|
26
|
+
path = null;
|
|
27
|
+
};
|
|
28
|
+
const retain = () => {
|
|
29
|
+
if (path !== null) {
|
|
30
|
+
return path;
|
|
31
|
+
}
|
|
32
|
+
const dir = createStagingDir(prefix);
|
|
33
|
+
path = dir;
|
|
34
|
+
cleanupProcessExit = () => {
|
|
35
|
+
removeTempDir(dir);
|
|
36
|
+
};
|
|
37
|
+
process.once("exit", cleanupProcessExit);
|
|
38
|
+
return dir;
|
|
39
|
+
};
|
|
40
|
+
const adopt = (dir) => {
|
|
41
|
+
release();
|
|
42
|
+
path = dir;
|
|
43
|
+
return dir;
|
|
44
|
+
};
|
|
45
|
+
return {
|
|
46
|
+
getPath: () => path,
|
|
47
|
+
adopt,
|
|
48
|
+
retain,
|
|
49
|
+
release,
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
export { createRetainedStagingDir, removeTempDir, withStagingDir };
|
|
17
53
|
//# sourceMappingURL=staging-dir.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staging-dir.js","sourceRoot":"","sources":["../../src/internal/staging-dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"staging-dir.js","sourceRoot":"","sources":["../../src/internal/staging-dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AASjC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAQ,EAAE;IACxC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAU,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,MAAM,GAAG,CAAC,CAAC,CAAC;AAEpG,MAAM,cAAc,GAAG,CAAI,MAAc,EAAE,OAA2B,EAAK,EAAE;IACzE,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAErC,IAAI,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;YAAS,CAAC;QACP,aAAa,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,MAAc,EAAsB,EAAE;IACpE,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,IAAI,kBAAkB,GAAwB,IAAI,CAAC;IAEnD,MAAM,OAAO,GAAG,GAAS,EAAE;QACvB,IAAI,IAAI,KAAK,IAAI,IAAI,kBAAkB,EAAE,CAAC;YACtC,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YACnD,kBAAkB,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,IAAI,GAAG,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAW,EAAE;QACxB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,GAAG,GAAG,CAAC;QAEX,kBAAkB,GAAG,GAAS,EAAE;YAC5B,aAAa,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAEzC,OAAO,GAAG,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,GAAW,EAAU,EAAE;QAClC,OAAO,EAAE,CAAC;QACV,IAAI,GAAG,GAAG,CAAC;QAEX,OAAO,GAAG,CAAC;IACf,CAAC,CAAC;IAEF,OAAO;QACH,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;QACnB,KAAK;QACL,MAAM;QACN,OAAO;KACV,CAAC;AACN,CAAC,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAA2B,cAAc,EAAE,CAAC","sourcesContent":["import { mkdtempSync, rmSync } from \"node:fs\";\nimport { tmpdir } from \"node:os\";\nimport { join } from \"node:path\";\n\ntype RetainedStagingDir = {\n getPath: () => string | null;\n adopt: (dir: string) => string;\n retain: () => string;\n release: () => void;\n};\n\nconst removeTempDir = (dir: string): void => {\n rmSync(dir, { recursive: true, force: true, maxRetries: 5 });\n};\n\nconst createStagingDir = (prefix: string): string => mkdtempSync(join(tmpdir(), `gtkx-${prefix}-`));\n\nconst withStagingDir = <T>(prefix: string, produce: (dir: string) => T): T => {\n const dir = createStagingDir(prefix);\n\n try {\n return produce(dir);\n } finally {\n removeTempDir(dir);\n }\n};\n\nconst createRetainedStagingDir = (prefix: string): RetainedStagingDir => {\n let path: string | null = null;\n let cleanupProcessExit: (() => void) | null = null;\n\n const release = (): void => {\n if (path !== null && cleanupProcessExit) {\n removeTempDir(path);\n process.removeListener(\"exit\", cleanupProcessExit);\n cleanupProcessExit = null;\n }\n\n path = null;\n };\n\n const retain = (): string => {\n if (path !== null) {\n return path;\n }\n\n const dir = createStagingDir(prefix);\n path = dir;\n\n cleanupProcessExit = (): void => {\n removeTempDir(dir);\n };\n\n process.once(\"exit\", cleanupProcessExit);\n\n return dir;\n };\n\n const adopt = (dir: string): string => {\n release();\n path = dir;\n\n return dir;\n };\n\n return {\n getPath: () => path,\n adopt,\n retain,\n release,\n };\n};\n\nexport { createRetainedStagingDir, removeTempDir, type RetainedStagingDir, withStagingDir };\n"]}
|
|
@@ -3,8 +3,9 @@ import { type SerializedWidget } from "@gtkx/mcp/internal";
|
|
|
3
3
|
type WidgetIdResolver = (widget: Gtk.Widget) => string;
|
|
4
4
|
type WidgetFormatting = {
|
|
5
5
|
formatRole(role: Gtk.AccessibleRole): string;
|
|
6
|
+
getTypeTag(widget: Gtk.Widget): string;
|
|
6
7
|
getWidgetText(widget: Gtk.Widget): string | null;
|
|
7
8
|
};
|
|
8
9
|
declare const serializeWidget: (widget: Gtk.Widget, resolveId: WidgetIdResolver, testing: WidgetFormatting, maxDepth?: number) => SerializedWidget;
|
|
9
|
-
export { serializeWidget
|
|
10
|
+
export { serializeWidget };
|
|
10
11
|
//# sourceMappingURL=serialize-widget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize-widget.d.ts","sourceRoot":"","sources":["../../src/mcp/serialize-widget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAC;AACzC,OAAO,EAA8C,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEvG,KAAK,gBAAgB,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC;AAEvD,KAAK,gBAAgB,GAAG;IACpB,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,GAAG,MAAM,CAAC;IAC7C,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACpD,CAAC;AAyDF,QAAA,MAAM,eAAe,GACjB,QAAQ,GAAG,CAAC,MAAM,EAClB,WAAW,gBAAgB,EAC3B,SAAS,gBAAgB,EACzB,iBAAgC,KACjC,gBAkBF,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"serialize-widget.d.ts","sourceRoot":"","sources":["../../src/mcp/serialize-widget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAC;AACzC,OAAO,EAA8C,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEvG,KAAK,gBAAgB,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC;AAEvD,KAAK,gBAAgB,GAAG;IACpB,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,GAAG,MAAM,CAAC;IAC7C,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IACvC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACpD,CAAC;AAyDF,QAAA,MAAM,eAAe,GACjB,QAAQ,GAAG,CAAC,MAAM,EAClB,WAAW,gBAAgB,EAC3B,SAAS,gBAAgB,EACzB,iBAAgC,KACjC,gBAkBF,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -10,7 +10,7 @@ const getChildren = (widget) => {
|
|
|
10
10
|
};
|
|
11
11
|
const createNode = (widget, expansion) => ({
|
|
12
12
|
id: expansion.resolveId(widget),
|
|
13
|
-
type:
|
|
13
|
+
type: expansion.testing.getTypeTag(widget),
|
|
14
14
|
role: expansion.testing.formatRole(widget.getAccessibleRole()),
|
|
15
15
|
name: widget.getName() || null,
|
|
16
16
|
text: expansion.testing.getWidgetText(widget),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize-widget.js","sourceRoot":"","sources":["../../src/mcp/serialize-widget.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAyB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"serialize-widget.js","sourceRoot":"","sources":["../../src/mcp/serialize-widget.ts"],"names":[],"mappings":"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","sourcesContent":["import type * as Gtk from \"@gtkx/gi/gtk\";\nimport { DEFAULT_SUBTREE_DEPTH, MAX_SUBTREE_WIDGETS, type SerializedWidget } from \"@gtkx/mcp/internal\";\n\ntype WidgetIdResolver = (widget: Gtk.Widget) => string;\n\ntype WidgetFormatting = {\n formatRole(role: Gtk.AccessibleRole): string;\n getTypeTag(widget: Gtk.Widget): string;\n getWidgetText(widget: Gtk.Widget): string | null;\n};\n\ntype PendingWidget = {\n depth: number;\n node: SerializedWidget;\n widget: Gtk.Widget;\n};\n\ntype Expansion = {\n budget: number;\n maxDepth: number;\n pending: PendingWidget[];\n resolveId: WidgetIdResolver;\n testing: WidgetFormatting;\n};\n\nconst getChildren = (widget: Gtk.Widget): Gtk.Widget[] => {\n const children: Gtk.Widget[] = [];\n let child = widget.getFirstChild();\n\n while (child) {\n children.push(child);\n child = child.getNextSibling();\n }\n\n return children;\n};\n\nconst createNode = (widget: Gtk.Widget, expansion: Expansion): SerializedWidget => ({\n id: expansion.resolveId(widget),\n type: expansion.testing.getTypeTag(widget),\n role: expansion.testing.formatRole(widget.getAccessibleRole()),\n name: widget.getName() || null,\n text: expansion.testing.getWidgetText(widget),\n isSensitive: widget.getSensitive(),\n isVisible: widget.getVisible(),\n cssClasses: widget.getCssClasses(),\n children: [],\n});\n\nconst expandNode = (expansion: Expansion, parent: PendingWidget): void => {\n const children = getChildren(parent.widget);\n const canDescend = parent.depth < expansion.maxDepth;\n const shownCount = canDescend ? Math.min(children.length, expansion.budget) : 0;\n expansion.budget -= shownCount;\n\n for (const child of children.slice(0, shownCount)) {\n const node = createNode(child, expansion);\n parent.node.children.push(node);\n expansion.pending.push({ depth: parent.depth + 1, node, widget: child });\n }\n\n if (shownCount < children.length) {\n parent.node.hiddenChildren = children.length - shownCount;\n }\n};\n\nconst serializeWidget = (\n widget: Gtk.Widget,\n resolveId: WidgetIdResolver,\n testing: WidgetFormatting,\n maxDepth = DEFAULT_SUBTREE_DEPTH,\n): SerializedWidget => {\n const expansion: Expansion = {\n budget: MAX_SUBTREE_WIDGETS - 1,\n maxDepth,\n pending: [],\n resolveId,\n testing,\n };\n\n const root = createNode(widget, expansion);\n let parent: PendingWidget | undefined = { depth: 0, node: root, widget };\n\n while (parent !== undefined) {\n expandNode(expansion, parent);\n parent = expansion.pending.shift();\n }\n\n return root;\n};\n\nexport { serializeWidget };\n"]}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
type
|
|
1
|
+
type TestingPublicModule = typeof import("@gtkx/testing");
|
|
2
|
+
type TestingInternalModule = typeof import("@gtkx/testing/internal");
|
|
3
|
+
type TestingModule = TestingPublicModule & Pick<TestingInternalModule, "getTypeTag">;
|
|
2
4
|
type TestingModuleLoader = () => Promise<TestingModule>;
|
|
3
5
|
declare const setTestingModuleLoader: (next: TestingModuleLoader | null) => void, loadTestingModule: () => Promise<TestingModule>;
|
|
4
|
-
|
|
6
|
+
declare function mergeTestingModule(publicApi: TestingPublicModule, internals: TestingInternalModule): TestingModule;
|
|
7
|
+
export { setTestingModuleLoader, loadTestingModule, mergeTestingModule, type TestingInternalModule, type TestingModule, type TestingPublicModule, };
|
|
5
8
|
//# sourceMappingURL=testing-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing-loader.d.ts","sourceRoot":"","sources":["../../src/mcp/testing-loader.ts"],"names":[],"mappings":"AAAA,KAAK,
|
|
1
|
+
{"version":3,"file":"testing-loader.d.ts","sourceRoot":"","sources":["../../src/mcp/testing-loader.ts"],"names":[],"mappings":"AAAA,KAAK,mBAAmB,GAAG,cAAc,eAAe,CAAC,CAAC;AAC1D,KAAK,qBAAqB,GAAG,cAAc,wBAAwB,CAAC,CAAC;AACrE,KAAK,aAAa,GAAG,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AACrF,KAAK,mBAAmB,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;AAaxD,QAAA,MAAmB,sBAAsB,SAVnB,mBAAmB,GAAG,IAAI,KAAK,IAAI,EAUR,iBAAiB,QATlD,OAAO,CAAC,aAAa,CAS4D,CAAC;AAElG,iBAAS,kBAAkB,CAAC,SAAS,EAAE,mBAAmB,EAAE,SAAS,EAAE,qBAAqB,GAAG,aAAa,CAE3G;AA4DD,OAAO,EACH,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,mBAAmB,GAC3B,CAAC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
const { setLoader: setTestingModuleLoader, load: loadTestingModule } = createTestingModuleCache();
|
|
2
|
-
function
|
|
3
|
-
return
|
|
2
|
+
function mergeTestingModule(publicApi, internals) {
|
|
3
|
+
return { ...publicApi, getTypeTag: internals.getTypeTag };
|
|
4
|
+
}
|
|
5
|
+
async function defaultLoader() {
|
|
6
|
+
const [publicApi, internals] = await Promise.all([import("@gtkx/testing"), import("@gtkx/testing/internal")]);
|
|
7
|
+
return mergeTestingModule(publicApi, internals);
|
|
4
8
|
}
|
|
5
9
|
function missingTestingPackageError(cause) {
|
|
6
10
|
return new Error("@gtkx/testing is not installed, install it to enable MCP widget interactions: " +
|
|
@@ -43,5 +47,5 @@ function createTestingModuleCache() {
|
|
|
43
47
|
load: () => loadCachedTestingModule(state),
|
|
44
48
|
};
|
|
45
49
|
}
|
|
46
|
-
export { setTestingModuleLoader, loadTestingModule };
|
|
50
|
+
export { setTestingModuleLoader, loadTestingModule, mergeTestingModule, };
|
|
47
51
|
//# sourceMappingURL=testing-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing-loader.js","sourceRoot":"","sources":["../../src/mcp/testing-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"testing-loader.js","sourceRoot":"","sources":["../../src/mcp/testing-loader.ts"],"names":[],"mappings":"AAgBA,MAAM,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,wBAAwB,EAAE,CAAC;AAElG,SAAS,kBAAkB,CAAC,SAA8B,EAAE,SAAgC;IACxF,OAAO,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC;AAC9D,CAAC;AAED,KAAK,UAAU,aAAa;IACxB,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAE9G,OAAO,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAc;IAC9C,OAAO,IAAI,KAAK,CACZ,gFAAgF;QAChF,6CAA6C,MAAM,CAAC,KAAK,CAAC,GAAG,EAC7D,EAAE,KAAK,EAAE,CACZ,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,KAAyB,EAAE,IAAgC;IAC9E,KAAK,CAAC,MAAM,GAAG,IAAI,IAAI,aAAa,CAAC;IACrC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,KAAyB;IACxD,IAAI,CAAC;QACD,KAAK,CAAC,aAAa,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QAE3C,OAAO,KAAK,CAAC,aAAa,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,KAAK,CAAC,gBAAgB,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,KAAK,CAAC,gBAAgB,CAAC;IACjC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAyB;IACtD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,wBAAwB;IAC7B,MAAM,KAAK,GAAuB;QAC9B,MAAM,EAAE,aAAa;QACrB,aAAa,EAAE,IAAI;QACnB,gBAAgB,EAAE,IAAI;KACzB,CAAC;IAEF,OAAO;QACH,SAAS,EAAE,CAAC,IAAgC,EAAQ,EAAE;YAClD,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,EAAE,GAA2B,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC;KACrE,CAAC;AACN,CAAC;AAED,OAAO,EACH,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,GAIrB,CAAC","sourcesContent":["type TestingPublicModule = typeof import(\"@gtkx/testing\");\ntype TestingInternalModule = typeof import(\"@gtkx/testing/internal\");\ntype TestingModule = TestingPublicModule & Pick<TestingInternalModule, \"getTypeTag\">;\ntype TestingModuleLoader = () => Promise<TestingModule>;\n\ntype TestingModuleCache = {\n setLoader: (next: TestingModuleLoader | null) => void;\n load: () => Promise<TestingModule>;\n};\n\ntype TestingModuleState = {\n loader: TestingModuleLoader;\n testingModule: TestingModule | null;\n testingLoadError: Error | null;\n};\n\nconst { setLoader: setTestingModuleLoader, load: loadTestingModule } = createTestingModuleCache();\n\nfunction mergeTestingModule(publicApi: TestingPublicModule, internals: TestingInternalModule): TestingModule {\n return { ...publicApi, getTypeTag: internals.getTypeTag };\n}\n\nasync function defaultLoader(): Promise<TestingModule> {\n const [publicApi, internals] = await Promise.all([import(\"@gtkx/testing\"), import(\"@gtkx/testing/internal\")]);\n\n return mergeTestingModule(publicApi, internals);\n}\n\nfunction missingTestingPackageError(cause: unknown): Error {\n return new Error(\n \"@gtkx/testing is not installed, install it to enable MCP widget interactions: \" +\n `pnpm add -D @gtkx/testing (import failed: ${String(cause)})`,\n { cause },\n );\n}\n\nfunction replaceLoader(state: TestingModuleState, next: TestingModuleLoader | null): void {\n state.loader = next ?? defaultLoader;\n state.testingModule = null;\n state.testingLoadError = null;\n}\n\nasync function importTestingModule(state: TestingModuleState): Promise<TestingModule> {\n try {\n state.testingModule = await state.loader();\n\n return state.testingModule;\n } catch (error) {\n state.testingLoadError = missingTestingPackageError(error);\n throw state.testingLoadError;\n }\n}\n\nfunction loadCachedTestingModule(state: TestingModuleState): Promise<TestingModule> {\n if (state.testingModule) {\n return Promise.resolve(state.testingModule);\n }\n\n if (state.testingLoadError) {\n return Promise.reject(state.testingLoadError);\n }\n\n return importTestingModule(state);\n}\n\nfunction createTestingModuleCache(): TestingModuleCache {\n const state: TestingModuleState = {\n loader: defaultLoader,\n testingModule: null,\n testingLoadError: null,\n };\n\n return {\n setLoader: (next: TestingModuleLoader | null): void => {\n replaceLoader(state, next);\n },\n load: (): Promise<TestingModule> => loadCachedTestingModule(state),\n };\n}\n\nexport {\n setTestingModuleLoader,\n loadTestingModule,\n mergeTestingModule,\n type TestingInternalModule,\n type TestingModule,\n type TestingPublicModule,\n};\n"]}
|
|
@@ -6,6 +6,7 @@ declare function createModuleRegistration(moduleId: string): {
|
|
|
6
6
|
$RefreshSig$: typeof RefreshRuntime.createSignatureFunctionForTransform;
|
|
7
7
|
};
|
|
8
8
|
declare function isRefreshBoundary(moduleExports: Record<string, unknown>): boolean;
|
|
9
|
+
declare const staleExportName: (previous: Record<string, unknown>, current: Record<string, unknown>) => string | null;
|
|
9
10
|
declare function performRefresh(): void;
|
|
10
|
-
export { createModuleRegistration, isRefreshBoundary, performRefresh };
|
|
11
|
+
export { createModuleRegistration, isRefreshBoundary, performRefresh, staleExportName };
|
|
11
12
|
//# sourceMappingURL=refresh-runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh-runtime.d.ts","sourceRoot":"","sources":["../src/refresh-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"refresh-runtime.d.ts","sourceRoot":"","sources":["../src/refresh-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,cAA+B,MAAM,uBAAuB,CAAC;AACpE,OAAO,sBAAsB,CAAC;AAE9B,KAAK,aAAa,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAOrD,iBAAS,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG;IACjD,YAAY,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,YAAY,EAAE,OAAO,cAAc,CAAC,mCAAmC,CAAC;CAC3E,CAOA;AAeD,iBAAS,iBAAiB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAU1E;AA+BD,QAAA,MAAM,eAAe,GAAI,UAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,MAAM,GAAG,IAUvG,CAAC;AAEF,iBAAS,cAAc,IAAI,IAAI,CAE9B;AAED,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
|
package/dist/refresh-runtime.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import RefreshRuntime from "react-refresh/runtime";
|
|
1
|
+
import RefreshRuntime, {} from "react-refresh/runtime";
|
|
2
2
|
import "./refresh-globals.js";
|
|
3
3
|
function createModuleRegistration(moduleId) {
|
|
4
4
|
return {
|
|
@@ -26,8 +26,38 @@ function isRefreshBoundary(moduleExports) {
|
|
|
26
26
|
}
|
|
27
27
|
return Object.keys(moduleExports).some((k) => k !== "__esModule");
|
|
28
28
|
}
|
|
29
|
+
const exportedFamilies = (moduleExports) => {
|
|
30
|
+
const families = new Set();
|
|
31
|
+
for (const key in moduleExports) {
|
|
32
|
+
const family = RefreshRuntime.getFamilyByType(moduleExports[key]);
|
|
33
|
+
if (family) {
|
|
34
|
+
families.add(family);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return families;
|
|
38
|
+
};
|
|
39
|
+
const patchedExports = (moduleExports) => ({
|
|
40
|
+
values: new Set(Object.values(moduleExports)),
|
|
41
|
+
families: exportedFamilies(moduleExports),
|
|
42
|
+
});
|
|
43
|
+
const isPatchedExport = (patched, value) => {
|
|
44
|
+
if (patched.values.has(value)) {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
const family = RefreshRuntime.getFamilyByType(value);
|
|
48
|
+
return family !== undefined && patched.families.has(family);
|
|
49
|
+
};
|
|
50
|
+
const staleExportName = (previous, current) => {
|
|
51
|
+
const patched = patchedExports(current);
|
|
52
|
+
for (const key in previous) {
|
|
53
|
+
if (!isPatchedExport(patched, previous[key])) {
|
|
54
|
+
return key;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return null;
|
|
58
|
+
};
|
|
29
59
|
function performRefresh() {
|
|
30
60
|
RefreshRuntime.performReactRefresh();
|
|
31
61
|
}
|
|
32
|
-
export { createModuleRegistration, isRefreshBoundary, performRefresh };
|
|
62
|
+
export { createModuleRegistration, isRefreshBoundary, performRefresh, staleExportName };
|
|
33
63
|
//# sourceMappingURL=refresh-runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh-runtime.js","sourceRoot":"","sources":["../src/refresh-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"refresh-runtime.js","sourceRoot":"","sources":["../src/refresh-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import RefreshRuntime, { type Family } from \"react-refresh/runtime\";\nimport \"./refresh-globals.js\";\n\ntype ComponentType = (...args: unknown[]) => unknown;\n\ntype PatchedExports = {\n values: Set<unknown>;\n families: Set<Family>;\n};\n\nfunction createModuleRegistration(moduleId: string): {\n $RefreshReg$: (type: ComponentType, id: string) => void;\n $RefreshSig$: typeof RefreshRuntime.createSignatureFunctionForTransform;\n} {\n return {\n $RefreshReg$: (type: ComponentType, id: string) => {\n RefreshRuntime.register(type, `${moduleId} ${id}`);\n },\n $RefreshSig$: RefreshRuntime.createSignatureFunctionForTransform,\n };\n}\n\nconst isComponentExport = (key: string, value: unknown): boolean =>\n key === \"__esModule\" || RefreshRuntime.isLikelyComponentType(value);\n\nconst areAllExportsComponents = (moduleExports: Record<string, unknown>): boolean => {\n for (const key in moduleExports) {\n if (!isComponentExport(key, moduleExports[key])) {\n return false;\n }\n }\n\n return true;\n};\n\nfunction isRefreshBoundary(moduleExports: Record<string, unknown>): boolean {\n if (RefreshRuntime.isLikelyComponentType(moduleExports)) {\n return true;\n }\n\n if (!areAllExportsComponents(moduleExports)) {\n return false;\n }\n\n return Object.keys(moduleExports).some((k) => k !== \"__esModule\");\n}\n\nconst exportedFamilies = (moduleExports: Record<string, unknown>): Set<Family> => {\n const families: Set<Family> = new Set();\n\n for (const key in moduleExports) {\n const family = RefreshRuntime.getFamilyByType(moduleExports[key]);\n\n if (family) {\n families.add(family);\n }\n }\n\n return families;\n};\n\nconst patchedExports = (moduleExports: Record<string, unknown>): PatchedExports => ({\n values: new Set(Object.values(moduleExports)),\n families: exportedFamilies(moduleExports),\n});\n\nconst isPatchedExport = (patched: PatchedExports, value: unknown): boolean => {\n if (patched.values.has(value)) {\n return true;\n }\n\n const family = RefreshRuntime.getFamilyByType(value);\n\n return family !== undefined && patched.families.has(family);\n};\n\nconst staleExportName = (previous: Record<string, unknown>, current: Record<string, unknown>): string | null => {\n const patched = patchedExports(current);\n\n for (const key in previous) {\n if (!isPatchedExport(patched, previous[key])) {\n return key;\n }\n }\n\n return null;\n};\n\nfunction performRefresh(): void {\n RefreshRuntime.performReactRefresh();\n}\n\nexport { createModuleRegistration, isRefreshBoundary, performRefresh, staleExportName };\n"]}
|
|
@@ -7,7 +7,6 @@ declare const prependSchemaDir: (dir: string, existing: string | undefined) => s
|
|
|
7
7
|
declare const stageSchema: (dir: string, filePath: string) => void;
|
|
8
8
|
declare const findSchemaFiles: (dataDir: string) => string[];
|
|
9
9
|
declare const stageAndCompileProjectSchemas: (root: string, dataDir: string | null) => string | null;
|
|
10
|
-
declare const schemaEnvPath: (rootDir: string) => string;
|
|
11
10
|
declare const emitSchemaEnv: (rootDir: string, dataDir: string | null) => SchemaEnvResult;
|
|
12
|
-
export { SCHEMA_SUFFIX, prependSchemaDir, stageSchema, findSchemaFiles, stageAndCompileProjectSchemas,
|
|
11
|
+
export { SCHEMA_SUFFIX, prependSchemaDir, stageSchema, findSchemaFiles, stageAndCompileProjectSchemas, emitSchemaEnv, };
|
|
13
12
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/settings/schema.ts"],"names":[],"mappings":"AAWA,KAAK,eAAe,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,QAAA,MAAM,aAAa,iBAAiB,CAAC;AAGrC,QAAA,MAAM,gBAAgB,GAAI,KAAK,MAAM,EAAE,UAAU,MAAM,GAAG,SAAS,KAAG,MAUrE,CAAC;AAKF,QAAA,MAAM,WAAW,GAAI,KAAK,MAAM,EAAE,UAAU,MAAM,KAAG,IAEpD,CAAC;AA6BF,QAAA,MAAM,eAAe,GAAI,SAAS,MAAM,KAAG,MAAM,EAKhD,CAAC;AAEF,QAAA,MAAM,6BAA6B,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,GAAG,IAAI,KAAG,MAAM,GAAG,IAwBtF,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/settings/schema.ts"],"names":[],"mappings":"AAWA,KAAK,eAAe,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,QAAA,MAAM,aAAa,iBAAiB,CAAC;AAGrC,QAAA,MAAM,gBAAgB,GAAI,KAAK,MAAM,EAAE,UAAU,MAAM,GAAG,SAAS,KAAG,MAUrE,CAAC;AAKF,QAAA,MAAM,WAAW,GAAI,KAAK,MAAM,EAAE,UAAU,MAAM,KAAG,IAEpD,CAAC;AA6BF,QAAA,MAAM,eAAe,GAAI,SAAS,MAAM,KAAG,MAAM,EAKhD,CAAC;AAEF,QAAA,MAAM,6BAA6B,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,GAAG,IAAI,KAAG,MAAM,GAAG,IAwBtF,CAAC;AAqDF,QAAA,MAAM,aAAa,GAAI,SAAS,MAAM,EAAE,SAAS,MAAM,GAAG,IAAI,KAAG,eAShE,CAAC;AAEF,OAAO,EACH,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,6BAA6B,EAC7B,aAAa,GAChB,CAAC"}
|
package/dist/settings/schema.js
CHANGED
|
@@ -117,5 +117,5 @@ const emitSchemaEnv = (rootDir, dataDir) => {
|
|
|
117
117
|
const isWritten = didWriteChanges(path, content);
|
|
118
118
|
return { path, isWritten };
|
|
119
119
|
};
|
|
120
|
-
export { SCHEMA_SUFFIX, prependSchemaDir, stageSchema, findSchemaFiles, stageAndCompileProjectSchemas,
|
|
120
|
+
export { SCHEMA_SUFFIX, prependSchemaDir, stageSchema, findSchemaFiles, stageAndCompileProjectSchemas, emitSchemaEnv, };
|
|
121
121
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
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 isWritten: 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, isWritten };\n};\n\nexport {\n SCHEMA_SUFFIX,\n prependSchemaDir,\n stageSchema,\n findSchemaFiles,\n stageAndCompileProjectSchemas,\n schemaEnvPath,\n emitSchemaEnv,\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 isWritten: 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, isWritten };\n};\n\nexport {\n SCHEMA_SUFFIX,\n prependSchemaDir,\n stageSchema,\n findSchemaFiles,\n stageAndCompileProjectSchemas,\n emitSchemaEnv,\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-extensions.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/asset-extensions.ts"],"names":[],"mappings":"AAyBA,QAAA,MAAM,QAAQ,QAAoE,CAAC;AACnF,QAAA,MAAM,aAAa,QAA6E,CAAC;
|
|
1
|
+
{"version":3,"file":"asset-extensions.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/asset-extensions.ts"],"names":[],"mappings":"AAyBA,QAAA,MAAM,QAAQ,QAAoE,CAAC;AACnF,QAAA,MAAM,aAAa,QAA6E,CAAC;AACjG,QAAA,MAAM,gBAAgB,QAAmE,CAAC;AAE1F,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -24,5 +24,6 @@ const ASSET_EXTENSIONS = [
|
|
|
24
24
|
];
|
|
25
25
|
const ASSET_RE = new RegExp(String.raw `\.(?:${ASSET_EXTENSIONS.join("|")})$`, "i");
|
|
26
26
|
const ASSET_PATH_RE = new RegExp(String.raw `\.(?:${ASSET_EXTENSIONS.join("|")})(?:\?.*)?$`, "i");
|
|
27
|
-
|
|
27
|
+
const ASSET_MENTION_RE = new RegExp(String.raw `\.(?:${ASSET_EXTENSIONS.join("|")})`, "i");
|
|
28
|
+
export { ASSET_MENTION_RE, ASSET_PATH_RE, ASSET_RE };
|
|
28
29
|
//# 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,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;
|
|
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;AACjG,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,QAAQ,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAE1F,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,QAAQ,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\");\nconst ASSET_MENTION_RE = new RegExp(String.raw`\\.(?:${ASSET_EXTENSIONS.join(\"|\")})`, \"i\");\n\nexport { ASSET_MENTION_RE, ASSET_PATH_RE, ASSET_RE };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-imports.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/asset-imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA8B,MAAM,EAAE,MAAM,MAAM,CAAC;AA0H/D,iBAAS,gBAAgB,IAAI,MAAM,CASlC;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { extname } from "node:path";
|
|
2
|
+
import { parseSync } from "vite";
|
|
3
|
+
import { ASSET_MENTION_RE } from "./asset-extensions.js";
|
|
4
|
+
import { DATA_PREFIX, isAssetSpecifier, isDataAsset } from "./asset-specifier.js";
|
|
5
|
+
import { RESOURCE_PATH_EXPORT } from "./resource-shared.js";
|
|
6
|
+
import { stripQuery } from "./strip-query.js";
|
|
7
|
+
const SOURCE_LANGUAGES = new Map([
|
|
8
|
+
[".cjs", "jsx"],
|
|
9
|
+
[".cts", "ts"],
|
|
10
|
+
[".js", "jsx"],
|
|
11
|
+
[".jsx", "jsx"],
|
|
12
|
+
[".mjs", "jsx"],
|
|
13
|
+
[".mts", "ts"],
|
|
14
|
+
[".ts", "ts"],
|
|
15
|
+
[".tsx", "tsx"],
|
|
16
|
+
]);
|
|
17
|
+
const NODE_MODULES = /(?:^|\/)node_modules\//;
|
|
18
|
+
const VIRTUAL_PREFIX = "\0";
|
|
19
|
+
const DEFAULT_BINDING = "default";
|
|
20
|
+
const RESOURCE_BINDING = JSON.stringify(RESOURCE_PATH_EXPORT);
|
|
21
|
+
const DATA_IMPORT_EXAMPLE = `"${DATA_PREFIX}<path>"`;
|
|
22
|
+
const URL_FALLBACK = ", or import the default for the asset URL.";
|
|
23
|
+
const BUNDLE_ADVICE = `An asset staged into the GResource bundle exports ${RESOURCE_BINDING} and a "resource://" default, and ` +
|
|
24
|
+
"nothing else.";
|
|
25
|
+
const QUERY_ADVICE = "A query suffix hands the import to the Vite asset pipeline instead of the GResource bundle; drop the " +
|
|
26
|
+
`query to keep ${RESOURCE_BINDING}${URL_FALLBACK}`;
|
|
27
|
+
const RELATIVE_ADVICE = `Only assets imported through "${DATA_PREFIX}" are staged into the GResource bundle and export ` +
|
|
28
|
+
`${RESOURCE_BINDING}; move the file under the data directory and import it as ` +
|
|
29
|
+
`${DATA_IMPORT_EXAMPLE}${URL_FALLBACK}`;
|
|
30
|
+
const boundName = (entry) => {
|
|
31
|
+
const { name } = entry.importName;
|
|
32
|
+
if (name === null || name === DEFAULT_BINDING || entry.isType) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
return name;
|
|
36
|
+
};
|
|
37
|
+
const importBindings = (statement) => statement.entries
|
|
38
|
+
.map((entry) => boundName(entry))
|
|
39
|
+
.filter((name) => name !== null)
|
|
40
|
+
.map((name) => ({ name, source: statement.moduleRequest.value }));
|
|
41
|
+
const exportBinding = (entry) => {
|
|
42
|
+
const name = boundName(entry);
|
|
43
|
+
const source = entry.moduleRequest?.value;
|
|
44
|
+
return name === null || source === undefined ? null : { name, source };
|
|
45
|
+
};
|
|
46
|
+
const exportBindings = (statement) => statement.entries.map((entry) => exportBinding(entry)).filter((binding) => binding !== null);
|
|
47
|
+
const bindings = (parsed) => [
|
|
48
|
+
...parsed.staticImports.flatMap((statement) => importBindings(statement)),
|
|
49
|
+
...parsed.staticExports.flatMap((statement) => exportBindings(statement)),
|
|
50
|
+
];
|
|
51
|
+
const isBacked = ({ name, source }) => isDataAsset(source) && name === RESOURCE_PATH_EXPORT;
|
|
52
|
+
const unbackedBinding = (parsed) => bindings(parsed).find((binding) => isAssetSpecifier(binding.source) && !isBacked(binding));
|
|
53
|
+
const bundleAdvice = (source) => {
|
|
54
|
+
if (isDataAsset(source)) {
|
|
55
|
+
return BUNDLE_ADVICE;
|
|
56
|
+
}
|
|
57
|
+
return source.startsWith(DATA_PREFIX) ? QUERY_ADVICE : RELATIVE_ADVICE;
|
|
58
|
+
};
|
|
59
|
+
const unbackedBindingError = (path, binding) => new Error(`${path}: ${JSON.stringify(binding.source)} does not export ${JSON.stringify(binding.name)}, which ` +
|
|
60
|
+
"gtkx build rejects and gtkx dev would bind as undefined. " +
|
|
61
|
+
bundleAdvice(binding.source));
|
|
62
|
+
const isCheckedSource = (path) => !path.startsWith(VIRTUAL_PREFIX) && !NODE_MODULES.test(path);
|
|
63
|
+
const checkAssetImports = (code, id) => {
|
|
64
|
+
const path = stripQuery(id);
|
|
65
|
+
const lang = SOURCE_LANGUAGES.get(extname(path).toLowerCase());
|
|
66
|
+
if (lang === undefined || !isCheckedSource(path) || !ASSET_MENTION_RE.test(code)) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const parsed = parseSync(path, code, { lang });
|
|
70
|
+
if (parsed.errors.length > 0) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const binding = unbackedBinding(parsed.module);
|
|
74
|
+
if (binding !== undefined) {
|
|
75
|
+
throw unbackedBindingError(path, binding);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
function gtkxAssetImports() {
|
|
79
|
+
return {
|
|
80
|
+
name: "gtkx:asset-imports",
|
|
81
|
+
enforce: "pre",
|
|
82
|
+
transform(code, id) {
|
|
83
|
+
checkAssetImports(code, id);
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
export { gtkxAssetImports };
|
|
88
|
+
//# sourceMappingURL=asset-imports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-imports.js","sourceRoot":"","sources":["../../src/vite-plugins/asset-imports.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ParseResult, ParserOptions, Plugin } from \"vite\";\nimport { extname } from \"node:path\";\nimport { parseSync } from \"vite\";\nimport { ASSET_MENTION_RE } from \"./asset-extensions.js\";\nimport { DATA_PREFIX, isAssetSpecifier, isDataAsset } from \"./asset-specifier.js\";\nimport { RESOURCE_PATH_EXPORT } from \"./resource-shared.js\";\nimport { stripQuery } from \"./strip-query.js\";\n\ntype SourceLanguage = NonNullable<ParserOptions[\"lang\"]>;\ntype ParsedModule = ParseResult[\"module\"];\ntype ImportStatement = ParsedModule[\"staticImports\"][number];\ntype ExportStatement = ParsedModule[\"staticExports\"][number];\ntype ExportEntry = ExportStatement[\"entries\"][number];\ntype BindingEntry = { importName: { name: string | null }; isType: boolean };\ntype NamedBinding = { name: string; source: string };\n\nconst SOURCE_LANGUAGES: Map<string, SourceLanguage> = new Map([\n [\".cjs\", \"jsx\"],\n [\".cts\", \"ts\"],\n [\".js\", \"jsx\"],\n [\".jsx\", \"jsx\"],\n [\".mjs\", \"jsx\"],\n [\".mts\", \"ts\"],\n [\".ts\", \"ts\"],\n [\".tsx\", \"tsx\"],\n]);\n\nconst NODE_MODULES = /(?:^|\\/)node_modules\\//;\nconst VIRTUAL_PREFIX = \"\\0\";\nconst DEFAULT_BINDING = \"default\";\nconst RESOURCE_BINDING = JSON.stringify(RESOURCE_PATH_EXPORT);\nconst DATA_IMPORT_EXAMPLE = `\"${DATA_PREFIX}<path>\"`;\nconst URL_FALLBACK = \", or import the default for the asset URL.\";\n\nconst BUNDLE_ADVICE =\n `An asset staged into the GResource bundle exports ${RESOURCE_BINDING} and a \"resource://\" default, and ` +\n \"nothing else.\";\n\nconst QUERY_ADVICE =\n \"A query suffix hands the import to the Vite asset pipeline instead of the GResource bundle; drop the \" +\n `query to keep ${RESOURCE_BINDING}${URL_FALLBACK}`;\n\nconst RELATIVE_ADVICE =\n `Only assets imported through \"${DATA_PREFIX}\" are staged into the GResource bundle and export ` +\n `${RESOURCE_BINDING}; move the file under the data directory and import it as ` +\n `${DATA_IMPORT_EXAMPLE}${URL_FALLBACK}`;\n\nconst boundName = (entry: BindingEntry): string | null => {\n const { name } = entry.importName;\n\n if (name === null || name === DEFAULT_BINDING || entry.isType) {\n return null;\n }\n\n return name;\n};\n\nconst importBindings = (statement: ImportStatement): NamedBinding[] =>\n statement.entries\n .map((entry) => boundName(entry))\n .filter((name) => name !== null)\n .map((name) => ({ name, source: statement.moduleRequest.value }));\n\nconst exportBinding = (entry: ExportEntry): NamedBinding | null => {\n const name = boundName(entry);\n const source = entry.moduleRequest?.value;\n\n return name === null || source === undefined ? null : { name, source };\n};\n\nconst exportBindings = (statement: ExportStatement): NamedBinding[] =>\n statement.entries.map((entry) => exportBinding(entry)).filter((binding) => binding !== null);\n\nconst bindings = (parsed: ParsedModule): NamedBinding[] => [\n ...parsed.staticImports.flatMap((statement) => importBindings(statement)),\n ...parsed.staticExports.flatMap((statement) => exportBindings(statement)),\n];\n\nconst isBacked = ({ name, source }: NamedBinding): boolean =>\n isDataAsset(source) && name === RESOURCE_PATH_EXPORT;\n\nconst unbackedBinding = (parsed: ParsedModule): NamedBinding | undefined =>\n bindings(parsed).find((binding) => isAssetSpecifier(binding.source) && !isBacked(binding));\n\nconst bundleAdvice = (source: string): string => {\n if (isDataAsset(source)) {\n return BUNDLE_ADVICE;\n }\n\n return source.startsWith(DATA_PREFIX) ? QUERY_ADVICE : RELATIVE_ADVICE;\n};\n\nconst unbackedBindingError = (path: string, binding: NamedBinding): Error =>\n new Error(\n `${path}: ${JSON.stringify(binding.source)} does not export ${JSON.stringify(binding.name)}, which ` +\n \"gtkx build rejects and gtkx dev would bind as undefined. \" +\n bundleAdvice(binding.source),\n );\n\nconst isCheckedSource = (path: string): boolean => !path.startsWith(VIRTUAL_PREFIX) && !NODE_MODULES.test(path);\n\nconst checkAssetImports = (code: string, id: string): void => {\n const path = stripQuery(id);\n const lang = SOURCE_LANGUAGES.get(extname(path).toLowerCase());\n\n if (lang === undefined || !isCheckedSource(path) || !ASSET_MENTION_RE.test(code)) {\n return;\n }\n\n const parsed = parseSync(path, code, { lang });\n\n if (parsed.errors.length > 0) {\n return;\n }\n\n const binding = unbackedBinding(parsed.module);\n\n if (binding !== undefined) {\n throw unbackedBindingError(path, binding);\n }\n};\n\nfunction gtkxAssetImports(): Plugin {\n return {\n name: \"gtkx:asset-imports\",\n enforce: \"pre\",\n\n transform(code, id) {\n checkAssetImports(code, id);\n },\n };\n}\n\nexport { gtkxAssetImports };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-specifier.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/asset-specifier.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,WAAW,WAA2B,CAAC;AAE7C,QAAA,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,OAAqC,CAAC;AACjF,QAAA,MAAM,WAAW,GAAI,QAAQ,MAAM,KAAG,OAAkE,CAAC;AAEzG,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DATA_IMPORT_PREFIX } from "../internal/data-dir.js";
|
|
2
|
+
import { ASSET_PATH_RE, ASSET_RE } from "./asset-extensions.js";
|
|
3
|
+
const DATA_PREFIX = `${DATA_IMPORT_PREFIX}/`;
|
|
4
|
+
const isAssetSpecifier = (source) => ASSET_PATH_RE.test(source);
|
|
5
|
+
const isDataAsset = (source) => source.startsWith(DATA_PREFIX) && ASSET_RE.test(source);
|
|
6
|
+
export { DATA_PREFIX, isAssetSpecifier, isDataAsset };
|
|
7
|
+
//# sourceMappingURL=asset-specifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-specifier.js","sourceRoot":"","sources":["../../src/vite-plugins/asset-specifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,WAAW,GAAG,GAAG,kBAAkB,GAAG,CAAC;AAE7C,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjF,MAAM,WAAW,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAEzG,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC","sourcesContent":["import { DATA_IMPORT_PREFIX } from \"../internal/data-dir.js\";\nimport { ASSET_PATH_RE, ASSET_RE } from \"./asset-extensions.js\";\n\nconst DATA_PREFIX = `${DATA_IMPORT_PREFIX}/`;\n\nconst isAssetSpecifier = (source: string): boolean => ASSET_PATH_RE.test(source);\nconst isDataAsset = (source: string): boolean => source.startsWith(DATA_PREFIX) && ASSET_RE.test(source);\n\nexport { DATA_PREFIX, isAssetSpecifier, isDataAsset };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"esm-extension.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/esm-extension.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,aAAa,SAAS,CAAC;AAC7B,QAAA,MAAM,eAAe,eAA2B,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"esm-extension.js","sourceRoot":"","sources":["../../src/vite-plugins/esm-extension.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG,MAAM,CAAC;AAC7B,MAAM,eAAe,GAAG,SAAS,aAAa,EAAE,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC","sourcesContent":["const ESM_EXTENSION = \".mjs\";\nconst BUNDLE_FILENAME = `bundle${ESM_EXTENSION}`;\n\nexport { BUNDLE_FILENAME, ESM_EXTENSION };\n"]}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import type { Plugin } from "vite";
|
|
2
|
-
declare function gtkxSwcRefresh(): Plugin;
|
|
3
|
-
declare function gtkxRefreshRuntime(): Plugin;
|
|
4
2
|
declare const gtkxFastRefresh: () => Plugin[];
|
|
5
|
-
export {
|
|
3
|
+
export { gtkxFastRefresh };
|
|
6
4
|
//# 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":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,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;AAyFnC,QAAA,MAAM,eAAe,QAAO,MAAM,EAA8C,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,CAAC"}
|