@embroider/macros 1.16.4 → 1.16.5-unstable.e42ad83

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 (48) hide show
  1. package/README.md +2 -2
  2. package/package.json +5 -5
  3. package/src/babel/dependency-satisfies.js +1 -1
  4. package/src/babel/dependency-satisfies.js.map +1 -1
  5. package/src/babel/each.js +4 -4
  6. package/src/babel/each.js.map +1 -1
  7. package/src/babel/error.js +1 -1
  8. package/src/babel/error.js.map +1 -1
  9. package/src/babel/evaluate-json.js +4 -4
  10. package/src/babel/evaluate-json.js.map +1 -1
  11. package/src/babel/fail-build.js +1 -1
  12. package/src/babel/fail-build.js.map +1 -1
  13. package/src/babel/get-config.js +3 -4
  14. package/src/babel/get-config.js.map +1 -1
  15. package/src/babel/macro-condition.js +2 -3
  16. package/src/babel/macro-condition.js.map +1 -1
  17. package/src/babel/macros-babel-plugin.js +47 -19
  18. package/src/babel/macros-babel-plugin.js.map +1 -1
  19. package/src/babel/module-exists.js +1 -1
  20. package/src/babel/module-exists.js.map +1 -1
  21. package/src/babel/state.d.ts +1 -3
  22. package/src/babel/state.js +1 -19
  23. package/src/babel/state.js.map +1 -1
  24. package/src/ember-addon-main.d.ts +1 -1
  25. package/src/ember-addon-main.js.map +1 -1
  26. package/src/glimmer/ast-transform.js +3 -4
  27. package/src/glimmer/ast-transform.js.map +1 -1
  28. package/src/glimmer/dependency-satisfies.js +1 -1
  29. package/src/glimmer/dependency-satisfies.js.map +1 -1
  30. package/src/glimmer/evaluate.js +1 -1
  31. package/src/glimmer/evaluate.js.map +1 -1
  32. package/src/glimmer/fail-build.js +1 -2
  33. package/src/glimmer/fail-build.js.map +1 -1
  34. package/src/glimmer/get-config.js +1 -1
  35. package/src/glimmer/get-config.js.map +1 -1
  36. package/src/glimmer/literal.js +1 -1
  37. package/src/glimmer/literal.js.map +1 -1
  38. package/src/glimmer/macro-condition.js +6 -7
  39. package/src/glimmer/macro-condition.js.map +1 -1
  40. package/src/glimmer/macro-maybe-attrs.js +1 -2
  41. package/src/glimmer/macro-maybe-attrs.js.map +1 -1
  42. package/src/index.js +11 -12
  43. package/src/index.js.map +1 -1
  44. package/src/macros-config.d.ts +0 -3
  45. package/src/macros-config.js +1 -11
  46. package/src/macros-config.js.map +1 -1
  47. package/src/node.js +2 -2
  48. package/src/node.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"macro-condition.js","sourceRoot":"","sources":["macro-condition.ts"],"names":[],"mappings":"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","sourcesContent":["import evaluate from './evaluate';\n\nexport function macroIfBlock(node: any) {\n let condition = node.params[0];\n\n if (!condition || condition.type !== 'SubExpression' || condition.path.original !== 'macroCondition') {\n return node;\n }\n\n if (condition.params.length !== 1) {\n throw new Error(`macroCondition requires one arguments, you passed ${node.params.length}`);\n }\n\n let result = evaluate(condition.params[0]);\n if (!result.confident) {\n throw new Error(`argument to macroCondition must be statically analyzable`);\n }\n\n if (result.value) {\n return node.program.body;\n } else {\n if (node.inverse) {\n return node.inverse.body;\n } else {\n return [];\n }\n }\n}\n\nexport function macroIfExpression(node: any, builders: any) {\n let condition = node.params[0];\n\n if (!condition || condition.type !== 'SubExpression' || condition.path.original !== 'macroCondition') {\n return node;\n }\n\n if (condition.params.length !== 1) {\n throw new Error(`macroCondition requires one arguments, you passed ${node.params.length}`);\n }\n\n let result = evaluate(condition.params[0]);\n if (!result.confident) {\n throw new Error(`argument to macroCondition must be statically analyzable`);\n }\n\n if (result.value) {\n return node.params[1];\n } else {\n return node.params[2] || builders.undefined();\n }\n}\n\nexport function macroIfMustache(node: any, builders: any) {\n let result = macroIfExpression(node, builders);\n\n if (result === node) {\n return node;\n }\n\n if (result.type === 'SubExpression') {\n return builders.mustache(result.path, result.params, result.hash);\n }\n\n return builders.mustache(result);\n}\n\nexport function macroUnlessBlock(node: any) {\n let condition = node.params[0];\n\n if (!condition || condition.type !== 'SubExpression' || condition.path.original !== 'macroCondition') {\n return node;\n }\n\n if (condition.params.length !== 1) {\n throw new Error(`macroCondition requires one arguments, you passed ${node.params.length}`);\n }\n\n let result = evaluate(condition.params[0]);\n if (!result.confident) {\n throw new Error(`argument to macroCondition must be statically analyzable`);\n }\n\n if (result.value) {\n if (node.inverse) {\n return node.inverse.body;\n } else {\n return [];\n }\n } else {\n return node.program.body;\n }\n}\n\nexport function macroUnlessExpression(node: any, builders: any) {\n let condition = node.params[0];\n\n if (!condition || condition.type !== 'SubExpression' || condition.path.original !== 'macroCondition') {\n return node;\n }\n\n if (condition.params.length !== 1) {\n throw new Error(`macroCondition requires one arguments, you passed ${node.params.length}`);\n }\n\n let result = evaluate(condition.params[0]);\n if (!result.confident) {\n throw new Error(`argument to macroCondition must be statically analyzable`);\n }\n\n if (result.value) {\n return node.params[2] || builders.undefined();\n } else {\n return node.params[1];\n }\n}\n\nexport function macroUnlessMustache(node: any, builders: any) {\n let result = macroUnlessExpression(node, builders);\n\n if (result === node) {\n return node;\n }\n\n if (result.type === 'SubExpression') {\n return builders.mustache(result.path, result.params, result.hash);\n }\n\n return builders.mustache(result);\n}\n"]}
1
+ {"version":3,"file":"macro-condition.js","sourceRoot":"","sources":["macro-condition.ts"],"names":[],"mappings":"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","sourcesContent":["import evaluate from './evaluate';\n\nexport function macroIfBlock(node: any) {\n let condition = node.params[0];\n\n if (!condition || condition.type !== 'SubExpression' || condition.path.original !== 'macroCondition') {\n return node;\n }\n\n if (condition.params.length !== 1) {\n throw new Error(`macroCondition requires one arguments, you passed ${node.params.length}`);\n }\n\n let result = evaluate(condition.params[0]);\n if (!result.confident) {\n throw new Error(`argument to macroCondition must be statically analyzable`);\n }\n\n if (result.value) {\n return node.program.body;\n } else {\n if (node.inverse) {\n return node.inverse.body;\n } else {\n return [];\n }\n }\n}\n\nexport function macroIfExpression(node: any, builders: any) {\n let condition = node.params[0];\n\n if (!condition || condition.type !== 'SubExpression' || condition.path.original !== 'macroCondition') {\n return node;\n }\n\n if (condition.params.length !== 1) {\n throw new Error(`macroCondition requires one arguments, you passed ${node.params.length}`);\n }\n\n let result = evaluate(condition.params[0]);\n if (!result.confident) {\n throw new Error(`argument to macroCondition must be statically analyzable`);\n }\n\n if (result.value) {\n return node.params[1];\n } else {\n return node.params[2] || builders.undefined();\n }\n}\n\nexport function macroIfMustache(node: any, builders: any) {\n let result = macroIfExpression(node, builders);\n\n if (result === node) {\n return node;\n }\n\n if (result.type === 'SubExpression') {\n return builders.mustache(result.path, result.params, result.hash);\n }\n\n return builders.mustache(result);\n}\n\nexport function macroUnlessBlock(node: any) {\n let condition = node.params[0];\n\n if (!condition || condition.type !== 'SubExpression' || condition.path.original !== 'macroCondition') {\n return node;\n }\n\n if (condition.params.length !== 1) {\n throw new Error(`macroCondition requires one arguments, you passed ${node.params.length}`);\n }\n\n let result = evaluate(condition.params[0]);\n if (!result.confident) {\n throw new Error(`argument to macroCondition must be statically analyzable`);\n }\n\n if (result.value) {\n if (node.inverse) {\n return node.inverse.body;\n } else {\n return [];\n }\n } else {\n return node.program.body;\n }\n}\n\nexport function macroUnlessExpression(node: any, builders: any) {\n let condition = node.params[0];\n\n if (!condition || condition.type !== 'SubExpression' || condition.path.original !== 'macroCondition') {\n return node;\n }\n\n if (condition.params.length !== 1) {\n throw new Error(`macroCondition requires one arguments, you passed ${node.params.length}`);\n }\n\n let result = evaluate(condition.params[0]);\n if (!result.confident) {\n throw new Error(`argument to macroCondition must be statically analyzable`);\n }\n\n if (result.value) {\n return node.params[2] || builders.undefined();\n } else {\n return node.params[1];\n }\n}\n\nexport function macroUnlessMustache(node: any, builders: any) {\n let result = macroUnlessExpression(node, builders);\n\n if (result === node) {\n return node;\n }\n\n if (result.type === 'SubExpression') {\n return builders.mustache(result.path, result.params, result.hash);\n }\n\n return builders.mustache(result);\n}\n"]}
@@ -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.maybeAttrs = void 0;
6
+ exports.maybeAttrs = maybeAttrs;
7
7
  const evaluate_1 = __importDefault(require("./evaluate"));
