@warp-drive/build-config 0.0.1 → 0.0.3

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 (56) hide show
  1. package/LICENSE.md +19 -5
  2. package/README.md +2 -2
  3. package/dist/addon-shim.cjs +7 -24
  4. package/dist/addon-shim.cjs.map +1 -1
  5. package/dist/babel-macros.js +3 -2
  6. package/dist/babel-macros.js.map +1 -1
  7. package/dist/babel-plugin-transform-asserts.cjs.map +1 -1
  8. package/dist/babel-plugin-transform-deprecations.cjs.map +1 -1
  9. package/dist/babel-plugin-transform-features.cjs +1 -5
  10. package/dist/babel-plugin-transform-features.cjs.map +1 -1
  11. package/dist/babel-plugin-transform-logging.cjs +46 -3
  12. package/dist/babel-plugin-transform-logging.cjs.map +1 -1
  13. package/dist/{canary-features-BzGSGY5j.js → canary-features-CFdRGi2p.js} +41 -26
  14. package/dist/canary-features-CFdRGi2p.js.map +1 -0
  15. package/dist/canary-features.js +1 -1
  16. package/dist/cjs-set-config.cjs +200 -133
  17. package/dist/cjs-set-config.cjs.map +1 -1
  18. package/dist/debugging-Dc--S1MJ.js +128 -0
  19. package/dist/debugging-Dc--S1MJ.js.map +1 -0
  20. package/dist/debugging.js +1 -1
  21. package/dist/deprecations-ChFQtx-4.js.map +1 -1
  22. package/dist/env.js.map +1 -1
  23. package/dist/index.js +105 -60
  24. package/dist/index.js.map +1 -1
  25. package/dist/macros.js.map +1 -1
  26. package/logos/NCC-1701-a-gold.svg +4 -0
  27. package/logos/NCC-1701-a-gold_100.svg +1 -0
  28. package/logos/NCC-1701-a-gold_base-64.txt +1 -0
  29. package/logos/README.md +4 -0
  30. package/logos/docs-badge.svg +2 -0
  31. package/logos/ember-data-logo-dark.svg +12 -0
  32. package/logos/ember-data-logo-light.svg +12 -0
  33. package/logos/github-header.svg +444 -0
  34. package/logos/social1.png +0 -0
  35. package/logos/social2.png +0 -0
  36. package/logos/warp-drive-logo-dark.svg +4 -0
  37. package/logos/warp-drive-logo-gold.svg +4 -0
  38. package/package.json +17 -18
  39. package/unstable-preview-types/-private/utils/get-env.d.ts.map +1 -1
  40. package/unstable-preview-types/-private/utils/logging.d.ts +14 -0
  41. package/unstable-preview-types/-private/utils/logging.d.ts.map +1 -0
  42. package/unstable-preview-types/babel-macros.d.ts +3 -24
  43. package/unstable-preview-types/babel-macros.d.ts.map +1 -1
  44. package/unstable-preview-types/canary-features.d.ts +36 -24
  45. package/unstable-preview-types/canary-features.d.ts.map +1 -1
  46. package/unstable-preview-types/debugging.d.ts +51 -47
  47. package/unstable-preview-types/debugging.d.ts.map +1 -1
  48. package/unstable-preview-types/deprecation-versions.d.ts +18 -42
  49. package/unstable-preview-types/deprecation-versions.d.ts.map +1 -1
  50. package/unstable-preview-types/index.d.ts +10 -5
  51. package/unstable-preview-types/index.d.ts.map +1 -1
  52. package/dist/canary-features-BzGSGY5j.js.map +0 -1
  53. package/dist/debugging-BzogyWJo.js +0 -121
  54. package/dist/debugging-BzogyWJo.js.map +0 -1
  55. /package/{NCC-1701-a-blue.svg → logos/NCC-1701-a-blue.svg} +0 -0
  56. /package/{NCC-1701-a.svg → logos/NCC-1701-a.svg} +0 -0
package/LICENSE.md CHANGED
@@ -1,9 +1,23 @@
1
- The MIT License (MIT)
1
+ MIT License
2
2
 
3
- Copyright (C) 2023 EmberData and WarpDrive contributors
3
+ Copyright (c) 2017-2025 Ember.js and contributors
4
+ Copyright (c) 2011-2017 Tilde, Inc. and contributors
5
+ Copyright (c) 2011 LivingSocial Inc.
4
6
 
5
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
7
+ Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ of this software and associated documentation files (the "Software"), to deal
9
+ in the Software without restriction, including without limitation the rights
10
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ copies of the Software, and to permit persons to whom the Software is
12
+ furnished to do so, subject to the following conditions:
6
13
 
7
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
14
+ The above copyright notice and this permission notice shall be included in all
15
+ copies or substantial portions of the Software.
8
16
 
9
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ SOFTWARE.
package/README.md CHANGED
@@ -1,13 +1,13 @@
1
1
  <p align="center">
2
2
  <img
3
3
  class="project-logo"
4
- src="./NCC-1701-a-blue.svg#gh-light-mode-only"
4
+ src="./logos/NCC-1701-a-blue.svg#gh-light-mode-only"
5
5
  alt="WarpDrive"
6
6
  width="120px"
7
7
  title="WarpDrive" />
8
8
  <img
9
9
  class="project-logo"
10
- src="./NCC-1701-a.svg#gh-dark-mode-only"
10
+ src="./logos/NCC-1701-a.svg#gh-dark-mode-only"
11
11
  alt="WarpDrive"
12
12
  width="120px"
13
13
  title="WarpDrive" />
@@ -2,29 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- function addonShim(dirName, options) {
6
- const path = require('path');
7
- const pkg = require(path.join(dirName, './package.json'));
8
- const isV2Addon = pkg['ember-addon']?.version === 2;
9
- if (isV2Addon) {
10
- const {
11
- addonV1Shim
12
- } = require('@embroider/addon-shim');
13
- return addonV1Shim(dirName, options);
14
- }
15
- const Funnel = require('broccoli-funnel');
16
- return {
17
- name: pkg.name,
18
- treeForVendor() {},
19
- treeForPublic() {},
20
- treeForStyles() {},
21
- treeForAddonStyles() {},
22
- treeForApp() {},
23
- treeForAddon() {
24
- return this._super.treeForAddon.call(this, new Funnel(path.join(dirName, 'dist')));
25
- }
26
- };
27
- }
5
+ const addonShim = require('@embroider/addon-shim');
28
6
 
29
- exports.addonShim = addonShim;
7
+
8
+
9
+ Object.defineProperty(exports, "addonShim", {
10
+ enumerable: true,
11
+ get: () => addonShim.addonV1Shim
12
+ });
30
13
  //# sourceMappingURL=addon-shim.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"addon-shim.cjs","sources":["../cjs-src/addon-shim.js"],"sourcesContent":["'use strict';\n\nexport function addonShim(dirName, options) {\n const path = require('path');\n const pkg = require(path.join(dirName, './package.json'));\n\n const isV2Addon = pkg['ember-addon']?.version === 2;\n if (isV2Addon) {\n const { addonV1Shim } = require('@embroider/addon-shim');\n return addonV1Shim(dirName, options);\n }\n\n const Funnel = require('broccoli-funnel');\n return {\n name: pkg.name,\n\n treeForVendor() {},\n treeForPublic() {},\n treeForStyles() {},\n treeForAddonStyles() {},\n treeForApp() {},\n treeForAddon() {\n return this._super.treeForAddon.call(this, new Funnel(path.join(dirName, 'dist')));\n },\n };\n}\n"],"names":["addonShim","dirName","options","path","require","pkg","join","isV2Addon","version","addonV1Shim","Funnel","name","treeForVendor","treeForPublic","treeForStyles","treeForAddonStyles","treeForApp","treeForAddon","_super","call"],"mappings":";;;;AAEO,SAASA,SAASA,CAACC,OAAO,EAAEC,OAAO,EAAE;AAC1C,EAAA,MAAMC,IAAI,GAAGC,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,EAAA,MAAMC,GAAG,GAAGD,OAAO,CAACD,IAAI,CAACG,IAAI,CAACL,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAA;EAEzD,MAAMM,SAAS,GAAGF,GAAG,CAAC,aAAa,CAAC,EAAEG,OAAO,KAAK,CAAC,CAAA;AACnD,EAAA,IAAID,SAAS,EAAE;IACb,MAAM;AAAEE,MAAAA,WAAAA;AAAY,KAAC,GAAGL,OAAO,CAAC,uBAAuB,CAAC,CAAA;AACxD,IAAA,OAAOK,WAAW,CAACR,OAAO,EAAEC,OAAO,CAAC,CAAA;AACtC,GAAA;AAEA,EAAA,MAAMQ,MAAM,GAAGN,OAAO,CAAC,iBAAiB,CAAC,CAAA;EACzC,OAAO;IACLO,IAAI,EAAEN,GAAG,CAACM,IAAI;IAEdC,aAAaA,GAAG,EAAE;IAClBC,aAAaA,GAAG,EAAE;IAClBC,aAAaA,GAAG,EAAE;IAClBC,kBAAkBA,GAAG,EAAE;IACvBC,UAAUA,GAAG,EAAE;AACfC,IAAAA,YAAYA,GAAG;MACb,OAAO,IAAI,CAACC,MAAM,CAACD,YAAY,CAACE,IAAI,CAAC,IAAI,EAAE,IAAIT,MAAM,CAACP,IAAI,CAACG,IAAI,CAACL,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;AACpF,KAAA;GACD,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"addon-shim.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
