feat: refactoring project

This commit is contained in:
Carlos
2024-11-23 14:56:07 -05:00
parent f0c2a50c18
commit 1c6db5818d
2351 changed files with 39323 additions and 60326 deletions

View File

@@ -4,8 +4,7 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
exports.minVersions = exports.legacyBabel7SyntaxPlugins = exports.default = void 0;
var _pluginSyntaxImportAssertions = require("@babel/plugin-syntax-import-assertions");
var _pluginSyntaxImportAttributes = require("@babel/plugin-syntax-import-attributes");
var _babel7AvailablePlugins = require("./babel-7-available-plugins.cjs");
var _pluginTransformAsyncGeneratorFunctions = require("@babel/plugin-transform-async-generator-functions");
var _pluginTransformAsyncToGenerator = require("@babel/plugin-transform-async-to-generator");
var _pluginTransformArrowFunctions = require("@babel/plugin-transform-arrow-functions");
@@ -45,6 +44,7 @@ var _pluginTransformPrivateMethods = require("@babel/plugin-transform-private-me
var _pluginTransformPrivatePropertyInObject = require("@babel/plugin-transform-private-property-in-object");
var _pluginTransformPropertyLiterals = require("@babel/plugin-transform-property-literals");
var _pluginTransformRegenerator = require("@babel/plugin-transform-regenerator");
var _pluginTransformRegexpModifiers = require("@babel/plugin-transform-regexp-modifiers");
var _pluginTransformReservedWords = require("@babel/plugin-transform-reserved-words");
var _pluginTransformShorthandProperties = require("@babel/plugin-transform-shorthand-properties");
var _pluginTransformSpread = require("@babel/plugin-transform-spread");
@@ -78,8 +78,6 @@ const availablePlugins = exports.default = {
"bugfix/transform-tagged-template-caching": () => _index4,
"bugfix/transform-v8-spread-parameters-in-optional-chaining": () => _pluginBugfixV8SpreadParametersInOptionalChaining.default,
"bugfix/transform-v8-static-class-fields-redefine-readonly": () => _pluginBugfixV8StaticClassFieldsRedefineReadonly.default,
"syntax-import-assertions": () => _pluginSyntaxImportAssertions.default,
"syntax-import-attributes": () => _pluginSyntaxImportAttributes.default,
"transform-arrow-functions": () => _pluginTransformArrowFunctions.default,
"transform-async-generator-functions": () => _pluginTransformAsyncGeneratorFunctions.default,
"transform-async-to-generator": () => _pluginTransformAsyncToGenerator.default,
@@ -119,6 +117,7 @@ const availablePlugins = exports.default = {
"transform-private-property-in-object": () => _pluginTransformPrivatePropertyInObject.default,
"transform-property-literals": () => _pluginTransformPropertyLiterals.default,
"transform-regenerator": () => _pluginTransformRegenerator.default,
"transform-regexp-modifiers": () => _pluginTransformRegexpModifiers.default,
"transform-reserved-words": () => _pluginTransformReservedWords.default,
"transform-shorthand-properties": () => _pluginTransformShorthandProperties.default,
"transform-spread": () => _pluginTransformSpread.default,
@@ -139,29 +138,32 @@ let legacyBabel7SyntaxPlugins = exports.legacyBabel7SyntaxPlugins = void 0;
"syntax-import-attributes": "7.22.0",
"transform-class-static-block": "7.12.0",
"transform-duplicate-named-capturing-groups-regex": "7.19.0",
"transform-private-property-in-object": "7.10.0"
"transform-private-property-in-object": "7.10.0",
"transform-regexp-modifiers": "7.19.0"
});
const syntax = name => () => () => ({
manipulateOptions: (_, p) => p.plugins.push(name)
});
const e = () => () => () => ({});
const legacyBabel7SyntaxPluginsLoaders = {
"syntax-async-generators": () => require("@babel/plugin-syntax-async-generators"),
"syntax-class-properties": () => require("@babel/plugin-syntax-class-properties"),
"syntax-class-static-block": () => require("@babel/plugin-syntax-class-static-block"),
"syntax-dynamic-import": () => require("@babel/plugin-syntax-dynamic-import"),
"syntax-export-namespace-from": () => require("@babel/plugin-syntax-export-namespace-from"),
"syntax-import-meta": () => require("@babel/plugin-syntax-import-meta"),
"syntax-json-strings": () => require("@babel/plugin-syntax-json-strings"),
"syntax-logical-assignment-operators": () => require("@babel/plugin-syntax-logical-assignment-operators"),
"syntax-nullish-coalescing-operator": () => require("@babel/plugin-syntax-nullish-coalescing-operator"),
"syntax-numeric-separator": () => require("@babel/plugin-syntax-numeric-separator"),
"syntax-object-rest-spread": () => require("@babel/plugin-syntax-object-rest-spread"),
"syntax-optional-catch-binding": () => require("@babel/plugin-syntax-optional-catch-binding"),
"syntax-optional-chaining": () => require("@babel/plugin-syntax-optional-chaining"),
"syntax-private-property-in-object": () => require("@babel/plugin-syntax-private-property-in-object"),
"syntax-top-level-await": () => require("@babel/plugin-syntax-top-level-await")
"syntax-async-generators": syntax("asyncGenerators"),
"syntax-class-properties": syntax("classProperties"),
"syntax-class-static-block": syntax("classStaticBlock"),
"syntax-dynamic-import": syntax("dynamicImport"),
"syntax-export-namespace-from": syntax("exportNamespaceFrom"),
"syntax-import-meta": syntax("importMeta"),
"syntax-json-strings": syntax("jsonStrings"),
"syntax-logical-assignment-operators": syntax("logicalAssignment"),
"syntax-nullish-coalescing-operator": syntax("nullishCoalescingOperator"),
"syntax-numeric-separator": syntax("numericSeparator"),
"syntax-object-rest-spread": syntax("objectRestSpread"),
"syntax-optional-catch-binding": syntax("optionalCatchBinding"),
"syntax-optional-chaining": syntax("optionalChaining"),
"syntax-private-property-in-object": syntax("privateIn"),
"syntax-top-level-await": syntax("topLevelAwait"),
"syntax-unicode-sets-regex": () => require("@babel/plugin-syntax-unicode-sets-regex"),
"syntax-import-assertions": _babel7AvailablePlugins["syntax-import-assertions"],
"syntax-import-attributes": _babel7AvailablePlugins["syntax-import-attributes"]
};
{
legacyBabel7SyntaxPluginsLoaders["syntax-unicode-sets-regex"] = () => require("@babel/plugin-syntax-unicode-sets-regex");
}
Object.assign(availablePlugins, legacyBabel7SyntaxPluginsLoaders);
exports.legacyBabel7SyntaxPlugins = legacyBabel7SyntaxPlugins = new Set(Object.keys(legacyBabel7SyntaxPluginsLoaders));
}

