@opentf/web 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/{CHANGELOG.md → dist/CHANGELOG.md} +12 -0
  2. package/dist/babel.config.cjs +6 -0
  3. package/{compiler → dist/compiler}/babel-plugin.cjs +17 -16
  4. package/{core → dist/core}/mount.js +12 -12
  5. package/{index.js → dist/index.js} +2 -1
  6. package/dist/node_modules/@babel/core/LICENSE +22 -0
  7. package/dist/node_modules/@babel/core/README.md +19 -0
  8. package/dist/node_modules/@babel/core/lib/config/cache-contexts.js +5 -0
  9. package/dist/node_modules/@babel/core/lib/config/cache-contexts.js.map +1 -0
  10. package/dist/node_modules/@babel/core/lib/config/caching.js +261 -0
  11. package/dist/node_modules/@babel/core/lib/config/caching.js.map +1 -0
  12. package/dist/node_modules/@babel/core/lib/config/config-chain.js +469 -0
  13. package/dist/node_modules/@babel/core/lib/config/config-chain.js.map +1 -0
  14. package/dist/node_modules/@babel/core/lib/config/config-descriptors.js +190 -0
  15. package/dist/node_modules/@babel/core/lib/config/config-descriptors.js.map +1 -0
  16. package/dist/node_modules/@babel/core/lib/config/files/configuration.js +290 -0
  17. package/dist/node_modules/@babel/core/lib/config/files/configuration.js.map +1 -0
  18. package/dist/node_modules/@babel/core/lib/config/files/import.cjs +6 -0
  19. package/dist/node_modules/@babel/core/lib/config/files/import.cjs.map +1 -0
  20. package/dist/node_modules/@babel/core/lib/config/files/index-browser.js +58 -0
  21. package/dist/node_modules/@babel/core/lib/config/files/index-browser.js.map +1 -0
  22. package/dist/node_modules/@babel/core/lib/config/files/index.js +78 -0
  23. package/dist/node_modules/@babel/core/lib/config/files/index.js.map +1 -0
  24. package/dist/node_modules/@babel/core/lib/config/files/module-types.js +203 -0
  25. package/dist/node_modules/@babel/core/lib/config/files/module-types.js.map +1 -0
  26. package/dist/node_modules/@babel/core/lib/config/files/package.js +61 -0
  27. package/dist/node_modules/@babel/core/lib/config/files/package.js.map +1 -0
  28. package/dist/node_modules/@babel/core/lib/config/files/plugins.js +220 -0
  29. package/dist/node_modules/@babel/core/lib/config/files/plugins.js.map +1 -0
  30. package/dist/node_modules/@babel/core/lib/config/files/types.js +5 -0
  31. package/dist/node_modules/@babel/core/lib/config/files/types.js.map +1 -0
  32. package/dist/node_modules/@babel/core/lib/config/files/utils.js +36 -0
  33. package/dist/node_modules/@babel/core/lib/config/files/utils.js.map +1 -0
  34. package/dist/node_modules/@babel/core/lib/config/full.js +312 -0
  35. package/dist/node_modules/@babel/core/lib/config/full.js.map +1 -0
  36. package/dist/node_modules/@babel/core/lib/config/helpers/config-api.js +85 -0
  37. package/dist/node_modules/@babel/core/lib/config/helpers/config-api.js.map +1 -0
  38. package/dist/node_modules/@babel/core/lib/config/helpers/deep-array.js +23 -0
  39. package/dist/node_modules/@babel/core/lib/config/helpers/deep-array.js.map +1 -0
  40. package/dist/node_modules/@babel/core/lib/config/helpers/environment.js +12 -0
  41. package/dist/node_modules/@babel/core/lib/config/helpers/environment.js.map +1 -0
  42. package/dist/node_modules/@babel/core/lib/config/index.js +87 -0
  43. package/dist/node_modules/@babel/core/lib/config/index.js.map +1 -0
  44. package/dist/node_modules/@babel/core/lib/config/item.js +67 -0
  45. package/dist/node_modules/@babel/core/lib/config/item.js.map +1 -0
  46. package/dist/node_modules/@babel/core/lib/config/partial.js +158 -0
  47. package/dist/node_modules/@babel/core/lib/config/partial.js.map +1 -0
  48. package/dist/node_modules/@babel/core/lib/config/pattern-to-regex.js +38 -0
  49. package/dist/node_modules/@babel/core/lib/config/pattern-to-regex.js.map +1 -0
  50. package/dist/node_modules/@babel/core/lib/config/plugin.js +33 -0
  51. package/dist/node_modules/@babel/core/lib/config/plugin.js.map +1 -0
  52. package/dist/node_modules/@babel/core/lib/config/printer.js +113 -0
  53. package/dist/node_modules/@babel/core/lib/config/printer.js.map +1 -0
  54. package/dist/node_modules/@babel/core/lib/config/resolve-targets-browser.js +41 -0
  55. package/dist/node_modules/@babel/core/lib/config/resolve-targets-browser.js.map +1 -0
  56. package/dist/node_modules/@babel/core/lib/config/resolve-targets.js +61 -0
  57. package/dist/node_modules/@babel/core/lib/config/resolve-targets.js.map +1 -0
  58. package/dist/node_modules/@babel/core/lib/config/util.js +31 -0
  59. package/dist/node_modules/@babel/core/lib/config/util.js.map +1 -0
  60. package/dist/node_modules/@babel/core/lib/config/validation/option-assertions.js +277 -0
  61. package/dist/node_modules/@babel/core/lib/config/validation/option-assertions.js.map +1 -0
  62. package/dist/node_modules/@babel/core/lib/config/validation/options.js +187 -0
  63. package/dist/node_modules/@babel/core/lib/config/validation/options.js.map +1 -0
  64. package/dist/node_modules/@babel/core/lib/config/validation/plugins.js +67 -0
  65. package/dist/node_modules/@babel/core/lib/config/validation/plugins.js.map +1 -0
  66. package/dist/node_modules/@babel/core/lib/config/validation/removed.js +68 -0
  67. package/dist/node_modules/@babel/core/lib/config/validation/removed.js.map +1 -0
  68. package/dist/node_modules/@babel/core/lib/errors/config-error.js +18 -0
  69. package/dist/node_modules/@babel/core/lib/errors/config-error.js.map +1 -0
  70. package/dist/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js +98 -0
  71. package/dist/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js.map +1 -0
  72. package/dist/node_modules/@babel/core/lib/gensync-utils/async.js +90 -0
  73. package/dist/node_modules/@babel/core/lib/gensync-utils/async.js.map +1 -0
  74. package/dist/node_modules/@babel/core/lib/gensync-utils/fs.js +31 -0
  75. package/dist/node_modules/@babel/core/lib/gensync-utils/fs.js.map +1 -0
  76. package/dist/node_modules/@babel/core/lib/gensync-utils/functional.js +58 -0
  77. package/dist/node_modules/@babel/core/lib/gensync-utils/functional.js.map +1 -0
  78. package/dist/node_modules/@babel/core/lib/index.js +230 -0
  79. package/dist/node_modules/@babel/core/lib/index.js.map +1 -0
  80. package/dist/node_modules/@babel/core/lib/parse.js +45 -0
  81. package/dist/node_modules/@babel/core/lib/parse.js.map +1 -0
  82. package/dist/node_modules/@babel/core/lib/parser/index.js +85 -0
  83. package/dist/node_modules/@babel/core/lib/parser/index.js.map +1 -0
  84. package/dist/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js +337 -0
  85. package/dist/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js.map +1 -0
  86. package/dist/node_modules/@babel/core/lib/tools/build-external-helpers.js +144 -0
  87. package/dist/node_modules/@babel/core/lib/tools/build-external-helpers.js.map +1 -0
  88. package/dist/node_modules/@babel/core/lib/transform-ast.js +48 -0
  89. package/dist/node_modules/@babel/core/lib/transform-ast.js.map +1 -0
  90. package/dist/node_modules/@babel/core/lib/transform-file-browser.js +23 -0
  91. package/dist/node_modules/@babel/core/lib/transform-file-browser.js.map +1 -0
  92. package/dist/node_modules/@babel/core/lib/transform-file.js +40 -0
  93. package/dist/node_modules/@babel/core/lib/transform-file.js.map +1 -0
  94. package/dist/node_modules/@babel/core/lib/transform.js +47 -0
  95. package/dist/node_modules/@babel/core/lib/transform.js.map +1 -0
  96. package/dist/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js +84 -0
  97. package/dist/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js.map +1 -0
  98. package/dist/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs +4 -0
  99. package/dist/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs.map +1 -0
  100. package/dist/node_modules/@babel/core/lib/transformation/file/file.js +204 -0
  101. package/dist/node_modules/@babel/core/lib/transformation/file/file.js.map +1 -0
  102. package/dist/node_modules/@babel/core/lib/transformation/file/generate.js +84 -0
  103. package/dist/node_modules/@babel/core/lib/transformation/file/generate.js.map +1 -0
  104. package/dist/node_modules/@babel/core/lib/transformation/file/merge-map.js +37 -0
  105. package/dist/node_modules/@babel/core/lib/transformation/file/merge-map.js.map +1 -0
  106. package/dist/node_modules/@babel/core/lib/transformation/index.js +90 -0
  107. package/dist/node_modules/@babel/core/lib/transformation/index.js.map +1 -0
  108. package/dist/node_modules/@babel/core/lib/transformation/normalize-file.js +127 -0
  109. package/dist/node_modules/@babel/core/lib/transformation/normalize-file.js.map +1 -0
  110. package/dist/node_modules/@babel/core/lib/transformation/normalize-opts.js +59 -0
  111. package/dist/node_modules/@babel/core/lib/transformation/normalize-opts.js.map +1 -0
  112. package/dist/node_modules/@babel/core/lib/transformation/plugin-pass.js +48 -0
  113. package/dist/node_modules/@babel/core/lib/transformation/plugin-pass.js.map +1 -0
  114. package/dist/node_modules/@babel/core/lib/transformation/util/clone-deep.js +54 -0
  115. package/dist/node_modules/@babel/core/lib/transformation/util/clone-deep.js.map +1 -0
  116. package/dist/node_modules/@babel/core/lib/vendor/import-meta-resolve.js +1042 -0
  117. package/dist/node_modules/@babel/core/lib/vendor/import-meta-resolve.js.map +1 -0
  118. package/dist/node_modules/@babel/core/package.json +82 -0
  119. package/dist/node_modules/@babel/core/src/config/files/index-browser.ts +115 -0
  120. package/dist/node_modules/@babel/core/src/config/files/index.ts +30 -0
  121. package/dist/node_modules/@babel/core/src/config/resolve-targets-browser.ts +42 -0
  122. package/dist/node_modules/@babel/core/src/config/resolve-targets.ts +54 -0
  123. package/dist/node_modules/@babel/core/src/transform-file-browser.ts +33 -0
  124. package/dist/node_modules/@babel/core/src/transform-file.ts +56 -0
  125. package/dist/node_modules/@babel/helper-module-imports/LICENSE +22 -0
  126. package/dist/node_modules/@babel/helper-module-imports/README.md +19 -0
  127. package/dist/node_modules/@babel/helper-module-imports/lib/import-builder.js +122 -0
  128. package/dist/node_modules/@babel/helper-module-imports/lib/import-builder.js.map +1 -0
  129. package/dist/node_modules/@babel/helper-module-imports/lib/import-injector.js +304 -0
  130. package/dist/node_modules/@babel/helper-module-imports/lib/import-injector.js.map +1 -0
  131. package/dist/node_modules/@babel/helper-module-imports/lib/index.js +37 -0
  132. package/dist/node_modules/@babel/helper-module-imports/lib/index.js.map +1 -0
  133. package/dist/node_modules/@babel/helper-module-imports/lib/is-module.js +11 -0
  134. package/dist/node_modules/@babel/helper-module-imports/lib/is-module.js.map +1 -0
  135. package/dist/node_modules/@babel/helper-module-imports/package.json +28 -0
  136. package/dist/node_modules/@babel/plugin-syntax-jsx/LICENSE +22 -0
  137. package/dist/node_modules/@babel/plugin-syntax-jsx/README.md +19 -0
  138. package/dist/node_modules/@babel/plugin-syntax-jsx/lib/index.js +21 -0
  139. package/dist/node_modules/@babel/plugin-syntax-jsx/lib/index.js.map +1 -0
  140. package/dist/node_modules/@babel/plugin-syntax-jsx/package.json +33 -0
  141. package/dist/node_modules/@preact/signals-core/CHANGELOG.md +331 -0
  142. package/dist/node_modules/@preact/signals-core/LICENSE +21 -0
  143. package/dist/node_modules/@preact/signals-core/README.md +258 -0
  144. package/dist/node_modules/@preact/signals-core/dist/signals-core.d.ts +149 -0
  145. package/dist/node_modules/@preact/signals-core/dist/signals-core.js +1 -0
  146. package/dist/node_modules/@preact/signals-core/dist/signals-core.js.map +1 -0
  147. package/dist/node_modules/@preact/signals-core/dist/signals-core.min.js +1 -0
  148. package/dist/node_modules/@preact/signals-core/dist/signals-core.min.js.map +1 -0
  149. package/dist/node_modules/@preact/signals-core/dist/signals-core.mjs +1 -0
  150. package/dist/node_modules/@preact/signals-core/dist/signals-core.mjs.map +1 -0
  151. package/dist/node_modules/@preact/signals-core/dist/signals-core.module.js +1 -0
  152. package/dist/node_modules/@preact/signals-core/dist/signals-core.module.js.map +1 -0
  153. package/dist/node_modules/@preact/signals-core/package.json +48 -0
  154. package/dist/node_modules/@preact/signals-core/src/index.ts +1121 -0
  155. package/dist/package.json +30 -0
  156. package/dist/router/Link.js +73 -0
  157. package/{router → dist/router}/index.js +43 -61
  158. package/{runtime → dist/runtime}/For.js +1 -2
  159. package/{runtime → dist/runtime}/dom.js +7 -14
  160. package/{runtime → dist/runtime}/lifecycle.js +1 -4
  161. package/{runtime → dist/runtime}/props.js +4 -15
  162. package/package.json +14 -7
  163. package/router/Link.jsx +0 -27
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.resolveBrowserslistConfigFile = resolveBrowserslistConfigFile;
7
+ exports.resolveTargets = resolveTargets;
8
+ function _path() {
9
+ const data = require("path");
10
+ _path = function () {
11
+ return data;
12
+ };
13
+ return data;
14
+ }
15
+ function _helperCompilationTargets() {
16
+ const data = require("@babel/helper-compilation-targets");
17
+ _helperCompilationTargets = function () {
18
+ return data;
19
+ };
20
+ return data;
21
+ }
22
+ ({});
23
+ function resolveBrowserslistConfigFile(browserslistConfigFile, configFileDir) {
24
+ return _path().resolve(configFileDir, browserslistConfigFile);
25
+ }
26
+ function resolveTargets(options, root) {
27
+ const optTargets = options.targets;
28
+ let targets;
29
+ if (typeof optTargets === "string" || Array.isArray(optTargets)) {
30
+ targets = {
31
+ browsers: optTargets
32
+ };
33
+ } else if (optTargets) {
34
+ if ("esmodules" in optTargets) {
35
+ targets = Object.assign({}, optTargets, {
36
+ esmodules: "intersect"
37
+ });
38
+ } else {
39
+ targets = optTargets;
40
+ }
41
+ }
42
+ const {
43
+ browserslistConfigFile
44
+ } = options;
45
+ let configFile;
46
+ let ignoreBrowserslistConfig = false;
47
+ if (typeof browserslistConfigFile === "string") {
48
+ configFile = browserslistConfigFile;
49
+ } else {
50
+ ignoreBrowserslistConfig = browserslistConfigFile === false;
51
+ }
52
+ return (0, _helperCompilationTargets().default)(targets, {
53
+ ignoreBrowserslistConfig,
54
+ configFile,
55
+ configPath: root,
56
+ browserslistEnv: options.browserslistEnv
57
+ });
58
+ }
59
+ 0 && 0;
60
+
61
+ //# sourceMappingURL=resolve-targets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_path","data","require","_helperCompilationTargets","resolveBrowserslistConfigFile","browserslistConfigFile","configFileDir","path","resolve","resolveTargets","options","root","optTargets","targets","Array","isArray","browsers","Object","assign","esmodules","configFile","ignoreBrowserslistConfig","getTargets","configPath","browserslistEnv"],"sources":["../../src/config/resolve-targets.ts"],"sourcesContent":["type browserType = typeof import(\"./resolve-targets-browser\");\ntype nodeType = typeof import(\"./resolve-targets\");\n\n// Kind of gross, but essentially asserting that the exports of this module are the same as the\n// exports of index-browser, since this file may be replaced at bundle time with index-browser.\n// eslint-disable-next-line @typescript-eslint/no-unused-expressions\n({}) as any as browserType as nodeType;\n\nimport type { InputOptions } from \"./validation/options.ts\";\nimport path from \"node:path\";\nimport getTargets, {\n type InputTargets,\n} from \"@babel/helper-compilation-targets\";\n\nimport type { Targets } from \"@babel/helper-compilation-targets\";\n\nexport function resolveBrowserslistConfigFile(\n browserslistConfigFile: string,\n configFileDir: string,\n): string | undefined {\n return path.resolve(configFileDir, browserslistConfigFile);\n}\n\nexport function resolveTargets(options: InputOptions, root: string): Targets {\n const optTargets = options.targets;\n let targets: InputTargets;\n\n if (typeof optTargets === \"string\" || Array.isArray(optTargets)) {\n targets = { browsers: optTargets };\n } else if (optTargets) {\n if (\"esmodules\" in optTargets) {\n targets = { ...optTargets, esmodules: \"intersect\" };\n } else {\n // https://github.com/microsoft/TypeScript/issues/17002\n targets = optTargets as InputTargets;\n }\n }\n\n const { browserslistConfigFile } = options;\n let configFile;\n let ignoreBrowserslistConfig = false;\n if (typeof browserslistConfigFile === \"string\") {\n configFile = browserslistConfigFile;\n } else {\n ignoreBrowserslistConfig = browserslistConfigFile === false;\n }\n\n return getTargets(targets, {\n ignoreBrowserslistConfig,\n configFile,\n configPath: root,\n browserslistEnv: options.browserslistEnv,\n });\n}\n"],"mappings":";;;;;;;AASA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,0BAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,yBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAJA,CAAC,CAAC,CAAC;AAUI,SAASG,6BAA6BA,CAC3CC,sBAA8B,EAC9BC,aAAqB,EACD;EACpB,OAAOC,MAAGA,CAAC,CAACC,OAAO,CAACF,aAAa,EAAED,sBAAsB,CAAC;AAC5D;AAEO,SAASI,cAAcA,CAACC,OAAqB,EAAEC,IAAY,EAAW;EAC3E,MAAMC,UAAU,GAAGF,OAAO,CAACG,OAAO;EAClC,IAAIA,OAAqB;EAEzB,IAAI,OAAOD,UAAU,KAAK,QAAQ,IAAIE,KAAK,CAACC,OAAO,CAACH,UAAU,CAAC,EAAE;IAC/DC,OAAO,GAAG;MAAEG,QAAQ,EAAEJ;IAAW,CAAC;EACpC,CAAC,MAAM,IAAIA,UAAU,EAAE;IACrB,IAAI,WAAW,IAAIA,UAAU,EAAE;MAC7BC,OAAO,GAAAI,MAAA,CAAAC,MAAA,KAAQN,UAAU;QAAEO,SAAS,EAAE;MAAW,EAAE;IACrD,CAAC,MAAM;MAELN,OAAO,GAAGD,UAA0B;IACtC;EACF;EAEA,MAAM;IAAEP;EAAuB,CAAC,GAAGK,OAAO;EAC1C,IAAIU,UAAU;EACd,IAAIC,wBAAwB,GAAG,KAAK;EACpC,IAAI,OAAOhB,sBAAsB,KAAK,QAAQ,EAAE;IAC9Ce,UAAU,GAAGf,sBAAsB;EACrC,CAAC,MAAM;IACLgB,wBAAwB,GAAGhB,sBAAsB,KAAK,KAAK;EAC7D;EAEA,OAAO,IAAAiB,mCAAU,EAACT,OAAO,EAAE;IACzBQ,wBAAwB;IACxBD,UAAU;IACVG,UAAU,EAAEZ,IAAI;IAChBa,eAAe,EAAEd,OAAO,CAACc;EAC3B,CAAC,CAAC;AACJ;AAAC","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isIterableIterator = isIterableIterator;
7
+ exports.mergeOptions = mergeOptions;
8
+ function mergeOptions(target, source) {
9
+ for (const k of Object.keys(source)) {
10
+ if ((k === "parserOpts" || k === "generatorOpts" || k === "assumptions") && source[k]) {
11
+ const parserOpts = source[k];
12
+ const targetObj = target[k] || (target[k] = {});
13
+ mergeDefaultFields(targetObj, parserOpts);
14
+ } else {
15
+ const val = source[k];
16
+ if (val !== undefined) target[k] = val;
17
+ }
18
+ }
19
+ }
20
+ function mergeDefaultFields(target, source) {
21
+ for (const k of Object.keys(source)) {
22
+ const val = source[k];
23
+ if (val !== undefined) target[k] = val;
24
+ }
25
+ }
26
+ function isIterableIterator(value) {
27
+ return !!value && typeof value.next === "function" && typeof value[Symbol.iterator] === "function";
28
+ }
29
+ 0 && 0;
30
+
31
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mergeOptions","target","source","k","Object","keys","parserOpts","targetObj","mergeDefaultFields","val","undefined","isIterableIterator","value","next","Symbol","iterator"],"sources":["../../src/config/util.ts"],"sourcesContent":["import type { InputOptions, ResolvedOptions } from \"./validation/options.ts\";\n\nexport function mergeOptions(\n target: InputOptions | ResolvedOptions,\n source: InputOptions,\n): void {\n for (const k of Object.keys(source)) {\n if (\n (k === \"parserOpts\" || k === \"generatorOpts\" || k === \"assumptions\") &&\n source[k]\n ) {\n const parserOpts = source[k];\n const targetObj = target[k] || (target[k] = {});\n mergeDefaultFields(targetObj, parserOpts);\n } else {\n //@ts-expect-error k must index source\n const val = source[k];\n //@ts-expect-error assigning source to target\n if (val !== undefined) target[k] = val as any;\n }\n }\n}\n\nfunction mergeDefaultFields<T extends object>(target: T, source: T) {\n for (const k of Object.keys(source) as (keyof T)[]) {\n const val = source[k];\n if (val !== undefined) target[k] = val;\n }\n}\n\nexport function isIterableIterator(value: any): value is IterableIterator<any> {\n return (\n !!value &&\n typeof value.next === \"function\" &&\n typeof value[Symbol.iterator] === \"function\"\n );\n}\n"],"mappings":";;;;;;;AAEO,SAASA,YAAYA,CAC1BC,MAAsC,EACtCC,MAAoB,EACd;EACN,KAAK,MAAMC,CAAC,IAAIC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC,EAAE;IACnC,IACE,CAACC,CAAC,KAAK,YAAY,IAAIA,CAAC,KAAK,eAAe,IAAIA,CAAC,KAAK,aAAa,KACnED,MAAM,CAACC,CAAC,CAAC,EACT;MACA,MAAMG,UAAU,GAAGJ,MAAM,CAACC,CAAC,CAAC;MAC5B,MAAMI,SAAS,GAAGN,MAAM,CAACE,CAAC,CAAC,KAAKF,MAAM,CAACE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;MAC/CK,kBAAkB,CAACD,SAAS,EAAED,UAAU,CAAC;IAC3C,CAAC,MAAM;MAEL,MAAMG,GAAG,GAAGP,MAAM,CAACC,CAAC,CAAC;MAErB,IAAIM,GAAG,KAAKC,SAAS,EAAET,MAAM,CAACE,CAAC,CAAC,GAAGM,GAAU;IAC/C;EACF;AACF;AAEA,SAASD,kBAAkBA,CAAmBP,MAAS,EAAEC,MAAS,EAAE;EAClE,KAAK,MAAMC,CAAC,IAAIC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC,EAAiB;IAClD,MAAMO,GAAG,GAAGP,MAAM,CAACC,CAAC,CAAC;IACrB,IAAIM,GAAG,KAAKC,SAAS,EAAET,MAAM,CAACE,CAAC,CAAC,GAAGM,GAAG;EACxC;AACF;AAEO,SAASE,kBAAkBA,CAACC,KAAU,EAAkC;EAC7E,OACE,CAAC,CAACA,KAAK,IACP,OAAOA,KAAK,CAACC,IAAI,KAAK,UAAU,IAChC,OAAOD,KAAK,CAACE,MAAM,CAACC,QAAQ,CAAC,KAAK,UAAU;AAEhD;AAAC","ignoreList":[]}
@@ -0,0 +1,277 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.access = access;
7
+ exports.assertArray = assertArray;
8
+ exports.assertAssumptions = assertAssumptions;
9
+ exports.assertBabelrcSearch = assertBabelrcSearch;
10
+ exports.assertBoolean = assertBoolean;
11
+ exports.assertCallerMetadata = assertCallerMetadata;
12
+ exports.assertCompact = assertCompact;
13
+ exports.assertConfigApplicableTest = assertConfigApplicableTest;
14
+ exports.assertConfigFileSearch = assertConfigFileSearch;
15
+ exports.assertFunction = assertFunction;
16
+ exports.assertIgnoreList = assertIgnoreList;
17
+ exports.assertInputSourceMap = assertInputSourceMap;
18
+ exports.assertObject = assertObject;
19
+ exports.assertPluginList = assertPluginList;
20
+ exports.assertRootMode = assertRootMode;
21
+ exports.assertSourceMaps = assertSourceMaps;
22
+ exports.assertSourceType = assertSourceType;
23
+ exports.assertString = assertString;
24
+ exports.assertTargets = assertTargets;
25
+ exports.msg = msg;
26
+ function _helperCompilationTargets() {
27
+ const data = require("@babel/helper-compilation-targets");
28
+ _helperCompilationTargets = function () {
29
+ return data;
30
+ };
31
+ return data;
32
+ }
33
+ var _options = require("./options.js");
34
+ function msg(loc) {
35
+ switch (loc.type) {
36
+ case "root":
37
+ return ``;
38
+ case "env":
39
+ return `${msg(loc.parent)}.env["${loc.name}"]`;
40
+ case "overrides":
41
+ return `${msg(loc.parent)}.overrides[${loc.index}]`;
42
+ case "option":
43
+ return `${msg(loc.parent)}.${loc.name}`;
44
+ case "access":
45
+ return `${msg(loc.parent)}[${JSON.stringify(loc.name)}]`;
46
+ default:
47
+ throw new Error(`Assertion failure: Unknown type ${loc.type}`);
48
+ }
49
+ }
50
+ function access(loc, name) {
51
+ return {
52
+ type: "access",
53
+ name,
54
+ parent: loc
55
+ };
56
+ }
57
+ function assertRootMode(loc, value) {
58
+ if (value !== undefined && value !== "root" && value !== "upward" && value !== "upward-optional") {
59
+ throw new Error(`${msg(loc)} must be a "root", "upward", "upward-optional" or undefined`);
60
+ }
61
+ return value;
62
+ }
63
+ function assertSourceMaps(loc, value) {
64
+ if (value !== undefined && typeof value !== "boolean" && value !== "inline" && value !== "both") {
65
+ throw new Error(`${msg(loc)} must be a boolean, "inline", "both", or undefined`);
66
+ }
67
+ return value;
68
+ }
69
+ function assertCompact(loc, value) {
70
+ if (value !== undefined && typeof value !== "boolean" && value !== "auto") {
71
+ throw new Error(`${msg(loc)} must be a boolean, "auto", or undefined`);
72
+ }
73
+ return value;
74
+ }
75
+ function assertSourceType(loc, value) {
76
+ if (value !== undefined && value !== "module" && value !== "commonjs" && value !== "script" && value !== "unambiguous") {
77
+ throw new Error(`${msg(loc)} must be "module", "commonjs", "script", "unambiguous", or undefined`);
78
+ }
79
+ return value;
80
+ }
81
+ function assertCallerMetadata(loc, value) {
82
+ const obj = assertObject(loc, value);
83
+ if (obj) {
84
+ if (typeof obj.name !== "string") {
85
+ throw new Error(`${msg(loc)} set but does not contain "name" property string`);
86
+ }
87
+ for (const prop of Object.keys(obj)) {
88
+ const propLoc = access(loc, prop);
89
+ const value = obj[prop];
90
+ if (value != null && typeof value !== "boolean" && typeof value !== "string" && typeof value !== "number") {
91
+ throw new Error(`${msg(propLoc)} must be null, undefined, a boolean, a string, or a number.`);
92
+ }
93
+ }
94
+ }
95
+ return value;
96
+ }
97
+ function assertInputSourceMap(loc, value) {
98
+ if (value !== undefined && typeof value !== "boolean" && (typeof value !== "object" || !value)) {
99
+ throw new Error(`${msg(loc)} must be a boolean, object, or undefined`);
100
+ }
101
+ return value;
102
+ }
103
+ function assertString(loc, value) {
104
+ if (value !== undefined && typeof value !== "string") {
105
+ throw new Error(`${msg(loc)} must be a string, or undefined`);
106
+ }
107
+ return value;
108
+ }
109
+ function assertFunction(loc, value) {
110
+ if (value !== undefined && typeof value !== "function") {
111
+ throw new Error(`${msg(loc)} must be a function, or undefined`);
112
+ }
113
+ return value;
114
+ }
115
+ function assertBoolean(loc, value) {
116
+ if (value !== undefined && typeof value !== "boolean") {
117
+ throw new Error(`${msg(loc)} must be a boolean, or undefined`);
118
+ }
119
+ return value;
120
+ }
121
+ function assertObject(loc, value) {
122
+ if (value !== undefined && (typeof value !== "object" || Array.isArray(value) || !value)) {
123
+ throw new Error(`${msg(loc)} must be an object, or undefined`);
124
+ }
125
+ return value;
126
+ }
127
+ function assertArray(loc, value) {
128
+ if (value != null && !Array.isArray(value)) {
129
+ throw new Error(`${msg(loc)} must be an array, or undefined`);
130
+ }
131
+ return value;
132
+ }
133
+ function assertIgnoreList(loc, value) {
134
+ const arr = assertArray(loc, value);
135
+ arr == null || arr.forEach((item, i) => assertIgnoreItem(access(loc, i), item));
136
+ return arr;
137
+ }
138
+ function assertIgnoreItem(loc, value) {
139
+ if (typeof value !== "string" && typeof value !== "function" && !(value instanceof RegExp)) {
140
+ throw new Error(`${msg(loc)} must be an array of string/Function/RegExp values, or undefined`);
141
+ }
142
+ return value;
143
+ }
144
+ function assertConfigApplicableTest(loc, value) {
145
+ if (value === undefined) {
146
+ return value;
147
+ }
148
+ if (Array.isArray(value)) {
149
+ value.forEach((item, i) => {
150
+ if (!checkValidTest(item)) {
151
+ throw new Error(`${msg(access(loc, i))} must be a string/Function/RegExp.`);
152
+ }
153
+ });
154
+ } else if (!checkValidTest(value)) {
155
+ throw new Error(`${msg(loc)} must be a string/Function/RegExp, or an array of those`);
156
+ }
157
+ return value;
158
+ }
159
+ function checkValidTest(value) {
160
+ return typeof value === "string" || typeof value === "function" || value instanceof RegExp;
161
+ }
162
+ function assertConfigFileSearch(loc, value) {
163
+ if (value !== undefined && typeof value !== "boolean" && typeof value !== "string") {
164
+ throw new Error(`${msg(loc)} must be a undefined, a boolean, a string, ` + `got ${JSON.stringify(value)}`);
165
+ }
166
+ return value;
167
+ }
168
+ function assertBabelrcSearch(loc, value) {
169
+ if (value === undefined || typeof value === "boolean") {
170
+ return value;
171
+ }
172
+ if (Array.isArray(value)) {
173
+ value.forEach((item, i) => {
174
+ if (!checkValidTest(item)) {
175
+ throw new Error(`${msg(access(loc, i))} must be a string/Function/RegExp.`);
176
+ }
177
+ });
178
+ } else if (!checkValidTest(value)) {
179
+ throw new Error(`${msg(loc)} must be a undefined, a boolean, a string/Function/RegExp ` + `or an array of those, got ${JSON.stringify(value)}`);
180
+ }
181
+ return value;
182
+ }
183
+ function assertPluginList(loc, value) {
184
+ const arr = assertArray(loc, value);
185
+ if (arr) {
186
+ arr.forEach((item, i) => assertPluginItem(access(loc, i), item));
187
+ }
188
+ return arr;
189
+ }
190
+ function assertPluginItem(loc, value) {
191
+ if (Array.isArray(value)) {
192
+ if (value.length === 0) {
193
+ throw new Error(`${msg(loc)} must include an object`);
194
+ }
195
+ if (value.length > 3) {
196
+ throw new Error(`${msg(loc)} may only be a two-tuple or three-tuple`);
197
+ }
198
+ assertPluginTarget(access(loc, 0), value[0]);
199
+ if (value.length > 1) {
200
+ const opts = value[1];
201
+ if (opts !== undefined && opts !== false && (typeof opts !== "object" || Array.isArray(opts) || opts === null)) {
202
+ throw new Error(`${msg(access(loc, 1))} must be an object, false, or undefined`);
203
+ }
204
+ }
205
+ if (value.length === 3) {
206
+ const name = value[2];
207
+ if (name !== undefined && typeof name !== "string") {
208
+ throw new Error(`${msg(access(loc, 2))} must be a string, or undefined`);
209
+ }
210
+ }
211
+ } else {
212
+ assertPluginTarget(loc, value);
213
+ }
214
+ return value;
215
+ }
216
+ function assertPluginTarget(loc, value) {
217
+ if ((typeof value !== "object" || !value) && typeof value !== "string" && typeof value !== "function") {
218
+ throw new Error(`${msg(loc)} must be a string, object, function`);
219
+ }
220
+ return value;
221
+ }
222
+ function assertTargets(loc, value) {
223
+ if ((0, _helperCompilationTargets().isBrowsersQueryValid)(value)) return value;
224
+ if (typeof value !== "object" || !value || Array.isArray(value)) {
225
+ throw new Error(`${msg(loc)} must be a string, an array of strings or an object`);
226
+ }
227
+ const browsersLoc = access(loc, "browsers");
228
+ const esmodulesLoc = access(loc, "esmodules");
229
+ assertBrowsersList(browsersLoc, value.browsers);
230
+ assertBoolean(esmodulesLoc, value.esmodules);
231
+ for (const key of Object.keys(value)) {
232
+ const val = value[key];
233
+ const subLoc = access(loc, key);
234
+ if (key === "esmodules") assertBoolean(subLoc, val);else if (key === "browsers") assertBrowsersList(subLoc, val);else if (!hasOwnProperty.call(_helperCompilationTargets().TargetNames, key)) {
235
+ const validTargets = Object.keys(_helperCompilationTargets().TargetNames).join(", ");
236
+ throw new Error(`${msg(subLoc)} is not a valid target. Supported targets are ${validTargets}`);
237
+ } else assertBrowserVersion(subLoc, val);
238
+ }
239
+ return value;
240
+ }
241
+ function assertBrowsersList(loc, value) {
242
+ if (value !== undefined && !(0, _helperCompilationTargets().isBrowsersQueryValid)(value)) {
243
+ throw new Error(`${msg(loc)} must be undefined, a string or an array of strings`);
244
+ }
245
+ }
246
+ function assertBrowserVersion(loc, value) {
247
+ if (typeof value === "number" && Math.round(value) === value) return;
248
+ if (typeof value === "string") return;
249
+ throw new Error(`${msg(loc)} must be a string or an integer number`);
250
+ }
251
+ function assertAssumptions(loc, value) {
252
+ if (value === undefined) return;
253
+ if (typeof value !== "object" || value === null) {
254
+ throw new Error(`${msg(loc)} must be an object or undefined.`);
255
+ }
256
+ let root = loc;
257
+ do {
258
+ root = root.parent;
259
+ } while (root.type !== "root");
260
+ const inPreset = root.source === "preset";
261
+ for (const name of Object.keys(value)) {
262
+ const subLoc = access(loc, name);
263
+ if (!_options.assumptionsNames.has(name)) {
264
+ throw new Error(`${msg(subLoc)} is not a supported assumption.`);
265
+ }
266
+ if (typeof value[name] !== "boolean") {
267
+ throw new Error(`${msg(subLoc)} must be a boolean.`);
268
+ }
269
+ if (inPreset && value[name] === false) {
270
+ throw new Error(`${msg(subLoc)} cannot be set to 'false' inside presets.`);
271
+ }
272
+ }
273
+ return value;
274
+ }
275
+ 0 && 0;
276
+
277
+ //# sourceMappingURL=option-assertions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_helperCompilationTargets","data","require","_options","msg","loc","type","parent","name","index","JSON","stringify","Error","access","assertRootMode","value","undefined","assertSourceMaps","assertCompact","assertSourceType","assertCallerMetadata","obj","assertObject","prop","Object","keys","propLoc","assertInputSourceMap","assertString","assertFunction","assertBoolean","Array","isArray","assertArray","assertIgnoreList","arr","forEach","item","i","assertIgnoreItem","RegExp","assertConfigApplicableTest","checkValidTest","assertConfigFileSearch","assertBabelrcSearch","assertPluginList","assertPluginItem","length","assertPluginTarget","opts","assertTargets","isBrowsersQueryValid","browsersLoc","esmodulesLoc","assertBrowsersList","browsers","esmodules","key","val","subLoc","hasOwnProperty","call","TargetNames","validTargets","join","assertBrowserVersion","Math","round","assertAssumptions","root","inPreset","source","assumptionsNames","has"],"sources":["../../../src/config/validation/option-assertions.ts"],"sourcesContent":["import {\n isBrowsersQueryValid,\n TargetNames,\n} from \"@babel/helper-compilation-targets\";\n\nimport type {\n ConfigFileSearch,\n BabelrcSearch,\n MatchItem,\n PluginTarget,\n ConfigApplicableTest,\n SourceMapsOption,\n SourceTypeOption,\n CompactOption,\n RootInputSourceMapOption,\n NestingPath,\n CallerMetadata,\n RootMode,\n TargetsListOrObject,\n AssumptionName,\n PluginItem,\n} from \"./options.ts\";\n\nimport { assumptionsNames } from \"./options.ts\";\n\nexport type { RootPath } from \"./options.ts\";\n\nexport type ValidatorSet = Record<string, Validator<any>>;\n\nexport type Validator<T> = (loc: OptionPath, value: unknown) => T;\n\nexport function msg(loc: NestingPath | GeneralPath): string {\n switch (loc.type) {\n case \"root\":\n return ``;\n case \"env\":\n return `${msg(loc.parent)}.env[\"${loc.name}\"]`;\n case \"overrides\":\n return `${msg(loc.parent)}.overrides[${loc.index}]`;\n case \"option\":\n return `${msg(loc.parent)}.${loc.name}`;\n case \"access\":\n return `${msg(loc.parent)}[${JSON.stringify(loc.name)}]`;\n default:\n // @ts-expect-error should not happen when code is type checked\n throw new Error(`Assertion failure: Unknown type ${loc.type}`);\n }\n}\n\nexport function access(loc: GeneralPath, name: string | number): AccessPath {\n return {\n type: \"access\",\n name,\n parent: loc,\n };\n}\n\nexport type OptionPath = Readonly<{\n type: \"option\";\n name: string;\n parent: NestingPath;\n}>;\ntype AccessPath = Readonly<{\n type: \"access\";\n name: string | number;\n parent: GeneralPath;\n}>;\ntype GeneralPath = OptionPath | AccessPath;\n\nexport function assertRootMode(\n loc: OptionPath,\n value: unknown,\n): RootMode | void {\n if (\n value !== undefined &&\n value !== \"root\" &&\n value !== \"upward\" &&\n value !== \"upward-optional\"\n ) {\n throw new Error(\n `${msg(loc)} must be a \"root\", \"upward\", \"upward-optional\" or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertSourceMaps(\n loc: OptionPath,\n value: unknown,\n): SourceMapsOption | void {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n value !== \"inline\" &&\n value !== \"both\"\n ) {\n throw new Error(\n `${msg(loc)} must be a boolean, \"inline\", \"both\", or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertCompact(\n loc: OptionPath,\n value: unknown,\n): CompactOption | void {\n if (value !== undefined && typeof value !== \"boolean\" && value !== \"auto\") {\n throw new Error(`${msg(loc)} must be a boolean, \"auto\", or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertSourceType(\n loc: OptionPath,\n value: unknown,\n): SourceTypeOption | void {\n if (\n value !== undefined &&\n value !== \"module\" &&\n value !== \"commonjs\" &&\n value !== \"script\" &&\n value !== \"unambiguous\"\n ) {\n throw new Error(\n `${msg(loc)} must be \"module\", \"commonjs\", \"script\", \"unambiguous\", or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertCallerMetadata(\n loc: OptionPath,\n value: unknown,\n): CallerMetadata | undefined {\n const obj = assertObject(loc, value);\n if (obj) {\n if (typeof obj.name !== \"string\") {\n throw new Error(\n `${msg(loc)} set but does not contain \"name\" property string`,\n );\n }\n\n for (const prop of Object.keys(obj)) {\n const propLoc = access(loc, prop);\n const value = obj[prop];\n if (\n value != null &&\n typeof value !== \"boolean\" &&\n typeof value !== \"string\" &&\n typeof value !== \"number\"\n ) {\n // NOTE(logan): I'm limiting the type here so that we can guarantee that\n // the \"caller\" value will serialize to JSON nicely. We can always\n // allow more complex structures later though.\n throw new Error(\n `${msg(\n propLoc,\n )} must be null, undefined, a boolean, a string, or a number.`,\n );\n }\n }\n }\n // @ts-expect-error todo(flow->ts)\n return value;\n}\n\nexport function assertInputSourceMap(\n loc: OptionPath,\n value: unknown,\n): RootInputSourceMapOption {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n (typeof value !== \"object\" || !value)\n ) {\n throw new Error(`${msg(loc)} must be a boolean, object, or undefined`);\n }\n return value as RootInputSourceMapOption;\n}\n\nexport function assertString(loc: GeneralPath, value: unknown): string | void {\n if (value !== undefined && typeof value !== \"string\") {\n throw new Error(`${msg(loc)} must be a string, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertFunction(\n loc: GeneralPath,\n value: unknown,\n): Function | void {\n if (value !== undefined && typeof value !== \"function\") {\n throw new Error(`${msg(loc)} must be a function, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertBoolean(\n loc: GeneralPath,\n value: unknown,\n): boolean | void {\n if (value !== undefined && typeof value !== \"boolean\") {\n throw new Error(`${msg(loc)} must be a boolean, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertObject(\n loc: GeneralPath,\n value: unknown,\n): Readonly<Record<string, unknown>> | void {\n if (\n value !== undefined &&\n (typeof value !== \"object\" || Array.isArray(value) || !value)\n ) {\n throw new Error(`${msg(loc)} must be an object, or undefined`);\n }\n // @ts-expect-error todo(flow->ts) value is still typed as unknown, also assert function typically should not return a value\n return value;\n}\n\nexport function assertArray<T>(\n loc: GeneralPath,\n value: T[] | undefined | null,\n): T[] | undefined | null {\n if (value != null && !Array.isArray(value)) {\n throw new Error(`${msg(loc)} must be an array, or undefined`);\n }\n return value;\n}\n\nexport function assertIgnoreList(\n loc: OptionPath,\n value: unknown[] | undefined,\n): MatchItem[] | void {\n const arr = assertArray(loc, value);\n arr?.forEach((item, i) => assertIgnoreItem(access(loc, i), item));\n // @ts-expect-error todo(flow->ts)\n return arr;\n}\nfunction assertIgnoreItem(loc: GeneralPath, value: unknown): MatchItem {\n if (\n typeof value !== \"string\" &&\n typeof value !== \"function\" &&\n !(value instanceof RegExp)\n ) {\n throw new Error(\n `${msg(\n loc,\n )} must be an array of string/Function/RegExp values, or undefined`,\n );\n }\n return value as MatchItem;\n}\n\nexport function assertConfigApplicableTest(\n loc: OptionPath,\n value: unknown,\n): ConfigApplicableTest | void {\n if (value === undefined) {\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n }\n\n if (Array.isArray(value)) {\n value.forEach((item, i) => {\n if (!checkValidTest(item)) {\n throw new Error(\n `${msg(access(loc, i))} must be a string/Function/RegExp.`,\n );\n }\n });\n } else if (!checkValidTest(value)) {\n throw new Error(\n `${msg(loc)} must be a string/Function/RegExp, or an array of those`,\n );\n }\n return value as ConfigApplicableTest;\n}\n\nfunction checkValidTest(value: unknown): value is string | Function | RegExp {\n return (\n typeof value === \"string\" ||\n typeof value === \"function\" ||\n value instanceof RegExp\n );\n}\n\nexport function assertConfigFileSearch(\n loc: OptionPath,\n value: unknown,\n): ConfigFileSearch | void {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n typeof value !== \"string\"\n ) {\n throw new Error(\n `${msg(loc)} must be a undefined, a boolean, a string, ` +\n `got ${JSON.stringify(value)}`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertBabelrcSearch(\n loc: OptionPath,\n value: unknown,\n): BabelrcSearch | void {\n if (value === undefined || typeof value === \"boolean\") {\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n }\n\n if (Array.isArray(value)) {\n value.forEach((item, i) => {\n if (!checkValidTest(item)) {\n throw new Error(\n `${msg(access(loc, i))} must be a string/Function/RegExp.`,\n );\n }\n });\n } else if (!checkValidTest(value)) {\n throw new Error(\n `${msg(loc)} must be a undefined, a boolean, a string/Function/RegExp ` +\n `or an array of those, got ${JSON.stringify(value as any)}`,\n );\n }\n return value as BabelrcSearch;\n}\n\nexport function assertPluginList(\n loc: OptionPath,\n value: unknown[] | null | undefined,\n): PluginItem[] {\n const arr = assertArray(loc, value);\n if (arr) {\n // Loop instead of using `.map` in order to preserve object identity\n // for plugin array for use during config chain processing.\n arr.forEach((item, i) => assertPluginItem(access(loc, i), item));\n }\n return arr as PluginItem[];\n}\nfunction assertPluginItem(loc: GeneralPath, value: unknown): PluginItem {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n throw new Error(`${msg(loc)} must include an object`);\n }\n\n if (value.length > 3) {\n throw new Error(`${msg(loc)} may only be a two-tuple or three-tuple`);\n }\n\n assertPluginTarget(access(loc, 0), value[0]);\n\n if (value.length > 1) {\n const opts = value[1];\n if (\n opts !== undefined &&\n opts !== false &&\n (typeof opts !== \"object\" || Array.isArray(opts) || opts === null)\n ) {\n throw new Error(\n `${msg(access(loc, 1))} must be an object, false, or undefined`,\n );\n }\n }\n if (value.length === 3) {\n const name = value[2];\n if (name !== undefined && typeof name !== \"string\") {\n throw new Error(\n `${msg(access(loc, 2))} must be a string, or undefined`,\n );\n }\n }\n } else {\n assertPluginTarget(loc, value);\n }\n\n return value as PluginItem;\n}\nfunction assertPluginTarget(loc: GeneralPath, value: unknown): PluginTarget {\n if (\n (typeof value !== \"object\" || !value) &&\n typeof value !== \"string\" &&\n typeof value !== \"function\"\n ) {\n throw new Error(`${msg(loc)} must be a string, object, function`);\n }\n return value as PluginTarget;\n}\n\nexport function assertTargets(\n loc: GeneralPath,\n value: any,\n): TargetsListOrObject {\n if (isBrowsersQueryValid(value)) return value;\n\n if (typeof value !== \"object\" || !value || Array.isArray(value)) {\n throw new Error(\n `${msg(loc)} must be a string, an array of strings or an object`,\n );\n }\n\n const browsersLoc = access(loc, \"browsers\");\n const esmodulesLoc = access(loc, \"esmodules\");\n\n assertBrowsersList(browsersLoc, value.browsers);\n assertBoolean(esmodulesLoc, value.esmodules);\n\n for (const key of Object.keys(value)) {\n const val = value[key];\n const subLoc = access(loc, key);\n\n if (key === \"esmodules\") assertBoolean(subLoc, val);\n else if (key === \"browsers\") assertBrowsersList(subLoc, val);\n else if (!Object.hasOwn(TargetNames, key)) {\n const validTargets = Object.keys(TargetNames).join(\", \");\n throw new Error(\n `${msg(\n subLoc,\n )} is not a valid target. Supported targets are ${validTargets}`,\n );\n } else assertBrowserVersion(subLoc, val);\n }\n\n return value;\n}\n\nfunction assertBrowsersList(loc: GeneralPath, value: unknown) {\n if (value !== undefined && !isBrowsersQueryValid(value)) {\n throw new Error(\n `${msg(loc)} must be undefined, a string or an array of strings`,\n );\n }\n}\n\nfunction assertBrowserVersion(loc: GeneralPath, value: unknown) {\n if (typeof value === \"number\" && Math.round(value) === value) return;\n if (typeof value === \"string\") return;\n\n throw new Error(`${msg(loc)} must be a string or an integer number`);\n}\n\nexport function assertAssumptions(\n loc: GeneralPath,\n value: Record<string, unknown>,\n): Record<string, boolean> | void {\n if (value === undefined) return;\n\n if (typeof value !== \"object\" || value === null) {\n throw new Error(`${msg(loc)} must be an object or undefined.`);\n }\n\n // todo(flow->ts): remove any\n let root: any = loc;\n do {\n root = root.parent;\n } while (root.type !== \"root\");\n const inPreset = root.source === \"preset\";\n\n for (const name of Object.keys(value)) {\n const subLoc = access(loc, name);\n if (!assumptionsNames.has(name as AssumptionName)) {\n throw new Error(`${msg(subLoc)} is not a supported assumption.`);\n }\n if (typeof value[name] !== \"boolean\") {\n throw new Error(`${msg(subLoc)} must be a boolean.`);\n }\n if (inPreset && value[name] === false) {\n throw new Error(\n `${msg(subLoc)} cannot be set to 'false' inside presets.`,\n );\n }\n }\n\n // @ts-expect-error todo(flow->ts)\n return value;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAAA,0BAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,yBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAuBA,IAAAE,QAAA,GAAAD,OAAA;AAQO,SAASE,GAAGA,CAACC,GAA8B,EAAU;EAC1D,QAAQA,GAAG,CAACC,IAAI;IACd,KAAK,MAAM;MACT,OAAO,EAAE;IACX,KAAK,KAAK;MACR,OAAO,GAAGF,GAAG,CAACC,GAAG,CAACE,MAAM,CAAC,SAASF,GAAG,CAACG,IAAI,IAAI;IAChD,KAAK,WAAW;MACd,OAAO,GAAGJ,GAAG,CAACC,GAAG,CAACE,MAAM,CAAC,cAAcF,GAAG,CAACI,KAAK,GAAG;IACrD,KAAK,QAAQ;MACX,OAAO,GAAGL,GAAG,CAACC,GAAG,CAACE,MAAM,CAAC,IAAIF,GAAG,CAACG,IAAI,EAAE;IACzC,KAAK,QAAQ;MACX,OAAO,GAAGJ,GAAG,CAACC,GAAG,CAACE,MAAM,CAAC,IAAIG,IAAI,CAACC,SAAS,CAACN,GAAG,CAACG,IAAI,CAAC,GAAG;IAC1D;MAEE,MAAM,IAAII,KAAK,CAAC,mCAAmCP,GAAG,CAACC,IAAI,EAAE,CAAC;EAClE;AACF;AAEO,SAASO,MAAMA,CAACR,GAAgB,EAAEG,IAAqB,EAAc;EAC1E,OAAO;IACLF,IAAI,EAAE,QAAQ;IACdE,IAAI;IACJD,MAAM,EAAEF;EACV,CAAC;AACH;AAcO,SAASS,cAAcA,CAC5BT,GAAe,EACfU,KAAc,EACG;EACjB,IACEA,KAAK,KAAKC,SAAS,IACnBD,KAAK,KAAK,MAAM,IAChBA,KAAK,KAAK,QAAQ,IAClBA,KAAK,KAAK,iBAAiB,EAC3B;IACA,MAAM,IAAIH,KAAK,CACb,GAAGR,GAAG,CAACC,GAAG,CAAC,6DACb,CAAC;EACH;EAEA,OAAOU,KAAK;AACd;AAEO,SAASE,gBAAgBA,CAC9BZ,GAAe,EACfU,KAAc,EACW;EACzB,IACEA,KAAK,KAAKC,SAAS,IACnB,OAAOD,KAAK,KAAK,SAAS,IAC1BA,KAAK,KAAK,QAAQ,IAClBA,KAAK,KAAK,MAAM,EAChB;IACA,MAAM,IAAIH,KAAK,CACb,GAAGR,GAAG,CAACC,GAAG,CAAC,oDACb,CAAC;EACH;EAEA,OAAOU,KAAK;AACd;AAEO,SAASG,aAAaA,CAC3Bb,GAAe,EACfU,KAAc,EACQ;EACtB,IAAIA,KAAK,KAAKC,SAAS,IAAI,OAAOD,KAAK,KAAK,SAAS,IAAIA,KAAK,KAAK,MAAM,EAAE;IACzE,MAAM,IAAIH,KAAK,CAAC,GAAGR,GAAG,CAACC,GAAG,CAAC,0CAA0C,CAAC;EACxE;EAEA,OAAOU,KAAK;AACd;AAEO,SAASI,gBAAgBA,CAC9Bd,GAAe,EACfU,KAAc,EACW;EACzB,IACEA,KAAK,KAAKC,SAAS,IACnBD,KAAK,KAAK,QAAQ,IAClBA,KAAK,KAAK,UAAU,IACpBA,KAAK,KAAK,QAAQ,IAClBA,KAAK,KAAK,aAAa,EACvB;IACA,MAAM,IAAIH,KAAK,CACb,GAAGR,GAAG,CAACC,GAAG,CAAC,sEACb,CAAC;EACH;EAEA,OAAOU,KAAK;AACd;AAEO,SAASK,oBAAoBA,CAClCf,GAAe,EACfU,KAAc,EACc;EAC5B,MAAMM,GAAG,GAAGC,YAAY,CAACjB,GAAG,EAAEU,KAAK,CAAC;EACpC,IAAIM,GAAG,EAAE;IACP,IAAI,OAAOA,GAAG,CAACb,IAAI,KAAK,QAAQ,EAAE;MAChC,MAAM,IAAII,KAAK,CACb,GAAGR,GAAG,CAACC,GAAG,CAAC,kDACb,CAAC;IACH;IAEA,KAAK,MAAMkB,IAAI,IAAIC,MAAM,CAACC,IAAI,CAACJ,GAAG,CAAC,EAAE;MACnC,MAAMK,OAAO,GAAGb,MAAM,CAACR,GAAG,EAAEkB,IAAI,CAAC;MACjC,MAAMR,KAAK,GAAGM,GAAG,CAACE,IAAI,CAAC;MACvB,IACER,KAAK,IAAI,IAAI,IACb,OAAOA,KAAK,KAAK,SAAS,IAC1B,OAAOA,KAAK,KAAK,QAAQ,IACzB,OAAOA,KAAK,KAAK,QAAQ,EACzB;QAIA,MAAM,IAAIH,KAAK,CACb,GAAGR,GAAG,CACJsB,OACF,CAAC,6DACH,CAAC;MACH;IACF;EACF;EAEA,OAAOX,KAAK;AACd;AAEO,SAASY,oBAAoBA,CAClCtB,GAAe,EACfU,KAAc,EACY;EAC1B,IACEA,KAAK,KAAKC,SAAS,IACnB,OAAOD,KAAK,KAAK,SAAS,KACzB,OAAOA,KAAK,KAAK,QAAQ,IAAI,CAACA,KAAK,CAAC,EACrC;IACA,MAAM,IAAIH,KAAK,CAAC,GAAGR,GAAG,CAACC,GAAG,CAAC,0CAA0C,CAAC;EACxE;EACA,OAAOU,KAAK;AACd;AAEO,SAASa,YAAYA,CAACvB,GAAgB,EAAEU,KAAc,EAAiB;EAC5E,IAAIA,KAAK,KAAKC,SAAS,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE;IACpD,MAAM,IAAIH,KAAK,CAAC,GAAGR,GAAG,CAACC,GAAG,CAAC,iCAAiC,CAAC;EAC/D;EAEA,OAAOU,KAAK;AACd;AAEO,SAASc,cAAcA,CAC5BxB,GAAgB,EAChBU,KAAc,EACG;EACjB,IAAIA,KAAK,KAAKC,SAAS,IAAI,OAAOD,KAAK,KAAK,UAAU,EAAE;IACtD,MAAM,IAAIH,KAAK,CAAC,GAAGR,GAAG,CAACC,GAAG,CAAC,mCAAmC,CAAC;EACjE;EAEA,OAAOU,KAAK;AACd;AAEO,SAASe,aAAaA,CAC3BzB,GAAgB,EAChBU,KAAc,EACE;EAChB,IAAIA,KAAK,KAAKC,SAAS,IAAI,OAAOD,KAAK,KAAK,SAAS,EAAE;IACrD,MAAM,IAAIH,KAAK,CAAC,GAAGR,GAAG,CAACC,GAAG,CAAC,kCAAkC,CAAC;EAChE;EAEA,OAAOU,KAAK;AACd;AAEO,SAASO,YAAYA,CAC1BjB,GAAgB,EAChBU,KAAc,EAC4B;EAC1C,IACEA,KAAK,KAAKC,SAAS,KAClB,OAAOD,KAAK,KAAK,QAAQ,IAAIgB,KAAK,CAACC,OAAO,CAACjB,KAAK,CAAC,IAAI,CAACA,KAAK,CAAC,EAC7D;IACA,MAAM,IAAIH,KAAK,CAAC,GAAGR,GAAG,CAACC,GAAG,CAAC,kCAAkC,CAAC;EAChE;EAEA,OAAOU,KAAK;AACd;AAEO,SAASkB,WAAWA,CACzB5B,GAAgB,EAChBU,KAA6B,EACL;EACxB,IAAIA,KAAK,IAAI,IAAI,IAAI,CAACgB,KAAK,CAACC,OAAO,CAACjB,KAAK,CAAC,EAAE;IAC1C,MAAM,IAAIH,KAAK,CAAC,GAAGR,GAAG,CAACC,GAAG,CAAC,iCAAiC,CAAC;EAC/D;EACA,OAAOU,KAAK;AACd;AAEO,SAASmB,gBAAgBA,CAC9B7B,GAAe,EACfU,KAA4B,EACR;EACpB,MAAMoB,GAAG,GAAGF,WAAW,CAAC5B,GAAG,EAAEU,KAAK,CAAC;EACnCoB,GAAG,YAAHA,GAAG,CAAEC,OAAO,CAAC,CAACC,IAAI,EAAEC,CAAC,KAAKC,gBAAgB,CAAC1B,MAAM,CAACR,GAAG,EAAEiC,CAAC,CAAC,EAAED,IAAI,CAAC,CAAC;EAEjE,OAAOF,GAAG;AACZ;AACA,SAASI,gBAAgBA,CAAClC,GAAgB,EAAEU,KAAc,EAAa;EACrE,IACE,OAAOA,KAAK,KAAK,QAAQ,IACzB,OAAOA,KAAK,KAAK,UAAU,IAC3B,EAAEA,KAAK,YAAYyB,MAAM,CAAC,EAC1B;IACA,MAAM,IAAI5B,KAAK,CACb,GAAGR,GAAG,CACJC,GACF,CAAC,kEACH,CAAC;EACH;EACA,OAAOU,KAAK;AACd;AAEO,SAAS0B,0BAA0BA,CACxCpC,GAAe,EACfU,KAAc,EACe;EAC7B,IAAIA,KAAK,KAAKC,SAAS,EAAE;IAEvB,OAAOD,KAAK;EACd;EAEA,IAAIgB,KAAK,CAACC,OAAO,CAACjB,KAAK,CAAC,EAAE;IACxBA,KAAK,CAACqB,OAAO,CAAC,CAACC,IAAI,EAAEC,CAAC,KAAK;MACzB,IAAI,CAACI,cAAc,CAACL,IAAI,CAAC,EAAE;QACzB,MAAM,IAAIzB,KAAK,CACb,GAAGR,GAAG,CAACS,MAAM,CAACR,GAAG,EAAEiC,CAAC,CAAC,CAAC,oCACxB,CAAC;MACH;IACF,CAAC,CAAC;EACJ,CAAC,MAAM,IAAI,CAACI,cAAc,CAAC3B,KAAK,CAAC,EAAE;IACjC,MAAM,IAAIH,KAAK,CACb,GAAGR,GAAG,CAACC,GAAG,CAAC,yDACb,CAAC;EACH;EACA,OAAOU,KAAK;AACd;AAEA,SAAS2B,cAAcA,CAAC3B,KAAc,EAAuC;EAC3E,OACE,OAAOA,KAAK,KAAK,QAAQ,IACzB,OAAOA,KAAK,KAAK,UAAU,IAC3BA,KAAK,YAAYyB,MAAM;AAE3B;AAEO,SAASG,sBAAsBA,CACpCtC,GAAe,EACfU,KAAc,EACW;EACzB,IACEA,KAAK,KAAKC,SAAS,IACnB,OAAOD,KAAK,KAAK,SAAS,IAC1B,OAAOA,KAAK,KAAK,QAAQ,EACzB;IACA,MAAM,IAAIH,KAAK,CACb,GAAGR,GAAG,CAACC,GAAG,CAAC,6CAA6C,GACtD,OAAOK,IAAI,CAACC,SAAS,CAACI,KAAK,CAAC,EAChC,CAAC;EACH;EAEA,OAAOA,KAAK;AACd;AAEO,SAAS6B,mBAAmBA,CACjCvC,GAAe,EACfU,KAAc,EACQ;EACtB,IAAIA,KAAK,KAAKC,SAAS,IAAI,OAAOD,KAAK,KAAK,SAAS,EAAE;IAErD,OAAOA,KAAK;EACd;EAEA,IAAIgB,KAAK,CAACC,OAAO,CAACjB,KAAK,CAAC,EAAE;IACxBA,KAAK,CAACqB,OAAO,CAAC,CAACC,IAAI,EAAEC,CAAC,KAAK;MACzB,IAAI,CAACI,cAAc,CAACL,IAAI,CAAC,EAAE;QACzB,MAAM,IAAIzB,KAAK,CACb,GAAGR,GAAG,CAACS,MAAM,CAACR,GAAG,EAAEiC,CAAC,CAAC,CAAC,oCACxB,CAAC;MACH;IACF,CAAC,CAAC;EACJ,CAAC,MAAM,IAAI,CAACI,cAAc,CAAC3B,KAAK,CAAC,EAAE;IACjC,MAAM,IAAIH,KAAK,CACb,GAAGR,GAAG,CAACC,GAAG,CAAC,4DAA4D,GACrE,6BAA6BK,IAAI,CAACC,SAAS,CAACI,KAAY,CAAC,EAC7D,CAAC;EACH;EACA,OAAOA,KAAK;AACd;AAEO,SAAS8B,gBAAgBA,CAC9BxC,GAAe,EACfU,KAAmC,EACrB;EACd,MAAMoB,GAAG,GAAGF,WAAW,CAAC5B,GAAG,EAAEU,KAAK,CAAC;EACnC,IAAIoB,GAAG,EAAE;IAGPA,GAAG,CAACC,OAAO,CAAC,CAACC,IAAI,EAAEC,CAAC,KAAKQ,gBAAgB,CAACjC,MAAM,CAACR,GAAG,EAAEiC,CAAC,CAAC,EAAED,IAAI,CAAC,CAAC;EAClE;EACA,OAAOF,GAAG;AACZ;AACA,SAASW,gBAAgBA,CAACzC,GAAgB,EAAEU,KAAc,EAAc;EACtE,IAAIgB,KAAK,CAACC,OAAO,CAACjB,KAAK,CAAC,EAAE;IACxB,IAAIA,KAAK,CAACgC,MAAM,KAAK,CAAC,EAAE;MACtB,MAAM,IAAInC,KAAK,CAAC,GAAGR,GAAG,CAACC,GAAG,CAAC,yBAAyB,CAAC;IACvD;IAEA,IAAIU,KAAK,CAACgC,MAAM,GAAG,CAAC,EAAE;MACpB,MAAM,IAAInC,KAAK,CAAC,GAAGR,GAAG,CAACC,GAAG,CAAC,yCAAyC,CAAC;IACvE;IAEA2C,kBAAkB,CAACnC,MAAM,CAACR,GAAG,EAAE,CAAC,CAAC,EAAEU,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5C,IAAIA,KAAK,CAACgC,MAAM,GAAG,CAAC,EAAE;MACpB,MAAME,IAAI,GAAGlC,KAAK,CAAC,CAAC,CAAC;MACrB,IACEkC,IAAI,KAAKjC,SAAS,IAClBiC,IAAI,KAAK,KAAK,KACb,OAAOA,IAAI,KAAK,QAAQ,IAAIlB,KAAK,CAACC,OAAO,CAACiB,IAAI,CAAC,IAAIA,IAAI,KAAK,IAAI,CAAC,EAClE;QACA,MAAM,IAAIrC,KAAK,CACb,GAAGR,GAAG,CAACS,MAAM,CAACR,GAAG,EAAE,CAAC,CAAC,CAAC,yCACxB,CAAC;MACH;IACF;IACA,IAAIU,KAAK,CAACgC,MAAM,KAAK,CAAC,EAAE;MACtB,MAAMvC,IAAI,GAAGO,KAAK,CAAC,CAAC,CAAC;MACrB,IAAIP,IAAI,KAAKQ,SAAS,IAAI,OAAOR,IAAI,KAAK,QAAQ,EAAE;QAClD,MAAM,IAAII,KAAK,CACb,GAAGR,GAAG,CAACS,MAAM,CAACR,GAAG,EAAE,CAAC,CAAC,CAAC,iCACxB,CAAC;MACH;IACF;EACF,CAAC,MAAM;IACL2C,kBAAkB,CAAC3C,GAAG,EAAEU,KAAK,CAAC;EAChC;EAEA,OAAOA,KAAK;AACd;AACA,SAASiC,kBAAkBA,CAAC3C,GAAgB,EAAEU,KAAc,EAAgB;EAC1E,IACE,CAAC,OAAOA,KAAK,KAAK,QAAQ,IAAI,CAACA,KAAK,KACpC,OAAOA,KAAK,KAAK,QAAQ,IACzB,OAAOA,KAAK,KAAK,UAAU,EAC3B;IACA,MAAM,IAAIH,KAAK,CAAC,GAAGR,GAAG,CAACC,GAAG,CAAC,qCAAqC,CAAC;EACnE;EACA,OAAOU,KAAK;AACd;AAEO,SAASmC,aAAaA,CAC3B7C,GAAgB,EAChBU,KAAU,EACW;EACrB,IAAI,IAAAoC,gDAAoB,EAACpC,KAAK,CAAC,EAAE,OAAOA,KAAK;EAE7C,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,CAACA,KAAK,IAAIgB,KAAK,CAACC,OAAO,CAACjB,KAAK,CAAC,EAAE;IAC/D,MAAM,IAAIH,KAAK,CACb,GAAGR,GAAG,CAACC,GAAG,CAAC,qDACb,CAAC;EACH;EAEA,MAAM+C,WAAW,GAAGvC,MAAM,CAACR,GAAG,EAAE,UAAU,CAAC;EAC3C,MAAMgD,YAAY,GAAGxC,MAAM,CAACR,GAAG,EAAE,WAAW,CAAC;EAE7CiD,kBAAkB,CAACF,WAAW,EAAErC,KAAK,CAACwC,QAAQ,CAAC;EAC/CzB,aAAa,CAACuB,YAAY,EAAEtC,KAAK,CAACyC,SAAS,CAAC;EAE5C,KAAK,MAAMC,GAAG,IAAIjC,MAAM,CAACC,IAAI,CAACV,KAAK,CAAC,EAAE;IACpC,MAAM2C,GAAG,GAAG3C,KAAK,CAAC0C,GAAG,CAAC;IACtB,MAAME,MAAM,GAAG9C,MAAM,CAACR,GAAG,EAAEoD,GAAG,CAAC;IAE/B,IAAIA,GAAG,KAAK,WAAW,EAAE3B,aAAa,CAAC6B,MAAM,EAAED,GAAG,CAAC,CAAC,KAC/C,IAAID,GAAG,KAAK,UAAU,EAAEH,kBAAkB,CAACK,MAAM,EAAED,GAAG,CAAC,CAAC,KACxD,IAAI,CAACE,cAAA,CAAAC,IAAA,CAAcC,uCAAW,EAAEL,GAAG,CAAC,EAAE;MACzC,MAAMM,YAAY,GAAGvC,MAAM,CAACC,IAAI,CAACqC,uCAAW,CAAC,CAACE,IAAI,CAAC,IAAI,CAAC;MACxD,MAAM,IAAIpD,KAAK,CACb,GAAGR,GAAG,CACJuD,MACF,CAAC,iDAAiDI,YAAY,EAChE,CAAC;IACH,CAAC,MAAME,oBAAoB,CAACN,MAAM,EAAED,GAAG,CAAC;EAC1C;EAEA,OAAO3C,KAAK;AACd;AAEA,SAASuC,kBAAkBA,CAACjD,GAAgB,EAAEU,KAAc,EAAE;EAC5D,IAAIA,KAAK,KAAKC,SAAS,IAAI,CAAC,IAAAmC,gDAAoB,EAACpC,KAAK,CAAC,EAAE;IACvD,MAAM,IAAIH,KAAK,CACb,GAAGR,GAAG,CAACC,GAAG,CAAC,qDACb,CAAC;EACH;AACF;AAEA,SAAS4D,oBAAoBA,CAAC5D,GAAgB,EAAEU,KAAc,EAAE;EAC9D,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAImD,IAAI,CAACC,KAAK,CAACpD,KAAK,CAAC,KAAKA,KAAK,EAAE;EAC9D,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;EAE/B,MAAM,IAAIH,KAAK,CAAC,GAAGR,GAAG,CAACC,GAAG,CAAC,wCAAwC,CAAC;AACtE;AAEO,SAAS+D,iBAAiBA,CAC/B/D,GAAgB,EAChBU,KAA8B,EACE;EAChC,IAAIA,KAAK,KAAKC,SAAS,EAAE;EAEzB,IAAI,OAAOD,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,EAAE;IAC/C,MAAM,IAAIH,KAAK,CAAC,GAAGR,GAAG,CAACC,GAAG,CAAC,kCAAkC,CAAC;EAChE;EAGA,IAAIgE,IAAS,GAAGhE,GAAG;EACnB,GAAG;IACDgE,IAAI,GAAGA,IAAI,CAAC9D,MAAM;EACpB,CAAC,QAAQ8D,IAAI,CAAC/D,IAAI,KAAK,MAAM;EAC7B,MAAMgE,QAAQ,GAAGD,IAAI,CAACE,MAAM,KAAK,QAAQ;EAEzC,KAAK,MAAM/D,IAAI,IAAIgB,MAAM,CAACC,IAAI,CAACV,KAAK,CAAC,EAAE;IACrC,MAAM4C,MAAM,GAAG9C,MAAM,CAACR,GAAG,EAAEG,IAAI,CAAC;IAChC,IAAI,CAACgE,yBAAgB,CAACC,GAAG,CAACjE,IAAsB,CAAC,EAAE;MACjD,MAAM,IAAII,KAAK,CAAC,GAAGR,GAAG,CAACuD,MAAM,CAAC,iCAAiC,CAAC;IAClE;IACA,IAAI,OAAO5C,KAAK,CAACP,IAAI,CAAC,KAAK,SAAS,EAAE;MACpC,MAAM,IAAII,KAAK,CAAC,GAAGR,GAAG,CAACuD,MAAM,CAAC,qBAAqB,CAAC;IACtD;IACA,IAAIW,QAAQ,IAAIvD,KAAK,CAACP,IAAI,CAAC,KAAK,KAAK,EAAE;MACrC,MAAM,IAAII,KAAK,CACb,GAAGR,GAAG,CAACuD,MAAM,CAAC,2CAChB,CAAC;IACH;EACF;EAGA,OAAO5C,KAAK;AACd;AAAC","ignoreList":[]}
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.assumptionsNames = void 0;
7
+ exports.checkNoUnwrappedItemOptionPairs = checkNoUnwrappedItemOptionPairs;
8
+ exports.validate = validate;
9
+ var _removed = require("./removed.js");
10
+ var _optionAssertions = require("./option-assertions.js");
11
+ var _configError = require("../../errors/config-error.js");
12
+ const ROOT_VALIDATORS = {
13
+ cwd: _optionAssertions.assertString,
14
+ root: _optionAssertions.assertString,
15
+ rootMode: _optionAssertions.assertRootMode,
16
+ configFile: _optionAssertions.assertConfigFileSearch,
17
+ caller: _optionAssertions.assertCallerMetadata,
18
+ filename: _optionAssertions.assertString,
19
+ filenameRelative: _optionAssertions.assertString,
20
+ code: _optionAssertions.assertBoolean,
21
+ ast: _optionAssertions.assertBoolean,
22
+ cloneInputAst: _optionAssertions.assertBoolean,
23
+ envName: _optionAssertions.assertString
24
+ };
25
+ const BABELRC_VALIDATORS = {
26
+ babelrc: _optionAssertions.assertBoolean,
27
+ babelrcRoots: _optionAssertions.assertBabelrcSearch
28
+ };
29
+ const NONPRESET_VALIDATORS = {
30
+ extends: _optionAssertions.assertString,
31
+ ignore: _optionAssertions.assertIgnoreList,
32
+ only: _optionAssertions.assertIgnoreList,
33
+ targets: _optionAssertions.assertTargets,
34
+ browserslistConfigFile: _optionAssertions.assertConfigFileSearch,
35
+ browserslistEnv: _optionAssertions.assertString
36
+ };
37
+ const COMMON_VALIDATORS = {
38
+ inputSourceMap: _optionAssertions.assertInputSourceMap,
39
+ presets: _optionAssertions.assertPluginList,
40
+ plugins: _optionAssertions.assertPluginList,
41
+ passPerPreset: _optionAssertions.assertBoolean,
42
+ assumptions: _optionAssertions.assertAssumptions,
43
+ env: assertEnvSet,
44
+ overrides: assertOverridesList,
45
+ test: _optionAssertions.assertConfigApplicableTest,
46
+ include: _optionAssertions.assertConfigApplicableTest,
47
+ exclude: _optionAssertions.assertConfigApplicableTest,
48
+ retainLines: _optionAssertions.assertBoolean,
49
+ comments: _optionAssertions.assertBoolean,
50
+ shouldPrintComment: _optionAssertions.assertFunction,
51
+ compact: _optionAssertions.assertCompact,
52
+ minified: _optionAssertions.assertBoolean,
53
+ auxiliaryCommentBefore: _optionAssertions.assertString,
54
+ auxiliaryCommentAfter: _optionAssertions.assertString,
55
+ sourceType: _optionAssertions.assertSourceType,
56
+ wrapPluginVisitorMethod: _optionAssertions.assertFunction,
57
+ highlightCode: _optionAssertions.assertBoolean,
58
+ sourceMaps: _optionAssertions.assertSourceMaps,
59
+ sourceMap: _optionAssertions.assertSourceMaps,
60
+ sourceFileName: _optionAssertions.assertString,
61
+ sourceRoot: _optionAssertions.assertString,
62
+ parserOpts: _optionAssertions.assertObject,
63
+ generatorOpts: _optionAssertions.assertObject
64
+ };
65
+ Object.assign(COMMON_VALIDATORS, {
66
+ getModuleId: _optionAssertions.assertFunction,
67
+ moduleRoot: _optionAssertions.assertString,
68
+ moduleIds: _optionAssertions.assertBoolean,
69
+ moduleId: _optionAssertions.assertString
70
+ });
71
+ const knownAssumptions = ["arrayLikeIsIterable", "constantReexports", "constantSuper", "enumerableModuleMeta", "ignoreFunctionLength", "ignoreToPrimitiveHint", "iterableIsArray", "mutableTemplateObject", "noClassCalls", "noDocumentAll", "noIncompleteNsImportDetection", "noNewArrows", "noUninitializedPrivateFieldAccess", "objectRestNoSymbols", "privateFieldsAsSymbols", "privateFieldsAsProperties", "pureGetters", "setClassMethods", "setComputedProperties", "setPublicClassFields", "setSpreadProperties", "skipForOfIteratorClosing", "superIsCallableConstructor"];
72
+ const assumptionsNames = exports.assumptionsNames = new Set(knownAssumptions);
73
+ function getSource(loc) {
74
+ return loc.type === "root" ? loc.source : getSource(loc.parent);
75
+ }
76
+ function validate(type, opts, filename) {
77
+ try {
78
+ return validateNested({
79
+ type: "root",
80
+ source: type
81
+ }, opts);
82
+ } catch (error) {
83
+ const configError = new _configError.default(error.message, filename);
84
+ if (error.code) configError.code = error.code;
85
+ throw configError;
86
+ }
87
+ }
88
+ function validateNested(loc, opts) {
89
+ const type = getSource(loc);
90
+ assertNoDuplicateSourcemap(opts);
91
+ Object.keys(opts).forEach(key => {
92
+ const optLoc = {
93
+ type: "option",
94
+ name: key,
95
+ parent: loc
96
+ };
97
+ if (type === "preset" && NONPRESET_VALIDATORS[key]) {
98
+ throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in preset options`);
99
+ }
100
+ if (type !== "arguments" && ROOT_VALIDATORS[key]) {
101
+ throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options`);
102
+ }
103
+ if (type !== "arguments" && type !== "configfile" && BABELRC_VALIDATORS[key]) {
104
+ if (type === "babelrcfile" || type === "extendsfile") {
105
+ throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in .babelrc or "extends"ed files, only in root programmatic options, ` + `or babel.config.js/config file options`);
106
+ }
107
+ throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options, or babel.config.js/config file options`);
108
+ }
109
+ const validator = COMMON_VALIDATORS[key] || NONPRESET_VALIDATORS[key] || BABELRC_VALIDATORS[key] || ROOT_VALIDATORS[key] || throwUnknownError;
110
+ validator(optLoc, opts[key]);
111
+ });
112
+ return opts;
113
+ }
114
+ function throwUnknownError(loc) {
115
+ const key = loc.name;
116
+ if (_removed.default[key]) {
117
+ const {
118
+ message,
119
+ version = 5
120
+ } = _removed.default[key];
121
+ throw new Error(`Using removed Babel ${version} option: ${(0, _optionAssertions.msg)(loc)} - ${message}`);
122
+ } else {
123
+ const unknownOptErr = new Error(`Unknown option: ${(0, _optionAssertions.msg)(loc)}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.`);
124
+ unknownOptErr.code = "BABEL_UNKNOWN_OPTION";
125
+ throw unknownOptErr;
126
+ }
127
+ }
128
+ function assertNoDuplicateSourcemap(opts) {
129
+ if (hasOwnProperty.call(opts, "sourceMap") && hasOwnProperty.call(opts, "sourceMaps")) {
130
+ throw new Error(".sourceMap is an alias for .sourceMaps, cannot use both");
131
+ }
132
+ }
133
+ function assertEnvSet(loc, value) {
134
+ if (loc.parent.type === "env") {
135
+ throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside of another .env block`);
136
+ }
137
+ const parent = loc.parent;
138
+ const obj = (0, _optionAssertions.assertObject)(loc, value);
139
+ if (obj) {
140
+ for (const envName of Object.keys(obj)) {
141
+ const env = (0, _optionAssertions.assertObject)((0, _optionAssertions.access)(loc, envName), obj[envName]);
142
+ if (!env) continue;
143
+ const envLoc = {
144
+ type: "env",
145
+ name: envName,
146
+ parent
147
+ };
148
+ validateNested(envLoc, env);
149
+ }
150
+ }
151
+ return obj;
152
+ }
153
+ function assertOverridesList(loc, value) {
154
+ if (loc.parent.type === "env") {
155
+ throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .env block`);
156
+ }
157
+ if (loc.parent.type === "overrides") {
158
+ throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .overrides block`);
159
+ }
160
+ const parent = loc.parent;
161
+ const arr = (0, _optionAssertions.assertArray)(loc, value);
162
+ if (arr) {
163
+ for (const [index, item] of arr.entries()) {
164
+ const objLoc = (0, _optionAssertions.access)(loc, index);
165
+ const env = (0, _optionAssertions.assertObject)(objLoc, item);
166
+ if (!env) throw new Error(`${(0, _optionAssertions.msg)(objLoc)} must be an object`);
167
+ const overridesLoc = {
168
+ type: "overrides",
169
+ index,
170
+ parent
171
+ };
172
+ validateNested(overridesLoc, env);
173
+ }
174
+ }
175
+ return arr;
176
+ }
177
+ function checkNoUnwrappedItemOptionPairs(items, index, type, e) {
178
+ if (index === 0) return;
179
+ const lastItem = items[index - 1];
180
+ const thisItem = items[index];
181
+ if (lastItem.file && lastItem.options === undefined && typeof thisItem.value === "object") {
182
+ e.message += `\n- Maybe you meant to use\n` + `"${type}s": [\n ["${lastItem.file.request}", ${JSON.stringify(thisItem.value, undefined, 2)}]\n]\n` + `To be a valid ${type}, its name and options should be wrapped in a pair of brackets`;
183
+ }
184
+ }
185
+ 0 && 0;
186
+
187
+ //# sourceMappingURL=options.js.map