@warp-drive-mirror/build-config 4.13.0-alpha.6 → 4.13.0-alpha.7

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.
@@ -1,5 +1,5 @@
1
- import { L as LOGGING } from './debugging-PCb4hczb.js';
2
- import { C as CURRENT_FEATURES } from './canary-features-BzGSGY5j.js';
1
+ import { L as LOGGING } from './debugging-CX6Ul3W_.js';
2
+ import { C as CURRENT_FEATURES } from './canary-features-Bpa1abyy.js';
3
3
  import { C as CURRENT_DEPRECATIONS } from './deprecations-BjnhZL6k.js';
4
4
 
5
5
  const features = Object.keys(CURRENT_FEATURES);
@@ -1,4 +1,10 @@
1
1
  /**
2
+ *
3
+ * @module @warp-drive-mirror/build-config
4
+ */
5
+
6
+ /**
7
+ *
2
8
  * ## Canary Features
3
9
  *
4
10
  * EmberData allows users to test features that are implemented but not yet
@@ -31,24 +37,22 @@
31
37
  *
32
38
  * ```cli
33
39
  * # Activate a single flag
34
- * EMBER_DATA_FEATURE_OVERRIDE=SOME_FLAG ember build
40
+ * WARP_DRIVE_FEATURE_OVERRIDE=SOME_FLAG ember build
35
41
  *
36
42
  * # Activate multiple flags by separating with commas
37
- * EMBER_DATA_FEATURE_OVERRIDE=SOME_FLAG,OTHER_FLAG ember build
43
+ * WARP_DRIVE_FEATURE_OVERRIDE=SOME_FLAG,OTHER_FLAG ember build
38
44
  *
39
45
  * # Activate all flags
40
- * EMBER_DATA_FEATURE_OVERRIDE=ENABLE_ALL_OPTIONAL ember build
46
+ * WARP_DRIVE_FEATURE_OVERRIDE=ENABLE_ALL_OPTIONAL ember build
41
47
  * ```
42
48
  *
43
49
  * or by setting the appropriate flag in your `ember-cli-build` file:
44
50
  *
45
51
  * ```ts
46
- * let app = new EmberApp(defaults, {
47
- * emberData: {
48
- * features: {
49
- * SAMPLE_FEATURE_FLAG: false // utliize existing behavior, strip code for the new feature
50
- * OTHER_FEATURE_FLAG: true // utilize this new feature, strip code for the older behavior
51
- * }
52
+ * setConfig(app, __dirname, {
53
+ * features: {
54
+ * SAMPLE_FEATURE_FLAG: false // utliize existing behavior, strip code for the new feature
55
+ * OTHER_FEATURE_FLAG: true // utilize this new feature, strip code for the older behavior
52
56
  * }
53
57
  * })
54
58
  * ```
@@ -70,21 +74,17 @@
70
74
  * }
71
75
  * ```
72
76
  *
73
- @module @warp-drive-mirror/build-config/canary-features
74
- @main @warp-drive-mirror/build-config/canary-features
75
- */
76
- /**
77
- This is the current list of features used at build time for canary releases.
78
- If empty there are no features currently gated by feature flags.
79
-
80
- The valid values are:
81
-
82
- - `true` | The feature is **enabled** at all times, and cannot be disabled.
83
- - `false` | The feature is **disabled** at all times, and cannot be enabled.
84
- - `null` | The feature is **disabled by default**, but can be enabled via configuration.
85
-
86
- @class CanaryFeatureFlags
87
- @public
77
+ * The current list of features used at build time for canary releases is defined below.
78
+ * If empty there are no features currently gated by feature flags.
79
+ *
80
+ * The valid values are:
81
+ *
82
+ * - `true` | The feature is **enabled** at all times, and cannot be disabled.
83
+ * - `false` | The feature is **disabled** at all times, and cannot be enabled.
84
+ * - `null` | The feature is **disabled by default**, but can be enabled via configuration.
85
+ *
86
+ * @class CanaryFeatures
87
+ * @public
88
88
  */
89
89
  const SAMPLE_FEATURE_FLAG = null;
90
90
 
@@ -94,4 +94,4 @@ const CURRENT_FEATURES = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.definePr
94
94
  }, Symbol.toStringTag, { value: 'Module' }));
95
95
 
96
96
  export { CURRENT_FEATURES as C, SAMPLE_FEATURE_FLAG as S };
97
- //# sourceMappingURL=canary-features-BzGSGY5j.js.map
97
+ //# sourceMappingURL=canary-features-Bpa1abyy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canary-features-Bpa1abyy.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"],"names":["SAMPLE_FEATURE_FLAG"],"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;;;;;;;;;"}
@@ -1,2 +1,2 @@
1
- export { S as SAMPLE_FEATURE_FLAG } from './canary-features-BzGSGY5j.js';
1
+ export { S as SAMPLE_FEATURE_FLAG } from './canary-features-Bpa1abyy.js';
2
2
  //# sourceMappingURL=canary-features.js.map