File diff suppressed because one or more lines are too long

View File

@@ -179,7 +179,7 @@ const getCoreJSOptions = ({
exports.getPolyfillPlugins = getPolyfillPlugins;
}
}
function getLocalTargets(optionsTargets, ignoreBrowserslistConfig, configPath, browserslistEnv) {
function getLocalTargets(optionsTargets, ignoreBrowserslistConfig, configPath, browserslistEnv, api) {
if (optionsTargets != null && optionsTargets.esmodules && optionsTargets.browsers) {
console.warn(`
@babel/preset-env: esmodules and browsers targets have been specified together.
@@ -189,7 +189,10 @@ function getLocalTargets(optionsTargets, ignoreBrowserslistConfig, configPath, b
return (0, _helperCompilationTargets.default)(optionsTargets, {
ignoreBrowserslistConfig,
configPath,
browserslistEnv
browserslistEnv,
onBrowserslistConfigFound(config) {
api.addExternalDependency(config);
}
});
}
function supportsStaticESM(caller) {
@@ -242,7 +245,7 @@ option \`forceAllTransforms: true\` instead.
`);
}
}
targets = getLocalTargets(optionsTargets, ignoreBrowserslistConfig, configPath, browserslistEnv);
targets = getLocalTargets(optionsTargets, ignoreBrowserslistConfig, configPath, browserslistEnv, api);
}
const transformTargets = forceAllTransforms || hasUglifyTarget ? {} : targets;
const include = transformIncludesAndExcludes(optionsInclude);

