@embroider/vite 0.2.1-unstable.35f9ecd → 0.2.1-unstable.3d20631

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/index.mjs CHANGED
@@ -6,3 +6,4 @@ export * from './src/template-tag.js';
6
6
  export * from './src/optimize-deps.js';
7
7
  export * from './src/build.js';
8
8
  export * from './src/assets.js';
9
+ export * from './src/content-for.js';
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@embroider/vite",
3
- "version": "0.2.1-unstable.35f9ecd",
3
+ "version": "0.2.1-unstable.3d20631",
4
4
  "main": "index.mjs",
5
5
  "peerDependencies": {
6
- "@embroider/core": "3.4.6-unstable.35f9ecd",
6
+ "@embroider/core": "3.4.9-unstable.3d20631",
7
7
  "vite": "^4.3.9 || ^5.0.0"
8
8
  },
9
9
  "scripts": {
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@babel/core": "^7.22.9",
14
- "@embroider/macros": "1.14.1-unstable.35f9ecd",
14
+ "@embroider/macros": "1.16.1-unstable.3d20631",
15
15
  "@rollup/pluginutils": "^4.1.1",
16
16
  "assert-never": "^1.2.1",
17
17
  "content-tag": "^2.0.1",
@@ -25,7 +25,7 @@
25
25
  "send": "^0.18.0"
26
26
  },
27
27
  "devDependencies": {
28
- "@embroider/core": "3.4.6-unstable.35f9ecd",
28
+ "@embroider/core": "3.4.9-unstable.3d20631",
29
29
  "@types/babel__core": "^7.20.1",
30
30
  "@types/send": "^0.17.4",
31
31
  "@types/debug": "^4.1.5",
package/src/assets.js CHANGED
@@ -74,29 +74,40 @@ function assets() {
74
74
  });
75
75
  };
76
76
  },
