@embroider/compat 3.1.6-unstable.e3a00a0 → 3.1.6-unstable.ed7b6fe

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@embroider/compat",
3
- "version": "3.1.6-unstable.e3a00a0",
3
+ "version": "3.1.6-unstable.ed7b6fe",
4
4
  "private": false,
5
5
  "description": "Backward compatibility layer for the Embroider build system.",
6
6
  "repository": {
@@ -30,7 +30,7 @@
30
30
  "@babel/preset-env": "^7.14.5",
31
31
  "@babel/runtime": "^7.18.6",
32
32
  "@babel/traverse": "^7.14.5",
33
- "@embroider/macros": "1.12.4-unstable.e3a00a0",
33
+ "@embroider/macros": "1.12.4-unstable.ed7b6fe",
34
34
  "@types/babel__code-frame": "^7.0.2",
35
35
  "@types/yargs": "^17.0.3",
36
36
  "assert-never": "^1.1.0",
@@ -66,7 +66,7 @@
66
66
  "yargs": "^17.0.1"
67
67
  },
68
68
  "devDependencies": {
69
- "@embroider/core": "3.1.4-unstable.e3a00a0",
69
+ "@embroider/core": "3.1.4-unstable.ed7b6fe",
70
70
  "@embroider/sample-transforms": "workspace:*",
71
71
  "@embroider/test-support": "workspace:*",
72
72
  "@glimmer/syntax": "^0.84.3",
@@ -91,7 +91,7 @@
91
91
  "typescript": "^5.1.6"
92
92
  },
93
93
  "peerDependencies": {
94
- "@embroider/core": "3.1.4-unstable.e3a00a0"
94
+ "@embroider/core": "3.1.4-unstable.ed7b6fe"
95
95
  },