8
8
  function maybeAttrs(elementNode, node, builders) {
9
9
  let [predicate, ...bareAttrs] = node.params;
@@ -28,5 +28,4 @@ function maybeAttrs(elementNode, node, builders) {
28
28
  }
29
29
  }
30
30
  }
31
- exports.maybeAttrs = maybeAttrs;
32
31
  //# sourceMappingURL=macro-maybe-attrs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"macro-maybe-attrs.js","sourceRoot":"","sources":["macro-maybe-attrs.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAElC,SAAgB,UAAU,CAAC,WAAgB,EAAE,IAAS,EAAE,QAAa;IACnE,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAE5C,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACnE;IAED,IAAI,MAAM,GAAG,IAAA,kBAAQ,EAAC,SAAS,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;KACpF;IAED,KAAK,IAAI,QAAQ,IAAI,SAAS,EAAE;QAC9B,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,EAAE;YACtC,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,CAAC,IAAI,qCAAqC,CAAC,CAAC;SAChG;KACF;IAED,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,KAAK,IAAI,QAAQ,IAAI,SAAS,EAAE;YAC9B,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;SAChG;QAED,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAChC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SAC/F;KACF;AACH,CAAC;AA3BD,gCA2BC","sourcesContent":["import evaluate from './evaluate';\n\nexport function maybeAttrs(elementNode: any, node: any, builders: any) {\n let [predicate, ...bareAttrs] = node.params;\n\n if (!predicate) {\n throw new Error(`macroMaybeAttrs requires at least one argument`);\n }\n\n let result = evaluate(predicate);\n if (!result.confident) {\n throw new Error(`first argument to macroMaybeAttrs must be statically analyzable`);\n }\n\n for (let bareAttr of bareAttrs) {\n if (bareAttr.type !== 'PathExpression') {\n throw new Error(`macroMaybeAttrs found a ${bareAttr.type} where it expected a PathExpression`);\n }\n }\n\n if (result.value) {\n for (let bareAttr of bareAttrs) {\n elementNode.attributes.push(builders.attr(bareAttr.original, builders.text(''), bareAttr.loc));\n }\n\n for (let attr of node.hash.pairs) {\n elementNode.attributes.push(builders.attr(attr.key, builders.mustache(attr.value), attr.loc));\n }\n }\n}\n"]}
1
+ {"version":3,"file":"macro-maybe-attrs.js","sourceRoot":"","sources":["macro-maybe-attrs.ts"],"names":[],"mappings":";;;;;AAEA,gCA2BC;AA7BD,0DAAkC;AAElC,SAAgB,UAAU,CAAC,WAAgB,EAAE,IAAS,EAAE,QAAa;IACnE,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAE5C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,MAAM,GAAG,IAAA,kBAAQ,EAAC,SAAS,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,CAAC,IAAI,qCAAqC,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,KAAK,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACjG,CAAC;QAED,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACjC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import evaluate from './evaluate';\n\nexport function maybeAttrs(elementNode: any, node: any, builders: any) {\n let [predicate, ...bareAttrs] = node.params;\n\n if (!predicate) {\n throw new Error(`macroMaybeAttrs requires at least one argument`);\n }\n\n let result = evaluate(predicate);\n if (!result.confident) {\n throw new Error(`first argument to macroMaybeAttrs must be statically analyzable`);\n }\n\n for (let bareAttr of bareAttrs) {\n if (bareAttr.type !== 'PathExpression') {\n throw new Error(`macroMaybeAttrs found a ${bareAttr.type} where it expected a PathExpression`);\n }\n }\n\n if (result.value) {\n for (let bareAttr of bareAttrs) {\n elementNode.attributes.push(builders.attr(bareAttr.original, builders.text(''), bareAttr.loc));\n }\n\n for (let attr of node.hash.pairs) {\n elementNode.attributes.push(builders.attr(attr.key, builders.mustache(attr.value), attr.loc));\n }\n }\n}\n"]}
package/src/index.js CHANGED
@@ -1,7 +1,17 @@
1
1
  "use strict";
2
2
  /* Macro Type Signatures */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.moduleExists = exports.failBuild = exports.isTesting = exports.isDevelopingApp = exports.getGlobalConfig = exports.getOwnConfig = exports.getConfig = exports.importSync = exports.each = exports.macroCondition = exports.dependencySatisfies = void 0;
