UNPKG

@modern-js/libuild

Version:

A tool for building modern JavaScript libraries

1,276 lines 1.11 MB
var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var stdin_exports = {}; __export(stdin_exports, { ChunkType: () => ChunkType, ErrorLevel: () => ErrorLevel, EsbuildError: () => import_esbuild.Message, ILogger: () => ILogger, LibuildError: () => LibuildError, LibuildFailure: () => LibuildFailure, Libuilder: () => Libuilder, formatError: () => formatError, insertSpace: () => insertSpace, isLibuildErrorInstance: () => isLibuildErrorInstance, toLevel: () => toLevel, transform: () => transform, warpErrors: () => warpErrors }); module.exports = __toCommonJS(stdin_exports); var import_chunk_PWETHX67 = require("./chunk-PWETHX67.js"); var import_chunk_4OWMOGCB = require("./chunk-4OWMOGCB.js"); var import_chunk_HYZYPRER = require("./chunk-HYZYPRER.js"); var import_esbuild = require("esbuild"); var import_util = __toESM(require("util")); var import_path = __toESM(require("path")); var import_fs = __toESM(require("fs")); var import_path2 = __toESM(require("path")); var import_path3 = __toESM(require("path")); var import_fs2 = __toESM(require("fs")); var import_module = __toESM(require("module")); var import_path4 = require("path"); var import_path5 = __toESM(require("path")); var import_fs3 = require("fs"); var import_path6 = __toESM(require("path")); var import_fs4 = __toESM(require("fs")); var import_fs5 = require("fs"); var import_path7 = __toESM(require("path")); var import_terser = require("terser"); var import_esbuild2 = require("esbuild"); var import_path8 = __toESM(require("path")); var import_util2 = require("util"); var require_Hook = (0, import_chunk_HYZYPRER.__commonJS)({ "../../../node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/lib/Hook.js"(exports, module22) { "use strict"; var util2 = (0, import_chunk_HYZYPRER.__require)("util"); var deprecateContext = util2.deprecate( () => { }, "Hook.context is deprecated and will be removed" ); var CALL_DELEGATE = function(...args) { this.call = this._createCall("sync"); return this.call(...args); }; var CALL_ASYNC_DELEGATE = function(...args) { this.callAsync = this._createCall("async"); return this.callAsync(...args); }; var PROMISE_DELEGATE = function(...args) { this.promise = this._createCall("promise"); return this.promise(...args); }; var Hook = class { constructor(args = [], name = void 0) { this._args = args; this.name = name; this.taps = []; this.interceptors = []; this._call = CALL_DELEGATE; this.call = CALL_DELEGATE; this._callAsync = CALL_ASYNC_DELEGATE; this.callAsync = CALL_ASYNC_DELEGATE; this._promise = PROMISE_DELEGATE; this.promise = PROMISE_DELEGATE; this._x = void 0; this.compile = this.compile; this.tap = this.tap; this.tapAsync = this.tapAsync; this.tapPromise = this.tapPromise; } compile(options) { throw new Error("Abstract: should be overridden"); } _createCall(type) { return this.compile({ taps: this.taps, interceptors: this.interceptors, args: this._args, type }); } _tap(type, options, fn) { if (typeof options === "string") { options = { name: options.trim() }; } else if (typeof options !== "object" || options === null) { throw new Error("Invalid tap options"); } if (typeof options.name !== "string" || options.name === "") { throw new Error("Missing name for tap"); } if (typeof options.context !== "undefined") { deprecateContext(); } options = Object.assign({ type, fn }, options); options = this._runRegisterInterceptors(options); this._insert(options); } tap(options, fn) { this._tap("sync", options, fn); } tapAsync(options, fn) { this._tap("async", options, fn); } tapPromise(options, fn) { this._tap("promise", options, fn); } _runRegisterInterceptors(options) { for (const interceptor of this.interceptors) { if (interceptor.register) { const newOptions = interceptor.register(options); if (newOptions !== void 0) { options = newOptions; } } } return options; } withOptions(options) { const mergeOptions = (opt) => Object.assign({}, options, typeof opt === "string" ? { name: opt } : opt); return { name: this.name, tap: (opt, fn) => this.tap(mergeOptions(opt), fn), tapAsync: (opt, fn) => this.tapAsync(mergeOptions(opt), fn), tapPromise: (opt, fn) => this.tapPromise(mergeOptions(opt), fn), intercept: (interceptor) => this.intercept(interceptor), isUsed: () => this.isUsed(), withOptions: (opt) => this.withOptions(mergeOptions(opt)) }; } isUsed() { return this.taps.length > 0 || this.interceptors.length > 0; } intercept(interceptor) { this._resetCompilation(); this.interceptors.push(Object.assign({}, interceptor)); if (interceptor.register) { for (let i = 0; i < this.taps.length; i++) { this.taps[i] = interceptor.register(this.taps[i]); } } } _resetCompilation() { this.call = this._call; this.callAsync = this._callAsync; this.promise = this._promise; } _insert(item) { this._resetCompilation(); let before; if (typeof item.before === "string") { before = /* @__PURE__ */ new Set([item.before]); } else if (Array.isArray(item.before)) { before = new Set(item.before); } let stage = 0; if (typeof item.stage === "number") { stage = item.stage; } let i = this.taps.length; while (i > 0) { i--; const x = this.taps[i]; this.taps[i + 1] = x; const xStage = x.stage || 0; if (before) { if (before.has(x.name)) { before.delete(x.name); continue; } if (before.size > 0) { continue; } } if (xStage > stage) { continue; } i++; break; } this.taps[i] = item; } }; Object.setPrototypeOf(Hook.prototype, null); module22.exports = Hook; } }); var require_HookCodeFactory = (0, import_chunk_HYZYPRER.__commonJS)({ "../../../node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/lib/HookCodeFactory.js"(exports, module22) { "use strict"; var HookCodeFactory = class { constructor(config) { this.config = config; this.options = void 0; this._args = void 0; } create(options) { this.init(options); let fn; switch (this.options.type) { case "sync": fn = new Function( this.args(), '"use strict";\n' + this.header() + this.contentWithInterceptors({ onError: (err) => `throw ${err}; `, onResult: (result) => `return ${result}; `, resultReturns: true, onDone: () => "", rethrowIfPossible: true }) ); break; case "async": fn = new Function( this.args({ after: "_callback" }), '"use strict";\n' + this.header() + this.contentWithInterceptors({ onError: (err) => `_callback(${err}); `, onResult: (result) => `_callback(null, ${result}); `, onDone: () => "_callback();\n" }) ); break; case "promise": let errorHelperUsed = false; const content = this.contentWithInterceptors({ onError: (err) => { errorHelperUsed = true; return `_error(${err}); `; }, onResult: (result) => `_resolve(${result}); `, onDone: () => "_resolve();\n" }); let code = ""; code += '"use strict";\n'; code += this.header(); code += "return new Promise((function(_resolve, _reject) {\n"; if (errorHelperUsed) { code += "var _sync = true;\n"; code += "function _error(_err) {\n"; code += "if(_sync)\n"; code += "_resolve(Promise.resolve().then((function() { throw _err; })));\n"; code += "else\n"; code += "_reject(_err);\n"; code += "};\n"; } code += content; if (errorHelperUsed) { code += "_sync = false;\n"; } code += "}));\n"; fn = new Function(this.args(), code); break; } this.deinit(); return fn; } setup(instance, options) { instance._x = options.taps.map((t) => t.fn); } /** * @param {{ type: "sync" | "promise" | "async", taps: Array<Tap>, interceptors: Array<Interceptor> }} options */ init(options) { this.options = options; this._args = options.args.slice(); } deinit() { this.options = void 0; this._args = void 0; } contentWithInterceptors(options) { if (this.options.interceptors.length > 0) { const onError = options.onError; const onResult = options.onResult; const onDone = options.onDone; let code = ""; for (let i = 0; i < this.options.interceptors.length; i++) { const interceptor = this.options.interceptors[i]; if (interceptor.call) { code += `${this.getInterceptor(i)}.call(${this.args({ before: interceptor.context ? "_context" : void 0 })}); `; } } code += this.content( Object.assign(options, { onError: onError && ((err) => { let code2 = ""; for (let i = 0; i < this.options.interceptors.length; i++) { const interceptor = this.options.interceptors[i]; if (interceptor.error) { code2 += `${this.getInterceptor(i)}.error(${err}); `; } } code2 += onError(err); return code2; }), onResult: onResult && ((result) => { let code2 = ""; for (let i = 0; i < this.options.interceptors.length; i++) { const interceptor = this.options.interceptors[i]; if (interceptor.result) { code2 += `${this.getInterceptor(i)}.result(${result}); `; } } code2 += onResult(result); return code2; }), onDone: onDone && (() => { let code2 = ""; for (let i = 0; i < this.options.interceptors.length; i++) { const interceptor = this.options.interceptors[i]; if (interceptor.done) { code2 += `${this.getInterceptor(i)}.done(); `; } } code2 += onDone(); return code2; }) }) ); return code; } else { return this.content(options); } } header() { let code = ""; if (this.needContext()) { code += "var _context = {};\n"; } else { code += "var _context;\n"; } code += "var _x = this._x;\n"; if (this.options.interceptors.length > 0) { code += "var _taps = this.taps;\n"; code += "var _interceptors = this.interceptors;\n"; } return code; } needContext() { for (const tap of this.options.taps) if (tap.context) return true; return false; } callTap(tapIndex, { onError, onResult, onDone, rethrowIfPossible }) { let code = ""; let hasTapCached = false; for (let i = 0; i < this.options.interceptors.length; i++) { const interceptor = this.options.interceptors[i]; if (interceptor.tap) { if (!hasTapCached) { code += `var _tap${tapIndex} = ${this.getTap(tapIndex)}; `; hasTapCached = true; } code += `${this.getInterceptor(i)}.tap(${interceptor.context ? "_context, " : ""}_tap${tapIndex}); `; } } code += `var _fn${tapIndex} = ${this.getTapFn(tapIndex)}; `; const tap = this.options.taps[tapIndex]; switch (tap.type) { case "sync": if (!rethrowIfPossible) { code += `var _hasError${tapIndex} = false; `; code += "try {\n"; } if (onResult) { code += `var _result${tapIndex} = _fn${tapIndex}(${this.args({ before: tap.context ? "_context" : void 0 })}); `; } else { code += `_fn${tapIndex}(${this.args({ before: tap.context ? "_context" : void 0 })}); `; } if (!rethrowIfPossible) { code += "} catch(_err) {\n"; code += `_hasError${tapIndex} = true; `; code += onError("_err"); code += "}\n"; code += `if(!_hasError${tapIndex}) { `; } if (onResult) { code += onResult(`_result${tapIndex}`); } if (onDone) { code += onDone(); } if (!rethrowIfPossible) { code += "}\n"; } break; case "async": let cbCode = ""; if (onResult) cbCode += `(function(_err${tapIndex}, _result${tapIndex}) { `; else cbCode += `(function(_err${tapIndex}) { `; cbCode += `if(_err${tapIndex}) { `; cbCode += onError(`_err${tapIndex}`); cbCode += "} else {\n"; if (onResult) { cbCode += onResult(`_result${tapIndex}`); } if (onDone) { cbCode += onDone(); } cbCode += "}\n"; cbCode += "})"; code += `_fn${tapIndex}(${this.args({ before: tap.context ? "_context" : void 0, after: cbCode })}); `; break; case "promise": code += `var _hasResult${tapIndex} = false; `; code += `var _promise${tapIndex} = _fn${tapIndex}(${this.args({ before: tap.context ? "_context" : void 0 })}); `; code += `if (!_promise${tapIndex} || !_promise${tapIndex}.then) `; code += ` throw new Error('Tap function (tapPromise) did not return promise (returned ' + _promise${tapIndex} + ')'); `; code += `_promise${tapIndex}.then((function(_result${tapIndex}) { `; code += `_hasResult${tapIndex} = true; `; if (onResult) { code += onResult(`_result${tapIndex}`); } if (onDone) { code += onDone(); } code += `}), function(_err${tapIndex}) { `; code += `if(_hasResult${tapIndex}) throw _err${tapIndex}; `; code += onError(`_err${tapIndex}`); code += "});\n"; break; } return code; } callTapsSeries({ onError, onResult, resultReturns, onDone, doneReturns, rethrowIfPossible }) { if (this.options.taps.length === 0) return onDone(); const firstAsync = this.options.taps.findIndex((t) => t.type !== "sync"); const somethingReturns = resultReturns || doneReturns; let code = ""; let current = onDone; let unrollCounter = 0; for (let j = this.options.taps.length - 1; j >= 0; j--) { const i = j; const unroll = current !== onDone && (this.options.taps[i].type !== "sync" || unrollCounter++ > 20); if (unroll) { unrollCounter = 0; code += `function _next${i}() { `; code += current(); code += `} `; current = () => `${somethingReturns ? "return " : ""}_next${i}(); `; } const done = current; const doneBreak = (skipDone) => { if (skipDone) return ""; return onDone(); }; const content = this.callTap(i, { onError: (error) => onError(i, error, done, doneBreak), onResult: onResult && ((result) => { return onResult(i, result, done, doneBreak); }), onDone: !onResult && done, rethrowIfPossible: rethrowIfPossible && (firstAsync < 0 || i < firstAsync) }); current = () => content; } code += current(); return code; } callTapsLooping({ onError, onDone, rethrowIfPossible }) { if (this.options.taps.length === 0) return onDone(); const syncOnly = this.options.taps.every((t) => t.type === "sync"); let code = ""; if (!syncOnly) { code += "var _looper = (function() {\n"; code += "var _loopAsync = false;\n"; } code += "var _loop;\n"; code += "do {\n"; code += "_loop = false;\n"; for (let i = 0; i < this.options.interceptors.length; i++) { const interceptor = this.options.interceptors[i]; if (interceptor.loop) { code += `${this.getInterceptor(i)}.loop(${this.args({ before: interceptor.context ? "_context" : void 0 })}); `; } } code += this.callTapsSeries({ onError, onResult: (i, result, next, doneBreak) => { let code2 = ""; code2 += `if(${result} !== undefined) { `; code2 += "_loop = true;\n"; if (!syncOnly) code2 += "if(_loopAsync) _looper();\n"; code2 += doneBreak(true); code2 += `} else { `; code2 += next(); code2 += `} `; return code2; }, onDone: onDone && (() => { let code2 = ""; code2 += "if(!_loop) {\n"; code2 += onDone(); code2 += "}\n"; return code2; }), rethrowIfPossible: rethrowIfPossible && syncOnly }); code += "} while(_loop);\n"; if (!syncOnly) { code += "_loopAsync = true;\n"; code += "});\n"; code += "_looper();\n"; } return code; } callTapsParallel({ onError, onResult, onDone, rethrowIfPossible, onTap = (i, run) => run() }) { if (this.options.taps.length <= 1) { return this.callTapsSeries({ onError, onResult, onDone, rethrowIfPossible }); } let code = ""; code += "do {\n"; code += `var _counter = ${this.options.taps.length}; `; if (onDone) { code += "var _done = (function() {\n"; code += onDone(); code += "});\n"; } for (let i = 0; i < this.options.taps.length; i++) { const done = () => { if (onDone) return "if(--_counter === 0) _done();\n"; else return "--_counter;"; }; const doneBreak = (skipDone) => { if (skipDone || !onDone) return "_counter = 0;\n"; else return "_counter = 0;\n_done();\n"; }; code += "if(_counter <= 0) break;\n"; code += onTap( i, () => this.callTap(i, { onError: (error) => { let code2 = ""; code2 += "if(_counter > 0) {\n"; code2 += onError(i, error, done, doneBreak); code2 += "}\n"; return code2; }, onResult: onResult && ((result) => { let code2 = ""; code2 += "if(_counter > 0) {\n"; code2 += onResult(i, result, done, doneBreak); code2 += "}\n"; return code2; }), onDone: !onResult && (() => { return done(); }), rethrowIfPossible }), done, doneBreak ); } code += "} while(false);\n"; return code; } args({ before, after } = {}) { let allArgs = this._args; if (before) allArgs = [before].concat(allArgs); if (after) allArgs = allArgs.concat(after); if (allArgs.length === 0) { return ""; } else { return allArgs.join(", "); } } getTapFn(idx) { return `_x[${idx}]`; } getTap(idx) { return `_taps[${idx}]`; } getInterceptor(idx) { return `_interceptors[${idx}]`; } }; module22.exports = HookCodeFactory; } }); var require_SyncHook = (0, import_chunk_HYZYPRER.__commonJS)({ "../../../node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/lib/SyncHook.js"(exports, module22) { "use strict"; var Hook = require_Hook(); var HookCodeFactory = require_HookCodeFactory(); var SyncHookCodeFactory = class extends HookCodeFactory { content({ onError, onDone, rethrowIfPossible }) { return this.callTapsSeries({ onError: (i, err) => onError(err), onDone, rethrowIfPossible }); } }; var factory = new SyncHookCodeFactory(); var TAP_ASYNC = () => { throw new Error("tapAsync is not supported on a SyncHook"); }; var TAP_PROMISE = () => { throw new Error("tapPromise is not supported on a SyncHook"); }; var COMPILE = function(options) { factory.setup(this, options); return factory.create(options); }; function SyncHook2(args = [], name = void 0) { const hook = new Hook(args, name); hook.constructor = SyncHook2; hook.tapAsync = TAP_ASYNC; hook.tapPromise = TAP_PROMISE; hook.compile = COMPILE; return hook; } SyncHook2.prototype = null; module22.exports = SyncHook2; } }); var require_SyncBailHook = (0, import_chunk_HYZYPRER.__commonJS)({ "../../../node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/lib/SyncBailHook.js"(exports, module22) { "use strict"; var Hook = require_Hook(); var HookCodeFactory = require_HookCodeFactory(); var SyncBailHookCodeFactory = class extends HookCodeFactory { content({ onError, onResult, resultReturns, onDone, rethrowIfPossible }) { return this.callTapsSeries({ onError: (i, err) => onError(err), onResult: (i, result, next) => `if(${result} !== undefined) { ${onResult( result )}; } else { ${next()}} `, resultReturns, onDone, rethrowIfPossible }); } }; var factory = new SyncBailHookCodeFactory(); var TAP_ASYNC = () => { throw new Error("tapAsync is not supported on a SyncBailHook"); }; var TAP_PROMISE = () => { throw new Error("tapPromise is not supported on a SyncBailHook"); }; var COMPILE = function(options) { factory.setup(this, options); return factory.create(options); }; function SyncBailHook(args = [], name = void 0) { const hook = new Hook(args, name); hook.constructor = SyncBailHook; hook.tapAsync = TAP_ASYNC; hook.tapPromise = TAP_PROMISE; hook.compile = COMPILE; return hook; } SyncBailHook.prototype = null; module22.exports = SyncBailHook; } }); var require_SyncWaterfallHook = (0, import_chunk_HYZYPRER.__commonJS)({ "../../../node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/lib/SyncWaterfallHook.js"(exports, module22) { "use strict"; var Hook = require_Hook(); var HookCodeFactory = require_HookCodeFactory(); var SyncWaterfallHookCodeFactory = class extends HookCodeFactory { content({ onError, onResult, resultReturns, rethrowIfPossible }) { return this.callTapsSeries({ onError: (i, err) => onError(err), onResult: (i, result, next) => { let code = ""; code += `if(${result} !== undefined) { `; code += `${this._args[0]} = ${result}; `; code += `} `; code += next(); return code; }, onDone: () => onResult(this._args[0]), doneReturns: resultReturns, rethrowIfPossible }); } }; var factory = new SyncWaterfallHookCodeFactory(); var TAP_ASYNC = () => { throw new Error("tapAsync is not supported on a SyncWaterfallHook"); }; var TAP_PROMISE = () => { throw new Error("tapPromise is not supported on a SyncWaterfallHook"); }; var COMPILE = function(options) { factory.setup(this, options); return factory.create(options); }; function SyncWaterfallHook(args = [], name = void 0) { if (args.length < 1) throw new Error("Waterfall hooks must have at least one argument"); const hook = new Hook(args, name); hook.constructor = SyncWaterfallHook; hook.tapAsync = TAP_ASYNC; hook.tapPromise = TAP_PROMISE; hook.compile = COMPILE; return hook; } SyncWaterfallHook.prototype = null; module22.exports = SyncWaterfallHook; } }); var require_SyncLoopHook = (0, import_chunk_HYZYPRER.__commonJS)({ "../../../node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/lib/SyncLoopHook.js"(exports, module22) { "use strict"; var Hook = require_Hook(); var HookCodeFactory = require_HookCodeFactory(); var SyncLoopHookCodeFactory = class extends HookCodeFactory { content({ onError, onDone, rethrowIfPossible }) { return this.callTapsLooping({ onError: (i, err) => onError(err), onDone, rethrowIfPossible }); } }; var factory = new SyncLoopHookCodeFactory(); var TAP_ASYNC = () => { throw new Error("tapAsync is not supported on a SyncLoopHook"); }; var TAP_PROMISE = () => { throw new Error("tapPromise is not supported on a SyncLoopHook"); }; var COMPILE = function(options) { factory.setup(this, options); return factory.create(options); }; function SyncLoopHook(args = [], name = void 0) { const hook = new Hook(args, name); hook.constructor = SyncLoopHook; hook.tapAsync = TAP_ASYNC; hook.tapPromise = TAP_PROMISE; hook.compile = COMPILE; return hook; } SyncLoopHook.prototype = null; module22.exports = SyncLoopHook; } }); var require_AsyncParallelHook = (0, import_chunk_HYZYPRER.__commonJS)({ "../../../node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/lib/AsyncParallelHook.js"(exports, module22) { "use strict"; var Hook = require_Hook(); var HookCodeFactory = require_HookCodeFactory(); var AsyncParallelHookCodeFactory = class extends HookCodeFactory { content({ onError, onDone }) { return this.callTapsParallel({ onError: (i, err, done, doneBreak) => onError(err) + doneBreak(true), onDone }); } }; var factory = new AsyncParallelHookCodeFactory(); var COMPILE = function(options) { factory.setup(this, options); return factory.create(options); }; function AsyncParallelHook(args = [], name = void 0) { const hook = new Hook(args, name); hook.constructor = AsyncParallelHook; hook.compile = COMPILE; hook._call = void 0; hook.call = void 0; return hook; } AsyncParallelHook.prototype = null; module22.exports = AsyncParallelHook; } }); var require_AsyncParallelBailHook = (0, import_chunk_HYZYPRER.__commonJS)({ "../../../node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/lib/AsyncParallelBailHook.js"(exports, module22) { "use strict"; var Hook = require_Hook(); var HookCodeFactory = require_HookCodeFactory(); var AsyncParallelBailHookCodeFactory = class extends HookCodeFactory { content({ onError, onResult, onDone }) { let code = ""; code += `var _results = new Array(${this.options.taps.length}); `; code += "var _checkDone = function() {\n"; code += "for(var i = 0; i < _results.length; i++) {\n"; code += "var item = _results[i];\n"; code += "if(item === undefined) return false;\n"; code += "if(item.result !== undefined) {\n"; code += onResult("item.result"); code += "return true;\n"; code += "}\n"; code += "if(item.error) {\n"; code += onError("item.error"); code += "return true;\n"; code += "}\n"; code += "}\n"; code += "return false;\n"; code += "}\n"; code += this.callTapsParallel({ onError: (i, err, done, doneBreak) => { let code2 = ""; code2 += `if(${i} < _results.length && ((_results.length = ${i + 1}), (_results[${i}] = { error: ${err} }), _checkDone())) { `; code2 += doneBreak(true); code2 += "} else {\n"; code2 += done(); code2 += "}\n"; return code2; }, onResult: (i, result, done, doneBreak) => { let code2 = ""; code2 += `if(${i} < _results.length && (${result} !== undefined && (_results.length = ${i + 1}), (_results[${i}] = { result: ${result} }), _checkDone())) { `; code2 += doneBreak(true); code2 += "} else {\n"; code2 += done(); code2 += "}\n"; return code2; }, onTap: (i, run, done, doneBreak) => { let code2 = ""; if (i > 0) { code2 += `if(${i} >= _results.length) { `; code2 += done(); code2 += "} else {\n"; } code2 += run(); if (i > 0) code2 += "}\n"; return code2; }, onDone }); return code; } }; var factory = new AsyncParallelBailHookCodeFactory(); var COMPILE = function(options) { factory.setup(this, options); return factory.create(options); }; function AsyncParallelBailHook(args = [], name = void 0) { const hook = new Hook(args, name); hook.constructor = AsyncParallelBailHook; hook.compile = COMPILE; hook._call = void 0; hook.call = void 0; return hook; } AsyncParallelBailHook.prototype = null; module22.exports = AsyncParallelBailHook; } }); var require_AsyncSeriesHook = (0, import_chunk_HYZYPRER.__commonJS)({ "../../../node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/lib/AsyncSeriesHook.js"(exports, module22) { "use strict"; var Hook = require_Hook(); var HookCodeFactory = require_HookCodeFactory(); var AsyncSeriesHookCodeFactory = class extends HookCodeFactory { content({ onError, onDone }) { return this.callTapsSeries({ onError: (i, err, next, doneBreak) => onError(err) + doneBreak(true), onDone }); } }; var factory = new AsyncSeriesHookCodeFactory(); var COMPILE = function(options) { factory.setup(this, options); return factory.create(options); }; function AsyncSeriesHook2(args = [], name = void 0) { const hook = new Hook(args, name); hook.constructor = AsyncSeriesHook2; hook.compile = COMPILE; hook._call = void 0; hook.call = void 0; return hook; } AsyncSeriesHook2.prototype = null; module22.exports = AsyncSeriesHook2; } }); var require_AsyncSeriesBailHook = (0, import_chunk_HYZYPRER.__commonJS)({ "../../../node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/lib/AsyncSeriesBailHook.js"(exports, module22) { "use strict"; var Hook = require_Hook(); var HookCodeFactory = require_HookCodeFactory(); var AsyncSeriesBailHookCodeFactory = class extends HookCodeFactory { content({ onError, onResult, resultReturns, onDone }) { return this.callTapsSeries({ onError: (i, err, next, doneBreak) => onError(err) + doneBreak(true), onResult: (i, result, next) => `if(${result} !== undefined) { ${onResult( result )} } else { ${next()}} `, resultReturns, onDone }); } }; var factory = new AsyncSeriesBailHookCodeFactory(); var COMPILE = function(options) { factory.setup(this, options); return factory.create(options); }; function AsyncSeriesBailHook2(args = [], name = void 0) { const hook = new Hook(args, name); hook.constructor = AsyncSeriesBailHook2; hook.compile = COMPILE; hook._call = void 0; hook.call = void 0; return hook; } AsyncSeriesBailHook2.prototype = null; module22.exports = AsyncSeriesBailHook2; } }); var require_AsyncSeriesLoopHook = (0, import_chunk_HYZYPRER.__commonJS)({ "../../../node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/lib/AsyncSeriesLoopHook.js"(exports, module22) { "use strict"; var Hook = require_Hook(); var HookCodeFactory = require_HookCodeFactory(); var AsyncSeriesLoopHookCodeFactory = class extends HookCodeFactory { content({ onError, onDone }) { return this.callTapsLooping({ onError: (i, err, next, doneBreak) => onError(err) + doneBreak(true), onDone }); } }; var factory = new AsyncSeriesLoopHookCodeFactory(); var COMPILE = function(options) { factory.setup(this, options); return factory.create(options); }; function AsyncSeriesLoopHook(args = [], name = void 0) { const hook = new Hook(args, name); hook.constructor = AsyncSeriesLoopHook; hook.compile = COMPILE; hook._call = void 0; hook.call = void 0; return hook; } AsyncSeriesLoopHook.prototype = null; module22.exports = AsyncSeriesLoopHook; } }); var require_AsyncSeriesWaterfallHook = (0, import_chunk_HYZYPRER.__commonJS)({ "../../../node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/lib/AsyncSeriesWaterfallHook.js"(exports, module22) { "use strict"; var Hook = require_Hook(); var HookCodeFactory = require_HookCodeFactory(); var AsyncSeriesWaterfallHookCodeFactory = class extends HookCodeFactory { content({ onError, onResult, onDone }) { return this.callTapsSeries({ onError: (i, err, next, doneBreak) => onError(err) + doneBreak(true), onResult: (i, result, next) => { let code = ""; code += `if(${result} !== undefined) { `; code += `${this._args[0]} = ${result}; `; code += `} `; code += next(); return code; }, onDone: () => onResult(this._args[0]) }); } }; var factory = new AsyncSeriesWaterfallHookCodeFactory(); var COMPILE = function(options) { factory.setup(this, options); return factory.create(options); }; function AsyncSeriesWaterfallHook2(args = [], name = void 0) { if (args.length < 1) throw new Error("Waterfall hooks must have at least one argument"); const hook = new Hook(args, name); hook.constructor = AsyncSeriesWaterfallHook2; hook.compile = COMPILE; hook._call = void 0; hook.call = void 0; return hook; } AsyncSeriesWaterfallHook2.prototype = null; module22.exports = AsyncSeriesWaterfallHook2; } }); var require_HookMap = (0, import_chunk_HYZYPRER.__commonJS)({ "../../../node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/lib/HookMap.js"(exports, module22) { "use strict"; var util2 = (0, import_chunk_HYZYPRER.__require)("util"); var defaultFactory = (key, hook) => hook; var HookMap = class { constructor(factory, name = void 0) { this._map = /* @__PURE__ */ new Map(); this.name = name; this._factory = factory; this._interceptors = []; } get(key) { return this._map.get(key); } for(key) { const hook = this.get(key); if (hook !== void 0) { return hook; } let newHook = this._factory(key); const interceptors = this._interceptors; for (let i = 0; i < interceptors.length; i++) { newHook = interceptors[i].factory(key, newHook); } this._map.set(key, newHook); return newHook; } intercept(interceptor) { this._interceptors.push( Object.assign( { factory: defaultFactory }, interceptor ) ); } }; HookMap.prototype.tap = util2.deprecate(function(key, options, fn) { return this.for(key).tap(options, fn); }, "HookMap#tap(key,\u2026) is deprecated. Use HookMap#for(key).tap(\u2026) instead."); HookMap.prototype.tapAsync = util2.deprecate(function(key, options, fn) { return this.for(key).tapAsync(options, fn); }, "HookMap#tapAsync(key,\u2026) is deprecated. Use HookMap#for(key).tapAsync(\u2026) instead."); HookMap.prototype.tapPromise = util2.deprecate(function(key, options, fn) { return this.for(key).tapPromise(options, fn); }, "HookMap#tapPromise(key,\u2026) is deprecated. Use HookMap#for(key).tapPromise(\u2026) instead."); module22.exports = HookMap; } }); var require_MultiHook = (0, import_chunk_HYZYPRER.__commonJS)({ "../../../node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/lib/MultiHook.js"(exports, module22) { "use strict"; var Hook = require_Hook(); var MultiHook = class { constructor(hooks, name = void 0) { this.hooks = hooks; this.name = name; } tap(options, fn) { for (const hook of this.hooks) { hook.tap(options, fn); } } tapAsync(options, fn) { for (const hook of this.hooks) { hook.tapAsync(options, fn); } } tapPromise(options, fn) { for (const hook of this.hooks) { hook.tapPromise(options, fn); } } isUsed() { for (const hook of this.hooks) { if (hook.isUsed()) return true; } return false; } intercept(interceptor) { for (const hook of this.hooks) { hook.intercept(interceptor); } } withOptions(options) { return new MultiHook( this.hooks.map((h) => h.withOptions(options)), this.name ); } }; module22.exports = MultiHook; } }); var require_lib2 = (0, import_chunk_HYZYPRER.__commonJS)({ "../../../node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/lib/index.js"(exports) { "use strict"; exports.__esModule = true; exports.SyncHook = require_SyncHook(); exports.SyncBailHook = require_SyncBailHook(); exports.SyncWaterfallHook = require_SyncWaterfallHook(); exports.SyncLoopHook = require_SyncLoopHook(); exports.AsyncParallelHook = require_AsyncParallelHook(); exports.AsyncParallelBailHook = require_AsyncParallelBailHook(); exports.AsyncSeriesHook = require_AsyncSeriesHook(); exports.AsyncSeriesBailHook = require_AsyncSeriesBailHook(); exports.AsyncSeriesLoopHook = require_AsyncSeriesLoopHook(); exports.AsyncSeriesWaterfallHook = require_AsyncSeriesWaterfallHook(); exports.HookMap = require_HookMap(); exports.MultiHook = require_MultiHook(); } }); var require_js_tokens = (0, import_chunk_HYZYPRER.__commonJS)({ "../../../node_modules/.pnpm/js-tokens@4.0.0/node_modules/js-tokens/index.js"(exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g; exports.matchToToken = function(match) { var token = { type: "invalid", value: match[0], closed: void 0 }; if (match[1]) token.type = "string", token.closed = !!(match[3] || match[4]); else if (match[5]) token.type = "comment"; else if (match[6]) token.type = "comment", token.closed = !!match[7]; else if (match[8]) token.type = "regex"; else if (match[9]) token.type = "number"; else if (match[10]) token.type = "name"; else if (match[11]) token.type = "punctuator"; else if (match[12]) token.type = "whitespace"; return token; }; } }); var require_identifier = (0, import_chunk_HYZYPRER.__commonJS)({ "../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.22.15/node_modules/@babel/helper-validator-identifier/lib/identifier.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isIdentifierChar = isIdentifierChar; exports.isIdentifierName = isIdentifierName; exports.isIdentifierStart = isIdentifierStart; var nonASCIIidentifierStartChars = "\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC"; var nonASCIIidentifierChars = "\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u