@embroider/core 3.4.12-unstable.ee5e024 → 3.4.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +13 -16
  3. package/src/app-files.d.ts +4 -3
  4. package/src/app-files.js +5 -24
  5. package/src/app-files.js.map +1 -1
  6. package/src/asset.d.ts +33 -0
  7. package/src/asset.js +3 -0
  8. package/src/asset.js.map +1 -0
  9. package/src/describe-exports.js.map +1 -1
  10. package/src/ember-html.d.ts +43 -0
  11. package/src/ember-html.js +110 -0
  12. package/src/ember-html.js.map +1 -0
  13. package/src/html-entrypoint.js.map +1 -1
  14. package/src/html-placeholder.js.map +1 -1
  15. package/src/index.d.ts +2 -1
  16. package/src/index.js.map +1 -1
  17. package/src/messages.js.map +1 -1
  18. package/src/module-resolver.d.ts +15 -31
  19. package/src/module-resolver.js +192 -347
  20. package/src/module-resolver.js.map +1 -1
  21. package/src/options.js.map +1 -1
  22. package/src/packager.js.map +1 -1
  23. package/src/portable-babel-config.js.map +1 -1
  24. package/src/portable-babel-launcher.js.map +1 -1
  25. package/src/portable.js.map +1 -1
  26. package/src/resolver-loader.js.map +1 -1
  27. package/src/to-broccoli-plugin.js.map +1 -1
  28. package/src/virtual-content.d.ts +2 -6
  29. package/src/virtual-content.js +42 -119
  30. package/src/virtual-content.js.map +1 -1
  31. package/src/wait-for-trees.js.map +1 -1
  32. package/src/node-resolve.d.ts +0 -33
  33. package/src/node-resolve.js +0 -131
  34. package/src/node-resolve.js.map +0 -1
  35. package/src/virtual-entrypoint.d.ts +0 -19
  36. package/src/virtual-entrypoint.js +0 -303
  37. package/src/virtual-entrypoint.js.map +0 -1
  38. package/src/virtual-route-entrypoint.d.ts +0 -15
  39. package/src/virtual-route-entrypoint.js +0 -102
  40. package/src/virtual-route-entrypoint.js.map +0 -1
  41. package/src/virtual-test-entrypoint.d.ts +0 -10
  42. package/src/virtual-test-entrypoint.js +0 -67
  43. package/src/virtual-test-entrypoint.js.map +0 -1
  44. package/src/virtual-test-support-styles.d.ts +0 -4
  45. package/src/virtual-test-support-styles.js +0 -65
  46. package/src/virtual-test-support-styles.js.map +0 -1
  47. package/src/virtual-test-support.d.ts +0 -4
  48. package/src/virtual-test-support.js +0 -69
  49. package/src/virtual-test-support.js.map +0 -1
  50. package/src/virtual-vendor-styles.d.ts +0 -4
  51. package/src/virtual-vendor-styles.js +0 -83
  52. package/src/virtual-vendor-styles.js.map +0 -1
  53. package/src/virtual-vendor.d.ts +0 -4
  54. package/src/virtual-vendor.js +0 -73
  55. package/src/virtual-vendor.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"portable-babel-launcher.js","sourceRoot":"","sources":["portable-babel-launcher.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PortableHint } from './portable';\nimport { Portable } from './portable';\n\nexport default function babelLauncher(\n this: any,\n babel: any,\n launch: { module: any; arg: any; hints: PortableHint[] },\n key: string\n) {\n let p = new Portable({ hints: launch.hints });\n let hydrated = p.hydrate(launch);\n let module;\n if (typeof hydrated.module === 'string') {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n module = require(hydrated.module);\n if (module.__esModule) {\n module = module.default;\n }\n } else {\n module = hydrated.module;\n }\n\n let plugin = module.call(this, babel, hydrated.arg, key);\n let innerStates = new WeakMap();\n\n function convertState(state: any) {\n let innerState = innerStates.get(state);\n if (!innerState) {\n innerState = Object.assign({}, state, { opts: hydrated.arg });\n innerStates.set(state, innerState);\n }\n return innerState;\n }\n\n function wrap1(original: any) {\n if (typeof original === 'function') {\n return function (this: any, file: any) {\n return original.call(convertState(this), file);\n };\n }\n }\n\n function wrap2(original: Function) {\n return function (this: any, path: any, state: any) {\n return original.call(convertState(this), path, convertState(state));\n };\n }\n\n let visitorProxy = {\n get(target: any, prop: string) {\n let original = target[prop];\n if (typeof original === 'function') {\n return wrap2(original);\n }\n if (original && typeof original === 'object') {\n let wrapped: any = {};\n if (typeof original.exit === 'function') {\n wrapped.exit = wrap2(original.exit);\n }\n if (typeof original.enter === 'function') {\n wrapped.enter = wrap2(original.enter);\n }\n return wrapped;\n }\n return original;\n },\n };\n\n return new Proxy(plugin, {\n get(target, prop) {\n let original = target[prop];\n switch (prop) {\n case 'pre':\n case 'post':\n return wrap1(original);\n case 'visitor':\n return new Proxy(original, visitorProxy);\n default:\n return original;\n }\n },\n });\n}\n"]}