- import { L as LOGGING } from './debugging-BzogyWJo.js';
2
- import { C as CURRENT_FEATURES } from './canary-features-BzGSGY5j.js';
1
+ import { L as LOGGING } from './debugging-Dc--S1MJ.js';
2
+ import { C as CURRENT_FEATURES } from './canary-features-CFdRGi2p.js';
3
3
  import { C as CURRENT_DEPRECATIONS } from './deprecations-ChFQtx-4.js';
4
4
 
5
5
  const features = Object.keys(CURRENT_FEATURES);
@@ -29,6 +29,7 @@ function macros() {
29
29
  }, '@warp-drive/build-config/deprecation-stripping'], [TransformDebugLogging, {
30
30
  source: '@warp-drive/build-config/debugging',
31
31
  configKey: 'debug',
32
+ runtimeKey: 'activeLogging',
32
33
  flags: config.debug
33
34
  }, '@warp-drive/build-config/debugging-stripping'], [TransformDebugLogging, {
34
35
  source: '@warp-drive/build-config/env',
@@ -1 +1 @@
1
- {"version":3,"file":"babel-macros.js","sources":["../src/babel-macros.ts"],"sourcesContent":["import * as LOGGING from './debugging.ts';\nimport * as CURRENT_FEATURES from './canary-features.ts';\nimport * as CURRENT_DEPRECATIONS from './deprecations.ts';\n\ntype FEATURE = keyof typeof CURRENT_FEATURES;\nconst features = Object.keys(CURRENT_FEATURES) as FEATURE[];\nconst FEATURES = Object.assign({}, CURRENT_FEATURES) as Record<FEATURE, boolean>;\nfeatures.forEach((feature) => {\n let featureValue = FEATURES[feature];\n if (featureValue === null) {\n FEATURES[feature] = false;\n }\n});\n\nconst config = {\n features: FEATURES,\n deprecations: Object.assign({}, CURRENT_DEPRECATIONS),\n debug: Object.assign({}, LOGGING),\n};\n\nexport function macros() {\n const TransformAsserts = import.meta.resolve('./babel-plugin-transform-asserts.cjs').slice(7);\n const TransformDeprecations = import.meta.resolve('./babel-plugin-transform-deprecations.cjs').slice(7);\n const TransformDebugLogging = import.meta.resolve('./babel-plugin-transform-logging.cjs').slice(7);\n const TransformFeatures = import.meta.resolve('./babel-plugin-transform-features.cjs').slice(7);\n\n let plugins = [\n [TransformAsserts, {}, '@warp-drive/build-config/asserts-stripping'],\n [\n TransformFeatures,\n {\n source: '@warp-drive/build-config/canary-features',\n flags: config.features,\n },\n '@warp-drive/build-config/canary-features-stripping',\n ],\n [\n TransformDeprecations,\n {\n source: '@warp-drive/build-config/deprecations',\n flags: config.deprecations,\n },\n '@warp-drive/build-config/deprecation-stripping',\n ],\n [\n TransformDebugLogging,\n {\n source: '@warp-drive/build-config/debugging',\n configKey: 'debug',\n flags: config.debug,\n },\n '@warp-drive/build-config/debugging-stripping',\n ],\n [\n TransformDebugLogging,\n {\n source: '@warp-drive/build-config/env',\n configKey: 'env',\n flags: {\n TESTING: true,\n PRODUCTION: true,\n DEBUG: true,\n IS_RECORDING: true,\n IS_CI: true,\n SHOULD_RECORD: true,\n },\n },\n '@warp-drive/build-config/env',\n ],\n ];\n\n return plugins;\n}\n"],"names":["features","Object","keys","CURRENT_FEATURES","FEATURES","assign","forEach","feature","featureValue","config","deprecations","CURRENT_DEPRECATIONS","debug","LOGGING","macros","TransformAsserts","import","meta","resolve","slice","TransformDeprecations","TransformDebugLogging","TransformFeatures","plugins","source","flags","configKey","TESTING","PRODUCTION","DEBUG","IS_RECORDING","IS_CI","SHOULD_RECORD"],"mappings":";;;;AAKA,MAAMA,QAAQ,GAAGC,MAAM,CAACC,IAAI,CAACC,gBAAgB,CAAc,CAAA;AAC3D,MAAMC,QAAQ,GAAGH,MAAM,CAACI,MAAM,CAAC,EAAE,EAAEF,gBAAgB,CAA6B,CAAA;AAChFH,QAAQ,CAACM,OAAO,CAAEC,OAAO,IAAK;AAC5B,EAAA,IAAIC,YAAY,GAAGJ,QAAQ,CAACG,OAAO,CAAC,CAAA;EACpC,IAAIC,YAAY,KAAK,IAAI,EAAE;AACzBJ,IAAAA,QAAQ,CAACG,OAAO,CAAC,GAAG,KAAK,CAAA;AAC3B,GAAA;AACF,CAAC,CAAC,CAAA;AAEF,MAAME,MAAM,GAAG;AACbT,EAAAA,QAAQ,EAAEI,QAAQ;EAClBM,YAAY,EAAET,MAAM,CAACI,MAAM,CAAC,EAAE,EAAEM,oBAAoB,CAAC;EACrDC,KAAK,EAAEX,MAAM,CAACI,MAAM,CAAC,EAAE,EAAEQ,OAAO,CAAA;AAClC,CAAC,CAAA;AAEM,SAASC,MAAMA,GAAG;AACvB,EAAA,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,IAAI,CAACC,OAAO,CAAC,sCAAsC,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,CAAA;AAC7F,EAAA,MAAMC,qBAAqB,GAAGJ,MAAM,CAACC,IAAI,CAACC,OAAO,CAAC,2CAA2C,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,CAAA;AACvG,EAAA,MAAME,qBAAqB,GAAGL,MAAM,CAACC,IAAI,CAACC,OAAO,CAAC,sCAAsC,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,CAAA;AAClG,EAAA,MAAMG,iBAAiB,GAAGN,MAAM,CAACC,IAAI,CAACC,OAAO,CAAC,uCAAuC,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,CAAA;AAE/F,EAAA,IAAII,OAAO,GAAG,CACZ,CAACR,gBAAgB,EAAE,EAAE,EAAE,4CAA4C,CAAC,EACpE,CACEO,iBAAiB,EACjB;AACEE,IAAAA,MAAM,EAAE,0CAA0C;IAClDC,KAAK,EAAEhB,MAAM,CAACT,QAAAA;AAChB,GAAC,EACD,oDAAoD,CACrD,EACD,CACEoB,qBAAqB,EACrB;AACEI,IAAAA,MAAM,EAAE,uCAAuC;IAC/CC,KAAK,EAAEhB,MAAM,CAACC,YAAAA;AAChB,GAAC,EACD,gDAAgD,CACjD,EACD,CACEW,qBAAqB,EACrB;AACEG,IAAAA,MAAM,EAAE,oCAAoC;AAC5CE,IAAAA,SAAS,EAAE,OAAO;IAClBD,KAAK,EAAEhB,MAAM,CAACG,KAAAA;AAChB,GAAC,EACD,8CAA8C,CAC/C,EACD,CACES,qBAAqB,EACrB;AACEG,IAAAA,MAAM,EAAE,8BAA8B;AACtCE,IAAAA,SAAS,EAAE,KAAK;AAChBD,IAAAA,KAAK,EAAE;AACLE,MAAAA,OAAO,EAAE,IAAI;AACbC,MAAAA,UAAU,EAAE,IAAI;AAChBC,MAAAA,KAAK,EAAE,IAAI;AACXC,MAAAA,YAAY,EAAE,IAAI;AAClBC,MAAAA,KAAK,EAAE,IAAI;AACXC,MAAAA,aAAa,EAAE,IAAA;AACjB,KAAA;GACD,EACD,8BAA8B,CAC/B,CACF,CAAA;AAED,EAAA,OAAOT,OAAO,CAAA;AAChB;;;;"}
1
+ {"version":3,"file":"babel-macros.js","sources":["../src/babel-macros.ts"],"sourcesContent":["import * as LOGGING from './debugging.ts';\nimport * as CURRENT_FEATURES from './canary-features.ts';\nimport * as CURRENT_DEPRECATIONS from './deprecations.ts';\n\ntype FEATURE = keyof typeof CURRENT_FEATURES;\nconst features = Object.keys(CURRENT_FEATURES) as FEATURE[];\nconst FEATURES = Object.assign({}, CURRENT_FEATURES) as Record<FEATURE, boolean>;\nfeatures.forEach((feature) => {\n let featureValue = FEATURES[feature];\n if (featureValue === null) {\n FEATURES[feature] = false;\n }\n});\n\nconst config = {\n features: FEATURES,\n deprecations: Object.assign({}, CURRENT_DEPRECATIONS),\n debug: Object.assign({}, LOGGING),\n};\n\ntype BabelPlugin = [string, Record<string, unknown>, string];\n\nexport function macros(): BabelPlugin[] {\n const TransformAsserts = import.meta.resolve('./babel-plugin-transform-asserts.cjs').slice(7);\n const TransformDeprecations = import.meta.resolve('./babel-plugin-transform-deprecations.cjs').slice(7);\n const TransformDebugLogging = import.meta.resolve('./babel-plugin-transform-logging.cjs').slice(7);\n const TransformFeatures = import.meta.resolve('./babel-plugin-transform-features.cjs').slice(7);\n\n let plugins = [\n [TransformAsserts, {}, '@warp-drive/build-config/asserts-stripping'],\n [\n TransformFeatures,\n {\n source: '@warp-drive/build-config/canary-features',\n flags: config.features,\n },\n '@warp-drive/build-config/canary-features-stripping',\n ],\n [\n TransformDeprecations,\n {\n source: '@warp-drive/build-config/deprecations',\n flags: config.deprecations,\n },\n '@warp-drive/build-config/deprecation-stripping',\n ],\n [\n TransformDebugLogging,\n {\n source: '@warp-drive/build-config/debugging',\n configKey: 'debug',\n runtimeKey: 'activeLogging',\n flags: config.debug,\n },\n '@warp-drive/build-config/debugging-stripping',\n ],\n [\n TransformDebugLogging,\n {\n source: '@warp-drive/build-config/env',\n configKey: 'env',\n flags: {\n TESTING: true,\n PRODUCTION: true,\n DEBUG: true,\n IS_RECORDING: true,\n IS_CI: true,\n SHOULD_RECORD: true,\n },\n },\n '@warp-drive/build-config/env',\n ],\n ] satisfies BabelPlugin[];\n\n return plugins;\n}\n"],"names":["features","Object","keys","CURRENT_FEATURES","FEATURES","assign","forEach","feature","featureValue","config","deprecations","CURRENT_DEPRECATIONS","debug","LOGGING","macros","TransformAsserts","import","meta","resolve","slice","TransformDeprecations","TransformDebugLogging","TransformFeatures","plugins","source","flags","configKey","runtimeKey","TESTING","PRODUCTION","DEBUG","IS_RECORDING","IS_CI","SHOULD_RECORD"],"mappings":";;;;AAKA,MAAMA,QAAQ,GAAGC,MAAM,CAACC,IAAI,CAACC,gBAAgB,CAAc;AAC3D,MAAMC,QAAQ,GAAGH,MAAM,CAACI,MAAM,CAAC,EAAE,EAAEF,gBAAgB,CAA6B;AAChFH,QAAQ,CAACM,OAAO,CAAEC,OAAO,IAAK;AAC5B,EAAA,IAAIC,YAAY,GAAGJ,QAAQ,CAACG,OAAO,CAAC;EACpC,IAAIC,YAAY,KAAK,IAAI,EAAE;AACzBJ,IAAAA,QAAQ,CAACG,OAAO,CAAC,GAAG,KAAK;AAC3B;AACF,CAAC,CAAC;AAEF,MAAME,MAAM,GAAG;AACbT,EAAAA,QAAQ,EAAEI,QAAQ;EAClBM,YAAY,EAAET,MAAM,CAACI,MAAM,CAAC,EAAE,EAAEM,oBAAoB,CAAC;EACrDC,KAAK,EAAEX,MAAM,CAACI,MAAM,CAAC,EAAE,EAAEQ,OAAO;AAClC,CAAC;AAIM,SAASC,MAAMA,GAAkB;AACtC,EAAA,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,IAAI,CAACC,OAAO,CAAC,sCAAsC,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC;AAC7F,EAAA,MAAMC,qBAAqB,GAAGJ,MAAM,CAACC,IAAI,CAACC,OAAO,CAAC,2CAA2C,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC;AACvG,EAAA,MAAME,qBAAqB,GAAGL,MAAM,CAACC,IAAI,CAACC,OAAO,CAAC,sCAAsC,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC;AAClG,EAAA,MAAMG,iBAAiB,GAAGN,MAAM,CAACC,IAAI,CAACC,OAAO,CAAC,uCAAuC,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC;AAE/F,EAAA,IAAII,OAAO,GAAG,CACZ,CAACR,gBAAgB,EAAE,EAAE,EAAE,4CAA4C,CAAC,EACpE,CACEO,iBAAiB,EACjB;AACEE,IAAAA,MAAM,EAAE,0CAA0C;IAClDC,KAAK,EAAEhB,MAAM,CAACT;AAChB,GAAC,EACD,oDAAoD,CACrD,EACD,CACEoB,qBAAqB,EACrB;AACEI,IAAAA,MAAM,EAAE,uCAAuC;IAC/CC,KAAK,EAAEhB,MAAM,CAACC;AAChB,GAAC,EACD,gDAAgD,CACjD,EACD,CACEW,qBAAqB,EACrB;AACEG,IAAAA,MAAM,EAAE,oCAAoC;AAC5CE,IAAAA,SAAS,EAAE,OAAO;AAClBC,IAAAA,UAAU,EAAE,eAAe;IAC3BF,KAAK,EAAEhB,MAAM,CAACG;AAChB,GAAC,EACD,8CAA8C,CAC/C,EACD,CACES,qBAAqB,EACrB;AACEG,IAAAA,MAAM,EAAE,8BAA8B;AACtCE,IAAAA,SAAS,EAAE,KAAK;AAChBD,IAAAA,KAAK,EAAE;AACLG,MAAAA,OAAO,EAAE,IAAI;AACbC,MAAAA,UAAU,EAAE,IAAI;AAChBC,MAAAA,KAAK,EAAE,IAAI;AACXC,MAAAA,YAAY,EAAE,IAAI;AAClBC,MAAAA,KAAK,EAAE,IAAI;AACXC,MAAAA,aAAa,EAAE;AACjB;GACD,EACD,8BAA8B,CAC/B,CACsB;AAEzB,EAAA,OAAOV,OAAO;AAChB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"babel-plugin-transform-asserts.cjs","sources":["../cjs-src/transforms/babel-plugin-transform-asserts.js"],"sourcesContent":["const { ImportUtil } = require('babel-import-util');\n\nconst Utils = new Set(['assert']);\n\n/*\n// Before\nimport { assert } from '@warp-drive/build-config/macros';\n\nassert('foo', true);\n\n// After\n(macroCondition(isDevelopingApp()) ? function assert(test) { if (!test) { throw new Error('foo'); } }(true) : {});\n*/\n\n// => _macros.getGlobalConfig().WarpDrive.env.DEBUG\nfunction buildMacroConstDEBUG(types, binding, state) {\n return types.memberExpression(\n types.memberExpression(\n types.memberExpression(\n types.callExpression(state.importer.import(binding, '@embroider/macros', 'getGlobalConfig'), []),\n types.identifier('WarpDrive')\n ),\n types.identifier('env')\n ),\n types.identifier('DEBUG')\n );\n}\n\n// => _macros.macroCondition(_macros.getGlobalConfig().WarpDrive.env.DEBUG)\nfunction buildMacroConditionDEBUG(types, binding, state) {\n return types.callExpression(state.importer.import(binding, '@embroider/macros', 'macroCondition'), [\n buildMacroConstDEBUG(types, binding, state),\n ]);\n}\n\n// (test) => { if (!test) { throw new Error(someMessage); } }(someCond)\nfunction buildAssert(types, originalCallExpression) {\n const desc = originalCallExpression.arguments[0];\n const test = originalCallExpression.arguments[1] ?? types.booleanLiteral(false);\n // prettier-ignore\n return types.callExpression(\n types.arrowFunctionExpression([types.identifier('test')], // (test) =>\n types.blockStatement([ // {\n types.ifStatement( // if\n types.unaryExpression('!', types.identifier('test')), // (!test)\n types.blockStatement([ // {\n types.throwStatement( // throw\n types.newExpression(types.identifier('Error'), [desc]) // new Error(desc)\n )]) // }\n )]) // }\n ),\n [test] // (someCond)\n );\n}\n\n// => ( <debug-macro> ? <assert-exp> : {});\nfunction buildAssertTernary(types, binding, state, originalCallExpression) {\n return types.expressionStatement(\n types.conditionalExpression(\n buildMacroConditionDEBUG(types, binding, state),\n buildAssert(types, originalCallExpression),\n types.objectExpression([])\n )\n );\n}\n\nexport default function (babel) {\n const { types: t } = babel;\n\n return {\n name: 'ast-transform', // not required\n visitor: {\n ImportDeclaration(path, state) {\n const importPath = path.node.source.value;\n\n if (importPath === '@warp-drive/build-config/macros') {\n const specifiers = path.get('specifiers');\n\n specifiers.forEach((specifier) => {\n const name = specifier.node.imported.name;\n if (!Utils.has(name)) {\n throw new Error(`Unexpected import '${name}' imported from '@warp-drive/build-config/macros'`);\n }\n\n const localBindingName = specifier.node.local.name;\n const binding = specifier.scope.getBinding(localBindingName);\n\n binding.referencePaths.forEach((p) => {\n const originalCallExpression = p.parentPath.node;\n\n if (!t.isCallExpression(originalCallExpression)) {\n throw new Error('Expected a call expression');\n }\n\n const assertTernary = buildAssertTernary(t, binding, state, originalCallExpression);\n p.parentPath.replaceWith(assertTernary);\n });\n specifier.scope.removeOwnBinding(localBindingName);\n specifier.remove();\n });\n\n if (path.get('specifiers').length === 0) {\n path.remove();\n }\n }\n },\n\n Program(path, state) {\n state.importer = new ImportUtil(t, path);\n },\n },\n };\n}\n"],"names":["ImportUtil","require","Utils","Set","buildMacroConstDEBUG","types","binding","state","memberExpression","callExpression","importer","import","identifier","buildMacroConditionDEBUG","buildAssert","originalCallExpression","desc","arguments","test","booleanLiteral","arrowFunctionExpression","blockStatement","ifStatement","unaryExpression","throwStatement","newExpression","buildAssertTernary","expressionStatement","conditionalExpression","objectExpression","babel","t","name","visitor","ImportDeclaration","path","importPath","node","source","value","specifiers","get","forEach","specifier","imported","has","Error","localBindingName","local","scope","getBinding","referencePaths","p","parentPath","isCallExpression","assertTernary","replaceWith","removeOwnBinding","remove","length","Program"],"mappings":"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"}
1
+ {"version":3,"file":"babel-plugin-transform-asserts.cjs","sources":["../cjs-src/transforms/babel-plugin-transform-asserts.js"],"sourcesContent":["const { ImportUtil } = require('babel-import-util');\n\nconst Utils = new Set(['assert']);\n\n/*\n// Before\nimport { assert } from '@warp-drive/build-config/macros';\n\nassert('foo', true);\n\n// After\n(macroCondition(isDevelopingApp()) ? function assert(test) { if (!test) { throw new Error('foo'); } }(true) : {});\n*/\n\n// => _macros.getGlobalConfig().WarpDrive.env.DEBUG\nfunction buildMacroConstDEBUG(types, binding, state) {\n return types.memberExpression(\n types.memberExpression(\n types.memberExpression(\n types.callExpression(state.importer.import(binding, '@embroider/macros', 'getGlobalConfig'), []),\n types.identifier('WarpDrive')\n ),\n types.identifier('env')\n ),\n types.identifier('DEBUG')\n );\n}\n\n// => _macros.macroCondition(_macros.getGlobalConfig().WarpDrive.env.DEBUG)\nfunction buildMacroConditionDEBUG(types, binding, state) {\n return types.callExpression(state.importer.import(binding, '@embroider/macros', 'macroCondition'), [\n buildMacroConstDEBUG(types, binding, state),\n ]);\n}\n\n// (test) => { if (!test) { throw new Error(someMessage); } }(someCond)\nfunction buildAssert(types, originalCallExpression) {\n const desc = originalCallExpression.arguments[0];\n const test = originalCallExpression.arguments[1] ?? types.booleanLiteral(false);\n // prettier-ignore\n return types.callExpression(\n types.arrowFunctionExpression([types.identifier('test')], // (test) =>\n types.blockStatement([ // {\n types.ifStatement( // if\n types.unaryExpression('!', types.identifier('test')), // (!test)\n types.blockStatement([ // {\n types.throwStatement( // throw\n types.newExpression(types.identifier('Error'), [desc]) // new Error(desc)\n )]) // }\n )]) // }\n ),\n [test] // (someCond)\n );\n}\n\n// => ( <debug-macro> ? <assert-exp> : {});\nfunction buildAssertTernary(types, binding, state, originalCallExpression) {\n return types.expressionStatement(\n types.conditionalExpression(\n buildMacroConditionDEBUG(types, binding, state),\n buildAssert(types, originalCallExpression),\n types.objectExpression([])\n )\n );\n}\n\nexport default function (babel) {\n const { types: t } = babel;\n\n return {\n name: 'ast-transform', // not required\n visitor: {\n ImportDeclaration(path, state) {\n const importPath = path.node.source.value;\n\n if (importPath === '@warp-drive/build-config/macros') {\n const specifiers = path.get('specifiers');\n\n specifiers.forEach((specifier) => {\n const name = specifier.node.imported.name;\n if (!Utils.has(name)) {\n throw new Error(`Unexpected import '${name}' imported from '@warp-drive/build-config/macros'`);\n }\n\n const localBindingName = specifier.node.local.name;\n const binding = specifier.scope.getBinding(localBindingName);\n\n binding.referencePaths.forEach((p) => {\n const originalCallExpression = p.parentPath.node;\n\n if (!t.isCallExpression(originalCallExpression)) {\n throw new Error('Expected a call expression');\n }\n\n const assertTernary = buildAssertTernary(t, binding, state, originalCallExpression);\n p.parentPath.replaceWith(assertTernary);\n });\n specifier.scope.removeOwnBinding(localBindingName);\n specifier.remove();\n });\n\n if (path.get('specifiers').length === 0) {\n path.remove();\n }\n }\n },\n\n Program(path, state) {\n state.importer = new ImportUtil(t, path);\n },\n },\n };\n}\n"],"names":["ImportUtil","require","Utils","Set","buildMacroConstDEBUG","types","binding","state","memberExpression","callExpression","importer","import","identifier","buildMacroConditionDEBUG","buildAssert","originalCallExpression","desc","arguments","test","booleanLiteral","arrowFunctionExpression","blockStatement","ifStatement","unaryExpression","throwStatement","newExpression","buildAssertTernary","expressionStatement","conditionalExpression","objectExpression","babel","t","name","visitor","ImportDeclaration","path","importPath","node","source","value","specifiers","get","forEach","specifier","imported","has","Error","localBindingName","local","scope","getBinding","referencePaths","p","parentPath","isCallExpression","assertTernary","replaceWith","removeOwnBinding","remove","length","Program"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"babel-plugin-transform-deprecations.cjs","sources":["../cjs-src/transforms/babel-plugin-transform-deprecations.js"],"sourcesContent":["import { ImportUtil } from 'babel-import-util';\n\nfunction parentIsUnary(node) {\n if (node.parent.type === 'UnaryExpression' && node.parent.operator === '!') {\n return true;\n }\n return false;\n}\n\nexport default function (babel) {\n const { types: t } = babel;\n\n return {\n name: 'deprecation-flags',\n visitor: {\n ImportDeclaration(path, state) {\n const importPath = path.node.source.value;\n\n if (importPath === state.opts.source) {\n const specifiers = path.get('specifiers');\n specifiers.forEach((specifier) => {\n let name = specifier.node.imported.name;\n if (!(name in state.opts.flags)) {\n throw new Error(`Unexpected flag ${name} imported from ${state.opts.source}`);\n }\n let localBindingName = specifier.node.local.name;\n let binding = specifier.scope.getBinding(localBindingName);\n binding.referencePaths.forEach((p, other) => {\n let negateStatement = false;\n let node = p;\n if (parentIsUnary(p)) {\n negateStatement = true;\n node = p.parentPath;\n }\n const comments =\n node.node.leadingComments ??\n (node.parent.type === 'ConditionalExpression' && node.parent.leadingComments) ??\n [];\n let shouldInlineConfigValue = false;\n if (comments?.length) {\n const lastComment = comments.at(-1);\n if (lastComment.value.trim() === 'inline-macro-config') {\n shouldInlineConfigValue = true;\n }\n }\n\n let getConfig = t.memberExpression(\n t.memberExpression(\n t.memberExpression(\n t.callExpression(state.importer.import(p, '@embroider/macros', 'getGlobalConfig'), []),\n t.identifier('WarpDrive')\n ),\n t.identifier('deprecations')\n ),\n t.identifier(name)\n );\n\n const configExp = negateStatement ? t.unaryExpression('!', getConfig) : getConfig;\n const replaceExp = shouldInlineConfigValue\n ? // if (DEPRECATE_FOO)\n // =>\n // if (getGlobalConfig('WarpDrive').deprecations.FOO)\n configExp\n : // if (DEPRECATE_FOO)\n // =>\n // if (macroCondition(getGlobalConfig('WarpDrive').deprecations.FOO))\n t.callExpression(state.importer.import(p, '@embroider/macros', 'macroCondition'), [configExp]);\n node.replaceWith(replaceExp);\n });\n specifier.scope.removeOwnBinding(localBindingName);\n specifier.remove();\n });\n if (path.get('specifiers').length === 0) {\n path.remove();\n }\n }\n },\n\n Program(path, state) {\n state.importer = new ImportUtil(t, path);\n },\n },\n };\n}\n"],"names":["parentIsUnary","node","parent","type","operator","babel","types","t","name","visitor","ImportDeclaration","path","state","importPath","source","value","opts","specifiers","get","forEach","specifier","imported","flags","Error","localBindingName","local","binding","scope","getBinding","referencePaths","p","other","negateStatement","parentPath","comments","leadingComments","shouldInlineConfigValue","length","lastComment","at","trim","getConfig","memberExpression","callExpression","importer","import","identifier","configExp","unaryExpression","replaceExp","replaceWith","removeOwnBinding","remove","Program","ImportUtil"],"mappings":"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"}
1
+ {"version":3,"file":"babel-plugin-transform-deprecations.cjs","sources":["../cjs-src/transforms/babel-plugin-transform-deprecations.js"],"sourcesContent":["import { ImportUtil } from 'babel-import-util';\n\nfunction parentIsUnary(node) {\n if (node.parent.type === 'UnaryExpression' && node.parent.operator === '!') {\n return true;\n }\n return false;\n}\n\nexport default function (babel) {\n const { types: t } = babel;\n\n return {\n name: 'deprecation-flags',\n visitor: {\n ImportDeclaration(path, state) {\n const importPath = path.node.source.value;\n\n if (importPath === state.opts.source) {\n const specifiers = path.get('specifiers');\n specifiers.forEach((specifier) => {\n let name = specifier.node.imported.name;\n if (!(name in state.opts.flags)) {\n throw new Error(`Unexpected flag ${name} imported from ${state.opts.source}`);\n }\n let localBindingName = specifier.node.local.name;\n let binding = specifier.scope.getBinding(localBindingName);\n binding.referencePaths.forEach((p, other) => {\n let negateStatement = false;\n let node = p;\n if (parentIsUnary(p)) {\n negateStatement = true;\n node = p.parentPath;\n }\n const comments =\n node.node.leadingComments ??\n (node.parent.type === 'ConditionalExpression' && node.parent.leadingComments) ??\n [];\n let shouldInlineConfigValue = false;\n if (comments?.length) {\n const lastComment = comments.at(-1);\n if (lastComment.value.trim() === 'inline-macro-config') {\n shouldInlineConfigValue = true;\n }\n }\n\n let getConfig = t.memberExpression(\n t.memberExpression(\n t.memberExpression(\n t.callExpression(state.importer.import(p, '@embroider/macros', 'getGlobalConfig'), []),\n t.identifier('WarpDrive')\n ),\n t.identifier('deprecations')\n ),\n t.identifier(name)\n );\n\n const configExp = negateStatement ? t.unaryExpression('!', getConfig) : getConfig;\n const replaceExp = shouldInlineConfigValue\n ? // if (DEPRECATE_FOO)\n // =>\n // if (getGlobalConfig('WarpDrive').deprecations.FOO)\n configExp\n : // if (DEPRECATE_FOO)\n // =>\n // if (macroCondition(getGlobalConfig('WarpDrive').deprecations.FOO))\n t.callExpression(state.importer.import(p, '@embroider/macros', 'macroCondition'), [configExp]);\n node.replaceWith(replaceExp);\n });\n specifier.scope.removeOwnBinding(localBindingName);\n specifier.remove();\n });\n if (path.get('specifiers').length === 0) {\n path.remove();\n }\n }\n },\n\n Program(path, state) {\n state.importer = new ImportUtil(t, path);\n },\n },\n };\n}\n"],"names":["parentIsUnary","node","parent","type","operator","babel","types","t","name","visitor","ImportDeclaration","path","state","importPath","source","value","opts","specifiers","get","forEach","specifier","imported","flags","Error","localBindingName","local","binding","scope","getBinding","referencePaths","p","other","negateStatement","parentPath","comments","leadingComments","shouldInlineConfigValue","length","lastComment","at","trim","getConfig","memberExpression","callExpression","importer","import","identifier","configExp","unaryExpression","replaceExp","replaceWith","removeOwnBinding","remove","Program","ImportUtil"],"mappings":";;;;AAEA,SAASA,aAAaA,CAACC,IAAI,EAAE;AAC3B,EAAA,IAAIA,IAAI,CAACC,MAAM,CAACC,IAAI,KAAK,iBAAiB,IAAIF,IAAI,CAACC,MAAM,CAACE,QAAQ,KAAK,GAAG,EAAE;AAC1E,IAAA,OAAO,IAAI;AACb;AACA,EAAA,OAAO,KAAK;AACd;AAEe,yCAAA,EAAUC,KAAK,EAAE;EAC9B,MAAM;AAAEC,IAAAA,KAAK,EAAEC;AAAE,GAAC,GAAGF,KAAK;EAE1B,OAAO;AACLG,IAAAA,IAAI,EAAE,mBAAmB;AACzBC,IAAAA,OAAO,EAAE;AACPC,MAAAA,iBAAiBA,CAACC,IAAI,EAAEC,KAAK,EAAE;QAC7B,MAAMC,UAAU,GAAGF,IAAI,CAACV,IAAI,CAACa,MAAM,CAACC,KAAK;AAEzC,QAAA,IAAIF,UAAU,KAAKD,KAAK,CAACI,IAAI,CAACF,MAAM,EAAE;AACpC,UAAA,MAAMG,UAAU,GAAGN,IAAI,CAACO,GAAG,CAAC,YAAY,CAAC;AACzCD,UAAAA,UAAU,CAACE,OAAO,CAAEC,SAAS,IAAK;YAChC,IAAIZ,IAAI,GAAGY,SAAS,CAACnB,IAAI,CAACoB,QAAQ,CAACb,IAAI;YACvC,IAAI,EAAEA,IAAI,IAAII,KAAK,CAACI,IAAI,CAACM,KAAK,CAAC,EAAE;AAC/B,cAAA,MAAM,IAAIC,KAAK,CAAC,CAAA,gBAAA,EAAmBf,IAAI,CAAA,eAAA,EAAkBI,KAAK,CAACI,IAAI,CAACF,MAAM,CAAA,CAAE,CAAC;AAC/E;YACA,IAAIU,gBAAgB,GAAGJ,SAAS,CAACnB,IAAI,CAACwB,KAAK,CAACjB,IAAI;YAChD,IAAIkB,OAAO,GAAGN,SAAS,CAACO,KAAK,CAACC,UAAU,CAACJ,gBAAgB,CAAC;YAC1DE,OAAO,CAACG,cAAc,CAACV,OAAO,CAAC,CAACW,CAAC,EAAEC,KAAK,KAAK;cAC3C,IAAIC,eAAe,GAAG,KAAK;cAC3B,IAAI/B,IAAI,GAAG6B,CAAC;AACZ,cAAA,IAAI9B,aAAa,CAAC8B,CAAC,CAAC,EAAE;AACpBE,gBAAAA,eAAe,GAAG,IAAI;gBACtB/B,IAAI,GAAG6B,CAAC,CAACG,UAAU;AACrB;cACA,MAAMC,QAAQ,GACZjC,IAAI,CAACA,IAAI,CAACkC,eAAe,KACxBlC,IAAI,CAACC,MAAM,CAACC,IAAI,KAAK,uBAAuB,IAAIF,IAAI,CAACC,MAAM,CAACiC,eAAe,CAAC,IAC7E,EAAE;cACJ,IAAIC,uBAAuB,GAAG,KAAK;cACnC,IAAIF,QAAQ,EAAEG,MAAM,EAAE;gBACpB,MAAMC,WAAW,GAAGJ,QAAQ,CAACK,EAAE,CAAC,EAAE,CAAC;gBACnC,IAAID,WAAW,CAACvB,KAAK,CAACyB,IAAI,EAAE,KAAK,qBAAqB,EAAE;AACtDJ,kBAAAA,uBAAuB,GAAG,IAAI;AAChC;AACF;cAEA,IAAIK,SAAS,GAAGlC,CAAC,CAACmC,gBAAgB,CAChCnC,CAAC,CAACmC,gBAAgB,CAChBnC,CAAC,CAACmC,gBAAgB,CAChBnC,CAAC,CAACoC,cAAc,CAAC/B,KAAK,CAACgC,QAAQ,CAACC,MAAM,CAACf,CAAC,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,EAAE,EAAE,CAAC,EACtFvB,CAAC,CAACuC,UAAU,CAAC,WAAW,CAC1B,CAAC,EACDvC,CAAC,CAACuC,UAAU,CAAC,cAAc,CAC7B,CAAC,EACDvC,CAAC,CAACuC,UAAU,CAACtC,IAAI,CACnB,CAAC;AAED,cAAA,MAAMuC,SAAS,GAAGf,eAAe,GAAGzB,CAAC,CAACyC,eAAe,CAAC,GAAG,EAAEP,SAAS,CAAC,GAAGA,SAAS;cACjF,MAAMQ,UAAU,GAAGb,uBAAuB;AACtC;AACA;AACA;cACAW,SAAS;AACT;AACA;AACA;AACAxC,cAAAA,CAAC,CAACoC,cAAc,CAAC/B,KAAK,CAACgC,QAAQ,CAACC,MAAM,CAACf,CAAC,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,EAAE,CAACiB,SAAS,CAAC,CAAC;AAClG9C,cAAAA,IAAI,CAACiD,WAAW,CAACD,UAAU,CAAC;AAC9B,aAAC,CAAC;AACF7B,YAAAA,SAAS,CAACO,KAAK,CAACwB,gBAAgB,CAAC3B,gBAAgB,CAAC;YAClDJ,SAAS,CAACgC,MAAM,EAAE;AACpB,WAAC,CAAC;UACF,IAAIzC,IAAI,CAACO,GAAG,CAAC,YAAY,CAAC,CAACmB,MAAM,KAAK,CAAC,EAAE;YACvC1B,IAAI,CAACyC,MAAM,EAAE;AACf;AACF;OACD;AAEDC,MAAAA,OAAOA,CAAC1C,IAAI,EAAEC,KAAK,EAAE;QACnBA,KAAK,CAACgC,QAAQ,GAAG,IAAIU,0BAAU,CAAC/C,CAAC,EAAEI,IAAI,CAAC;AAC1C;AACF;GACD;AACH;;;;"}
@@ -6,7 +6,7 @@ const fs = require('fs');
6
6
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
7
7
  const pkg = JSON.parse(fs.readFileSync(new URL("../package.json", (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('babel-plugin-transform-features.cjs', document.baseURI).href))), 'utf-8'));
8
8
  const version = pkg.version;
9
- const isCanary = version.includes('alpha');
9
+ version.includes('alpha');
10
10
  function parentIsUnary(node) {
11
11
  if (node.parent.type === 'UnaryExpression' && node.parent.operator === '!') {
12
12
  return true;
@@ -35,10 +35,6 @@ function babelPluginTransformFeatures (babel) {
35
35
  binding.referencePaths.forEach(p => {
36
36
  let negateStatement = false;
37
37
  let node = p;
38
- if (!isCanary) {
39
- p.replaceWith(t.boolean(state.opts.flags[name]));
40
- return;
41
- }
42
38
  if (parentIsUnary(p)) {
43
39
  negateStatement = true;
44
40
  node = p.parentPath;
@@ -1 +1 @@
1
- {"version":3,"file":"babel-plugin-transform-features.cjs","sources":["../cjs-src/transforms/babel-plugin-transform-features.js"],"sourcesContent":["import { ImportUtil } from 'babel-import-util';\nimport fs from 'fs';\n\nconst pkg = JSON.parse(fs.readFileSync(new URL('../package.json', import.meta.url), 'utf-8'));\nconst version = pkg.version;\n\nconst isCanary = version.includes('alpha');\n\nfunction parentIsUnary(node) {\n if (node.parent.type === 'UnaryExpression' && node.parent.operator === '!') {\n return true;\n }\n return false;\n}\n\nexport default function (babel) {\n const { types: t } = babel;\n\n return {\n name: 'ast-transform', // not required\n visitor: {\n ImportDeclaration(path, state) {\n const importPath = path.node.source.value;\n\n if (importPath === state.opts.source) {\n const specifiers = path.get('specifiers');\n specifiers.forEach((specifier) => {\n let name = specifier.node.imported.name;\n if (!(name in state.opts.flags)) {\n throw new Error(`Unexpected flag ${name} imported from ${state.opts.source}`);\n }\n let localBindingName = specifier.node.local.name;\n let binding = specifier.scope.getBinding(localBindingName);\n binding.referencePaths.forEach((p) => {\n let negateStatement = false;\n let node = p;\n if (!isCanary) {\n p.replaceWith(t.boolean(state.opts.flags[name]));\n return;\n }\n if (parentIsUnary(p)) {\n negateStatement = true;\n node = p.parentPath;\n }\n let getConfig = t.memberExpression(\n t.memberExpression(\n t.memberExpression(\n t.callExpression(state.importer.import(p, '@embroider/macros', 'getGlobalConfig'), []),\n t.identifier('WarpDrive')\n ),\n t.identifier('features')\n ),\n t.identifier(name)\n );\n node.replaceWith(\n // if (LOG_FOO)\n // =>\n // if (macroCondition(getGlobalConfig('WarpDrive').debug.LOG_FOO))\n t.callExpression(state.importer.import(p, '@embroider/macros', 'macroCondition'), [\n negateStatement ? t.unaryExpression('!', getConfig) : getConfig,\n ])\n );\n });\n specifier.scope.removeOwnBinding(localBindingName);\n specifier.remove();\n });\n if (path.get('specifiers').length === 0) {\n path.remove();\n }\n }\n },\n\n Program(path, state) {\n state.importer = new ImportUtil(t, path);\n },\n },\n };\n}\n"],"names":["pkg","JSON","parse","fs","readFileSync","version","isCanary","includes","parentIsUnary","node","parent","type","operator","babel","types","t","name","visitor","ImportDeclaration","path","state","importPath","source","value","opts","specifiers","get","forEach","specifier","imported","flags","Error","localBindingName","local","binding","scope","getBinding","referencePaths","p","negateStatement","replaceWith","boolean","parentPath","getConfig","memberExpression","callExpression","importer","import","identifier","unaryExpression","removeOwnBinding","remove","length","Program","ImportUtil"],"mappings":"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"}
1
+ {"version":3,"file":"babel-plugin-transform-features.cjs","sources":["../cjs-src/transforms/babel-plugin-transform-features.js"],"sourcesContent":["import { ImportUtil } from 'babel-import-util';\nimport fs from 'fs';\n\nconst pkg = JSON.parse(fs.readFileSync(new URL('../package.json', import.meta.url), 'utf-8'));\nconst version = pkg.version;\n\nconst isCanary = version.includes('alpha');\n\nfunction parentIsUnary(node) {\n if (node.parent.type === 'UnaryExpression' && node.parent.operator === '!') {\n return true;\n }\n return false;\n}\n\nexport default function (babel) {\n const { types: t } = babel;\n\n return {\n name: 'ast-transform', // not required\n visitor: {\n ImportDeclaration(path, state) {\n const importPath = path.node.source.value;\n\n if (importPath === state.opts.source) {\n const specifiers = path.get('specifiers');\n specifiers.forEach((specifier) => {\n let name = specifier.node.imported.name;\n if (!(name in state.opts.flags)) {\n throw new Error(`Unexpected flag ${name} imported from ${state.opts.source}`);\n }\n let localBindingName = specifier.node.local.name;\n let binding = specifier.scope.getBinding(localBindingName);\n binding.referencePaths.forEach((p) => {\n let negateStatement = false;\n let node = p;\n\n if (parentIsUnary(p)) {\n negateStatement = true;\n node = p.parentPath;\n }\n let getConfig = t.memberExpression(\n t.memberExpression(\n t.memberExpression(\n t.callExpression(state.importer.import(p, '@embroider/macros', 'getGlobalConfig'), []),\n t.identifier('WarpDrive')\n ),\n t.identifier('features')\n ),\n t.identifier(name)\n );\n node.replaceWith(\n // if (LOG_FOO)\n // =>\n // if (macroCondition(getGlobalConfig('WarpDrive').debug.LOG_FOO))\n t.callExpression(state.importer.import(p, '@embroider/macros', 'macroCondition'), [\n negateStatement ? t.unaryExpression('!', getConfig) : getConfig,\n ])\n );\n });\n specifier.scope.removeOwnBinding(localBindingName);\n specifier.remove();\n });\n if (path.get('specifiers').length === 0) {\n path.remove();\n }\n }\n },\n\n Program(path, state) {\n state.importer = new ImportUtil(t, path);\n },\n },\n };\n}\n"],"names":["pkg","JSON","parse","fs","readFileSync","version","includes","parentIsUnary","node","parent","type","operator","babel","types","t","name","visitor","ImportDeclaration","path","state","importPath","source","value","opts","specifiers","get","forEach","specifier","imported","flags","Error","localBindingName","local","binding","scope","getBinding","referencePaths","p","negateStatement","parentPath","getConfig","memberExpression","callExpression","importer","import","identifier","replaceWith","unaryExpression","removeOwnBinding","remove","length","Program","ImportUtil"],"mappings":"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"}
@@ -27,6 +27,8 @@ function babelPluginTransformLogging (babel) {
27
27
  }
28
28
  let localBindingName = specifier.node.local.name;
29
29
  let binding = specifier.scope.getBinding(localBindingName);
30
+ const enableRuntimeActivation = Boolean(state.opts.runtimeKey);
31
+ const strippableKey = enableRuntimeActivation ? state.opts.runtimeKey : state.opts.configKey;
30
32
  binding.referencePaths.forEach(p => {
31
33
  let negateStatement = false;
32
34
  let node = p;
@@ -34,12 +36,53 @@ function babelPluginTransformLogging (babel) {
34
36
  negateStatement = true;
35
37
  node = p.parentPath;
36
38
  }
37
- let getConfig = t.memberExpression(t.memberExpression(t.memberExpression(t.callExpression(state.importer.import(p, '@embroider/macros', 'getGlobalConfig'), []), t.identifier('WarpDrive')), t.identifier(state.opts.configKey)), t.identifier(name));
39
+ let getConfig = t.memberExpression(t.memberExpression(t.memberExpression(t.callExpression(state.importer.import(p, '@embroider/macros', 'getGlobalConfig'), []), t.identifier('WarpDrive')), t.identifier(strippableKey)), t.identifier(name));
38
40
  node.replaceWith(
39
- // if (LOG_FOO)
41
+ // if (LOG_FOO) {
42
+ // // ...
43
+ // }
40
44
  // =>
41
- // if (macroCondition(getGlobalConfig('WarpDrive').debug.LOG_FOO))
45
+ // if (macroCondition(getGlobalConfig('WarpDrive').debug.LOG_FOO)) {
46
+ // // ...
47
+ // }
42
48
  t.callExpression(state.importer.import(p, '@embroider/macros', 'macroCondition'), [negateStatement ? t.unaryExpression('!', getConfig) : getConfig]));
49
+ if (enableRuntimeActivation) {
50
+ // we do not yet support arbitrary runtime activation locations,
51
+ // the only supported locations are `if (LOG)` style statements, no
52
+ // ternaries or other more complex expressions
53
+ const parentIfStatement = node.parentPath.type === 'IfStatement' ? node.parentPath : null;
54
+ if (!parentIfStatement) {
55
+ throw new Error(`Runtime activation of logging flags is only supported in if statements, but found node '${node.parentPath.type}'`);
56
+ }
57
+
58
+ // if (LOG_FOO) {
59
+ // // ...
60
+ // }
61
+ // =>
62
+ // if (macroCondition(getGlobalConfig('WarpDrive').activeLogging.LOG_FOO)) {
63
+ // if (getGlobalConfig('WarpDrive').debug.LOG_FOO || globalThis.getWarpDriveRuntimeConfig().debug.LOG_FOO) {
64
+ // // ...
65
+ // }
66
+ // }
67
+ //
68
+ // the outer-if is generated by the node-replace above. The inner if is generated here.
69
+ const originalBody = parentIfStatement.node.consequent;
70
+
71
+ // getGlobalConfig('WarpDrive').debug.LOG_FOO
72
+ const getActualConfig = t.memberExpression(t.memberExpression(t.memberExpression(t.callExpression(state.importer.import(p, '@embroider/macros', 'getGlobalConfig'), []), t.identifier('WarpDrive')), t.identifier(state.opts.configKey)), t.identifier(name));
73
+
74
+ // globalThis.getWarpDriveRuntimeConfig().debug.LOG_FOO
75
+ const getRuntimeConfig = t.memberExpression(t.memberExpression(t.callExpression(t.memberExpression(t.identifier('globalThis'), t.identifier('getWarpDriveRuntimeConfig')), []), t.identifier(state.opts.configKey)), t.identifier(name));
76
+
77
+ // <getActualConfig> || <getRuntimeConfig>
78
+ const ifExp = t.logicalExpression('||', getActualConfig, getRuntimeConfig);
79
+
80
+ // if (<negateStatement>(<getActualConfig> || <getRuntimeConfig>)) <originalBody>
81
+ const innerIfStatement = t.ifStatement(negateStatement ? t.unaryExpression('!', ifExp) : ifExp, originalBody);
82
+
83
+ // replace the original body with the new if statement
84
+ parentIfStatement.node.consequent = t.blockStatement([innerIfStatement]);
85
+ }
43
86
  });
44
87
  specifier.scope.removeOwnBinding(localBindingName);
45
88
  specifier.remove();
@@ -1 +1 @@
1
- {"version":3,"file":"babel-plugin-transform-logging.cjs","sources":["../cjs-src/transforms/babel-plugin-transform-logging.js"],"sourcesContent":["import { ImportUtil } from 'babel-import-util';\n\nfunction parentIsUnary(node) {\n if (node.parent.type === 'UnaryExpression' && node.parent.operator === '!') {\n return true;\n }\n return false;\n}\n\nexport default function (babel) {\n const { types: t } = babel;\n\n return {\n name: 'ast-transform', // not required\n visitor: {\n ImportDeclaration(path, state) {\n const importPath = path.node.source.value;\n\n if (importPath === state.opts.source) {\n const specifiers = path.get('specifiers');\n specifiers.forEach((specifier) => {\n let name = specifier.node.imported.name;\n if (!(name in state.opts.flags)) {\n throw new Error(`Unexpected flag ${name} imported from ${state.opts.source}`);\n }\n let localBindingName = specifier.node.local.name;\n let binding = specifier.scope.getBinding(localBindingName);\n binding.referencePaths.forEach((p) => {\n let negateStatement = false;\n let node = p;\n if (parentIsUnary(p)) {\n negateStatement = true;\n node = p.parentPath;\n }\n let getConfig = t.memberExpression(\n t.memberExpression(\n t.memberExpression(\n t.callExpression(state.importer.import(p, '@embroider/macros', 'getGlobalConfig'), []),\n t.identifier('WarpDrive')\n ),\n t.identifier(state.opts.configKey)\n ),\n t.identifier(name)\n );\n node.replaceWith(\n // if (LOG_FOO)\n // =>\n // if (macroCondition(getGlobalConfig('WarpDrive').debug.LOG_FOO))\n t.callExpression(state.importer.import(p, '@embroider/macros', 'macroCondition'), [\n negateStatement ? t.unaryExpression('!', getConfig) : getConfig,\n ])\n );\n });\n specifier.scope.removeOwnBinding(localBindingName);\n specifier.remove();\n });\n if (path.get('specifiers').length === 0) {\n path.remove();\n }\n }\n },\n\n Program(path, state) {\n state.importer = new ImportUtil(t, path);\n },\n },\n };\n}\n"],"names":["parentIsUnary","node","parent","type","operator","babel","types","t","name","visitor","ImportDeclaration","path","state","importPath","source","value","opts","specifiers","get","forEach","specifier","imported","flags","Error","localBindingName","local","binding","scope","getBinding","referencePaths","p","negateStatement","parentPath","getConfig","memberExpression","callExpression","importer","import","identifier","configKey","replaceWith","unaryExpression","removeOwnBinding","remove","length","Program","ImportUtil"],"mappings":"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"}
1
+ {"version":3,"file":"babel-plugin-transform-logging.cjs","sources":["../cjs-src/transforms/babel-plugin-transform-logging.js"],"sourcesContent":["import { ImportUtil } from 'babel-import-util';\n\nfunction parentIsUnary(node) {\n if (node.parent.type === 'UnaryExpression' && node.parent.operator === '!') {\n return true;\n }\n return false;\n}\n\nexport default function (babel) {\n const { types: t } = babel;\n\n return {\n name: 'ast-transform', // not required\n visitor: {\n ImportDeclaration(path, state) {\n const importPath = path.node.source.value;\n\n if (importPath === state.opts.source) {\n const specifiers = path.get('specifiers');\n specifiers.forEach((specifier) => {\n let name = specifier.node.imported.name;\n if (!(name in state.opts.flags)) {\n throw new Error(`Unexpected flag ${name} imported from ${state.opts.source}`);\n }\n let localBindingName = specifier.node.local.name;\n let binding = specifier.scope.getBinding(localBindingName);\n const enableRuntimeActivation = Boolean(state.opts.runtimeKey);\n const strippableKey = enableRuntimeActivation ? state.opts.runtimeKey : state.opts.configKey;\n\n binding.referencePaths.forEach((p) => {\n let negateStatement = false;\n let node = p;\n if (parentIsUnary(p)) {\n negateStatement = true;\n node = p.parentPath;\n }\n let getConfig = t.memberExpression(\n t.memberExpression(\n t.memberExpression(\n t.callExpression(state.importer.import(p, '@embroider/macros', 'getGlobalConfig'), []),\n t.identifier('WarpDrive')\n ),\n t.identifier(strippableKey)\n ),\n t.identifier(name)\n );\n\n node.replaceWith(\n // if (LOG_FOO) {\n // // ...\n // }\n // =>\n // if (macroCondition(getGlobalConfig('WarpDrive').debug.LOG_FOO)) {\n // // ...\n // }\n t.callExpression(state.importer.import(p, '@embroider/macros', 'macroCondition'), [\n negateStatement ? t.unaryExpression('!', getConfig) : getConfig,\n ])\n );\n\n if (enableRuntimeActivation) {\n // we do not yet support arbitrary runtime activation locations,\n // the only supported locations are `if (LOG)` style statements, no\n // ternaries or other more complex expressions\n const parentIfStatement = node.parentPath.type === 'IfStatement' ? node.parentPath : null;\n if (!parentIfStatement) {\n throw new Error(\n `Runtime activation of logging flags is only supported in if statements, but found node '${node.parentPath.type}'`\n );\n }\n\n // if (LOG_FOO) {\n // // ...\n // }\n // =>\n // if (macroCondition(getGlobalConfig('WarpDrive').activeLogging.LOG_FOO)) {\n // if (getGlobalConfig('WarpDrive').debug.LOG_FOO || globalThis.getWarpDriveRuntimeConfig().debug.LOG_FOO) {\n // // ...\n // }\n // }\n //\n // the outer-if is generated by the node-replace above. The inner if is generated here.\n const originalBody = parentIfStatement.node.consequent;\n\n // getGlobalConfig('WarpDrive').debug.LOG_FOO\n const getActualConfig = t.memberExpression(\n t.memberExpression(\n t.memberExpression(\n t.callExpression(state.importer.import(p, '@embroider/macros', 'getGlobalConfig'), []),\n t.identifier('WarpDrive')\n ),\n t.identifier(state.opts.configKey)\n ),\n t.identifier(name)\n );\n\n // globalThis.getWarpDriveRuntimeConfig().debug.LOG_FOO\n const getRuntimeConfig = t.memberExpression(\n t.memberExpression(\n t.callExpression(\n t.memberExpression(t.identifier('globalThis'), t.identifier('getWarpDriveRuntimeConfig')),\n []\n ),\n t.identifier(state.opts.configKey)\n ),\n t.identifier(name)\n );\n\n // <getActualConfig> || <getRuntimeConfig>\n const ifExp = t.logicalExpression('||', getActualConfig, getRuntimeConfig);\n\n // if (<negateStatement>(<getActualConfig> || <getRuntimeConfig>)) <originalBody>\n const innerIfStatement = t.ifStatement(\n negateStatement ? t.unaryExpression('!', ifExp) : ifExp,\n originalBody\n );\n\n // replace the original body with the new if statement\n parentIfStatement.node.consequent = t.blockStatement([innerIfStatement]);\n } else {\n }\n });\n specifier.scope.removeOwnBinding(localBindingName);\n specifier.remove();\n });\n if (path.get('specifiers').length === 0) {\n path.remove();\n }\n }\n },\n\n Program(path, state) {\n state.importer = new ImportUtil(t, path);\n },\n },\n };\n}\n"],"names":["parentIsUnary","node","parent","type","operator","babel","types","t","name","visitor","ImportDeclaration","path","state","importPath","source","value","opts","specifiers","get","forEach","specifier","imported","flags","Error","localBindingName","local","binding","scope","getBinding","enableRuntimeActivation","Boolean","runtimeKey","strippableKey","configKey","referencePaths","p","negateStatement","parentPath","getConfig","memberExpression","callExpression","importer","import","identifier","replaceWith","unaryExpression","parentIfStatement","originalBody","consequent","getActualConfig","getRuntimeConfig","ifExp","logicalExpression","innerIfStatement","ifStatement","blockStatement","removeOwnBinding","remove","length","Program","ImportUtil"],"mappings":"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"}
@@ -1,4 +1,10 @@
1
1
  /**
2
+ *
3
+ * @module @warp-drive/build-config
4
+ */
5
+
6
+ /**
7
+ *
2
8
  * ## Canary Features
3
9
  *
4
10
  * EmberData allows users to test features that are implemented but not yet
@@ -31,24 +37,22 @@
31
37
  *
32
38
  * ```cli
33
39
  * # Activate a single flag
34
- * EMBER_DATA_FEATURE_OVERRIDE=SOME_FLAG ember build
40
+ * WARP_DRIVE_FEATURE_OVERRIDE=SOME_FLAG ember build
35
41
  *
36
42
  * # Activate multiple flags by separating with commas
37
- * EMBER_DATA_FEATURE_OVERRIDE=SOME_FLAG,OTHER_FLAG ember build
43
+ * WARP_DRIVE_FEATURE_OVERRIDE=SOME_FLAG,OTHER_FLAG ember build
38
44
  *
39
45
  * # Activate all flags
40
- * EMBER_DATA_FEATURE_OVERRIDE=ENABLE_ALL_OPTIONAL ember build
46
+ * WARP_DRIVE_FEATURE_OVERRIDE=ENABLE_ALL_OPTIONAL ember build
41
47
  * ```
42
48
  *
43
49
  * or by setting the appropriate flag in your `ember-cli-build` file:
44
50
  *
45
51
  * ```ts
46
- * let app = new EmberApp(defaults, {
47
- * emberData: {
48
- * features: {
49
- * SAMPLE_FEATURE_FLAG: false // utliize existing behavior, strip code for the new feature
50
- * OTHER_FEATURE_FLAG: true // utilize this new feature, strip code for the older behavior
51
- * }
52
+ * setConfig(app, __dirname, {
53
+ * features: {
54
+ * SAMPLE_FEATURE_FLAG: false // utliize existing behavior, strip code for the new feature
55
+ * OTHER_FEATURE_FLAG: true // utilize this new feature, strip code for the older behavior
52
56
  * }
53
57
  * })
54
58
  * ```
@@ -70,28 +74,39 @@
70
74
  * }
71
75
  * ```
72
76
  *
73
- @module @warp-drive/build-config/canary-features
74
- @main @warp-drive/build-config/canary-features
75
- */
76
- /**
77
- This is the current list of features used at build time for canary releases.
78
- If empty there are no features currently gated by feature flags.
79
-
80
- The valid values are:
81
-
82
- - `true` | The feature is **enabled** at all times, and cannot be disabled.
83
- - `false` | The feature is **disabled** at all times, and cannot be enabled.
84
- - `null` | The feature is **disabled by default**, but can be enabled via configuration.
85
-
86
- @class CanaryFeatureFlags
87
- @public
77
+ * The current list of features used at build time for canary releases is defined below.
78
+ * If empty there are no features currently gated by feature flags.
79
+ *
80
+ * The valid values are:
81
+ *
82
+ * - `true` | The feature is **enabled** at all times, and cannot be disabled.
83
+ * - `false` | The feature is **disabled** at all times, and cannot be enabled.
84
+ * - `null` | The feature is **disabled by default**, but can be enabled via configuration.
85
+ *
86
+ * @class CanaryFeatures
87
+ * @public
88
88
  */
89
89
  const SAMPLE_FEATURE_FLAG = null;
90
90
 
91
+ /**
92
+ * This upcoming feature adds a validation step to payloads received
93
+ * by the JSONAPICache implementation.
94
+ *
95
+ * When a request completes and the result is given to the cache via
96
+ * `cache.put`, the cache will validate the payload against registered
97
+ * schemas as well as the JSON:API spec.
98
+ *
99
+ * @property JSON_API_CACHE_VALIDATION_ERRORS
100
+ * @since 5.4
101
+ * @public
102
+ */
103
+ const JSON_API_CACHE_VALIDATION_ERRORS = false;
104
+
91
105
  const CURRENT_FEATURES = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
92
106
  __proto__: null,
107
+ JSON_API_CACHE_VALIDATION_ERRORS,
93
108
  SAMPLE_FEATURE_FLAG
94
109
  }, Symbol.toStringTag, { value: 'Module' }));
95
110
 
96
- export { CURRENT_FEATURES as C, SAMPLE_FEATURE_FLAG as S };
97
- //# sourceMappingURL=canary-features-BzGSGY5j.js.map
111
+ export { CURRENT_FEATURES as C, JSON_API_CACHE_VALIDATION_ERRORS as J, SAMPLE_FEATURE_FLAG as S };
112
+ //# sourceMappingURL=canary-features-CFdRGi2p.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canary-features-CFdRGi2p.js","sources":["../src/canary-features.ts"],"sourcesContent":["/**\n *\n * @module @warp-drive/build-config\n */\n\n/**\n *\n * ## Canary Features\n *\n * EmberData allows users to test features that are implemented but not yet\n * available even in canary.\n *\n * Typically these features represent work that might introduce a new concept,\n * new API, change an API, or risk an unintended change in behavior to consuming\n * applications.\n *\n * Such features have their implementations guarded by a \"feature flag\", and the\n * flag is only activated once the core-data team is prepared to ship the work\n * in a canary release.\n *\n * ### Installing Canary\n *\n * To test a feature you MUST be using a canary build. Canary builds are published\n * to `npm` and can be installed using a precise tag (such as `ember-data@3.16.0-alpha.1`)\n * or by installing the latest dist-tag published to the `canary` channel using your javascript\n * package manager of choice. For instance with [pnpm](https://pnpm.io/)\n\n ```cli\n pnpm add ember-data@canary\n ```\n *\n * ### Activating a Canary Feature\n *\n * Once you have installed canary, feature-flags can be activated at build-time\n *\n * by setting an environment variable:\n *\n * ```cli\n * # Activate a single flag\n * WARP_DRIVE_FEATURE_OVERRIDE=SOME_FLAG ember build\n *\n * # Activate multiple flags by separating with commas\n * WARP_DRIVE_FEATURE_OVERRIDE=SOME_FLAG,OTHER_FLAG ember build\n *\n * # Activate all flags\n * WARP_DRIVE_FEATURE_OVERRIDE=ENABLE_ALL_OPTIONAL ember build\n * ```\n *\n * or by setting the appropriate flag in your `ember-cli-build` file:\n *\n * ```ts\n * setConfig(app, __dirname, {\n * features: {\n * SAMPLE_FEATURE_FLAG: false // utliize existing behavior, strip code for the new feature\n * OTHER_FEATURE_FLAG: true // utilize this new feature, strip code for the older behavior\n * }\n * })\n * ```\n *\n * **The \"off\" branch of feature-flagged code is always stripped from production builds.**\n *\n * The list of available feature-flags is located [here](https://github.com/emberjs/data/tree/main/packages/build-config/src/virtual/canary-features.ts \"List of EmberData FeatureFlags\")\n *\n *\n * ### Preparing a Project to use a Canary Feature\n *\n * For most projects, simple version detection should be enough.\n * Using the provided version compatibility helpers from [embroider-macros](https://github.com/embroider-build/embroider/tree/main/packages/macros#readme)\n * the following can be done:\n *\n * ```js\n * if (macroCondition(dependencySatisfies('@ember-data/store', '5.0'))) {\n * // do thing\n * }\n * ```\n *\n * The current list of features used at build time for canary releases is defined below.\n * If empty there are no features currently gated by feature flags.\n *\n * The valid values are:\n *\n * - `true` | The feature is **enabled** at all times, and cannot be disabled.\n * - `false` | The feature is **disabled** at all times, and cannot be enabled.\n * - `null` | The feature is **disabled by default**, but can be enabled via configuration.\n *\n * @class CanaryFeatures\n * @public\n*/\nexport const SAMPLE_FEATURE_FLAG: boolean | null = null;\n\n/**\n * This upcoming feature adds a validation step to payloads received\n * by the JSONAPICache implementation.\n *\n * When a request completes and the result is given to the cache via\n * `cache.put`, the cache will validate the payload against registered\n * schemas as well as the JSON:API spec.\n *\n * @property JSON_API_CACHE_VALIDATION_ERRORS\n * @since 5.4\n * @public\n */\nexport const JSON_API_CACHE_VALIDATION_ERRORS: boolean | null = false;\n"],"names":["SAMPLE_FEATURE_FLAG","JSON_API_CACHE_VALIDATION_ERRORS"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,mBAAmC,GAAG;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,gCAAgD,GAAG;;;;;;;;;;"}
@@ -1,2 +1,2 @@
1
- export { S as SAMPLE_FEATURE_FLAG } from './canary-features-BzGSGY5j.js';
1
+ export { J as JSON_API_CACHE_VALIDATION_ERRORS, S as SAMPLE_FEATURE_FLAG } from './canary-features-CFdRGi2p.js';
2
2
  //# sourceMappingURL=canary-features.js.map