@warp-drive-mirror/build-config 5.6.0-alpha.15 → 5.6.0-alpha.17
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/declarations/-private/utils/deprecations.d.ts +2 -7
- package/declarations/-private/utils/features.d.ts +2 -5
- package/declarations/-private/utils/get-env.d.ts +7 -8
- package/declarations/-private/utils/logging.d.ts +5 -8
- package/declarations/babel-macros.d.ts +9 -10
- package/declarations/canary-features.d.ts +131 -132
- package/declarations/debugging.d.ts +142 -143
- package/declarations/deprecation-versions.d.ts +17 -1
- package/declarations/deprecations.d.ts +488 -489
- package/declarations/env.d.ts +116 -117
- package/declarations/index.d.ts +94 -95
- package/declarations/macros.d.ts +14 -15
- package/dist/addon-shim.cjs +0 -1
- package/dist/babel-macros.js +0 -1
- package/dist/babel-plugin-transform-asserts.cjs +3 -5
- package/dist/babel-plugin-transform-deprecations.cjs +0 -1
- package/dist/babel-plugin-transform-features.cjs +0 -1
- package/dist/babel-plugin-transform-logging.cjs +0 -1
- package/dist/canary-features-CuKgaVtX.js +0 -1
- package/dist/canary-features.js +0 -1
- package/dist/cjs-set-config.cjs +0 -1
- package/dist/debugging-VdsvkNjX.js +0 -1
- package/dist/debugging.js +0 -1
- package/dist/deprecations-BNNGFAiG.js +0 -1
- package/dist/deprecations.js +0 -1
- package/dist/env.js +0 -1
- package/dist/index.js +0 -1
- package/dist/macros.js +0 -1
- package/package.json +3 -3
- package/declarations/-private/utils/deprecations.d.ts.map +0 -1
- package/declarations/-private/utils/features.d.ts.map +0 -1
- package/declarations/-private/utils/get-env.d.ts.map +0 -1
- package/declarations/-private/utils/logging.d.ts.map +0 -1
- package/declarations/babel-macros.d.ts.map +0 -1
- package/declarations/canary-features.d.ts.map +0 -1
- package/declarations/cjs-set-config.d.ts +0 -2
- package/declarations/cjs-set-config.d.ts.map +0 -1
- package/declarations/debugging.d.ts.map +0 -1
- package/declarations/deprecation-versions.d.ts.map +0 -1
- package/declarations/deprecations.d.ts.map +0 -1
- package/declarations/env.d.ts.map +0 -1
- package/declarations/index.d.ts.map +0 -1
- package/declarations/macros.d.ts.map +0 -1
- package/declarations/validate-exports.type-test.d.ts +0 -2
- package/declarations/validate-exports.type-test.d.ts.map +0 -1
- package/dist/addon-shim.cjs.map +0 -1
- package/dist/babel-macros.js.map +0 -1
- package/dist/babel-plugin-transform-asserts.cjs.map +0 -1
- package/dist/babel-plugin-transform-deprecations.cjs.map +0 -1
- package/dist/babel-plugin-transform-features.cjs.map +0 -1
- package/dist/babel-plugin-transform-logging.cjs.map +0 -1
- package/dist/canary-features-CuKgaVtX.js.map +0 -1
- package/dist/canary-features.js.map +0 -1
- package/dist/cjs-set-config.cjs.map +0 -1
- package/dist/debugging-VdsvkNjX.js.map +0 -1
- package/dist/debugging.js.map +0 -1
- package/dist/deprecations-BNNGFAiG.js.map +0 -1
- package/dist/deprecations.js.map +0 -1
- package/dist/env.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/macros.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debugging.d.ts","sourceRoot":"","sources":["../src/debugging.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,EAAE,OAAe,CAAC;AAExC;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,EAAE,OAAe,CAAC;AAE3C;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,EAAE,OAAe,CAAC;AAE7C;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,EAAE,OAAe,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAAe,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAAe,CAAC;AAChD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,OAAe,CAAC;AAC3C;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,OAAe,CAAC;AACjD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,OAAe,CAAC;AAC9C;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,OAAe,CAAC;AACxC;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,OAAe,CAAC;AACjD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAAe,CAAC;AAChD;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,EAAE,OAAe,CAAC;AAE/D;;;;;;;;;GASG;AACH,eAAO,MAAM,oCAAoC,EAAE,OAAe,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deprecation-versions.d.ts","sourceRoot":"","sources":["../src/deprecation-versions.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAC1C,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAChD,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAC7C,eAAO,MAAM,yBAAyB,QAAQ,CAAC;AAC/C,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AACnD,eAAO,MAAM,yDAAyD,QAAQ,CAAC;AAC/E,eAAO,MAAM,+BAA+B,QAAQ,CAAC;AACrD,eAAO,MAAM,oCAAoC,QAAQ,CAAC;AAC1D,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAClD,eAAO,MAAM,yBAAyB,QAAQ,CAAC;AAC/C,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAC7C,eAAO,MAAM,0BAA0B,QAAQ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deprecations.d.ts","sourceRoot":"","sources":["../src/deprecations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsGG;AAEH,gBAAgB;AAChB,eAAO,MAAM,mBAAmB,EAAE,OAAc,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,yBAAyB,EAAE,OAAc,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,0BAA0B,EAAE,OAAc,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,uBAAuB,EAAE,OAAc,CAAC;AAErD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,wBAAwB,EAAE,OAAc,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,6BAA6B,EAAE,OAAc,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+IG;AACH,eAAO,MAAM,yDAAyD,EAAE,OAAc,CAAC;AAEvF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,+BAA+B,EAAE,OAAc,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oCAAoC,EAAE,OAAc,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,4BAA4B,EAAE,OAAc,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,yBAAyB,EAAE,OAAc,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,0BAA0B,EAAE,OAAc,CAAC;AAExD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,EAAE,OAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,KAAK,EAAE,OAAc,CAAC;AACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,UAAU,EAAE,OAAc,CAAC;AACxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,OAAO,EAAE,OAAc,CAAC;AACrC;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,OAAc,CAAC;AAC1C;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE,OAAc,CAAC;AACnC;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,OAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAyCA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAQ1C,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;IAElD;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;;;;;OASG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;IAEzC;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;IAEnC;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC,CAAC;IAEhE;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;IAExD;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,aAAa,CAAC;CACtD,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,KAAK,EAAE,OAAO,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC;IACzC,YAAY,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IACjD,QAAQ,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACzC,aAAa,EAAE,OAAO,OAAO,CAAC;IAC9B,GAAG,EAAE;QACH,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,OAAO,CAAC;QACpB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;CACH,CAAC;AAWF,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;AACzE,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"macros.d.ts","sourceRoot":"","sources":["../src/macros.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;AAC/E,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate-exports.type-test.d.ts","sourceRoot":"","sources":["../src/validate-exports.type-test.ts"],"names":[],"mappings":""}
|
package/dist/addon-shim.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"addon-shim.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
|
package/dist/babel-macros.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"babel-macros.js","sources":["../src/babel-macros.ts"],"sourcesContent":["/**\n * Babel plugins that convert constants and expressions into [macroConditions](https://www.npmjs.com/package/@embroider/macros#the-macros)\n * so that they can be stripped from the code during the build process.\n *\n * This allows us to have great DX around common configuration patterns\n * while still being able to ship a small and fast library.\n *\n * Transforms\n *\n * - deprecation constants imported from `@warp-drive-mirror/build-config/deprecations`\n * - feature flags imported from `@warp-drive-mirror/build-config/canary-features`\n * - debug logging constants imported from `@warp-drive-mirror/build-config/debugging`\n * - environment constants imported from `@warp-drive-mirror/build-config/env`\n * - expressionts imported from `@warp-drive-mirror/build-config/macros`\n *\n * Addons and apps can use these plugins to match the code-stripping behaviors of\n * ***Warp*Drive**. This is useful when managing migrations for canary features\n * and deprecations.\n *\n * @module\n */\nimport * as LOGGING from './debugging.ts';\nimport * as CURRENT_FEATURES from './canary-features.ts';\nimport * as CURRENT_DEPRECATIONS from './deprecations.ts';\n\ntype FEATURE = keyof typeof CURRENT_FEATURES;\nconst features = Object.keys(CURRENT_FEATURES) as FEATURE[];\nconst FEATURES = Object.assign({}, CURRENT_FEATURES) as Record<FEATURE, boolean>;\nfeatures.forEach((feature) => {\n let featureValue = FEATURES[feature];\n if (featureValue === null) {\n FEATURES[feature] = false;\n }\n});\n\nconst config = {\n features: FEATURES,\n deprecations: Object.assign({}, CURRENT_DEPRECATIONS),\n debug: Object.assign({}, LOGGING),\n};\n\ntype BabelPlugin = [string, Record<string, unknown>, string];\n\n/**\n * @returns an array of Babel plugins that can be used for code-stripping\n * based on the configuration supplied to `setConfig` and the current ENV.\n *\n * - deprecation constants imported from `@warp-drive-mirror/build-config/deprecations`\n * - feature flags imported from `@warp-drive-mirror/build-config/canary-features`\n * - debug logging constants imported from `@warp-drive-mirror/build-config/debugging`\n * - environment constants imported from `@warp-drive-mirror/build-config/env`\n * - expressionts imported from `@warp-drive-mirror/build-config/macros`\n */\nexport function macros(): BabelPlugin[] {\n const TransformAsserts = import.meta.resolve('./babel-plugin-transform-asserts.cjs').slice(7);\n const TransformDeprecations = import.meta.resolve('./babel-plugin-transform-deprecations.cjs').slice(7);\n const TransformDebugLogging = import.meta.resolve('./babel-plugin-transform-logging.cjs').slice(7);\n const TransformFeatures = import.meta.resolve('./babel-plugin-transform-features.cjs').slice(7);\n\n let plugins = [\n [\n TransformAsserts,\n {\n sources: ['@warp-drive-mirror/build-config/macros', '@warp-drive-mirror/core/build-config/macros'],\n },\n '@warp-drive-mirror/core/build-config/asserts-stripping',\n ],\n [\n TransformFeatures,\n {\n sources: ['@warp-drive-mirror/build-config/canary-features', '@warp-drive-mirror/core/build-config/canary-features'],\n flags: config.features,\n },\n '@warp-drive-mirror/core/build-config/canary-features-stripping',\n ],\n [\n TransformDeprecations,\n {\n sources: ['@warp-drive-mirror/build-config/deprecations', '@warp-drive-mirror/core/build-config/deprecations'],\n flags: config.deprecations,\n },\n '@warp-drive-mirror/core/build-config/deprecation-stripping',\n ],\n [\n TransformDebugLogging,\n {\n sources: ['@warp-drive-mirror/build-config/debugging', '@warp-drive-mirror/core/build-config/debugging'],\n configKey: 'debug',\n runtimeKey: 'activeLogging',\n flags: config.debug,\n },\n '@warp-drive-mirror/core/build-config/debugging-stripping',\n ],\n [\n TransformDebugLogging,\n {\n sources: ['@warp-drive-mirror/build-config/env', '@warp-drive-mirror/core/build-config/env'],\n configKey: 'env',\n flags: {\n TESTING: true,\n PRODUCTION: true,\n DEBUG: true,\n IS_RECORDING: true,\n IS_CI: true,\n SHOULD_RECORD: true,\n },\n },\n '@warp-drive-mirror/core/build-config/env',\n ],\n ] satisfies BabelPlugin[];\n\n return plugins;\n}\n"],"names":["features","Object","keys","CURRENT_FEATURES","FEATURES","assign","forEach","feature","featureValue","config","deprecations","CURRENT_DEPRECATIONS","debug","LOGGING","macros","TransformAsserts","import","meta","resolve","slice","TransformDeprecations","TransformDebugLogging","TransformFeatures","plugins","sources","flags","configKey","runtimeKey","TESTING","PRODUCTION","DEBUG","IS_RECORDING","IS_CI","SHOULD_RECORD"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"babel-plugin-transform-asserts.cjs","sources":["../cjs-src/transforms/babel-plugin-transform-asserts.js"],"sourcesContent":["const { ImportUtil } = require('babel-import-util');\n\nconst Utils = new Set(['assert']);\n\n/*\n// Before\nimport { assert } from '@warp-drive-mirror/build-config/macros';\n\nassert('foo', true);\n\n// After\n(macroCondition(isDevelopingApp()) ? function assert(test) { if (!test) { throw new Error('foo'); } }(true) : {});\n*/\n\n// => _macros.getGlobalConfig().WarpDriveMirror.env.DEBUG\nfunction buildMacroConstDEBUG(types, binding, state) {\n return types.memberExpression(\n types.memberExpression(\n types.memberExpression(\n types.callExpression(state.importer.import(binding, '@embroider/macros', 'getGlobalConfig'), []),\n types.identifier('WarpDriveMirror')\n ),\n types.identifier('env')\n ),\n types.identifier('DEBUG')\n );\n}\n\n// => _macros.macroCondition(_macros.getGlobalConfig().WarpDriveMirror.env.DEBUG)\nfunction buildMacroConditionDEBUG(types, binding, state) {\n return types.callExpression(state.importer.import(binding, '@embroider/macros', 'macroCondition'), [\n buildMacroConstDEBUG(types, binding, state),\n ]);\n}\n\n// (test) => { if (!test) { throw new Error(someMessage); } }(someCond)\nfunction buildAssert(types, originalCallExpression) {\n const desc = originalCallExpression.arguments[0];\n const test = originalCallExpression.arguments[1] ?? types.booleanLiteral(false);\n // prettier-ignore\n return types.callExpression(\n types.arrowFunctionExpression([types.identifier('test')], // (test) =>\n types.blockStatement([ // {\n types.ifStatement( // if\n types.unaryExpression('!', types.identifier('test')), // (!test)\n types.blockStatement([ // {\n types.throwStatement( // throw\n types.newExpression(types.identifier('Error'), [desc]) // new Error(desc)\n )]) // }\n )]) // }\n ),\n [test] // (someCond)\n );\n}\n\n// => ( <debug-macro> ? <assert-exp> : {});\nfunction buildAssertTernary(types, binding, state, originalCallExpression) {\n return types.expressionStatement(\n types.conditionalExpression(\n buildMacroConditionDEBUG(types, binding, state),\n buildAssert(types, originalCallExpression),\n types.objectExpression([])\n )\n );\n}\n\nexport default function (babel) {\n const { types: t } = babel;\n\n return {\n name: 'ast-transform', // not required\n visitor: {\n ImportDeclaration(path, state) {\n const importPath = path.node.source.value;\n\n if (state.opts.sources.includes(importPath)) {\n const specifiers = path.get('specifiers');\n\n specifiers.forEach((specifier) => {\n const name = specifier.node.imported.name;\n if (!Utils.has(name)) {\n throw new Error(`Unexpected import '${name}' imported from '${importPath}'`);\n }\n\n const localBindingName = specifier.node.local.name;\n const binding = specifier.scope.getBinding(localBindingName);\n\n binding.referencePaths.forEach((p) => {\n const originalCallExpression = p.parentPath.node;\n\n if (!t.isCallExpression(originalCallExpression)) {\n throw new Error('Expected a call expression');\n }\n\n const assertTernary = buildAssertTernary(t, binding, state, originalCallExpression);\n p.parentPath.replaceWith(assertTernary);\n });\n specifier.scope.removeOwnBinding(localBindingName);\n specifier.remove();\n });\n\n if (path.get('specifiers').length === 0) {\n path.remove();\n }\n }\n },\n\n Program(path, state) {\n state.importer = new ImportUtil(t, path);\n },\n },\n };\n}\n"],"names":["ImportUtil","require","Utils","Set","buildMacroConstDEBUG","types","binding","state","memberExpression","callExpression","importer","import","identifier","buildMacroConditionDEBUG","buildAssert","originalCallExpression","desc","arguments","test","booleanLiteral","arrowFunctionExpression","blockStatement","ifStatement","unaryExpression","throwStatement","newExpression","buildAssertTernary","expressionStatement","conditionalExpression","objectExpression","babel","t","name","visitor","ImportDeclaration","path","importPath","node","source","value","opts","sources","includes","specifiers","get","forEach","specifier","imported","has","Error","localBindingName","local","scope","getBinding","referencePaths","p","parentPath","isCallExpression","assertTernary","replaceWith","removeOwnBinding","remove","length","Program"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"babel-plugin-transform-deprecations.cjs","sources":["../cjs-src/transforms/babel-plugin-transform-deprecations.js"],"sourcesContent":["import { ImportUtil } from 'babel-import-util';\n\nfunction parentIsUnary(node) {\n if (node.parent.type === 'UnaryExpression' && node.parent.operator === '!') {\n return true;\n }\n return false;\n}\n\nexport default function (babel) {\n const { types: t } = babel;\n\n return {\n name: 'deprecation-flags',\n visitor: {\n ImportDeclaration(path, state) {\n const importPath = path.node.source.value;\n\n if (state.opts.sources.includes(importPath)) {\n const specifiers = path.get('specifiers');\n specifiers.forEach((specifier) => {\n let name = specifier.node.imported.name;\n if (!(name in state.opts.flags)) {\n throw new Error(`Unexpected flag ${name} imported from ${importPath}`);\n }\n let localBindingName = specifier.node.local.name;\n let binding = specifier.scope.getBinding(localBindingName);\n binding.referencePaths.forEach((p, other) => {\n let negateStatement = false;\n let node = p;\n if (parentIsUnary(p)) {\n negateStatement = true;\n node = p.parentPath;\n }\n const comments =\n node.node.leadingComments ??\n (node.parent.type === 'ConditionalExpression' && node.parent.leadingComments) ??\n [];\n let shouldInlineConfigValue = false;\n if (comments?.length) {\n const lastComment = comments.at(-1);\n if (lastComment.value.trim() === 'inline-macro-config') {\n shouldInlineConfigValue = true;\n }\n }\n\n let getConfig = t.memberExpression(\n t.memberExpression(\n t.memberExpression(\n t.callExpression(state.importer.import(p, '@embroider/macros', 'getGlobalConfig'), []),\n t.identifier('WarpDriveMirror')\n ),\n t.identifier('deprecations')\n ),\n t.identifier(name)\n );\n\n const configExp = negateStatement ? t.unaryExpression('!', getConfig) : getConfig;\n const replaceExp = shouldInlineConfigValue\n ? // if (DEPRECATE_FOO)\n // =>\n // if (getGlobalConfig('WarpDriveMirror').deprecations.FOO)\n configExp\n : // if (DEPRECATE_FOO)\n // =>\n // if (macroCondition(getGlobalConfig('WarpDriveMirror').deprecations.FOO))\n t.callExpression(state.importer.import(p, '@embroider/macros', 'macroCondition'), [configExp]);\n node.replaceWith(replaceExp);\n });\n specifier.scope.removeOwnBinding(localBindingName);\n specifier.remove();\n });\n if (path.get('specifiers').length === 0) {\n path.remove();\n }\n }\n },\n\n Program(path, state) {\n state.importer = new ImportUtil(t, path);\n },\n },\n };\n}\n"],"names":["parentIsUnary","node","parent","type","operator","babel","types","t","name","visitor","ImportDeclaration","path","state","importPath","source","value","opts","sources","includes","specifiers","get","forEach","specifier","imported","flags","Error","localBindingName","local","binding","scope","getBinding","referencePaths","p","other","negateStatement","parentPath","comments","leadingComments","shouldInlineConfigValue","length","lastComment","at","trim","getConfig","memberExpression","callExpression","importer","import","identifier","configExp","unaryExpression","replaceExp","replaceWith","removeOwnBinding","remove","Program","ImportUtil"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"babel-plugin-transform-features.cjs","sources":["../cjs-src/transforms/babel-plugin-transform-features.js"],"sourcesContent":["import { ImportUtil } from 'babel-import-util';\nimport fs from 'fs';\n\nconst pkg = JSON.parse(fs.readFileSync(new URL('../package.json', import.meta.url), 'utf-8'));\nconst version = pkg.version;\n\nconst isCanary = version.includes('alpha');\n\nfunction parentIsUnary(node) {\n if (node.parent.type === 'UnaryExpression' && node.parent.operator === '!') {\n return true;\n }\n return false;\n}\n\nexport default function (babel) {\n const { types: t } = babel;\n\n return {\n name: 'ast-transform', // not required\n visitor: {\n ImportDeclaration(path, state) {\n const importPath = path.node.source.value;\n\n if (state.opts.sources.includes(importPath)) {\n const specifiers = path.get('specifiers');\n specifiers.forEach((specifier) => {\n let name = specifier.node.imported.name;\n if (!(name in state.opts.flags)) {\n throw new Error(`Unexpected flag ${name} imported from ${importPath}`);\n }\n let localBindingName = specifier.node.local.name;\n let binding = specifier.scope.getBinding(localBindingName);\n binding.referencePaths.forEach((p) => {\n let negateStatement = false;\n let node = p;\n\n if (parentIsUnary(p)) {\n negateStatement = true;\n node = p.parentPath;\n }\n let getConfig = t.memberExpression(\n t.memberExpression(\n t.memberExpression(\n t.callExpression(state.importer.import(p, '@embroider/macros', 'getGlobalConfig'), []),\n t.identifier('WarpDriveMirror')\n ),\n t.identifier('features')\n ),\n t.identifier(name)\n );\n node.replaceWith(\n // if (LOG_FOO)\n // =>\n // if (macroCondition(getGlobalConfig('WarpDriveMirror').debug.LOG_FOO))\n t.callExpression(state.importer.import(p, '@embroider/macros', 'macroCondition'), [\n negateStatement ? t.unaryExpression('!', getConfig) : getConfig,\n ])\n );\n });\n specifier.scope.removeOwnBinding(localBindingName);\n specifier.remove();\n });\n if (path.get('specifiers').length === 0) {\n path.remove();\n }\n }\n },\n\n Program(path, state) {\n state.importer = new ImportUtil(t, path);\n },\n },\n };\n}\n"],"names":["pkg","JSON","parse","fs","readFileSync","version","includes","parentIsUnary","node","parent","type","operator","babel","types","t","name","visitor","ImportDeclaration","path","state","importPath","source","value","opts","sources","specifiers","get","forEach","specifier","imported","flags","Error","localBindingName","local","binding","scope","getBinding","referencePaths","p","negateStatement","parentPath","getConfig","memberExpression","callExpression","importer","import","identifier","replaceWith","unaryExpression","removeOwnBinding","remove","length","Program","ImportUtil"],"mappings":";;;;;;AAGA,MAAMA,GAAG,GAAGC,IAAI,CAACC,KAAK,CAACC,EAAE,CAACC,YAAY,CAAC,IAAA,GAAA,CAAA,iBAAA,EAAA,qRAAA,CAA2C,EAAE,OAAO,CAAC,CAAC;AAC7F,MAAMC,OAAO,GAAGL,GAAG,CAACK,OAAO;AAEVA,OAAO,CAACC,QAAQ,CAAC,OAAO;AAEzC,SAASC,aAAaA,CAACC,IAAI,EAAE;AAC3B,EAAA,IAAIA,IAAI,CAACC,MAAM,CAACC,IAAI,KAAK,iBAAiB,IAAIF,IAAI,CAACC,MAAM,CAACE,QAAQ,KAAK,GAAG,EAAE;AAC1E,IAAA,OAAO,IAAI;AACb;AACA,EAAA,OAAO,KAAK;AACd;AAEe,qCAAA,EAAUC,KAAK,EAAE;EAC9B,MAAM;AAAEC,IAAAA,KAAK,EAAEC;AAAE,GAAC,GAAGF,KAAK;EAE1B,OAAO;AACLG,IAAAA,IAAI,EAAE,eAAe;AAAE;AACvBC,IAAAA,OAAO,EAAE;AACPC,MAAAA,iBAAiBA,CAACC,IAAI,EAAEC,KAAK,EAAE;QAC7B,MAAMC,UAAU,GAAGF,IAAI,CAACV,IAAI,CAACa,MAAM,CAACC,KAAK;QAEzC,IAAIH,KAAK,CAACI,IAAI,CAACC,OAAO,CAAClB,QAAQ,CAACc,UAAU,CAAC,EAAE;AAC3C,UAAA,MAAMK,UAAU,GAAGP,IAAI,CAACQ,GAAG,CAAC,YAAY,CAAC;AACzCD,UAAAA,UAAU,CAACE,OAAO,CAAEC,SAAS,IAAK;YAChC,IAAIb,IAAI,GAAGa,SAAS,CAACpB,IAAI,CAACqB,QAAQ,CAACd,IAAI;YACvC,IAAI,EAAEA,IAAI,IAAII,KAAK,CAACI,IAAI,CAACO,KAAK,CAAC,EAAE;cAC/B,MAAM,IAAIC,KAAK,CAAC,CAAA,gBAAA,EAAmBhB,IAAI,CAAkBK,eAAAA,EAAAA,UAAU,EAAE,CAAC;AACxE;YACA,IAAIY,gBAAgB,GAAGJ,SAAS,CAACpB,IAAI,CAACyB,KAAK,CAAClB,IAAI;YAChD,IAAImB,OAAO,GAAGN,SAAS,CAACO,KAAK,CAACC,UAAU,CAACJ,gBAAgB,CAAC;AAC1DE,YAAAA,OAAO,CAACG,cAAc,CAACV,OAAO,CAAEW,CAAC,IAAK;cACpC,IAAIC,eAAe,GAAG,KAAK;cAC3B,IAAI/B,IAAI,GAAG8B,CAAC;AAEZ,cAAA,IAAI/B,aAAa,CAAC+B,CAAC,CAAC,EAAE;AACpBC,gBAAAA,eAAe,GAAG,IAAI;gBACtB/B,IAAI,GAAG8B,CAAC,CAACE,UAAU;AACrB;cACA,IAAIC,SAAS,GAAG3B,CAAC,CAAC4B,gBAAgB,CAChC5B,CAAC,CAAC4B,gBAAgB,CAChB5B,CAAC,CAAC4B,gBAAgB,CAChB5B,CAAC,CAAC6B,cAAc,CAACxB,KAAK,CAACyB,QAAQ,CAACC,MAAM,CAACP,CAAC,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,EAAE,EAAE,CAAC,EACtFxB,CAAC,CAACgC,UAAU,CAAC,WAAW,CAC1B,CAAC,EACDhC,CAAC,CAACgC,UAAU,CAAC,UAAU,CACzB,CAAC,EACDhC,CAAC,CAACgC,UAAU,CAAC/B,IAAI,CACnB,CAAC;AACDP,cAAAA,IAAI,CAACuC,WAAW;AACd;AACA;AACA;AACAjC,cAAAA,CAAC,CAAC6B,cAAc,CAACxB,KAAK,CAACyB,QAAQ,CAACC,MAAM,CAACP,CAAC,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,EAAE,CAChFC,eAAe,GAAGzB,CAAC,CAACkC,eAAe,CAAC,GAAG,EAAEP,SAAS,CAAC,GAAGA,SAAS,CAChE,CACH,CAAC;AACH,aAAC,CAAC;AACFb,YAAAA,SAAS,CAACO,KAAK,CAACc,gBAAgB,CAACjB,gBAAgB,CAAC;YAClDJ,SAAS,CAACsB,MAAM,EAAE;AACpB,WAAC,CAAC;UACF,IAAIhC,IAAI,CAACQ,GAAG,CAAC,YAAY,CAAC,CAACyB,MAAM,KAAK,CAAC,EAAE;YACvCjC,IAAI,CAACgC,MAAM,EAAE;AACf;AACF;OACD;AAEDE,MAAAA,OAAOA,CAAClC,IAAI,EAAEC,KAAK,EAAE;QACnBA,KAAK,CAACyB,QAAQ,GAAG,IAAIS,0BAAU,CAACvC,CAAC,EAAEI,IAAI,CAAC;AAC1C;AACF;GACD;AACH;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"babel-plugin-transform-logging.cjs","sources":["../cjs-src/transforms/babel-plugin-transform-logging.js"],"sourcesContent":["import { ImportUtil } from 'babel-import-util';\n\nfunction parentIsUnary(node) {\n if (node.parent.type === 'UnaryExpression' && node.parent.operator === '!') {\n return true;\n }\n return false;\n}\n\nexport default function (babel) {\n const { types: t } = babel;\n\n return {\n name: 'ast-transform', // not required\n visitor: {\n ImportDeclaration(path, state) {\n const importPath = path.node.source.value;\n\n if (state.opts.sources.includes(importPath)) {\n const specifiers = path.get('specifiers');\n specifiers.forEach((specifier) => {\n let name = specifier.node.imported.name;\n if (!(name in state.opts.flags)) {\n throw new Error(`Unexpected flag ${name} imported from ${importPath}`);\n }\n let localBindingName = specifier.node.local.name;\n let binding = specifier.scope.getBinding(localBindingName);\n const enableRuntimeActivation = Boolean(state.opts.runtimeKey);\n const strippableKey = enableRuntimeActivation ? state.opts.runtimeKey : state.opts.configKey;\n\n binding.referencePaths.forEach((p) => {\n let negateStatement = false;\n let node = p;\n if (parentIsUnary(p)) {\n negateStatement = true;\n node = p.parentPath;\n }\n let getConfig = t.memberExpression(\n t.memberExpression(\n t.memberExpression(\n t.callExpression(state.importer.import(p, '@embroider/macros', 'getGlobalConfig'), []),\n t.identifier('WarpDriveMirror')\n ),\n t.identifier(strippableKey)\n ),\n t.identifier(name)\n );\n\n node.replaceWith(\n // if (LOG_FOO) {\n // // ...\n // }\n // =>\n // if (macroCondition(getGlobalConfig('WarpDriveMirror').debug.LOG_FOO)) {\n // // ...\n // }\n t.callExpression(state.importer.import(p, '@embroider/macros', 'macroCondition'), [\n negateStatement ? t.unaryExpression('!', getConfig) : getConfig,\n ])\n );\n\n if (enableRuntimeActivation) {\n // we do not yet support arbitrary runtime activation locations,\n // the only supported locations are `if (LOG)` style statements, no\n // ternaries or other more complex expressions\n const parentIfStatement = node.parentPath.type === 'IfStatement' ? node.parentPath : null;\n if (!parentIfStatement) {\n throw new Error(\n `Runtime activation of logging flags is only supported in if statements, but found node '${node.parentPath.type}'`\n );\n }\n\n // if (LOG_FOO) {\n // // ...\n // }\n // =>\n // if (macroCondition(getGlobalConfig('WarpDriveMirror').activeLogging.LOG_FOO)) {\n // if (getGlobalConfig('WarpDriveMirror').debug.LOG_FOO || globalThis.getWarpDriveRuntimeConfig().debug.LOG_FOO) {\n // // ...\n // }\n // }\n //\n // the outer-if is generated by the node-replace above. The inner if is generated here.\n const originalBody = parentIfStatement.node.consequent;\n\n // getGlobalConfig('WarpDriveMirror').debug.LOG_FOO\n const getActualConfig = t.memberExpression(\n t.memberExpression(\n t.memberExpression(\n t.callExpression(state.importer.import(p, '@embroider/macros', 'getGlobalConfig'), []),\n t.identifier('WarpDriveMirror')\n ),\n t.identifier(state.opts.configKey)\n ),\n t.identifier(name)\n );\n\n // globalThis.getWarpDriveRuntimeConfig().debug.LOG_FOO\n const getRuntimeConfig = t.memberExpression(\n t.memberExpression(\n t.callExpression(\n t.memberExpression(t.identifier('globalThis'), t.identifier('getWarpDriveRuntimeConfig')),\n []\n ),\n t.identifier(state.opts.configKey)\n ),\n t.identifier(name)\n );\n\n // <getActualConfig> || <getRuntimeConfig>\n const ifExp = t.logicalExpression('||', getActualConfig, getRuntimeConfig);\n\n // if (<negateStatement>(<getActualConfig> || <getRuntimeConfig>)) <originalBody>\n const innerIfStatement = t.ifStatement(\n negateStatement ? t.unaryExpression('!', ifExp) : ifExp,\n originalBody\n );\n\n // replace the original body with the new if statement\n parentIfStatement.node.consequent = t.blockStatement([innerIfStatement]);\n } else {\n }\n });\n specifier.scope.removeOwnBinding(localBindingName);\n specifier.remove();\n });\n if (path.get('specifiers').length === 0) {\n path.remove();\n }\n }\n },\n\n Program(path, state) {\n state.importer = new ImportUtil(t, path);\n },\n },\n };\n}\n"],"names":["parentIsUnary","node","parent","type","operator","babel","types","t","name","visitor","ImportDeclaration","path","state","importPath","source","value","opts","sources","includes","specifiers","get","forEach","specifier","imported","flags","Error","localBindingName","local","binding","scope","getBinding","enableRuntimeActivation","Boolean","runtimeKey","strippableKey","configKey","referencePaths","p","negateStatement","parentPath","getConfig","memberExpression","callExpression","importer","import","identifier","replaceWith","unaryExpression","parentIfStatement","originalBody","consequent","getActualConfig","getRuntimeConfig","ifExp","logicalExpression","innerIfStatement","ifStatement","blockStatement","removeOwnBinding","remove","length","Program","ImportUtil"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"canary-features-CuKgaVtX.js","sources":["../src/canary-features.ts"],"sourcesContent":["/**\n *\n * # Canary Features <Badge type=\"warning\" text=\"requires canary\" />\n *\n * ***Warp*Drive** allows users to test upcoming features that are implemented\n * but not yet activated in canary builds.\n *\n * Typically these features represent work that carries higher risk of breaking\n * changes, or are not yet fully ready for production use.\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, beginning the process of it landing in a stable release.\n *\n * ### Installing Canary\n *\n * ::: warning To test a feature guarded behind a flag, you MUST be using a canary build.\n * :::\n *\n * Canary builds are published to `npm` and can be installed using a precise tag\n * (such as `@warp-drive-mirror/core@5.6.0-alpha.1`) or by installing the latest dist-tag\n * published to the `canary` channel.\n *\n * Because ***Warp*Drive** packages operate on a strict lockstep policy with each other,\n * you must install the matching canary version of all ***Warp*Drive** packages.\n *\n * Below is an example of installing the latest canary version of all the core\n * packages that are part of the ***Warp*Drive** project when using EmberJS.\n *\n * Add/remove packages from this list to match your project.\n *\n * ::: code-group\n *\n * ```sh [pnpm]\n * pnpm add -E @warp-drive-mirror/core@canary \\\n * @warp-drive-mirror/json-api@canary \\\n * @warp-drive-mirror/ember@canary;\n * ```\n *\n * ```sh [npm]\n * npm add -E @warp-drive-mirror/core@canary \\\n * @warp-drive-mirror/json-api@canary \\\n * @warp-drive-mirror/ember@canary;\n * ```\n *\n * ```sh [yarn]\n * yarn add -E @warp-drive-mirror/core@canary \\\n * @warp-drive-mirror/json-api@canary \\\n * @warp-drive-mirror/ember@canary;\n * ```\n *\n * ```sh [bun]\n * bun add --exact @warp-drive-mirror/core@canary \\\n * @warp-drive-mirror/json-api@canary \\\n * @warp-drive-mirror/ember@canary;\n * ```\n *\n * :::\n *\n * ### Activating a Feature\n *\n * Once you have installed canary, feature-flags can be activated at build-time\n *\n * ```ts\n * setConfig(app, __dirname, {\n * features: {\n * FEATURE_A: false, // utilize existing behavior\n * FEATURE_B: true // utilize the new behavior\n * }\n * })\n * ```\n *\n * by setting an environment variable:\n *\n * ```sh\n * # Activate a single flag\n * export WARP_DRIVE_FEATURE_OVERRIDE=SOME_FLAG;\n *\n * # Activate multiple flags by separating with commas\n * export WARP_DRIVE_FEATURE_OVERRIDE=SOME_FLAG,OTHER_FLAG;\n *\n * # Activate all flags\n * export WARP_DRIVE_FEATURE_OVERRIDE=ENABLE_ALL_OPTIONAL;\n * ```\n *\n * ::: warning To test a feature guarded behind a flag, you MUST be running a development build.\n * :::\n *\n *\n * ### Preparing a Project to use a Canary Feature\n *\n * For most projects and features, simple version detection should be enough.\n *\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('@warp-drive-mirror/core', '5.6'))) {\n * // do thing\n * }\n * ```\n *\n * For more complex projects and migrations, configure [@warp-drive-mirror/build-config/babel-macros](./babel-macros)\n *\n * The current list of features used at build time for canary releases is defined below.\n *\n * ::: tip 💡 If empty there are no features currently gated by feature flags.\n * :::\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 * @module\n * @public\n */\n\n/**\n * We use this for some tests etc.\n *\n * @internal\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 * @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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACO,MAAMA,mBAAmC,GAAG;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,gCAAgD,GAAG;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"canary-features.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
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(forceMode?: 'testing' | 'production' | 'development' | 'debug'): {\n TESTING: boolean;\n PRODUCTION: boolean;\n DEBUG: boolean;\n IS_RECORDING: boolean;\n IS_CI: boolean;\n SHOULD_RECORD: boolean;\n} {\n const FORCE_TESTING = forceMode === 'testing' || forceMode === 'development' || forceMode === 'debug';\n const FORCE_DEBUG = forceMode === 'development' || forceMode === 'debug';\n const FORCE_PRODUCTION = forceMode === 'production';\n\n const { EMBER_ENV, IS_TESTING, EMBER_CLI_TEST_COMMAND, NODE_ENV, CI, IS_RECORDING } = process.env;\n const PRODUCTION = FORCE_PRODUCTION || EMBER_ENV === 'production' || (!EMBER_ENV && NODE_ENV === 'production');\n const DEBUG = FORCE_DEBUG || !PRODUCTION;\n const TESTING = FORCE_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// 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//\nexport const DEPRECATE_CATCH_ALL = '99.0';\nexport const DEPRECATE_NON_STRICT_TYPES = '5.3';\nexport const DEPRECATE_NON_STRICT_ID = '5.3';\nexport const DEPRECATE_COMPUTED_CHAINS = '7.0';\nexport const DEPRECATE_LEGACY_IMPORTS = '5.3';\nexport const DEPRECATE_NON_UNIQUE_PAYLOADS = '5.3';\nexport const DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE = '5.3';\nexport const DEPRECATE_MANY_ARRAY_DUPLICATES = '5.3';\nexport const DEPRECATE_STORE_EXTENDS_EMBER_OBJECT = '5.4';\nexport const ENABLE_LEGACY_SCHEMA_SERVICE = '5.4';\nexport const DEPRECATE_EMBER_INFLECTOR = '5.3';\nexport const DISABLE_7X_DEPRECATIONS = '7.0';\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 * # Canary Features <Badge type=\"warning\" text=\"requires canary\" />\n *\n * ***Warp*Drive** allows users to test upcoming features that are implemented\n * but not yet activated in canary builds.\n *\n * Typically these features represent work that carries higher risk of breaking\n * changes, or are not yet fully ready for production use.\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, beginning the process of it landing in a stable release.\n *\n * ### Installing Canary\n *\n * ::: warning To test a feature guarded behind a flag, you MUST be using a canary build.\n * :::\n *\n * Canary builds are published to `npm` and can be installed using a precise tag\n * (such as `@warp-drive-mirror/core@5.6.0-alpha.1`) or by installing the latest dist-tag\n * published to the `canary` channel.\n *\n * Because ***Warp*Drive** packages operate on a strict lockstep policy with each other,\n * you must install the matching canary version of all ***Warp*Drive** packages.\n *\n * Below is an example of installing the latest canary version of all the core\n * packages that are part of the ***Warp*Drive** project when using EmberJS.\n *\n * Add/remove packages from this list to match your project.\n *\n * ::: code-group\n *\n * ```sh [pnpm]\n * pnpm add -E @warp-drive-mirror/core@canary \\\n * @warp-drive-mirror/json-api@canary \\\n * @warp-drive-mirror/ember@canary;\n * ```\n *\n * ```sh [npm]\n * npm add -E @warp-drive-mirror/core@canary \\\n * @warp-drive-mirror/json-api@canary \\\n * @warp-drive-mirror/ember@canary;\n * ```\n *\n * ```sh [yarn]\n * yarn add -E @warp-drive-mirror/core@canary \\\n * @warp-drive-mirror/json-api@canary \\\n * @warp-drive-mirror/ember@canary;\n * ```\n *\n * ```sh [bun]\n * bun add --exact @warp-drive-mirror/core@canary \\\n * @warp-drive-mirror/json-api@canary \\\n * @warp-drive-mirror/ember@canary;\n * ```\n *\n * :::\n *\n * ### Activating a Feature\n *\n * Once you have installed canary, feature-flags can be activated at build-time\n *\n * ```ts\n * setConfig(app, __dirname, {\n * features: {\n * FEATURE_A: false, // utilize existing behavior\n * FEATURE_B: true // utilize the new behavior\n * }\n * })\n * ```\n *\n * by setting an environment variable:\n *\n * ```sh\n * # Activate a single flag\n * export WARP_DRIVE_FEATURE_OVERRIDE=SOME_FLAG;\n *\n * # Activate multiple flags by separating with commas\n * export WARP_DRIVE_FEATURE_OVERRIDE=SOME_FLAG,OTHER_FLAG;\n *\n * # Activate all flags\n * export WARP_DRIVE_FEATURE_OVERRIDE=ENABLE_ALL_OPTIONAL;\n * ```\n *\n * ::: warning To test a feature guarded behind a flag, you MUST be running a development build.\n * :::\n *\n *\n * ### Preparing a Project to use a Canary Feature\n *\n * For most projects and features, simple version detection should be enough.\n *\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('@warp-drive-mirror/core', '5.6'))) {\n * // do thing\n * }\n * ```\n *\n * For more complex projects and migrations, configure [@warp-drive-mirror/build-config/babel-macros](./babel-macros)\n *\n * The current list of features used at build time for canary releases is defined below.\n *\n * ::: tip 💡 If empty there are no features currently gated by feature flags.\n * :::\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 * @module\n * @public\n */\n\n/**\n * We use this for some tests etc.\n *\n * @internal\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 * @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 * # Log Instrumentation <Badge type=\"tip\" text=\"debug only\" />\n *\n * Many portions of the internals are helpfully instrumented with logging.\n * This instrumentation is always removed from production builds.\n *\n * Log instrumentation is \"regionalized\" to specific concepts and concerns\n * to enable you to enable/disable just the areas you are interested in.\n *\n * To activate a particular group of logs set the appropriate flag to `true`\n * either in your build config or via the runtime helper.\n *\n *\n * ## Runtime Activation\n *\n * ::: tip 💡 Just Works in browser Dev Tools!\n * No import is needed, and the logging config is preserved when the page is refreshed\n * :::\n *\n * ```ts\n * setWarpDriveLogging({\n * LOG_CACHE: true,\n * LOG_REQUESTS: true,\n * })\n * ```\n *\n * A runtime helper is attached to `globalThis` to enable activation of the logs\n * from anywhere in your application including from the devtools panel.\n *\n * The runtime helper overrides any build config settings for the given flag\n * for the current browser tab. It stores the configuration you give it in\n * `sessionStorage` so that it persists across page reloads of the current tab,\n * but not across browser tabs or windows.\n *\n * If you need to deactivate the logging, you can call the helper again with the\n * same flag set to `false` or just open a new tab/window.\n *\n * ## Buildtime Activation\n *\n * ```ts\n * setConfig(__dirname, app, {\n * debug: {\n * LOG_CACHE: true,\n * LOG_REQUESTS: false,\n * LOG_NOTIFICATIONS: true,\n * }\n * });\n * ```\n *\n * The build config settings are used to set the default values for the\n * logging flags. Any logging flag that is not set in the build config\n * will default to `false`.\n *\n * @module\n */\n/**\n * log cache updates for both local\n * and remote state. Note in some older versions\n * this was called `LOG_PAYLOADS` and was one\n * of three flags that controlled logging of\n * cache updates. This is now the only flag.\n *\n * The others were `LOG_OPERATIONS` and `LOG_MUTATIONS`.\n *\n * @public\n * @since 5.5\n */\nexport const LOG_CACHE: boolean = false;\n\n/**\n * <Badge type=\"danger\" text=\"removed\" />\n *\n * This flag no longer has any effect.\n *\n * Use {@link LOG_CACHE} instead.\n *\n * @deprecated removed in version 5.5\n * @public\n */\nexport const LOG_PAYLOADS: boolean = false;\n\n/**\n * <Badge type=\"danger\" text=\"removed\" />\n *\n * This flag no longer has any effect.\n *\n * Use {@link LOG_CACHE} instead.\n *\n * @deprecated removed in version 5.5\n * @public\n */\nexport const LOG_OPERATIONS: boolean = false;\n\n/**\n * <Badge type=\"danger\" text=\"removed\" />\n *\n * This flag no longer has any effect.\n *\n * Use {@link LOG_CACHE} instead.\n *\n * @deprecated removed in version 5.5\n * @public\n */\nexport const LOG_MUTATIONS: boolean = false;\n\n/**\n * Log decisions made by the Basic CachePolicy\n *\n * @public\n */\nexport const LOG_CACHE_POLICY: boolean = false;\n\n/**\n * log notifications received by the NotificationManager\n *\n * @public\n */\nexport const LOG_NOTIFICATIONS: boolean = false;\n/**\n * log requests issued by the RequestManager\n *\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 * @public\n */\nexport const LOG_REQUEST_STATUS: boolean = false;\n/**\n * log peek, generation and updates to\n * Record Identifiers.\n *\n\n * @public\n */\nexport const LOG_IDENTIFIERS: boolean = false;\n/**\n * log updates received by the graph (relationship pointer storage)\n *\n * @public\n */\nexport const LOG_GRAPH: boolean = false;\n/**\n * log creation/removal of RecordData and Record\n * instances.\n *\n * @public\n */\nexport const LOG_INSTANCE_CACHE: boolean = false;\n/**\n * Log key count metrics, useful for performance\n * debugging.\n *\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 * @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 * @internal\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 * This package provides a build-plugin that enables configuration of deprecations,\n * optional features, development/testing support and debug logging.\n *\n * This configuration is done using `setConfig` in `ember-cli-build`.\n *\n * ```ts [ember-cli-build.js]\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'); // [!code focus]\n *\n * const app = new EmberApp(defaults, {});\n *\n * setConfig(app, __dirname, { // [!code focus:3]\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 * - {@link LOGGING | debugging}\n * - {@link DEPRECATIONS | deprecations}\n * - {@link FEATURES | features}\n * - {@link WarpDriveConfig.polyfillUUID | polyfillUUID}\n * - {@link WarpDriveConfig.includeDataAdapterInProduction | includeDataAdapterInProduction}\n * - {@link WarpDriveConfig.compatWith | compatWith}\n *\n *\n *\n * @module\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 * as FEATURES from './canary-features.ts';\nimport type * as DEPRECATIONS from './deprecations.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\nexport type WarpDriveConfig = {\n /**\n * An object of key/value pairs of logging flags\n *\n * see {@link LOGGING | debugging} for the available flags.\n *\n * ```ts\n * {\n * LOG_CACHE: true,\n * }\n * ```\n *\n * @public\n */\n debug?: Partial<InternalWarpDriveConfig['debug']>;\n\n /**\n * If you are using the library in an environment that does not\n * support `window.crypto.randomUUID` you can enable a polyfill\n * for it.\n *\n * @public\n */\n polyfillUUID?: boolean;\n\n /**\n * By default, the integration required to support the ember-inspector\n * browser extension is included in production builds only when using\n * the `ember-data` package.\n *\n * Otherwise the default is to exclude it. This setting allows to explicitly\n * enable/disable it in production builds.\n *\n * @public\n */\n includeDataAdapterInProduction?: boolean;\n\n /**\n * The most recent version of the library from which all\n * deprecations have been resolved.\n *\n * For instance if all deprecations released prior to or\n * within `5.3` have been resolved, then setting this to\n * `5.3` will remove all the support for the deprecated\n * features for associated deprecations.\n *\n * See {@link DEPRECATIONS | deprecations} for more details.\n */\n compatWith?: `${number}.${number}`;\n\n /**\n * An object of key/value pairs of logging flags\n *\n * see {@link DEPRECATIONS | deprecations} for the available flags.\n *\n * ```ts\n * {\n * DEPRECATE_THING: false,\n * }\n * ```\n *\n * @public\n */\n deprecations?: Partial<InternalWarpDriveConfig['deprecations']>;\n\n /**\n * An object of key/value pairs of canary feature flags\n * for use when testing new features gated behind a flag\n * in a canary release version.\n *\n * see {@link FEATURES | features} for the available flags.\n *\n * ```ts\n * {\n * FEATURE_A: true,\n * }\n * ```\n *\n * @public\n */\n features?: Partial<InternalWarpDriveConfig['features']>;\n\n /**\n * @private\n */\n forceMode?: 'testing' | 'production' | 'development';\n};\n\ntype InternalWarpDriveConfig = {\n debug: typeof LOGGING;\n polyfillUUID: boolean;\n includeDataAdapter: boolean;\n compatWith: `${number}.${number}` | null;\n deprecations: ReturnType<typeof getDeprecations>;\n features: ReturnType<typeof getFeatures>;\n activeLogging: typeof LOGGING;\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-mirror/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(userConfig.forceMode);\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","forceMode","FORCE_TESTING","FORCE_DEBUG","FORCE_PRODUCTION","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_PAYLOADS","LOG_OPERATIONS","LOG_MUTATIONS","LOG_CACHE_POLICY","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":"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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACO,MAAMS,mBAAmC,GAAG,IAAI;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,gCAAgD,GAAG,KAAK;;;;;;;;AClIrE,MAAMC,OAAO,GAAG,OAAOC,SAAS,KAAK,WAAW,GAAGA,SAAS,GAAGC,iBAAa,CAAC,IAA6B,GAAA,CAAA,GAAA,EAAA,oQAAA,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,GAAGxB,MAAM,CAACyB,MAAM,CAAC,EAAE,EAAEC,gBAAgB,CAA6B;AAChF,EAAA,MAAM3B,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACyB,QAAQ,CAAc;EAE/C,IAAI,CAACJ,QAAQ,EAAE;AACb;AACA,IAAA,KAAK,MAAMO,OAAO,IAAI5B,IAAI,EAAE;AAC1B,MAAA,IAAI6B,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,GAAG/D,OAAO,CAACC,GAAG,CAAC+D,2BAA2B;EACjE,IAAID,iBAAiB,KAAK,qBAAqB,EAAE;AAC/C;AACA,IAAA,KAAK,MAAMF,OAAO,IAAI5B,IAAI,EAAE;AAC1B,MAAA,IAAI6B,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,IAAI5B,IAAI,EAAE;AAC1ByB,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,CAAClC,IAAI,CAACsB,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,IAAI5B,IAAI,EAAE;AAC1B,MAAA,IAAI6B,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;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAAK;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,YAAqB,GAAG,KAAK;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,cAAuB,GAAG,KAAK;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,aAAsB,GAAG,KAAK;;AAE3C;AACA;AACA;AACA;AACA;AACO,MAAMC,gBAAyB,GAAG,KAAK;;AAE9C;AACA;AACA;AACA;AACA;AACO,MAAMC,iBAA0B,GAAG,KAAK;AAC/C;AACA;AACA;AACA;AACA;AACO,MAAMC,YAAqB,GAAG,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAA2B,GAAG,KAAK;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACO,MAAMC,eAAwB,GAAG,KAAK;AAC7C;AACA;AACA;AACA;AACA;AACO,MAAMC,SAAkB,GAAG,KAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAA2B,GAAG,KAAK;AAChD;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debugging-VdsvkNjX.js","sources":["../src/debugging.ts"],"sourcesContent":["/**\n * # Log Instrumentation <Badge type=\"tip\" text=\"debug only\" />\n *\n * Many portions of the internals are helpfully instrumented with logging.\n * This instrumentation is always removed from production builds.\n *\n * Log instrumentation is \"regionalized\" to specific concepts and concerns\n * to enable you to enable/disable just the areas you are interested in.\n *\n * To activate a particular group of logs set the appropriate flag to `true`\n * either in your build config or via the runtime helper.\n *\n *\n * ## Runtime Activation\n *\n * ::: tip 💡 Just Works in browser Dev Tools!\n * No import is needed, and the logging config is preserved when the page is refreshed\n * :::\n *\n * ```ts\n * setWarpDriveLogging({\n * LOG_CACHE: true,\n * LOG_REQUESTS: true,\n * })\n * ```\n *\n * A runtime helper is attached to `globalThis` to enable activation of the logs\n * from anywhere in your application including from the devtools panel.\n *\n * The runtime helper overrides any build config settings for the given flag\n * for the current browser tab. It stores the configuration you give it in\n * `sessionStorage` so that it persists across page reloads of the current tab,\n * but not across browser tabs or windows.\n *\n * If you need to deactivate the logging, you can call the helper again with the\n * same flag set to `false` or just open a new tab/window.\n *\n * ## Buildtime Activation\n *\n * ```ts\n * setConfig(__dirname, app, {\n * debug: {\n * LOG_CACHE: true,\n * LOG_REQUESTS: false,\n * LOG_NOTIFICATIONS: true,\n * }\n * });\n * ```\n *\n * The build config settings are used to set the default values for the\n * logging flags. Any logging flag that is not set in the build config\n * will default to `false`.\n *\n * @module\n */\n/**\n * log cache updates for both local\n * and remote state. Note in some older versions\n * this was called `LOG_PAYLOADS` and was one\n * of three flags that controlled logging of\n * cache updates. This is now the only flag.\n *\n * The others were `LOG_OPERATIONS` and `LOG_MUTATIONS`.\n *\n * @public\n * @since 5.5\n */\nexport const LOG_CACHE: boolean = false;\n\n/**\n * <Badge type=\"danger\" text=\"removed\" />\n *\n * This flag no longer has any effect.\n *\n * Use {@link LOG_CACHE} instead.\n *\n * @deprecated removed in version 5.5\n * @public\n */\nexport const LOG_PAYLOADS: boolean = false;\n\n/**\n * <Badge type=\"danger\" text=\"removed\" />\n *\n * This flag no longer has any effect.\n *\n * Use {@link LOG_CACHE} instead.\n *\n * @deprecated removed in version 5.5\n * @public\n */\nexport const LOG_OPERATIONS: boolean = false;\n\n/**\n * <Badge type=\"danger\" text=\"removed\" />\n *\n * This flag no longer has any effect.\n *\n * Use {@link LOG_CACHE} instead.\n *\n * @deprecated removed in version 5.5\n * @public\n */\nexport const LOG_MUTATIONS: boolean = false;\n\n/**\n * Log decisions made by the Basic CachePolicy\n *\n * @public\n */\nexport const LOG_CACHE_POLICY: boolean = false;\n\n/**\n * log notifications received by the NotificationManager\n *\n * @public\n */\nexport const LOG_NOTIFICATIONS: boolean = false;\n/**\n * log requests issued by the RequestManager\n *\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 * @public\n */\nexport const LOG_REQUEST_STATUS: boolean = false;\n/**\n * log peek, generation and updates to\n * Record Identifiers.\n *\n\n * @public\n */\nexport const LOG_IDENTIFIERS: boolean = false;\n/**\n * log updates received by the graph (relationship pointer storage)\n *\n * @public\n */\nexport const LOG_GRAPH: boolean = false;\n/**\n * log creation/removal of RecordData and Record\n * instances.\n *\n * @public\n */\nexport const LOG_INSTANCE_CACHE: boolean = false;\n/**\n * Log key count metrics, useful for performance\n * debugging.\n *\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 * @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 * @internal\n */\nexport const __INTERNAL_LOG_NATIVE_MAP_SET_COUNTS: boolean = false;\n"],"names":["LOG_CACHE","LOG_PAYLOADS","LOG_OPERATIONS","LOG_MUTATIONS","LOG_CACHE_POLICY","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;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACO,MAAMC,YAAqB,GAAG;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,cAAuB,GAAG;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,aAAsB,GAAG;;AAEtC;AACA;AACA;AACA;AACA;AACO,MAAMC,gBAAyB,GAAG;;AAEzC;AACA;AACA;AACA;AACA;AACO,MAAMC,iBAA0B,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACO,MAAMC,YAAqB,GAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAA2B,GAAG;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACO,MAAMC,eAAwB,GAAG;AACxC;AACA;AACA;AACA;AACA;AACO,MAAMC,SAAkB,GAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAA2B,GAAG;AAC3C;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,iBAA0B,GAAG;AAC1C;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.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debugging.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deprecations-BNNGFAiG.js","sources":["../src/deprecations.ts"],"sourcesContent":["/**\n * # Deprecations\n *\n * This guide is intended to help you understand both how to address an active\n * deprecation and how to eliminate the code that supports the deprecation once\n * it has been resolved.\n *\n * Eliminating the associated code reduces the size of your application, often opts\n * applications into more performant fast-paths, and ensures your application does\n * not revert to using the deprecated behavior in the future.\n *\n * ## Active Deprecation IDs\n *\n * - {@link DEPRECATE_NON_STRICT_TYPES | ember-data:deprecate-non-strict-types}\n * - {@link DEPRECATE_NON_STRICT_ID | ember-data:deprecate-non-strict-id}\n * - {@link DEPRECATE_LEGACY_IMPORTS | ember-data:deprecate-legacy-imports}\n * - {@link DEPRECATE_NON_UNIQUE_PAYLOADS | ember-data:deprecate-non-unique-collection-payloads}\n * - {@link DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE | ember-data:deprecate-relationship-remote-update-clearing-local-state}\n * - {@link DEPRECATE_MANY_ARRAY_DUPLICATES | ember-data:deprecate-many-array-duplicates}\n * - {@link DEPRECATE_STORE_EXTENDS_EMBER_OBJECT | ember-data:deprecate-store-extends-ember-object}\n * - {@link ENABLE_LEGACY_SCHEMA_SERVICE | ember-data:schema-service-updates}\n * - {@link DEPRECATE_EMBER_INFLECTOR | warp-drive.ember-inflector}\n * - {@link DEPRECATE_TRACKING_PACKAGE | warp-drive:deprecate-tracking-package}\n *\n * ## Removing Code for Deprecated Features\n *\n * ***Warp*Drive** enables applications to opt-in to fully eliminating the code\n * for a deprecated feature once the application has taken the necessary steps to\n * ensure that it no longer requires the use of the code which triggers the deprecation.\n *\n * Each deprecation ID is associated to a deprecation flag which is used to instrument\n * the library for build-time removal of the deprecated code. Some flags have multiple\n * deprecation IDs associated to them, in which case to remove the deprecated code all\n * of the deprecation IDs must be resolved.\n *\n *\n * There are two modes for opting into deprecated code removal:\n *\n * - by version\n * - by deprecation flag\n *\n * If your app has resolved all deprecations present in a given version,\n * you may specify that version as your \"compatWith\" version. This will\n * remove the code for all deprecations that were introduced in or before\n * that version.\n *\n * ::: code-group\n *\n * ```ts [ember-cli-build.js]\n * setConfig(app, __dirname, {\n * compatWith: '5.0', // [!code highlight]\n * });\n * ```\n *\n * ```ts [babel.config.mjs]\n * setConfig(context, {\n * compatWith: '5.0', // [!code highlight]\n * });\n * ```\n *\n * :::\n *\n * For instance, if a deprecation was introduced in 5.3, and the app specifies\n * 5.2 as its minimum version compatibility, any deprecations introduced in or\n * before 5.2 will be removed, but any deprecations introduced in 5.3 will remain.\n *\n * You may also specify that specific deprecations are resolved. These approaches\n * may be used together.\n *\n * ::: code-group\n *\n * ```ts [ember-cli-build.js]\n * setConfig(app, __dirname, {\n * deprecations: {\n * DEPRECATE_NON_STRICT_TYPES: false, // [!code highlight]\n * DEPRECATE_NON_STRICT_ID: false, // [!code highlight]\n * }\n * });\n * ```\n *\n * ```ts [babel.config.mjs]\n * setConfig(context, {\n * deprecations: {\n * DEPRECATE_NON_STRICT_TYPES: false, // [!code highlight]\n * DEPRECATE_NON_STRICT_ID: false, // [!code highlight]\n * }\n * });\n * ```\n *\n * :::\n *\n *\n * ::: info 💡 Report Bugs if You Find Them\n * ***Warp*Drive** 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\n * occur when removing code for only specific deprecations.\n *\n * If this happens, we'd like to know 💜\n * :::\n *\n * @module\n */\n\n/** @internal */\nexport const DEPRECATE_CATCH_ALL: boolean = true;\n\n/**\n * <Badge type=\"danger\" text=\"no-id-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 WarpDrive 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 * @since 5.0\n * @until 8.0\n * @public\n */\nexport const DEPRECATE_COMPUTED_CHAINS: boolean = true;\n\n/**\n * <Badge type=\"warning\" text=\"ember-data-mirror:deprecate-non-strict-types\" />\n *\n * Currently, ***Warp*Drive** 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 @warp-drive-mirror/legacy/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 * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_NON_STRICT_TYPES: boolean = true;\n\n/**\n * <Badge type=\"warning\" text=\"ember-data-mirror:deprecate-non-strict-id\" />\n *\n * Currently, WarpDrive 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 * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_NON_STRICT_ID: boolean = true;\n\n/**\n * <Badge type=\"warning\" text=\"ember-data-mirror: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 * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_LEGACY_IMPORTS: boolean = true;\n\n/**\n * <Badge type=\"warning\" text=\"ember-data-mirror: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 * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_NON_UNIQUE_PAYLOADS: boolean = true;\n\n/**\n * <Badge type=\"warning\" text=\"ember-data-mirror: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 * WarpDrive'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 WarpDrive.\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 * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE: boolean = true;\n\n/**\n * <Badge type=\"warning\" text=\"ember-data-mirror: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 * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_MANY_ARRAY_DUPLICATES: boolean = true;\n\n/**\n * <Badge type=\"warning\" text=\"ember-data-mirror: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 * @since 5.4\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_STORE_EXTENDS_EMBER_OBJECT: boolean = true;\n\n/**\n * <Badge type=\"warning\" text=\"ember-data-mirror: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 * @since 5.4\n * @until 6.0\n * @public\n */\nexport const ENABLE_LEGACY_SCHEMA_SERVICE: boolean = true;\n\n/**\n * <Badge type=\"warning\" text=\" 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 * @since 5.3\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_EMBER_INFLECTOR: boolean = true;\n\n/**\n * <Badge type=\"warning\" text=\"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 * @since 5.5\n * @until 6.0\n * @public\n */\nexport const DEPRECATE_TRACKING_PACKAGE: boolean = true;\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 ***Warp*Drive**.\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 * @since 5.3\n * @until 7.0\n * @public\n */\nexport const DISABLE_7X_DEPRECATIONS: boolean = true;\n"],"names":["DEPRECATE_CATCH_ALL","DEPRECATE_COMPUTED_CHAINS","DEPRECATE_NON_STRICT_TYPES","DEPRECATE_NON_STRICT_ID","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","DEPRECATE_TRACKING_PACKAGE","DISABLE_7X_DEPRECATIONS"],"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO,MAAMA,mBAA4B,GAAG;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,yBAAkC,GAAG;;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;AACO,MAAMC,0BAAmC,GAAG;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,uBAAgC,GAAG;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,wBAAiC,GAAG;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,6BAAsC,GAAG;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,yDAAkE,GAAG;;AAElF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,+BAAwC,GAAG;;AAExD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO,MAAMC,oCAA6C,GAAG;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,4BAAqC,GAAG;;AAErD;AACA;AACA;AACA;AACA;AACA;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,yBAAkC,GAAG;;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;AACO,MAAMC,0BAAmC,GAAG;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,uBAAgC,GAAG;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/deprecations.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deprecations.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/env.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sources":["../src/env.ts"],"sourcesContent":["/**\n * Internal constants for instrumenting the library's code for different environments.\n *\n * @hidden\n * @module\n */\n\n/**\n * a `boolean` indicating whether the code is running in a **development environment**\n * which is converted into a [macroCondition](https://www.npmjs.com/package/@embroider/macros#the-macros) during the package's build process.\n *\n * code within a branch where `DEBUG === true` will be removed from **production** builds\n * while code within a branch where `DEBUG === false` will be removed from **development** builds\n *\n * ```ts\n * if (DEBUG) {\n * // debug code\n * } else {\n * // production code\n * }\n * ```\n *\n * This constant may be used in ternary expressions but should not be\n * otherwised used as a value.\n *\n * Negating the value is supported.\n *\n * ```ts\n * if (!DEBUG) {\n * // production code\n * } else {\n * // debug code\n * }\n * ```\n *\n * @internal\n */\nexport const DEBUG: boolean = true;\n/**\n * a `boolean` indicating whether the code is running in a **production environment**\n * which is converted into a [macroCondition](https://www.npmjs.com/package/@embroider/macros#the-macros) during the package's build process.\n *\n * code within a branch where `PRODUCTION === true` will be removed from **development** builds\n * while code within a branch where `PRODUCTION === false` will be removed from **production** builds\n *\n * ```ts\n * if (PRODUCTION) {\n * // production code\n * } else {\n * // debug code\n * }\n * ```\n *\n * This constant may be used in ternary expressions but should not be\n * otherwised used as a value.\n *\n * Negating the value is supported.\n *\n * ```ts\n * if (!PRODUCTION) {\n * // debug code\n * } else {\n * // production code\n * }\n * ```\n *\n * @internal\n */\nexport const PRODUCTION: boolean = true;\n/**\n * a `boolean` indicating whether the code is running in a **testing environment**\n * which is converted into a [macroCondition](https://www.npmjs.com/package/@embroider/macros#the-macros) during the package's build process.\n *\n * TESTING can be true for both development and production builds, it is always true\n * in a development build, and also true when any of the following ENV variables are set:\n *\n * - `EMBER_ENV === 'test'`\n * - `IS_TESTING`\n * - `EMBER_CLI_TEST_COMMAND`\n *\n * ```ts\n * if (TESTING) {\n * // test env code\n * } else {\n * // non-test env code\n * }\n * ```\n *\n * Like DEBUG and PRODUCTION, this constant is converted into a macro during the package's\n * build process, and code within the `false` branch will be removed from the build output.\n *\n * This constant may be used in ternary expressions but should not be\n * otherwised used as a value.\n *\n * Negating the value is supported.\n *\n * ```ts\n * if (!TESTING) {\n * // production code\n * } else {\n * // testing code\n * }\n * ```\n *\n * @internal\n */\nexport const TESTING: boolean = true;\n/**\n * Indicates whether Holodeck is in a forced global recording mode.\n *\n * @internal\n */\nexport const IS_RECORDING: boolean = true;\n/**\n * Indicates whether the code is running in a CI environment.\n *\n * This is determined by the presence of the `CI` environment variable.\n *\n * @internal\n */\nexport const IS_CI: boolean = true;\n/**\n * Indicates whether holodeck should record the current test run.\n *\n * This is always true in a non-CI environment, and is true if\n * `IS_RECORDING` is true.\n *\n * @internal\n */\nexport const SHOULD_RECORD: boolean = true;\n"],"names":["DEBUG","PRODUCTION","TESTING","IS_RECORDING","IS_CI","SHOULD_RECORD"],"mappings":"AAAA;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;AACO,MAAMA,KAAc,GAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;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,UAAmB,GAAG;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,OAAgB,GAAG;AAChC;AACA;AACA;AACA;AACA;AACO,MAAMC,YAAqB,GAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,KAAc,GAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,aAAsB,GAAG;;;;"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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(forceMode?: 'testing' | 'production' | 'development' | 'debug'): {\n TESTING: boolean;\n PRODUCTION: boolean;\n DEBUG: boolean;\n IS_RECORDING: boolean;\n IS_CI: boolean;\n SHOULD_RECORD: boolean;\n} {\n const FORCE_TESTING = forceMode === 'testing' || forceMode === 'development' || forceMode === 'debug';\n const FORCE_DEBUG = forceMode === 'development' || forceMode === 'debug';\n const FORCE_PRODUCTION = forceMode === 'production';\n\n const { EMBER_ENV, IS_TESTING, EMBER_CLI_TEST_COMMAND, NODE_ENV, CI, IS_RECORDING } = process.env;\n const PRODUCTION = FORCE_PRODUCTION || EMBER_ENV === 'production' || (!EMBER_ENV && NODE_ENV === 'production');\n const DEBUG = FORCE_DEBUG || !PRODUCTION;\n const TESTING = FORCE_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// 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//\nexport const DEPRECATE_CATCH_ALL = '99.0';\nexport const DEPRECATE_NON_STRICT_TYPES = '5.3';\nexport const DEPRECATE_NON_STRICT_ID = '5.3';\nexport const DEPRECATE_COMPUTED_CHAINS = '7.0';\nexport const DEPRECATE_LEGACY_IMPORTS = '5.3';\nexport const DEPRECATE_NON_UNIQUE_PAYLOADS = '5.3';\nexport const DEPRECATE_RELATIONSHIP_REMOTE_UPDATE_CLEARING_LOCAL_STATE = '5.3';\nexport const DEPRECATE_MANY_ARRAY_DUPLICATES = '5.3';\nexport const DEPRECATE_STORE_EXTENDS_EMBER_OBJECT = '5.4';\nexport const ENABLE_LEGACY_SCHEMA_SERVICE = '5.4';\nexport const DEPRECATE_EMBER_INFLECTOR = '5.3';\nexport const DISABLE_7X_DEPRECATIONS = '7.0';\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 * This package provides a build-plugin that enables configuration of deprecations,\n * optional features, development/testing support and debug logging.\n *\n * This configuration is done using `setConfig` in `ember-cli-build`.\n *\n * ```ts [ember-cli-build.js]\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'); // [!code focus]\n *\n * const app = new EmberApp(defaults, {});\n *\n * setConfig(app, __dirname, { // [!code focus:3]\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 * - {@link LOGGING | debugging}\n * - {@link DEPRECATIONS | deprecations}\n * - {@link FEATURES | features}\n * - {@link WarpDriveConfig.polyfillUUID | polyfillUUID}\n * - {@link WarpDriveConfig.includeDataAdapterInProduction | includeDataAdapterInProduction}\n * - {@link WarpDriveConfig.compatWith | compatWith}\n *\n *\n *\n * @module\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 * as FEATURES from './canary-features.ts';\nimport type * as DEPRECATIONS from './deprecations.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\nexport type WarpDriveConfig = {\n /**\n * An object of key/value pairs of logging flags\n *\n * see {@link LOGGING | debugging} for the available flags.\n *\n * ```ts\n * {\n * LOG_CACHE: true,\n * }\n * ```\n *\n * @public\n */\n debug?: Partial<InternalWarpDriveConfig['debug']>;\n\n /**\n * If you are using the library in an environment that does not\n * support `window.crypto.randomUUID` you can enable a polyfill\n * for it.\n *\n * @public\n */\n polyfillUUID?: boolean;\n\n /**\n * By default, the integration required to support the ember-inspector\n * browser extension is included in production builds only when using\n * the `ember-data` package.\n *\n * Otherwise the default is to exclude it. This setting allows to explicitly\n * enable/disable it in production builds.\n *\n * @public\n */\n includeDataAdapterInProduction?: boolean;\n\n /**\n * The most recent version of the library from which all\n * deprecations have been resolved.\n *\n * For instance if all deprecations released prior to or\n * within `5.3` have been resolved, then setting this to\n * `5.3` will remove all the support for the deprecated\n * features for associated deprecations.\n *\n * See {@link DEPRECATIONS | deprecations} for more details.\n */\n compatWith?: `${number}.${number}`;\n\n /**\n * An object of key/value pairs of logging flags\n *\n * see {@link DEPRECATIONS | deprecations} for the available flags.\n *\n * ```ts\n * {\n * DEPRECATE_THING: false,\n * }\n * ```\n *\n * @public\n */\n deprecations?: Partial<InternalWarpDriveConfig['deprecations']>;\n\n /**\n * An object of key/value pairs of canary feature flags\n * for use when testing new features gated behind a flag\n * in a canary release version.\n *\n * see {@link FEATURES | features} for the available flags.\n *\n * ```ts\n * {\n * FEATURE_A: true,\n * }\n * ```\n *\n * @public\n */\n features?: Partial<InternalWarpDriveConfig['features']>;\n\n /**\n * @private\n */\n forceMode?: 'testing' | 'production' | 'development';\n};\n\ntype InternalWarpDriveConfig = {\n debug: typeof LOGGING;\n polyfillUUID: boolean;\n includeDataAdapter: boolean;\n compatWith: `${number}.${number}` | null;\n deprecations: ReturnType<typeof getDeprecations>;\n features: ReturnType<typeof getFeatures>;\n activeLogging: typeof LOGGING;\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-mirror/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(userConfig.forceMode);\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","forceMode","FORCE_TESTING","FORCE_DEBUG","FORCE_PRODUCTION","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":"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"}
|
package/dist/macros.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"macros.js","sources":["../src/macros.ts"],"sourcesContent":["/**\n * Internal functions for instrumenting the library's code with behaviors\n * that are removed from production builds.\n *\n * @hidden\n * @module\n */\n\n/**\n * A type-narrowing assertion function that throws an error with the supplied\n * message if the condition is falsy.\n *\n * Asserts are removed from production builds, making this a \"zero cost abstraction\"\n * so liberal usage of this function to ensure runtime correctness is encouraged.\n *\n * @internal\n */\nexport function assert(message: string, condition: unknown): asserts condition;\nexport function assert(message: string): never;\nexport function assert(message: string, condition?: unknown): asserts condition {\n if (!condition) {\n throw new Error(message);\n }\n}\n"],"names":["assert","message","condition","Error"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGO,SAASA,MAAMA,CAACC,OAAe,EAAEC,SAAmB,EAAqB;EAC9E,IAAI,CAACA,SAAS,EAAE;AACd,IAAA,MAAM,IAAIC,KAAK,CAACF,OAAO,CAAC;AAC1B;AACF;;;;"}
|