@embroider/vite 0.2.1-unstable.e5d46e7 → 0.2.1-unstable.e5ef9b9

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/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@embroider/vite",
3
- "version": "0.2.1-unstable.e5d46e7",
3
+ "version": "0.2.1-unstable.e5ef9b9",
4
4
  "main": "index.mjs",
5
5
  "peerDependencies": {
6
- "@embroider/core": "3.4.9-unstable.e5d46e7",
6
+ "@embroider/core": "3.4.11-unstable.e5ef9b9",
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.16.1-unstable.e5d46e7",
14
+ "@embroider/macros": "1.16.3-unstable.e5ef9b9",
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.9-unstable.e5d46e7",
28
+ "@embroider/core": "3.4.11-unstable.e5ef9b9",
29
29
  "@types/babel__core": "^7.20.1",
30
30
  "@types/send": "^0.17.4",
31
31
  "@types/debug": "^4.1.5",
@@ -71,7 +71,7 @@ function esBuildResolver(root = process.cwd()) {
71
71
  }
72
72
  let { src } = (0, core_2.virtualContent)(path, resolverLoader.resolver);
73
73
  if (!macrosConfig) {
74
- macrosConfig = (0, fs_extra_1.readJSONSync)((0, path_1.resolve)((0, core_2.locateEmbroiderWorkingDir)(root), 'rewritten-app', 'macros-config.json'));
74
+ macrosConfig = (0, fs_extra_1.readJSONSync)((0, path_1.resolve)((0, core_2.locateEmbroiderWorkingDir)(root), 'macros-config.json'));
75
75
  }
76
76
  return { contents: runMacros(src, path, macrosConfig) };
77
77
  });
@@ -104,7 +104,7 @@ function esBuildResolver(root = process.cwd()) {
104
104
  src = (0, fs_extra_1.readFileSync)(path, 'utf8');
105
105
  }
106
106
  if (!macrosConfig) {
107
- macrosConfig = (0, fs_extra_1.readJSONSync)((0, path_1.resolve)((0, core_2.locateEmbroiderWorkingDir)(root), 'rewritten-app', 'macros-config.json'));
107
+ macrosConfig = (0, fs_extra_1.readJSONSync)((0, path_1.resolve)((0, core_2.locateEmbroiderWorkingDir)(root), 'macros-config.json'));
108
108
  }
109
109
  return { contents: runMacros(src, path, macrosConfig) };
110
110
  });
@@ -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 // 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"]}
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(resolve(locateEmbroiderWorkingDir(root), 'macros-config.json')) 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(resolve(locateEmbroiderWorkingDir(root), 'macros-config.json')) 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"]}