4
+ exports.dependencySatisfies = dependencySatisfies;
5
+ exports.macroCondition = macroCondition;
6
+ exports.each = each;
7
+ exports.importSync = importSync;
8
+ exports.getConfig = getConfig;
9
+ exports.getOwnConfig = getOwnConfig;
10
+ exports.getGlobalConfig = getGlobalConfig;
11
+ exports.isDevelopingApp = isDevelopingApp;
12
+ exports.isTesting = isTesting;
13
+ exports.failBuild = failBuild;
14
+ exports.moduleExists = moduleExists;
5
15
  /*
6
16
  CAUTION: this code is not necessarily what you are actually running. In
7
17
  general, the macros are implemented at build time using babel, and so calls to
@@ -20,50 +30,39 @@ exports.moduleExists = exports.failBuild = exports.isTesting = exports.isDevelop
20
30
  function dependencySatisfies(packageName, semverRange) {
21
31
  throw new Oops(packageName, semverRange);
22
32
  }
23
- exports.dependencySatisfies = dependencySatisfies;
24
33
  function macroCondition(predicate) {
25
34
  throw new Oops(predicate);
26
35
  }
27
- exports.macroCondition = macroCondition;
28
36
  function each(array) {
29
37
  throw new Oops(array);
30
38
  }
31
- exports.each = each;
32
39
  // We would prefer to write:
33
40
  // export function importSync<T extends string>(specifier: T): typeof import(T) {
34
41
  // but TS doesn't seem to support that at present.
35
42
  function importSync(specifier) {
36
43
  throw new Oops(specifier);
37
44
  }
38
- exports.importSync = importSync;
39
45
  function getConfig(packageName) {
40
46
  throw new Oops(packageName);
41
47
  }
42
- exports.getConfig = getConfig;
43
48
  function getOwnConfig() {
44
49
  throw new Oops();
45
50
  }
46
- exports.getOwnConfig = getOwnConfig;
47
51
  function getGlobalConfig() {
48
52
  throw new Oops();
49
53
  }
50
- exports.getGlobalConfig = getGlobalConfig;
51
54
  function isDevelopingApp() {
52
55
  throw new Oops();
53
56
  }
54
- exports.isDevelopingApp = isDevelopingApp;
55
57
  function isTesting() {
56
58
  throw new Oops();
57
59
  }
58
- exports.isTesting = isTesting;
59
60
  function failBuild(message) {
60
61
  throw new Oops(message);
61
62
  }
62
- exports.failBuild = failBuild;
63
63
  function moduleExists(packageName) {
64
64
  throw new Oops(packageName);
65
65
  }
66
- exports.moduleExists = moduleExists;
67
66
  class Oops extends Error {
68
67
  constructor(...params) {
69
68
  super(`this method is really implemented at compile time via a babel plugin. If you're seeing this exception, something went wrong`);
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAAA,2BAA2B;;;AAE3B;;;;;;;;;;;;;;EAcE;AAEF,SAAgB,mBAAmB,CAAC,WAAmB,EAAE,WAAmB;IAC1E,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAC3C,CAAC;AAFD,kDAEC;AAED,SAAgB,cAAc,CAAC,SAAkB;IAC/C,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC;AAFD,wCAEC;AAED,SAAgB,IAAI,CAAI,KAAU;IAChC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAFD,oBAEC;AAED,4BAA4B;AAC5B,mFAAmF;AACnF,kDAAkD;AAClD,SAAgB,UAAU,CAAC,SAAiB;IAC1C,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC;AAFD,gCAEC;AAED,SAAgB,SAAS,CAAI,WAAmB;IAC9C,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC;AAFD,8BAEC;AAED,SAAgB,YAAY;IAC1B,MAAM,IAAI,IAAI,EAAE,CAAC;AACnB,CAAC;AAFD,oCAEC;AAED,SAAgB,eAAe;IAC7B,MAAM,IAAI,IAAI,EAAE,CAAC;AACnB,CAAC;AAFD,0CAEC;AAED,SAAgB,eAAe;IAC7B,MAAM,IAAI,IAAI,EAAE,CAAC;AACnB,CAAC;AAFD,0CAEC;AAED,SAAgB,SAAS;IACvB,MAAM,IAAI,IAAI,EAAE,CAAC;AACnB,CAAC;AAFD,8BAEC;AAED,SAAgB,SAAS,CAAC,OAAe;IACvC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC;AAFD,8BAEC;AAED,SAAgB,YAAY,CAAC,WAAmB;IAC9C,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC;AAFD,oCAEC;AAED,MAAM,IAAK,SAAQ,KAAK;IAEtB,YAAY,GAAG,MAAa;QAC1B,KAAK,CACH,6HAA6H,CAC9H,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF","sourcesContent":["/* Macro Type Signatures */\n\n/*\n CAUTION: this code is not necessarily what you are actually running. In\n general, the macros are implemented at build time using babel, and so calls to\n these functions get compiled away before they ever run. However, this code is\n here because it provides types to typescript users of the macros.\n\n Some macros also have runtime implementations that are useful in development\n mode, in addition to their build-time implementations in babel. You can find\n the runtime implementations in runtime.ts.\n\n Having a runtime mode lets us do things like produce a single build in\n development that works for both fastboot and browser, using the macros to\n switch between modes. For production, you would switch to the build-time macro\n implementation to get two optimized builds instead.\n*/\n\nexport function dependencySatisfies(packageName: string, semverRange: string): boolean {\n throw new Oops(packageName, semverRange);\n}\n\nexport function macroCondition(predicate: boolean): boolean {\n throw new Oops(predicate);\n}\n\nexport function each<T>(array: T[]): T[] {\n throw new Oops(array);\n}\n\n// We would prefer to write:\n// export function importSync<T extends string>(specifier: T): typeof import(T) {\n// but TS doesn't seem to support that at present.\nexport function importSync(specifier: string): unknown {\n throw new Oops(specifier);\n}\n\nexport function getConfig<T>(packageName: string): T {\n throw new Oops(packageName);\n}\n\nexport function getOwnConfig<T>(): T {\n throw new Oops();\n}\n\nexport function getGlobalConfig<T>(): T {\n throw new Oops();\n}\n\nexport function isDevelopingApp(): boolean {\n throw new Oops();\n}\n\nexport function isTesting(): boolean {\n throw new Oops();\n}\n\nexport function failBuild(message: string): void {\n throw new Oops(message);\n}\n\nexport function moduleExists(packageName: string): boolean {\n throw new Oops(packageName);\n}\n\nclass Oops extends Error {\n params: any[];\n constructor(...params: any[]) {\n super(\n `this method is really implemented at compile time via a babel plugin. If you're seeing this exception, something went wrong`\n );\n this.params = params;\n }\n}\n\nimport type { HelperLike } from '@glint/template';\n\nexport interface EmbroiderMacrosRegistry {\n macroGetOwnConfig: HelperLike<{\n Args: { Positional: [...keys: string[]] };\n Return: ReturnType<typeof getOwnConfig>;\n }>;\n macroGetConfig: HelperLike<{\n Args: { Positional: [packageName: string, ...keys: string[]] };\n Return: ReturnType<typeof getConfig>;\n }>;\n macroCondition: HelperLike<{\n Args: { Positional: [predicate: boolean] };\n Return: boolean;\n }>;\n macroDependencySatisfies: HelperLike<{\n Args: { Positional: Parameters<typeof dependencySatisfies> };\n Return: ReturnType<typeof dependencySatisfies>;\n }>;\n macroMaybeAttrs: HelperLike<{\n Args: { Positional: [predicate: boolean, ...bareAttrs: unknown[]] };\n Return: void;\n }>;\n macroFailBuild: HelperLike<{\n Args: { Positional: Parameters<typeof failBuild> };\n Return: ReturnType<typeof failBuild>;\n }>;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAAA,2BAA2B;;AAkB3B,kDAEC;AAED,wCAEC;AAED,oBAEC;AAKD,gCAEC;AAED,8BAEC;AAED,oCAEC;AAED,0CAEC;AAED,0CAEC;AAED,8BAEC;AAED,8BAEC;AAED,oCAEC;AA7DD;;;;;;;;;;;;;;EAcE;AAEF,SAAgB,mBAAmB,CAAC,WAAmB,EAAE,WAAmB;IAC1E,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,cAAc,CAAC,SAAkB;IAC/C,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC;AAED,SAAgB,IAAI,CAAI,KAAU;IAChC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,4BAA4B;AAC5B,mFAAmF;AACnF,kDAAkD;AAClD,SAAgB,UAAU,CAAC,SAAiB;IAC1C,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC;AAED,SAAgB,SAAS,CAAI,WAAmB;IAC9C,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,YAAY;IAC1B,MAAM,IAAI,IAAI,EAAE,CAAC;AACnB,CAAC;AAED,SAAgB,eAAe;IAC7B,MAAM,IAAI,IAAI,EAAE,CAAC;AACnB,CAAC;AAED,SAAgB,eAAe;IAC7B,MAAM,IAAI,IAAI,EAAE,CAAC;AACnB,CAAC;AAED,SAAgB,SAAS;IACvB,MAAM,IAAI,IAAI,EAAE,CAAC;AACnB,CAAC;AAED,SAAgB,SAAS,CAAC,OAAe;IACvC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC;AAED,SAAgB,YAAY,CAAC,WAAmB;IAC9C,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,IAAK,SAAQ,KAAK;IAEtB,YAAY,GAAG,MAAa;QAC1B,KAAK,CACH,6HAA6H,CAC9H,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF","sourcesContent":["/* Macro Type Signatures */\n\n/*\n CAUTION: this code is not necessarily what you are actually running. In\n general, the macros are implemented at build time using babel, and so calls to\n these functions get compiled away before they ever run. However, this code is\n here because it provides types to typescript users of the macros.\n\n Some macros also have runtime implementations that are useful in development\n mode, in addition to their build-time implementations in babel. You can find\n the runtime implementations in runtime.ts.\n\n Having a runtime mode lets us do things like produce a single build in\n development that works for both fastboot and browser, using the macros to\n switch between modes. For production, you would switch to the build-time macro\n implementation to get two optimized builds instead.\n*/\n\nexport function dependencySatisfies(packageName: string, semverRange: string): boolean {\n throw new Oops(packageName, semverRange);\n}\n\nexport function macroCondition(predicate: boolean): boolean {\n throw new Oops(predicate);\n}\n\nexport function each<T>(array: T[]): T[] {\n throw new Oops(array);\n}\n\n// We would prefer to write:\n// export function importSync<T extends string>(specifier: T): typeof import(T) {\n// but TS doesn't seem to support that at present.\nexport function importSync(specifier: string): unknown {\n throw new Oops(specifier);\n}\n\nexport function getConfig<T>(packageName: string): T {\n throw new Oops(packageName);\n}\n\nexport function getOwnConfig<T>(): T {\n throw new Oops();\n}\n\nexport function getGlobalConfig<T>(): T {\n throw new Oops();\n}\n\nexport function isDevelopingApp(): boolean {\n throw new Oops();\n}\n\nexport function isTesting(): boolean {\n throw new Oops();\n}\n\nexport function failBuild(message: string): void {\n throw new Oops(message);\n}\n\nexport function moduleExists(packageName: string): boolean {\n throw new Oops(packageName);\n}\n\nclass Oops extends Error {\n params: any[];\n constructor(...params: any[]) {\n super(\n `this method is really implemented at compile time via a babel plugin. If you're seeing this exception, something went wrong`\n );\n this.params = params;\n }\n}\n\nimport type { HelperLike } from '@glint/template';\n\nexport interface EmbroiderMacrosRegistry {\n macroGetOwnConfig: HelperLike<{\n Args: { Positional: [...keys: string[]] };\n Return: ReturnType<typeof getOwnConfig>;\n }>;\n macroGetConfig: HelperLike<{\n Args: { Positional: [packageName: string, ...keys: string[]] };\n Return: ReturnType<typeof getConfig>;\n }>;\n macroCondition: HelperLike<{\n Args: { Positional: [predicate: boolean] };\n Return: boolean;\n }>;\n macroDependencySatisfies: HelperLike<{\n Args: { Positional: Parameters<typeof dependencySatisfies> };\n Return: ReturnType<typeof dependencySatisfies>;\n }>;\n macroMaybeAttrs: HelperLike<{\n Args: { Positional: [predicate: boolean, ...bareAttrs: unknown[]] };\n Return: void;\n }>;\n macroFailBuild: HelperLike<{\n Args: { Positional: Parameters<typeof failBuild> };\n Return: ReturnType<typeof failBuild>;\n }>;\n}\n"]}
@@ -16,9 +16,6 @@ export default class MacrosConfig {
16
16
  private isDevelopingPackageRoots;
17
17
  enableRuntimeMode(): void;
18
18
  enablePackageDevelopment(packageRoot: string): void;
19
- private _importSyncImplementation;
20
- get importSyncImplementation(): 'cjs' | 'eager';
21
- set importSyncImplementation(value: 'cjs' | 'eager');
22
19
  private constructor();
23
20
  private get packageCache();
24
21
  private get appRoot();
@@ -94,20 +94,10 @@ class MacrosConfig {
94
94
  this.isDevelopingPackageRoots.add(packageRoot);
95
95
  }
96
96
  }
