@embroider/vite 1.0.0-alpha.8 → 1.0.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/dist/src/backchannel.d.ts +17 -0
- package/dist/src/backchannel.js +65 -0
- package/dist/src/backchannel.js.map +1 -0
- package/dist/src/esbuild-request.d.ts +5 -12
- package/dist/src/esbuild-request.js +74 -93
- package/dist/src/esbuild-request.js.map +1 -1
- package/dist/src/esbuild-resolver.js +16 -1
- package/dist/src/esbuild-resolver.js.map +1 -1
- package/dist/src/request.js +4 -0
- package/dist/src/request.js.map +1 -1
- package/dist/src/resolver.js +2 -2
- package/dist/src/resolver.js.map +1 -1
- package/dist/src/template-tag.d.ts +1 -3
- package/dist/src/template-tag.js +1 -2
- package/dist/src/template-tag.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -14
package/dist/src/resolver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/resolver.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Plugin, type ViteDevServer, normalizePath } from 'vite';\nimport core, { ModuleRequest, type Resolver } from '@embroider/core';\nconst { virtualContent, ResolverLoader, explicitRelative, cleanUrl, tmpdir } = core;\nimport { type ResponseMeta, RollupRequestAdapter } from './request.js';\nimport { assertNever } from 'assert-never';\nimport makeDebug from 'debug';\nimport { join, resolve } from 'path';\nimport { writeStatus } from './esbuild-request.js';\nimport type { PluginContext, ResolveIdResult } from 'rollup';\nimport { externalName } from '@embroider/reverse-exports';\nimport fs from 'fs-extra';\nimport { createHash } from 'crypto';\n\nconst { ensureSymlinkSync, outputJSONSync } = fs;\n\nconst debug = makeDebug('embroider:vite');\n\nexport function resolver(): Plugin {\n const resolverLoader = new ResolverLoader(process.cwd());\n let server: ViteDevServer;\n const virtualDeps: Map<string, string[]> = new Map();\n const notViteDeps = new Set<string>();\n const responseMetas: Map<string, ResponseMeta> = new Map();\n\n async function resolveId(\n context: PluginContext,\n source: string,\n importer: string | undefined,\n options: { custom?: Record<string, unknown>; scan?: boolean }\n ) {\n // vite 5 exposes `custom.depscan`, vite 6 exposes `options.scan`\n if (options.custom?.depScan || options.scan) {\n return await observeDepScan(context, source, importer, options);\n }\n\n let request = ModuleRequest.create(RollupRequestAdapter.create, {\n context,\n source,\n importer,\n custom: options.custom,\n });\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 if (resolution.virtual) {\n return resolution.result;\n } else {\n return await maybeCaptureNewOptimizedDep(context, resolverLoader.resolver, resolution.result, notViteDeps);\n }\n case 'not_found':\n return null;\n default:\n throw assertNever(resolution);\n }\n }\n\n async function ensureVirtualResolve(context: PluginContext, specifier: string): Promise<ResponseMeta> {\n let result = await resolveId(\n context,\n specifier,\n resolve(resolverLoader.resolver.options.appRoot, 'package.json'),\n {}\n );\n if (!result) {\n throw new Error(`bug: expected to resolve ${specifier}`);\n }\n if (typeof result === 'string') {\n throw new Error(`bug: expected to get a PartialResolvedId`);\n }\n let meta = result.meta?.['embroider-resolver'] as ResponseMeta | undefined;\n if (!meta) {\n throw new Error(`bug: no response meta for ${specifier}`);\n }\n return meta;\n }\n\n async function emitVirtualFile(context: PluginContext, fileName: string): Promise<void> {\n context.emitFile({\n type: 'asset',\n fileName,\n source: virtualContent((await ensureVirtualResolve(context, fileName)).virtual, resolverLoader.resolver).src,\n });\n }\n\n let mode = '';\n\n return {\n name: 'embroider-resolver',\n enforce: 'pre',\n\n configResolved(config) {\n mode = config.mode;\n },\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 return () => {\n server.middlewares.use((req, _res, next) => {\n const base = server.config.base || '/';\n let originalUrl = req.originalUrl;\n if (originalUrl?.startsWith(base)) {\n originalUrl = req.originalUrl!.slice(base.length - 1);\n }\n if (originalUrl && originalUrl.length > 1) {\n if (originalUrl?.match(/^\\/tests($|\\?)/)) {\n req.url = `/tests/index.html`;\n return next();\n }\n }\n return next();\n });\n };\n },\n\n async resolveId(source, importer, options) {\n let resolution = await resolveId(this, source, importer, options);\n if (typeof resolution === 'string') {\n return resolution;\n }\n if (resolution && resolution.meta?.['embroider-resolver']) {\n responseMetas.set(normalizePath(resolution.id), resolution.meta['embroider-resolver'] as ResponseMeta);\n }\n return resolution;\n },\n\n load(id) {\n let meta = responseMetas.get(normalizePath(id));\n if (meta?.virtual) {\n let { src, watches } = virtualContent(meta.virtual, resolverLoader.resolver);\n virtualDeps.set(id, watches);\n server?.watcher.add(watches);\n return src;\n }\n },\n async buildEnd() {\n emitVirtualFile(this, '@embroider/virtual/vendor.js');\n emitVirtualFile(this, '@embroider/virtual/vendor.css');\n\n if (mode !== 'production') {\n emitVirtualFile(this, '@embroider/virtual/test-support.js');\n emitVirtualFile(this, '@embroider/virtual/test-support.css');\n }\n },\n };\n}\n\n// During depscan, we have a wildly different job than during normal\n// usage. Embroider's esbuild resolver plugin replaces this rollup\n// resolver plugin for actually doing resolving, so we don't do any of\n// that. But we are still well-positioned to observe what vite's rollup\n// resolver plugin is doing, and that is important because vite's\n// esbuild depscan plugin will always obscure the results before\n// embroider's esbuild resolver plugin can see them. It obscures the\n// results by marking *both* \"not found\" and \"this is a third-party\n// package\" as \"external: true\". We really care about the difference\n// between the two, since we have fallback behaviors that should apply\n// to \"not found\" that should not apply to successfully discovered\n// third-party packages.\nasync function observeDepScan(context: PluginContext, source: string, importer: string | undefined, options: any) {\n let result = await context.resolve(source, importer, {\n ...options,\n skipSelf: true,\n });\n writeStatus(source, result ? { type: 'found', filename: result.id } : { type: 'not_found' });\n return result;\n}\n\nfunction idFromResult(result: ResolveIdResult): string | undefined {\n if (!result) {\n return undefined;\n }\n if (typeof result === 'string') {\n return cleanUrl(result);\n }\n return cleanUrl(result.id);\n}\n\nfunction hashed(path: string): string {\n let h = createHash('sha1');\n return h.update(path).digest('hex').slice(0, 8);\n}\n\nasync function maybeCaptureNewOptimizedDep(\n context: PluginContext,\n resolver: Resolver,\n result: ResolveIdResult,\n notViteDeps: Set<string>\n): Promise<ResolveIdResult> {\n let foundFile = idFromResult(result);\n if (!foundFile) {\n return result;\n }\n if (foundFile.startsWith(join(resolver.packageCache.appRoot, 'node_modules', '.vite'))) {\n debug('maybeCaptureNewOptimizedDep: %s already in vite deps', foundFile);\n return result;\n }\n let pkg = resolver.packageCache.ownerOfFile(foundFile);\n if (!pkg?.isV2Addon()) {\n debug('maybeCaptureNewOptimizedDep: %s not in v2 addon', foundFile);\n return result;\n }\n let target = externalName(pkg.packageJSON, explicitRelative(pkg.root, foundFile));\n if (!target) {\n debug('maybeCaptureNewOptimizedDep: %s is not exported', foundFile);\n return result;\n }\n\n if (notViteDeps.has(foundFile)) {\n debug('maybeCaptureNewOptimizedDep: already attmpted %s', foundFile);\n return result;\n }\n\n debug('maybeCaptureNewOptimizedDep: doing re-resolve for %s ', foundFile);\n\n let jumpRoot = join(tmpdir, 'embroider-vite-jump', hashed(pkg.root));\n let fromFile = join(jumpRoot, 'package.json');\n outputJSONSync(fromFile, {\n name: 'jump-root',\n });\n ensureSymlinkSync(pkg.root, join(jumpRoot, 'node_modules', pkg.name));\n let newResult = await context.resolve(target, fromFile);\n if (newResult) {\n if (idFromResult(newResult) === foundFile) {\n // This case is normal. For example, people could be using\n // `optimizeDeps.exclude` or they might be working in a monorepo where an\n // addon is not in node_modules. In both cases vite will decide not to\n // optimize the file, even though we gave it a chance to.\n //\n // We cache that result so we don't keep trying.\n debug('maybeCaptureNewOptimizedDep: %s did not become an optimized dep', foundFile);\n notViteDeps.add(foundFile);\n }\n\n return newResult;\n } else {\n return result;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/resolver.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Plugin, type ViteDevServer, normalizePath } from 'vite';\nimport core, { ModuleRequest, type Resolver } from '@embroider/core';\nconst { virtualContent, ResolverLoader, explicitRelative, cleanUrl, tmpdir } = core;\nimport { type ResponseMeta, RollupRequestAdapter } from './request.js';\nimport { assertNever } from 'assert-never';\nimport makeDebug from 'debug';\nimport { join, resolve } from 'path';\nimport { writeStatus } from './backchannel.js';\nimport type { PluginContext, ResolveIdResult } from 'rollup';\nimport { externalName } from '@embroider/reverse-exports';\nimport fs from 'fs-extra';\nimport { createHash } from 'crypto';\n\nconst { ensureSymlinkSync, outputJSONSync } = fs;\n\nconst debug = makeDebug('embroider:vite');\n\nexport function resolver(): Plugin {\n const resolverLoader = new ResolverLoader(process.cwd());\n let server: ViteDevServer;\n const virtualDeps: Map<string, string[]> = new Map();\n const notViteDeps = new Set<string>();\n const responseMetas: Map<string, ResponseMeta> = new Map();\n\n async function resolveId(\n context: PluginContext,\n source: string,\n importer: string | undefined,\n options: { custom?: Record<string, unknown>; scan?: boolean }\n ) {\n // vite 5 exposes `custom.depscan`, vite 6 exposes `options.scan`\n if (options.custom?.depScan || options.scan) {\n return await observeDepScan(context, source, importer, options);\n }\n\n let request = ModuleRequest.create(RollupRequestAdapter.create, {\n context,\n source,\n importer,\n custom: options.custom,\n });\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 if (resolution.virtual) {\n return resolution.result;\n } else {\n return await maybeCaptureNewOptimizedDep(context, resolverLoader.resolver, resolution.result, notViteDeps);\n }\n case 'not_found':\n return null;\n default:\n throw assertNever(resolution);\n }\n }\n\n async function ensureVirtualResolve(context: PluginContext, specifier: string): Promise<ResponseMeta> {\n let result = await resolveId(\n context,\n specifier,\n resolve(resolverLoader.resolver.options.appRoot, 'package.json'),\n {}\n );\n if (!result) {\n throw new Error(`bug: expected to resolve ${specifier}`);\n }\n if (typeof result === 'string') {\n throw new Error(`bug: expected to get a PartialResolvedId`);\n }\n let meta = result.meta?.['embroider-resolver'] as ResponseMeta | undefined;\n if (!meta) {\n throw new Error(`bug: no response meta for ${specifier}`);\n }\n return meta;\n }\n\n async function emitVirtualFile(context: PluginContext, fileName: string): Promise<void> {\n context.emitFile({\n type: 'asset',\n fileName,\n source: virtualContent((await ensureVirtualResolve(context, fileName)).virtual, resolverLoader.resolver).src,\n });\n }\n\n let mode = '';\n\n return {\n name: 'embroider-resolver',\n enforce: 'pre',\n\n configResolved(config) {\n mode = config.mode;\n },\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 return () => {\n server.middlewares.use((req, _res, next) => {\n const base = server.config.base || '/';\n let originalUrl = req.originalUrl;\n if (originalUrl?.startsWith(base)) {\n originalUrl = req.originalUrl!.slice(base.length - 1);\n }\n if (originalUrl && originalUrl.length > 1) {\n if (originalUrl?.match(/^\\/tests($|\\?)/)) {\n req.url = `/tests/index.html`;\n return next();\n }\n }\n return next();\n });\n };\n },\n\n async resolveId(source, importer, options) {\n let resolution = await resolveId(this, source, importer, options);\n if (typeof resolution === 'string') {\n return resolution;\n }\n if (resolution && resolution.meta?.['embroider-resolver']) {\n responseMetas.set(normalizePath(resolution.id), resolution.meta['embroider-resolver'] as ResponseMeta);\n }\n return resolution;\n },\n\n load(id) {\n let meta = responseMetas.get(normalizePath(id));\n if (meta?.virtual) {\n let { src, watches } = virtualContent(meta.virtual, resolverLoader.resolver);\n virtualDeps.set(id, watches);\n server?.watcher.add(watches);\n return src;\n }\n },\n async buildEnd() {\n emitVirtualFile(this, '@embroider/virtual/vendor.js');\n emitVirtualFile(this, '@embroider/virtual/vendor.css');\n\n if (mode !== 'production') {\n emitVirtualFile(this, '@embroider/virtual/test-support.js');\n emitVirtualFile(this, '@embroider/virtual/test-support.css');\n }\n },\n };\n}\n\n// During depscan, we have a wildly different job than during normal\n// usage. Embroider's esbuild resolver plugin replaces this rollup\n// resolver plugin for actually doing resolving, so we don't do any of\n// that. But we are still well-positioned to observe what vite's rollup\n// resolver plugin is doing, and that is important because vite's\n// esbuild depscan plugin will always obscure the results before\n// embroider's esbuild resolver plugin can see them. It obscures the\n// results by marking *both* \"not found\" and \"this is a third-party\n// package\" as \"external: true\". We really care about the difference\n// between the two, since we have fallback behaviors that should apply\n// to \"not found\" that should not apply to successfully discovered\n// third-party packages.\nasync function observeDepScan(context: PluginContext, source: string, importer: string | undefined, options: any) {\n let result = await context.resolve(source, importer, {\n ...options,\n skipSelf: true,\n });\n writeStatus(source, importer ?? '', result ? { type: 'found', filename: result.id } : { type: 'not_found' });\n return result;\n}\n\nfunction idFromResult(result: ResolveIdResult): string | undefined {\n if (!result) {\n return undefined;\n }\n if (typeof result === 'string') {\n return cleanUrl(result);\n }\n return cleanUrl(result.id);\n}\n\nfunction hashed(path: string): string {\n let h = createHash('sha1');\n return h.update(path).digest('hex').slice(0, 8);\n}\n\nasync function maybeCaptureNewOptimizedDep(\n context: PluginContext,\n resolver: Resolver,\n result: ResolveIdResult,\n notViteDeps: Set<string>\n): Promise<ResolveIdResult> {\n let foundFile = idFromResult(result);\n if (!foundFile) {\n return result;\n }\n if (foundFile.startsWith(join(resolver.packageCache.appRoot, 'node_modules', '.vite'))) {\n debug('maybeCaptureNewOptimizedDep: %s already in vite deps', foundFile);\n return result;\n }\n let pkg = resolver.packageCache.ownerOfFile(foundFile);\n if (!pkg?.isV2Addon()) {\n debug('maybeCaptureNewOptimizedDep: %s not in v2 addon', foundFile);\n return result;\n }\n let target = externalName(pkg.packageJSON, explicitRelative(pkg.root, foundFile));\n if (!target) {\n debug('maybeCaptureNewOptimizedDep: %s is not exported', foundFile);\n return result;\n }\n\n if (notViteDeps.has(foundFile)) {\n debug('maybeCaptureNewOptimizedDep: already attmpted %s', foundFile);\n return result;\n }\n\n debug('maybeCaptureNewOptimizedDep: doing re-resolve for %s ', foundFile);\n\n let jumpRoot = join(tmpdir, 'embroider-vite-jump', hashed(pkg.root));\n let fromFile = join(jumpRoot, 'package.json');\n outputJSONSync(fromFile, {\n name: 'jump-root',\n });\n ensureSymlinkSync(pkg.root, join(jumpRoot, 'node_modules', pkg.name));\n let newResult = await context.resolve(target, fromFile);\n if (newResult) {\n if (idFromResult(newResult) === foundFile) {\n // This case is normal. For example, people could be using\n // `optimizeDeps.exclude` or they might be working in a monorepo where an\n // addon is not in node_modules. In both cases vite will decide not to\n // optimize the file, even though we gave it a chance to.\n //\n // We cache that result so we don't keep trying.\n debug('maybeCaptureNewOptimizedDep: %s did not become an optimized dep', foundFile);\n notViteDeps.add(foundFile);\n }\n\n return newResult;\n } else {\n return result;\n }\n}\n"]}
|
package/dist/src/template-tag.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createFilter } from '@rollup/pluginutils';
|
|
2
2
|
import { Preprocessor } from 'content-tag';
|
|
3
3
|
const gjsFilter = createFilter('**/*.{gjs,gts}?(\\?)*');
|
|
4
|
-
export function templateTag(
|
|
4
|
+
export function templateTag() {
|
|
5
5
|
let preprocessor = new Preprocessor();
|
|
6
6
|
return {
|
|
7
7
|
name: 'embroider-template-tag',
|
|
@@ -12,7 +12,6 @@ export function templateTag({ inline_source_map } = { inline_source_map: false }
|
|
|
12
12
|
}
|
|
13
13
|
return preprocessor.process(code, {
|
|
14
14
|
filename: id,
|
|
15
|
-
inline_source_map: inline_source_map,
|
|
16
15
|
});
|
|
17
16
|
},
|
|
18
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-tag.js","sourceRoot":"","sources":["../../src/template-tag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,SAAS,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAC;AAExD,MAAM,UAAU,WAAW
|
|
1
|
+
{"version":3,"file":"template-tag.js","sourceRoot":"","sources":["../../src/template-tag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,SAAS,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAC;AAExD,MAAM,UAAU,WAAW;IACzB,IAAI,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IAEtC,OAAO;QACL,IAAI,EAAE,wBAAwB;QAC9B,OAAO,EAAE,KAAK;QAEd,SAAS,CAAC,IAAY,EAAE,EAAU;YAChC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE;gBAChC,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { createFilter } from '@rollup/pluginutils';\nimport type { Plugin } from 'vite';\nimport { Preprocessor } from 'content-tag';\n\nconst gjsFilter = createFilter('**/*.{gjs,gts}?(\\\\?)*');\n\nexport function templateTag(): Plugin {\n let preprocessor = new Preprocessor();\n\n return {\n name: 'embroider-template-tag',\n enforce: 'pre',\n\n transform(code: string, id: string) {\n if (!gjsFilter(id)) {\n return null;\n }\n return preprocessor.process(code, {\n filename: id,\n });\n },\n };\n}\n"]}
|