77
- async buildStart() {
78
- if (mode !== 'build')
79
- return;
80
- const engines = resolverLoader.resolver.options.engines;
81
- for (const engine of engines) {
82
- const packages = engine.activeAddons.map(a => resolverLoader.resolver.packageCache.ownerOfFile(a.root));
83
- packages.forEach(pkg => {
84
- if (!pkg || !pkg.isV2Addon())
85
- return;
86
- const assets = pkg.meta['public-assets'] || {};
87
- Object.entries(assets).forEach(([path, dest]) => {
88
- // do not override app public assets
89
- if ((0, fs_extra_1.existsSync)((0, path_1.join)(publicDir, dest))) {
77
+ buildStart: {
78
+ // we need to wait for the compatBuild plugin's buildStart hook to finish
79
+ // so that the resolver config exists before we try to read it.
80
+ sequential: true,
81
+ order: 'post',
82
+ async handler() {
83
+ if (mode !== 'build')
84
+ return;
85
+ const engines = resolverLoader.resolver.options.engines;
86
+ for (const engine of engines) {
87
+ const packages = engine.activeAddons.map(a => resolverLoader.resolver.packageCache.ownerOfFile(a.root));
88
+ packages.forEach(pkg => {
89
+ if (!pkg || !pkg.isV2Addon())
90
90
  return;
91
- }
92
- this.emitFile({
93
- type: 'asset',
94
- source: (0, fs_extra_1.readFileSync)((0, path_1.join)(pkg.root, path)),
95
- fileName: path_1.posix.resolve('/', dest).slice(1),
91
+ const assets = pkg.meta['public-assets'] || {};
92
+ Object.entries(assets).forEach(([path, dest]) => {
93
+ // do not override app public assets
94
+ if ((0, fs_extra_1.existsSync)((0, path_1.join)(publicDir, dest))) {
95
+ return;
96
+ }
97
+ const filePath = (0, path_1.join)(pkg.root, path);
98
+ if (!(0, fs_extra_1.lstatSync)(filePath).isFile()) {
99
+ console.log(`Invalid package definition, ${pkg.name} has defined a file "${path}" that is not a file`);
100
+ return;
101
+ }
102
+ this.emitFile({
103
+ type: 'asset',
104
+ source: (0, fs_extra_1.readFileSync)(filePath),
105
+ fileName: path_1.posix.resolve('/', dest).slice(1),
106
+ });
96
107
  });
97
108
  });
98
- });
99
- }
109
+ }
110
+ },
100
111
  },
101
112
  };
102
113
  }
package/src/assets.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["assets.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Resolver } from '@embroider/core';\nimport { ResolverLoader } from '@embroider/core';\nimport type { Plugin } from 'vite';\nimport * as process from 'process';\nimport { join, posix } from 'path';\nimport { existsSync, readFileSync } from 'fs-extra';\nimport send from 'send';\nimport type { Readable } from 'stream';\n\nfunction findPublicAsset(relativePath: string, resolver: Resolver) {\n const packageCache = resolver.packageCache;\n let pkg = packageCache.ownerOfFile(relativePath);\n\n for (const engine of resolver.options.engines) {\n for (const addon of engine.activeAddons) {\n pkg = packageCache.ownerOfFile(addon.root);\n if (pkg && pkg.meta && pkg.isV2Addon() && pkg.meta['public-assets']) {\n const asset = Object.entries(pkg.meta['public-assets']).find(\n ([_key, a]) => posix.resolve('/', a) === relativePath\n )?.[0];\n let local = asset ? join(addon.root, asset) : null;\n if (local && existsSync(local)) {\n return local;\n }\n }\n }\n }\n}\n\nexport function assets(): Plugin {\n const cwd = process.cwd();\n const resolverLoader = new ResolverLoader(cwd);\n let mode: 'build' | 'serve' = 'build';\n let publicDir = 'public';\n return {\n name: 'assets',\n enforce: 'post',\n configResolved(options) {\n mode = options.command;\n publicDir = options.publicDir;\n },\n configureServer(server) {\n return () => {\n server.middlewares.use((req, res, next) => {\n if (req.originalUrl && req.originalUrl.length > 1) {\n const assetUrl = findPublicAsset(req.originalUrl.split('?')[0], resolverLoader.resolver);\n if (assetUrl) {\n return send(req as Readable, assetUrl).pipe(res);\n }\n }\n return next();\n });\n };\n },\n async buildStart() {\n if (mode !== 'build') return;\n const engines = resolverLoader.resolver.options.engines;\n for (const engine of engines) {\n const packages = engine.activeAddons.map(a => resolverLoader.resolver.packageCache.ownerOfFile(a.root));\n packages.forEach(pkg => {\n if (!pkg || !pkg.isV2Addon()) return;\n const assets = pkg.meta['public-assets'] || {};\n Object.entries(assets).forEach(([path, dest]) => {\n // do not override app public assets\n if (existsSync(join(publicDir, dest))) {\n return;\n }\n this.emitFile({\n type: 'asset',\n source: readFileSync(join(pkg.root, path)),\n fileName: posix.resolve('/', dest).slice(1),\n });\n });\n });\n }\n },\n };\n}\n"]}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["assets.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Resolver } from '@embroider/core';\nimport { ResolverLoader } from '@embroider/core';\nimport type { Plugin } from 'vite';\nimport * as process from 'process';\nimport { join, posix } from 'path';\nimport { existsSync, readFileSync, lstatSync } from 'fs-extra';\nimport send from 'send';\nimport type { Readable } from 'stream';\n\nfunction findPublicAsset(relativePath: string, resolver: Resolver) {\n const packageCache = resolver.packageCache;\n let pkg = packageCache.ownerOfFile(relativePath);\n\n for (const engine of resolver.options.engines) {\n for (const addon of engine.activeAddons) {\n pkg = packageCache.ownerOfFile(addon.root);\n if (pkg && pkg.meta && pkg.isV2Addon() && pkg.meta['public-assets']) {\n const asset = Object.entries(pkg.meta['public-assets']).find(\n ([_key, a]) => posix.resolve('/', a) === relativePath\n )?.[0];\n let local = asset ? join(addon.root, asset) : null;\n if (local && existsSync(local)) {\n return local;\n }\n }\n }\n }\n}\n\nexport function assets(): Plugin {\n const cwd = process.cwd();\n const resolverLoader = new ResolverLoader(cwd);\n let mode: 'build' | 'serve' = 'build';\n let publicDir = 'public';\n return {\n name: 'assets',\n enforce: 'post',\n configResolved(options) {\n mode = options.command;\n publicDir = options.publicDir;\n },\n configureServer(server) {\n return () => {\n server.middlewares.use((req, res, next) => {\n if (req.originalUrl && req.originalUrl.length > 1) {\n const assetUrl = findPublicAsset(req.originalUrl.split('?')[0], resolverLoader.resolver);\n if (assetUrl) {\n return send(req as Readable, assetUrl).pipe(res);\n }\n }\n return next();\n });\n };\n },\n buildStart: {\n // we need to wait for the compatBuild plugin's buildStart hook to finish\n // so that the resolver config exists before we try to read it.\n sequential: true,\n order: 'post',\n async handler() {\n if (mode !== 'build') return;\n const engines = resolverLoader.resolver.options.engines;\n for (const engine of engines) {\n const packages = engine.activeAddons.map(a => resolverLoader.resolver.packageCache.ownerOfFile(a.root));\n packages.forEach(pkg => {\n if (!pkg || !pkg.isV2Addon()) return;\n const assets = pkg.meta['public-assets'] || {};\n Object.entries(assets).forEach(([path, dest]) => {\n // do not override app public assets\n if (existsSync(join(publicDir, dest))) {\n return;\n }\n\n const filePath = join(pkg.root, path);\n if (!lstatSync(filePath).isFile()) {\n console.log(`Invalid package definition, ${pkg.name} has defined a file \"${path}\" that is not a file`);\n return;\n }\n\n this.emitFile({\n type: 'asset',\n source: readFileSync(filePath),\n fileName: posix.resolve('/', dest).slice(1),\n });\n });\n });\n }\n },\n },\n };\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import type { Plugin } from 'vite';
2
+ export declare function contentFor(): Plugin;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.contentFor = void 0;
4
+ const fs_extra_1 = require("fs-extra");
5
+ const path_1 = require("path");
6
+ const core_1 = require("@embroider/core");
7
+ function contentFor() {
8
+ return {
9
+ name: 'embroider-content-for',
10
+ transformIndexHtml(html, { path }) {
11
+ let config = (0, fs_extra_1.readJSONSync)((0, path_1.join)((0, core_1.locateEmbroiderWorkingDir)(process.cwd()), 'content-for.json'));
12
+ let contentsForConfig = config[path];
13
+ for (const [contentType, htmlContent] of Object.entries(contentsForConfig)) {
14
+ html = html.replace(`{{content-for "${contentType}"}}`, `${htmlContent}`);
15
+ }
16
+ return html;
17
+ },
18
+ };
19
+ }
20
+ exports.contentFor = contentFor;
21
+ //# sourceMappingURL=content-for.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-for.js","sourceRoot":"","sources":["content-for.ts"],"names":[],"mappings":";;;AACA,uCAAwC;AACxC,+BAA4B;AAC5B,0CAA4D;AAE5D,SAAgB,UAAU;IACxB,OAAO;QACL,IAAI,EAAE,uBAAuB;QAE7B,kBAAkB,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;YAC/B,IAAI,MAAM,GAAQ,IAAA,uBAAY,EAAC,IAAA,WAAI,EAAC,IAAA,gCAAyB,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;YACnG,IAAI,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,KAAK,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;gBAC1E,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,WAAW,KAAK,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;aAC3E;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC;AAbD,gCAaC","sourcesContent":["import type { Plugin } from 'vite';\nimport { readJSONSync } from 'fs-extra';\nimport { join } from 'path';\nimport { locateEmbroiderWorkingDir } from '@embroider/core';\n\nexport function contentFor(): Plugin {\n return {\n name: 'embroider-content-for',\n\n transformIndexHtml(html, { path }) {\n let config: any = readJSONSync(join(locateEmbroiderWorkingDir(process.cwd()), 'content-for.json'));\n let contentsForConfig = config[path];\n for (const [contentType, htmlContent] of Object.entries(contentsForConfig)) {\n html = html.replace(`{{content-for \"${contentType}\"}}`, `${htmlContent}`);\n }\n return html;\n },\n };\n}\n"]}
@@ -65,6 +65,10 @@ function esBuildResolver(root = process.cwd()) {
65
65
  }
66
66
  });
67
67
  build.onLoad({ namespace: 'embroider', filter: /./ }, ({ path }) => {
68
+ // We don't want esbuild to try loading virtual CSS files
69
+ if (path.endsWith('.css')) {
70
+ return { contents: '' };
71
+ }
68
72
  let { src } = (0, core_2.virtualContent)(path, resolverLoader.resolver);
69
73
  if (!macrosConfig) {
70
74
  macrosConfig = (0, fs_extra_1.readJSONSync)((0, path_1.resolve)((0, core_2.locateEmbroiderWorkingDir)(root), 'rewritten-app', 'macros-config.json'));
@@ -1 +1 @@
1
- {"version":3,"file":"esbuild-resolver.js","sourceRoot":"","sources":["esbuild-resolver.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Plugin as EsBuildPlugin } from 'esbuild';\nimport { type PluginItem, transform } from '@babel/core';\nimport { ResolverLoader, virtualContent, locateEmbroiderWorkingDir } from '@embroider/core';\nimport { readFileSync, readJSONSync } from 'fs-extra';\nimport { EsBuildModuleRequest } from './esbuild-request';\nimport assertNever from 'assert-never';\nimport { resolve } from 'path';\nimport { hbsToJS } from '@embroider/core';\nimport { Preprocessor } from 'content-tag';\n\nfunction* candidates(path: string) {\n yield path;\n yield path + '.hbs';\n yield path + '.gjs';\n yield path + '.gts';\n}\n\nexport function esBuildResolver(root = process.cwd()): EsBuildPlugin {\n let resolverLoader = new ResolverLoader(process.cwd());\n let macrosConfig: PluginItem | undefined;\n let preprocessor = new Preprocessor();\n\n return {\n name: 'embroider-esbuild-resolver',\n setup(build) {\n // This resolver plugin is designed to test candidates for extensions and interoperates with our other embroider specific plugin\n build.onResolve({ filter: /./ }, async ({ path, importer, namespace, resolveDir, pluginData, kind }) => {\n if (pluginData?.embroiderExtensionSearch) {\n return null;\n }\n\n let firstFailure;\n\n for (let candidate of candidates(path)) {\n let result = await build.resolve(candidate, {\n namespace,\n resolveDir,\n importer,\n kind,\n pluginData: { ...pluginData, embroiderExtensionSearch: true },\n });\n\n if (result.errors.length === 0) {\n return result;\n }\n\n if (!firstFailure) {\n firstFailure = result;\n }\n }\n\n return firstFailure;\n });\n build.onResolve({ filter: /./ }, async ({ path, importer, pluginData, kind }) => {\n let request = EsBuildModuleRequest.from(build, kind, path, importer, pluginData);\n if (!request) {\n return null;\n }\n let resolution = await resolverLoader.resolver.resolve(request);\n switch (resolution.type) {\n case 'found':\n case 'ignored':\n return resolution.result;\n case 'not_found':\n return resolution.err;\n default:\n throw assertNever(resolution);\n }\n });\n\n build.onLoad({ namespace: 'embroider', filter: /./ }, ({ path }) => {\n let { src } = virtualContent(path, resolverLoader.resolver);\n if (!macrosConfig) {\n macrosConfig = readJSONSync(\n resolve(locateEmbroiderWorkingDir(root), 'rewritten-app', 'macros-config.json')\n ) as PluginItem;\n }\n return { contents: runMacros(src, path, macrosConfig) };\n });\n\n build.onLoad({ filter: /\\.g[jt]s$/ }, async ({ path: filename }) => {\n const code = readFileSync(filename, 'utf8');\n\n const result = transform(preprocessor.process(code, { filename }), {\n filename,\n });\n\n if (!result || !result.code) {\n throw new Error(`Failed to load file ${filename} in esbuild-hbs-loader`);\n }\n\n const contents = result.code;\n\n return { contents };\n });\n\n build.onLoad({ filter: /\\.hbs$/ }, async ({ path: filename }) => {\n const code = readFileSync(filename, 'utf8');\n\n const result = transform(hbsToJS(code), { filename });\n\n if (!result || !result.code) {\n throw new Error(`Failed to load file ${filename} in esbuild-hbs-loader`);\n }\n\n const contents = result.code;\n\n return { contents };\n });\n\n build.onLoad({ filter: /\\.[jt]s$/ }, ({ path, namespace }) => {\n let src: string;\n if (namespace === 'embroider') {\n src = virtualContent(path, resolverLoader.resolver).src;\n } else {\n src = readFileSync(path, 'utf8');\n }\n if (!macrosConfig) {\n macrosConfig = readJSONSync(\n resolve(locateEmbroiderWorkingDir(root), 'rewritten-app', 'macros-config.json')\n ) as PluginItem;\n }\n return { contents: runMacros(src, path, macrosConfig) };\n });\n },\n };\n}\n\nfunction runMacros(src: string, filename: string, macrosConfig: PluginItem): string {\n return transform(src, {\n filename,\n plugins: [macrosConfig],\n })!.code!;\n}\n"]}
1
+ {"version":3,"file":"esbuild-resolver.js","sourceRoot":"","sources":["esbuild-resolver.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Plugin as EsBuildPlugin } from 'esbuild';\nimport { type PluginItem, transform } from '@babel/core';\nimport { ResolverLoader, virtualContent, locateEmbroiderWorkingDir } from '@embroider/core';\nimport { readFileSync, readJSONSync } from 'fs-extra';\nimport { EsBuildModuleRequest } from './esbuild-request';\nimport assertNever from 'assert-never';\nimport { resolve } from 'path';\nimport { hbsToJS } from '@embroider/core';\nimport { Preprocessor } from 'content-tag';\n\nfunction* candidates(path: string) {\n yield path;\n yield path + '.hbs';\n yield path + '.gjs';\n yield path + '.gts';\n}\n\nexport function esBuildResolver(root = process.cwd()): EsBuildPlugin {\n let resolverLoader = new ResolverLoader(process.cwd());\n let macrosConfig: PluginItem | undefined;\n let preprocessor = new Preprocessor();\n\n return {\n name: 'embroider-esbuild-resolver',\n setup(build) {\n // This resolver plugin is designed to test candidates for extensions and interoperates with our other embroider specific plugin\n build.onResolve({ filter: /./ }, async ({ path, importer, namespace, resolveDir, pluginData, kind }) => {\n if (pluginData?.embroiderExtensionSearch) {\n return null;\n }\n\n let firstFailure;\n\n for (let candidate of candidates(path)) {\n let result = await build.resolve(candidate, {\n namespace,\n resolveDir,\n importer,\n kind,\n pluginData: { ...pluginData, embroiderExtensionSearch: true },\n });\n\n if (result.errors.length === 0) {\n return result;\n }\n\n if (!firstFailure) {\n firstFailure = result;\n }\n }\n\n return firstFailure;\n });\n build.onResolve({ filter: /./ }, async ({ path, importer, pluginData, kind }) => {\n let request = EsBuildModuleRequest.from(build, kind, path, importer, pluginData);\n if (!request) {\n return null;\n }\n let resolution = await resolverLoader.resolver.resolve(request);\n switch (resolution.type) {\n case 'found':\n case 'ignored':\n return resolution.result;\n case 'not_found':\n return resolution.err;\n default:\n throw assertNever(resolution);\n }\n });\n\n build.onLoad({ namespace: 'embroider', filter: /./ }, ({ path }) => {\n // We don't want esbuild to try loading virtual CSS files\n if (path.endsWith('.css')) {\n return { contents: '' };\n }\n let { src } = virtualContent(path, resolverLoader.resolver);\n if (!macrosConfig) {\n macrosConfig = readJSONSync(\n resolve(locateEmbroiderWorkingDir(root), 'rewritten-app', 'macros-config.json')\n ) as PluginItem;\n }\n return { contents: runMacros(src, path, macrosConfig) };\n });\n\n build.onLoad({ filter: /\\.g[jt]s$/ }, async ({ path: filename }) => {\n const code = readFileSync(filename, 'utf8');\n\n const result = transform(preprocessor.process(code, { filename }), {\n filename,\n });\n\n if (!result || !result.code) {\n throw new Error(`Failed to load file ${filename} in esbuild-hbs-loader`);\n }\n\n const contents = result.code;\n\n return { contents };\n });\n\n build.onLoad({ filter: /\\.hbs$/ }, async ({ path: filename }) => {\n const code = readFileSync(filename, 'utf8');\n\n const result = transform(hbsToJS(code), { filename });\n\n if (!result || !result.code) {\n throw new Error(`Failed to load file ${filename} in esbuild-hbs-loader`);\n }\n\n const contents = result.code;\n\n return { contents };\n });\n\n build.onLoad({ filter: /\\.[jt]s$/ }, ({ path, namespace }) => {\n let src: string;\n if (namespace === 'embroider') {\n src = virtualContent(path, resolverLoader.resolver).src;\n } else {\n src = readFileSync(path, 'utf8');\n }\n if (!macrosConfig) {\n macrosConfig = readJSONSync(\n resolve(locateEmbroiderWorkingDir(root), 'rewritten-app', 'macros-config.json')\n ) as PluginItem;\n }\n return { contents: runMacros(src, path, macrosConfig) };\n });\n },\n };\n}\n\nfunction runMacros(src: string, filename: string, macrosConfig: PluginItem): string {\n return transform(src, {\n filename,\n plugins: [macrosConfig],\n })!.code!;\n}\n"]}
package/src/resolver.js CHANGED
@@ -8,6 +8,7 @@ const core_1 = require("@embroider/core");
8
8
  const request_1 = require("./request");
9
9
  const assert_never_1 = __importDefault(require("assert-never"));
10
10
  const debug_1 = __importDefault(require("debug"));
11
+ const path_1 = require("path");
11
12
  const debug = (0, debug_1.default)('embroider:vite');
12
13
  function resolver() {
13
14
  let resolverLoader = new core_1.ResolverLoader(process.cwd());
@@ -59,6 +60,18 @@ function resolver() {
59
60
  return src;
60
61
  }
61
62
  },
63
+ buildEnd() {
64
+ this.emitFile({
65
+ type: 'asset',
66
+ fileName: '@embroider/core/vendor.js',
67
+ source: (0, core_1.virtualContent)((0, path_1.resolve)(resolverLoader.resolver.options.engines[0].root, '-embroider-vendor.js'), resolverLoader.resolver).src,
68
+ });
69
+ this.emitFile({
70
+ type: 'asset',
71
+ fileName: '@embroider/core/test-support.js',
72
+ source: (0, core_1.virtualContent)((0, path_1.resolve)(resolverLoader.resolver.options.engines[0].root, '-embroider-test-support.js'), resolverLoader.resolver).src,
73
+ });
74
+ },
62
75
  };
63
76
  }
64
77
  exports.resolver = resolver;
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["resolver.ts"],"names":[],"mappings":";;;;;;AACA,0CAAiE;AACjE,uCAA+D;AAC/D,gEAAuC;AACvC,kDAA8B;AAE9B,MAAM,KAAK,GAAG,IAAA,eAAS,EAAC,gBAAgB,CAAC,CAAC;AAE1C,SAAgB,QAAQ;IACtB,IAAI,cAAc,GAAG,IAAI,qBAAc,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,IAAI,MAAqB,CAAC;IAC1B,IAAI,WAAW,GAA0B,IAAI,GAAG,EAAE,CAAC;IAEnD,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,KAAK;QAEd,eAAe,CAAC,CAAC;YACf,MAAM,GAAG,CAAC,CAAC;YACX,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;gBAC5C,KAAK,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,WAAW,EAAE;oBACrC,KAAK,IAAI,KAAK,IAAI,OAAO,EAAE;wBACzB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;4BAC1B,KAAK,CAAC,0BAA0B,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;4BAC5C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;4BACpC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;4BAC7C,IAAI,CAAC,EAAE;gCACL,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;6BACxB;yBACF;qBACF;iBACF;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO;YACvC,IAAI,OAAO,GAAG,6BAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/E,IAAI,CAAC,OAAO,EAAE;gBACZ,sCAAsC;gBACtC,OAAO,IAAI,CAAC;aACb;YACD,IAAI,UAAU,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAChE,QAAQ,UAAU,CAAC,IAAI,EAAE;gBACvB,KAAK,OAAO,CAAC;gBACb,KAAK,SAAS;oBACZ,OAAO,UAAU,CAAC,MAAM,CAAC;gBAC3B,KAAK,WAAW;oBACd,OAAO,IAAI,CAAC;gBACd;oBACE,MAAM,IAAA,sBAAW,EAAC,UAAU,CAAC,CAAC;aACjC;QACH,CAAC;QACD,IAAI,CAAC,EAAE;YACL,IAAI,EAAE,CAAC,UAAU,CAAC,uBAAa,CAAC,EAAE;gBAChC,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;gBACrD,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAA,qBAAc,EAAC,QAAQ,CAAC,KAAK,CAAC,uBAAa,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;gBACzG,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC7B,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC7B,OAAO,GAAG,CAAC;aACZ;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAtDD,4BAsDC","sourcesContent":["import type { Plugin, ViteDevServer } from 'vite';\nimport { virtualContent, ResolverLoader } from '@embroider/core';\nimport { RollupModuleRequest, virtualPrefix } from './request';\nimport assertNever from 'assert-never';\nimport makeDebug from 'debug';\n\nconst debug = makeDebug('embroider:vite');\n\nexport function resolver(): Plugin {\n let resolverLoader = new ResolverLoader(process.cwd());\n let server: ViteDevServer;\n let virtualDeps: Map<string, string[]> = new Map();\n\n return {\n name: 'embroider-resolver',\n enforce: 'pre',\n\n configureServer(s) {\n server = s;\n server.watcher.on('all', (_eventName, path) => {\n for (let [id, watches] of virtualDeps) {\n for (let watch of watches) {\n if (path.startsWith(watch)) {\n debug('Invalidate %s because %s', id, path);\n server.moduleGraph.onFileChange(id);\n let m = server.moduleGraph.getModuleById(id);\n if (m) {\n server.reloadModule(m);\n }\n }\n }\n }\n });\n },\n\n async resolveId(source, importer, options) {\n let request = RollupModuleRequest.from(this, source, importer, options.custom);\n if (!request) {\n // fallthrough to other rollup plugins\n return null;\n }\n let resolution = await resolverLoader.resolver.resolve(request);\n switch (resolution.type) {\n case 'found':\n case 'ignored':\n return resolution.result;\n case 'not_found':\n return null;\n default:\n throw assertNever(resolution);\n }\n },\n load(id) {\n if (id.startsWith(virtualPrefix)) {\n let { pathname } = new URL(id, 'http://example.com');\n let { src, watches } = virtualContent(pathname.slice(virtualPrefix.length + 1), resolverLoader.resolver);\n virtualDeps.set(id, watches);\n server?.watcher.add(watches);\n return src;\n }\n },\n };\n}\n"]}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["resolver.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Plugin, ViteDevServer } from 'vite';\nimport { virtualContent, ResolverLoader } from '@embroider/core';\nimport { RollupModuleRequest, virtualPrefix } from './request';\nimport assertNever from 'assert-never';\nimport makeDebug from 'debug';\nimport { resolve } from 'path';\n\nconst debug = makeDebug('embroider:vite');\n\nexport function resolver(): Plugin {\n let resolverLoader = new ResolverLoader(process.cwd());\n let server: ViteDevServer;\n let virtualDeps: Map<string, string[]> = new Map();\n\n return {\n name: 'embroider-resolver',\n enforce: 'pre',\n\n configureServer(s) {\n server = s;\n server.watcher.on('all', (_eventName, path) => {\n for (let [id, watches] of virtualDeps) {\n for (let watch of watches) {\n if (path.startsWith(watch)) {\n debug('Invalidate %s because %s', id, path);\n server.moduleGraph.onFileChange(id);\n let m = server.moduleGraph.getModuleById(id);\n if (m) {\n server.reloadModule(m);\n }\n }\n }\n }\n });\n },\n\n async resolveId(source, importer, options) {\n let request = RollupModuleRequest.from(this, source, importer, options.custom);\n if (!request) {\n // fallthrough to other rollup plugins\n return null;\n }\n let resolution = await resolverLoader.resolver.resolve(request);\n switch (resolution.type) {\n case 'found':\n case 'ignored':\n return resolution.result;\n case 'not_found':\n return null;\n default:\n throw assertNever(resolution);\n }\n },\n load(id) {\n if (id.startsWith(virtualPrefix)) {\n let { pathname } = new URL(id, 'http://example.com');\n let { src, watches } = virtualContent(pathname.slice(virtualPrefix.length + 1), resolverLoader.resolver);\n virtualDeps.set(id, watches);\n server?.watcher.add(watches);\n return src;\n }\n },\n buildEnd() {\n this.emitFile({\n type: 'asset',\n fileName: '@embroider/core/vendor.js',\n source: virtualContent(\n resolve(resolverLoader.resolver.options.engines[0].root, '-embroider-vendor.js'),\n resolverLoader.resolver\n ).src,\n });\n this.emitFile({\n type: 'asset',\n fileName: '@embroider/core/test-support.js',\n source: virtualContent(\n resolve(resolverLoader.resolver.options.engines[0].root, '-embroider-test-support.js'),\n resolverLoader.resolver\n ).src,\n });\n },\n };\n}\n"]}