@embroider/compat 3.5.4 → 3.5.5-unstable.3734d9fa
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +13 -13
- package/src/audit/babel-visitor.js +12 -6
- package/src/audit/babel-visitor.js.map +1 -1
- package/src/audit/build.js +3 -3
- package/src/audit/build.js.map +1 -1
- package/src/audit-cli.js.map +1 -1
- package/src/audit.d.ts +6 -54
- package/src/audit.js +93 -277
- package/src/audit.js.map +1 -1
- package/src/babel-plugin-adjust-imports.d.ts +2 -1
- package/src/babel-plugin-adjust-imports.js +2 -2
- package/src/babel-plugin-adjust-imports.js.map +1 -1
- package/src/build-compat-addon.js +1 -1
- package/src/build-compat-addon.js.map +1 -1
- package/src/compat-adapters/@ember/test-waiters.js.map +1 -1
- package/src/compat-adapters/@ember-data/store.d.ts +1 -5
- package/src/compat-adapters/@ember-data/store.js +3 -15
- package/src/compat-adapters/@ember-data/store.js.map +1 -1
- package/src/compat-adapters/ember-asset-loader.d.ts +0 -1
- package/src/compat-adapters/ember-asset-loader.js.map +1 -1
- package/src/compat-adapters/ember-cli-babel.js.map +1 -1
- package/src/compat-adapters/ember-cli-clipboard.d.ts +0 -1
- package/src/compat-adapters/ember-cli-fastboot.js.map +1 -1
- package/src/compat-adapters/ember-cli-mirage.js.map +1 -1
- package/src/compat-adapters/ember-composable-helpers.js.map +1 -1
- package/src/compat-adapters/ember-data.js.map +1 -1
- package/src/compat-adapters/ember-engines.js.map +1 -1
- package/src/compat-adapters/ember-fetch.d.ts +5 -0
- package/src/compat-adapters/ember-fetch.js +19 -0
- package/src/compat-adapters/ember-fetch.js.map +1 -0
- package/src/compat-adapters/ember-macro-helpers.js.map +1 -1
- package/src/compat-adapters/ember-scroll-modifiers.js.map +1 -1
- package/src/compat-adapters/ember-source.js.map +1 -1
- package/src/compat-adapters/ember-svg-jar.js.map +1 -1
- package/src/compat-addons.js +1 -1
- package/src/compat-addons.js.map +1 -1
- package/src/compat-app-builder.d.ts +9 -31
- package/src/compat-app-builder.js +76 -859
- package/src/compat-app-builder.js.map +1 -1
- package/src/compat-app.d.ts +2 -8
- package/src/compat-app.js +54 -59
- package/src/compat-app.js.map +1 -1
- package/src/compat-utils.js +4 -5
- package/src/compat-utils.js.map +1 -1
- package/src/content-for-config.d.ts +11 -0
- package/src/content-for-config.js +66 -0
- package/src/content-for-config.js.map +1 -0
- package/src/dasherize-component-name.js +2 -3
- package/src/dasherize-component-name.js.map +1 -1
- package/src/default-pipeline.d.ts +2 -2
- package/src/default-pipeline.js +23 -3
- package/src/default-pipeline.js.map +1 -1
- package/src/dependency-rules.js +3 -4
- package/src/dependency-rules.js.map +1 -1
- package/src/detect-babel-plugins.js +4 -5
- package/src/detect-babel-plugins.js.map +1 -1
- package/src/detect-compact-reexports.js +1 -2
- package/src/detect-compact-reexports.js.map +1 -1
- package/src/dummy-package.js.map +1 -1
- package/src/empty-package-tree.js.map +1 -1
- package/src/get-real-addon.js +1 -1
- package/src/get-real-addon.js.map +1 -1
- package/src/hbs-to-js-broccoli-plugin.js.map +1 -1
- package/src/htmlbars-unwrapper.js +1 -2
- package/src/htmlbars-unwrapper.js.map +1 -1
- package/src/http-audit.d.ts +13 -0
- package/src/http-audit.js +45 -0
- package/src/http-audit.js.map +1 -0
- package/src/index.d.ts +1 -1
- package/src/index.js +2 -1
- package/src/index.js.map +1 -1
- package/src/merges.js +2 -3
- package/src/merges.js.map +1 -1
- package/src/module-visitor.d.ts +52 -0
- package/src/module-visitor.js +285 -0
- package/src/module-visitor.js.map +1 -0
- package/src/modules-compat.js +1 -1
- package/src/modules-compat.js.map +1 -1
- package/src/options.d.ts +1 -0
- package/src/options.js +3 -2
- package/src/options.js.map +1 -1
- package/src/prepare-htmlbars-ast-plugins.js +1 -1
- package/src/prepare-htmlbars-ast-plugins.js.map +1 -1
- package/src/rename-require-plugin.js +1 -1
- package/src/rename-require-plugin.js.map +1 -1
- package/src/resolver-transform.js +4 -1
- package/src/resolver-transform.js.map +1 -1
- package/src/rewrite-addon-tree.js +1 -1
- package/src/rewrite-addon-tree.js.map +1 -1
- package/src/smoosh-package-json.js.map +1 -1
- package/src/snitch.js.map +1 -1
- package/src/standalone-addon-build.js +5 -6
- package/src/standalone-addon-build.js.map +1 -1
- package/src/sync-dir.js.map +1 -1
- package/src/synthesize-template-only-components.js.map +1 -1
- package/src/v1-addon.js.map +1 -1
- package/src/v1-appboot.js.map +1 -1
- package/src/v1-config.d.ts +0 -8
- package/src/v1-config.js +1 -51
- package/src/v1-config.js.map +1 -1
- package/src/v1-instance-cache.js.map +1 -1
- package/LICENSE +0 -21
- package/src/compat-adapters/@ember-data/debug.d.ts +0 -6
- package/src/compat-adapters/@ember-data/debug.js +0 -22
- package/src/compat-adapters/@ember-data/debug.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-rules.js","sourceRoot":"","sources":["dependency-rules.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Resolver } from '@embroider/core';\nimport { getOrCreate } from '@embroider/core';\nimport { resolve } from 'path';\nimport { satisfies } from 'semver';\n\nexport interface PackageRules {\n // This whole set of rules will only apply when the given addon package\n // matching the given semver range is present and active.\n package: string;\n semverRange?: string;\n\n components?: {\n // I would prefer to write the key type here as `ComponentSnippet` to aid\n // documentation, but Typescript won't allow it. See ComponentSnippet below.\n [key: string]: ComponentRules;\n };\n\n addonModules?: {\n // `filename` is relative to your package root, and it assumes v2 package\n // format. Like \"templates/components/foo.hbs\".\n [filename: string]: ModuleRules;\n };\n\n appModules?: {\n // `filename` is relative to the app's root, and it assumes v2 package\n // format. Like \"templates/components/foo.hbs\".\n [filename: string]: ModuleRules;\n };\n\n addonTemplates?: {\n // `filename` is relative to your package root, and it assumes v2 package\n // format. Like \"templates/foo.hbs\".\n [filename: string]: TemplateRules;\n };\n\n appTemplates?: {\n // `filename` is relative to the app's root, and it assumes v2 package\n // format. Like \"templates/foo.hbs\".\n [filename: string]: TemplateRules;\n };\n}\n\nexport interface ActivePackageRules extends PackageRules {\n // the location(s) of active packages that match this rule.\n roots: string[];\n}\n\nexport interface TemplateRules {\n // Tells embroider which list of components may be needed for a given path.\n // For example, if your template says `{{component this.panel}}` and you know\n // that `this.panel` can be either \"light-panel\" or \"dark-panel\", you would\n // say: `invokes: { \"this.panel\": [\"<LightPanel/>\", \"<DarkPanel/>\"] }`\n invokes?: {\n [path: string]: ComponentSnippet[];\n };\n\n // Embroider will complain if you try to use staticHelper and/or\n // staticComponents and you have ambiguous forms that might be a component or\n // a helper or just some data that is being rendered. For example, if a\n // template says `{{something}}`, we can't tell if that is `<Something />` or\n // `{{ (something) }}` or `{{this.something}}`.\n disambiguate?: {\n [dasherizedName: string]: 'component' | 'helper' | 'data';\n };\n}\n\nexport interface ComponentRules extends TemplateRules {\n // This declares that our component yields other components that are safe to\n // invoke with the {{component}} helper.\n //\n // The array corresponds to your yielded positional arguments. Any value that\n // is true is considered a safe component. Any value can be a hash in which\n // individual keys that are true are considered safe components.\n //\n // Examples:\n //\n // If you do: {{yield (component \"x\") }}\n // Then say: yieldsSafeComponents: [true]\n //\n // If you do: {{yield (hash x=(component \"x\") y=(component \"y\")) }}\n // Then say: yieldsSafeComponents: [{x: true, y: true}]\n //\n yieldsSafeComponents?: (boolean | { [name: string]: boolean })[];\n\n // This declares that our component yields some of its arguments unchanged.\n //\n // The array corresponds to your yielded positional arguments. Each value can\n // be:\n // false, meaning this yielded value is not one of our arguments\n // a string, meaning this yielded value is our argument with that name\n // or a POJO, whose individual properties are string naming which arguments\n // from whence they came.\n //\n // Examples:\n //\n // If you do: {{yield @foo}}\n // Then say: yieldsArguments: ['foo']\n //\n // If you do: {{yield (hash x=@foo) }}\n // Then say: yieldsArguments: [{ x: 'foo' }]\n yieldsArguments?: (string | { [name: string]: string })[];\n\n // This declares that our component accepts arguments that will be invoked\n // with the {{component}} helper. This silences warnings in the places where\n // we consume them, while introducing warnings in the places where people are\n // passing them to us (if they are doing so in a way that is too dynamic to\n // analyze).\n //\n // If you use this, you may also need to set `layout`, see below.\n acceptsComponentArguments?: ArgumentMapping[];\n\n // If you want to use `acceptsComponentArguments` on a component that\n // customies its own `layout` (which is most addon-provided components), you\n // need to tell us here how to find its template by setting either `addonPath`\n // or `appPath`.\n layout?: {\n // This is a path relative to the addon root, assuming V2 format.\n addonPath?: string;\n // This is the path relative to the app root, assuming V2 format.\n appPath?: string;\n };\n\n // An unresolvable component is usually a build error (when your app has the\n // staticComponent Option enabled). But you can tell Embroider to ignore it by\n // setting this.\n safeToIgnore?: boolean;\n}\n\nexport interface ModuleRules {\n // We will resolve these components into the corresponding JS and HBS files\n // and generate imports such that this module depends on them.\n dependsOnComponents?: ComponentSnippet[];\n\n // This adds new imports to our module, as if they were really there. Helpful\n // for working around addons that depend on things but don't say so.\n dependsOnModules?: string[];\n}\n\n// The bare \"string\" short form implies that `becomes` is the same as `name`.\nexport type ArgumentMapping =\n | string\n | {\n // the name of the argument you accept\n name: string;\n // the name its consumed as in your template\n becomes: string;\n };\n\n// A component snippet is a string containing valid HBS that is a single\n// component invocation. We use it to refer to components in a way that doesn't\n// require any new syntax or rules, and that's necessarily supported by whatever\n// build-time template resolver is in use.\n//\n// Examples of valid ComponentSnippets:\n//\n// \"{{my-component}}\"\n// \"{{my-component/foo}}\"\n// \"<MyComponent />\"\n// \"{{component 'my-component'}}\"\n//\ntype ComponentSnippet = string;\n\nexport interface PreprocessedComponentRule {\n yieldsSafeComponents: Required<ComponentRules>['yieldsSafeComponents'];\n yieldsArguments: Required<ComponentRules>['yieldsArguments'];\n argumentsAreComponents: string[];\n safeToIgnore: boolean;\n safeInteriorPaths: string[];\n disambiguate: Record<string, 'component' | 'helper' | 'data'>;\n}\n\n// take a component rule from the authoring format to a format more optimized\n// for consumption in the resolver\nexport function preprocessComponentRule(componentRules: ComponentRules): PreprocessedComponentRule {\n let argumentsAreComponents = [];\n let safeInteriorPaths = [];\n if (componentRules.acceptsComponentArguments) {\n for (let entry of componentRules.acceptsComponentArguments) {\n let name, interior;\n if (typeof entry === 'string') {\n name = interior = entry;\n } else {\n name = entry.name;\n interior = entry.becomes;\n }\n if (name.startsWith('@')) {\n name = name.slice(1);\n }\n argumentsAreComponents.push(name);\n safeInteriorPaths.push(interior);\n safeInteriorPaths.push('this.' + interior);\n safeInteriorPaths.push('@' + name);\n }\n }\n if (componentRules.invokes) {\n for (let [path] of Object.entries(componentRules.invokes)) {\n safeInteriorPaths.push(path);\n }\n }\n return {\n safeInteriorPaths,\n safeToIgnore: Boolean(componentRules.safeToIgnore),\n argumentsAreComponents,\n yieldsSafeComponents: componentRules.yieldsSafeComponents || [],\n yieldsArguments: componentRules.yieldsArguments || [],\n disambiguate: componentRules?.disambiguate ?? {},\n };\n}\n\nexport function activePackageRules(\n packageRules: PackageRules[],\n activePackages: { name: string; root: string; version: string }[]\n): ActivePackageRules[] {\n // rule order implies precedence. The first rule that matches a given package\n // applies to that package, and no other rule does.\n let rootsPerRule = new Map();\n for (let pkg of activePackages) {\n for (let rule of packageRules) {\n if (rule.package === pkg.name && (!rule.semverRange || satisfies(pkg.version, rule.semverRange))) {\n let roots = getOrCreate(rootsPerRule, rule, () => []);\n roots.push(pkg.root);\n break;\n }\n }\n }\n let output = [];\n for (let [rule, roots] of rootsPerRule) {\n output.push(Object.assign({ roots }, rule));\n }\n return output;\n}\n\nexport function appTreeRulesDir(root: string, resolver: Resolver) {\n let pkg = resolver.packageCache.ownerOfFile(root);\n if (pkg?.isV2Addon()) {\n // in general v2 addons can keep their app tree stuff in other places than\n // \"_app_\" and we would need to check their package.json to see. But this code\n // is only for applying packageRules to auto-upgraded v1 addons and apps, and\n // those we always organize predictably.\n return resolve(root, '_app_');\n } else {\n // auto-upgraded apps don't get an exist _app_ dir.\n return root;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"dependency-rules.js","sourceRoot":"","sources":["dependency-rules.ts"],"names":[],"mappings":";;AA6KA,0DAkCC;AAED,gDAqBC;AAED,0CAYC;AAnPD,0CAA8C;AAC9C,+BAA+B;AAC/B,mCAAmC;AAwKnC,6EAA6E;AAC7E,kCAAkC;AAClC,SAAgB,uBAAuB,CAAC,cAA8B;;IACpE,IAAI,sBAAsB,GAAG,EAAE,CAAC;IAChC,IAAI,iBAAiB,GAAG,EAAE,CAAC;IAC3B,IAAI,cAAc,CAAC,yBAAyB,EAAE,CAAC;QAC7C,KAAK,IAAI,KAAK,IAAI,cAAc,CAAC,yBAAyB,EAAE,CAAC;YAC3D,IAAI,IAAI,EAAE,QAAQ,CAAC;YACnB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,IAAI,GAAG,QAAQ,GAAG,KAAK,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;gBAClB,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;YAC3B,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC;YACD,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjC,iBAAiB,CAAC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;YAC3C,iBAAiB,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,OAAO;QACL,iBAAiB;QACjB,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC;QAClD,sBAAsB;QACtB,oBAAoB,EAAE,cAAc,CAAC,oBAAoB,IAAI,EAAE;QAC/D,eAAe,EAAE,cAAc,CAAC,eAAe,IAAI,EAAE;QACrD,YAAY,EAAE,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,YAAY,mCAAI,EAAE;KACjD,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAChC,YAA4B,EAC5B,cAAiE;IAEjE,6EAA6E;IAC7E,mDAAmD;IACnD,IAAI,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;IAC7B,KAAK,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;QAC/B,KAAK,IAAI,IAAI,IAAI,YAAY,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAA,kBAAS,EAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;gBACjG,IAAI,KAAK,GAAG,IAAA,kBAAW,EAAC,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACtD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,eAAe,CAAC,IAAY,EAAE,QAAkB;IAC9D,IAAI,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,EAAE,EAAE,CAAC;QACrB,0EAA0E;QAC1E,8EAA8E;QAC9E,6EAA6E;QAC7E,wCAAwC;QACxC,OAAO,IAAA,cAAO,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,mDAAmD;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC","sourcesContent":["import type { Resolver } from '@embroider/core';\nimport { getOrCreate } from '@embroider/core';\nimport { resolve } from 'path';\nimport { satisfies } from 'semver';\n\nexport interface PackageRules {\n // This whole set of rules will only apply when the given addon package\n // matching the given semver range is present and active.\n package: string;\n semverRange?: string;\n\n components?: {\n // I would prefer to write the key type here as `ComponentSnippet` to aid\n // documentation, but Typescript won't allow it. See ComponentSnippet below.\n [key: string]: ComponentRules;\n };\n\n addonModules?: {\n // `filename` is relative to your package root, and it assumes v2 package\n // format. Like \"templates/components/foo.hbs\".\n [filename: string]: ModuleRules;\n };\n\n appModules?: {\n // `filename` is relative to the app's root, and it assumes v2 package\n // format. Like \"templates/components/foo.hbs\".\n [filename: string]: ModuleRules;\n };\n\n addonTemplates?: {\n // `filename` is relative to your package root, and it assumes v2 package\n // format. Like \"templates/foo.hbs\".\n [filename: string]: TemplateRules;\n };\n\n appTemplates?: {\n // `filename` is relative to the app's root, and it assumes v2 package\n // format. Like \"templates/foo.hbs\".\n [filename: string]: TemplateRules;\n };\n}\n\nexport interface ActivePackageRules extends PackageRules {\n // the location(s) of active packages that match this rule.\n roots: string[];\n}\n\nexport interface TemplateRules {\n // Tells embroider which list of components may be needed for a given path.\n // For example, if your template says `{{component this.panel}}` and you know\n // that `this.panel` can be either \"light-panel\" or \"dark-panel\", you would\n // say: `invokes: { \"this.panel\": [\"<LightPanel/>\", \"<DarkPanel/>\"] }`\n invokes?: {\n [path: string]: ComponentSnippet[];\n };\n\n // Embroider will complain if you try to use staticHelper and/or\n // staticComponents and you have ambiguous forms that might be a component or\n // a helper or just some data that is being rendered. For example, if a\n // template says `{{something}}`, we can't tell if that is `<Something />` or\n // `{{ (something) }}` or `{{this.something}}`.\n disambiguate?: {\n [dasherizedName: string]: 'component' | 'helper' | 'data';\n };\n}\n\nexport interface ComponentRules extends TemplateRules {\n // This declares that our component yields other components that are safe to\n // invoke with the {{component}} helper.\n //\n // The array corresponds to your yielded positional arguments. Any value that\n // is true is considered a safe component. Any value can be a hash in which\n // individual keys that are true are considered safe components.\n //\n // Examples:\n //\n // If you do: {{yield (component \"x\") }}\n // Then say: yieldsSafeComponents: [true]\n //\n // If you do: {{yield (hash x=(component \"x\") y=(component \"y\")) }}\n // Then say: yieldsSafeComponents: [{x: true, y: true}]\n //\n yieldsSafeComponents?: (boolean | { [name: string]: boolean })[];\n\n // This declares that our component yields some of its arguments unchanged.\n //\n // The array corresponds to your yielded positional arguments. Each value can\n // be:\n // false, meaning this yielded value is not one of our arguments\n // a string, meaning this yielded value is our argument with that name\n // or a POJO, whose individual properties are string naming which arguments\n // from whence they came.\n //\n // Examples:\n //\n // If you do: {{yield @foo}}\n // Then say: yieldsArguments: ['foo']\n //\n // If you do: {{yield (hash x=@foo) }}\n // Then say: yieldsArguments: [{ x: 'foo' }]\n yieldsArguments?: (string | { [name: string]: string })[];\n\n // This declares that our component accepts arguments that will be invoked\n // with the {{component}} helper. This silences warnings in the places where\n // we consume them, while introducing warnings in the places where people are\n // passing them to us (if they are doing so in a way that is too dynamic to\n // analyze).\n //\n // If you use this, you may also need to set `layout`, see below.\n acceptsComponentArguments?: ArgumentMapping[];\n\n // If you want to use `acceptsComponentArguments` on a component that\n // customies its own `layout` (which is most addon-provided components), you\n // need to tell us here how to find its template by setting either `addonPath`\n // or `appPath`.\n layout?: {\n // This is a path relative to the addon root, assuming V2 format.\n addonPath?: string;\n // This is the path relative to the app root, assuming V2 format.\n appPath?: string;\n };\n\n // An unresolvable component is usually a build error (when your app has the\n // staticComponent Option enabled). But you can tell Embroider to ignore it by\n // setting this.\n safeToIgnore?: boolean;\n}\n\nexport interface ModuleRules {\n // We will resolve these components into the corresponding JS and HBS files\n // and generate imports such that this module depends on them.\n dependsOnComponents?: ComponentSnippet[];\n\n // This adds new imports to our module, as if they were really there. Helpful\n // for working around addons that depend on things but don't say so.\n dependsOnModules?: string[];\n}\n\n// The bare \"string\" short form implies that `becomes` is the same as `name`.\nexport type ArgumentMapping =\n | string\n | {\n // the name of the argument you accept\n name: string;\n // the name its consumed as in your template\n becomes: string;\n };\n\n// A component snippet is a string containing valid HBS that is a single\n// component invocation. We use it to refer to components in a way that doesn't\n// require any new syntax or rules, and that's necessarily supported by whatever\n// build-time template resolver is in use.\n//\n// Examples of valid ComponentSnippets:\n//\n// \"{{my-component}}\"\n// \"{{my-component/foo}}\"\n// \"<MyComponent />\"\n// \"{{component 'my-component'}}\"\n//\ntype ComponentSnippet = string;\n\nexport interface PreprocessedComponentRule {\n yieldsSafeComponents: Required<ComponentRules>['yieldsSafeComponents'];\n yieldsArguments: Required<ComponentRules>['yieldsArguments'];\n argumentsAreComponents: string[];\n safeToIgnore: boolean;\n safeInteriorPaths: string[];\n disambiguate: Record<string, 'component' | 'helper' | 'data'>;\n}\n\n// take a component rule from the authoring format to a format more optimized\n// for consumption in the resolver\nexport function preprocessComponentRule(componentRules: ComponentRules): PreprocessedComponentRule {\n let argumentsAreComponents = [];\n let safeInteriorPaths = [];\n if (componentRules.acceptsComponentArguments) {\n for (let entry of componentRules.acceptsComponentArguments) {\n let name, interior;\n if (typeof entry === 'string') {\n name = interior = entry;\n } else {\n name = entry.name;\n interior = entry.becomes;\n }\n if (name.startsWith('@')) {\n name = name.slice(1);\n }\n argumentsAreComponents.push(name);\n safeInteriorPaths.push(interior);\n safeInteriorPaths.push('this.' + interior);\n safeInteriorPaths.push('@' + name);\n }\n }\n if (componentRules.invokes) {\n for (let [path] of Object.entries(componentRules.invokes)) {\n safeInteriorPaths.push(path);\n }\n }\n return {\n safeInteriorPaths,\n safeToIgnore: Boolean(componentRules.safeToIgnore),\n argumentsAreComponents,\n yieldsSafeComponents: componentRules.yieldsSafeComponents || [],\n yieldsArguments: componentRules.yieldsArguments || [],\n disambiguate: componentRules?.disambiguate ?? {},\n };\n}\n\nexport function activePackageRules(\n packageRules: PackageRules[],\n activePackages: { name: string; root: string; version: string }[]\n): ActivePackageRules[] {\n // rule order implies precedence. The first rule that matches a given package\n // applies to that package, and no other rule does.\n let rootsPerRule = new Map();\n for (let pkg of activePackages) {\n for (let rule of packageRules) {\n if (rule.package === pkg.name && (!rule.semverRange || satisfies(pkg.version, rule.semverRange))) {\n let roots = getOrCreate(rootsPerRule, rule, () => []);\n roots.push(pkg.root);\n break;\n }\n }\n }\n let output = [];\n for (let [rule, roots] of rootsPerRule) {\n output.push(Object.assign({ roots }, rule));\n }\n return output;\n}\n\nexport function appTreeRulesDir(root: string, resolver: Resolver) {\n let pkg = resolver.packageCache.ownerOfFile(root);\n if (pkg?.isV2Addon()) {\n // in general v2 addons can keep their app tree stuff in other places than\n // \"_app_\" and we would need to check their package.json to see. But this code\n // is only for applying packageRules to auto-upgraded v1 addons and apps, and\n // those we always organize predictably.\n return resolve(root, '_app_');\n } else {\n // auto-upgraded apps don't get an exist _app_ dir.\n return root;\n }\n}\n"]}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isEmberAutoImportDynamic = isEmberAutoImportDynamic;
|
|
4
|
+
exports.isCompactReexports = isCompactReexports;
|
|
5
|
+
exports.isColocationPlugin = isColocationPlugin;
|
|
6
|
+
exports.isInlinePrecompilePlugin = isInlinePrecompilePlugin;
|
|
4
7
|
const path_1 = require("path");
|
|
5
8
|
function isEmberAutoImportDynamic(item) {
|
|
6
9
|
let pluginPath;
|
|
@@ -15,7 +18,6 @@ function isEmberAutoImportDynamic(item) {
|
|
|
15
18
|
}
|
|
16
19
|
return pluginPath.includes((0, path_1.join)(path_1.sep, 'ember-auto-import', path_1.sep));
|
|
17
20
|
}
|
|
18
|
-
exports.isEmberAutoImportDynamic = isEmberAutoImportDynamic;
|
|
19
21
|
function isCompactReexports(item) {
|
|
20
22
|
let pluginPath;
|
|
21
23
|
if (typeof item === 'string') {
|
|
@@ -29,7 +31,6 @@ function isCompactReexports(item) {
|
|
|
29
31
|
}
|
|
30
32
|
return pluginPath.includes((0, path_1.join)('babel-plugin-compact-reexports', path_1.sep));
|
|
31
33
|
}
|
|
32
|
-
exports.isCompactReexports = isCompactReexports;
|
|
33
34
|
function isColocationPlugin(item) {
|
|
34
35
|
let pluginPath;
|
|
35
36
|
if (typeof item === 'string') {
|
|
@@ -43,7 +44,6 @@ function isColocationPlugin(item) {
|
|
|
43
44
|
}
|
|
44
45
|
return pluginPath.includes((0, path_1.join)('ember-cli-htmlbars', 'lib', 'colocated-babel-plugin', path_1.sep));
|
|
45
46
|
}
|
|
46
|
-
exports.isColocationPlugin = isColocationPlugin;
|
|
47
47
|
// tests for the classic ember-cli-htmlbars-inline-precompile babel plugin
|
|
48
48
|
function isInlinePrecompilePlugin(item) {
|
|
49
49
|
if (typeof item === 'string') {
|
|
@@ -62,7 +62,6 @@ function isInlinePrecompilePlugin(item) {
|
|
|
62
62
|
}
|
|
63
63
|
return false;
|
|
64
64
|
}
|
|
65
|
-
exports.isInlinePrecompilePlugin = isInlinePrecompilePlugin;
|
|
66
65
|
function matchesSourceFile(filename) {
|
|
67
66
|
return Boolean(htmlbarPathMatches.find(match => filename.endsWith(match)));
|
|
68
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-babel-plugins.js","sourceRoot":"","sources":["detect-babel-plugins.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"detect-babel-plugins.js","sourceRoot":"","sources":["detect-babel-plugins.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PluginItem } from '@babel/core';\nimport { join, sep } from 'path';\n\nexport function isEmberAutoImportDynamic(item: PluginItem): boolean {\n let pluginPath: string;\n if (typeof item === 'string') {\n pluginPath = item;\n } else if (Array.isArray(item) && item.length > 0 && typeof item[0] === 'string') {\n pluginPath = item[0];\n } else {\n return false;\n }\n\n return pluginPath.includes(join(sep, 'ember-auto-import', sep));\n}\n\nexport function isCompactReexports(item: PluginItem): boolean {\n let pluginPath: string;\n if (typeof item === 'string') {\n pluginPath = item;\n } else if (Array.isArray(item) && item.length > 0 && typeof item[0] === 'string') {\n pluginPath = item[0];\n } else {\n return false;\n }\n\n return pluginPath.includes(join('babel-plugin-compact-reexports', sep));\n}\n\nexport function isColocationPlugin(item: PluginItem): boolean {\n let pluginPath: string;\n if (typeof item === 'string') {\n pluginPath = item;\n } else if (Array.isArray(item) && item.length > 0 && typeof item[0] === 'string') {\n pluginPath = item[0];\n } else {\n return false;\n }\n\n return pluginPath.includes(join('ember-cli-htmlbars', 'lib', 'colocated-babel-plugin', sep));\n}\n\n// tests for the classic ember-cli-htmlbars-inline-precompile babel plugin\nexport function isInlinePrecompilePlugin(item: PluginItem) {\n if (typeof item === 'string') {\n return matchesSourceFile(item);\n }\n if (hasProperties(item) && (item as any)._parallelBabel) {\n return matchesSourceFile((item as any)._parallelBabel.requireFile);\n }\n if (Array.isArray(item) && item.length > 0) {\n if (typeof item[0] === 'string') {\n return matchesSourceFile(item[0]);\n }\n if (hasProperties(item[0]) && (item[0] as any)._parallelBabel) {\n return matchesSourceFile((item[0] as any)._parallelBabel.requireFile);\n }\n }\n return false;\n}\n\nfunction matchesSourceFile(filename: string) {\n return Boolean(htmlbarPathMatches.find(match => filename.endsWith(match)));\n}\n\nfunction hasProperties(item: any) {\n return item && (typeof item === 'object' || typeof item === 'function');\n}\n\nconst htmlbarPathMatches = [\n ['htmlbars-inline-precompile', 'index.js'].join(sep),\n ['htmlbars-inline-precompile', 'lib', 'require-from-worker.js'].join(sep),\n ['htmlbars-inline-precompile', 'index'].join(sep),\n ['htmlbars-inline-precompile', 'lib', 'require-from-worker'].join(sep),\n ['ember-cli-htmlbars', 'index.js'].join(sep),\n ['ember-cli-htmlbars', 'lib', 'require-from-worker.js'].join(sep),\n ['ember-cli-htmlbars', 'index'].join(sep),\n ['ember-cli-htmlbars', 'lib', 'require-from-worker'].join(sep),\n ['babel-plugin-ember-template-compilation', 'src', 'node-main.js'].join(sep),\n];\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isCompactReexports =
|
|
3
|
+
exports.isCompactReexports = isCompactReexports;
|
|
4
4
|
function isCompactReexports(item) {
|
|
5
5
|
let pluginPath;
|
|
6
6
|
if (typeof item === 'string') {
|
|
@@ -14,5 +14,4 @@ function isCompactReexports(item) {
|
|
|
14
14
|
}
|
|
15
15
|
return /(^|\/)babel-plugin-compact-reexports\//.test(pluginPath);
|
|
16
16
|
}
|
|
17
|
-
exports.isCompactReexports = isCompactReexports;
|
|
18
17
|
//# sourceMappingURL=detect-compact-reexports.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-compact-reexports.js","sourceRoot":"","sources":["detect-compact-reexports.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"detect-compact-reexports.js","sourceRoot":"","sources":["detect-compact-reexports.ts"],"names":[],"mappings":";;AAEA,gDAUC;AAVD,SAAgB,kBAAkB,CAAC,IAAgB;IACjD,IAAI,UAAkB,CAAC;IACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QACjF,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,wCAAwC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACnE,CAAC","sourcesContent":["import type { PluginItem } from '@babel/core';\n\nexport function isCompactReexports(item: PluginItem): boolean {\n let pluginPath: string;\n if (typeof item === 'string') {\n pluginPath = item;\n } else if (Array.isArray(item) && item.length > 0 && typeof item[0] === 'string') {\n pluginPath = item[0];\n } else {\n return false;\n }\n return /(^|\\/)babel-plugin-compact-reexports\\//.test(pluginPath);\n}\n"]}
|
package/src/dummy-package.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dummy-package.js","sourceRoot":"","sources":["dummy-package.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,0CAA0C;AAC1C,2DAA6C;AAC7C,iEAAyC;AAEzC,8EAA8E;AAC9E,qDAAqD;AACrD,MAAqB,YAAa,SAAQ,cAAO;IAC/C,YAAY,IAAY,EAAU,eAAuB,EAAE,YAA0B;QACnF,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QADA,oBAAe,GAAf,eAAe,CAAQ;IAEzD,CAAC;IAGD,IAAc,mBAAmB;QAC/B,IAAI,GAAG,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,CAAC;QAC7E,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IAGD,IAAI,iBAAiB;QACnB,IAAI,IAAI,GAAG,KAAK,CAAC,iBAAiB,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"dummy-package.js","sourceRoot":"","sources":["dummy-package.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,0CAA0C;AAC1C,2DAA6C;AAC7C,iEAAyC;AAEzC,8EAA8E;AAC9E,qDAAqD;AACrD,MAAqB,YAAa,SAAQ,cAAO;IAC/C,YAAY,IAAY,EAAU,eAAuB,EAAE,YAA0B;QACnF,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QADA,oBAAe,GAAf,eAAe,CAAQ;IAEzD,CAAC;IAGD,IAAc,mBAAmB;QAC/B,IAAI,GAAG,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,CAAC;QAC7E,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IAGD,IAAI,iBAAiB;QACnB,IAAI,IAAI,GAAG,KAAK,CAAC,iBAAiB,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACnB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAtBD,+BAsBC;AAhBC;IADC,IAAA,4BAAO,GAAE;uDAKT;AAGD;IADC,IAAA,4BAAO,GAAE;qDAST","sourcesContent":["import type { PackageCache } from '@embroider/core';\nimport { Package } from '@embroider/core';\nimport { Memoize } from 'typescript-memoize';\nimport cloneDeep from 'lodash/cloneDeep';\n\n// A specialized Package that represents a Dummy App (the app that comes along\n// with an addon for purposes of testing that addon).\nexport default class DummyPackage extends Package {\n constructor(root: string, private owningAddonRoot: string, packageCache: PackageCache) {\n super(root, packageCache, true);\n }\n\n @Memoize()\n protected get internalPackageJSON() {\n let pkg = cloneDeep(this.packageCache.get(this.owningAddonRoot).packageJSON);\n pkg.name = 'dummy';\n return pkg;\n }\n\n @Memoize()\n get nonResolvableDeps(): Map<string, Package> {\n let deps = super.nonResolvableDeps;\n if (!deps) {\n deps = new Map();\n }\n const owningAddon = this.packageCache.get(this.owningAddonRoot);\n deps.set(owningAddon.name, owningAddon);\n return deps;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty-package-tree.js","sourceRoot":"","sources":["empty-package-tree.ts"],"names":[],"mappings":";;;;;AACA,sEAAqC;AACrC,uCAAyC;AACzC,+BAA4B;AAE5B,eAAqB,SAAQ,yBAAM;IAGjC,YAAoB,eAAwB;QAC1C,KAAK,CAAC,EAAE,EAAE;YACR,UAAU,EAAE,oBAAoB;YAChC,gBAAgB,EAAE,IAAI;YACtB,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;QALe,oBAAe,GAAf,eAAe,CAAS;QAFpC,UAAK,GAAG,KAAK,CAAC;IAQtB,CAAC;IACD,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"empty-package-tree.js","sourceRoot":"","sources":["empty-package-tree.ts"],"names":[],"mappings":";;;;;AACA,sEAAqC;AACrC,uCAAyC;AACzC,+BAA4B;AAE5B,eAAqB,SAAQ,yBAAM;IAGjC,YAAoB,eAAwB;QAC1C,KAAK,CAAC,EAAE,EAAE;YACR,UAAU,EAAE,oBAAoB;YAChC,gBAAgB,EAAE,IAAI;YACtB,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;QALe,oBAAe,GAAf,eAAe,CAAS;QAFpC,UAAK,GAAG,KAAK,CAAC;IAQtB,CAAC;IACD,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAA,wBAAa,EAAC,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE;gBACnD,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI;gBAC/B,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO;gBACrC,IAAI,EAAE,sIAAsI;aAC7I,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AAnBD,4BAmBC","sourcesContent":["import type { Package } from '@embroider/core';\nimport Plugin from 'broccoli-plugin';\nimport { writeJSONSync } from 'fs-extra';\nimport { join } from 'path';\n\nexport default class extends Plugin {\n private built = false;\n\n constructor(private originalPackage: Package) {\n super([], {\n annotation: 'empty-package-tree',\n persistentOutput: true,\n needsCache: false,\n });\n }\n build() {\n if (!this.built) {\n writeJSONSync(join(this.outputPath, 'package.json'), {\n name: this.originalPackage.name,\n version: this.originalPackage.version,\n '//': 'This empty package was created by embroider. See https://github.com/embroider-build/embroider/blob/main/docs/empty-package-output.md',\n });\n }\n }\n}\n"]}
|
package/src/get-real-addon.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// correctly return the _real_ (original) addon instance and not the proxy.
|
|
6
6
|
// @see https://github.com/ember-cli/ember-cli/pull/9487
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.default = getRealAddon;
|
|
8
9
|
let TARGET_INSTANCE_SYMBOL;
|
|
9
10
|
try {
|
|
10
11
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
@@ -29,5 +30,4 @@ catch (e) {
|
|
|
29
30
|
function getRealAddon(maybeProxyAddon) {
|
|
30
31
|
return (TARGET_INSTANCE_SYMBOL && maybeProxyAddon[TARGET_INSTANCE_SYMBOL]) || maybeProxyAddon;
|
|
31
32
|
}
|
|
32
|
-
exports.default = getRealAddon;
|
|
33
33
|
//# sourceMappingURL=get-real-addon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-real-addon.js","sourceRoot":"","sources":["get-real-addon.ts"],"names":[],"mappings":";AAAA,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,wDAAwD;;
|
|
1
|
+
{"version":3,"file":"get-real-addon.js","sourceRoot":"","sources":["get-real-addon.ts"],"names":[],"mappings":";AAAA,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,wDAAwD;;AAyBxD,+BAEC;AAzBD,IAAI,sBAA2B,CAAC;AAEhC,IAAI,CAAC;IACH,iEAAiE;IACjE,MAAM,oBAAoB,GAAG,OAAO,CAAC,6DAA6D,CAAC,CAAC;IAEpG,IAAI,oBAAoB,EAAE,CAAC;QACzB,sBAAsB,GAAG,oBAAoB,CAAC,eAAe,CAAC;IAChE,CAAC;AACH,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACX,uEAAuE;IACvE,4EAA4E;IAC5E,+BAA+B;IAC/B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACxC,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAwB,YAAY,CAAC,eAAoB;IACvD,OAAO,CAAC,sBAAsB,IAAI,eAAe,CAAC,sBAAsB,CAAC,CAAC,IAAI,eAAe,CAAC;AAChG,CAAC","sourcesContent":["// As of ember-cli@3.28, addon instances _may_ be proxied. This can become a\n// problem when patching (setting/restoring) methods on the addon instance or\n// comparing with the addon `__proto__`. The purpose of this util method is to\n// correctly return the _real_ (original) addon instance and not the proxy.\n// @see https://github.com/ember-cli/ember-cli/pull/9487\n\nlet TARGET_INSTANCE_SYMBOL: any;\n\ntry {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const targetInstanceModule = require('ember-cli/lib/models/per-bundle-addon-cache/target-instance');\n\n if (targetInstanceModule) {\n TARGET_INSTANCE_SYMBOL = targetInstanceModule.TARGET_INSTANCE;\n }\n} catch (e) {\n // we only want to handle the error when this module isn't found; i.e.,\n // when a consumer of `ember-engines` is using an old version of `ember-cli`\n // (less than `ember-cli` 3.28)\n if (!e || e.code !== 'MODULE_NOT_FOUND') {\n throw e;\n }\n}\n\n/**\n * Given an addon instance, gets the _real_ addon instance\n * @param maybeProxyAddon - the addon instance, which may be a proxy\n * @returns the _real_ (not proxied) addon instance\n */\nexport default function getRealAddon(maybeProxyAddon: any): any {\n return (TARGET_INSTANCE_SYMBOL && maybeProxyAddon[TARGET_INSTANCE_SYMBOL]) || maybeProxyAddon;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hbs-to-js-broccoli-plugin.js","sourceRoot":"","sources":["hbs-to-js-broccoli-plugin.ts"],"names":[],"mappings":";;;;;AACA,4FAAgD;AAChD,0CAA0C;AAC1C,+BAA4B;AAE5B,MAAqB,mBAAoB,SAAQ,oCAAM;IACrD,YAAY,SAAe;QACzB,KAAK,CAAC,SAAS,EAAE;YACf,IAAI,EAAE,mCAAmC;YACzC,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,YAAoB,EAAE,KAA+C;QACnF,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"hbs-to-js-broccoli-plugin.js","sourceRoot":"","sources":["hbs-to-js-broccoli-plugin.ts"],"names":[],"mappings":";;;;;AACA,4FAAgD;AAChD,0CAA0C;AAC1C,+BAA4B;AAE5B,MAAqB,mBAAoB,SAAQ,oCAAM;IACrD,YAAY,SAAe;QACzB,KAAK,CAAC,SAAS,EAAE;YACf,IAAI,EAAE,mCAAmC;YACzC,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,YAAoB,EAAE,KAA+C;QACnF,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;YACtC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC;gBACtD,2EAA2E;gBAC3E,2EAA2E;gBAC3E,0BAA0B;gBAC1B,OAAO,YAAY,GAAG,KAAK,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,MAAc,EAAE,YAAoB;QAChD,OAAO,IAAA,cAAO,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO;QACL,OAAO,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF;AA9BD,sCA8BC","sourcesContent":["import type { Node } from 'broccoli-node-api';\nimport Filter from 'broccoli-persistent-filter';\nimport { hbsToJS } from '@embroider/core';\nimport { join } from 'path';\n\nexport default class TemplateCompileTree extends Filter {\n constructor(inputTree: Node) {\n super(inputTree, {\n name: `embroider-template-compile-stage1`,\n persist: true,\n extensions: ['hbs', 'handlebars'],\n });\n }\n\n getDestFilePath(relativePath: string, entry: Parameters<Filter['getDestFilePath']>[1]) {\n if (this.isDirectory(relativePath, entry)) {\n return null;\n }\n for (let ext of ['hbs', 'handlebars']) {\n if (relativePath.slice(-ext.length - 1) === '.' + ext) {\n // we deliberately don't chop off the .hbs before appending .js, because if\n // the user has both .js` and .hbs` side-by-side we don't want our new file\n // to collide with theirs.\n return relativePath + '.js';\n }\n }\n return null;\n }\n\n processString(source: string, relativePath: string) {\n return hbsToJS(source, { filename: relativePath });\n }\n baseDir() {\n return join(__dirname, '..');\n }\n}\n"]}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.unwrapPlugin =
|
|
3
|
+
exports.unwrapPlugin = unwrapPlugin;
|
|
4
4
|
function unwrapPlugin(params) {
|
|
5
5
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
6
6
|
return require(params.requireFile)[params.buildUsing](params.params).plugin;
|
|
7
7
|
}
|
|
8
|
-
exports.unwrapPlugin = unwrapPlugin;
|
|
9
8
|
//# sourceMappingURL=htmlbars-unwrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"htmlbars-unwrapper.js","sourceRoot":"","sources":["htmlbars-unwrapper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"htmlbars-unwrapper.js","sourceRoot":"","sources":["htmlbars-unwrapper.ts"],"names":[],"mappings":";;AAAA,oCAGC;AAHD,SAAgB,YAAY,CAAC,MAAgE;IAC3F,iEAAiE;IACjE,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AAC9E,CAAC","sourcesContent":["export function unwrapPlugin(params: { requireFile: string; buildUsing: string; params: any }) {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n return require(params.requireFile)[params.buildUsing](params.params).plugin;\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Finding } from './audit';
|
|
2
|
+
import { type Module } from './module-visitor';
|
|
3
|
+
export interface HTTPAuditOptions {
|
|
4
|
+
appURL: string;
|
|
5
|
+
startingFrom: string[];
|
|
6
|
+
fetch?: typeof fetch;
|
|
7
|
+
}
|
|
8
|
+
export declare function httpAudit(options: HTTPAuditOptions): Promise<{
|
|
9
|
+
modules: {
|
|
10
|
+
[file: string]: Module;
|
|
11
|
+
};
|
|
12
|
+
findings: Finding[];
|
|
13
|
+
}>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.httpAudit = httpAudit;
|
|
4
|
+
const babel_visitor_1 = require("./audit/babel-visitor");
|
|
5
|
+
const module_visitor_1 = require("./module-visitor");
|
|
6
|
+
async function httpAudit(options) {
|
|
7
|
+
let findings = [];
|
|
8
|
+
async function resolveId(specifier, fromFile) {
|
|
9
|
+
return new URL(specifier, fromFile).href;
|
|
10
|
+
}
|
|
11
|
+
async function load(id) {
|
|
12
|
+
var _a;
|
|
13
|
+
let response = await ((_a = options.fetch) !== null && _a !== void 0 ? _a : globalThis.fetch)(id);
|
|
14
|
+
let content = await response.text();
|
|
15
|
+
let type;
|
|
16
|
+
if (response.status !== 200) {
|
|
17
|
+
throw new Error(`oops status code ${response.status} - ${response.statusText} for ${id}: ${content}`);
|
|
18
|
+
}
|
|
19
|
+
switch (response.headers.get('content-type')) {
|
|
20
|
+
case 'text/javascript':
|
|
21
|
+
type = 'javascript';
|
|
22
|
+
break;
|
|
23
|
+
case 'text/html':
|
|
24
|
+
type = 'html';
|
|
25
|
+
break;
|
|
26
|
+
default:
|
|
27
|
+
throw new Error(`oops content type ${response.headers.get('content-type')} for ${id}`);
|
|
28
|
+
}
|
|
29
|
+
return { content, type };
|
|
30
|
+
}
|
|
31
|
+
let modules = await (0, module_visitor_1.visitModules)({
|
|
32
|
+
base: options.appURL,
|
|
33
|
+
entrypoints: options.startingFrom.map(s => new URL(s, options.appURL).href),
|
|
34
|
+
babelConfig: { ast: true },
|
|
35
|
+
frames: new babel_visitor_1.CodeFrameStorage(),
|
|
36
|
+
findings,
|
|
37
|
+
resolveId,
|
|
38
|
+
load,
|
|
39
|
+
});
|
|
40
|
+
return {
|
|
41
|
+
modules,
|
|
42
|
+
findings,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=http-audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-audit.js","sourceRoot":"","sources":["http-audit.ts"],"names":[],"mappings":";;AAUA,8BA2CC;AApDD,yDAAyD;AACzD,qDAA+E;AAQxE,KAAK,UAAU,SAAS,CAC7B,OAAyB;IAEzB,IAAI,QAAQ,GAAc,EAAE,CAAC;IAE7B,KAAK,UAAU,SAAS,CAAC,SAAiB,EAAE,QAAgB;QAC1D,OAAO,IAAI,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED,KAAK,UAAU,IAAI,CAAC,EAAU;;QAC5B,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAA,OAAO,CAAC,KAAK,mCAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,IAAiB,CAAC;QACtB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,oBAAoB,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,UAAU,QAAQ,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;QACxG,CAAC;QACD,QAAQ,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7C,KAAK,iBAAiB;gBACpB,IAAI,GAAG,YAAY,CAAC;gBACpB,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,GAAG,MAAM,CAAC;gBACd,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO,GAAG,MAAM,IAAA,6BAAY,EAAC;QAC/B,IAAI,EAAE,OAAO,CAAC,MAAM;QACpB,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;QAC3E,WAAW,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;QAC1B,MAAM,EAAE,IAAI,gCAAgB,EAAE;QAC9B,QAAQ;QACR,SAAS;QACT,IAAI;KACL,CAAC,CAAC;IAEH,OAAO;QACL,OAAO;QACP,QAAQ;KACT,CAAC;AACJ,CAAC","sourcesContent":["import type { Finding } from './audit';\nimport { CodeFrameStorage } from './audit/babel-visitor';\nimport { type Module, visitModules, type ContentType } from './module-visitor';\n\nexport interface HTTPAuditOptions {\n appURL: string;\n startingFrom: string[];\n fetch?: typeof fetch;\n}\n\nexport async function httpAudit(\n options: HTTPAuditOptions\n): Promise<{ modules: { [file: string]: Module }; findings: Finding[] }> {\n let findings: Finding[] = [];\n\n async function resolveId(specifier: string, fromFile: string): Promise<string | undefined> {\n return new URL(specifier, fromFile).href;\n }\n\n async function load(id: string): Promise<{ content: string | Buffer; type: ContentType }> {\n let response = await (options.fetch ?? globalThis.fetch)(id);\n let content = await response.text();\n let type: ContentType;\n if (response.status !== 200) {\n throw new Error(`oops status code ${response.status} - ${response.statusText} for ${id}: ${content}`);\n }\n switch (response.headers.get('content-type')) {\n case 'text/javascript':\n type = 'javascript';\n break;\n case 'text/html':\n type = 'html';\n break;\n default:\n throw new Error(`oops content type ${response.headers.get('content-type')} for ${id}`);\n }\n return { content, type };\n }\n\n let modules = await visitModules({\n base: options.appURL,\n entrypoints: options.startingFrom.map(s => new URL(s, options.appURL).href),\n babelConfig: { ast: true },\n frames: new CodeFrameStorage(),\n findings,\n resolveId,\n load,\n });\n\n return {\n modules,\n findings,\n };\n}\n"]}
|
package/src/index.d.ts
CHANGED
|
@@ -2,5 +2,5 @@ export { default as App } from './compat-app';
|
|
|
2
2
|
export { default as Addons } from './compat-addons';
|
|
3
3
|
export { default as Options, recommendedOptions } from './options';
|
|
4
4
|
export { default as V1Addon } from './v1-addon';
|
|
5
|
-
export { default as compatBuild, PipelineOptions } from './default-pipeline';
|
|
5
|
+
export { default as compatBuild, prebuild, PipelineOptions } from './default-pipeline';
|
|
6
6
|
export { PackageRules, ModuleRules } from './dependency-rules';
|
package/src/index.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.compatBuild = exports.V1Addon = exports.recommendedOptions = exports.Addons = exports.App = void 0;
|
|
6
|
+
exports.prebuild = exports.compatBuild = exports.V1Addon = exports.recommendedOptions = exports.Addons = exports.App = void 0;
|
|
7
7
|
var compat_app_1 = require("./compat-app");
|
|
8
8
|
Object.defineProperty(exports, "App", { enumerable: true, get: function () { return __importDefault(compat_app_1).default; } });
|
|
9
9
|
var compat_addons_1 = require("./compat-addons");
|
|
@@ -14,4 +14,5 @@ var v1_addon_1 = require("./v1-addon");
|
|
|
14
14
|
Object.defineProperty(exports, "V1Addon", { enumerable: true, get: function () { return __importDefault(v1_addon_1).default; } });
|
|
15
15
|
var default_pipeline_1 = require("./default-pipeline");
|
|
16
16
|
Object.defineProperty(exports, "compatBuild", { enumerable: true, get: function () { return __importDefault(default_pipeline_1).default; } });
|
|
17
|
+
Object.defineProperty(exports, "prebuild", { enumerable: true, get: function () { return default_pipeline_1.prebuild; } });
|
|
17
18
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;AAAA,2CAA8C;AAArC,kHAAA,OAAO,OAAO;AACvB,iDAAoD;AAA3C,wHAAA,OAAO,OAAU;AAC1B,qCAAmE;AAAtC,6GAAA,kBAAkB,OAAA;AAC/C,uCAAgD;AAAvC,oHAAA,OAAO,OAAW;AAC3B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;AAAA,2CAA8C;AAArC,kHAAA,OAAO,OAAO;AACvB,iDAAoD;AAA3C,wHAAA,OAAO,OAAU;AAC1B,qCAAmE;AAAtC,6GAAA,kBAAkB,OAAA;AAC/C,uCAAgD;AAAvC,oHAAA,OAAO,OAAW;AAC3B,uDAAuF;AAA9E,gIAAA,OAAO,OAAe;AAAE,4GAAA,QAAQ,OAAA","sourcesContent":["export { default as App } from './compat-app';\nexport { default as Addons } from './compat-addons';\nexport { default as Options, recommendedOptions } from './options';\nexport { default as V1Addon } from './v1-addon';\nexport { default as compatBuild, prebuild, PipelineOptions } from './default-pipeline';\nexport { PackageRules, ModuleRules } from './dependency-rules';\n"]}
|
package/src/merges.js
CHANGED
|
@@ -3,17 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.mergeWithAppend = mergeWithAppend;
|
|
7
|
+
exports.mergeWithUniq = mergeWithUniq;
|
|
7
8
|
const mergeWith_1 = __importDefault(require("lodash/mergeWith"));
|
|
8
9
|
const uniq_1 = __importDefault(require("lodash/uniq"));
|
|
9
10
|
function mergeWithAppend(dest, ...srcs) {
|
|
10
11
|
return (0, mergeWith_1.default)(dest, ...srcs, appendArrays);
|
|
11
12
|
}
|
|
12
|
-
exports.mergeWithAppend = mergeWithAppend;
|
|
13
13
|
function mergeWithUniq(dest, ...srcs) {
|
|
14
14
|
return (0, mergeWith_1.default)(dest, ...srcs, appendArraysUniq);
|
|
15
15
|
}
|
|
16
|
-
exports.mergeWithUniq = mergeWithUniq;
|
|
17
16
|
function appendArrays(objValue, srcValue) {
|
|
18
17
|
if (Array.isArray(objValue)) {
|
|
19
18
|
return objValue.concat(srcValue);
|
package/src/merges.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merges.js","sourceRoot":"","sources":["merges.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"merges.js","sourceRoot":"","sources":["merges.ts"],"names":[],"mappings":";;;;;AAGA,0CAEC;AAED,sCAEC;AATD,iEAAyC;AACzC,uDAA+B;AAE/B,SAAgB,eAAe,CAAC,IAAY,EAAE,GAAG,IAAc;IAC7D,OAAO,IAAA,mBAAS,EAAC,IAAI,EAAE,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,aAAa,CAAC,IAAY,EAAE,GAAG,IAAc;IAC3D,OAAO,IAAA,mBAAS,EAAC,IAAI,EAAE,GAAG,IAAI,EAAE,gBAAgB,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,YAAY,CAAC,QAAa,EAAE,QAAa;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAa,EAAE,QAAa;IACpD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAA,cAAI,EAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzC,CAAC;AACH,CAAC","sourcesContent":["import mergeWith from 'lodash/mergeWith';\nimport uniq from 'lodash/uniq';\n\nexport function mergeWithAppend(dest: object, ...srcs: object[]) {\n return mergeWith(dest, ...srcs, appendArrays);\n}\n\nexport function mergeWithUniq(dest: object, ...srcs: object[]) {\n return mergeWith(dest, ...srcs, appendArraysUniq);\n}\n\nfunction appendArrays(objValue: any, srcValue: any) {\n if (Array.isArray(objValue)) {\n return objValue.concat(srcValue);\n }\n}\n\nfunction appendArraysUniq(objValue: any, srcValue: any) {\n if (Array.isArray(objValue)) {\n return uniq(objValue.concat(srcValue));\n }\n}\n"]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type CodeFrameStorage, type NamespaceMarker } from './audit/babel-visitor';
|
|
2
|
+
import type { Finding } from './audit';
|
|
3
|
+
import type { TransformOptions } from '@babel/core';
|
|
4
|
+
export type Module = CompleteModule | ParsedModule | UnparseableModule;
|
|
5
|
+
export interface UnparseableModule {
|
|
6
|
+
type: 'unparseable';
|
|
7
|
+
appRelativePath: string;
|
|
8
|
+
consumedFrom: (string | RootMarker)[];
|
|
9
|
+
}
|
|
10
|
+
export interface ParsedModule extends Omit<UnparseableModule, 'type'> {
|
|
11
|
+
type: 'parsed';
|
|
12
|
+
imports: Import[];
|
|
13
|
+
resolutions: {
|
|
14
|
+
[source: string]: string | null;
|
|
15
|
+
};
|
|
16
|
+
content: string;
|
|
17
|
+
isCJS: boolean;
|
|
18
|
+
isAMD: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface CompleteModule extends Omit<ParsedModule, 'type'> {
|
|
21
|
+
type: 'complete';
|
|
22
|
+
exports: string[];
|
|
23
|
+
}
|
|
24
|
+
export interface Import {
|
|
25
|
+
source: string;
|
|
26
|
+
specifiers: {
|
|
27
|
+
name: string | NamespaceMarker;
|
|
28
|
+
local: string | null;
|
|
29
|
+
codeFrameIndex: number | undefined;
|
|
30
|
+
}[];
|
|
31
|
+
codeFrameIndex: number | undefined;
|
|
32
|
+
}
|
|
33
|
+
interface VisitorParams {
|
|
34
|
+
base: string;
|
|
35
|
+
resolveId: (specifier: string, fromFile: string) => Promise<string | undefined>;
|
|
36
|
+
load: (id: string) => Promise<{
|
|
37
|
+
content: string | Buffer;
|
|
38
|
+
type: ContentType;
|
|
39
|
+
} | undefined>;
|
|
40
|
+
entrypoints: string[];
|
|
41
|
+
debug?: boolean;
|
|
42
|
+
findings: Finding[];
|
|
43
|
+
frames: CodeFrameStorage;
|
|
44
|
+
babelConfig: TransformOptions;
|
|
45
|
+
}
|
|
46
|
+
export declare function visitModules(params: VisitorParams): Promise<Record<string, Module>>;
|
|
47
|
+
export type ContentType = 'javascript' | 'html';
|
|
48
|
+
export interface RootMarker {
|
|
49
|
+
isRoot: true;
|
|
50
|
+
}
|
|
51
|
+
export declare function isRootMarker(value: string | RootMarker | undefined): value is RootMarker;
|
|
52
|
+
export {};
|