@warp-drive-mirror/build-config 5.5.0-alpha.23 → 5.5.0-alpha.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/babel-macros.js +2 -2
- package/dist/{canary-features-CFdRGi2p.js → canary-features-D1wplYmb.js} +2 -1
- package/dist/{canary-features-CFdRGi2p.js.map → canary-features-D1wplYmb.js.map} +1 -1
- package/dist/canary-features.js +1 -1
- package/dist/cjs-set-config.cjs +32 -9
- package/dist/cjs-set-config.cjs.map +1 -1
- package/dist/{debugging-Dc--S1MJ.js → debugging-DIxmg1HX.js} +20 -10
- package/dist/debugging-DIxmg1HX.js.map +1 -0
- package/dist/debugging.js +1 -1
- package/dist/index.js +14 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/unstable-preview-types/canary-features.d.ts +1 -0
- package/unstable-preview-types/canary-features.d.ts.map +1 -1
- package/unstable-preview-types/debugging.d.ts +19 -9
- package/unstable-preview-types/debugging.d.ts.map +1 -1
- package/unstable-preview-types/deprecation-versions.d.ts +12 -0
- package/unstable-preview-types/deprecation-versions.d.ts.map +1 -1
- package/dist/debugging-Dc--S1MJ.js.map +0 -1
package/dist/babel-macros.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { L as LOGGING } from './debugging-
|
|
2
|
-
import { C as CURRENT_FEATURES } from './canary-features-
|
|
1
|
+
import { L as LOGGING } from './debugging-DIxmg1HX.js';
|
|
2
|
+
import { C as CURRENT_FEATURES } from './canary-features-D1wplYmb.js';
|
|
3
3
|
import { C as CURRENT_DEPRECATIONS } from './deprecations-D_dBAPC9.js';
|
|
4
4
|
|
|
5
5
|
const features = Object.keys(CURRENT_FEATURES);
|
|
@@ -97,6 +97,7 @@ const SAMPLE_FEATURE_FLAG = null;
|
|
|
97
97
|
* schemas as well as the JSON:API spec.
|
|
98
98
|
*
|
|
99
99
|
* @property JSON_API_CACHE_VALIDATION_ERRORS
|
|
100
|
+
* @type {Boolean|null}
|
|
100
101
|
* @since 5.4
|
|
101
102
|
* @public
|
|
102
103
|
*/
|
|
@@ -109,4 +110,4 @@ const CURRENT_FEATURES = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.definePr
|
|
|
109
110
|
}, Symbol.toStringTag, { value: 'Module' }));
|
|
110
111
|
|
|
111
112
|
export { CURRENT_FEATURES as C, JSON_API_CACHE_VALIDATION_ERRORS as J, SAMPLE_FEATURE_FLAG as S };
|
|
112
|
-
//# sourceMappingURL=canary-features-
|
|
113
|
+
//# sourceMappingURL=canary-features-D1wplYmb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canary-features-
|
|
1
|
+
{"version":3,"file":"canary-features-D1wplYmb.js","sources":["../src/canary-features.ts"],"sourcesContent":["/**\n *\n * @module @warp-drive-mirror/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-mirror/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 * @type {Boolean|null}\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;AACA;AACO,MAAMC,gCAAgD,GAAG;;;;;;;;;;"}
|
package/dist/canary-features.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { J as JSON_API_CACHE_VALIDATION_ERRORS, S as SAMPLE_FEATURE_FLAG } from './canary-features-
|
|
1
|
+
export { J as JSON_API_CACHE_VALIDATION_ERRORS, S as SAMPLE_FEATURE_FLAG } from './canary-features-D1wplYmb.js';
|
|
2
2
|
//# sourceMappingURL=canary-features.js.map
|
package/dist/cjs-set-config.cjs
CHANGED
|
@@ -125,6 +125,7 @@ const DEPRECATE_CATCH_ALL = '99.0';
|
|
|
125
125
|
* e.g. `app/models/foo/bar-bem.js` must have a type of `foo/bar-bem`
|
|
126
126
|
*
|
|
127
127
|
* @property DEPRECATE_NON_STRICT_TYPES
|
|
128
|
+
* @type {Boolean}
|
|
128
129
|
* @since 5.3
|
|
129
130
|
* @until 6.0
|
|
130
131
|
* @public
|
|
@@ -149,6 +150,7 @@ const DEPRECATE_NON_STRICT_TYPES = '5.3';
|
|
|
149
150
|
* custom identifier configuration should provide a string ID.
|
|
150
151
|
*
|
|
151
152
|
* @property DEPRECATE_NON_STRICT_ID
|
|
153
|
+
* @type {Boolean}
|
|
152
154
|
* @since 5.3
|
|
153
155
|
* @until 6.0
|
|
154
156
|
* @public
|
|
@@ -173,6 +175,7 @@ const DEPRECATE_NON_STRICT_ID = '5.3';
|
|
|
173
175
|
* update this version number to the proper version.
|
|
174
176
|
*
|
|
175
177
|
* @property DEPRECATE_COMPUTED_CHAINS
|
|
178
|
+
* @type {Boolean}
|
|
176
179
|
* @since 5.0
|
|
177
180
|
* @until 8.0
|
|
178
181
|
* @public
|
|
@@ -192,6 +195,7 @@ const DEPRECATE_COMPUTED_CHAINS = '7.0';
|
|
|
192
195
|
* of defaults.
|
|
193
196
|
*
|
|
194
197
|
* @property DEPRECATE_LEGACY_IMPORTS
|
|
198
|
+
* @type {Boolean}
|
|
195
199
|
* @since 5.3
|
|
196
200
|
* @until 6.0
|
|
197
201
|
* @public
|
|
@@ -235,6 +239,7 @@ const DEPRECATE_LEGACY_IMPORTS = '5.3';
|
|
|
235
239
|
* duplicate data from relationship payloads.
|
|
236
240
|
*
|
|
237
241
|
* @property DEPRECATE_NON_UNIQUE_PAYLOADS
|
|
242
|
+
* @type {Boolean}
|
|
238
243
|
* @since 5.3
|
|
239
244
|
* @until 6.0
|
|
240
245
|
* @public
|
|
@@ -382,6 +387,7 @@ const DEPRECATE_NON_UNIQUE_PAYLOADS = '5.3';
|
|
|
382
387
|
* a custom Cache with the relationship behaviors you need.
|
|
383
388
|
*
|
|
384
389
|
* @property DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE
|
|
390
|
+
* @type {Boolean}
|
|
385
391
|
* @since 5.3
|
|
386
392
|
* @until 6.0
|
|
387
393
|
* @public
|
|
@@ -399,6 +405,7 @@ const DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE = '5.3';
|
|
|
399
405
|
* When the flag is `false`, an error will be thrown when duplicates are added.
|
|
400
406
|
*
|
|
401
407
|
* @property DEPRECATE_MANY_ARRAY_DUPLICATES
|
|
408
|
+
* @type {Boolean}
|
|
402
409
|
* @since 5.3
|
|
403
410
|
* @until 6.0
|
|
404
411
|
* @public
|
|
@@ -413,6 +420,7 @@ const DEPRECATE_MANY_ARRAY_DUPLICATES = '5.3';
|
|
|
413
420
|
* from EmberObject.
|
|
414
421
|
*
|
|
415
422
|
* @property DEPRECATE_STORE_EXTENDS_EMBER_OBJECT
|
|
423
|
+
* @type {Boolean}
|
|
416
424
|
* @since 5.4
|
|
417
425
|
* @until 6.0
|
|
418
426
|
* @public
|
|
@@ -437,6 +445,7 @@ const DEPRECATE_STORE_EXTENDS_EMBER_OBJECT = '5.4';
|
|
|
437
445
|
* - `SchemaService.relationshipsDefinitionFor` method is deprecated in favor of the `SchemaService.fields` method
|
|
438
446
|
*
|
|
439
447
|
* @property ENABLE_LEGACY_SCHEMA_SERVICE
|
|
448
|
+
* @type {Boolean}
|
|
440
449
|
* @since 5.4
|
|
441
450
|
* @until 6.0
|
|
442
451
|
* @public
|
|
@@ -470,6 +479,7 @@ const ENABLE_LEGACY_SCHEMA_SERVICE = '5.4';
|
|
|
470
479
|
* ```
|
|
471
480
|
*
|
|
472
481
|
* @property DEPRECATE_EMBER_INFLECTOR
|
|
482
|
+
* @type {Boolean}
|
|
473
483
|
* @since 5.3
|
|
474
484
|
* @until 6.0
|
|
475
485
|
* @public
|
|
@@ -487,6 +497,7 @@ const DEPRECATE_EMBER_INFLECTOR = '5.3';
|
|
|
487
497
|
* print and can be resolved.
|
|
488
498
|
*
|
|
489
499
|
* @property DISABLE_7X_DEPRECATIONS
|
|
500
|
+
* @type {Boolean}
|
|
490
501
|
* @since 5.3
|
|
491
502
|
* @until 7.0
|
|
492
503
|
* @public
|
|
@@ -526,6 +537,7 @@ const DISABLE_7X_DEPRECATIONS = '7.0';
|
|
|
526
537
|
* ```
|
|
527
538
|
*
|
|
528
539
|
* @property DEPRECATE_TRACKING_PACKAGE
|
|
540
|
+
* @type {Boolean}
|
|
529
541
|
* @since 5.5
|
|
530
542
|
* @until 6.0
|
|
531
543
|
* @public
|
|
@@ -690,6 +702,7 @@ const SAMPLE_FEATURE_FLAG = null;
|
|
|
690
702
|
* schemas as well as the JSON:API spec.
|
|
691
703
|
*
|
|
692
704
|
* @property JSON_API_CACHE_VALIDATION_ERRORS
|
|
705
|
+
* @type {Boolean|null}
|
|
693
706
|
* @since 5.4
|
|
694
707
|
* @public
|
|
695
708
|
*/
|
|
@@ -789,7 +802,8 @@ function getFeatures(isProd) {
|
|
|
789
802
|
* log cache updates for both local
|
|
790
803
|
* and remote state.
|
|
791
804
|
*
|
|
792
|
-
* @property
|
|
805
|
+
* @property LOG_CACHE
|
|
806
|
+
* @type {Boolean}
|
|
793
807
|
* @public
|
|
794
808
|
*/
|
|
795
809
|
const LOG_CACHE = false;
|
|
@@ -797,14 +811,16 @@ const LOG_CACHE = false;
|
|
|
797
811
|
/**
|
|
798
812
|
* log notifications received by the NotificationManager
|
|
799
813
|
*
|
|
800
|
-
* @property
|
|
814
|
+
* @property LOG_NOTIFICATIONS
|
|
815
|
+
* @type {Boolean}
|
|
801
816
|
* @public
|
|
802
817
|
*/
|
|
803
818
|
const LOG_NOTIFICATIONS = false;
|
|
804
819
|
/**
|
|
805
820
|
* log requests issued by the RequestManager
|
|
806
821
|
*
|
|
807
|
-
* @property
|
|
822
|
+
* @property LOG_REQUESTS
|
|
823
|
+
* @type {Boolean}
|
|
808
824
|
* @public
|
|
809
825
|
*/
|
|
810
826
|
const LOG_REQUESTS = false;
|
|
@@ -812,7 +828,8 @@ const LOG_REQUESTS = false;
|
|
|
812
828
|
* log updates to requests the store has issued to
|
|
813
829
|
* the network (adapter) to fulfill.
|
|
814
830
|
*
|
|
815
|
-
* @property
|
|
831
|
+
* @property LOG_REQUEST_STATUS
|
|
832
|
+
* @type {Boolean}
|
|
816
833
|
* @public
|
|
817
834
|
*/
|
|
818
835
|
const LOG_REQUEST_STATUS = false;
|
|
@@ -820,14 +837,17 @@ const LOG_REQUEST_STATUS = false;
|
|
|
820
837
|
* log peek, generation and updates to
|
|
821
838
|
* Record Identifiers.
|
|
822
839
|
*
|
|
823
|
-
* @property
|
|
840
|
+
* @property LOG_IDENTIFIERS
|
|
841
|
+
* @type {Boolean}
|
|
842
|
+
|
|
824
843
|
* @public
|
|
825
844
|
*/
|
|
826
845
|
const LOG_IDENTIFIERS = false;
|
|
827
846
|
/**
|
|
828
847
|
* log updates received by the graph (relationship pointer storage)
|
|
829
848
|
*
|
|
830
|
-
* @property
|
|
849
|
+
* @property LOG_GRAPH
|
|
850
|
+
* @type {Boolean}
|
|
831
851
|
* @public
|
|
832
852
|
*/
|
|
833
853
|
const LOG_GRAPH = false;
|
|
@@ -835,7 +855,8 @@ const LOG_GRAPH = false;
|
|
|
835
855
|
* log creation/removal of RecordData and Record
|
|
836
856
|
* instances.
|
|
837
857
|
*
|
|
838
|
-
* @property
|
|
858
|
+
* @property LOG_INSTANCE_CACHE
|
|
859
|
+
* @type {Boolean}
|
|
839
860
|
* @public
|
|
840
861
|
*/
|
|
841
862
|
const LOG_INSTANCE_CACHE = false;
|
|
@@ -843,7 +864,8 @@ const LOG_INSTANCE_CACHE = false;
|
|
|
843
864
|
* Log key count metrics, useful for performance
|
|
844
865
|
* debugging.
|
|
845
866
|
*
|
|
846
|
-
* @property
|
|
867
|
+
* @property LOG_METRIC_COUNTS
|
|
868
|
+
* @type {Boolean}
|
|
847
869
|
* @public
|
|
848
870
|
*/
|
|
849
871
|
const LOG_METRIC_COUNTS = false;
|
|
@@ -851,7 +873,8 @@ const LOG_METRIC_COUNTS = false;
|
|
|
851
873
|
* Helps when debugging causes of a change notification
|
|
852
874
|
* when processing an update to a hasMany relationship.
|
|
853
875
|
*
|
|
854
|
-
* @property
|
|
876
|
+
* @property DEBUG_RELATIONSHIP_NOTIFICATIONS
|
|
877
|
+
* @type {Boolean}
|
|
855
878
|
* @public
|
|
856
879
|
*/
|
|
857
880
|
const DEBUG_RELATIONSHIP_NOTIFICATIONS = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cjs-set-config.cjs","sources":["../src/-private/utils/get-env.ts","../src/deprecation-versions.ts","../src/-private/utils/deprecations.ts","../src/canary-features.ts","../src/-private/utils/features.ts","../src/debugging.ts","../src/-private/utils/logging.ts","../src/index.ts"],"sourcesContent":["export function getEnv(): {\n TESTING: boolean;\n PRODUCTION: boolean;\n DEBUG: boolean;\n IS_RECORDING: boolean;\n IS_CI: boolean;\n SHOULD_RECORD: boolean;\n} {\n const { EMBER_ENV, IS_TESTING, EMBER_CLI_TEST_COMMAND, NODE_ENV, CI, IS_RECORDING } = process.env;\n const PRODUCTION = EMBER_ENV === 'production' || (!EMBER_ENV && NODE_ENV === 'production');\n const DEBUG = !PRODUCTION;\n const TESTING = DEBUG || Boolean(EMBER_ENV === 'test' || IS_TESTING || EMBER_CLI_TEST_COMMAND);\n const SHOULD_RECORD = Boolean(!CI || IS_RECORDING);\n\n return {\n TESTING,\n PRODUCTION,\n DEBUG,\n IS_RECORDING: Boolean(IS_RECORDING),\n IS_CI: Boolean(CI),\n SHOULD_RECORD,\n };\n}\n","/**\n * @module @warp-drive-mirror/build-config\n */\n// ========================\n// FOR CONTRIBUTING AUTHORS\n//\n// Deprecations here should also have guides PR'd to the emberjs deprecation app\n//\n// github: https://github.com/ember-learn/deprecation-app\n// website: https://deprecations.emberjs.com\n//\n// Each deprecation should also be given an associated URL pointing to the\n// relevant guide.\n//\n// URLs should be of the form: https://deprecations.emberjs.com/v<major>.x#toc_<fileName>\n// where <major> is the major version of the deprecation and <fileName> is the\n// name of the markdown file in the guides repo.\n//\n// ========================\n//\n\n/**\n * ## Deprecation Management\n *\n * EmberData allows users to opt-in and remove code that exists to support deprecated\n * behaviors.\n *\n * If your app has resolved all deprecations present in a given version,\n * you may specify that version as your \"compatibility\" version to remove\n * the code that supported the deprecated behavior from your app.\n *\n * For instance, if a deprecation was introduced in 3.13, and the app specifies\n * 3.13 as its minimum version compatibility, any deprecations introduced before\n * or during 3.13 would be stripped away.\n *\n * An app can use a different version than what it specifies as it's compatibility\n * version. For instance, an App could be using `3.16` while specifying compatibility\n * with `3.12`. This would remove any deprecations that were present in or before `3.12`\n * but keep support for anything deprecated in or above `3.13`.\n *\n * You may also specify that specific deprecations are resolved. These approaches\n * may be used together.\n *\n * ```ts\n * setConfig(app, __dirname, {\n * // declare that all deprecations through \"5.0\" have been fully resolved\n * compatWith: '5.0',\n *\n * // mark individual deprecations as resolved by setting them to `false`\n * deprecations: {\n * // resolve individual deprecations here\n * },\n * });\n * ```\n *\n * > [!TIP]\n * > EmberData does not test against permutations of deprecations\n * > being stripped, our tests run against \"all deprecated code included\"\n * > and \"all deprecated code removed\". Unspecified behavior may sometimes occur\n * > when removing code for only some deprecations associated to a version number.\n *\n * @class CurrentDeprecations\n * @public\n */\nexport const DEPRECATE_CATCH_ALL = '99.0';\n/**\n * **id: ember-data:deprecate-non-strict-types**\n *\n * Currently, EmberData expects that the `type` property associated with\n * a resource follows several conventions.\n *\n * - The `type` property must be a non-empty string\n * - The `type` property must be singular\n * - The `type` property must be dasherized\n *\n * We are deprecating support for types that do not match this pattern\n * in order to unlock future improvements in which we can support `type`\n * being any string of your choosing.\n *\n * The goal is that in the future, you will be able to use any string\n * so long as it matches what your configured cache, identifier generation,\n * and schemas expect.\n *\n * E.G. It will matter not that your string is in a specific format like\n * singular, dasherized, etc. so long as everywhere you refer to the type\n * you use the same string.\n *\n * If using @ember-data-mirror/model, there will always be a restriction that the\n * `type` must match the path on disk where the model is defined.\n *\n * e.g. `app/models/foo/bar-bem.js` must have a type of `foo/bar-bem`\n *\n * @property DEPRECATE_NON_STRICT_TYPES\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_NON_STRICT_TYPES = '5.3';\n\n/**\n * **id: ember-data:deprecate-non-strict-id**\n *\n * Currently, EmberData expects that the `id` property associated with\n * a resource is a string.\n *\n * However, for legacy support in many locations we would accept a number\n * which would then immediately be coerced into a string.\n *\n * We are deprecating this legacy support for numeric IDs.\n *\n * The goal is that in the future, you will be able to use any ID format\n * so long as everywhere you refer to the ID you use the same format.\n *\n * However, for identifiers we will always use string IDs and so any\n * custom identifier configuration should provide a string ID.\n *\n * @property DEPRECATE_NON_STRICT_ID\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_NON_STRICT_ID = '5.3';\n\n/**\n * **id: <none yet assigned>**\n *\n * This is a planned deprecation which will trigger when observer or computed\n * chains are used to watch for changes on any EmberData LiveArray, CollectionRecordArray,\n * ManyArray or PromiseManyArray.\n *\n * Support for these chains is currently guarded by the deprecation flag\n * listed here, enabling removal of the behavior if desired.\n *\n * The instrumentation was added in 5.0 but the version number\n * is set to 7.0 as we do not want to strip support without\n * adding a deprecation message.\n *\n * Once we've added the deprecation message, we will\n * update this version number to the proper version.\n *\n * @property DEPRECATE_COMPUTED_CHAINS\n * @since 5.0\n * @until 8.0\n * @public\n */\nexport const DEPRECATE_COMPUTED_CHAINS = '7.0';\n\n/**\n * **id: ember-data:deprecate-legacy-imports**\n *\n * Deprecates when importing from `ember-data/*` instead of `@ember-data/*`\n * in order to prepare for the eventual removal of the legacy `ember-data/*`\n *\n * All imports from `ember-data/*` should be updated to `@ember-data/*`\n * except for `ember-data/store`. When you are using `ember-data` (as opposed to\n * installing the indivudal packages) you should import from `ember-data/store`\n * instead of `@ember-data-mirror/store` in order to receive the appropriate configuration\n * of defaults.\n *\n * @property DEPRECATE_LEGACY_IMPORTS\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_LEGACY_IMPORTS = '5.3';\n\n/**\n * **id: ember-data:deprecate-non-unique-collection-payloads**\n *\n * Deprecates when the data for a hasMany relationship contains\n * duplicate identifiers.\n *\n * Previously, relationships would silently de-dupe the data\n * when received, but this behavior is being removed in favor\n * of erroring if the same related record is included multiple\n * times.\n *\n * For instance, in JSON:API the below relationship data would\n * be considered invalid:\n *\n * ```json\n * {\n * \"data\": {\n * \"type\": \"article\",\n * \"id\": \"1\",\n * \"relationships\": {\n * \"comments\": {\n * \"data\": [\n * { \"type\": \"comment\", \"id\": \"1\" },\n * { \"type\": \"comment\", \"id\": \"2\" },\n * { \"type\": \"comment\", \"id\": \"1\" } // duplicate\n * ]\n * }\n * }\n * }\n * ```\n *\n * To resolve this deprecation, either update your server to\n * not include duplicate data, or implement normalization logic\n * in either a request handler or serializer which removes\n * duplicate data from relationship payloads.\n *\n * @property DEPRECATE_NON_UNIQUE_PAYLOADS\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_NON_UNIQUE_PAYLOADS = '5.3';\n\n/**\n * **id: ember-data:deprecate-relationship-remote-update-clearing-local-state**\n *\n * Deprecates when a relationship is updated remotely and the local state\n * is cleared of all changes except for \"new\" records.\n *\n * Instead, any records not present in the new payload will be considered\n * \"removed\" while any records present in the new payload will be considered \"added\".\n *\n * This allows us to \"commit\" local additions and removals, preserving any additions\n * or removals that are not yet reflected in the remote state.\n *\n * For instance, given the following initial state:\n *\n * remote: A, B, C\n * local: add D, E\n * remove B, C\n * => A, D, E\n *\n *\n * If after an update, the remote state is now A, B, D, F then the new state will be\n *\n * remote: A, B, D, F\n * local: add E\n * remove B\n * => A, D, E, F\n *\n * Under the old behavior the updated local state would instead have been\n * => A, B, D, F\n *\n * Similarly, if a belongsTo remote State was A while its local state was B,\n * then under the old behavior if the remote state changed to C, the local state\n * would be updated to C. Under the new behavior, the local state would remain B.\n *\n * If the remote state was A while its local state was `null`, then under the old\n * behavior if the remote state changed to C, the local state would be updated to C.\n * Under the new behavior, the local state would remain `null`.\n *\n * Thus the new correct mental model is that the state of the relationship at any point\n * in time is whatever the most recent remote state is, plus any local additions or removals\n * you have made that have not yet been reflected by the remote state.\n *\n * > Note: The old behavior extended to modifying the inverse of a relationship. So if\n * > you had local state not reflected in the new remote state, inverses would be notified\n * > and their state reverted as well when \"resetting\" the relationship.\n * > Under the new behavior, since the local state is preserved the inverses will also\n * > not be reverted.\n *\n * ### Resolving this deprecation\n *\n * Resolving this deprecation can be done individually for each relationship\n * or globally for all relationships.\n *\n * To resolve it globally, set the `DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE`\n * to `false` in ember-cli-build.js\n *\n * ```js\n * const { setConfig } = await import('@warp-drive-mirror/build-config');\n *\n * let app = new EmberApp(defaults, {});\n *\n * setConfig(app, __dirname, {\n * deprecations: {\n * // set to false to strip the deprecated code (thereby opting into the new behavior)\n * DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE: false\n * }\n * });\n * ```\n *\n * To resolve this deprecation on an individual relationship, adjust the `options` passed to\n * the relationship. For relationships with inverses, both sides MUST be migrated to the new\n * behavior at the same time.\n *\n * ```js\n * class Person extends Model {\n * @hasMany('person', {\n * async: false,\n * inverse: null,\n * resetOnRemoteUpdate: false\n * }) children;\n *\n * @belongsTo('person', {\n * async: false,\n * inverse: null,\n * resetOnRemoteUpdate: false\n * }) parent;\n * }\n * ```\n *\n * > Note: false is the only valid value here, all other values (including missing)\n * > will be treated as true, where `true` is the legacy behavior that is now deprecated.\n *\n * Once you have migrated all relationships, you can remove the the resetOnRemoteUpdate\n * option and set the deprecation flag to false in ember-cli-build.\n *\n * ### What if I don't want the new behavior?\n *\n * EmberData's philosophy is to not make assumptions about your application. Where possible\n * we seek out \"100%\" solutions – solutions that work for all use cases - and where that is\n * not possible we default to \"90%\" solutions – solutions that work for the vast majority of use\n * cases. In the case of \"90%\" solutions we look for primitives that allow you to resolve the\n * 10% case in your application. If no such primitives exist, we provide an escape hatch that\n * ensures you can build the behavior you need without adopting the cost of the default solution.\n *\n * In this case, the old behavior was a \"40%\" solution. The inability for an application developer\n * to determine what changes were made locally, and thus what changes should be preserved, made\n * it impossible to build certain features easily, or in some cases at all. The proliferation of\n * feature requests, bug reports (from folks surprised by the prior behavior) and addon attempts\n * in this space are all evidence of this.\n *\n * We believe the new behavior is a \"90%\" solution. It works for the vast majority of use cases,\n * often without noticeable changes to existing application behavior, and provides primitives that\n * allow you to build the behavior you need for the remaining 10%.\n *\n * The great news is that this behavior defaults to trusting your API similar to the old behavior.\n * If your API is correct, you will not need to make any changes to your application to adopt\n * the new behavior.\n *\n * This means the 10% cases are those where you can't trust your API to provide the correct\n * information. In these cases, because you now have cheap access to a diff of the relationship\n * state, there are a few options that weren't available before:\n *\n * - you can adjust returned API payloads to contain the expected changes that it doesn't include\n * - you can modify local state by adding or removing records on the HasMany record array to remove\n * any local changes that were not returned by the API.\n * - you can use `<Cache>.mutate(mutation)` to directly modify the local cache state of the relationship\n * to match the expected state.\n *\n * What this version (5.3) does not yet provide is a way to directly modify the cache's remote state\n * for the relationship via public APIs other than via the broader action of upserting a response via\n * `<Cache>.put(document)`. However, such an API was sketched in the Cache 2.1 RFC\n * `<Cache>.patch(operation)` and is likely to be added in a future 5.x release of EmberData.\n *\n * This version (5.3) also does not yet provide a way to directly modify the graph (a general purpose\n * subset of cache behaviors specific to relationships) via public APIs. However, during the\n * 5.x release series we will be working on finalizing the Graph API and making it public.\n *\n * If none of these options work for you, you can always opt-out more broadly by implementing\n * a custom Cache with the relationship behaviors you need.\n *\n * @property DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE = '5.3';\n\n/**\n * **id: ember-data:deprecate-many-array-duplicates**\n *\n * When the flag is `true` (default), adding duplicate records to a `ManyArray`\n * is deprecated in non-production environments. In production environments,\n * duplicate records added to a `ManyArray` will be deduped and no error will\n * be thrown.\n *\n * When the flag is `false`, an error will be thrown when duplicates are added.\n *\n * @property DEPRECATE_MANY_ARRAY_DUPLICATES\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_MANY_ARRAY_DUPLICATES = '5.3';\n\n/**\n * **id: ember-data:deprecate-store-extends-ember-object**\n *\n * When the flag is `true` (default), the Store class will extend from `@ember/object`.\n * When the flag is `false` or `ember-source` is not present, the Store will not extend\n * from EmberObject.\n *\n * @property DEPRECATE_STORE_EXTENDS_EMBER_OBJECT\n * @since 5.4\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_STORE_EXTENDS_EMBER_OBJECT = '5.4';\n\n/**\n * **id: ember-data:schema-service-updates**\n *\n * When the flag is `true` (default), the legacy schema\n * service features will be enabled on the store and\n * the service, and deprecations will be thrown when\n * they are used.\n *\n * Deprecated features include:\n *\n * - `Store.registerSchema` method is deprecated in favor of the `Store.createSchemaService` hook\n * - `Store.registerSchemaDefinitionService` method is deprecated in favor of the `Store.createSchemaService` hook\n * - `Store.getSchemaDefinitionService` method is deprecated in favor of `Store.schema` property\n * - `SchemaService.doesTypeExist` method is deprecated in favor of the `SchemaService.hasResource` method\n * - `SchemaService.attributesDefinitionFor` method is deprecated in favor of the `SchemaService.fields` method\n * - `SchemaService.relationshipsDefinitionFor` method is deprecated in favor of the `SchemaService.fields` method\n *\n * @property ENABLE_LEGACY_SCHEMA_SERVICE\n * @since 5.4\n * @until 6.0\n * @public\n */\nexport const ENABLE_LEGACY_SCHEMA_SERVICE = '5.4';\n\n/**\n * **id: warp-drive.ember-inflector**\n *\n * Deprecates the use of ember-inflector for pluralization and singularization in favor\n * of the `@ember-data-mirror/request-utils` package.\n *\n * Rule configuration methods (singular, plural, uncountable, irregular) and\n * usage methods (singularize, pluralize) are are available as imports from\n * `@ember-data-mirror/request-utils/string`\n *\n * Notable differences with ember-inflector:\n * - there cannot be multiple inflector instances with separate rules\n * - pluralization does not support a count argument\n * - string caches now default to 10k entries instead of 1k, and this\n * size is now configurable. Additionally, the cache is now a LRU cache\n * instead of a first-N cache.\n *\n * This deprecation can be resolved by removing usage of ember-inflector or by using\n * both ember-inflector and @ember-data-mirror/request-utils in parallel and updating your\n * EmberData/WarpDrive build config to mark the deprecation as resolved\n * in ember-cli-build\n *\n * ```js\n * setConfig(app, __dirname, { deprecations: { DEPRECATE_EMBER_INFLECTOR: false }});\n * ```\n *\n * @property DEPRECATE_EMBER_INFLECTOR\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_EMBER_INFLECTOR = '5.3';\n\n/**\n * This is a special flag that can be used to opt-in early to receiving deprecations introduced in 6.x\n * which have had their infra backported to 5.x versions of EmberData.\n *\n * When this flag is not present or set to `true`, the deprecations from the 6.x branch\n * will not print their messages and the deprecation cannot be resolved.\n *\n * When this flag is present and set to `false`, the deprecations from the 6.x branch will\n * print and can be resolved.\n *\n * @property DISABLE_7X_DEPRECATIONS\n * @since 5.3\n * @until 7.0\n * @public\n */\nexport const DISABLE_7X_DEPRECATIONS = '7.0';\n\n/**\n * **id: warp-drive:deprecate-tracking-package**\n *\n * Deprecates the use of the @ember-data-mirror/tracking package which\n * historically provided bindings into Ember's reactivity system.\n *\n * This package is no longer needed as the configuration is now\n * provided by the @warp-drive-mirror/ember package.\n *\n * This deprecation can be resolved by removing the\n * @ember-data-mirror/tracking package from your project and ensuring\n * that your app.js file has the following import:\n *\n * ```js\n * import '@warp-drive-mirror/ember/install';\n * ```\n *\n * Once this import is present, you can remove the deprecation\n * by setting the deprecation to `false` in your build config:\n *\n * ```js\n * // inside of ember-cli-build.js\n *\n * const { setConfig } = await import('@warp-drive-mirror/build-config');\n *\n * setConfig(app, __dirname, {\n * deprecations: {\n * DEPRECATE_TRACKING_PACKAGE: false\n * }\n * });\n * ```\n *\n * @property DEPRECATE_TRACKING_PACKAGE\n * @since 5.5\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_TRACKING_PACKAGE = '5.5';\n","import semver from 'semver';\n\nimport * as CURRENT_DEPRECATIONS from '../../deprecation-versions.ts';\ntype MajorMinor = `${number}.${number}`;\ntype DeprecationFlag = keyof typeof CURRENT_DEPRECATIONS;\n\nfunction deprecationIsResolved(deprecatedSince: MajorMinor, compatVersion: MajorMinor) {\n return semver.lte(semver.minVersion(deprecatedSince)!, semver.minVersion(compatVersion)!);\n}\n\nconst NextMajorVersion = '6.';\n\nfunction deprecationIsNextMajorCycle(deprecatedSince: MajorMinor) {\n return deprecatedSince.startsWith(NextMajorVersion);\n}\n\nexport function getDeprecations(\n compatVersion: MajorMinor | null | undefined,\n deprecations?: { [key in DeprecationFlag]?: boolean }\n): { [key in DeprecationFlag]: boolean } {\n const flags = {} as Record<DeprecationFlag, boolean>;\n const keys = Object.keys(CURRENT_DEPRECATIONS) as DeprecationFlag[];\n const DISABLE_7X_DEPRECATIONS = deprecations?.DISABLE_7X_DEPRECATIONS ?? true;\n\n keys.forEach((flag) => {\n const deprecatedSince = CURRENT_DEPRECATIONS[flag];\n const isDeactivatedDeprecationNotice = DISABLE_7X_DEPRECATIONS && deprecationIsNextMajorCycle(deprecatedSince);\n let flagState = true; // default to no code-stripping\n\n if (!isDeactivatedDeprecationNotice) {\n // if we have a specific flag setting, use it\n if (typeof deprecations?.[flag] === 'boolean') {\n flagState = deprecations?.[flag]!;\n } else if (compatVersion) {\n // if we are told we are compatible with a version\n // we check if we can strip this flag\n const isResolved = deprecationIsResolved(deprecatedSince, compatVersion);\n // if we've resolved, we strip (by setting the flag to false)\n /*\n if (DEPRECATED_FEATURE) {\n // deprecated code path\n } else {\n // if needed a non-deprecated code path\n }\n */\n flagState = !isResolved;\n }\n }\n\n // console.log(`${flag}=${flagState} (${deprecatedSince} <= ${compatVersion})`);\n flags[flag] = flagState;\n });\n\n return flags;\n}\n","/**\n *\n * @module @warp-drive-mirror/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-mirror/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","import fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nimport * as CURRENT_FEATURES from '../../canary-features.ts';\ntype FEATURE = keyof typeof CURRENT_FEATURES;\n\nconst dirname = typeof __dirname !== 'undefined' ? __dirname : fileURLToPath(new URL('.', import.meta.url));\nconst relativePkgPath = path.join(dirname, '../package.json');\n\nconst version = JSON.parse(fs.readFileSync(relativePkgPath, 'utf-8')).version;\nconst isCanary = version.includes('alpha');\n\nexport function getFeatures(isProd: boolean): { [key in FEATURE]: boolean } {\n const features = Object.assign({}, CURRENT_FEATURES) as Record<FEATURE, boolean>;\n const keys = Object.keys(features) as FEATURE[];\n\n if (!isCanary) {\n // disable all features with a current value of `null`\n for (const feature of keys) {\n let featureValue = features[feature];\n\n if (featureValue === null) {\n features[feature] = false;\n }\n }\n return features;\n }\n\n const FEATURE_OVERRIDES = process.env.WARP_DRIVE_FEATURE_OVERRIDE;\n if (FEATURE_OVERRIDES === 'ENABLE_ALL_OPTIONAL') {\n // enable all features with a current value of `null`\n for (const feature of keys) {\n let featureValue = features[feature];\n\n if (featureValue === null) {\n features[feature] = true;\n }\n }\n } else if (FEATURE_OVERRIDES === 'DISABLE_ALL') {\n // disable all features, including those with a value of `true`\n for (const feature of keys) {\n features[feature] = false;\n }\n } else if (FEATURE_OVERRIDES) {\n // enable only the specific features listed in the environment\n // variable (comma separated)\n const forcedFeatures = FEATURE_OVERRIDES.split(',');\n for (let i = 0; i < forcedFeatures.length; i++) {\n let featureName = forcedFeatures[i];\n\n if (!keys.includes(featureName as FEATURE)) {\n throw new Error(`Unknown feature flag: ${featureName}`);\n }\n\n features[featureName as FEATURE] = true;\n }\n }\n\n if (isProd) {\n // disable all features with a current value of `null`\n for (const feature of keys) {\n let featureValue = features[feature];\n\n if (featureValue === null) {\n features[feature] = false;\n }\n }\n }\n\n return features;\n}\n","/**\n @module @warp-drive-mirror/build-config\n */\n/**\n * ## Debug Logging\n *\n * Many portions of the internals are helpfully instrumented with logging that can be activated\n * at build time. This instrumentation is always removed from production builds or any builds\n * that has not explicitly activated it. To activate it set the appropriate flag to `true`.\n *\n * ```ts\n * setConfig(__dirname, app, {\n * debug: {\n * LOG_CACHE: false, // data store received to update cache with\n * LOG_NOTIFICATIONS: false,\n * LOG_REQUESTS: false,\n * LOG_REQUEST_STATUS: false,\n * LOG_IDENTIFIERS: false,\n * LOG_GRAPH: false,\n * LOG_INSTANCE_CACHE: false,\n * LOG_METRIC_COUNTS: false,\n * DEBUG_RELATIONSHIP_NOTIFICATIONS: false,\n * }\n * });\n * ```\n *\n * @class DebugLogging\n * @public\n */\n/**\n * log cache updates for both local\n * and remote state.\n *\n * @property {boolean} LOG_CACHE\n * @public\n */\nexport const LOG_CACHE: boolean = false;\n\n/**\n * log notifications received by the NotificationManager\n *\n * @property {boolean} LOG_NOTIFICATIONS\n * @public\n */\nexport const LOG_NOTIFICATIONS: boolean = false;\n/**\n * log requests issued by the RequestManager\n *\n * @property {boolean} LOG_REQUESTS\n * @public\n */\nexport const LOG_REQUESTS: boolean = false;\n/**\n * log updates to requests the store has issued to\n * the network (adapter) to fulfill.\n *\n * @property {boolean} LOG_REQUEST_STATUS\n * @public\n */\nexport const LOG_REQUEST_STATUS: boolean = false;\n/**\n * log peek, generation and updates to\n * Record Identifiers.\n *\n * @property {boolean} LOG_IDENTIFIERS\n * @public\n */\nexport const LOG_IDENTIFIERS: boolean = false;\n/**\n * log updates received by the graph (relationship pointer storage)\n *\n * @property {boolean} LOG_GRAPH\n * @public\n */\nexport const LOG_GRAPH: boolean = false;\n/**\n * log creation/removal of RecordData and Record\n * instances.\n *\n * @property {boolean} LOG_INSTANCE_CACHE\n * @public\n */\nexport const LOG_INSTANCE_CACHE: boolean = false;\n/**\n * Log key count metrics, useful for performance\n * debugging.\n *\n * @property {boolean} LOG_METRIC_COUNTS\n * @public\n */\nexport const LOG_METRIC_COUNTS: boolean = false;\n/**\n * Helps when debugging causes of a change notification\n * when processing an update to a hasMany relationship.\n *\n * @property {boolean} DEBUG_RELATIONSHIP_NOTIFICATIONS\n * @public\n */\nexport const DEBUG_RELATIONSHIP_NOTIFICATIONS: boolean = false;\n\n/**\n * A private flag to enable logging of the native Map/Set\n * constructor and method calls.\n *\n * EXTREMELY MALPERFORMANT\n *\n * LOG_METRIC_COUNTS must also be enabled.\n *\n * @typedoc\n */\nexport const __INTERNAL_LOG_NATIVE_MAP_SET_COUNTS: boolean = false;\n","import * as LOGGING from '../../debugging.ts';\n\ntype LOG_CONFIG_KEY = keyof typeof LOGGING;\nexport type LOG_CONFIG = { [key in LOG_CONFIG_KEY]: boolean };\n\nexport function createLoggingConfig(\n env: { DEBUG: boolean; TESTING: boolean; PRODUCTION: boolean },\n debug: LOG_CONFIG\n): LOG_CONFIG {\n const config = {} as LOG_CONFIG;\n const keys = Object.keys(LOGGING) as LOG_CONFIG_KEY[];\n\n for (const key of keys) {\n if (env.DEBUG || env.TESTING) {\n config[key] = true;\n } else {\n config[key] = debug[key] || false;\n }\n }\n\n return config;\n}\n","/**\n * Settings configuration for deprecations, optional features, development/testing\n * support and debug logging is done using `setConfig` in `ember-cli-build`.\n *\n * ```ts\n * 'use strict';\n *\n * const EmberApp = require('ember-cli/lib/broccoli/ember-app');\n *\n * module.exports = async function (defaults) {\n * const { setConfig } = await import('@warp-drive-mirror/build-config');\n *\n * const app = new EmberApp(defaults, {});\n *\n * setConfig(app, __dirname, {\n * // settings here\n * });\n *\n * const { Webpack } = require('@embroider/webpack');\n * return require('@embroider/compat').compatBuild(app, Webpack, {});\n * };\n *\n * ```\n *\n * Available settings include:\n *\n * - [Debug Logging](../classes/DebugLogging)\n * - [Deprecated Code Removal](../classes/CurrentDeprecations)\n * - [Canary Feature Activation](../classes/CanaryFeatures)\n *\n * As well as:\n *\n * ### polyfillUUID\n *\n * If you are using the library in an environment that does not support `window.crypto.randomUUID`\n * you can enable a polyfill for it.\n *\n * ```ts\n * setConfig(app, __dirname, {\n * polyfillUUID: true\n * });\n * ```\n *\n * ### includeDataAdapterInProduction\n *\n * By default, the integration required to support the ember inspector browser extension\n * is included in production builds only when using the `ember-data` package. Otherwise\n * the default is to exclude it. This setting allows to explicitly enable/disable it in\n * production builds.\n *\n * ```ts\n * setConfig(app, __dirname, {\n * includeDataAdapterInProduction: true\n * });\n * ```\n *\n * @module @warp-drive-mirror/build-config\n * @main @warp-drive-mirror/build-config\n */\nimport EmbroiderMacros from '@embroider/macros/src/node.js';\nimport { getEnv } from './-private/utils/get-env.ts';\nimport { getDeprecations } from './-private/utils/deprecations.ts';\nimport { getFeatures } from './-private/utils/features.ts';\nimport * as LOGGING from './debugging.ts';\nimport type { MacrosConfig } from '@embroider/macros/src/node.js';\nimport { createLoggingConfig } from './-private/utils/logging.ts';\n\nconst _MacrosConfig = EmbroiderMacros.MacrosConfig as unknown as typeof MacrosConfig;\n\ntype LOG_CONFIG_KEY = keyof typeof LOGGING;\n\nexport type WarpDriveConfig = {\n debug?: Partial<InternalWarpDriveConfig['debug']>;\n polyfillUUID?: boolean;\n includeDataAdapterInProduction?: boolean;\n compatWith?: `${number}.${number}`;\n deprecations?: Partial<InternalWarpDriveConfig['deprecations']>;\n features?: Partial<InternalWarpDriveConfig['features']>;\n};\n\ntype InternalWarpDriveConfig = {\n debug: { [key in LOG_CONFIG_KEY]: boolean };\n polyfillUUID: boolean;\n includeDataAdapter: boolean;\n compatWith: `${number}.${number}` | null;\n deprecations: ReturnType<typeof getDeprecations>;\n features: ReturnType<typeof getFeatures>;\n activeLogging: { [key in LOG_CONFIG_KEY]: boolean };\n env: {\n TESTING: boolean;\n PRODUCTION: boolean;\n DEBUG: boolean;\n };\n};\n\ntype MacrosWithGlobalConfig = Omit<MacrosConfig, 'globalConfig'> & { globalConfig: Record<string, unknown> };\n\nfunction recastMacrosConfig(macros: object): MacrosWithGlobalConfig {\n if (!('globalConfig' in macros)) {\n throw new Error('Expected MacrosConfig to have a globalConfig property');\n }\n return macros as MacrosWithGlobalConfig;\n}\n\nexport function setConfig(macros: object, config: WarpDriveConfig): void;\nexport function setConfig(context: object, appRoot: string, config: WarpDriveConfig): void;\nexport function setConfig(context: object, appRootOrConfig: string | WarpDriveConfig, config?: WarpDriveConfig): void {\n const isEmberClassicUsage = arguments.length === 3;\n const macros = recastMacrosConfig(\n isEmberClassicUsage ? _MacrosConfig.for(context, appRootOrConfig as string) : context\n );\n\n const userConfig = isEmberClassicUsage ? config! : (appRootOrConfig as WarpDriveConfig);\n\n const isLegacySupport = (userConfig as unknown as { ___legacy_support?: boolean }).___legacy_support;\n const hasDeprecatedConfig = isLegacySupport && Object.keys(userConfig).length > 1;\n const hasInitiatedConfig = macros.globalConfig['WarpDriveMirror'];\n\n // setConfig called by user prior to legacy support called\n if (isLegacySupport && hasInitiatedConfig) {\n if (hasDeprecatedConfig) {\n throw new Error(\n 'You have provided a config object to setConfig, but are also using the legacy emberData options key in ember-cli-build. Please remove the emberData key from options.'\n );\n }\n return;\n }\n\n // legacy support called prior to user setConfig\n if (isLegacySupport && hasDeprecatedConfig) {\n // We don't want to print this just yet because we are going to re-arrange packages\n // and this would be come an import from @warp-drive/core. Better to not deprecate twice.\n // console.warn(\n // `You are using the legacy emberData key in your ember-cli-build.js file. This key is deprecated and will be removed in the next major version of EmberData/WarpDrive. Please use \\`import { setConfig } from '@warp-drive-mirror/build-config';\\` instead.`\n // );\n }\n\n // included hooks run during class initialization of the EmberApp instance\n // so our hook will run before the user has a chance to call setConfig\n // else we could print a useful message here\n // else if (isLegacySupport) {\n // console.warn(\n // `WarpDrive requires your ember-cli-build file to set a base configuration for the project.\\n\\nUsage:\\n\\t\\`import { setConfig } from '@warp-drive-mirror/build-config';\\n\\tsetConfig(app, __dirname, {});\\``\n // );\n // }\n\n const debugOptions: InternalWarpDriveConfig['debug'] = Object.assign({}, LOGGING, userConfig.debug);\n\n const env = getEnv();\n const DEPRECATIONS = getDeprecations(userConfig.compatWith || null, userConfig.deprecations);\n const FEATURES = getFeatures(env.PRODUCTION);\n\n const includeDataAdapterInProduction =\n typeof userConfig.includeDataAdapterInProduction === 'boolean' ? userConfig.includeDataAdapterInProduction : true;\n const includeDataAdapter = env.PRODUCTION ? includeDataAdapterInProduction : true;\n\n const finalizedConfig: InternalWarpDriveConfig = {\n debug: debugOptions,\n polyfillUUID: userConfig.polyfillUUID ?? false,\n includeDataAdapter,\n compatWith: userConfig.compatWith ?? null,\n deprecations: DEPRECATIONS,\n features: FEATURES,\n activeLogging: createLoggingConfig(env, debugOptions),\n env,\n };\n\n macros.setGlobalConfig(import.meta.filename, 'WarpDriveMirror', finalizedConfig);\n}\n"],"names":["getEnv","EMBER_ENV","IS_TESTING","EMBER_CLI_TEST_COMMAND","NODE_ENV","CI","IS_RECORDING","process","env","PRODUCTION","DEBUG","TESTING","Boolean","SHOULD_RECORD","IS_CI","DEPRECATE_CATCH_ALL","DEPRECATE_NON_STRICT_TYPES","DEPRECATE_NON_STRICT_ID","DEPRECATE_COMPUTED_CHAINS","DEPRECATE_LEGACY_IMPORTS","DEPRECATE_NON_UNIQUE_PAYLOADS","DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE","DEPRECATE_MANY_ARRAY_DUPLICATES","DEPRECATE_STORE_EXTENDS_EMBER_OBJECT","ENABLE_LEGACY_SCHEMA_SERVICE","DEPRECATE_EMBER_INFLECTOR","DISABLE_7X_DEPRECATIONS","DEPRECATE_TRACKING_PACKAGE","deprecationIsResolved","deprecatedSince","compatVersion","semver","lte","minVersion","NextMajorVersion","deprecationIsNextMajorCycle","startsWith","getDeprecations","deprecations","flags","keys","Object","CURRENT_DEPRECATIONS","forEach","flag","isDeactivatedDeprecationNotice","flagState","isResolved","SAMPLE_FEATURE_FLAG","JSON_API_CACHE_VALIDATION_ERRORS","dirname","__dirname","fileURLToPath","relativePkgPath","path","join","version","JSON","parse","fs","readFileSync","isCanary","includes","getFeatures","isProd","features","assign","CURRENT_FEATURES","feature","featureValue","FEATURE_OVERRIDES","WARP_DRIVE_FEATURE_OVERRIDE","forcedFeatures","split","i","length","featureName","Error","LOG_CACHE","LOG_NOTIFICATIONS","LOG_REQUESTS","LOG_REQUEST_STATUS","LOG_IDENTIFIERS","LOG_GRAPH","LOG_INSTANCE_CACHE","LOG_METRIC_COUNTS","DEBUG_RELATIONSHIP_NOTIFICATIONS","__INTERNAL_LOG_NATIVE_MAP_SET_COUNTS","createLoggingConfig","debug","config","LOGGING","key","_MacrosConfig","EmbroiderMacros","MacrosConfig","recastMacrosConfig","macros","setConfig","context","appRootOrConfig","isEmberClassicUsage","arguments","for","userConfig","isLegacySupport","___legacy_support","hasDeprecatedConfig","hasInitiatedConfig","globalConfig","debugOptions","DEPRECATIONS","compatWith","FEATURES","includeDataAdapterInProduction","includeDataAdapter","finalizedConfig","polyfillUUID","activeLogging","setGlobalConfig","import"],"mappings":";;;;;;;;;;;AAAO,SAASA,MAAMA,GAOpB;EACA,MAAM;IAAEC,SAAS;IAAEC,UAAU;IAAEC,sBAAsB;IAAEC,QAAQ;IAAEC,EAAE;AAAEC,IAAAA;GAAc,GAAGC,OAAO,CAACC,GAAG;EACjG,MAAMC,UAAU,GAAGR,SAAS,KAAK,YAAY,IAAK,CAACA,SAAS,IAAIG,QAAQ,KAAK,YAAa;EAC1F,MAAMM,KAAK,GAAG,CAACD,UAAU;AACzB,EAAA,MAAME,OAAO,GAAGD,KAAK,IAAIE,OAAO,CAACX,SAAS,KAAK,MAAM,IAAIC,UAAU,IAAIC,sBAAsB,CAAC;EAC9F,MAAMU,aAAa,GAAGD,OAAO,CAAC,CAACP,EAAE,IAAIC,YAAY,CAAC;EAElD,OAAO;IACLK,OAAO;IACPF,UAAU;IACVC,KAAK;AACLJ,IAAAA,YAAY,EAAEM,OAAO,CAACN,YAAY,CAAC;AACnCQ,IAAAA,KAAK,EAAEF,OAAO,CAACP,EAAE,CAAC;AAClBQ,IAAAA;GACD;AACH;;ACtBA;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;AACO,MAAME,mBAAmB,GAAG,MAAM;AACzC;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,MAAMC,0BAA0B,GAAG,KAAK;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,uBAAuB,GAAG,KAAK;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,yBAAyB,GAAG,KAAK;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,wBAAwB,GAAG,KAAK;;AAE7C;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,MAAMC,6BAA6B,GAAG,KAAK;;AAElD;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;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;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,MAAMC,yDAAyD,GAAG,KAAK;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,+BAA+B,GAAG,KAAK;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oCAAoC,GAAG,KAAK;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,4BAA4B,GAAG,KAAK;;AAEjD;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,MAAMC,yBAAyB,GAAG,KAAK;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,uBAAuB,GAAG,KAAK;;AAE5C;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,MAAMC,0BAA0B,GAAG,KAAK;;;;;;;;;;;;;;;;;;;AC5e/C,SAASC,qBAAqBA,CAACC,eAA2B,EAAEC,aAAyB,EAAE;AACrF,EAAA,OAAOC,MAAM,CAACC,GAAG,CAACD,MAAM,CAACE,UAAU,CAACJ,eAAe,CAAC,EAAGE,MAAM,CAACE,UAAU,CAACH,aAAa,CAAE,CAAC;AAC3F;AAEA,MAAMI,gBAAgB,GAAG,IAAI;AAE7B,SAASC,2BAA2BA,CAACN,eAA2B,EAAE;AAChE,EAAA,OAAOA,eAAe,CAACO,U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AACO,MAAMC,kBAA2B,GAAG,KAAK;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,eAAwB,GAAG,KAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,SAAkB,GAAG,KAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAA2B,GAAG,KAAK;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,iBAA0B,GAAG,KAAK;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,gCAAyC,GAAG,KAAK;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oCAA6C,GAAG,KAAK;;;;;;;;;;;;;;;;ACzG3D,SAASC,mBAAmBA,CACjChF,GAA8D,EAC9DiF,KAAiB,EACL;EACZ,MAAMC,MAAM,GAAG,EAAgB;AAC/B,EAAA,MAAMlD,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACmD,OAAO,CAAqB;AAErD,EAAA,KAAK,MAAMC,GAAG,IAAIpD,IAAI,EAAE;AACtB,IAAA,IAAIhC,GAAG,CAACE,KAAK,IAAIF,GAAG,CAACG,OAAO,EAAE;AAC5B+E,MAAAA,MAAM,CAACE,GAAG,CAAC,GAAG,IAAI;AACpB,KAAC,MAAM;MACLF,MAAM,CAACE,GAAG,CAAC,GAAGH,KAAK,CAACG,GAAG,CAAC,IAAI,KAAK;AACnC;AACF;AAEA,EAAA,OAAOF,MAAM;AACf;;ACrBA;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;AASA,MAAMG,aAAa,GAAGC,eAAe,CAACC,YAA8C;AA8BpF,SAASC,kBAAkBA,CAACC,MAAc,EAA0B;AAClE,EAAA,IAAI,EAAE,cAAc,IAAIA,MAAM,CAAC,EAAE;AAC/B,IAAA,MAAM,IAAIpB,KAAK,CAAC,uDAAuD,CAAC;AAC1E;AACA,EAAA,OAAOoB,MAAM;AACf;AAIO,SAASC,SAASA,CAACC,OAAe,EAAEC,eAAyC,EAAEV,MAAwB,EAAQ;AACpH,EAAA,MAAMW,mBAAmB,GAAGC,SAAS,CAAC3B,MAAM,KAAK,CAAC;AAClD,EAAA,MAAMsB,MAAM,GAAGD,kBAAkB,CAC/BK,mBAAmB,GAAGR,aAAa,CAACU,GAAG,CAACJ,OAAO,EAAEC,eAAyB,CAAC,GAAGD,OAChF,CAAC;AAED,EAAA,MAAMK,UAAU,GAAGH,mBAAmB,GAAGX,MAAM,GAAKU,eAAmC;AAEvF,EAAA,MAAMK,eAAe,GAAID,UAAU,CAAgDE,iBAAiB;AACpG,EAAA,MAAMC,mBAAmB,GAAGF,eAAe,IAAIhE,MAAM,CAACD,IAAI,CAACgE,UAAU,CAAC,CAAC7B,MAAM,GAAG,CAAC;AACjF,EAAA,MAAMiC,kBAAkB,GAAGX,MAAM,CAACY,YAAY,CAAC,WAAW,CAAC;;AAE3D;EACA,IAAIJ,eAAe,IAAIG,kBAAkB,EAAE;AACzC,IAAA,IAAID,mBAAmB,EAAE;AACvB,MAAA,MAAM,IAAI9B,KAAK,CACb,uKACF,CAAC;AACH;AACA,IAAA;AACF;;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAA,MAAMiC,YAA8C,GAAGrE,MAAM,CAACyB,MAAM,CAAC,EAAE,EAAEyB,OAAO,EAAEa,UAAU,CAACf,KAAK,CAAC;AAEnG,EAAA,MAAMjF,GAAG,GAAGR,MAAM,EAAE;AACpB,EAAA,MAAM+G,YAAY,GAAG1E,eAAe,CAACmE,UAAU,CAACQ,UAAU,IAAI,IAAI,EAAER,UAAU,CAAClE,YAAY,CAAC;AAC5F,EAAA,MAAM2E,QAAQ,GAAGlD,WAAW,CAACvD,GAAG,CAACC,UAAU,CAAC;AAE5C,EAAA,MAAMyG,8BAA8B,GAClC,OAAOV,UAAU,CAACU,8BAA8B,KAAK,SAAS,GAAGV,UAAU,CAACU,8BAA8B,GAAG,IAAI;EACnH,MAAMC,kBAAkB,GAAG3G,GAAG,CAACC,UAAU,GAAGyG,8BAA8B,GAAG,IAAI;AAEjF,EAAA,MAAME,eAAwC,GAAG;AAC/C3B,IAAAA,KAAK,EAAEqB,YAAY;AACnBO,IAAAA,YAAY,EAAEb,UAAU,CAACa,YAAY,IAAI,KAAK;IAC9CF,kBAAkB;AAClBH,IAAAA,UAAU,EAAER,UAAU,CAACQ,UAAU,IAAI,IAAI;AACzC1E,IAAAA,YAAY,EAAEyE,YAAY;AAC1B9C,IAAAA,QAAQ,EAAEgD,QAAQ;AAClBK,IAAAA,aAAa,EAAE9B,mBAAmB,CAAChF,GAAG,EAAEsG,YAAY,CAAC;AACrDtG,IAAAA;GACD;AAEDyF,EAAAA,MAAM,CAACsB,eAAe,CAACC,SAAoB,EAAE,WAAW,EAAEJ,eAAe,CAAC;AAC5E;;;;"}
|
|
1
|
+
{"version":3,"file":"cjs-set-config.cjs","sources":["../src/-private/utils/get-env.ts","../src/deprecation-versions.ts","../src/-private/utils/deprecations.ts","../src/canary-features.ts","../src/-private/utils/features.ts","../src/debugging.ts","../src/-private/utils/logging.ts","../src/index.ts"],"sourcesContent":["export function getEnv(): {\n TESTING: boolean;\n PRODUCTION: boolean;\n DEBUG: boolean;\n IS_RECORDING: boolean;\n IS_CI: boolean;\n SHOULD_RECORD: boolean;\n} {\n const { EMBER_ENV, IS_TESTING, EMBER_CLI_TEST_COMMAND, NODE_ENV, CI, IS_RECORDING } = process.env;\n const PRODUCTION = EMBER_ENV === 'production' || (!EMBER_ENV && NODE_ENV === 'production');\n const DEBUG = !PRODUCTION;\n const TESTING = DEBUG || Boolean(EMBER_ENV === 'test' || IS_TESTING || EMBER_CLI_TEST_COMMAND);\n const SHOULD_RECORD = Boolean(!CI || IS_RECORDING);\n\n return {\n TESTING,\n PRODUCTION,\n DEBUG,\n IS_RECORDING: Boolean(IS_RECORDING),\n IS_CI: Boolean(CI),\n SHOULD_RECORD,\n };\n}\n","/**\n * @module @warp-drive-mirror/build-config\n */\n// ========================\n// FOR CONTRIBUTING AUTHORS\n//\n// Deprecations here should also have guides PR'd to the emberjs deprecation app\n//\n// github: https://github.com/ember-learn/deprecation-app\n// website: https://deprecations.emberjs.com\n//\n// Each deprecation should also be given an associated URL pointing to the\n// relevant guide.\n//\n// URLs should be of the form: https://deprecations.emberjs.com/v<major>.x#toc_<fileName>\n// where <major> is the major version of the deprecation and <fileName> is the\n// name of the markdown file in the guides repo.\n//\n// ========================\n//\n\n/**\n * ## Deprecation Management\n *\n * EmberData allows users to opt-in and remove code that exists to support deprecated\n * behaviors.\n *\n * If your app has resolved all deprecations present in a given version,\n * you may specify that version as your \"compatibility\" version to remove\n * the code that supported the deprecated behavior from your app.\n *\n * For instance, if a deprecation was introduced in 3.13, and the app specifies\n * 3.13 as its minimum version compatibility, any deprecations introduced before\n * or during 3.13 would be stripped away.\n *\n * An app can use a different version than what it specifies as it's compatibility\n * version. For instance, an App could be using `3.16` while specifying compatibility\n * with `3.12`. This would remove any deprecations that were present in or before `3.12`\n * but keep support for anything deprecated in or above `3.13`.\n *\n * You may also specify that specific deprecations are resolved. These approaches\n * may be used together.\n *\n * ```ts\n * setConfig(app, __dirname, {\n * // declare that all deprecations through \"5.0\" have been fully resolved\n * compatWith: '5.0',\n *\n * // mark individual deprecations as resolved by setting them to `false`\n * deprecations: {\n * // resolve individual deprecations here\n * },\n * });\n * ```\n *\n * > [!TIP]\n * > EmberData does not test against permutations of deprecations\n * > being stripped, our tests run against \"all deprecated code included\"\n * > and \"all deprecated code removed\". Unspecified behavior may sometimes occur\n * > when removing code for only some deprecations associated to a version number.\n *\n * @class CurrentDeprecations\n * @public\n */\nexport const DEPRECATE_CATCH_ALL = '99.0';\n/**\n * **id: ember-data:deprecate-non-strict-types**\n *\n * Currently, EmberData expects that the `type` property associated with\n * a resource follows several conventions.\n *\n * - The `type` property must be a non-empty string\n * - The `type` property must be singular\n * - The `type` property must be dasherized\n *\n * We are deprecating support for types that do not match this pattern\n * in order to unlock future improvements in which we can support `type`\n * being any string of your choosing.\n *\n * The goal is that in the future, you will be able to use any string\n * so long as it matches what your configured cache, identifier generation,\n * and schemas expect.\n *\n * E.G. It will matter not that your string is in a specific format like\n * singular, dasherized, etc. so long as everywhere you refer to the type\n * you use the same string.\n *\n * If using @ember-data-mirror/model, there will always be a restriction that the\n * `type` must match the path on disk where the model is defined.\n *\n * e.g. `app/models/foo/bar-bem.js` must have a type of `foo/bar-bem`\n *\n * @property DEPRECATE_NON_STRICT_TYPES\n * @type {Boolean}\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_NON_STRICT_TYPES = '5.3';\n\n/**\n * **id: ember-data:deprecate-non-strict-id**\n *\n * Currently, EmberData expects that the `id` property associated with\n * a resource is a string.\n *\n * However, for legacy support in many locations we would accept a number\n * which would then immediately be coerced into a string.\n *\n * We are deprecating this legacy support for numeric IDs.\n *\n * The goal is that in the future, you will be able to use any ID format\n * so long as everywhere you refer to the ID you use the same format.\n *\n * However, for identifiers we will always use string IDs and so any\n * custom identifier configuration should provide a string ID.\n *\n * @property DEPRECATE_NON_STRICT_ID\n * @type {Boolean}\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_NON_STRICT_ID = '5.3';\n\n/**\n * **id: <none yet assigned>**\n *\n * This is a planned deprecation which will trigger when observer or computed\n * chains are used to watch for changes on any EmberData LiveArray, CollectionRecordArray,\n * ManyArray or PromiseManyArray.\n *\n * Support for these chains is currently guarded by the deprecation flag\n * listed here, enabling removal of the behavior if desired.\n *\n * The instrumentation was added in 5.0 but the version number\n * is set to 7.0 as we do not want to strip support without\n * adding a deprecation message.\n *\n * Once we've added the deprecation message, we will\n * update this version number to the proper version.\n *\n * @property DEPRECATE_COMPUTED_CHAINS\n * @type {Boolean}\n * @since 5.0\n * @until 8.0\n * @public\n */\nexport const DEPRECATE_COMPUTED_CHAINS = '7.0';\n\n/**\n * **id: ember-data:deprecate-legacy-imports**\n *\n * Deprecates when importing from `ember-data/*` instead of `@ember-data/*`\n * in order to prepare for the eventual removal of the legacy `ember-data/*`\n *\n * All imports from `ember-data/*` should be updated to `@ember-data/*`\n * except for `ember-data/store`. When you are using `ember-data` (as opposed to\n * installing the indivudal packages) you should import from `ember-data/store`\n * instead of `@ember-data-mirror/store` in order to receive the appropriate configuration\n * of defaults.\n *\n * @property DEPRECATE_LEGACY_IMPORTS\n * @type {Boolean}\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_LEGACY_IMPORTS = '5.3';\n\n/**\n * **id: ember-data:deprecate-non-unique-collection-payloads**\n *\n * Deprecates when the data for a hasMany relationship contains\n * duplicate identifiers.\n *\n * Previously, relationships would silently de-dupe the data\n * when received, but this behavior is being removed in favor\n * of erroring if the same related record is included multiple\n * times.\n *\n * For instance, in JSON:API the below relationship data would\n * be considered invalid:\n *\n * ```json\n * {\n * \"data\": {\n * \"type\": \"article\",\n * \"id\": \"1\",\n * \"relationships\": {\n * \"comments\": {\n * \"data\": [\n * { \"type\": \"comment\", \"id\": \"1\" },\n * { \"type\": \"comment\", \"id\": \"2\" },\n * { \"type\": \"comment\", \"id\": \"1\" } // duplicate\n * ]\n * }\n * }\n * }\n * ```\n *\n * To resolve this deprecation, either update your server to\n * not include duplicate data, or implement normalization logic\n * in either a request handler or serializer which removes\n * duplicate data from relationship payloads.\n *\n * @property DEPRECATE_NON_UNIQUE_PAYLOADS\n * @type {Boolean}\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_NON_UNIQUE_PAYLOADS = '5.3';\n\n/**\n * **id: ember-data:deprecate-relationship-remote-update-clearing-local-state**\n *\n * Deprecates when a relationship is updated remotely and the local state\n * is cleared of all changes except for \"new\" records.\n *\n * Instead, any records not present in the new payload will be considered\n * \"removed\" while any records present in the new payload will be considered \"added\".\n *\n * This allows us to \"commit\" local additions and removals, preserving any additions\n * or removals that are not yet reflected in the remote state.\n *\n * For instance, given the following initial state:\n *\n * remote: A, B, C\n * local: add D, E\n * remove B, C\n * => A, D, E\n *\n *\n * If after an update, the remote state is now A, B, D, F then the new state will be\n *\n * remote: A, B, D, F\n * local: add E\n * remove B\n * => A, D, E, F\n *\n * Under the old behavior the updated local state would instead have been\n * => A, B, D, F\n *\n * Similarly, if a belongsTo remote State was A while its local state was B,\n * then under the old behavior if the remote state changed to C, the local state\n * would be updated to C. Under the new behavior, the local state would remain B.\n *\n * If the remote state was A while its local state was `null`, then under the old\n * behavior if the remote state changed to C, the local state would be updated to C.\n * Under the new behavior, the local state would remain `null`.\n *\n * Thus the new correct mental model is that the state of the relationship at any point\n * in time is whatever the most recent remote state is, plus any local additions or removals\n * you have made that have not yet been reflected by the remote state.\n *\n * > Note: The old behavior extended to modifying the inverse of a relationship. So if\n * > you had local state not reflected in the new remote state, inverses would be notified\n * > and their state reverted as well when \"resetting\" the relationship.\n * > Under the new behavior, since the local state is preserved the inverses will also\n * > not be reverted.\n *\n * ### Resolving this deprecation\n *\n * Resolving this deprecation can be done individually for each relationship\n * or globally for all relationships.\n *\n * To resolve it globally, set the `DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE`\n * to `false` in ember-cli-build.js\n *\n * ```js\n * const { setConfig } = await import('@warp-drive-mirror/build-config');\n *\n * let app = new EmberApp(defaults, {});\n *\n * setConfig(app, __dirname, {\n * deprecations: {\n * // set to false to strip the deprecated code (thereby opting into the new behavior)\n * DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE: false\n * }\n * });\n * ```\n *\n * To resolve this deprecation on an individual relationship, adjust the `options` passed to\n * the relationship. For relationships with inverses, both sides MUST be migrated to the new\n * behavior at the same time.\n *\n * ```js\n * class Person extends Model {\n * @hasMany('person', {\n * async: false,\n * inverse: null,\n * resetOnRemoteUpdate: false\n * }) children;\n *\n * @belongsTo('person', {\n * async: false,\n * inverse: null,\n * resetOnRemoteUpdate: false\n * }) parent;\n * }\n * ```\n *\n * > Note: false is the only valid value here, all other values (including missing)\n * > will be treated as true, where `true` is the legacy behavior that is now deprecated.\n *\n * Once you have migrated all relationships, you can remove the the resetOnRemoteUpdate\n * option and set the deprecation flag to false in ember-cli-build.\n *\n * ### What if I don't want the new behavior?\n *\n * EmberData's philosophy is to not make assumptions about your application. Where possible\n * we seek out \"100%\" solutions – solutions that work for all use cases - and where that is\n * not possible we default to \"90%\" solutions – solutions that work for the vast majority of use\n * cases. In the case of \"90%\" solutions we look for primitives that allow you to resolve the\n * 10% case in your application. If no such primitives exist, we provide an escape hatch that\n * ensures you can build the behavior you need without adopting the cost of the default solution.\n *\n * In this case, the old behavior was a \"40%\" solution. The inability for an application developer\n * to determine what changes were made locally, and thus what changes should be preserved, made\n * it impossible to build certain features easily, or in some cases at all. The proliferation of\n * feature requests, bug reports (from folks surprised by the prior behavior) and addon attempts\n * in this space are all evidence of this.\n *\n * We believe the new behavior is a \"90%\" solution. It works for the vast majority of use cases,\n * often without noticeable changes to existing application behavior, and provides primitives that\n * allow you to build the behavior you need for the remaining 10%.\n *\n * The great news is that this behavior defaults to trusting your API similar to the old behavior.\n * If your API is correct, you will not need to make any changes to your application to adopt\n * the new behavior.\n *\n * This means the 10% cases are those where you can't trust your API to provide the correct\n * information. In these cases, because you now have cheap access to a diff of the relationship\n * state, there are a few options that weren't available before:\n *\n * - you can adjust returned API payloads to contain the expected changes that it doesn't include\n * - you can modify local state by adding or removing records on the HasMany record array to remove\n * any local changes that were not returned by the API.\n * - you can use `<Cache>.mutate(mutation)` to directly modify the local cache state of the relationship\n * to match the expected state.\n *\n * What this version (5.3) does not yet provide is a way to directly modify the cache's remote state\n * for the relationship via public APIs other than via the broader action of upserting a response via\n * `<Cache>.put(document)`. However, such an API was sketched in the Cache 2.1 RFC\n * `<Cache>.patch(operation)` and is likely to be added in a future 5.x release of EmberData.\n *\n * This version (5.3) also does not yet provide a way to directly modify the graph (a general purpose\n * subset of cache behaviors specific to relationships) via public APIs. However, during the\n * 5.x release series we will be working on finalizing the Graph API and making it public.\n *\n * If none of these options work for you, you can always opt-out more broadly by implementing\n * a custom Cache with the relationship behaviors you need.\n *\n * @property DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE\n * @type {Boolean}\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE = '5.3';\n\n/**\n * **id: ember-data:deprecate-many-array-duplicates**\n *\n * When the flag is `true` (default), adding duplicate records to a `ManyArray`\n * is deprecated in non-production environments. In production environments,\n * duplicate records added to a `ManyArray` will be deduped and no error will\n * be thrown.\n *\n * When the flag is `false`, an error will be thrown when duplicates are added.\n *\n * @property DEPRECATE_MANY_ARRAY_DUPLICATES\n * @type {Boolean}\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_MANY_ARRAY_DUPLICATES = '5.3';\n\n/**\n * **id: ember-data:deprecate-store-extends-ember-object**\n *\n * When the flag is `true` (default), the Store class will extend from `@ember/object`.\n * When the flag is `false` or `ember-source` is not present, the Store will not extend\n * from EmberObject.\n *\n * @property DEPRECATE_STORE_EXTENDS_EMBER_OBJECT\n * @type {Boolean}\n * @since 5.4\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_STORE_EXTENDS_EMBER_OBJECT = '5.4';\n\n/**\n * **id: ember-data:schema-service-updates**\n *\n * When the flag is `true` (default), the legacy schema\n * service features will be enabled on the store and\n * the service, and deprecations will be thrown when\n * they are used.\n *\n * Deprecated features include:\n *\n * - `Store.registerSchema` method is deprecated in favor of the `Store.createSchemaService` hook\n * - `Store.registerSchemaDefinitionService` method is deprecated in favor of the `Store.createSchemaService` hook\n * - `Store.getSchemaDefinitionService` method is deprecated in favor of `Store.schema` property\n * - `SchemaService.doesTypeExist` method is deprecated in favor of the `SchemaService.hasResource` method\n * - `SchemaService.attributesDefinitionFor` method is deprecated in favor of the `SchemaService.fields` method\n * - `SchemaService.relationshipsDefinitionFor` method is deprecated in favor of the `SchemaService.fields` method\n *\n * @property ENABLE_LEGACY_SCHEMA_SERVICE\n * @type {Boolean}\n * @since 5.4\n * @until 6.0\n * @public\n */\nexport const ENABLE_LEGACY_SCHEMA_SERVICE = '5.4';\n\n/**\n * **id: warp-drive.ember-inflector**\n *\n * Deprecates the use of ember-inflector for pluralization and singularization in favor\n * of the `@ember-data-mirror/request-utils` package.\n *\n * Rule configuration methods (singular, plural, uncountable, irregular) and\n * usage methods (singularize, pluralize) are are available as imports from\n * `@ember-data-mirror/request-utils/string`\n *\n * Notable differences with ember-inflector:\n * - there cannot be multiple inflector instances with separate rules\n * - pluralization does not support a count argument\n * - string caches now default to 10k entries instead of 1k, and this\n * size is now configurable. Additionally, the cache is now a LRU cache\n * instead of a first-N cache.\n *\n * This deprecation can be resolved by removing usage of ember-inflector or by using\n * both ember-inflector and @ember-data-mirror/request-utils in parallel and updating your\n * EmberData/WarpDrive build config to mark the deprecation as resolved\n * in ember-cli-build\n *\n * ```js\n * setConfig(app, __dirname, { deprecations: { DEPRECATE_EMBER_INFLECTOR: false }});\n * ```\n *\n * @property DEPRECATE_EMBER_INFLECTOR\n * @type {Boolean}\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_EMBER_INFLECTOR = '5.3';\n\n/**\n * This is a special flag that can be used to opt-in early to receiving deprecations introduced in 6.x\n * which have had their infra backported to 5.x versions of EmberData.\n *\n * When this flag is not present or set to `true`, the deprecations from the 6.x branch\n * will not print their messages and the deprecation cannot be resolved.\n *\n * When this flag is present and set to `false`, the deprecations from the 6.x branch will\n * print and can be resolved.\n *\n * @property DISABLE_7X_DEPRECATIONS\n * @type {Boolean}\n * @since 5.3\n * @until 7.0\n * @public\n */\nexport const DISABLE_7X_DEPRECATIONS = '7.0';\n\n/**\n * **id: warp-drive:deprecate-tracking-package**\n *\n * Deprecates the use of the @ember-data-mirror/tracking package which\n * historically provided bindings into Ember's reactivity system.\n *\n * This package is no longer needed as the configuration is now\n * provided by the @warp-drive-mirror/ember package.\n *\n * This deprecation can be resolved by removing the\n * @ember-data-mirror/tracking package from your project and ensuring\n * that your app.js file has the following import:\n *\n * ```js\n * import '@warp-drive-mirror/ember/install';\n * ```\n *\n * Once this import is present, you can remove the deprecation\n * by setting the deprecation to `false` in your build config:\n *\n * ```js\n * // inside of ember-cli-build.js\n *\n * const { setConfig } = await import('@warp-drive-mirror/build-config');\n *\n * setConfig(app, __dirname, {\n * deprecations: {\n * DEPRECATE_TRACKING_PACKAGE: false\n * }\n * });\n * ```\n *\n * @property DEPRECATE_TRACKING_PACKAGE\n * @type {Boolean}\n * @since 5.5\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_TRACKING_PACKAGE = '5.5';\n","import semver from 'semver';\n\nimport * as CURRENT_DEPRECATIONS from '../../deprecation-versions.ts';\ntype MajorMinor = `${number}.${number}`;\ntype DeprecationFlag = keyof typeof CURRENT_DEPRECATIONS;\n\nfunction deprecationIsResolved(deprecatedSince: MajorMinor, compatVersion: MajorMinor) {\n return semver.lte(semver.minVersion(deprecatedSince)!, semver.minVersion(compatVersion)!);\n}\n\nconst NextMajorVersion = '6.';\n\nfunction deprecationIsNextMajorCycle(deprecatedSince: MajorMinor) {\n return deprecatedSince.startsWith(NextMajorVersion);\n}\n\nexport function getDeprecations(\n compatVersion: MajorMinor | null | undefined,\n deprecations?: { [key in DeprecationFlag]?: boolean }\n): { [key in DeprecationFlag]: boolean } {\n const flags = {} as Record<DeprecationFlag, boolean>;\n const keys = Object.keys(CURRENT_DEPRECATIONS) as DeprecationFlag[];\n const DISABLE_7X_DEPRECATIONS = deprecations?.DISABLE_7X_DEPRECATIONS ?? true;\n\n keys.forEach((flag) => {\n const deprecatedSince = CURRENT_DEPRECATIONS[flag];\n const isDeactivatedDeprecationNotice = DISABLE_7X_DEPRECATIONS && deprecationIsNextMajorCycle(deprecatedSince);\n let flagState = true; // default to no code-stripping\n\n if (!isDeactivatedDeprecationNotice) {\n // if we have a specific flag setting, use it\n if (typeof deprecations?.[flag] === 'boolean') {\n flagState = deprecations?.[flag]!;\n } else if (compatVersion) {\n // if we are told we are compatible with a version\n // we check if we can strip this flag\n const isResolved = deprecationIsResolved(deprecatedSince, compatVersion);\n // if we've resolved, we strip (by setting the flag to false)\n /*\n if (DEPRECATED_FEATURE) {\n // deprecated code path\n } else {\n // if needed a non-deprecated code path\n }\n */\n flagState = !isResolved;\n }\n }\n\n // console.log(`${flag}=${flagState} (${deprecatedSince} <= ${compatVersion})`);\n flags[flag] = flagState;\n });\n\n return flags;\n}\n","/**\n *\n * @module @warp-drive-mirror/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-mirror/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 * @type {Boolean|null}\n * @since 5.4\n * @public\n */\nexport const JSON_API_CACHE_VALIDATION_ERRORS: boolean | null = false;\n","import fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nimport * as CURRENT_FEATURES from '../../canary-features.ts';\ntype FEATURE = keyof typeof CURRENT_FEATURES;\n\nconst dirname = typeof __dirname !== 'undefined' ? __dirname : fileURLToPath(new URL('.', import.meta.url));\nconst relativePkgPath = path.join(dirname, '../package.json');\n\nconst version = JSON.parse(fs.readFileSync(relativePkgPath, 'utf-8')).version;\nconst isCanary = version.includes('alpha');\n\nexport function getFeatures(isProd: boolean): { [key in FEATURE]: boolean } {\n const features = Object.assign({}, CURRENT_FEATURES) as Record<FEATURE, boolean>;\n const keys = Object.keys(features) as FEATURE[];\n\n if (!isCanary) {\n // disable all features with a current value of `null`\n for (const feature of keys) {\n let featureValue = features[feature];\n\n if (featureValue === null) {\n features[feature] = false;\n }\n }\n return features;\n }\n\n const FEATURE_OVERRIDES = process.env.WARP_DRIVE_FEATURE_OVERRIDE;\n if (FEATURE_OVERRIDES === 'ENABLE_ALL_OPTIONAL') {\n // enable all features with a current value of `null`\n for (const feature of keys) {\n let featureValue = features[feature];\n\n if (featureValue === null) {\n features[feature] = true;\n }\n }\n } else if (FEATURE_OVERRIDES === 'DISABLE_ALL') {\n // disable all features, including those with a value of `true`\n for (const feature of keys) {\n features[feature] = false;\n }\n } else if (FEATURE_OVERRIDES) {\n // enable only the specific features listed in the environment\n // variable (comma separated)\n const forcedFeatures = FEATURE_OVERRIDES.split(',');\n for (let i = 0; i < forcedFeatures.length; i++) {\n let featureName = forcedFeatures[i];\n\n if (!keys.includes(featureName as FEATURE)) {\n throw new Error(`Unknown feature flag: ${featureName}`);\n }\n\n features[featureName as FEATURE] = true;\n }\n }\n\n if (isProd) {\n // disable all features with a current value of `null`\n for (const feature of keys) {\n let featureValue = features[feature];\n\n if (featureValue === null) {\n features[feature] = false;\n }\n }\n }\n\n return features;\n}\n","/**\n @module @warp-drive-mirror/build-config\n */\n/**\n * ## Debug Logging\n *\n * Many portions of the internals are helpfully instrumented with logging that can be activated\n * at build time. This instrumentation is always removed from production builds or any builds\n * that has not explicitly activated it. To activate it set the appropriate flag to `true`.\n *\n * ```ts\n * setConfig(__dirname, app, {\n * debug: {\n * LOG_CACHE: false, // data store received to update cache with\n * LOG_NOTIFICATIONS: false,\n * LOG_REQUESTS: false,\n * LOG_REQUEST_STATUS: false,\n * LOG_IDENTIFIERS: false,\n * LOG_GRAPH: false,\n * LOG_INSTANCE_CACHE: false,\n * LOG_METRIC_COUNTS: false,\n * DEBUG_RELATIONSHIP_NOTIFICATIONS: false,\n * }\n * });\n * ```\n *\n * @class DebugLogging\n * @public\n */\n/**\n * log cache updates for both local\n * and remote state.\n *\n * @property LOG_CACHE\n * @type {Boolean}\n * @public\n */\nexport const LOG_CACHE: boolean = false;\n\n/**\n * log notifications received by the NotificationManager\n *\n * @property LOG_NOTIFICATIONS\n * @type {Boolean}\n * @public\n */\nexport const LOG_NOTIFICATIONS: boolean = false;\n/**\n * log requests issued by the RequestManager\n *\n * @property LOG_REQUESTS\n * @type {Boolean}\n * @public\n */\nexport const LOG_REQUESTS: boolean = false;\n/**\n * log updates to requests the store has issued to\n * the network (adapter) to fulfill.\n *\n * @property LOG_REQUEST_STATUS\n * @type {Boolean}\n * @public\n */\nexport const LOG_REQUEST_STATUS: boolean = false;\n/**\n * log peek, generation and updates to\n * Record Identifiers.\n *\n * @property LOG_IDENTIFIERS\n * @type {Boolean}\n\n * @public\n */\nexport const LOG_IDENTIFIERS: boolean = false;\n/**\n * log updates received by the graph (relationship pointer storage)\n *\n * @property LOG_GRAPH\n * @type {Boolean}\n * @public\n */\nexport const LOG_GRAPH: boolean = false;\n/**\n * log creation/removal of RecordData and Record\n * instances.\n *\n * @property LOG_INSTANCE_CACHE\n * @type {Boolean}\n * @public\n */\nexport const LOG_INSTANCE_CACHE: boolean = false;\n/**\n * Log key count metrics, useful for performance\n * debugging.\n *\n * @property LOG_METRIC_COUNTS\n * @type {Boolean}\n * @public\n */\nexport const LOG_METRIC_COUNTS: boolean = false;\n/**\n * Helps when debugging causes of a change notification\n * when processing an update to a hasMany relationship.\n *\n * @property DEBUG_RELATIONSHIP_NOTIFICATIONS\n * @type {Boolean}\n * @public\n */\nexport const DEBUG_RELATIONSHIP_NOTIFICATIONS: boolean = false;\n\n/**\n * A private flag to enable logging of the native Map/Set\n * constructor and method calls.\n *\n * EXTREMELY MALPERFORMANT\n *\n * LOG_METRIC_COUNTS must also be enabled.\n *\n * @typedoc\n */\nexport const __INTERNAL_LOG_NATIVE_MAP_SET_COUNTS: boolean = false;\n","import * as LOGGING from '../../debugging.ts';\n\ntype LOG_CONFIG_KEY = keyof typeof LOGGING;\nexport type LOG_CONFIG = { [key in LOG_CONFIG_KEY]: boolean };\n\nexport function createLoggingConfig(\n env: { DEBUG: boolean; TESTING: boolean; PRODUCTION: boolean },\n debug: LOG_CONFIG\n): LOG_CONFIG {\n const config = {} as LOG_CONFIG;\n const keys = Object.keys(LOGGING) as LOG_CONFIG_KEY[];\n\n for (const key of keys) {\n if (env.DEBUG || env.TESTING) {\n config[key] = true;\n } else {\n config[key] = debug[key] || false;\n }\n }\n\n return config;\n}\n","/**\n * Settings configuration for deprecations, optional features, development/testing\n * support and debug logging is done using `setConfig` in `ember-cli-build`.\n *\n * ```ts\n * 'use strict';\n *\n * const EmberApp = require('ember-cli/lib/broccoli/ember-app');\n *\n * module.exports = async function (defaults) {\n * const { setConfig } = await import('@warp-drive-mirror/build-config');\n *\n * const app = new EmberApp(defaults, {});\n *\n * setConfig(app, __dirname, {\n * // settings here\n * });\n *\n * const { Webpack } = require('@embroider/webpack');\n * return require('@embroider/compat').compatBuild(app, Webpack, {});\n * };\n *\n * ```\n *\n * Available settings include:\n *\n * - [Debug Logging](../classes/DebugLogging)\n * - [Deprecated Code Removal](../classes/CurrentDeprecations)\n * - [Canary Feature Activation](../classes/CanaryFeatures)\n *\n * As well as:\n *\n * ### polyfillUUID\n *\n * If you are using the library in an environment that does not support `window.crypto.randomUUID`\n * you can enable a polyfill for it.\n *\n * ```ts\n * setConfig(app, __dirname, {\n * polyfillUUID: true\n * });\n * ```\n *\n * ### includeDataAdapterInProduction\n *\n * By default, the integration required to support the ember inspector browser extension\n * is included in production builds only when using the `ember-data` package. Otherwise\n * the default is to exclude it. This setting allows to explicitly enable/disable it in\n * production builds.\n *\n * ```ts\n * setConfig(app, __dirname, {\n * includeDataAdapterInProduction: true\n * });\n * ```\n *\n * @module @warp-drive-mirror/build-config\n * @main @warp-drive-mirror/build-config\n */\nimport EmbroiderMacros from '@embroider/macros/src/node.js';\nimport { getEnv } from './-private/utils/get-env.ts';\nimport { getDeprecations } from './-private/utils/deprecations.ts';\nimport { getFeatures } from './-private/utils/features.ts';\nimport * as LOGGING from './debugging.ts';\nimport type { MacrosConfig } from '@embroider/macros/src/node.js';\nimport { createLoggingConfig } from './-private/utils/logging.ts';\n\nconst _MacrosConfig = EmbroiderMacros.MacrosConfig as unknown as typeof MacrosConfig;\n\ntype LOG_CONFIG_KEY = keyof typeof LOGGING;\n\nexport type WarpDriveConfig = {\n debug?: Partial<InternalWarpDriveConfig['debug']>;\n polyfillUUID?: boolean;\n includeDataAdapterInProduction?: boolean;\n compatWith?: `${number}.${number}`;\n deprecations?: Partial<InternalWarpDriveConfig['deprecations']>;\n features?: Partial<InternalWarpDriveConfig['features']>;\n};\n\ntype InternalWarpDriveConfig = {\n debug: { [key in LOG_CONFIG_KEY]: boolean };\n polyfillUUID: boolean;\n includeDataAdapter: boolean;\n compatWith: `${number}.${number}` | null;\n deprecations: ReturnType<typeof getDeprecations>;\n features: ReturnType<typeof getFeatures>;\n activeLogging: { [key in LOG_CONFIG_KEY]: boolean };\n env: {\n TESTING: boolean;\n PRODUCTION: boolean;\n DEBUG: boolean;\n };\n};\n\ntype MacrosWithGlobalConfig = Omit<MacrosConfig, 'globalConfig'> & { globalConfig: Record<string, unknown> };\n\nfunction recastMacrosConfig(macros: object): MacrosWithGlobalConfig {\n if (!('globalConfig' in macros)) {\n throw new Error('Expected MacrosConfig to have a globalConfig property');\n }\n return macros as MacrosWithGlobalConfig;\n}\n\nexport function setConfig(macros: object, config: WarpDriveConfig): void;\nexport function setConfig(context: object, appRoot: string, config: WarpDriveConfig): void;\nexport function setConfig(context: object, appRootOrConfig: string | WarpDriveConfig, config?: WarpDriveConfig): void {\n const isEmberClassicUsage = arguments.length === 3;\n const macros = recastMacrosConfig(\n isEmberClassicUsage ? _MacrosConfig.for(context, appRootOrConfig as string) : context\n );\n\n const userConfig = isEmberClassicUsage ? config! : (appRootOrConfig as WarpDriveConfig);\n\n const isLegacySupport = (userConfig as unknown as { ___legacy_support?: boolean }).___legacy_support;\n const hasDeprecatedConfig = isLegacySupport && Object.keys(userConfig).length > 1;\n const hasInitiatedConfig = macros.globalConfig['WarpDriveMirror'];\n\n // setConfig called by user prior to legacy support called\n if (isLegacySupport && hasInitiatedConfig) {\n if (hasDeprecatedConfig) {\n throw new Error(\n 'You have provided a config object to setConfig, but are also using the legacy emberData options key in ember-cli-build. Please remove the emberData key from options.'\n );\n }\n return;\n }\n\n // legacy support called prior to user setConfig\n if (isLegacySupport && hasDeprecatedConfig) {\n // We don't want to print this just yet because we are going to re-arrange packages\n // and this would be come an import from @warp-drive/core. Better to not deprecate twice.\n // console.warn(\n // `You are using the legacy emberData key in your ember-cli-build.js file. This key is deprecated and will be removed in the next major version of EmberData/WarpDrive. Please use \\`import { setConfig } from '@warp-drive-mirror/build-config';\\` instead.`\n // );\n }\n\n // included hooks run during class initialization of the EmberApp instance\n // so our hook will run before the user has a chance to call setConfig\n // else we could print a useful message here\n // else if (isLegacySupport) {\n // console.warn(\n // `WarpDrive requires your ember-cli-build file to set a base configuration for the project.\\n\\nUsage:\\n\\t\\`import { setConfig } from '@warp-drive-mirror/build-config';\\n\\tsetConfig(app, __dirname, {});\\``\n // );\n // }\n\n const debugOptions: InternalWarpDriveConfig['debug'] = Object.assign({}, LOGGING, userConfig.debug);\n\n const env = getEnv();\n const DEPRECATIONS = getDeprecations(userConfig.compatWith || null, userConfig.deprecations);\n const FEATURES = getFeatures(env.PRODUCTION);\n\n const includeDataAdapterInProduction =\n typeof userConfig.includeDataAdapterInProduction === 'boolean' ? userConfig.includeDataAdapterInProduction : true;\n const includeDataAdapter = env.PRODUCTION ? includeDataAdapterInProduction : true;\n\n const finalizedConfig: InternalWarpDriveConfig = {\n debug: debugOptions,\n polyfillUUID: userConfig.polyfillUUID ?? false,\n includeDataAdapter,\n compatWith: userConfig.compatWith ?? null,\n deprecations: DEPRECATIONS,\n features: FEATURES,\n activeLogging: createLoggingConfig(env, debugOptions),\n env,\n };\n\n macros.setGlobalConfig(import.meta.filename, 'WarpDriveMirror', finalizedConfig);\n}\n"],"names":["getEnv","EMBER_ENV","IS_TESTING","EMBER_CLI_TEST_COMMAND","NODE_ENV","CI","IS_RECORDING","process","env","PRODUCTION","DEBUG","TESTING","Boolean","SHOULD_RECORD","IS_CI","DEPRECATE_CATCH_ALL","DEPRECATE_NON_STRICT_TYPES","DEPRECATE_NON_STRICT_ID","DEPRECATE_COMPUTED_CHAINS","DEPRECATE_LEGACY_IMPORTS","DEPRECATE_NON_UNIQUE_PAYLOADS","DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE","DEPRECATE_MANY_ARRAY_DUPLICATES","DEPRECATE_STORE_EXTENDS_EMBER_OBJECT","ENABLE_LEGACY_SCHEMA_SERVICE","DEPRECATE_EMBER_INFLECTOR","DISABLE_7X_DEPRECATIONS","DEPRECATE_TRACKING_PACKAGE","deprecationIsResolved","deprecatedSince","compatVersion","semver","lte","minVersion","NextMajorVersion","deprecationIsNextMajorCycle","startsWith","getDeprecations","deprecations","flags","keys","Object","CURRENT_DEPRECATIONS","forEach","flag","isDeactivatedDeprecationNotice","flagState","isResolved","SAMPLE_FEATURE_FLAG","JSON_API_CACHE_VALIDATION_ERRORS","dirname","__dirname","fileURLToPath","relativePkgPath","path","join","version","JSON","parse","fs","readFileSync","isCanary","includes","getFeatures","isProd","features","assign","CURRENT_FEATURES","feature","featureValue","FEATURE_OVERRIDES","WARP_DRIVE_FEATURE_OVERRIDE","forcedFeatures","split","i","length","featureName","Error","LOG_CACHE","LOG_NOTIFICATIONS","LOG_REQUESTS","LOG_REQUEST_STATUS","LOG_IDENTIFIERS","LOG_GRAPH","LOG_INSTANCE_CACHE","LOG_METRIC_COUNTS","DEBUG_RELATIONSHIP_NOTIFICATIONS","__INTERNAL_LOG_NATIVE_MAP_SET_COUNTS","createLoggingConfig","debug","config","LOGGING","key","_MacrosConfig","EmbroiderMacros","MacrosConfig","recastMacrosConfig","macros","setConfig","context","appRootOrConfig","isEmberClassicUsage","arguments","for","userConfig","isLegacySupport","___legacy_support","hasDeprecatedConfig","hasInitiatedConfig","globalConfig","debugOptions","DEPRECATIONS","compatWith","FEATURES","includeDataAdapterInProduction","includeDataAdapter","finalizedConfig","polyfillUUID","activeLogging","setGlobalConfig","import"],"mappings":";;;;;;;;;;;AAAO,SAASA,MAAMA,GAOpB;EACA,MAAM;IAAEC,SAAS;IAAEC,UAAU;IAAEC,sBAAsB;IAAEC,QAAQ;IAAEC,EAAE;AAAEC,IAAAA;GAAc,GAAGC,OAAO,CAACC,GAAG;EACjG,MAAMC,UAAU,GAAGR,SAAS,KAAK,YAAY,IAAK,CAACA,SAAS,IAAIG,QAAQ,KAAK,YAAa;EAC1F,MAAMM,KAAK,GAAG,CAACD,UAAU;AACzB,EAAA,MAAME,OAAO,GAAGD,KAAK,IAAIE,OAAO,CAACX,SAAS,KAAK,MAAM,IAAIC,UAAU,IAAIC,sBAAsB,CAAC;EAC9F,MAAMU,aAAa,GAAGD,OAAO,CAAC,CAACP,EAAE,IAAIC,YAAY,CAAC;EAElD,OAAO;IACLK,OAAO;IACPF,UAAU;IACVC,KAAK;AACLJ,IAAAA,YAAY,EAAEM,OAAO,CAACN,YAAY,CAAC;AACnCQ,IAAAA,KAAK,EAAEF,OAAO,CAACP,EAAE,CAAC;AAClBQ,IAAAA;GACD;AACH;;ACtBA;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;AACO,MAAME,mBAAmB,GAAG,MAAM;AACzC;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,MAAMC,0BAA0B,GAAG,KAAK;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,uBAAuB,GAAG,KAAK;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,yBAAyB,GAAG,KAAK;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,wBAAwB,GAAG,KAAK;;AAE7C;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,MAAMC,6BAA6B,GAAG,KAAK;;AAElD;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;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;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,MAAMC,yDAAyD,GAAG,KAAK;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,+BAA+B,GAAG,KAAK;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oCAAoC,GAAG,KAAK;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,4BAA4B,GAAG,KAAK;;AAEjD;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,MAAMC,yBAAyB,GAAG,KAAK;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,uBAAuB,GAAG,KAAK;;AAE5C;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,MAAMC,0BAA0B,GAAG,KAAK;;;;;;;;;;;;;;;;;;;ACxf/C,SAASC,qBAAqBA,CAACC,eAA2B,EAAEC,aAAyB,EAAE;AACrF,EAAA,OAAOC,MAAM,CAACC,GAAG,CAACD,MAAM,CAACE,UAAU,CAACJ,eAAe,CAAC,EAAGE,MAAM,CAACE,UAAU,CAACH,aAAa,CAAE,CAAC;AAC3F;AAEA,MAAMI,gBAAgB,GAAG,IAAI;AAE7B,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A;AACA;AACA;AACA;AACO,MAAMC,YAAqB,GAAG,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAA2B,GAAG,KAAK;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO,MAAMC,eAAwB,GAAG,KAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,SAAkB,GAAG,KAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAA2B,GAAG,KAAK;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,iBAA0B,GAAG,KAAK;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,gCAAyC,GAAG,KAAK;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oCAA6C,GAAG,KAAK;;;;;;;;;;;;;;;;ACnH3D,SAASC,mBAAmBA,CACjChF,GAA8D,EAC9DiF,KAAiB,EACL;EACZ,MAAMC,MAAM,GAAG,EAAgB;AAC/B,EAAA,MAAMlD,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACmD,OAAO,CAAqB;AAErD,EAAA,KAAK,MAAMC,GAAG,IAAIpD,IAAI,EAAE;AACtB,IAAA,IAAIhC,GAAG,CAACE,KAAK,IAAIF,GAAG,CAACG,OAAO,EAAE;AAC5B+E,MAAAA,MAAM,CAACE,GAAG,CAAC,GAAG,IAAI;AACpB,KAAC,MAAM;MACLF,MAAM,CAACE,GAAG,CAAC,GAAGH,KAAK,CAACG,GAAG,CAAC,IAAI,KAAK;AACnC;AACF;AAEA,EAAA,OAAOF,MAAM;AACf;;ACrBA;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;AASA,MAAMG,aAAa,GAAGC,eAAe,CAACC,YAA8C;AA8BpF,SAASC,kBAAkBA,CAACC,MAAc,EAA0B;AAClE,EAAA,IAAI,EAAE,cAAc,IAAIA,MAAM,CAAC,EAAE;AAC/B,IAAA,MAAM,IAAIpB,KAAK,CAAC,uDAAuD,CAAC;AAC1E;AACA,EAAA,OAAOoB,MAAM;AACf;AAIO,SAASC,SAASA,CAACC,OAAe,EAAEC,eAAyC,EAAEV,MAAwB,EAAQ;AACpH,EAAA,MAAMW,mBAAmB,GAAGC,SAAS,CAAC3B,MAAM,KAAK,CAAC;AAClD,EAAA,MAAMsB,MAAM,GAAGD,kBAAkB,CAC/BK,mBAAmB,GAAGR,aAAa,CAACU,GAAG,CAACJ,OAAO,EAAEC,eAAyB,CAAC,GAAGD,OAChF,CAAC;AAED,EAAA,MAAMK,UAAU,GAAGH,mBAAmB,GAAGX,MAAM,GAAKU,eAAmC;AAEvF,EAAA,MAAMK,eAAe,GAAID,UAAU,CAAgDE,iBAAiB;AACpG,EAAA,MAAMC,mBAAmB,GAAGF,eAAe,IAAIhE,MAAM,CAACD,IAAI,CAACgE,UAAU,CAAC,CAAC7B,MAAM,GAAG,CAAC;AACjF,EAAA,MAAMiC,kBAAkB,GAAGX,MAAM,CAACY,YAAY,CAAC,WAAW,CAAC;;AAE3D;EACA,IAAIJ,eAAe,IAAIG,kBAAkB,EAAE;AACzC,IAAA,IAAID,mBAAmB,EAAE;AACvB,MAAA,MAAM,IAAI9B,KAAK,CACb,uKACF,CAAC;AACH;AACA,IAAA;AACF;;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAA,MAAMiC,YAA8C,GAAGrE,MAAM,CAACyB,MAAM,CAAC,EAAE,EAAEyB,OAAO,EAAEa,UAAU,CAACf,KAAK,CAAC;AAEnG,EAAA,MAAMjF,GAAG,GAAGR,MAAM,EAAE;AACpB,EAAA,MAAM+G,YAAY,GAAG1E,eAAe,CAACmE,UAAU,CAACQ,UAAU,IAAI,IAAI,EAAER,UAAU,CAAClE,YAAY,CAAC;AAC5F,EAAA,MAAM2E,QAAQ,GAAGlD,WAAW,CAACvD,GAAG,CAACC,UAAU,CAAC;AAE5C,EAAA,MAAMyG,8BAA8B,GAClC,OAAOV,UAAU,CAACU,8BAA8B,KAAK,SAAS,GAAGV,UAAU,CAACU,8BAA8B,GAAG,IAAI;EACnH,MAAMC,kBAAkB,GAAG3G,GAAG,CAACC,UAAU,GAAGyG,8BAA8B,GAAG,IAAI;AAEjF,EAAA,MAAME,eAAwC,GAAG;AAC/C3B,IAAAA,KAAK,EAAEqB,YAAY;AACnBO,IAAAA,YAAY,EAAEb,UAAU,CAACa,YAAY,IAAI,KAAK;IAC9CF,kBAAkB;AAClBH,IAAAA,UAAU,EAAER,UAAU,CAACQ,UAAU,IAAI,IAAI;AACzC1E,IAAAA,YAAY,EAAEyE,YAAY;AAC1B9C,IAAAA,QAAQ,EAAEgD,QAAQ;AAClBK,IAAAA,aAAa,EAAE9B,mBAAmB,CAAChF,GAAG,EAAEsG,YAAY,CAAC;AACrDtG,IAAAA;GACD;AAEDyF,EAAAA,MAAM,CAACsB,eAAe,CAACC,SAAoB,EAAE,WAAW,EAAEJ,eAAe,CAAC;AAC5E;;;;"}
|
|
@@ -31,7 +31,8 @@
|
|
|
31
31
|
* log cache updates for both local
|
|
32
32
|
* and remote state.
|
|
33
33
|
*
|
|
34
|
-
* @property
|
|
34
|
+
* @property LOG_CACHE
|
|
35
|
+
* @type {Boolean}
|
|
35
36
|
* @public
|
|
36
37
|
*/
|
|
37
38
|
const LOG_CACHE = false;
|
|
@@ -39,14 +40,16 @@ const LOG_CACHE = false;
|
|
|
39
40
|
/**
|
|
40
41
|
* log notifications received by the NotificationManager
|
|
41
42
|
*
|
|
42
|
-
* @property
|
|
43
|
+
* @property LOG_NOTIFICATIONS
|
|
44
|
+
* @type {Boolean}
|
|
43
45
|
* @public
|
|
44
46
|
*/
|
|
45
47
|
const LOG_NOTIFICATIONS = false;
|
|
46
48
|
/**
|
|
47
49
|
* log requests issued by the RequestManager
|
|
48
50
|
*
|
|
49
|
-
* @property
|
|
51
|
+
* @property LOG_REQUESTS
|
|
52
|
+
* @type {Boolean}
|
|
50
53
|
* @public
|
|
51
54
|
*/
|
|
52
55
|
const LOG_REQUESTS = false;
|
|
@@ -54,7 +57,8 @@ const LOG_REQUESTS = false;
|
|
|
54
57
|
* log updates to requests the store has issued to
|
|
55
58
|
* the network (adapter) to fulfill.
|
|
56
59
|
*
|
|
57
|
-
* @property
|
|
60
|
+
* @property LOG_REQUEST_STATUS
|
|
61
|
+
* @type {Boolean}
|
|
58
62
|
* @public
|
|
59
63
|
*/
|
|
60
64
|
const LOG_REQUEST_STATUS = false;
|
|
@@ -62,14 +66,17 @@ const LOG_REQUEST_STATUS = false;
|
|
|
62
66
|
* log peek, generation and updates to
|
|
63
67
|
* Record Identifiers.
|
|
64
68
|
*
|
|
65
|
-
* @property
|
|
69
|
+
* @property LOG_IDENTIFIERS
|
|
70
|
+
* @type {Boolean}
|
|
71
|
+
|
|
66
72
|
* @public
|
|
67
73
|
*/
|
|
68
74
|
const LOG_IDENTIFIERS = false;
|
|
69
75
|
/**
|
|
70
76
|
* log updates received by the graph (relationship pointer storage)
|
|
71
77
|
*
|
|
72
|
-
* @property
|
|
78
|
+
* @property LOG_GRAPH
|
|
79
|
+
* @type {Boolean}
|
|
73
80
|
* @public
|
|
74
81
|
*/
|
|
75
82
|
const LOG_GRAPH = false;
|
|
@@ -77,7 +84,8 @@ const LOG_GRAPH = false;
|
|
|
77
84
|
* log creation/removal of RecordData and Record
|
|
78
85
|
* instances.
|
|
79
86
|
*
|
|
80
|
-
* @property
|
|
87
|
+
* @property LOG_INSTANCE_CACHE
|
|
88
|
+
* @type {Boolean}
|
|
81
89
|
* @public
|
|
82
90
|
*/
|
|
83
91
|
const LOG_INSTANCE_CACHE = false;
|
|
@@ -85,7 +93,8 @@ const LOG_INSTANCE_CACHE = false;
|
|
|
85
93
|
* Log key count metrics, useful for performance
|
|
86
94
|
* debugging.
|
|
87
95
|
*
|
|
88
|
-
* @property
|
|
96
|
+
* @property LOG_METRIC_COUNTS
|
|
97
|
+
* @type {Boolean}
|
|
89
98
|
* @public
|
|
90
99
|
*/
|
|
91
100
|
const LOG_METRIC_COUNTS = false;
|
|
@@ -93,7 +102,8 @@ const LOG_METRIC_COUNTS = false;
|
|
|
93
102
|
* Helps when debugging causes of a change notification
|
|
94
103
|
* when processing an update to a hasMany relationship.
|
|
95
104
|
*
|
|
96
|
-
* @property
|
|
105
|
+
* @property DEBUG_RELATIONSHIP_NOTIFICATIONS
|
|
106
|
+
* @type {Boolean}
|
|
97
107
|
* @public
|
|
98
108
|
*/
|
|
99
109
|
const DEBUG_RELATIONSHIP_NOTIFICATIONS = false;
|
|
@@ -125,4 +135,4 @@ const LOGGING = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
|
125
135
|
}, Symbol.toStringTag, { value: 'Module' }));
|
|
126
136
|
|
|
127
137
|
export { DEBUG_RELATIONSHIP_NOTIFICATIONS as D, LOGGING as L, __INTERNAL_LOG_NATIVE_MAP_SET_COUNTS as _, LOG_CACHE as a, LOG_NOTIFICATIONS as b, LOG_REQUESTS as c, LOG_REQUEST_STATUS as d, LOG_IDENTIFIERS as e, LOG_GRAPH as f, LOG_INSTANCE_CACHE as g, LOG_METRIC_COUNTS as h };
|
|
128
|
-
//# sourceMappingURL=debugging-
|
|
138
|
+
//# sourceMappingURL=debugging-DIxmg1HX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debugging-DIxmg1HX.js","sources":["../src/debugging.ts"],"sourcesContent":["/**\n @module @warp-drive-mirror/build-config\n */\n/**\n * ## Debug Logging\n *\n * Many portions of the internals are helpfully instrumented with logging that can be activated\n * at build time. This instrumentation is always removed from production builds or any builds\n * that has not explicitly activated it. To activate it set the appropriate flag to `true`.\n *\n * ```ts\n * setConfig(__dirname, app, {\n * debug: {\n * LOG_CACHE: false, // data store received to update cache with\n * LOG_NOTIFICATIONS: false,\n * LOG_REQUESTS: false,\n * LOG_REQUEST_STATUS: false,\n * LOG_IDENTIFIERS: false,\n * LOG_GRAPH: false,\n * LOG_INSTANCE_CACHE: false,\n * LOG_METRIC_COUNTS: false,\n * DEBUG_RELATIONSHIP_NOTIFICATIONS: false,\n * }\n * });\n * ```\n *\n * @class DebugLogging\n * @public\n */\n/**\n * log cache updates for both local\n * and remote state.\n *\n * @property LOG_CACHE\n * @type {Boolean}\n * @public\n */\nexport const LOG_CACHE: boolean = false;\n\n/**\n * log notifications received by the NotificationManager\n *\n * @property LOG_NOTIFICATIONS\n * @type {Boolean}\n * @public\n */\nexport const LOG_NOTIFICATIONS: boolean = false;\n/**\n * log requests issued by the RequestManager\n *\n * @property LOG_REQUESTS\n * @type {Boolean}\n * @public\n */\nexport const LOG_REQUESTS: boolean = false;\n/**\n * log updates to requests the store has issued to\n * the network (adapter) to fulfill.\n *\n * @property LOG_REQUEST_STATUS\n * @type {Boolean}\n * @public\n */\nexport const LOG_REQUEST_STATUS: boolean = false;\n/**\n * log peek, generation and updates to\n * Record Identifiers.\n *\n * @property LOG_IDENTIFIERS\n * @type {Boolean}\n\n * @public\n */\nexport const LOG_IDENTIFIERS: boolean = false;\n/**\n * log updates received by the graph (relationship pointer storage)\n *\n * @property LOG_GRAPH\n * @type {Boolean}\n * @public\n */\nexport const LOG_GRAPH: boolean = false;\n/**\n * log creation/removal of RecordData and Record\n * instances.\n *\n * @property LOG_INSTANCE_CACHE\n * @type {Boolean}\n * @public\n */\nexport const LOG_INSTANCE_CACHE: boolean = false;\n/**\n * Log key count metrics, useful for performance\n * debugging.\n *\n * @property LOG_METRIC_COUNTS\n * @type {Boolean}\n * @public\n */\nexport const LOG_METRIC_COUNTS: boolean = false;\n/**\n * Helps when debugging causes of a change notification\n * when processing an update to a hasMany relationship.\n *\n * @property DEBUG_RELATIONSHIP_NOTIFICATIONS\n * @type {Boolean}\n * @public\n */\nexport const DEBUG_RELATIONSHIP_NOTIFICATIONS: boolean = false;\n\n/**\n * A private flag to enable logging of the native Map/Set\n * constructor and method calls.\n *\n * EXTREMELY MALPERFORMANT\n *\n * LOG_METRIC_COUNTS must also be enabled.\n *\n * @typedoc\n */\nexport const __INTERNAL_LOG_NATIVE_MAP_SET_COUNTS: boolean = false;\n"],"names":["LOG_CACHE","LOG_NOTIFICATIONS","LOG_REQUESTS","LOG_REQUEST_STATUS","LOG_IDENTIFIERS","LOG_GRAPH","LOG_INSTANCE_CACHE","LOG_METRIC_COUNTS","DEBUG_RELATIONSHIP_NOTIFICATIONS","__INTERNAL_LOG_NATIVE_MAP_SET_COUNTS"],"mappings":"AAAA;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,SAAkB,GAAG;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,iBAA0B,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,YAAqB,GAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAA2B,GAAG;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO,MAAMC,eAAwB,GAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,SAAkB,GAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAA2B,GAAG;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,iBAA0B,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,gCAAyC,GAAG;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oCAA6C,GAAG;;;;;;;;;;;;;;;;;;"}
|
package/dist/debugging.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { D as DEBUG_RELATIONSHIP_NOTIFICATIONS, a as LOG_CACHE, f as LOG_GRAPH, e as LOG_IDENTIFIERS, g as LOG_INSTANCE_CACHE, h as LOG_METRIC_COUNTS, b as LOG_NOTIFICATIONS, c as LOG_REQUESTS, d as LOG_REQUEST_STATUS, _ as __INTERNAL_LOG_NATIVE_MAP_SET_COUNTS } from './debugging-
|
|
1
|
+
export { D as DEBUG_RELATIONSHIP_NOTIFICATIONS, a as LOG_CACHE, f as LOG_GRAPH, e as LOG_IDENTIFIERS, g as LOG_INSTANCE_CACHE, h as LOG_METRIC_COUNTS, b as LOG_NOTIFICATIONS, c as LOG_REQUESTS, d as LOG_REQUEST_STATUS, _ as __INTERNAL_LOG_NATIVE_MAP_SET_COUNTS } from './debugging-DIxmg1HX.js';
|
|
2
2
|
//# sourceMappingURL=debugging.js.map
|
package/dist/index.js
CHANGED
|
@@ -3,8 +3,8 @@ import semver from 'semver';
|
|
|
3
3
|
import fs from 'fs';
|
|
4
4
|
import path from 'path';
|
|
5
5
|
import { fileURLToPath } from 'url';
|
|
6
|
-
import { C as CURRENT_FEATURES } from './canary-features-
|
|
7
|
-
import { L as LOGGING } from './debugging-
|
|
6
|
+
import { C as CURRENT_FEATURES } from './canary-features-D1wplYmb.js';
|
|
7
|
+
import { L as LOGGING } from './debugging-DIxmg1HX.js';
|
|
8
8
|
|
|
9
9
|
function getEnv() {
|
|
10
10
|
const {
|
|
@@ -122,6 +122,7 @@ const DEPRECATE_CATCH_ALL = '99.0';
|
|
|
122
122
|
* e.g. `app/models/foo/bar-bem.js` must have a type of `foo/bar-bem`
|
|
123
123
|
*
|
|
124
124
|
* @property DEPRECATE_NON_STRICT_TYPES
|
|
125
|
+
* @type {Boolean}
|
|
125
126
|
* @since 5.3
|
|
126
127
|
* @until 6.0
|
|
127
128
|
* @public
|
|
@@ -146,6 +147,7 @@ const DEPRECATE_NON_STRICT_TYPES = '5.3';
|
|
|
146
147
|
* custom identifier configuration should provide a string ID.
|
|
147
148
|
*
|
|
148
149
|
* @property DEPRECATE_NON_STRICT_ID
|
|
150
|
+
* @type {Boolean}
|
|
149
151
|
* @since 5.3
|
|
150
152
|
* @until 6.0
|
|
151
153
|
* @public
|
|
@@ -170,6 +172,7 @@ const DEPRECATE_NON_STRICT_ID = '5.3';
|
|
|
170
172
|
* update this version number to the proper version.
|
|
171
173
|
*
|
|
172
174
|
* @property DEPRECATE_COMPUTED_CHAINS
|
|
175
|
+
* @type {Boolean}
|
|
173
176
|
* @since 5.0
|
|
174
177
|
* @until 8.0
|
|
175
178
|
* @public
|
|
@@ -189,6 +192,7 @@ const DEPRECATE_COMPUTED_CHAINS = '7.0';
|
|
|
189
192
|
* of defaults.
|
|
190
193
|
*
|
|
191
194
|
* @property DEPRECATE_LEGACY_IMPORTS
|
|
195
|
+
* @type {Boolean}
|
|
192
196
|
* @since 5.3
|
|
193
197
|
* @until 6.0
|
|
194
198
|
* @public
|
|
@@ -232,6 +236,7 @@ const DEPRECATE_LEGACY_IMPORTS = '5.3';
|
|
|
232
236
|
* duplicate data from relationship payloads.
|
|
233
237
|
*
|
|
234
238
|
* @property DEPRECATE_NON_UNIQUE_PAYLOADS
|
|
239
|
+
* @type {Boolean}
|
|
235
240
|
* @since 5.3
|
|
236
241
|
* @until 6.0
|
|
237
242
|
* @public
|
|
@@ -379,6 +384,7 @@ const DEPRECATE_NON_UNIQUE_PAYLOADS = '5.3';
|
|
|
379
384
|
* a custom Cache with the relationship behaviors you need.
|
|
380
385
|
*
|
|
381
386
|
* @property DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE
|
|
387
|
+
* @type {Boolean}
|
|
382
388
|
* @since 5.3
|
|
383
389
|
* @until 6.0
|
|
384
390
|
* @public
|
|
@@ -396,6 +402,7 @@ const DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE = '5.3';
|
|
|
396
402
|
* When the flag is `false`, an error will be thrown when duplicates are added.
|
|
397
403
|
*
|
|
398
404
|
* @property DEPRECATE_MANY_ARRAY_DUPLICATES
|
|
405
|
+
* @type {Boolean}
|
|
399
406
|
* @since 5.3
|
|
400
407
|
* @until 6.0
|
|
401
408
|
* @public
|
|
@@ -410,6 +417,7 @@ const DEPRECATE_MANY_ARRAY_DUPLICATES = '5.3';
|
|
|
410
417
|
* from EmberObject.
|
|
411
418
|
*
|
|
412
419
|
* @property DEPRECATE_STORE_EXTENDS_EMBER_OBJECT
|
|
420
|
+
* @type {Boolean}
|
|
413
421
|
* @since 5.4
|
|
414
422
|
* @until 6.0
|
|
415
423
|
* @public
|
|
@@ -434,6 +442,7 @@ const DEPRECATE_STORE_EXTENDS_EMBER_OBJECT = '5.4';
|
|
|
434
442
|
* - `SchemaService.relationshipsDefinitionFor` method is deprecated in favor of the `SchemaService.fields` method
|
|
435
443
|
*
|
|
436
444
|
* @property ENABLE_LEGACY_SCHEMA_SERVICE
|
|
445
|
+
* @type {Boolean}
|
|
437
446
|
* @since 5.4
|
|
438
447
|
* @until 6.0
|
|
439
448
|
* @public
|
|
@@ -467,6 +476,7 @@ const ENABLE_LEGACY_SCHEMA_SERVICE = '5.4';
|
|
|
467
476
|
* ```
|
|
468
477
|
*
|
|
469
478
|
* @property DEPRECATE_EMBER_INFLECTOR
|
|
479
|
+
* @type {Boolean}
|
|
470
480
|
* @since 5.3
|
|
471
481
|
* @until 6.0
|
|
472
482
|
* @public
|
|
@@ -484,6 +494,7 @@ const DEPRECATE_EMBER_INFLECTOR = '5.3';
|
|
|
484
494
|
* print and can be resolved.
|
|
485
495
|
*
|
|
486
496
|
* @property DISABLE_7X_DEPRECATIONS
|
|
497
|
+
* @type {Boolean}
|
|
487
498
|
* @since 5.3
|
|
488
499
|
* @until 7.0
|
|
489
500
|
* @public
|
|
@@ -523,6 +534,7 @@ const DISABLE_7X_DEPRECATIONS = '7.0';
|
|
|
523
534
|
* ```
|
|
524
535
|
*
|
|
525
536
|
* @property DEPRECATE_TRACKING_PACKAGE
|
|
537
|
+
* @type {Boolean}
|
|
526
538
|
* @since 5.5
|
|
527
539
|
* @until 6.0
|
|
528
540
|
* @public
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/-private/utils/get-env.ts","../src/deprecation-versions.ts","../src/-private/utils/deprecations.ts","../src/-private/utils/features.ts","../src/-private/utils/logging.ts","../src/index.ts"],"sourcesContent":["export function getEnv(): {\n TESTING: boolean;\n PRODUCTION: boolean;\n DEBUG: boolean;\n IS_RECORDING: boolean;\n IS_CI: boolean;\n SHOULD_RECORD: boolean;\n} {\n const { EMBER_ENV, IS_TESTING, EMBER_CLI_TEST_COMMAND, NODE_ENV, CI, IS_RECORDING } = process.env;\n const PRODUCTION = EMBER_ENV === 'production' || (!EMBER_ENV && NODE_ENV === 'production');\n const DEBUG = !PRODUCTION;\n const TESTING = DEBUG || Boolean(EMBER_ENV === 'test' || IS_TESTING || EMBER_CLI_TEST_COMMAND);\n const SHOULD_RECORD = Boolean(!CI || IS_RECORDING);\n\n return {\n TESTING,\n PRODUCTION,\n DEBUG,\n IS_RECORDING: Boolean(IS_RECORDING),\n IS_CI: Boolean(CI),\n SHOULD_RECORD,\n };\n}\n","/**\n * @module @warp-drive-mirror/build-config\n */\n// ========================\n// FOR CONTRIBUTING AUTHORS\n//\n// Deprecations here should also have guides PR'd to the emberjs deprecation app\n//\n// github: https://github.com/ember-learn/deprecation-app\n// website: https://deprecations.emberjs.com\n//\n// Each deprecation should also be given an associated URL pointing to the\n// relevant guide.\n//\n// URLs should be of the form: https://deprecations.emberjs.com/v<major>.x#toc_<fileName>\n// where <major> is the major version of the deprecation and <fileName> is the\n// name of the markdown file in the guides repo.\n//\n// ========================\n//\n\n/**\n * ## Deprecation Management\n *\n * EmberData allows users to opt-in and remove code that exists to support deprecated\n * behaviors.\n *\n * If your app has resolved all deprecations present in a given version,\n * you may specify that version as your \"compatibility\" version to remove\n * the code that supported the deprecated behavior from your app.\n *\n * For instance, if a deprecation was introduced in 3.13, and the app specifies\n * 3.13 as its minimum version compatibility, any deprecations introduced before\n * or during 3.13 would be stripped away.\n *\n * An app can use a different version than what it specifies as it's compatibility\n * version. For instance, an App could be using `3.16` while specifying compatibility\n * with `3.12`. This would remove any deprecations that were present in or before `3.12`\n * but keep support for anything deprecated in or above `3.13`.\n *\n * You may also specify that specific deprecations are resolved. These approaches\n * may be used together.\n *\n * ```ts\n * setConfig(app, __dirname, {\n * // declare that all deprecations through \"5.0\" have been fully resolved\n * compatWith: '5.0',\n *\n * // mark individual deprecations as resolved by setting them to `false`\n * deprecations: {\n * // resolve individual deprecations here\n * },\n * });\n * ```\n *\n * > [!TIP]\n * > EmberData does not test against permutations of deprecations\n * > being stripped, our tests run against \"all deprecated code included\"\n * > and \"all deprecated code removed\". Unspecified behavior may sometimes occur\n * > when removing code for only some deprecations associated to a version number.\n *\n * @class CurrentDeprecations\n * @public\n */\nexport const DEPRECATE_CATCH_ALL = '99.0';\n/**\n * **id: ember-data:deprecate-non-strict-types**\n *\n * Currently, EmberData expects that the `type` property associated with\n * a resource follows several conventions.\n *\n * - The `type` property must be a non-empty string\n * - The `type` property must be singular\n * - The `type` property must be dasherized\n *\n * We are deprecating support for types that do not match this pattern\n * in order to unlock future improvements in which we can support `type`\n * being any string of your choosing.\n *\n * The goal is that in the future, you will be able to use any string\n * so long as it matches what your configured cache, identifier generation,\n * and schemas expect.\n *\n * E.G. It will matter not that your string is in a specific format like\n * singular, dasherized, etc. so long as everywhere you refer to the type\n * you use the same string.\n *\n * If using @ember-data-mirror/model, there will always be a restriction that the\n * `type` must match the path on disk where the model is defined.\n *\n * e.g. `app/models/foo/bar-bem.js` must have a type of `foo/bar-bem`\n *\n * @property DEPRECATE_NON_STRICT_TYPES\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_NON_STRICT_TYPES = '5.3';\n\n/**\n * **id: ember-data:deprecate-non-strict-id**\n *\n * Currently, EmberData expects that the `id` property associated with\n * a resource is a string.\n *\n * However, for legacy support in many locations we would accept a number\n * which would then immediately be coerced into a string.\n *\n * We are deprecating this legacy support for numeric IDs.\n *\n * The goal is that in the future, you will be able to use any ID format\n * so long as everywhere you refer to the ID you use the same format.\n *\n * However, for identifiers we will always use string IDs and so any\n * custom identifier configuration should provide a string ID.\n *\n * @property DEPRECATE_NON_STRICT_ID\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_NON_STRICT_ID = '5.3';\n\n/**\n * **id: <none yet assigned>**\n *\n * This is a planned deprecation which will trigger when observer or computed\n * chains are used to watch for changes on any EmberData LiveArray, CollectionRecordArray,\n * ManyArray or PromiseManyArray.\n *\n * Support for these chains is currently guarded by the deprecation flag\n * listed here, enabling removal of the behavior if desired.\n *\n * The instrumentation was added in 5.0 but the version number\n * is set to 7.0 as we do not want to strip support without\n * adding a deprecation message.\n *\n * Once we've added the deprecation message, we will\n * update this version number to the proper version.\n *\n * @property DEPRECATE_COMPUTED_CHAINS\n * @since 5.0\n * @until 8.0\n * @public\n */\nexport const DEPRECATE_COMPUTED_CHAINS = '7.0';\n\n/**\n * **id: ember-data:deprecate-legacy-imports**\n *\n * Deprecates when importing from `ember-data/*` instead of `@ember-data/*`\n * in order to prepare for the eventual removal of the legacy `ember-data/*`\n *\n * All imports from `ember-data/*` should be updated to `@ember-data/*`\n * except for `ember-data/store`. When you are using `ember-data` (as opposed to\n * installing the indivudal packages) you should import from `ember-data/store`\n * instead of `@ember-data-mirror/store` in order to receive the appropriate configuration\n * of defaults.\n *\n * @property DEPRECATE_LEGACY_IMPORTS\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_LEGACY_IMPORTS = '5.3';\n\n/**\n * **id: ember-data:deprecate-non-unique-collection-payloads**\n *\n * Deprecates when the data for a hasMany relationship contains\n * duplicate identifiers.\n *\n * Previously, relationships would silently de-dupe the data\n * when received, but this behavior is being removed in favor\n * of erroring if the same related record is included multiple\n * times.\n *\n * For instance, in JSON:API the below relationship data would\n * be considered invalid:\n *\n * ```json\n * {\n * \"data\": {\n * \"type\": \"article\",\n * \"id\": \"1\",\n * \"relationships\": {\n * \"comments\": {\n * \"data\": [\n * { \"type\": \"comment\", \"id\": \"1\" },\n * { \"type\": \"comment\", \"id\": \"2\" },\n * { \"type\": \"comment\", \"id\": \"1\" } // duplicate\n * ]\n * }\n * }\n * }\n * ```\n *\n * To resolve this deprecation, either update your server to\n * not include duplicate data, or implement normalization logic\n * in either a request handler or serializer which removes\n * duplicate data from relationship payloads.\n *\n * @property DEPRECATE_NON_UNIQUE_PAYLOADS\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_NON_UNIQUE_PAYLOADS = '5.3';\n\n/**\n * **id: ember-data:deprecate-relationship-remote-update-clearing-local-state**\n *\n * Deprecates when a relationship is updated remotely and the local state\n * is cleared of all changes except for \"new\" records.\n *\n * Instead, any records not present in the new payload will be considered\n * \"removed\" while any records present in the new payload will be considered \"added\".\n *\n * This allows us to \"commit\" local additions and removals, preserving any additions\n * or removals that are not yet reflected in the remote state.\n *\n * For instance, given the following initial state:\n *\n * remote: A, B, C\n * local: add D, E\n * remove B, C\n * => A, D, E\n *\n *\n * If after an update, the remote state is now A, B, D, F then the new state will be\n *\n * remote: A, B, D, F\n * local: add E\n * remove B\n * => A, D, E, F\n *\n * Under the old behavior the updated local state would instead have been\n * => A, B, D, F\n *\n * Similarly, if a belongsTo remote State was A while its local state was B,\n * then under the old behavior if the remote state changed to C, the local state\n * would be updated to C. Under the new behavior, the local state would remain B.\n *\n * If the remote state was A while its local state was `null`, then under the old\n * behavior if the remote state changed to C, the local state would be updated to C.\n * Under the new behavior, the local state would remain `null`.\n *\n * Thus the new correct mental model is that the state of the relationship at any point\n * in time is whatever the most recent remote state is, plus any local additions or removals\n * you have made that have not yet been reflected by the remote state.\n *\n * > Note: The old behavior extended to modifying the inverse of a relationship. So if\n * > you had local state not reflected in the new remote state, inverses would be notified\n * > and their state reverted as well when \"resetting\" the relationship.\n * > Under the new behavior, since the local state is preserved the inverses will also\n * > not be reverted.\n *\n * ### Resolving this deprecation\n *\n * Resolving this deprecation can be done individually for each relationship\n * or globally for all relationships.\n *\n * To resolve it globally, set the `DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE`\n * to `false` in ember-cli-build.js\n *\n * ```js\n * const { setConfig } = await import('@warp-drive-mirror/build-config');\n *\n * let app = new EmberApp(defaults, {});\n *\n * setConfig(app, __dirname, {\n * deprecations: {\n * // set to false to strip the deprecated code (thereby opting into the new behavior)\n * DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE: false\n * }\n * });\n * ```\n *\n * To resolve this deprecation on an individual relationship, adjust the `options` passed to\n * the relationship. For relationships with inverses, both sides MUST be migrated to the new\n * behavior at the same time.\n *\n * ```js\n * class Person extends Model {\n * @hasMany('person', {\n * async: false,\n * inverse: null,\n * resetOnRemoteUpdate: false\n * }) children;\n *\n * @belongsTo('person', {\n * async: false,\n * inverse: null,\n * resetOnRemoteUpdate: false\n * }) parent;\n * }\n * ```\n *\n * > Note: false is the only valid value here, all other values (including missing)\n * > will be treated as true, where `true` is the legacy behavior that is now deprecated.\n *\n * Once you have migrated all relationships, you can remove the the resetOnRemoteUpdate\n * option and set the deprecation flag to false in ember-cli-build.\n *\n * ### What if I don't want the new behavior?\n *\n * EmberData's philosophy is to not make assumptions about your application. Where possible\n * we seek out \"100%\" solutions – solutions that work for all use cases - and where that is\n * not possible we default to \"90%\" solutions – solutions that work for the vast majority of use\n * cases. In the case of \"90%\" solutions we look for primitives that allow you to resolve the\n * 10% case in your application. If no such primitives exist, we provide an escape hatch that\n * ensures you can build the behavior you need without adopting the cost of the default solution.\n *\n * In this case, the old behavior was a \"40%\" solution. The inability for an application developer\n * to determine what changes were made locally, and thus what changes should be preserved, made\n * it impossible to build certain features easily, or in some cases at all. The proliferation of\n * feature requests, bug reports (from folks surprised by the prior behavior) and addon attempts\n * in this space are all evidence of this.\n *\n * We believe the new behavior is a \"90%\" solution. It works for the vast majority of use cases,\n * often without noticeable changes to existing application behavior, and provides primitives that\n * allow you to build the behavior you need for the remaining 10%.\n *\n * The great news is that this behavior defaults to trusting your API similar to the old behavior.\n * If your API is correct, you will not need to make any changes to your application to adopt\n * the new behavior.\n *\n * This means the 10% cases are those where you can't trust your API to provide the correct\n * information. In these cases, because you now have cheap access to a diff of the relationship\n * state, there are a few options that weren't available before:\n *\n * - you can adjust returned API payloads to contain the expected changes that it doesn't include\n * - you can modify local state by adding or removing records on the HasMany record array to remove\n * any local changes that were not returned by the API.\n * - you can use `<Cache>.mutate(mutation)` to directly modify the local cache state of the relationship\n * to match the expected state.\n *\n * What this version (5.3) does not yet provide is a way to directly modify the cache's remote state\n * for the relationship via public APIs other than via the broader action of upserting a response via\n * `<Cache>.put(document)`. However, such an API was sketched in the Cache 2.1 RFC\n * `<Cache>.patch(operation)` and is likely to be added in a future 5.x release of EmberData.\n *\n * This version (5.3) also does not yet provide a way to directly modify the graph (a general purpose\n * subset of cache behaviors specific to relationships) via public APIs. However, during the\n * 5.x release series we will be working on finalizing the Graph API and making it public.\n *\n * If none of these options work for you, you can always opt-out more broadly by implementing\n * a custom Cache with the relationship behaviors you need.\n *\n * @property DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE = '5.3';\n\n/**\n * **id: ember-data:deprecate-many-array-duplicates**\n *\n * When the flag is `true` (default), adding duplicate records to a `ManyArray`\n * is deprecated in non-production environments. In production environments,\n * duplicate records added to a `ManyArray` will be deduped and no error will\n * be thrown.\n *\n * When the flag is `false`, an error will be thrown when duplicates are added.\n *\n * @property DEPRECATE_MANY_ARRAY_DUPLICATES\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_MANY_ARRAY_DUPLICATES = '5.3';\n\n/**\n * **id: ember-data:deprecate-store-extends-ember-object**\n *\n * When the flag is `true` (default), the Store class will extend from `@ember/object`.\n * When the flag is `false` or `ember-source` is not present, the Store will not extend\n * from EmberObject.\n *\n * @property DEPRECATE_STORE_EXTENDS_EMBER_OBJECT\n * @since 5.4\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_STORE_EXTENDS_EMBER_OBJECT = '5.4';\n\n/**\n * **id: ember-data:schema-service-updates**\n *\n * When the flag is `true` (default), the legacy schema\n * service features will be enabled on the store and\n * the service, and deprecations will be thrown when\n * they are used.\n *\n * Deprecated features include:\n *\n * - `Store.registerSchema` method is deprecated in favor of the `Store.createSchemaService` hook\n * - `Store.registerSchemaDefinitionService` method is deprecated in favor of the `Store.createSchemaService` hook\n * - `Store.getSchemaDefinitionService` method is deprecated in favor of `Store.schema` property\n * - `SchemaService.doesTypeExist` method is deprecated in favor of the `SchemaService.hasResource` method\n * - `SchemaService.attributesDefinitionFor` method is deprecated in favor of the `SchemaService.fields` method\n * - `SchemaService.relationshipsDefinitionFor` method is deprecated in favor of the `SchemaService.fields` method\n *\n * @property ENABLE_LEGACY_SCHEMA_SERVICE\n * @since 5.4\n * @until 6.0\n * @public\n */\nexport const ENABLE_LEGACY_SCHEMA_SERVICE = '5.4';\n\n/**\n * **id: warp-drive.ember-inflector**\n *\n * Deprecates the use of ember-inflector for pluralization and singularization in favor\n * of the `@ember-data-mirror/request-utils` package.\n *\n * Rule configuration methods (singular, plural, uncountable, irregular) and\n * usage methods (singularize, pluralize) are are available as imports from\n * `@ember-data-mirror/request-utils/string`\n *\n * Notable differences with ember-inflector:\n * - there cannot be multiple inflector instances with separate rules\n * - pluralization does not support a count argument\n * - string caches now default to 10k entries instead of 1k, and this\n * size is now configurable. Additionally, the cache is now a LRU cache\n * instead of a first-N cache.\n *\n * This deprecation can be resolved by removing usage of ember-inflector or by using\n * both ember-inflector and @ember-data-mirror/request-utils in parallel and updating your\n * EmberData/WarpDrive build config to mark the deprecation as resolved\n * in ember-cli-build\n *\n * ```js\n * setConfig(app, __dirname, { deprecations: { DEPRECATE_EMBER_INFLECTOR: false }});\n * ```\n *\n * @property DEPRECATE_EMBER_INFLECTOR\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_EMBER_INFLECTOR = '5.3';\n\n/**\n * This is a special flag that can be used to opt-in early to receiving deprecations introduced in 6.x\n * which have had their infra backported to 5.x versions of EmberData.\n *\n * When this flag is not present or set to `true`, the deprecations from the 6.x branch\n * will not print their messages and the deprecation cannot be resolved.\n *\n * When this flag is present and set to `false`, the deprecations from the 6.x branch will\n * print and can be resolved.\n *\n * @property DISABLE_7X_DEPRECATIONS\n * @since 5.3\n * @until 7.0\n * @public\n */\nexport const DISABLE_7X_DEPRECATIONS = '7.0';\n\n/**\n * **id: warp-drive:deprecate-tracking-package**\n *\n * Deprecates the use of the @ember-data-mirror/tracking package which\n * historically provided bindings into Ember's reactivity system.\n *\n * This package is no longer needed as the configuration is now\n * provided by the @warp-drive-mirror/ember package.\n *\n * This deprecation can be resolved by removing the\n * @ember-data-mirror/tracking package from your project and ensuring\n * that your app.js file has the following import:\n *\n * ```js\n * import '@warp-drive-mirror/ember/install';\n * ```\n *\n * Once this import is present, you can remove the deprecation\n * by setting the deprecation to `false` in your build config:\n *\n * ```js\n * // inside of ember-cli-build.js\n *\n * const { setConfig } = await import('@warp-drive-mirror/build-config');\n *\n * setConfig(app, __dirname, {\n * deprecations: {\n * DEPRECATE_TRACKING_PACKAGE: false\n * }\n * });\n * ```\n *\n * @property DEPRECATE_TRACKING_PACKAGE\n * @since 5.5\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_TRACKING_PACKAGE = '5.5';\n","import semver from 'semver';\n\nimport * as CURRENT_DEPRECATIONS from '../../deprecation-versions.ts';\ntype MajorMinor = `${number}.${number}`;\ntype DeprecationFlag = keyof typeof CURRENT_DEPRECATIONS;\n\nfunction deprecationIsResolved(deprecatedSince: MajorMinor, compatVersion: MajorMinor) {\n return semver.lte(semver.minVersion(deprecatedSince)!, semver.minVersion(compatVersion)!);\n}\n\nconst NextMajorVersion = '6.';\n\nfunction deprecationIsNextMajorCycle(deprecatedSince: MajorMinor) {\n return deprecatedSince.startsWith(NextMajorVersion);\n}\n\nexport function getDeprecations(\n compatVersion: MajorMinor | null | undefined,\n deprecations?: { [key in DeprecationFlag]?: boolean }\n): { [key in DeprecationFlag]: boolean } {\n const flags = {} as Record<DeprecationFlag, boolean>;\n const keys = Object.keys(CURRENT_DEPRECATIONS) as DeprecationFlag[];\n const DISABLE_7X_DEPRECATIONS = deprecations?.DISABLE_7X_DEPRECATIONS ?? true;\n\n keys.forEach((flag) => {\n const deprecatedSince = CURRENT_DEPRECATIONS[flag];\n const isDeactivatedDeprecationNotice = DISABLE_7X_DEPRECATIONS && deprecationIsNextMajorCycle(deprecatedSince);\n let flagState = true; // default to no code-stripping\n\n if (!isDeactivatedDeprecationNotice) {\n // if we have a specific flag setting, use it\n if (typeof deprecations?.[flag] === 'boolean') {\n flagState = deprecations?.[flag]!;\n } else if (compatVersion) {\n // if we are told we are compatible with a version\n // we check if we can strip this flag\n const isResolved = deprecationIsResolved(deprecatedSince, compatVersion);\n // if we've resolved, we strip (by setting the flag to false)\n /*\n if (DEPRECATED_FEATURE) {\n // deprecated code path\n } else {\n // if needed a non-deprecated code path\n }\n */\n flagState = !isResolved;\n }\n }\n\n // console.log(`${flag}=${flagState} (${deprecatedSince} <= ${compatVersion})`);\n flags[flag] = flagState;\n });\n\n return flags;\n}\n","import fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nimport * as CURRENT_FEATURES from '../../canary-features.ts';\ntype FEATURE = keyof typeof CURRENT_FEATURES;\n\nconst dirname = typeof __dirname !== 'undefined' ? __dirname : fileURLToPath(new URL('.', import.meta.url));\nconst relativePkgPath = path.join(dirname, '../package.json');\n\nconst version = JSON.parse(fs.readFileSync(relativePkgPath, 'utf-8')).version;\nconst isCanary = version.includes('alpha');\n\nexport function getFeatures(isProd: boolean): { [key in FEATURE]: boolean } {\n const features = Object.assign({}, CURRENT_FEATURES) as Record<FEATURE, boolean>;\n const keys = Object.keys(features) as FEATURE[];\n\n if (!isCanary) {\n // disable all features with a current value of `null`\n for (const feature of keys) {\n let featureValue = features[feature];\n\n if (featureValue === null) {\n features[feature] = false;\n }\n }\n return features;\n }\n\n const FEATURE_OVERRIDES = process.env.WARP_DRIVE_FEATURE_OVERRIDE;\n if (FEATURE_OVERRIDES === 'ENABLE_ALL_OPTIONAL') {\n // enable all features with a current value of `null`\n for (const feature of keys) {\n let featureValue = features[feature];\n\n if (featureValue === null) {\n features[feature] = true;\n }\n }\n } else if (FEATURE_OVERRIDES === 'DISABLE_ALL') {\n // disable all features, including those with a value of `true`\n for (const feature of keys) {\n features[feature] = false;\n }\n } else if (FEATURE_OVERRIDES) {\n // enable only the specific features listed in the environment\n // variable (comma separated)\n const forcedFeatures = FEATURE_OVERRIDES.split(',');\n for (let i = 0; i < forcedFeatures.length; i++) {\n let featureName = forcedFeatures[i];\n\n if (!keys.includes(featureName as FEATURE)) {\n throw new Error(`Unknown feature flag: ${featureName}`);\n }\n\n features[featureName as FEATURE] = true;\n }\n }\n\n if (isProd) {\n // disable all features with a current value of `null`\n for (const feature of keys) {\n let featureValue = features[feature];\n\n if (featureValue === null) {\n features[feature] = false;\n }\n }\n }\n\n return features;\n}\n","import * as LOGGING from '../../debugging.ts';\n\ntype LOG_CONFIG_KEY = keyof typeof LOGGING;\nexport type LOG_CONFIG = { [key in LOG_CONFIG_KEY]: boolean };\n\nexport function createLoggingConfig(\n env: { DEBUG: boolean; TESTING: boolean; PRODUCTION: boolean },\n debug: LOG_CONFIG\n): LOG_CONFIG {\n const config = {} as LOG_CONFIG;\n const keys = Object.keys(LOGGING) as LOG_CONFIG_KEY[];\n\n for (const key of keys) {\n if (env.DEBUG || env.TESTING) {\n config[key] = true;\n } else {\n config[key] = debug[key] || false;\n }\n }\n\n return config;\n}\n","/**\n * Settings configuration for deprecations, optional features, development/testing\n * support and debug logging is done using `setConfig` in `ember-cli-build`.\n *\n * ```ts\n * 'use strict';\n *\n * const EmberApp = require('ember-cli/lib/broccoli/ember-app');\n *\n * module.exports = async function (defaults) {\n * const { setConfig } = await import('@warp-drive-mirror/build-config');\n *\n * const app = new EmberApp(defaults, {});\n *\n * setConfig(app, __dirname, {\n * // settings here\n * });\n *\n * const { Webpack } = require('@embroider/webpack');\n * return require('@embroider/compat').compatBuild(app, Webpack, {});\n * };\n *\n * ```\n *\n * Available settings include:\n *\n * - [Debug Logging](../classes/DebugLogging)\n * - [Deprecated Code Removal](../classes/CurrentDeprecations)\n * - [Canary Feature Activation](../classes/CanaryFeatures)\n *\n * As well as:\n *\n * ### polyfillUUID\n *\n * If you are using the library in an environment that does not support `window.crypto.randomUUID`\n * you can enable a polyfill for it.\n *\n * ```ts\n * setConfig(app, __dirname, {\n * polyfillUUID: true\n * });\n * ```\n *\n * ### includeDataAdapterInProduction\n *\n * By default, the integration required to support the ember inspector browser extension\n * is included in production builds only when using the `ember-data` package. Otherwise\n * the default is to exclude it. This setting allows to explicitly enable/disable it in\n * production builds.\n *\n * ```ts\n * setConfig(app, __dirname, {\n * includeDataAdapterInProduction: true\n * });\n * ```\n *\n * @module @warp-drive-mirror/build-config\n * @main @warp-drive-mirror/build-config\n */\nimport EmbroiderMacros from '@embroider/macros/src/node.js';\nimport { getEnv } from './-private/utils/get-env.ts';\nimport { getDeprecations } from './-private/utils/deprecations.ts';\nimport { getFeatures } from './-private/utils/features.ts';\nimport * as LOGGING from './debugging.ts';\nimport type { MacrosConfig } from '@embroider/macros/src/node.js';\nimport { createLoggingConfig } from './-private/utils/logging.ts';\n\nconst _MacrosConfig = EmbroiderMacros.MacrosConfig as unknown as typeof MacrosConfig;\n\ntype LOG_CONFIG_KEY = keyof typeof LOGGING;\n\nexport type WarpDriveConfig = {\n debug?: Partial<InternalWarpDriveConfig['debug']>;\n polyfillUUID?: boolean;\n includeDataAdapterInProduction?: boolean;\n compatWith?: `${number}.${number}`;\n deprecations?: Partial<InternalWarpDriveConfig['deprecations']>;\n features?: Partial<InternalWarpDriveConfig['features']>;\n};\n\ntype InternalWarpDriveConfig = {\n debug: { [key in LOG_CONFIG_KEY]: boolean };\n polyfillUUID: boolean;\n includeDataAdapter: boolean;\n compatWith: `${number}.${number}` | null;\n deprecations: ReturnType<typeof getDeprecations>;\n features: ReturnType<typeof getFeatures>;\n activeLogging: { [key in LOG_CONFIG_KEY]: boolean };\n env: {\n TESTING: boolean;\n PRODUCTION: boolean;\n DEBUG: boolean;\n };\n};\n\ntype MacrosWithGlobalConfig = Omit<MacrosConfig, 'globalConfig'> & { globalConfig: Record<string, unknown> };\n\nfunction recastMacrosConfig(macros: object): MacrosWithGlobalConfig {\n if (!('globalConfig' in macros)) {\n throw new Error('Expected MacrosConfig to have a globalConfig property');\n }\n return macros as MacrosWithGlobalConfig;\n}\n\nexport function setConfig(macros: object, config: WarpDriveConfig): void;\nexport function setConfig(context: object, appRoot: string, config: WarpDriveConfig): void;\nexport function setConfig(context: object, appRootOrConfig: string | WarpDriveConfig, config?: WarpDriveConfig): void {\n const isEmberClassicUsage = arguments.length === 3;\n const macros = recastMacrosConfig(\n isEmberClassicUsage ? _MacrosConfig.for(context, appRootOrConfig as string) : context\n );\n\n const userConfig = isEmberClassicUsage ? config! : (appRootOrConfig as WarpDriveConfig);\n\n const isLegacySupport = (userConfig as unknown as { ___legacy_support?: boolean }).___legacy_support;\n const hasDeprecatedConfig = isLegacySupport && Object.keys(userConfig).length > 1;\n const hasInitiatedConfig = macros.globalConfig['WarpDriveMirror'];\n\n // setConfig called by user prior to legacy support called\n if (isLegacySupport && hasInitiatedConfig) {\n if (hasDeprecatedConfig) {\n throw new Error(\n 'You have provided a config object to setConfig, but are also using the legacy emberData options key in ember-cli-build. Please remove the emberData key from options.'\n );\n }\n return;\n }\n\n // legacy support called prior to user setConfig\n if (isLegacySupport && hasDeprecatedConfig) {\n // We don't want to print this just yet because we are going to re-arrange packages\n // and this would be come an import from @warp-drive/core. Better to not deprecate twice.\n // console.warn(\n // `You are using the legacy emberData key in your ember-cli-build.js file. This key is deprecated and will be removed in the next major version of EmberData/WarpDrive. Please use \\`import { setConfig } from '@warp-drive-mirror/build-config';\\` instead.`\n // );\n }\n\n // included hooks run during class initialization of the EmberApp instance\n // so our hook will run before the user has a chance to call setConfig\n // else we could print a useful message here\n // else if (isLegacySupport) {\n // console.warn(\n // `WarpDrive requires your ember-cli-build file to set a base configuration for the project.\\n\\nUsage:\\n\\t\\`import { setConfig } from '@warp-drive-mirror/build-config';\\n\\tsetConfig(app, __dirname, {});\\``\n // );\n // }\n\n const debugOptions: InternalWarpDriveConfig['debug'] = Object.assign({}, LOGGING, userConfig.debug);\n\n const env = getEnv();\n const DEPRECATIONS = getDeprecations(userConfig.compatWith || null, userConfig.deprecations);\n const FEATURES = getFeatures(env.PRODUCTION);\n\n const includeDataAdapterInProduction =\n typeof userConfig.includeDataAdapterInProduction === 'boolean' ? userConfig.includeDataAdapterInProduction : true;\n const includeDataAdapter = env.PRODUCTION ? includeDataAdapterInProduction : true;\n\n const finalizedConfig: InternalWarpDriveConfig = {\n debug: debugOptions,\n polyfillUUID: userConfig.polyfillUUID ?? false,\n includeDataAdapter,\n compatWith: userConfig.compatWith ?? null,\n deprecations: DEPRECATIONS,\n features: FEATURES,\n activeLogging: createLoggingConfig(env, debugOptions),\n env,\n };\n\n macros.setGlobalConfig(import.meta.filename, 'WarpDriveMirror', finalizedConfig);\n}\n"],"names":["getEnv","EMBER_ENV","IS_TESTING","EMBER_CLI_TEST_COMMAND","NODE_ENV","CI","IS_RECORDING","process","env","PRODUCTION","DEBUG","TESTING","Boolean","SHOULD_RECORD","IS_CI","DEPRECATE_CATCH_ALL","DEPRECATE_NON_STRICT_TYPES","DEPRECATE_NON_STRICT_ID","DEPRECATE_COMPUTED_CHAINS","DEPRECATE_LEGACY_IMPORTS","DEPRECATE_NON_UNIQUE_PAYLOADS","DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE","DEPRECATE_MANY_ARRAY_DUPLICATES","DEPRECATE_STORE_EXTENDS_EMBER_OBJECT","ENABLE_LEGACY_SCHEMA_SERVICE","DEPRECATE_EMBER_INFLECTOR","DISABLE_7X_DEPRECATIONS","DEPRECATE_TRACKING_PACKAGE","deprecationIsResolved","deprecatedSince","compatVersion","semver","lte","minVersion","NextMajorVersion","deprecationIsNextMajorCycle","startsWith","getDeprecations","deprecations","flags","keys","Object","CURRENT_DEPRECATIONS","forEach","flag","isDeactivatedDeprecationNotice","flagState","isResolved","dirname","__dirname","fileURLToPath","relativePkgPath","path","join","version","JSON","parse","fs","readFileSync","isCanary","includes","getFeatures","isProd","features","assign","CURRENT_FEATURES","feature","featureValue","FEATURE_OVERRIDES","WARP_DRIVE_FEATURE_OVERRIDE","forcedFeatures","split","i","length","featureName","Error","createLoggingConfig","debug","config","LOGGING","key","_MacrosConfig","EmbroiderMacros","MacrosConfig","recastMacrosConfig","macros","setConfig","context","appRootOrConfig","isEmberClassicUsage","arguments","for","userConfig","isLegacySupport","___legacy_support","hasDeprecatedConfig","hasInitiatedConfig","globalConfig","debugOptions","DEPRECATIONS","compatWith","FEATURES","includeDataAdapterInProduction","includeDataAdapter","finalizedConfig","polyfillUUID","activeLogging","setGlobalConfig","import","meta","filename"],"mappings":";;;;;;;;AAAO,SAASA,MAAMA,GAOpB;EACA,MAAM;IAAEC,SAAS;IAAEC,UAAU;IAAEC,sBAAsB;IAAEC,QAAQ;IAAEC,EAAE;AAAEC,IAAAA;GAAc,GAAGC,OAAO,CAACC,GAAG;EACjG,MAAMC,UAAU,GAAGR,SAAS,KAAK,YAAY,IAAK,CAACA,SAAS,IAAIG,QAAQ,KAAK,YAAa;EAC1F,MAAMM,KAAK,GAAG,CAACD,UAAU;AACzB,EAAA,MAAME,OAAO,GAAGD,KAAK,IAAIE,OAAO,CAACX,SAAS,KAAK,MAAM,IAAIC,UAAU,IAAIC,sBAAsB,CAAC;EAC9F,MAAMU,aAAa,GAAGD,OAAO,CAAC,CAACP,EAAE,IAAIC,YAAY,CAAC;EAElD,OAAO;IACLK,OAAO;IACPF,UAAU;IACVC,KAAK;AACLJ,IAAAA,YAAY,EAAEM,OAAO,CAACN,YAAY,CAAC;AACnCQ,IAAAA,KAAK,EAAEF,OAAO,CAACP,EAAE,CAAC;AAClBQ,IAAAA;GACD;AACH;;ACtBA;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;AACO,MAAME,mBAAmB,GAAG,MAAM;AACzC;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,MAAMC,0BAA0B,GAAG,KAAK;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,uBAAuB,GAAG,KAAK;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,yBAAyB,GAAG,KAAK;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,wBAAwB,GAAG,KAAK;;AAE7C;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,MAAMC,6BAA6B,GAAG,KAAK;;AAElD;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;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;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,MAAMC,yDAAyD,GAAG,KAAK;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,+BAA+B,GAAG,KAAK;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oCAAoC,GAAG,KAAK;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,4BAA4B,GAAG,KAAK;;AAEjD;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,MAAMC,yBAAyB,GAAG,KAAK;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,uBAAuB,GAAG,KAAK;;AAE5C;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,MAAMC,0BAA0B,GAAG,KAAK;;;;;;;;;;;;;;;;;;;AC5e/C,SAASC,qBAAqBA,CAACC,eAA2B,EAAEC,aAAyB,EAAE;AACrF,EAAA,OAAOC,MAAM,CAACC,GAAG,CAACD,MAAM,CAACE,UAAU,CAACJ,eAAe,CAAC,EAAGE,MAAM,CAACE,UAAU,CAACH,aAAa,CAAE,CAAC;AAC3F;AAEA,MAAMI,gBAAgB,GAAG,IAAI;AAE7B,SAASC,2BAA2BA,CAACN,eAA2B,EAAE;AAChE,EAAA,OAAOA,eAAe,CAACO,UAAU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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/-private/utils/get-env.ts","../src/deprecation-versions.ts","../src/-private/utils/deprecations.ts","../src/-private/utils/features.ts","../src/-private/utils/logging.ts","../src/index.ts"],"sourcesContent":["export function getEnv(): {\n TESTING: boolean;\n PRODUCTION: boolean;\n DEBUG: boolean;\n IS_RECORDING: boolean;\n IS_CI: boolean;\n SHOULD_RECORD: boolean;\n} {\n const { EMBER_ENV, IS_TESTING, EMBER_CLI_TEST_COMMAND, NODE_ENV, CI, IS_RECORDING } = process.env;\n const PRODUCTION = EMBER_ENV === 'production' || (!EMBER_ENV && NODE_ENV === 'production');\n const DEBUG = !PRODUCTION;\n const TESTING = DEBUG || Boolean(EMBER_ENV === 'test' || IS_TESTING || EMBER_CLI_TEST_COMMAND);\n const SHOULD_RECORD = Boolean(!CI || IS_RECORDING);\n\n return {\n TESTING,\n PRODUCTION,\n DEBUG,\n IS_RECORDING: Boolean(IS_RECORDING),\n IS_CI: Boolean(CI),\n SHOULD_RECORD,\n };\n}\n","/**\n * @module @warp-drive-mirror/build-config\n */\n// ========================\n// FOR CONTRIBUTING AUTHORS\n//\n// Deprecations here should also have guides PR'd to the emberjs deprecation app\n//\n// github: https://github.com/ember-learn/deprecation-app\n// website: https://deprecations.emberjs.com\n//\n// Each deprecation should also be given an associated URL pointing to the\n// relevant guide.\n//\n// URLs should be of the form: https://deprecations.emberjs.com/v<major>.x#toc_<fileName>\n// where <major> is the major version of the deprecation and <fileName> is the\n// name of the markdown file in the guides repo.\n//\n// ========================\n//\n\n/**\n * ## Deprecation Management\n *\n * EmberData allows users to opt-in and remove code that exists to support deprecated\n * behaviors.\n *\n * If your app has resolved all deprecations present in a given version,\n * you may specify that version as your \"compatibility\" version to remove\n * the code that supported the deprecated behavior from your app.\n *\n * For instance, if a deprecation was introduced in 3.13, and the app specifies\n * 3.13 as its minimum version compatibility, any deprecations introduced before\n * or during 3.13 would be stripped away.\n *\n * An app can use a different version than what it specifies as it's compatibility\n * version. For instance, an App could be using `3.16` while specifying compatibility\n * with `3.12`. This would remove any deprecations that were present in or before `3.12`\n * but keep support for anything deprecated in or above `3.13`.\n *\n * You may also specify that specific deprecations are resolved. These approaches\n * may be used together.\n *\n * ```ts\n * setConfig(app, __dirname, {\n * // declare that all deprecations through \"5.0\" have been fully resolved\n * compatWith: '5.0',\n *\n * // mark individual deprecations as resolved by setting them to `false`\n * deprecations: {\n * // resolve individual deprecations here\n * },\n * });\n * ```\n *\n * > [!TIP]\n * > EmberData does not test against permutations of deprecations\n * > being stripped, our tests run against \"all deprecated code included\"\n * > and \"all deprecated code removed\". Unspecified behavior may sometimes occur\n * > when removing code for only some deprecations associated to a version number.\n *\n * @class CurrentDeprecations\n * @public\n */\nexport const DEPRECATE_CATCH_ALL = '99.0';\n/**\n * **id: ember-data:deprecate-non-strict-types**\n *\n * Currently, EmberData expects that the `type` property associated with\n * a resource follows several conventions.\n *\n * - The `type` property must be a non-empty string\n * - The `type` property must be singular\n * - The `type` property must be dasherized\n *\n * We are deprecating support for types that do not match this pattern\n * in order to unlock future improvements in which we can support `type`\n * being any string of your choosing.\n *\n * The goal is that in the future, you will be able to use any string\n * so long as it matches what your configured cache, identifier generation,\n * and schemas expect.\n *\n * E.G. It will matter not that your string is in a specific format like\n * singular, dasherized, etc. so long as everywhere you refer to the type\n * you use the same string.\n *\n * If using @ember-data-mirror/model, there will always be a restriction that the\n * `type` must match the path on disk where the model is defined.\n *\n * e.g. `app/models/foo/bar-bem.js` must have a type of `foo/bar-bem`\n *\n * @property DEPRECATE_NON_STRICT_TYPES\n * @type {Boolean}\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_NON_STRICT_TYPES = '5.3';\n\n/**\n * **id: ember-data:deprecate-non-strict-id**\n *\n * Currently, EmberData expects that the `id` property associated with\n * a resource is a string.\n *\n * However, for legacy support in many locations we would accept a number\n * which would then immediately be coerced into a string.\n *\n * We are deprecating this legacy support for numeric IDs.\n *\n * The goal is that in the future, you will be able to use any ID format\n * so long as everywhere you refer to the ID you use the same format.\n *\n * However, for identifiers we will always use string IDs and so any\n * custom identifier configuration should provide a string ID.\n *\n * @property DEPRECATE_NON_STRICT_ID\n * @type {Boolean}\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_NON_STRICT_ID = '5.3';\n\n/**\n * **id: <none yet assigned>**\n *\n * This is a planned deprecation which will trigger when observer or computed\n * chains are used to watch for changes on any EmberData LiveArray, CollectionRecordArray,\n * ManyArray or PromiseManyArray.\n *\n * Support for these chains is currently guarded by the deprecation flag\n * listed here, enabling removal of the behavior if desired.\n *\n * The instrumentation was added in 5.0 but the version number\n * is set to 7.0 as we do not want to strip support without\n * adding a deprecation message.\n *\n * Once we've added the deprecation message, we will\n * update this version number to the proper version.\n *\n * @property DEPRECATE_COMPUTED_CHAINS\n * @type {Boolean}\n * @since 5.0\n * @until 8.0\n * @public\n */\nexport const DEPRECATE_COMPUTED_CHAINS = '7.0';\n\n/**\n * **id: ember-data:deprecate-legacy-imports**\n *\n * Deprecates when importing from `ember-data/*` instead of `@ember-data/*`\n * in order to prepare for the eventual removal of the legacy `ember-data/*`\n *\n * All imports from `ember-data/*` should be updated to `@ember-data/*`\n * except for `ember-data/store`. When you are using `ember-data` (as opposed to\n * installing the indivudal packages) you should import from `ember-data/store`\n * instead of `@ember-data-mirror/store` in order to receive the appropriate configuration\n * of defaults.\n *\n * @property DEPRECATE_LEGACY_IMPORTS\n * @type {Boolean}\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_LEGACY_IMPORTS = '5.3';\n\n/**\n * **id: ember-data:deprecate-non-unique-collection-payloads**\n *\n * Deprecates when the data for a hasMany relationship contains\n * duplicate identifiers.\n *\n * Previously, relationships would silently de-dupe the data\n * when received, but this behavior is being removed in favor\n * of erroring if the same related record is included multiple\n * times.\n *\n * For instance, in JSON:API the below relationship data would\n * be considered invalid:\n *\n * ```json\n * {\n * \"data\": {\n * \"type\": \"article\",\n * \"id\": \"1\",\n * \"relationships\": {\n * \"comments\": {\n * \"data\": [\n * { \"type\": \"comment\", \"id\": \"1\" },\n * { \"type\": \"comment\", \"id\": \"2\" },\n * { \"type\": \"comment\", \"id\": \"1\" } // duplicate\n * ]\n * }\n * }\n * }\n * ```\n *\n * To resolve this deprecation, either update your server to\n * not include duplicate data, or implement normalization logic\n * in either a request handler or serializer which removes\n * duplicate data from relationship payloads.\n *\n * @property DEPRECATE_NON_UNIQUE_PAYLOADS\n * @type {Boolean}\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_NON_UNIQUE_PAYLOADS = '5.3';\n\n/**\n * **id: ember-data:deprecate-relationship-remote-update-clearing-local-state**\n *\n * Deprecates when a relationship is updated remotely and the local state\n * is cleared of all changes except for \"new\" records.\n *\n * Instead, any records not present in the new payload will be considered\n * \"removed\" while any records present in the new payload will be considered \"added\".\n *\n * This allows us to \"commit\" local additions and removals, preserving any additions\n * or removals that are not yet reflected in the remote state.\n *\n * For instance, given the following initial state:\n *\n * remote: A, B, C\n * local: add D, E\n * remove B, C\n * => A, D, E\n *\n *\n * If after an update, the remote state is now A, B, D, F then the new state will be\n *\n * remote: A, B, D, F\n * local: add E\n * remove B\n * => A, D, E, F\n *\n * Under the old behavior the updated local state would instead have been\n * => A, B, D, F\n *\n * Similarly, if a belongsTo remote State was A while its local state was B,\n * then under the old behavior if the remote state changed to C, the local state\n * would be updated to C. Under the new behavior, the local state would remain B.\n *\n * If the remote state was A while its local state was `null`, then under the old\n * behavior if the remote state changed to C, the local state would be updated to C.\n * Under the new behavior, the local state would remain `null`.\n *\n * Thus the new correct mental model is that the state of the relationship at any point\n * in time is whatever the most recent remote state is, plus any local additions or removals\n * you have made that have not yet been reflected by the remote state.\n *\n * > Note: The old behavior extended to modifying the inverse of a relationship. So if\n * > you had local state not reflected in the new remote state, inverses would be notified\n * > and their state reverted as well when \"resetting\" the relationship.\n * > Under the new behavior, since the local state is preserved the inverses will also\n * > not be reverted.\n *\n * ### Resolving this deprecation\n *\n * Resolving this deprecation can be done individually for each relationship\n * or globally for all relationships.\n *\n * To resolve it globally, set the `DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE`\n * to `false` in ember-cli-build.js\n *\n * ```js\n * const { setConfig } = await import('@warp-drive-mirror/build-config');\n *\n * let app = new EmberApp(defaults, {});\n *\n * setConfig(app, __dirname, {\n * deprecations: {\n * // set to false to strip the deprecated code (thereby opting into the new behavior)\n * DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE: false\n * }\n * });\n * ```\n *\n * To resolve this deprecation on an individual relationship, adjust the `options` passed to\n * the relationship. For relationships with inverses, both sides MUST be migrated to the new\n * behavior at the same time.\n *\n * ```js\n * class Person extends Model {\n * @hasMany('person', {\n * async: false,\n * inverse: null,\n * resetOnRemoteUpdate: false\n * }) children;\n *\n * @belongsTo('person', {\n * async: false,\n * inverse: null,\n * resetOnRemoteUpdate: false\n * }) parent;\n * }\n * ```\n *\n * > Note: false is the only valid value here, all other values (including missing)\n * > will be treated as true, where `true` is the legacy behavior that is now deprecated.\n *\n * Once you have migrated all relationships, you can remove the the resetOnRemoteUpdate\n * option and set the deprecation flag to false in ember-cli-build.\n *\n * ### What if I don't want the new behavior?\n *\n * EmberData's philosophy is to not make assumptions about your application. Where possible\n * we seek out \"100%\" solutions – solutions that work for all use cases - and where that is\n * not possible we default to \"90%\" solutions – solutions that work for the vast majority of use\n * cases. In the case of \"90%\" solutions we look for primitives that allow you to resolve the\n * 10% case in your application. If no such primitives exist, we provide an escape hatch that\n * ensures you can build the behavior you need without adopting the cost of the default solution.\n *\n * In this case, the old behavior was a \"40%\" solution. The inability for an application developer\n * to determine what changes were made locally, and thus what changes should be preserved, made\n * it impossible to build certain features easily, or in some cases at all. The proliferation of\n * feature requests, bug reports (from folks surprised by the prior behavior) and addon attempts\n * in this space are all evidence of this.\n *\n * We believe the new behavior is a \"90%\" solution. It works for the vast majority of use cases,\n * often without noticeable changes to existing application behavior, and provides primitives that\n * allow you to build the behavior you need for the remaining 10%.\n *\n * The great news is that this behavior defaults to trusting your API similar to the old behavior.\n * If your API is correct, you will not need to make any changes to your application to adopt\n * the new behavior.\n *\n * This means the 10% cases are those where you can't trust your API to provide the correct\n * information. In these cases, because you now have cheap access to a diff of the relationship\n * state, there are a few options that weren't available before:\n *\n * - you can adjust returned API payloads to contain the expected changes that it doesn't include\n * - you can modify local state by adding or removing records on the HasMany record array to remove\n * any local changes that were not returned by the API.\n * - you can use `<Cache>.mutate(mutation)` to directly modify the local cache state of the relationship\n * to match the expected state.\n *\n * What this version (5.3) does not yet provide is a way to directly modify the cache's remote state\n * for the relationship via public APIs other than via the broader action of upserting a response via\n * `<Cache>.put(document)`. However, such an API was sketched in the Cache 2.1 RFC\n * `<Cache>.patch(operation)` and is likely to be added in a future 5.x release of EmberData.\n *\n * This version (5.3) also does not yet provide a way to directly modify the graph (a general purpose\n * subset of cache behaviors specific to relationships) via public APIs. However, during the\n * 5.x release series we will be working on finalizing the Graph API and making it public.\n *\n * If none of these options work for you, you can always opt-out more broadly by implementing\n * a custom Cache with the relationship behaviors you need.\n *\n * @property DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE\n * @type {Boolean}\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE = '5.3';\n\n/**\n * **id: ember-data:deprecate-many-array-duplicates**\n *\n * When the flag is `true` (default), adding duplicate records to a `ManyArray`\n * is deprecated in non-production environments. In production environments,\n * duplicate records added to a `ManyArray` will be deduped and no error will\n * be thrown.\n *\n * When the flag is `false`, an error will be thrown when duplicates are added.\n *\n * @property DEPRECATE_MANY_ARRAY_DUPLICATES\n * @type {Boolean}\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_MANY_ARRAY_DUPLICATES = '5.3';\n\n/**\n * **id: ember-data:deprecate-store-extends-ember-object**\n *\n * When the flag is `true` (default), the Store class will extend from `@ember/object`.\n * When the flag is `false` or `ember-source` is not present, the Store will not extend\n * from EmberObject.\n *\n * @property DEPRECATE_STORE_EXTENDS_EMBER_OBJECT\n * @type {Boolean}\n * @since 5.4\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_STORE_EXTENDS_EMBER_OBJECT = '5.4';\n\n/**\n * **id: ember-data:schema-service-updates**\n *\n * When the flag is `true` (default), the legacy schema\n * service features will be enabled on the store and\n * the service, and deprecations will be thrown when\n * they are used.\n *\n * Deprecated features include:\n *\n * - `Store.registerSchema` method is deprecated in favor of the `Store.createSchemaService` hook\n * - `Store.registerSchemaDefinitionService` method is deprecated in favor of the `Store.createSchemaService` hook\n * - `Store.getSchemaDefinitionService` method is deprecated in favor of `Store.schema` property\n * - `SchemaService.doesTypeExist` method is deprecated in favor of the `SchemaService.hasResource` method\n * - `SchemaService.attributesDefinitionFor` method is deprecated in favor of the `SchemaService.fields` method\n * - `SchemaService.relationshipsDefinitionFor` method is deprecated in favor of the `SchemaService.fields` method\n *\n * @property ENABLE_LEGACY_SCHEMA_SERVICE\n * @type {Boolean}\n * @since 5.4\n * @until 6.0\n * @public\n */\nexport const ENABLE_LEGACY_SCHEMA_SERVICE = '5.4';\n\n/**\n * **id: warp-drive.ember-inflector**\n *\n * Deprecates the use of ember-inflector for pluralization and singularization in favor\n * of the `@ember-data-mirror/request-utils` package.\n *\n * Rule configuration methods (singular, plural, uncountable, irregular) and\n * usage methods (singularize, pluralize) are are available as imports from\n * `@ember-data-mirror/request-utils/string`\n *\n * Notable differences with ember-inflector:\n * - there cannot be multiple inflector instances with separate rules\n * - pluralization does not support a count argument\n * - string caches now default to 10k entries instead of 1k, and this\n * size is now configurable. Additionally, the cache is now a LRU cache\n * instead of a first-N cache.\n *\n * This deprecation can be resolved by removing usage of ember-inflector or by using\n * both ember-inflector and @ember-data-mirror/request-utils in parallel and updating your\n * EmberData/WarpDrive build config to mark the deprecation as resolved\n * in ember-cli-build\n *\n * ```js\n * setConfig(app, __dirname, { deprecations: { DEPRECATE_EMBER_INFLECTOR: false }});\n * ```\n *\n * @property DEPRECATE_EMBER_INFLECTOR\n * @type {Boolean}\n * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_EMBER_INFLECTOR = '5.3';\n\n/**\n * This is a special flag that can be used to opt-in early to receiving deprecations introduced in 6.x\n * which have had their infra backported to 5.x versions of EmberData.\n *\n * When this flag is not present or set to `true`, the deprecations from the 6.x branch\n * will not print their messages and the deprecation cannot be resolved.\n *\n * When this flag is present and set to `false`, the deprecations from the 6.x branch will\n * print and can be resolved.\n *\n * @property DISABLE_7X_DEPRECATIONS\n * @type {Boolean}\n * @since 5.3\n * @until 7.0\n * @public\n */\nexport const DISABLE_7X_DEPRECATIONS = '7.0';\n\n/**\n * **id: warp-drive:deprecate-tracking-package**\n *\n * Deprecates the use of the @ember-data-mirror/tracking package which\n * historically provided bindings into Ember's reactivity system.\n *\n * This package is no longer needed as the configuration is now\n * provided by the @warp-drive-mirror/ember package.\n *\n * This deprecation can be resolved by removing the\n * @ember-data-mirror/tracking package from your project and ensuring\n * that your app.js file has the following import:\n *\n * ```js\n * import '@warp-drive-mirror/ember/install';\n * ```\n *\n * Once this import is present, you can remove the deprecation\n * by setting the deprecation to `false` in your build config:\n *\n * ```js\n * // inside of ember-cli-build.js\n *\n * const { setConfig } = await import('@warp-drive-mirror/build-config');\n *\n * setConfig(app, __dirname, {\n * deprecations: {\n * DEPRECATE_TRACKING_PACKAGE: false\n * }\n * });\n * ```\n *\n * @property DEPRECATE_TRACKING_PACKAGE\n * @type {Boolean}\n * @since 5.5\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_TRACKING_PACKAGE = '5.5';\n","import semver from 'semver';\n\nimport * as CURRENT_DEPRECATIONS from '../../deprecation-versions.ts';\ntype MajorMinor = `${number}.${number}`;\ntype DeprecationFlag = keyof typeof CURRENT_DEPRECATIONS;\n\nfunction deprecationIsResolved(deprecatedSince: MajorMinor, compatVersion: MajorMinor) {\n return semver.lte(semver.minVersion(deprecatedSince)!, semver.minVersion(compatVersion)!);\n}\n\nconst NextMajorVersion = '6.';\n\nfunction deprecationIsNextMajorCycle(deprecatedSince: MajorMinor) {\n return deprecatedSince.startsWith(NextMajorVersion);\n}\n\nexport function getDeprecations(\n compatVersion: MajorMinor | null | undefined,\n deprecations?: { [key in DeprecationFlag]?: boolean }\n): { [key in DeprecationFlag]: boolean } {\n const flags = {} as Record<DeprecationFlag, boolean>;\n const keys = Object.keys(CURRENT_DEPRECATIONS) as DeprecationFlag[];\n const DISABLE_7X_DEPRECATIONS = deprecations?.DISABLE_7X_DEPRECATIONS ?? true;\n\n keys.forEach((flag) => {\n const deprecatedSince = CURRENT_DEPRECATIONS[flag];\n const isDeactivatedDeprecationNotice = DISABLE_7X_DEPRECATIONS && deprecationIsNextMajorCycle(deprecatedSince);\n let flagState = true; // default to no code-stripping\n\n if (!isDeactivatedDeprecationNotice) {\n // if we have a specific flag setting, use it\n if (typeof deprecations?.[flag] === 'boolean') {\n flagState = deprecations?.[flag]!;\n } else if (compatVersion) {\n // if we are told we are compatible with a version\n // we check if we can strip this flag\n const isResolved = deprecationIsResolved(deprecatedSince, compatVersion);\n // if we've resolved, we strip (by setting the flag to false)\n /*\n if (DEPRECATED_FEATURE) {\n // deprecated code path\n } else {\n // if needed a non-deprecated code path\n }\n */\n flagState = !isResolved;\n }\n }\n\n // console.log(`${flag}=${flagState} (${deprecatedSince} <= ${compatVersion})`);\n flags[flag] = flagState;\n });\n\n return flags;\n}\n","import fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nimport * as CURRENT_FEATURES from '../../canary-features.ts';\ntype FEATURE = keyof typeof CURRENT_FEATURES;\n\nconst dirname = typeof __dirname !== 'undefined' ? __dirname : fileURLToPath(new URL('.', import.meta.url));\nconst relativePkgPath = path.join(dirname, '../package.json');\n\nconst version = JSON.parse(fs.readFileSync(relativePkgPath, 'utf-8')).version;\nconst isCanary = version.includes('alpha');\n\nexport function getFeatures(isProd: boolean): { [key in FEATURE]: boolean } {\n const features = Object.assign({}, CURRENT_FEATURES) as Record<FEATURE, boolean>;\n const keys = Object.keys(features) as FEATURE[];\n\n if (!isCanary) {\n // disable all features with a current value of `null`\n for (const feature of keys) {\n let featureValue = features[feature];\n\n if (featureValue === null) {\n features[feature] = false;\n }\n }\n return features;\n }\n\n const FEATURE_OVERRIDES = process.env.WARP_DRIVE_FEATURE_OVERRIDE;\n if (FEATURE_OVERRIDES === 'ENABLE_ALL_OPTIONAL') {\n // enable all features with a current value of `null`\n for (const feature of keys) {\n let featureValue = features[feature];\n\n if (featureValue === null) {\n features[feature] = true;\n }\n }\n } else if (FEATURE_OVERRIDES === 'DISABLE_ALL') {\n // disable all features, including those with a value of `true`\n for (const feature of keys) {\n features[feature] = false;\n }\n } else if (FEATURE_OVERRIDES) {\n // enable only the specific features listed in the environment\n // variable (comma separated)\n const forcedFeatures = FEATURE_OVERRIDES.split(',');\n for (let i = 0; i < forcedFeatures.length; i++) {\n let featureName = forcedFeatures[i];\n\n if (!keys.includes(featureName as FEATURE)) {\n throw new Error(`Unknown feature flag: ${featureName}`);\n }\n\n features[featureName as FEATURE] = true;\n }\n }\n\n if (isProd) {\n // disable all features with a current value of `null`\n for (const feature of keys) {\n let featureValue = features[feature];\n\n if (featureValue === null) {\n features[feature] = false;\n }\n }\n }\n\n return features;\n}\n","import * as LOGGING from '../../debugging.ts';\n\ntype LOG_CONFIG_KEY = keyof typeof LOGGING;\nexport type LOG_CONFIG = { [key in LOG_CONFIG_KEY]: boolean };\n\nexport function createLoggingConfig(\n env: { DEBUG: boolean; TESTING: boolean; PRODUCTION: boolean },\n debug: LOG_CONFIG\n): LOG_CONFIG {\n const config = {} as LOG_CONFIG;\n const keys = Object.keys(LOGGING) as LOG_CONFIG_KEY[];\n\n for (const key of keys) {\n if (env.DEBUG || env.TESTING) {\n config[key] = true;\n } else {\n config[key] = debug[key] || false;\n }\n }\n\n return config;\n}\n","/**\n * Settings configuration for deprecations, optional features, development/testing\n * support and debug logging is done using `setConfig` in `ember-cli-build`.\n *\n * ```ts\n * 'use strict';\n *\n * const EmberApp = require('ember-cli/lib/broccoli/ember-app');\n *\n * module.exports = async function (defaults) {\n * const { setConfig } = await import('@warp-drive-mirror/build-config');\n *\n * const app = new EmberApp(defaults, {});\n *\n * setConfig(app, __dirname, {\n * // settings here\n * });\n *\n * const { Webpack } = require('@embroider/webpack');\n * return require('@embroider/compat').compatBuild(app, Webpack, {});\n * };\n *\n * ```\n *\n * Available settings include:\n *\n * - [Debug Logging](../classes/DebugLogging)\n * - [Deprecated Code Removal](../classes/CurrentDeprecations)\n * - [Canary Feature Activation](../classes/CanaryFeatures)\n *\n * As well as:\n *\n * ### polyfillUUID\n *\n * If you are using the library in an environment that does not support `window.crypto.randomUUID`\n * you can enable a polyfill for it.\n *\n * ```ts\n * setConfig(app, __dirname, {\n * polyfillUUID: true\n * });\n * ```\n *\n * ### includeDataAdapterInProduction\n *\n * By default, the integration required to support the ember inspector browser extension\n * is included in production builds only when using the `ember-data` package. Otherwise\n * the default is to exclude it. This setting allows to explicitly enable/disable it in\n * production builds.\n *\n * ```ts\n * setConfig(app, __dirname, {\n * includeDataAdapterInProduction: true\n * });\n * ```\n *\n * @module @warp-drive-mirror/build-config\n * @main @warp-drive-mirror/build-config\n */\nimport EmbroiderMacros from '@embroider/macros/src/node.js';\nimport { getEnv } from './-private/utils/get-env.ts';\nimport { getDeprecations } from './-private/utils/deprecations.ts';\nimport { getFeatures } from './-private/utils/features.ts';\nimport * as LOGGING from './debugging.ts';\nimport type { MacrosConfig } from '@embroider/macros/src/node.js';\nimport { createLoggingConfig } from './-private/utils/logging.ts';\n\nconst _MacrosConfig = EmbroiderMacros.MacrosConfig as unknown as typeof MacrosConfig;\n\ntype LOG_CONFIG_KEY = keyof typeof LOGGING;\n\nexport type WarpDriveConfig = {\n debug?: Partial<InternalWarpDriveConfig['debug']>;\n polyfillUUID?: boolean;\n includeDataAdapterInProduction?: boolean;\n compatWith?: `${number}.${number}`;\n deprecations?: Partial<InternalWarpDriveConfig['deprecations']>;\n features?: Partial<InternalWarpDriveConfig['features']>;\n};\n\ntype InternalWarpDriveConfig = {\n debug: { [key in LOG_CONFIG_KEY]: boolean };\n polyfillUUID: boolean;\n includeDataAdapter: boolean;\n compatWith: `${number}.${number}` | null;\n deprecations: ReturnType<typeof getDeprecations>;\n features: ReturnType<typeof getFeatures>;\n activeLogging: { [key in LOG_CONFIG_KEY]: boolean };\n env: {\n TESTING: boolean;\n PRODUCTION: boolean;\n DEBUG: boolean;\n };\n};\n\ntype MacrosWithGlobalConfig = Omit<MacrosConfig, 'globalConfig'> & { globalConfig: Record<string, unknown> };\n\nfunction recastMacrosConfig(macros: object): MacrosWithGlobalConfig {\n if (!('globalConfig' in macros)) {\n throw new Error('Expected MacrosConfig to have a globalConfig property');\n }\n return macros as MacrosWithGlobalConfig;\n}\n\nexport function setConfig(macros: object, config: WarpDriveConfig): void;\nexport function setConfig(context: object, appRoot: string, config: WarpDriveConfig): void;\nexport function setConfig(context: object, appRootOrConfig: string | WarpDriveConfig, config?: WarpDriveConfig): void {\n const isEmberClassicUsage = arguments.length === 3;\n const macros = recastMacrosConfig(\n isEmberClassicUsage ? _MacrosConfig.for(context, appRootOrConfig as string) : context\n );\n\n const userConfig = isEmberClassicUsage ? config! : (appRootOrConfig as WarpDriveConfig);\n\n const isLegacySupport = (userConfig as unknown as { ___legacy_support?: boolean }).___legacy_support;\n const hasDeprecatedConfig = isLegacySupport && Object.keys(userConfig).length > 1;\n const hasInitiatedConfig = macros.globalConfig['WarpDriveMirror'];\n\n // setConfig called by user prior to legacy support called\n if (isLegacySupport && hasInitiatedConfig) {\n if (hasDeprecatedConfig) {\n throw new Error(\n 'You have provided a config object to setConfig, but are also using the legacy emberData options key in ember-cli-build. Please remove the emberData key from options.'\n );\n }\n return;\n }\n\n // legacy support called prior to user setConfig\n if (isLegacySupport && hasDeprecatedConfig) {\n // We don't want to print this just yet because we are going to re-arrange packages\n // and this would be come an import from @warp-drive/core. Better to not deprecate twice.\n // console.warn(\n // `You are using the legacy emberData key in your ember-cli-build.js file. This key is deprecated and will be removed in the next major version of EmberData/WarpDrive. Please use \\`import { setConfig } from '@warp-drive-mirror/build-config';\\` instead.`\n // );\n }\n\n // included hooks run during class initialization of the EmberApp instance\n // so our hook will run before the user has a chance to call setConfig\n // else we could print a useful message here\n // else if (isLegacySupport) {\n // console.warn(\n // `WarpDrive requires your ember-cli-build file to set a base configuration for the project.\\n\\nUsage:\\n\\t\\`import { setConfig } from '@warp-drive-mirror/build-config';\\n\\tsetConfig(app, __dirname, {});\\``\n // );\n // }\n\n const debugOptions: InternalWarpDriveConfig['debug'] = Object.assign({}, LOGGING, userConfig.debug);\n\n const env = getEnv();\n const DEPRECATIONS = getDeprecations(userConfig.compatWith || null, userConfig.deprecations);\n const FEATURES = getFeatures(env.PRODUCTION);\n\n const includeDataAdapterInProduction =\n typeof userConfig.includeDataAdapterInProduction === 'boolean' ? userConfig.includeDataAdapterInProduction : true;\n const includeDataAdapter = env.PRODUCTION ? includeDataAdapterInProduction : true;\n\n const finalizedConfig: InternalWarpDriveConfig = {\n debug: debugOptions,\n polyfillUUID: userConfig.polyfillUUID ?? false,\n includeDataAdapter,\n compatWith: userConfig.compatWith ?? null,\n deprecations: DEPRECATIONS,\n features: FEATURES,\n activeLogging: createLoggingConfig(env, debugOptions),\n env,\n };\n\n macros.setGlobalConfig(import.meta.filename, 'WarpDriveMirror', finalizedConfig);\n}\n"],"names":["getEnv","EMBER_ENV","IS_TESTING","EMBER_CLI_TEST_COMMAND","NODE_ENV","CI","IS_RECORDING","process","env","PRODUCTION","DEBUG","TESTING","Boolean","SHOULD_RECORD","IS_CI","DEPRECATE_CATCH_ALL","DEPRECATE_NON_STRICT_TYPES","DEPRECATE_NON_STRICT_ID","DEPRECATE_COMPUTED_CHAINS","DEPRECATE_LEGACY_IMPORTS","DEPRECATE_NON_UNIQUE_PAYLOADS","DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE","DEPRECATE_MANY_ARRAY_DUPLICATES","DEPRECATE_STORE_EXTENDS_EMBER_OBJECT","ENABLE_LEGACY_SCHEMA_SERVICE","DEPRECATE_EMBER_INFLECTOR","DISABLE_7X_DEPRECATIONS","DEPRECATE_TRACKING_PACKAGE","deprecationIsResolved","deprecatedSince","compatVersion","semver","lte","minVersion","NextMajorVersion","deprecationIsNextMajorCycle","startsWith","getDeprecations","deprecations","flags","keys","Object","CURRENT_DEPRECATIONS","forEach","flag","isDeactivatedDeprecationNotice","flagState","isResolved","dirname","__dirname","fileURLToPath","relativePkgPath","path","join","version","JSON","parse","fs","readFileSync","isCanary","includes","getFeatures","isProd","features","assign","CURRENT_FEATURES","feature","featureValue","FEATURE_OVERRIDES","WARP_DRIVE_FEATURE_OVERRIDE","forcedFeatures","split","i","length","featureName","Error","createLoggingConfig","debug","config","LOGGING","key","_MacrosConfig","EmbroiderMacros","MacrosConfig","recastMacrosConfig","macros","setConfig","context","appRootOrConfig","isEmberClassicUsage","arguments","for","userConfig","isLegacySupport","___legacy_support","hasDeprecatedConfig","hasInitiatedConfig","globalConfig","debugOptions","DEPRECATIONS","compatWith","FEATURES","includeDataAdapterInProduction","includeDataAdapter","finalizedConfig","polyfillUUID","activeLogging","setGlobalConfig","import","meta","filename"],"mappings":";;;;;;;;AAAO,SAASA,MAAMA,GAOpB;EACA,MAAM;IAAEC,SAAS;IAAEC,UAAU;IAAEC,sBAAsB;IAAEC,QAAQ;IAAEC,EAAE;AAAEC,IAAAA;GAAc,GAAGC,OAAO,CAACC,GAAG;EACjG,MAAMC,UAAU,GAAGR,SAAS,KAAK,YAAY,IAAK,CAACA,SAAS,IAAIG,QAAQ,KAAK,YAAa;EAC1F,MAAMM,KAAK,GAAG,CAACD,UAAU;AACzB,EAAA,MAAME,OAAO,GAAGD,KAAK,IAAIE,OAAO,CAACX,SAAS,KAAK,MAAM,IAAIC,UAAU,IAAIC,sBAAsB,CAAC;EAC9F,MAAMU,aAAa,GAAGD,OAAO,CAAC,CAACP,EAAE,IAAIC,YAAY,CAAC;EAElD,OAAO;IACLK,OAAO;IACPF,UAAU;IACVC,KAAK;AACLJ,IAAAA,YAAY,EAAEM,OAAO,CAACN,YAAY,CAAC;AACnCQ,IAAAA,KAAK,EAAEF,OAAO,CAACP,EAAE,CAAC;AAClBQ,IAAAA;GACD;AACH;;ACtBA;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;AACO,MAAME,mBAAmB,GAAG,MAAM;AACzC;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,MAAMC,0BAA0B,GAAG,KAAK;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,uBAAuB,GAAG,KAAK;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,yBAAyB,GAAG,KAAK;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,wBAAwB,GAAG,KAAK;;AAE7C;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,MAAMC,6BAA6B,GAAG,KAAK;;AAElD;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;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;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,MAAMC,yDAAyD,GAAG,KAAK;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,+BAA+B,GAAG,KAAK;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oCAAoC,GAAG,KAAK;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,4BAA4B,GAAG,KAAK;;AAEjD;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,MAAMC,yBAAyB,GAAG,KAAK;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,uBAAuB,GAAG,KAAK;;AAE5C;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,MAAMC,0BAA0B,GAAG,KAAK;;;;;;;;;;;;;;;;;;;ACxf/C,SAASC,qBAAqBA,CAACC,eAA2B,EAAEC,aAAyB,EAAE;AACrF,EAAA,OAAOC,MAAM,CAACC,GAAG,CAACD,MAAM,CAACE,UAAU,CAACJ,eAAe,CAAC,EAAGE,MAAM,CAACE,UAAU,CAACH,aAAa,CAAE,CAAC;AAC3F;AAEA,MAAMI,gBAAgB,GAAG,IAAI;AAE7B,SAASC,2BAA2BA,CAACN,eAA2B,EAAE;AAChE,EAAA,OAAOA,eAAe,CAACO,UAAU,CAACF,gBAAgB,CAAC;AACrD;AAEO,SAASG,eAAeA,CAC7BP,aAA4C,EAC5CQ,YAAqD,EACd;EACvC,MAAMC,KAAK,GAAG,EAAsC;AACpD,EAAA,MAAMC,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACE,oBAAoB,CAAsB;AACnE,EAAA,MAAMhB,uBAAuB,GAAGY,YAAY,EAAEZ,uBAAuB,IAAI,IAAI;AAE7Ec,EAAAA,IAAI,CAACG,OAAO,CAAEC,IAAI,IAAK;AACrB,IAAA,MAAMf,eAAe,GAAGa,oBAAoB,CAACE,IAAI,CAAC;AAClD,IAAA,MAAMC,8BAA8B,GAAGnB,uBAAuB,IAAIS,2BAA2B,CAACN,eAAe,CAAC;AAC9G,IAAA,IAAIiB,SAAS,GAAG,IAAI,CAAC;;IAErB,IAAI,CAACD,8BAA8B,EAAE;AACnC;AACA,MAAA,IAAI,OAAOP,YAAY,GAAGM,IAAI,CAAC,KAAK,SAAS,EAAE;AAC7CE,QAAAA,SAAS,GAAGR,YAAY,GAAGM,IAAI,CAAE;OAClC,MAAM,IAAId,aAAa,EAAE;AACxB;AACA;AACA,QAAA,MAAMiB,UAAU,GAAGnB,qBAAqB,CAACC,eAAe,EAAEC,aAAa,CAAC;AACxE;AACA;AACR;AACA;AACA;AACA;AACA;AACA;QACQgB,SAAS,GAAG,CAACC,UAAU;AACzB;AACF;;AAEA;AACAR,IAAAA,KAAK,CAACK,IAAI,CAAC,GAAGE,SAAS;AACzB,GAAC,CAAC;AAEF,EAAA,OAAOP,KAAK;AACd;;AC/CA,MAAMS,OAAO,GAAG,OAAOC,SAAS,KAAK,WAAW,GAAGA,SAAS,GAAGC,aAAa,CAAC,IAA6B,GAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAC;AAC3G,MAAMC,eAAe,GAAGC,IAAI,CAACC,IAAI,CAACL,OAAO,EAAE,iBAAiB,CAAC;AAE7D,MAAMM,OAAO,GAAGC,IAAI,CAACC,KAAK,CAACC,EAAE,CAACC,YAAY,CAACP,eAAe,EAAE,OAAO,CAAC,CAAC,CAACG,OAAO;AAC7E,MAAMK,QAAQ,GAAGL,OAAO,CAACM,QAAQ,CAAC,OAAO,CAAC;AAEnC,SAASC,WAAWA,CAACC,MAAe,EAAiC;EAC1E,MAAMC,QAAQ,GAAGtB,MAAM,CAACuB,MAAM,CAAC,EAAE,EAAEC,gBAAgB,CAA6B;AAChF,EAAA,MAAMzB,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACuB,QAAQ,CAAc;EAE/C,IAAI,CAACJ,QAAQ,EAAE;AACb;AACA,IAAA,KAAK,MAAMO,OAAO,IAAI1B,IAAI,EAAE;AAC1B,MAAA,IAAI2B,YAAY,GAAGJ,QAAQ,CAACG,OAAO,CAAC;MAEpC,IAAIC,YAAY,KAAK,IAAI,EAAE;AACzBJ,QAAAA,QAAQ,CAACG,OAAO,CAAC,GAAG,KAAK;AAC3B;AACF;AACA,IAAA,OAAOH,QAAQ;AACjB;AAEA,EAAA,MAAMK,iBAAiB,GAAG7D,OAAO,CAACC,GAAG,CAAC6D,2BAA2B;EACjE,IAAID,iBAAiB,KAAK,qBAAqB,EAAE;AAC/C;AACA,IAAA,KAAK,MAAMF,OAAO,IAAI1B,IAAI,EAAE;AAC1B,MAAA,IAAI2B,YAAY,GAAGJ,QAAQ,CAACG,OAAO,CAAC;MAEpC,IAAIC,YAAY,KAAK,IAAI,EAAE;AACzBJ,QAAAA,QAAQ,CAACG,OAAO,CAAC,GAAG,IAAI;AAC1B;AACF;AACF,GAAC,MAAM,IAAIE,iBAAiB,KAAK,aAAa,EAAE;AAC9C;AACA,IAAA,KAAK,MAAMF,OAAO,IAAI1B,IAAI,EAAE;AAC1BuB,MAAAA,QAAQ,CAACG,OAAO,CAAC,GAAG,KAAK;AAC3B;GACD,MAAM,IAAIE,iBAAiB,EAAE;AAC5B;AACA;AACA,IAAA,MAAME,cAAc,GAAGF,iBAAiB,CAACG,KAAK,CAAC,GAAG,CAAC;AACnD,IAAA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,cAAc,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;AAC9C,MAAA,IAAIE,WAAW,GAAGJ,cAAc,CAACE,CAAC,CAAC;AAEnC,MAAA,IAAI,CAAChC,IAAI,CAACoB,QAAQ,CAACc,WAAsB,CAAC,EAAE;AAC1C,QAAA,MAAM,IAAIC,KAAK,CAAC,CAAyBD,sBAAAA,EAAAA,WAAW,EAAE,CAAC;AACzD;AAEAX,MAAAA,QAAQ,CAACW,WAAW,CAAY,GAAG,IAAI;AACzC;AACF;AAEA,EAAA,IAAIZ,MAAM,EAAE;AACV;AACA,IAAA,KAAK,MAAMI,OAAO,IAAI1B,IAAI,EAAE;AAC1B,MAAA,IAAI2B,YAAY,GAAGJ,QAAQ,CAACG,OAAO,CAAC;MAEpC,IAAIC,YAAY,KAAK,IAAI,EAAE;AACzBJ,QAAAA,QAAQ,CAACG,OAAO,CAAC,GAAG,KAAK;AAC3B;AACF;AACF;AAEA,EAAA,OAAOH,QAAQ;AACjB;;AClEO,SAASa,mBAAmBA,CACjCpE,GAA8D,EAC9DqE,KAAiB,EACL;EACZ,MAAMC,MAAM,GAAG,EAAgB;AAC/B,EAAA,MAAMtC,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACuC,OAAO,CAAqB;AAErD,EAAA,KAAK,MAAMC,GAAG,IAAIxC,IAAI,EAAE;AACtB,IAAA,IAAIhC,GAAG,CAACE,KAAK,IAAIF,GAAG,CAACG,OAAO,EAAE;AAC5BmE,MAAAA,MAAM,CAACE,GAAG,CAAC,GAAG,IAAI;AACpB,KAAC,MAAM;MACLF,MAAM,CAACE,GAAG,CAAC,GAAGH,KAAK,CAACG,GAAG,CAAC,IAAI,KAAK;AACnC;AACF;AAEA,EAAA,OAAOF,MAAM;AACf;;ACrBA;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;AASA,MAAMG,aAAa,GAAGC,eAAe,CAACC,YAA8C;AA8BpF,SAASC,kBAAkBA,CAACC,MAAc,EAA0B;AAClE,EAAA,IAAI,EAAE,cAAc,IAAIA,MAAM,CAAC,EAAE;AAC/B,IAAA,MAAM,IAAIV,KAAK,CAAC,uDAAuD,CAAC;AAC1E;AACA,EAAA,OAAOU,MAAM;AACf;AAIO,SAASC,SAASA,CAACC,OAAe,EAAEC,eAAyC,EAAEV,MAAwB,EAAQ;AACpH,EAAA,MAAMW,mBAAmB,GAAGC,SAAS,CAACjB,MAAM,KAAK,CAAC;AAClD,EAAA,MAAMY,MAAM,GAAGD,kBAAkB,CAC/BK,mBAAmB,GAAGR,aAAa,CAACU,GAAG,CAACJ,OAAO,EAAEC,eAAyB,CAAC,GAAGD,OAChF,CAAC;AAED,EAAA,MAAMK,UAAU,GAAGH,mBAAmB,GAAGX,MAAM,GAAKU,eAAmC;AAEvF,EAAA,MAAMK,eAAe,GAAID,UAAU,CAAgDE,iBAAiB;AACpG,EAAA,MAAMC,mBAAmB,GAAGF,eAAe,IAAIpD,MAAM,CAACD,IAAI,CAACoD,UAAU,CAAC,CAACnB,MAAM,GAAG,CAAC;AACjF,EAAA,MAAMuB,kBAAkB,GAAGX,MAAM,CAACY,YAAY,CAAC,WAAW,CAAC;;AAE3D;EACA,IAAIJ,eAAe,IAAIG,kBAAkB,EAAE;AACzC,IAAA,IAAID,mBAAmB,EAAE;AACvB,MAAA,MAAM,IAAIpB,KAAK,CACb,uKACF,CAAC;AACH;AACA,IAAA;AACF;;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAA,MAAMuB,YAA8C,GAAGzD,MAAM,CAACuB,MAAM,CAAC,EAAE,EAAEe,OAAO,EAAEa,UAAU,CAACf,KAAK,CAAC;AAEnG,EAAA,MAAMrE,GAAG,GAAGR,MAAM,EAAE;AACpB,EAAA,MAAMmG,YAAY,GAAG9D,eAAe,CAACuD,UAAU,CAACQ,UAAU,IAAI,IAAI,EAAER,UAAU,CAACtD,YAAY,CAAC;AAC5F,EAAA,MAAM+D,QAAQ,GAAGxC,WAAW,CAACrD,GAAG,CAACC,UAAU,CAAC;AAE5C,EAAA,MAAM6F,8BAA8B,GAClC,OAAOV,UAAU,CAACU,8BAA8B,KAAK,SAAS,GAAGV,UAAU,CAACU,8BAA8B,GAAG,IAAI;EACnH,MAAMC,kBAAkB,GAAG/F,GAAG,CAACC,UAAU,GAAG6F,8BAA8B,GAAG,IAAI;AAEjF,EAAA,MAAME,eAAwC,GAAG;AAC/C3B,IAAAA,KAAK,EAAEqB,YAAY;AACnBO,IAAAA,YAAY,EAAEb,UAAU,CAACa,YAAY,IAAI,KAAK;IAC9CF,kBAAkB;AAClBH,IAAAA,UAAU,EAAER,UAAU,CAACQ,UAAU,IAAI,IAAI;AACzC9D,IAAAA,YAAY,EAAE6D,YAAY;AAC1BpC,IAAAA,QAAQ,EAAEsC,QAAQ;AAClBK,IAAAA,aAAa,EAAE9B,mBAAmB,CAACpE,GAAG,EAAE0F,YAAY,CAAC;AACrD1F,IAAAA;GACD;AAED6E,EAAAA,MAAM,CAACsB,eAAe,CAACC,MAAM,CAACC,IAAI,CAACC,QAAQ,EAAE,WAAW,EAAEN,eAAe,CAAC;AAC5E;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@warp-drive-mirror/build-config",
|
|
3
|
-
"version": "5.5.0-alpha.
|
|
3
|
+
"version": "5.5.0-alpha.24",
|
|
4
4
|
"description": "Provides Build Configuration for projects using WarpDrive or EmberData",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ember-data-mirror",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"semver": "^7.7.1"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@warp-drive/internal-config": "5.5.0-alpha.
|
|
46
|
+
"@warp-drive/internal-config": "5.5.0-alpha.24",
|
|
47
47
|
"@types/babel__core": "^7.20.5",
|
|
48
48
|
"@types/node": "^20.17.32",
|
|
49
49
|
"@babel/plugin-transform-typescript": "^7.27.0",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canary-features.d.ts","sourceRoot":"","sources":["../src/canary-features.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkFE;AACF,eAAO,MAAM,mBAAmB,EAAE,OAAO,GAAG,IAAW,CAAC;AAExD
|
|
1
|
+
{"version":3,"file":"canary-features.d.ts","sourceRoot":"","sources":["../src/canary-features.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkFE;AACF,eAAO,MAAM,mBAAmB,EAAE,OAAO,GAAG,IAAW,CAAC;AAExD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gCAAgC,EAAE,OAAO,GAAG,IAAY,CAAC"}
|
|
@@ -32,21 +32,24 @@ declare module '@warp-drive-mirror/build-config/debugging' {
|
|
|
32
32
|
* log cache updates for both local
|
|
33
33
|
* and remote state.
|
|
34
34
|
*
|
|
35
|
-
* @property
|
|
35
|
+
* @property LOG_CACHE
|
|
36
|
+
* @type {Boolean}
|
|
36
37
|
* @public
|
|
37
38
|
*/
|
|
38
39
|
export const LOG_CACHE: boolean;
|
|
39
40
|
/**
|
|
40
41
|
* log notifications received by the NotificationManager
|
|
41
42
|
*
|
|
42
|
-
* @property
|
|
43
|
+
* @property LOG_NOTIFICATIONS
|
|
44
|
+
* @type {Boolean}
|
|
43
45
|
* @public
|
|
44
46
|
*/
|
|
45
47
|
export const LOG_NOTIFICATIONS: boolean;
|
|
46
48
|
/**
|
|
47
49
|
* log requests issued by the RequestManager
|
|
48
50
|
*
|
|
49
|
-
* @property
|
|
51
|
+
* @property LOG_REQUESTS
|
|
52
|
+
* @type {Boolean}
|
|
50
53
|
* @public
|
|
51
54
|
*/
|
|
52
55
|
export const LOG_REQUESTS: boolean;
|
|
@@ -54,7 +57,8 @@ declare module '@warp-drive-mirror/build-config/debugging' {
|
|
|
54
57
|
* log updates to requests the store has issued to
|
|
55
58
|
* the network (adapter) to fulfill.
|
|
56
59
|
*
|
|
57
|
-
* @property
|
|
60
|
+
* @property LOG_REQUEST_STATUS
|
|
61
|
+
* @type {Boolean}
|
|
58
62
|
* @public
|
|
59
63
|
*/
|
|
60
64
|
export const LOG_REQUEST_STATUS: boolean;
|
|
@@ -62,14 +66,17 @@ declare module '@warp-drive-mirror/build-config/debugging' {
|
|
|
62
66
|
* log peek, generation and updates to
|
|
63
67
|
* Record Identifiers.
|
|
64
68
|
*
|
|
65
|
-
* @property
|
|
69
|
+
* @property LOG_IDENTIFIERS
|
|
70
|
+
* @type {Boolean}
|
|
71
|
+
|
|
66
72
|
* @public
|
|
67
73
|
*/
|
|
68
74
|
export const LOG_IDENTIFIERS: boolean;
|
|
69
75
|
/**
|
|
70
76
|
* log updates received by the graph (relationship pointer storage)
|
|
71
77
|
*
|
|
72
|
-
* @property
|
|
78
|
+
* @property LOG_GRAPH
|
|
79
|
+
* @type {Boolean}
|
|
73
80
|
* @public
|
|
74
81
|
*/
|
|
75
82
|
export const LOG_GRAPH: boolean;
|
|
@@ -77,7 +84,8 @@ declare module '@warp-drive-mirror/build-config/debugging' {
|
|
|
77
84
|
* log creation/removal of RecordData and Record
|
|
78
85
|
* instances.
|
|
79
86
|
*
|
|
80
|
-
* @property
|
|
87
|
+
* @property LOG_INSTANCE_CACHE
|
|
88
|
+
* @type {Boolean}
|
|
81
89
|
* @public
|
|
82
90
|
*/
|
|
83
91
|
export const LOG_INSTANCE_CACHE: boolean;
|
|
@@ -85,7 +93,8 @@ declare module '@warp-drive-mirror/build-config/debugging' {
|
|
|
85
93
|
* Log key count metrics, useful for performance
|
|
86
94
|
* debugging.
|
|
87
95
|
*
|
|
88
|
-
* @property
|
|
96
|
+
* @property LOG_METRIC_COUNTS
|
|
97
|
+
* @type {Boolean}
|
|
89
98
|
* @public
|
|
90
99
|
*/
|
|
91
100
|
export const LOG_METRIC_COUNTS: boolean;
|
|
@@ -93,7 +102,8 @@ declare module '@warp-drive-mirror/build-config/debugging' {
|
|
|
93
102
|
* Helps when debugging causes of a change notification
|
|
94
103
|
* when processing an update to a hasMany relationship.
|
|
95
104
|
*
|
|
96
|
-
* @property
|
|
105
|
+
* @property DEBUG_RELATIONSHIP_NOTIFICATIONS
|
|
106
|
+
* @type {Boolean}
|
|
97
107
|
* @public
|
|
98
108
|
*/
|
|
99
109
|
export const DEBUG_RELATIONSHIP_NOTIFICATIONS: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debugging.d.ts","sourceRoot":"","sources":["../src/debugging.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH
|
|
1
|
+
{"version":3,"file":"debugging.d.ts","sourceRoot":"","sources":["../src/debugging.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,EAAE,OAAe,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAAe,CAAC;AAChD;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,OAAe,CAAC;AAC3C;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,EAAE,OAAe,CAAC;AACjD;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,OAAe,CAAC;AAC9C;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,EAAE,OAAe,CAAC;AACxC;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,EAAE,OAAe,CAAC;AACjD;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAAe,CAAC;AAChD;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC,EAAE,OAAe,CAAC;AAE/D;;;;;;;;;GASG;AACH,eAAO,MAAM,oCAAoC,EAAE,OAAe,CAAC"}
|
|
@@ -74,6 +74,7 @@ declare module '@warp-drive-mirror/build-config/deprecation-versions' {
|
|
|
74
74
|
* e.g. `app/models/foo/bar-bem.js` must have a type of `foo/bar-bem`
|
|
75
75
|
*
|
|
76
76
|
* @property DEPRECATE_NON_STRICT_TYPES
|
|
77
|
+
* @type {Boolean}
|
|
77
78
|
* @since 5.3
|
|
78
79
|
* @until 6.0
|
|
79
80
|
* @public
|
|
@@ -97,6 +98,7 @@ declare module '@warp-drive-mirror/build-config/deprecation-versions' {
|
|
|
97
98
|
* custom identifier configuration should provide a string ID.
|
|
98
99
|
*
|
|
99
100
|
* @property DEPRECATE_NON_STRICT_ID
|
|
101
|
+
* @type {Boolean}
|
|
100
102
|
* @since 5.3
|
|
101
103
|
* @until 6.0
|
|
102
104
|
* @public
|
|
@@ -120,6 +122,7 @@ declare module '@warp-drive-mirror/build-config/deprecation-versions' {
|
|
|
120
122
|
* update this version number to the proper version.
|
|
121
123
|
*
|
|
122
124
|
* @property DEPRECATE_COMPUTED_CHAINS
|
|
125
|
+
* @type {Boolean}
|
|
123
126
|
* @since 5.0
|
|
124
127
|
* @until 8.0
|
|
125
128
|
* @public
|
|
@@ -138,6 +141,7 @@ declare module '@warp-drive-mirror/build-config/deprecation-versions' {
|
|
|
138
141
|
* of defaults.
|
|
139
142
|
*
|
|
140
143
|
* @property DEPRECATE_LEGACY_IMPORTS
|
|
144
|
+
* @type {Boolean}
|
|
141
145
|
* @since 5.3
|
|
142
146
|
* @until 6.0
|
|
143
147
|
* @public
|
|
@@ -180,6 +184,7 @@ declare module '@warp-drive-mirror/build-config/deprecation-versions' {
|
|
|
180
184
|
* duplicate data from relationship payloads.
|
|
181
185
|
*
|
|
182
186
|
* @property DEPRECATE_NON_UNIQUE_PAYLOADS
|
|
187
|
+
* @type {Boolean}
|
|
183
188
|
* @since 5.3
|
|
184
189
|
* @until 6.0
|
|
185
190
|
* @public
|
|
@@ -326,6 +331,7 @@ declare module '@warp-drive-mirror/build-config/deprecation-versions' {
|
|
|
326
331
|
* a custom Cache with the relationship behaviors you need.
|
|
327
332
|
*
|
|
328
333
|
* @property DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE
|
|
334
|
+
* @type {Boolean}
|
|
329
335
|
* @since 5.3
|
|
330
336
|
* @until 6.0
|
|
331
337
|
* @public
|
|
@@ -342,6 +348,7 @@ declare module '@warp-drive-mirror/build-config/deprecation-versions' {
|
|
|
342
348
|
* When the flag is `false`, an error will be thrown when duplicates are added.
|
|
343
349
|
*
|
|
344
350
|
* @property DEPRECATE_MANY_ARRAY_DUPLICATES
|
|
351
|
+
* @type {Boolean}
|
|
345
352
|
* @since 5.3
|
|
346
353
|
* @until 6.0
|
|
347
354
|
* @public
|
|
@@ -355,6 +362,7 @@ declare module '@warp-drive-mirror/build-config/deprecation-versions' {
|
|
|
355
362
|
* from EmberObject.
|
|
356
363
|
*
|
|
357
364
|
* @property DEPRECATE_STORE_EXTENDS_EMBER_OBJECT
|
|
365
|
+
* @type {Boolean}
|
|
358
366
|
* @since 5.4
|
|
359
367
|
* @until 6.0
|
|
360
368
|
* @public
|
|
@@ -378,6 +386,7 @@ declare module '@warp-drive-mirror/build-config/deprecation-versions' {
|
|
|
378
386
|
* - `SchemaService.relationshipsDefinitionFor` method is deprecated in favor of the `SchemaService.fields` method
|
|
379
387
|
*
|
|
380
388
|
* @property ENABLE_LEGACY_SCHEMA_SERVICE
|
|
389
|
+
* @type {Boolean}
|
|
381
390
|
* @since 5.4
|
|
382
391
|
* @until 6.0
|
|
383
392
|
* @public
|
|
@@ -410,6 +419,7 @@ declare module '@warp-drive-mirror/build-config/deprecation-versions' {
|
|
|
410
419
|
* ```
|
|
411
420
|
*
|
|
412
421
|
* @property DEPRECATE_EMBER_INFLECTOR
|
|
422
|
+
* @type {Boolean}
|
|
413
423
|
* @since 5.3
|
|
414
424
|
* @until 6.0
|
|
415
425
|
* @public
|
|
@@ -426,6 +436,7 @@ declare module '@warp-drive-mirror/build-config/deprecation-versions' {
|
|
|
426
436
|
* print and can be resolved.
|
|
427
437
|
*
|
|
428
438
|
* @property DISABLE_7X_DEPRECATIONS
|
|
439
|
+
* @type {Boolean}
|
|
429
440
|
* @since 5.3
|
|
430
441
|
* @until 7.0
|
|
431
442
|
* @public
|
|
@@ -464,6 +475,7 @@ declare module '@warp-drive-mirror/build-config/deprecation-versions' {
|
|
|
464
475
|
* ```
|
|
465
476
|
*
|
|
466
477
|
* @property DEPRECATE_TRACKING_PACKAGE
|
|
478
|
+
* @type {Boolean}
|
|
467
479
|
* @since 5.5
|
|
468
480
|
* @until 6.0
|
|
469
481
|
* @public
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deprecation-versions.d.ts","sourceRoot":"","sources":["../src/deprecation-versions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmBH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAC1C
|
|
1
|
+
{"version":3,"file":"deprecation-versions.d.ts","sourceRoot":"","sources":["../src/deprecation-versions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmBH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,yBAAyB,QAAQ,CAAC;AAE/C;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiJG;AACH,eAAO,MAAM,yDAAyD,QAAQ,CAAC;AAE/E;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,+BAA+B,QAAQ,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oCAAoC,QAAQ,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,yBAAyB,QAAQ,CAAC;AAE/C;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,0BAA0B,QAAQ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debugging-Dc--S1MJ.js","sources":["../src/debugging.ts"],"sourcesContent":["/**\n @module @warp-drive-mirror/build-config\n */\n/**\n * ## Debug Logging\n *\n * Many portions of the internals are helpfully instrumented with logging that can be activated\n * at build time. This instrumentation is always removed from production builds or any builds\n * that has not explicitly activated it. To activate it set the appropriate flag to `true`.\n *\n * ```ts\n * setConfig(__dirname, app, {\n * debug: {\n * LOG_CACHE: false, // data store received to update cache with\n * LOG_NOTIFICATIONS: false,\n * LOG_REQUESTS: false,\n * LOG_REQUEST_STATUS: false,\n * LOG_IDENTIFIERS: false,\n * LOG_GRAPH: false,\n * LOG_INSTANCE_CACHE: false,\n * LOG_METRIC_COUNTS: false,\n * DEBUG_RELATIONSHIP_NOTIFICATIONS: false,\n * }\n * });\n * ```\n *\n * @class DebugLogging\n * @public\n */\n/**\n * log cache updates for both local\n * and remote state.\n *\n * @property {boolean} LOG_CACHE\n * @public\n */\nexport const LOG_CACHE: boolean = false;\n\n/**\n * log notifications received by the NotificationManager\n *\n * @property {boolean} LOG_NOTIFICATIONS\n * @public\n */\nexport const LOG_NOTIFICATIONS: boolean = false;\n/**\n * log requests issued by the RequestManager\n *\n * @property {boolean} LOG_REQUESTS\n * @public\n */\nexport const LOG_REQUESTS: boolean = false;\n/**\n * log updates to requests the store has issued to\n * the network (adapter) to fulfill.\n *\n * @property {boolean} LOG_REQUEST_STATUS\n * @public\n */\nexport const LOG_REQUEST_STATUS: boolean = false;\n/**\n * log peek, generation and updates to\n * Record Identifiers.\n *\n * @property {boolean} LOG_IDENTIFIERS\n * @public\n */\nexport const LOG_IDENTIFIERS: boolean = false;\n/**\n * log updates received by the graph (relationship pointer storage)\n *\n * @property {boolean} LOG_GRAPH\n * @public\n */\nexport const LOG_GRAPH: boolean = false;\n/**\n * log creation/removal of RecordData and Record\n * instances.\n *\n * @property {boolean} LOG_INSTANCE_CACHE\n * @public\n */\nexport const LOG_INSTANCE_CACHE: boolean = false;\n/**\n * Log key count metrics, useful for performance\n * debugging.\n *\n * @property {boolean} LOG_METRIC_COUNTS\n * @public\n */\nexport const LOG_METRIC_COUNTS: boolean = false;\n/**\n * Helps when debugging causes of a change notification\n * when processing an update to a hasMany relationship.\n *\n * @property {boolean} DEBUG_RELATIONSHIP_NOTIFICATIONS\n * @public\n */\nexport const DEBUG_RELATIONSHIP_NOTIFICATIONS: boolean = false;\n\n/**\n * A private flag to enable logging of the native Map/Set\n * constructor and method calls.\n *\n * EXTREMELY MALPERFORMANT\n *\n * LOG_METRIC_COUNTS must also be enabled.\n *\n * @typedoc\n */\nexport const __INTERNAL_LOG_NATIVE_MAP_SET_COUNTS: boolean = false;\n"],"names":["LOG_CACHE","LOG_NOTIFICATIONS","LOG_REQUESTS","LOG_REQUEST_STATUS","LOG_IDENTIFIERS","LOG_GRAPH","LOG_INSTANCE_CACHE","LOG_METRIC_COUNTS","DEBUG_RELATIONSHIP_NOTIFICATIONS","__INTERNAL_LOG_NATIVE_MAP_SET_COUNTS"],"mappings":"AAAA;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,SAAkB,GAAG;;AAElC;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,iBAA0B,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,YAAqB,GAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAA2B,GAAG;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,eAAwB,GAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,SAAkB,GAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAA2B,GAAG;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,iBAA0B,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,gCAAyC,GAAG;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oCAA6C,GAAG;;;;;;;;;;;;;;;;;;"}
|