File diff suppressed because one or more lines are too long

View File

@@ -12,7 +12,9 @@ const keys = Object.keys;
const plugins = exports.plugins = filterAvailable(_plugins);
const pluginsBugfixes = exports.pluginsBugfixes = filterAvailable(_pluginBugfixes);
const overlappingPlugins = exports.overlappingPlugins = filterAvailable(_overlappingPlugins);
overlappingPlugins["syntax-import-attributes"] = ["syntax-import-assertions"];
{
overlappingPlugins["syntax-import-attributes"] = ["syntax-import-assertions"];
}
function filterAvailable(data) {
const result = {};
for (const plugin of keys(data)) {

View File

@@ -1 +1 @@
{"version":3,"names":["_plugins","require","_pluginBugfixes","_overlappingPlugins","_availablePlugins","keys","Object","plugins","exports","filterAvailable","originalPlugins","pluginsBugfixes","originalPluginsBugfixes","overlappingPlugins","originalOverlappingPlugins","data","result","plugin","hasOwnProperty","call","availablePlugins"],"sources":["../src/plugins-compat-data.ts"],"sourcesContent":["import originalPlugins from \"@babel/compat-data/plugins\";\nimport originalPluginsBugfixes from \"@babel/compat-data/plugin-bugfixes\";\nimport originalOverlappingPlugins from \"@babel/compat-data/overlapping-plugins\";\nimport availablePlugins from \"./available-plugins.ts\";\n\nconst keys: <O extends object>(o: O) => (keyof O)[] = Object.keys;\n\nexport const plugins = filterAvailable(originalPlugins);\nexport const pluginsBugfixes = filterAvailable(originalPluginsBugfixes);\nexport const overlappingPlugins = filterAvailable(originalOverlappingPlugins);\n\n// @ts-expect-error: we extend this here, since it's a syntax plugin and thus\n// doesn't make sense to store it in a compat-data package.\noverlappingPlugins[\"syntax-import-attributes\"] = [\"syntax-import-assertions\"];\n\nfunction filterAvailable<Data extends { [name: string]: unknown }>(\n data: Data,\n): { [Name in keyof Data & keyof typeof availablePlugins]: Data[Name] } {\n const result = {} as any;\n for (const plugin of keys(data)) {\n if (Object.hasOwn(availablePlugins, plugin)) {\n result[plugin] = data[plugin];\n }\n }\n return result;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAEA,MAAMI,IAA6C,GAAGC,MAAM,CAACD,IAAI;AAE1D,MAAME,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAGE,eAAe,CAACC,QAAe,CAAC;AAChD,MAAMC,eAAe,GAAAH,OAAA,CAAAG,eAAA,GAAGF,eAAe,CAACG,eAAuB,CAAC;AAChE,MAAMC,kBAAkB,GAAAL,OAAA,CAAAK,kBAAA,GAAGJ,eAAe,CAACK,mBAA0B,CAAC;AAI7ED,kBAAkB,CAAC,0BAA0B,CAAC,GAAG,CAAC,0BAA0B,CAAC;AAE7E,SAASJ,eAAeA,CACtBM,IAAU,EAC4D;EACtE,MAAMC,MAAM,GAAG,CAAC,CAAQ;EACxB,KAAK,MAAMC,MAAM,IAAIZ,IAAI,CAACU,IAAI,CAAC,EAAE;IAC/B,IAAIG,cAAA,CAAAC,IAAA,CAAcC,yBAAgB,EAAEH,MAAM,CAAC,EAAE;MAC3CD,MAAM,CAACC,MAAM,CAAC,GAAGF,IAAI,CAACE,MAAM,CAAC;IAC/B;EACF;EACA,OAAOD,MAAM;AACf","ignoreList":[]}
{"version":3,"names":["_plugins","require","_pluginBugfixes","_overlappingPlugins","_availablePlugins","keys","Object","plugins","exports","filterAvailable","originalPlugins","pluginsBugfixes","originalPluginsBugfixes","overlappingPlugins","originalOverlappingPlugins","data","result","plugin","hasOwnProperty","call","availablePlugins"],"sources":["../src/plugins-compat-data.ts"],"sourcesContent":["import originalPlugins from \"@babel/compat-data/plugins\";\nimport originalPluginsBugfixes from \"@babel/compat-data/plugin-bugfixes\";\nimport originalOverlappingPlugins from \"@babel/compat-data/overlapping-plugins\";\nimport availablePlugins from \"./available-plugins.ts\";\n\nconst keys: <O extends object>(o: O) => (keyof O)[] = Object.keys;\n\nexport const plugins = filterAvailable(originalPlugins);\nexport const pluginsBugfixes = filterAvailable(originalPluginsBugfixes);\nexport const overlappingPlugins = filterAvailable(originalOverlappingPlugins);\n\nif (!process.env.BABEL_8_BREAKING) {\n // @ts-expect-error: we extend this here, since it's a syntax plugin and thus\n // doesn't make sense to store it in a compat-data package.\n overlappingPlugins[\"syntax-import-attributes\"] = [\"syntax-import-assertions\"];\n}\n\nfunction filterAvailable<Data extends { [name: string]: unknown }>(\n data: Data,\n): { [Name in keyof Data & keyof typeof availablePlugins]: Data[Name] } {\n const result = {} as any;\n for (const plugin of keys(data)) {\n if (Object.hasOwn(availablePlugins, plugin)) {\n result[plugin] = data[plugin];\n }\n }\n return result;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAEA,MAAMI,IAA6C,GAAGC,MAAM,CAACD,IAAI;AAE1D,MAAME,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAGE,eAAe,CAACC,QAAe,CAAC;AAChD,MAAMC,eAAe,GAAAH,OAAA,CAAAG,eAAA,GAAGF,eAAe,CAACG,eAAuB,CAAC;AAChE,MAAMC,kBAAkB,GAAAL,OAAA,CAAAK,kBAAA,GAAGJ,eAAe,CAACK,mBAA0B,CAAC;AAE1C;EAGjCD,kBAAkB,CAAC,0BAA0B,CAAC,GAAG,CAAC,0BAA0B,CAAC;AAC/E;AAEA,SAASJ,eAAeA,CACtBM,IAAU,EAC4D;EACtE,MAAMC,MAAM,GAAG,CAAC,CAAQ;EACxB,KAAK,MAAMC,MAAM,IAAIZ,IAAI,CAACU,IAAI,CAAC,EAAE;IAC/B,IAAIG,cAAA,CAAAC,IAAA,CAAcC,yBAAgB,EAAEH,MAAM,CAAC,EAAE;MAC3CD,MAAM,CAACC,MAAM,CAAC,GAAGF,IAAI,CAACE,MAAM,CAAC;IAC/B;EACF;EACA,OAAOD,MAAM;AACf","ignoreList":[]}

View File

@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
exports.proposalSyntaxPlugins = exports.proposalPlugins = exports.pluginSyntaxMap = void 0;
const proposalPlugins = exports.proposalPlugins = new Set();
const proposalPlugins = exports.proposalPlugins = new Set([]);
const proposalSyntaxPlugins = exports.proposalSyntaxPlugins = ["syntax-import-assertions", "syntax-import-attributes"];
const pluginSyntaxObject = {
"transform-async-generator-functions": "syntax-async-generators",

View File

@@ -1 +1 @@
{"version":3,"names":["proposalPlugins","exports","Set","proposalSyntaxPlugins","pluginSyntaxObject","pluginSyntaxEntries","Object","keys","map","key","pluginSyntaxMap","Map"],"sources":["../src/shipped-proposals.ts"],"sourcesContent":["// TODO(Babel 8): Remove this file\n/* eslint sort-keys: \"error\" */\n// These mappings represent the transform plugins that have been\n// shipped by browsers, and are enabled by the `shippedProposals` option.\n\nconst proposalPlugins = new Set<string>();\n\n// proposal syntax plugins enabled by the `shippedProposals` option.\n// Unlike proposalPlugins above, they are independent of compiler targets.\nconst proposalSyntaxPlugins = [\n \"syntax-import-assertions\",\n \"syntax-import-attributes\",\n] as const;\n\n// use intermediary object to enforce alphabetical key order\nconst pluginSyntaxObject = process.env.BABEL_8_BREAKING\n ? {}\n : ({\n \"transform-async-generator-functions\": \"syntax-async-generators\",\n \"transform-class-properties\": \"syntax-class-properties\",\n \"transform-class-static-block\": \"syntax-class-static-block\",\n \"transform-export-namespace-from\": \"syntax-export-namespace-from\",\n \"transform-json-strings\": \"syntax-json-strings\",\n \"transform-nullish-coalescing-operator\":\n \"syntax-nullish-coalescing-operator\",\n \"transform-numeric-separator\": \"syntax-numeric-separator\",\n \"transform-object-rest-spread\": \"syntax-object-rest-spread\",\n \"transform-optional-catch-binding\": \"syntax-optional-catch-binding\",\n \"transform-optional-chaining\": \"syntax-optional-chaining\",\n // note: we don't have syntax-private-methods\n \"transform-private-methods\": \"syntax-class-properties\",\n \"transform-private-property-in-object\":\n \"syntax-private-property-in-object\",\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n \"transform-unicode-property-regex\": null as null,\n } as const);\n\ntype PluginSyntaxObjectKeys = keyof typeof pluginSyntaxObject;\n\nconst pluginSyntaxEntries = Object.keys(pluginSyntaxObject).map<\n [PluginSyntaxObjectKeys, string | null]\n>(function (key: PluginSyntaxObjectKeys) {\n return [key, pluginSyntaxObject[key]];\n});\n\nconst pluginSyntaxMap = new Map(pluginSyntaxEntries);\n\nexport { proposalPlugins, proposalSyntaxPlugins, pluginSyntaxMap };\n"],"mappings":";;;;;;AAKA,MAAMA,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG,IAAIE,GAAG,CAAS,CAAC;AAIzC,MAAMC,qBAAqB,GAAAF,OAAA,CAAAE,qBAAA,GAAG,CAC5B,0BAA0B,EAC1B,0BAA0B,CAClB;AAGV,MAAMC,kBAAkB,GAEnB;EACC,qCAAqC,EAAE,yBAAyB;EAChE,4BAA4B,EAAE,yBAAyB;EACvD,8BAA8B,EAAE,2BAA2B;EAC3D,iCAAiC,EAAE,8BAA8B;EACjE,wBAAwB,EAAE,qBAAqB;EAC/C,uCAAuC,EACrC,oCAAoC;EACtC,6BAA6B,EAAE,0BAA0B;EACzD,8BAA8B,EAAE,2BAA2B;EAC3D,kCAAkC,EAAE,+BAA+B;EACnE,6BAA6B,EAAE,0BAA0B;EAEzD,2BAA2B,EAAE,yBAAyB;EACtD,sCAAsC,EACpC,mCAAmC;EAErC,kCAAkC,EAAE;AACtC,CAAW;AAIf,MAAMC,mBAAmB,GAAGC,MAAM,CAACC,IAAI,CAACH,kBAAkB,CAAC,CAACI,GAAG,CAE7D,UAAUC,GAA2B,EAAE;EACvC,OAAO,CAACA,GAAG,EAAEL,kBAAkB,CAACK,GAAG,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAMC,eAAe,GAAAT,OAAA,CAAAS,eAAA,GAAG,IAAIC,GAAG,CAACN,mBAAmB,CAAC","ignoreList":[]}
{"version":3,"names":["proposalPlugins","exports","Set","proposalSyntaxPlugins","pluginSyntaxObject","pluginSyntaxEntries","Object","keys","map","key","pluginSyntaxMap","Map"],"sources":["../src/shipped-proposals.ts"],"sourcesContent":["// TODO(Babel 8): Remove this file\n/* eslint sort-keys: \"error\" */\n// These mappings represent the transform plugins that have been\n// shipped by browsers, and are enabled by the `shippedProposals` option.\n\nconst proposalPlugins = new Set<string>([]);\n\n// proposal syntax plugins enabled by the `shippedProposals` option.\n// Unlike proposalPlugins above, they are independent of compiler targets.\nconst proposalSyntaxPlugins = process.env.BABEL_8_BREAKING\n ? ([] as const)\n : ([\"syntax-import-assertions\", \"syntax-import-attributes\"] as const);\n\n// use intermediary object to enforce alphabetical key order\nconst pluginSyntaxObject = process.env.BABEL_8_BREAKING\n ? {}\n : ({\n \"transform-async-generator-functions\": \"syntax-async-generators\",\n \"transform-class-properties\": \"syntax-class-properties\",\n \"transform-class-static-block\": \"syntax-class-static-block\",\n \"transform-export-namespace-from\": \"syntax-export-namespace-from\",\n \"transform-json-strings\": \"syntax-json-strings\",\n \"transform-nullish-coalescing-operator\":\n \"syntax-nullish-coalescing-operator\",\n \"transform-numeric-separator\": \"syntax-numeric-separator\",\n \"transform-object-rest-spread\": \"syntax-object-rest-spread\",\n \"transform-optional-catch-binding\": \"syntax-optional-catch-binding\",\n \"transform-optional-chaining\": \"syntax-optional-chaining\",\n // note: we don't have syntax-private-methods\n \"transform-private-methods\": \"syntax-class-properties\",\n \"transform-private-property-in-object\":\n \"syntax-private-property-in-object\",\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n \"transform-unicode-property-regex\": null as null,\n } as const);\n\ntype PluginSyntaxObjectKeys = keyof typeof pluginSyntaxObject;\n\nconst pluginSyntaxEntries = Object.keys(pluginSyntaxObject).map<\n [PluginSyntaxObjectKeys, string | null]\n>(function (key: PluginSyntaxObjectKeys) {\n return [key, pluginSyntaxObject[key]];\n});\n\nconst pluginSyntaxMap = new Map(pluginSyntaxEntries);\n\nexport { proposalPlugins, proposalSyntaxPlugins, pluginSyntaxMap };\n"],"mappings":";;;;;;AAKA,MAAMA,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG,IAAIE,GAAG,CAAS,EAAE,CAAC;AAI3C,MAAMC,qBAAqB,GAAAF,OAAA,CAAAE,qBAAA,GAEtB,CAAC,0BAA0B,EAAE,0BAA0B,CAAW;AAGvE,MAAMC,kBAAkB,GAEnB;EACC,qCAAqC,EAAE,yBAAyB;EAChE,4BAA4B,EAAE,yBAAyB;EACvD,8BAA8B,EAAE,2BAA2B;EAC3D,iCAAiC,EAAE,8BAA8B;EACjE,wBAAwB,EAAE,qBAAqB;EAC/C,uCAAuC,EACrC,oCAAoC;EACtC,6BAA6B,EAAE,0BAA0B;EACzD,8BAA8B,EAAE,2BAA2B;EAC3D,kCAAkC,EAAE,+BAA+B;EACnE,6BAA6B,EAAE,0BAA0B;EAEzD,2BAA2B,EAAE,yBAAyB;EACtD,sCAAsC,EACpC,mCAAmC;EAErC,kCAAkC,EAAE;AACtC,CAAW;AAIf,MAAMC,mBAAmB,GAAGC,MAAM,CAACC,IAAI,CAACH,kBAAkB,CAAC,CAACI,GAAG,CAE7D,UAAUC,GAA2B,EAAE;EACvC,OAAO,CAACA,GAAG,EAAEL,kBAAkB,CAACK,GAAG,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAMC,eAAe,GAAAT,OAAA,CAAAS,eAAA,GAAG,IAAIC,GAAG,CAACN,mBAAmB,CAAC","ignoreList":[]}