@@ -32,6 +32,9 @@ function getEnv() {
32
32
  };
33
33
  }
34
34
 
35
+ /**
36
+ * @module @warp-drive-mirror/build-config
37
+ */
35
38
  // ========================
36
39
  // FOR CONTRIBUTING AUTHORS
37
40
  //
@@ -51,7 +54,7 @@ function getEnv() {
51
54
  //
52
55
 
53
56
  /**
54
- * ## Deprecations
57
+ * ## Deprecation Management
55
58
  *
56
59
  * EmberData allows users to opt-in and remove code that exists to support deprecated
57
60
  * behaviors.
@@ -69,54 +72,26 @@ function getEnv() {
69
72
  * with `3.12`. This would remove any deprecations that were present in or before `3.12`
70
73
  * but keep support for anything deprecated in or above `3.13`.
71
74
  *
72
- * ### Configuring Compatibility
73
- *
74
- * To configure your compatibility version, set the `compatWith` to the version you
75
- * are compatible with on the `emberData` config in your `ember-cli-build.js` file.
76
- *
77
- * ```js
78
- * const { setConfig } = await import('@warp-drive-mirror/build-config');
79
- *
80
- * let app = new EmberApp(defaults, {});
81
- *
82
- * setConfig(app, __dirname, { compatWith: '3.12' });
83
- * ```
84
- *
85
- * Alternatively, individual deprecations can be resolved (and thus have its support stripped)
86
- * via one of the flag names listed below. For instance, given a flag named `DEPRECATE_FOO_BEHAVIOR`.
87
- *
88
- * This capability is interopable with `compatWith`. You may set `compatWith` and then selectively resolve
89
- * additional deprecations, or set compatWith and selectively un-resolve specific deprecations.
90
- *
91
- * Note: EmberData does not test against permutations of deprecations being stripped, our tests run against
92
- * "all deprecated code included" and "all deprecated code removed". Unspecified behavior may sometimes occur
93
- * when removing code for only some deprecations associated to a version number.
94
- *
95
- * ```js
96
- * const { setConfig } = await import('@warp-drive-mirror/build-config');
97
- *
98
- * let app = new EmberApp(defaults, {});
75
+ * You may also specify that specific deprecations are resolved. These approaches
76
+ * may be used together.
99
77
  *
78
+ * ```ts
100
79
  * setConfig(app, __dirname, {
80
+ * // declare that all deprecations through "5.0" have been fully resolved
81
+ * compatWith: '5.0',
82
+ *
83
+ * // mark individual deprecations as resolved by setting them to `false`
101
84
  * deprecations: {
102
- * DEPRECATE_FOO_BEHAVIOR: false // set to false to strip this code
103
- * DEPRECATE_BAR_BEHAVIOR: true // force to true to not strip this code
104
- * }
85
+ * // resolve individual deprecations here
86
+ * },
105
87
  * });
106
88
  * ```
107
89
  *
108
- * The complete list of which versions specific deprecations will be removed in
109
- * can be found [here](https://github.com/emberjs/data/blob/main/packages/build-config/src/virtual/deprecation-versions.ts "List of EmberData Deprecations")
110
- *
111
- * @module @warp-drive-mirror/build-config/deprecations
112
- * @main @warp-drive-mirror/build-config/deprecations
113
- */
114
-
115
- /**
116
- * The following list represents deprecations currently active.
117
- *
118
- * Some deprecation flags guard multiple deprecation IDs. All
119
- * associated IDs are listed.
90
+ * > [!TIP]
91
+ * > EmberData does not test against permutations of deprecations
92
+ * > being stripped, our tests run against "all deprecated code included"
93
+ * > and "all deprecated code removed". Unspecified behavior may sometimes occur
94
+ * > when removing code for only some deprecations associated to a version number.
120
95
  *
121
96
  * @class CurrentDeprecations
122
97
  * @public
@@ -1149,6 +1124,12 @@ function getDeprecations(compatVersion, deprecations) {
1149
1124
  }
1150
1125
 
1151
1126
  /**
1127
+ *
1128
+ * @module @warp-drive-mirror/build-config
1129
+ */
1130
+
1131
+ /**
1132
+ *
1152
1133
  * ## Canary Features
1153
1134
  *
1154
1135
  * EmberData allows users to test features that are implemented but not yet
@@ -1181,24 +1162,22 @@ function getDeprecations(compatVersion, deprecations) {
1181
1162
  *
1182
1163
  * ```cli
1183
1164
  * # Activate a single flag
1184
- * EMBER_DATA_FEATURE_OVERRIDE=SOME_FLAG ember build
1165
+ * WARP_DRIVE_FEATURE_OVERRIDE=SOME_FLAG ember build
1185
1166
  *
1186
1167
  * # Activate multiple flags by separating with commas
1187
- * EMBER_DATA_FEATURE_OVERRIDE=SOME_FLAG,OTHER_FLAG ember build
1168
+ * WARP_DRIVE_FEATURE_OVERRIDE=SOME_FLAG,OTHER_FLAG ember build
1188
1169
  *
1189
1170
  * # Activate all flags
1190
- * EMBER_DATA_FEATURE_OVERRIDE=ENABLE_ALL_OPTIONAL ember build
1171
+ * WARP_DRIVE_FEATURE_OVERRIDE=ENABLE_ALL_OPTIONAL ember build
1191
1172
  * ```
1192
1173
  *
1193
1174
  * or by setting the appropriate flag in your `ember-cli-build` file:
1194
1175
  *
1195
1176
  * ```ts
1196
- * let app = new EmberApp(defaults, {
1197
- * emberData: {
1198
- * features: {
1199
- * SAMPLE_FEATURE_FLAG: false // utliize existing behavior, strip code for the new feature
1200
- * OTHER_FEATURE_FLAG: true // utilize this new feature, strip code for the older behavior
1201
- * }
1177
+ * setConfig(app, __dirname, {
1178
+ * features: {
1179
+ * SAMPLE_FEATURE_FLAG: false // utliize existing behavior, strip code for the new feature
1180
+ * OTHER_FEATURE_FLAG: true // utilize this new feature, strip code for the older behavior
1202
1181
  * }
1203
1182
  * })
1204
1183
  * ```
@@ -1220,21 +1199,17 @@ function getDeprecations(compatVersion, deprecations) {
1220
1199
  * }
1221
1200
  * ```
1222
1201
  *
1223
- @module @warp-drive-mirror/build-config/canary-features
1224
- @main @warp-drive-mirror/build-config/canary-features
1225
- */
1226
- /**
1227
- This is the current list of features used at build time for canary releases.
1228
- If empty there are no features currently gated by feature flags.
1229
-
1230
- The valid values are:
1231
-
1232
- - `true` | The feature is **enabled** at all times, and cannot be disabled.
1233
- - `false` | The feature is **disabled** at all times, and cannot be enabled.
1234
- - `null` | The feature is **disabled by default**, but can be enabled via configuration.
1235
-
1236
- @class CanaryFeatureFlags
1237
- @public
1202
+ * The current list of features used at build time for canary releases is defined below.
1203
+ * If empty there are no features currently gated by feature flags.
1204
+ *
1205
+ * The valid values are:
1206
+ *
1207
+ * - `true` | The feature is **enabled** at all times, and cannot be disabled.
1208
+ * - `false` | The feature is **disabled** at all times, and cannot be enabled.
1209
+ * - `null` | The feature is **disabled by default**, but can be enabled via configuration.
1210
+ *
1211
+ * @class CanaryFeatures
1212
+ * @public
1238
1213
  */
1239
1214
  const SAMPLE_FEATURE_FLAG = null;
1240
1215
 
@@ -1260,7 +1235,7 @@ function getFeatures(isProd) {
1260
1235
  }
1261
1236
  return features;
1262
1237
  }