97
- get importSyncImplementation() {
98
- return this._importSyncImplementation;
99
- }
100
- set importSyncImplementation(value) {
101
- if (!this._configWritable) {
102
- throw new Error(`[Embroider:MacrosConfig] attempted to set importSyncImplementation after configs have been finalized`);
103
- }
104
- this._importSyncImplementation = value;
105
- }
106
97
  constructor(origAppRoot, shared) {
107
98
  this.origAppRoot = origAppRoot;
108
99
  this.mode = 'compile-time';
109
100
  this.isDevelopingPackageRoots = new Set();
110
- this._importSyncImplementation = 'cjs';
111
101
  this._configWritable = true;
112
102
  this.configs = shared.configs;
113
103
  this.globalConfig = shared.globalConfigs;
@@ -267,7 +257,7 @@ class MacrosConfig {
267
257
  get mode() {
268
258
  return self.mode;
269
259
  },
270
- importSyncImplementation: this.importSyncImplementation,
260
+ hideRequires: true,
271
261
  };
272
262
  let lockFilePath = find_up_1.default.sync(['yarn.lock', 'package-lock.json', 'pnpm-lock.yaml'], { cwd: self.appRoot });
273
263
  if (!lockFilePath) {
@@ -1 +1 @@
1
- {"version":3,"file":"macros-config.js","sourceRoot":"","sources":["macros-config.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'fs';\nimport { join } from 'path';\nimport crypto from 'crypto';\nimport findUp from 'find-up';\nimport type { PluginItem } from '@babel/core';\nimport { RewrittenPackageCache, getOrCreate } from '@embroider/shared-internals';\nimport type { FirstTransformParams } from './glimmer/ast-transform';\nimport { makeFirstTransform, makeSecondTransform } from './glimmer/ast-transform';\nimport type State from './babel/state';\nimport partition from 'lodash/partition';\n\nexport type SourceOfConfig = (config: object) => {\n readonly name: string;\n readonly root: string;\n readonly version: string;\n};\n\nexport type Merger = (\n configs: object[],\n params: {\n sourceOfConfig: SourceOfConfig;\n }\n) => object;\n\ninterface GlobalSharedEntry {\n configs: Map<string, object[]>;\n globalConfigs: Record<string, string>;\n configSources: WeakMap<object, string>;\n mergers: Map<string, { merger: Merger; fromPath: string }>;\n}\n\n// Do not change this type signature without pondering deeply the mysteries of\n// being compatible with unwritten future versions of this library.\ntype GlobalSharedState = WeakMap<any, GlobalSharedEntry>;\n\n// this is a module-scoped cache. If multiple callers ask _this copy_ of\n// @embroider/macros for a shared MacrosConfig, they'll all get the same one.\n// And if somebody asks a *different* copy of @embroider/macros for the shared\n// MacrosConfig, it will have its own instance with its own code, but will still\n// share the GlobalSharedState beneath.\nlet localSharedState: WeakMap<any, MacrosConfig> = new WeakMap();\n\nfunction gatherAddonCacheKeyWorker(item: any, memo: Set<string>) {\n item.addons.forEach((addon: any) => {\n let key = `${addon.pkg.name}@${addon.pkg.version}`;\n memo.add(key);\n gatherAddonCacheKeyWorker(addon, memo);\n });\n}\n\nlet addonCacheKey: WeakMap<any, string> = new WeakMap();\n// creates a string representing all addons and their versions\n// (foo@1.0.0|bar@2.0.0) to use as a cachekey\nfunction gatherAddonCacheKey(project: any): string {\n let cacheKey = addonCacheKey.get(project);\n if (cacheKey) {\n return cacheKey;\n }\n\n let memo: Set<string> = new Set();\n project.addons.forEach((addon: any) => {\n let key = `${addon.pkg.name}@${addon.pkg.version}`;\n memo.add(key);\n gatherAddonCacheKeyWorker(addon, memo);\n });\n\n cacheKey = [...memo].join('|');\n addonCacheKey.set(project, cacheKey);\n\n return cacheKey;\n}\n\nconst babelCacheBustingPluginPath: string = require.resolve(\n '@embroider/shared-internals/src/babel-plugin-cache-busting.js'\n);\n\nexport default class MacrosConfig {\n static for(key: any, appRoot: string): MacrosConfig {\n let found = localSharedState.get(key);\n if (found) {\n return found;\n }\n\n let g = global as any as { __embroider_macros_global__: GlobalSharedState | undefined };\n if (!g.__embroider_macros_global__) {\n g.__embroider_macros_global__ = new WeakMap();\n }\n\n let shared = g.__embroider_macros_global__.get(key);\n if (shared) {\n // if an earlier version of @embroider/macros created the shared state, it\n // would have configSources.\n if (!shared.configSources) {\n shared.configSources = new WeakMap();\n }\n\n // earlier versions did not include this -- we may need to upgrade the\n // format here\n if (!shared.globalConfigs) {\n shared.globalConfigs = {};\n }\n } else {\n shared = {\n configs: new Map(),\n globalConfigs: {},\n configSources: new WeakMap(),\n mergers: new Map(),\n };\n g.__embroider_macros_global__.set(key, shared);\n }\n\n let config = new MacrosConfig(appRoot, shared);\n localSharedState.set(key, config);\n return config;\n }\n\n private mode: 'compile-time' | 'run-time' = 'compile-time';\n private globalConfig: { [key: string]: unknown };\n\n private isDevelopingPackageRoots: Set<string> = new Set();\n\n enableRuntimeMode() {\n if (this.mode !== 'run-time') {\n if (!this._configWritable) {\n throw new Error(`[Embroider:MacrosConfig] attempted to enableRuntimeMode after configs have been finalized`);\n }\n this.mode = 'run-time';\n }\n }\n\n enablePackageDevelopment(packageRoot: string) {\n if (!this.isDevelopingPackageRoots.has(packageRoot)) {\n if (!this._configWritable) {\n throw new Error(\n `[Embroider:MacrosConfig] attempted to enablePackageDevelopment after configs have been finalized`\n );\n }\n this.isDevelopingPackageRoots.add(packageRoot);\n }\n }\n\n private _importSyncImplementation: 'cjs' | 'eager' = 'cjs';\n\n get importSyncImplementation() {\n return this._importSyncImplementation;\n }\n\n set importSyncImplementation(value: 'cjs' | 'eager') {\n if (!this._configWritable) {\n throw new Error(\n `[Embroider:MacrosConfig] attempted to set importSyncImplementation after configs have been finalized`\n );\n }\n this._importSyncImplementation = value;\n }\n\n private constructor(private origAppRoot: string, shared: GlobalSharedEntry) {\n this.configs = shared.configs;\n this.globalConfig = shared.globalConfigs;\n this.configSources = shared.configSources;\n this.mergers = shared.mergers;\n\n // this uses globalConfig because these things truly are global. Even if a\n // package doesn't have a dep or peerDep on @embroider/macros, it's legit\n // for them to want to know the answer to these questions, and there is only\n // one answer throughout the whole dependency graph.\n this.globalConfig['@embroider/macros'] = {\n // this powers the `isTesting` macro. It always starts out false here,\n // because:\n // - if this is a production build, we will evaluate all macros at build\n // time and isTesting will stay false, so test-only code will not be\n // included.\n // - if this is a dev build, we evaluate macros at runtime, which allows\n // both \"I'm running my app in development\" and \"I'm running my test\n // suite\" to coexist within a single build. When you run the test\n // suite, early in the runtime boot process we can flip isTesting to\n // true to distinguish the two.\n isTesting: false,\n };\n }\n\n private get packageCache() {\n return RewrittenPackageCache.shared('embroider', this.origAppRoot);\n }\n\n private get appRoot(): string {\n return this.origAppRoot;\n }\n\n private _configWritable = true;\n private configs: Map<string, object[]>;\n private configSources: WeakMap<object, string>;\n private mergers: Map<string, { merger: Merger; fromPath: string }>;\n\n // Registers a new source of configuration to be given to the named package.\n // Your config type must be json-serializable. You must always set fromPath to\n // `__filename`.\n setConfig(fromPath: string, packageName: string, config: object) {\n return this.internalSetConfig(fromPath, packageName, config);\n }\n\n // Registers a new source of configuration to be given to your own package.\n // Your config type must be json-serializable. You must always set fromPath to\n // `__filename`.\n setOwnConfig(fromPath: string, config: object) {\n return this.internalSetConfig(fromPath, undefined, config);\n }\n\n // Registers a new source of configuration to be shared globally within the\n // app. USE GLOBALS SPARINGLY! Prefer setConfig or setOwnConfig instead,\n // unless your state is truly, necessarily global.\n //\n // Include a relevant package name in your key to help avoid collisions.\n //\n // Your value must be json-serializable. You must always set fromPath to\n // `__filename`.\n setGlobalConfig(fromPath: string, key: string, value: object) {\n if (!this._configWritable) {\n throw new Error(\n `[Embroider:MacrosConfig] attempted to set global config after configs have been finalized from: '${fromPath}'`\n );\n }\n this.globalConfig[key] = value;\n }\n\n private internalSetConfig(fromPath: string, packageName: string | undefined, config: object) {\n if (!this._configWritable) {\n throw new Error(\n `[Embroider:MacrosConfig] attempted to set config after configs have been finalized from: '${fromPath}'`\n );\n }\n\n if (!isSerializable(config)) {\n throw new Error(\n `[Embroider:MacrosConfig] the given config from '${fromPath}' for packageName '${packageName}' is not JSON serializable.`\n );\n }\n\n let targetPackage = this.resolvePackage(fromPath, packageName);\n let peers = getOrCreate(this.configs, targetPackage.root, () => []);\n peers.push(config);\n this.configSources.set(config, fromPath);\n }\n\n // Allows you to set the merging strategy used for your package's config. The\n // merging strategy applies when multiple other packages all try to send\n // configuration to you.\n useMerger(fromPath: string, merger: Merger) {\n if (this._configWritable) {\n throw new Error(`[Embroider:MacrosConfig] attempted to call useMerger after configs have been finalized`);\n }\n\n let targetPackage = this.resolvePackage(fromPath, undefined);\n let other = this.mergers.get(targetPackage.root);\n if (other) {\n throw new Error(\n `[Embroider:MacrosConfig] conflicting mergers registered for package ${targetPackage.name} at ${targetPackage.root}. See ${other.fromPath} and ${fromPath}.`\n );\n }\n this.mergers.set(targetPackage.root, { merger, fromPath });\n }\n\n private cachedUserConfigs: { [packageRoot: string]: object } | undefined;\n\n private get userConfigs() {\n if (this._configWritable) {\n throw new Error('[Embroider:MacrosConfig] cannot read userConfigs until MacrosConfig has been finalized.');\n }\n\n if (!this.cachedUserConfigs) {\n let userConfigs: { [packageRoot: string]: object } = {};\n let sourceOfConfig = this.makeConfigSourcer(this.configSources);\n for (let [pkgRoot, configs] of this.configs) {\n let combined: object;\n if (configs.length > 1) {\n combined = this.mergerFor(pkgRoot)(configs, { sourceOfConfig });\n } else {\n combined = configs[0];\n }\n userConfigs[pkgRoot] = combined;\n }\n this.cachedUserConfigs = userConfigs;\n }\n\n return this.cachedUserConfigs;\n }\n\n private makeConfigSourcer(configSources: WeakMap<object, string>): SourceOfConfig {\n return config => {\n let fromPath = configSources.get(config);\n if (!fromPath) {\n throw new Error(\n `unknown object passed to sourceOfConfig(). You can only pass back the configs you were given.`\n );\n }\n let maybePkg = this.packageCache.ownerOfFile(fromPath);\n if (!maybePkg) {\n throw new Error(\n `bug: unexpected error, we always check that fromPath is owned during internalSetConfig so this should never happen`\n );\n }\n // our configs all deal in the original locations of packages, even if\n // embroider is rewriting some of them\n let pkg = this.packageCache.original(maybePkg);\n return {\n get name() {\n return pkg.name;\n },\n get version() {\n return pkg.version;\n },\n get root() {\n return pkg.root;\n },\n };\n };\n }\n\n // to be called from within your build system. Returns the thing you should\n // push into your babel plugins list.\n //\n // owningPackageRoot is needed when the files you will process (1) all belongs\n // to one package, (2) will not be located in globally correct paths such that\n // normal node_modules resolution can find their dependencies. In other words,\n // owningPackageRoot is needed when you use this inside classic ember-cli, and\n // it's not appropriate inside embroider.\n babelPluginConfig(appOrAddonInstance?: any): PluginItem[] {\n let self = this;\n let owningPackageRoot = appOrAddonInstance ? appOrAddonInstance.root || appOrAddonInstance.project.root : null;\n let opts: State['opts'] = {\n // this is deliberately lazy because we want to allow everyone to finish\n // setting config before we generate the userConfigs\n get userConfigs() {\n return self.userConfigs;\n },\n get globalConfig() {\n return self.globalConfig;\n },\n owningPackageRoot,\n\n isDevelopingPackageRoots: [...this.isDevelopingPackageRoots],\n\n get appPackageRoot() {\n return self.appRoot;\n },\n\n // This is used as a signature so we can detect ourself among the plugins\n // emitted from v1 addons.\n embroiderMacrosConfigMarker: true,\n\n get mode() {\n return self.mode;\n },\n\n importSyncImplementation: this.importSyncImplementation,\n };\n\n let lockFilePath = findUp.sync(['yarn.lock', 'package-lock.json', 'pnpm-lock.yaml'], { cwd: self.appRoot });\n\n if (!lockFilePath) {\n lockFilePath = findUp.sync('package.json', { cwd: opts.appPackageRoot });\n }\n\n let lockFileBuffer = lockFilePath ? fs.readFileSync(lockFilePath) : 'no-cache-key';\n\n // @embroider/macros provides a macro called dependencySatisfies which checks if a given\n // package name satisfies a given semver version range. Due to the way babel caches this can\n // cause a problem where the macro plugin does not run (because it has been cached) but the version\n // of the dependency being checked for changes (due to installing a different version). This will lead to\n // the old evaluated state being used which might be invalid. This cache busting plugin keeps track of a\n // hash representing the lock file of the app and if it ever changes forces babel to rerun its plugins.\n // more information in issue #906\n let hash = crypto.createHash('sha256');\n hash = hash.update(lockFileBuffer);\n if (appOrAddonInstance) {\n // ensure that the actual running addon names and versions are accounted\n // for in the cache key; this ensures that we still invalidate the cache\n // when linking another project (e.g. ember-source) which would normally\n // not cause the lockfile to change;\n hash = hash.update(gatherAddonCacheKey(appOrAddonInstance.project));\n }\n let cacheKey = hash.digest('hex');\n\n return [\n [join(__dirname, 'babel', 'macros-babel-plugin.js'), opts],\n [babelCacheBustingPluginPath, { version: cacheKey }, `@embroider/macros cache buster: ${owningPackageRoot}`],\n ];\n }\n\n // provides the ast plugins that implement the macro system, in reverse order\n // for compatibility with the classic build, which historically always ran ast\n // plugins in backwards order.\n static astPlugins(owningPackageRoot?: string): {\n plugins: Function[];\n setConfig: (config: MacrosConfig) => void;\n lazyParams: FirstTransformParams;\n } {\n let result = this.transforms(owningPackageRoot);\n result.plugins.reverse();\n return result;\n }\n\n // todo: type adjuments here\n // provides the ast plugins that implement the macro system\n static transforms(owningPackageRoot?: string): {\n plugins: Function[];\n setConfig: (config: MacrosConfig) => void;\n lazyParams: FirstTransformParams;\n } {\n let configs: MacrosConfig | undefined;\n\n let lazyParams = {\n // this is deliberately lazy because we want to allow everyone to finish\n // setting config before we generate the userConfigs\n get configs() {\n if (!configs) {\n throw new Error(`Bug: @embroider/macros ast-transforms were not plugged into a MacrosConfig`);\n }\n return configs.userConfigs;\n },\n packageRoot: owningPackageRoot,\n get appRoot() {\n if (!configs) {\n throw new Error(`Bug: @embroider/macros ast-transforms were not plugged into a MacrosConfig`);\n }\n return configs.appRoot;\n },\n };\n\n let plugins = [makeFirstTransform(lazyParams), makeSecondTransform()];\n function setConfig(c: MacrosConfig) {\n configs = c;\n }\n return { plugins, setConfig, lazyParams };\n }\n\n private mergerFor(pkgRoot: string) {\n let entry = this.mergers.get(pkgRoot);\n if (entry) {\n return entry.merger;\n }\n return defaultMergerFor(pkgRoot);\n }\n\n private resolvePackage(fromPath: string, packageName?: string | undefined) {\n let us = this.packageCache.ownerOfFile(fromPath);\n if (!us) {\n throw new Error(`[Embroider:MacrosConfig] unable to determine which npm package owns the file ${fromPath}`);\n }\n if (packageName) {\n let target = this.packageCache.resolve(packageName, us);\n return this.packageCache.original(target);\n } else {\n return this.packageCache.original(us);\n }\n }\n\n finalize() {\n this._configWritable = false;\n }\n}\n\nfunction defaultMergerFor(pkgRoot: string) {\n return function defaultMerger(configs: object[], { sourceOfConfig }: { sourceOfConfig: SourceOfConfig }): object {\n let [ownConfigs, otherConfigs] = partition(configs, c => sourceOfConfig(c as object).root === pkgRoot);\n return Object.assign({}, ...ownConfigs, ...otherConfigs);\n };\n}\n\nfunction isSerializable(obj: object): boolean {\n if (isScalar(obj)) {\n return true;\n }\n\n if (Array.isArray(obj)) {\n return !obj.some((arrayItem: any) => !isSerializable(arrayItem));\n }\n\n if (isPlainObject(obj)) {\n for (let property in obj) {\n let value = obj[property] as any;\n if (!isSerializable(value)) {\n return false;\n }\n }\n\n return true;\n }\n\n console.error('non serializable item found in config:', obj);\n return false;\n}\n\nfunction isScalar(val: any): boolean {\n return (\n typeof val === 'undefined' ||\n typeof val === 'string' ||\n typeof val === 'boolean' ||\n typeof val === 'number' ||\n val === null\n );\n}\n\nfunction isPlainObject(obj: any): obj is Record<string, any> {\n return typeof obj === 'object' && obj.constructor === Object && obj.toString() === '[object Object]';\n}\n"]}
1
+ {"version":3,"file":"macros-config.js","sourceRoot":"","sources":["macros-config.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'fs';\nimport { join } from 'path';\nimport crypto from 'crypto';\nimport findUp from 'find-up';\nimport type { PluginItem } from '@babel/core';\nimport { RewrittenPackageCache, getOrCreate } from '@embroider/shared-internals';\nimport type { FirstTransformParams } from './glimmer/ast-transform';\nimport { makeFirstTransform, makeSecondTransform } from './glimmer/ast-transform';\nimport type State from './babel/state';\nimport partition from 'lodash/partition';\n\nexport type SourceOfConfig = (config: object) => {\n readonly name: string;\n readonly root: string;\n readonly version: string;\n};\n\nexport type Merger = (\n configs: object[],\n params: {\n sourceOfConfig: SourceOfConfig;\n }\n) => object;\n\ninterface GlobalSharedEntry {\n configs: Map<string, object[]>;\n globalConfigs: Record<string, string>;\n configSources: WeakMap<object, string>;\n mergers: Map<string, { merger: Merger; fromPath: string }>;\n}\n\n// Do not change this type signature without pondering deeply the mysteries of\n// being compatible with unwritten future versions of this library.\ntype GlobalSharedState = WeakMap<any, GlobalSharedEntry>;\n\n// this is a module-scoped cache. If multiple callers ask _this copy_ of\n// @embroider/macros for a shared MacrosConfig, they'll all get the same one.\n// And if somebody asks a *different* copy of @embroider/macros for the shared\n// MacrosConfig, it will have its own instance with its own code, but will still\n// share the GlobalSharedState beneath.\nlet localSharedState: WeakMap<any, MacrosConfig> = new WeakMap();\n\nfunction gatherAddonCacheKeyWorker(item: any, memo: Set<string>) {\n item.addons.forEach((addon: any) => {\n let key = `${addon.pkg.name}@${addon.pkg.version}`;\n memo.add(key);\n gatherAddonCacheKeyWorker(addon, memo);\n });\n}\n\nlet addonCacheKey: WeakMap<any, string> = new WeakMap();\n// creates a string representing all addons and their versions\n// (foo@1.0.0|bar@2.0.0) to use as a cachekey\nfunction gatherAddonCacheKey(project: any): string {\n let cacheKey = addonCacheKey.get(project);\n if (cacheKey) {\n return cacheKey;\n }\n\n let memo: Set<string> = new Set();\n project.addons.forEach((addon: any) => {\n let key = `${addon.pkg.name}@${addon.pkg.version}`;\n memo.add(key);\n gatherAddonCacheKeyWorker(addon, memo);\n });\n\n cacheKey = [...memo].join('|');\n addonCacheKey.set(project, cacheKey);\n\n return cacheKey;\n}\n\nconst babelCacheBustingPluginPath: string = require.resolve(\n '@embroider/shared-internals/src/babel-plugin-cache-busting.js'\n);\n\nexport default class MacrosConfig {\n static for(key: any, appRoot: string): MacrosConfig {\n let found = localSharedState.get(key);\n if (found) {\n return found;\n }\n\n let g = global as any as { __embroider_macros_global__: GlobalSharedState | undefined };\n if (!g.__embroider_macros_global__) {\n g.__embroider_macros_global__ = new WeakMap();\n }\n\n let shared = g.__embroider_macros_global__.get(key);\n if (shared) {\n // if an earlier version of @embroider/macros created the shared state, it\n // would have configSources.\n if (!shared.configSources) {\n shared.configSources = new WeakMap();\n }\n\n // earlier versions did not include this -- we may need to upgrade the\n // format here\n if (!shared.globalConfigs) {\n shared.globalConfigs = {};\n }\n } else {\n shared = {\n configs: new Map(),\n globalConfigs: {},\n configSources: new WeakMap(),\n mergers: new Map(),\n };\n g.__embroider_macros_global__.set(key, shared);\n }\n\n let config = new MacrosConfig(appRoot, shared);\n localSharedState.set(key, config);\n return config;\n }\n\n private mode: 'compile-time' | 'run-time' = 'compile-time';\n private globalConfig: { [key: string]: unknown };\n\n private isDevelopingPackageRoots: Set<string> = new Set();\n\n enableRuntimeMode() {\n if (this.mode !== 'run-time') {\n if (!this._configWritable) {\n throw new Error(`[Embroider:MacrosConfig] attempted to enableRuntimeMode after configs have been finalized`);\n }\n this.mode = 'run-time';\n }\n }\n\n enablePackageDevelopment(packageRoot: string) {\n if (!this.isDevelopingPackageRoots.has(packageRoot)) {\n if (!this._configWritable) {\n throw new Error(\n `[Embroider:MacrosConfig] attempted to enablePackageDevelopment after configs have been finalized`\n );\n }\n this.isDevelopingPackageRoots.add(packageRoot);\n }\n }\n\n private constructor(private origAppRoot: string, shared: GlobalSharedEntry) {\n this.configs = shared.configs;\n this.globalConfig = shared.globalConfigs;\n this.configSources = shared.configSources;\n this.mergers = shared.mergers;\n\n // this uses globalConfig because these things truly are global. Even if a\n // package doesn't have a dep or peerDep on @embroider/macros, it's legit\n // for them to want to know the answer to these questions, and there is only\n // one answer throughout the whole dependency graph.\n this.globalConfig['@embroider/macros'] = {\n // this powers the `isTesting` macro. It always starts out false here,\n // because:\n // - if this is a production build, we will evaluate all macros at build\n // time and isTesting will stay false, so test-only code will not be\n // included.\n // - if this is a dev build, we evaluate macros at runtime, which allows\n // both \"I'm running my app in development\" and \"I'm running my test\n // suite\" to coexist within a single build. When you run the test\n // suite, early in the runtime boot process we can flip isTesting to\n // true to distinguish the two.\n isTesting: false,\n };\n }\n\n private get packageCache() {\n return RewrittenPackageCache.shared('embroider', this.origAppRoot);\n }\n\n private get appRoot(): string {\n return this.origAppRoot;\n }\n\n private _configWritable = true;\n private configs: Map<string, object[]>;\n private configSources: WeakMap<object, string>;\n private mergers: Map<string, { merger: Merger; fromPath: string }>;\n\n // Registers a new source of configuration to be given to the named package.\n // Your config type must be json-serializable. You must always set fromPath to\n // `__filename`.\n setConfig(fromPath: string, packageName: string, config: object) {\n return this.internalSetConfig(fromPath, packageName, config);\n }\n\n // Registers a new source of configuration to be given to your own package.\n // Your config type must be json-serializable. You must always set fromPath to\n // `__filename`.\n setOwnConfig(fromPath: string, config: object) {\n return this.internalSetConfig(fromPath, undefined, config);\n }\n\n // Registers a new source of configuration to be shared globally within the\n // app. USE GLOBALS SPARINGLY! Prefer setConfig or setOwnConfig instead,\n // unless your state is truly, necessarily global.\n //\n // Include a relevant package name in your key to help avoid collisions.\n //\n // Your value must be json-serializable. You must always set fromPath to\n // `__filename`.\n setGlobalConfig(fromPath: string, key: string, value: object) {\n if (!this._configWritable) {\n throw new Error(\n `[Embroider:MacrosConfig] attempted to set global config after configs have been finalized from: '${fromPath}'`\n );\n }\n this.globalConfig[key] = value;\n }\n\n private internalSetConfig(fromPath: string, packageName: string | undefined, config: object) {\n if (!this._configWritable) {\n throw new Error(\n `[Embroider:MacrosConfig] attempted to set config after configs have been finalized from: '${fromPath}'`\n );\n }\n\n if (!isSerializable(config)) {\n throw new Error(\n `[Embroider:MacrosConfig] the given config from '${fromPath}' for packageName '${packageName}' is not JSON serializable.`\n );\n }\n\n let targetPackage = this.resolvePackage(fromPath, packageName);\n let peers = getOrCreate(this.configs, targetPackage.root, () => []);\n peers.push(config);\n this.configSources.set(config, fromPath);\n }\n\n // Allows you to set the merging strategy used for your package's config. The\n // merging strategy applies when multiple other packages all try to send\n // configuration to you.\n useMerger(fromPath: string, merger: Merger) {\n if (this._configWritable) {\n throw new Error(`[Embroider:MacrosConfig] attempted to call useMerger after configs have been finalized`);\n }\n\n let targetPackage = this.resolvePackage(fromPath, undefined);\n let other = this.mergers.get(targetPackage.root);\n if (other) {\n throw new Error(\n `[Embroider:MacrosConfig] conflicting mergers registered for package ${targetPackage.name} at ${targetPackage.root}. See ${other.fromPath} and ${fromPath}.`\n );\n }\n this.mergers.set(targetPackage.root, { merger, fromPath });\n }\n\n private cachedUserConfigs: { [packageRoot: string]: object } | undefined;\n\n private get userConfigs() {\n if (this._configWritable) {\n throw new Error('[Embroider:MacrosConfig] cannot read userConfigs until MacrosConfig has been finalized.');\n }\n\n if (!this.cachedUserConfigs) {\n let userConfigs: { [packageRoot: string]: object } = {};\n let sourceOfConfig = this.makeConfigSourcer(this.configSources);\n for (let [pkgRoot, configs] of this.configs) {\n let combined: object;\n if (configs.length > 1) {\n combined = this.mergerFor(pkgRoot)(configs, { sourceOfConfig });\n } else {\n combined = configs[0];\n }\n userConfigs[pkgRoot] = combined;\n }\n this.cachedUserConfigs = userConfigs;\n }\n\n return this.cachedUserConfigs;\n }\n\n private makeConfigSourcer(configSources: WeakMap<object, string>): SourceOfConfig {\n return config => {\n let fromPath = configSources.get(config);\n if (!fromPath) {\n throw new Error(\n `unknown object passed to sourceOfConfig(). You can only pass back the configs you were given.`\n );\n }\n let maybePkg = this.packageCache.ownerOfFile(fromPath);\n if (!maybePkg) {\n throw new Error(\n `bug: unexpected error, we always check that fromPath is owned during internalSetConfig so this should never happen`\n );\n }\n // our configs all deal in the original locations of packages, even if\n // embroider is rewriting some of them\n let pkg = this.packageCache.original(maybePkg);\n return {\n get name() {\n return pkg.name;\n },\n get version() {\n return pkg.version;\n },\n get root() {\n return pkg.root;\n },\n };\n };\n }\n\n // to be called from within your build system. Returns the thing you should\n // push into your babel plugins list.\n //\n // owningPackageRoot is needed when the files you will process (1) all belongs\n // to one package, (2) will not be located in globally correct paths such that\n // normal node_modules resolution can find their dependencies. In other words,\n // owningPackageRoot is needed when you use this inside classic ember-cli, and\n // it's not appropriate inside embroider.\n babelPluginConfig(appOrAddonInstance?: any): PluginItem[] {\n let self = this;\n let owningPackageRoot = appOrAddonInstance ? appOrAddonInstance.root || appOrAddonInstance.project.root : null;\n let opts: State['opts'] = {\n // this is deliberately lazy because we want to allow everyone to finish\n // setting config before we generate the userConfigs\n get userConfigs() {\n return self.userConfigs;\n },\n get globalConfig() {\n return self.globalConfig;\n },\n owningPackageRoot,\n\n isDevelopingPackageRoots: [...this.isDevelopingPackageRoots],\n\n get appPackageRoot() {\n return self.appRoot;\n },\n\n // This is used as a signature so we can detect ourself among the plugins\n // emitted from v1 addons.\n embroiderMacrosConfigMarker: true,\n\n get mode() {\n return self.mode;\n },\n\n hideRequires: true,\n };\n\n let lockFilePath = findUp.sync(['yarn.lock', 'package-lock.json', 'pnpm-lock.yaml'], { cwd: self.appRoot });\n\n if (!lockFilePath) {\n lockFilePath = findUp.sync('package.json', { cwd: opts.appPackageRoot });\n }\n\n let lockFileBuffer = lockFilePath ? fs.readFileSync(lockFilePath) : 'no-cache-key';\n\n // @embroider/macros provides a macro called dependencySatisfies which checks if a given\n // package name satisfies a given semver version range. Due to the way babel caches this can\n // cause a problem where the macro plugin does not run (because it has been cached) but the version\n // of the dependency being checked for changes (due to installing a different version). This will lead to\n // the old evaluated state being used which might be invalid. This cache busting plugin keeps track of a\n // hash representing the lock file of the app and if it ever changes forces babel to rerun its plugins.\n // more information in issue #906\n let hash = crypto.createHash('sha256');\n hash = hash.update(lockFileBuffer);\n if (appOrAddonInstance) {\n // ensure that the actual running addon names and versions are accounted\n // for in the cache key; this ensures that we still invalidate the cache\n // when linking another project (e.g. ember-source) which would normally\n // not cause the lockfile to change;\n hash = hash.update(gatherAddonCacheKey(appOrAddonInstance.project));\n }\n let cacheKey = hash.digest('hex');\n\n return [\n [join(__dirname, 'babel', 'macros-babel-plugin.js'), opts],\n [babelCacheBustingPluginPath, { version: cacheKey }, `@embroider/macros cache buster: ${owningPackageRoot}`],\n ];\n }\n\n // provides the ast plugins that implement the macro system, in reverse order\n // for compatibility with the classic build, which historically always ran ast\n // plugins in backwards order.\n static astPlugins(owningPackageRoot?: string): {\n plugins: Function[];\n setConfig: (config: MacrosConfig) => void;\n lazyParams: FirstTransformParams;\n } {\n let result = this.transforms(owningPackageRoot);\n result.plugins.reverse();\n return result;\n }\n\n // todo: type adjuments here\n // provides the ast plugins that implement the macro system\n static transforms(owningPackageRoot?: string): {\n plugins: Function[];\n setConfig: (config: MacrosConfig) => void;\n lazyParams: FirstTransformParams;\n } {\n let configs: MacrosConfig | undefined;\n\n let lazyParams = {\n // this is deliberately lazy because we want to allow everyone to finish\n // setting config before we generate the userConfigs\n get configs() {\n if (!configs) {\n throw new Error(`Bug: @embroider/macros ast-transforms were not plugged into a MacrosConfig`);\n }\n return configs.userConfigs;\n },\n packageRoot: owningPackageRoot,\n get appRoot() {\n if (!configs) {\n throw new Error(`Bug: @embroider/macros ast-transforms were not plugged into a MacrosConfig`);\n }\n return configs.appRoot;\n },\n };\n\n let plugins = [makeFirstTransform(lazyParams), makeSecondTransform()];\n function setConfig(c: MacrosConfig) {\n configs = c;\n }\n return { plugins, setConfig, lazyParams };\n }\n\n private mergerFor(pkgRoot: string) {\n let entry = this.mergers.get(pkgRoot);\n if (entry) {\n return entry.merger;\n }\n return defaultMergerFor(pkgRoot);\n }\n\n private resolvePackage(fromPath: string, packageName?: string | undefined) {\n let us = this.packageCache.ownerOfFile(fromPath);\n if (!us) {\n throw new Error(`[Embroider:MacrosConfig] unable to determine which npm package owns the file ${fromPath}`);\n }\n if (packageName) {\n let target = this.packageCache.resolve(packageName, us);\n return this.packageCache.original(target);\n } else {\n return this.packageCache.original(us);\n }\n }\n\n finalize() {\n this._configWritable = false;\n }\n}\n\nfunction defaultMergerFor(pkgRoot: string) {\n return function defaultMerger(configs: object[], { sourceOfConfig }: { sourceOfConfig: SourceOfConfig }): object {\n let [ownConfigs, otherConfigs] = partition(configs, c => sourceOfConfig(c as object).root === pkgRoot);\n return Object.assign({}, ...ownConfigs, ...otherConfigs);\n };\n}\n\nfunction isSerializable(obj: object): boolean {\n if (isScalar(obj)) {\n return true;\n }\n\n if (Array.isArray(obj)) {\n return !obj.some((arrayItem: any) => !isSerializable(arrayItem));\n }\n\n if (isPlainObject(obj)) {\n for (let property in obj) {\n let value = obj[property] as any;\n if (!isSerializable(value)) {\n return false;\n }\n }\n\n return true;\n }\n\n console.error('non serializable item found in config:', obj);\n return false;\n}\n\nfunction isScalar(val: any): boolean {\n return (\n typeof val === 'undefined' ||\n typeof val === 'string' ||\n typeof val === 'boolean' ||\n typeof val === 'number' ||\n val === null\n );\n}\n\nfunction isPlainObject(obj: any): obj is Record<string, any> {\n return typeof obj === 'object' && obj.constructor === Object && obj.toString() === '[object Object]';\n}\n"]}
package/src/node.js CHANGED
@@ -5,7 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  return (mod && mod.__esModule) ? mod : { "default": mod };
6
6
  };
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.isEmbroiderMacrosPlugin = exports.MacrosConfig = void 0;
8
+ exports.MacrosConfig = void 0;
9
+ exports.isEmbroiderMacrosPlugin = isEmbroiderMacrosPlugin;
9
10
  // Entrypoint for managing the macro config within Node.
10
11
  var macros_config_1 = require("./macros-config");
11
12
  Object.defineProperty(exports, "MacrosConfig", { enumerable: true, get: function () { return __importDefault(macros_config_1).default; } });
@@ -17,5 +18,4 @@ function isEmbroiderMacrosPlugin(item) {
17
18
  item[1].embroiderMacrosConfigMarker) ||
18
19
  (item && typeof item === 'function' && item.embroiderMacrosASTMarker));