96
96
  "engines": {
97
97
  "node": "12.* || 14.* || >= 16"
@@ -5,16 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const smoosh_package_json_1 = __importDefault(require("./smoosh-package-json"));
7
7
  const broccoli_merge_trees_1 = __importDefault(require("broccoli-merge-trees"));
8
- const broccoli_funnel_1 = __importDefault(require("broccoli-funnel"));
9
- const broccoli_source_1 = require("broccoli-source");
10
8
  const empty_package_tree_1 = __importDefault(require("./empty-package-tree"));
11
9
  function buildCompatAddon(originalPackage, v1Cache) {
12
10
  if (originalPackage.isV2Addon()) {
13
- // this case is needed when a native-v2 addon depends on a
14
- // non-native-v2 addon. (The non-native one will get rewritten and
15
- // therefore moved, so to continue depending on it the native one needs to
16
- // move too.)
17
- return withoutNodeModules(originalPackage);
11
+ throw new Error(`bug in @embroider/compat. We should not see any v2 addons here, but ${originalPackage.name} as ${originalPackage.root} is a v2 addon`);
18
12
  }
19
13
  let oldPackages = v1Cache.getAddons(originalPackage.root);
20
14
  if (oldPackages.length > 1) {
@@ -45,10 +39,4 @@ function buildCompatAddon(originalPackage, v1Cache) {
45
39
  }
46
40
  }
47
41
  exports.default = buildCompatAddon;
48
- function withoutNodeModules(originalPackage) {
49
- let Klass = originalPackage.mayRebuild ? broccoli_source_1.WatchedDir : broccoli_source_1.UnwatchedDir;
50
- return (0, broccoli_funnel_1.default)(new Klass(originalPackage.root), {
51
- exclude: ['node_modules', '*/node_modules'],
52
- });
53
- }
54
42
  //# sourceMappingURL=build-compat-addon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-compat-addon.js","sourceRoot":"","sources":["build-compat-addon.ts"],"names":[],"mappings":";;;;;AAEA,gFAAsD;AACtD,gFAAsD;AAEtD,sEAA0C;AAC1C,qDAA2D;AAC3D,8EAAoD;AAEpD,SAAwB,gBAAgB,CAAC,eAAwB,EAAE,OAAwB;IACzF,IAAI,eAAe,CAAC,SAAS,EAAE,EAAE;QAC/B,0DAA0D;QAC1D,kEAAkE;QAClE,0EAA0E;QAC1E,aAAa;QACb,OAAO,kBAAkB,CAAC,eAAe,CAAC,CAAC;KAC5C;IAED,IAAI,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAE1D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1B,sEAAsE;QACtE,2EAA2E;QAC3E,+BAA+B;QAC/B,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;KAC3D;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,yEAAyE;QACzE,4EAA4E;QAC5E,kCAAkC;QAClC,EAAE;QACF,yEAAyE;QACzE,gEAAgE;QAChE,0EAA0E;QAC1E,2BAA2B;QAC3B,OAAO,IAAI,4BAAgB,CAAC,eAAe,CAAC,CAAC;KAC9C;IAED,IAAI,cAAc,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5E,IAAI,cAAc,EAAE;QAClB,IAAI,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACzD,IAAI,QAAQ,GAAG,IAAI,6BAAiB,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;QAClF,OAAO,IAAA,8BAAkB,EAAC,CAAC,GAAG,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KACtE;SAAM;QACL,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;KAC9B;AACH,CAAC;AAtCD,mCAsCC;AAED,SAAS,kBAAkB,CAAC,eAAwB;IAClD,IAAI,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,4BAAU,CAAC,CAAC,CAAC,8BAAY,CAAC;IACnE,OAAO,IAAA,yBAAW,EAAC,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;QAClD,OAAO,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;KAC5C,CAAC,CAAC;AACL,CAAC","sourcesContent":["import V1InstanceCache from './v1-instance-cache';\nimport { Package } from '@embroider/core';\nimport SmooshPackageJSON from './smoosh-package-json';\nimport broccoliMergeTrees from 'broccoli-merge-trees';\nimport { Node } from 'broccoli-node-api';\nimport buildFunnel from 'broccoli-funnel';\nimport { UnwatchedDir, WatchedDir } from 'broccoli-source';\nimport EmptyPackageTree from './empty-package-tree';\n\nexport default function buildCompatAddon(originalPackage: Package, v1Cache: V1InstanceCache): Node {\n if (originalPackage.isV2Addon()) {\n // this case is needed when a native-v2 addon depends on a\n // non-native-v2 addon. (The non-native one will get rewritten and\n // therefore moved, so to continue depending on it the native one needs to\n // move too.)\n return withoutNodeModules(originalPackage);\n }\n\n let oldPackages = v1Cache.getAddons(originalPackage.root);\n\n if (oldPackages.length > 1) {\n // extensibility hook that allows a compat adapter to optimize its own\n // smooshing. We do it early so that if it reduces all the way to zero, the\n // next check will handle that.\n oldPackages = oldPackages[0].reduceInstances(oldPackages);\n }\n\n if (oldPackages.length === 0) {\n // this happens when the v1 addon wasn't actually getting instantiated at\n // all, which can happen if the app uses `addons.blacklist` or another addon\n // uses `shouldIncludeChildAddon`.\n //\n // we still keep a place for this addon in the rewritten addon workspace,\n // because that whole process only depends on looking at all the\n // package.json files on disk -- it can't know which ones are going to end\n // up unused at this point.\n return new EmptyPackageTree(originalPackage);\n }\n\n let needsSmooshing = oldPackages.length > 1 && oldPackages[0].hasAnyTrees();\n if (needsSmooshing) {\n let trees = oldPackages.map(pkg => pkg.v2Tree).reverse();\n let smoosher = new SmooshPackageJSON(trees, { annotation: originalPackage.name });\n return broccoliMergeTrees([...trees, smoosher], { overwrite: true });\n } else {\n return oldPackages[0].v2Tree;\n }\n}\n\nfunction withoutNodeModules(originalPackage: Package): Node {\n let Klass = originalPackage.mayRebuild ? WatchedDir : UnwatchedDir;\n return buildFunnel(new Klass(originalPackage.root), {\n exclude: ['node_modules', '*/node_modules'],\n });\n}\n"]}
1
+ {"version":3,"file":"build-compat-addon.js","sourceRoot":"","sources":["build-compat-addon.ts"],"names":[],"mappings":";;;;;AAEA,gFAAsD;AACtD,gFAAsD;AAEtD,8EAAoD;AAEpD,SAAwB,gBAAgB,CAAC,eAAwB,EAAE,OAAwB;IACzF,IAAI,eAAe,CAAC,SAAS,EAAE,EAAE;QAC/B,MAAM,IAAI,KAAK,CACb,uEAAuE,eAAe,CAAC,IAAI,OAAO,eAAe,CAAC,IAAI,gBAAgB,CACvI,CAAC;KACH;IAED,IAAI,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAE1D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1B,sEAAsE;QACtE,2EAA2E;QAC3E,+BAA+B;QAC/B,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;KAC3D;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,yEAAyE;QACzE,4EAA4E;QAC5E,kCAAkC;QAClC,EAAE;QACF,yEAAyE;QACzE,gEAAgE;QAChE,0EAA0E;QAC1E,2BAA2B;QAC3B,OAAO,IAAI,4BAAgB,CAAC,eAAe,CAAC,CAAC;KAC9C;IAED,IAAI,cAAc,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5E,IAAI,cAAc,EAAE;QAClB,IAAI,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACzD,IAAI,QAAQ,GAAG,IAAI,6BAAiB,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;QAClF,OAAO,IAAA,8BAAkB,EAAC,CAAC,GAAG,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KACtE;SAAM;QACL,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;KAC9B;AACH,CAAC;AApCD,mCAoCC","sourcesContent":["import V1InstanceCache from './v1-instance-cache';\nimport { Package } from '@embroider/core';\nimport SmooshPackageJSON from './smoosh-package-json';\nimport broccoliMergeTrees from 'broccoli-merge-trees';\nimport { Node } from 'broccoli-node-api';\nimport EmptyPackageTree from './empty-package-tree';\n\nexport default function buildCompatAddon(originalPackage: Package, v1Cache: V1InstanceCache): Node {\n if (originalPackage.isV2Addon()) {\n throw new Error(\n `bug in @embroider/compat. We should not see any v2 addons here, but ${originalPackage.name} as ${originalPackage.root} is a v2 addon`\n );\n }\n\n let oldPackages = v1Cache.getAddons(originalPackage.root);\n\n if (oldPackages.length > 1) {\n // extensibility hook that allows a compat adapter to optimize its own\n // smooshing. We do it early so that if it reduces all the way to zero, the\n // next check will handle that.\n oldPackages = oldPackages[0].reduceInstances(oldPackages);\n }\n\n if (oldPackages.length === 0) {\n // this happens when the v1 addon wasn't actually getting instantiated at\n // all, which can happen if the app uses `addons.blacklist` or another addon\n // uses `shouldIncludeChildAddon`.\n //\n // we still keep a place for this addon in the rewritten addon workspace,\n // because that whole process only depends on looking at all the\n // package.json files on disk -- it can't know which ones are going to end\n // up unused at this point.\n return new EmptyPackageTree(originalPackage);\n }\n\n let needsSmooshing = oldPackages.length > 1 && oldPackages[0].hasAnyTrees();\n if (needsSmooshing) {\n let trees = oldPackages.map(pkg => pkg.v2Tree).reverse();\n let smoosher = new SmooshPackageJSON(trees, { annotation: originalPackage.name });\n return broccoliMergeTrees([...trees, smoosher], { overwrite: true });\n } else {\n return oldPackages[0].v2Tree;\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import V1Addon from '../v1-addon';
2
+ export default class extends V1Addon {
3
+ get packageMeta(): Partial<import("@embroider/core").AddonMeta>;
4
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const v1_addon_1 = __importDefault(require("../v1-addon"));
7
+ class default_1 extends v1_addon_1.default {
8
+ get packageMeta() {
9
+ let meta = super.packageMeta;
10
+ // observer-manager is injected with the undocumented package@service syntax without being app re-exported
11
+ // this makes sure that the service is always re-exported and injectable even when built with staticAddonTrees=true
12
+ if (meta['implicit-modules'] &&
13
+ !meta['implicit-modules'].find(implicitModule => implicitModule === './services/observer-manager.js')) {
14
+ meta['implicit-modules'].push('./services/observer-manager.js');
15
+ }
16
+ else if (!meta['implicit-modules']) {
17
+ meta['implicit-modules'] = ['./services/observer-manager.js'];
18
+ }
19
+ return meta;
20
+ }
21
+ }
22
+ exports.default = default_1;
23
+ //# sourceMappingURL=ember-scroll-modifiers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ember-scroll-modifiers.js","sourceRoot":"","sources":["ember-scroll-modifiers.ts"],"names":[],"mappings":";;;;;AAAA,2DAAkC;AAElC,eAAqB,SAAQ,kBAAO;IAClC,IAAI,WAAW;QACb,IAAI,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC;QAC7B,0GAA0G;QAC1G,mHAAmH;QACnH,IACE,IAAI,CAAC,kBAAkB,CAAC;YACxB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,KAAK,gCAAgC,CAAC,EACrG;YACA,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;SACjE;aAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;YACpC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;SAC/D;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAfD,4BAeC","sourcesContent":["import V1Addon from '../v1-addon';\n\nexport default class extends V1Addon {\n get packageMeta() {\n let meta = super.packageMeta;\n // observer-manager is injected with the undocumented package@service syntax without being app re-exported\n // this makes sure that the service is always re-exported and injectable even when built with staticAddonTrees=true\n if (\n meta['implicit-modules'] &&\n !meta['implicit-modules'].find(implicitModule => implicitModule === './services/observer-manager.js')\n ) {\n meta['implicit-modules'].push('./services/observer-manager.js');\n } else if (!meta['implicit-modules']) {\n meta['implicit-modules'] = ['./services/observer-manager.js'];\n }\n return meta;\n }\n}\n"]}
@@ -16,6 +16,18 @@ function convertLegacyAddons(compatApp) {
16
16
  let packageCache = core_1.PackageCache.shared('embroider', compatApp.root);
17
17
  let instanceCache = new v1_instance_cache_1.default(compatApp, packageCache);
18
18
  let appPackage = compatApp.appPackage();
19
+ let violations = (0, core_1.validatePeerDependencies)(appPackage).filter(({ dep }) => dep.isEmberPackage() && !dep.isV2Ember());
20
+ if (violations.length > 0) {
21
+ if (process.env.I_HAVE_BAD_PEER_DEPS_AND_WANT_A_BROKEN_BUILD) {
22
+ console.warn(`You have set process.env.I_HAVE_BAD_PEER_DEPS_AND_WANT_A_BROKEN_BUILD, so we're ignoring your broken peer deps. Please don't bother reporting any Embroider bugs until you unset it.\n${(0, core_1.summarizePeerDepViolations)(violations)}`);
23
+ }
24
+ else {
25
+ throw new Error(`Some V1 ember addons are resolving as incorrect peer dependencies. This makes it impossible for us to safely convert them to v2 format.
26
+ See https://github.com/embroider-build/embroider/blob/main/docs/peer-dependency-resolution-issues.md for an explanation of the problem and suggestions for fixing it.
27
+
28
+ ${(0, core_1.summarizePeerDepViolations)(violations)}`);
29
+ }
30
+ }
19
31
  let v1Addons = findV1Addons(appPackage);
20
32
  let index = buildAddonIndex(compatApp, appPackage, v1Addons);
21
33
  let interiorTrees = [];
@@ -1 +1 @@
1
- {"version":3,"file":"standalone-addon-build.js","sourceRoot":"","sources":["standalone-addon-build.ts"],"names":[],"mappings":"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","sourcesContent":["import { Package, PackageCache, RewrittenPackageIndex } from '@embroider/core';\nimport V1InstanceCache from './v1-instance-cache';\nimport buildCompatAddon from './build-compat-addon';\nimport { Funnel } from 'broccoli-funnel';\nimport crypto from 'crypto';\nimport broccoliMergeTrees from 'broccoli-merge-trees';\nimport writeFile from 'broccoli-file-creator';\nimport type { Node } from 'broccoli-node-api';\nimport CompatApp from './compat-app';\nimport { join } from 'path';\n\nexport function convertLegacyAddons(compatApp: CompatApp) {\n let packageCache = PackageCache.shared('embroider', compatApp.root);\n let instanceCache = new V1InstanceCache(compatApp, packageCache);\n\n let appPackage = compatApp.appPackage();\n let v1Addons = findV1Addons(appPackage);\n let index = buildAddonIndex(compatApp, appPackage, v1Addons);\n\n let interiorTrees: Node[] = [];\n let exteriorTrees = [...v1Addons].map(pkg => {\n let interior = buildCompatAddon(pkg, instanceCache);\n interiorTrees.push(interior);\n return new Funnel(interior, { destDir: index.packages[pkg.root] });\n });\n\n return broccoliMergeTrees([\n ...exteriorTrees,\n new Funnel(compatApp.synthesizeStylesPackage(interiorTrees), {\n destDir: '@embroider/synthesized-styles',\n }),\n new Funnel(compatApp.synthesizeVendorPackage(interiorTrees), {\n destDir: '@embroider/synthesized-vendor',\n }),\n writeFile('index.json', JSON.stringify(index, null, 2)),\n ]);\n}\n\nfunction buildAddonIndex(compatApp: CompatApp, appPackage: Package, packages: Set<Package>): RewrittenPackageIndex {\n let content: RewrittenPackageIndex = {\n packages: {},\n extraResolutions: {},\n };\n for (let oldPkg of packages) {\n let newRoot = `${oldPkg.name}.${hashed(oldPkg.root)}`;\n content.packages[oldPkg.root] = newRoot;\n let nonResolvableDeps = oldPkg.nonResolvableDeps;\n if (nonResolvableDeps) {\n content.extraResolutions[newRoot] = [...nonResolvableDeps.values()].map(v => v.root);\n }\n }\n\n // adding an entry for the app itself to have a place in the\n // rewritten-packages, even though this stage hasn't actually put it there\n // yet. This directory lives outside our rewritten-pacakges directory because\n // it's produced by a separate build stage, and it's easier to have them\n // writing into separate directories.\n content.packages[compatApp.root] = join('..', 'rewritten-app');\n\n let nonResolvableDeps = appPackage.nonResolvableDeps;\n if (nonResolvableDeps) {\n let extraRoots = [...nonResolvableDeps.values()].map(v => v.root);\n\n // the app gets extraResolutions support just like every addon does\n content.extraResolutions[join('..', 'rewritten-app')] = extraRoots;\n\n // but it also gets extraResolutions registered against its *original*\n // location, because the app is unique because stage2 needs a Package\n // representing the *unmoved* app but seeing *moved* deps.\n content.extraResolutions[appPackage.root] = extraRoots;\n }\n\n return content;\n}\n\nfunction findV1Addons(pkg: Package, seen: Set<Package> = new Set(), output: Set<Package> = new Set()): Set<Package> {\n for (let dep of pkg.dependencies) {\n if (seen.has(dep)) {\n continue;\n }\n seen.add(dep);\n if (dep.isEmberPackage()) {\n if (!dep.isV2Addon()) {\n output.add(dep);\n }\n findV1Addons(dep, seen, output);\n }\n }\n return output;\n}\n\nfunction hashed(path: string): string {\n let h = crypto.createHash('sha1');\n return h.update(path).digest('hex').slice(0, 8);\n}\n"]}
1
+ {"version":3,"file":"standalone-addon-build.js","sourceRoot":"","sources":["standalone-addon-build.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Package,\n PackageCache,\n RewrittenPackageIndex,\n summarizePeerDepViolations,\n validatePeerDependencies,\n} from '@embroider/core';\nimport V1InstanceCache from './v1-instance-cache';\nimport buildCompatAddon from './build-compat-addon';\nimport { Funnel } from 'broccoli-funnel';\nimport crypto from 'crypto';\nimport broccoliMergeTrees from 'broccoli-merge-trees';\nimport writeFile from 'broccoli-file-creator';\nimport type { Node } from 'broccoli-node-api';\nimport CompatApp from './compat-app';\nimport { join } from 'path';\n\nexport function convertLegacyAddons(compatApp: CompatApp) {\n let packageCache = PackageCache.shared('embroider', compatApp.root);\n let instanceCache = new V1InstanceCache(compatApp, packageCache);\n\n let appPackage = compatApp.appPackage();\n\n let violations = validatePeerDependencies(appPackage).filter(({ dep }) => dep.isEmberPackage() && !dep.isV2Ember());\n if (violations.length > 0) {\n if (process.env.I_HAVE_BAD_PEER_DEPS_AND_WANT_A_BROKEN_BUILD) {\n console.warn(\n `You have set process.env.I_HAVE_BAD_PEER_DEPS_AND_WANT_A_BROKEN_BUILD, so we're ignoring your broken peer deps. Please don't bother reporting any Embroider bugs until you unset it.\\n${summarizePeerDepViolations(\n violations\n )}`\n );\n } else {\n throw new Error(\n `Some V1 ember addons are resolving as incorrect peer dependencies. This makes it impossible for us to safely convert them to v2 format.\nSee https://github.com/embroider-build/embroider/blob/main/docs/peer-dependency-resolution-issues.md for an explanation of the problem and suggestions for fixing it.\n\n${summarizePeerDepViolations(violations)}`\n );\n }\n }\n\n let v1Addons = findV1Addons(appPackage);\n let index = buildAddonIndex(compatApp, appPackage, v1Addons);\n\n let interiorTrees: Node[] = [];\n let exteriorTrees = [...v1Addons].map(pkg => {\n let interior = buildCompatAddon(pkg, instanceCache);\n interiorTrees.push(interior);\n return new Funnel(interior, { destDir: index.packages[pkg.root] });\n });\n\n return broccoliMergeTrees([\n ...exteriorTrees,\n new Funnel(compatApp.synthesizeStylesPackage(interiorTrees), {\n destDir: '@embroider/synthesized-styles',\n }),\n new Funnel(compatApp.synthesizeVendorPackage(interiorTrees), {\n destDir: '@embroider/synthesized-vendor',\n }),\n writeFile('index.json', JSON.stringify(index, null, 2)),\n ]);\n}\n\nfunction buildAddonIndex(compatApp: CompatApp, appPackage: Package, packages: Set<Package>): RewrittenPackageIndex {\n let content: RewrittenPackageIndex = {\n packages: {},\n extraResolutions: {},\n };\n for (let oldPkg of packages) {\n let newRoot = `${oldPkg.name}.${hashed(oldPkg.root)}`;\n content.packages[oldPkg.root] = newRoot;\n let nonResolvableDeps = oldPkg.nonResolvableDeps;\n if (nonResolvableDeps) {\n content.extraResolutions[newRoot] = [...nonResolvableDeps.values()].map(v => v.root);\n }\n }\n\n // adding an entry for the app itself to have a place in the\n // rewritten-packages, even though this stage hasn't actually put it there\n // yet. This directory lives outside our rewritten-pacakges directory because\n // it's produced by a separate build stage, and it's easier to have them\n // writing into separate directories.\n content.packages[compatApp.root] = join('..', 'rewritten-app');\n\n let nonResolvableDeps = appPackage.nonResolvableDeps;\n if (nonResolvableDeps) {\n let extraRoots = [...nonResolvableDeps.values()].map(v => v.root);\n\n // the app gets extraResolutions support just like every addon does\n content.extraResolutions[join('..', 'rewritten-app')] = extraRoots;\n\n // but it also gets extraResolutions registered against its *original*\n // location, because the app is unique because stage2 needs a Package\n // representing the *unmoved* app but seeing *moved* deps.\n content.extraResolutions[appPackage.root] = extraRoots;\n }\n\n return content;\n}\n\nfunction findV1Addons(pkg: Package, seen: Set<Package> = new Set(), output: Set<Package> = new Set()): Set<Package> {\n for (let dep of pkg.dependencies) {\n if (seen.has(dep)) {\n continue;\n }\n seen.add(dep);\n if (dep.isEmberPackage()) {\n if (!dep.isV2Addon()) {\n output.add(dep);\n }\n findV1Addons(dep, seen, output);\n }\n }\n return output;\n}\n\nfunction hashed(path: string): string {\n let h = crypto.createHash('sha1');\n return h.update(path).digest('hex').slice(0, 8);\n}\n"]}