1263
- const FEATURE_OVERRIDES = process.env.EMBER_DATA_FEATURE_OVERRIDE;
1238
+ const FEATURE_OVERRIDES = process.env.WARP_DRIVE_FEATURE_OVERRIDE;
1264
1239
  if (FEATURE_OVERRIDES === 'ENABLE_ALL_OPTIONAL') {
1265
1240
  // enable all features with a current value of `null`
1266
1241
  for (const feature of keys) {
@@ -1299,41 +1274,35 @@ function getFeatures(isProd) {
1299
1274
  }
1300
1275
 
1301
1276
  /**
1302
- * ## Debugging
1277
+ @module @warp-drive-mirror/build-config
1278
+ */
1279
+ /**
1280
+ * ## Debug Logging
1303
1281
  *
1304
1282
  * Many portions of the internals are helpfully instrumented with logging that can be activated
1305
1283
  * at build time. This instrumentation is always removed from production builds or any builds
1306
1284
  * that has not explicitly activated it. To activate it set the appropriate flag to `true`.
1307
1285
  *
1308
- @module @warp-drive-mirror/build-config/debugging
1309
- @main @warp-drive-mirror/build-config/debugging
1310
- */
1311
- /**
1286
+ * ```ts
1287
+ * setConfig(__dirname, app, {
1288
+ * debug: {
1289
+ * LOG_PAYLOADS: false, // data store received to update cache with
1290
+ * LOG_OPERATIONS: false, // updates to cache remote state
1291
+ * LOG_MUTATIONS: false, // updates to cache local state
1292
+ * LOG_NOTIFICATIONS: false,
1293
+ * LOG_REQUESTS: false,
1294
+ * LOG_REQUEST_STATUS: false,
1295
+ * LOG_IDENTIFIERS: false,
1296
+ * LOG_GRAPH: false,
1297
+ * LOG_INSTANCE_CACHE: false,
1298
+ * LOG_METRIC_COUNTS: false,
1299
+ * DEBUG_RELATIONSHIP_NOTIFICATIONS: false,
1300
+ * }
1301
+ * });
1302
+ * ```
1312
1303
  *
1313
- * Many portions of the internals are helpfully instrumented with logging that can be activated
1314
- at build time. This instrumentation is always removed from production builds or any builds
1315
- that has not explicitly activated it. To activate it set the appropriate flag to `true`.
1316
-
1317
- ```ts
1318
- let app = new EmberApp(defaults, {
1319
- emberData: {
1320
- debug: {
1321
- LOG_PAYLOADS: false, // data store received to update cache with
1322
- LOG_OPERATIONS: false, // updates to cache remote state
1323
- LOG_MUTATIONS: false, // updates to cache local state
1324
- LOG_NOTIFICATIONS: false,
1325
- LOG_REQUESTS: false,
1326
- LOG_REQUEST_STATUS: false,
1327
- LOG_IDENTIFIERS: false,
1328
- LOG_GRAPH: false,
1329
- LOG_INSTANCE_CACHE: false,
1330
- }
1331
- }
1332
- });
1333
- ```
1334
-
1335
- @class DebugLogging
1336
- @public
1304
+ * @class DebugLogging
1305
+ * @public
1337
1306
  */
1338
1307
  /**
1339
1308
  * log payloads received by the store
@@ -1461,6 +1430,65 @@ function createLoggingConfig(env, debug) {
1461
1430
  return config;
1462
1431
  }
1463
1432
 
1433
+ /**
1434
+ * Settings configuration for deprecations, optional features, development/testing
1435
+ * support and debug logging is done using `setConfig` in `ember-cli-build`.
1436
+ *
1437
+ * ```ts
1438
+ * 'use strict';
1439
+ *
1440
+ * const EmberApp = require('ember-cli/lib/broccoli/ember-app');
1441
+ *
1442
+ * module.exports = async function (defaults) {
1443
+ * const { setConfig } = await import('@warp-drive-mirror/build-config');
1444
+ *
1445
+ * const app = new EmberApp(defaults, {});
1446
+ *
1447
+ * setConfig(app, __dirname, {
1448
+ * // settings here
1449
+ * });
1450
+ *
1451
+ * const { Webpack } = require('@embroider/webpack');
1452
+ * return require('@embroider/compat').compatBuild(app, Webpack, {});
1453
+ * };
1454
+ *
1455
+ * ```
1456
+ *
1457
+ * Available settings include:
1458
+ *
1459
+ * - [Debug Logging](../classes/DebugLogging)
1460
+ * - [Deprecated Code Removal](../classes/CurrentDeprecations)
1461
+ * - [Canary Feature Activation](../classes/CanaryFeatures)
1462
+ *
1463
+ * As well as:
1464
+ *
1465
+ * ### polyfillUUID
1466
+ *
1467
+ * If you are using the library in an environment that does not support `window.crypto.randomUUID`
1468
+ * you can enable a polyfill for it.
1469
+ *
1470
+ * ```ts
1471
+ * setConfig(app, __dirname, {
1472
+ * polyfillUUID: true
1473
+ * });
1474
+ * ```
1475
+ *
1476
+ * ### includeDataAdapterInProduction
1477
+ *
1478
+ * By default, the integration required to support the ember inspector browser extension
1479
+ * is included in production builds only when using the `ember-data` package. Otherwise
1480
+ * the default is to exclude it. This setting allows to explicitly enable/disable it in
1481
+ * production builds.
1482
+ *
1483
+ * ```ts
1484
+ * setConfig(app, __dirname, {
1485
+ * includeDataAdapterInProduction: true
1486
+ * });
1487
+ * ```
1488
+ *
1489
+ * @module @warp-drive-mirror/build-config
1490
+ * @main @warp-drive-mirror/build-config
1491
+ */
1464
1492
  const _MacrosConfig = EmbroiderMacros.MacrosConfig;
1465
1493
  function recastMacrosConfig(macros) {
1466
1494
  if (!('globalConfig' in macros)) {