19
20
  }
20
- exports.isEmbroiderMacrosPlugin = isEmbroiderMacrosPlugin;
21
21
  //# sourceMappingURL=node.js.map
package/src/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["node.ts"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,iDAAiD;;;;;;AAEjD,wDAAwD;AACxD,iDAA0D;AAAjD,8HAAA,OAAO,OAAgB;AAKhC,SAAgB,uBAAuB,CAAC,IAAgB;IACtD,OAAO,CACL,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,CAAC;QACf,IAAI,CAAC,CAAC,CAAC;QACP,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;QAC1B,IAAI,CAAC,CAAC,CAAS,CAAC,2BAA2B,CAAC;QAC/C,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU,IAAK,IAAY,CAAC,wBAAwB,CAAC,CAC/E,CAAC;AACJ,CAAC;AATD,0DASC","sourcesContent":["// this is the public entrypoint for Node-side code, as opposed to index.ts\n// which is our browser-visible public entrypoint\n\n// Entrypoint for managing the macro config within Node.\nexport { default as MacrosConfig } from './macros-config';\nexport type { Merger } from './macros-config';\n\n// Utility for detecting our babel and AST plugins.\nimport type { PluginItem } from '@babel/core';\nexport function isEmbroiderMacrosPlugin(item: PluginItem) {\n return (\n (Array.isArray(item) &&\n item.length > 1 &&\n item[1] &&\n typeof item[1] === 'object' &&\n (item[1] as any).embroiderMacrosConfigMarker) ||\n (item && typeof item === 'function' && (item as any).embroiderMacrosASTMarker)\n );\n}\n"]}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["node.ts"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,iDAAiD;;;;;;AAQjD,0DASC;AAfD,wDAAwD;AACxD,iDAA0D;AAAjD,8HAAA,OAAO,OAAgB;AAKhC,SAAgB,uBAAuB,CAAC,IAAgB;IACtD,OAAO,CACL,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,CAAC;QACf,IAAI,CAAC,CAAC,CAAC;QACP,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;QAC1B,IAAI,CAAC,CAAC,CAAS,CAAC,2BAA2B,CAAC;QAC/C,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU,IAAK,IAAY,CAAC,wBAAwB,CAAC,CAC/E,CAAC;AACJ,CAAC","sourcesContent":["// this is the public entrypoint for Node-side code, as opposed to index.ts\n// which is our browser-visible public entrypoint\n\n// Entrypoint for managing the macro config within Node.\nexport { default as MacrosConfig } from './macros-config';\nexport type { Merger } from './macros-config';\n\n// Utility for detecting our babel and AST plugins.\nimport type { PluginItem } from '@babel/core';\nexport function isEmbroiderMacrosPlugin(item: PluginItem) {\n return (\n (Array.isArray(item) &&\n item.length > 1 &&\n item[1] &&\n typeof item[1] === 'object' &&\n (item[1] as any).embroiderMacrosConfigMarker) ||\n (item && typeof item === 'function' && (item as any).embroiderMacrosASTMarker)\n );\n}\n"]}