1
+ {"version":3,"file":"portable-babel-launcher.js","sourceRoot":"","sources":["portable-babel-launcher.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PortableHint } from './portable';\nimport { Portable } from './portable';\n\nexport default function babelLauncher(\n this: any,\n babel: any,\n launch: { module: any; arg: any; hints: PortableHint[] },\n key: string\n) {\n let p = new Portable({ hints: launch.hints });\n let hydrated = p.hydrate(launch);\n let module;\n if (typeof hydrated.module === 'string') {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n module = require(hydrated.module);\n if (module.__esModule) {\n module = module.default;\n }\n } else {\n module = hydrated.module;\n }\n\n let plugin = module.call(this, babel, hydrated.arg, key);\n let innerStates = new WeakMap();\n\n function convertState(state: any) {\n let innerState = innerStates.get(state);\n if (!innerState) {\n innerState = Object.assign({}, state, { opts: hydrated.arg });\n innerStates.set(state, innerState);\n }\n return innerState;\n }\n\n function wrap1(original: any) {\n if (typeof original === 'function') {\n return function (this: any, file: any) {\n return original.call(convertState(this), file);\n };\n }\n }\n\n function wrap2(original: Function) {\n return function (this: any, path: any, state: any) {\n return original.call(convertState(this), path, convertState(state));\n };\n }\n\n let visitorProxy = {\n get(target: any, prop: string) {\n let original = target[prop];\n if (typeof original === 'function') {\n return wrap2(original);\n }\n if (original && typeof original === 'object') {\n let wrapped: any = {};\n if (typeof original.exit === 'function') {\n wrapped.exit = wrap2(original.exit);\n }\n if (typeof original.enter === 'function') {\n wrapped.enter = wrap2(original.enter);\n }\n return wrapped;\n }\n return original;\n },\n };\n\n return new Proxy(plugin, {\n get(target, prop) {\n let original = target[prop];\n switch (prop) {\n case 'pre':\n case 'post':\n return wrap1(original);\n case 'visitor':\n return new Proxy(original, visitorProxy);\n default:\n return original;\n }\n },\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"portable.js","sourceRoot":"","sources":["portable.ts"],"names":[],"mappings":"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","sourcesContent":["import mapValues from 'lodash/mapValues';\nimport assertNever from 'assert-never';\nimport { Memoize } from 'typescript-memoize';\nimport resolvePackagePath from 'resolve-package-path';\n\nexport const protocol = '__embroider_portable_values__';\nconst { globalValues, nonce } = setupGlobals();\n\nexport interface PortableResult {\n value: any;\n isParallelSafe: boolean;\n needsHydrate: boolean;\n}\n\nexport interface PortableHint {\n requireFile: string;\n packageVersion: string | undefined;\n useMethod?: string;\n}\n\nconst { findUpPackagePath } = resolvePackagePath;\n\nexport function maybeNodeModuleVersion(path: string) {\n const packagePath = findUpPackagePath(path);\n\n if (packagePath === null) {\n throw new Error(`Could not find package.json for '${path}'`);\n } else {\n return require(packagePath).version; // eslint-disable-line @typescript-eslint/no-require-imports\n }\n}\n\nexport class Portable {\n constructor(\n private opts: {\n dehydrate?: (value: any, accessPath: string[]) => PortableResult | undefined;\n hydrate?: (value: any, accessPath: string[]) => { value: any } | undefined;\n hints?: PortableHint[];\n } = {}\n ) {}\n\n dehydrate(value: any, accessPath: string[] = []): PortableResult {\n if (this.opts.dehydrate) {\n let result = this.opts.dehydrate.call(this, value, accessPath);\n if (result) {\n return result;\n }\n }\n\n if (value === null) {\n return { value, isParallelSafe: true, needsHydrate: false };\n }\n\n let broccoli = maybeBroccoli(value);\n if (broccoli) {\n return { value: broccoli, isParallelSafe: true, needsHydrate: true };\n }\n\n let htmlbars = maybeHTMLBars(value);\n if (htmlbars) {\n return { value: htmlbars, isParallelSafe: true, needsHydrate: true };\n }\n\n if (Array.isArray(value)) {\n let results = value.map((element, index) => this.dehydrate(element, accessPath.concat(String(index))));\n return {\n value: results.map(r => r.value),\n isParallelSafe: results.every(r => r.isParallelSafe),\n needsHydrate: results.some(r => r.needsHydrate),\n };\n }\n\n switch (typeof value) {\n case 'string':\n case 'number':\n case 'boolean':\n case 'undefined':\n return { value, isParallelSafe: true, needsHydrate: false };\n case 'object':\n if (Object.getPrototypeOf(value) === Object.prototype) {\n let isParallelSafe = true;\n let needsHydrate = false;\n let result = mapValues(value, (propertyValue, key) => {\n let result = this.dehydrate(propertyValue, accessPath.concat(key));\n isParallelSafe = isParallelSafe && result.isParallelSafe;\n needsHydrate = needsHydrate || result.needsHydrate;\n return result.value;\n });\n return { value: result, isParallelSafe, needsHydrate };\n }\n }\n\n let found = this.foundHints.get(value);\n if (found) {\n return {\n value: {\n embroiderPlaceholder: true,\n type: 'broccoli-parallel',\n requireFile: found.requireFile,\n packageVersion: maybeNodeModuleVersion(found.requireFile),\n useMethod: found.useMethod,\n },\n isParallelSafe: true,\n needsHydrate: true,\n };\n }\n\n return globalPlaceholder(value);\n }\n\n hydrate(input: any, accessPath: string[] = []): any {\n if (this.opts.hydrate) {\n let result = this.opts.hydrate.call(this, input, accessPath);\n if (result) {\n return result;\n }\n }\n if (Array.isArray(input)) {\n return input.map((element, index) => this.hydrate(element, accessPath.concat(String(index))));\n }\n if (input && typeof input === 'object') {\n if (input.embroiderPlaceholder) {\n let placeholder = input as Placeholder;\n switch (placeholder.type) {\n case 'global':\n if (placeholder.nonce !== nonce) {\n throw new Error(`unable to use this non-serializable babel config in this node process`);\n }\n return globalValues[placeholder.index];\n case 'broccoli-parallel':\n return buildBroccoli(placeholder);\n case 'htmlbars-parallel':\n return buildHTMLBars(placeholder);\n default:\n assertNever(placeholder);\n }\n } else {\n return mapValues(input, (value, key) => this.hydrate(value, accessPath.concat(key)));\n }\n }\n return input;\n }\n\n @Memoize()\n get foundHints(): Map<any, PortableHint> {\n let found = new Map();\n if (this.opts.hints) {\n for (let hint of this.opts.hints) {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n let mod = require(hint.requireFile);\n if (hint.useMethod) {\n mod = mod[hint.useMethod];\n }\n found.set(mod, hint);\n }\n }\n return found;\n }\n}\n\ninterface GlobalPlaceholder {\n embroiderPlaceholder: true;\n type: 'global';\n nonce: number;\n index: number;\n}\n\ninterface BroccoliParallelPlaceholder {\n embroiderPlaceholder: true;\n type: 'broccoli-parallel';\n requireFile: string;\n packageVersion: string | undefined;\n useMethod: string | undefined;\n buildUsing: string | undefined;\n params: any;\n}\n\ninterface HTMLBarsParallelPlaceholder {\n embroiderPlaceholder: true;\n type: 'htmlbars-parallel';\n packageVersion: string | undefined;\n requireFile: string;\n buildUsing: string;\n params: any;\n}\n\ntype Placeholder = GlobalPlaceholder | BroccoliParallelPlaceholder | HTMLBarsParallelPlaceholder;\n\nfunction setupGlobals() {\n let G = global as any as { [protocol]: { globalValues: any[]; nonce: number } };\n if (!G[protocol]) {\n G[protocol] = { globalValues: [], nonce: Math.floor(Math.random() * Math.pow(2, 32)) };\n }\n return G[protocol];\n}\n\n// === broccoli-babel-transpiler support ===\n\nfunction maybeBroccoli(object: any): BroccoliParallelPlaceholder | undefined {\n const type = typeof object;\n const hasProperties = type === 'function' || (type === 'object' && object !== null);\n\n if (\n hasProperties &&\n object._parallelBabel !== null &&\n typeof object._parallelBabel === 'object' &&\n typeof object._parallelBabel.requireFile === 'string'\n ) {\n return {\n embroiderPlaceholder: true,\n type: 'broccoli-parallel',\n requireFile: object._parallelBabel.requireFile,\n packageVersion: maybeNodeModuleVersion(object._parallelBabel.requireFile),\n buildUsing: object._parallelBabel.buildUsing,\n useMethod: object._parallelBabel.useMethod,\n params: object._parallelBabel.params,\n };\n }\n}\n\nfunction buildBroccoli(parallelApiInfo: BroccoliParallelPlaceholder) {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n let requiredStuff = require(parallelApiInfo.requireFile);\n\n if (parallelApiInfo.useMethod) {\n if (requiredStuff[parallelApiInfo.useMethod] === undefined) {\n throw new Error(\n \"method '\" + parallelApiInfo.useMethod + \"' does not exist in file \" + parallelApiInfo.requireFile\n );\n }\n return requiredStuff[parallelApiInfo.useMethod];\n }\n\n if (parallelApiInfo.buildUsing) {\n if (typeof requiredStuff[parallelApiInfo.buildUsing] !== 'function') {\n throw new Error(\"'\" + parallelApiInfo.buildUsing + \"' is not a function in file \" + parallelApiInfo.requireFile);\n }\n return requiredStuff[parallelApiInfo.buildUsing](parallelApiInfo.params);\n }\n\n return requiredStuff;\n}\n\n// ember-cli-htmlbars-inline-precompile support ===\nfunction maybeHTMLBars(object: any): HTMLBarsParallelPlaceholder | undefined {\n const type = typeof object;\n const hasProperties = type === 'function' || (type === 'object' && object !== null);\n\n if (\n hasProperties &&\n object.parallelBabel !== null &&\n typeof object.parallelBabel === 'object' &&\n typeof object.parallelBabel.requireFile === 'string'\n ) {\n return {\n embroiderPlaceholder: true,\n type: 'htmlbars-parallel',\n requireFile: object.parallelBabel.requireFile,\n packageVersion: maybeNodeModuleVersion(object.parallelBabel.requireFile),\n buildUsing: String(object.parallelBabel.buildUsing),\n params: object.parallelBabel.params,\n };\n }\n}\n\nfunction buildHTMLBars(parallelApiInfo: HTMLBarsParallelPlaceholder) {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n let requiredStuff = require(parallelApiInfo.requireFile);\n if (typeof requiredStuff[parallelApiInfo.buildUsing] !== 'function') {\n throw new Error(\"'\" + parallelApiInfo.buildUsing + \"' is not a function in file \" + parallelApiInfo.requireFile);\n }\n return requiredStuff[parallelApiInfo.buildUsing](parallelApiInfo.params);\n}\n\nfunction globalPlaceholder(value: any): { value: GlobalPlaceholder; isParallelSafe: false; needsHydrate: true } {\n let index = globalValues.length;\n globalValues.push(value);\n return {\n value: {\n embroiderPlaceholder: true,\n type: 'global',\n nonce,\n index,\n },\n isParallelSafe: false,\n needsHydrate: true,\n };\n}\n"]}
1
+ {"version":3,"file":"portable.js","sourceRoot":"","sources":["portable.ts"],"names":[],"mappings":"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","sourcesContent":["import mapValues from 'lodash/mapValues';\nimport assertNever from 'assert-never';\nimport { Memoize } from 'typescript-memoize';\nimport resolvePackagePath from 'resolve-package-path';\n\nexport const protocol = '__embroider_portable_values__';\nconst { globalValues, nonce } = setupGlobals();\n\nexport interface PortableResult {\n value: any;\n isParallelSafe: boolean;\n needsHydrate: boolean;\n}\n\nexport interface PortableHint {\n requireFile: string;\n packageVersion: string | undefined;\n useMethod?: string;\n}\n\nconst { findUpPackagePath } = resolvePackagePath;\n\nexport function maybeNodeModuleVersion(path: string) {\n const packagePath = findUpPackagePath(path);\n\n if (packagePath === null) {\n throw new Error(`Could not find package.json for '${path}'`);\n } else {\n return require(packagePath).version; // eslint-disable-line @typescript-eslint/no-require-imports\n }\n}\n\nexport class Portable {\n constructor(\n private opts: {\n dehydrate?: (value: any, accessPath: string[]) => PortableResult | undefined;\n hydrate?: (value: any, accessPath: string[]) => { value: any } | undefined;\n hints?: PortableHint[];\n } = {}\n ) {}\n\n dehydrate(value: any, accessPath: string[] = []): PortableResult {\n if (this.opts.dehydrate) {\n let result = this.opts.dehydrate.call(this, value, accessPath);\n if (result) {\n return result;\n }\n }\n\n if (value === null) {\n return { value, isParallelSafe: true, needsHydrate: false };\n }\n\n let broccoli = maybeBroccoli(value);\n if (broccoli) {\n return { value: broccoli, isParallelSafe: true, needsHydrate: true };\n }\n\n let htmlbars = maybeHTMLBars(value);\n if (htmlbars) {\n return { value: htmlbars, isParallelSafe: true, needsHydrate: true };\n }\n\n if (Array.isArray(value)) {\n let results = value.map((element, index) => this.dehydrate(element, accessPath.concat(String(index))));\n return {\n value: results.map(r => r.value),\n isParallelSafe: results.every(r => r.isParallelSafe),\n needsHydrate: results.some(r => r.needsHydrate),\n };\n }\n\n switch (typeof value) {\n case 'string':\n case 'number':\n case 'boolean':\n case 'undefined':\n return { value, isParallelSafe: true, needsHydrate: false };\n case 'object':\n if (Object.getPrototypeOf(value) === Object.prototype) {\n let isParallelSafe = true;\n let needsHydrate = false;\n let result = mapValues(value, (propertyValue, key) => {\n let result = this.dehydrate(propertyValue, accessPath.concat(key));\n isParallelSafe = isParallelSafe && result.isParallelSafe;\n needsHydrate = needsHydrate || result.needsHydrate;\n return result.value;\n });\n return { value: result, isParallelSafe, needsHydrate };\n }\n }\n\n let found = this.foundHints.get(value);\n if (found) {\n return {\n value: {\n embroiderPlaceholder: true,\n type: 'broccoli-parallel',\n requireFile: found.requireFile,\n packageVersion: maybeNodeModuleVersion(found.requireFile),\n useMethod: found.useMethod,\n },\n isParallelSafe: true,\n needsHydrate: true,\n };\n }\n\n return globalPlaceholder(value);\n }\n\n hydrate(input: any, accessPath: string[] = []): any {\n if (this.opts.hydrate) {\n let result = this.opts.hydrate.call(this, input, accessPath);\n if (result) {\n return result;\n }\n }\n if (Array.isArray(input)) {\n return input.map((element, index) => this.hydrate(element, accessPath.concat(String(index))));\n }\n if (input && typeof input === 'object') {\n if (input.embroiderPlaceholder) {\n let placeholder = input as Placeholder;\n switch (placeholder.type) {\n case 'global':\n if (placeholder.nonce !== nonce) {\n throw new Error(`unable to use this non-serializable babel config in this node process`);\n }\n return globalValues[placeholder.index];\n case 'broccoli-parallel':\n return buildBroccoli(placeholder);\n case 'htmlbars-parallel':\n return buildHTMLBars(placeholder);\n default:\n assertNever(placeholder);\n }\n } else {\n return mapValues(input, (value, key) => this.hydrate(value, accessPath.concat(key)));\n }\n }\n return input;\n }\n\n @Memoize()\n get foundHints(): Map<any, PortableHint> {\n let found = new Map();\n if (this.opts.hints) {\n for (let hint of this.opts.hints) {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n let mod = require(hint.requireFile);\n if (hint.useMethod) {\n mod = mod[hint.useMethod];\n }\n found.set(mod, hint);\n }\n }\n return found;\n }\n}\n\ninterface GlobalPlaceholder {\n embroiderPlaceholder: true;\n type: 'global';\n nonce: number;\n index: number;\n}\n\ninterface BroccoliParallelPlaceholder {\n embroiderPlaceholder: true;\n type: 'broccoli-parallel';\n requireFile: string;\n packageVersion: string | undefined;\n useMethod: string | undefined;\n buildUsing: string | undefined;\n params: any;\n}\n\ninterface HTMLBarsParallelPlaceholder {\n embroiderPlaceholder: true;\n type: 'htmlbars-parallel';\n packageVersion: string | undefined;\n requireFile: string;\n buildUsing: string;\n params: any;\n}\n\ntype Placeholder = GlobalPlaceholder | BroccoliParallelPlaceholder | HTMLBarsParallelPlaceholder;\n\nfunction setupGlobals() {\n let G = global as any as { [protocol]: { globalValues: any[]; nonce: number } };\n if (!G[protocol]) {\n G[protocol] = { globalValues: [], nonce: Math.floor(Math.random() * Math.pow(2, 32)) };\n }\n return G[protocol];\n}\n\n// === broccoli-babel-transpiler support ===\n\nfunction maybeBroccoli(object: any): BroccoliParallelPlaceholder | undefined {\n const type = typeof object;\n const hasProperties = type === 'function' || (type === 'object' && object !== null);\n\n if (\n hasProperties &&\n object._parallelBabel !== null &&\n typeof object._parallelBabel === 'object' &&\n typeof object._parallelBabel.requireFile === 'string'\n ) {\n return {\n embroiderPlaceholder: true,\n type: 'broccoli-parallel',\n requireFile: object._parallelBabel.requireFile,\n packageVersion: maybeNodeModuleVersion(object._parallelBabel.requireFile),\n buildUsing: object._parallelBabel.buildUsing,\n useMethod: object._parallelBabel.useMethod,\n params: object._parallelBabel.params,\n };\n }\n}\n\nfunction buildBroccoli(parallelApiInfo: BroccoliParallelPlaceholder) {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n let requiredStuff = require(parallelApiInfo.requireFile);\n\n if (parallelApiInfo.useMethod) {\n if (requiredStuff[parallelApiInfo.useMethod] === undefined) {\n throw new Error(\n \"method '\" + parallelApiInfo.useMethod + \"' does not exist in file \" + parallelApiInfo.requireFile\n );\n }\n return requiredStuff[parallelApiInfo.useMethod];\n }\n\n if (parallelApiInfo.buildUsing) {\n if (typeof requiredStuff[parallelApiInfo.buildUsing] !== 'function') {\n throw new Error(\"'\" + parallelApiInfo.buildUsing + \"' is not a function in file \" + parallelApiInfo.requireFile);\n }\n return requiredStuff[parallelApiInfo.buildUsing](parallelApiInfo.params);\n }\n\n return requiredStuff;\n}\n\n// ember-cli-htmlbars-inline-precompile support ===\nfunction maybeHTMLBars(object: any): HTMLBarsParallelPlaceholder | undefined {\n const type = typeof object;\n const hasProperties = type === 'function' || (type === 'object' && object !== null);\n\n if (\n hasProperties &&\n object.parallelBabel !== null &&\n typeof object.parallelBabel === 'object' &&\n typeof object.parallelBabel.requireFile === 'string'\n ) {\n return {\n embroiderPlaceholder: true,\n type: 'htmlbars-parallel',\n requireFile: object.parallelBabel.requireFile,\n packageVersion: maybeNodeModuleVersion(object.parallelBabel.requireFile),\n buildUsing: String(object.parallelBabel.buildUsing),\n params: object.parallelBabel.params,\n };\n }\n}\n\nfunction buildHTMLBars(parallelApiInfo: HTMLBarsParallelPlaceholder) {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n let requiredStuff = require(parallelApiInfo.requireFile);\n if (typeof requiredStuff[parallelApiInfo.buildUsing] !== 'function') {\n throw new Error(\"'\" + parallelApiInfo.buildUsing + \"' is not a function in file \" + parallelApiInfo.requireFile);\n }\n return requiredStuff[parallelApiInfo.buildUsing](parallelApiInfo.params);\n}\n\nfunction globalPlaceholder(value: any): { value: GlobalPlaceholder; isParallelSafe: false; needsHydrate: true } {\n let index = globalValues.length;\n globalValues.push(value);\n return {\n value: {\n embroiderPlaceholder: true,\n type: 'global',\n nonce,\n index,\n },\n isParallelSafe: false,\n needsHydrate: true,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"resolver-loader.js","sourceRoot":"","sources":["resolver-loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uCAAwC;AAExC,uDAA6C;AAC7C,kEAAwE;AACxE,+BAA4B;AAE5B,2BAAsC;AAEtC,MAAa,cAAc;IAKzB,YAAqB,OAAe,EAAE,KAAK,GAAG,KAAK;QAA9B,YAAO,GAAP,OAAO,CAAQ;QAJpC,2CAAgC;QAChC,6CAAoB;QACpB,0CAAgC;QAG9B,uBAAA,IAAI,8BAAe,IAAA,WAAI,EAAC,IAAA,4CAAyB,EAAC,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,MAAA,CAAC;QAClF,IAAI,KAAK,EAAE,CAAC;YACV,uBAAA,IAAI,2BAAY,IAAA,UAAO,EAAC,uBAAA,IAAI,kCAAY,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;gBACpE,uBAAA,IAAI,4BAAa,SAAS,MAAA,CAAC;YAC7B,CAAC,CAAC,MAAA,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK;;QACH,MAAA,uBAAA,IAAI,+BAAS,0CAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,CAAC,uBAAA,IAAI,gCAAU,EAAE,CAAC;YACpB,IAAI,MAAM,GAAY,IAAA,uBAAY,EAAC,IAAA,WAAI,EAAC,IAAA,4CAAyB,EAAC,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;YACnG,uBAAA,IAAI,4BAAa,IAAI,0BAAQ,CAAC,MAAM,CAAC,MAAA,CAAC;QACxC,CAAC;QACD,OAAO,uBAAA,IAAI,gCAAU,CAAC;IACxB,CAAC;CACF;AAzBD,wCAyBC","sourcesContent":["import { readJSONSync } from 'fs-extra';\nimport type { Options } from './module-resolver';\nimport { Resolver } from './module-resolver';\nimport { locateEmbroiderWorkingDir } from '@embroider/shared-internals';\nimport { join } from 'path';\nimport type { FSWatcher } from 'fs';\nimport { watch as fsWatch } from 'fs';\n\nexport class ResolverLoader {\n #resolver: Resolver | undefined;\n #configFile: string;\n #watcher: FSWatcher | undefined;\n\n constructor(readonly appRoot: string, watch = false) {\n this.#configFile = join(locateEmbroiderWorkingDir(this.appRoot), 'resolver.json');\n if (watch) {\n this.#watcher = fsWatch(this.#configFile, { persistent: false }, () => {\n this.#resolver = undefined;\n });\n }\n }\n\n close() {\n this.#watcher?.close();\n }\n\n get resolver(): Resolver {\n if (!this.#resolver) {\n let config: Options = readJSONSync(join(locateEmbroiderWorkingDir(this.appRoot), 'resolver.json'));\n this.#resolver = new Resolver(config);\n }\n return this.#resolver;\n }\n}\n"]}
1
+ {"version":3,"file":"resolver-loader.js","sourceRoot":"","sources":["resolver-loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uCAAwC;AAExC,uDAA6C;AAC7C,kEAAwE;AACxE,+BAA4B;AAE5B,2BAAsC;AAEtC,MAAa,cAAc;IAKzB,YAAqB,OAAe,EAAE,KAAK,GAAG,KAAK;QAA9B,YAAO,GAAP,OAAO,CAAQ;QAJpC,2CAAgC;QAChC,6CAAoB;QACpB,0CAAgC;QAG9B,uBAAA,IAAI,8BAAe,IAAA,WAAI,EAAC,IAAA,4CAAyB,EAAC,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,MAAA,CAAC;QAClF,IAAI,KAAK,EAAE;YACT,uBAAA,IAAI,2BAAY,IAAA,UAAO,EAAC,uBAAA,IAAI,kCAAY,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;gBACpE,uBAAA,IAAI,4BAAa,SAAS,MAAA,CAAC;YAC7B,CAAC,CAAC,MAAA,CAAC;SACJ;IACH,CAAC;IAED,KAAK;;QACH,MAAA,uBAAA,IAAI,+BAAS,0CAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,CAAC,uBAAA,IAAI,gCAAU,EAAE;YACnB,IAAI,MAAM,GAAY,IAAA,uBAAY,EAAC,IAAA,WAAI,EAAC,IAAA,4CAAyB,EAAC,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;YACnG,uBAAA,IAAI,4BAAa,IAAI,0BAAQ,CAAC,MAAM,CAAC,MAAA,CAAC;SACvC;QACD,OAAO,uBAAA,IAAI,gCAAU,CAAC;IACxB,CAAC;CACF;AAzBD,wCAyBC","sourcesContent":["import { readJSONSync } from 'fs-extra';\nimport type { Options } from './module-resolver';\nimport { Resolver } from './module-resolver';\nimport { locateEmbroiderWorkingDir } from '@embroider/shared-internals';\nimport { join } from 'path';\nimport type { FSWatcher } from 'fs';\nimport { watch as fsWatch } from 'fs';\n\nexport class ResolverLoader {\n #resolver: Resolver | undefined;\n #configFile: string;\n #watcher: FSWatcher | undefined;\n\n constructor(readonly appRoot: string, watch = false) {\n this.#configFile = join(locateEmbroiderWorkingDir(this.appRoot), 'resolver.json');\n if (watch) {\n this.#watcher = fsWatch(this.#configFile, { persistent: false }, () => {\n this.#resolver = undefined;\n });\n }\n }\n\n close() {\n this.#watcher?.close();\n }\n\n get resolver(): Resolver {\n if (!this.#resolver) {\n let config: Options = readJSONSync(join(locateEmbroiderWorkingDir(this.appRoot), 'resolver.json'));\n this.#resolver = new Resolver(config);\n }\n return this.#resolver;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"to-broccoli-plugin.js","sourceRoot":"","sources":["to-broccoli-plugin.ts"],"names":[],"mappings":";;;;;AAAA,sEAAqC;AAGrC,kEAAqD;AAMrD,SAAwB,gBAAgB,CACtC,aAA2C;IAE3C,MAAM,cAAe,SAAQ,yBAAM;QAEjC,YAAoB,KAAY,EAAU,QAAmB,EAAU,OAAiB;YACtF,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAClB,gBAAgB,EAAE,IAAI;gBACtB,UAAU,EAAE,KAAK;gBACjB,UAAU,EAAE,aAAa,CAAC,UAAU;aACrC,CAAC,CAAC;YALe,UAAK,GAAL,KAAK,CAAO;YAAU,aAAQ,GAAR,QAAQ,CAAW;YAAU,YAAO,GAAP,OAAO,CAAU;QAMxF,CAAC;QAED,KAAK,CAAC,KAAK;YACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAC/B,IAAI,CAAC,KAAK,CAAC,SAAS,EACpB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,QAAQ,EACb,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EACrD,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;KACF;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AA3BD,mCA2BC","sourcesContent":["import Plugin from 'broccoli-plugin';\nimport type { Packager, PackagerConstructor, Variant } from './packager';\nimport type Stage from './stage';\nimport { tmpdir } from '@embroider/shared-internals';\n\ninterface BroccoliPackager<Options> {\n new (stage: Stage, variants: Variant[], options?: Options): Plugin;\n}\n\nexport default function toBroccoliPlugin<Options>(\n packagerClass: PackagerConstructor<Options>\n): BroccoliPackager<Options> {\n class PackagerRunner extends Plugin {\n private packager: Packager | undefined;\n constructor(private stage: Stage, private variants: Variant[], private options?: Options) {\n super([stage.tree], {\n persistentOutput: true,\n needsCache: false,\n annotation: packagerClass.annotation,\n });\n }\n\n async build() {\n if (!this.packager) {\n this.packager = new packagerClass(\n this.stage.inputPath,\n this.outputPath,\n this.variants,\n msg => console.log(msg.split(tmpdir).join('$TMPDIR')),\n this.options\n );\n }\n return this.packager.build();\n }\n }\n return PackagerRunner;\n}\n"]}
1
+ {"version":3,"file":"to-broccoli-plugin.js","sourceRoot":"","sources":["to-broccoli-plugin.ts"],"names":[],"mappings":";;;;;AAAA,sEAAqC;AAGrC,kEAAqD;AAMrD,SAAwB,gBAAgB,CACtC,aAA2C;IAE3C,MAAM,cAAe,SAAQ,yBAAM;QAEjC,YAAoB,KAAY,EAAU,QAAmB,EAAU,OAAiB;YACtF,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAClB,gBAAgB,EAAE,IAAI;gBACtB,UAAU,EAAE,KAAK;gBACjB,UAAU,EAAE,aAAa,CAAC,UAAU;aACrC,CAAC,CAAC;YALe,UAAK,GAAL,KAAK,CAAO;YAAU,aAAQ,GAAR,QAAQ,CAAW;YAAU,YAAO,GAAP,OAAO,CAAU;QAMxF,CAAC;QAED,KAAK,CAAC,KAAK;YACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAC/B,IAAI,CAAC,KAAK,CAAC,SAAS,EACpB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,QAAQ,EACb,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EACrD,IAAI,CAAC,OAAO,CACb,CAAC;aACH;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;KACF;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AA3BD,mCA2BC","sourcesContent":["import Plugin from 'broccoli-plugin';\nimport type { Packager, PackagerConstructor, Variant } from './packager';\nimport type Stage from './stage';\nimport { tmpdir } from '@embroider/shared-internals';\n\ninterface BroccoliPackager<Options> {\n new (stage: Stage, variants: Variant[], options?: Options): Plugin;\n}\n\nexport default function toBroccoliPlugin<Options>(\n packagerClass: PackagerConstructor<Options>\n): BroccoliPackager<Options> {\n class PackagerRunner extends Plugin {\n private packager: Packager | undefined;\n constructor(private stage: Stage, private variants: Variant[], private options?: Options) {\n super([stage.tree], {\n persistentOutput: true,\n needsCache: false,\n annotation: packagerClass.annotation,\n });\n }\n\n async build() {\n if (!this.packager) {\n this.packager = new packagerClass(\n this.stage.inputPath,\n this.outputPath,\n this.variants,\n msg => console.log(msg.split(tmpdir).join('$TMPDIR')),\n this.options\n );\n }\n return this.packager.build();\n }\n }\n return PackagerRunner;\n}\n"]}
@@ -1,12 +1,8 @@
1
1
  import type { Resolver } from '.';
2
- export interface VirtualContentResult {
3
- src: string;
4
- watches: string[];
5
- }
6
- export declare function virtualContent(filename: string, resolver: Resolver): VirtualContentResult;
2
+ export declare function virtualContent(filename: string, resolver: Resolver): string;
7
3
  export declare function virtualExternalESModule(specifier: string, exports: string[] | undefined): string;
8
4
  export declare function virtualExternalCJSModule(specifier: string): string;
9
- export declare function virtualPairComponent(hbsModule: string, jsModule: string | undefined): string;
5
+ export declare function virtualPairComponent(hbsModule: string, jsModule: string | null): string;
10
6
  export declare function fastbootSwitch(specifier: string, fromFile: string, names: Set<string>): string;
11
7
  export declare function decodeFastbootSwitch(filename: string): {
12
8
  names: string[];
@@ -4,13 +4,6 @@ exports.decodeImplicitModules = exports.decodeFastbootSwitch = exports.fastbootS
4
4
  const path_1 = require("path");
5
5
  const _1 = require(".");
6
6
  const js_handlebars_1 = require("./js-handlebars");
7
- const virtual_test_support_1 = require("./virtual-test-support");
8
- const virtual_test_support_styles_1 = require("./virtual-test-support-styles");
9
- const virtual_vendor_1 = require("./virtual-vendor");
10
- const virtual_vendor_styles_1 = require("./virtual-vendor-styles");
11
- const virtual_entrypoint_1 = require("./virtual-entrypoint");
12
- const virtual_test_entrypoint_1 = require("./virtual-test-entrypoint");
13
- const virtual_route_entrypoint_1 = require("./virtual-route-entrypoint");
14
7
  const externalESPrefix = '/@embroider/ext-es/';
15
8
  const externalCJSPrefix = '/@embroider/ext-cjs/';
16
9
  // Given a filename that was passed to your ModuleRequest's `virtualize()`,
@@ -22,18 +15,6 @@ function virtualContent(filename, resolver) {
22
15
  if (cjsExtern) {
23
16
  return renderCJSExternalShim(cjsExtern);
24
17
  }
25
- let entrypoint = (0, virtual_entrypoint_1.decodeEntrypoint)(filename);
26
- if (entrypoint) {
27
- return (0, virtual_entrypoint_1.renderEntrypoint)(resolver, entrypoint);
28
- }
29
- let testEntrypoint = (0, virtual_test_entrypoint_1.decodeTestEntrypoint)(filename);
30
- if (testEntrypoint) {
31
- return (0, virtual_test_entrypoint_1.renderTestEntrypoint)(resolver, testEntrypoint);
32
- }
33
- let routeEntrypoint = (0, virtual_route_entrypoint_1.decodeRouteEntrypoint)(filename);
34
- if (routeEntrypoint) {
35
- return (0, virtual_route_entrypoint_1.renderRouteEntrypoint)(resolver, routeEntrypoint);
36
- }
37
18
  let extern = decodeVirtualExternalESModule(filename);
38
19
  if (extern) {
39
20
  return renderESExternalShim(extern);
@@ -44,28 +25,12 @@ function virtualContent(filename, resolver) {
44
25
  }
45
26
  let fb = decodeFastbootSwitch(filename);
46
27
  if (fb) {
47
- return renderFastbootSwitchTemplate(fb);
28
+ return fastbootSwitchTemplate(fb);
48
29
  }
49
30
  let im = decodeImplicitModules(filename);
50
31
  if (im) {
51
32
  return renderImplicitModules(im, resolver);
52
33
  }
53
- let isVendor = (0, virtual_vendor_1.decodeVirtualVendor)(filename);
54
- if (isVendor) {
55
- return (0, virtual_vendor_1.renderVendor)(filename, resolver);
56
- }
57
- let isImplicitTestScripts = (0, virtual_test_support_1.decodeImplicitTestScripts)(filename);
58
- if (isImplicitTestScripts) {
59
- return (0, virtual_test_support_1.renderImplicitTestScripts)(filename, resolver);
60
- }
61
- let isVendorStyles = (0, virtual_vendor_styles_1.decodeVirtualVendorStyles)(filename);
62
- if (isVendorStyles) {
63
- return (0, virtual_vendor_styles_1.renderVendorStyles)(filename, resolver);
64
- }
65
- let isTestSupportStyles = (0, virtual_test_support_styles_1.decodeTestSupportStyles)(filename);
66
- if (isTestSupportStyles) {
67
- return (0, virtual_test_support_styles_1.renderTestSupportStyles)(filename, resolver);
68
- }
69
34
  throw new Error(`not an @embroider/core virtual file: ${filename}`);
70
35
  }
71
36
  exports.virtualContent = virtualContent;
@@ -86,23 +51,14 @@ export { {{#each names as |name|}}{{name}}, {{/each}} }
86
51
  {{/if}}
87
52
  {{/if}}
88
53
  `);
89
- function renderESExternalShim({ moduleName, exports, }) {
90
- return {
91
- src: externalESShim({
92
- moduleName,
93
- default: exports.includes('default'),
94
- names: exports.filter(n => n !== 'default'),
95
- }),
96
- watches: [],
97
- };
54
+ function renderESExternalShim({ moduleName, exports }) {
55
+ return externalESShim({
56
+ moduleName,
57
+ default: exports.includes('default'),
58
+ names: exports.filter(n => n !== 'default'),
59
+ });
98
60
  }
99
- function pairedComponentShim(params) {
100
- return {
101
- src: pairedComponentShimTemplate(params),
102
- watches: [],
103
- };
104
- }
105
- const pairedComponentShimTemplate = (0, js_handlebars_1.compile)(`
61
+ const pairedComponentShim = (0, js_handlebars_1.compile)(`
106
62
  import { setComponentTemplate } from "@ember/component";
107
63
  import template from "{{{js-string-escape relativeHBSModule}}}";
108
64
  {{#if relativeJSModule}}
@@ -115,7 +71,7 @@ export default setComponentTemplate(template, templateOnlyComponent(undefined, "
115
71
  `);
116
72
  function virtualExternalESModule(specifier, exports) {
117
73
  if (exports) {
118
- return externalESPrefix + specifier + `/exports=${exports.join(',')}`;
74
+ return externalESPrefix + specifier + `?exports=${exports.join(',')}`;
119
75
  }
120
76
  else {
121
77
  return externalESPrefix + specifier;
@@ -129,12 +85,12 @@ exports.virtualExternalCJSModule = virtualExternalCJSModule;
129
85
  function decodeVirtualExternalESModule(filename) {
130
86
  if (filename.startsWith(externalESPrefix)) {
131
87
  let exports = [];
132
- let components = filename.split('/exports=');
133
- let nameString = components[1];
88
+ let url = new URL(filename.slice(externalESPrefix.length), 'http://example.com');
89
+ let nameString = url.searchParams.get('exports');
134
90
  if (nameString) {
135
91
  exports = nameString.split(',');
136
92
  }
137
- let moduleName = components[0].slice(externalESPrefix.length);
93
+ let moduleName = url.pathname.slice(1);
138
94
  return { moduleName, exports };
139
95
  }
140
96
  }
@@ -200,12 +156,6 @@ function decodeFastbootSwitch(filename) {
200
156
  }
201
157
  }
202
158
  exports.decodeFastbootSwitch = decodeFastbootSwitch;
203
- function renderFastbootSwitchTemplate(params) {
204
- return {
205
- src: fastbootSwitchTemplate(params),
206
- watches: [],
207
- };
208
- }
209
159
  const fastbootSwitchTemplate = (0, js_handlebars_1.compile)(`
210
160
  import { macroCondition, getGlobalConfig, importSync } from '@embroider/macros';
211
161
  let mod;
@@ -242,8 +192,8 @@ function renderImplicitModules({ type, fromFile, }, resolver) {
242
192
  if (!(pkg === null || pkg === void 0 ? void 0 : pkg.isV2Ember())) {
243
193
  throw new Error(`bug: saw special implicit modules import in non-ember package at ${fromFile}`);
244
194
  }
245
- let ownModules = [];
246
- let dependencyModules = [];
195
+ let lazyModules = [];
196
+ let eagerModules = [];
247
197
  let deps = pkg.dependencies.sort(orderAddons);
248
198
  for (let dep of deps) {
249
199
  // anything that isn't a v2 ember package by this point is not an active
@@ -276,7 +226,7 @@ function renderImplicitModules({ type, fromFile, }, resolver) {
276
226
  runtime = renamedModules[runtimeRenameLookup];
277
227
  }
278
228
  runtime = runtime.split(path_1.sep).join('/');
279
- ownModules.push({
229
+ lazyModules.push({
280
230
  runtime,
281
231
  buildtime: path_1.posix.join(packageName, name),
282
232
  });
@@ -285,32 +235,20 @@ function renderImplicitModules({ type, fromFile, }, resolver) {
285
235
  // we don't recurse across an engine boundary. Engines import their own
286
236
  // implicit-modules.
287
237
  if (!dep.isEngine()) {
288
- dependencyModules.push(path_1.posix.join(dep.name, `-embroider-${type}.js`));
238
+ eagerModules.push(path_1.posix.join(dep.name, `-embroider-${type}.js`));
289
239
  }
290
240
  }
291
- return { src: implicitModulesTemplate({ ownModules, dependencyModules }), watches: [] };
241
+ return implicitModulesTemplate({ lazyModules, eagerModules });
292
242
  }
293
243
  const implicitModulesTemplate = (0, js_handlebars_1.compile)(`
294
-
295
-
296
- {{#each dependencyModules as |module index|}}
297
- import dep{{index}} from "{{js-string-escape module}}";
244
+ import { importSync as i } from '@embroider/macros';
245
+ let d = window.define;
246
+ {{#each lazyModules as |module|}}
247
+ d("{{js-string-escape module.runtime}}", function(){ return i("{{js-string-escape module.buildtime}}");});
298
248
  {{/each}}
299
-
300
- {{#each ownModules as |module index|}}
301
- import * as own{{index}} from "{{js-string-escape module.buildtime}}";
249
+ {{#each eagerModules as |module|}}
250
+ import "{{js-string-escape module}}";
302
251
  {{/each}}
303
-
304
- export default Object.assign({},
305
- {{#each dependencyModules as |module index|}}
306
- dep{{index}},
307
- {{/each}}
308
- {
309
- {{#each ownModules as |module index|}}
310
- "{{js-string-escape module.runtime}}": own{{index}},
311
- {{/each}}
312
- }
313
- );
314
252
  `);
315
253
  // meta['renamed-modules'] has mapping from classic filename to real filename.
316
254
  // This takes that and converts it to the inverst mapping from real import path
@@ -336,41 +274,26 @@ function orderAddons(depA, depB) {
336
274
  }
337
275
  return depAIdx - depBIdx;
338
276
  }
339
- function renderCJSExternalShim(params) {
340
- return {
341
- src: renderCJSExternalShimTemplate(params),
342
- watches: [],
343
- };
344
- }
345
- const renderCJSExternalShimTemplate = (0, js_handlebars_1.compile)(`
346
- module.exports = new Proxy({}, {
347
- get(target, prop) {
348
-
349
- {{!- our proxy always presents as ES module so that we can intercept "get('default')" -}}
350
- if (prop === '__esModule') {
351
- return true;
352
- }
353
-
354
- {{#if (eq moduleName "require")}}
355
- const m = window.requirejs;
356
- {{else}}
357
- const m = window.require("{{{js-string-escape moduleName}}}");
358
- {{/if}}
359
-
360
- {{!-
361
- There are plenty of hand-written AMD defines floating around
362
- that lack an __esModule declaration.
277
+ const renderCJSExternalShim = (0, js_handlebars_1.compile)(`
278
+ {{#if (eq moduleName "require")}}
279
+ const m = window.requirejs;
280
+ {{else}}
281
+ const m = window.require("{{{js-string-escape moduleName}}}");
282
+ {{/if}}
283
+ {{!-
284
+ There are plenty of hand-written AMD defines floating around
285
+ that lack this, and they will break when other build systems
286
+ encounter them.
363
287
 
364
- As far as I can tell, Ember's loader was already treating the Boolean(m.default)===true
365
- case as a module, so in theory we aren't breaking anything by
366
- treating it as such when other packagers come looking.
367
- -}}
368
- if (prop === 'default' && !m.__esModule && !m.default) {
369
- return m;
370
- }
288
+ As far as I can tell, Ember's loader was already treating this
289
+ case as a module, so in theory we aren't breaking anything by
290
+ marking it as such when other packagers come looking.
371
291
 
372
- return m[prop];
373
- }
374
- });
292
+ todo: get review on this part.
293
+ -}}
294
+ if (m.default && !m.__esModule) {
295
+ m.__esModule = true;
296
+ }
297
+ module.exports = m;
375
298
  `);
376
299
  //# sourceMappingURL=virtual-content.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-content.js","sourceRoot":"","sources":["virtual-content.ts"],"names":[],"mappings":"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","sourcesContent":["import { dirname, basename, resolve, posix, sep, join } from 'path';\nimport type { Resolver, AddonPackage, Package } from '.';\nimport { explicitRelative, extensionsPattern } from '.';\nimport { compile } from './js-handlebars';\nimport { decodeImplicitTestScripts, renderImplicitTestScripts } from './virtual-test-support';\nimport { decodeTestSupportStyles, renderTestSupportStyles } from './virtual-test-support-styles';\nimport { decodeVirtualVendor, renderVendor } from './virtual-vendor';\nimport { decodeVirtualVendorStyles, renderVendorStyles } from './virtual-vendor-styles';\n\nimport { decodeEntrypoint, renderEntrypoint } from './virtual-entrypoint';\nimport { decodeTestEntrypoint, renderTestEntrypoint } from './virtual-test-entrypoint';\nimport { decodeRouteEntrypoint, renderRouteEntrypoint } from './virtual-route-entrypoint';\n\nconst externalESPrefix = '/@embroider/ext-es/';\nconst externalCJSPrefix = '/@embroider/ext-cjs/';\n\nexport interface VirtualContentResult {\n src: string;\n watches: string[];\n}\n\n// Given a filename that was passed to your ModuleRequest's `virtualize()`,\n// this produces the corresponding contents. It's a static, stateless function\n// because we recognize that that process that did resolution might not be the\n// same one that loads the content.\nexport function virtualContent(filename: string, resolver: Resolver): VirtualContentResult {\n let cjsExtern = decodeVirtualExternalCJSModule(filename);\n if (cjsExtern) {\n return renderCJSExternalShim(cjsExtern);\n }\n\n let entrypoint = decodeEntrypoint(filename);\n if (entrypoint) {\n return renderEntrypoint(resolver, entrypoint);\n }\n\n let testEntrypoint = decodeTestEntrypoint(filename);\n if (testEntrypoint) {\n return renderTestEntrypoint(resolver, testEntrypoint);\n }\n\n let routeEntrypoint = decodeRouteEntrypoint(filename);\n if (routeEntrypoint) {\n return renderRouteEntrypoint(resolver, routeEntrypoint);\n }\n\n let extern = decodeVirtualExternalESModule(filename);\n if (extern) {\n return renderESExternalShim(extern);\n }\n let match = decodeVirtualPairComponent(filename);\n if (match) {\n return pairedComponentShim(match);\n }\n\n let fb = decodeFastbootSwitch(filename);\n if (fb) {\n return renderFastbootSwitchTemplate(fb);\n }\n\n let im = decodeImplicitModules(filename);\n if (im) {\n return renderImplicitModules(im, resolver);\n }\n\n let isVendor = decodeVirtualVendor(filename);\n if (isVendor) {\n return renderVendor(filename, resolver);\n }\n\n let isImplicitTestScripts = decodeImplicitTestScripts(filename);\n if (isImplicitTestScripts) {\n return renderImplicitTestScripts(filename, resolver);\n }\n\n let isVendorStyles = decodeVirtualVendorStyles(filename);\n if (isVendorStyles) {\n return renderVendorStyles(filename, resolver);\n }\n\n let isTestSupportStyles = decodeTestSupportStyles(filename);\n if (isTestSupportStyles) {\n return renderTestSupportStyles(filename, resolver);\n }\n\n throw new Error(`not an @embroider/core virtual file: ${filename}`);\n}\n\nconst externalESShim = compile(`\n{{#if (eq moduleName \"require\")}}\nconst m = window.requirejs;\nexport default m;\nconst has = m.has;\nexport { has }\n{{else}}\nconst m = window.require(\"{{{js-string-escape moduleName}}}\");\n{{#if default}}\nexport default m.default;\n{{/if}}\n{{#if names}}\nconst { {{#each names as |name|}}{{name}}, {{/each}} } = m;\nexport { {{#each names as |name|}}{{name}}, {{/each}} }\n{{/if}}\n{{/if}}\n`) as (params: { moduleName: string; default: boolean; names: string[] }) => string;\n\nfunction renderESExternalShim({\n moduleName,\n exports,\n}: {\n moduleName: string;\n exports: string[];\n}): VirtualContentResult {\n return {\n src: externalESShim({\n moduleName,\n default: exports.includes('default'),\n names: exports.filter(n => n !== 'default'),\n }),\n watches: [],\n };\n}\n\ninterface PairedComponentShimParams {\n relativeHBSModule: string;\n relativeJSModule: string | null;\n debugName: string;\n}\n\nfunction pairedComponentShim(params: PairedComponentShimParams): VirtualContentResult {\n return {\n src: pairedComponentShimTemplate(params),\n watches: [],\n };\n}\n\nconst pairedComponentShimTemplate = compile(`\nimport { setComponentTemplate } from \"@ember/component\";\nimport template from \"{{{js-string-escape relativeHBSModule}}}\";\n{{#if relativeJSModule}}\nimport component from \"{{{js-string-escape relativeJSModule}}}\";\nexport default setComponentTemplate(template, component);\n{{else}}\nimport templateOnlyComponent from \"@ember/component/template-only\";\nexport default setComponentTemplate(template, templateOnlyComponent(undefined, \"{{{js-string-escape debugName}}}\"));\n{{/if}}\n`) as (params: PairedComponentShimParams) => string;\n\nexport function virtualExternalESModule(specifier: string, exports: string[] | undefined): string {\n if (exports) {\n return externalESPrefix + specifier + `/exports=${exports.join(',')}`;\n } else {\n return externalESPrefix + specifier;\n }\n}\n\nexport function virtualExternalCJSModule(specifier: string): string {\n return externalCJSPrefix + specifier;\n}\n\nfunction decodeVirtualExternalESModule(filename: string): { moduleName: string; exports: string[] } | undefined {\n if (filename.startsWith(externalESPrefix)) {\n let exports: string[] = [];\n let components = filename.split('/exports=');\n let nameString = components[1];\n if (nameString) {\n exports = nameString.split(',');\n }\n let moduleName = components[0].slice(externalESPrefix.length);\n return { moduleName, exports };\n }\n}\n\nfunction decodeVirtualExternalCJSModule(filename: string) {\n if (filename.startsWith(externalCJSPrefix)) {\n return { moduleName: filename.slice(externalCJSPrefix.length) };\n }\n}\n\nconst pairComponentMarker = '-embroider-pair-component';\nconst pairComponentPattern = /^(?<hbsModule>.*)\\/(?<jsModule>[^\\/]*)-embroider-pair-component$/;\n\nexport function virtualPairComponent(hbsModule: string, jsModule: string | undefined): string {\n let relativeJSModule = '';\n if (jsModule) {\n relativeJSModule = explicitRelative(hbsModule, jsModule);\n }\n return `${hbsModule}/${encodeURIComponent(relativeJSModule)}${pairComponentMarker}`;\n}\n\nfunction decodeVirtualPairComponent(\n filename: string\n): { relativeHBSModule: string; relativeJSModule: string | null; debugName: string } | null {\n // Performance: avoid paying regex exec cost unless needed\n if (!filename.includes(pairComponentMarker)) {\n return null;\n }\n let match = pairComponentPattern.exec(filename);\n if (!match) {\n return null;\n }\n let { hbsModule, jsModule } = match.groups! as { hbsModule: string; jsModule: string };\n // target our real hbs module from our virtual module\n let relativeHBSModule = explicitRelative(dirname(filename), hbsModule);\n return {\n relativeHBSModule,\n relativeJSModule: decodeURIComponent(jsModule) || null,\n debugName: basename(relativeHBSModule).replace(/\\.(js|hbs)$/, ''),\n };\n}\n\nconst fastbootSwitchSuffix = '/embroider_fastboot_switch';\nconst fastbootSwitchPattern = /(?<original>.+)\\/embroider_fastboot_switch(?:\\?names=(?<names>.+))?$/;\nexport function fastbootSwitch(specifier: string, fromFile: string, names: Set<string>): string {\n let filename = `${resolve(dirname(fromFile), specifier)}${fastbootSwitchSuffix}`;\n if (names.size > 0) {\n return `${filename}?names=${[...names].join(',')}`;\n } else {\n return filename;\n }\n}\n\nexport function decodeFastbootSwitch(filename: string) {\n // Performance: avoid paying regex exec cost unless needed\n if (!filename.includes(fastbootSwitchSuffix)) {\n return;\n }\n let match = fastbootSwitchPattern.exec(filename);\n if (match) {\n let names = match.groups?.names?.split(',') ?? [];\n return {\n names: names.filter(name => name !== 'default'),\n hasDefaultExport: names.includes('default'),\n filename: match.groups!.original,\n };\n }\n}\n\ninterface FastbootSwitchParams {\n names: string[];\n hasDefaultExport: boolean;\n}\n\nfunction renderFastbootSwitchTemplate(params: FastbootSwitchParams): VirtualContentResult {\n return {\n src: fastbootSwitchTemplate(params),\n watches: [],\n };\n}\n\nconst fastbootSwitchTemplate = compile(`\nimport { macroCondition, getGlobalConfig, importSync } from '@embroider/macros';\nlet mod;\nif (macroCondition(getGlobalConfig().fastboot?.isRunning)){\n mod = importSync('./fastboot');\n} else {\n mod = importSync('./browser');\n}\n{{#if hasDefaultExport}}\nexport default mod.default;\n{{/if}}\n{{#each names as |name|}}\nexport const {{name}} = mod.{{name}};\n{{/each}}\n`) as (params: FastbootSwitchParams) => string;\n\nconst implicitModulesPattern = /(?<filename>.*)[\\\\/]-embroider-implicit-(?<test>test-)?modules\\.js$/;\n\nexport function decodeImplicitModules(\n filename: string\n): { type: 'implicit-modules' | 'implicit-test-modules'; fromFile: string } | undefined {\n // Performance: avoid paying regex exec cost unless needed\n if (!filename.includes('-embroider-implicit-')) {\n return;\n }\n let m = implicitModulesPattern.exec(filename);\n if (m) {\n return {\n type: m.groups!.test ? 'implicit-test-modules' : 'implicit-modules',\n fromFile: m.groups!.filename,\n };\n }\n}\n\nfunction renderImplicitModules(\n {\n type,\n fromFile,\n }: {\n type: 'implicit-modules' | 'implicit-test-modules';\n fromFile: string;\n },\n resolver: Resolver\n): VirtualContentResult {\n let resolvableExtensionsPattern = extensionsPattern(resolver.options.resolvableExtensions);\n\n const pkg = resolver.packageCache.ownerOfFile(fromFile);\n if (!pkg?.isV2Ember()) {\n throw new Error(`bug: saw special implicit modules import in non-ember package at ${fromFile}`);\n }\n\n let ownModules: { runtime: string; buildtime: string }[] = [];\n let dependencyModules: string[] = [];\n\n let deps = pkg.dependencies.sort(orderAddons);\n\n for (let dep of deps) {\n // anything that isn't a v2 ember package by this point is not an active\n // addon.\n if (!dep.isV2Addon()) {\n continue;\n }\n\n // we ignore peerDependencies here because classic ember-cli ignores\n // peerDependencies here, and we're implementing the implicit-modules\n // backward-comptibility feature.\n if (pkg.categorizeDependency(dep.name) === 'peerDependencies') {\n continue;\n }\n\n let implicitModules = dep.meta[type];\n if (implicitModules) {\n let renamedModules = inverseRenamedModules(dep.meta, resolvableExtensionsPattern);\n for (let name of implicitModules) {\n let packageName = dep.name;\n\n let renamedMeta = dep.meta['renamed-packages'];\n if (renamedMeta) {\n Object.entries(renamedMeta).forEach(([key, value]) => {\n if (value === dep.name) {\n packageName = key;\n }\n });\n }\n\n let runtime = join(packageName, name).replace(resolvableExtensionsPattern, '');\n let runtimeRenameLookup = runtime.split('\\\\').join('/');\n if (renamedModules && renamedModules[runtimeRenameLookup]) {\n runtime = renamedModules[runtimeRenameLookup];\n }\n runtime = runtime.split(sep).join('/');\n ownModules.push({\n runtime,\n buildtime: posix.join(packageName, name),\n });\n }\n }\n // we don't recurse across an engine boundary. Engines import their own\n // implicit-modules.\n if (!dep.isEngine()) {\n dependencyModules.push(posix.join(dep.name, `-embroider-${type}.js`));\n }\n }\n return { src: implicitModulesTemplate({ ownModules, dependencyModules }), watches: [] };\n}\n\nconst implicitModulesTemplate = compile(`\n\n\n{{#each dependencyModules as |module index|}}\n import dep{{index}} from \"{{js-string-escape module}}\";\n{{/each}}\n\n{{#each ownModules as |module index|}}\n import * as own{{index}} from \"{{js-string-escape module.buildtime}}\";\n{{/each}}\n\nexport default Object.assign({},\n {{#each dependencyModules as |module index|}}\n dep{{index}},\n {{/each}}\n {\n {{#each ownModules as |module index|}}\n \"{{js-string-escape module.runtime}}\": own{{index}},\n {{/each}}\n }\n);\n`) as (params: { dependencyModules: string[]; ownModules: { runtime: string; buildtime: string }[] }) => string;\n\n// meta['renamed-modules'] has mapping from classic filename to real filename.\n// This takes that and converts it to the inverst mapping from real import path\n// to classic import path.\nfunction inverseRenamedModules(meta: AddonPackage['meta'], extensions: RegExp) {\n let renamed = meta['renamed-modules'];\n if (renamed) {\n let inverted = {} as { [name: string]: string };\n for (let [classic, real] of Object.entries(renamed)) {\n inverted[real.replace(extensions, '')] = classic.replace(extensions, '');\n }\n return inverted;\n }\n}\n\nfunction orderAddons(depA: Package, depB: Package): number {\n let depAIdx = 0;\n let depBIdx = 0;\n\n if (depA && depA.meta && depA.isV2Addon()) {\n depAIdx = depA.meta['order-index'] || 0;\n }\n if (depB && depB.meta && depB.isV2Addon()) {\n depBIdx = depB.meta['order-index'] || 0;\n }\n\n return depAIdx - depBIdx;\n}\n\nfunction renderCJSExternalShim(params: { moduleName: string }): VirtualContentResult {\n return {\n src: renderCJSExternalShimTemplate(params),\n watches: [],\n };\n}\n\nconst renderCJSExternalShimTemplate = compile(`\nmodule.exports = new Proxy({}, {\n get(target, prop) {\n\n {{!- our proxy always presents as ES module so that we can intercept \"get('default')\" -}}\n if (prop === '__esModule') {\n return true;\n }\n\n {{#if (eq moduleName \"require\")}}\n const m = window.requirejs;\n {{else}}\n const m = window.require(\"{{{js-string-escape moduleName}}}\");\n {{/if}}\n\n {{!-\n There are plenty of hand-written AMD defines floating around\n that lack an __esModule declaration.\n\n As far as I can tell, Ember's loader was already treating the Boolean(m.default)===true\n case as a module, so in theory we aren't breaking anything by\n treating it as such when other packagers come looking.\n -}}\n if (prop === 'default' && !m.__esModule && !m.default) {\n return m;\n }\n\n return m[prop];\n }\n});\n`) as (params: { moduleName: string }) => string;\n"]}
1
+ {"version":3,"file":"virtual-content.js","sourceRoot":"","sources":["virtual-content.ts"],"names":[],"mappings":";;;AAAA,+BAAoE;AAEpE,wBAAwD;AACxD,mDAA0C;AAE1C,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;AAC/C,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AAEjD,2EAA2E;AAC3E,8EAA8E;AAC9E,8EAA8E;AAC9E,mCAAmC;AACnC,SAAgB,cAAc,CAAC,QAAgB,EAAE,QAAkB;IACjE,IAAI,SAAS,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,SAAS,EAAE;QACb,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC;KACzC;IAED,IAAI,MAAM,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,MAAM,EAAE;QACV,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;KACrC;IACD,IAAI,KAAK,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,KAAK,EAAE;QACT,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;KACnC;IAED,IAAI,EAAE,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,EAAE,EAAE;QACN,OAAO,sBAAsB,CAAC,EAAE,CAAC,CAAC;KACnC;IAED,IAAI,EAAE,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,EAAE,EAAE;QACN,OAAO,qBAAqB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;KAC5C;IAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC;AACtE,CAAC;AA1BD,wCA0BC;AAED,MAAM,cAAc,GAAG,IAAA,uBAAO,EAAC;;;;;;;;;;;;;;;;CAgB9B,CAAkF,CAAC;AAEpF,SAAS,oBAAoB,CAAC,EAAE,UAAU,EAAE,OAAO,EAA6C;IAC9F,OAAO,cAAc,CAAC;QACpB,UAAU;QACV,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QACpC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;KAC5C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,mBAAmB,GAAG,IAAA,uBAAO,EAAC;;;;;;;;;;CAUnC,CAA0G,CAAC;AAE5G,SAAgB,uBAAuB,CAAC,SAAiB,EAAE,OAA6B;IACtF,IAAI,OAAO,EAAE;QACX,OAAO,gBAAgB,GAAG,SAAS,GAAG,YAAY,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;KACvE;SAAM;QACL,OAAO,gBAAgB,GAAG,SAAS,CAAC;KACrC;AACH,CAAC;AAND,0DAMC;AAED,SAAgB,wBAAwB,CAAC,SAAiB;IACxD,OAAO,iBAAiB,GAAG,SAAS,CAAC;AACvC,CAAC;AAFD,4DAEC;AAED,SAAS,6BAA6B,CAAC,QAAgB;IACrD,IAAI,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;QACzC,IAAI,OAAO,GAAa,EAAE,CAAC;QAC3B,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC,CAAC;QACjF,IAAI,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,UAAU,EAAE;YACd,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACjC;QACD,IAAI,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;KAChC;AACH,CAAC;AAED,SAAS,8BAA8B,CAAC,QAAgB;IACtD,IAAI,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE;QAC1C,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;KACjE;AACH,CAAC;AAED,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AACxD,MAAM,oBAAoB,GAAG,kEAAkE,CAAC;AAEhG,SAAgB,oBAAoB,CAAC,SAAiB,EAAE,QAAuB;IAC7E,IAAI,gBAAgB,GAAG,EAAE,CAAC;IAC1B,IAAI,QAAQ,EAAE;QACZ,gBAAgB,GAAG,IAAA,mBAAgB,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KAC1D;IACD,OAAO,GAAG,SAAS,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,mBAAmB,EAAE,CAAC;AACtF,CAAC;AAND,oDAMC;AAED,SAAS,0BAA0B,CACjC,QAAgB;IAEhB,0DAA0D;IAC1D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;QAC3C,OAAO,IAAI,CAAC;KACb;IACD,IAAI,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IACD,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,MAAkD,CAAC;IACvF,qDAAqD;IACrD,IAAI,iBAAiB,GAAG,IAAA,mBAAgB,EAAC,IAAA,cAAO,EAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;IACvE,OAAO;QACL,iBAAiB;QACjB,gBAAgB,EAAE,kBAAkB,CAAC,QAAQ,CAAC,IAAI,IAAI;QACtD,SAAS,EAAE,IAAA,eAAQ,EAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,MAAM,oBAAoB,GAAG,4BAA4B,CAAC;AAC1D,MAAM,qBAAqB,GAAG,sEAAsE,CAAC;AACrG,SAAgB,cAAc,CAAC,SAAiB,EAAE,QAAgB,EAAE,KAAkB;IACpF,IAAI,QAAQ,GAAG,GAAG,IAAA,cAAO,EAAC,IAAA,cAAO,EAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,GAAG,oBAAoB,EAAE,CAAC;IACjF,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE;QAClB,OAAO,GAAG,QAAQ,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;KACpD;SAAM;QACL,OAAO,QAAQ,CAAC;KACjB;AACH,CAAC;AAPD,wCAOC;AAED,SAAgB,oBAAoB,CAAC,QAAgB;;IACnD,0DAA0D;IAC1D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;QAC5C,OAAO;KACR;IACD,IAAI,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,KAAK,EAAE;QACT,IAAI,KAAK,GAAG,MAAA,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,KAAK,0CAAE,KAAK,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAC;QAClD,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;YAC/C,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC3C,QAAQ,EAAE,KAAK,CAAC,MAAO,CAAC,QAAQ;SACjC,CAAC;KACH;AACH,CAAC;AAdD,oDAcC;AAED,MAAM,sBAAsB,GAAG,IAAA,uBAAO,EAAC;;;;;;;;;;;;;;CActC,CAAuE,CAAC;AAEzE,MAAM,sBAAsB,GAAG,qEAAqE,CAAC;AAErG,SAAgB,qBAAqB,CACnC,QAAgB;IAEhB,0DAA0D;IAC1D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;QAC9C,OAAO;KACR;IACD,IAAI,CAAC,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,EAAE;QACL,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,MAAO,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,kBAAkB;YACnE,QAAQ,EAAE,CAAC,CAAC,MAAO,CAAC,QAAQ;SAC7B,CAAC;KACH;AACH,CAAC;AAdD,sDAcC;AAED,SAAS,qBAAqB,CAC5B,EACE,IAAI,EACJ,QAAQ,GAIT,EACD,QAAkB;IAElB,IAAI,2BAA2B,GAAG,IAAA,oBAAiB,EAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE3F,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACxD,IAAI,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,EAAE,CAAA,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,oEAAoE,QAAQ,EAAE,CAAC,CAAC;KACjG;IAED,IAAI,WAAW,GAA6C,EAAE,CAAC;IAC/D,IAAI,YAAY,GAAa,EAAE,CAAC;IAEhC,IAAI,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE9C,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;QACpB,wEAAwE;QACxE,SAAS;QACT,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE;YACpB,SAAS;SACV;QAED,oEAAoE;QACpE,qEAAqE;QACrE,iCAAiC;QACjC,IAAI,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,kBAAkB,EAAE;YAC7D,SAAS;SACV;QAED,IAAI,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,eAAe,EAAE;YACnB,IAAI,cAAc,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC;YAClF,KAAK,IAAI,IAAI,IAAI,eAAe,EAAE;gBAChC,IAAI,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;gBAE3B,IAAI,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC/C,IAAI,WAAW,EAAE;oBACf,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;wBACnD,IAAI,KAAK,KAAK,GAAG,CAAC,IAAI,EAAE;4BACtB,WAAW,GAAG,GAAG,CAAC;yBACnB;oBACH,CAAC,CAAC,CAAC;iBACJ;gBAED,IAAI,OAAO,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;gBAC/E,IAAI,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxD,IAAI,cAAc,IAAI,cAAc,CAAC,mBAAmB,CAAC,EAAE;oBACzD,OAAO,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC;iBAC/C;gBACD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,UAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvC,WAAW,CAAC,IAAI,CAAC;oBACf,OAAO;oBACP,SAAS,EAAE,YAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC;iBACzC,CAAC,CAAC;aACJ;SACF;QACD,uEAAuE;QACvE,oBAAoB;QACpB,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YACnB,YAAY,CAAC,IAAI,CAAC,YAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,IAAI,KAAK,CAAC,CAAC,CAAC;SAClE;KACF;IACD,OAAO,uBAAuB,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,uBAAuB,GAAG,IAAA,uBAAO,EAAC;;;;;;;;;CASvC,CAA0G,CAAC;AAE5G,8EAA8E;AAC9E,+EAA+E;AAC/E,0BAA0B;AAC1B,SAAS,qBAAqB,CAAC,IAA0B,EAAE,UAAkB;IAC3E,IAAI,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtC,IAAI,OAAO,EAAE;QACX,IAAI,QAAQ,GAAG,EAAgC,CAAC;QAChD,KAAK,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACnD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;SAC1E;QACD,OAAO,QAAQ,CAAC;KACjB;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAa,EAAE,IAAa;IAC/C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;QACzC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KACzC;IACD,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;QACzC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KACzC;IAED,OAAO,OAAO,GAAG,OAAO,CAAC;AAC3B,CAAC;AAED,MAAM,qBAAqB,GAAG,IAAA,uBAAO,EAAC;;;;;;;;;;;;;;;;;;;;;CAqBrC,CAA+C,CAAC","sourcesContent":["import { dirname, basename, resolve, posix, sep, join } from 'path';\nimport type { Resolver, AddonPackage, Package } from '.';\nimport { explicitRelative, extensionsPattern } from '.';\nimport { compile } from './js-handlebars';\n\nconst externalESPrefix = '/@embroider/ext-es/';\nconst externalCJSPrefix = '/@embroider/ext-cjs/';\n\n// Given a filename that was passed to your ModuleRequest's `virtualize()`,\n// this produces the corresponding contents. It's a static, stateless function\n// because we recognize that that process that did resolution might not be the\n// same one that loads the content.\nexport function virtualContent(filename: string, resolver: Resolver): string {\n let cjsExtern = decodeVirtualExternalCJSModule(filename);\n if (cjsExtern) {\n return renderCJSExternalShim(cjsExtern);\n }\n\n let extern = decodeVirtualExternalESModule(filename);\n if (extern) {\n return renderESExternalShim(extern);\n }\n let match = decodeVirtualPairComponent(filename);\n if (match) {\n return pairedComponentShim(match);\n }\n\n let fb = decodeFastbootSwitch(filename);\n if (fb) {\n return fastbootSwitchTemplate(fb);\n }\n\n let im = decodeImplicitModules(filename);\n if (im) {\n return renderImplicitModules(im, resolver);\n }\n\n throw new Error(`not an @embroider/core virtual file: ${filename}`);\n}\n\nconst externalESShim = compile(`\n{{#if (eq moduleName \"require\")}}\nconst m = window.requirejs;\nexport default m;\nconst has = m.has;\nexport { has }\n{{else}}\nconst m = window.require(\"{{{js-string-escape moduleName}}}\");\n{{#if default}}\nexport default m.default;\n{{/if}}\n{{#if names}}\nconst { {{#each names as |name|}}{{name}}, {{/each}} } = m;\nexport { {{#each names as |name|}}{{name}}, {{/each}} }\n{{/if}}\n{{/if}}\n`) as (params: { moduleName: string; default: boolean; names: string[] }) => string;\n\nfunction renderESExternalShim({ moduleName, exports }: { moduleName: string; exports: string[] }): string {\n return externalESShim({\n moduleName,\n default: exports.includes('default'),\n names: exports.filter(n => n !== 'default'),\n });\n}\n\nconst pairedComponentShim = compile(`\nimport { setComponentTemplate } from \"@ember/component\";\nimport template from \"{{{js-string-escape relativeHBSModule}}}\";\n{{#if relativeJSModule}}\nimport component from \"{{{js-string-escape relativeJSModule}}}\";\nexport default setComponentTemplate(template, component);\n{{else}}\nimport templateOnlyComponent from \"@ember/component/template-only\";\nexport default setComponentTemplate(template, templateOnlyComponent(undefined, \"{{{js-string-escape debugName}}}\"));\n{{/if}}\n`) as (params: { relativeHBSModule: string; relativeJSModule: string | null; debugName: string }) => string;\n\nexport function virtualExternalESModule(specifier: string, exports: string[] | undefined): string {\n if (exports) {\n return externalESPrefix + specifier + `?exports=${exports.join(',')}`;\n } else {\n return externalESPrefix + specifier;\n }\n}\n\nexport function virtualExternalCJSModule(specifier: string): string {\n return externalCJSPrefix + specifier;\n}\n\nfunction decodeVirtualExternalESModule(filename: string): { moduleName: string; exports: string[] } | undefined {\n if (filename.startsWith(externalESPrefix)) {\n let exports: string[] = [];\n let url = new URL(filename.slice(externalESPrefix.length), 'http://example.com');\n let nameString = url.searchParams.get('exports');\n if (nameString) {\n exports = nameString.split(',');\n }\n let moduleName = url.pathname.slice(1);\n return { moduleName, exports };\n }\n}\n\nfunction decodeVirtualExternalCJSModule(filename: string) {\n if (filename.startsWith(externalCJSPrefix)) {\n return { moduleName: filename.slice(externalCJSPrefix.length) };\n }\n}\n\nconst pairComponentMarker = '-embroider-pair-component';\nconst pairComponentPattern = /^(?<hbsModule>.*)\\/(?<jsModule>[^\\/]*)-embroider-pair-component$/;\n\nexport function virtualPairComponent(hbsModule: string, jsModule: string | null): string {\n let relativeJSModule = '';\n if (jsModule) {\n relativeJSModule = explicitRelative(hbsModule, jsModule);\n }\n return `${hbsModule}/${encodeURIComponent(relativeJSModule)}${pairComponentMarker}`;\n}\n\nfunction decodeVirtualPairComponent(\n filename: string\n): { relativeHBSModule: string; relativeJSModule: string | null; debugName: string } | null {\n // Performance: avoid paying regex exec cost unless needed\n if (!filename.includes(pairComponentMarker)) {\n return null;\n }\n let match = pairComponentPattern.exec(filename);\n if (!match) {\n return null;\n }\n let { hbsModule, jsModule } = match.groups! as { hbsModule: string; jsModule: string };\n // target our real hbs module from our virtual module\n let relativeHBSModule = explicitRelative(dirname(filename), hbsModule);\n return {\n relativeHBSModule,\n relativeJSModule: decodeURIComponent(jsModule) || null,\n debugName: basename(relativeHBSModule).replace(/\\.(js|hbs)$/, ''),\n };\n}\n\nconst fastbootSwitchSuffix = '/embroider_fastboot_switch';\nconst fastbootSwitchPattern = /(?<original>.+)\\/embroider_fastboot_switch(?:\\?names=(?<names>.+))?$/;\nexport function fastbootSwitch(specifier: string, fromFile: string, names: Set<string>): string {\n let filename = `${resolve(dirname(fromFile), specifier)}${fastbootSwitchSuffix}`;\n if (names.size > 0) {\n return `${filename}?names=${[...names].join(',')}`;\n } else {\n return filename;\n }\n}\n\nexport function decodeFastbootSwitch(filename: string) {\n // Performance: avoid paying regex exec cost unless needed\n if (!filename.includes(fastbootSwitchSuffix)) {\n return;\n }\n let match = fastbootSwitchPattern.exec(filename);\n if (match) {\n let names = match.groups?.names?.split(',') ?? [];\n return {\n names: names.filter(name => name !== 'default'),\n hasDefaultExport: names.includes('default'),\n filename: match.groups!.original,\n };\n }\n}\n\nconst fastbootSwitchTemplate = compile(`\nimport { macroCondition, getGlobalConfig, importSync } from '@embroider/macros';\nlet mod;\nif (macroCondition(getGlobalConfig().fastboot?.isRunning)){\n mod = importSync('./fastboot');\n} else {\n mod = importSync('./browser');\n}\n{{#if hasDefaultExport}}\nexport default mod.default;\n{{/if}}\n{{#each names as |name|}}\nexport const {{name}} = mod.{{name}};\n{{/each}}\n`) as (params: { names: string[]; hasDefaultExport: boolean }) => string;\n\nconst implicitModulesPattern = /(?<filename>.*)[\\\\/]-embroider-implicit-(?<test>test-)?modules\\.js$/;\n\nexport function decodeImplicitModules(\n filename: string\n): { type: 'implicit-modules' | 'implicit-test-modules'; fromFile: string } | undefined {\n // Performance: avoid paying regex exec cost unless needed\n if (!filename.includes('-embroider-implicit-')) {\n return;\n }\n let m = implicitModulesPattern.exec(filename);\n if (m) {\n return {\n type: m.groups!.test ? 'implicit-test-modules' : 'implicit-modules',\n fromFile: m.groups!.filename,\n };\n }\n}\n\nfunction renderImplicitModules(\n {\n type,\n fromFile,\n }: {\n type: 'implicit-modules' | 'implicit-test-modules';\n fromFile: string;\n },\n resolver: Resolver\n): string {\n let resolvableExtensionsPattern = extensionsPattern(resolver.options.resolvableExtensions);\n\n const pkg = resolver.packageCache.ownerOfFile(fromFile);\n if (!pkg?.isV2Ember()) {\n throw new Error(`bug: saw special implicit modules import in non-ember package at ${fromFile}`);\n }\n\n let lazyModules: { runtime: string; buildtime: string }[] = [];\n let eagerModules: string[] = [];\n\n let deps = pkg.dependencies.sort(orderAddons);\n\n for (let dep of deps) {\n // anything that isn't a v2 ember package by this point is not an active\n // addon.\n if (!dep.isV2Addon()) {\n continue;\n }\n\n // we ignore peerDependencies here because classic ember-cli ignores\n // peerDependencies here, and we're implementing the implicit-modules\n // backward-comptibility feature.\n if (pkg.categorizeDependency(dep.name) === 'peerDependencies') {\n continue;\n }\n\n let implicitModules = dep.meta[type];\n if (implicitModules) {\n let renamedModules = inverseRenamedModules(dep.meta, resolvableExtensionsPattern);\n for (let name of implicitModules) {\n let packageName = dep.name;\n\n let renamedMeta = dep.meta['renamed-packages'];\n if (renamedMeta) {\n Object.entries(renamedMeta).forEach(([key, value]) => {\n if (value === dep.name) {\n packageName = key;\n }\n });\n }\n\n let runtime = join(packageName, name).replace(resolvableExtensionsPattern, '');\n let runtimeRenameLookup = runtime.split('\\\\').join('/');\n if (renamedModules && renamedModules[runtimeRenameLookup]) {\n runtime = renamedModules[runtimeRenameLookup];\n }\n runtime = runtime.split(sep).join('/');\n lazyModules.push({\n runtime,\n buildtime: posix.join(packageName, name),\n });\n }\n }\n // we don't recurse across an engine boundary. Engines import their own\n // implicit-modules.\n if (!dep.isEngine()) {\n eagerModules.push(posix.join(dep.name, `-embroider-${type}.js`));\n }\n }\n return implicitModulesTemplate({ lazyModules, eagerModules });\n}\n\nconst implicitModulesTemplate = compile(`\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n{{#each lazyModules as |module|}}\nd(\"{{js-string-escape module.runtime}}\", function(){ return i(\"{{js-string-escape module.buildtime}}\");});\n{{/each}}\n{{#each eagerModules as |module|}}\nimport \"{{js-string-escape module}}\";\n{{/each}}\n`) as (params: { eagerModules: string[]; lazyModules: { runtime: string; buildtime: string }[] }) => string;\n\n// meta['renamed-modules'] has mapping from classic filename to real filename.\n// This takes that and converts it to the inverst mapping from real import path\n// to classic import path.\nfunction inverseRenamedModules(meta: AddonPackage['meta'], extensions: RegExp) {\n let renamed = meta['renamed-modules'];\n if (renamed) {\n let inverted = {} as { [name: string]: string };\n for (let [classic, real] of Object.entries(renamed)) {\n inverted[real.replace(extensions, '')] = classic.replace(extensions, '');\n }\n return inverted;\n }\n}\n\nfunction orderAddons(depA: Package, depB: Package): number {\n let depAIdx = 0;\n let depBIdx = 0;\n\n if (depA && depA.meta && depA.isV2Addon()) {\n depAIdx = depA.meta['order-index'] || 0;\n }\n if (depB && depB.meta && depB.isV2Addon()) {\n depBIdx = depB.meta['order-index'] || 0;\n }\n\n return depAIdx - depBIdx;\n}\n\nconst renderCJSExternalShim = compile(`\n{{#if (eq moduleName \"require\")}}\nconst m = window.requirejs;\n{{else}}\nconst m = window.require(\"{{{js-string-escape moduleName}}}\");\n{{/if}}\n{{!-\n There are plenty of hand-written AMD defines floating around\n that lack this, and they will break when other build systems\n encounter them.\n\n As far as I can tell, Ember's loader was already treating this\n case as a module, so in theory we aren't breaking anything by\n marking it as such when other packagers come looking.\n\n todo: get review on this part.\n-}}\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n`) as (params: { moduleName: string }) => string;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"wait-for-trees.js","sourceRoot":"","sources":["wait-for-trees.ts"],"names":[],"mappings":"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","sourcesContent":["import BroccoliPlugin from 'broccoli-plugin';\nimport type { Node } from 'broccoli-node-api';\n\n/*\n Takes some named broccoli trees and/or lists of broccoli trees and gives you\n the resulting inputPaths once those trees are built. Example:\n\n import { Node } from 'broccoli-node-api';;\n\n interface MyInputs<T> {\n codeFromMyApp: T,\n codeFromMyAddons: T[]\n }\n\n function(trees: MyInputs<Node>): Node {\n return WaitForTrees(trees, build);\n }\n\n async function build(paths: MyInputs<string>) {\n // paths.someTree is a string\n // paths.otherTrees is a string[]\n }\n\n*/\nexport default class WaitForTrees<NamedTrees> extends BroccoliPlugin {\n constructor(\n private trees: NamedTrees,\n annotation: string,\n private buildHook: (trees: OutputPaths<NamedTrees>, changed: Map<string, boolean>) => Promise<void>\n ) {\n super(flatTrees(trees), {\n persistentOutput: true,\n needsCache: false,\n annotation: annotation,\n trackInputChanges: true,\n });\n }\n\n async build(detail?: { changedNodes: boolean[] }) {\n let result: { [treeName: string]: string | string[] } = {};\n let changedMap = new Map();\n\n let inputPathCounter = 0;\n for (let entry of findTrees(this.trees)) {\n if (entry.single) {\n result[entry.name] = this.inputPaths[inputPathCounter];\n let didChange = detail ? detail.changedNodes[inputPathCounter] : true;\n changedMap.set(this.inputPaths[inputPathCounter], didChange);\n inputPathCounter += 1;\n } else if (entry.multi) {\n let sliced = this.inputPaths.slice(inputPathCounter, inputPathCounter + entry.multi.length);\n\n result[entry.name] = sliced.map(slice => {\n let didChange = detail ? detail.changedNodes[inputPathCounter] : true;\n changedMap.set(slice, didChange);\n inputPathCounter++;\n return slice;\n });\n }\n }\n return this.buildHook(result as unknown as OutputPaths<NamedTrees>, changedMap);\n }\n}\n\nexport type OutputPaths<NamedTrees> = {\n [P in keyof NamedTrees]: NamedTrees[P] extends Node ? string : NamedTrees[P] extends Node[] ? string[] : never;\n};\n\nfunction isTree(x: any): x is Node {\n return x && typeof x.__broccoliGetInfo__ === 'function';\n}\n\nfunction* findTrees<NamedTrees>(trees: NamedTrees): IterableIterator<{ name: string; single?: Node; multi?: Node[] }> {\n for (let [name, value] of Object.entries(trees as Record<string, unknown>)) {\n if (Array.isArray(value)) {\n let stringTrees = value.filter(t => typeof t === 'string');\n if (stringTrees.length > 0) {\n throw new Error(`found strings instead of broccoli trees for ${name}: ${value}`);\n }\n yield { name, multi: value.filter(isTree) };\n } else if (isTree(value)) {\n yield { name, single: value };\n } else if (typeof value === 'string') {\n throw new Error(`found a string when we expected a broccoli tree for ${name}: ${value}`);\n }\n }\n}\n\nfunction flatTrees<NamedTrees>(trees: NamedTrees) {\n let output: Node[] = [];\n for (let value of findTrees(trees)) {\n if (value.multi) {\n output = output.concat(value.multi);\n } else if (value.single) {\n output.push(value.single);\n }\n }\n return output;\n}\n"]}
1
+ {"version":3,"file":"wait-for-trees.js","sourceRoot":"","sources":["wait-for-trees.ts"],"names":[],"mappings":"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","sourcesContent":["import BroccoliPlugin from 'broccoli-plugin';\nimport type { Node } from 'broccoli-node-api';\n\n/*\n Takes some named broccoli trees and/or lists of broccoli trees and gives you\n the resulting inputPaths once those trees are built. Example:\n\n import { Node } from 'broccoli-node-api';;\n\n interface MyInputs<T> {\n codeFromMyApp: T,\n codeFromMyAddons: T[]\n }\n\n function(trees: MyInputs<Node>): Node {\n return WaitForTrees(trees, build);\n }\n\n async function build(paths: MyInputs<string>) {\n // paths.someTree is a string\n // paths.otherTrees is a string[]\n }\n\n*/\nexport default class WaitForTrees<NamedTrees> extends BroccoliPlugin {\n constructor(\n private trees: NamedTrees,\n annotation: string,\n private buildHook: (trees: OutputPaths<NamedTrees>, changed: Map<string, boolean>) => Promise<void>\n ) {\n super(flatTrees(trees), {\n persistentOutput: true,\n needsCache: false,\n annotation: annotation,\n trackInputChanges: true,\n });\n }\n\n async build(detail?: { changedNodes: boolean[] }) {\n let result: { [treeName: string]: string | string[] } = {};\n let changedMap = new Map();\n\n let inputPathCounter = 0;\n for (let entry of findTrees(this.trees)) {\n if (entry.single) {\n result[entry.name] = this.inputPaths[inputPathCounter];\n let didChange = detail ? detail.changedNodes[inputPathCounter] : true;\n changedMap.set(this.inputPaths[inputPathCounter], didChange);\n inputPathCounter += 1;\n } else if (entry.multi) {\n let sliced = this.inputPaths.slice(inputPathCounter, inputPathCounter + entry.multi.length);\n\n result[entry.name] = sliced.map(slice => {\n let didChange = detail ? detail.changedNodes[inputPathCounter] : true;\n changedMap.set(slice, didChange);\n inputPathCounter++;\n return slice;\n });\n }\n }\n return this.buildHook(result as unknown as OutputPaths<NamedTrees>, changedMap);\n }\n}\n\nexport type OutputPaths<NamedTrees> = {\n [P in keyof NamedTrees]: NamedTrees[P] extends Node ? string : NamedTrees[P] extends Node[] ? string[] : never;\n};\n\nfunction isTree(x: any): x is Node {\n return x && typeof x.__broccoliGetInfo__ === 'function';\n}\n\nfunction* findTrees<NamedTrees>(trees: NamedTrees): IterableIterator<{ name: string; single?: Node; multi?: Node[] }> {\n for (let [name, value] of Object.entries(trees as Record<string, unknown>)) {\n if (Array.isArray(value)) {\n let stringTrees = value.filter(t => typeof t === 'string');\n if (stringTrees.length > 0) {\n throw new Error(`found strings instead of broccoli trees for ${name}: ${value}`);\n }\n yield { name, multi: value.filter(isTree) };\n } else if (isTree(value)) {\n yield { name, single: value };\n } else if (typeof value === 'string') {\n throw new Error(`found a string when we expected a broccoli tree for ${name}: ${value}`);\n }\n }\n}\n\nfunction flatTrees<NamedTrees>(trees: NamedTrees) {\n let output: Node[] = [];\n for (let value of findTrees(trees)) {\n if (value.multi) {\n output = output.concat(value.multi);\n } else if (value.single) {\n output.push(value.single);\n }\n }\n return output;\n}\n"]}
@@ -1,33 +0,0 @@
1
- import type { ModuleRequest, Resolution, Resolver } from './module-resolver';
2
- export declare class NodeModuleRequest implements ModuleRequest {
3
- private resolver;
4
- readonly specifier: string;
5
- readonly fromFile: string;
6
- readonly isVirtual: boolean;
7
- readonly meta: Record<string, any> | undefined;
8
- readonly isNotFound: boolean;
9
- readonly resolvedTo: Resolution<NodeResolution, Error> | undefined;
10
- constructor(resolver: Resolver, specifier: string, fromFile: string, isVirtual: boolean, meta: Record<string, any> | undefined, isNotFound: boolean, resolvedTo: Resolution<NodeResolution, Error> | undefined);
11
- get debugType(): string;
12
- alias(specifier: string): this;
13
- rehome(fromFile: string): this;
14
- virtualize(filename: string): this;
15
- withMeta(meta: Record<string, any> | undefined): this;
16
- notFound(): this;
17
- resolveTo(resolution: Resolution<NodeResolution, Error>): this;
18
- defaultResolve(): Promise<Resolution<NodeResolution, Error>>;
19
- }
20
- type NodeResolution = {
21
- type: 'virtual';
22
- filename: string;
23
- content: string;
24
- } | {
25
- type: 'real';
26
- filename: string;
27
- };
28
- type NodeResolutionError = {
29
- type: 'not_found';
30
- err: Error;
31
- };
32
- export declare function nodeResolve(resolver: Resolver, specifier: string, fromFile: string): Promise<NodeResolution | NodeResolutionError>;
33
- export {};