diff --git a/.github/workflows/e2e-versions.yml b/.github/workflows/e2e-versions.yml
index 47250ccca..ae920e903 100644
--- a/.github/workflows/e2e-versions.yml
+++ b/.github/workflows/e2e-versions.yml
@@ -337,3 +337,261 @@ jobs:
- name: Verify Java
run: bash __tests__/verify-java.sh "11.0.2" "${{ steps.setup-java.outputs.path }}"
shell: bash
+
+ setup-java-version-from-pom-spring-boot-specification:
+ name: ${{ matrix.distribution }} version from pom.xml - ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [macos-latest, windows-latest, ubuntu-latest]
+ distribution: ['adopt', 'zulu', 'liberica']
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Create pom.xml file
+ shell: bash
+ run: |
+ echo "" > pom.xml
+ echo "" >> pom.xml
+ echo " 4.0.0" >> pom.xml
+ echo " com.test" >> pom.xml
+ echo " Test" >> pom.xml
+ echo " 0.0.1-SNAPSHOT" >> pom.xml
+ echo " Test" >> pom.xml
+ echo " " >> pom.xml
+ echo " 11" >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " org.springframework.boot" >> pom.xml
+ echo " spring-boot-maven-plugin" >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo "" >> pom.xml
+ - name: setup-java
+ uses: ./
+ id: setup-java
+ with:
+ distribution: ${{ matrix.distribution }}
+ java-version-file: 'pom.xml'
+ - name: Verify Java
+ run: bash __tests__/verify-java.sh "11" "${{ steps.setup-java.outputs.path }}"
+ shell: bash
+
+ setup-java-version-from-pom-maven-compiler-source-specification:
+ name: ${{ matrix.distribution }} version from pom.xml - ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [macos-latest, windows-latest, ubuntu-latest]
+ distribution: ['adopt', 'zulu', 'liberica']
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Create pom.xml file
+ shell: bash
+ run: |
+ echo "" > pom.xml
+ echo "" >> pom.xml
+ echo " 4.0.0" >> pom.xml
+ echo " foo.bar" >> pom.xml
+ echo " FooBarr" >> pom.xml
+ echo " 0.0.1-SNAPSHOT" >> pom.xml
+ echo " " >> pom.xml
+ echo " 1.8" >> pom.xml
+ echo " 1.8" >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " org.apache.maven.plugins" >> pom.xml
+ echo " maven-compiler-plugin" >> pom.xml
+ echo " 3.10.1" >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo "" >> pom.xml
+ - name: setup-java
+ uses: ./
+ id: setup-java
+ with:
+ distribution: ${{ matrix.distribution }}
+ java-version-file: 'pom.xml'
+ - name: Verify Java
+ run: bash __tests__/verify-java.sh "8" "${{ steps.setup-java.outputs.path }}"
+ shell: bash
+
+ setup-java-version-from-pom-maven-compiler-release-specification:
+ name: ${{ matrix.distribution }} version from pom.xml - ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [macos-latest, windows-latest, ubuntu-latest]
+ distribution: ['adopt', 'zulu', 'liberica']
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Create pom.xml file
+ shell: bash
+ run: |
+ echo "" > pom.xml
+ echo "" >> pom.xml
+ echo " 4.0.0" >> pom.xml
+ echo " foo.bar" >> pom.xml
+ echo " FooBarr" >> pom.xml
+ echo " 0.0.1-SNAPSHOT" >> pom.xml
+ echo " " >> pom.xml
+ echo " 8" >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " org.apache.maven.plugins" >> pom.xml
+ echo " maven-compiler-plugin" >> pom.xml
+ echo " 3.10.1" >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo "" >> pom.xml
+ - name: setup-java
+ uses: ./
+ id: setup-java
+ with:
+ distribution: ${{ matrix.distribution }}
+ java-version-file: 'pom.xml'
+ - name: Verify Java
+ run: bash __tests__/verify-java.sh "8" "${{ steps.setup-java.outputs.path }}"
+ shell: bash
+ setup-java-version-from-pom-maven-compiler-plugin-configuration:
+ name: ${{ matrix.distribution }} version from pom.xml - ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [macos-latest, windows-latest, ubuntu-latest]
+ distribution: ['adopt', 'zulu', 'liberica']
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Create pom.xml file
+ shell: bash
+ run: |
+ echo "" > pom.xml
+ echo "" >> pom.xml
+ echo " 4.0.0" >> pom.xml
+ echo " foo.bar" >> pom.xml
+ echo " FooBar" >> pom.xml
+ echo " 0.0.1-SNAPSHOT" >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " org.apache.maven.plugins" >> pom.xml
+ echo " maven-compiler-plugin" >> pom.xml
+ echo " 3.10.1" >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " 1.8" >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo " " >> pom.xml
+ echo "" >> pom.xml
+ - name: setup-java
+ uses: ./
+ id: setup-java
+ with:
+ distribution: ${{ matrix.distribution }}
+ java-version-file: 'pom.xml'
+ - name: Verify Java
+ run: bash __tests__/verify-java.sh "8" "${{ steps.setup-java.outputs.path }}"
+ shell: bash
+ setup-java-version-from-build-gradle-java-library-plugin-specification:
+ name: ${{ matrix.distribution }} version from build.gradle - ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [macos-latest, windows-latest, ubuntu-latest]
+ distribution: ['adopt', 'zulu', 'liberica']
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Create build.gradle file
+ shell: bash
+ run: |
+ echo "java {" > build.gradle
+ echo " toolchain {" >> build.gradle
+ echo " languageVersion.set(JavaLanguageVersion.of(11))" >> build.gradle
+ echo " }" >> build.gradle
+ echo "}" >> build.gradle
+ - name: setup-java
+ uses: ./
+ id: setup-java
+ with:
+ distribution: ${{ matrix.distribution }}
+ java-version-file: 'build.gradle'
+ - name: Verify Java
+ run: bash __tests__/verify-java.sh "11" "${{ steps.setup-java.outputs.path }}"
+ shell: bash
+
+ setup-java-version-from-build-gradle-java-plugin-source-compatibility-specification:
+ name: ${{ matrix.distribution }} version from build.gradle - ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [macos-latest, windows-latest, ubuntu-latest]
+ distribution: ['adopt', 'zulu', 'liberica']
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Create pom.xml file
+ shell: bash
+ run: |
+ echo "java {" > build.gradle
+ echo " sourceCompatibility = JavaVersion.VERSION_1_8" >> build.gradle
+ echo " targetCompatibility = JavaVersion.VERSION_1_8" >> build.gradle
+ echo "}" >> build.gradle
+ - name: setup-java
+ uses: ./
+ id: setup-java
+ with:
+ distribution: ${{ matrix.distribution }}
+ java-version-file: 'build.gradle'
+ - name: Verify Java
+ run: bash __tests__/verify-java.sh "8" "${{ steps.setup-java.outputs.path }}"
+ shell: bash
+
+ setup-java-version-from-build-gradle-java-plugin-target-compatibility-specification:
+ name: ${{ matrix.distribution }} version from build.gradle - ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [macos-latest, windows-latest, ubuntu-latest]
+ distribution: ['adopt', 'zulu', 'liberica']
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Create pom.xml file
+ shell: bash
+ run: |
+ echo "java {" > build.gradle
+ echo " targetCompatibility = JavaVersion.VERSION_21" >> build.gradle
+ echo "}" >> build.gradle
+ - name: setup-java
+ uses: ./
+ id: setup-java
+ with:
+ distribution: ${{ matrix.distribution }}
+ java-version-file: 'build.gradle'
+ - name: Verify Java
+ run: bash __tests__/verify-java.sh "21" "${{ steps.setup-java.outputs.path }}"
+ shell: bash
diff --git a/README.md b/README.md
index d416f8334..281cd2aee 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,7 @@ This action allows you to work with Java and Scala projects.
- `java-version`: The Java version that is going to be set up. Takes a whole or [semver](#supported-version-syntax) Java version. If not specified, the action will expect `java-version-file` input to be specified.
- - `java-version-file`: The path to the `.java-version` file. See more details in [about `.java-version` file](docs/advanced-usage.md#Java-version-file).
+ - `java-version-file`: The path to the `.java-version` or `pom.xml` or `build.gradle` file. See more details in [about `.java-version` file](docs/advanced-usage.md#Java-version-file).
- `distribution`: _(required)_ Java [distribution](#supported-distributions).
diff --git a/dist/cleanup/index.js b/dist/cleanup/index.js
index 7a4f37bde..eb910901d 100644
--- a/dist/cleanup/index.js
+++ b/dist/cleanup/index.js
@@ -8272,7 +8272,7 @@ var MatchKind;
/***/ }),
-/***/ 1849:
+/***/ 1934:
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
"use strict";
@@ -8507,7 +8507,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Path = void 0;
const path = __importStar(__nccwpck_require__(1017));
-const pathHelper = __importStar(__nccwpck_require__(1849));
+const pathHelper = __importStar(__nccwpck_require__(1934));
const assert_1 = __importDefault(__nccwpck_require__(9491));
const IS_WINDOWS = process.platform === 'win32';
/**
@@ -8623,7 +8623,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.partialMatch = exports.match = exports.getSearchPaths = void 0;
-const pathHelper = __importStar(__nccwpck_require__(1849));
+const pathHelper = __importStar(__nccwpck_require__(1934));
const internal_match_kind_1 = __nccwpck_require__(1063);
const IS_WINDOWS = process.platform === 'win32';
/**
@@ -8729,7 +8729,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Pattern = void 0;
const os = __importStar(__nccwpck_require__(2037));
const path = __importStar(__nccwpck_require__(1017));
-const pathHelper = __importStar(__nccwpck_require__(1849));
+const pathHelper = __importStar(__nccwpck_require__(1934));
const assert_1 = __importDefault(__nccwpck_require__(9491));
const minimatch_1 = __nccwpck_require__(3973);
const internal_match_kind_1 = __nccwpck_require__(1063);
@@ -49201,3570 +49201,32591 @@ var __createBinding;
/***/ }),
-/***/ 7171:
+/***/ 2206:
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
"use strict";
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-var __spreadArray = (this && this.__spreadArray) || function (to, from) {
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
- to[j] = from[i];
- return to;
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.ContextAPI = void 0;
-var NoopContextManager_1 = __nccwpck_require__(4118);
-var global_utils_1 = __nccwpck_require__(5135);
-var diag_1 = __nccwpck_require__(1877);
-var API_NAME = 'context';
-var NOOP_CONTEXT_MANAGER = new NoopContextManager_1.NoopContextManager();
+var EventAlgorithm_1 = __nccwpck_require__(8217);
/**
- * Singleton object which represents the entry point to the OpenTelemetry Context API
+ * Adds an algorithm to the given abort signal.
+ *
+ * @param algorithm - an algorithm
+ * @param signal - abort signal
*/
-var ContextAPI = /** @class */ (function () {
- /** Empty private constructor prevents end users from constructing a new instance of the API */
- function ContextAPI() {
- }
- /** Get the singleton instance of the Context API */
- ContextAPI.getInstance = function () {
- if (!this._instance) {
- this._instance = new ContextAPI();
- }
- return this._instance;
- };
+function abort_add(algorithm, signal) {
/**
- * Set the current context manager.
- *
- * @returns true if the context manager was successfully registered, else false
+ * 1. If signal’s aborted flag is set, then return.
+ * 2. Append algorithm to signal’s abort algorithms.
*/
- ContextAPI.prototype.setGlobalContextManager = function (contextManager) {
- return global_utils_1.registerGlobal(API_NAME, contextManager, diag_1.DiagAPI.instance());
- };
+ if (signal._abortedFlag)
+ return;
+ signal._abortAlgorithms.add(algorithm);
+}
+exports.abort_add = abort_add;
+/**
+ * Removes an algorithm from the given abort signal.
+ *
+ * @param algorithm - an algorithm
+ * @param signal - abort signal
+ */
+function abort_remove(algorithm, signal) {
/**
- * Get the currently active context
+ * To remove an algorithm algorithm from an AbortSignal signal, remove
+ * algorithm from signal’s abort algorithms.
*/
- ContextAPI.prototype.active = function () {
- return this._getContextManager().active();
- };
+ signal._abortAlgorithms.delete(algorithm);
+}
+exports.abort_remove = abort_remove;
+/**
+ * Signals abort on the given abort signal.
+ *
+ * @param signal - abort signal
+ */
+function abort_signalAbort(signal) {
+ var e_1, _a;
/**
- * Execute a function with an active context
- *
- * @param context context to be active during function execution
- * @param fn function to execute in a context
- * @param thisArg optional receiver to be used for calling fn
- * @param args optional arguments forwarded to fn
+ * 1. If signal’s aborted flag is set, then return.
+ * 2. Set signal’s aborted flag.
+ * 3. For each algorithm in signal’s abort algorithms: run algorithm.
+ * 4. Empty signal’s abort algorithms.
+ * 5. Fire an event named abort at signal.
*/
- ContextAPI.prototype.with = function (context, fn, thisArg) {
- var _a;
- var args = [];
- for (var _i = 3; _i < arguments.length; _i++) {
- args[_i - 3] = arguments[_i];
+ if (signal._abortedFlag)
+ return;
+ signal._abortedFlag = true;
+ try {
+ for (var _b = __values(signal._abortAlgorithms), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var algorithm = _c.value;
+ algorithm.call(signal);
}
- return (_a = this._getContextManager()).with.apply(_a, __spreadArray([context, fn, thisArg], args));
- };
- /**
- * Bind a context to a target function or event emitter
- *
- * @param context context to bind to the event emitter or function. Defaults to the currently active context
- * @param target function or event emitter to bind
- */
- ContextAPI.prototype.bind = function (context, target) {
- return this._getContextManager().bind(context, target);
- };
- ContextAPI.prototype._getContextManager = function () {
- return global_utils_1.getGlobal(API_NAME) || NOOP_CONTEXT_MANAGER;
- };
- /** Disable and remove the global context manager */
- ContextAPI.prototype.disable = function () {
- this._getContextManager().disable();
- global_utils_1.unregisterGlobal(API_NAME, diag_1.DiagAPI.instance());
- };
- return ContextAPI;
-}());
-exports.ContextAPI = ContextAPI;
-//# sourceMappingURL=context.js.map
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ signal._abortAlgorithms.clear();
+ EventAlgorithm_1.event_fireAnEvent("abort", signal);
+}
+exports.abort_signalAbort = abort_signalAbort;
+//# sourceMappingURL=AbortAlgorithm.js.map
/***/ }),
-/***/ 1877:
+/***/ 5013:
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.DiagAPI = void 0;
-var ComponentLogger_1 = __nccwpck_require__(7978);
-var logLevelLogger_1 = __nccwpck_require__(9639);
-var types_1 = __nccwpck_require__(8077);
-var global_utils_1 = __nccwpck_require__(5135);
-var API_NAME = 'diag';
+var ElementAlgorithm_1 = __nccwpck_require__(1849);
/**
- * Singleton object which represents the entry point to the OpenTelemetry internal
- * diagnostic API
+ * Changes the value of an existing attribute.
+ *
+ * @param attribute - an attribute node
+ * @param value - attribute value
*/
-var DiagAPI = /** @class */ (function () {
+function attr_setAnExistingAttributeValue(attribute, value) {
/**
- * Private internal constructor
- * @private
+ * 1. If attribute’s element is null, then set attribute’s value to value.
+ * 2. Otherwise, change attribute from attribute’s element to value.
*/
- function DiagAPI() {
- function _logProxy(funcName) {
- return function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var logger = global_utils_1.getGlobal('diag');
- // shortcut if logger not set
- if (!logger)
- return;
- return logger[funcName].apply(logger, args);
- };
- }
- // Using self local variable for minification purposes as 'this' cannot be minified
- var self = this;
- // DiagAPI specific functions
- self.setLogger = function (logger, logLevel) {
- var _a, _b;
- if (logLevel === void 0) { logLevel = types_1.DiagLogLevel.INFO; }
- if (logger === self) {
- // There isn't much we can do here.
- // Logging to the console might break the user application.
- // Try to log to self. If a logger was previously registered it will receive the log.
- var err = new Error('Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation');
- self.error((_a = err.stack) !== null && _a !== void 0 ? _a : err.message);
- return false;
- }
- var oldLogger = global_utils_1.getGlobal('diag');
- var newLogger = logLevelLogger_1.createLogLevelDiagLogger(logLevel, logger);
- // There already is an logger registered. We'll let it know before overwriting it.
- if (oldLogger) {
- var stack = (_b = new Error().stack) !== null && _b !== void 0 ? _b : '';
- oldLogger.warn("Current logger will be overwritten from " + stack);
- newLogger.warn("Current logger will overwrite one already registered from " + stack);
- }
- return global_utils_1.registerGlobal('diag', newLogger, self, true);
- };
- self.disable = function () {
- global_utils_1.unregisterGlobal(API_NAME, self);
- };
- self.createComponentLogger = function (options) {
- return new ComponentLogger_1.DiagComponentLogger(options);
- };
- self.verbose = _logProxy('verbose');
- self.debug = _logProxy('debug');
- self.info = _logProxy('info');
- self.warn = _logProxy('warn');
- self.error = _logProxy('error');
+ if (attribute._element === null) {
+ attribute._value = value;
}
- /** Get the singleton instance of the DiagAPI API */
- DiagAPI.instance = function () {
- if (!this._instance) {
- this._instance = new DiagAPI();
- }
- return this._instance;
- };
- return DiagAPI;
-}());
-exports.DiagAPI = DiagAPI;
-//# sourceMappingURL=diag.js.map
+ else {
+ ElementAlgorithm_1.element_change(attribute, attribute._element, value);
+ }
+}
+exports.attr_setAnExistingAttributeValue = attr_setAnExistingAttributeValue;
+//# sourceMappingURL=AttrAlgorithm.js.map
/***/ }),
-/***/ 9909:
+/***/ 1054:
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.PropagationAPI = void 0;
-var global_utils_1 = __nccwpck_require__(5135);
-var NoopTextMapPropagator_1 = __nccwpck_require__(2368);
-var TextMapPropagator_1 = __nccwpck_require__(865);
-var context_helpers_1 = __nccwpck_require__(7682);
-var utils_1 = __nccwpck_require__(8136);
-var diag_1 = __nccwpck_require__(1877);
-var API_NAME = 'propagation';
-var NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator_1.NoopTextMapPropagator();
+var interfaces_1 = __nccwpck_require__(7305);
+var TreeAlgorithm_1 = __nccwpck_require__(6620);
/**
- * Singleton object which represents the entry point to the OpenTelemetry Propagation API
+ * Defines the position of a boundary point relative to another.
+ *
+ * @param bp - a boundary point
+ * @param relativeTo - a boundary point to compare to
*/
-var PropagationAPI = /** @class */ (function () {
- /** Empty private constructor prevents end users from constructing a new instance of the API */
- function PropagationAPI() {
- this.createBaggage = utils_1.createBaggage;
- this.getBaggage = context_helpers_1.getBaggage;
- this.setBaggage = context_helpers_1.setBaggage;
- this.deleteBaggage = context_helpers_1.deleteBaggage;
- }
- /** Get the singleton instance of the Propagator API */
- PropagationAPI.getInstance = function () {
- if (!this._instance) {
- this._instance = new PropagationAPI();
- }
- return this._instance;
- };
+function boundaryPoint_position(bp, relativeTo) {
+ var nodeA = bp[0];
+ var offsetA = bp[1];
+ var nodeB = relativeTo[0];
+ var offsetB = relativeTo[1];
/**
- * Set the current propagator.
- *
- * @returns true if the propagator was successfully registered, else false
+ * 1. Assert: nodeA and nodeB have the same root.
*/
- PropagationAPI.prototype.setGlobalPropagator = function (propagator) {
- return global_utils_1.registerGlobal(API_NAME, propagator, diag_1.DiagAPI.instance());
- };
+ console.assert(TreeAlgorithm_1.tree_rootNode(nodeA) === TreeAlgorithm_1.tree_rootNode(nodeB), "Boundary points must share the same root node.");
/**
- * Inject context into a carrier to be propagated inter-process
- *
- * @param context Context carrying tracing data to inject
- * @param carrier carrier to inject context into
- * @param setter Function used to set values on the carrier
+ * 2. If nodeA is nodeB, then return equal if offsetA is offsetB, before
+ * if offsetA is less than offsetB, and after if offsetA is greater than
+ * offsetB.
*/
- PropagationAPI.prototype.inject = function (context, carrier, setter) {
- if (setter === void 0) { setter = TextMapPropagator_1.defaultTextMapSetter; }
- return this._getGlobalPropagator().inject(context, carrier, setter);
- };
+ if (nodeA === nodeB) {
+ if (offsetA === offsetB) {
+ return interfaces_1.BoundaryPosition.Equal;
+ }
+ else if (offsetA < offsetB) {
+ return interfaces_1.BoundaryPosition.Before;
+ }
+ else {
+ return interfaces_1.BoundaryPosition.After;
+ }
+ }
/**
- * Extract context from a carrier
- *
- * @param context Context which the newly created context will inherit from
- * @param carrier Carrier to extract context from
- * @param getter Function used to extract keys from a carrier
+ * 3. If nodeA is following nodeB, then if the position of (nodeB, offsetB)
+ * relative to (nodeA, offsetA) is before, return after, and if it is after,
+ * return before.
*/
- PropagationAPI.prototype.extract = function (context, carrier, getter) {
- if (getter === void 0) { getter = TextMapPropagator_1.defaultTextMapGetter; }
- return this._getGlobalPropagator().extract(context, carrier, getter);
- };
+ if (TreeAlgorithm_1.tree_isFollowing(nodeB, nodeA)) {
+ var pos = boundaryPoint_position([nodeB, offsetB], [nodeA, offsetA]);
+ if (pos === interfaces_1.BoundaryPosition.Before) {
+ return interfaces_1.BoundaryPosition.After;
+ }
+ else if (pos === interfaces_1.BoundaryPosition.After) {
+ return interfaces_1.BoundaryPosition.Before;
+ }
+ }
/**
- * Return a list of all fields which may be used by the propagator.
+ * 4. If nodeA is an ancestor of nodeB:
*/
- PropagationAPI.prototype.fields = function () {
- return this._getGlobalPropagator().fields();
- };
- /** Remove the global propagator */
- PropagationAPI.prototype.disable = function () {
- global_utils_1.unregisterGlobal(API_NAME, diag_1.DiagAPI.instance());
- };
- PropagationAPI.prototype._getGlobalPropagator = function () {
- return global_utils_1.getGlobal(API_NAME) || NOOP_TEXT_MAP_PROPAGATOR;
- };
- return PropagationAPI;
-}());
-exports.PropagationAPI = PropagationAPI;
-//# sourceMappingURL=propagation.js.map
+ if (TreeAlgorithm_1.tree_isAncestorOf(nodeB, nodeA)) {
+ /**
+ * 4.1. Let child be nodeB.
+ * 4.2. While child is not a child of nodeA, set child to its parent.
+ * 4.3. If child’s index is less than offsetA, then return after.
+ */
+ var child = nodeB;
+ while (!TreeAlgorithm_1.tree_isChildOf(nodeA, child)) {
+ /* istanbul ignore else */
+ if (child._parent !== null) {
+ child = child._parent;
+ }
+ }
+ if (TreeAlgorithm_1.tree_index(child) < offsetA) {
+ return interfaces_1.BoundaryPosition.After;
+ }
+ }
+ /**
+ * 5. Return before.
+ */
+ return interfaces_1.BoundaryPosition.Before;
+}
+exports.boundaryPoint_position = boundaryPoint_position;
+//# sourceMappingURL=BoundaryPointAlgorithm.js.map
/***/ }),
-/***/ 1539:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+/***/ 9461:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
"use strict";
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.TraceAPI = void 0;
-var global_utils_1 = __nccwpck_require__(5135);
-var ProxyTracerProvider_1 = __nccwpck_require__(2285);
-var spancontext_utils_1 = __nccwpck_require__(9745);
-var context_utils_1 = __nccwpck_require__(3326);
-var diag_1 = __nccwpck_require__(1877);
-var API_NAME = 'trace';
+var DOMImpl_1 = __nccwpck_require__(4177);
+var util_1 = __nccwpck_require__(5282);
+var DOMException_1 = __nccwpck_require__(3166);
+var TreeAlgorithm_1 = __nccwpck_require__(6620);
+var MutationObserverAlgorithm_1 = __nccwpck_require__(8157);
+var DOMAlgorithm_1 = __nccwpck_require__(9628);
/**
- * Singleton object which represents the entry point to the OpenTelemetry Tracing API
+ * Replaces character data.
+ *
+ * @param node - a character data node
+ * @param offset - start offset
+ * @param count - count of characters to replace
+ * @param data - new data
*/
-var TraceAPI = /** @class */ (function () {
- /** Empty private constructor prevents end users from constructing a new instance of the API */
- function TraceAPI() {
- this._proxyTracerProvider = new ProxyTracerProvider_1.ProxyTracerProvider();
- this.wrapSpanContext = spancontext_utils_1.wrapSpanContext;
- this.isSpanContextValid = spancontext_utils_1.isSpanContextValid;
- this.deleteSpan = context_utils_1.deleteSpan;
- this.getSpan = context_utils_1.getSpan;
- this.getSpanContext = context_utils_1.getSpanContext;
- this.setSpan = context_utils_1.setSpan;
- this.setSpanContext = context_utils_1.setSpanContext;
+function characterData_replaceData(node, offset, count, data) {
+ var e_1, _a;
+ /**
+ * 1. Let length be node’s length.
+ * 2. If offset is greater than length, then throw an "IndexSizeError"
+ * DOMException.
+ * 3. If offset plus count is greater than length, then set count to length
+ * minus offset.
+ */
+ var length = TreeAlgorithm_1.tree_nodeLength(node);
+ if (offset > length) {
+ throw new DOMException_1.IndexSizeError("Offset exceeds character data length. Offset: " + offset + ", Length: " + length + ", Node is " + node.nodeName + ".");
+ }
+ if (offset + count > length) {
+ count = length - offset;
}
- /** Get the singleton instance of the Trace API */
- TraceAPI.getInstance = function () {
- if (!this._instance) {
- this._instance = new TraceAPI();
- }
- return this._instance;
- };
/**
- * Set the current global tracer.
- *
- * @returns true if the tracer provider was successfully registered, else false
+ * 4. Queue a mutation record of "characterData" for node with null, null,
+ * node’s data, « », « », null, and null.
*/
- TraceAPI.prototype.setGlobalTracerProvider = function (provider) {
- var success = global_utils_1.registerGlobal(API_NAME, this._proxyTracerProvider, diag_1.DiagAPI.instance());
- if (success) {
- this._proxyTracerProvider.setDelegate(provider);
+ if (DOMImpl_1.dom.features.mutationObservers) {
+ MutationObserverAlgorithm_1.observer_queueMutationRecord("characterData", node, null, null, node._data, [], [], null, null);
+ }
+ /**
+ * 5. Insert data into node’s data after offset code units.
+ * 6. Let delete offset be offset + data’s length.
+ * 7. Starting from delete offset code units, remove count code units from
+ * node’s data.
+ */
+ var newData = node._data.substring(0, offset) + data +
+ node._data.substring(offset + count);
+ node._data = newData;
+ try {
+ /**
+ * 8. For each live range whose start node is node and start offset is
+ * greater than offset but less than or equal to offset plus count, set its
+ * start offset to offset.
+ * 9. For each live range whose end node is node and end offset is greater
+ * than offset but less than or equal to offset plus count, set its end
+ * offset to offset.
+ * 10. For each live range whose start node is node and start offset is
+ * greater than offset plus count, increase its start offset by data’s
+ * length and decrease it by count.
+ * 11. For each live range whose end node is node and end offset is greater
+ * than offset plus count, increase its end offset by data’s length and
+ * decrease it by count.
+ */
+ for (var _b = __values(DOMImpl_1.dom.rangeList), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var range = _c.value;
+ if (range._start[0] === node && range._start[1] > offset && range._start[1] <= offset + count) {
+ range._start[1] = offset;
+ }
+ if (range._end[0] === node && range._end[1] > offset && range._end[1] <= offset + count) {
+ range._end[1] = offset;
+ }
+ if (range._start[0] === node && range._start[1] > offset + count) {
+ range._start[1] += data.length - count;
+ }
+ if (range._end[0] === node && range._end[1] > offset + count) {
+ range._end[1] += data.length - count;
+ }
}
- return success;
- };
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
/**
- * Returns the global tracer provider.
+ * 12. If node is a Text node and its parent is not null, run the child
+ * text content change steps for node’s parent.
*/
- TraceAPI.prototype.getTracerProvider = function () {
- return global_utils_1.getGlobal(API_NAME) || this._proxyTracerProvider;
- };
+ if (DOMImpl_1.dom.features.steps) {
+ if (util_1.Guard.isTextNode(node) && node._parent !== null) {
+ DOMAlgorithm_1.dom_runChildTextContentChangeSteps(node._parent);
+ }
+ }
+}
+exports.characterData_replaceData = characterData_replaceData;
+/**
+ * Returns `count` number of characters from `node`'s data starting at
+ * the given `offset`.
+ *
+ * @param node - a character data node
+ * @param offset - start offset
+ * @param count - count of characters to return
+ */
+function characterData_substringData(node, offset, count) {
/**
- * Returns a tracer from the global tracer provider.
+ * 1. Let length be node’s length.
+ * 2. If offset is greater than length, then throw an "IndexSizeError"
+ * DOMException.
+ * 3. If offset plus count is greater than length, return a string whose
+ * value is the code units from the offsetth code unit to the end of node’s
+ * data, and then return.
+ * 4. Return a string whose value is the code units from the offsetth code
+ * unit to the offset+countth code unit in node’s data.
*/
- TraceAPI.prototype.getTracer = function (name, version) {
- return this.getTracerProvider().getTracer(name, version);
- };
- /** Remove the global tracer provider */
- TraceAPI.prototype.disable = function () {
- global_utils_1.unregisterGlobal(API_NAME, diag_1.DiagAPI.instance());
- this._proxyTracerProvider = new ProxyTracerProvider_1.ProxyTracerProvider();
- };
- return TraceAPI;
-}());
-exports.TraceAPI = TraceAPI;
-//# sourceMappingURL=trace.js.map
+ var length = TreeAlgorithm_1.tree_nodeLength(node);
+ if (offset > length) {
+ throw new DOMException_1.IndexSizeError("Offset exceeds character data length. Offset: " + offset + ", Length: " + length + ", Node is " + node.nodeName + ".");
+ }
+ if (offset + count > length) {
+ return node._data.substr(offset);
+ }
+ else {
+ return node._data.substr(offset, count);
+ }
+}
+exports.characterData_substringData = characterData_substringData;
+//# sourceMappingURL=CharacterDataAlgorithm.js.map
/***/ }),
-/***/ 7682:
+/***/ 7339:
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
-/*
- * Copyright The OpenTelemetry Authors
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMImplementationImpl_1 = __nccwpck_require__(2197);
+var WindowImpl_1 = __nccwpck_require__(9067);
+var XMLDocumentImpl_1 = __nccwpck_require__(1685);
+var DocumentImpl_1 = __nccwpck_require__(4333);
+var AbortControllerImpl_1 = __nccwpck_require__(6461);
+var AbortSignalImpl_1 = __nccwpck_require__(6077);
+var DocumentTypeImpl_1 = __nccwpck_require__(3173);
+var ElementImpl_1 = __nccwpck_require__(5975);
+var DocumentFragmentImpl_1 = __nccwpck_require__(2585);
+var ShadowRootImpl_1 = __nccwpck_require__(1911);
+var AttrImpl_1 = __nccwpck_require__(7875);
+var TextImpl_1 = __nccwpck_require__(2191);
+var CDATASectionImpl_1 = __nccwpck_require__(3977);
+var CommentImpl_1 = __nccwpck_require__(930);
+var ProcessingInstructionImpl_1 = __nccwpck_require__(9430);
+var HTMLCollectionImpl_1 = __nccwpck_require__(3969);
+var NodeListImpl_1 = __nccwpck_require__(3728);
+var NodeListStaticImpl_1 = __nccwpck_require__(5306);
+var NamedNodeMapImpl_1 = __nccwpck_require__(7206);
+var RangeImpl_1 = __nccwpck_require__(166);
+var NodeIteratorImpl_1 = __nccwpck_require__(1997);
+var TreeWalkerImpl_1 = __nccwpck_require__(9261);
+var NodeFilterImpl_1 = __nccwpck_require__(2355);
+var MutationRecordImpl_1 = __nccwpck_require__(6219);
+var DOMTokenListImpl_1 = __nccwpck_require__(5096);
+/**
+ * Creates a `DOMImplementation`.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * @param document - associated document
+ */
+function create_domImplementation(document) {
+ return DOMImplementationImpl_1.DOMImplementationImpl._create(document);
+}
+exports.create_domImplementation = create_domImplementation;
+/**
+ * Creates a `Window` node.
+ */
+function create_window() {
+ return WindowImpl_1.WindowImpl._create();
+}
+exports.create_window = create_window;
+/**
+ * Creates an `XMLDocument` node.
+ */
+function create_xmlDocument() {
+ return new XMLDocumentImpl_1.XMLDocumentImpl();
+}
+exports.create_xmlDocument = create_xmlDocument;
+/**
+ * Creates a `Document` node.
+ */
+function create_document() {
+ return new DocumentImpl_1.DocumentImpl();
+}
+exports.create_document = create_document;
+/**
+ * Creates an `AbortController`.
+ */
+function create_abortController() {
+ return new AbortControllerImpl_1.AbortControllerImpl();
+}
+exports.create_abortController = create_abortController;
+/**
+ * Creates an `AbortSignal`.
+ */
+function create_abortSignal() {
+ return AbortSignalImpl_1.AbortSignalImpl._create();
+}
+exports.create_abortSignal = create_abortSignal;
+/**
+ * Creates a `DocumentType` node.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param document - owner document
+ * @param name - name of the node
+ * @param publicId - `PUBLIC` identifier
+ * @param systemId - `SYSTEM` identifier
+ */
+function create_documentType(document, name, publicId, systemId) {
+ return DocumentTypeImpl_1.DocumentTypeImpl._create(document, name, publicId, systemId);
+}
+exports.create_documentType = create_documentType;
+/**
+ * Creates a new `Element` node.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param document - owner document
+ * @param localName - local name
+ * @param namespace - namespace
+ * @param prefix - namespace prefix
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.deleteBaggage = exports.setBaggage = exports.getBaggage = void 0;
-var context_1 = __nccwpck_require__(8242);
+function create_element(document, localName, namespace, prefix) {
+ return ElementImpl_1.ElementImpl._create(document, localName, namespace, prefix);
+}
+exports.create_element = create_element;
/**
- * Baggage key
+ * Creates a new `HTMLElement` node.
+ *
+ * @param document - owner document
+ * @param localName - local name
+ * @param namespace - namespace
+ * @param prefix - namespace prefix
*/
-var BAGGAGE_KEY = context_1.createContextKey('OpenTelemetry Baggage Key');
+function create_htmlElement(document, localName, namespace, prefix) {
+ // TODO: Implement in HTML DOM
+ return ElementImpl_1.ElementImpl._create(document, localName, namespace, prefix);
+}
+exports.create_htmlElement = create_htmlElement;
/**
- * Retrieve the current baggage from the given context
+ * Creates a new `HTMLUnknownElement` node.
*
- * @param {Context} Context that manage all context values
- * @returns {Baggage} Extracted baggage from the context
+ * @param document - owner document
+ * @param localName - local name
+ * @param namespace - namespace
+ * @param prefix - namespace prefix
*/
-function getBaggage(context) {
- return context.getValue(BAGGAGE_KEY) || undefined;
+function create_htmlUnknownElement(document, localName, namespace, prefix) {
+ // TODO: Implement in HTML DOM
+ return ElementImpl_1.ElementImpl._create(document, localName, namespace, prefix);
}
-exports.getBaggage = getBaggage;
+exports.create_htmlUnknownElement = create_htmlUnknownElement;
/**
- * Store a baggage in the given context
+ * Creates a new `DocumentFragment` node.
*
- * @param {Context} Context that manage all context values
- * @param {Baggage} baggage that will be set in the actual context
+ * @param document - owner document
*/
-function setBaggage(context, baggage) {
- return context.setValue(BAGGAGE_KEY, baggage);
+function create_documentFragment(document) {
+ return DocumentFragmentImpl_1.DocumentFragmentImpl._create(document);
}
-exports.setBaggage = setBaggage;
+exports.create_documentFragment = create_documentFragment;
/**
- * Delete the baggage stored in the given context
+ * Creates a new `ShadowRoot` node.
*
- * @param {Context} Context that manage all context values
+ * @param document - owner document
+ * @param host - shadow root's host element node
*/
-function deleteBaggage(context) {
- return context.deleteValue(BAGGAGE_KEY);
+function create_shadowRoot(document, host) {
+ return ShadowRootImpl_1.ShadowRootImpl._create(document, host);
}
-exports.deleteBaggage = deleteBaggage;
-//# sourceMappingURL=context-helpers.js.map
-
-/***/ }),
-
-/***/ 4811:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
+exports.create_shadowRoot = create_shadowRoot;
+/**
+ * Creates a new `Attr` node.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * @param document - owner document
+ * @param localName - local name
+ */
+function create_attr(document, localName) {
+ return AttrImpl_1.AttrImpl._create(document, localName);
+}
+exports.create_attr = create_attr;
+/**
+ * Creates a new `Text` node.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param document - owner document
+ * @param data - node contents
+ */
+function create_text(document, data) {
+ return TextImpl_1.TextImpl._create(document, data);
+}
+exports.create_text = create_text;
+/**
+ * Creates a new `CDATASection` node.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param document - owner document
+ * @param data - node contents
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.BaggageImpl = void 0;
-var BaggageImpl = /** @class */ (function () {
- function BaggageImpl(entries) {
- this._entries = entries ? new Map(entries) : new Map();
- }
- BaggageImpl.prototype.getEntry = function (key) {
- var entry = this._entries.get(key);
- if (!entry) {
- return undefined;
- }
- return Object.assign({}, entry);
- };
- BaggageImpl.prototype.getAllEntries = function () {
- return Array.from(this._entries.entries()).map(function (_a) {
- var k = _a[0], v = _a[1];
- return [k, v];
- });
- };
- BaggageImpl.prototype.setEntry = function (key, entry) {
- var newBaggage = new BaggageImpl(this._entries);
- newBaggage._entries.set(key, entry);
- return newBaggage;
- };
- BaggageImpl.prototype.removeEntry = function (key) {
- var newBaggage = new BaggageImpl(this._entries);
- newBaggage._entries.delete(key);
- return newBaggage;
- };
- BaggageImpl.prototype.removeEntries = function () {
- var keys = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- keys[_i] = arguments[_i];
- }
- var newBaggage = new BaggageImpl(this._entries);
- for (var _a = 0, keys_1 = keys; _a < keys_1.length; _a++) {
- var key = keys_1[_a];
- newBaggage._entries.delete(key);
- }
- return newBaggage;
- };
- BaggageImpl.prototype.clear = function () {
- return new BaggageImpl();
- };
- return BaggageImpl;
-}());
-exports.BaggageImpl = BaggageImpl;
-//# sourceMappingURL=baggage-impl.js.map
-
-/***/ }),
-
-/***/ 3542:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
+function create_cdataSection(document, data) {
+ return CDATASectionImpl_1.CDATASectionImpl._create(document, data);
+}
+exports.create_cdataSection = create_cdataSection;
+/**
+ * Creates a new `Comment` node.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * @param document - owner document
+ * @param data - node contents
+ */
+function create_comment(document, data) {
+ return CommentImpl_1.CommentImpl._create(document, data);
+}
+exports.create_comment = create_comment;
+/**
+ * Creates a new `ProcessingInstruction` node.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param document - owner document
+ * @param target - instruction target
+ * @param data - node contents
+ */
+function create_processingInstruction(document, target, data) {
+ return ProcessingInstructionImpl_1.ProcessingInstructionImpl._create(document, target, data);
+}
+exports.create_processingInstruction = create_processingInstruction;
+/**
+ * Creates a new `HTMLCollection`.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param root - root node
+ * @param filter - node filter
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.baggageEntryMetadataSymbol = void 0;
+function create_htmlCollection(root, filter) {
+ if (filter === void 0) { filter = (function () { return true; }); }
+ return HTMLCollectionImpl_1.HTMLCollectionImpl._create(root, filter);
+}
+exports.create_htmlCollection = create_htmlCollection;
/**
- * Symbol used to make BaggageEntryMetadata an opaque type
+ * Creates a new live `NodeList`.
+ *
+ * @param root - root node
*/
-exports.baggageEntryMetadataSymbol = Symbol('BaggageEntryMetadata');
-//# sourceMappingURL=symbol.js.map
-
-/***/ }),
-
-/***/ 1508:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
+function create_nodeList(root) {
+ return NodeListImpl_1.NodeListImpl._create(root);
+}
+exports.create_nodeList = create_nodeList;
+/**
+ * Creates a new static `NodeList`.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * @param root - root node
+ * @param items - a list of items to initialize the list
+ */
+function create_nodeListStatic(root, items) {
+ return NodeListStaticImpl_1.NodeListStaticImpl._create(root, items);
+}
+exports.create_nodeListStatic = create_nodeListStatic;
+/**
+ * Creates a new `NamedNodeMap`.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param element - parent element
+ */
+function create_namedNodeMap(element) {
+ return NamedNodeMapImpl_1.NamedNodeMapImpl._create(element);
+}
+exports.create_namedNodeMap = create_namedNodeMap;
+/**
+ * Creates a new `Range`.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param start - start point
+ * @param end - end point
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=types.js.map
+function create_range(start, end) {
+ return RangeImpl_1.RangeImpl._create(start, end);
+}
+exports.create_range = create_range;
+/**
+ * Creates a new `NodeIterator`.
+ *
+ * @param root - iterator's root node
+ * @param reference - reference node
+ * @param pointerBeforeReference - whether the iterator is before or after the
+ * reference node
+ */
+function create_nodeIterator(root, reference, pointerBeforeReference) {
+ return NodeIteratorImpl_1.NodeIteratorImpl._create(root, reference, pointerBeforeReference);
+}
+exports.create_nodeIterator = create_nodeIterator;
+/**
+ * Creates a new `TreeWalker`.
+ *
+ * @param root - iterator's root node
+ * @param current - current node
+ */
+function create_treeWalker(root, current) {
+ return TreeWalkerImpl_1.TreeWalkerImpl._create(root, current);
+}
+exports.create_treeWalker = create_treeWalker;
+/**
+ * Creates a new `NodeFilter`.
+ */
+function create_nodeFilter() {
+ return NodeFilterImpl_1.NodeFilterImpl._create();
+}
+exports.create_nodeFilter = create_nodeFilter;
+/**
+ * Creates a new `MutationRecord`.
+ *
+ * @param type - type of mutation: `"attributes"` for an attribute
+ * mutation, `"characterData"` for a mutation to a CharacterData node
+ * and `"childList"` for a mutation to the tree of nodes.
+ * @param target - node affected by the mutation.
+ * @param addedNodes - list of added nodes.
+ * @param removedNodes - list of removed nodes.
+ * @param previousSibling - previous sibling of added or removed nodes.
+ * @param nextSibling - next sibling of added or removed nodes.
+ * @param attributeName - local name of the changed attribute,
+ * and `null` otherwise.
+ * @param attributeNamespace - namespace of the changed attribute,
+ * and `null` otherwise.
+ * @param oldValue - value before mutation: attribute value for an attribute
+ * mutation, node `data` for a mutation to a CharacterData node and `null`
+ * for a mutation to the tree of nodes.
+ */
+function create_mutationRecord(type, target, addedNodes, removedNodes, previousSibling, nextSibling, attributeName, attributeNamespace, oldValue) {
+ return MutationRecordImpl_1.MutationRecordImpl._create(type, target, addedNodes, removedNodes, previousSibling, nextSibling, attributeName, attributeNamespace, oldValue);
+}
+exports.create_mutationRecord = create_mutationRecord;
+/**
+ * Creates a new `DOMTokenList`.
+ *
+ * @param element - associated element
+ * @param attribute - associated attribute
+ */
+function create_domTokenList(element, attribute) {
+ return DOMTokenListImpl_1.DOMTokenListImpl._create(element, attribute);
+}
+exports.create_domTokenList = create_domTokenList;
+//# sourceMappingURL=CreateAlgorithm.js.map
/***/ }),
-/***/ 8136:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+/***/ 5648:
+/***/ ((__unused_webpack_module, exports) => {
"use strict";
-/*
- * Copyright The OpenTelemetry Authors
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var PotentialCustomElementName = /[a-z]([\0-\t\x2D\._a-z\xB7\xC0-\xD6\xD8-\xF6\xF8-\u037D\u037F-\u1FFF\u200C\u200D\u203F\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])*-([\0-\t\x2D\._a-z\xB7\xC0-\xD6\xD8-\xF6\xF8-\u037D\u037F-\u1FFF\u200C\u200D\u203F\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])*/;
+var NamesWithHyphen = new Set(['annotation-xml', 'color-profile',
+ 'font-face', 'font-face-src', 'font-face-uri', 'font-face-format',
+ 'font-face-name', 'missing-glyph']);
+var ElementNames = new Set(['article', 'aside', 'blockquote',
+ 'body', 'div', 'footer', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
+ 'header', 'main', 'nav', 'p', 'section', 'span']);
+var VoidElementNames = new Set(['area', 'base', 'basefont',
+ 'bgsound', 'br', 'col', 'embed', 'frame', 'hr', 'img', 'input', 'keygen',
+ 'link', 'menuitem', 'meta', 'param', 'source', 'track', 'wbr']);
+var ShadowHostNames = new Set(['article', 'aside', 'blockquote', 'body',
+ 'div', 'footer', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'main',
+ 'nav', 'p', 'section', 'span']);
+/**
+ * Determines if the given string is a valid custom element name.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * @param name - a name string
+ */
+function customElement_isValidCustomElementName(name) {
+ if (!PotentialCustomElementName.test(name))
+ return false;
+ if (NamesWithHyphen.has(name))
+ return false;
+ return true;
+}
+exports.customElement_isValidCustomElementName = customElement_isValidCustomElementName;
+/**
+ * Determines if the given string is a valid element name.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param name - a name string
+ */
+function customElement_isValidElementName(name) {
+ return (ElementNames.has(name));
+}
+exports.customElement_isValidElementName = customElement_isValidElementName;
+/**
+ * Determines if the given string is a void element name.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param name - a name string
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.baggageEntryMetadataFromString = exports.createBaggage = void 0;
-var diag_1 = __nccwpck_require__(1877);
-var baggage_impl_1 = __nccwpck_require__(4811);
-var symbol_1 = __nccwpck_require__(3542);
-var diag = diag_1.DiagAPI.instance();
+function customElement_isVoidElementName(name) {
+ return (VoidElementNames.has(name));
+}
+exports.customElement_isVoidElementName = customElement_isVoidElementName;
/**
- * Create a new Baggage with optional entries
+ * Determines if the given string is a valid shadow host element name.
*
- * @param entries An array of baggage entries the new baggage should contain
+ * @param name - a name string
*/
-function createBaggage(entries) {
- if (entries === void 0) { entries = {}; }
- return new baggage_impl_1.BaggageImpl(new Map(Object.entries(entries)));
+function customElement_isValidShadowHostName(name) {
+ return (ShadowHostNames.has(name));
}
-exports.createBaggage = createBaggage;
+exports.customElement_isValidShadowHostName = customElement_isValidShadowHostName;
/**
- * Create a serializable BaggageEntryMetadata object from a string.
+ * Enqueues an upgrade reaction for a custom element.
*
- * @param str string metadata. Format is currently not defined by the spec and has no special meaning.
+ * @param element - a custom element
+ * @param definition - a custom element definition
+ */
+function customElement_enqueueACustomElementUpgradeReaction(element, definition) {
+ // TODO: Implement in HTML DOM
+}
+exports.customElement_enqueueACustomElementUpgradeReaction = customElement_enqueueACustomElementUpgradeReaction;
+/**
+ * Enqueues a callback reaction for a custom element.
*
+ * @param element - a custom element
+ * @param callbackName - name of the callback
+ * @param args - callback arguments
*/
-function baggageEntryMetadataFromString(str) {
- if (typeof str !== 'string') {
- diag.error("Cannot create baggage metadata from unknown type: " + typeof str);
- str = '';
- }
- return {
- __TYPE__: symbol_1.baggageEntryMetadataSymbol,
- toString: function () {
- return str;
- },
- };
+function customElement_enqueueACustomElementCallbackReaction(element, callbackName, args) {
+ // TODO: Implement in HTML DOM
}
-exports.baggageEntryMetadataFromString = baggageEntryMetadataFromString;
-//# sourceMappingURL=utils.js.map
-
-/***/ }),
-
-/***/ 4447:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
+exports.customElement_enqueueACustomElementCallbackReaction = customElement_enqueueACustomElementCallbackReaction;
+/**
+ * Upgrade a custom element.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * @param element - a custom element
+ */
+function customElement_upgrade(definition, element) {
+ // TODO: Implement in HTML DOM
+}
+exports.customElement_upgrade = customElement_upgrade;
+/**
+ * Tries to upgrade a custom element.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param element - a custom element
+ */
+function customElement_tryToUpgrade(element) {
+ // TODO: Implement in HTML DOM
+}
+exports.customElement_tryToUpgrade = customElement_tryToUpgrade;
+/**
+ * Looks up a custom element definition.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param document - a document
+ * @param namespace - element namespace
+ * @param localName - element local name
+ * @param is - an `is` value
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=Exception.js.map
-
-/***/ }),
-
-/***/ 2358:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=Time.js.map
+function customElement_lookUpACustomElementDefinition(document, namespace, localName, is) {
+ // TODO: Implement in HTML DOM
+ return null;
+}
+exports.customElement_lookUpACustomElementDefinition = customElement_lookUpACustomElementDefinition;
+//# sourceMappingURL=CustomElementAlgorithm.js.map
/***/ }),
-/***/ 4118:
+/***/ 9628:
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
"use strict";
-/*
- * Copyright The OpenTelemetry Authors
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMImpl_1 = __nccwpck_require__(4177);
+var TreeAlgorithm_1 = __nccwpck_require__(6620);
+var util_1 = __nccwpck_require__(5282);
+var ShadowTreeAlgorithm_1 = __nccwpck_require__(8733);
+var supportedTokens = new Map();
+/**
+ * Runs removing steps for node.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * @param removedNode - removed node
+ * @param oldParent - old parent node
+ */
+function dom_runRemovingSteps(removedNode, oldParent) {
+ // No steps defined
+}
+exports.dom_runRemovingSteps = dom_runRemovingSteps;
+/**
+ * Runs cloning steps for node.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param copy - node clone
+ * @param node - node
+ * @param document - document to own the cloned node
+ * @param cloneChildrenFlag - whether child nodes are cloned
+ */
+function dom_runCloningSteps(copy, node, document, cloneChildrenFlag) {
+ // No steps defined
+}
+exports.dom_runCloningSteps = dom_runCloningSteps;
+/**
+ * Runs adopting steps for node.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param node - node
+ * @param oldDocument - old document
*/
-var __spreadArray = (this && this.__spreadArray) || function (to, from) {
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
- to[j] = from[i];
- return to;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.NoopContextManager = void 0;
-var context_1 = __nccwpck_require__(8242);
-var NoopContextManager = /** @class */ (function () {
- function NoopContextManager() {
+function dom_runAdoptingSteps(node, oldDocument) {
+ // No steps defined
+}
+exports.dom_runAdoptingSteps = dom_runAdoptingSteps;
+/**
+ * Runs attribute change steps for an element node.
+ *
+ * @param element - element node owning the attribute
+ * @param localName - attribute's local name
+ * @param oldValue - attribute's old value
+ * @param value - attribute's new value
+ * @param namespace - attribute's namespace
+ */
+function dom_runAttributeChangeSteps(element, localName, oldValue, value, namespace) {
+ var e_1, _a;
+ // run default steps
+ if (DOMImpl_1.dom.features.slots) {
+ updateASlotablesName.call(element, element, localName, oldValue, value, namespace);
+ updateASlotsName.call(element, element, localName, oldValue, value, namespace);
}
- NoopContextManager.prototype.active = function () {
- return context_1.ROOT_CONTEXT;
- };
- NoopContextManager.prototype.with = function (_context, fn, thisArg) {
- var args = [];
- for (var _i = 3; _i < arguments.length; _i++) {
- args[_i - 3] = arguments[_i];
+ updateAnElementID.call(element, element, localName, value, namespace);
+ try {
+ // run custom steps
+ for (var _b = __values(element._attributeChangeSteps), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var step = _c.value;
+ step.call(element, element, localName, oldValue, value, namespace);
}
- return fn.call.apply(fn, __spreadArray([thisArg], args));
- };
- NoopContextManager.prototype.bind = function (_context, target) {
- return target;
- };
- NoopContextManager.prototype.enable = function () {
- return this;
- };
- NoopContextManager.prototype.disable = function () {
- return this;
- };
- return NoopContextManager;
-}());
-exports.NoopContextManager = NoopContextManager;
-//# sourceMappingURL=NoopContextManager.js.map
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+}
+exports.dom_runAttributeChangeSteps = dom_runAttributeChangeSteps;
+/**
+ * Runs insertion steps for a node.
+ *
+ * @param insertedNode - inserted node
+ */
+function dom_runInsertionSteps(insertedNode) {
+ // No steps defined
+}
+exports.dom_runInsertionSteps = dom_runInsertionSteps;
+/**
+ * Runs pre-removing steps for a node iterator and node.
+ *
+ * @param nodeIterator - a node iterator
+ * @param toBeRemoved - node to be removed
+ */
+function dom_runNodeIteratorPreRemovingSteps(nodeIterator, toBeRemoved) {
+ removeNodeIterator.call(nodeIterator, nodeIterator, toBeRemoved);
+}
+exports.dom_runNodeIteratorPreRemovingSteps = dom_runNodeIteratorPreRemovingSteps;
+/**
+ * Determines if there are any supported tokens defined for the given
+ * attribute name.
+ *
+ * @param attributeName - an attribute name
+ */
+function dom_hasSupportedTokens(attributeName) {
+ return supportedTokens.has(attributeName);
+}
+exports.dom_hasSupportedTokens = dom_hasSupportedTokens;
+/**
+ * Returns the set of supported tokens defined for the given attribute name.
+ *
+ * @param attributeName - an attribute name
+ */
+function dom_getSupportedTokens(attributeName) {
+ return supportedTokens.get(attributeName) || new Set();
+}
+exports.dom_getSupportedTokens = dom_getSupportedTokens;
+/**
+ * Runs event construction steps.
+ *
+ * @param event - an event
+ */
+function dom_runEventConstructingSteps(event) {
+ // No steps defined
+}
+exports.dom_runEventConstructingSteps = dom_runEventConstructingSteps;
+/**
+ * Runs child text content change steps for a parent node.
+ *
+ * @param parent - parent node with text node child nodes
+ */
+function dom_runChildTextContentChangeSteps(parent) {
+ // No steps defined
+}
+exports.dom_runChildTextContentChangeSteps = dom_runChildTextContentChangeSteps;
+/**
+ * Defines pre-removing steps for a node iterator.
+ */
+function removeNodeIterator(nodeIterator, toBeRemovedNode) {
+ /**
+ * 1. If toBeRemovedNode is not an inclusive ancestor of nodeIterator’s
+ * reference, or toBeRemovedNode is nodeIterator’s root, then return.
+ */
+ if (toBeRemovedNode === nodeIterator._root ||
+ !TreeAlgorithm_1.tree_isAncestorOf(nodeIterator._reference, toBeRemovedNode, true)) {
+ return;
+ }
+ /**
+ * 2. If nodeIterator’s pointer before reference is true, then:
+ */
+ if (nodeIterator._pointerBeforeReference) {
+ /**
+ * 2.1. Let next be toBeRemovedNode’s first following node that is an
+ * inclusive descendant of nodeIterator’s root and is not an inclusive
+ * descendant of toBeRemovedNode, and null if there is no such node.
+ */
+ while (true) {
+ var nextNode = TreeAlgorithm_1.tree_getFollowingNode(nodeIterator._root, toBeRemovedNode);
+ if (nextNode !== null &&
+ TreeAlgorithm_1.tree_isDescendantOf(nodeIterator._root, nextNode, true) &&
+ !TreeAlgorithm_1.tree_isDescendantOf(toBeRemovedNode, nextNode, true)) {
+ /**
+ * 2.2. If next is non-null, then set nodeIterator’s reference to next
+ * and return.
+ */
+ nodeIterator._reference = nextNode;
+ return;
+ }
+ else if (nextNode === null) {
+ /**
+ * 2.3. Otherwise, set nodeIterator’s pointer before reference to false.
+ */
+ nodeIterator._pointerBeforeReference = false;
+ return;
+ }
+ }
+ }
+ /**
+ * 3. Set nodeIterator’s reference to toBeRemovedNode’s parent, if
+ * toBeRemovedNode’s previous sibling is null, and to the inclusive
+ * descendant of toBeRemovedNode’s previous sibling that appears last in
+ * tree order otherwise.
+ */
+ if (toBeRemovedNode._previousSibling === null) {
+ if (toBeRemovedNode._parent !== null) {
+ nodeIterator._reference = toBeRemovedNode._parent;
+ }
+ }
+ else {
+ var referenceNode = toBeRemovedNode._previousSibling;
+ var childNode = TreeAlgorithm_1.tree_getFirstDescendantNode(toBeRemovedNode._previousSibling, true, false);
+ while (childNode !== null) {
+ if (childNode !== null) {
+ referenceNode = childNode;
+ }
+ // loop through to get the last descendant node
+ childNode = TreeAlgorithm_1.tree_getNextDescendantNode(toBeRemovedNode._previousSibling, childNode, true, false);
+ }
+ nodeIterator._reference = referenceNode;
+ }
+}
+/**
+ * Defines attribute change steps to update a slot’s name.
+ */
+function updateASlotsName(element, localName, oldValue, value, namespace) {
+ /**
+ * 1. If element is a slot, localName is name, and namespace is null, then:
+ * 1.1. If value is oldValue, then return.
+ * 1.2. If value is null and oldValue is the empty string, then return.
+ * 1.3. If value is the empty string and oldValue is null, then return.
+ * 1.4. If value is null or the empty string, then set element’s name to the
+ * empty string.
+ * 1.5. Otherwise, set element’s name to value.
+ * 1.6. Run assign slotables for a tree with element’s root.
+ */
+ if (util_1.Guard.isSlot(element) && localName === "name" && namespace === null) {
+ if (value === oldValue)
+ return;
+ if (value === null && oldValue === '')
+ return;
+ if (value === '' && oldValue === null)
+ return;
+ if ((value === null || value === '')) {
+ element._name = '';
+ }
+ else {
+ element._name = value;
+ }
+ ShadowTreeAlgorithm_1.shadowTree_assignSlotablesForATree(TreeAlgorithm_1.tree_rootNode(element));
+ }
+}
+/**
+ * Defines attribute change steps to update a slotable’s name.
+ */
+function updateASlotablesName(element, localName, oldValue, value, namespace) {
+ /**
+ * 1. If localName is slot and namespace is null, then:
+ * 1.1. If value is oldValue, then return.
+ * 1.2. If value is null and oldValue is the empty string, then return.
+ * 1.3. If value is the empty string and oldValue is null, then return.
+ * 1.4. If value is null or the empty string, then set element’s name to
+ * the empty string.
+ * 1.5. Otherwise, set element’s name to value.
+ * 1.6. If element is assigned, then run assign slotables for element’s
+ * assigned slot.
+ * 1.7. Run assign a slot for element.
+ */
+ if (util_1.Guard.isSlotable(element) && localName === "slot" && namespace === null) {
+ if (value === oldValue)
+ return;
+ if (value === null && oldValue === '')
+ return;
+ if (value === '' && oldValue === null)
+ return;
+ if ((value === null || value === '')) {
+ element._name = '';
+ }
+ else {
+ element._name = value;
+ }
+ if (ShadowTreeAlgorithm_1.shadowTree_isAssigned(element)) {
+ ShadowTreeAlgorithm_1.shadowTree_assignSlotables(element._assignedSlot);
+ }
+ ShadowTreeAlgorithm_1.shadowTree_assignASlot(element);
+ }
+}
+/**
+ * Defines attribute change steps to update an element's ID.
+ */
+function updateAnElementID(element, localName, value, namespace) {
+ /**
+ * 1. If localName is id, namespace is null, and value is null or the empty
+ * string, then unset element’s ID.
+ * 2. Otherwise, if localName is id, namespace is null, then set element’s
+ * ID to value.
+ */
+ if (localName === "id" && namespace === null) {
+ if (!value)
+ element._uniqueIdentifier = undefined;
+ else
+ element._uniqueIdentifier = value;
+ }
+}
+//# sourceMappingURL=DOMAlgorithm.js.map
/***/ }),
-/***/ 8242:
-/***/ ((__unused_webpack_module, exports) => {
+/***/ 3261:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var OrderedSetAlgorithm_1 = __nccwpck_require__(3670);
+var DOMAlgorithm_1 = __nccwpck_require__(9628);
+var ElementAlgorithm_1 = __nccwpck_require__(1849);
+/**
+ * Validates a given token against the supported tokens defined for the given
+ * token lists' associated attribute.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param tokenList - a token list
+ * @param token - a token
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.ROOT_CONTEXT = exports.createContextKey = void 0;
-/** Get a key to uniquely identify a context value */
-function createContextKey(description) {
- // The specification states that for the same input, multiple calls should
- // return different keys. Due to the nature of the JS dependency management
- // system, this creates problems where multiple versions of some package
- // could hold different keys for the same property.
- //
- // Therefore, we use Symbol.for which returns the same key for the same input.
- return Symbol.for(description);
+function tokenList_validationSteps(tokenList, token) {
+ /**
+ * 1. If the associated attribute’s local name does not define supported
+ * tokens, throw a TypeError.
+ * 2. Let lowercase token be a copy of token, in ASCII lowercase.
+ * 3. If lowercase token is present in supported tokens, return true.
+ * 4. Return false.
+ */
+ if (!DOMAlgorithm_1.dom_hasSupportedTokens(tokenList._attribute._localName)) {
+ throw new TypeError("There are no supported tokens defined for attribute name: '" + tokenList._attribute._localName + "'.");
+ }
+ return DOMAlgorithm_1.dom_getSupportedTokens(tokenList._attribute._localName).has(token.toLowerCase());
}
-exports.createContextKey = createContextKey;
-var BaseContext = /** @class */ (function () {
+exports.tokenList_validationSteps = tokenList_validationSteps;
+/**
+ * Updates the value of the token lists' associated attribute.
+ *
+ * @param tokenList - a token list
+ */
+function tokenList_updateSteps(tokenList) {
/**
- * Construct a new context which inherits values from an optional parent context.
- *
- * @param parentContext a context from which to inherit values
+ * 1. If the associated element does not have an associated attribute and
+ * token set is empty, then return.
+ * 2. Set an attribute value for the associated element using associated
+ * attribute’s local name and the result of running the ordered set
+ * serializer for token set.
*/
- function BaseContext(parentContext) {
- // for minification
- var self = this;
- self._currentContext = parentContext ? new Map(parentContext) : new Map();
- self.getValue = function (key) { return self._currentContext.get(key); };
- self.setValue = function (key, value) {
- var context = new BaseContext(self._currentContext);
- context._currentContext.set(key, value);
- return context;
- };
- self.deleteValue = function (key) {
- var context = new BaseContext(self._currentContext);
- context._currentContext.delete(key);
- return context;
- };
+ if (!tokenList._element.hasAttribute(tokenList._attribute._localName) &&
+ tokenList._tokenSet.size === 0) {
+ return;
}
- return BaseContext;
-}());
-/** The root context is used as the default parent context when there is no active context */
-exports.ROOT_CONTEXT = new BaseContext();
-//# sourceMappingURL=context.js.map
+ ElementAlgorithm_1.element_setAnAttributeValue(tokenList._element, tokenList._attribute._localName, OrderedSetAlgorithm_1.orderedSet_serialize(tokenList._tokenSet));
+}
+exports.tokenList_updateSteps = tokenList_updateSteps;
+/**
+ * Gets the value of the token lists' associated attribute.
+ *
+ * @param tokenList - a token list
+ */
+function tokenList_serializeSteps(tokenList) {
+ /**
+ * A DOMTokenList object’s serialize steps are to return the result of
+ * running get an attribute value given the associated element and the
+ * associated attribute’s local name.
+ */
+ return ElementAlgorithm_1.element_getAnAttributeValue(tokenList._element, tokenList._attribute._localName);
+}
+exports.tokenList_serializeSteps = tokenList_serializeSteps;
+//# sourceMappingURL=DOMTokenListAlgorithm.js.map
/***/ }),
-/***/ 6504:
-/***/ ((__unused_webpack_module, exports) => {
+/***/ 2793:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
"use strict";
-/*
- * Copyright The OpenTelemetry Authors
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMImpl_1 = __nccwpck_require__(4177);
+var util_1 = __nccwpck_require__(5282);
+var util_2 = __nccwpck_require__(6195);
+var ElementImpl_1 = __nccwpck_require__(5975);
+var CustomElementAlgorithm_1 = __nccwpck_require__(5648);
+var TreeAlgorithm_1 = __nccwpck_require__(6620);
+var NamespaceAlgorithm_1 = __nccwpck_require__(5856);
+var DOMAlgorithm_1 = __nccwpck_require__(9628);
+var ElementAlgorithm_1 = __nccwpck_require__(1849);
+var MutationAlgorithm_1 = __nccwpck_require__(5463);
+/**
+ * Returns an element interface for the given name and namespace.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * @param name - element name
+ * @param namespace - namespace
+ */
+function document_elementInterface(name, namespace) {
+ return ElementImpl_1.ElementImpl;
+}
+exports.document_elementInterface = document_elementInterface;
+/**
+ * Creates a new element node.
+ * See: https://dom.spec.whatwg.org/#internal-createelementns-steps
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param document - owner document
+ * @param namespace - element namespace
+ * @param qualifiedName - qualified name
+ * @param options - element options
+ */
+function document_internalCreateElementNS(document, namespace, qualifiedName, options) {
+ /**
+ * 1. Let namespace, prefix, and localName be the result of passing
+ * namespace and qualifiedName to validate and extract.
+ * 2. Let is be null.
+ * 3. If options is a dictionary and options’s is is present, then set
+ * is to it.
+ * 4. Return the result of creating an element given document, localName,
+ * namespace, prefix, is, and with the synchronous custom elements flag set.
+ */
+ var _a = __read(NamespaceAlgorithm_1.namespace_validateAndExtract(namespace, qualifiedName), 3), ns = _a[0], prefix = _a[1], localName = _a[2];
+ var is = null;
+ if (options !== undefined) {
+ if (util_2.isString(options)) {
+ is = options;
+ }
+ else {
+ is = options.is;
+ }
+ }
+ return ElementAlgorithm_1.element_createAnElement(document, localName, ns, prefix, is, true);
+}
+exports.document_internalCreateElementNS = document_internalCreateElementNS;
+/**
+ * Removes `node` and its subtree from its document and changes
+ * its owner document to `document` so that it can be inserted
+ * into `document`.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param node - the node to move
+ * @param document - document to receive the node and its subtree
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=types.js.map
+function document_adopt(node, document) {
+ var e_1, _a;
+ // Optimize for common case of inserting a fresh node
+ if (node._nodeDocument === document && node._parent === null) {
+ return;
+ }
+ /**
+ * 1. Let oldDocument be node’s node document.
+ * 2. If node’s parent is not null, remove node from its parent.
+ */
+ var oldDocument = node._nodeDocument;
+ if (node._parent)
+ MutationAlgorithm_1.mutation_remove(node, node._parent);
+ /**
+ * 3. If document is not oldDocument, then:
+ */
+ if (document !== oldDocument) {
+ /**
+ * 3.1. For each inclusiveDescendant in node’s shadow-including inclusive
+ * descendants:
+ */
+ var inclusiveDescendant = TreeAlgorithm_1.tree_getFirstDescendantNode(node, true, true);
+ while (inclusiveDescendant !== null) {
+ /**
+ * 3.1.1. Set inclusiveDescendant’s node document to document.
+ * 3.1.2. If inclusiveDescendant is an element, then set the node
+ * document of each attribute in inclusiveDescendant’s attribute list
+ * to document.
+ */
+ inclusiveDescendant._nodeDocument = document;
+ if (util_1.Guard.isElementNode(inclusiveDescendant)) {
+ try {
+ for (var _b = (e_1 = void 0, __values(inclusiveDescendant._attributeList._asArray())), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var attr = _c.value;
+ attr._nodeDocument = document;
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ }
+ /**
+ * 3.2. For each inclusiveDescendant in node's shadow-including
+ * inclusive descendants that is custom, enqueue a custom
+ * element callback reaction with inclusiveDescendant,
+ * callback name "adoptedCallback", and an argument list
+ * containing oldDocument and document.
+ */
+ if (DOMImpl_1.dom.features.customElements) {
+ if (util_1.Guard.isElementNode(inclusiveDescendant) &&
+ inclusiveDescendant._customElementState === "custom") {
+ CustomElementAlgorithm_1.customElement_enqueueACustomElementCallbackReaction(inclusiveDescendant, "adoptedCallback", [oldDocument, document]);
+ }
+ }
+ /**
+ * 3.3. For each inclusiveDescendant in node’s shadow-including
+ * inclusive descendants, in shadow-including tree order, run the
+ * adopting steps with inclusiveDescendant and oldDocument.
+ */
+ if (DOMImpl_1.dom.features.steps) {
+ DOMAlgorithm_1.dom_runAdoptingSteps(inclusiveDescendant, oldDocument);
+ }
+ inclusiveDescendant = TreeAlgorithm_1.tree_getNextDescendantNode(node, inclusiveDescendant, true, true);
+ }
+ }
+}
+exports.document_adopt = document_adopt;
+//# sourceMappingURL=DocumentAlgorithm.js.map
/***/ }),
-/***/ 7978:
+/***/ 1849:
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMImpl_1 = __nccwpck_require__(4177);
+var infra_1 = __nccwpck_require__(4251);
+var util_1 = __nccwpck_require__(5282);
+var DOMException_1 = __nccwpck_require__(3166);
+var CreateAlgorithm_1 = __nccwpck_require__(7339);
+var CustomElementAlgorithm_1 = __nccwpck_require__(5648);
+var MutationObserverAlgorithm_1 = __nccwpck_require__(8157);
+var DOMAlgorithm_1 = __nccwpck_require__(9628);
+var MutationAlgorithm_1 = __nccwpck_require__(5463);
+var DocumentAlgorithm_1 = __nccwpck_require__(2793);
+/**
+ * Determines whether the element's attribute list contains the given
+ * attribute.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param attribute - an attribute node
+ * @param element - an element node
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.DiagComponentLogger = void 0;
-var global_utils_1 = __nccwpck_require__(5135);
+function element_has(attribute, element) {
+ /**
+ * An element has an attribute A if its attribute list contains A.
+ */
+ return element._attributeList._asArray().indexOf(attribute) !== -1;
+}
+exports.element_has = element_has;
/**
- * Component Logger which is meant to be used as part of any component which
- * will add automatically additional namespace in front of the log message.
- * It will then forward all message to global diag logger
- * @example
- * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' });
- * cLogger.debug('test');
- * // @opentelemetry/instrumentation-http test
+ * Changes the value of an attribute node.
+ *
+ * @param attribute - an attribute node
+ * @param element - an element node
+ * @param value - attribute value
*/
-var DiagComponentLogger = /** @class */ (function () {
- function DiagComponentLogger(props) {
- this._namespace = props.namespace || 'DiagComponentLogger';
+function element_change(attribute, element, value) {
+ /**
+ * 1. Queue an attribute mutation record for element with attribute’s
+ * local name, attribute’s namespace, and attribute’s value.
+ */
+ if (DOMImpl_1.dom.features.mutationObservers) {
+ MutationObserverAlgorithm_1.observer_queueAttributeMutationRecord(element, attribute._localName, attribute._namespace, attribute._value);
}
- DiagComponentLogger.prototype.debug = function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return logProxy('debug', this._namespace, args);
- };
- DiagComponentLogger.prototype.error = function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return logProxy('error', this._namespace, args);
- };
- DiagComponentLogger.prototype.info = function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return logProxy('info', this._namespace, args);
- };
- DiagComponentLogger.prototype.warn = function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return logProxy('warn', this._namespace, args);
- };
- DiagComponentLogger.prototype.verbose = function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
+ /**
+ * 2. If element is custom, then enqueue a custom element callback reaction
+ * with element, callback name "attributeChangedCallback", and an argument
+ * list containing attribute’s local name, attribute’s value, value, and
+ * attribute’s namespace.
+ */
+ if (DOMImpl_1.dom.features.customElements) {
+ if (util_1.Guard.isCustomElementNode(element)) {
+ CustomElementAlgorithm_1.customElement_enqueueACustomElementCallbackReaction(element, "attributeChangedCallback", [attribute._localName, attribute._value, value, attribute._namespace]);
}
- return logProxy('verbose', this._namespace, args);
- };
- return DiagComponentLogger;
-}());
-exports.DiagComponentLogger = DiagComponentLogger;
-function logProxy(funcName, namespace, args) {
- var logger = global_utils_1.getGlobal('diag');
- // shortcut if logger not set
- if (!logger) {
- return;
}
- args.unshift(namespace);
- return logger[funcName].apply(logger, args);
+ /**
+ * 3. Run the attribute change steps with element, attribute’s local name,
+ * attribute’s value, value, and attribute’s namespace.
+ * 4. Set attribute’s value to value.
+ */
+ if (DOMImpl_1.dom.features.steps) {
+ DOMAlgorithm_1.dom_runAttributeChangeSteps(element, attribute._localName, attribute._value, value, attribute._namespace);
+ }
+ attribute._value = value;
}
-//# sourceMappingURL=ComponentLogger.js.map
-
-/***/ }),
-
-/***/ 3041:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
+exports.element_change = element_change;
+/**
+ * Appends an attribute to an element node.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param attribute - an attribute
+ * @param element - an element to receive the attribute
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.DiagConsoleLogger = void 0;
-var consoleMap = [
- { n: 'error', c: 'error' },
- { n: 'warn', c: 'warn' },
- { n: 'info', c: 'info' },
- { n: 'debug', c: 'debug' },
- { n: 'verbose', c: 'trace' },
-];
+function element_append(attribute, element) {
+ /**
+ * 1. Queue an attribute mutation record for element with attribute’s
+ * local name, attribute’s namespace, and null.
+ */
+ if (DOMImpl_1.dom.features.mutationObservers) {
+ MutationObserverAlgorithm_1.observer_queueAttributeMutationRecord(element, attribute._localName, attribute._namespace, null);
+ }
+ /**
+ * 2. If element is custom, then enqueue a custom element callback reaction
+ * with element, callback name "attributeChangedCallback", and an argument
+ * list containing attribute’s local name, null, attribute’s value, and
+ * attribute’s namespace.
+ */
+ if (DOMImpl_1.dom.features.customElements) {
+ if (util_1.Guard.isCustomElementNode(element)) {
+ CustomElementAlgorithm_1.customElement_enqueueACustomElementCallbackReaction(element, "attributeChangedCallback", [attribute._localName, null, attribute._value, attribute._namespace]);
+ }
+ }
+ /**
+ * 3. Run the attribute change steps with element, attribute’s local name,
+ * null, attribute’s value, and attribute’s namespace.
+ */
+ if (DOMImpl_1.dom.features.steps) {
+ DOMAlgorithm_1.dom_runAttributeChangeSteps(element, attribute._localName, null, attribute._value, attribute._namespace);
+ }
+ /**
+ * 4. Append attribute to element’s attribute list.
+ * 5. Set attribute’s element to element.
+ */
+ element._attributeList._asArray().push(attribute);
+ attribute._element = element;
+ // mark that the document has namespaces
+ if (!element._nodeDocument._hasNamespaces && (attribute._namespace !== null ||
+ attribute._namespacePrefix !== null || attribute._localName === "xmlns")) {
+ element._nodeDocument._hasNamespaces = true;
+ }
+}
+exports.element_append = element_append;
/**
- * A simple Immutable Console based diagnostic logger which will output any messages to the Console.
- * If you want to limit the amount of logging to a specific level or lower use the
- * {@link createLogLevelDiagLogger}
+ * Removes an attribute from an element node.
+ *
+ * @param attribute - an attribute
+ * @param element - an element to receive the attribute
*/
-var DiagConsoleLogger = /** @class */ (function () {
- function DiagConsoleLogger() {
- function _consoleFunc(funcName) {
- return function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- if (console) {
- // Some environments only expose the console when the F12 developer console is open
- // eslint-disable-next-line no-console
- var theFunc = console[funcName];
- if (typeof theFunc !== 'function') {
- // Not all environments support all functions
- // eslint-disable-next-line no-console
- theFunc = console.log;
- }
- // One last final check
- if (typeof theFunc === 'function') {
- return theFunc.apply(console, args);
- }
- }
- };
- }
- for (var i = 0; i < consoleMap.length; i++) {
- this[consoleMap[i].n] = _consoleFunc(consoleMap[i].c);
+function element_remove(attribute, element) {
+ /**
+ * 1. Queue an attribute mutation record for element with attribute’s
+ * local name, attribute’s namespace, and attribute’s value.
+ */
+ if (DOMImpl_1.dom.features.mutationObservers) {
+ MutationObserverAlgorithm_1.observer_queueAttributeMutationRecord(element, attribute._localName, attribute._namespace, attribute._value);
+ }
+ /**
+ * 2. If element is custom, then enqueue a custom element callback reaction
+ * with element, callback name "attributeChangedCallback", and an argument
+ * list containing attribute’s local name, attribute’s value, null,
+ * and attribute’s namespace.
+ */
+ if (DOMImpl_1.dom.features.customElements) {
+ if (util_1.Guard.isCustomElementNode(element)) {
+ CustomElementAlgorithm_1.customElement_enqueueACustomElementCallbackReaction(element, "attributeChangedCallback", [attribute._localName, attribute._value, null, attribute._namespace]);
}
}
- return DiagConsoleLogger;
-}());
-exports.DiagConsoleLogger = DiagConsoleLogger;
-//# sourceMappingURL=consoleLogger.js.map
-
-/***/ }),
-
-/***/ 1634:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
+ /**
+ * 3. Run the attribute change steps with element, attribute’s local name,
+ * attribute’s value, null, and attribute’s namespace.
+ */
+ if (DOMImpl_1.dom.features.steps) {
+ DOMAlgorithm_1.dom_runAttributeChangeSteps(element, attribute._localName, attribute._value, null, attribute._namespace);
+ }
+ /**
+ * 3. Remove attribute from element’s attribute list.
+ * 5. Set attribute’s element to null.
+ */
+ var index = element._attributeList._asArray().indexOf(attribute);
+ element._attributeList._asArray().splice(index, 1);
+ attribute._element = null;
+}
+exports.element_remove = element_remove;
+/**
+ * Replaces an attribute with another of an element node.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param oldAttr - old attribute
+ * @param newAttr - new attribute
+ * @param element - an element to receive the attribute
*/
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
-}));
-var __exportStar = (this && this.__exportStar) || function(m, exports) {
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-__exportStar(__nccwpck_require__(3041), exports);
-__exportStar(__nccwpck_require__(8077), exports);
-//# sourceMappingURL=index.js.map
-
-/***/ }),
-
-/***/ 9639:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
+function element_replace(oldAttr, newAttr, element) {
+ /**
+ * 1. Queue an attribute mutation record for element with oldAttr’s
+ * local name, oldAttr’s namespace, and oldAttr’s value.
+ */
+ if (DOMImpl_1.dom.features.mutationObservers) {
+ MutationObserverAlgorithm_1.observer_queueAttributeMutationRecord(element, oldAttr._localName, oldAttr._namespace, oldAttr._value);
+ }
+ /**
+ * 2. If element is custom, then enqueue a custom element callback reaction
+ * with element, callback name "attributeChangedCallback", and an argument
+ * list containing oldAttr’s local name, oldAttr’s value, newAttr’s value,
+ * and oldAttr’s namespace.
+ */
+ if (DOMImpl_1.dom.features.customElements) {
+ if (util_1.Guard.isCustomElementNode(element)) {
+ CustomElementAlgorithm_1.customElement_enqueueACustomElementCallbackReaction(element, "attributeChangedCallback", [oldAttr._localName, oldAttr._value, newAttr._value, oldAttr._namespace]);
+ }
+ }
+ /**
+ * 3. Run the attribute change steps with element, oldAttr’s local name,
+ * oldAttr’s value, newAttr’s value, and oldAttr’s namespace.
+ */
+ if (DOMImpl_1.dom.features.steps) {
+ DOMAlgorithm_1.dom_runAttributeChangeSteps(element, oldAttr._localName, oldAttr._value, newAttr._value, oldAttr._namespace);
+ }
+ /**
+ * 4. Replace oldAttr by newAttr in element’s attribute list.
+ * 5. Set oldAttr’s element to null.
+ * 6. Set newAttr’s element to element.
+ */
+ var index = element._attributeList._asArray().indexOf(oldAttr);
+ if (index !== -1) {
+ element._attributeList._asArray()[index] = newAttr;
+ }
+ oldAttr._element = null;
+ newAttr._element = element;
+ // mark that the document has namespaces
+ if (!element._nodeDocument._hasNamespaces && (newAttr._namespace !== null ||
+ newAttr._namespacePrefix !== null || newAttr._localName === "xmlns")) {
+ element._nodeDocument._hasNamespaces = true;
+ }
+}
+exports.element_replace = element_replace;
+/**
+ * Retrieves an attribute with the given name from an element node.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * @param qualifiedName - an attribute name
+ * @param element - an element to receive the attribute
+ */
+function element_getAnAttributeByName(qualifiedName, element) {
+ /**
+ * 1. If element is in the HTML namespace and its node document is an HTML
+ * document, then set qualifiedName to qualifiedName in ASCII lowercase.
+ * 2. Return the first attribute in element’s attribute list whose qualified
+ * name is qualifiedName, and null otherwise.
+ */
+ if (element._namespace === infra_1.namespace.HTML && element._nodeDocument._type === "html") {
+ qualifiedName = qualifiedName.toLowerCase();
+ }
+ return element._attributeList._asArray().find(function (attr) { return attr._qualifiedName === qualifiedName; }) || null;
+}
+exports.element_getAnAttributeByName = element_getAnAttributeByName;
+/**
+ * Retrieves an attribute with the given namespace and local name from an
+ * element node.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param namespace - an attribute namespace
+ * @param localName - an attribute local name
+ * @param element - an element to receive the attribute
+ */
+function element_getAnAttributeByNamespaceAndLocalName(namespace, localName, element) {
+ /**
+ * 1. If namespace is the empty string, set it to null.
+ * 2. Return the attribute in element’s attribute list whose namespace is
+ * namespace and local name is localName, if any, and null otherwise.
+ */
+ var ns = namespace || null;
+ return element._attributeList._asArray().find(function (attr) { return attr._namespace === ns && attr._localName === localName; }) || null;
+}
+exports.element_getAnAttributeByNamespaceAndLocalName = element_getAnAttributeByNamespaceAndLocalName;
+/**
+ * Retrieves an attribute's value with the given name namespace and local
+ * name from an element node.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param element - an element to receive the attribute
+ * @param localName - an attribute local name
+ * @param namespace - an attribute namespace
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.createLogLevelDiagLogger = void 0;
-var types_1 = __nccwpck_require__(8077);
-function createLogLevelDiagLogger(maxLevel, logger) {
- if (maxLevel < types_1.DiagLogLevel.NONE) {
- maxLevel = types_1.DiagLogLevel.NONE;
- }
- else if (maxLevel > types_1.DiagLogLevel.ALL) {
- maxLevel = types_1.DiagLogLevel.ALL;
+function element_getAnAttributeValue(element, localName, namespace) {
+ if (namespace === void 0) { namespace = ''; }
+ /**
+ * 1. Let attr be the result of getting an attribute given namespace,
+ * localName, and element.
+ * 2. If attr is null, then return the empty string.
+ * 3. Return attr’s value.
+ */
+ var attr = element_getAnAttributeByNamespaceAndLocalName(namespace, localName, element);
+ if (attr === null)
+ return '';
+ else
+ return attr._value;
+}
+exports.element_getAnAttributeValue = element_getAnAttributeValue;
+/**
+ * Sets an attribute of an element node.
+ *
+ * @param attr - an attribute
+ * @param element - an element to receive the attribute
+ */
+function element_setAnAttribute(attr, element) {
+ /**
+ * 1. If attr’s element is neither null nor element, throw an
+ * "InUseAttributeError" DOMException.
+ * 2. Let oldAttr be the result of getting an attribute given attr’s
+ * namespace, attr’s local name, and element.
+ * 3. If oldAttr is attr, return attr.
+ * 4. If oldAttr is non-null, replace it by attr in element.
+ * 5. Otherwise, append attr to element.
+ * 6. Return oldAttr.
+ */
+ if (attr._element !== null && attr._element !== element)
+ throw new DOMException_1.InUseAttributeError("This attribute already exists in the document: " + attr._qualifiedName + " as a child of " + attr._element._qualifiedName + ".");
+ var oldAttr = element_getAnAttributeByNamespaceAndLocalName(attr._namespace || '', attr._localName, element);
+ if (oldAttr === attr)
+ return attr;
+ if (oldAttr !== null) {
+ element_replace(oldAttr, attr, element);
}
- // In case the logger is null or undefined
- logger = logger || {};
- function _filterFunc(funcName, theLevel) {
- var theFunc = logger[funcName];
- if (typeof theFunc === 'function' && maxLevel >= theLevel) {
- return theFunc.bind(logger);
- }
- return function () { };
+ else {
+ element_append(attr, element);
}
- return {
- error: _filterFunc('error', types_1.DiagLogLevel.ERROR),
- warn: _filterFunc('warn', types_1.DiagLogLevel.WARN),
- info: _filterFunc('info', types_1.DiagLogLevel.INFO),
- debug: _filterFunc('debug', types_1.DiagLogLevel.DEBUG),
- verbose: _filterFunc('verbose', types_1.DiagLogLevel.VERBOSE),
- };
+ return oldAttr;
}
-exports.createLogLevelDiagLogger = createLogLevelDiagLogger;
-//# sourceMappingURL=logLevelLogger.js.map
-
-/***/ }),
-
-/***/ 8077:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+exports.element_setAnAttribute = element_setAnAttribute;
+/**
+ * Sets an attribute's value of an element node.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param element - an element to receive the attribute
+ * @param localName - an attribute local name
+ * @param value - an attribute value
+ * @param prefix - an attribute prefix
+ * @param namespace - an attribute namespace
+ */
+function element_setAnAttributeValue(element, localName, value, prefix, namespace) {
+ if (prefix === void 0) { prefix = null; }
+ if (namespace === void 0) { namespace = null; }
+ /**
+ * 1. If prefix is not given, set it to null.
+ * 2. If namespace is not given, set it to null.
+ * 3. Let attribute be the result of getting an attribute given namespace,
+ * localName, and element.
+ * 4. If attribute is null, create an attribute whose namespace is
+ * namespace, namespace prefix is prefix, local name is localName, value
+ * is value, and node document is element’s node document, then append this
+ * attribute to element, and then return.
+ * 5. Change attribute from element to value.
+ */
+ var attribute = element_getAnAttributeByNamespaceAndLocalName(namespace || '', localName, element);
+ if (attribute === null) {
+ var newAttr = CreateAlgorithm_1.create_attr(element._nodeDocument, localName);
+ newAttr._namespace = namespace;
+ newAttr._namespacePrefix = prefix;
+ newAttr._value = value;
+ element_append(newAttr, element);
+ return;
+ }
+ element_change(attribute, element, value);
+}
+exports.element_setAnAttributeValue = element_setAnAttributeValue;
+/**
+ * Removes an attribute with the given name from an element node.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param qualifiedName - an attribute name
+ * @param element - an element to receive the attribute
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.DiagLogLevel = void 0;
+function element_removeAnAttributeByName(qualifiedName, element) {
+ /**
+ * 1. Let attr be the result of getting an attribute given qualifiedName
+ * and element.
+ * 2. If attr is non-null, remove it from element.
+ * 3. Return attr.
+ */
+ var attr = element_getAnAttributeByName(qualifiedName, element);
+ if (attr !== null) {
+ element_remove(attr, element);
+ }
+ return attr;
+}
+exports.element_removeAnAttributeByName = element_removeAnAttributeByName;
/**
- * Defines the available internal logging levels for the diagnostic logger, the numeric values
- * of the levels are defined to match the original values from the initial LogLevel to avoid
- * compatibility/migration issues for any implementation that assume the numeric ordering.
+ * Removes an attribute with the given namespace and local name from an
+ * element node.
+ *
+ * @param namespace - an attribute namespace
+ * @param localName - an attribute local name
+ * @param element - an element to receive the attribute
*/
-var DiagLogLevel;
-(function (DiagLogLevel) {
- /** Diagnostic Logging level setting to disable all logging (except and forced logs) */
- DiagLogLevel[DiagLogLevel["NONE"] = 0] = "NONE";
- /** Identifies an error scenario */
- DiagLogLevel[DiagLogLevel["ERROR"] = 30] = "ERROR";
- /** Identifies a warning scenario */
- DiagLogLevel[DiagLogLevel["WARN"] = 50] = "WARN";
- /** General informational log message */
- DiagLogLevel[DiagLogLevel["INFO"] = 60] = "INFO";
- /** General debug log message */
- DiagLogLevel[DiagLogLevel["DEBUG"] = 70] = "DEBUG";
+function element_removeAnAttributeByNamespaceAndLocalName(namespace, localName, element) {
/**
- * Detailed trace level logging should only be used for development, should only be set
- * in a development environment.
+ * 1. Let attr be the result of getting an attribute given namespace, localName, and element.
+ * 2. If attr is non-null, remove it from element.
+ * 3. Return attr.
*/
- DiagLogLevel[DiagLogLevel["VERBOSE"] = 80] = "VERBOSE";
- /** Used to set the logging level to include all logging */
- DiagLogLevel[DiagLogLevel["ALL"] = 9999] = "ALL";
-})(DiagLogLevel = exports.DiagLogLevel || (exports.DiagLogLevel = {}));
-//# sourceMappingURL=types.js.map
+ var attr = element_getAnAttributeByNamespaceAndLocalName(namespace, localName, element);
+ if (attr !== null) {
+ element_remove(attr, element);
+ }
+ return attr;
+}
+exports.element_removeAnAttributeByNamespaceAndLocalName = element_removeAnAttributeByNamespaceAndLocalName;
+/**
+ * Creates an element node.
+ * See: https://dom.spec.whatwg.org/#concept-create-element.
+ *
+ * @param document - the document owning the element
+ * @param localName - local name
+ * @param namespace - element namespace
+ * @param prefix - namespace prefix
+ * @param is - the "is" value
+ * @param synchronousCustomElementsFlag - synchronous custom elements flag
+ */
+function element_createAnElement(document, localName, namespace, prefix, is, synchronousCustomElementsFlag) {
+ if (prefix === void 0) { prefix = null; }
+ if (is === void 0) { is = null; }
+ if (synchronousCustomElementsFlag === void 0) { synchronousCustomElementsFlag = false; }
+ /**
+ * 1. If prefix was not given, let prefix be null.
+ * 2. If is was not given, let is be null.
+ * 3. Let result be null.
+ */
+ var result = null;
+ if (!DOMImpl_1.dom.features.customElements) {
+ result = CreateAlgorithm_1.create_element(document, localName, namespace, prefix);
+ result._customElementState = "uncustomized";
+ result._customElementDefinition = null;
+ result._is = is;
+ return result;
+ }
+ /**
+ * 4. Let definition be the result of looking up a custom element definition
+ * given document, namespace, localName, and is.
+ */
+ var definition = CustomElementAlgorithm_1.customElement_lookUpACustomElementDefinition(document, namespace, localName, is);
+ if (definition !== null && definition.name !== definition.localName) {
+ /**
+ * 5. If definition is non-null, and definition’s name is not equal to
+ * its local name (i.e., definition represents a customized built-in
+ * element), then:
+ * 5.1. Let interface be the element interface for localName and the HTML
+ * namespace.
+ * 5.2. Set result to a new element that implements interface, with no
+ * attributes, namespace set to the HTML namespace, namespace prefix
+ * set to prefix, local name set to localName, custom element state set
+ * to "undefined", custom element definition set to null, is value set
+ * to is, and node document set to document.
+ * 5.3. If the synchronous custom elements flag is set, upgrade element
+ * using definition.
+ * 5.4. Otherwise, enqueue a custom element upgrade reaction given result
+ * and definition.
+ */
+ var elemenInterface = DocumentAlgorithm_1.document_elementInterface(localName, infra_1.namespace.HTML);
+ result = new elemenInterface();
+ result._localName = localName;
+ result._namespace = infra_1.namespace.HTML;
+ result._namespacePrefix = prefix;
+ result._customElementState = "undefined";
+ result._customElementDefinition = null;
+ result._is = is;
+ result._nodeDocument = document;
+ if (synchronousCustomElementsFlag) {
+ CustomElementAlgorithm_1.customElement_upgrade(definition, result);
+ }
+ else {
+ CustomElementAlgorithm_1.customElement_enqueueACustomElementUpgradeReaction(result, definition);
+ }
+ }
+ else if (definition !== null) {
+ /**
+ * 6. Otherwise, if definition is non-null, then:
+ */
+ if (synchronousCustomElementsFlag) {
+ /**
+ * 6.1. If the synchronous custom elements flag is set, then run these
+ * steps while catching any exceptions:
+ */
+ try {
+ /**
+ * 6.1.1. Let C be definition’s constructor.
+ * 6.1.2. Set result to the result of constructing C, with no arguments.
+ * 6.1.3. Assert: result’s custom element state and custom element definition
+ * are initialized.
+ * 6.1.4. Assert: result’s namespace is the HTML namespace.
+ * _Note:_ IDL enforces that result is an HTMLElement object, which all
+ * use the HTML namespace.
+ */
+ var C = definition.constructor;
+ var result_1 = new C();
+ console.assert(result_1._customElementState !== undefined);
+ console.assert(result_1._customElementDefinition !== undefined);
+ console.assert(result_1._namespace === infra_1.namespace.HTML);
+ /**
+ * 6.1.5. If result’s attribute list is not empty, then throw a
+ * "NotSupportedError" DOMException.
+ * 6.1.6. If result has children, then throw a "NotSupportedError"
+ * DOMException.
+ * 6.1.7. If result’s parent is not null, then throw a
+ * "NotSupportedError" DOMException.
+ * 6.1.8. If result’s node document is not document, then throw a
+ * "NotSupportedError" DOMException.
+ * 6.1.9. If result’s local name is not equal to localName, then throw
+ * a "NotSupportedError" DOMException.
+ */
+ if (result_1._attributeList.length !== 0)
+ throw new DOMException_1.NotSupportedError("Custom element already has attributes.");
+ if (result_1._children.size !== 0)
+ throw new DOMException_1.NotSupportedError("Custom element already has child nodes.");
+ if (result_1._parent !== null)
+ throw new DOMException_1.NotSupportedError("Custom element already has a parent node.");
+ if (result_1._nodeDocument !== document)
+ throw new DOMException_1.NotSupportedError("Custom element is already in a document.");
+ if (result_1._localName !== localName)
+ throw new DOMException_1.NotSupportedError("Custom element has a different local name.");
+ /**
+ * 6.1.10. Set result’s namespace prefix to prefix.
+ * 6.1.11. Set result’s is value to null.
+ */
+ result_1._namespacePrefix = prefix;
+ result_1._is = null;
+ }
+ catch (e) {
+ /**
+ * If any of these steps threw an exception, then:
+ * - Report the exception.
+ * - Set result to a new element that implements the HTMLUnknownElement
+ * interface, with no attributes, namespace set to the HTML namespace,
+ * namespace prefix set to prefix, local name set to localName, custom
+ * element state set to "failed", custom element definition set to null,
+ * is value set to null, and node document set to document.
+ */
+ // TODO: Report the exception
+ result = CreateAlgorithm_1.create_htmlUnknownElement(document, localName, infra_1.namespace.HTML, prefix);
+ result._customElementState = "failed";
+ result._customElementDefinition = null;
+ result._is = null;
+ }
+ }
+ else {
+ /**
+ * 6.2. Otherwise:
+ * 6.2.1. Set result to a new element that implements the HTMLElement
+ * interface, with no attributes, namespace set to the HTML namespace,
+ * namespace prefix set to prefix, local name set to localName, custom
+ * element state set to "undefined", custom element definition set to
+ * null, is value set to null, and node document set to document.
+ * 6.2.2. Enqueue a custom element upgrade reaction given result and
+ * definition.
+ */
+ result = CreateAlgorithm_1.create_htmlElement(document, localName, infra_1.namespace.HTML, prefix);
+ result._customElementState = "undefined";
+ result._customElementDefinition = null;
+ result._is = null;
+ CustomElementAlgorithm_1.customElement_enqueueACustomElementUpgradeReaction(result, definition);
+ }
+ }
+ else {
+ /**
+ * 7. Otherwise:
+ * 7.1. Let interface be the element interface for localName and
+ * namespace.
+ * 7.2. Set result to a new element that implements interface, with no
+ * attributes, namespace set to namespace, namespace prefix set to prefix,
+ * local name set to localName, custom element state set to
+ * "uncustomized", custom element definition set to null, is value set to
+ * is, and node document set to document.
+ */
+ var elementInterface = DocumentAlgorithm_1.document_elementInterface(localName, namespace);
+ result = new elementInterface();
+ result._localName = localName;
+ result._namespace = namespace;
+ result._namespacePrefix = prefix;
+ result._customElementState = "uncustomized";
+ result._customElementDefinition = null;
+ result._is = is;
+ result._nodeDocument = document;
+ /**
+ * 7.3. If namespace is the HTML namespace, and either localName is a
+ * valid custom element name or is is non-null, then set result’s
+ * custom element state to "undefined".
+ */
+ if (namespace === infra_1.namespace.HTML && (is !== null ||
+ CustomElementAlgorithm_1.customElement_isValidCustomElementName(localName))) {
+ result._customElementState = "undefined";
+ }
+ }
+ /* istanbul ignore next */
+ if (result === null) {
+ throw new Error("Unable to create element.");
+ }
+ /**
+ * 8. Returns result
+ */
+ return result;
+}
+exports.element_createAnElement = element_createAnElement;
+/**
+ * Inserts a new node adjacent to this element.
+ *
+ * @param element - a reference element
+ * @param where - a string defining where to insert the element node.
+ * - `beforebegin` before this element itself.
+ * - `afterbegin` before the first child.
+ * - `beforeend` after the last child.
+ * - `afterend` after this element itself.
+ * @param node - node to insert
+ */
+function element_insertAdjacent(element, where, node) {
+ /**
+ * - "beforebegin"
+ * If element’s parent is null, return null.
+ * Return the result of pre-inserting node into element’s parent before
+ * element.
+ * - "afterbegin"
+ * Return the result of pre-inserting node into element before element’s
+ * first child.
+ * - "beforeend"
+ * Return the result of pre-inserting node into element before null.
+ * - "afterend"
+ * If element’s parent is null, return null.
+ * Return the result of pre-inserting node into element’s parent before element’s next sibling.
+ * - Otherwise
+ * Throw a "SyntaxError" DOMException.
+ */
+ switch (where.toLowerCase()) {
+ case 'beforebegin':
+ if (element._parent === null)
+ return null;
+ return MutationAlgorithm_1.mutation_preInsert(node, element._parent, element);
+ case 'afterbegin':
+ return MutationAlgorithm_1.mutation_preInsert(node, element, element._firstChild);
+ case 'beforeend':
+ return MutationAlgorithm_1.mutation_preInsert(node, element, null);
+ case 'afterend':
+ if (element._parent === null)
+ return null;
+ return MutationAlgorithm_1.mutation_preInsert(node, element._parent, element._nextSibling);
+ default:
+ throw new DOMException_1.SyntaxError("Invalid 'where' argument. \"beforebegin\", \"afterbegin\", \"beforeend\" or \"afterend\" expected");
+ }
+}
+exports.element_insertAdjacent = element_insertAdjacent;
+//# sourceMappingURL=ElementAlgorithm.js.map
/***/ }),
-/***/ 5163:
+/***/ 8217:
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
"use strict";
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
-}));
-var __exportStar = (this && this.__exportStar) || function(m, exports) {
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+var __spread = (this && this.__spread) || function () {
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
+ return ar;
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.diag = exports.propagation = exports.trace = exports.context = exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = exports.isValidSpanId = exports.isValidTraceId = exports.isSpanContextValid = exports.baggageEntryMetadataFromString = void 0;
-__exportStar(__nccwpck_require__(1508), exports);
-var utils_1 = __nccwpck_require__(8136);
-Object.defineProperty(exports, "baggageEntryMetadataFromString", ({ enumerable: true, get: function () { return utils_1.baggageEntryMetadataFromString; } }));
-__exportStar(__nccwpck_require__(4447), exports);
-__exportStar(__nccwpck_require__(2358), exports);
-__exportStar(__nccwpck_require__(1634), exports);
-__exportStar(__nccwpck_require__(865), exports);
-__exportStar(__nccwpck_require__(7492), exports);
-__exportStar(__nccwpck_require__(4023), exports);
-__exportStar(__nccwpck_require__(3503), exports);
-__exportStar(__nccwpck_require__(2285), exports);
-__exportStar(__nccwpck_require__(9671), exports);
-__exportStar(__nccwpck_require__(3209), exports);
-__exportStar(__nccwpck_require__(5769), exports);
-__exportStar(__nccwpck_require__(1424), exports);
-__exportStar(__nccwpck_require__(4416), exports);
-__exportStar(__nccwpck_require__(955), exports);
-__exportStar(__nccwpck_require__(8845), exports);
-__exportStar(__nccwpck_require__(6905), exports);
-__exportStar(__nccwpck_require__(8384), exports);
-__exportStar(__nccwpck_require__(891), exports);
-__exportStar(__nccwpck_require__(3168), exports);
-var spancontext_utils_1 = __nccwpck_require__(9745);
-Object.defineProperty(exports, "isSpanContextValid", ({ enumerable: true, get: function () { return spancontext_utils_1.isSpanContextValid; } }));
-Object.defineProperty(exports, "isValidTraceId", ({ enumerable: true, get: function () { return spancontext_utils_1.isValidTraceId; } }));
-Object.defineProperty(exports, "isValidSpanId", ({ enumerable: true, get: function () { return spancontext_utils_1.isValidSpanId; } }));
-var invalid_span_constants_1 = __nccwpck_require__(1760);
-Object.defineProperty(exports, "INVALID_SPANID", ({ enumerable: true, get: function () { return invalid_span_constants_1.INVALID_SPANID; } }));
-Object.defineProperty(exports, "INVALID_TRACEID", ({ enumerable: true, get: function () { return invalid_span_constants_1.INVALID_TRACEID; } }));
-Object.defineProperty(exports, "INVALID_SPAN_CONTEXT", ({ enumerable: true, get: function () { return invalid_span_constants_1.INVALID_SPAN_CONTEXT; } }));
-__exportStar(__nccwpck_require__(8242), exports);
-__exportStar(__nccwpck_require__(6504), exports);
-var context_1 = __nccwpck_require__(7171);
-/** Entrypoint for context API */
-exports.context = context_1.ContextAPI.getInstance();
-var trace_1 = __nccwpck_require__(1539);
-/** Entrypoint for trace API */
-exports.trace = trace_1.TraceAPI.getInstance();
-var propagation_1 = __nccwpck_require__(9909);
-/** Entrypoint for propagation API */
-exports.propagation = propagation_1.PropagationAPI.getInstance();
-var diag_1 = __nccwpck_require__(1877);
+var DOMImpl_1 = __nccwpck_require__(4177);
+var interfaces_1 = __nccwpck_require__(7305);
+var util_1 = __nccwpck_require__(5282);
+var CustomEventImpl_1 = __nccwpck_require__(9857);
+var EventImpl_1 = __nccwpck_require__(5809);
+var DOMException_1 = __nccwpck_require__(3166);
+var TreeAlgorithm_1 = __nccwpck_require__(6620);
+var ShadowTreeAlgorithm_1 = __nccwpck_require__(8733);
+var DOMAlgorithm_1 = __nccwpck_require__(9628);
/**
- * Entrypoint for Diag API.
- * Defines Diagnostic handler used for internal diagnostic logging operations.
- * The default provides a Noop DiagLogger implementation which may be changed via the
- * diag.setLogger(logger: DiagLogger) function.
+ * Sets the canceled flag of an event.
+ *
+ * @param event - an event
*/
-exports.diag = diag_1.DiagAPI.instance();
-exports["default"] = {
- trace: exports.trace,
- context: exports.context,
- propagation: exports.propagation,
- diag: exports.diag,
-};
-//# sourceMappingURL=index.js.map
-
-/***/ }),
-
-/***/ 5135:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
+function event_setTheCanceledFlag(event) {
+ if (event._cancelable && !event._inPassiveListenerFlag) {
+ event._canceledFlag = true;
+ }
+}
+exports.event_setTheCanceledFlag = event_setTheCanceledFlag;
+/**
+ * Initializes the value of an event.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * @param event - an event to initialize
+ * @param type - the type of event
+ * @param bubbles - whether the event propagates in reverse
+ * @param cancelable - whether the event can be cancelled
+ */
+function event_initialize(event, type, bubbles, cancelable) {
+ event._initializedFlag = true;
+ event._stopPropagationFlag = false;
+ event._stopImmediatePropagationFlag = false;
+ event._canceledFlag = false;
+ event._isTrusted = false;
+ event._target = null;
+ event._type = type;
+ event._bubbles = bubbles;
+ event._cancelable = cancelable;
+}
+exports.event_initialize = event_initialize;
+/**
+ * Creates a new event.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param eventInterface - event interface
+ * @param realm - realm
+ */
+function event_createAnEvent(eventInterface, realm) {
+ if (realm === void 0) { realm = undefined; }
+ /**
+ * 1. If realm is not given, then set it to null.
+ * 2. Let dictionary be the result of converting the JavaScript value
+ * undefined to the dictionary type accepted by eventInterface’s
+ * constructor. (This dictionary type will either be EventInit or a
+ * dictionary that inherits from it.)
+ * 3. Let event be the result of running the inner event creation steps with
+ * eventInterface, realm, the time of the occurrence that the event is
+ * signaling, and dictionary.
+ * 4. Initialize event’s isTrusted attribute to true.
+ * 5. Return event.
+ */
+ if (realm === undefined)
+ realm = null;
+ var dictionary = {};
+ var event = event_innerEventCreationSteps(eventInterface, realm, new Date(), dictionary);
+ event._isTrusted = true;
+ return event;
+}
+exports.event_createAnEvent = event_createAnEvent;
+/**
+ * Performs event creation steps.
+ *
+ * @param eventInterface - event interface
+ * @param realm - realm
+ * @param time - time of occurrance
+ * @param dictionary - event attributes
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.unregisterGlobal = exports.getGlobal = exports.registerGlobal = void 0;
-var platform_1 = __nccwpck_require__(9957);
-var version_1 = __nccwpck_require__(8996);
-var semver_1 = __nccwpck_require__(1522);
-var major = version_1.VERSION.split('.')[0];
-var GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for("opentelemetry.js.api." + major);
-var _global = platform_1._globalThis;
-function registerGlobal(type, instance, diag, allowOverride) {
- var _a;
- if (allowOverride === void 0) { allowOverride = false; }
- var api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) !== null && _a !== void 0 ? _a : {
- version: version_1.VERSION,
- });
- if (!allowOverride && api[type]) {
- // already registered an API of this type
- var err = new Error("@opentelemetry/api: Attempted duplicate registration of API: " + type);
- diag.error(err.stack || err.message);
- return false;
- }
- if (api.version !== version_1.VERSION) {
- // All registered APIs must be of the same version exactly
- var err = new Error('@opentelemetry/api: All API registration versions must match');
- diag.error(err.stack || err.message);
- return false;
+function event_innerEventCreationSteps(eventInterface, realm, time, dictionary) {
+ /**
+ * 1. Let event be the result of creating a new object using eventInterface.
+ * TODO: Implement realms
+ * If realm is non-null, then use that Realm; otherwise, use the default
+ * behavior defined in Web IDL.
+ */
+ var event = new eventInterface("");
+ /**
+ * 2. Set event’s initialized flag.
+ * 3. Initialize event’s timeStamp attribute to a DOMHighResTimeStamp
+ * representing the high resolution time from the time origin to time.
+ * 4. For each member → value in dictionary, if event has an attribute
+ * whose identifier is member, then initialize that attribute to value.
+ * 5. Run the event constructing steps with event.
+ * 6. Return event.
+ */
+ event._initializedFlag = true;
+ event._timeStamp = time.getTime();
+ Object.assign(event, dictionary);
+ if (DOMImpl_1.dom.features.steps) {
+ DOMAlgorithm_1.dom_runEventConstructingSteps(event);
}
- api[type] = instance;
- diag.debug("@opentelemetry/api: Registered a global for " + type + " v" + version_1.VERSION + ".");
- return true;
+ return event;
}
-exports.registerGlobal = registerGlobal;
-function getGlobal(type) {
- var _a, _b;
- var globalVersion = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _a === void 0 ? void 0 : _a.version;
- if (!globalVersion || !semver_1.isCompatible(globalVersion)) {
- return;
- }
- return (_b = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _b === void 0 ? void 0 : _b[type];
-}
-exports.getGlobal = getGlobal;
-function unregisterGlobal(type, diag) {
- diag.debug("@opentelemetry/api: Unregistering a global for " + type + " v" + version_1.VERSION + ".");
- var api = _global[GLOBAL_OPENTELEMETRY_API_KEY];
- if (api) {
- delete api[type];
- }
-}
-exports.unregisterGlobal = unregisterGlobal;
-//# sourceMappingURL=global-utils.js.map
-
-/***/ }),
-
-/***/ 1522:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.isCompatible = exports._makeCompatibilityCheck = void 0;
-var version_1 = __nccwpck_require__(8996);
-var re = /^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;
+exports.event_innerEventCreationSteps = event_innerEventCreationSteps;
/**
- * Create a function to test an API version to see if it is compatible with the provided ownVersion.
- *
- * The returned function has the following semantics:
- * - Exact match is always compatible
- * - Major versions must match exactly
- * - 1.x package cannot use global 2.x package
- * - 2.x package cannot use global 1.x package
- * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API
- * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects
- * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3
- * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor
- * - Patch and build tag differences are not considered at this time
+ * Dispatches an event to an event target.
*
- * @param ownVersion version which should be checked against
+ * @param event - the event to dispatch
+ * @param target - event target
+ * @param legacyTargetOverrideFlag - legacy target override flag
+ * @param legacyOutputDidListenersThrowFlag - legacy output flag that returns
+ * whether the event listener's callback threw an exception
*/
-function _makeCompatibilityCheck(ownVersion) {
- var acceptedVersions = new Set([ownVersion]);
- var rejectedVersions = new Set();
- var myVersionMatch = ownVersion.match(re);
- if (!myVersionMatch) {
- // we cannot guarantee compatibility so we always return noop
- return function () { return false; };
+function event_dispatch(event, target, legacyTargetOverrideFlag, legacyOutputDidListenersThrowFlag) {
+ var e_1, _a, e_2, _b;
+ if (legacyTargetOverrideFlag === void 0) { legacyTargetOverrideFlag = false; }
+ if (legacyOutputDidListenersThrowFlag === void 0) { legacyOutputDidListenersThrowFlag = { value: false }; }
+ var clearTargets = false;
+ /**
+ * 1. Set event's dispatch flag.
+ */
+ event._dispatchFlag = true;
+ /**
+ * 2. Let targetOverride be target, if legacy target override flag is not
+ * given, and target's associated Document otherwise.
+ *
+ * _Note:_ legacy target override flag is only used by HTML and only when
+ * target is a Window object.
+ */
+ var targetOverride = target;
+ if (legacyTargetOverrideFlag) {
+ var doc = target._associatedDocument;
+ if (util_1.Guard.isDocumentNode(doc)) {
+ targetOverride = doc;
+ }
+ }
+ /**
+ * 3. Let activationTarget be null.
+ * 4. Let relatedTarget be the result of retargeting event's relatedTarget
+ * against target.
+ * 5. If target is not relatedTarget or target is event's relatedTarget,
+ * then:
+ */
+ var activationTarget = null;
+ var relatedTarget = TreeAlgorithm_1.tree_retarget(event._relatedTarget, target);
+ if (target !== relatedTarget || target === event._relatedTarget) {
+ /**
+ * 5.1. Let touchTargets be a new list.
+ * 5.2. For each touchTarget of event's touch target list, append the
+ * result of retargeting touchTarget against target to touchTargets.
+ * 5.3. Append to an event path with event, target, targetOverride,
+ * relatedTarget, touchTargets, and false.
+ * 5.4. Let isActivationEvent be true, if event is a MouseEvent object
+ * and event's type attribute is "click", and false otherwise.
+ * 5.5. If isActivationEvent is true and target has activation behavior,
+ * then set activationTarget to target.
+ * 5.6. Let slotable be target, if target is a slotable and is assigned,
+ * and null otherwise.
+ * 5.7. Let slot-in-closed-tree be false.
+ * 5.8. Let parent be the result of invoking target's get the parent with
+ * event.
+ */
+ var touchTargets = [];
+ try {
+ for (var _c = __values(event._touchTargetList), _d = _c.next(); !_d.done; _d = _c.next()) {
+ var touchTarget = _d.value;
+ touchTargets.push(TreeAlgorithm_1.tree_retarget(touchTarget, target));
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ event_appendToAnEventPath(event, target, targetOverride, relatedTarget, touchTargets, false);
+ var isActivationEvent = (util_1.Guard.isMouseEvent(event) && event._type === "click");
+ if (isActivationEvent && target._activationBehavior !== undefined) {
+ activationTarget = target;
+ }
+ var slotable = (util_1.Guard.isSlotable(target) && ShadowTreeAlgorithm_1.shadowTree_isAssigned(target)) ?
+ target : null;
+ var slotInClosedTree = false;
+ var parent = target._getTheParent(event);
+ /**
+ * 5.9. While parent is non-null:
+ */
+ while (parent !== null && util_1.Guard.isNode(parent)) {
+ /**
+ * 5.9.1 If slotable is non-null:
+ * 5.9.1.1. Assert: parent is a slot.
+ * 5.9.1.2. Set slotable to null.
+ * 5.9.1.3. If parent's root is a shadow root whose mode is "closed",
+ * then set slot-in-closed-tree to true.
+ */
+ if (slotable !== null) {
+ if (!util_1.Guard.isSlot(parent)) {
+ throw new Error("Parent node of a slotable should be a slot.");
+ }
+ slotable = null;
+ var root = TreeAlgorithm_1.tree_rootNode(parent, true);
+ if (util_1.Guard.isShadowRoot(root) && root._mode === "closed") {
+ slotInClosedTree = true;
+ }
+ }
+ /**
+ * 5.9.2 If parent is a slotable and is assigned, then set slotable to
+ * parent.
+ * 5.9.3. Let relatedTarget be the result of retargeting event's
+ * relatedTarget against parent.
+ * 5.9.4. Let touchTargets be a new list.
+ * 5.9.4. For each touchTarget of event's touch target list, append the
+ * result of retargeting touchTarget against parent to touchTargets.
+ */
+ if (util_1.Guard.isSlotable(parent) && ShadowTreeAlgorithm_1.shadowTree_isAssigned(parent)) {
+ slotable = parent;
+ }
+ relatedTarget = TreeAlgorithm_1.tree_retarget(event._relatedTarget, parent);
+ touchTargets = [];
+ try {
+ for (var _e = (e_2 = void 0, __values(event._touchTargetList)), _f = _e.next(); !_f.done; _f = _e.next()) {
+ var touchTarget = _f.value;
+ touchTargets.push(TreeAlgorithm_1.tree_retarget(touchTarget, parent));
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ /**
+ * 5.9.6. If parent is a Window object, or parent is a node and target's
+ * root is a shadow-including inclusive ancestor of parent, then:
+ */
+ if (util_1.Guard.isWindow(parent) || (util_1.Guard.isNode(parent) && util_1.Guard.isNode(target) &&
+ TreeAlgorithm_1.tree_isAncestorOf(TreeAlgorithm_1.tree_rootNode(target, true), parent, true, true))) {
+ /**
+ * 5.9.6.1. If isActivationEvent is true, event's bubbles attribute
+ * is true, activationTarget is null, and parent has activation
+ * behavior, then set activationTarget to parent.
+ * 5.9.6.2. Append to an event path with event, parent, null,
+ * relatedTarget, touchTargets, and slot-in-closed-tree.
+ */
+ if (isActivationEvent && event._bubbles && activationTarget === null &&
+ parent._activationBehavior) {
+ activationTarget = parent;
+ }
+ event_appendToAnEventPath(event, parent, null, relatedTarget, touchTargets, slotInClosedTree);
+ }
+ else if (parent === relatedTarget) {
+ /**
+ * 5.9.7. Otherwise, if parent is relatedTarget,
+ * then set parent to null.
+ */
+ parent = null;
+ }
+ else {
+ /**
+ * 5.9.8. Otherwise, set target to parent and then:
+ * 5.9.8.1. If isActivationEvent is true, activationTarget is null,
+ * and target has activation behavior, then set activationTarget
+ * to target.
+ * 5.9.8.2. Append to an event path with event, parent, target,
+ * relatedTarget, touchTargets, and slot-in-closed-tree.
+ */
+ target = parent;
+ if (isActivationEvent && activationTarget === null &&
+ target._activationBehavior) {
+ activationTarget = target;
+ }
+ event_appendToAnEventPath(event, parent, target, relatedTarget, touchTargets, slotInClosedTree);
+ }
+ /**
+ * 5.9.9. If parent is non-null, then set parent to the result of
+ * invoking parent's get the parent with event.
+ * 5.9.10. Set slot-in-closed-tree to false.
+ */
+ if (parent !== null) {
+ parent = parent._getTheParent(event);
+ }
+ slotInClosedTree = false;
+ }
+ /**
+ * 5.10. Let clearTargetsStruct be the last struct in event's path whose
+ * shadow-adjusted target is non-null.
+ */
+ var clearTargetsStruct = null;
+ var path = event._path;
+ for (var i = path.length - 1; i >= 0; i--) {
+ var struct = path[i];
+ if (struct.shadowAdjustedTarget !== null) {
+ clearTargetsStruct = struct;
+ break;
+ }
+ }
+ /**
+ * 5.11. Let clearTargets be true if clearTargetsStruct's shadow-adjusted
+ * target, clearTargetsStruct's relatedTarget, or an EventTarget object
+ * in clearTargetsStruct's touch target list is a node and its root is
+ * a shadow root, and false otherwise.
+ */
+ if (clearTargetsStruct !== null) {
+ if (util_1.Guard.isNode(clearTargetsStruct.shadowAdjustedTarget) &&
+ util_1.Guard.isShadowRoot(TreeAlgorithm_1.tree_rootNode(clearTargetsStruct.shadowAdjustedTarget, true))) {
+ clearTargets = true;
+ }
+ else if (util_1.Guard.isNode(clearTargetsStruct.relatedTarget) &&
+ util_1.Guard.isShadowRoot(TreeAlgorithm_1.tree_rootNode(clearTargetsStruct.relatedTarget, true))) {
+ clearTargets = true;
+ }
+ else {
+ for (var j = 0; j < clearTargetsStruct.touchTargetList.length; j++) {
+ var struct = clearTargetsStruct.touchTargetList[j];
+ if (util_1.Guard.isNode(struct) &&
+ util_1.Guard.isShadowRoot(TreeAlgorithm_1.tree_rootNode(struct, true))) {
+ clearTargets = true;
+ break;
+ }
+ }
+ }
+ }
+ /**
+ * 5.12. If activationTarget is non-null and activationTarget has
+ * legacy-pre-activation behavior, then run activationTarget's
+ * legacy-pre-activation behavior.
+ */
+ if (activationTarget !== null &&
+ activationTarget._legacyPreActivationBehavior !== undefined) {
+ activationTarget._legacyPreActivationBehavior(event);
+ }
+ /**
+ * 5.13. For each struct in event's path, in reverse order:
+ */
+ for (var i = path.length - 1; i >= 0; i--) {
+ var struct = path[i];
+ /**
+ * 5.13.1. If struct's shadow-adjusted target is non-null, then set
+ * event's eventPhase attribute to AT_TARGET.
+ * 5.13.2. Otherwise, set event's eventPhase attribute to
+ * CAPTURING_PHASE.
+ * 5.13.3. Invoke with struct, event, "capturing", and
+ * legacyOutputDidListenersThrowFlag if given.
+ */
+ if (struct.shadowAdjustedTarget !== null) {
+ event._eventPhase = interfaces_1.EventPhase.AtTarget;
+ }
+ else {
+ event._eventPhase = interfaces_1.EventPhase.Capturing;
+ }
+ event_invoke(struct, event, "capturing", legacyOutputDidListenersThrowFlag);
+ }
+ /**
+ * 5.14. For each struct in event's path
+ */
+ for (var i = 0; i < path.length; i++) {
+ var struct = path[i];
+ /**
+ * 5.14.1. If struct's shadow-adjusted target is non-null, then set
+ * event's eventPhase attribute to AT_TARGET.
+ * 5.14.2. Otherwise:
+ * 5.14.2.1. If event's bubbles attribute is false, then continue.
+ * 5.14.2.2. Set event's eventPhase attribute to BUBBLING_PHASE.
+ * 5.14.3. Invoke with struct, event, "bubbling", and
+ * legacyOutputDidListenersThrowFlag if given.
+ */
+ if (struct.shadowAdjustedTarget !== null) {
+ event._eventPhase = interfaces_1.EventPhase.AtTarget;
+ }
+ else {
+ if (!event._bubbles)
+ continue;
+ event._eventPhase = interfaces_1.EventPhase.Bubbling;
+ }
+ event_invoke(struct, event, "bubbling", legacyOutputDidListenersThrowFlag);
+ }
}
- var ownVersionParsed = {
- major: +myVersionMatch[1],
- minor: +myVersionMatch[2],
- patch: +myVersionMatch[3],
- prerelease: myVersionMatch[4],
- };
- // if ownVersion has a prerelease tag, versions must match exactly
- if (ownVersionParsed.prerelease != null) {
- return function isExactmatch(globalVersion) {
- return globalVersion === ownVersion;
- };
+ /**
+ * 6. Set event's eventPhase attribute to NONE.
+ * 7. Set event's currentTarget attribute to null.
+ * 8. Set event's path to the empty list.
+ * 9. Unset event's dispatch flag, stop propagation flag, and stop
+ * immediate propagation flag.
+ */
+ event._eventPhase = interfaces_1.EventPhase.None;
+ event._currentTarget = null;
+ event._path = [];
+ event._dispatchFlag = false;
+ event._stopPropagationFlag = false;
+ event._stopImmediatePropagationFlag = false;
+ /**
+ * 10. If clearTargets, then:
+ * 10.1. Set event's target to null.
+ * 10.2. Set event's relatedTarget to null.
+ * 10.3. Set event's touch target list to the empty list.
+ */
+ if (clearTargets) {
+ event._target = null;
+ event._relatedTarget = null;
+ event._touchTargetList = [];
}
- function _reject(v) {
- rejectedVersions.add(v);
- return false;
+ /**
+ * 11. If activationTarget is non-null, then:
+ * 11.1. If event's canceled flag is unset, then run activationTarget's
+ * activation behavior with event.
+ * 11.2. Otherwise, if activationTarget has legacy-canceled-activation
+ * behavior, then run activationTarget's legacy-canceled-activation
+ * behavior.
+ */
+ if (activationTarget !== null) {
+ if (!event._canceledFlag && activationTarget._activationBehavior !== undefined) {
+ activationTarget._activationBehavior(event);
+ }
+ else if (activationTarget._legacyCanceledActivationBehavior !== undefined) {
+ activationTarget._legacyCanceledActivationBehavior(event);
+ }
}
- function _accept(v) {
- acceptedVersions.add(v);
- return true;
+ /**
+ * 12. Return false if event's canceled flag is set, and true otherwise.
+ */
+ return !event._canceledFlag;
+}
+exports.event_dispatch = event_dispatch;
+/**
+ * Appends a new struct to an event's path.
+ *
+ * @param event - an event
+ * @param invocationTarget - the target of the invocation
+ * @param shadowAdjustedTarget - shadow-root adjusted event target
+ * @param relatedTarget - related event target
+ * @param touchTargets - a list of touch targets
+ * @param slotInClosedTree - if the target's parent is a closed shadow root
+ */
+function event_appendToAnEventPath(event, invocationTarget, shadowAdjustedTarget, relatedTarget, touchTargets, slotInClosedTree) {
+ /**
+ * 1. Let invocationTargetInShadowTree be false.
+ * 2. If invocationTarget is a node and its root is a shadow root, then
+ * set invocationTargetInShadowTree to true.
+ */
+ var invocationTargetInShadowTree = false;
+ if (util_1.Guard.isNode(invocationTarget) &&
+ util_1.Guard.isShadowRoot(TreeAlgorithm_1.tree_rootNode(invocationTarget))) {
+ invocationTargetInShadowTree = true;
+ }
+ /**
+ * 3. Let root-of-closed-tree be false.
+ * 4. If invocationTarget is a shadow root whose mode is "closed", then
+ * set root-of-closed-tree to true.
+ */
+ var rootOfClosedTree = false;
+ if (util_1.Guard.isShadowRoot(invocationTarget) &&
+ invocationTarget._mode === "closed") {
+ rootOfClosedTree = true;
+ }
+ /**
+ * 5. Append a new struct to event's path whose invocation target is
+ * invocationTarget, invocation-target-in-shadow-tree is
+ * invocationTargetInShadowTree, shadow-adjusted target is
+ * shadowAdjustedTarget, relatedTarget is relatedTarget,
+ * touch target list is touchTargets, root-of-closed-tree is
+ * root-of-closed-tree, and slot-in-closed-tree is slot-in-closed-tree.
+ */
+ event._path.push({
+ invocationTarget: invocationTarget,
+ invocationTargetInShadowTree: invocationTargetInShadowTree,
+ shadowAdjustedTarget: shadowAdjustedTarget,
+ relatedTarget: relatedTarget,
+ touchTargetList: touchTargets,
+ rootOfClosedTree: rootOfClosedTree,
+ slotInClosedTree: slotInClosedTree
+ });
+}
+exports.event_appendToAnEventPath = event_appendToAnEventPath;
+/**
+ * Invokes an event.
+ *
+ * @param struct - a struct defining event's path
+ * @param event - the event to invoke
+ * @param phase - event phase
+ * @param legacyOutputDidListenersThrowFlag - legacy output flag that returns
+ * whether the event listener's callback threw an exception
+ */
+function event_invoke(struct, event, phase, legacyOutputDidListenersThrowFlag) {
+ if (legacyOutputDidListenersThrowFlag === void 0) { legacyOutputDidListenersThrowFlag = { value: false }; }
+ /**
+ * 1. Set event's target to the shadow-adjusted target of the last struct
+ * in event's path, that is either struct or preceding struct, whose
+ * shadow-adjusted target is non-null.
+ */
+ var path = event._path;
+ var index = -1;
+ for (var i = 0; i < path.length; i++) {
+ if (path[i] === struct) {
+ index = i;
+ break;
+ }
}
- return function isCompatible(globalVersion) {
- if (acceptedVersions.has(globalVersion)) {
- return true;
+ if (index !== -1) {
+ var item = path[index];
+ if (item.shadowAdjustedTarget !== null) {
+ event._target = item.shadowAdjustedTarget;
}
- if (rejectedVersions.has(globalVersion)) {
- return false;
+ else if (index > 0) {
+ item = path[index - 1];
+ if (item.shadowAdjustedTarget !== null) {
+ event._target = item.shadowAdjustedTarget;
+ }
}
- var globalVersionMatch = globalVersion.match(re);
- if (!globalVersionMatch) {
- // cannot parse other version
- // we cannot guarantee compatibility so we always noop
- return _reject(globalVersion);
+ }
+ /**
+ * 2. Set event's relatedTarget to struct's relatedTarget.
+ * 3. Set event's touch target list to struct's touch target list.
+ * 4. If event's stop propagation flag is set, then return.
+ * 5. Initialize event's currentTarget attribute to struct's invocation
+ * target.
+ * 6. Let listeners be a clone of event's currentTarget attribute value's
+ * event listener list.
+ *
+ * _Note:_ This avoids event listeners added after this point from being
+ * run. Note that removal still has an effect due to the removed field.
+ */
+ event._relatedTarget = struct.relatedTarget;
+ event._touchTargetList = struct.touchTargetList;
+ if (event._stopPropagationFlag)
+ return;
+ event._currentTarget = struct.invocationTarget;
+ var currentTarget = event._currentTarget;
+ var targetListeners = currentTarget._eventListenerList;
+ var listeners = new (Array.bind.apply(Array, __spread([void 0], targetListeners)))();
+ /**
+ * 7. Let found be the result of running inner invoke with event, listeners,
+ * phase, and legacyOutputDidListenersThrowFlag if given.
+ */
+ var found = event_innerInvoke(event, listeners, phase, struct, legacyOutputDidListenersThrowFlag);
+ /**
+ * 8. If found is false and event's isTrusted attribute is true, then:
+ */
+ if (!found && event._isTrusted) {
+ /**
+ * 8.1. Let originalEventType be event's type attribute value.
+ * 8.2. If event's type attribute value is a match for any of the strings
+ * in the first column in the following table, set event's type attribute
+ * value to the string in the second column on the same row as the matching
+ * string, and return otherwise.
+ *
+ * Event type | Legacy event type
+ * -------------------------------------------------
+ * "animationend" | "webkitAnimationEnd"
+ * "animationiteration" | "webkitAnimationIteration"
+ * "animationstart" | "webkitAnimationStart"
+ * "transitionend" | "webkitTransitionEnd"
+ */
+ var originalEventType = event._type;
+ if (originalEventType === "animationend") {
+ event._type = "webkitAnimationEnd";
}
- var globalVersionParsed = {
- major: +globalVersionMatch[1],
- minor: +globalVersionMatch[2],
- patch: +globalVersionMatch[3],
- prerelease: globalVersionMatch[4],
- };
- // if globalVersion has a prerelease tag, versions must match exactly
- if (globalVersionParsed.prerelease != null) {
- return _reject(globalVersion);
+ else if (originalEventType === "animationiteration") {
+ event._type = "webkitAnimationIteration";
}
- // major versions must match
- if (ownVersionParsed.major !== globalVersionParsed.major) {
- return _reject(globalVersion);
+ else if (originalEventType === "animationstart") {
+ event._type = "webkitAnimationStart";
}
- if (ownVersionParsed.major === 0) {
- if (ownVersionParsed.minor === globalVersionParsed.minor &&
- ownVersionParsed.patch <= globalVersionParsed.patch) {
- return _accept(globalVersion);
+ else if (originalEventType === "transitionend") {
+ event._type = "webkitTransitionEnd";
+ }
+ /**
+ * 8.3. Inner invoke with event, listeners, phase, and
+ * legacyOutputDidListenersThrowFlag if given.
+ * 8.4. Set event's type attribute value to originalEventType.
+ */
+ event_innerInvoke(event, listeners, phase, struct, legacyOutputDidListenersThrowFlag);
+ event._type = originalEventType;
+ }
+}
+exports.event_invoke = event_invoke;
+/**
+ * Invokes an event.
+ *
+ * @param event - the event to invoke
+ * @param listeners - event listeners
+ * @param phase - event phase
+ * @param struct - a struct defining event's path
+ * @param legacyOutputDidListenersThrowFlag - legacy output flag that returns
+ * whether the event listener's callback threw an exception
+ */
+function event_innerInvoke(event, listeners, phase, struct, legacyOutputDidListenersThrowFlag) {
+ if (legacyOutputDidListenersThrowFlag === void 0) { legacyOutputDidListenersThrowFlag = { value: false }; }
+ /**
+ * 1. Let found be false.
+ * 2. For each listener in listeners, whose removed is false:
+ */
+ var found = false;
+ for (var i = 0; i < listeners.length; i++) {
+ var listener = listeners[i];
+ if (!listener.removed) {
+ /**
+ * 2.1. If event's type attribute value is not listener's type, then
+ * continue.
+ * 2.2. Set found to true.
+ * 2.3. If phase is "capturing" and listener's capture is false, then
+ * continue.
+ * 2.4. If phase is "bubbling" and listener's capture is true, then
+ * continue.
+ */
+ if (event._type !== listener.type)
+ continue;
+ found = true;
+ if (phase === "capturing" && !listener.capture)
+ continue;
+ if (phase === "bubbling" && listener.capture)
+ continue;
+ /**
+ * 2.5. If listener's once is true, then remove listener from event's
+ * currentTarget attribute value's event listener list.
+ */
+ if (listener.once && event._currentTarget !== null) {
+ var impl = event._currentTarget;
+ var index = -1;
+ for (var i_1 = 0; i_1 < impl._eventListenerList.length; i_1++) {
+ if (impl._eventListenerList[i_1] === listener) {
+ index = i_1;
+ break;
+ }
+ }
+ if (index !== -1) {
+ impl._eventListenerList.splice(index, 1);
+ }
}
- return _reject(globalVersion);
+ /**
+ * TODO: Implement realms
+ *
+ * 2.6. Let global be listener callback's associated Realm's global
+ * object.
+ */
+ var globalObject = undefined;
+ /**
+ * 2.7. Let currentEvent be undefined.
+ * 2.8. If global is a Window object, then:
+ * 2.8.1. Set currentEvent to global's current event.
+ * 2.8.2. If struct's invocation-target-in-shadow-tree is false, then
+ * set global's current event to event.
+ */
+ var currentEvent = undefined;
+ if (util_1.Guard.isWindow(globalObject)) {
+ currentEvent = globalObject._currentEvent;
+ if (struct.invocationTargetInShadowTree === false) {
+ globalObject._currentEvent = event;
+ }
+ }
+ /**
+ * 2.9. If listener's passive is true, then set event's in passive
+ * listener flag.
+ * 2.10. Call a user object's operation with listener's callback,
+ * "handleEvent", « event », and event's currentTarget attribute value.
+ */
+ if (listener.passive)
+ event._inPassiveListenerFlag = true;
+ try {
+ listener.callback.handleEvent.call(event._currentTarget, event);
+ }
+ catch (err) {
+ /**
+ * If this throws an exception, then:
+ * 2.10.1. Report the exception.
+ * 2.10.2. Set legacyOutputDidListenersThrowFlag if given.
+ *
+ * _Note:_ The legacyOutputDidListenersThrowFlag is only used by
+ * Indexed Database API.
+ * TODO: Report the exception
+ * See: https://html.spec.whatwg.org/multipage/webappapis.html#runtime-script-errors-in-documents
+ */
+ legacyOutputDidListenersThrowFlag.value = true;
+ }
+ /**
+ * 2.11. Unset event's in passive listener flag.
+ */
+ if (listener.passive)
+ event._inPassiveListenerFlag = false;
+ /**
+ * 2.12. If global is a Window object, then set global's current event
+ * to currentEvent.
+ */
+ if (util_1.Guard.isWindow(globalObject)) {
+ globalObject._currentEvent = currentEvent;
+ }
+ /**
+ * 2.13. If event's stop immediate propagation flag is set, then return
+ * found.
+ */
+ if (event._stopImmediatePropagationFlag)
+ return found;
}
- if (ownVersionParsed.minor <= globalVersionParsed.minor) {
- return _accept(globalVersion);
+ }
+ /**
+ * 3. Return found.
+ */
+ return found;
+}
+exports.event_innerInvoke = event_innerInvoke;
+/**
+ * Fires an event at target.
+ * @param e - event name
+ * @param target - event target
+ * @param eventConstructor - an event constructor, with a description of how
+ * IDL attributes are to be initialized
+ * @param idlAttributes - a dictionary describing how IDL attributes are
+ * to be initialized
+ * @param legacyTargetOverrideFlag - legacy target override flag
+ */
+function event_fireAnEvent(e, target, eventConstructor, idlAttributes, legacyTargetOverrideFlag) {
+ /**
+ * 1. If eventConstructor is not given, then let eventConstructor be Event.
+ */
+ if (eventConstructor === undefined) {
+ eventConstructor = EventImpl_1.EventImpl;
+ }
+ /**
+ * 2. Let event be the result of creating an event given eventConstructor,
+ * in the relevant Realm of target.
+ */
+ var event = event_createAnEvent(eventConstructor);
+ /**
+ * 3. Initialize event’s type attribute to e.
+ */
+ event._type = e;
+ /**
+ * 4. Initialize any other IDL attributes of event as described in the
+ * invocation of this algorithm.
+ * _Note:_ This also allows for the isTrusted attribute to be set to false.
+ */
+ if (idlAttributes) {
+ for (var key in idlAttributes) {
+ var idlObj = event;
+ idlObj[key] = idlAttributes[key];
}
- return _reject(globalVersion);
- };
+ }
+ /**
+ * 5. Return the result of dispatching event at target, with legacy target
+ * override flag set if set.
+ */
+ return event_dispatch(event, target, legacyTargetOverrideFlag);
}
-exports._makeCompatibilityCheck = _makeCompatibilityCheck;
+exports.event_fireAnEvent = event_fireAnEvent;
/**
- * Test an API version to see if it is compatible with this API.
- *
- * - Exact match is always compatible
- * - Major versions must match exactly
- * - 1.x package cannot use global 2.x package
- * - 2.x package cannot use global 1.x package
- * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API
- * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects
- * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3
- * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor
- * - Patch and build tag differences are not considered at this time
+ * Creates an event.
*
- * @param version version of the API requesting an instance of the global API
+ * @param eventInterface - the name of the event interface
*/
-exports.isCompatible = _makeCompatibilityCheck(version_1.VERSION);
-//# sourceMappingURL=semver.js.map
-
-/***/ }),
-
-/***/ 9957:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
+function event_createLegacyEvent(eventInterface) {
+ /**
+ * 1. Let constructor be null.
+ */
+ var constructor = null;
+ /**
+ * TODO: Implement in HTML DOM
+ * 2. If interface is an ASCII case-insensitive match for any of the strings
+ * in the first column in the following table, then set constructor to the
+ * interface in the second column on the same row as the matching string:
+ *
+ * String | Interface
+ * -------|----------
+ * "beforeunloadevent" | BeforeUnloadEvent
+ * "compositionevent" | CompositionEvent
+ * "customevent" | CustomEvent
+ * "devicemotionevent" | DeviceMotionEvent
+ * "deviceorientationevent" | DeviceOrientationEvent
+ * "dragevent" | DragEvent
+ * "event" | Event
+ * "events" | Event
+ * "focusevent" | FocusEvent
+ * "hashchangeevent" | HashChangeEvent
+ * "htmlevents" | Event
+ * "keyboardevent" | KeyboardEvent
+ * "messageevent" | MessageEvent
+ * "mouseevent" | MouseEvent
+ * "mouseevents" |
+ * "storageevent" | StorageEvent
+ * "svgevents" | Event
+ * "textevent" | CompositionEvent
+ * "touchevent" | TouchEvent
+ * "uievent" | UIEvent
+ * "uievents" | UIEvent
+ */
+ switch (eventInterface.toLowerCase()) {
+ case "beforeunloadevent":
+ break;
+ case "compositionevent":
+ break;
+ case "customevent":
+ constructor = CustomEventImpl_1.CustomEventImpl;
+ break;
+ case "devicemotionevent":
+ break;
+ case "deviceorientationevent":
+ break;
+ case "dragevent":
+ break;
+ case "event":
+ case "events":
+ constructor = EventImpl_1.EventImpl;
+ break;
+ case "focusevent":
+ break;
+ case "hashchangeevent":
+ break;
+ case "htmlevents":
+ break;
+ case "keyboardevent":
+ break;
+ case "messageevent":
+ break;
+ case "mouseevent":
+ break;
+ case "mouseevents":
+ break;
+ case "storageevent":
+ break;
+ case "svgevents":
+ break;
+ case "textevent":
+ break;
+ case "touchevent":
+ break;
+ case "uievent":
+ break;
+ case "uievents":
+ break;
+ }
+ /**
+ * 3. If constructor is null, then throw a "NotSupportedError" DOMException.
+ */
+ if (constructor === null) {
+ throw new DOMException_1.NotSupportedError("Event constructor not found for interface " + eventInterface + ".");
+ }
+ /**
+ * 4. If the interface indicated by constructor is not exposed on the
+ * relevant global object of the context object, then throw a
+ * "NotSupportedError" DOMException.
+ * _Note:_ Typically user agents disable support for touch events in some
+ * configurations, in which case this clause would be triggered for the
+ * interface TouchEvent.
+ */
+ // TODO: Implement realms
+ /**
+ * 5. Let event be the result of creating an event given constructor.
+ * 6. Initialize event’s type attribute to the empty string.
+ * 7. Initialize event’s timeStamp attribute to a DOMHighResTimeStamp
+ * representing the high resolution time from the time origin to now.
+ * 8. Initialize event’s isTrusted attribute to false.
+ * 9. Unset event’s initialized flag.
+ */
+ var event = new constructor("");
+ event._type = "";
+ event._timeStamp = new Date().getTime();
+ event._isTrusted = false;
+ event._initializedFlag = false;
+ /**
+ * 10. Return event.
+ */
+ return event;
+}
+exports.event_createLegacyEvent = event_createLegacyEvent;
+/**
+ * Getter of an event handler IDL attribute.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * @param eventTarget - event target
+ * @param name - event name
+ */
+function event_getterEventHandlerIDLAttribute(thisObj, name) {
+ /**
+ * 1. Let eventTarget be the result of determining the target of an event
+ * handler given this object and name.
+ * 2. If eventTarget is null, then return null.
+ * 3. Return the result of getting the current value of the event handler
+ * given eventTarget and name.
+ */
+ var eventTarget = event_determineTheTargetOfAnEventHandler(thisObj, name);
+ if (eventTarget === null)
+ return null;
+ return event_getTheCurrentValueOfAnEventHandler(eventTarget, name);
+}
+exports.event_getterEventHandlerIDLAttribute = event_getterEventHandlerIDLAttribute;
+/**
+ * Setter of an event handler IDL attribute.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param eventTarget - event target
+ * @param name - event name
+ * @param value - event handler
+ */
+function event_setterEventHandlerIDLAttribute(thisObj, name, value) {
+ /**
+ * 1. Let eventTarget be the result of determining the target of an event
+ * handler given this object and name.
+ * 2. If eventTarget is null, then return.
+ * 3. If the given value is null, then deactivate an event handler given
+ * eventTarget and name.
+ * 4. Otherwise:
+ * 4.1. Let handlerMap be eventTarget's event handler map.
+ * 4.2. Let eventHandler be handlerMap[name].
+ * 4.3. Set eventHandler's value to the given value.
+ * 4.4. Activate an event handler given eventTarget and name.
+ */
+ var eventTarget = event_determineTheTargetOfAnEventHandler(thisObj, name);
+ if (eventTarget === null)
+ return;
+ if (value === null) {
+ event_deactivateAnEventHandler(eventTarget, name);
+ }
+ else {
+ var handlerMap = eventTarget._eventHandlerMap;
+ var eventHandler = handlerMap["onabort"];
+ if (eventHandler !== undefined) {
+ eventHandler.value = value;
+ }
+ event_activateAnEventHandler(eventTarget, name);
+ }
+}
+exports.event_setterEventHandlerIDLAttribute = event_setterEventHandlerIDLAttribute;
+/**
+ * Determines the target of an event handler.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param eventTarget - event target
+ * @param name - event name
*/
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
-}));
-var __exportStar = (this && this.__exportStar) || function(m, exports) {
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-__exportStar(__nccwpck_require__(7200), exports);
-//# sourceMappingURL=index.js.map
-
-/***/ }),
-
-/***/ 9406:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
+function event_determineTheTargetOfAnEventHandler(eventTarget, name) {
+ // TODO: Implement in HTML DOM
+ return null;
+}
+exports.event_determineTheTargetOfAnEventHandler = event_determineTheTargetOfAnEventHandler;
+/**
+ * Gets the current value of an event handler.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * @param eventTarget - event target
+ * @param name - event name
+ */
+function event_getTheCurrentValueOfAnEventHandler(eventTarget, name) {
+ // TODO: Implement in HTML DOM
+ return null;
+}
+exports.event_getTheCurrentValueOfAnEventHandler = event_getTheCurrentValueOfAnEventHandler;
+/**
+ * Activates an event handler.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param eventTarget - event target
+ * @param name - event name
+ */
+function event_activateAnEventHandler(eventTarget, name) {
+ // TODO: Implement in HTML DOM
+}
+exports.event_activateAnEventHandler = event_activateAnEventHandler;
+/**
+ * Deactivates an event handler.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param eventTarget - event target
+ * @param name - event name
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports._globalThis = void 0;
-/** only globals that common to node and browsers are allowed */
-// eslint-disable-next-line node/no-unsupported-features/es-builtins
-exports._globalThis = typeof globalThis === 'object' ? globalThis : global;
-//# sourceMappingURL=globalThis.js.map
+function event_deactivateAnEventHandler(eventTarget, name) {
+ // TODO: Implement in HTML DOM
+}
+exports.event_deactivateAnEventHandler = event_deactivateAnEventHandler;
+//# sourceMappingURL=EventAlgorithm.js.map
/***/ }),
-/***/ 7200:
+/***/ 1312:
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
"use strict";
-/*
- * Copyright The OpenTelemetry Authors
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var util_1 = __nccwpck_require__(6195);
+/**
+ * Flattens the given options argument.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * @param options - options argument
+ */
+function eventTarget_flatten(options) {
+ /**
+ * 1. If options is a boolean, then return options.
+ * 2. Return options’s capture.
+ */
+ if (util_1.isBoolean(options)) {
+ return options;
+ }
+ else {
+ return options.capture || false;
+ }
+}
+exports.eventTarget_flatten = eventTarget_flatten;
+/**
+ * Flattens the given options argument.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param options - options argument
+ */
+function eventTarget_flattenMore(options) {
+ /**
+ * 1. Let capture be the result of flattening options.
+ * 2. Let once and passive be false.
+ * 3. If options is a dictionary, then set passive to options’s passive and
+ * once to options’s once.
+ * 4. Return capture, passive, and once.
+ */
+ var capture = eventTarget_flatten(options);
+ var once = false;
+ var passive = false;
+ if (!util_1.isBoolean(options)) {
+ once = options.once || false;
+ passive = options.passive || false;
+ }
+ return [capture, passive, once];
+}
+exports.eventTarget_flattenMore = eventTarget_flattenMore;
+/**
+ * Adds a new event listener.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param eventTarget - event target
+ * @param listener - event listener
*/
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
-}));
-var __exportStar = (this && this.__exportStar) || function(m, exports) {
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-__exportStar(__nccwpck_require__(9406), exports);
-//# sourceMappingURL=index.js.map
+function eventTarget_addEventListener(eventTarget, listener) {
+ /**
+ * 1. If eventTarget is a ServiceWorkerGlobalScope object, its service
+ * worker’s script resource’s has ever been evaluated flag is set, and
+ * listener’s type matches the type attribute value of any of the service
+ * worker events, then report a warning to the console that this might not
+ * give the expected results. [SERVICE-WORKERS]
+ */
+ // TODO: service worker
+ /**
+ * 2. If listener’s callback is null, then return.
+ */
+ if (listener.callback === null)
+ return;
+ /**
+ * 3. If eventTarget’s event listener list does not contain an event listener
+ * whose type is listener’s type, callback is listener’s callback, and capture
+ * is listener’s capture, then append listener to eventTarget’s event listener
+ * list.
+ */
+ for (var i = 0; i < eventTarget._eventListenerList.length; i++) {
+ var entry = eventTarget._eventListenerList[i];
+ if (entry.type === listener.type && entry.callback.handleEvent === listener.callback.handleEvent
+ && entry.capture === listener.capture) {
+ return;
+ }
+ }
+ eventTarget._eventListenerList.push(listener);
+}
+exports.eventTarget_addEventListener = eventTarget_addEventListener;
+/**
+ * Removes an event listener.
+ *
+ * @param eventTarget - event target
+ * @param listener - event listener
+ */
+function eventTarget_removeEventListener(eventTarget, listener, index) {
+ /**
+ * 1. If eventTarget is a ServiceWorkerGlobalScope object and its service
+ * worker’s set of event types to handle contains type, then report a
+ * warning to the console that this might not give the expected results.
+ * [SERVICE-WORKERS]
+ */
+ // TODO: service worker
+ /**
+ * 2. Set listener’s removed to true and remove listener from eventTarget’s
+ * event listener list.
+ */
+ listener.removed = true;
+ eventTarget._eventListenerList.splice(index, 1);
+}
+exports.eventTarget_removeEventListener = eventTarget_removeEventListener;
+/**
+ * Removes all event listeners.
+ *
+ * @param eventTarget - event target
+ */
+function eventTarget_removeAllEventListeners(eventTarget) {
+ /**
+ * To remove all event listeners, given an EventTarget object eventTarget,
+ * for each listener of eventTarget’s event listener list, remove an event
+ * listener with eventTarget and listener.
+ */
+ var e_1, _a;
+ try {
+ for (var _b = __values(eventTarget._eventListenerList), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var e = _c.value;
+ e.removed = true;
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ eventTarget._eventListenerList.length = 0;
+}
+exports.eventTarget_removeAllEventListeners = eventTarget_removeAllEventListeners;
+//# sourceMappingURL=EventTargetAlgorithm.js.map
/***/ }),
-/***/ 2368:
-/***/ ((__unused_webpack_module, exports) => {
+/***/ 5463:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
"use strict";
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.NoopTextMapPropagator = void 0;
-/**
- * No-op implementations of {@link TextMapPropagator}.
- */
-var NoopTextMapPropagator = /** @class */ (function () {
- function NoopTextMapPropagator() {
- }
- /** Noop inject function does nothing */
- NoopTextMapPropagator.prototype.inject = function (_context, _carrier) { };
- /** Noop extract function does nothing and returns the input context */
- NoopTextMapPropagator.prototype.extract = function (context, _carrier) {
- return context;
- };
- NoopTextMapPropagator.prototype.fields = function () {
- return [];
- };
- return NoopTextMapPropagator;
-}());
-exports.NoopTextMapPropagator = NoopTextMapPropagator;
-//# sourceMappingURL=NoopTextMapPropagator.js.map
-
-/***/ }),
-
-/***/ 865:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.defaultTextMapSetter = exports.defaultTextMapGetter = void 0;
-exports.defaultTextMapGetter = {
- get: function (carrier, key) {
- if (carrier == null) {
- return undefined;
- }
- return carrier[key];
- },
- keys: function (carrier) {
- if (carrier == null) {
- return [];
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
}
- return Object.keys(carrier);
- },
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
-exports.defaultTextMapSetter = {
- set: function (carrier, key, value) {
- if (carrier == null) {
- return;
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
}
- carrier[key] = value;
- },
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+var __spread = (this && this.__spread) || function () {
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
+ return ar;
};
-//# sourceMappingURL=TextMapPropagator.js.map
-
-/***/ }),
-
-/***/ 1462:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.NonRecordingSpan = void 0;
-var invalid_span_constants_1 = __nccwpck_require__(1760);
+var DOMImpl_1 = __nccwpck_require__(4177);
+var DOMException_1 = __nccwpck_require__(3166);
+var interfaces_1 = __nccwpck_require__(7305);
+var util_1 = __nccwpck_require__(5282);
+var util_2 = __nccwpck_require__(6195);
+var infra_1 = __nccwpck_require__(4251);
+var CustomElementAlgorithm_1 = __nccwpck_require__(5648);
+var TreeAlgorithm_1 = __nccwpck_require__(6620);
+var NodeIteratorAlgorithm_1 = __nccwpck_require__(9989);
+var ShadowTreeAlgorithm_1 = __nccwpck_require__(8733);
+var MutationObserverAlgorithm_1 = __nccwpck_require__(8157);
+var DOMAlgorithm_1 = __nccwpck_require__(9628);
+var DocumentAlgorithm_1 = __nccwpck_require__(2793);
/**
- * The NonRecordingSpan is the default {@link Span} that is used when no Span
- * implementation is available. All operations are no-op including context
- * propagation.
- */
-var NonRecordingSpan = /** @class */ (function () {
- function NonRecordingSpan(_spanContext) {
- if (_spanContext === void 0) { _spanContext = invalid_span_constants_1.INVALID_SPAN_CONTEXT; }
- this._spanContext = _spanContext;
- }
- // Returns a SpanContext.
- NonRecordingSpan.prototype.spanContext = function () {
- return this._spanContext;
- };
- // By default does nothing
- NonRecordingSpan.prototype.setAttribute = function (_key, _value) {
- return this;
- };
- // By default does nothing
- NonRecordingSpan.prototype.setAttributes = function (_attributes) {
- return this;
- };
- // By default does nothing
- NonRecordingSpan.prototype.addEvent = function (_name, _attributes) {
- return this;
- };
- // By default does nothing
- NonRecordingSpan.prototype.setStatus = function (_status) {
- return this;
- };
- // By default does nothing
- NonRecordingSpan.prototype.updateName = function (_name) {
- return this;
- };
- // By default does nothing
- NonRecordingSpan.prototype.end = function (_endTime) { };
- // isRecording always returns false for NonRecordingSpan.
- NonRecordingSpan.prototype.isRecording = function () {
- return false;
- };
- // By default does nothing
- NonRecordingSpan.prototype.recordException = function (_exception, _time) { };
- return NonRecordingSpan;
-}());
-exports.NonRecordingSpan = NonRecordingSpan;
-//# sourceMappingURL=NonRecordingSpan.js.map
-
-/***/ }),
-
-/***/ 7606:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Ensures pre-insertion validity of a node into a parent before a
+ * child.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param node - node to insert
+ * @param parent - parent node to receive node
+ * @param child - child node to insert node before
+ */
+function mutation_ensurePreInsertionValidity(node, parent, child) {
+ var e_1, _a, e_2, _b, e_3, _c, e_4, _d;
+ var parentNodeType = parent._nodeType;
+ var nodeNodeType = node._nodeType;
+ var childNodeType = child ? child._nodeType : null;
+ /**
+ * 1. If parent is not a Document, DocumentFragment, or Element node,
+ * throw a "HierarchyRequestError" DOMException.
+ */
+ if (parentNodeType !== interfaces_1.NodeType.Document &&
+ parentNodeType !== interfaces_1.NodeType.DocumentFragment &&
+ parentNodeType !== interfaces_1.NodeType.Element)
+ throw new DOMException_1.HierarchyRequestError("Only document, document fragment and element nodes can contain child nodes. Parent node is " + parent.nodeName + ".");
+ /**
+ * 2. If node is a host-including inclusive ancestor of parent, throw a
+ * "HierarchyRequestError" DOMException.
+ */
+ if (TreeAlgorithm_1.tree_isHostIncludingAncestorOf(parent, node, true))
+ throw new DOMException_1.HierarchyRequestError("The node to be inserted cannot be an inclusive ancestor of parent node. Node is " + node.nodeName + ", parent node is " + parent.nodeName + ".");
+ /**
+ * 3. If child is not null and its parent is not parent, then throw a
+ * "NotFoundError" DOMException.
+ */
+ if (child !== null && child._parent !== parent)
+ throw new DOMException_1.NotFoundError("The reference child node cannot be found under parent node. Child node is " + child.nodeName + ", parent node is " + parent.nodeName + ".");
+ /**
+ * 4. If node is not a DocumentFragment, DocumentType, Element, Text,
+ * ProcessingInstruction, or Comment node, throw a "HierarchyRequestError"
+ * DOMException.
+ */
+ if (nodeNodeType !== interfaces_1.NodeType.DocumentFragment &&
+ nodeNodeType !== interfaces_1.NodeType.DocumentType &&
+ nodeNodeType !== interfaces_1.NodeType.Element &&
+ nodeNodeType !== interfaces_1.NodeType.Text &&
+ nodeNodeType !== interfaces_1.NodeType.ProcessingInstruction &&
+ nodeNodeType !== interfaces_1.NodeType.CData &&
+ nodeNodeType !== interfaces_1.NodeType.Comment)
+ throw new DOMException_1.HierarchyRequestError("Only document fragment, document type, element, text, processing instruction, cdata section or comment nodes can be inserted. Node is " + node.nodeName + ".");
+ /**
+ * 5. If either node is a Text node and parent is a document, or node is a
+ * doctype and parent is not a document, throw a "HierarchyRequestError"
+ * DOMException.
+ */
+ if (nodeNodeType === interfaces_1.NodeType.Text &&
+ parentNodeType === interfaces_1.NodeType.Document)
+ throw new DOMException_1.HierarchyRequestError("Cannot insert a text node as a child of a document node. Node is " + node.nodeName + ".");
+ if (nodeNodeType === interfaces_1.NodeType.DocumentType &&
+ parentNodeType !== interfaces_1.NodeType.Document)
+ throw new DOMException_1.HierarchyRequestError("A document type node can only be inserted under a document node. Parent node is " + parent.nodeName + ".");
+ /**
+ * 6. If parent is a document, and any of the statements below, switched on
+ * node, are true, throw a "HierarchyRequestError" DOMException.
+ * - DocumentFragment node
+ * If node has more than one element child or has a Text node child.
+ * Otherwise, if node has one element child and either parent has an element
+ * child, child is a doctype, or child is not null and a doctype is
+ * following child.
+ * - element
+ * parent has an element child, child is a doctype, or child is not null and
+ * a doctype is following child.
+ * - doctype
+ * parent has a doctype child, child is non-null and an element is preceding
+ * child, or child is null and parent has an element child.
+ */
+ if (parentNodeType === interfaces_1.NodeType.Document) {
+ if (nodeNodeType === interfaces_1.NodeType.DocumentFragment) {
+ var eleCount = 0;
+ try {
+ for (var _e = __values(node._children), _f = _e.next(); !_f.done; _f = _e.next()) {
+ var childNode = _f.value;
+ if (childNode._nodeType === interfaces_1.NodeType.Element)
+ eleCount++;
+ else if (childNode._nodeType === interfaces_1.NodeType.Text)
+ throw new DOMException_1.HierarchyRequestError("Cannot insert text a node as a child of a document node. Node is " + childNode.nodeName + ".");
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ if (eleCount > 1) {
+ throw new DOMException_1.HierarchyRequestError("A document node can only have one document element node. Document fragment to be inserted has " + eleCount + " element nodes.");
+ }
+ else if (eleCount === 1) {
+ try {
+ for (var _g = __values(parent._children), _h = _g.next(); !_h.done; _h = _g.next()) {
+ var ele = _h.value;
+ if (ele._nodeType === interfaces_1.NodeType.Element)
+ throw new DOMException_1.HierarchyRequestError("The document node already has a document element node.");
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ if (child) {
+ if (childNodeType === interfaces_1.NodeType.DocumentType)
+ throw new DOMException_1.HierarchyRequestError("Cannot insert an element node before a document type node.");
+ var doctypeChild = child._nextSibling;
+ while (doctypeChild) {
+ if (doctypeChild._nodeType === interfaces_1.NodeType.DocumentType)
+ throw new DOMException_1.HierarchyRequestError("Cannot insert an element node before a document type node.");
+ doctypeChild = doctypeChild._nextSibling;
+ }
+ }
+ }
+ }
+ else if (nodeNodeType === interfaces_1.NodeType.Element) {
+ try {
+ for (var _j = __values(parent._children), _k = _j.next(); !_k.done; _k = _j.next()) {
+ var ele = _k.value;
+ if (ele._nodeType === interfaces_1.NodeType.Element)
+ throw new DOMException_1.HierarchyRequestError("Document already has a document element node. Node is " + node.nodeName + ".");
+ }
+ }
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
+ finally {
+ try {
+ if (_k && !_k.done && (_c = _j.return)) _c.call(_j);
+ }
+ finally { if (e_3) throw e_3.error; }
+ }
+ if (child) {
+ if (childNodeType === interfaces_1.NodeType.DocumentType)
+ throw new DOMException_1.HierarchyRequestError("Cannot insert an element node before a document type node. Node is " + node.nodeName + ".");
+ var doctypeChild = child._nextSibling;
+ while (doctypeChild) {
+ if (doctypeChild._nodeType === interfaces_1.NodeType.DocumentType)
+ throw new DOMException_1.HierarchyRequestError("Cannot insert an element node before a document type node. Node is " + node.nodeName + ".");
+ doctypeChild = doctypeChild._nextSibling;
+ }
+ }
+ }
+ else if (nodeNodeType === interfaces_1.NodeType.DocumentType) {
+ try {
+ for (var _l = __values(parent._children), _m = _l.next(); !_m.done; _m = _l.next()) {
+ var ele = _m.value;
+ if (ele._nodeType === interfaces_1.NodeType.DocumentType)
+ throw new DOMException_1.HierarchyRequestError("Document already has a document type node. Node is " + node.nodeName + ".");
+ }
+ }
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
+ finally {
+ try {
+ if (_m && !_m.done && (_d = _l.return)) _d.call(_l);
+ }
+ finally { if (e_4) throw e_4.error; }
+ }
+ if (child) {
+ var elementChild = child._previousSibling;
+ while (elementChild) {
+ if (elementChild._nodeType === interfaces_1.NodeType.Element)
+ throw new DOMException_1.HierarchyRequestError("Cannot insert a document type node before an element node. Node is " + node.nodeName + ".");
+ elementChild = elementChild._previousSibling;
+ }
+ }
+ else {
+ var elementChild = parent._firstChild;
+ while (elementChild) {
+ if (elementChild._nodeType === interfaces_1.NodeType.Element)
+ throw new DOMException_1.HierarchyRequestError("Cannot insert a document type node before an element node. Node is " + node.nodeName + ".");
+ elementChild = elementChild._nextSibling;
+ }
+ }
+ }
+ }
+}
+exports.mutation_ensurePreInsertionValidity = mutation_ensurePreInsertionValidity;
+/**
+ * Ensures pre-insertion validity of a node into a parent before a
+ * child, then adopts the node to the tree and inserts it.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.NoopTracer = void 0;
-var context_1 = __nccwpck_require__(7171);
-var context_utils_1 = __nccwpck_require__(3326);
-var NonRecordingSpan_1 = __nccwpck_require__(1462);
-var spancontext_utils_1 = __nccwpck_require__(9745);
-var context = context_1.ContextAPI.getInstance();
+ * @param node - node to insert
+ * @param parent - parent node to receive node
+ * @param child - child node to insert node before
+ */
+function mutation_preInsert(node, parent, child) {
+ /**
+ * 1. Ensure pre-insertion validity of node into parent before child.
+ * 2. Let reference child be child.
+ * 3. If reference child is node, set it to node’s next sibling.
+ * 4. Adopt node into parent’s node document.
+ * 5. Insert node into parent before reference child.
+ * 6. Return node.
+ */
+ mutation_ensurePreInsertionValidity(node, parent, child);
+ var referenceChild = child;
+ if (referenceChild === node)
+ referenceChild = node._nextSibling;
+ DocumentAlgorithm_1.document_adopt(node, parent._nodeDocument);
+ mutation_insert(node, parent, referenceChild);
+ return node;
+}
+exports.mutation_preInsert = mutation_preInsert;
/**
- * No-op implementations of {@link Tracer}.
- */
-var NoopTracer = /** @class */ (function () {
- function NoopTracer() {
+ * Inserts a node into a parent node before the given child node.
+ *
+ * @param node - node to insert
+ * @param parent - parent node to receive node
+ * @param child - child node to insert node before
+ * @param suppressObservers - whether to notify observers
+ */
+function mutation_insert(node, parent, child, suppressObservers) {
+ var e_5, _a;
+ // Optimized common case
+ if (child === null && node._nodeType !== interfaces_1.NodeType.DocumentFragment) {
+ mutation_insert_single(node, parent, suppressObservers);
+ return;
}
- // startSpan starts a noop span.
- NoopTracer.prototype.startSpan = function (name, options, context) {
- var root = Boolean(options === null || options === void 0 ? void 0 : options.root);
- if (root) {
- return new NonRecordingSpan_1.NonRecordingSpan();
+ /**
+ * 1. Let count be the number of children of node if it is a
+ * DocumentFragment node, and one otherwise.
+ */
+ var count = (node._nodeType === interfaces_1.NodeType.DocumentFragment ?
+ node._children.size : 1);
+ /**
+ * 2. If child is non-null, then:
+ */
+ if (child !== null) {
+ /**
+ * 2.1. For each live range whose start node is parent and start
+ * offset is greater than child's index, increase its start
+ * offset by count.
+ * 2.2. For each live range whose end node is parent and end
+ * offset is greater than child's index, increase its end
+ * offset by count.
+ */
+ if (DOMImpl_1.dom.rangeList.size !== 0) {
+ var index_1 = TreeAlgorithm_1.tree_index(child);
+ try {
+ for (var _b = __values(DOMImpl_1.dom.rangeList), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var range = _c.value;
+ if (range._start[0] === parent && range._start[1] > index_1) {
+ range._start[1] += count;
+ }
+ if (range._end[0] === parent && range._end[1] > index_1) {
+ range._end[1] += count;
+ }
+ }
+ }
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_5) throw e_5.error; }
+ }
}
- var parentFromContext = context && context_utils_1.getSpanContext(context);
- if (isSpanContext(parentFromContext) &&
- spancontext_utils_1.isSpanContextValid(parentFromContext)) {
- return new NonRecordingSpan_1.NonRecordingSpan(parentFromContext);
+ }
+ /**
+ * 3. Let nodes be node’s children, if node is a DocumentFragment node;
+ * otherwise « node ».
+ */
+ var nodes = node._nodeType === interfaces_1.NodeType.DocumentFragment ? new (Array.bind.apply(Array, __spread([void 0], node._children)))() : [node];
+ /**
+ * 4. If node is a DocumentFragment node, remove its children with the
+ * suppress observers flag set.
+ */
+ if (node._nodeType === interfaces_1.NodeType.DocumentFragment) {
+ while (node._firstChild) {
+ mutation_remove(node._firstChild, node, true);
}
- else {
- return new NonRecordingSpan_1.NonRecordingSpan();
+ }
+ /**
+ * 5. If node is a DocumentFragment node, then queue a tree mutation record
+ * for node with « », nodes, null, and null.
+ */
+ if (DOMImpl_1.dom.features.mutationObservers) {
+ if (node._nodeType === interfaces_1.NodeType.DocumentFragment) {
+ MutationObserverAlgorithm_1.observer_queueTreeMutationRecord(node, [], nodes, null, null);
}
- };
- NoopTracer.prototype.startActiveSpan = function (name, arg2, arg3, arg4) {
- var opts;
- var ctx;
- var fn;
- if (arguments.length < 2) {
- return;
+ }
+ /**
+ * 6. Let previousSibling be child’s previous sibling or parent’s last
+ * child if child is null.
+ */
+ var previousSibling = (child ? child._previousSibling : parent._lastChild);
+ var index = child === null ? -1 : TreeAlgorithm_1.tree_index(child);
+ /**
+ * 7. For each node in nodes, in tree order:
+ */
+ for (var i = 0; i < nodes.length; i++) {
+ var node_1 = nodes[i];
+ if (util_1.Guard.isElementNode(node_1)) {
+ // set document element node
+ if (util_1.Guard.isDocumentNode(parent)) {
+ parent._documentElement = node_1;
+ }
+ // mark that the document has namespaces
+ if (!node_1._nodeDocument._hasNamespaces && (node_1._namespace !== null ||
+ node_1._namespacePrefix !== null)) {
+ node_1._nodeDocument._hasNamespaces = true;
+ }
}
- else if (arguments.length === 2) {
- fn = arg2;
+ /**
+ * 7.1. If child is null, then append node to parent’s children.
+ * 7.2. Otherwise, insert node into parent’s children before child’s
+ * index.
+ */
+ node_1._parent = parent;
+ if (child === null) {
+ infra_1.set.append(parent._children, node_1);
}
- else if (arguments.length === 3) {
- opts = arg2;
- fn = arg3;
+ else {
+ infra_1.set.insert(parent._children, node_1, index);
+ index++;
+ }
+ // assign siblings and children for quick lookups
+ if (parent._firstChild === null) {
+ node_1._previousSibling = null;
+ node_1._nextSibling = null;
+ parent._firstChild = node_1;
+ parent._lastChild = node_1;
}
else {
- opts = arg2;
- ctx = arg3;
- fn = arg4;
+ var prev = (child ? child._previousSibling : parent._lastChild);
+ var next = (child ? child : null);
+ node_1._previousSibling = prev;
+ node_1._nextSibling = next;
+ if (prev)
+ prev._nextSibling = node_1;
+ if (next)
+ next._previousSibling = node_1;
+ if (!prev)
+ parent._firstChild = node_1;
+ if (!next)
+ parent._lastChild = node_1;
}
- var parentContext = ctx !== null && ctx !== void 0 ? ctx : context.active();
- var span = this.startSpan(name, opts, parentContext);
- var contextWithSpanSet = context_utils_1.setSpan(parentContext, span);
- return context.with(contextWithSpanSet, fn, undefined, span);
- };
- return NoopTracer;
-}());
-exports.NoopTracer = NoopTracer;
-function isSpanContext(spanContext) {
- return (typeof spanContext === 'object' &&
- typeof spanContext['spanId'] === 'string' &&
- typeof spanContext['traceId'] === 'string' &&
- typeof spanContext['traceFlags'] === 'number');
+ /**
+ * 7.3. If parent is a shadow host and node is a slotable, then
+ * assign a slot for node.
+ */
+ if (DOMImpl_1.dom.features.slots) {
+ if (parent._shadowRoot !== null && util_1.Guard.isSlotable(node_1)) {
+ ShadowTreeAlgorithm_1.shadowTree_assignASlot(node_1);
+ }
+ }
+ /**
+ * 7.4. If node is a Text node, run the child text content change
+ * steps for parent.
+ */
+ if (DOMImpl_1.dom.features.steps) {
+ if (util_1.Guard.isTextNode(node_1)) {
+ DOMAlgorithm_1.dom_runChildTextContentChangeSteps(parent);
+ }
+ }
+ /**
+ * 7.5. If parent's root is a shadow root, and parent is a slot
+ * whose assigned nodes is the empty list, then run signal
+ * a slot change for parent.
+ */
+ if (DOMImpl_1.dom.features.slots) {
+ if (util_1.Guard.isShadowRoot(TreeAlgorithm_1.tree_rootNode(parent)) &&
+ util_1.Guard.isSlot(parent) && util_2.isEmpty(parent._assignedNodes)) {
+ ShadowTreeAlgorithm_1.shadowTree_signalASlotChange(parent);
+ }
+ }
+ /**
+ * 7.6. Run assign slotables for a tree with node's root.
+ */
+ if (DOMImpl_1.dom.features.slots) {
+ ShadowTreeAlgorithm_1.shadowTree_assignSlotablesForATree(TreeAlgorithm_1.tree_rootNode(node_1));
+ }
+ /**
+ * 7.7. For each shadow-including inclusive descendant
+ * inclusiveDescendant of node, in shadow-including tree
+ * order:
+ */
+ var inclusiveDescendant = TreeAlgorithm_1.tree_getFirstDescendantNode(node_1, true, true);
+ while (inclusiveDescendant !== null) {
+ /**
+ * 7.7.1. Run the insertion steps with inclusiveDescendant.
+ */
+ if (DOMImpl_1.dom.features.steps) {
+ DOMAlgorithm_1.dom_runInsertionSteps(inclusiveDescendant);
+ }
+ if (DOMImpl_1.dom.features.customElements) {
+ /**
+ * 7.7.2. If inclusiveDescendant is connected, then:
+ */
+ if (util_1.Guard.isElementNode(inclusiveDescendant) &&
+ ShadowTreeAlgorithm_1.shadowTree_isConnected(inclusiveDescendant)) {
+ if (util_1.Guard.isCustomElementNode(inclusiveDescendant)) {
+ /**
+ * 7.7.2.1. If inclusiveDescendant is custom, then enqueue a custom
+ * element callback reaction with inclusiveDescendant, callback name
+ * "connectedCallback", and an empty argument list.
+ */
+ CustomElementAlgorithm_1.customElement_enqueueACustomElementCallbackReaction(inclusiveDescendant, "connectedCallback", []);
+ }
+ else {
+ /**
+ * 7.7.2.2. Otherwise, try to upgrade inclusiveDescendant.
+ */
+ CustomElementAlgorithm_1.customElement_tryToUpgrade(inclusiveDescendant);
+ }
+ }
+ }
+ inclusiveDescendant = TreeAlgorithm_1.tree_getNextDescendantNode(node_1, inclusiveDescendant, true, true);
+ }
+ }
+ /**
+ * 8. If suppress observers flag is unset, then queue a tree mutation record
+ * for parent with nodes, « », previousSibling, and child.
+ */
+ if (DOMImpl_1.dom.features.mutationObservers) {
+ if (!suppressObservers) {
+ MutationObserverAlgorithm_1.observer_queueTreeMutationRecord(parent, nodes, [], previousSibling, child);
+ }
+ }
}
-//# sourceMappingURL=NoopTracer.js.map
-
-/***/ }),
-
-/***/ 3259:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.NoopTracerProvider = void 0;
-var NoopTracer_1 = __nccwpck_require__(7606);
+exports.mutation_insert = mutation_insert;
/**
- * An implementation of the {@link TracerProvider} which returns an impotent
- * Tracer for all calls to `getTracer`.
+ * Inserts a node into a parent node. Optimized routine for the common case where
+ * node is not a document fragment node and it has no child nodes.
*
- * All operations are no-op.
- */
-var NoopTracerProvider = /** @class */ (function () {
- function NoopTracerProvider() {
+ * @param node - node to insert
+ * @param parent - parent node to receive node
+ * @param suppressObservers - whether to notify observers
+ */
+function mutation_insert_single(node, parent, suppressObservers) {
+ /**
+ * 1. Let count be the number of children of node if it is a
+ * DocumentFragment node, and one otherwise.
+ * 2. If child is non-null, then:
+ * 2.1. For each live range whose start node is parent and start
+ * offset is greater than child's index, increase its start
+ * offset by count.
+ * 2.2. For each live range whose end node is parent and end
+ * offset is greater than child's index, increase its end
+ * offset by count.
+ * 3. Let nodes be node’s children, if node is a DocumentFragment node;
+ * otherwise « node ».
+ * 4. If node is a DocumentFragment node, remove its children with the
+ * suppress observers flag set.
+ * 5. If node is a DocumentFragment node, then queue a tree mutation record
+ * for node with « », nodes, null, and null.
+ */
+ /**
+ * 6. Let previousSibling be child’s previous sibling or parent’s last
+ * child if child is null.
+ */
+ var previousSibling = parent._lastChild;
+ // set document element node
+ if (util_1.Guard.isElementNode(node)) {
+ // set document element node
+ if (util_1.Guard.isDocumentNode(parent)) {
+ parent._documentElement = node;
+ }
+ // mark that the document has namespaces
+ if (!node._nodeDocument._hasNamespaces && (node._namespace !== null ||
+ node._namespacePrefix !== null)) {
+ node._nodeDocument._hasNamespaces = true;
+ }
+ }
+ /**
+ * 7. For each node in nodes, in tree order:
+ * 7.1. If child is null, then append node to parent’s children.
+ * 7.2. Otherwise, insert node into parent’s children before child’s
+ * index.
+ */
+ node._parent = parent;
+ parent._children.add(node);
+ // assign siblings and children for quick lookups
+ if (parent._firstChild === null) {
+ node._previousSibling = null;
+ node._nextSibling = null;
+ parent._firstChild = node;
+ parent._lastChild = node;
}
- NoopTracerProvider.prototype.getTracer = function (_name, _version) {
- return new NoopTracer_1.NoopTracer();
- };
- return NoopTracerProvider;
-}());
-exports.NoopTracerProvider = NoopTracerProvider;
-//# sourceMappingURL=NoopTracerProvider.js.map
-
-/***/ }),
-
-/***/ 3503:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.ProxyTracer = void 0;
-var NoopTracer_1 = __nccwpck_require__(7606);
-var NOOP_TRACER = new NoopTracer_1.NoopTracer();
-/**
- * Proxy tracer provided by the proxy tracer provider
- */
-var ProxyTracer = /** @class */ (function () {
- function ProxyTracer(_provider, name, version) {
- this._provider = _provider;
- this.name = name;
- this.version = version;
+ else {
+ var prev = parent._lastChild;
+ node._previousSibling = prev;
+ node._nextSibling = null;
+ if (prev)
+ prev._nextSibling = node;
+ if (!prev)
+ parent._firstChild = node;
+ parent._lastChild = node;
}
- ProxyTracer.prototype.startSpan = function (name, options, context) {
- return this._getTracer().startSpan(name, options, context);
- };
- ProxyTracer.prototype.startActiveSpan = function (_name, _options, _context, _fn) {
- var tracer = this._getTracer();
- return Reflect.apply(tracer.startActiveSpan, tracer, arguments);
- };
/**
- * Try to get a tracer from the proxy tracer provider.
- * If the proxy tracer provider has no delegate, return a noop tracer.
+ * 7.3. If parent is a shadow host and node is a slotable, then
+ * assign a slot for node.
*/
- ProxyTracer.prototype._getTracer = function () {
- if (this._delegate) {
- return this._delegate;
+ if (DOMImpl_1.dom.features.slots) {
+ if (parent._shadowRoot !== null && util_1.Guard.isSlotable(node)) {
+ ShadowTreeAlgorithm_1.shadowTree_assignASlot(node);
}
- var tracer = this._provider.getDelegateTracer(this.name, this.version);
- if (!tracer) {
- return NOOP_TRACER;
+ }
+ /**
+ * 7.4. If node is a Text node, run the child text content change
+ * steps for parent.
+ */
+ if (DOMImpl_1.dom.features.steps) {
+ if (util_1.Guard.isTextNode(node)) {
+ DOMAlgorithm_1.dom_runChildTextContentChangeSteps(parent);
}
- this._delegate = tracer;
- return this._delegate;
- };
- return ProxyTracer;
-}());
-exports.ProxyTracer = ProxyTracer;
-//# sourceMappingURL=ProxyTracer.js.map
-
-/***/ }),
-
-/***/ 2285:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.ProxyTracerProvider = void 0;
-var ProxyTracer_1 = __nccwpck_require__(3503);
-var NoopTracerProvider_1 = __nccwpck_require__(3259);
-var NOOP_TRACER_PROVIDER = new NoopTracerProvider_1.NoopTracerProvider();
-/**
- * Tracer provider which provides {@link ProxyTracer}s.
- *
- * Before a delegate is set, tracers provided are NoOp.
- * When a delegate is set, traces are provided from the delegate.
- * When a delegate is set after tracers have already been provided,
- * all tracers already provided will use the provided delegate implementation.
- */
-var ProxyTracerProvider = /** @class */ (function () {
- function ProxyTracerProvider() {
}
/**
- * Get a {@link ProxyTracer}
+ * 7.5. If parent's root is a shadow root, and parent is a slot
+ * whose assigned nodes is the empty list, then run signal
+ * a slot change for parent.
*/
- ProxyTracerProvider.prototype.getTracer = function (name, version) {
- var _a;
- return ((_a = this.getDelegateTracer(name, version)) !== null && _a !== void 0 ? _a : new ProxyTracer_1.ProxyTracer(this, name, version));
- };
- ProxyTracerProvider.prototype.getDelegate = function () {
- var _a;
- return (_a = this._delegate) !== null && _a !== void 0 ? _a : NOOP_TRACER_PROVIDER;
- };
+ if (DOMImpl_1.dom.features.slots) {
+ if (util_1.Guard.isShadowRoot(TreeAlgorithm_1.tree_rootNode(parent)) &&
+ util_1.Guard.isSlot(parent) && util_2.isEmpty(parent._assignedNodes)) {
+ ShadowTreeAlgorithm_1.shadowTree_signalASlotChange(parent);
+ }
+ }
/**
- * Set the delegate tracer provider
+ * 7.6. Run assign slotables for a tree with node's root.
*/
- ProxyTracerProvider.prototype.setDelegate = function (delegate) {
- this._delegate = delegate;
- };
- ProxyTracerProvider.prototype.getDelegateTracer = function (name, version) {
- var _a;
- return (_a = this._delegate) === null || _a === void 0 ? void 0 : _a.getTracer(name, version);
- };
- return ProxyTracerProvider;
-}());
-exports.ProxyTracerProvider = ProxyTracerProvider;
-//# sourceMappingURL=ProxyTracerProvider.js.map
-
-/***/ }),
-
-/***/ 9671:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=Sampler.js.map
-
-/***/ }),
-
-/***/ 3209:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
+ if (DOMImpl_1.dom.features.slots) {
+ ShadowTreeAlgorithm_1.shadowTree_assignSlotablesForATree(TreeAlgorithm_1.tree_rootNode(node));
+ }
+ /**
+ * 7.7. For each shadow-including inclusive descendant
+ * inclusiveDescendant of node, in shadow-including tree
+ * order:
+ * 7.7.1. Run the insertion steps with inclusiveDescendant.
+ */
+ if (DOMImpl_1.dom.features.steps) {
+ DOMAlgorithm_1.dom_runInsertionSteps(node);
+ }
+ if (DOMImpl_1.dom.features.customElements) {
+ /**
+ * 7.7.2. If inclusiveDescendant is connected, then:
+ */
+ if (util_1.Guard.isElementNode(node) &&
+ ShadowTreeAlgorithm_1.shadowTree_isConnected(node)) {
+ if (util_1.Guard.isCustomElementNode(node)) {
+ /**
+ * 7.7.2.1. If inclusiveDescendant is custom, then enqueue a custom
+ * element callback reaction with inclusiveDescendant, callback name
+ * "connectedCallback", and an empty argument list.
+ */
+ CustomElementAlgorithm_1.customElement_enqueueACustomElementCallbackReaction(node, "connectedCallback", []);
+ }
+ else {
+ /**
+ * 7.7.2.2. Otherwise, try to upgrade inclusiveDescendant.
+ */
+ CustomElementAlgorithm_1.customElement_tryToUpgrade(node);
+ }
+ }
+ }
+ /**
+ * 8. If suppress observers flag is unset, then queue a tree mutation record
+ * for parent with nodes, « », previousSibling, and child.
+ */
+ if (DOMImpl_1.dom.features.mutationObservers) {
+ if (!suppressObservers) {
+ MutationObserverAlgorithm_1.observer_queueTreeMutationRecord(parent, [node], [], previousSibling, null);
+ }
+ }
+}
+/**
+ * Appends a node to the children of a parent node.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param node - a node
+ * @param parent - the parent to receive node
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.SamplingDecision = void 0;
+function mutation_append(node, parent) {
+ /**
+ * To append a node to a parent, pre-insert node into parent before null.
+ */
+ return mutation_preInsert(node, parent, null);
+}
+exports.mutation_append = mutation_append;
/**
- * A sampling decision that determines how a {@link Span} will be recorded
- * and collected.
- */
-var SamplingDecision;
-(function (SamplingDecision) {
+ * Replaces a node with another node.
+ *
+ * @param child - child node to remove
+ * @param node - node to insert
+ * @param parent - parent node to receive node
+ */
+function mutation_replace(child, node, parent) {
+ var e_6, _a, e_7, _b, e_8, _c, e_9, _d;
+ /**
+ * 1. If parent is not a Document, DocumentFragment, or Element node,
+ * throw a "HierarchyRequestError" DOMException.
+ */
+ if (parent._nodeType !== interfaces_1.NodeType.Document &&
+ parent._nodeType !== interfaces_1.NodeType.DocumentFragment &&
+ parent._nodeType !== interfaces_1.NodeType.Element)
+ throw new DOMException_1.HierarchyRequestError("Only document, document fragment and element nodes can contain child nodes. Parent node is " + parent.nodeName + ".");
+ /**
+ * 2. If node is a host-including inclusive ancestor of parent, throw a
+ * "HierarchyRequestError" DOMException.
+ */
+ if (TreeAlgorithm_1.tree_isHostIncludingAncestorOf(parent, node, true))
+ throw new DOMException_1.HierarchyRequestError("The node to be inserted cannot be an ancestor of parent node. Node is " + node.nodeName + ", parent node is " + parent.nodeName + ".");
+ /**
+ * 3. If child’s parent is not parent, then throw a "NotFoundError"
+ * DOMException.
+ */
+ if (child._parent !== parent)
+ throw new DOMException_1.NotFoundError("The reference child node cannot be found under parent node. Child node is " + child.nodeName + ", parent node is " + parent.nodeName + ".");
+ /**
+ * 4. If node is not a DocumentFragment, DocumentType, Element, Text,
+ * ProcessingInstruction, or Comment node, throw a "HierarchyRequestError"
+ * DOMException.
+ */
+ if (node._nodeType !== interfaces_1.NodeType.DocumentFragment &&
+ node._nodeType !== interfaces_1.NodeType.DocumentType &&
+ node._nodeType !== interfaces_1.NodeType.Element &&
+ node._nodeType !== interfaces_1.NodeType.Text &&
+ node._nodeType !== interfaces_1.NodeType.ProcessingInstruction &&
+ node._nodeType !== interfaces_1.NodeType.CData &&
+ node._nodeType !== interfaces_1.NodeType.Comment)
+ throw new DOMException_1.HierarchyRequestError("Only document fragment, document type, element, text, processing instruction, cdata section or comment nodes can be inserted. Node is " + node.nodeName + ".");
+ /**
+ * 5. If either node is a Text node and parent is a document, or node is a
+ * doctype and parent is not a document, throw a "HierarchyRequestError"
+ * DOMException.
+ */
+ if (node._nodeType === interfaces_1.NodeType.Text &&
+ parent._nodeType === interfaces_1.NodeType.Document)
+ throw new DOMException_1.HierarchyRequestError("Cannot insert a text node as a child of a document node. Node is " + node.nodeName + ".");
+ if (node._nodeType === interfaces_1.NodeType.DocumentType &&
+ parent._nodeType !== interfaces_1.NodeType.Document)
+ throw new DOMException_1.HierarchyRequestError("A document type node can only be inserted under a document node. Parent node is " + parent.nodeName + ".");
+ /**
+ * 6. If parent is a document, and any of the statements below, switched on
+ * node, are true, throw a "HierarchyRequestError" DOMException.
+ * - DocumentFragment node
+ * If node has more than one element child or has a Text node child.
+ * Otherwise, if node has one element child and either parent has an element
+ * child that is not child or a doctype is following child.
+ * - element
+ * parent has an element child that is not child or a doctype is
+ * following child.
+ * - doctype
+ * parent has a doctype child that is not child, or an element is
+ * preceding child.
+ */
+ if (parent._nodeType === interfaces_1.NodeType.Document) {
+ if (node._nodeType === interfaces_1.NodeType.DocumentFragment) {
+ var eleCount = 0;
+ try {
+ for (var _e = __values(node._children), _f = _e.next(); !_f.done; _f = _e.next()) {
+ var childNode = _f.value;
+ if (childNode._nodeType === interfaces_1.NodeType.Element)
+ eleCount++;
+ else if (childNode._nodeType === interfaces_1.NodeType.Text)
+ throw new DOMException_1.HierarchyRequestError("Cannot insert text a node as a child of a document node. Node is " + childNode.nodeName + ".");
+ }
+ }
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
+ finally {
+ try {
+ if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
+ }
+ finally { if (e_6) throw e_6.error; }
+ }
+ if (eleCount > 1) {
+ throw new DOMException_1.HierarchyRequestError("A document node can only have one document element node. Document fragment to be inserted has " + eleCount + " element nodes.");
+ }
+ else if (eleCount === 1) {
+ try {
+ for (var _g = __values(parent._children), _h = _g.next(); !_h.done; _h = _g.next()) {
+ var ele = _h.value;
+ if (ele._nodeType === interfaces_1.NodeType.Element && ele !== child)
+ throw new DOMException_1.HierarchyRequestError("The document node already has a document element node.");
+ }
+ }
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
+ finally {
+ try {
+ if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
+ }
+ finally { if (e_7) throw e_7.error; }
+ }
+ var doctypeChild = child._nextSibling;
+ while (doctypeChild) {
+ if (doctypeChild._nodeType === interfaces_1.NodeType.DocumentType)
+ throw new DOMException_1.HierarchyRequestError("Cannot insert an element node before a document type node.");
+ doctypeChild = doctypeChild._nextSibling;
+ }
+ }
+ }
+ else if (node._nodeType === interfaces_1.NodeType.Element) {
+ try {
+ for (var _j = __values(parent._children), _k = _j.next(); !_k.done; _k = _j.next()) {
+ var ele = _k.value;
+ if (ele._nodeType === interfaces_1.NodeType.Element && ele !== child)
+ throw new DOMException_1.HierarchyRequestError("Document already has a document element node. Node is " + node.nodeName + ".");
+ }
+ }
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
+ finally {
+ try {
+ if (_k && !_k.done && (_c = _j.return)) _c.call(_j);
+ }
+ finally { if (e_8) throw e_8.error; }
+ }
+ var doctypeChild = child._nextSibling;
+ while (doctypeChild) {
+ if (doctypeChild._nodeType === interfaces_1.NodeType.DocumentType)
+ throw new DOMException_1.HierarchyRequestError("Cannot insert an element node before a document type node. Node is " + node.nodeName + ".");
+ doctypeChild = doctypeChild._nextSibling;
+ }
+ }
+ else if (node._nodeType === interfaces_1.NodeType.DocumentType) {
+ try {
+ for (var _l = __values(parent._children), _m = _l.next(); !_m.done; _m = _l.next()) {
+ var ele = _m.value;
+ if (ele._nodeType === interfaces_1.NodeType.DocumentType && ele !== child)
+ throw new DOMException_1.HierarchyRequestError("Document already has a document type node. Node is " + node.nodeName + ".");
+ }
+ }
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
+ finally {
+ try {
+ if (_m && !_m.done && (_d = _l.return)) _d.call(_l);
+ }
+ finally { if (e_9) throw e_9.error; }
+ }
+ var elementChild = child._previousSibling;
+ while (elementChild) {
+ if (elementChild._nodeType === interfaces_1.NodeType.Element)
+ throw new DOMException_1.HierarchyRequestError("Cannot insert a document type node before an element node. Node is " + node.nodeName + ".");
+ elementChild = elementChild._previousSibling;
+ }
+ }
+ }
/**
- * `Span.isRecording() === false`, span will not be recorded and all events
- * and attributes will be dropped.
+ * 7. Let reference child be child’s next sibling.
+ * 8. If reference child is node, set it to node’s next sibling.
+ * 8. Let previousSibling be child’s previous sibling.
*/
- SamplingDecision[SamplingDecision["NOT_RECORD"] = 0] = "NOT_RECORD";
+ var referenceChild = child._nextSibling;
+ if (referenceChild === node)
+ referenceChild = node._nextSibling;
+ var previousSibling = child._previousSibling;
/**
- * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags}
- * MUST NOT be set.
+ * 10. Adopt node into parent’s node document.
+ * 11. Let removedNodes be the empty list.
*/
- SamplingDecision[SamplingDecision["RECORD"] = 1] = "RECORD";
+ DocumentAlgorithm_1.document_adopt(node, parent._nodeDocument);
+ var removedNodes = [];
/**
- * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags}
- * MUST be set.
+ * 12. If child’s parent is not null, then:
*/
- SamplingDecision[SamplingDecision["RECORD_AND_SAMPLED"] = 2] = "RECORD_AND_SAMPLED";
-})(SamplingDecision = exports.SamplingDecision || (exports.SamplingDecision = {}));
-//# sourceMappingURL=SamplingResult.js.map
-
-/***/ }),
-
-/***/ 955:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
+ if (child._parent !== null) {
+ /**
+ * 12.1. Set removedNodes to [child].
+ * 12.2. Remove child from its parent with the suppress observers flag
+ * set.
+ */
+ removedNodes.push(child);
+ mutation_remove(child, child._parent, true);
+ }
+ /**
+ * 13. Let nodes be node’s children if node is a DocumentFragment node;
+ * otherwise [node].
+ */
+ var nodes = [];
+ if (node._nodeType === interfaces_1.NodeType.DocumentFragment) {
+ nodes = Array.from(node._children);
+ }
+ else {
+ nodes.push(node);
+ }
+ /**
+ * 14. Insert node into parent before reference child with the suppress
+ * observers flag set.
+ */
+ mutation_insert(node, parent, referenceChild, true);
+ /**
+ * 15. Queue a tree mutation record for parent with nodes, removedNodes,
+ * previousSibling, and reference child.
+ */
+ if (DOMImpl_1.dom.features.mutationObservers) {
+ MutationObserverAlgorithm_1.observer_queueTreeMutationRecord(parent, nodes, removedNodes, previousSibling, referenceChild);
+ }
+ /**
+ * 16. Return child.
+ */
+ return child;
+}
+exports.mutation_replace = mutation_replace;
+/**
+ * Replaces all nodes of a parent with the given node.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param node - node to insert
+ * @param parent - parent node to receive node
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=SpanOptions.js.map
-
-/***/ }),
-
-/***/ 7492:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+function mutation_replaceAll(node, parent) {
+ var e_10, _a;
+ /**
+ * 1. If node is not null, adopt node into parent’s node document.
+ */
+ if (node !== null) {
+ DocumentAlgorithm_1.document_adopt(node, parent._nodeDocument);
+ }
+ /**
+ * 2. Let removedNodes be parent’s children.
+ */
+ var removedNodes = Array.from(parent._children);
+ /**
+ * 3. Let addedNodes be the empty list.
+ * 4. If node is DocumentFragment node, then set addedNodes to node’s
+ * children.
+ * 5. Otherwise, if node is non-null, set addedNodes to [node].
+ */
+ var addedNodes = [];
+ if (node && node._nodeType === interfaces_1.NodeType.DocumentFragment) {
+ addedNodes = Array.from(node._children);
+ }
+ else if (node !== null) {
+ addedNodes.push(node);
+ }
+ try {
+ /**
+ * 6. Remove all parent’s children, in tree order, with the suppress
+ * observers flag set.
+ */
+ for (var removedNodes_1 = __values(removedNodes), removedNodes_1_1 = removedNodes_1.next(); !removedNodes_1_1.done; removedNodes_1_1 = removedNodes_1.next()) {
+ var childNode = removedNodes_1_1.value;
+ mutation_remove(childNode, parent, true);
+ }
+ }
+ catch (e_10_1) { e_10 = { error: e_10_1 }; }
+ finally {
+ try {
+ if (removedNodes_1_1 && !removedNodes_1_1.done && (_a = removedNodes_1.return)) _a.call(removedNodes_1);
+ }
+ finally { if (e_10) throw e_10.error; }
+ }
+ /**
+ * 7. If node is not null, then insert node into parent before null with the
+ * suppress observers flag set.
+ */
+ if (node !== null) {
+ mutation_insert(node, parent, null, true);
+ }
+ /**
+ * 8. Queue a tree mutation record for parent with addedNodes, removedNodes,
+ * null, and null.
+ */
+ if (DOMImpl_1.dom.features.mutationObservers) {
+ MutationObserverAlgorithm_1.observer_queueTreeMutationRecord(parent, addedNodes, removedNodes, null, null);
+ }
+}
+exports.mutation_replaceAll = mutation_replaceAll;
+/**
+ * Ensures pre-removal validity of a child node from a parent, then
+ * removes it.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param child - child node to remove
+ * @param parent - parent node
+ */
+function mutation_preRemove(child, parent) {
+ /**
+ * 1. If child’s parent is not parent, then throw a "NotFoundError"
+ * DOMException.
+ * 2. Remove child from parent.
+ * 3. Return child.
+ */
+ if (child._parent !== parent)
+ throw new DOMException_1.NotFoundError("The child node cannot be found under parent node. Child node is " + child.nodeName + ", parent node is " + parent.nodeName + ".");
+ mutation_remove(child, parent);
+ return child;
+}
+exports.mutation_preRemove = mutation_preRemove;
+/**
+ * Removes a child node from its parent.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param node - node to remove
+ * @param parent - parent node
+ * @param suppressObservers - whether to notify observers
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=attributes.js.map
+function mutation_remove(node, parent, suppressObservers) {
+ var e_11, _a, e_12, _b, e_13, _c, e_14, _d;
+ if (DOMImpl_1.dom.rangeList.size !== 0) {
+ /**
+ * 1. Let index be node’s index.
+ */
+ var index = TreeAlgorithm_1.tree_index(node);
+ try {
+ /**
+ * 2. For each live range whose start node is an inclusive descendant of
+ * node, set its start to (parent, index).
+ * 3. For each live range whose end node is an inclusive descendant of
+ * node, set its end to (parent, index).
+ */
+ for (var _e = __values(DOMImpl_1.dom.rangeList), _f = _e.next(); !_f.done; _f = _e.next()) {
+ var range = _f.value;
+ if (TreeAlgorithm_1.tree_isDescendantOf(node, range._start[0], true)) {
+ range._start = [parent, index];
+ }
+ if (TreeAlgorithm_1.tree_isDescendantOf(node, range._end[0], true)) {
+ range._end = [parent, index];
+ }
+ if (range._start[0] === parent && range._start[1] > index) {
+ range._start[1]--;
+ }
+ if (range._end[0] === parent && range._end[1] > index) {
+ range._end[1]--;
+ }
+ }
+ }
+ catch (e_11_1) { e_11 = { error: e_11_1 }; }
+ finally {
+ try {
+ if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
+ }
+ finally { if (e_11) throw e_11.error; }
+ }
+ try {
+ /**
+ * 4. For each live range whose start node is parent and start offset is
+ * greater than index, decrease its start offset by 1.
+ * 5. For each live range whose end node is parent and end offset is greater
+ * than index, decrease its end offset by 1.
+ */
+ for (var _g = __values(DOMImpl_1.dom.rangeList), _h = _g.next(); !_h.done; _h = _g.next()) {
+ var range = _h.value;
+ if (range._start[0] === parent && range._start[1] > index) {
+ range._start[1] -= 1;
+ }
+ if (range._end[0] === parent && range._end[1] > index) {
+ range._end[1] -= 1;
+ }
+ }
+ }
+ catch (e_12_1) { e_12 = { error: e_12_1 }; }
+ finally {
+ try {
+ if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
+ }
+ finally { if (e_12) throw e_12.error; }
+ }
+ }
+ /**
+ * 6. For each NodeIterator object iterator whose root’s node document is
+ * node’s node document, run the NodeIterator pre-removing steps given node
+ * and iterator.
+ */
+ if (DOMImpl_1.dom.features.steps) {
+ try {
+ for (var _j = __values(NodeIteratorAlgorithm_1.nodeIterator_iteratorList()), _k = _j.next(); !_k.done; _k = _j.next()) {
+ var iterator = _k.value;
+ if (iterator._root._nodeDocument === node._nodeDocument) {
+ DOMAlgorithm_1.dom_runNodeIteratorPreRemovingSteps(iterator, node);
+ }
+ }
+ }
+ catch (e_13_1) { e_13 = { error: e_13_1 }; }
+ finally {
+ try {
+ if (_k && !_k.done && (_c = _j.return)) _c.call(_j);
+ }
+ finally { if (e_13) throw e_13.error; }
+ }
+ }
+ /**
+ * 7. Let oldPreviousSibling be node’s previous sibling.
+ * 8. Let oldNextSibling be node’s next sibling.
+ */
+ var oldPreviousSibling = node._previousSibling;
+ var oldNextSibling = node._nextSibling;
+ // set document element node
+ if (util_1.Guard.isDocumentNode(parent) && util_1.Guard.isElementNode(node)) {
+ parent._documentElement = null;
+ }
+ /**
+ * 9. Remove node from its parent’s children.
+ */
+ node._parent = null;
+ parent._children.delete(node);
+ // assign siblings and children for quick lookups
+ var prev = node._previousSibling;
+ var next = node._nextSibling;
+ node._previousSibling = null;
+ node._nextSibling = null;
+ if (prev)
+ prev._nextSibling = next;
+ if (next)
+ next._previousSibling = prev;
+ if (!prev)
+ parent._firstChild = next;
+ if (!next)
+ parent._lastChild = prev;
+ /**
+ * 10. If node is assigned, then run assign slotables for node’s assigned
+ * slot.
+ */
+ if (DOMImpl_1.dom.features.slots) {
+ if (util_1.Guard.isSlotable(node) && node._assignedSlot !== null && ShadowTreeAlgorithm_1.shadowTree_isAssigned(node)) {
+ ShadowTreeAlgorithm_1.shadowTree_assignSlotables(node._assignedSlot);
+ }
+ }
+ /**
+ * 11. If parent’s root is a shadow root, and parent is a slot whose
+ * assigned nodes is the empty list, then run signal a slot change for
+ * parent.
+ */
+ if (DOMImpl_1.dom.features.slots) {
+ if (util_1.Guard.isShadowRoot(TreeAlgorithm_1.tree_rootNode(parent)) &&
+ util_1.Guard.isSlot(parent) && util_2.isEmpty(parent._assignedNodes)) {
+ ShadowTreeAlgorithm_1.shadowTree_signalASlotChange(parent);
+ }
+ }
+ /**
+ * 12. If node has an inclusive descendant that is a slot, then:
+ * 12.1. Run assign slotables for a tree with parent's root.
+ * 12.2. Run assign slotables for a tree with node.
+ */
+ if (DOMImpl_1.dom.features.slots) {
+ var descendant_1 = TreeAlgorithm_1.tree_getFirstDescendantNode(node, true, false, function (e) { return util_1.Guard.isSlot(e); });
+ if (descendant_1 !== null) {
+ ShadowTreeAlgorithm_1.shadowTree_assignSlotablesForATree(TreeAlgorithm_1.tree_rootNode(parent));
+ ShadowTreeAlgorithm_1.shadowTree_assignSlotablesForATree(node);
+ }
+ }
+ /**
+ * 13. Run the removing steps with node and parent.
+ */
+ if (DOMImpl_1.dom.features.steps) {
+ DOMAlgorithm_1.dom_runRemovingSteps(node, parent);
+ }
+ /**
+ * 14. If node is custom, then enqueue a custom element callback
+ * reaction with node, callback name "disconnectedCallback",
+ * and an empty argument list.
+ */
+ if (DOMImpl_1.dom.features.customElements) {
+ if (util_1.Guard.isCustomElementNode(node)) {
+ CustomElementAlgorithm_1.customElement_enqueueACustomElementCallbackReaction(node, "disconnectedCallback", []);
+ }
+ }
+ /**
+ * 15. For each shadow-including descendant descendant of node,
+ * in shadow-including tree order, then:
+ */
+ var descendant = TreeAlgorithm_1.tree_getFirstDescendantNode(node, false, true);
+ while (descendant !== null) {
+ /**
+ * 15.1. Run the removing steps with descendant.
+ */
+ if (DOMImpl_1.dom.features.steps) {
+ DOMAlgorithm_1.dom_runRemovingSteps(descendant, node);
+ }
+ /**
+ * 15.2. If descendant is custom, then enqueue a custom element
+ * callback reaction with descendant, callback name
+ * "disconnectedCallback", and an empty argument list.
+ */
+ if (DOMImpl_1.dom.features.customElements) {
+ if (util_1.Guard.isCustomElementNode(descendant)) {
+ CustomElementAlgorithm_1.customElement_enqueueACustomElementCallbackReaction(descendant, "disconnectedCallback", []);
+ }
+ }
+ descendant = TreeAlgorithm_1.tree_getNextDescendantNode(node, descendant, false, true);
+ }
+ /**
+ * 16. For each inclusive ancestor inclusiveAncestor of parent, and
+ * then for each registered of inclusiveAncestor's registered
+ * observer list, if registered's options's subtree is true,
+ * then append a new transient registered observer whose
+ * observer is registered's observer, options is registered's
+ * options, and source is registered to node's registered
+ * observer list.
+ */
+ if (DOMImpl_1.dom.features.mutationObservers) {
+ var inclusiveAncestor = TreeAlgorithm_1.tree_getFirstAncestorNode(parent, true);
+ while (inclusiveAncestor !== null) {
+ try {
+ for (var _l = (e_14 = void 0, __values(inclusiveAncestor._registeredObserverList)), _m = _l.next(); !_m.done; _m = _l.next()) {
+ var registered = _m.value;
+ if (registered.options.subtree) {
+ node._registeredObserverList.push({
+ observer: registered.observer,
+ options: registered.options,
+ source: registered
+ });
+ }
+ }
+ }
+ catch (e_14_1) { e_14 = { error: e_14_1 }; }
+ finally {
+ try {
+ if (_m && !_m.done && (_d = _l.return)) _d.call(_l);
+ }
+ finally { if (e_14) throw e_14.error; }
+ }
+ inclusiveAncestor = TreeAlgorithm_1.tree_getNextAncestorNode(parent, inclusiveAncestor, true);
+ }
+ }
+ /**
+ * 17. If suppress observers flag is unset, then queue a tree mutation
+ * record for parent with « », « node », oldPreviousSibling, and
+ * oldNextSibling.
+ */
+ if (DOMImpl_1.dom.features.mutationObservers) {
+ if (!suppressObservers) {
+ MutationObserverAlgorithm_1.observer_queueTreeMutationRecord(parent, [], [node], oldPreviousSibling, oldNextSibling);
+ }
+ }
+ /**
+ * 18. If node is a Text node, then run the child text content change steps
+ * for parent.
+ */
+ if (DOMImpl_1.dom.features.steps) {
+ if (util_1.Guard.isTextNode(node)) {
+ DOMAlgorithm_1.dom_runChildTextContentChangeSteps(parent);
+ }
+ }
+}
+exports.mutation_remove = mutation_remove;
+//# sourceMappingURL=MutationAlgorithm.js.map
/***/ }),
-/***/ 3326:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+/***/ 8157:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
"use strict";
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.getSpanContext = exports.setSpanContext = exports.deleteSpan = exports.setSpan = exports.getSpan = void 0;
-var context_1 = __nccwpck_require__(8242);
-var NonRecordingSpan_1 = __nccwpck_require__(1462);
-/**
- * span key
- */
-var SPAN_KEY = context_1.createContextKey('OpenTelemetry Context Key SPAN');
+var DOMImpl_1 = __nccwpck_require__(4177);
+var util_1 = __nccwpck_require__(5282);
+var infra_1 = __nccwpck_require__(4251);
+var CreateAlgorithm_1 = __nccwpck_require__(7339);
+var TreeAlgorithm_1 = __nccwpck_require__(6620);
+var EventAlgorithm_1 = __nccwpck_require__(8217);
/**
- * Return the span if one exists
- *
- * @param context context to get span from
+ * Queues a mutation observer microtask to the surrounding agent’s mutation
+ * observers.
*/
-function getSpan(context) {
- return context.getValue(SPAN_KEY) || undefined;
+function observer_queueAMutationObserverMicrotask() {
+ /**
+ * 1. If the surrounding agent’s mutation observer microtask queued is true,
+ * then return.
+ * 2. Set the surrounding agent’s mutation observer microtask queued to true.
+ * 3. Queue a microtask to notify mutation observers.
+ */
+ var window = DOMImpl_1.dom.window;
+ if (window._mutationObserverMicrotaskQueued)
+ return;
+ window._mutationObserverMicrotaskQueued = true;
+ Promise.resolve().then(function () { observer_notifyMutationObservers(); });
}
-exports.getSpan = getSpan;
+exports.observer_queueAMutationObserverMicrotask = observer_queueAMutationObserverMicrotask;
/**
- * Set the span on a context
- *
- * @param context context to use as parent
- * @param span span to set active
- */
-function setSpan(context, span) {
- return context.setValue(SPAN_KEY, span);
+ * Notifies the surrounding agent’s mutation observers.
+ */
+function observer_notifyMutationObservers() {
+ var e_1, _a, e_2, _b;
+ /**
+ * 1. Set the surrounding agent’s mutation observer microtask queued to false.
+ * 2. Let notifySet be a clone of the surrounding agent’s mutation observers.
+ * 3. Let signalSet be a clone of the surrounding agent’s signal slots.
+ * 4. Empty the surrounding agent’s signal slots.
+ */
+ var window = DOMImpl_1.dom.window;
+ window._mutationObserverMicrotaskQueued = false;
+ var notifySet = infra_1.set.clone(window._mutationObservers);
+ var signalSet = infra_1.set.clone(window._signalSlots);
+ infra_1.set.empty(window._signalSlots);
+ var _loop_1 = function (mo) {
+ /**
+ * 5.1. Let records be a clone of mo’s record queue.
+ * 5.2. Empty mo’s record queue.
+ */
+ var records = infra_1.list.clone(mo._recordQueue);
+ infra_1.list.empty(mo._recordQueue);
+ /**
+ * 5.3. For each node of mo’s node list, remove all transient registered
+ * observers whose observer is mo from node’s registered observer list.
+ */
+ for (var i = 0; i < mo._nodeList.length; i++) {
+ var node = mo._nodeList[i];
+ infra_1.list.remove(node._registeredObserverList, function (observer) {
+ return util_1.Guard.isTransientRegisteredObserver(observer) && observer.observer === mo;
+ });
+ }
+ /**
+ * 5.4. If records is not empty, then invoke mo’s callback with « records,
+ * mo », and mo. If this throws an exception, then report the exception.
+ */
+ if (!infra_1.list.isEmpty(records)) {
+ try {
+ mo._callback.call(mo, records, mo);
+ }
+ catch (err) {
+ // TODO: Report the exception
+ }
+ }
+ };
+ try {
+ /**
+ * 5. For each mo of notifySet:
+ */
+ for (var notifySet_1 = __values(notifySet), notifySet_1_1 = notifySet_1.next(); !notifySet_1_1.done; notifySet_1_1 = notifySet_1.next()) {
+ var mo = notifySet_1_1.value;
+ _loop_1(mo);
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (notifySet_1_1 && !notifySet_1_1.done && (_a = notifySet_1.return)) _a.call(notifySet_1);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ /**
+ * 6. For each slot of signalSet, fire an event named slotchange, with its
+ * bubbles attribute set to true, at slot.
+ */
+ if (DOMImpl_1.dom.features.slots) {
+ try {
+ for (var signalSet_1 = __values(signalSet), signalSet_1_1 = signalSet_1.next(); !signalSet_1_1.done; signalSet_1_1 = signalSet_1.next()) {
+ var slot = signalSet_1_1.value;
+ EventAlgorithm_1.event_fireAnEvent("slotchange", slot, undefined, { bubbles: true });
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (signalSet_1_1 && !signalSet_1_1.done && (_b = signalSet_1.return)) _b.call(signalSet_1);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ }
}
-exports.setSpan = setSpan;
+exports.observer_notifyMutationObservers = observer_notifyMutationObservers;
/**
- * Remove current span stored in the context
+ * Queues a mutation record of the given type for target.
*
- * @param context context to delete span from
- */
-function deleteSpan(context) {
- return context.deleteValue(SPAN_KEY);
+ * @param type - mutation record type
+ * @param target - target node
+ * @param name - name before mutation
+ * @param namespace - namespace before mutation
+ * @param oldValue - attribute value before mutation
+ * @param addedNodes - a list od added nodes
+ * @param removedNodes - a list of removed nodes
+ * @param previousSibling - previous sibling of target before mutation
+ * @param nextSibling - next sibling of target before mutation
+ */
+function observer_queueMutationRecord(type, target, name, namespace, oldValue, addedNodes, removedNodes, previousSibling, nextSibling) {
+ var e_3, _a;
+ /**
+ * 1. Let interestedObservers be an empty map.
+ * 2. Let nodes be the inclusive ancestors of target.
+ * 3. For each node in nodes, and then for each registered of node’s
+ * registered observer list:
+ */
+ var interestedObservers = new Map();
+ var node = TreeAlgorithm_1.tree_getFirstAncestorNode(target, true);
+ while (node !== null) {
+ for (var i = 0; i < node._registeredObserverList.length; i++) {
+ var registered = node._registeredObserverList[i];
+ /**
+ * 3.1. Let options be registered’s options.
+ * 3.2. If none of the following are true
+ * - node is not target and options’s subtree is false
+ * - type is "attributes" and options’s attributes is not true
+ * - type is "attributes", options’s attributeFilter is present, and
+ * options’s attributeFilter does not contain name or namespace is
+ * non-null
+ * - type is "characterData" and options’s characterData is not true
+ * - type is "childList" and options’s childList is false
+ */
+ var options = registered.options;
+ if (node !== target && !options.subtree)
+ continue;
+ if (type === "attributes" && !options.attributes)
+ continue;
+ if (type === "attributes" && options.attributeFilter &&
+ (!options.attributeFilter.indexOf(name || '') || namespace !== null))
+ continue;
+ if (type === "characterData" && !options.characterData)
+ continue;
+ if (type === "childList" && !options.childList)
+ continue;
+ /**
+ * then:
+ * 3.2.1. Let mo be registered’s observer.
+ * 3.2.2. If interestedObservers[mo] does not exist, then set
+ * interestedObservers[mo] to null.
+ * 3.2.3. If either type is "attributes" and options’s attributeOldValue
+ * is true, or type is "characterData" and options’s
+ * characterDataOldValue is true, then set interestedObservers[mo]
+ * to oldValue.
+ */
+ var mo = registered.observer;
+ if (!interestedObservers.has(mo)) {
+ interestedObservers.set(mo, null);
+ }
+ if ((type === "attributes" && options.attributeOldValue) ||
+ (type === "characterData" && options.characterDataOldValue)) {
+ interestedObservers.set(mo, oldValue);
+ }
+ }
+ node = TreeAlgorithm_1.tree_getNextAncestorNode(target, node, true);
+ }
+ try {
+ /**
+ * 4. For each observer → mappedOldValue of interestedObservers:
+ */
+ for (var interestedObservers_1 = __values(interestedObservers), interestedObservers_1_1 = interestedObservers_1.next(); !interestedObservers_1_1.done; interestedObservers_1_1 = interestedObservers_1.next()) {
+ var _b = __read(interestedObservers_1_1.value, 2), observer = _b[0], mappedOldValue = _b[1];
+ /**
+ * 4.1. Let record be a new MutationRecord object with its type set to
+ * type, target set to target, attributeName set to name,
+ * attributeNamespace set to namespace, oldValue set to mappedOldValue,
+ * addedNodes set to addedNodes, removedNodes set to removedNodes,
+ * previousSibling set to previousSibling, and nextSibling set to
+ * nextSibling.
+ * 4.2. Enqueue record to observer’s record queue.
+ */
+ var record = CreateAlgorithm_1.create_mutationRecord(type, target, CreateAlgorithm_1.create_nodeListStatic(target, addedNodes), CreateAlgorithm_1.create_nodeListStatic(target, removedNodes), previousSibling, nextSibling, name, namespace, mappedOldValue);
+ var queue = observer._recordQueue;
+ queue.push(record);
+ }
+ }
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
+ finally {
+ try {
+ if (interestedObservers_1_1 && !interestedObservers_1_1.done && (_a = interestedObservers_1.return)) _a.call(interestedObservers_1);
+ }
+ finally { if (e_3) throw e_3.error; }
+ }
+ /**
+ * 5. Queue a mutation observer microtask.
+ */
+ observer_queueAMutationObserverMicrotask();
}
-exports.deleteSpan = deleteSpan;
+exports.observer_queueMutationRecord = observer_queueMutationRecord;
/**
- * Wrap span context in a NoopSpan and set as span in a new
- * context
+ * Queues a tree mutation record for target.
*
- * @param context context to set active span on
- * @param spanContext span context to be wrapped
+ * @param target - target node
+ * @param addedNodes - a list od added nodes
+ * @param removedNodes - a list of removed nodes
+ * @param previousSibling - previous sibling of target before mutation
+ * @param nextSibling - next sibling of target before mutation
*/
-function setSpanContext(context, spanContext) {
- return setSpan(context, new NonRecordingSpan_1.NonRecordingSpan(spanContext));
+function observer_queueTreeMutationRecord(target, addedNodes, removedNodes, previousSibling, nextSibling) {
+ /**
+ * To queue a tree mutation record for target with addedNodes, removedNodes,
+ * previousSibling, and nextSibling, queue a mutation record of "childList"
+ * for target with null, null, null, addedNodes, removedNodes,
+ * previousSibling, and nextSibling.
+ */
+ observer_queueMutationRecord("childList", target, null, null, null, addedNodes, removedNodes, previousSibling, nextSibling);
}
-exports.setSpanContext = setSpanContext;
+exports.observer_queueTreeMutationRecord = observer_queueTreeMutationRecord;
/**
- * Get the span context of the span if it exists.
+ * Queues an attribute mutation record for target.
*
- * @param context context to get values from
+ * @param target - target node
+ * @param name - name before mutation
+ * @param namespace - namespace before mutation
+ * @param oldValue - attribute value before mutation
*/
-function getSpanContext(context) {
- var _a;
- return (_a = getSpan(context)) === null || _a === void 0 ? void 0 : _a.spanContext();
+function observer_queueAttributeMutationRecord(target, name, namespace, oldValue) {
+ /**
+ * To queue an attribute mutation record for target with name, namespace,
+ * and oldValue, queue a mutation record of "attributes" for target with
+ * name, namespace, oldValue, « », « », null, and null.
+ */
+ observer_queueMutationRecord("attributes", target, name, namespace, oldValue, [], [], null, null);
}
-exports.getSpanContext = getSpanContext;
-//# sourceMappingURL=context-utils.js.map
+exports.observer_queueAttributeMutationRecord = observer_queueAttributeMutationRecord;
+//# sourceMappingURL=MutationObserverAlgorithm.js.map
/***/ }),
-/***/ 1760:
+/***/ 5856:
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMException_1 = __nccwpck_require__(3166);
+var infra_1 = __nccwpck_require__(4251);
+var XMLAlgorithm_1 = __nccwpck_require__(7030);
+/**
+ * Validates the given qualified name.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param qualifiedName - qualified name
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = void 0;
-var trace_flags_1 = __nccwpck_require__(6905);
-exports.INVALID_SPANID = '0000000000000000';
-exports.INVALID_TRACEID = '00000000000000000000000000000000';
-exports.INVALID_SPAN_CONTEXT = {
- traceId: exports.INVALID_TRACEID,
- spanId: exports.INVALID_SPANID,
- traceFlags: trace_flags_1.TraceFlags.NONE,
-};
-//# sourceMappingURL=invalid-span-constants.js.map
-
-/***/ }),
-
-/***/ 4023:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
+function namespace_validate(qualifiedName) {
+ /**
+ * To validate a qualifiedName, throw an "InvalidCharacterError"
+ * DOMException if qualifiedName does not match the Name or QName
+ * production.
+ */
+ if (!XMLAlgorithm_1.xml_isName(qualifiedName))
+ throw new DOMException_1.InvalidCharacterError("Invalid XML name: " + qualifiedName);
+ if (!XMLAlgorithm_1.xml_isQName(qualifiedName))
+ throw new DOMException_1.InvalidCharacterError("Invalid XML qualified name: " + qualifiedName + ".");
+}
+exports.namespace_validate = namespace_validate;
+/**
+ * Validates and extracts a namespace, prefix and localName from the
+ * given namespace and qualified name.
+ * See: https://dom.spec.whatwg.org/#validate-and-extract.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * @param namespace - namespace
+ * @param qualifiedName - qualified name
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @returns a tuple with `namespace`, `prefix` and `localName`.
+ */
+function namespace_validateAndExtract(namespace, qualifiedName) {
+ /**
+ * 1. If namespace is the empty string, set it to null.
+ * 2. Validate qualifiedName.
+ * 3. Let prefix be null.
+ * 4. Let localName be qualifiedName.
+ * 5. If qualifiedName contains a ":" (U+003E), then split the string on it
+ * and set prefix to the part before and localName to the part after.
+ * 6. If prefix is non-null and namespace is null, then throw a
+ * "NamespaceError" DOMException.
+ * 7. If prefix is "xml" and namespace is not the XML namespace, then throw
+ * a "NamespaceError" DOMException.
+ * 8. If either qualifiedName or prefix is "xmlns" and namespace is not the
+ * XMLNS namespace, then throw a "NamespaceError" DOMException.
+ * 9. If namespace is the XMLNS namespace and neither qualifiedName nor
+ * prefix is "xmlns", then throw a "NamespaceError" DOMException.
+ * 10. Return namespace, prefix, and localName.
+ */
+ if (!namespace)
+ namespace = null;
+ namespace_validate(qualifiedName);
+ var parts = qualifiedName.split(':');
+ var prefix = (parts.length === 2 ? parts[0] : null);
+ var localName = (parts.length === 2 ? parts[1] : qualifiedName);
+ if (prefix && namespace === null)
+ throw new DOMException_1.NamespaceError("Qualified name includes a prefix but the namespace is null.");
+ if (prefix === "xml" && namespace !== infra_1.namespace.XML)
+ throw new DOMException_1.NamespaceError("Qualified name includes the \"xml\" prefix but the namespace is not the XML namespace.");
+ if (namespace !== infra_1.namespace.XMLNS &&
+ (prefix === "xmlns" || qualifiedName === "xmlns"))
+ throw new DOMException_1.NamespaceError("Qualified name includes the \"xmlns\" prefix but the namespace is not the XMLNS namespace.");
+ if (namespace === infra_1.namespace.XMLNS &&
+ (prefix !== "xmlns" && qualifiedName !== "xmlns"))
+ throw new DOMException_1.NamespaceError("Qualified name does not include the \"xmlns\" prefix but the namespace is the XMLNS namespace.");
+ return [namespace, prefix, localName];
+}
+exports.namespace_validateAndExtract = namespace_validateAndExtract;
+/**
+ * Extracts a prefix and localName from the given qualified name.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param qualifiedName - qualified name
+ *
+ * @returns an tuple with `prefix` and `localName`.
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=link.js.map
+function namespace_extractQName(qualifiedName) {
+ namespace_validate(qualifiedName);
+ var parts = qualifiedName.split(':');
+ var prefix = (parts.length === 2 ? parts[0] : null);
+ var localName = (parts.length === 2 ? parts[1] : qualifiedName);
+ return [prefix, localName];
+}
+exports.namespace_extractQName = namespace_extractQName;
+//# sourceMappingURL=NamespaceAlgorithm.js.map
/***/ }),
-/***/ 4416:
-/***/ ((__unused_webpack_module, exports) => {
+/***/ 4924:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
"use strict";
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMImpl_1 = __nccwpck_require__(4177);
+var util_1 = __nccwpck_require__(5282);
+var infra_1 = __nccwpck_require__(4251);
+var CreateAlgorithm_1 = __nccwpck_require__(7339);
+var OrderedSetAlgorithm_1 = __nccwpck_require__(3670);
+var DOMAlgorithm_1 = __nccwpck_require__(9628);
+var MutationAlgorithm_1 = __nccwpck_require__(5463);
+var ElementAlgorithm_1 = __nccwpck_require__(1849);
+/**
+ * Replaces the contents of the given node with a single text node.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param string - node contents
+ * @param parent - a node
+ */
+function node_stringReplaceAll(str, parent) {
+ /**
+ * 1. Let node be null.
+ * 2. If string is not the empty string, then set node to a new Text node
+ * whose data is string and node document is parent’s node document.
+ * 3. Replace all with node within parent.
+ */
+ var node = null;
+ if (str !== '') {
+ node = CreateAlgorithm_1.create_text(parent._nodeDocument, str);
+ }
+ MutationAlgorithm_1.mutation_replaceAll(node, parent);
+}
+exports.node_stringReplaceAll = node_stringReplaceAll;
+/**
+ * Clones a node.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param node - a node to clone
+ * @param document - the document to own the cloned node
+ * @param cloneChildrenFlag - whether to clone node's children
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=span.js.map
-
-/***/ }),
-
-/***/ 5769:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
+function node_clone(node, document, cloneChildrenFlag) {
+ var e_1, _a, e_2, _b;
+ if (document === void 0) { document = null; }
+ if (cloneChildrenFlag === void 0) { cloneChildrenFlag = false; }
+ /**
+ * 1. If document is not given, let document be node’s node document.
+ */
+ if (document === null)
+ document = node._nodeDocument;
+ var copy;
+ if (util_1.Guard.isElementNode(node)) {
+ /**
+ * 2. If node is an element, then:
+ * 2.1. Let copy be the result of creating an element, given document,
+ * node’s local name, node’s namespace, node’s namespace prefix,
+ * and node’s is value, with the synchronous custom elements flag unset.
+ * 2.2. For each attribute in node’s attribute list:
+ * 2.2.1. Let copyAttribute be a clone of attribute.
+ * 2.2.2. Append copyAttribute to copy.
+ */
+ copy = ElementAlgorithm_1.element_createAnElement(document, node._localName, node._namespace, node._namespacePrefix, node._is, false);
+ try {
+ for (var _c = __values(node._attributeList), _d = _c.next(); !_d.done; _d = _c.next()) {
+ var attribute = _d.value;
+ var copyAttribute = node_clone(attribute, document);
+ ElementAlgorithm_1.element_append(copyAttribute, copy);
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ }
+ else {
+ /**
+ * 3. Otherwise, let copy be a node that implements the same interfaces as
+ * node, and fulfills these additional requirements, switching on node:
+ * - Document
+ * Set copy’s encoding, content type, URL, origin, type, and mode, to those
+ * of node.
+ * - DocumentType
+ * Set copy’s name, public ID, and system ID, to those of node.
+ * - Attr
+ * Set copy’s namespace, namespace prefix, local name, and value, to
+ * those of node.
+ * - Text
+ * - Comment
+ * Set copy’s data, to that of node.
+ * - ProcessingInstruction
+ * Set copy’s target and data to those of node.
+ * - Any other node
+ */
+ if (util_1.Guard.isDocumentNode(node)) {
+ var doc = CreateAlgorithm_1.create_document();
+ doc._encoding = node._encoding;
+ doc._contentType = node._contentType;
+ doc._URL = node._URL;
+ doc._origin = node._origin;
+ doc._type = node._type;
+ doc._mode = node._mode;
+ copy = doc;
+ }
+ else if (util_1.Guard.isDocumentTypeNode(node)) {
+ var doctype = CreateAlgorithm_1.create_documentType(document, node._name, node._publicId, node._systemId);
+ copy = doctype;
+ }
+ else if (util_1.Guard.isAttrNode(node)) {
+ var attr = CreateAlgorithm_1.create_attr(document, node.localName);
+ attr._namespace = node._namespace;
+ attr._namespacePrefix = node._namespacePrefix;
+ attr._value = node._value;
+ copy = attr;
+ }
+ else if (util_1.Guard.isExclusiveTextNode(node)) {
+ copy = CreateAlgorithm_1.create_text(document, node._data);
+ }
+ else if (util_1.Guard.isCDATASectionNode(node)) {
+ copy = CreateAlgorithm_1.create_cdataSection(document, node._data);
+ }
+ else if (util_1.Guard.isCommentNode(node)) {
+ copy = CreateAlgorithm_1.create_comment(document, node._data);
+ }
+ else if (util_1.Guard.isProcessingInstructionNode(node)) {
+ copy = CreateAlgorithm_1.create_processingInstruction(document, node._target, node._data);
+ }
+ else if (util_1.Guard.isDocumentFragmentNode(node)) {
+ copy = CreateAlgorithm_1.create_documentFragment(document);
+ }
+ else {
+ copy = Object.create(node);
+ }
+ }
+ /**
+ * 4. Set copy’s node document and document to copy, if copy is a document,
+ * and set copy’s node document to document otherwise.
+ */
+ if (util_1.Guard.isDocumentNode(copy)) {
+ copy._nodeDocument = copy;
+ document = copy;
+ }
+ else {
+ copy._nodeDocument = document;
+ }
+ /**
+ * 5. Run any cloning steps defined for node in other applicable
+ * specifications and pass copy, node, document and the clone children flag
+ * if set, as parameters.
+ */
+ if (DOMImpl_1.dom.features.steps) {
+ DOMAlgorithm_1.dom_runCloningSteps(copy, node, document, cloneChildrenFlag);
+ }
+ /**
+ * 6. If the clone children flag is set, clone all the children of node and
+ * append them to copy, with document as specified and the clone children
+ * flag being set.
+ */
+ if (cloneChildrenFlag) {
+ try {
+ for (var _e = __values(node._children), _f = _e.next(); !_f.done; _f = _e.next()) {
+ var child = _f.value;
+ var childCopy = node_clone(child, document, true);
+ MutationAlgorithm_1.mutation_append(childCopy, copy);
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ }
+ /**
+ * 7. Return copy.
+ */
+ return copy;
+}
+exports.node_clone = node_clone;
+/**
+ * Determines if two nodes can be considered equal.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * @param a - node to compare
+ * @param b - node to compare
+ */
+function node_equals(a, b) {
+ var e_3, _a, e_4, _b;
+ /**
+ * 1. A and B’s nodeType attribute value is identical.
+ */
+ if (a._nodeType !== b._nodeType)
+ return false;
+ /**
+ * 2. The following are also equal, depending on A:
+ * - DocumentType
+ * Its name, public ID, and system ID.
+ * - Element
+ * Its namespace, namespace prefix, local name, and its attribute list’s size.
+ * - Attr
+ * Its namespace, local name, and value.
+ * - ProcessingInstruction
+ * Its target and data.
+ * - Text
+ * - Comment
+ * Its data.
+ */
+ if (util_1.Guard.isDocumentTypeNode(a) && util_1.Guard.isDocumentTypeNode(b)) {
+ if (a._name !== b._name || a._publicId !== b._publicId ||
+ a._systemId !== b._systemId)
+ return false;
+ }
+ else if (util_1.Guard.isElementNode(a) && util_1.Guard.isElementNode(b)) {
+ if (a._namespace !== b._namespace || a._namespacePrefix !== b._namespacePrefix ||
+ a._localName !== b._localName ||
+ a._attributeList.length !== b._attributeList.length)
+ return false;
+ }
+ else if (util_1.Guard.isAttrNode(a) && util_1.Guard.isAttrNode(b)) {
+ if (a._namespace !== b._namespace || a._localName !== b._localName ||
+ a._value !== b._value)
+ return false;
+ }
+ else if (util_1.Guard.isProcessingInstructionNode(a) && util_1.Guard.isProcessingInstructionNode(b)) {
+ if (a._target !== b._target || a._data !== b._data)
+ return false;
+ }
+ else if (util_1.Guard.isCharacterDataNode(a) && util_1.Guard.isCharacterDataNode(b)) {
+ if (a._data !== b._data)
+ return false;
+ }
+ /**
+ * 3. If A is an element, each attribute in its attribute list has an attribute
+ * that equals an attribute in B’s attribute list.
+ */
+ if (util_1.Guard.isElementNode(a) && util_1.Guard.isElementNode(b)) {
+ var attrMap = {};
+ try {
+ for (var _c = __values(a._attributeList), _d = _c.next(); !_d.done; _d = _c.next()) {
+ var attrA = _d.value;
+ attrMap[attrA._localName] = attrA;
+ }
+ }
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
+ finally {
+ try {
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
+ }
+ finally { if (e_3) throw e_3.error; }
+ }
+ try {
+ for (var _e = __values(b._attributeList), _f = _e.next(); !_f.done; _f = _e.next()) {
+ var attrB = _f.value;
+ var attrA = attrMap[attrB._localName];
+ if (!attrA)
+ return false;
+ if (!node_equals(attrA, attrB))
+ return false;
+ }
+ }
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
+ finally {
+ try {
+ if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
+ }
+ finally { if (e_4) throw e_4.error; }
+ }
+ }
+ /**
+ * 4. A and B have the same number of children.
+ * 5. Each child of A equals the child of B at the identical index.
+ */
+ if (a._children.size !== b._children.size)
+ return false;
+ var itA = a._children[Symbol.iterator]();
+ var itB = b._children[Symbol.iterator]();
+ var resultA = itA.next();
+ var resultB = itB.next();
+ while (!resultA.done && !resultB.done) {
+ var child1 = resultA.value;
+ var child2 = resultB.value;
+ if (!node_equals(child1, child2))
+ return false;
+ resultA = itA.next();
+ resultB = itB.next();
+ }
+ return true;
+}
+exports.node_equals = node_equals;
+/**
+ * Returns a collection of elements with the given qualified name which are
+ * descendants of the given root node.
+ * See: https://dom.spec.whatwg.org/#concept-getelementsbytagname
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param qualifiedName - qualified name
+ * @param root - root node
+ */
+function node_listOfElementsWithQualifiedName(qualifiedName, root) {
+ /**
+ * 1. If qualifiedName is "*" (U+002A), return a HTMLCollection rooted at
+ * root, whose filter matches only descendant elements.
+ * 2. Otherwise, if root’s node document is an HTML document, return a
+ * HTMLCollection rooted at root, whose filter matches the following
+ * descendant elements:
+ * 2.1. Whose namespace is the HTML namespace and whose qualified name is
+ * qualifiedName, in ASCII lowercase.
+ * 2.2. Whose namespace is not the HTML namespace and whose qualified name
+ * is qualifiedName.
+ * 3. Otherwise, return a HTMLCollection rooted at root, whose filter
+ * matches descendant elements whose qualified name is qualifiedName.
+ */
+ if (qualifiedName === "*") {
+ return CreateAlgorithm_1.create_htmlCollection(root);
+ }
+ else if (root._nodeDocument._type === "html") {
+ return CreateAlgorithm_1.create_htmlCollection(root, function (ele) {
+ if (ele._namespace === infra_1.namespace.HTML &&
+ ele._qualifiedName === qualifiedName.toLowerCase()) {
+ return true;
+ }
+ else if (ele._namespace !== infra_1.namespace.HTML &&
+ ele._qualifiedName === qualifiedName) {
+ return true;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ else {
+ return CreateAlgorithm_1.create_htmlCollection(root, function (ele) {
+ return (ele._qualifiedName === qualifiedName);
+ });
+ }
+}
+exports.node_listOfElementsWithQualifiedName = node_listOfElementsWithQualifiedName;
+/**
+ * Returns a collection of elements with the given namespace which are
+ * descendants of the given root node.
+ * See: https://dom.spec.whatwg.org/#concept-getelementsbytagnamens
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param namespace - element namespace
+ * @param localName - local name
+ * @param root - root node
+ */
+function node_listOfElementsWithNamespace(namespace, localName, root) {
+ /**
+ * 1. If namespace is the empty string, set it to null.
+ * 2. If both namespace and localName are "*" (U+002A), return a
+ * HTMLCollection rooted at root, whose filter matches descendant elements.
+ * 3. Otherwise, if namespace is "*" (U+002A), return a HTMLCollection
+ * rooted at root, whose filter matches descendant elements whose local
+ * name is localName.
+ * 4. Otherwise, if localName is "*" (U+002A), return a HTMLCollection
+ * rooted at root, whose filter matches descendant elements whose
+ * namespace is namespace.
+ * 5. Otherwise, return a HTMLCollection rooted at root, whose filter
+ * matches descendant elements whose namespace is namespace and local
+ * name is localName.
+ */
+ if (namespace === '')
+ namespace = null;
+ if (namespace === "*" && localName === "*") {
+ return CreateAlgorithm_1.create_htmlCollection(root);
+ }
+ else if (namespace === "*") {
+ return CreateAlgorithm_1.create_htmlCollection(root, function (ele) {
+ return (ele._localName === localName);
+ });
+ }
+ else if (localName === "*") {
+ return CreateAlgorithm_1.create_htmlCollection(root, function (ele) {
+ return (ele._namespace === namespace);
+ });
+ }
+ else {
+ return CreateAlgorithm_1.create_htmlCollection(root, function (ele) {
+ return (ele._localName === localName && ele._namespace === namespace);
+ });
+ }
+}
+exports.node_listOfElementsWithNamespace = node_listOfElementsWithNamespace;
+/**
+ * Returns a collection of elements with the given class names which are
+ * descendants of the given root node.
+ * See: https://dom.spec.whatwg.org/#concept-getelementsbyclassname
+ *
+ * @param namespace - element namespace
+ * @param localName - local name
+ * @param root - root node
+ */
+function node_listOfElementsWithClassNames(classNames, root) {
+ /**
+ * 1. Let classes be the result of running the ordered set parser
+ * on classNames.
+ * 2. If classes is the empty set, return an empty HTMLCollection.
+ * 3. Return a HTMLCollection rooted at root, whose filter matches
+ * descendant elements that have all their classes in classes.
+ * The comparisons for the classes must be done in an ASCII case-insensitive
+ * manner if root’s node document’s mode is "quirks", and in a
+ * case-sensitive manner otherwise.
+ */
+ var classes = OrderedSetAlgorithm_1.orderedSet_parse(classNames);
+ if (classes.size === 0) {
+ return CreateAlgorithm_1.create_htmlCollection(root, function () { return false; });
+ }
+ var caseSensitive = (root._nodeDocument._mode !== "quirks");
+ return CreateAlgorithm_1.create_htmlCollection(root, function (ele) {
+ var eleClasses = ele.classList;
+ return OrderedSetAlgorithm_1.orderedSet_contains(eleClasses._tokenSet, classes, caseSensitive);
+ });
+}
+exports.node_listOfElementsWithClassNames = node_listOfElementsWithClassNames;
+/**
+ * Searches for a namespace prefix associated with the given namespace
+ * starting from the given element through its ancestors.
+ *
+ * @param element - an element node to start searching at
+ * @param namespace - namespace to search for
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=span_context.js.map
+function node_locateANamespacePrefix(element, namespace) {
+ /**
+ * 1. If element’s namespace is namespace and its namespace prefix is not
+ * null, then return its namespace prefix.
+ */
+ if (element._namespace === namespace && element._namespacePrefix !== null) {
+ return element._namespacePrefix;
+ }
+ /**
+ * 2. If element has an attribute whose namespace prefix is "xmlns" and
+ * value is namespace, then return element’s first such attribute’s
+ * local name.
+ */
+ for (var i = 0; i < element._attributeList.length; i++) {
+ var attr = element._attributeList[i];
+ if (attr._namespacePrefix === "xmlns" && attr._value === namespace) {
+ return attr._localName;
+ }
+ }
+ /**
+ * 3. If element’s parent element is not null, then return the result of
+ * running locate a namespace prefix on that element using namespace.
+ */
+ if (element._parent && util_1.Guard.isElementNode(element._parent)) {
+ return node_locateANamespacePrefix(element._parent, namespace);
+ }
+ /**
+ * 4. Return null.
+ */
+ return null;
+}
+exports.node_locateANamespacePrefix = node_locateANamespacePrefix;
+/**
+ * Searches for a namespace associated with the given namespace prefix
+ * starting from the given node through its ancestors.
+ *
+ * @param node - a node to start searching at
+ * @param prefix - namespace prefix to search for
+ */
+function node_locateANamespace(node, prefix) {
+ if (util_1.Guard.isElementNode(node)) {
+ /**
+ * 1. If its namespace is not null and its namespace prefix is prefix,
+ * then return namespace.
+ */
+ if (node._namespace !== null && node._namespacePrefix === prefix) {
+ return node._namespace;
+ }
+ /**
+ * 2. If it has an attribute whose namespace is the XMLNS namespace,
+ * namespace prefix is "xmlns", and local name is prefix, or if prefix
+ * is null and it has an attribute whose namespace is the XMLNS namespace,
+ * namespace prefix is null, and local name is "xmlns", then return its
+ * value if it is not the empty string, and null otherwise.
+ */
+ for (var i = 0; i < node._attributeList.length; i++) {
+ var attr = node._attributeList[i];
+ if (attr._namespace === infra_1.namespace.XMLNS &&
+ attr._namespacePrefix === "xmlns" &&
+ attr._localName === prefix) {
+ return attr._value || null;
+ }
+ if (prefix === null && attr._namespace === infra_1.namespace.XMLNS &&
+ attr._namespacePrefix === null && attr._localName === "xmlns") {
+ return attr._value || null;
+ }
+ }
+ /**
+ * 3. If its parent element is null, then return null.
+ */
+ if (node.parentElement === null)
+ return null;
+ /**
+ * 4. Return the result of running locate a namespace on its parent
+ * element using prefix.
+ */
+ return node_locateANamespace(node.parentElement, prefix);
+ }
+ else if (util_1.Guard.isDocumentNode(node)) {
+ /**
+ * 1. If its document element is null, then return null.
+ * 2. Return the result of running locate a namespace on its document
+ * element using prefix.
+ */
+ if (node.documentElement === null)
+ return null;
+ return node_locateANamespace(node.documentElement, prefix);
+ }
+ else if (util_1.Guard.isDocumentTypeNode(node) || util_1.Guard.isDocumentFragmentNode(node)) {
+ return null;
+ }
+ else if (util_1.Guard.isAttrNode(node)) {
+ /**
+ * 1. If its element is null, then return null.
+ * 2. Return the result of running locate a namespace on its element
+ * using prefix.
+ */
+ if (node._element === null)
+ return null;
+ return node_locateANamespace(node._element, prefix);
+ }
+ else {
+ /**
+ * 1. If its parent element is null, then return null.
+ * 2. Return the result of running locate a namespace on its parent
+ * element using prefix.
+ */
+ if (!node._parent || !util_1.Guard.isElementNode(node._parent))
+ return null;
+ return node_locateANamespace(node._parent, prefix);
+ }
+}
+exports.node_locateANamespace = node_locateANamespace;
+//# sourceMappingURL=NodeAlgorithm.js.map
/***/ }),
-/***/ 1424:
-/***/ ((__unused_webpack_module, exports) => {
+/***/ 9989:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.SpanKind = void 0;
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
+var DOMImpl_1 = __nccwpck_require__(4177);
+var interfaces_1 = __nccwpck_require__(7305);
+var TraversalAlgorithm_1 = __nccwpck_require__(998);
+var TreeAlgorithm_1 = __nccwpck_require__(6620);
+/**
+ * Returns the next or previous node in the subtree, or `null` if
+ * there are none.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param iterator - the `NodeIterator` instance
+ * @param forward- `true` to return the next node, or `false` to
+ * return the previous node.
*/
-var SpanKind;
-(function (SpanKind) {
- /** Default value. Indicates that the span is used internally. */
- SpanKind[SpanKind["INTERNAL"] = 0] = "INTERNAL";
- /**
- * Indicates that the span covers server-side handling of an RPC or other
- * remote request.
- */
- SpanKind[SpanKind["SERVER"] = 1] = "SERVER";
+function nodeIterator_traverse(iterator, forward) {
/**
- * Indicates that the span covers the client-side wrapper around an RPC or
- * other remote request.
+ * 1. Let node be iterator’s reference.
+ * 2. Let beforeNode be iterator’s pointer before reference.
*/
- SpanKind[SpanKind["CLIENT"] = 2] = "CLIENT";
+ var node = iterator._reference;
+ var beforeNode = iterator._pointerBeforeReference;
/**
- * Indicates that the span describes producer sending a message to a
- * broker. Unlike client and server, there is no direct critical path latency
- * relationship between producer and consumer spans.
+ * 3. While true:
*/
- SpanKind[SpanKind["PRODUCER"] = 3] = "PRODUCER";
+ while (true) {
+ /**
+ * 3.1. Branch on direction:
+ */
+ if (forward) {
+ /**
+ * - next
+ */
+ if (!beforeNode) {
+ /**
+ * If beforeNode is false, then set node to the first node following
+ * node in iterator’s iterator collection. If there is no such node,
+ * then return null.
+ */
+ var nextNode = TreeAlgorithm_1.tree_getFollowingNode(iterator._root, node);
+ if (nextNode) {
+ node = nextNode;
+ }
+ else {
+ return null;
+ }
+ }
+ else {
+ /**
+ * If beforeNode is true, then set it to false.
+ */
+ beforeNode = false;
+ }
+ }
+ else {
+ /**
+ * - previous
+ */
+ if (beforeNode) {
+ /**
+ * If beforeNode is true, then set node to the first node preceding
+ * node in iterator’s iterator collection. If there is no such node,
+ * then return null.
+ */
+ var prevNode = TreeAlgorithm_1.tree_getPrecedingNode(iterator.root, node);
+ if (prevNode) {
+ node = prevNode;
+ }
+ else {
+ return null;
+ }
+ }
+ else {
+ /**
+ * If beforeNode is false, then set it to true.
+ */
+ beforeNode = true;
+ }
+ }
+ /**
+ * 3.2. Let result be the result of filtering node within iterator.
+ * 3.3. If result is FILTER_ACCEPT, then break.
+ */
+ var result = TraversalAlgorithm_1.traversal_filter(iterator, node);
+ if (result === interfaces_1.FilterResult.Accept) {
+ break;
+ }
+ }
/**
- * Indicates that the span describes consumer receiving a message from a
- * broker. Unlike client and server, there is no direct critical path latency
- * relationship between producer and consumer spans.
+ * 4. Set iterator’s reference to node.
+ * 5. Set iterator’s pointer before reference to beforeNode.
+ * 6. Return node.
*/
- SpanKind[SpanKind["CONSUMER"] = 4] = "CONSUMER";
-})(SpanKind = exports.SpanKind || (exports.SpanKind = {}));
-//# sourceMappingURL=span_kind.js.map
+ iterator._reference = node;
+ iterator._pointerBeforeReference = beforeNode;
+ return node;
+}
+exports.nodeIterator_traverse = nodeIterator_traverse;
+/**
+ * Gets the global iterator list.
+ */
+function nodeIterator_iteratorList() {
+ return DOMImpl_1.dom.window._iteratorList;
+}
+exports.nodeIterator_iteratorList = nodeIterator_iteratorList;
+//# sourceMappingURL=NodeIteratorAlgorithm.js.map
/***/ }),
-/***/ 9745:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+/***/ 3670:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
"use strict";
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+var __spread = (this && this.__spread) || function () {
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
+ return ar;
+};
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.wrapSpanContext = exports.isSpanContextValid = exports.isValidSpanId = exports.isValidTraceId = void 0;
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
+var infra_1 = __nccwpck_require__(4251);
+/**
+ * Converts a whitespace separated string into an array of tokens.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param value - a string of whitespace separated tokens
*/
-var invalid_span_constants_1 = __nccwpck_require__(1760);
-var NonRecordingSpan_1 = __nccwpck_require__(1462);
-var VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i;
-var VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i;
-function isValidTraceId(traceId) {
- return VALID_TRACEID_REGEX.test(traceId) && traceId !== invalid_span_constants_1.INVALID_TRACEID;
+function orderedSet_parse(value) {
+ /**
+ * 1. Let inputTokens be the result of splitting input on ASCII whitespace.
+ * 2. Let tokens be a new ordered set.
+ * 3. For each token in inputTokens, append token to tokens.
+ * 4. Return tokens.
+ */
+ var inputTokens = infra_1.string.splitAStringOnASCIIWhitespace(value);
+ return new Set(inputTokens);
}
-exports.isValidTraceId = isValidTraceId;
-function isValidSpanId(spanId) {
- return VALID_SPANID_REGEX.test(spanId) && spanId !== invalid_span_constants_1.INVALID_SPANID;
+exports.orderedSet_parse = orderedSet_parse;
+/**
+ * Converts an array of tokens into a space separated string.
+ *
+ * @param tokens - an array of token strings
+ */
+function orderedSet_serialize(tokens) {
+ /**
+ * The ordered set serializer takes a set and returns the concatenation of
+ * set using U+0020 SPACE.
+ */
+ return __spread(tokens).join(' ');
}
-exports.isValidSpanId = isValidSpanId;
+exports.orderedSet_serialize = orderedSet_serialize;
/**
- * Returns true if this {@link SpanContext} is valid.
- * @return true if this {@link SpanContext} is valid.
+ * Removes duplicate tokens and convert all whitespace characters
+ * to space.
+ *
+ * @param value - a string of whitespace separated tokens
*/
-function isSpanContextValid(spanContext) {
- return (isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId));
+function orderedSet_sanitize(value) {
+ return orderedSet_serialize(orderedSet_parse(value));
}
-exports.isSpanContextValid = isSpanContextValid;
+exports.orderedSet_sanitize = orderedSet_sanitize;
/**
- * Wrap the given {@link SpanContext} in a new non-recording {@link Span}
+ * Determines whether a set contains the other.
*
- * @param spanContext span context to be wrapped
- * @returns a new non-recording {@link Span} with the provided context
+ * @param set1 - a set
+ * @param set1 - a set that is contained in set1
+ * @param caseSensitive - whether matches are case-sensitive
*/
-function wrapSpanContext(spanContext) {
- return new NonRecordingSpan_1.NonRecordingSpan(spanContext);
+function orderedSet_contains(set1, set2, caseSensitive) {
+ var e_1, _a, e_2, _b;
+ try {
+ for (var set2_1 = __values(set2), set2_1_1 = set2_1.next(); !set2_1_1.done; set2_1_1 = set2_1.next()) {
+ var val2 = set2_1_1.value;
+ var found = false;
+ try {
+ for (var set1_1 = (e_2 = void 0, __values(set1)), set1_1_1 = set1_1.next(); !set1_1_1.done; set1_1_1 = set1_1.next()) {
+ var val1 = set1_1_1.value;
+ if (caseSensitive) {
+ if (val1 === val2) {
+ found = true;
+ break;
+ }
+ }
+ else {
+ if (val1.toUpperCase() === val2.toUpperCase()) {
+ found = true;
+ break;
+ }
+ }
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (set1_1_1 && !set1_1_1.done && (_b = set1_1.return)) _b.call(set1_1);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ if (!found)
+ return false;
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (set2_1_1 && !set2_1_1.done && (_a = set2_1.return)) _a.call(set2_1);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ return true;
}
-exports.wrapSpanContext = wrapSpanContext;
-//# sourceMappingURL=spancontext-utils.js.map
+exports.orderedSet_contains = orderedSet_contains;
+//# sourceMappingURL=OrderedSetAlgorithm.js.map
/***/ }),
-/***/ 8845:
-/***/ ((__unused_webpack_module, exports) => {
+/***/ 2328:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
"use strict";
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.SpanStatusCode = void 0;
+var util_1 = __nccwpck_require__(6195);
+var CreateAlgorithm_1 = __nccwpck_require__(7339);
/**
- * An enumeration of status codes.
+ * Converts the given nodes or strings into a node (if `nodes` has
+ * only one element) or a document fragment.
+ *
+ * @param nodes - the array of nodes or strings,
+ * @param document - owner document
*/
-var SpanStatusCode;
-(function (SpanStatusCode) {
+function parentNode_convertNodesIntoANode(nodes, document) {
+ var e_1, _a;
/**
- * The default status.
+ * 1. Let node be null.
+ * 2. Replace each string in nodes with a new Text node whose data is the
+ * string and node document is document.
*/
- SpanStatusCode[SpanStatusCode["UNSET"] = 0] = "UNSET";
+ var node = null;
+ for (var i = 0; i < nodes.length; i++) {
+ var item = nodes[i];
+ if (util_1.isString(item)) {
+ var text = CreateAlgorithm_1.create_text(document, item);
+ nodes[i] = text;
+ }
+ }
/**
- * The operation has been validated by an Application developer or
- * Operator to have completed successfully.
+ * 3. If nodes contains one node, set node to that node.
+ * 4. Otherwise, set node to a new DocumentFragment whose node document is
+ * document, and then append each node in nodes, if any, to it.
*/
- SpanStatusCode[SpanStatusCode["OK"] = 1] = "OK";
+ if (nodes.length === 1) {
+ node = nodes[0];
+ }
+ else {
+ node = CreateAlgorithm_1.create_documentFragment(document);
+ var ns = node;
+ try {
+ for (var nodes_1 = __values(nodes), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) {
+ var item = nodes_1_1.value;
+ ns.appendChild(item);
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (nodes_1_1 && !nodes_1_1.done && (_a = nodes_1.return)) _a.call(nodes_1);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ }
/**
- * The operation contains an error.
+ * 5. Return node.
*/
- SpanStatusCode[SpanStatusCode["ERROR"] = 2] = "ERROR";
-})(SpanStatusCode = exports.SpanStatusCode || (exports.SpanStatusCode = {}));
-//# sourceMappingURL=status.js.map
+ return node;
+}
+exports.parentNode_convertNodesIntoANode = parentNode_convertNodesIntoANode;
+//# sourceMappingURL=ParentNodeAlgorithm.js.map
/***/ }),
-/***/ 6905:
-/***/ ((__unused_webpack_module, exports) => {
+/***/ 457:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
"use strict";
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+var __spread = (this && this.__spread) || function () {
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
+ return ar;
+};
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.TraceFlags = void 0;
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
+var interfaces_1 = __nccwpck_require__(7305);
+var DOMException_1 = __nccwpck_require__(3166);
+var util_1 = __nccwpck_require__(5282);
+var CreateAlgorithm_1 = __nccwpck_require__(7339);
+var TreeAlgorithm_1 = __nccwpck_require__(6620);
+var BoundaryPointAlgorithm_1 = __nccwpck_require__(1054);
+var CharacterDataAlgorithm_1 = __nccwpck_require__(9461);
+var NodeAlgorithm_1 = __nccwpck_require__(4924);
+var MutationAlgorithm_1 = __nccwpck_require__(5463);
+var TextAlgorithm_1 = __nccwpck_require__(3512);
+/**
+ * Determines if the node's start boundary point is at its end boundary
+ * point.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param range - a range
*/
-var TraceFlags;
-(function (TraceFlags) {
- /** Represents no flag set. */
- TraceFlags[TraceFlags["NONE"] = 0] = "NONE";
- /** Bit to represent whether trace is sampled in trace flags. */
- TraceFlags[TraceFlags["SAMPLED"] = 1] = "SAMPLED";
-})(TraceFlags = exports.TraceFlags || (exports.TraceFlags = {}));
-//# sourceMappingURL=trace_flags.js.map
-
-/***/ }),
-
-/***/ 8384:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
+function range_collapsed(range) {
+ /**
+ * A range is collapsed if its start node is its end node and its start offset is its end offset.
+ */
+ return (range._startNode === range._endNode && range._startOffset === range._endOffset);
+}
+exports.range_collapsed = range_collapsed;
+/**
+ * Gets the root node of a range.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param range - a range
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=trace_state.js.map
-
-/***/ }),
-
-/***/ 3168:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+function range_root(range) {
+ /**
+ * The root of a live range is the root of its start node.
+ */
+ return TreeAlgorithm_1.tree_rootNode(range._startNode);
+}
+exports.range_root = range_root;
+/**
+ * Determines if a node is fully contained in a range.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param node - a node
+ * @param range - a range
+ */
+function range_isContained(node, range) {
+ /**
+ * A node node is contained in a live range range if node’s root is range’s
+ * root, and (node, 0) is after range’s start, and (node, node’s length) is
+ * before range’s end.
+ */
+ return (TreeAlgorithm_1.tree_rootNode(node) === range_root(range) &&
+ BoundaryPointAlgorithm_1.boundaryPoint_position([node, 0], range._start) === interfaces_1.BoundaryPosition.After &&
+ BoundaryPointAlgorithm_1.boundaryPoint_position([node, TreeAlgorithm_1.tree_nodeLength(node)], range._end) === interfaces_1.BoundaryPosition.Before);
+}
+exports.range_isContained = range_isContained;
+/**
+ * Determines if a node is partially contained in a range.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param node - a node
+ * @param range - a range
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=tracer.js.map
-
-/***/ }),
-
-/***/ 891:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
+function range_isPartiallyContained(node, range) {
+ /**
+ * A node is partially contained in a live range if it’s an inclusive
+ * ancestor of the live range’s start node but not its end node,
+ * or vice versa.
+ */
+ var startCheck = TreeAlgorithm_1.tree_isAncestorOf(range._startNode, node, true);
+ var endCheck = TreeAlgorithm_1.tree_isAncestorOf(range._endNode, node, true);
+ return (startCheck && !endCheck) || (!startCheck && endCheck);
+}
+exports.range_isPartiallyContained = range_isPartiallyContained;
+/**
+ * Sets the start boundary point of a range.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * @param range - a range
+ * @param node - a node
+ * @param offset - an offset into node
+ */
+function range_setTheStart(range, node, offset) {
+ /**
+ * 1. If node is a doctype, then throw an "InvalidNodeTypeError" DOMException.
+ * 2. If offset is greater than node’s length, then throw an "IndexSizeError"
+ * DOMException.
+ * 3. Let bp be the boundary point (node, offset).
+ * 4. If these steps were invoked as "set the start"
+ * 4.1. If bp is after the range’s end, or if range’s root is not equal to
+ * node’s root, set range’s end to bp.
+ * 4.2. Set range’s start to bp.
+ */
+ if (util_1.Guard.isDocumentTypeNode(node)) {
+ throw new DOMException_1.InvalidNodeTypeError();
+ }
+ if (offset > TreeAlgorithm_1.tree_nodeLength(node)) {
+ throw new DOMException_1.IndexSizeError();
+ }
+ var bp = [node, offset];
+ if (range_root(range) !== TreeAlgorithm_1.tree_rootNode(node) ||
+ BoundaryPointAlgorithm_1.boundaryPoint_position(bp, range._end) === interfaces_1.BoundaryPosition.After) {
+ range._end = bp;
+ }
+ range._start = bp;
+}
+exports.range_setTheStart = range_setTheStart;
+/**
+ * Sets the end boundary point of a range.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param range - a range
+ * @param node - a node
+ * @param offset - an offset into node
+ */
+function range_setTheEnd(range, node, offset) {
+ /**
+ * 1. If node is a doctype, then throw an "InvalidNodeTypeError" DOMException.
+ * 2. If offset is greater than node’s length, then throw an "IndexSizeError"
+ * DOMException.
+ * 3. Let bp be the boundary point (node, offset).
+ * 4. If these steps were invoked as "set the end"
+ * 4.1. If bp is before the range’s start, or if range’s root is not equal
+ * to node’s root, set range’s start to bp.
+ * 4.2. Set range’s end to bp.
+ */
+ if (util_1.Guard.isDocumentTypeNode(node)) {
+ throw new DOMException_1.InvalidNodeTypeError();
+ }
+ if (offset > TreeAlgorithm_1.tree_nodeLength(node)) {
+ throw new DOMException_1.IndexSizeError();
+ }
+ var bp = [node, offset];
+ if (range_root(range) !== TreeAlgorithm_1.tree_rootNode(node) ||
+ BoundaryPointAlgorithm_1.boundaryPoint_position(bp, range._start) === interfaces_1.BoundaryPosition.Before) {
+ range._start = bp;
+ }
+ range._end = bp;
+}
+exports.range_setTheEnd = range_setTheEnd;
+/**
+ * Selects a node.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param range - a range
+ * @param node - a node
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=tracer_provider.js.map
-
-/***/ }),
-
-/***/ 8996:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-/*
- * Copyright The OpenTelemetry Authors
+function range_select(node, range) {
+ /**
+ * 1. Let parent be node’s parent.
+ * 2. If parent is null, then throw an "InvalidNodeTypeError" DOMException.
+ */
+ var parent = node._parent;
+ if (parent === null)
+ throw new DOMException_1.InvalidNodeTypeError();
+ /**
+ * 3. Let index be node’s index.
+ * 4. Set range’s start to boundary point (parent, index).
+ * 5. Set range’s end to boundary point (parent, index plus 1).
+ */
+ var index = TreeAlgorithm_1.tree_index(node);
+ range._start = [parent, index];
+ range._end = [parent, index + 1];
+}
+exports.range_select = range_select;
+/**
+ * EXtracts the contents of range as a document fragment.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * @param range - a range
+ */
+function range_extract(range) {
+ var e_1, _a, e_2, _b, e_3, _c;
+ /**
+ * 1. Let fragment be a new DocumentFragment node whose node document is
+ * range’s start node’s node document.
+ * 2. If range is collapsed, then return fragment.
+ */
+ var fragment = CreateAlgorithm_1.create_documentFragment(range._startNode._nodeDocument);
+ if (range_collapsed(range))
+ return fragment;
+ /**
+ * 3. Let original start node, original start offset, original end node,
+ * and original end offset be range’s start node, start offset, end node,
+ * and end offset, respectively.
+ */
+ var originalStartNode = range._startNode;
+ var originalStartOffset = range._startOffset;
+ var originalEndNode = range._endNode;
+ var originalEndOffset = range._endOffset;
+ /**
+ * 4. If original start node is original end node, and they are a Text,
+ * ProcessingInstruction, or Comment node:
+ * 4.1. Let clone be a clone of original start node.
+ * 4.2. Set the data of clone to the result of substringing data with node
+ * original start node, offset original start offset, and count original end
+ * offset minus original start offset.
+ * 4.3. Append clone to fragment.
+ * 4.4. Replace data with node original start node, offset original start
+ * offset, count original end offset minus original start offset, and data
+ * the empty string.
+ * 4.5. Return fragment.
+ */
+ if (originalStartNode === originalEndNode &&
+ util_1.Guard.isCharacterDataNode(originalStartNode)) {
+ var clone = NodeAlgorithm_1.node_clone(originalStartNode);
+ clone._data = CharacterDataAlgorithm_1.characterData_substringData(originalStartNode, originalStartOffset, originalEndOffset - originalStartOffset);
+ MutationAlgorithm_1.mutation_append(clone, fragment);
+ CharacterDataAlgorithm_1.characterData_replaceData(originalStartNode, originalStartOffset, originalEndOffset - originalStartOffset, '');
+ return fragment;
+ }
+ /**
+ * 5. Let common ancestor be original start node.
+ * 6. While common ancestor is not an inclusive ancestor of original end
+ * node, set common ancestor to its own parent.
+ */
+ var commonAncestor = originalStartNode;
+ while (!TreeAlgorithm_1.tree_isAncestorOf(originalEndNode, commonAncestor, true)) {
+ if (commonAncestor._parent === null) {
+ throw new Error("Parent node is null.");
+ }
+ commonAncestor = commonAncestor._parent;
+ }
+ /**
+ * 7. Let first partially contained child be null.
+ * 8. If original start node is not an inclusive ancestor of original end
+ * node, set first partially contained child to the first child of common
+ * ancestor that is partially contained in range.
+ */
+ var firstPartiallyContainedChild = null;
+ if (!TreeAlgorithm_1.tree_isAncestorOf(originalEndNode, originalStartNode, true)) {
+ try {
+ for (var _d = __values(commonAncestor._children), _e = _d.next(); !_e.done; _e = _d.next()) {
+ var node = _e.value;
+ if (range_isPartiallyContained(node, range)) {
+ firstPartiallyContainedChild = node;
+ break;
+ }
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ }
+ /**
+ * 9. Let last partially contained child be null.
+ * 10. If original end node is not an inclusive ancestor of original start
+ * node, set last partially contained child to the last child of common
+ * ancestor that is partially contained in range.
+ */
+ var lastPartiallyContainedChild = null;
+ if (!TreeAlgorithm_1.tree_isAncestorOf(originalStartNode, originalEndNode, true)) {
+ var children = __spread(commonAncestor._children);
+ for (var i = children.length - 1; i > 0; i--) {
+ var node = children[i];
+ if (range_isPartiallyContained(node, range)) {
+ lastPartiallyContainedChild = node;
+ break;
+ }
+ }
+ }
+ /**
+ * 11. Let contained children be a list of all children of common ancestor
+ * that are contained in range, in tree order.
+ * 12. If any member of contained children is a doctype, then throw a
+ * "HierarchyRequestError" DOMException.
+ */
+ var containedChildren = [];
+ try {
+ for (var _f = __values(commonAncestor._children), _g = _f.next(); !_g.done; _g = _f.next()) {
+ var child = _g.value;
+ if (range_isContained(child, range)) {
+ if (util_1.Guard.isDocumentTypeNode(child)) {
+ throw new DOMException_1.HierarchyRequestError();
+ }
+ containedChildren.push(child);
+ }
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ var newNode;
+ var newOffset;
+ if (TreeAlgorithm_1.tree_isAncestorOf(originalEndNode, originalStartNode, true)) {
+ /**
+ * 13. If original start node is an inclusive ancestor of original end node,
+ * set new node to original start node and new offset to original start
+ * offset.
+ */
+ newNode = originalStartNode;
+ newOffset = originalStartOffset;
+ }
+ else {
+ /**
+ * 14. Otherwise:
+ * 14.1. Let reference node equal original start node.
+ * 14.2. While reference node’s parent is not null and is not an inclusive
+ * ancestor of original end node, set reference node to its parent.
+ * 14.3. Set new node to the parent of reference node, and new offset to
+ * one plus reference node’s index.
+ */
+ var referenceNode = originalStartNode;
+ while (referenceNode._parent !== null &&
+ !TreeAlgorithm_1.tree_isAncestorOf(originalEndNode, referenceNode._parent)) {
+ referenceNode = referenceNode._parent;
+ }
+ /* istanbul ignore next */
+ if (referenceNode._parent === null) {
+ /**
+ * If reference node’s parent is null, it would be the root of range,
+ * so would be an inclusive ancestor of original end node, and we could
+ * not reach this point.
+ */
+ throw new Error("Parent node is null.");
+ }
+ newNode = referenceNode._parent;
+ newOffset = 1 + TreeAlgorithm_1.tree_index(referenceNode);
+ }
+ if (util_1.Guard.isCharacterDataNode(firstPartiallyContainedChild)) {
+ /**
+ * 15. If first partially contained child is a Text, ProcessingInstruction,
+ * or Comment node:
+ * 15.1. Let clone be a clone of original start node.
+ * 15.2. Set the data of clone to the result of substringing data with
+ * node original start node, offset original start offset, and count
+ * original start node’s length minus original start offset.
+ * 15.3. Append clone to fragment.
+ * 15.4. Replace data with node original start node, offset original
+ * start offset, count original start node’s length minus original start
+ * offset, and data the empty string.
+ */
+ var clone = NodeAlgorithm_1.node_clone(originalStartNode);
+ clone._data = CharacterDataAlgorithm_1.characterData_substringData(originalStartNode, originalStartOffset, TreeAlgorithm_1.tree_nodeLength(originalStartNode) - originalStartOffset);
+ MutationAlgorithm_1.mutation_append(clone, fragment);
+ CharacterDataAlgorithm_1.characterData_replaceData(originalStartNode, originalStartOffset, TreeAlgorithm_1.tree_nodeLength(originalStartNode) - originalStartOffset, '');
+ }
+ else if (firstPartiallyContainedChild !== null) {
+ /**
+ * 16. Otherwise, if first partially contained child is not null:
+ * 16.1. Let clone be a clone of first partially contained child.
+ * 16.2. Append clone to fragment.
+ * 16.3. Let subrange be a new live range whose start is (original start
+ * node, original start offset) and whose end is (first partially
+ * contained child, first partially contained child’s length).
+ * 16.4. Let subfragment be the result of extracting subrange.
+ * 16.5. Append subfragment to clone.
+ */
+ var clone = NodeAlgorithm_1.node_clone(firstPartiallyContainedChild);
+ MutationAlgorithm_1.mutation_append(clone, fragment);
+ var subrange = CreateAlgorithm_1.create_range([originalStartNode, originalStartOffset], [firstPartiallyContainedChild, TreeAlgorithm_1.tree_nodeLength(firstPartiallyContainedChild)]);
+ var subfragment = range_extract(subrange);
+ MutationAlgorithm_1.mutation_append(subfragment, clone);
+ }
+ try {
+ /**
+ * 17. For each contained child in contained children, append contained
+ * child to fragment.
+ */
+ for (var containedChildren_1 = __values(containedChildren), containedChildren_1_1 = containedChildren_1.next(); !containedChildren_1_1.done; containedChildren_1_1 = containedChildren_1.next()) {
+ var child = containedChildren_1_1.value;
+ MutationAlgorithm_1.mutation_append(child, fragment);
+ }
+ }
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
+ finally {
+ try {
+ if (containedChildren_1_1 && !containedChildren_1_1.done && (_c = containedChildren_1.return)) _c.call(containedChildren_1);
+ }
+ finally { if (e_3) throw e_3.error; }
+ }
+ if (util_1.Guard.isCharacterDataNode(lastPartiallyContainedChild)) {
+ /**
+ * 18. If last partially contained child is a Text, ProcessingInstruction,
+ * or Comment node:
+ * 18.1. Let clone be a clone of original end node.
+ * 18.2. Set the data of clone to the result of substringing data with
+ * node original end node, offset 0, and count original end offset.
+ * 18.3. Append clone to fragment.
+ * 18.4. Replace data with node original end node, offset 0, count
+ * original end offset, and data the empty string.
+ */
+ var clone = NodeAlgorithm_1.node_clone(originalEndNode);
+ clone._data = CharacterDataAlgorithm_1.characterData_substringData(originalEndNode, 0, originalEndOffset);
+ MutationAlgorithm_1.mutation_append(clone, fragment);
+ CharacterDataAlgorithm_1.characterData_replaceData(originalEndNode, 0, originalEndOffset, '');
+ }
+ else if (lastPartiallyContainedChild !== null) {
+ /**
+ * 19. Otherwise, if last partially contained child is not null:
+ * 19.1. Let clone be a clone of last partially contained child.
+ * 19.2. Append clone to fragment.
+ * 19.3. Let subrange be a new live range whose start is (last partially
+ * contained child, 0) and whose end is (original end node, original
+ * end offset).
+ * 19.4. Let subfragment be the result of extracting subrange.
+ * 19.5. Append subfragment to clone.
+ */
+ var clone = NodeAlgorithm_1.node_clone(lastPartiallyContainedChild);
+ MutationAlgorithm_1.mutation_append(clone, fragment);
+ var subrange = CreateAlgorithm_1.create_range([lastPartiallyContainedChild, 0], [originalEndNode, originalEndOffset]);
+ var subfragment = range_extract(subrange);
+ MutationAlgorithm_1.mutation_append(subfragment, clone);
+ }
+ /**
+ * 20. Set range’s start and end to (new node, new offset).
+ */
+ range._start = [newNode, newOffset];
+ range._end = [newNode, newOffset];
+ /**
+ * 21. Return fragment.
+ */
+ return fragment;
+}
+exports.range_extract = range_extract;
+/**
+ * Clones the contents of range as a document fragment.
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * @param range - a range
+ */
+function range_cloneTheContents(range) {
+ var e_4, _a, e_5, _b, e_6, _c;
+ /**
+ * 1. Let fragment be a new DocumentFragment node whose node document
+ * is range’s start node’s node document.
+ * 2. If range is collapsed, then return fragment.
+ */
+ var fragment = CreateAlgorithm_1.create_documentFragment(range._startNode._nodeDocument);
+ if (range_collapsed(range))
+ return fragment;
+ /**
+ * 3. Let original start node, original start offset, original end node,
+ * and original end offset be range’s start node, start offset, end node,
+ * and end offset, respectively.
+ * 4. If original start node is original end node, and they are a Text,
+ * ProcessingInstruction, or Comment node:
+ * 4.1. Let clone be a clone of original start node.
+ * 4.2. Set the data of clone to the result of substringing data with node
+ * original start node, offset original start offset, and count original end
+ * offset minus original start offset.
+ * 4.3. Append clone to fragment.
+ * 4.5. Return fragment.
+ */
+ var originalStartNode = range._startNode;
+ var originalStartOffset = range._startOffset;
+ var originalEndNode = range._endNode;
+ var originalEndOffset = range._endOffset;
+ if (originalStartNode === originalEndNode &&
+ util_1.Guard.isCharacterDataNode(originalStartNode)) {
+ var clone = NodeAlgorithm_1.node_clone(originalStartNode);
+ clone._data = CharacterDataAlgorithm_1.characterData_substringData(originalStartNode, originalStartOffset, originalEndOffset - originalStartOffset);
+ MutationAlgorithm_1.mutation_append(clone, fragment);
+ }
+ /**
+ * 5. Let common ancestor be original start node.
+ * 6. While common ancestor is not an inclusive ancestor of original end
+ * node, set common ancestor to its own parent.
+ */
+ var commonAncestor = originalStartNode;
+ while (!TreeAlgorithm_1.tree_isAncestorOf(originalEndNode, commonAncestor, true)) {
+ if (commonAncestor._parent === null) {
+ throw new Error("Parent node is null.");
+ }
+ commonAncestor = commonAncestor._parent;
+ }
+ /**
+ * 7. Let first partially contained child be null.
+ * 8. If original start node is not an inclusive ancestor of original end
+ * node, set first partially contained child to the first child of common
+ * ancestor that is partially contained in range.
+ */
+ var firstPartiallyContainedChild = null;
+ if (!TreeAlgorithm_1.tree_isAncestorOf(originalEndNode, originalStartNode, true)) {
+ try {
+ for (var _d = __values(commonAncestor._children), _e = _d.next(); !_e.done; _e = _d.next()) {
+ var node = _e.value;
+ if (range_isPartiallyContained(node, range)) {
+ firstPartiallyContainedChild = node;
+ break;
+ }
+ }
+ }
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
+ finally {
+ try {
+ if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
+ }
+ finally { if (e_4) throw e_4.error; }
+ }
+ }
+ /**
+ * 9. Let last partially contained child be null.
+ * 10. If original end node is not an inclusive ancestor of original start
+ * node, set last partially contained child to the last child of common
+ * ancestor that is partially contained in range.
+ */
+ var lastPartiallyContainedChild = null;
+ if (!TreeAlgorithm_1.tree_isAncestorOf(originalStartNode, originalEndNode, true)) {
+ var children = __spread(commonAncestor._children);
+ for (var i = children.length - 1; i > 0; i--) {
+ var node = children[i];
+ if (range_isPartiallyContained(node, range)) {
+ lastPartiallyContainedChild = node;
+ break;
+ }
+ }
+ }
+ /**
+ * 11. Let contained children be a list of all children of common ancestor
+ * that are contained in range, in tree order.
+ * 12. If any member of contained children is a doctype, then throw a
+ * "HierarchyRequestError" DOMException.
+ */
+ var containedChildren = [];
+ try {
+ for (var _f = __values(commonAncestor._children), _g = _f.next(); !_g.done; _g = _f.next()) {
+ var child = _g.value;
+ if (range_isContained(child, range)) {
+ if (util_1.Guard.isDocumentTypeNode(child)) {
+ throw new DOMException_1.HierarchyRequestError();
+ }
+ containedChildren.push(child);
+ }
+ }
+ }
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
+ finally {
+ try {
+ if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
+ }
+ finally { if (e_5) throw e_5.error; }
+ }
+ if (util_1.Guard.isCharacterDataNode(firstPartiallyContainedChild)) {
+ /**
+ * 13. If first partially contained child is a Text, ProcessingInstruction,
+ * or Comment node:
+ * 13.1. Let clone be a clone of original start node.
+ * 13.2. Set the data of clone to the result of substringing data with
+ * node original start node, offset original start offset, and count
+ * original start node’s length minus original start offset.
+ * 13.3. Append clone to fragment.
+ */
+ var clone = NodeAlgorithm_1.node_clone(originalStartNode);
+ clone._data = CharacterDataAlgorithm_1.characterData_substringData(originalStartNode, originalStartOffset, TreeAlgorithm_1.tree_nodeLength(originalStartNode) - originalStartOffset);
+ MutationAlgorithm_1.mutation_append(clone, fragment);
+ }
+ else if (firstPartiallyContainedChild !== null) {
+ /**
+ * 14. Otherwise, if first partially contained child is not null:
+ * 14.1. Let clone be a clone of first partially contained child.
+ * 14.2. Append clone to fragment.
+ * 14.3. Let subrange be a new live range whose start is (original start
+ * node, original start offset) and whose end is (first partially
+ * contained child, first partially contained child’s length).
+ * 14.4. Let subfragment be the result of cloning the contents of
+ * subrange.
+ * 14.5. Append subfragment to clone.
+ */
+ var clone = NodeAlgorithm_1.node_clone(firstPartiallyContainedChild);
+ MutationAlgorithm_1.mutation_append(clone, fragment);
+ var subrange = CreateAlgorithm_1.create_range([originalStartNode, originalStartOffset], [firstPartiallyContainedChild, TreeAlgorithm_1.tree_nodeLength(firstPartiallyContainedChild)]);
+ var subfragment = range_cloneTheContents(subrange);
+ MutationAlgorithm_1.mutation_append(subfragment, clone);
+ }
+ try {
+ /**
+ * 15. For each contained child in contained children, append contained
+ * child to fragment.
+ * 15.1. Let clone be a clone of contained child with the clone children
+ * flag set.
+ * 15.2. Append clone to fragment.
+ */
+ for (var containedChildren_2 = __values(containedChildren), containedChildren_2_1 = containedChildren_2.next(); !containedChildren_2_1.done; containedChildren_2_1 = containedChildren_2.next()) {
+ var child = containedChildren_2_1.value;
+ var clone = NodeAlgorithm_1.node_clone(child);
+ MutationAlgorithm_1.mutation_append(clone, fragment);
+ }
+ }
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
+ finally {
+ try {
+ if (containedChildren_2_1 && !containedChildren_2_1.done && (_c = containedChildren_2.return)) _c.call(containedChildren_2);
+ }
+ finally { if (e_6) throw e_6.error; }
+ }
+ if (util_1.Guard.isCharacterDataNode(lastPartiallyContainedChild)) {
+ /**
+ * 16. If last partially contained child is a Text, ProcessingInstruction,
+ * or Comment node:
+ * 16.1. Let clone be a clone of original end node.
+ * 16.2. Set the data of clone to the result of substringing data with
+ * node original end node, offset 0, and count original end offset.
+ * 16.3. Append clone to fragment.
+ */
+ var clone = NodeAlgorithm_1.node_clone(originalEndNode);
+ clone._data = CharacterDataAlgorithm_1.characterData_substringData(originalEndNode, 0, originalEndOffset);
+ MutationAlgorithm_1.mutation_append(clone, fragment);
+ }
+ else if (lastPartiallyContainedChild !== null) {
+ /**
+ * 17. Otherwise, if last partially contained child is not null:
+ * 17.1. Let clone be a clone of last partially contained child.
+ * 17.2. Append clone to fragment.
+ * 17.3. Let subrange be a new live range whose start is (last partially
+ * contained child, 0) and whose end is (original end node, original
+ * end offset).
+ * 17.4. Let subfragment be the result of cloning the contents of subrange.
+ * 17.5. Append subfragment to clone.
+ */
+ var clone = NodeAlgorithm_1.node_clone(lastPartiallyContainedChild);
+ fragment.append(clone);
+ var subrange = CreateAlgorithm_1.create_range([lastPartiallyContainedChild, 0], [originalEndNode, originalEndOffset]);
+ var subfragment = range_extract(subrange);
+ MutationAlgorithm_1.mutation_append(subfragment, clone);
+ }
+ /**
+ * 18. Return fragment.
+ */
+ return fragment;
+}
+exports.range_cloneTheContents = range_cloneTheContents;
+/**
+ * Inserts a node into a range at the start boundary point.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * @param node - node to insert
+ * @param range - a range
*/
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.VERSION = void 0;
-// this is autogenerated file, see scripts/version-update.js
-exports.VERSION = '1.0.4';
-//# sourceMappingURL=version.js.map
+function range_insert(node, range) {
+ var e_7, _a;
+ /**
+ * 1. If range’s start node is a ProcessingInstruction or Comment node, is a
+ * Text node whose parent is null, or is node, then throw a
+ * "HierarchyRequestError" DOMException.
+ */
+ if (util_1.Guard.isProcessingInstructionNode(range._startNode) ||
+ util_1.Guard.isCommentNode(range._startNode) ||
+ (util_1.Guard.isTextNode(range._startNode) && range._startNode._parent === null) ||
+ range._startNode === node) {
+ throw new DOMException_1.HierarchyRequestError();
+ }
+ /**
+ * 2. Let referenceNode be null.
+ * 3. If range’s start node is a Text node, set referenceNode to that Text
+ * node.
+ * 4. Otherwise, set referenceNode to the child of start node whose index is
+ * start offset, and null if there is no such child.
+ */
+ var referenceNode = null;
+ if (util_1.Guard.isTextNode(range._startNode)) {
+ referenceNode = range._startNode;
+ }
+ else {
+ var index = 0;
+ try {
+ for (var _b = __values(range._startNode._children), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var child = _c.value;
+ if (index === range._startOffset) {
+ referenceNode = child;
+ break;
+ }
+ index++;
+ }
+ }
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_7) throw e_7.error; }
+ }
+ }
+ /**
+ * 5. Let parent be range’s start node if referenceNode is null, and
+ * referenceNode’s parent otherwise.
+ */
+ var parent;
+ if (referenceNode === null) {
+ parent = range._startNode;
+ }
+ else {
+ if (referenceNode._parent === null) {
+ throw new Error("Parent node is null.");
+ }
+ parent = referenceNode._parent;
+ }
+ /**
+ * 6. Ensure pre-insertion validity of node into parent before referenceNode.
+ */
+ MutationAlgorithm_1.mutation_ensurePreInsertionValidity(node, parent, referenceNode);
+ /**
+ * 7. If range’s start node is a Text node, set referenceNode to the result
+ * of splitting it with offset range’s start offset.
+ */
+ if (util_1.Guard.isTextNode(range._startNode)) {
+ referenceNode = TextAlgorithm_1.text_split(range._startNode, range._startOffset);
+ }
+ /**
+ * 8. If node is referenceNode, set referenceNode to its next sibling.
+ */
+ if (node === referenceNode) {
+ referenceNode = node._nextSibling;
+ }
+ /**
+ * 9. If node’s parent is not null, remove node from its parent.
+ */
+ if (node._parent !== null) {
+ MutationAlgorithm_1.mutation_remove(node, node._parent);
+ }
+ /**
+ * 10. Let newOffset be parent’s length if referenceNode is null, and
+ * referenceNode’s index otherwise.
+ */
+ var newOffset = (referenceNode === null ?
+ TreeAlgorithm_1.tree_nodeLength(parent) : TreeAlgorithm_1.tree_index(referenceNode));
+ /**
+ * 11. Increase newOffset by node’s length if node is a DocumentFragment
+ * node, and one otherwise.
+ */
+ if (util_1.Guard.isDocumentFragmentNode(node)) {
+ newOffset += TreeAlgorithm_1.tree_nodeLength(node);
+ }
+ else {
+ newOffset++;
+ }
+ /**
+ * 12. Pre-insert node into parent before referenceNode.
+ */
+ MutationAlgorithm_1.mutation_preInsert(node, parent, referenceNode);
+ /**
+ * 13. If range is collapsed, then set range’s end to (parent, newOffset).
+ */
+ if (range_collapsed(range)) {
+ range._end = [parent, newOffset];
+ }
+}
+exports.range_insert = range_insert;
+/**
+ * Traverses through all contained nodes of a range.
+ *
+ * @param range - a range
+ */
+function range_getContainedNodes(range) {
+ var _a;
+ return _a = {},
+ _a[Symbol.iterator] = function () {
+ var container = range.commonAncestorContainer;
+ var currentNode = TreeAlgorithm_1.tree_getFirstDescendantNode(container);
+ return {
+ next: function () {
+ while (currentNode && !range_isContained(currentNode, range)) {
+ currentNode = TreeAlgorithm_1.tree_getNextDescendantNode(container, currentNode);
+ }
+ if (currentNode === null) {
+ return { done: true, value: null };
+ }
+ else {
+ var result = { done: false, value: currentNode };
+ currentNode = TreeAlgorithm_1.tree_getNextDescendantNode(container, currentNode);
+ return result;
+ }
+ }
+ };
+ },
+ _a;
+}
+exports.range_getContainedNodes = range_getContainedNodes;
+/**
+ * Traverses through all partially contained nodes of a range.
+ *
+ * @param range - a range
+ */
+function range_getPartiallyContainedNodes(range) {
+ var _a;
+ return _a = {},
+ _a[Symbol.iterator] = function () {
+ var container = range.commonAncestorContainer;
+ var currentNode = TreeAlgorithm_1.tree_getFirstDescendantNode(container);
+ return {
+ next: function () {
+ while (currentNode && !range_isPartiallyContained(currentNode, range)) {
+ currentNode = TreeAlgorithm_1.tree_getNextDescendantNode(container, currentNode);
+ }
+ if (currentNode === null) {
+ return { done: true, value: null };
+ }
+ else {
+ var result = { done: false, value: currentNode };
+ currentNode = TreeAlgorithm_1.tree_getNextDescendantNode(container, currentNode);
+ return result;
+ }
+ }
+ };
+ },
+ _a;
+}
+exports.range_getPartiallyContainedNodes = range_getPartiallyContainedNodes;
+//# sourceMappingURL=RangeAlgorithm.js.map
/***/ }),
-/***/ 4812:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+/***/ 1853:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-module.exports =
-{
- parallel : __nccwpck_require__(8210),
- serial : __nccwpck_require__(445),
- serialOrdered : __nccwpck_require__(3578)
-};
+"use strict";
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMException_1 = __nccwpck_require__(3166);
+/**
+ * Matches elements with the given selectors.
+ *
+ * @param selectors - selectors
+ * @param node - the node to match against
+ */
+function selectors_scopeMatchASelectorsString(selectors, node) {
+ /**
+ * TODO: Selectors
+ * 1. Let s be the result of parse a selector selectors. [SELECTORS4]
+ * 2. If s is failure, then throw a "SyntaxError" DOMException.
+ * 3. Return the result of match a selector against a tree with s and node’s
+ * root using scoping root node. [SELECTORS4].
+ */
+ throw new DOMException_1.NotSupportedError();
+}
+exports.selectors_scopeMatchASelectorsString = selectors_scopeMatchASelectorsString;
+//# sourceMappingURL=SelectorsAlgorithm.js.map
/***/ }),
-/***/ 1700:
-/***/ ((module) => {
+/***/ 8733:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-// API
-module.exports = abort;
+"use strict";
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+var __spread = (this && this.__spread) || function () {
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
+ return ar;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMImpl_1 = __nccwpck_require__(4177);
+var util_1 = __nccwpck_require__(5282);
+var util_2 = __nccwpck_require__(6195);
+var TreeAlgorithm_1 = __nccwpck_require__(6620);
+var MutationObserverAlgorithm_1 = __nccwpck_require__(8157);
/**
- * Aborts leftover active jobs
+ * Signals a slot change to the given slot.
*
- * @param {object} state - current state object
+ * @param slot - a slot
*/
-function abort(state)
-{
- Object.keys(state.jobs).forEach(clean.bind(state));
-
- // reset leftover jobs
- state.jobs = {};
+function shadowTree_signalASlotChange(slot) {
+ /**
+ * 1. Append slot to slot’s relevant agent’s signal slots.
+ * 2. Queue a mutation observer microtask.
+ */
+ var window = DOMImpl_1.dom.window;
+ window._signalSlots.add(slot);
+ MutationObserverAlgorithm_1.observer_queueAMutationObserverMicrotask();
}
-
+exports.shadowTree_signalASlotChange = shadowTree_signalASlotChange;
/**
- * Cleans up leftover job by invoking abort function for the provided job id
+ * Determines whether a the shadow tree of the given element node is
+ * connected to a document node.
*
- * @this state
- * @param {string|number} key - job id to abort
+ * @param element - an element node of the shadow tree
*/
-function clean(key)
-{
- if (typeof this.jobs[key] == 'function')
- {
- this.jobs[key]();
- }
+function shadowTree_isConnected(element) {
+ /**
+ * An element is connected if its shadow-including root is a document.
+ */
+ return util_1.Guard.isDocumentNode(TreeAlgorithm_1.tree_rootNode(element, true));
}
-
-
-/***/ }),
-
-/***/ 2794:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-var defer = __nccwpck_require__(5295);
-
-// API
-module.exports = async;
-
+exports.shadowTree_isConnected = shadowTree_isConnected;
/**
- * Runs provided callback asynchronously
- * even if callback itself is not
+ * Determines whether a slotable is assigned.
*
- * @param {function} callback - callback to invoke
- * @returns {function} - augmented callback
+ * @param slotable - a slotable
*/
-function async(callback)
-{
- var isAsync = false;
-
- // check if async happened
- defer(function() { isAsync = true; });
-
- return function async_callback(err, result)
- {
- if (isAsync)
- {
- callback(err, result);
+function shadowTree_isAssigned(slotable) {
+ /**
+ * A slotable is assigned if its assigned slot is non-null.
+ */
+ return (slotable._assignedSlot !== null);
+}
+exports.shadowTree_isAssigned = shadowTree_isAssigned;
+/**
+ * Finds a slot for the given slotable.
+ *
+ * @param slotable - a slotable
+ * @param openFlag - `true` to search open shadow tree's only
+ */
+function shadowTree_findASlot(slotable, openFlag) {
+ if (openFlag === void 0) { openFlag = false; }
+ /**
+ * 1. If slotable’s parent is null, then return null.
+ * 2. Let shadow be slotable’s parent’s shadow root.
+ * 3. If shadow is null, then return null.
+ * 4. If the open flag is set and shadow’s mode is not "open", then
+ * return null.
+ * 5. Return the first slot in tree order in shadow’s descendants whose name
+ * is slotable’s name, if any, and null otherwise.
+ */
+ var node = util_1.Cast.asNode(slotable);
+ var parent = node._parent;
+ if (parent === null)
+ return null;
+ var shadow = parent._shadowRoot || null;
+ if (shadow === null)
+ return null;
+ if (openFlag && shadow._mode !== "open")
+ return null;
+ var child = TreeAlgorithm_1.tree_getFirstDescendantNode(shadow, false, true, function (e) { return util_1.Guard.isSlot(e); });
+ while (child !== null) {
+ if (child._name === slotable._name)
+ return child;
+ child = TreeAlgorithm_1.tree_getNextDescendantNode(shadow, child, false, true, function (e) { return util_1.Guard.isSlot(e); });
}
- else
- {
- defer(function nextTick_callback()
- {
- callback(err, result);
- });
+ return null;
+}
+exports.shadowTree_findASlot = shadowTree_findASlot;
+/**
+ * Finds slotables for the given slot.
+ *
+ * @param slot - a slot
+ */
+function shadowTree_findSlotables(slot) {
+ var e_1, _a;
+ /**
+ * 1. Let result be an empty list.
+ * 2. If slot’s root is not a shadow root, then return result.
+ */
+ var result = [];
+ var root = TreeAlgorithm_1.tree_rootNode(slot);
+ if (!util_1.Guard.isShadowRoot(root))
+ return result;
+ /**
+ * 3. Let host be slot’s root’s host.
+ * 4. For each slotable child of host, slotable, in tree order:
+ */
+ var host = root._host;
+ try {
+ for (var _b = __values(host._children), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var slotable = _c.value;
+ if (util_1.Guard.isSlotable(slotable)) {
+ /**
+ * 4.1. Let foundSlot be the result of finding a slot given slotable.
+ * 4.2. If foundSlot is slot, then append slotable to result.
+ */
+ var foundSlot = shadowTree_findASlot(slotable);
+ if (foundSlot === slot) {
+ result.push(slotable);
+ }
+ }
+ }
}
- };
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ /**
+ * 5. Return result.
+ */
+ return result;
}
-
-
-/***/ }),
-
-/***/ 5295:
-/***/ ((module) => {
-
-module.exports = defer;
-
+exports.shadowTree_findSlotables = shadowTree_findSlotables;
/**
- * Runs provided function on next iteration of the event loop
+ * Finds slotables for the given slot.
*
- * @param {function} fn - function to run
+ * @param slot - a slot
*/
-function defer(fn)
-{
- var nextTick = typeof setImmediate == 'function'
- ? setImmediate
- : (
- typeof process == 'object' && typeof process.nextTick == 'function'
- ? process.nextTick
- : null
- );
-
- if (nextTick)
- {
- nextTick(fn);
- }
- else
- {
- setTimeout(fn, 0);
- }
+function shadowTree_findFlattenedSlotables(slot) {
+ var e_2, _a, e_3, _b;
+ /**
+ * 1. Let result be an empty list.
+ * 2. If slot’s root is not a shadow root, then return result.
+ */
+ var result = [];
+ var root = TreeAlgorithm_1.tree_rootNode(slot);
+ if (!util_1.Guard.isShadowRoot(root))
+ return result;
+ /**
+ * 3. Let slotables be the result of finding slotables given slot.
+ * 4. If slotables is the empty list, then append each slotable child of
+ * slot, in tree order, to slotables.
+ */
+ var slotables = shadowTree_findSlotables(slot);
+ if (util_2.isEmpty(slotables)) {
+ try {
+ for (var _c = __values(slot._children), _d = _c.next(); !_d.done; _d = _c.next()) {
+ var slotable = _d.value;
+ if (util_1.Guard.isSlotable(slotable)) {
+ slotables.push(slotable);
+ }
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ }
+ try {
+ /**
+ * 5. For each node in slotables:
+ */
+ for (var slotables_1 = __values(slotables), slotables_1_1 = slotables_1.next(); !slotables_1_1.done; slotables_1_1 = slotables_1.next()) {
+ var node = slotables_1_1.value;
+ /**
+ * 5.1. If node is a slot whose root is a shadow root, then:
+ */
+ if (util_1.Guard.isSlot(node) && util_1.Guard.isShadowRoot(TreeAlgorithm_1.tree_rootNode(node))) {
+ /**
+ * 5.1.1. Let temporaryResult be the result of finding flattened slotables given node.
+ * 5.1.2. Append each slotable in temporaryResult, in order, to result.
+ */
+ var temporaryResult = shadowTree_findFlattenedSlotables(node);
+ result.push.apply(result, __spread(temporaryResult));
+ }
+ else {
+ /**
+ * 5.2. Otherwise, append node to result.
+ */
+ result.push(node);
+ }
+ }
+ }
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
+ finally {
+ try {
+ if (slotables_1_1 && !slotables_1_1.done && (_b = slotables_1.return)) _b.call(slotables_1);
+ }
+ finally { if (e_3) throw e_3.error; }
+ }
+ /**
+ * 6. Return result.
+ */
+ return result;
}
-
-
-/***/ }),
-
-/***/ 9023:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-var async = __nccwpck_require__(2794)
- , abort = __nccwpck_require__(1700)
- ;
-
-// API
-module.exports = iterate;
-
+exports.shadowTree_findFlattenedSlotables = shadowTree_findFlattenedSlotables;
/**
- * Iterates over each job object
+ * Assigns slotables to the given slot.
*
- * @param {array|object} list - array or object (named list) to iterate over
- * @param {function} iterator - iterator to run
- * @param {object} state - current job status
- * @param {function} callback - invoked when all elements processed
+ * @param slot - a slot
*/
-function iterate(list, iterator, state, callback)
-{
- // store current index
- var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;
-
- state.jobs[key] = runJob(iterator, key, list[key], function(error, output)
- {
- // don't repeat yourself
- // skip secondary callbacks
- if (!(key in state.jobs))
- {
- return;
+function shadowTree_assignSlotables(slot) {
+ var e_4, _a;
+ /**
+ * 1. Let slotables be the result of finding slotables for slot.
+ * 2. If slotables and slot’s assigned nodes are not identical, then run
+ * signal a slot change for slot.
+ */
+ var slotables = shadowTree_findSlotables(slot);
+ if (slotables.length === slot._assignedNodes.length) {
+ var nodesIdentical = true;
+ for (var i = 0; i < slotables.length; i++) {
+ if (slotables[i] !== slot._assignedNodes[i]) {
+ nodesIdentical = false;
+ break;
+ }
+ }
+ if (!nodesIdentical) {
+ shadowTree_signalASlotChange(slot);
+ }
}
-
- // clean up jobs
- delete state.jobs[key];
-
- if (error)
- {
- // don't process rest of the results
- // stop still active jobs
- // and reset the list
- abort(state);
+ /**
+ * 3. Set slot’s assigned nodes to slotables.
+ * 4. For each slotable in slotables, set slotable’s assigned slot to slot.
+ */
+ slot._assignedNodes = slotables;
+ try {
+ for (var slotables_2 = __values(slotables), slotables_2_1 = slotables_2.next(); !slotables_2_1.done; slotables_2_1 = slotables_2.next()) {
+ var slotable = slotables_2_1.value;
+ slotable._assignedSlot = slot;
+ }
}
- else
- {
- state.results[key] = output;
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
+ finally {
+ try {
+ if (slotables_2_1 && !slotables_2_1.done && (_a = slotables_2.return)) _a.call(slotables_2);
+ }
+ finally { if (e_4) throw e_4.error; }
}
-
- // return salvaged results
- callback(error, state.results);
- });
}
-
+exports.shadowTree_assignSlotables = shadowTree_assignSlotables;
/**
- * Runs iterator over provided job element
+ * Assigns slotables to all nodes of a tree.
*
- * @param {function} iterator - iterator to invoke
- * @param {string|number} key - key/index of the element in the list of jobs
- * @param {mixed} item - job description
- * @param {function} callback - invoked after iterator is done with the job
- * @returns {function|mixed} - job abort function or something else
+ * @param root - root node
*/
-function runJob(iterator, key, item, callback)
-{
- var aborter;
-
- // allow shortcut if iterator expects only two arguments
- if (iterator.length == 2)
- {
- aborter = iterator(item, async(callback));
- }
- // otherwise go with full three arguments
- else
- {
- aborter = iterator(item, key, async(callback));
- }
-
- return aborter;
+function shadowTree_assignSlotablesForATree(root) {
+ /**
+ * To assign slotables for a tree, given a node root, run assign slotables
+ * for each slot slot in root’s inclusive descendants, in tree order.
+ */
+ var descendant = TreeAlgorithm_1.tree_getFirstDescendantNode(root, true, false, function (e) { return util_1.Guard.isSlot(e); });
+ while (descendant !== null) {
+ shadowTree_assignSlotables(descendant);
+ descendant = TreeAlgorithm_1.tree_getNextDescendantNode(root, descendant, true, false, function (e) { return util_1.Guard.isSlot(e); });
+ }
}
-
+exports.shadowTree_assignSlotablesForATree = shadowTree_assignSlotablesForATree;
+/**
+ * Assigns a slot to a slotables.
+ *
+ * @param slotable - a slotable
+ */
+function shadowTree_assignASlot(slotable) {
+ /**
+ * 1. Let slot be the result of finding a slot with slotable.
+ * 2. If slot is non-null, then run assign slotables for slot.
+ */
+ var slot = shadowTree_findASlot(slotable);
+ if (slot !== null) {
+ shadowTree_assignSlotables(slot);
+ }
+}
+exports.shadowTree_assignASlot = shadowTree_assignASlot;
+//# sourceMappingURL=ShadowTreeAlgorithm.js.map
/***/ }),
-/***/ 2474:
-/***/ ((module) => {
+/***/ 3512:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-// API
-module.exports = state;
+"use strict";
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMImpl_1 = __nccwpck_require__(4177);
+var util_1 = __nccwpck_require__(5282);
+var DOMException_1 = __nccwpck_require__(3166);
+var CreateAlgorithm_1 = __nccwpck_require__(7339);
+var TreeAlgorithm_1 = __nccwpck_require__(6620);
+var CharacterDataAlgorithm_1 = __nccwpck_require__(9461);
+var MutationAlgorithm_1 = __nccwpck_require__(5463);
/**
- * Creates initial state object
- * for iteration over list
+ * Returns node with its adjacent text and cdata node siblings.
*
- * @param {array|object} list - list to iterate over
- * @param {function|null} sortMethod - function to use for keys sort,
- * or `null` to keep them as is
- * @returns {object} - initial state object
+ * @param node - a node
+ * @param self - whether to include node itself
*/
-function state(list, sortMethod)
-{
- var isNamedList = !Array.isArray(list)
- , initState =
- {
- index : 0,
- keyedList: isNamedList || sortMethod ? Object.keys(list) : null,
- jobs : {},
- results : isNamedList ? {} : [],
- size : isNamedList ? Object.keys(list).length : list.length
- }
- ;
-
- if (sortMethod)
- {
- // sort array keys based on it's values
- // sort object's keys just on own merit
- initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)
- {
- return sortMethod(list[a], list[b]);
- });
- }
-
- return initState;
+function text_contiguousTextNodes(node, self) {
+ var _a;
+ if (self === void 0) { self = false; }
+ /**
+ * The contiguous Text nodes of a node node are node, node’s previous
+ * sibling Text node, if any, and its contiguous Text nodes, and node’s next
+ * sibling Text node, if any, and its contiguous Text nodes, avoiding any
+ * duplicates.
+ */
+ return _a = {},
+ _a[Symbol.iterator] = function () {
+ var currentNode = node;
+ while (currentNode && util_1.Guard.isTextNode(currentNode._previousSibling)) {
+ currentNode = currentNode._previousSibling;
+ }
+ return {
+ next: function () {
+ if (currentNode && (!self && currentNode === node)) {
+ if (util_1.Guard.isTextNode(currentNode._nextSibling)) {
+ currentNode = currentNode._nextSibling;
+ }
+ else {
+ currentNode = null;
+ }
+ }
+ if (currentNode === null) {
+ return { done: true, value: null };
+ }
+ else {
+ var result = { done: false, value: currentNode };
+ if (util_1.Guard.isTextNode(currentNode._nextSibling)) {
+ currentNode = currentNode._nextSibling;
+ }
+ else {
+ currentNode = null;
+ }
+ return result;
+ }
+ }
+ };
+ },
+ _a;
}
-
-
-/***/ }),
-
-/***/ 7942:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-var abort = __nccwpck_require__(1700)
- , async = __nccwpck_require__(2794)
- ;
-
-// API
-module.exports = terminator;
-
+exports.text_contiguousTextNodes = text_contiguousTextNodes;
/**
- * Terminates jobs in the attached state context
+ * Returns node with its adjacent text node siblings.
*
- * @this AsyncKitState#
- * @param {function} callback - final callback to invoke after termination
+ * @param node - a node
+ * @param self - whether to include node itself
*/
-function terminator(callback)
-{
- if (!Object.keys(this.jobs).length)
- {
- return;
- }
-
- // fast forward iteration index
- this.index = this.size;
-
- // abort jobs
- abort(this);
-
- // send back results we have so far
- async(callback)(null, this.results);
+function text_contiguousExclusiveTextNodes(node, self) {
+ var _a;
+ if (self === void 0) { self = false; }
+ /**
+ * The contiguous exclusive Text nodes of a node node are node, node’s
+ * previous sibling exclusive Text node, if any, and its contiguous
+ * exclusive Text nodes, and node’s next sibling exclusive Text node,
+ * if any, and its contiguous exclusive Text nodes, avoiding any duplicates.
+ */
+ return _a = {},
+ _a[Symbol.iterator] = function () {
+ var currentNode = node;
+ while (currentNode && util_1.Guard.isExclusiveTextNode(currentNode._previousSibling)) {
+ currentNode = currentNode._previousSibling;
+ }
+ return {
+ next: function () {
+ if (currentNode && (!self && currentNode === node)) {
+ if (util_1.Guard.isExclusiveTextNode(currentNode._nextSibling)) {
+ currentNode = currentNode._nextSibling;
+ }
+ else {
+ currentNode = null;
+ }
+ }
+ if (currentNode === null) {
+ return { done: true, value: null };
+ }
+ else {
+ var result = { done: false, value: currentNode };
+ if (util_1.Guard.isExclusiveTextNode(currentNode._nextSibling)) {
+ currentNode = currentNode._nextSibling;
+ }
+ else {
+ currentNode = null;
+ }
+ return result;
+ }
+ }
+ };
+ },
+ _a;
}
-
-
-/***/ }),
-
-/***/ 8210:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-var iterate = __nccwpck_require__(9023)
- , initState = __nccwpck_require__(2474)
- , terminator = __nccwpck_require__(7942)
- ;
-
-// Public API
-module.exports = parallel;
-
+exports.text_contiguousExclusiveTextNodes = text_contiguousExclusiveTextNodes;
/**
- * Runs iterator over provided array elements in parallel
+ * Returns the concatenation of the data of all the Text node descendants of
+ * node, in tree order.
*
- * @param {array|object} list - array or object (named list) to iterate over
- * @param {function} iterator - iterator to run
- * @param {function} callback - invoked when all elements processed
- * @returns {function} - jobs terminator
+ * @param node - a node
*/
-function parallel(list, iterator, callback)
-{
- var state = initState(list);
-
- while (state.index < (state['keyedList'] || list).length)
- {
- iterate(list, iterator, state, function(error, result)
- {
- if (error)
- {
- callback(error, result);
- return;
- }
-
- // looks like it's the last one
- if (Object.keys(state.jobs).length === 0)
- {
- callback(null, state.results);
- return;
- }
- });
-
- state.index++;
- }
-
- return terminator.bind(state, callback);
+function text_descendantTextContent(node) {
+ /**
+ * The descendant text content of a node node is the concatenation of the
+ * data of all the Text node descendants of node, in tree order.
+ */
+ var contents = '';
+ var text = TreeAlgorithm_1.tree_getFirstDescendantNode(node, false, false, function (e) { return util_1.Guard.isTextNode(e); });
+ while (text !== null) {
+ contents += text._data;
+ text = TreeAlgorithm_1.tree_getNextDescendantNode(node, text, false, false, function (e) { return util_1.Guard.isTextNode(e); });
+ }
+ return contents;
}
-
+exports.text_descendantTextContent = text_descendantTextContent;
+/**
+ * Splits data at the given offset and returns the remainder as a text
+ * node.
+ *
+ * @param node - a text node
+ * @param offset - the offset at which to split the nodes.
+ */
+function text_split(node, offset) {
+ var e_1, _a;
+ /**
+ * 1. Let length be node’s length.
+ * 2. If offset is greater than length, then throw an "IndexSizeError"
+ * DOMException.
+ */
+ var length = node._data.length;
+ if (offset > length) {
+ throw new DOMException_1.IndexSizeError();
+ }
+ /**
+ * 3. Let count be length minus offset.
+ * 4. Let new data be the result of substringing data with node node,
+ * offset offset, and count count.
+ * 5. Let new node be a new Text node, with the same node document as node.
+ * Set new node’s data to new data.
+ * 6. Let parent be node’s parent.
+ * 7. If parent is not null, then:
+ */
+ var count = length - offset;
+ var newData = CharacterDataAlgorithm_1.characterData_substringData(node, offset, count);
+ var newNode = CreateAlgorithm_1.create_text(node._nodeDocument, newData);
+ var parent = node._parent;
+ if (parent !== null) {
+ /**
+ * 7.1. Insert new node into parent before node’s next sibling.
+ */
+ MutationAlgorithm_1.mutation_insert(newNode, parent, node._nextSibling);
+ try {
+ /**
+ * 7.2. For each live range whose start node is node and start offset is
+ * greater than offset, set its start node to new node and decrease its
+ * start offset by offset.
+ * 7.3. For each live range whose end node is node and end offset is greater
+ * than offset, set its end node to new node and decrease its end offset
+ * by offset.
+ * 7.4. For each live range whose start node is parent and start offset is
+ * equal to the index of node plus 1, increase its start offset by 1.
+ * 7.5. For each live range whose end node is parent and end offset is equal
+ * to the index of node plus 1, increase its end offset by 1.
+ */
+ for (var _b = __values(DOMImpl_1.dom.rangeList), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var range = _c.value;
+ if (range._start[0] === node && range._start[1] > offset) {
+ range._start[0] = newNode;
+ range._start[1] -= offset;
+ }
+ if (range._end[0] === node && range._end[1] > offset) {
+ range._end[0] = newNode;
+ range._end[1] -= offset;
+ }
+ var index = TreeAlgorithm_1.tree_index(node);
+ if (range._start[0] === parent && range._start[1] === index + 1) {
+ range._start[1]++;
+ }
+ if (range._end[0] === parent && range._end[1] === index + 1) {
+ range._end[1]++;
+ }
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ }
+ /**
+ * 8. Replace data with node node, offset offset, count count, and data
+ * the empty string.
+ * 9. Return new node.
+ */
+ CharacterDataAlgorithm_1.characterData_replaceData(node, offset, count, '');
+ return newNode;
+}
+exports.text_split = text_split;
+//# sourceMappingURL=TextAlgorithm.js.map
/***/ }),
-/***/ 445:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-var serialOrdered = __nccwpck_require__(3578);
+/***/ 998:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-// Public API
-module.exports = serial;
+"use strict";
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(7305);
+var DOMException_1 = __nccwpck_require__(3166);
/**
- * Runs iterator over provided array elements in series
+ * Applies the filter to the given node and returns the result.
*
- * @param {array|object} list - array or object (named list) to iterate over
- * @param {function} iterator - iterator to run
- * @param {function} callback - invoked when all elements processed
- * @returns {function} - jobs terminator
+ * @param traverser - the `NodeIterator` or `TreeWalker` instance
+ * @param node - the node to filter
*/
-function serial(list, iterator, callback)
-{
- return serialOrdered(list, iterator, null, callback);
+function traversal_filter(traverser, node) {
+ /**
+ * 1. If traverser’s active flag is set, then throw an "InvalidStateError"
+ * DOMException.
+ */
+ if (traverser._activeFlag) {
+ throw new DOMException_1.InvalidStateError();
+ }
+ /**
+ * 2. Let n be node’s nodeType attribute value − 1.
+ */
+ var n = node._nodeType - 1;
+ /**
+ * 3. If the nth bit (where 0 is the least significant bit) of traverser’s
+ * whatToShow is not set, then return FILTER_SKIP.
+ */
+ var mask = 1 << n;
+ if ((traverser.whatToShow & mask) === 0) {
+ return interfaces_1.FilterResult.Skip;
+ }
+ /**
+ * 4. If traverser’s filter is null, then return FILTER_ACCEPT.
+ */
+ if (!traverser.filter) {
+ return interfaces_1.FilterResult.Accept;
+ }
+ /**
+ * 5. Set traverser’s active flag.
+ */
+ traverser._activeFlag = true;
+ /**
+ * 6. Let result be the return value of call a user object’s operation with
+ * traverser’s filter, "acceptNode", and « node ». If this throws an
+ * exception, then unset traverser’s active flag and rethrow the exception.
+ */
+ var result = interfaces_1.FilterResult.Reject;
+ try {
+ result = traverser.filter.acceptNode(node);
+ }
+ catch (err) {
+ traverser._activeFlag = false;
+ throw err;
+ }
+ /**
+ * 7. Unset traverser’s active flag.
+ * 8. Return result.
+ */
+ traverser._activeFlag = false;
+ return result;
}
-
+exports.traversal_filter = traversal_filter;
+//# sourceMappingURL=TraversalAlgorithm.js.map
/***/ }),
-/***/ 3578:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-var iterate = __nccwpck_require__(9023)
- , initState = __nccwpck_require__(2474)
- , terminator = __nccwpck_require__(7942)
- ;
+/***/ 6620:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-// Public API
-module.exports = serialOrdered;
-// sorting helpers
-module.exports.ascending = ascending;
-module.exports.descending = descending;
+"use strict";
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var util_1 = __nccwpck_require__(5282);
+var interfaces_1 = __nccwpck_require__(7305);
/**
- * Runs iterator over provided sorted array elements in series
+ * Gets the next descendant of the given node of the tree rooted at `root`
+ * in depth-first pre-order.
*
- * @param {array|object} list - array or object (named list) to iterate over
- * @param {function} iterator - iterator to run
- * @param {function} sortMethod - custom sort function
- * @param {function} callback - invoked when all elements processed
- * @returns {function} - jobs terminator
+ * @param root - root node of the tree
+ * @param node - a node
+ * @param shadow - whether to visit shadow tree nodes
+ */
+function _getNextDescendantNode(root, node, shadow) {
+ if (shadow === void 0) { shadow = false; }
+ // traverse shadow tree
+ if (shadow && util_1.Guard.isElementNode(node) && util_1.Guard.isShadowRoot(node.shadowRoot)) {
+ if (node.shadowRoot._firstChild)
+ return node.shadowRoot._firstChild;
+ }
+ // traverse child nodes
+ if (node._firstChild)
+ return node._firstChild;
+ if (node === root)
+ return null;
+ // traverse siblings
+ if (node._nextSibling)
+ return node._nextSibling;
+ // traverse parent's next sibling
+ var parent = node._parent;
+ while (parent && parent !== root) {
+ if (parent._nextSibling)
+ return parent._nextSibling;
+ parent = parent._parent;
+ }
+ return null;
+}
+function _emptyIterator() {
+ var _a;
+ return _a = {},
+ _a[Symbol.iterator] = function () {
+ return {
+ next: function () {
+ return { done: true, value: null };
+ }
+ };
+ },
+ _a;
+}
+/**
+ * Returns the first descendant node of the tree rooted at `node` in
+ * depth-first pre-order.
+ *
+ * @param node - root node of the tree
+ * @param self - whether to include `node` in traversal
+ * @param shadow - whether to visit shadow tree nodes
+ * @param filter - a function to filter nodes
*/
-function serialOrdered(list, iterator, sortMethod, callback)
-{
- var state = initState(list, sortMethod);
-
- iterate(list, iterator, state, function iteratorHandler(error, result)
- {
- if (error)
- {
- callback(error, result);
- return;
+function tree_getFirstDescendantNode(node, self, shadow, filter) {
+ if (self === void 0) { self = false; }
+ if (shadow === void 0) { shadow = false; }
+ var firstNode = (self ? node : _getNextDescendantNode(node, node, shadow));
+ while (firstNode && filter && !filter(firstNode)) {
+ firstNode = _getNextDescendantNode(node, firstNode, shadow);
}
-
- state.index++;
-
- // are we there yet?
- if (state.index < (state['keyedList'] || list).length)
- {
- iterate(list, iterator, state, iteratorHandler);
- return;
+ return firstNode;
+}
+exports.tree_getFirstDescendantNode = tree_getFirstDescendantNode;
+/**
+ * Returns the next descendant node of the tree rooted at `node` in
+ * depth-first pre-order.
+ *
+ * @param node - root node of the tree
+ * @param currentNode - current descendant node
+ * @param self - whether to include `node` in traversal
+ * @param shadow - whether to visit shadow tree nodes
+ * @param filter - a function to filter nodes
+ */
+function tree_getNextDescendantNode(node, currentNode, self, shadow, filter) {
+ if (self === void 0) { self = false; }
+ if (shadow === void 0) { shadow = false; }
+ var nextNode = _getNextDescendantNode(node, currentNode, shadow);
+ while (nextNode && filter && !filter(nextNode)) {
+ nextNode = _getNextDescendantNode(node, nextNode, shadow);
+ }
+ return nextNode;
+}
+exports.tree_getNextDescendantNode = tree_getNextDescendantNode;
+/**
+ * Traverses through all descendant nodes of the tree rooted at
+ * `node` in depth-first pre-order.
+ *
+ * @param node - root node of the tree
+ * @param self - whether to include `node` in traversal
+ * @param shadow - whether to visit shadow tree nodes
+ * @param filter - a function to filter nodes
+ */
+function tree_getDescendantNodes(node, self, shadow, filter) {
+ var _a;
+ if (self === void 0) { self = false; }
+ if (shadow === void 0) { shadow = false; }
+ if (!self && node._children.size === 0) {
+ return _emptyIterator();
+ }
+ return _a = {},
+ _a[Symbol.iterator] = function () {
+ var currentNode = (self ? node : _getNextDescendantNode(node, node, shadow));
+ return {
+ next: function () {
+ while (currentNode && filter && !filter(currentNode)) {
+ currentNode = _getNextDescendantNode(node, currentNode, shadow);
+ }
+ if (currentNode === null) {
+ return { done: true, value: null };
+ }
+ else {
+ var result = { done: false, value: currentNode };
+ currentNode = _getNextDescendantNode(node, currentNode, shadow);
+ return result;
+ }
+ }
+ };
+ },
+ _a;
+}
+exports.tree_getDescendantNodes = tree_getDescendantNodes;
+/**
+ * Traverses through all descendant element nodes of the tree rooted at
+ * `node` in depth-first preorder.
+ *
+ * @param node - root node of the tree
+ * @param self - whether to include `node` in traversal
+ * @param shadow - whether to visit shadow tree nodes
+ * @param filter - a function to filter nodes
+ */
+function tree_getDescendantElements(node, self, shadow, filter) {
+ var _a;
+ if (self === void 0) { self = false; }
+ if (shadow === void 0) { shadow = false; }
+ if (!self && node._children.size === 0) {
+ return _emptyIterator();
+ }
+ return _a = {},
+ _a[Symbol.iterator] = function () {
+ var it = tree_getDescendantNodes(node, self, shadow, function (e) { return util_1.Guard.isElementNode(e); })[Symbol.iterator]();
+ var currentNode = it.next().value;
+ return {
+ next: function () {
+ while (currentNode && filter && !filter(currentNode)) {
+ currentNode = it.next().value;
+ }
+ if (currentNode === null) {
+ return { done: true, value: null };
+ }
+ else {
+ var result = { done: false, value: currentNode };
+ currentNode = it.next().value;
+ return result;
+ }
+ }
+ };
+ },
+ _a;
+}
+exports.tree_getDescendantElements = tree_getDescendantElements;
+/**
+ * Traverses through all sibling nodes of `node`.
+ *
+ * @param node - root node of the tree
+ * @param self - whether to include `node` in traversal
+ * @param filter - a function to filter nodes
+ */
+function tree_getSiblingNodes(node, self, filter) {
+ var _a;
+ if (self === void 0) { self = false; }
+ if (!node._parent || node._parent._children.size === 0) {
+ return _emptyIterator();
}
-
- // done here
- callback(null, state.results);
- });
-
- return terminator.bind(state, callback);
+ return _a = {},
+ _a[Symbol.iterator] = function () {
+ var currentNode = node._parent ? node._parent._firstChild : null;
+ return {
+ next: function () {
+ while (currentNode && (filter && !filter(currentNode) || (!self && currentNode === node))) {
+ currentNode = currentNode._nextSibling;
+ }
+ if (currentNode === null) {
+ return { done: true, value: null };
+ }
+ else {
+ var result = { done: false, value: currentNode };
+ currentNode = currentNode._nextSibling;
+ return result;
+ }
+ }
+ };
+ },
+ _a;
}
-
-/*
- * -- Sort methods
+exports.tree_getSiblingNodes = tree_getSiblingNodes;
+/**
+ * Gets the first ancestor of `node` in reverse tree order.
+ *
+ * @param node - root node of the tree
+ * @param self - whether to include `node` in traversal
+ * @param filter - a function to filter nodes
*/
-
+function tree_getFirstAncestorNode(node, self, filter) {
+ if (self === void 0) { self = false; }
+ var firstNode = self ? node : node._parent;
+ while (firstNode && filter && !filter(firstNode)) {
+ firstNode = firstNode._parent;
+ }
+ return firstNode;
+}
+exports.tree_getFirstAncestorNode = tree_getFirstAncestorNode;
/**
- * sort helper to sort array elements in ascending order
+ * Gets the first ancestor of `node` in reverse tree order.
*
- * @param {mixed} a - an item to compare
- * @param {mixed} b - an item to compare
- * @returns {number} - comparison result
+ * @param node - root node of the tree
+ * @param self - whether to include `node` in traversal
+ * @param filter - a function to filter nodes
*/
-function ascending(a, b)
-{
- return a < b ? -1 : a > b ? 1 : 0;
+function tree_getNextAncestorNode(node, currentNode, self, filter) {
+ if (self === void 0) { self = false; }
+ var nextNode = currentNode._parent;
+ while (nextNode && filter && !filter(nextNode)) {
+ nextNode = nextNode._parent;
+ }
+ return nextNode;
}
-
+exports.tree_getNextAncestorNode = tree_getNextAncestorNode;
/**
- * sort helper to sort array elements in descending order
+ * Traverses through all ancestor nodes `node` in reverse tree order.
*
- * @param {mixed} a - an item to compare
- * @param {mixed} b - an item to compare
- * @returns {number} - comparison result
+ * @param node - root node of the tree
+ * @param self - whether to include `node` in traversal
+ * @param filter - a function to filter nodes
*/
-function descending(a, b)
-{
- return -1 * ascending(a, b);
+function tree_getAncestorNodes(node, self, filter) {
+ var _a;
+ if (self === void 0) { self = false; }
+ if (!self && !node._parent) {
+ return _emptyIterator();
+ }
+ return _a = {},
+ _a[Symbol.iterator] = function () {
+ var currentNode = tree_getFirstAncestorNode(node, self, filter);
+ return {
+ next: function () {
+ if (currentNode === null) {
+ return { done: true, value: null };
+ }
+ else {
+ var result = { done: false, value: currentNode };
+ currentNode = tree_getNextAncestorNode(node, currentNode, self, filter);
+ return result;
+ }
+ }
+ };
+ },
+ _a;
}
-
-
-/***/ }),
-
-/***/ 9417:
-/***/ ((module) => {
-
-"use strict";
-
-module.exports = balanced;
-function balanced(a, b, str) {
- if (a instanceof RegExp) a = maybeMatch(a, str);
- if (b instanceof RegExp) b = maybeMatch(b, str);
-
- var r = range(a, b, str);
-
- return r && {
- start: r[0],
- end: r[1],
- pre: str.slice(0, r[0]),
- body: str.slice(r[0] + a.length, r[1]),
- post: str.slice(r[1] + b.length)
- };
+exports.tree_getAncestorNodes = tree_getAncestorNodes;
+/**
+ * Returns the common ancestor of the given nodes.
+ *
+ * @param nodeA - a node
+ * @param nodeB - a node
+ */
+function tree_getCommonAncestor(nodeA, nodeB) {
+ if (nodeA === nodeB) {
+ return nodeA._parent;
+ }
+ // lists of parent nodes
+ var parentsA = [];
+ var parentsB = [];
+ var pA = tree_getFirstAncestorNode(nodeA, true);
+ while (pA !== null) {
+ parentsA.push(pA);
+ pA = tree_getNextAncestorNode(nodeA, pA, true);
+ }
+ var pB = tree_getFirstAncestorNode(nodeB, true);
+ while (pB !== null) {
+ parentsB.push(pB);
+ pB = tree_getNextAncestorNode(nodeB, pB, true);
+ }
+ // walk through parents backwards until they differ
+ var pos1 = parentsA.length;
+ var pos2 = parentsB.length;
+ var parent = null;
+ for (var i = Math.min(pos1, pos2); i > 0; i--) {
+ var parent1 = parentsA[--pos1];
+ var parent2 = parentsB[--pos2];
+ if (parent1 !== parent2) {
+ break;
+ }
+ parent = parent1;
+ }
+ return parent;
}
-
-function maybeMatch(reg, str) {
- var m = str.match(reg);
- return m ? m[0] : null;
+exports.tree_getCommonAncestor = tree_getCommonAncestor;
+/**
+ * Returns the node following `node` in depth-first preorder.
+ *
+ * @param root - root of the subtree
+ * @param node - a node
+ */
+function tree_getFollowingNode(root, node) {
+ if (node._firstChild) {
+ return node._firstChild;
+ }
+ else if (node._nextSibling) {
+ return node._nextSibling;
+ }
+ else {
+ while (true) {
+ var parent = node._parent;
+ if (parent === null || parent === root) {
+ return null;
+ }
+ else if (parent._nextSibling) {
+ return parent._nextSibling;
+ }
+ else {
+ node = parent;
+ }
+ }
+ }
}
-
-balanced.range = range;
-function range(a, b, str) {
- var begs, beg, left, right, result;
- var ai = str.indexOf(a);
- var bi = str.indexOf(b, ai + 1);
- var i = ai;
-
- if (ai >= 0 && bi > 0) {
- begs = [];
- left = str.length;
-
- while (i >= 0 && !result) {
- if (i == ai) {
- begs.push(i);
- ai = str.indexOf(a, i + 1);
- } else if (begs.length == 1) {
- result = [ begs.pop(), bi ];
- } else {
- beg = begs.pop();
- if (beg < left) {
- left = beg;
- right = bi;
+exports.tree_getFollowingNode = tree_getFollowingNode;
+/**
+ * Returns the node preceding `node` in depth-first preorder.
+ *
+ * @param root - root of the subtree
+ * @param node - a node
+ */
+function tree_getPrecedingNode(root, node) {
+ if (node === root) {
+ return null;
+ }
+ if (node._previousSibling) {
+ node = node._previousSibling;
+ if (node._lastChild) {
+ return node._lastChild;
+ }
+ else {
+ return node;
}
-
- bi = str.indexOf(b, i + 1);
- }
-
- i = ai < bi && ai >= 0 ? ai : bi;
}
-
- if (begs.length) {
- result = [ left, right ];
+ else {
+ return node._parent;
}
- }
-
- return result;
}
-
-
-/***/ }),
-
-/***/ 3717:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-var concatMap = __nccwpck_require__(6891);
-var balanced = __nccwpck_require__(9417);
-
-module.exports = expandTop;
-
-var escSlash = '\0SLASH'+Math.random()+'\0';
-var escOpen = '\0OPEN'+Math.random()+'\0';
-var escClose = '\0CLOSE'+Math.random()+'\0';
-var escComma = '\0COMMA'+Math.random()+'\0';
-var escPeriod = '\0PERIOD'+Math.random()+'\0';
-
-function numeric(str) {
- return parseInt(str, 10) == str
- ? parseInt(str, 10)
- : str.charCodeAt(0);
+exports.tree_getPrecedingNode = tree_getPrecedingNode;
+/**
+ * Determines if the node tree is constrained. A node tree is
+ * constrained as follows, expressed as a relationship between the
+ * type of node and its allowed children:
+ * - Document (In tree order)
+ * * Zero or more nodes each of which is ProcessingInstruction
+ * or Comment.
+ * * Optionally one DocumentType node.
+ * * Zero or more nodes each of which is ProcessingInstruction
+ * or Comment.
+ * * Optionally one Element node.
+ * * Zero or more nodes each of which is ProcessingInstruction
+ * or Comment.
+ * - DocumentFragment, Element
+ * * Zero or more nodes each of which is Element, Text,
+ * ProcessingInstruction, or Comment.
+ * - DocumentType, Text, ProcessingInstruction, Comment
+ * * None.
+ *
+ * @param node - the root of the tree
+ */
+function tree_isConstrained(node) {
+ var e_1, _a, e_2, _b, e_3, _c;
+ switch (node._nodeType) {
+ case interfaces_1.NodeType.Document:
+ var hasDocType = false;
+ var hasElement = false;
+ try {
+ for (var _d = __values(node._children), _e = _d.next(); !_e.done; _e = _d.next()) {
+ var childNode = _e.value;
+ switch (childNode._nodeType) {
+ case interfaces_1.NodeType.ProcessingInstruction:
+ case interfaces_1.NodeType.Comment:
+ break;
+ case interfaces_1.NodeType.DocumentType:
+ if (hasDocType || hasElement)
+ return false;
+ hasDocType = true;
+ break;
+ case interfaces_1.NodeType.Element:
+ if (hasElement)
+ return false;
+ hasElement = true;
+ break;
+ default:
+ return false;
+ }
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ break;
+ case interfaces_1.NodeType.DocumentFragment:
+ case interfaces_1.NodeType.Element:
+ try {
+ for (var _f = __values(node._children), _g = _f.next(); !_g.done; _g = _f.next()) {
+ var childNode = _g.value;
+ switch (childNode._nodeType) {
+ case interfaces_1.NodeType.Element:
+ case interfaces_1.NodeType.Text:
+ case interfaces_1.NodeType.ProcessingInstruction:
+ case interfaces_1.NodeType.CData:
+ case interfaces_1.NodeType.Comment:
+ break;
+ default:
+ return false;
+ }
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ break;
+ case interfaces_1.NodeType.DocumentType:
+ case interfaces_1.NodeType.Text:
+ case interfaces_1.NodeType.ProcessingInstruction:
+ case interfaces_1.NodeType.CData:
+ case interfaces_1.NodeType.Comment:
+ return (!node.hasChildNodes());
+ }
+ try {
+ for (var _h = __values(node._children), _j = _h.next(); !_j.done; _j = _h.next()) {
+ var childNode = _j.value;
+ // recursively check child nodes
+ if (!tree_isConstrained(childNode))
+ return false;
+ }
+ }
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
+ finally {
+ try {
+ if (_j && !_j.done && (_c = _h.return)) _c.call(_h);
+ }
+ finally { if (e_3) throw e_3.error; }
+ }
+ return true;
}
-
-function escapeBraces(str) {
- return str.split('\\\\').join(escSlash)
- .split('\\{').join(escOpen)
- .split('\\}').join(escClose)
- .split('\\,').join(escComma)
- .split('\\.').join(escPeriod);
+exports.tree_isConstrained = tree_isConstrained;
+/**
+ * Returns the length of a node.
+ *
+ * @param node - a node to check
+ */
+function tree_nodeLength(node) {
+ /**
+ * To determine the length of a node node, switch on node:
+ * - DocumentType
+ * Zero.
+ * - Text
+ * - ProcessingInstruction
+ * - Comment
+ * Its data’s length.
+ * - Any other node
+ * Its number of children.
+ */
+ if (util_1.Guard.isDocumentTypeNode(node)) {
+ return 0;
+ }
+ else if (util_1.Guard.isCharacterDataNode(node)) {
+ return node._data.length;
+ }
+ else {
+ return node._children.size;
+ }
}
-
-function unescapeBraces(str) {
- return str.split(escSlash).join('\\')
- .split(escOpen).join('{')
- .split(escClose).join('}')
- .split(escComma).join(',')
- .split(escPeriod).join('.');
+exports.tree_nodeLength = tree_nodeLength;
+/**
+ * Determines if a node is empty.
+ *
+ * @param node - a node to check
+ */
+function tree_isEmpty(node) {
+ /**
+ * A node is considered empty if its length is zero.
+ */
+ return (tree_nodeLength(node) === 0);
}
-
-
-// Basically just str.split(","), but handling cases
-// where we have nested braced sections, which should be
-// treated as individual members, like {a,{b,c},d}
-function parseCommaParts(str) {
- if (!str)
- return [''];
-
- var parts = [];
- var m = balanced('{', '}', str);
-
- if (!m)
- return str.split(',');
-
- var pre = m.pre;
- var body = m.body;
- var post = m.post;
- var p = pre.split(',');
-
- p[p.length-1] += '{' + body + '}';
- var postParts = parseCommaParts(post);
- if (post.length) {
- p[p.length-1] += postParts.shift();
- p.push.apply(p, postParts);
- }
-
- parts.push.apply(parts, p);
-
- return parts;
+exports.tree_isEmpty = tree_isEmpty;
+/**
+ * Returns the root node of a tree. The root of an object is itself,
+ * if its parent is `null`, or else it is the root of its parent.
+ * The root of a tree is any object participating in that tree
+ * whose parent is `null`.
+ *
+ * @param node - a node of the tree
+ * @param shadow - `true` to return shadow-including root, otherwise
+ * `false`
+ */
+function tree_rootNode(node, shadow) {
+ if (shadow === void 0) { shadow = false; }
+ /**
+ * The root of an object is itself, if its parent is null, or else it is the
+ * root of its parent. The root of a tree is any object participating in
+ * that tree whose parent is null.
+ */
+ if (shadow) {
+ var root = tree_rootNode(node, false);
+ if (util_1.Guard.isShadowRoot(root))
+ return tree_rootNode(root._host, true);
+ else
+ return root;
+ }
+ else {
+ if (!node._parent)
+ return node;
+ else
+ return tree_rootNode(node._parent);
+ }
}
-
-function expandTop(str) {
- if (!str)
- return [];
-
- // I don't know why Bash 4.3 does this, but it does.
- // Anything starting with {} will have the first two bytes preserved
- // but *only* at the top level, so {},a}b will not expand to anything,
- // but a{},b}c will be expanded to [a}c,abc].
- // One could argue that this is a bug in Bash, but since the goal of
- // this module is to match Bash's rules, we escape a leading {}
- if (str.substr(0, 2) === '{}') {
- str = '\\{\\}' + str.substr(2);
- }
-
- return expand(escapeBraces(str), true).map(unescapeBraces);
+exports.tree_rootNode = tree_rootNode;
+/**
+ * Determines whether `other` is a descendant of `node`. An object
+ * A is called a descendant of an object B, if either A is a child
+ * of B or A is a child of an object C that is a descendant of B.
+ *
+ * @param node - a node
+ * @param other - the node to check
+ * @param self - if `true`, traversal includes `node` itself
+ * @param shadow - if `true`, traversal includes the
+ * node's and its descendant's shadow trees as well.
+ */
+function tree_isDescendantOf(node, other, self, shadow) {
+ if (self === void 0) { self = false; }
+ if (shadow === void 0) { shadow = false; }
+ /**
+ * An object A is called a descendant of an object B, if either A is a
+ * child of B or A is a child of an object C that is a descendant of B.
+ *
+ * An inclusive descendant is an object or one of its descendants.
+ */
+ var child = tree_getFirstDescendantNode(node, self, shadow);
+ while (child !== null) {
+ if (child === other) {
+ return true;
+ }
+ child = tree_getNextDescendantNode(node, child, self, shadow);
+ }
+ return false;
}
-
-function identity(e) {
- return e;
+exports.tree_isDescendantOf = tree_isDescendantOf;
+/**
+ * Determines whether `other` is an ancestor of `node`. An object A
+ * is called an ancestor of an object B if and only if B is a
+ * descendant of A.
+ *
+ * @param node - a node
+ * @param other - the node to check
+ * @param self - if `true`, traversal includes `node` itself
+ * @param shadow - if `true`, traversal includes the
+ * node's and its descendant's shadow trees as well.
+ */
+function tree_isAncestorOf(node, other, self, shadow) {
+ if (self === void 0) { self = false; }
+ if (shadow === void 0) { shadow = false; }
+ var ancestor = self ? node : shadow && util_1.Guard.isShadowRoot(node) ?
+ node._host : node._parent;
+ while (ancestor !== null) {
+ if (ancestor === other)
+ return true;
+ ancestor = shadow && util_1.Guard.isShadowRoot(ancestor) ?
+ ancestor._host : ancestor._parent;
+ }
+ return false;
}
-
-function embrace(str) {
- return '{' + str + '}';
+exports.tree_isAncestorOf = tree_isAncestorOf;
+/**
+ * Determines whether `other` is a host-including ancestor of `node`. An
+ * object A is a host-including inclusive ancestor of an object B, if either
+ * A is an inclusive ancestor of B, or if B’s root has a non-null host and
+ * A is a host-including inclusive ancestor of B’s root’s host.
+ *
+ * @param node - a node
+ * @param other - the node to check
+ * @param self - if `true`, traversal includes `node` itself
+ */
+function tree_isHostIncludingAncestorOf(node, other, self) {
+ if (self === void 0) { self = false; }
+ if (tree_isAncestorOf(node, other, self))
+ return true;
+ var root = tree_rootNode(node);
+ if (util_1.Guard.isDocumentFragmentNode(root) && root._host !== null &&
+ tree_isHostIncludingAncestorOf(root._host, other, self))
+ return true;
+ return false;
}
-function isPadded(el) {
- return /^-?0\d/.test(el);
+exports.tree_isHostIncludingAncestorOf = tree_isHostIncludingAncestorOf;
+/**
+ * Determines whether `other` is a sibling of `node`. An object A is
+ * called a sibling of an object B, if and only if B and A share
+ * the same non-null parent.
+ *
+ * @param node - a node
+ * @param other - the node to check
+ * @param self - if `true`, traversal includes `node` itself
+ */
+function tree_isSiblingOf(node, other, self) {
+ if (self === void 0) { self = false; }
+ /**
+ * An object A is called a sibling of an object B, if and only if B and A
+ * share the same non-null parent.
+ *
+ * An inclusive sibling is an object or one of its siblings.
+ */
+ if (node === other) {
+ if (self)
+ return true;
+ }
+ else {
+ return (node._parent !== null && node._parent === other._parent);
+ }
+ return false;
}
-
-function lte(i, y) {
- return i <= y;
+exports.tree_isSiblingOf = tree_isSiblingOf;
+/**
+ * Determines whether `other` is preceding `node`. An object A is
+ * preceding an object B if A and B are in the same tree and A comes
+ * before B in tree order.
+ *
+ * @param node - a node
+ * @param other - the node to check
+ */
+function tree_isPreceding(node, other) {
+ /**
+ * An object A is preceding an object B if A and B are in the same tree and
+ * A comes before B in tree order.
+ */
+ var nodePos = tree_treePosition(node);
+ var otherPos = tree_treePosition(other);
+ if (nodePos === -1 || otherPos === -1)
+ return false;
+ else if (tree_rootNode(node) !== tree_rootNode(other))
+ return false;
+ else
+ return otherPos < nodePos;
}
-function gte(i, y) {
- return i >= y;
+exports.tree_isPreceding = tree_isPreceding;
+/**
+ * Determines whether `other` is following `node`. An object A is
+ * following an object B if A and B are in the same tree and A comes
+ * after B in tree order.
+ *
+ * @param node - a node
+ * @param other - the node to check
+ */
+function tree_isFollowing(node, other) {
+ /**
+ * An object A is following an object B if A and B are in the same tree and
+ * A comes after B in tree order.
+ */
+ var nodePos = tree_treePosition(node);
+ var otherPos = tree_treePosition(other);
+ if (nodePos === -1 || otherPos === -1)
+ return false;
+ else if (tree_rootNode(node) !== tree_rootNode(other))
+ return false;
+ else
+ return otherPos > nodePos;
}
-
-function expand(str, isTop) {
- var expansions = [];
-
- var m = balanced('{', '}', str);
- if (!m || /\$$/.test(m.pre)) return [str];
-
- var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
- var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
- var isSequence = isNumericSequence || isAlphaSequence;
- var isOptions = m.body.indexOf(',') >= 0;
- if (!isSequence && !isOptions) {
- // {a},b}
- if (m.post.match(/,.*\}/)) {
- str = m.pre + '{' + m.body + escClose + m.post;
- return expand(str);
+exports.tree_isFollowing = tree_isFollowing;
+/**
+ * Determines whether `other` is the parent node of `node`.
+ *
+ * @param node - a node
+ * @param other - the node to check
+ */
+function tree_isParentOf(node, other) {
+ /**
+ * An object that participates in a tree has a parent, which is either
+ * null or an object, and has children, which is an ordered set of objects.
+ * An object A whose parent is object B is a child of B.
+ */
+ return (node._parent === other);
+}
+exports.tree_isParentOf = tree_isParentOf;
+/**
+ * Determines whether `other` is a child node of `node`.
+ *
+ * @param node - a node
+ * @param other - the node to check
+ */
+function tree_isChildOf(node, other) {
+ /**
+ * An object that participates in a tree has a parent, which is either
+ * null or an object, and has children, which is an ordered set of objects.
+ * An object A whose parent is object B is a child of B.
+ */
+ return (other._parent === node);
+}
+exports.tree_isChildOf = tree_isChildOf;
+/**
+ * Returns the previous sibling node of `node` or null if it has no
+ * preceding sibling.
+ *
+ * @param node
+ */
+function tree_previousSibling(node) {
+ /**
+ * The previous sibling of an object is its first preceding sibling or null
+ * if it has no preceding sibling.
+ */
+ return node._previousSibling;
+}
+exports.tree_previousSibling = tree_previousSibling;
+/**
+ * Returns the next sibling node of `node` or null if it has no
+ * following sibling.
+ *
+ * @param node
+ */
+function tree_nextSibling(node) {
+ /**
+ * The next sibling of an object is its first following sibling or null
+ * if it has no following sibling.
+ */
+ return node._nextSibling;
+}
+exports.tree_nextSibling = tree_nextSibling;
+/**
+ * Returns the first child node of `node` or null if it has no
+ * children.
+ *
+ * @param node
+ */
+function tree_firstChild(node) {
+ /**
+ * The first child of an object is its first child or null if it has no
+ * children.
+ */
+ return node._firstChild;
+}
+exports.tree_firstChild = tree_firstChild;
+/**
+ * Returns the last child node of `node` or null if it has no
+ * children.
+ *
+ * @param node
+ */
+function tree_lastChild(node) {
+ /**
+ * The last child of an object is its last child or null if it has no
+ * children.
+ */
+ return node._lastChild;
+}
+exports.tree_lastChild = tree_lastChild;
+/**
+ * Returns the zero-based index of `node` when counted preorder in
+ * the tree rooted at `root`. Returns `-1` if `node` is not in
+ * the tree.
+ *
+ * @param node - the node to get the index of
+ */
+function tree_treePosition(node) {
+ var root = tree_rootNode(node);
+ var pos = 0;
+ var childNode = tree_getFirstDescendantNode(root);
+ while (childNode !== null) {
+ pos++;
+ if (childNode === node)
+ return pos;
+ childNode = tree_getNextDescendantNode(root, childNode);
}
- return [str];
- }
-
- var n;
- if (isSequence) {
- n = m.body.split(/\.\./);
- } else {
- n = parseCommaParts(m.body);
- if (n.length === 1) {
- // x{{a,b}}y ==> x{a}y x{b}y
- n = expand(n[0], false).map(embrace);
- if (n.length === 1) {
- var post = m.post.length
- ? expand(m.post, false)
- : [''];
- return post.map(function(p) {
- return m.pre + n[0] + p;
- });
- }
+ return -1;
+}
+exports.tree_treePosition = tree_treePosition;
+/**
+ * Determines the index of `node`. The index of an object is its number of
+ * preceding siblings, or 0 if it has none.
+ *
+ * @param node - a node
+ * @param other - the node to check
+ */
+function tree_index(node) {
+ /**
+ * The index of an object is its number of preceding siblings, or 0 if it
+ * has none.
+ */
+ var n = 0;
+ while (node._previousSibling !== null) {
+ n++;
+ node = node._previousSibling;
}
- }
+ return n;
+}
+exports.tree_index = tree_index;
+/**
+ * Retargets an object against another object.
+ *
+ * @param a - an object to retarget
+ * @param b - an object to retarget against
+ */
+function tree_retarget(a, b) {
+ /**
+ * To retarget an object A against an object B, repeat these steps until
+ * they return an object:
+ * 1. If one of the following is true
+ * - A is not a node
+ * - A's root is not a shadow root
+ * - B is a node and A's root is a shadow-including inclusive ancestor
+ * of B
+ * then return A.
+ * 2. Set A to A's root's host.
+ */
+ while (true) {
+ if (!a || !util_1.Guard.isNode(a)) {
+ return a;
+ }
+ var rootOfA = tree_rootNode(a);
+ if (!util_1.Guard.isShadowRoot(rootOfA)) {
+ return a;
+ }
+ if (b && util_1.Guard.isNode(b) && tree_isAncestorOf(rootOfA, b, true, true)) {
+ return a;
+ }
+ a = rootOfA.host;
+ }
+}
+exports.tree_retarget = tree_retarget;
+//# sourceMappingURL=TreeAlgorithm.js.map
- // at this point, n is the parts, and we know it's not a comma set
- // with a single entry.
+/***/ }),
- // no need to expand pre, since it is guaranteed to be free of brace-sets
- var pre = m.pre;
- var post = m.post.length
- ? expand(m.post, false)
- : [''];
+/***/ 4962:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
- var N;
+"use strict";
- if (isSequence) {
- var x = numeric(n[0]);
- var y = numeric(n[1]);
- var width = Math.max(n[0].length, n[1].length)
- var incr = n.length == 3
- ? Math.abs(numeric(n[2]))
- : 1;
- var test = lte;
- var reverse = y < x;
- if (reverse) {
- incr *= -1;
- test = gte;
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(7305);
+var TraversalAlgorithm_1 = __nccwpck_require__(998);
+/**
+ * Returns the first or last child node, or `null` if there are none.
+ *
+ * @param walker - the `TreeWalker` instance
+ * @param first - `true` to return the first child node, or `false` to
+ * return the last child node.
+ */
+function treeWalker_traverseChildren(walker, first) {
+ /**
+ * 1. Let node be walker’s current.
+ * 2. Set node to node’s first child if type is first, and node’s last child
+ * if type is last.
+ * 3. While node is non-null:
+ */
+ var node = (first ? walker._current._firstChild : walker._current._lastChild);
+ while (node !== null) {
+ /**
+ * 3.1. Let result be the result of filtering node within walker.
+ */
+ var result = TraversalAlgorithm_1.traversal_filter(walker, node);
+ if (result === interfaces_1.FilterResult.Accept) {
+ /**
+ * 3.2. If result is FILTER_ACCEPT, then set walker’s current to node and
+ * return node.
+ */
+ walker._current = node;
+ return node;
+ }
+ else if (result === interfaces_1.FilterResult.Skip) {
+ /**
+ * 3.3. If result is FILTER_SKIP, then:
+ * 3.3.1. Let child be node’s first child if type is first, and node’s
+ * last child if type is last.
+ * 3.3.2. If child is non-null, then set node to child and continue.
+ */
+ var child = (first ? node._firstChild : node._lastChild);
+ if (child !== null) {
+ node = child;
+ continue;
+ }
+ }
+ /**
+ * 3.4. While node is non-null:
+ */
+ while (node !== null) {
+ /**
+ * 3.4.1. Let sibling be node’s next sibling if type is first, and
+ * node’s previous sibling if type is last.
+ * 3.4.2. If sibling is non-null, then set node to sibling and break.
+ */
+ var sibling = (first ? node._nextSibling : node._previousSibling);
+ if (sibling !== null) {
+ node = sibling;
+ break;
+ }
+ /**
+ * 3.4.3. Let parent be node’s parent.
+ * 3.4.4. If parent is null, walker’s root, or walker’s current, then
+ * return null.
+ */
+ var parent = node._parent;
+ if (parent === null || parent === walker._root || parent === walker._current) {
+ return null;
+ }
+ /**
+ * 3.4.5. Set node to parent.
+ */
+ node = parent;
+ }
}
- var pad = n.some(isPadded);
-
- N = [];
-
- for (var i = x; test(i, y); i += incr) {
- var c;
- if (isAlphaSequence) {
- c = String.fromCharCode(i);
- if (c === '\\')
- c = '';
- } else {
- c = String(i);
- if (pad) {
- var need = width - c.length;
- if (need > 0) {
- var z = new Array(need + 1).join('0');
- if (i < 0)
- c = '-' + z + c.slice(1);
- else
- c = z + c;
- }
+ /**
+ * 5. Return null
+ */
+ return null;
+}
+exports.treeWalker_traverseChildren = treeWalker_traverseChildren;
+/**
+ * Returns the next or previous sibling node, or `null` if there are none.
+ *
+ * @param walker - the `TreeWalker` instance
+ * @param next - `true` to return the next sibling node, or `false` to
+ * return the previous sibling node.
+ */
+function treeWalker_traverseSiblings(walker, next) {
+ /**
+ * 1. Let node be walker’s current.
+ * 2. If node is root, then return null.
+ * 3. While node is non-null:
+ */
+ var node = walker._current;
+ if (node === walker._root)
+ return null;
+ while (true) {
+ /**
+ * 3.1. Let sibling be node’s next sibling if type is next, and node’s
+ * previous sibling if type is previous.
+ * 3.2. While sibling is non-null:
+ */
+ var sibling = (next ? node._nextSibling : node._previousSibling);
+ while (sibling !== null) {
+ /**
+ * 3.2.1. Set node to sibling.
+ * 3.2.2. Let result be the result of filtering node within walker.
+ * 3.2.3. If result is FILTER_ACCEPT, then set walker’s current to node
+ * and return node.
+ */
+ node = sibling;
+ var result = TraversalAlgorithm_1.traversal_filter(walker, node);
+ if (result === interfaces_1.FilterResult.Accept) {
+ walker._current = node;
+ return node;
+ }
+ /**
+ * 3.2.4. Set sibling to node’s first child if type is next, and node’s
+ * last child if type is previous.
+ * 3.2.5. If result is FILTER_REJECT or sibling is null, then set
+ * sibling to node’s next sibling if type is next, and node’s previous
+ * sibling if type is previous.
+ */
+ sibling = (next ? node._firstChild : node._lastChild);
+ if (result === interfaces_1.FilterResult.Reject || sibling === null) {
+ sibling = (next ? node._nextSibling : node._previousSibling);
+ }
+ }
+ /**
+ * 3.3. Set node to node’s parent.
+ * 3.4. If node is null or walker’s root, then return null.
+ */
+ node = node._parent;
+ if (node === null || node === walker._root) {
+ return null;
+ }
+ /**
+ * 3.5. If the return value of filtering node within walker is FILTER_ACCEPT,
+ * then return null.
+ */
+ if (TraversalAlgorithm_1.traversal_filter(walker, node) === interfaces_1.FilterResult.Accept) {
+ return null;
}
- }
- N.push(c);
}
- } else {
- N = concatMap(n, function(el) { return expand(el, false) });
- }
+}
+exports.treeWalker_traverseSiblings = treeWalker_traverseSiblings;
+//# sourceMappingURL=TreeWalkerAlgorithm.js.map
- for (var j = 0; j < N.length; j++) {
- for (var k = 0; k < post.length; k++) {
- var expansion = pre + N[j] + post[k];
- if (!isTop || isSequence || expansion)
- expansions.push(expansion);
- }
- }
+/***/ }),
- return expansions;
-}
+/***/ 5457:
+/***/ ((__unused_webpack_module, exports) => {
+"use strict";
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Defines a WebIDL `Const` property on the given object.
+ *
+ * @param o - object on which to add the property
+ * @param name - property name
+ * @param value - property value
+ */
+function idl_defineConst(o, name, value) {
+ Object.defineProperty(o, name, { writable: false, enumerable: true, configurable: false, value: value });
+}
+exports.idl_defineConst = idl_defineConst;
+//# sourceMappingURL=WebIDLAlgorithm.js.map
/***/ }),
-/***/ 5443:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-var util = __nccwpck_require__(3837);
-var Stream = (__nccwpck_require__(2781).Stream);
-var DelayedStream = __nccwpck_require__(8611);
+/***/ 7030:
+/***/ ((__unused_webpack_module, exports) => {
-module.exports = CombinedStream;
-function CombinedStream() {
- this.writable = false;
- this.readable = true;
- this.dataSize = 0;
- this.maxDataSize = 2 * 1024 * 1024;
- this.pauseStreams = true;
+"use strict";
- this._released = false;
- this._streams = [];
- this._currentStream = null;
- this._insideLoop = false;
- this._pendingNext = false;
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Determines if the given string is valid for a `"Name"` construct.
+ *
+ * @param name - name string to test
+ */
+function xml_isName(name) {
+ for (var i = 0; i < name.length; i++) {
+ var n = name.charCodeAt(i);
+ // NameStartChar
+ if ((n >= 97 && n <= 122) || // [a-z]
+ (n >= 65 && n <= 90) || // [A-Z]
+ n === 58 || n === 95 || // ':' or '_'
+ (n >= 0xC0 && n <= 0xD6) ||
+ (n >= 0xD8 && n <= 0xF6) ||
+ (n >= 0xF8 && n <= 0x2FF) ||
+ (n >= 0x370 && n <= 0x37D) ||
+ (n >= 0x37F && n <= 0x1FFF) ||
+ (n >= 0x200C && n <= 0x200D) ||
+ (n >= 0x2070 && n <= 0x218F) ||
+ (n >= 0x2C00 && n <= 0x2FEF) ||
+ (n >= 0x3001 && n <= 0xD7FF) ||
+ (n >= 0xF900 && n <= 0xFDCF) ||
+ (n >= 0xFDF0 && n <= 0xFFFD)) {
+ continue;
+ }
+ else if (i !== 0 &&
+ (n === 45 || n === 46 || // '-' or '.'
+ (n >= 48 && n <= 57) || // [0-9]
+ (n === 0xB7) ||
+ (n >= 0x0300 && n <= 0x036F) ||
+ (n >= 0x203F && n <= 0x2040))) {
+ continue;
+ }
+ if (n >= 0xD800 && n <= 0xDBFF && i < name.length - 1) {
+ var n2 = name.charCodeAt(i + 1);
+ if (n2 >= 0xDC00 && n2 <= 0xDFFF) {
+ n = (n - 0xD800) * 0x400 + n2 - 0xDC00 + 0x10000;
+ i++;
+ if (n >= 0x10000 && n <= 0xEFFFF) {
+ continue;
+ }
+ }
+ }
+ return false;
+ }
+ return true;
}
-util.inherits(CombinedStream, Stream);
+exports.xml_isName = xml_isName;
+/**
+ * Determines if the given string is valid for a `"QName"` construct.
+ *
+ * @param name - name string to test
+ */
+function xml_isQName(name) {
+ var colonFound = false;
+ for (var i = 0; i < name.length; i++) {
+ var n = name.charCodeAt(i);
+ // NameStartChar
+ if ((n >= 97 && n <= 122) || // [a-z]
+ (n >= 65 && n <= 90) || // [A-Z]
+ n === 95 || // '_'
+ (n >= 0xC0 && n <= 0xD6) ||
+ (n >= 0xD8 && n <= 0xF6) ||
+ (n >= 0xF8 && n <= 0x2FF) ||
+ (n >= 0x370 && n <= 0x37D) ||
+ (n >= 0x37F && n <= 0x1FFF) ||
+ (n >= 0x200C && n <= 0x200D) ||
+ (n >= 0x2070 && n <= 0x218F) ||
+ (n >= 0x2C00 && n <= 0x2FEF) ||
+ (n >= 0x3001 && n <= 0xD7FF) ||
+ (n >= 0xF900 && n <= 0xFDCF) ||
+ (n >= 0xFDF0 && n <= 0xFFFD)) {
+ continue;
+ }
+ else if (i !== 0 &&
+ (n === 45 || n === 46 || // '-' or '.'
+ (n >= 48 && n <= 57) || // [0-9]
+ (n === 0xB7) ||
+ (n >= 0x0300 && n <= 0x036F) ||
+ (n >= 0x203F && n <= 0x2040))) {
+ continue;
+ }
+ else if (i !== 0 && n === 58) { // :
+ if (colonFound)
+ return false; // multiple colons in qname
+ if (i === name.length - 1)
+ return false; // colon at the end of qname
+ colonFound = true;
+ continue;
+ }
+ if (n >= 0xD800 && n <= 0xDBFF && i < name.length - 1) {
+ var n2 = name.charCodeAt(i + 1);
+ if (n2 >= 0xDC00 && n2 <= 0xDFFF) {
+ n = (n - 0xD800) * 0x400 + n2 - 0xDC00 + 0x10000;
+ i++;
+ if (n >= 0x10000 && n <= 0xEFFFF) {
+ continue;
+ }
+ }
+ }
+ return false;
+ }
+ return true;
+}
+exports.xml_isQName = xml_isQName;
+/**
+ * Determines if the given string contains legal characters.
+ *
+ * @param chars - sequence of characters to test
+ */
+function xml_isLegalChar(chars) {
+ for (var i = 0; i < chars.length; i++) {
+ var n = chars.charCodeAt(i);
+ // #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
+ if (n === 0x9 || n === 0xA || n === 0xD ||
+ (n >= 0x20 && n <= 0xD7FF) ||
+ (n >= 0xE000 && n <= 0xFFFD)) {
+ continue;
+ }
+ if (n >= 0xD800 && n <= 0xDBFF && i < chars.length - 1) {
+ var n2 = chars.charCodeAt(i + 1);
+ if (n2 >= 0xDC00 && n2 <= 0xDFFF) {
+ n = (n - 0xD800) * 0x400 + n2 - 0xDC00 + 0x10000;
+ i++;
+ if (n >= 0x10000 && n <= 0x10FFFF) {
+ continue;
+ }
+ }
+ }
+ return false;
+ }
+ return true;
+}
+exports.xml_isLegalChar = xml_isLegalChar;
+/**
+ * Determines if the given string contains legal characters for a public
+ * identifier.
+ *
+ * @param chars - sequence of characters to test
+ */
+function xml_isPubidChar(chars) {
+ for (var i = 0; i < chars.length; i++) {
+ // PubId chars are all in the ASCII range, no need to check surrogates
+ var n = chars.charCodeAt(i);
+ // #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]
+ if ((n >= 97 && n <= 122) || // [a-z]
+ (n >= 65 && n <= 90) || // [A-Z]
+ (n >= 39 && n <= 59) || // ['()*+,-./] | [0-9] | [:;]
+ n === 0x20 || n === 0xD || n === 0xA || // #x20 | #xD | #xA
+ (n >= 35 && n <= 37) || // [#$%]
+ n === 33 || // !
+ n === 61 || n === 63 || n === 64 || n === 95) { // [=?@_]
+ continue;
+ }
+ else {
+ return false;
+ }
+ }
+ return true;
+}
+exports.xml_isPubidChar = xml_isPubidChar;
+//# sourceMappingURL=XMLAlgorithm.js.map
-CombinedStream.create = function(options) {
- var combinedStream = new this();
+/***/ }),
- options = options || {};
- for (var option in options) {
- combinedStream[option] = options[option];
- }
+/***/ 61:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
- return combinedStream;
-};
+"use strict";
-CombinedStream.isStreamLike = function(stream) {
- return (typeof stream !== 'function')
- && (typeof stream !== 'string')
- && (typeof stream !== 'boolean')
- && (typeof stream !== 'number')
- && (!Buffer.isBuffer(stream));
-};
+function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+}
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+__export(__nccwpck_require__(2206));
+__export(__nccwpck_require__(5013));
+__export(__nccwpck_require__(1054));
+__export(__nccwpck_require__(9461));
+__export(__nccwpck_require__(7339));
+__export(__nccwpck_require__(5648));
+__export(__nccwpck_require__(2793));
+__export(__nccwpck_require__(9628));
+__export(__nccwpck_require__(3261));
+__export(__nccwpck_require__(1849));
+__export(__nccwpck_require__(8217));
+__export(__nccwpck_require__(1312));
+__export(__nccwpck_require__(5463));
+__export(__nccwpck_require__(8157));
+__export(__nccwpck_require__(5856));
+__export(__nccwpck_require__(4924));
+__export(__nccwpck_require__(9989));
+__export(__nccwpck_require__(3670));
+__export(__nccwpck_require__(2328));
+__export(__nccwpck_require__(457));
+__export(__nccwpck_require__(1853));
+__export(__nccwpck_require__(8733));
+__export(__nccwpck_require__(3512));
+__export(__nccwpck_require__(998));
+__export(__nccwpck_require__(6620));
+__export(__nccwpck_require__(4962));
+__export(__nccwpck_require__(5457));
+__export(__nccwpck_require__(7030));
+//# sourceMappingURL=index.js.map
-CombinedStream.prototype.append = function(stream) {
- var isStreamLike = CombinedStream.isStreamLike(stream);
+/***/ }),
- if (isStreamLike) {
- if (!(stream instanceof DelayedStream)) {
- var newStream = DelayedStream.create(stream, {
- maxDataSize: Infinity,
- pauseStream: this.pauseStreams,
- });
- stream.on('data', this._checkDataSize.bind(this));
- stream = newStream;
- }
+/***/ 6461:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
- this._handleErrors(stream);
+"use strict";
- if (this.pauseStreams) {
- stream.pause();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var algorithm_1 = __nccwpck_require__(61);
+/**
+ * Represents a controller that allows to abort DOM requests.
+ */
+var AbortControllerImpl = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `AbortController`.
+ */
+ function AbortControllerImpl() {
+ /**
+ * 1. Let signal be a new AbortSignal object.
+ * 2. Let controller be a new AbortController object whose signal is signal.
+ * 3. Return controller.
+ */
+ this._signal = algorithm_1.create_abortSignal();
}
- }
-
- this._streams.push(stream);
- return this;
-};
-
-CombinedStream.prototype.pipe = function(dest, options) {
- Stream.prototype.pipe.call(this, dest, options);
- this.resume();
- return dest;
-};
+ Object.defineProperty(AbortControllerImpl.prototype, "signal", {
+ /** @inheritdoc */
+ get: function () { return this._signal; },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ AbortControllerImpl.prototype.abort = function () {
+ algorithm_1.abort_signalAbort(this._signal);
+ };
+ return AbortControllerImpl;
+}());
+exports.AbortControllerImpl = AbortControllerImpl;
+//# sourceMappingURL=AbortControllerImpl.js.map
-CombinedStream.prototype._getNext = function() {
- this._currentStream = null;
+/***/ }),
- if (this._insideLoop) {
- this._pendingNext = true;
- return; // defer call
- }
+/***/ 6077:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
- this._insideLoop = true;
- try {
- do {
- this._pendingNext = false;
- this._realGetNext();
- } while (this._pendingNext);
- } finally {
- this._insideLoop = false;
- }
-};
+"use strict";
-CombinedStream.prototype._realGetNext = function() {
- var stream = this._streams.shift();
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var EventTargetImpl_1 = __nccwpck_require__(9968);
+var algorithm_1 = __nccwpck_require__(61);
+/**
+ * Represents a signal object that communicates with a DOM request and abort
+ * it through an AbortController.
+ */
+var AbortSignalImpl = /** @class */ (function (_super) {
+ __extends(AbortSignalImpl, _super);
+ /**
+ * Initializes a new instance of `AbortSignal`.
+ */
+ function AbortSignalImpl() {
+ var _this = _super.call(this) || this;
+ _this._abortedFlag = false;
+ _this._abortAlgorithms = new Set();
+ return _this;
+ }
+ Object.defineProperty(AbortSignalImpl.prototype, "aborted", {
+ /** @inheritdoc */
+ get: function () { return this._abortedFlag; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AbortSignalImpl.prototype, "onabort", {
+ /** @inheritdoc */
+ get: function () {
+ return algorithm_1.event_getterEventHandlerIDLAttribute(this, "onabort");
+ },
+ set: function (val) {
+ algorithm_1.event_setterEventHandlerIDLAttribute(this, "onabort", val);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Creates a new `AbortSignal`.
+ */
+ AbortSignalImpl._create = function () {
+ return new AbortSignalImpl();
+ };
+ return AbortSignalImpl;
+}(EventTargetImpl_1.EventTargetImpl));
+exports.AbortSignalImpl = AbortSignalImpl;
+//# sourceMappingURL=AbortSignalImpl.js.map
+/***/ }),
- if (typeof stream == 'undefined') {
- this.end();
- return;
- }
+/***/ 7126:
+/***/ ((__unused_webpack_module, exports) => {
- if (typeof stream !== 'function') {
- this._pipeNext(stream);
- return;
- }
+"use strict";
- var getStream = stream;
- getStream(function(stream) {
- var isStreamLike = CombinedStream.isStreamLike(stream);
- if (isStreamLike) {
- stream.on('data', this._checkDataSize.bind(this));
- this._handleErrors(stream);
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Represents an abstract range with a start and end boundary point.
+ */
+var AbstractRangeImpl = /** @class */ (function () {
+ function AbstractRangeImpl() {
}
+ Object.defineProperty(AbstractRangeImpl.prototype, "_startNode", {
+ get: function () { return this._start[0]; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AbstractRangeImpl.prototype, "_startOffset", {
+ get: function () { return this._start[1]; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AbstractRangeImpl.prototype, "_endNode", {
+ get: function () { return this._end[0]; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AbstractRangeImpl.prototype, "_endOffset", {
+ get: function () { return this._end[1]; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AbstractRangeImpl.prototype, "_collapsed", {
+ get: function () {
+ return (this._start[0] === this._end[0] &&
+ this._start[1] === this._end[1]);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AbstractRangeImpl.prototype, "startContainer", {
+ /** @inheritdoc */
+ get: function () { return this._startNode; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AbstractRangeImpl.prototype, "startOffset", {
+ /** @inheritdoc */
+ get: function () { return this._startOffset; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AbstractRangeImpl.prototype, "endContainer", {
+ /** @inheritdoc */
+ get: function () { return this._endNode; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AbstractRangeImpl.prototype, "endOffset", {
+ /** @inheritdoc */
+ get: function () { return this._endOffset; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AbstractRangeImpl.prototype, "collapsed", {
+ /** @inheritdoc */
+ get: function () { return this._collapsed; },
+ enumerable: true,
+ configurable: true
+ });
+ return AbstractRangeImpl;
+}());
+exports.AbstractRangeImpl = AbstractRangeImpl;
+//# sourceMappingURL=AbstractRangeImpl.js.map
- this._pipeNext(stream);
- }.bind(this));
-};
-
-CombinedStream.prototype._pipeNext = function(stream) {
- this._currentStream = stream;
+/***/ }),
- var isStreamLike = CombinedStream.isStreamLike(stream);
- if (isStreamLike) {
- stream.on('end', this._getNext.bind(this));
- stream.pipe(this, {end: false});
- return;
- }
+/***/ 7875:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
- var value = stream;
- this.write(value);
- this._getNext();
-};
+"use strict";
-CombinedStream.prototype._handleErrors = function(stream) {
- var self = this;
- stream.on('error', function(err) {
- self._emitError(err);
- });
-};
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(7305);
+var NodeImpl_1 = __nccwpck_require__(1745);
+var algorithm_1 = __nccwpck_require__(61);
+var WebIDLAlgorithm_1 = __nccwpck_require__(5457);
+/**
+ * Represents an attribute of an element node.
+ */
+var AttrImpl = /** @class */ (function (_super) {
+ __extends(AttrImpl, _super);
+ /**
+ * Initializes a new instance of `Attr`.
+ *
+ * @param localName - local name
+ */
+ function AttrImpl(localName) {
+ var _this = _super.call(this) || this;
+ _this._namespace = null;
+ _this._namespacePrefix = null;
+ _this._element = null;
+ _this._value = '';
+ _this._localName = localName;
+ return _this;
+ }
+ Object.defineProperty(AttrImpl.prototype, "ownerElement", {
+ /** @inheritdoc */
+ get: function () { return this._element; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AttrImpl.prototype, "namespaceURI", {
+ /** @inheritdoc */
+ get: function () { return this._namespace; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AttrImpl.prototype, "prefix", {
+ /** @inheritdoc */
+ get: function () { return this._namespacePrefix; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AttrImpl.prototype, "localName", {
+ /** @inheritdoc */
+ get: function () { return this._localName; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AttrImpl.prototype, "name", {
+ /** @inheritdoc */
+ get: function () { return this._qualifiedName; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AttrImpl.prototype, "value", {
+ /** @inheritdoc */
+ get: function () { return this._value; },
+ set: function (value) {
+ /**
+ * The value attribute’s setter must set an existing attribute value with
+ * context object and the given value.
+ */
+ algorithm_1.attr_setAnExistingAttributeValue(this, value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AttrImpl.prototype, "_qualifiedName", {
+ /**
+ * Returns the qualified name.
+ */
+ get: function () {
+ /**
+ * An attribute’s qualified name is its local name if its namespace prefix
+ * is null, and its namespace prefix, followed by ":", followed by its
+ * local name, otherwise.
+ */
+ return (this._namespacePrefix !== null ?
+ this._namespacePrefix + ':' + this._localName :
+ this._localName);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Creates an `Attr`.
+ *
+ * @param document - owner document
+ * @param localName - local name
+ */
+ AttrImpl._create = function (document, localName) {
+ var node = new AttrImpl(localName);
+ node._nodeDocument = document;
+ return node;
+ };
+ return AttrImpl;
+}(NodeImpl_1.NodeImpl));
+exports.AttrImpl = AttrImpl;
+/**
+ * Initialize prototype properties
+ */
+WebIDLAlgorithm_1.idl_defineConst(AttrImpl.prototype, "_nodeType", interfaces_1.NodeType.Attribute);
+WebIDLAlgorithm_1.idl_defineConst(AttrImpl.prototype, "specified", true);
+//# sourceMappingURL=AttrImpl.js.map
-CombinedStream.prototype.write = function(data) {
- this.emit('data', data);
-};
+/***/ }),
-CombinedStream.prototype.pause = function() {
- if (!this.pauseStreams) {
- return;
- }
+/***/ 3977:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
- if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();
- this.emit('pause');
-};
+"use strict";
-CombinedStream.prototype.resume = function() {
- if (!this._released) {
- this._released = true;
- this.writable = true;
- this._getNext();
- }
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var TextImpl_1 = __nccwpck_require__(2191);
+var interfaces_1 = __nccwpck_require__(7305);
+var WebIDLAlgorithm_1 = __nccwpck_require__(5457);
+/**
+ * Represents a CDATA node.
+ */
+var CDATASectionImpl = /** @class */ (function (_super) {
+ __extends(CDATASectionImpl, _super);
+ /**
+ * Initializes a new instance of `CDATASection`.
+ *
+ * @param data - node contents
+ */
+ function CDATASectionImpl(data) {
+ return _super.call(this, data) || this;
+ }
+ /**
+ * Creates a new `CDATASection`.
+ *
+ * @param document - owner document
+ * @param data - node contents
+ */
+ CDATASectionImpl._create = function (document, data) {
+ if (data === void 0) { data = ''; }
+ var node = new CDATASectionImpl(data);
+ node._nodeDocument = document;
+ return node;
+ };
+ return CDATASectionImpl;
+}(TextImpl_1.TextImpl));
+exports.CDATASectionImpl = CDATASectionImpl;
+/**
+ * Initialize prototype properties
+ */
+WebIDLAlgorithm_1.idl_defineConst(CDATASectionImpl.prototype, "_nodeType", interfaces_1.NodeType.CData);
+//# sourceMappingURL=CDATASectionImpl.js.map
- if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();
- this.emit('resume');
-};
+/***/ }),
-CombinedStream.prototype.end = function() {
- this._reset();
- this.emit('end');
-};
+/***/ 5330:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-CombinedStream.prototype.destroy = function() {
- this._reset();
- this.emit('close');
-};
+"use strict";
-CombinedStream.prototype._reset = function() {
- this.writable = false;
- this._streams = [];
- this._currentStream = null;
-};
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var NodeImpl_1 = __nccwpck_require__(1745);
+var algorithm_1 = __nccwpck_require__(61);
+/**
+ * Represents a generic text node.
+ */
+var CharacterDataImpl = /** @class */ (function (_super) {
+ __extends(CharacterDataImpl, _super);
+ /**
+ * Initializes a new instance of `CharacterData`.
+ *
+ * @param data - the text content
+ */
+ function CharacterDataImpl(data) {
+ var _this = _super.call(this) || this;
+ _this._data = data;
+ return _this;
+ }
+ Object.defineProperty(CharacterDataImpl.prototype, "data", {
+ /** @inheritdoc */
+ get: function () { return this._data; },
+ set: function (value) {
+ algorithm_1.characterData_replaceData(this, 0, this._data.length, value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CharacterDataImpl.prototype, "length", {
+ /** @inheritdoc */
+ get: function () { return this._data.length; },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ CharacterDataImpl.prototype.substringData = function (offset, count) {
+ /**
+ * The substringData(offset, count) method, when invoked, must return the
+ * result of running substring data with node context object, offset offset, and count count.
+ */
+ return algorithm_1.characterData_substringData(this, offset, count);
+ };
+ /** @inheritdoc */
+ CharacterDataImpl.prototype.appendData = function (data) {
+ /**
+ * The appendData(data) method, when invoked, must replace data with node
+ * context object, offset context object’s length, count 0, and data data.
+ */
+ return algorithm_1.characterData_replaceData(this, this._data.length, 0, data);
+ };
+ /** @inheritdoc */
+ CharacterDataImpl.prototype.insertData = function (offset, data) {
+ /**
+ * The insertData(offset, data) method, when invoked, must replace data with
+ * node context object, offset offset, count 0, and data data.
+ */
+ algorithm_1.characterData_replaceData(this, offset, 0, data);
+ };
+ /** @inheritdoc */
+ CharacterDataImpl.prototype.deleteData = function (offset, count) {
+ /**
+ * The deleteData(offset, count) method, when invoked, must replace data
+ * with node context object, offset offset, count count, and data the
+ * empty string.
+ */
+ algorithm_1.characterData_replaceData(this, offset, count, '');
+ };
+ /** @inheritdoc */
+ CharacterDataImpl.prototype.replaceData = function (offset, count, data) {
+ /**
+ * The replaceData(offset, count, data) method, when invoked, must replace
+ * data with node context object, offset offset, count count, and data data.
+ */
+ algorithm_1.characterData_replaceData(this, offset, count, data);
+ };
+ Object.defineProperty(CharacterDataImpl.prototype, "previousElementSibling", {
+ // MIXIN: NonDocumentTypeChildNode
+ /* istanbul ignore next */
+ get: function () { throw new Error("Mixin: NonDocumentTypeChildNode not implemented."); },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CharacterDataImpl.prototype, "nextElementSibling", {
+ /* istanbul ignore next */
+ get: function () { throw new Error("Mixin: NonDocumentTypeChildNode not implemented."); },
+ enumerable: true,
+ configurable: true
+ });
+ // MIXIN: ChildNode
+ /* istanbul ignore next */
+ CharacterDataImpl.prototype.before = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ throw new Error("Mixin: ChildNode not implemented.");
+ };
+ /* istanbul ignore next */
+ CharacterDataImpl.prototype.after = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ throw new Error("Mixin: ChildNode not implemented.");
+ };
+ /* istanbul ignore next */
+ CharacterDataImpl.prototype.replaceWith = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ throw new Error("Mixin: ChildNode not implemented.");
+ };
+ /* istanbul ignore next */
+ CharacterDataImpl.prototype.remove = function () { throw new Error("Mixin: ChildNode not implemented."); };
+ return CharacterDataImpl;
+}(NodeImpl_1.NodeImpl));
+exports.CharacterDataImpl = CharacterDataImpl;
+//# sourceMappingURL=CharacterDataImpl.js.map
-CombinedStream.prototype._checkDataSize = function() {
- this._updateDataSize();
- if (this.dataSize <= this.maxDataSize) {
- return;
- }
+/***/ }),
- var message =
- 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';
- this._emitError(new Error(message));
-};
+/***/ 8264:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-CombinedStream.prototype._updateDataSize = function() {
- this.dataSize = 0;
+"use strict";
- var self = this;
- this._streams.forEach(function(stream) {
- if (!stream.dataSize) {
- return;
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var util_1 = __nccwpck_require__(5282);
+var algorithm_1 = __nccwpck_require__(61);
+/**
+ * Represents a mixin that extends child nodes that can have siblings
+ * including doctypes. This mixin is implemented by {@link Element},
+ * {@link CharacterData} and {@link DocumentType}.
+ */
+var ChildNodeImpl = /** @class */ (function () {
+ function ChildNodeImpl() {
}
+ /** @inheritdoc */
+ ChildNodeImpl.prototype.before = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ /**
+ * 1. Let parent be context object’s parent.
+ * 2. If parent is null, then return.
+ */
+ var context = util_1.Cast.asNode(this);
+ var parent = context._parent;
+ if (parent === null)
+ return;
+ /**
+ * 3. Let viablePreviousSibling be context object’s first preceding
+ * sibling not in nodes, and null otherwise.
+ */
+ var viablePreviousSibling = context._previousSibling;
+ var flag = true;
+ while (flag && viablePreviousSibling) {
+ flag = false;
+ for (var i = 0; i < nodes.length; i++) {
+ var child = nodes[i];
+ if (child === viablePreviousSibling) {
+ viablePreviousSibling = viablePreviousSibling._previousSibling;
+ flag = true;
+ break;
+ }
+ }
+ }
+ /**
+ * 4. Let node be the result of converting nodes into a node, given nodes
+ * and context object’s node document.
+ */
+ var node = algorithm_1.parentNode_convertNodesIntoANode(nodes, context._nodeDocument);
+ /**
+ * 5. If viablePreviousSibling is null, set it to parent’s first child,
+ * and to viablePreviousSibling’s next sibling otherwise.
+ */
+ if (viablePreviousSibling === null)
+ viablePreviousSibling = parent._firstChild;
+ else
+ viablePreviousSibling = viablePreviousSibling._nextSibling;
+ /**
+ * 6. Pre-insert node into parent before viablePreviousSibling.
+ */
+ algorithm_1.mutation_preInsert(node, parent, viablePreviousSibling);
+ };
+ /** @inheritdoc */
+ ChildNodeImpl.prototype.after = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ /**
+ * 1. Let parent be context object’s parent.
+ * 2. If parent is null, then return.
+ */
+ var context = util_1.Cast.asNode(this);
+ var parent = context._parent;
+ if (!parent)
+ return;
+ /**
+ * 3. Let viableNextSibling be context object’s first following sibling not
+ * in nodes, and null otherwise.
+ */
+ var viableNextSibling = context._nextSibling;
+ var flag = true;
+ while (flag && viableNextSibling) {
+ flag = false;
+ for (var i = 0; i < nodes.length; i++) {
+ var child = nodes[i];
+ if (child === viableNextSibling) {
+ viableNextSibling = viableNextSibling._nextSibling;
+ flag = true;
+ break;
+ }
+ }
+ }
+ /**
+ * 4. Let node be the result of converting nodes into a node, given nodes
+ * and context object’s node document.
+ */
+ var node = algorithm_1.parentNode_convertNodesIntoANode(nodes, context._nodeDocument);
+ /**
+ * 5. Pre-insert node into parent before viableNextSibling.
+ */
+ algorithm_1.mutation_preInsert(node, parent, viableNextSibling);
+ };
+ /** @inheritdoc */
+ ChildNodeImpl.prototype.replaceWith = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ /**
+ * 1. Let parent be context object’s parent.
+ * 2. If parent is null, then return.
+ */
+ var context = util_1.Cast.asNode(this);
+ var parent = context._parent;
+ if (!parent)
+ return;
+ /**
+ * 3. Let viableNextSibling be context object’s first following sibling not
+ * in nodes, and null otherwise.
+ */
+ var viableNextSibling = context._nextSibling;
+ var flag = true;
+ while (flag && viableNextSibling) {
+ flag = false;
+ for (var i = 0; i < nodes.length; i++) {
+ var child = nodes[i];
+ if (child === viableNextSibling) {
+ viableNextSibling = viableNextSibling._nextSibling;
+ flag = true;
+ break;
+ }
+ }
+ }
+ /**
+ * 4. Let node be the result of converting nodes into a node, given nodes
+ * and context object’s node document.
+ */
+ var node = algorithm_1.parentNode_convertNodesIntoANode(nodes, context._nodeDocument);
+ /**
+ * 5. If context object’s parent is parent, replace the context object with
+ * node within parent.
+ * _Note:_ Context object could have been inserted into node.
+ * 6. Otherwise, pre-insert node into parent before viableNextSibling.
+ */
+ if (context._parent === parent)
+ algorithm_1.mutation_replace(context, node, parent);
+ else
+ algorithm_1.mutation_preInsert(node, parent, viableNextSibling);
+ };
+ /** @inheritdoc */
+ ChildNodeImpl.prototype.remove = function () {
+ /**
+ * 1. If context object’s parent is null, then return.
+ * 2. Remove the context object from context object’s parent.
+ */
+ var context = util_1.Cast.asNode(this);
+ var parent = context._parent;
+ if (!parent)
+ return;
+ algorithm_1.mutation_remove(context, parent);
+ };
+ return ChildNodeImpl;
+}());
+exports.ChildNodeImpl = ChildNodeImpl;
+//# sourceMappingURL=ChildNodeImpl.js.map
- self.dataSize += stream.dataSize;
- });
+/***/ }),
- if (this._currentStream && this._currentStream.dataSize) {
- this.dataSize += this._currentStream.dataSize;
- }
-};
+/***/ 930:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-CombinedStream.prototype._emitError = function(err) {
- this._reset();
- this.emit('error', err);
-};
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(7305);
+var CharacterDataImpl_1 = __nccwpck_require__(5330);
+var WebIDLAlgorithm_1 = __nccwpck_require__(5457);
+/**
+ * Represents a comment node.
+ */
+var CommentImpl = /** @class */ (function (_super) {
+ __extends(CommentImpl, _super);
+ /**
+ * Initializes a new instance of `Comment`.
+ *
+ * @param data - the text content
+ */
+ function CommentImpl(data) {
+ if (data === void 0) { data = ''; }
+ return _super.call(this, data) || this;
+ }
+ /**
+ * Creates a new `Comment`.
+ *
+ * @param document - owner document
+ * @param data - node contents
+ */
+ CommentImpl._create = function (document, data) {
+ if (data === void 0) { data = ''; }
+ var node = new CommentImpl(data);
+ node._nodeDocument = document;
+ return node;
+ };
+ return CommentImpl;
+}(CharacterDataImpl_1.CharacterDataImpl));
+exports.CommentImpl = CommentImpl;
+/**
+ * Initialize prototype properties
+ */
+WebIDLAlgorithm_1.idl_defineConst(CommentImpl.prototype, "_nodeType", interfaces_1.NodeType.Comment);
+//# sourceMappingURL=CommentImpl.js.map
/***/ }),
-/***/ 6891:
-/***/ ((module) => {
+/***/ 9857:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-module.exports = function (xs, fn) {
- var res = [];
- for (var i = 0; i < xs.length; i++) {
- var x = fn(xs[i], i);
- if (isArray(x)) res.push.apply(res, x);
- else res.push(x);
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var EventImpl_1 = __nccwpck_require__(5809);
+var algorithm_1 = __nccwpck_require__(61);
+/**
+ * Represents and event that carries custom data.
+ */
+var CustomEventImpl = /** @class */ (function (_super) {
+ __extends(CustomEventImpl, _super);
+ /**
+ * Initializes a new instance of `CustomEvent`.
+ */
+ function CustomEventImpl(type, eventInit) {
+ var _this = _super.call(this, type, eventInit) || this;
+ _this._detail = null;
+ _this._detail = (eventInit && eventInit.detail) || null;
+ return _this;
}
- return res;
-};
+ Object.defineProperty(CustomEventImpl.prototype, "detail", {
+ /** @inheritdoc */
+ get: function () { return this._detail; },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ CustomEventImpl.prototype.initCustomEvent = function (type, bubbles, cancelable, detail) {
+ if (bubbles === void 0) { bubbles = false; }
+ if (cancelable === void 0) { cancelable = false; }
+ if (detail === void 0) { detail = null; }
+ /**
+ * 1. If the context object’s dispatch flag is set, then return.
+ */
+ if (this._dispatchFlag)
+ return;
+ /**
+ * 2. Initialize the context object with type, bubbles, and cancelable.
+ */
+ algorithm_1.event_initialize(this, type, bubbles, cancelable);
+ /**
+ * 3. Set the context object’s detail attribute to detail.
+ */
+ this._detail = detail;
+ };
+ return CustomEventImpl;
+}(EventImpl_1.EventImpl));
+exports.CustomEventImpl = CustomEventImpl;
+//# sourceMappingURL=CustomEventImpl.js.map
-var isArray = Array.isArray || function (xs) {
- return Object.prototype.toString.call(xs) === '[object Array]';
-};
+/***/ }),
+
+/***/ 3166:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Represents the base class of `Error` objects used by this module.
+ */
+var DOMException = /** @class */ (function (_super) {
+ __extends(DOMException, _super);
+ /**
+ *
+ * @param name - message name
+ * @param message - error message
+ */
+ function DOMException(name, message) {
+ if (message === void 0) { message = ""; }
+ var _this = _super.call(this, message) || this;
+ _this.name = name;
+ return _this;
+ }
+ return DOMException;
+}(Error));
+exports.DOMException = DOMException;
+var DOMStringSizeError = /** @class */ (function (_super) {
+ __extends(DOMStringSizeError, _super);
+ /**
+ * @param message - error message
+ */
+ function DOMStringSizeError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "DOMStringSizeError", message) || this;
+ }
+ return DOMStringSizeError;
+}(DOMException));
+exports.DOMStringSizeError = DOMStringSizeError;
+var WrongDocumentError = /** @class */ (function (_super) {
+ __extends(WrongDocumentError, _super);
+ /**
+ * @param message - error message
+ */
+ function WrongDocumentError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "WrongDocumentError", "The object is in the wrong document. " + message) || this;
+ }
+ return WrongDocumentError;
+}(DOMException));
+exports.WrongDocumentError = WrongDocumentError;
+var NoDataAllowedError = /** @class */ (function (_super) {
+ __extends(NoDataAllowedError, _super);
+ /**
+ * @param message - error message
+ */
+ function NoDataAllowedError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "NoDataAllowedError", message) || this;
+ }
+ return NoDataAllowedError;
+}(DOMException));
+exports.NoDataAllowedError = NoDataAllowedError;
+var NoModificationAllowedError = /** @class */ (function (_super) {
+ __extends(NoModificationAllowedError, _super);
+ /**
+ * @param message - error message
+ */
+ function NoModificationAllowedError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "NoModificationAllowedError", "The object can not be modified. " + message) || this;
+ }
+ return NoModificationAllowedError;
+}(DOMException));
+exports.NoModificationAllowedError = NoModificationAllowedError;
+var NotSupportedError = /** @class */ (function (_super) {
+ __extends(NotSupportedError, _super);
+ /**
+ * @param message - error message
+ */
+ function NotSupportedError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "NotSupportedError", "The operation is not supported. " + message) || this;
+ }
+ return NotSupportedError;
+}(DOMException));
+exports.NotSupportedError = NotSupportedError;
+var InUseAttributeError = /** @class */ (function (_super) {
+ __extends(InUseAttributeError, _super);
+ /**
+ * @param message - error message
+ */
+ function InUseAttributeError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "InUseAttributeError", message) || this;
+ }
+ return InUseAttributeError;
+}(DOMException));
+exports.InUseAttributeError = InUseAttributeError;
+var InvalidStateError = /** @class */ (function (_super) {
+ __extends(InvalidStateError, _super);
+ /**
+ * @param message - error message
+ */
+ function InvalidStateError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "InvalidStateError", "The object is in an invalid state. " + message) || this;
+ }
+ return InvalidStateError;
+}(DOMException));
+exports.InvalidStateError = InvalidStateError;
+var InvalidModificationError = /** @class */ (function (_super) {
+ __extends(InvalidModificationError, _super);
+ /**
+ * @param message - error message
+ */
+ function InvalidModificationError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "InvalidModificationError", "The object can not be modified in this way. " + message) || this;
+ }
+ return InvalidModificationError;
+}(DOMException));
+exports.InvalidModificationError = InvalidModificationError;
+var NamespaceError = /** @class */ (function (_super) {
+ __extends(NamespaceError, _super);
+ /**
+ * @param message - error message
+ */
+ function NamespaceError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "NamespaceError", "The operation is not allowed by Namespaces in XML. [XMLNS] " + message) || this;
+ }
+ return NamespaceError;
+}(DOMException));
+exports.NamespaceError = NamespaceError;
+var InvalidAccessError = /** @class */ (function (_super) {
+ __extends(InvalidAccessError, _super);
+ /**
+ * @param message - error message
+ */
+ function InvalidAccessError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "InvalidAccessError", "The object does not support the operation or argument. " + message) || this;
+ }
+ return InvalidAccessError;
+}(DOMException));
+exports.InvalidAccessError = InvalidAccessError;
+var ValidationError = /** @class */ (function (_super) {
+ __extends(ValidationError, _super);
+ /**
+ * @param message - error message
+ */
+ function ValidationError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "ValidationError", message) || this;
+ }
+ return ValidationError;
+}(DOMException));
+exports.ValidationError = ValidationError;
+var TypeMismatchError = /** @class */ (function (_super) {
+ __extends(TypeMismatchError, _super);
+ /**
+ * @param message - error message
+ */
+ function TypeMismatchError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "TypeMismatchError", message) || this;
+ }
+ return TypeMismatchError;
+}(DOMException));
+exports.TypeMismatchError = TypeMismatchError;
+var SecurityError = /** @class */ (function (_super) {
+ __extends(SecurityError, _super);
+ /**
+ * @param message - error message
+ */
+ function SecurityError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "SecurityError", "The operation is insecure. " + message) || this;
+ }
+ return SecurityError;
+}(DOMException));
+exports.SecurityError = SecurityError;
+var NetworkError = /** @class */ (function (_super) {
+ __extends(NetworkError, _super);
+ /**
+ * @param message - error message
+ */
+ function NetworkError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "NetworkError", "A network error occurred. " + message) || this;
+ }
+ return NetworkError;
+}(DOMException));
+exports.NetworkError = NetworkError;
+var AbortError = /** @class */ (function (_super) {
+ __extends(AbortError, _super);
+ /**
+ * @param message - error message
+ */
+ function AbortError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "AbortError", "The operation was aborted. " + message) || this;
+ }
+ return AbortError;
+}(DOMException));
+exports.AbortError = AbortError;
+var URLMismatchError = /** @class */ (function (_super) {
+ __extends(URLMismatchError, _super);
+ /**
+ * @param message - error message
+ */
+ function URLMismatchError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "URLMismatchError", "The given URL does not match another URL. " + message) || this;
+ }
+ return URLMismatchError;
+}(DOMException));
+exports.URLMismatchError = URLMismatchError;
+var QuotaExceededError = /** @class */ (function (_super) {
+ __extends(QuotaExceededError, _super);
+ /**
+ * @param message - error message
+ */
+ function QuotaExceededError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "QuotaExceededError", "The quota has been exceeded. " + message) || this;
+ }
+ return QuotaExceededError;
+}(DOMException));
+exports.QuotaExceededError = QuotaExceededError;
+var TimeoutError = /** @class */ (function (_super) {
+ __extends(TimeoutError, _super);
+ /**
+ * @param message - error message
+ */
+ function TimeoutError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "TimeoutError", "The operation timed out. " + message) || this;
+ }
+ return TimeoutError;
+}(DOMException));
+exports.TimeoutError = TimeoutError;
+var InvalidNodeTypeError = /** @class */ (function (_super) {
+ __extends(InvalidNodeTypeError, _super);
+ /**
+ * @param message - error message
+ */
+ function InvalidNodeTypeError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "InvalidNodeTypeError", "The supplied node is incorrect or has an incorrect ancestor for this operation. " + message) || this;
+ }
+ return InvalidNodeTypeError;
+}(DOMException));
+exports.InvalidNodeTypeError = InvalidNodeTypeError;
+var DataCloneError = /** @class */ (function (_super) {
+ __extends(DataCloneError, _super);
+ /**
+ * @param message - error message
+ */
+ function DataCloneError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "DataCloneError", "The object can not be cloned. " + message) || this;
+ }
+ return DataCloneError;
+}(DOMException));
+exports.DataCloneError = DataCloneError;
+var NotImplementedError = /** @class */ (function (_super) {
+ __extends(NotImplementedError, _super);
+ /**
+ * @param message - error message
+ */
+ function NotImplementedError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "NotImplementedError", "The DOM method is not implemented by this module. " + message) || this;
+ }
+ return NotImplementedError;
+}(DOMException));
+exports.NotImplementedError = NotImplementedError;
+var HierarchyRequestError = /** @class */ (function (_super) {
+ __extends(HierarchyRequestError, _super);
+ /**
+ * @param message - error message
+ */
+ function HierarchyRequestError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "HierarchyRequestError", "The operation would yield an incorrect node tree. " + message) || this;
+ }
+ return HierarchyRequestError;
+}(DOMException));
+exports.HierarchyRequestError = HierarchyRequestError;
+var NotFoundError = /** @class */ (function (_super) {
+ __extends(NotFoundError, _super);
+ /**
+ * @param message - error message
+ */
+ function NotFoundError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "NotFoundError", "The object can not be found here. " + message) || this;
+ }
+ return NotFoundError;
+}(DOMException));
+exports.NotFoundError = NotFoundError;
+var IndexSizeError = /** @class */ (function (_super) {
+ __extends(IndexSizeError, _super);
+ /**
+ * @param message - error message
+ */
+ function IndexSizeError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "IndexSizeError", "The index is not in the allowed range. " + message) || this;
+ }
+ return IndexSizeError;
+}(DOMException));
+exports.IndexSizeError = IndexSizeError;
+var SyntaxError = /** @class */ (function (_super) {
+ __extends(SyntaxError, _super);
+ /**
+ * @param message - error message
+ */
+ function SyntaxError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "SyntaxError", "The string did not match the expected pattern. " + message) || this;
+ }
+ return SyntaxError;
+}(DOMException));
+exports.SyntaxError = SyntaxError;
+var InvalidCharacterError = /** @class */ (function (_super) {
+ __extends(InvalidCharacterError, _super);
+ /**
+ * @param message - error message
+ */
+ function InvalidCharacterError(message) {
+ if (message === void 0) { message = ""; }
+ return _super.call(this, "InvalidCharacterError", "The string contains invalid characters. " + message) || this;
+ }
+ return InvalidCharacterError;
+}(DOMException));
+exports.InvalidCharacterError = InvalidCharacterError;
+//# sourceMappingURL=DOMException.js.map
/***/ }),
-/***/ 8611:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+/***/ 4177:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-var Stream = (__nccwpck_require__(2781).Stream);
-var util = __nccwpck_require__(3837);
+"use strict";
-module.exports = DelayedStream;
-function DelayedStream() {
- this.source = null;
- this.dataSize = 0;
- this.maxDataSize = 1024 * 1024;
- this.pauseStream = true;
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var util_1 = __nccwpck_require__(6195);
+var CreateAlgorithm_1 = __nccwpck_require__(7339);
+/**
+ * Represents an object implementing DOM algorithms.
+ */
+var DOMImpl = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `DOM`.
+ */
+ function DOMImpl() {
+ this._features = {
+ mutationObservers: true,
+ customElements: true,
+ slots: true,
+ steps: true
+ };
+ this._window = null;
+ this._compareCache = new util_1.CompareCache();
+ this._rangeList = new util_1.FixedSizeSet();
+ }
+ /**
+ * Sets DOM algorithm features.
+ *
+ * @param features - DOM features supported by algorithms. All features are
+ * enabled by default unless explicity disabled.
+ */
+ DOMImpl.prototype.setFeatures = function (features) {
+ if (features === undefined)
+ features = true;
+ if (util_1.isObject(features)) {
+ for (var key in features) {
+ this._features[key] = features[key] || false;
+ }
+ }
+ else {
+ // enable/disable all features
+ for (var key in this._features) {
+ this._features[key] = features;
+ }
+ }
+ };
+ Object.defineProperty(DOMImpl.prototype, "features", {
+ /**
+ * Gets DOM algorithm features.
+ */
+ get: function () { return this._features; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DOMImpl.prototype, "window", {
+ /**
+ * Gets the DOM window.
+ */
+ get: function () {
+ if (this._window === null) {
+ this._window = CreateAlgorithm_1.create_window();
+ }
+ return this._window;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DOMImpl.prototype, "compareCache", {
+ /**
+ * Gets the global node compare cache.
+ */
+ get: function () { return this._compareCache; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DOMImpl.prototype, "rangeList", {
+ /**
+ * Gets the global range list.
+ */
+ get: function () { return this._rangeList; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DOMImpl, "instance", {
+ /**
+ * Returns the instance of `DOM`.
+ */
+ get: function () {
+ if (!DOMImpl._instance) {
+ DOMImpl._instance = new DOMImpl();
+ }
+ return DOMImpl._instance;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return DOMImpl;
+}());
+/**
+ * Represents an object implementing DOM algorithms.
+ */
+exports.dom = DOMImpl.instance;
+//# sourceMappingURL=DOMImpl.js.map
- this._maxDataSizeExceeded = false;
- this._released = false;
- this._bufferedEvents = [];
-}
-util.inherits(DelayedStream, Stream);
+/***/ }),
-DelayedStream.create = function(source, options) {
- var delayedStream = new this();
+/***/ 2197:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
- options = options || {};
- for (var option in options) {
- delayedStream[option] = options[option];
- }
+"use strict";
- delayedStream.source = source;
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMImpl_1 = __nccwpck_require__(4177);
+var infra_1 = __nccwpck_require__(4251);
+var algorithm_1 = __nccwpck_require__(61);
+var WebIDLAlgorithm_1 = __nccwpck_require__(5457);
+/**
+ * Represents an object providing methods which are not dependent on
+ * any particular document.
+ */
+var DOMImplementationImpl = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `DOMImplementation`.
+ *
+ * @param document - the associated document
+ */
+ function DOMImplementationImpl(document) {
+ this._associatedDocument = document || DOMImpl_1.dom.window.document;
+ }
+ /** @inheritdoc */
+ DOMImplementationImpl.prototype.createDocumentType = function (qualifiedName, publicId, systemId) {
+ /**
+ * 1. Validate qualifiedName.
+ * 2. Return a new doctype, with qualifiedName as its name, publicId as its
+ * public ID, and systemId as its system ID, and with its node document set
+ * to the associated document of the context object.
+ */
+ algorithm_1.namespace_validate(qualifiedName);
+ return algorithm_1.create_documentType(this._associatedDocument, qualifiedName, publicId, systemId);
+ };
+ /** @inheritdoc */
+ DOMImplementationImpl.prototype.createDocument = function (namespace, qualifiedName, doctype) {
+ if (doctype === void 0) { doctype = null; }
+ /**
+ * 1. Let document be a new XMLDocument.
+ */
+ var document = algorithm_1.create_xmlDocument();
+ /**
+ * 2. Let element be null.
+ * 3. If qualifiedName is not the empty string, then set element to
+ * the result of running the internal createElementNS steps, given document,
+ * namespace, qualifiedName, and an empty dictionary.
+ */
+ var element = null;
+ if (qualifiedName) {
+ element = algorithm_1.document_internalCreateElementNS(document, namespace, qualifiedName);
+ }
+ /**
+ * 4. If doctype is non-null, append doctype to document.
+ * 5. If element is non-null, append element to document.
+ */
+ if (doctype)
+ document.appendChild(doctype);
+ if (element)
+ document.appendChild(element);
+ /**
+ * 6. document’s origin is context object’s associated document’s origin.
+ */
+ document._origin = this._associatedDocument._origin;
+ /**
+ * 7. document’s content type is determined by namespace:
+ * - HTML namespace
+ * application/xhtml+xml
+ * - SVG namespace
+ * image/svg+xml
+ * - Any other namespace
+ * application/xml
+ */
+ if (namespace === infra_1.namespace.HTML)
+ document._contentType = "application/xhtml+xml";
+ else if (namespace === infra_1.namespace.SVG)
+ document._contentType = "image/svg+xml";
+ else
+ document._contentType = "application/xml";
+ /**
+ * 8. Return document.
+ */
+ return document;
+ };
+ /** @inheritdoc */
+ DOMImplementationImpl.prototype.createHTMLDocument = function (title) {
+ /**
+ * 1. Let doc be a new document that is an HTML document.
+ * 2. Set doc’s content type to "text/html".
+ */
+ var doc = algorithm_1.create_document();
+ doc._type = "html";
+ doc._contentType = "text/html";
+ /**
+ * 3. Append a new doctype, with "html" as its name and with its node
+ * document set to doc, to doc.
+ */
+ doc.appendChild(algorithm_1.create_documentType(doc, "html", "", ""));
+ /**
+ * 4. Append the result of creating an element given doc, html, and the
+ * HTML namespace, to doc.
+ */
+ var htmlElement = algorithm_1.element_createAnElement(doc, "html", infra_1.namespace.HTML);
+ doc.appendChild(htmlElement);
+ /**
+ * 5. Append the result of creating an element given doc, head, and the
+ * HTML namespace, to the html element created earlier.
+ */
+ var headElement = algorithm_1.element_createAnElement(doc, "head", infra_1.namespace.HTML);
+ htmlElement.appendChild(headElement);
+ /**
+ * 6. If title is given:
+ * 6.1. Append the result of creating an element given doc, title, and
+ * the HTML namespace, to the head element created earlier.
+ * 6.2. Append a new Text node, with its data set to title (which could
+ * be the empty string) and its node document set to doc, to the title
+ * element created earlier.
+ */
+ if (title !== undefined) {
+ var titleElement = algorithm_1.element_createAnElement(doc, "title", infra_1.namespace.HTML);
+ headElement.appendChild(titleElement);
+ var textElement = algorithm_1.create_text(doc, title);
+ titleElement.appendChild(textElement);
+ }
+ /**
+ * 7. Append the result of creating an element given doc, body, and the
+ * HTML namespace, to the html element created earlier.
+ */
+ var bodyElement = algorithm_1.element_createAnElement(doc, "body", infra_1.namespace.HTML);
+ htmlElement.appendChild(bodyElement);
+ /**
+ * 8. doc’s origin is context object’s associated document’s origin.
+ */
+ doc._origin = this._associatedDocument._origin;
+ /**
+ * 9. Return doc.
+ */
+ return doc;
+ };
+ /** @inheritdoc */
+ DOMImplementationImpl.prototype.hasFeature = function () { return true; };
+ /**
+ * Creates a new `DOMImplementation`.
+ *
+ * @param document - owner document
+ */
+ DOMImplementationImpl._create = function (document) {
+ return new DOMImplementationImpl(document);
+ };
+ return DOMImplementationImpl;
+}());
+exports.DOMImplementationImpl = DOMImplementationImpl;
+WebIDLAlgorithm_1.idl_defineConst(DOMImplementationImpl.prototype, "_ID", "@oozcitak/dom");
+//# sourceMappingURL=DOMImplementationImpl.js.map
- var realEmit = source.emit;
- source.emit = function() {
- delayedStream._handleEmit(arguments);
- return realEmit.apply(source, arguments);
- };
+/***/ }),
- source.on('error', function() {});
- if (delayedStream.pauseStream) {
- source.pause();
- }
+/***/ 5096:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
- return delayedStream;
-};
+"use strict";
-Object.defineProperty(DelayedStream.prototype, 'readable', {
- configurable: true,
- enumerable: true,
- get: function() {
- return this.source.readable;
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMImpl_1 = __nccwpck_require__(4177);
+var DOMException_1 = __nccwpck_require__(3166);
+var infra_1 = __nccwpck_require__(4251);
+var algorithm_1 = __nccwpck_require__(61);
+/**
+ * Represents a token set.
+ */
+var DOMTokenListImpl = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `DOMTokenList`.
+ *
+ * @param element - associated element
+ * @param attribute - associated attribute
+ */
+ function DOMTokenListImpl(element, attribute) {
+ /**
+ * 1. Let element be associated element.
+ * 2. Let localName be associated attribute’s local name.
+ * 3. Let value be the result of getting an attribute value given element
+ * and localName.
+ * 4. Run the attribute change steps for element, localName, value, value,
+ * and null.
+ */
+ this._element = element;
+ this._attribute = attribute;
+ this._tokenSet = new Set();
+ var localName = attribute._localName;
+ var value = algorithm_1.element_getAnAttributeValue(element, localName);
+ // define a closure to be called when the associated attribute's value changes
+ var thisObj = this;
+ function updateTokenSet(element, localName, oldValue, value, namespace) {
+ /**
+ * 1. If localName is associated attribute’s local name, namespace is null,
+ * and value is null, then empty token set.
+ * 2. Otherwise, if localName is associated attribute’s local name,
+ * namespace is null, then set token set to value, parsed.
+ */
+ if (localName === thisObj._attribute._localName && namespace === null) {
+ if (!value)
+ thisObj._tokenSet.clear();
+ else
+ thisObj._tokenSet = algorithm_1.orderedSet_parse(value);
+ }
+ }
+ // add the closure to the associated element's attribute change steps
+ this._element._attributeChangeSteps.push(updateTokenSet);
+ if (DOMImpl_1.dom.features.steps) {
+ algorithm_1.dom_runAttributeChangeSteps(element, localName, value, value, null);
+ }
+ }
+ Object.defineProperty(DOMTokenListImpl.prototype, "length", {
+ /** @inheritdoc */
+ get: function () {
+ /**
+ * The length attribute' getter must return context object’s token set’s
+ * size.
+ */
+ return this._tokenSet.size;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ DOMTokenListImpl.prototype.item = function (index) {
+ var e_1, _a;
+ /**
+ * 1. If index is equal to or greater than context object’s token set’s
+ * size, then return null.
+ * 2. Return context object’s token set[index].
+ */
+ var i = 0;
+ try {
+ for (var _b = __values(this._tokenSet), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var token = _c.value;
+ if (i === index)
+ return token;
+ i++;
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ return null;
+ };
+ /** @inheritdoc */
+ DOMTokenListImpl.prototype.contains = function (token) {
+ /**
+ * The contains(token) method, when invoked, must return true if context
+ * object’s token set[token] exists, and false otherwise.
+ */
+ return this._tokenSet.has(token);
+ };
+ /** @inheritdoc */
+ DOMTokenListImpl.prototype.add = function () {
+ var e_2, _a;
+ var tokens = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ tokens[_i] = arguments[_i];
+ }
+ try {
+ /**
+ * 1. For each token in tokens:
+ * 1.1. If token is the empty string, then throw a "SyntaxError"
+ * DOMException.
+ * 1.2. If token contains any ASCII whitespace, then throw an
+ * "InvalidCharacterError" DOMException.
+ * 2. For each token in tokens, append token to context object’s token set.
+ * 3. Run the update steps.
+ */
+ for (var tokens_1 = __values(tokens), tokens_1_1 = tokens_1.next(); !tokens_1_1.done; tokens_1_1 = tokens_1.next()) {
+ var token = tokens_1_1.value;
+ if (token === '') {
+ throw new DOMException_1.SyntaxError("Cannot add an empty token.");
+ }
+ else if (infra_1.codePoint.ASCIIWhiteSpace.test(token)) {
+ throw new DOMException_1.InvalidCharacterError("Token cannot contain whitespace.");
+ }
+ else {
+ this._tokenSet.add(token);
+ }
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (tokens_1_1 && !tokens_1_1.done && (_a = tokens_1.return)) _a.call(tokens_1);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ algorithm_1.tokenList_updateSteps(this);
+ };
+ /** @inheritdoc */
+ DOMTokenListImpl.prototype.remove = function () {
+ var e_3, _a;
+ var tokens = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ tokens[_i] = arguments[_i];
+ }
+ try {
+ /**
+ * 1. For each token in tokens:
+ * 1.1. If token is the empty string, then throw a "SyntaxError"
+ * DOMException.
+ * 1.2. If token contains any ASCII whitespace, then throw an
+ * "InvalidCharacterError" DOMException.
+ * 2. For each token in tokens, remove token from context object’s token set.
+ * 3. Run the update steps.
+ */
+ for (var tokens_2 = __values(tokens), tokens_2_1 = tokens_2.next(); !tokens_2_1.done; tokens_2_1 = tokens_2.next()) {
+ var token = tokens_2_1.value;
+ if (token === '') {
+ throw new DOMException_1.SyntaxError("Cannot remove an empty token.");
+ }
+ else if (infra_1.codePoint.ASCIIWhiteSpace.test(token)) {
+ throw new DOMException_1.InvalidCharacterError("Token cannot contain whitespace.");
+ }
+ else {
+ this._tokenSet.delete(token);
+ }
+ }
+ }
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
+ finally {
+ try {
+ if (tokens_2_1 && !tokens_2_1.done && (_a = tokens_2.return)) _a.call(tokens_2);
+ }
+ finally { if (e_3) throw e_3.error; }
+ }
+ algorithm_1.tokenList_updateSteps(this);
+ };
+ /** @inheritdoc */
+ DOMTokenListImpl.prototype.toggle = function (token, force) {
+ if (force === void 0) { force = undefined; }
+ /**
+ * 1. If token is the empty string, then throw a "SyntaxError" DOMException.
+ * 2. If token contains any ASCII whitespace, then throw an
+ * "InvalidCharacterError" DOMException.
+ */
+ if (token === '') {
+ throw new DOMException_1.SyntaxError("Cannot toggle an empty token.");
+ }
+ else if (infra_1.codePoint.ASCIIWhiteSpace.test(token)) {
+ throw new DOMException_1.InvalidCharacterError("Token cannot contain whitespace.");
+ }
+ /**
+ * 3. If context object’s token set[token] exists, then:
+ */
+ if (this._tokenSet.has(token)) {
+ /**
+ * 3.1. If force is either not given or is false, then remove token from
+ * context object’s token set, run the update steps and return false.
+ * 3.2. Return true.
+ */
+ if (force === undefined || force === false) {
+ this._tokenSet.delete(token);
+ algorithm_1.tokenList_updateSteps(this);
+ return false;
+ }
+ return true;
+ }
+ /**
+ * 4. Otherwise, if force not given or is true, append token to context
+ * object’s token set, run the update steps, and return true.
+ */
+ if (force === undefined || force === true) {
+ this._tokenSet.add(token);
+ algorithm_1.tokenList_updateSteps(this);
+ return true;
+ }
+ /**
+ * 5. Return false.
+ */
+ return false;
+ };
+ /** @inheritdoc */
+ DOMTokenListImpl.prototype.replace = function (token, newToken) {
+ /**
+ * 1. If either token or newToken is the empty string, then throw a
+ * "SyntaxError" DOMException.
+ * 2. If either token or newToken contains any ASCII whitespace, then throw
+ * an "InvalidCharacterError" DOMException.
+ */
+ if (token === '' || newToken === '') {
+ throw new DOMException_1.SyntaxError("Cannot replace an empty token.");
+ }
+ else if (infra_1.codePoint.ASCIIWhiteSpace.test(token) || infra_1.codePoint.ASCIIWhiteSpace.test(newToken)) {
+ throw new DOMException_1.InvalidCharacterError("Token cannot contain whitespace.");
+ }
+ /**
+ * 3. If context object’s token set does not contain token, then return
+ * false.
+ */
+ if (!this._tokenSet.has(token))
+ return false;
+ /**
+ * 4. Replace token in context object’s token set with newToken.
+ * 5. Run the update steps.
+ * 6. Return true.
+ */
+ infra_1.set.replace(this._tokenSet, token, newToken);
+ algorithm_1.tokenList_updateSteps(this);
+ return true;
+ };
+ /** @inheritdoc */
+ DOMTokenListImpl.prototype.supports = function (token) {
+ /**
+ * 1. Let result be the return value of validation steps called with token.
+ * 2. Return result.
+ */
+ return algorithm_1.tokenList_validationSteps(this, token);
+ };
+ Object.defineProperty(DOMTokenListImpl.prototype, "value", {
+ /** @inheritdoc */
+ get: function () {
+ /**
+ * The value attribute must return the result of running context object’s
+ * serialize steps.
+ */
+ return algorithm_1.tokenList_serializeSteps(this);
+ },
+ set: function (value) {
+ /**
+ * Setting the value attribute must set an attribute value for the
+ * associated element using associated attribute’s local name and the given
+ * value.
+ */
+ algorithm_1.element_setAnAttributeValue(this._element, this._attribute._localName, value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Returns an iterator for the token set.
+ */
+ DOMTokenListImpl.prototype[Symbol.iterator] = function () {
+ var it = this._tokenSet[Symbol.iterator]();
+ return {
+ next: function () {
+ return it.next();
+ }
+ };
+ };
+ /**
+ * Creates a new `DOMTokenList`.
+ *
+ * @param element - associated element
+ * @param attribute - associated attribute
+ */
+ DOMTokenListImpl._create = function (element, attribute) {
+ return new DOMTokenListImpl(element, attribute);
+ };
+ return DOMTokenListImpl;
+}());
+exports.DOMTokenListImpl = DOMTokenListImpl;
+//# sourceMappingURL=DOMTokenListImpl.js.map
+
+/***/ }),
+
+/***/ 2585:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(7305);
+var NodeImpl_1 = __nccwpck_require__(1745);
+var WebIDLAlgorithm_1 = __nccwpck_require__(5457);
+/**
+ * Represents a document fragment in the XML tree.
+ */
+var DocumentFragmentImpl = /** @class */ (function (_super) {
+ __extends(DocumentFragmentImpl, _super);
+ /**
+ * Initializes a new instance of `DocumentFragment`.
+ *
+ * @param host - shadow root's host element
+ */
+ function DocumentFragmentImpl(host) {
+ if (host === void 0) { host = null; }
+ var _this = _super.call(this) || this;
+ _this._children = new Set();
+ _this._host = host;
+ return _this;
+ }
+ // MIXIN: NonElementParentNode
+ /* istanbul ignore next */
+ DocumentFragmentImpl.prototype.getElementById = function (elementId) { throw new Error("Mixin: NonElementParentNode not implemented."); };
+ Object.defineProperty(DocumentFragmentImpl.prototype, "children", {
+ // MIXIN: ParentNode
+ /* istanbul ignore next */
+ get: function () { throw new Error("Mixin: ParentNode not implemented."); },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentFragmentImpl.prototype, "firstElementChild", {
+ /* istanbul ignore next */
+ get: function () { throw new Error("Mixin: ParentNode not implemented."); },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentFragmentImpl.prototype, "lastElementChild", {
+ /* istanbul ignore next */
+ get: function () { throw new Error("Mixin: ParentNode not implemented."); },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentFragmentImpl.prototype, "childElementCount", {
+ /* istanbul ignore next */
+ get: function () { throw new Error("Mixin: ParentNode not implemented."); },
+ enumerable: true,
+ configurable: true
+ });
+ /* istanbul ignore next */
+ DocumentFragmentImpl.prototype.prepend = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ throw new Error("Mixin: ParentNode not implemented.");
+ };
+ /* istanbul ignore next */
+ DocumentFragmentImpl.prototype.append = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ throw new Error("Mixin: ParentNode not implemented.");
+ };
+ /* istanbul ignore next */
+ DocumentFragmentImpl.prototype.querySelector = function (selectors) { throw new Error("Mixin: ParentNode not implemented."); };
+ /* istanbul ignore next */
+ DocumentFragmentImpl.prototype.querySelectorAll = function (selectors) { throw new Error("Mixin: ParentNode not implemented."); };
+ /**
+ * Creates a new `DocumentFragment`.
+ *
+ * @param document - owner document
+ * @param host - shadow root's host element
+ */
+ DocumentFragmentImpl._create = function (document, host) {
+ if (host === void 0) { host = null; }
+ var node = new DocumentFragmentImpl(host);
+ node._nodeDocument = document;
+ return node;
+ };
+ return DocumentFragmentImpl;
+}(NodeImpl_1.NodeImpl));
+exports.DocumentFragmentImpl = DocumentFragmentImpl;
+/**
+ * Initialize prototype properties
+ */
+WebIDLAlgorithm_1.idl_defineConst(DocumentFragmentImpl.prototype, "_nodeType", interfaces_1.NodeType.DocumentFragment);
+//# sourceMappingURL=DocumentFragmentImpl.js.map
+
+/***/ }),
+
+/***/ 4333:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMImpl_1 = __nccwpck_require__(4177);
+var interfaces_1 = __nccwpck_require__(7305);
+var DOMException_1 = __nccwpck_require__(3166);
+var NodeImpl_1 = __nccwpck_require__(1745);
+var util_1 = __nccwpck_require__(5282);
+var util_2 = __nccwpck_require__(6195);
+var infra_1 = __nccwpck_require__(4251);
+var URLAlgorithm_1 = __nccwpck_require__(3568);
+var algorithm_1 = __nccwpck_require__(61);
+var WebIDLAlgorithm_1 = __nccwpck_require__(5457);
+/**
+ * Represents a document node.
+ */
+var DocumentImpl = /** @class */ (function (_super) {
+ __extends(DocumentImpl, _super);
+ /**
+ * Initializes a new instance of `Document`.
+ */
+ function DocumentImpl() {
+ var _this = _super.call(this) || this;
+ _this._children = new Set();
+ _this._encoding = {
+ name: "UTF-8",
+ labels: ["unicode-1-1-utf-8", "utf-8", "utf8"]
+ };
+ _this._contentType = 'application/xml';
+ _this._URL = {
+ scheme: "about",
+ username: "",
+ password: "",
+ host: null,
+ port: null,
+ path: ["blank"],
+ query: null,
+ fragment: null,
+ _cannotBeABaseURLFlag: true,
+ _blobURLEntry: null
+ };
+ _this._origin = null;
+ _this._type = "xml";
+ _this._mode = "no-quirks";
+ _this._documentElement = null;
+ _this._hasNamespaces = false;
+ _this._nodeDocumentOverwrite = null;
+ return _this;
+ }
+ Object.defineProperty(DocumentImpl.prototype, "_nodeDocument", {
+ get: function () { return this._nodeDocumentOverwrite || this; },
+ set: function (val) { this._nodeDocumentOverwrite = val; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentImpl.prototype, "implementation", {
+ /** @inheritdoc */
+ get: function () {
+ /**
+ * The implementation attribute’s getter must return the DOMImplementation
+ * object that is associated with the document.
+ */
+ return this._implementation || (this._implementation = algorithm_1.create_domImplementation(this));
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentImpl.prototype, "URL", {
+ /** @inheritdoc */
+ get: function () {
+ /**
+ * The URL attribute’s getter and documentURI attribute’s getter must return
+ * the URL, serialized.
+ * See: https://url.spec.whatwg.org/#concept-url-serializer
+ */
+ return URLAlgorithm_1.urlSerializer(this._URL);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentImpl.prototype, "documentURI", {
+ /** @inheritdoc */
+ get: function () { return this.URL; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentImpl.prototype, "origin", {
+ /** @inheritdoc */
+ get: function () {
+ return "null";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentImpl.prototype, "compatMode", {
+ /** @inheritdoc */
+ get: function () {
+ /**
+ * The compatMode attribute’s getter must return "BackCompat" if context
+ * object’s mode is "quirks", and "CSS1Compat" otherwise.
+ */
+ return this._mode === "quirks" ? "BackCompat" : "CSS1Compat";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentImpl.prototype, "characterSet", {
+ /** @inheritdoc */
+ get: function () {
+ /**
+ * The characterSet attribute’s getter, charset attribute’s getter, and
+ * inputEncoding attribute’s getter, must return context object’s
+ * encoding’s name.
+ */
+ return this._encoding.name;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentImpl.prototype, "charset", {
+ /** @inheritdoc */
+ get: function () { return this._encoding.name; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentImpl.prototype, "inputEncoding", {
+ /** @inheritdoc */
+ get: function () { return this._encoding.name; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentImpl.prototype, "contentType", {
+ /** @inheritdoc */
+ get: function () {
+ /**
+ * The contentType attribute’s getter must return the content type.
+ */
+ return this._contentType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentImpl.prototype, "doctype", {
+ /** @inheritdoc */
+ get: function () {
+ var e_1, _a;
+ try {
+ /**
+ * The doctype attribute’s getter must return the child of the document
+ * that is a doctype, and null otherwise.
+ */
+ for (var _b = __values(this._children), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var child = _c.value;
+ if (util_1.Guard.isDocumentTypeNode(child))
+ return child;
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ return null;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentImpl.prototype, "documentElement", {
+ /** @inheritdoc */
+ get: function () {
+ /**
+ * The documentElement attribute’s getter must return the document element.
+ */
+ return this._documentElement;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ DocumentImpl.prototype.getElementsByTagName = function (qualifiedName) {
+ /**
+ * The getElementsByTagName(qualifiedName) method, when invoked, must return
+ * the list of elements with qualified name qualifiedName for the context object.
+ */
+ return algorithm_1.node_listOfElementsWithQualifiedName(qualifiedName, this);
+ };
+ /** @inheritdoc */
+ DocumentImpl.prototype.getElementsByTagNameNS = function (namespace, localName) {
+ /**
+ * The getElementsByTagNameNS(namespace, localName) method, when invoked,
+ * must return the list of elements with namespace namespace and local name
+ * localName for the context object.
+ */
+ return algorithm_1.node_listOfElementsWithNamespace(namespace, localName, this);
+ };
+ /** @inheritdoc */
+ DocumentImpl.prototype.getElementsByClassName = function (classNames) {
+ /**
+ * The getElementsByClassName(classNames) method, when invoked, must return
+ * the list of elements with class names classNames for the context object.
+ */
+ return algorithm_1.node_listOfElementsWithClassNames(classNames, this);
+ };
+ /** @inheritdoc */
+ DocumentImpl.prototype.createElement = function (localName, options) {
+ /**
+ * 1. If localName does not match the Name production, then throw an
+ * "InvalidCharacterError" DOMException.
+ * 2. If the context object is an HTML document, then set localName to
+ * localName in ASCII lowercase.
+ * 3. Let is be null.
+ * 4. If options is a dictionary and options’s is is present, then set is
+ * to it.
+ * 5. Let namespace be the HTML namespace, if the context object is an
+ * HTML document or context object’s content type is
+ * "application/xhtml+xml", and null otherwise.
+ * 6. Return the result of creating an element given the context object,
+ * localName, namespace, null, is, and with the synchronous custom elements
+ * flag set.
+ */
+ if (!algorithm_1.xml_isName(localName))
+ throw new DOMException_1.InvalidCharacterError();
+ if (this._type === "html")
+ localName = localName.toLowerCase();
+ var is = null;
+ if (options !== undefined) {
+ if (util_2.isString(options)) {
+ is = options;
+ }
+ else {
+ is = options.is;
+ }
+ }
+ var namespace = (this._type === "html" || this._contentType === "application/xhtml+xml") ?
+ infra_1.namespace.HTML : null;
+ return algorithm_1.element_createAnElement(this, localName, namespace, null, is, true);
+ };
+ /** @inheritdoc */
+ DocumentImpl.prototype.createElementNS = function (namespace, qualifiedName, options) {
+ /**
+ * The createElementNS(namespace, qualifiedName, options) method, when
+ * invoked, must return the result of running the internal createElementNS
+ * steps, given context object, namespace, qualifiedName, and options.
+ */
+ return algorithm_1.document_internalCreateElementNS(this, namespace, qualifiedName, options);
+ };
+ /** @inheritdoc */
+ DocumentImpl.prototype.createDocumentFragment = function () {
+ /**
+ * The createDocumentFragment() method, when invoked, must return a new
+ * DocumentFragment node with its node document set to the context object.
+ */
+ return algorithm_1.create_documentFragment(this);
+ };
+ /** @inheritdoc */
+ DocumentImpl.prototype.createTextNode = function (data) {
+ /**
+ * The createTextNode(data) method, when invoked, must return a new Text
+ * node with its data set to data and node document set to the context object.
+ */
+ return algorithm_1.create_text(this, data);
+ };
+ /** @inheritdoc */
+ DocumentImpl.prototype.createCDATASection = function (data) {
+ /**
+ * 1. If context object is an HTML document, then throw a
+ * "NotSupportedError" DOMException.
+ * 2. If data contains the string "]]>", then throw an
+ * "InvalidCharacterError" DOMException.
+ * 3. Return a new CDATASection node with its data set to data and node
+ * document set to the context object.
+ */
+ if (this._type === "html")
+ throw new DOMException_1.NotSupportedError();
+ if (data.indexOf(']]>') !== -1)
+ throw new DOMException_1.InvalidCharacterError();
+ return algorithm_1.create_cdataSection(this, data);
+ };
+ /** @inheritdoc */
+ DocumentImpl.prototype.createComment = function (data) {
+ /**
+ * The createComment(data) method, when invoked, must return a new Comment
+ * node with its data set to data and node document set to the context object.
+ */
+ return algorithm_1.create_comment(this, data);
+ };
+ /** @inheritdoc */
+ DocumentImpl.prototype.createProcessingInstruction = function (target, data) {
+ /**
+ * 1. If target does not match the Name production, then throw an
+ * "InvalidCharacterError" DOMException.
+ * 2. If data contains the string "?>", then throw an
+ * "InvalidCharacterError" DOMException.
+ * 3. Return a new ProcessingInstruction node, with target set to target,
+ * data set to data, and node document set to the context object.
+ */
+ if (!algorithm_1.xml_isName(target))
+ throw new DOMException_1.InvalidCharacterError();
+ if (data.indexOf("?>") !== -1)
+ throw new DOMException_1.InvalidCharacterError();
+ return algorithm_1.create_processingInstruction(this, target, data);
+ };
+ /** @inheritdoc */
+ DocumentImpl.prototype.importNode = function (node, deep) {
+ if (deep === void 0) { deep = false; }
+ /**
+ * 1. If node is a document or shadow root, then throw a "NotSupportedError" DOMException.
+ */
+ if (util_1.Guard.isDocumentNode(node) || util_1.Guard.isShadowRoot(node))
+ throw new DOMException_1.NotSupportedError();
+ /**
+ * 2. Return a clone of node, with context object and the clone children flag set if deep is true.
+ */
+ return algorithm_1.node_clone(node, this, deep);
+ };
+ /** @inheritdoc */
+ DocumentImpl.prototype.adoptNode = function (node) {
+ /**
+ * 1. If node is a document, then throw a "NotSupportedError" DOMException.
+ */
+ if (util_1.Guard.isDocumentNode(node))
+ throw new DOMException_1.NotSupportedError();
+ /**
+ * 2. If node is a shadow root, then throw a "HierarchyRequestError" DOMException.
+ */
+ if (util_1.Guard.isShadowRoot(node))
+ throw new DOMException_1.HierarchyRequestError();
+ /**
+ * 3. Adopt node into the context object.
+ * 4. Return node.
+ */
+ algorithm_1.document_adopt(node, this);
+ return node;
+ };
+ /** @inheritdoc */
+ DocumentImpl.prototype.createAttribute = function (localName) {
+ /**
+ * 1. If localName does not match the Name production in XML, then throw
+ * an "InvalidCharacterError" DOMException.
+ * 2. If the context object is an HTML document, then set localName to
+ * localName in ASCII lowercase.
+ * 3. Return a new attribute whose local name is localName and node document
+ * is context object.
+ */
+ if (!algorithm_1.xml_isName(localName))
+ throw new DOMException_1.InvalidCharacterError();
+ if (this._type === "html") {
+ localName = localName.toLowerCase();
+ }
+ var attr = algorithm_1.create_attr(this, localName);
+ return attr;
+ };
+ /** @inheritdoc */
+ DocumentImpl.prototype.createAttributeNS = function (namespace, qualifiedName) {
+ /**
+ * 1. Let namespace, prefix, and localName be the result of passing
+ * namespace and qualifiedName to validate and extract.
+ * 2. Return a new attribute whose namespace is namespace, namespace prefix
+ * is prefix, local name is localName, and node document is context object.
+ */
+ var _a = __read(algorithm_1.namespace_validateAndExtract(namespace, qualifiedName), 3), ns = _a[0], prefix = _a[1], localName = _a[2];
+ var attr = algorithm_1.create_attr(this, localName);
+ attr._namespace = ns;
+ attr._namespacePrefix = prefix;
+ return attr;
+ };
+ /** @inheritdoc */
+ DocumentImpl.prototype.createEvent = function (eventInterface) {
+ return algorithm_1.event_createLegacyEvent(eventInterface);
+ };
+ /** @inheritdoc */
+ DocumentImpl.prototype.createRange = function () {
+ /**
+ * The createRange() method, when invoked, must return a new live range
+ * with (context object, 0) as its start and end.
+ */
+ var range = algorithm_1.create_range();
+ range._start = [this, 0];
+ range._end = [this, 0];
+ return range;
+ };
+ /** @inheritdoc */
+ DocumentImpl.prototype.createNodeIterator = function (root, whatToShow, filter) {
+ if (whatToShow === void 0) { whatToShow = interfaces_1.WhatToShow.All; }
+ if (filter === void 0) { filter = null; }
+ /**
+ * 1. Let iterator be a new NodeIterator object.
+ * 2. Set iterator’s root and iterator’s reference to root.
+ * 3. Set iterator’s pointer before reference to true.
+ * 4. Set iterator’s whatToShow to whatToShow.
+ * 5. Set iterator’s filter to filter.
+ * 6. Return iterator.
+ */
+ var iterator = algorithm_1.create_nodeIterator(root, root, true);
+ iterator._whatToShow = whatToShow;
+ iterator._iteratorCollection = algorithm_1.create_nodeList(root);
+ if (util_2.isFunction(filter)) {
+ iterator._filter = algorithm_1.create_nodeFilter();
+ iterator._filter.acceptNode = filter;
+ }
+ else {
+ iterator._filter = filter;
+ }
+ return iterator;
+ };
+ /** @inheritdoc */
+ DocumentImpl.prototype.createTreeWalker = function (root, whatToShow, filter) {
+ if (whatToShow === void 0) { whatToShow = interfaces_1.WhatToShow.All; }
+ if (filter === void 0) { filter = null; }
+ /**
+ * 1. Let walker be a new TreeWalker object.
+ * 2. Set walker’s root and walker’s current to root.
+ * 3. Set walker’s whatToShow to whatToShow.
+ * 4. Set walker’s filter to filter.
+ * 5. Return walker.
+ */
+ var walker = algorithm_1.create_treeWalker(root, root);
+ walker._whatToShow = whatToShow;
+ if (util_2.isFunction(filter)) {
+ walker._filter = algorithm_1.create_nodeFilter();
+ walker._filter.acceptNode = filter;
+ }
+ else {
+ walker._filter = filter;
+ }
+ return walker;
+ };
+ /**
+ * Gets the parent event target for the given event.
+ *
+ * @param event - an event
+ */
+ DocumentImpl.prototype._getTheParent = function (event) {
+ /**
+ * TODO: Implement realms
+ * A document’s get the parent algorithm, given an event, returns null if
+ * event’s type attribute value is "load" or document does not have a
+ * browsing context, and the document’s relevant global object otherwise.
+ */
+ if (event._type === "load") {
+ return null;
+ }
+ else {
+ return DOMImpl_1.dom.window;
+ }
+ };
+ // MIXIN: NonElementParentNode
+ /* istanbul ignore next */
+ DocumentImpl.prototype.getElementById = function (elementId) { throw new Error("Mixin: NonElementParentNode not implemented."); };
+ Object.defineProperty(DocumentImpl.prototype, "children", {
+ // MIXIN: DocumentOrShadowRoot
+ // No elements
+ // MIXIN: ParentNode
+ /* istanbul ignore next */
+ get: function () { throw new Error("Mixin: ParentNode not implemented."); },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentImpl.prototype, "firstElementChild", {
+ /* istanbul ignore next */
+ get: function () { throw new Error("Mixin: ParentNode not implemented."); },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentImpl.prototype, "lastElementChild", {
+ /* istanbul ignore next */
+ get: function () { throw new Error("Mixin: ParentNode not implemented."); },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentImpl.prototype, "childElementCount", {
+ /* istanbul ignore next */
+ get: function () { throw new Error("Mixin: ParentNode not implemented."); },
+ enumerable: true,
+ configurable: true
+ });
+ /* istanbul ignore next */
+ DocumentImpl.prototype.prepend = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ throw new Error("Mixin: ParentNode not implemented.");
+ };
+ /* istanbul ignore next */
+ DocumentImpl.prototype.append = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ throw new Error("Mixin: ParentNode not implemented.");
+ };
+ /* istanbul ignore next */
+ DocumentImpl.prototype.querySelector = function (selectors) { throw new Error("Mixin: ParentNode not implemented."); };
+ /* istanbul ignore next */
+ DocumentImpl.prototype.querySelectorAll = function (selectors) { throw new Error("Mixin: ParentNode not implemented."); };
+ return DocumentImpl;
+}(NodeImpl_1.NodeImpl));
+exports.DocumentImpl = DocumentImpl;
+/**
+ * Initialize prototype properties
+ */
+WebIDLAlgorithm_1.idl_defineConst(DocumentImpl.prototype, "_nodeType", interfaces_1.NodeType.Document);
+//# sourceMappingURL=DocumentImpl.js.map
+
+/***/ }),
+
+/***/ 5274:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Represents a mixin for an interface to be used to share APIs between
+ * documents and shadow roots. This mixin is implemented by
+ * {@link Document} and {@link ShadowRoot}.
+ *
+ * _Note:_ The DocumentOrShadowRoot mixin is expected to be used by other
+ * standards that want to define APIs shared between documents and shadow roots.
+ */
+var DocumentOrShadowRootImpl = /** @class */ (function () {
+ function DocumentOrShadowRootImpl() {
+ }
+ return DocumentOrShadowRootImpl;
+}());
+exports.DocumentOrShadowRootImpl = DocumentOrShadowRootImpl;
+//# sourceMappingURL=DocumentOrShadowRootImpl.js.map
+
+/***/ }),
+
+/***/ 3173:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(7305);
+var NodeImpl_1 = __nccwpck_require__(1745);
+var WebIDLAlgorithm_1 = __nccwpck_require__(5457);
+/**
+ * Represents an object providing methods which are not dependent on
+ * any particular document
+ */
+var DocumentTypeImpl = /** @class */ (function (_super) {
+ __extends(DocumentTypeImpl, _super);
+ /**
+ * Initializes a new instance of `DocumentType`.
+ *
+ * @param name - name of the node
+ * @param publicId - `PUBLIC` identifier
+ * @param systemId - `SYSTEM` identifier
+ */
+ function DocumentTypeImpl(name, publicId, systemId) {
+ var _this = _super.call(this) || this;
+ _this._name = '';
+ _this._publicId = '';
+ _this._systemId = '';
+ _this._name = name;
+ _this._publicId = publicId;
+ _this._systemId = systemId;
+ return _this;
+ }
+ Object.defineProperty(DocumentTypeImpl.prototype, "name", {
+ /** @inheritdoc */
+ get: function () { return this._name; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentTypeImpl.prototype, "publicId", {
+ /** @inheritdoc */
+ get: function () { return this._publicId; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DocumentTypeImpl.prototype, "systemId", {
+ /** @inheritdoc */
+ get: function () { return this._systemId; },
+ enumerable: true,
+ configurable: true
+ });
+ // MIXIN: ChildNode
+ /* istanbul ignore next */
+ DocumentTypeImpl.prototype.before = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ throw new Error("Mixin: ChildNode not implemented.");
+ };
+ /* istanbul ignore next */
+ DocumentTypeImpl.prototype.after = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ throw new Error("Mixin: ChildNode not implemented.");
+ };
+ /* istanbul ignore next */
+ DocumentTypeImpl.prototype.replaceWith = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ throw new Error("Mixin: ChildNode not implemented.");
+ };
+ /* istanbul ignore next */
+ DocumentTypeImpl.prototype.remove = function () { throw new Error("Mixin: ChildNode not implemented."); };
+ /**
+ * Creates a new `DocumentType`.
+ *
+ * @param document - owner document
+ * @param name - name of the node
+ * @param publicId - `PUBLIC` identifier
+ * @param systemId - `SYSTEM` identifier
+ */
+ DocumentTypeImpl._create = function (document, name, publicId, systemId) {
+ if (publicId === void 0) { publicId = ''; }
+ if (systemId === void 0) { systemId = ''; }
+ var node = new DocumentTypeImpl(name, publicId, systemId);
+ node._nodeDocument = document;
+ return node;
+ };
+ return DocumentTypeImpl;
+}(NodeImpl_1.NodeImpl));
+exports.DocumentTypeImpl = DocumentTypeImpl;
+/**
+ * Initialize prototype properties
+ */
+WebIDLAlgorithm_1.idl_defineConst(DocumentTypeImpl.prototype, "_nodeType", interfaces_1.NodeType.DocumentType);
+//# sourceMappingURL=DocumentTypeImpl.js.map
+
+/***/ }),
+
+/***/ 5975:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(7305);
+var NodeImpl_1 = __nccwpck_require__(1745);
+var DOMException_1 = __nccwpck_require__(3166);
+var infra_1 = __nccwpck_require__(4251);
+var algorithm_1 = __nccwpck_require__(61);
+var WebIDLAlgorithm_1 = __nccwpck_require__(5457);
+/**
+ * Represents an element node.
+ */
+var ElementImpl = /** @class */ (function (_super) {
+ __extends(ElementImpl, _super);
+ /**
+ * Initializes a new instance of `Element`.
+ */
+ function ElementImpl() {
+ var _this = _super.call(this) || this;
+ _this._children = new Set();
+ _this._namespace = null;
+ _this._namespacePrefix = null;
+ _this._localName = "";
+ _this._customElementState = "undefined";
+ _this._customElementDefinition = null;
+ _this._is = null;
+ _this._shadowRoot = null;
+ _this._attributeList = algorithm_1.create_namedNodeMap(_this);
+ _this._attributeChangeSteps = [];
+ _this._name = '';
+ _this._assignedSlot = null;
+ return _this;
+ }
+ Object.defineProperty(ElementImpl.prototype, "namespaceURI", {
+ /** @inheritdoc */
+ get: function () { return this._namespace; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ElementImpl.prototype, "prefix", {
+ /** @inheritdoc */
+ get: function () { return this._namespacePrefix; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ElementImpl.prototype, "localName", {
+ /** @inheritdoc */
+ get: function () { return this._localName; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ElementImpl.prototype, "tagName", {
+ /** @inheritdoc */
+ get: function () { return this._htmlUppercasedQualifiedName; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ElementImpl.prototype, "id", {
+ /** @inheritdoc */
+ get: function () {
+ return algorithm_1.element_getAnAttributeValue(this, "id");
+ },
+ set: function (value) {
+ algorithm_1.element_setAnAttributeValue(this, "id", value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ElementImpl.prototype, "className", {
+ /** @inheritdoc */
+ get: function () {
+ return algorithm_1.element_getAnAttributeValue(this, "class");
+ },
+ set: function (value) {
+ algorithm_1.element_setAnAttributeValue(this, "class", value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ElementImpl.prototype, "classList", {
+ /** @inheritdoc */
+ get: function () {
+ var attr = algorithm_1.element_getAnAttributeByName("class", this);
+ if (attr === null) {
+ attr = algorithm_1.create_attr(this._nodeDocument, "class");
+ }
+ return algorithm_1.create_domTokenList(this, attr);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ElementImpl.prototype, "slot", {
+ /** @inheritdoc */
+ get: function () {
+ return algorithm_1.element_getAnAttributeValue(this, "slot");
+ },
+ set: function (value) {
+ algorithm_1.element_setAnAttributeValue(this, "slot", value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ ElementImpl.prototype.hasAttributes = function () {
+ return this._attributeList.length !== 0;
+ };
+ Object.defineProperty(ElementImpl.prototype, "attributes", {
+ /** @inheritdoc */
+ get: function () { return this._attributeList; },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ ElementImpl.prototype.getAttributeNames = function () {
+ var e_1, _a;
+ /**
+ * The getAttributeNames() method, when invoked, must return the qualified
+ * names of the attributes in context object’s attribute list, in order,
+ * and a new list otherwise.
+ */
+ var names = [];
+ try {
+ for (var _b = __values(this._attributeList), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var attr = _c.value;
+ names.push(attr._qualifiedName);
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ return names;
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.getAttribute = function (qualifiedName) {
+ /**
+ * 1. Let attr be the result of getting an attribute given qualifiedName
+ * and the context object.
+ * 2. If attr is null, return null.
+ * 3. Return attr’s value.
+ */
+ var attr = algorithm_1.element_getAnAttributeByName(qualifiedName, this);
+ return (attr ? attr._value : null);
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.getAttributeNS = function (namespace, localName) {
+ /**
+ * 1. Let attr be the result of getting an attribute given namespace,
+ * localName, and the context object.
+ * 2. If attr is null, return null.
+ * 3. Return attr’s value.
+ */
+ var attr = algorithm_1.element_getAnAttributeByNamespaceAndLocalName(namespace, localName, this);
+ return (attr ? attr._value : null);
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.setAttribute = function (qualifiedName, value) {
+ /**
+ * 1. If qualifiedName does not match the Name production in XML, then
+ * throw an "InvalidCharacterError" DOMException.
+ */
+ if (!algorithm_1.xml_isName(qualifiedName))
+ throw new DOMException_1.InvalidCharacterError();
+ /**
+ * 2. If the context object is in the HTML namespace and its node document
+ * is an HTML document, then set qualifiedName to qualifiedName in ASCII
+ * lowercase.
+ */
+ if (this._namespace === infra_1.namespace.HTML && this._nodeDocument._type === "html") {
+ qualifiedName = qualifiedName.toLowerCase();
+ }
+ /**
+ * 3. Let attribute be the first attribute in context object’s attribute
+ * list whose qualified name is qualifiedName, and null otherwise.
+ */
+ var attribute = null;
+ for (var i = 0; i < this._attributeList.length; i++) {
+ var attr = this._attributeList[i];
+ if (attr._qualifiedName === qualifiedName) {
+ attribute = attr;
+ break;
+ }
+ }
+ /**
+ * 4. If attribute is null, create an attribute whose local name is
+ * qualifiedName, value is value, and node document is context object’s
+ * node document, then append this attribute to context object, and
+ * then return.
+ */
+ if (attribute === null) {
+ attribute = algorithm_1.create_attr(this._nodeDocument, qualifiedName);
+ attribute._value = value;
+ algorithm_1.element_append(attribute, this);
+ return;
+ }
+ /**
+ * 5. Change attribute from context object to value.
+ */
+ algorithm_1.element_change(attribute, this, value);
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.setAttributeNS = function (namespace, qualifiedName, value) {
+ /**
+ * 1. Let namespace, prefix, and localName be the result of passing
+ * namespace and qualifiedName to validate and extract.
+ * 2. Set an attribute value for the context object using localName, value,
+ * and also prefix and namespace.
+ */
+ var _a = __read(algorithm_1.namespace_validateAndExtract(namespace, qualifiedName), 3), ns = _a[0], prefix = _a[1], localName = _a[2];
+ algorithm_1.element_setAnAttributeValue(this, localName, value, prefix, ns);
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.removeAttribute = function (qualifiedName) {
+ /**
+ * The removeAttribute(qualifiedName) method, when invoked, must remove an
+ * attribute given qualifiedName and the context object, and then return
+ * undefined.
+ */
+ algorithm_1.element_removeAnAttributeByName(qualifiedName, this);
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.removeAttributeNS = function (namespace, localName) {
+ /**
+ * The removeAttributeNS(namespace, localName) method, when invoked, must
+ * remove an attribute given namespace, localName, and context object, and
+ * then return undefined.
+ */
+ algorithm_1.element_removeAnAttributeByNamespaceAndLocalName(namespace, localName, this);
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.hasAttribute = function (qualifiedName) {
+ /**
+ * 1. If the context object is in the HTML namespace and its node document
+ * is an HTML document, then set qualifiedName to qualifiedName in ASCII
+ * lowercase.
+ * 2. Return true if the context object has an attribute whose qualified
+ * name is qualifiedName, and false otherwise.
+ */
+ if (this._namespace === infra_1.namespace.HTML && this._nodeDocument._type === "html") {
+ qualifiedName = qualifiedName.toLowerCase();
+ }
+ for (var i = 0; i < this._attributeList.length; i++) {
+ var attr = this._attributeList[i];
+ if (attr._qualifiedName === qualifiedName) {
+ return true;
+ }
+ }
+ return false;
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.toggleAttribute = function (qualifiedName, force) {
+ /**
+ * 1. If qualifiedName does not match the Name production in XML, then
+ * throw an "InvalidCharacterError" DOMException.
+ */
+ if (!algorithm_1.xml_isName(qualifiedName))
+ throw new DOMException_1.InvalidCharacterError();
+ /**
+ * 2. If the context object is in the HTML namespace and its node document
+ * is an HTML document, then set qualifiedName to qualifiedName in ASCII
+ * lowercase.
+ */
+ if (this._namespace === infra_1.namespace.HTML && this._nodeDocument._type === "html") {
+ qualifiedName = qualifiedName.toLowerCase();
+ }
+ /**
+ * 3. Let attribute be the first attribute in the context object’s attribute
+ * list whose qualified name is qualifiedName, and null otherwise.
+ */
+ var attribute = null;
+ for (var i = 0; i < this._attributeList.length; i++) {
+ var attr = this._attributeList[i];
+ if (attr._qualifiedName === qualifiedName) {
+ attribute = attr;
+ break;
+ }
+ }
+ if (attribute === null) {
+ /**
+ * 4. If attribute is null, then:
+ * 4.1. If force is not given or is true, create an attribute whose local
+ * name is qualifiedName, value is the empty string, and node document is
+ * the context object’s node document, then append this attribute to the
+ * context object, and then return true.
+ * 4.2. Return false.
+ */
+ if (force === undefined || force === true) {
+ attribute = algorithm_1.create_attr(this._nodeDocument, qualifiedName);
+ attribute._value = '';
+ algorithm_1.element_append(attribute, this);
+ return true;
+ }
+ return false;
+ }
+ else if (force === undefined || force === false) {
+ /**
+ * 5. Otherwise, if force is not given or is false, remove an attribute
+ * given qualifiedName and the context object, and then return false.
+ */
+ algorithm_1.element_removeAnAttributeByName(qualifiedName, this);
+ return false;
+ }
+ /**
+ * 6. Return true.
+ */
+ return true;
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.hasAttributeNS = function (namespace, localName) {
+ /**
+ * 1. If namespace is the empty string, set it to null.
+ * 2. Return true if the context object has an attribute whose namespace is
+ * namespace and local name is localName, and false otherwise.
+ */
+ var ns = namespace || null;
+ for (var i = 0; i < this._attributeList.length; i++) {
+ var attr = this._attributeList[i];
+ if (attr._namespace === ns && attr._localName === localName) {
+ return true;
+ }
+ }
+ return false;
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.getAttributeNode = function (qualifiedName) {
+ /**
+ * The getAttributeNode(qualifiedName) method, when invoked, must return the
+ * result of getting an attribute given qualifiedName and context object.
+ */
+ return algorithm_1.element_getAnAttributeByName(qualifiedName, this);
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.getAttributeNodeNS = function (namespace, localName) {
+ /**
+ * The getAttributeNodeNS(namespace, localName) method, when invoked, must
+ * return the result of getting an attribute given namespace, localName, and
+ * the context object.
+ */
+ return algorithm_1.element_getAnAttributeByNamespaceAndLocalName(namespace, localName, this);
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.setAttributeNode = function (attr) {
+ /**
+ * The setAttributeNode(attr) and setAttributeNodeNS(attr) methods, when
+ * invoked, must return the result of setting an attribute given attr and
+ * the context object.
+ */
+ return algorithm_1.element_setAnAttribute(attr, this);
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.setAttributeNodeNS = function (attr) {
+ return algorithm_1.element_setAnAttribute(attr, this);
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.removeAttributeNode = function (attr) {
+ /**
+ * 1. If context object’s attribute list does not contain attr, then throw
+ * a "NotFoundError" DOMException.
+ * 2. Remove attr from context object.
+ * 3. Return attr.
+ */
+ var found = false;
+ for (var i = 0; i < this._attributeList.length; i++) {
+ var attribute = this._attributeList[i];
+ if (attribute === attr) {
+ found = true;
+ break;
+ }
+ }
+ if (!found)
+ throw new DOMException_1.NotFoundError();
+ algorithm_1.element_remove(attr, this);
+ return attr;
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.attachShadow = function (init) {
+ /**
+ * 1. If context object’s namespace is not the HTML namespace, then throw a
+ * "NotSupportedError" DOMException.
+ */
+ if (this._namespace !== infra_1.namespace.HTML)
+ throw new DOMException_1.NotSupportedError();
+ /**
+ * 2. If context object’s local name is not a valid custom element name,
+ * "article", "aside", "blockquote", "body", "div", "footer", "h1", "h2",
+ * "h3", "h4", "h5", "h6", "header", "main" "nav", "p", "section",
+ * or "span", then throw a "NotSupportedError" DOMException.
+ */
+ if (!algorithm_1.customElement_isValidCustomElementName(this._localName) &&
+ !algorithm_1.customElement_isValidShadowHostName(this._localName))
+ throw new DOMException_1.NotSupportedError();
+ /**
+ * 3. If context object’s local name is a valid custom element name,
+ * or context object’s is value is not null, then:
+ * 3.1. Let definition be the result of looking up a custom element
+ * definition given context object’s node document, its namespace, its
+ * local name, and its is value.
+ * 3.2. If definition is not null and definition’s disable shadow is true,
+ * then throw a "NotSupportedError" DOMException.
+ */
+ if (algorithm_1.customElement_isValidCustomElementName(this._localName) || this._is !== null) {
+ var definition = algorithm_1.customElement_lookUpACustomElementDefinition(this._nodeDocument, this._namespace, this._localName, this._is);
+ if (definition !== null && definition.disableShadow === true) {
+ throw new DOMException_1.NotSupportedError();
+ }
+ }
+ /**
+ * 4. If context object is a shadow host, then throw an "NotSupportedError"
+ * DOMException.
+ */
+ if (this._shadowRoot !== null)
+ throw new DOMException_1.NotSupportedError();
+ /**
+ * 5. Let shadow be a new shadow root whose node document is context
+ * object’s node document, host is context object, and mode is init’s mode.
+ * 6. Set context object’s shadow root to shadow.
+ * 7. Return shadow.
+ */
+ var shadow = algorithm_1.create_shadowRoot(this._nodeDocument, this);
+ shadow._mode = init.mode;
+ this._shadowRoot = shadow;
+ return shadow;
+ };
+ Object.defineProperty(ElementImpl.prototype, "shadowRoot", {
+ /** @inheritdoc */
+ get: function () {
+ /**
+ * 1. Let shadow be context object’s shadow root.
+ * 2. If shadow is null or its mode is "closed", then return null.
+ * 3. Return shadow.
+ */
+ var shadow = this._shadowRoot;
+ if (shadow === null || shadow.mode === "closed")
+ return null;
+ else
+ return shadow;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ ElementImpl.prototype.closest = function (selectors) {
+ /**
+ * TODO: Selectors
+ * 1. Let s be the result of parse a selector from selectors. [SELECTORS4]
+ * 2. If s is failure, throw a "SyntaxError" DOMException.
+ * 3. Let elements be context object’s inclusive ancestors that are
+ * elements, in reverse tree order.
+ * 4. For each element in elements, if match a selector against an element,
+ * using s, element, and :scope element context object, returns success,
+ * return element. [SELECTORS4]
+ * 5. Return null.
+ */
+ throw new DOMException_1.NotImplementedError();
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.matches = function (selectors) {
+ /**
+ * TODO: Selectors
+ * 1. Let s be the result of parse a selector from selectors. [SELECTORS4]
+ * 2. If s is failure, throw a "SyntaxError" DOMException.
+ * 3. Return true if the result of match a selector against an element,
+ * using s, element, and :scope element context object, returns success,
+ * and false otherwise. [SELECTORS4]
+ */
+ throw new DOMException_1.NotImplementedError();
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.webkitMatchesSelector = function (selectors) {
+ return this.matches(selectors);
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.getElementsByTagName = function (qualifiedName) {
+ /**
+ * The getElementsByTagName(qualifiedName) method, when invoked, must return
+ * the list of elements with qualified name qualifiedName for context
+ * object.
+ */
+ return algorithm_1.node_listOfElementsWithQualifiedName(qualifiedName, this);
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.getElementsByTagNameNS = function (namespace, localName) {
+ /**
+ * The getElementsByTagNameNS(namespace, localName) method, when invoked,
+ * must return the list of elements with namespace namespace and local name
+ * localName for context object.
+ */
+ return algorithm_1.node_listOfElementsWithNamespace(namespace, localName, this);
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.getElementsByClassName = function (classNames) {
+ /**
+ * The getElementsByClassName(classNames) method, when invoked, must return
+ * the list of elements with class names classNames for context object.
+ */
+ return algorithm_1.node_listOfElementsWithClassNames(classNames, this);
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.insertAdjacentElement = function (where, element) {
+ /**
+ * The insertAdjacentElement(where, element) method, when invoked, must
+ * return the result of running insert adjacent, given context object,
+ * where, and element.
+ */
+ return algorithm_1.element_insertAdjacent(this, where, element);
+ };
+ /** @inheritdoc */
+ ElementImpl.prototype.insertAdjacentText = function (where, data) {
+ /**
+ * 1. Let text be a new Text node whose data is data and node document is
+ * context object’s node document.
+ * 2. Run insert adjacent, given context object, where, and text.
+ */
+ var text = algorithm_1.create_text(this._nodeDocument, data);
+ algorithm_1.element_insertAdjacent(this, where, text);
+ };
+ Object.defineProperty(ElementImpl.prototype, "_qualifiedName", {
+ /**
+ * Returns the qualified name.
+ */
+ get: function () {
+ /**
+ * An element’s qualified name is its local name if its namespace prefix is
+ * null, and its namespace prefix, followed by ":", followed by its
+ * local name, otherwise.
+ */
+ return (this._namespacePrefix ?
+ this._namespacePrefix + ':' + this._localName :
+ this._localName);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ElementImpl.prototype, "_htmlUppercasedQualifiedName", {
+ /**
+ * Returns the upper-cased qualified name for a html element.
+ */
+ get: function () {
+ /**
+ * 1. Let qualifiedName be context object’s qualified name.
+ * 2. If the context object is in the HTML namespace and its node document
+ * is an HTML document, then set qualifiedName to qualifiedName in ASCII
+ * uppercase.
+ * 3. Return qualifiedName.
+ */
+ var qualifiedName = this._qualifiedName;
+ if (this._namespace === infra_1.namespace.HTML && this._nodeDocument._type === "html") {
+ qualifiedName = qualifiedName.toUpperCase();
+ }
+ return qualifiedName;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ElementImpl.prototype, "children", {
+ // MIXIN: ParentNode
+ /* istanbul ignore next */
+ get: function () { throw new Error("Mixin: ParentNode not implemented."); },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ElementImpl.prototype, "firstElementChild", {
+ /* istanbul ignore next */
+ get: function () { throw new Error("Mixin: ParentNode not implemented."); },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ElementImpl.prototype, "lastElementChild", {
+ /* istanbul ignore next */
+ get: function () { throw new Error("Mixin: ParentNode not implemented."); },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ElementImpl.prototype, "childElementCount", {
+ /* istanbul ignore next */
+ get: function () { throw new Error("Mixin: ParentNode not implemented."); },
+ enumerable: true,
+ configurable: true
+ });
+ /* istanbul ignore next */
+ ElementImpl.prototype.prepend = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ throw new Error("Mixin: ParentNode not implemented.");
+ };
+ /* istanbul ignore next */
+ ElementImpl.prototype.append = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ throw new Error("Mixin: ParentNode not implemented.");
+ };
+ /* istanbul ignore next */
+ ElementImpl.prototype.querySelector = function (selectors) { throw new Error("Mixin: ParentNode not implemented."); };
+ /* istanbul ignore next */
+ ElementImpl.prototype.querySelectorAll = function (selectors) { throw new Error("Mixin: ParentNode not implemented."); };
+ Object.defineProperty(ElementImpl.prototype, "previousElementSibling", {
+ // MIXIN: NonDocumentTypeChildNode
+ /* istanbul ignore next */
+ get: function () { throw new Error("Mixin: NonDocumentTypeChildNode not implemented."); },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ElementImpl.prototype, "nextElementSibling", {
+ /* istanbul ignore next */
+ get: function () { throw new Error("Mixin: NonDocumentTypeChildNode not implemented."); },
+ enumerable: true,
+ configurable: true
+ });
+ // MIXIN: ChildNode
+ /* istanbul ignore next */
+ ElementImpl.prototype.before = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ throw new Error("Mixin: ChildNode not implemented.");
+ };
+ /* istanbul ignore next */
+ ElementImpl.prototype.after = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ throw new Error("Mixin: ChildNode not implemented.");
+ };
+ /* istanbul ignore next */
+ ElementImpl.prototype.replaceWith = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ throw new Error("Mixin: ChildNode not implemented.");
+ };
+ /* istanbul ignore next */
+ ElementImpl.prototype.remove = function () { throw new Error("Mixin: ChildNode not implemented."); };
+ Object.defineProperty(ElementImpl.prototype, "assignedSlot", {
+ // MIXIN: Slotable
+ /* istanbul ignore next */
+ get: function () { throw new Error("Mixin: Slotable not implemented."); },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Creates a new `Element`.
+ *
+ * @param document - owner document
+ * @param localName - local name
+ * @param namespace - namespace
+ * @param prefix - namespace prefix
+ */
+ ElementImpl._create = function (document, localName, namespace, namespacePrefix) {
+ if (namespace === void 0) { namespace = null; }
+ if (namespacePrefix === void 0) { namespacePrefix = null; }
+ var node = new ElementImpl();
+ node._localName = localName;
+ node._namespace = namespace;
+ node._namespacePrefix = namespacePrefix;
+ node._nodeDocument = document;
+ return node;
+ };
+ return ElementImpl;
+}(NodeImpl_1.NodeImpl));
+exports.ElementImpl = ElementImpl;
+/**
+ * Initialize prototype properties
+ */
+WebIDLAlgorithm_1.idl_defineConst(ElementImpl.prototype, "_nodeType", interfaces_1.NodeType.Element);
+//# sourceMappingURL=ElementImpl.js.map
+
+/***/ }),
+
+/***/ 5809:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(7305);
+var algorithm_1 = __nccwpck_require__(61);
+var WebIDLAlgorithm_1 = __nccwpck_require__(5457);
+/**
+ * Represents a DOM event.
+ */
+var EventImpl = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `Event`.
+ */
+ function EventImpl(type, eventInit) {
+ this._target = null;
+ this._relatedTarget = null;
+ this._touchTargetList = [];
+ this._path = [];
+ this._currentTarget = null;
+ this._eventPhase = interfaces_1.EventPhase.None;
+ this._stopPropagationFlag = false;
+ this._stopImmediatePropagationFlag = false;
+ this._canceledFlag = false;
+ this._inPassiveListenerFlag = false;
+ this._composedFlag = false;
+ this._initializedFlag = false;
+ this._dispatchFlag = false;
+ this._isTrusted = false;
+ this._bubbles = false;
+ this._cancelable = false;
+ /**
+ * When a constructor of the Event interface, or of an interface that
+ * inherits from the Event interface, is invoked, these steps must be run,
+ * given the arguments type and eventInitDict:
+ * 1. Let event be the result of running the inner event creation steps with
+ * this interface, null, now, and eventInitDict.
+ * 2. Initialize event’s type attribute to type.
+ * 3. Return event.
+ */
+ this._type = type;
+ if (eventInit) {
+ this._bubbles = eventInit.bubbles || false;
+ this._cancelable = eventInit.cancelable || false;
+ this._composedFlag = eventInit.composed || false;
+ }
+ this._initializedFlag = true;
+ this._timeStamp = new Date().getTime();
+ }
+ Object.defineProperty(EventImpl.prototype, "type", {
+ /** @inheritdoc */
+ get: function () { return this._type; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(EventImpl.prototype, "target", {
+ /** @inheritdoc */
+ get: function () { return this._target; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(EventImpl.prototype, "srcElement", {
+ /** @inheritdoc */
+ get: function () { return this._target; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(EventImpl.prototype, "currentTarget", {
+ /** @inheritdoc */
+ get: function () { return this._currentTarget; },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ EventImpl.prototype.composedPath = function () {
+ /**
+ * 1. Let composedPath be an empty list.
+ * 2. Let path be the context object’s path.
+ * 3. If path is empty, then return composedPath.
+ * 4. Let currentTarget be the context object’s currentTarget attribute
+ * value.
+ * 5. Append currentTarget to composedPath.
+ * 6. Let currentTargetIndex be 0.
+ * 7. Let currentTargetHiddenSubtreeLevel be 0.
+ */
+ var composedPath = [];
+ var path = this._path;
+ if (path.length === 0)
+ return composedPath;
+ var currentTarget = this._currentTarget;
+ if (currentTarget === null) {
+ throw new Error("Event currentTarget is null.");
+ }
+ composedPath.push(currentTarget);
+ var currentTargetIndex = 0;
+ var currentTargetHiddenSubtreeLevel = 0;
+ /**
+ * 8. Let index be path’s size − 1.
+ * 9. While index is greater than or equal to 0:
+ */
+ var index = path.length - 1;
+ while (index >= 0) {
+ /**
+ * 9.1. If path[index]'s root-of-closed-tree is true, then increase
+ * currentTargetHiddenSubtreeLevel by 1.
+ * 9.2. If path[index]'s invocation target is currentTarget, then set
+ * currentTargetIndex to index and break.
+ * 9.3. If path[index]'s slot-in-closed-tree is true, then decrease
+ * currentTargetHiddenSubtreeLevel by 1.
+ * 9.4. Decrease index by 1.
+ */
+ if (path[index].rootOfClosedTree) {
+ currentTargetHiddenSubtreeLevel++;
+ }
+ if (path[index].invocationTarget === currentTarget) {
+ currentTargetIndex = index;
+ break;
+ }
+ if (path[index].slotInClosedTree) {
+ currentTargetHiddenSubtreeLevel--;
+ }
+ index--;
+ }
+ /**
+ * 10. Let currentHiddenLevel and maxHiddenLevel be
+ * currentTargetHiddenSubtreeLevel.
+ */
+ var currentHiddenLevel = currentTargetHiddenSubtreeLevel;
+ var maxHiddenLevel = currentTargetHiddenSubtreeLevel;
+ /**
+ * 11. Set index to currentTargetIndex − 1.
+ * 12. While index is greater than or equal to 0:
+ */
+ index = currentTargetIndex - 1;
+ while (index >= 0) {
+ /**
+ * 12.1. If path[index]'s root-of-closed-tree is true, then increase
+ * currentHiddenLevel by 1.
+ * 12.2. If currentHiddenLevel is less than or equal to maxHiddenLevel,
+ * then prepend path[index]'s invocation target to composedPath.
+ */
+ if (path[index].rootOfClosedTree) {
+ currentHiddenLevel++;
+ }
+ if (currentHiddenLevel <= maxHiddenLevel) {
+ composedPath.unshift(path[index].invocationTarget);
+ }
+ /**
+ * 12.3. If path[index]'s slot-in-closed-tree is true, then:
+ */
+ if (path[index].slotInClosedTree) {
+ /**
+ * 12.3.1. Decrease currentHiddenLevel by 1.
+ * 12.3.2. If currentHiddenLevel is less than maxHiddenLevel, then set
+ * maxHiddenLevel to currentHiddenLevel.
+ */
+ currentHiddenLevel--;
+ if (currentHiddenLevel < maxHiddenLevel) {
+ maxHiddenLevel = currentHiddenLevel;
+ }
+ }
+ /**
+ * 12.4. Decrease index by 1.
+ */
+ index--;
+ }
+ /**
+ * 13. Set currentHiddenLevel and maxHiddenLevel to
+ * currentTargetHiddenSubtreeLevel.
+ */
+ currentHiddenLevel = currentTargetHiddenSubtreeLevel;
+ maxHiddenLevel = currentTargetHiddenSubtreeLevel;
+ /**
+ * 14. Set index to currentTargetIndex + 1.
+ * 15. While index is less than path’s size:
+ */
+ index = currentTargetIndex + 1;
+ while (index < path.length) {
+ /**
+ * 15.1. If path[index]'s slot-in-closed-tree is true, then increase
+ * currentHiddenLevel by 1.
+ * 15.2. If currentHiddenLevel is less than or equal to maxHiddenLevel,
+ * then append path[index]'s invocation target to composedPath.
+ */
+ if (path[index].slotInClosedTree) {
+ currentHiddenLevel++;
+ }
+ if (currentHiddenLevel <= maxHiddenLevel) {
+ composedPath.push(path[index].invocationTarget);
+ }
+ /**
+ * 15.3. If path[index]'s root-of-closed-tree is true, then:
+ */
+ if (path[index].rootOfClosedTree) {
+ /**
+ * 15.3.1. Decrease currentHiddenLevel by 1.
+ * 15.3.2. If currentHiddenLevel is less than maxHiddenLevel, then set
+ * maxHiddenLevel to currentHiddenLevel.
+ */
+ currentHiddenLevel--;
+ if (currentHiddenLevel < maxHiddenLevel) {
+ maxHiddenLevel = currentHiddenLevel;
+ }
+ }
+ /**
+ * 15.4. Increase index by 1.
+ */
+ index++;
+ }
+ /**
+ * 16. Return composedPath.
+ */
+ return composedPath;
+ };
+ Object.defineProperty(EventImpl.prototype, "eventPhase", {
+ /** @inheritdoc */
+ get: function () { return this._eventPhase; },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ EventImpl.prototype.stopPropagation = function () { this._stopPropagationFlag = true; };
+ Object.defineProperty(EventImpl.prototype, "cancelBubble", {
+ /** @inheritdoc */
+ get: function () { return this._stopPropagationFlag; },
+ set: function (value) { if (value)
+ this.stopPropagation(); },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ EventImpl.prototype.stopImmediatePropagation = function () {
+ this._stopPropagationFlag = true;
+ this._stopImmediatePropagationFlag = true;
+ };
+ Object.defineProperty(EventImpl.prototype, "bubbles", {
+ /** @inheritdoc */
+ get: function () { return this._bubbles; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(EventImpl.prototype, "cancelable", {
+ /** @inheritdoc */
+ get: function () { return this._cancelable; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(EventImpl.prototype, "returnValue", {
+ /** @inheritdoc */
+ get: function () { return !this._canceledFlag; },
+ set: function (value) {
+ if (!value) {
+ algorithm_1.event_setTheCanceledFlag(this);
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ EventImpl.prototype.preventDefault = function () {
+ algorithm_1.event_setTheCanceledFlag(this);
+ };
+ Object.defineProperty(EventImpl.prototype, "defaultPrevented", {
+ /** @inheritdoc */
+ get: function () { return this._canceledFlag; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(EventImpl.prototype, "composed", {
+ /** @inheritdoc */
+ get: function () { return this._composedFlag; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(EventImpl.prototype, "isTrusted", {
+ /** @inheritdoc */
+ get: function () { return this._isTrusted; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(EventImpl.prototype, "timeStamp", {
+ /** @inheritdoc */
+ get: function () { return this._timeStamp; },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ EventImpl.prototype.initEvent = function (type, bubbles, cancelable) {
+ if (bubbles === void 0) { bubbles = false; }
+ if (cancelable === void 0) { cancelable = false; }
+ /**
+ * 1. If the context object’s dispatch flag is set, then return.
+ */
+ if (this._dispatchFlag)
+ return;
+ /**
+ * 2. Initialize the context object with type, bubbles, and cancelable.
+ */
+ algorithm_1.event_initialize(this, type, bubbles, cancelable);
+ };
+ EventImpl.NONE = 0;
+ EventImpl.CAPTURING_PHASE = 1;
+ EventImpl.AT_TARGET = 2;
+ EventImpl.BUBBLING_PHASE = 3;
+ return EventImpl;
+}());
+exports.EventImpl = EventImpl;
+/**
+ * Define constants on prototype.
+ */
+WebIDLAlgorithm_1.idl_defineConst(EventImpl.prototype, "NONE", 0);
+WebIDLAlgorithm_1.idl_defineConst(EventImpl.prototype, "CAPTURING_PHASE", 1);
+WebIDLAlgorithm_1.idl_defineConst(EventImpl.prototype, "AT_TARGET", 2);
+WebIDLAlgorithm_1.idl_defineConst(EventImpl.prototype, "BUBBLING_PHASE", 3);
+//# sourceMappingURL=EventImpl.js.map
+
+/***/ }),
+
+/***/ 9968:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMException_1 = __nccwpck_require__(3166);
+var util_1 = __nccwpck_require__(5282);
+var algorithm_1 = __nccwpck_require__(61);
+/**
+ * Represents a target to which an event can be dispatched.
+ */
+var EventTargetImpl = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `EventTarget`.
+ */
+ function EventTargetImpl() {
+ }
+ Object.defineProperty(EventTargetImpl.prototype, "_eventListenerList", {
+ get: function () {
+ return this.__eventListenerList || (this.__eventListenerList = []);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(EventTargetImpl.prototype, "_eventHandlerMap", {
+ get: function () {
+ return this.__eventHandlerMap || (this.__eventHandlerMap = {});
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ EventTargetImpl.prototype.addEventListener = function (type, callback, options) {
+ if (options === void 0) { options = { passive: false, once: false, capture: false }; }
+ /**
+ * 1. Let capture, passive, and once be the result of flattening more options.
+ */
+ var _a = __read(algorithm_1.eventTarget_flattenMore(options), 3), capture = _a[0], passive = _a[1], once = _a[2];
+ // convert callback function to EventListener, return if null
+ var listenerCallback;
+ if (!callback) {
+ return;
+ }
+ else if (util_1.Guard.isEventListener(callback)) {
+ listenerCallback = callback;
+ }
+ else {
+ listenerCallback = { handleEvent: callback };
+ }
+ /**
+ * 2. Add an event listener with the context object and an event listener
+ * whose type is type, callback is callback, capture is capture, passive is
+ * passive, and once is once.
+ */
+ algorithm_1.eventTarget_addEventListener(this, {
+ type: type,
+ callback: listenerCallback,
+ capture: capture,
+ passive: passive,
+ once: once,
+ removed: false
+ });
+ };
+ /** @inheritdoc */
+ EventTargetImpl.prototype.removeEventListener = function (type, callback, options) {
+ /**
+ * TODO: Implement realms
+ * 1. If the context object’s relevant global object is a
+ * ServiceWorkerGlobalScope object and its associated service worker’s
+ * script resource’s has ever been evaluated flag is set, then throw
+ * a TypeError. [SERVICE-WORKERS]
+ */
+ if (options === void 0) { options = { capture: false }; }
+ /**
+ * 2. Let capture be the result of flattening options.
+ */
+ var capture = algorithm_1.eventTarget_flatten(options);
+ if (!callback)
+ return;
+ /**
+ * 3. If the context object’s event listener list contains an event listener
+ * whose type is type, callback is callback, and capture is capture, then
+ * remove an event listener with the context object and that event listener.
+ */
+ for (var i = 0; i < this._eventListenerList.length; i++) {
+ var entry = this._eventListenerList[i];
+ if (entry.type !== type || entry.capture !== capture)
+ continue;
+ if (util_1.Guard.isEventListener(callback) && entry.callback === callback) {
+ algorithm_1.eventTarget_removeEventListener(this, entry, i);
+ break;
+ }
+ else if (callback && entry.callback.handleEvent === callback) {
+ algorithm_1.eventTarget_removeEventListener(this, entry, i);
+ break;
+ }
+ }
+ };
+ /** @inheritdoc */
+ EventTargetImpl.prototype.dispatchEvent = function (event) {
+ /**
+ * 1. If event’s dispatch flag is set, or if its initialized flag is not
+ * set, then throw an "InvalidStateError" DOMException.
+ * 2. Initialize event’s isTrusted attribute to false.
+ * 3. Return the result of dispatching event to the context object.
+ */
+ if (event._dispatchFlag || !event._initializedFlag) {
+ throw new DOMException_1.InvalidStateError();
+ }
+ event._isTrusted = false;
+ return algorithm_1.event_dispatch(event, this);
+ };
+ /** @inheritdoc */
+ EventTargetImpl.prototype._getTheParent = function (event) {
+ return null;
+ };
+ return EventTargetImpl;
+}());
+exports.EventTargetImpl = EventTargetImpl;
+//# sourceMappingURL=EventTargetImpl.js.map
+
+/***/ }),
+
+/***/ 3969:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var infra_1 = __nccwpck_require__(4251);
+var algorithm_1 = __nccwpck_require__(61);
+var util_1 = __nccwpck_require__(5282);
+var util_2 = __nccwpck_require__(6195);
+/**
+ * Represents a collection of elements.
+ */
+var HTMLCollectionImpl = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `HTMLCollection`.
+ *
+ * @param root - root node
+ * @param filter - node filter
+ */
+ function HTMLCollectionImpl(root, filter) {
+ this._live = true;
+ this._root = root;
+ this._filter = filter;
+ return new Proxy(this, this);
+ }
+ Object.defineProperty(HTMLCollectionImpl.prototype, "length", {
+ /** @inheritdoc */
+ get: function () {
+ var _this = this;
+ /**
+ * The length attribute’s getter must return the number of nodes
+ * represented by the collection.
+ */
+ var count = 0;
+ var node = algorithm_1.tree_getFirstDescendantNode(this._root, false, false, function (e) { return util_1.Guard.isElementNode(e) && _this._filter(e); });
+ while (node !== null) {
+ count++;
+ node = algorithm_1.tree_getNextDescendantNode(this._root, node, false, false, function (e) { return util_1.Guard.isElementNode(e) && _this._filter(e); });
+ }
+ return count;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ HTMLCollectionImpl.prototype.item = function (index) {
+ var _this = this;
+ /**
+ * The item(index) method, when invoked, must return the indexth element
+ * in the collection. If there is no indexth element in the collection,
+ * then the method must return null.
+ */
+ var i = 0;
+ var node = algorithm_1.tree_getFirstDescendantNode(this._root, false, false, function (e) { return util_1.Guard.isElementNode(e) && _this._filter(e); });
+ while (node !== null) {
+ if (i === index)
+ return node;
+ else
+ i++;
+ node = algorithm_1.tree_getNextDescendantNode(this._root, node, false, false, function (e) { return util_1.Guard.isElementNode(e) && _this._filter(e); });
+ }
+ return null;
+ };
+ /** @inheritdoc */
+ HTMLCollectionImpl.prototype.namedItem = function (key) {
+ var _this = this;
+ /**
+ * 1. If key is the empty string, return null.
+ * 2. Return the first element in the collection for which at least one of
+ * the following is true:
+ * - it has an ID which is key;
+ * - it is in the HTML namespace and has a name attribute whose value is key;
+ * or null if there is no such element.
+ */
+ if (key === '')
+ return null;
+ var ele = algorithm_1.tree_getFirstDescendantNode(this._root, false, false, function (e) { return util_1.Guard.isElementNode(e) && _this._filter(e); });
+ while (ele != null) {
+ if (ele._uniqueIdentifier === key) {
+ return ele;
+ }
+ else if (ele._namespace === infra_1.namespace.HTML) {
+ for (var i = 0; i < ele._attributeList.length; i++) {
+ var attr = ele._attributeList[i];
+ if (attr._localName === "name" && attr._namespace === null &&
+ attr._namespacePrefix === null && attr._value === key)
+ return ele;
+ }
+ }
+ ele = algorithm_1.tree_getNextDescendantNode(this._root, ele, false, false, function (e) { return util_1.Guard.isElementNode(e) && _this._filter(e); });
+ }
+ return null;
+ };
+ /** @inheritdoc */
+ HTMLCollectionImpl.prototype[Symbol.iterator] = function () {
+ var root = this._root;
+ var filter = this._filter;
+ var currentNode = algorithm_1.tree_getFirstDescendantNode(root, false, false, function (e) { return util_1.Guard.isElementNode(e) && filter(e); });
+ return {
+ next: function () {
+ if (currentNode === null) {
+ return { done: true, value: null };
+ }
+ else {
+ var result = { done: false, value: currentNode };
+ currentNode = algorithm_1.tree_getNextDescendantNode(root, currentNode, false, false, function (e) { return util_1.Guard.isElementNode(e) && filter(e); });
+ return result;
+ }
+ }
+ };
+ };
+ /**
+ * Implements a proxy get trap to provide array-like access.
+ */
+ HTMLCollectionImpl.prototype.get = function (target, key, receiver) {
+ if (!util_2.isString(key) || HTMLCollectionImpl.reservedNames.indexOf(key) !== -1) {
+ return Reflect.get(target, key, receiver);
+ }
+ var index = Number(key);
+ if (isNaN(index)) {
+ return target.namedItem(key) || undefined;
+ }
+ else {
+ return target.item(index) || undefined;
+ }
+ };
+ /**
+ * Implements a proxy set trap to provide array-like access.
+ */
+ HTMLCollectionImpl.prototype.set = function (target, key, value, receiver) {
+ if (!util_2.isString(key) || HTMLCollectionImpl.reservedNames.indexOf(key) !== -1) {
+ return Reflect.set(target, key, value, receiver);
+ }
+ var index = Number(key);
+ var node = isNaN(index) ?
+ target.namedItem(key) || undefined : target.item(index) || undefined;
+ if (node && node._parent) {
+ algorithm_1.mutation_replace(node, value, node._parent);
+ return true;
+ }
+ else {
+ return false;
+ }
+ };
+ /**
+ * Creates a new `HTMLCollection`.
+ *
+ * @param root - root node
+ * @param filter - node filter
+ */
+ HTMLCollectionImpl._create = function (root, filter) {
+ if (filter === void 0) { filter = (function () { return true; }); }
+ return new HTMLCollectionImpl(root, filter);
+ };
+ HTMLCollectionImpl.reservedNames = ['_root', '_live', '_filter', 'length',
+ 'item', 'namedItem', 'get', 'set'];
+ return HTMLCollectionImpl;
+}());
+exports.HTMLCollectionImpl = HTMLCollectionImpl;
+//# sourceMappingURL=HTMLCollectionImpl.js.map
+
+/***/ }),
+
+/***/ 9616:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMImpl_1 = __nccwpck_require__(4177);
+var util_1 = __nccwpck_require__(5282);
+var infra_1 = __nccwpck_require__(4251);
+/**
+ * Represents an object that can be used to observe mutations to the tree of
+ * nodes.
+ */
+var MutationObserverImpl = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `MutationObserver`.
+ *
+ * @param callback - the callback function
+ */
+ function MutationObserverImpl(callback) {
+ this._nodeList = [];
+ this._recordQueue = [];
+ /**
+ * 1. Let mo be a new MutationObserver object whose callback is callback.
+ * 2. Append mo to mo’s relevant agent’s mutation observers.
+ * 3. Return mo.
+ */
+ this._callback = callback;
+ var window = DOMImpl_1.dom.window;
+ infra_1.set.append(window._mutationObservers, this);
+ }
+ /** @inheritdoc */
+ MutationObserverImpl.prototype.observe = function (target, options) {
+ var e_1, _a;
+ options = options || {
+ childList: false,
+ subtree: false
+ };
+ /**
+ * 1. If either options’s attributeOldValue or attributeFilter is present
+ * and options’s attributes is omitted, then set options’s attributes
+ * to true.
+ * 2. If options’s characterDataOldValue is present and options’s
+ * characterData is omitted, then set options’s characterData to true.
+ * 3. If none of options’s childList, attributes, and characterData is
+ * true, then throw a TypeError.
+ * 4. If options’s attributeOldValue is true and options’s attributes is
+ * false, then throw a TypeError.
+ * 5. If options’s attributeFilter is present and options’s attributes is
+ * false, then throw a TypeError.
+ * 6. If options’s characterDataOldValue is true and options’s characterData
+ * is false, then throw a TypeError.
+ */
+ if ((options.attributeOldValue !== undefined || options.attributeFilter !== undefined) &&
+ options.attributes === undefined) {
+ options.attributes = true;
+ }
+ if (options.characterDataOldValue !== undefined && options.characterData === undefined) {
+ options.characterData = true;
+ }
+ if (!options.childList && !options.attributes && !options.characterData) {
+ throw new TypeError();
+ }
+ if (options.attributeOldValue && !options.attributes) {
+ throw new TypeError();
+ }
+ if (options.attributeFilter !== undefined && !options.attributes) {
+ throw new TypeError();
+ }
+ if (options.characterDataOldValue && !options.characterData) {
+ throw new TypeError();
+ }
+ /**
+ * 7. For each registered of target’s registered observer list, if
+ * registered’s observer is the context object:
+ */
+ var isRegistered = false;
+ var coptions = options;
+ var _loop_1 = function (registered) {
+ var e_2, _a;
+ if (registered.observer === this_1) {
+ isRegistered = true;
+ try {
+ /**
+ * 7.1. For each node of the context object’s node list, remove all
+ * transient registered observers whose source is registered from node’s
+ * registered observer list.
+ */
+ for (var _b = (e_2 = void 0, __values(this_1._nodeList)), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var node = _c.value;
+ infra_1.list.remove(node._registeredObserverList, function (ob) {
+ return util_1.Guard.isTransientRegisteredObserver(ob) && ob.source === registered;
+ });
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ /**
+ * 7.2. Set registered’s options to options.
+ */
+ registered.options = coptions;
+ }
+ };
+ var this_1 = this;
+ try {
+ for (var _b = __values(target._registeredObserverList), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var registered = _c.value;
+ _loop_1(registered);
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ /**
+ * 8. Otherwise:
+ * 8.1. Append a new registered observer whose observer is the context
+ * object and options is options to target’s registered observer list.
+ * 8.2. Append target to the context object’s node list.
+ */
+ if (!isRegistered) {
+ target._registeredObserverList.push({ observer: this, options: options });
+ this._nodeList.push(target);
+ }
+ };
+ /** @inheritdoc */
+ MutationObserverImpl.prototype.disconnect = function () {
+ var e_3, _a;
+ var _this = this;
+ try {
+ /**
+ * 1. For each node of the context object’s node list, remove any
+ * registered observer from node’s registered observer list for which the
+ * context object is the observer.
+ */
+ for (var _b = __values(this._nodeList), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var node = _c.value;
+ infra_1.list.remove((node)._registeredObserverList, function (ob) {
+ return ob.observer === _this;
+ });
+ }
+ }
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_3) throw e_3.error; }
+ }
+ /**
+ * 2. Empty the context object’s record queue.
+ */
+ this._recordQueue = [];
+ };
+ /** @inheritdoc */
+ MutationObserverImpl.prototype.takeRecords = function () {
+ /**
+ * 1. Let records be a clone of the context object’s record queue.
+ * 2. Empty the context object’s record queue.
+ * 3. Return records.
+ */
+ var records = this._recordQueue;
+ this._recordQueue = [];
+ return records;
+ };
+ return MutationObserverImpl;
+}());
+exports.MutationObserverImpl = MutationObserverImpl;
+//# sourceMappingURL=MutationObserverImpl.js.map
+
+/***/ }),
+
+/***/ 6219:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Represents a mutation record.
+ */
+var MutationRecordImpl = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `MutationRecord`.
+ *
+ * @param type - type of mutation: `"attributes"` for an attribute
+ * mutation, `"characterData"` for a mutation to a CharacterData node
+ * and `"childList"` for a mutation to the tree of nodes.
+ * @param target - node affected by the mutation.
+ * @param addedNodes - list of added nodes.
+ * @param removedNodes - list of removed nodes.
+ * @param previousSibling - previous sibling of added or removed nodes.
+ * @param nextSibling - next sibling of added or removed nodes.
+ * @param attributeName - local name of the changed attribute,
+ * and `null` otherwise.
+ * @param attributeNamespace - namespace of the changed attribute,
+ * and `null` otherwise.
+ * @param oldValue - value before mutation: attribute value for an attribute
+ * mutation, node `data` for a mutation to a CharacterData node and `null`
+ * for a mutation to the tree of nodes.
+ */
+ function MutationRecordImpl(type, target, addedNodes, removedNodes, previousSibling, nextSibling, attributeName, attributeNamespace, oldValue) {
+ this._type = type;
+ this._target = target;
+ this._addedNodes = addedNodes;
+ this._removedNodes = removedNodes;
+ this._previousSibling = previousSibling;
+ this._nextSibling = nextSibling;
+ this._attributeName = attributeName;
+ this._attributeNamespace = attributeNamespace;
+ this._oldValue = oldValue;
+ }
+ Object.defineProperty(MutationRecordImpl.prototype, "type", {
+ /** @inheritdoc */
+ get: function () { return this._type; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(MutationRecordImpl.prototype, "target", {
+ /** @inheritdoc */
+ get: function () { return this._target; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(MutationRecordImpl.prototype, "addedNodes", {
+ /** @inheritdoc */
+ get: function () { return this._addedNodes; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(MutationRecordImpl.prototype, "removedNodes", {
+ /** @inheritdoc */
+ get: function () { return this._removedNodes; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(MutationRecordImpl.prototype, "previousSibling", {
+ /** @inheritdoc */
+ get: function () { return this._previousSibling; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(MutationRecordImpl.prototype, "nextSibling", {
+ /** @inheritdoc */
+ get: function () { return this._nextSibling; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(MutationRecordImpl.prototype, "attributeName", {
+ /** @inheritdoc */
+ get: function () { return this._attributeName; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(MutationRecordImpl.prototype, "attributeNamespace", {
+ /** @inheritdoc */
+ get: function () { return this._attributeNamespace; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(MutationRecordImpl.prototype, "oldValue", {
+ /** @inheritdoc */
+ get: function () { return this._oldValue; },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Creates a new `MutationRecord`.
+ *
+ * @param type - type of mutation: `"attributes"` for an attribute
+ * mutation, `"characterData"` for a mutation to a CharacterData node
+ * and `"childList"` for a mutation to the tree of nodes.
+ * @param target - node affected by the mutation.
+ * @param addedNodes - list of added nodes.
+ * @param removedNodes - list of removed nodes.
+ * @param previousSibling - previous sibling of added or removed nodes.
+ * @param nextSibling - next sibling of added or removed nodes.
+ * @param attributeName - local name of the changed attribute,
+ * and `null` otherwise.
+ * @param attributeNamespace - namespace of the changed attribute,
+ * and `null` otherwise.
+ * @param oldValue - value before mutation: attribute value for an attribute
+ * mutation, node `data` for a mutation to a CharacterData node and `null`
+ * for a mutation to the tree of nodes.
+ */
+ MutationRecordImpl._create = function (type, target, addedNodes, removedNodes, previousSibling, nextSibling, attributeName, attributeNamespace, oldValue) {
+ return new MutationRecordImpl(type, target, addedNodes, removedNodes, previousSibling, nextSibling, attributeName, attributeNamespace, oldValue);
+ };
+ return MutationRecordImpl;
+}());
+exports.MutationRecordImpl = MutationRecordImpl;
+//# sourceMappingURL=MutationRecordImpl.js.map
+
+/***/ }),
+
+/***/ 7206:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMException_1 = __nccwpck_require__(3166);
+var algorithm_1 = __nccwpck_require__(61);
+/**
+ * Represents a collection of attributes.
+ */
+var NamedNodeMapImpl = /** @class */ (function (_super) {
+ __extends(NamedNodeMapImpl, _super);
+ /**
+ * Initializes a new instance of `NamedNodeMap`.
+ *
+ * @param element - parent element
+ */
+ function NamedNodeMapImpl(element) {
+ var _this = _super.call(this) || this;
+ _this._element = element;
+ // TODO: This workaround is needed to extend Array in ES5
+ Object.setPrototypeOf(_this, NamedNodeMapImpl.prototype);
+ return _this;
+ }
+ NamedNodeMapImpl.prototype._asArray = function () { return this; };
+ /** @inheritdoc */
+ NamedNodeMapImpl.prototype.item = function (index) {
+ /**
+ * 1. If index is equal to or greater than context object’s attribute list’s
+ * size, then return null.
+ * 2. Otherwise, return context object’s attribute list[index].
+ *
+ */
+ return this[index] || null;
+ };
+ /** @inheritdoc */
+ NamedNodeMapImpl.prototype.getNamedItem = function (qualifiedName) {
+ /**
+ * The getNamedItem(qualifiedName) method, when invoked, must return the
+ * result of getting an attribute given qualifiedName and element.
+ */
+ return algorithm_1.element_getAnAttributeByName(qualifiedName, this._element);
+ };
+ /** @inheritdoc */
+ NamedNodeMapImpl.prototype.getNamedItemNS = function (namespace, localName) {
+ /**
+ * The getNamedItemNS(namespace, localName) method, when invoked, must
+ * return the result of getting an attribute given namespace, localName,
+ * and element.
+ */
+ return algorithm_1.element_getAnAttributeByNamespaceAndLocalName(namespace || '', localName, this._element);
+ };
+ /** @inheritdoc */
+ NamedNodeMapImpl.prototype.setNamedItem = function (attr) {
+ /**
+ * The setNamedItem(attr) and setNamedItemNS(attr) methods, when invoked,
+ * must return the result of setting an attribute given attr and element.
+ */
+ return algorithm_1.element_setAnAttribute(attr, this._element);
+ };
+ /** @inheritdoc */
+ NamedNodeMapImpl.prototype.setNamedItemNS = function (attr) {
+ return algorithm_1.element_setAnAttribute(attr, this._element);
+ };
+ /** @inheritdoc */
+ NamedNodeMapImpl.prototype.removeNamedItem = function (qualifiedName) {
+ /**
+ * 1. Let attr be the result of removing an attribute given qualifiedName
+ * and element.
+ * 2. If attr is null, then throw a "NotFoundError" DOMException.
+ * 3. Return attr.
+ */
+ var attr = algorithm_1.element_removeAnAttributeByName(qualifiedName, this._element);
+ if (attr === null)
+ throw new DOMException_1.NotFoundError();
+ return attr;
+ };
+ /** @inheritdoc */
+ NamedNodeMapImpl.prototype.removeNamedItemNS = function (namespace, localName) {
+ /**
+ * 1. Let attr be the result of removing an attribute given namespace,
+ * localName, and element.
+ * 2. If attr is null, then throw a "NotFoundError" DOMException.
+ * 3. Return attr.
+ */
+ var attr = algorithm_1.element_removeAnAttributeByNamespaceAndLocalName(namespace || '', localName, this._element);
+ if (attr === null)
+ throw new DOMException_1.NotFoundError();
+ return attr;
+ };
+ /**
+ * Creates a new `NamedNodeMap`.
+ *
+ * @param element - parent element
+ */
+ NamedNodeMapImpl._create = function (element) {
+ return new NamedNodeMapImpl(element);
+ };
+ return NamedNodeMapImpl;
+}(Array));
+exports.NamedNodeMapImpl = NamedNodeMapImpl;
+//# sourceMappingURL=NamedNodeMapImpl.js.map
+
+/***/ }),
+
+/***/ 2355:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(7305);
+var WebIDLAlgorithm_1 = __nccwpck_require__(5457);
+/**
+ * Represents a node filter.
+ */
+var NodeFilterImpl = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `NodeFilter`.
+ */
+ function NodeFilterImpl() {
+ }
+ /**
+ * Callback function.
+ */
+ NodeFilterImpl.prototype.acceptNode = function (node) {
+ return interfaces_1.FilterResult.Accept;
+ };
+ /**
+ * Creates a new `NodeFilter`.
+ */
+ NodeFilterImpl._create = function () {
+ return new NodeFilterImpl();
+ };
+ NodeFilterImpl.FILTER_ACCEPT = 1;
+ NodeFilterImpl.FILTER_REJECT = 2;
+ NodeFilterImpl.FILTER_SKIP = 3;
+ NodeFilterImpl.SHOW_ALL = 0xffffffff;
+ NodeFilterImpl.SHOW_ELEMENT = 0x1;
+ NodeFilterImpl.SHOW_ATTRIBUTE = 0x2;
+ NodeFilterImpl.SHOW_TEXT = 0x4;
+ NodeFilterImpl.SHOW_CDATA_SECTION = 0x8;
+ NodeFilterImpl.SHOW_ENTITY_REFERENCE = 0x10;
+ NodeFilterImpl.SHOW_ENTITY = 0x20;
+ NodeFilterImpl.SHOW_PROCESSING_INSTRUCTION = 0x40;
+ NodeFilterImpl.SHOW_COMMENT = 0x80;
+ NodeFilterImpl.SHOW_DOCUMENT = 0x100;
+ NodeFilterImpl.SHOW_DOCUMENT_TYPE = 0x200;
+ NodeFilterImpl.SHOW_DOCUMENT_FRAGMENT = 0x400;
+ NodeFilterImpl.SHOW_NOTATION = 0x800;
+ return NodeFilterImpl;
+}());
+exports.NodeFilterImpl = NodeFilterImpl;
+/**
+ * Define constants on prototype.
+ */
+WebIDLAlgorithm_1.idl_defineConst(NodeFilterImpl.prototype, "FILTER_ACCEPT", 1);
+WebIDLAlgorithm_1.idl_defineConst(NodeFilterImpl.prototype, "FILTER_REJECT", 2);
+WebIDLAlgorithm_1.idl_defineConst(NodeFilterImpl.prototype, "FILTER_SKIP", 3);
+WebIDLAlgorithm_1.idl_defineConst(NodeFilterImpl.prototype, "SHOW_ALL", 0xffffffff);
+WebIDLAlgorithm_1.idl_defineConst(NodeFilterImpl.prototype, "SHOW_ELEMENT", 0x1);
+WebIDLAlgorithm_1.idl_defineConst(NodeFilterImpl.prototype, "SHOW_ATTRIBUTE", 0x2);
+WebIDLAlgorithm_1.idl_defineConst(NodeFilterImpl.prototype, "SHOW_TEXT", 0x4);
+WebIDLAlgorithm_1.idl_defineConst(NodeFilterImpl.prototype, "SHOW_CDATA_SECTION", 0x8);
+WebIDLAlgorithm_1.idl_defineConst(NodeFilterImpl.prototype, "SHOW_ENTITY_REFERENCE", 0x10);
+WebIDLAlgorithm_1.idl_defineConst(NodeFilterImpl.prototype, "SHOW_ENTITY", 0x20);
+WebIDLAlgorithm_1.idl_defineConst(NodeFilterImpl.prototype, "SHOW_PROCESSING_INSTRUCTION", 0x40);
+WebIDLAlgorithm_1.idl_defineConst(NodeFilterImpl.prototype, "SHOW_COMMENT", 0x80);
+WebIDLAlgorithm_1.idl_defineConst(NodeFilterImpl.prototype, "SHOW_DOCUMENT", 0x100);
+WebIDLAlgorithm_1.idl_defineConst(NodeFilterImpl.prototype, "SHOW_DOCUMENT_TYPE", 0x200);
+WebIDLAlgorithm_1.idl_defineConst(NodeFilterImpl.prototype, "SHOW_DOCUMENT_FRAGMENT", 0x400);
+WebIDLAlgorithm_1.idl_defineConst(NodeFilterImpl.prototype, "SHOW_NOTATION", 0x800);
+//# sourceMappingURL=NodeFilterImpl.js.map
+
+/***/ }),
+
+/***/ 1745:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMImpl_1 = __nccwpck_require__(4177);
+var interfaces_1 = __nccwpck_require__(7305);
+var EventTargetImpl_1 = __nccwpck_require__(9968);
+var util_1 = __nccwpck_require__(5282);
+var DOMException_1 = __nccwpck_require__(3166);
+var algorithm_1 = __nccwpck_require__(61);
+var URLAlgorithm_1 = __nccwpck_require__(3568);
+var WebIDLAlgorithm_1 = __nccwpck_require__(5457);
+/**
+ * Represents a generic XML node.
+ */
+var NodeImpl = /** @class */ (function (_super) {
+ __extends(NodeImpl, _super);
+ /**
+ * Initializes a new instance of `Node`.
+ */
+ function NodeImpl() {
+ var _this = _super.call(this) || this;
+ _this._parent = null;
+ _this._firstChild = null;
+ _this._lastChild = null;
+ _this._previousSibling = null;
+ _this._nextSibling = null;
+ return _this;
+ }
+ Object.defineProperty(NodeImpl.prototype, "_childNodes", {
+ get: function () {
+ return this.__childNodes || (this.__childNodes = algorithm_1.create_nodeList(this));
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(NodeImpl.prototype, "_nodeDocument", {
+ get: function () { return this._nodeDocumentOverride || DOMImpl_1.dom.window._associatedDocument; },
+ set: function (val) { this._nodeDocumentOverride = val; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(NodeImpl.prototype, "_registeredObserverList", {
+ get: function () {
+ return this.__registeredObserverList || (this.__registeredObserverList = []);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(NodeImpl.prototype, "nodeType", {
+ /** @inheritdoc */
+ get: function () { return this._nodeType; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(NodeImpl.prototype, "nodeName", {
+ /**
+ * Returns a string appropriate for the type of node.
+ */
+ get: function () {
+ if (util_1.Guard.isElementNode(this)) {
+ return this._htmlUppercasedQualifiedName;
+ }
+ else if (util_1.Guard.isAttrNode(this)) {
+ return this._qualifiedName;
+ }
+ else if (util_1.Guard.isExclusiveTextNode(this)) {
+ return "#text";
+ }
+ else if (util_1.Guard.isCDATASectionNode(this)) {
+ return "#cdata-section";
+ }
+ else if (util_1.Guard.isProcessingInstructionNode(this)) {
+ return this._target;
+ }
+ else if (util_1.Guard.isCommentNode(this)) {
+ return "#comment";
+ }
+ else if (util_1.Guard.isDocumentNode(this)) {
+ return "#document";
+ }
+ else if (util_1.Guard.isDocumentTypeNode(this)) {
+ return this._name;
+ }
+ else if (util_1.Guard.isDocumentFragmentNode(this)) {
+ return "#document-fragment";
+ }
+ else {
+ return "";
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(NodeImpl.prototype, "baseURI", {
+ /**
+ * Gets the absolute base URL of the node.
+ */
+ get: function () {
+ /**
+ * The baseURI attribute’s getter must return node document’s document
+ * base URL, serialized.
+ * TODO: Implement in HTML DOM
+ * https://html.spec.whatwg.org/multipage/urls-and-fetching.html#document-base-url
+ */
+ return URLAlgorithm_1.urlSerializer(this._nodeDocument._URL);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(NodeImpl.prototype, "isConnected", {
+ /**
+ * Returns whether the node is rooted to a document node.
+ */
+ get: function () {
+ /**
+ * The isConnected attribute’s getter must return true, if context object
+ * is connected, and false otherwise.
+ */
+ return util_1.Guard.isElementNode(this) && algorithm_1.shadowTree_isConnected(this);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(NodeImpl.prototype, "ownerDocument", {
+ /**
+ * Returns the parent document.
+ */
+ get: function () {
+ /**
+ * The ownerDocument attribute’s getter must return null, if the context
+ * object is a document, and the context object’s node document otherwise.
+ * _Note:_ The node document of a document is that document itself. All
+ * nodes have a node document at all times.
+ */
+ if (this._nodeType === interfaces_1.NodeType.Document)
+ return null;
+ else
+ return this._nodeDocument;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Returns the root node.
+ *
+ * @param options - if options has `composed = true` this function
+ * returns the node's shadow-including root, otherwise it returns
+ * the node's root node.
+ */
+ NodeImpl.prototype.getRootNode = function (options) {
+ /**
+ * The getRootNode(options) method, when invoked, must return context
+ * object’s shadow-including root if options’s composed is true,
+ * and context object’s root otherwise.
+ */
+ return algorithm_1.tree_rootNode(this, !!options && options.composed);
+ };
+ Object.defineProperty(NodeImpl.prototype, "parentNode", {
+ /**
+ * Returns the parent node.
+ */
+ get: function () {
+ /**
+ * The parentNode attribute’s getter must return the context object’s parent.
+ * _Note:_ An Attr node has no parent.
+ */
+ if (this._nodeType === interfaces_1.NodeType.Attribute) {
+ return null;
+ }
+ else {
+ return this._parent;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(NodeImpl.prototype, "parentElement", {
+ /**
+ * Returns the parent element.
+ */
+ get: function () {
+ /**
+ * The parentElement attribute’s getter must return the context object’s
+ * parent element.
+ */
+ if (this._parent && util_1.Guard.isElementNode(this._parent)) {
+ return this._parent;
+ }
+ else {
+ return null;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Determines whether a node has any children.
+ */
+ NodeImpl.prototype.hasChildNodes = function () {
+ /**
+ * The hasChildNodes() method, when invoked, must return true if the context
+ * object has children, and false otherwise.
+ */
+ return (this._firstChild !== null);
+ };
+ Object.defineProperty(NodeImpl.prototype, "childNodes", {
+ /**
+ * Returns a {@link NodeList} of child nodes.
+ */
+ get: function () {
+ /**
+ * The childNodes attribute’s getter must return a NodeList rooted at the
+ * context object matching only children.
+ */
+ return this._childNodes;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(NodeImpl.prototype, "firstChild", {
+ /**
+ * Returns the first child node.
+ */
+ get: function () {
+ /**
+ * The firstChild attribute’s getter must return the context object’s first
+ * child.
+ */
+ return this._firstChild;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(NodeImpl.prototype, "lastChild", {
+ /**
+ * Returns the last child node.
+ */
+ get: function () {
+ /**
+ * The lastChild attribute’s getter must return the context object’s last
+ * child.
+ */
+ return this._lastChild;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(NodeImpl.prototype, "previousSibling", {
+ /**
+ * Returns the previous sibling node.
+ */
+ get: function () {
+ /**
+ * The previousSibling attribute’s getter must return the context object’s
+ * previous sibling.
+ * _Note:_ An Attr node has no siblings.
+ */
+ return this._previousSibling;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(NodeImpl.prototype, "nextSibling", {
+ /**
+ * Returns the next sibling node.
+ */
+ get: function () {
+ /**
+ * The nextSibling attribute’s getter must return the context object’s
+ * next sibling.
+ */
+ return this._nextSibling;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(NodeImpl.prototype, "nodeValue", {
+ /**
+ * Gets or sets the data associated with a {@link CharacterData} node or the
+ * value of an {@link @Attr} node. For other node types returns `null`.
+ */
+ get: function () {
+ if (util_1.Guard.isAttrNode(this)) {
+ return this._value;
+ }
+ else if (util_1.Guard.isCharacterDataNode(this)) {
+ return this._data;
+ }
+ else {
+ return null;
+ }
+ },
+ set: function (value) {
+ if (value === null) {
+ value = '';
+ }
+ if (util_1.Guard.isAttrNode(this)) {
+ algorithm_1.attr_setAnExistingAttributeValue(this, value);
+ }
+ else if (util_1.Guard.isCharacterDataNode(this)) {
+ algorithm_1.characterData_replaceData(this, 0, this._data.length, value);
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(NodeImpl.prototype, "textContent", {
+ /**
+ * Returns the concatenation of data of all the {@link Text}
+ * node descendants in tree order. When set, replaces the text
+ * contents of the node with the given value.
+ */
+ get: function () {
+ if (util_1.Guard.isDocumentFragmentNode(this) || util_1.Guard.isElementNode(this)) {
+ return algorithm_1.text_descendantTextContent(this);
+ }
+ else if (util_1.Guard.isAttrNode(this)) {
+ return this._value;
+ }
+ else if (util_1.Guard.isCharacterDataNode(this)) {
+ return this._data;
+ }
+ else {
+ return null;
+ }
+ },
+ set: function (value) {
+ if (value === null) {
+ value = '';
+ }
+ if (util_1.Guard.isDocumentFragmentNode(this) || util_1.Guard.isElementNode(this)) {
+ algorithm_1.node_stringReplaceAll(value, this);
+ }
+ else if (util_1.Guard.isAttrNode(this)) {
+ algorithm_1.attr_setAnExistingAttributeValue(this, value);
+ }
+ else if (util_1.Guard.isCharacterDataNode(this)) {
+ algorithm_1.characterData_replaceData(this, 0, algorithm_1.tree_nodeLength(this), value);
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Puts all {@link Text} nodes in the full depth of the sub-tree
+ * underneath this node into a "normal" form where only markup
+ * (e.g., tags, comments, processing instructions, CDATA sections,
+ * and entity references) separates {@link Text} nodes, i.e., there
+ * are no adjacent Text nodes.
+ */
+ NodeImpl.prototype.normalize = function () {
+ var e_1, _a, e_2, _b;
+ /**
+ * The normalize() method, when invoked, must run these steps for each
+ * descendant exclusive Text node node of context object:
+ */
+ var descendantNodes = [];
+ var node = algorithm_1.tree_getFirstDescendantNode(this, false, false, function (e) { return util_1.Guard.isExclusiveTextNode(e); });
+ while (node !== null) {
+ descendantNodes.push(node);
+ node = algorithm_1.tree_getNextDescendantNode(this, node, false, false, function (e) { return util_1.Guard.isExclusiveTextNode(e); });
+ }
+ for (var i = 0; i < descendantNodes.length; i++) {
+ var node_1 = descendantNodes[i];
+ if (node_1._parent === null)
+ continue;
+ /**
+ * 1. Let length be node’s length.
+ * 2. If length is zero, then remove node and continue with the next
+ * exclusive Text node, if any.
+ */
+ var length = algorithm_1.tree_nodeLength(node_1);
+ if (length === 0) {
+ algorithm_1.mutation_remove(node_1, node_1._parent);
+ continue;
+ }
+ /**
+ * 3. Let data be the concatenation of the data of node’s contiguous
+ * exclusive Text nodes (excluding itself), in tree order.
+ */
+ var textSiblings = [];
+ var data = '';
+ try {
+ for (var _c = (e_1 = void 0, __values(algorithm_1.text_contiguousExclusiveTextNodes(node_1))), _d = _c.next(); !_d.done; _d = _c.next()) {
+ var sibling = _d.value;
+ textSiblings.push(sibling);
+ data += sibling._data;
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ /**
+ * 4. Replace data with node node, offset length, count 0, and data data.
+ */
+ algorithm_1.characterData_replaceData(node_1, length, 0, data);
+ /**
+ * 5. Let currentNode be node’s next sibling.
+ * 6. While currentNode is an exclusive Text node:
+ */
+ if (DOMImpl_1.dom.rangeList.size !== 0) {
+ var currentNode = node_1._nextSibling;
+ while (currentNode !== null && util_1.Guard.isExclusiveTextNode(currentNode)) {
+ /**
+ * 6.1. For each live range whose start node is currentNode, add length
+ * to its start offset and set its start node to node.
+ * 6.2. For each live range whose end node is currentNode, add length to
+ * its end offset and set its end node to node.
+ * 6.3. For each live range whose start node is currentNode’s parent and
+ * start offset is currentNode’s index, set its start node to node and
+ * its start offset to length.
+ * 6.4. For each live range whose end node is currentNode’s parent and
+ * end offset is currentNode’s index, set its end node to node and its
+ * end offset to length.
+ */
+ var cn = currentNode;
+ var index = algorithm_1.tree_index(cn);
+ try {
+ for (var _e = (e_2 = void 0, __values(DOMImpl_1.dom.rangeList)), _f = _e.next(); !_f.done; _f = _e.next()) {
+ var range = _f.value;
+ if (range._start[0] === cn) {
+ range._start[0] = node_1;
+ range._start[1] += length;
+ }
+ if (range._end[0] === cn) {
+ range._end[0] = node_1;
+ range._end[1] += length;
+ }
+ if (range._start[0] === cn._parent && range._start[1] === index) {
+ range._start[0] = node_1;
+ range._start[1] = length;
+ }
+ if (range._end[0] === cn._parent && range._end[1] === index) {
+ range._end[0] = node_1;
+ range._end[1] = length;
+ }
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ /**
+ * 6.5. Add currentNode’s length to length.
+ * 6.6. Set currentNode to its next sibling.
+ */
+ length += algorithm_1.tree_nodeLength(currentNode);
+ currentNode = currentNode._nextSibling;
+ }
+ }
+ /**
+ * 7. Remove node’s contiguous exclusive Text nodes (excluding itself),
+ * in tree order.
+ */
+ for (var i_1 = 0; i_1 < textSiblings.length; i_1++) {
+ var sibling = textSiblings[i_1];
+ if (sibling._parent === null)
+ continue;
+ algorithm_1.mutation_remove(sibling, sibling._parent);
+ }
+ }
+ };
+ /**
+ * Returns a duplicate of this node, i.e., serves as a generic copy
+ * constructor for nodes. The duplicate node has no parent
+ * ({@link parentNode} returns `null`).
+ *
+ * @param deep - if `true`, recursively clone the subtree under the
+ * specified node. If `false`, clone only the node itself (and its
+ * attributes, if it is an {@link Element}).
+ */
+ NodeImpl.prototype.cloneNode = function (deep) {
+ if (deep === void 0) { deep = false; }
+ /**
+ * 1. If context object is a shadow root, then throw a "NotSupportedError"
+ * DOMException.
+ * 2. Return a clone of the context object, with the clone children flag set
+ * if deep is true.
+ */
+ if (util_1.Guard.isShadowRoot(this))
+ throw new DOMException_1.NotSupportedError();
+ return algorithm_1.node_clone(this, null, deep);
+ };
+ /**
+ * Determines if the given node is equal to this one.
+ *
+ * @param node - the node to compare with
+ */
+ NodeImpl.prototype.isEqualNode = function (node) {
+ if (node === void 0) { node = null; }
+ /**
+ * The isEqualNode(otherNode) method, when invoked, must return true if
+ * otherNode is non-null and context object equals otherNode, and false
+ * otherwise.
+ */
+ return (node !== null && algorithm_1.node_equals(this, node));
+ };
+ /**
+ * Determines if the given node is reference equal to this one.
+ *
+ * @param node - the node to compare with
+ */
+ NodeImpl.prototype.isSameNode = function (node) {
+ if (node === void 0) { node = null; }
+ /**
+ * The isSameNode(otherNode) method, when invoked, must return true if
+ * otherNode is context object, and false otherwise.
+ */
+ return (this === node);
+ };
+ /**
+ * Returns a bitmask indicating the position of the given `node`
+ * relative to this node.
+ */
+ NodeImpl.prototype.compareDocumentPosition = function (other) {
+ /**
+ * 1. If context object is other, then return zero.
+ * 2. Let node1 be other and node2 be context object.
+ * 3. Let attr1 and attr2 be null.
+ * attr1’s element.
+ */
+ if (other === this)
+ return 0;
+ var node1 = other;
+ var node2 = this;
+ var attr1 = null;
+ var attr2 = null;
+ /**
+ * 4. If node1 is an attribute, then set attr1 to node1 and node1 to
+ * attr1’s element.
+ */
+ if (util_1.Guard.isAttrNode(node1)) {
+ attr1 = node1;
+ node1 = attr1._element;
+ }
+ /**
+ * 5. If node2 is an attribute, then:
+ */
+ if (util_1.Guard.isAttrNode(node2)) {
+ /**
+ * 5.1. Set attr2 to node2 and node2 to attr2’s element.
+ */
+ attr2 = node2;
+ node2 = attr2._element;
+ /**
+ * 5.2. If attr1 and node1 are non-null, and node2 is node1, then:
+ */
+ if (attr1 && node1 && (node1 === node2)) {
+ /**
+ * 5.2. For each attr in node2’s attribute list:
+ */
+ for (var i = 0; i < node2._attributeList.length; i++) {
+ var attr = node2._attributeList[i];
+ /**
+ * 5.2.1. If attr equals attr1, then return the result of adding
+ * DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC and
+ * DOCUMENT_POSITION_PRECEDING.
+ * 5.2.2. If attr equals attr2, then return the result of adding
+ * DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC and
+ * DOCUMENT_POSITION_FOLLOWING.
+ */
+ if (algorithm_1.node_equals(attr, attr1)) {
+ return interfaces_1.Position.ImplementationSpecific | interfaces_1.Position.Preceding;
+ }
+ else if (algorithm_1.node_equals(attr, attr2)) {
+ return interfaces_1.Position.ImplementationSpecific | interfaces_1.Position.Following;
+ }
+ }
+ }
+ }
+ /**
+ * 6. If node1 or node2 is null, or node1’s root is not node2’s root, then
+ * return the result of adding DOCUMENT_POSITION_DISCONNECTED,
+ * DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, and either
+ * DOCUMENT_POSITION_PRECEDING or DOCUMENT_POSITION_FOLLOWING,
+ * with the constraint that this is to be consistent, together.
+ */
+ if (node1 === null || node2 === null ||
+ algorithm_1.tree_rootNode(node1) !== algorithm_1.tree_rootNode(node2)) {
+ // nodes are disconnected
+ // return a random result but cache the value for consistency
+ return interfaces_1.Position.Disconnected | interfaces_1.Position.ImplementationSpecific |
+ (DOMImpl_1.dom.compareCache.check(this, other) ? interfaces_1.Position.Preceding : interfaces_1.Position.Following);
+ }
+ /**
+ * 7. If node1 is an ancestor of node2 and attr1 is null, or node1 is node2
+ * and attr2 is non-null, then return the result of adding
+ * DOCUMENT_POSITION_CONTAINS to DOCUMENT_POSITION_PRECEDING.
+ */
+ if ((!attr1 && algorithm_1.tree_isAncestorOf(node2, node1)) ||
+ (attr2 && (node1 === node2))) {
+ return interfaces_1.Position.Contains | interfaces_1.Position.Preceding;
+ }
+ /**
+ * 8. If node1 is a descendant of node2 and attr2 is null, or node1 is node2
+ * and attr1 is non-null, then return the result of adding
+ * DOCUMENT_POSITION_CONTAINED_BY to DOCUMENT_POSITION_FOLLOWING.
+ */
+ if ((!attr2 && algorithm_1.tree_isDescendantOf(node2, node1)) ||
+ (attr1 && (node1 === node2))) {
+ return interfaces_1.Position.ContainedBy | interfaces_1.Position.Following;
+ }
+ /**
+ * 9. If node1 is preceding node2, then return DOCUMENT_POSITION_PRECEDING.
+ */
+ if (algorithm_1.tree_isPreceding(node2, node1))
+ return interfaces_1.Position.Preceding;
+ /**
+ * 10. Return DOCUMENT_POSITION_FOLLOWING.
+ */
+ return interfaces_1.Position.Following;
+ };
+ /**
+ * Returns `true` if given node is an inclusive descendant of this
+ * node, and `false` otherwise (including when other node is `null`).
+ *
+ * @param other - the node to check
+ */
+ NodeImpl.prototype.contains = function (other) {
+ /**
+ * The contains(other) method, when invoked, must return true if other is an
+ * inclusive descendant of context object, and false otherwise (including
+ * when other is null).
+ */
+ if (other === null)
+ return false;
+ return algorithm_1.tree_isDescendantOf(this, other, true);
+ };
+ /**
+ * Returns the prefix for a given namespace URI, if present, and
+ * `null` if not.
+ *
+ * @param namespace - the namespace to search
+ */
+ NodeImpl.prototype.lookupPrefix = function (namespace) {
+ /**
+ * 1. If namespace is null or the empty string, then return null.
+ * 2. Switch on the context object:
+ */
+ if (!namespace)
+ return null;
+ if (util_1.Guard.isElementNode(this)) {
+ /**
+ * Return the result of locating a namespace prefix for it using
+ * namespace.
+ */
+ return algorithm_1.node_locateANamespacePrefix(this, namespace);
+ }
+ else if (util_1.Guard.isDocumentNode(this)) {
+ /**
+ * Return the result of locating a namespace prefix for its document
+ * element, if its document element is non-null, and null otherwise.
+ */
+ if (this.documentElement === null) {
+ return null;
+ }
+ else {
+ return algorithm_1.node_locateANamespacePrefix(this.documentElement, namespace);
+ }
+ }
+ else if (util_1.Guard.isDocumentTypeNode(this) || util_1.Guard.isDocumentFragmentNode(this)) {
+ return null;
+ }
+ else if (util_1.Guard.isAttrNode(this)) {
+ /**
+ * Return the result of locating a namespace prefix for its element,
+ * if its element is non-null, and null otherwise.
+ */
+ if (this._element === null) {
+ return null;
+ }
+ else {
+ return algorithm_1.node_locateANamespacePrefix(this._element, namespace);
+ }
+ }
+ else {
+ /**
+ * Return the result of locating a namespace prefix for its parent
+ * element, if its parent element is non-null, and null otherwise.
+ */
+ if (this._parent !== null && util_1.Guard.isElementNode(this._parent)) {
+ return algorithm_1.node_locateANamespacePrefix(this._parent, namespace);
+ }
+ else {
+ return null;
+ }
+ }
+ };
+ /**
+ * Returns the namespace URI for a given prefix if present, and `null`
+ * if not.
+ *
+ * @param prefix - the prefix to search
+ */
+ NodeImpl.prototype.lookupNamespaceURI = function (prefix) {
+ /**
+ * 1. If prefix is the empty string, then set it to null.
+ * 2. Return the result of running locate a namespace for the context object
+ * using prefix.
+ */
+ return algorithm_1.node_locateANamespace(this, prefix || null);
+ };
+ /**
+ * Returns `true` if the namespace is the default namespace on this
+ * node or `false` if not.
+ *
+ * @param namespace - the namespace to check
+ */
+ NodeImpl.prototype.isDefaultNamespace = function (namespace) {
+ /**
+ * 1. If namespace is the empty string, then set it to null.
+ * 2. Let defaultNamespace be the result of running locate a namespace for
+ * context object using null.
+ * 3. Return true if defaultNamespace is the same as namespace, and false otherwise.
+ */
+ if (!namespace)
+ namespace = null;
+ var defaultNamespace = algorithm_1.node_locateANamespace(this, null);
+ return (defaultNamespace === namespace);
+ };
+ /**
+ * Inserts the node `newChild` before the existing child node
+ * `refChild`. If `refChild` is `null`, inserts `newChild` at the end
+ * of the list of children.
+ *
+ * If `newChild` is a {@link DocumentFragment} object, all of its
+ * children are inserted, in the same order, before `refChild`.
+ *
+ * If `newChild` is already in the tree, it is first removed.
+ *
+ * @param newChild - the node to insert
+ * @param refChild - the node before which the new node must be
+ * inserted
+ *
+ * @returns the newly inserted child node
+ */
+ NodeImpl.prototype.insertBefore = function (newChild, refChild) {
+ /**
+ * The insertBefore(node, child) method, when invoked, must return the
+ * result of pre-inserting node into context object before child.
+ */
+ return algorithm_1.mutation_preInsert(newChild, this, refChild);
+ };
+ /**
+ * Adds the node `newChild` to the end of the list of children of this
+ * node, and returns it. If `newChild` is already in the tree, it is
+ * first removed.
+ *
+ * If `newChild` is a {@link DocumentFragment} object, the entire
+ * contents of the document fragment are moved into the child list of
+ * this node.
+ *
+ * @param newChild - the node to add
+ *
+ * @returns the newly inserted child node
+ */
+ NodeImpl.prototype.appendChild = function (newChild) {
+ /**
+ * The appendChild(node) method, when invoked, must return the result of
+ * appending node to context object.
+ */
+ return algorithm_1.mutation_append(newChild, this);
+ };
+ /**
+ * Replaces the child node `oldChild` with `newChild` in the list of
+ * children, and returns the `oldChild` node. If `newChild` is already
+ * in the tree, it is first removed.
+ *
+ * @param newChild - the new node to put in the child list
+ * @param oldChild - the node being replaced in the list
+ *
+ * @returns the removed child node
+ */
+ NodeImpl.prototype.replaceChild = function (newChild, oldChild) {
+ /**
+ * The replaceChild(node, child) method, when invoked, must return the
+ * result of replacing child with node within context object.
+ */
+ return algorithm_1.mutation_replace(oldChild, newChild, this);
+ };
+ /**
+ * Removes the child node indicated by `oldChild` from the list of
+ * children, and returns it.
+ *
+ * @param oldChild - the node being removed from the list
+ *
+ * @returns the removed child node
+ */
+ NodeImpl.prototype.removeChild = function (oldChild) {
+ /**
+ * The removeChild(child) method, when invoked, must return the result of
+ * pre-removing child from context object.
+ */
+ return algorithm_1.mutation_preRemove(oldChild, this);
+ };
+ /**
+ * Gets the parent event target for the given event.
+ *
+ * @param event - an event
+ */
+ NodeImpl.prototype._getTheParent = function (event) {
+ /**
+ * A node’s get the parent algorithm, given an event, returns the node’s
+ * assigned slot, if node is assigned, and node’s parent otherwise.
+ */
+ if (util_1.Guard.isSlotable(this) && algorithm_1.shadowTree_isAssigned(this)) {
+ return this._assignedSlot;
+ }
+ else {
+ return this._parent;
+ }
+ };
+ NodeImpl.ELEMENT_NODE = 1;
+ NodeImpl.ATTRIBUTE_NODE = 2;
+ NodeImpl.TEXT_NODE = 3;
+ NodeImpl.CDATA_SECTION_NODE = 4;
+ NodeImpl.ENTITY_REFERENCE_NODE = 5;
+ NodeImpl.ENTITY_NODE = 6;
+ NodeImpl.PROCESSING_INSTRUCTION_NODE = 7;
+ NodeImpl.COMMENT_NODE = 8;
+ NodeImpl.DOCUMENT_NODE = 9;
+ NodeImpl.DOCUMENT_TYPE_NODE = 10;
+ NodeImpl.DOCUMENT_FRAGMENT_NODE = 11;
+ NodeImpl.NOTATION_NODE = 12;
+ NodeImpl.DOCUMENT_POSITION_DISCONNECTED = 0x01;
+ NodeImpl.DOCUMENT_POSITION_PRECEDING = 0x02;
+ NodeImpl.DOCUMENT_POSITION_FOLLOWING = 0x04;
+ NodeImpl.DOCUMENT_POSITION_CONTAINS = 0x08;
+ NodeImpl.DOCUMENT_POSITION_CONTAINED_BY = 0x10;
+ NodeImpl.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20;
+ return NodeImpl;
+}(EventTargetImpl_1.EventTargetImpl));
+exports.NodeImpl = NodeImpl;
+/**
+ * A performance tweak to share an empty set between all node classes. This will
+ * be overwritten by element, document and document fragment nodes to supply an
+ * actual set of nodes.
+ */
+NodeImpl.prototype._children = new util_1.EmptySet();
+/**
+ * Define constants on prototype.
+ */
+WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "ELEMENT_NODE", 1);
+WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "ATTRIBUTE_NODE", 2);
+WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "TEXT_NODE", 3);
+WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "CDATA_SECTION_NODE", 4);
+WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "ENTITY_REFERENCE_NODE", 5);
+WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "ENTITY_NODE", 6);
+WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "PROCESSING_INSTRUCTION_NODE", 7);
+WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "COMMENT_NODE", 8);
+WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "DOCUMENT_NODE", 9);
+WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "DOCUMENT_TYPE_NODE", 10);
+WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "DOCUMENT_FRAGMENT_NODE", 11);
+WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "NOTATION_NODE", 12);
+WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "DOCUMENT_POSITION_DISCONNECTED", 0x01);
+WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "DOCUMENT_POSITION_PRECEDING", 0x02);
+WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "DOCUMENT_POSITION_FOLLOWING", 0x04);
+WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "DOCUMENT_POSITION_CONTAINS", 0x08);
+WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "DOCUMENT_POSITION_CONTAINED_BY", 0x10);
+WebIDLAlgorithm_1.idl_defineConst(NodeImpl.prototype, "DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC", 0x20);
+//# sourceMappingURL=NodeImpl.js.map
+
+/***/ }),
+
+/***/ 1997:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var TraverserImpl_1 = __nccwpck_require__(9782);
+var algorithm_1 = __nccwpck_require__(61);
+/**
+ * Represents an object which can be used to iterate through the nodes
+ * of a subtree.
+ */
+var NodeIteratorImpl = /** @class */ (function (_super) {
+ __extends(NodeIteratorImpl, _super);
+ /**
+ * Initializes a new instance of `NodeIterator`.
+ */
+ function NodeIteratorImpl(root, reference, pointerBeforeReference) {
+ var _this = _super.call(this, root) || this;
+ _this._iteratorCollection = undefined;
+ _this._reference = reference;
+ _this._pointerBeforeReference = pointerBeforeReference;
+ algorithm_1.nodeIterator_iteratorList().add(_this);
+ return _this;
+ }
+ Object.defineProperty(NodeIteratorImpl.prototype, "referenceNode", {
+ /** @inheritdoc */
+ get: function () { return this._reference; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(NodeIteratorImpl.prototype, "pointerBeforeReferenceNode", {
+ /** @inheritdoc */
+ get: function () { return this._pointerBeforeReference; },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ NodeIteratorImpl.prototype.nextNode = function () {
+ /**
+ * The nextNode() method, when invoked, must return the result of
+ * traversing with the context object and next.
+ */
+ return algorithm_1.nodeIterator_traverse(this, true);
+ };
+ /** @inheritdoc */
+ NodeIteratorImpl.prototype.previousNode = function () {
+ /**
+ * The previousNode() method, when invoked, must return the result of
+ * traversing with the context object and previous.
+ */
+ return algorithm_1.nodeIterator_traverse(this, false);
+ };
+ /** @inheritdoc */
+ NodeIteratorImpl.prototype.detach = function () {
+ /**
+ * The detach() method, when invoked, must do nothing.
+ *
+ * since JS lacks weak references, we still use detach
+ */
+ algorithm_1.nodeIterator_iteratorList().delete(this);
+ };
+ /**
+ * Creates a new `NodeIterator`.
+ *
+ * @param root - iterator's root node
+ * @param reference - reference node
+ * @param pointerBeforeReference - whether the iterator is before or after the
+ * reference node
+ */
+ NodeIteratorImpl._create = function (root, reference, pointerBeforeReference) {
+ return new NodeIteratorImpl(root, reference, pointerBeforeReference);
+ };
+ return NodeIteratorImpl;
+}(TraverserImpl_1.TraverserImpl));
+exports.NodeIteratorImpl = NodeIteratorImpl;
+//# sourceMappingURL=NodeIteratorImpl.js.map
+
+/***/ }),
+
+/***/ 3728:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMImpl_1 = __nccwpck_require__(4177);
+var util_1 = __nccwpck_require__(6195);
+var algorithm_1 = __nccwpck_require__(61);
+/**
+ * Represents an ordered set of nodes.
+ */
+var NodeListImpl = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `NodeList`.
+ *
+ * @param root - root node
+ */
+ function NodeListImpl(root) {
+ this._live = true;
+ this._filter = null;
+ this._length = 0;
+ this._root = root;
+ return new Proxy(this, this);
+ }
+ Object.defineProperty(NodeListImpl.prototype, "length", {
+ /** @inheritdoc */
+ get: function () {
+ /**
+ * The length attribute must return the number of nodes represented
+ * by the collection.
+ */
+ return this._root._children.size;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ NodeListImpl.prototype.item = function (index) {
+ /**
+ * The item(index) method must return the indexth node in the collection.
+ * If there is no indexth node in the collection, then the method must
+ * return null.
+ */
+ if (index < 0 || index > this.length - 1)
+ return null;
+ if (index < this.length / 2) {
+ var i = 0;
+ var node = this._root._firstChild;
+ while (node !== null && i !== index) {
+ node = node._nextSibling;
+ i++;
+ }
+ return node;
+ }
+ else {
+ var i = this.length - 1;
+ var node = this._root._lastChild;
+ while (node !== null && i !== index) {
+ node = node._previousSibling;
+ i--;
+ }
+ return node;
+ }
+ };
+ /** @inheritdoc */
+ NodeListImpl.prototype.keys = function () {
+ var _a;
+ return _a = {},
+ _a[Symbol.iterator] = function () {
+ var index = 0;
+ return {
+ next: function () {
+ if (index === this.length) {
+ return { done: true, value: null };
+ }
+ else {
+ return { done: false, value: index++ };
+ }
+ }.bind(this)
+ };
+ }.bind(this),
+ _a;
+ };
+ /** @inheritdoc */
+ NodeListImpl.prototype.values = function () {
+ var _a;
+ return _a = {},
+ _a[Symbol.iterator] = function () {
+ var it = this[Symbol.iterator]();
+ return {
+ next: function () {
+ return it.next();
+ }
+ };
+ }.bind(this),
+ _a;
+ };
+ /** @inheritdoc */
+ NodeListImpl.prototype.entries = function () {
+ var _a;
+ return _a = {},
+ _a[Symbol.iterator] = function () {
+ var it = this[Symbol.iterator]();
+ var index = 0;
+ return {
+ next: function () {
+ var itResult = it.next();
+ if (itResult.done) {
+ return { done: true, value: null };
+ }
+ else {
+ return { done: false, value: [index++, itResult.value] };
+ }
+ }
+ };
+ }.bind(this),
+ _a;
+ };
+ /** @inheritdoc */
+ NodeListImpl.prototype[Symbol.iterator] = function () {
+ return this._root._children[Symbol.iterator]();
+ };
+ /** @inheritdoc */
+ NodeListImpl.prototype.forEach = function (callback, thisArg) {
+ var e_1, _a;
+ if (thisArg === undefined) {
+ thisArg = DOMImpl_1.dom.window;
+ }
+ var index = 0;
+ try {
+ for (var _b = __values(this._root._children), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var node = _c.value;
+ callback.call(thisArg, node, index++, this);
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ };
+ /**
+ * Implements a proxy get trap to provide array-like access.
+ */
+ NodeListImpl.prototype.get = function (target, key, receiver) {
+ if (!util_1.isString(key)) {
+ return Reflect.get(target, key, receiver);
+ }
+ var index = Number(key);
+ if (isNaN(index)) {
+ return Reflect.get(target, key, receiver);
+ }
+ return target.item(index) || undefined;
+ };
+ /**
+ * Implements a proxy set trap to provide array-like access.
+ */
+ NodeListImpl.prototype.set = function (target, key, value, receiver) {
+ if (!util_1.isString(key)) {
+ return Reflect.set(target, key, value, receiver);
+ }
+ var index = Number(key);
+ if (isNaN(index)) {
+ return Reflect.set(target, key, value, receiver);
+ }
+ var node = target.item(index) || undefined;
+ if (!node)
+ return false;
+ if (node._parent) {
+ algorithm_1.mutation_replace(node, value, node._parent);
+ return true;
+ }
+ else {
+ return false;
+ }
+ };
+ /**
+ * Creates a new `NodeList`.
+ *
+ * @param root - root node
+ */
+ NodeListImpl._create = function (root) {
+ return new NodeListImpl(root);
+ };
+ return NodeListImpl;
+}());
+exports.NodeListImpl = NodeListImpl;
+//# sourceMappingURL=NodeListImpl.js.map
+
+/***/ }),
+
+/***/ 5306:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMImpl_1 = __nccwpck_require__(4177);
+var util_1 = __nccwpck_require__(6195);
+/**
+ * Represents an ordered list of nodes.
+ * This is a static implementation of `NodeList`.
+ */
+var NodeListStaticImpl = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `NodeList`.
+ *
+ * @param root - root node
+ */
+ function NodeListStaticImpl(root) {
+ this._live = false;
+ this._items = [];
+ this._length = 0;
+ this._root = root;
+ this._items = [];
+ this._filter = function (node) { return true; };
+ return new Proxy(this, this);
+ }
+ Object.defineProperty(NodeListStaticImpl.prototype, "length", {
+ /** @inheritdoc */
+ get: function () {
+ /**
+ * The length attribute must return the number of nodes represented by
+ * the collection.
+ */
+ return this._items.length;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ NodeListStaticImpl.prototype.item = function (index) {
+ /**
+ * The item(index) method must return the indexth node in the collection.
+ * If there is no indexth node in the collection, then the method must
+ * return null.
+ */
+ if (index < 0 || index > this.length - 1)
+ return null;
+ return this._items[index];
+ };
+ /** @inheritdoc */
+ NodeListStaticImpl.prototype.keys = function () {
+ var _a;
+ return _a = {},
+ _a[Symbol.iterator] = function () {
+ var index = 0;
+ return {
+ next: function () {
+ if (index === this.length) {
+ return { done: true, value: null };
+ }
+ else {
+ return { done: false, value: index++ };
+ }
+ }.bind(this)
+ };
+ }.bind(this),
+ _a;
+ };
+ /** @inheritdoc */
+ NodeListStaticImpl.prototype.values = function () {
+ var _a;
+ return _a = {},
+ _a[Symbol.iterator] = function () {
+ var it = this[Symbol.iterator]();
+ return {
+ next: function () {
+ return it.next();
+ }
+ };
+ }.bind(this),
+ _a;
+ };
+ /** @inheritdoc */
+ NodeListStaticImpl.prototype.entries = function () {
+ var _a;
+ return _a = {},
+ _a[Symbol.iterator] = function () {
+ var it = this[Symbol.iterator]();
+ var index = 0;
+ return {
+ next: function () {
+ var itResult = it.next();
+ if (itResult.done) {
+ return { done: true, value: null };
+ }
+ else {
+ return { done: false, value: [index++, itResult.value] };
+ }
+ }
+ };
+ }.bind(this),
+ _a;
+ };
+ /** @inheritdoc */
+ NodeListStaticImpl.prototype[Symbol.iterator] = function () {
+ var it = this._items[Symbol.iterator]();
+ return {
+ next: function () {
+ return it.next();
+ }
+ };
+ };
+ /** @inheritdoc */
+ NodeListStaticImpl.prototype.forEach = function (callback, thisArg) {
+ var e_1, _a;
+ if (thisArg === undefined) {
+ thisArg = DOMImpl_1.dom.window;
+ }
+ var index = 0;
+ try {
+ for (var _b = __values(this._items), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var node = _c.value;
+ callback.call(thisArg, node, index++, this);
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ };
+ /**
+ * Implements a proxy get trap to provide array-like access.
+ */
+ NodeListStaticImpl.prototype.get = function (target, key, receiver) {
+ if (!util_1.isString(key)) {
+ return Reflect.get(target, key, receiver);
+ }
+ var index = Number(key);
+ if (isNaN(index)) {
+ return Reflect.get(target, key, receiver);
+ }
+ return target._items[index] || undefined;
+ };
+ /**
+ * Implements a proxy set trap to provide array-like access.
+ */
+ NodeListStaticImpl.prototype.set = function (target, key, value, receiver) {
+ if (!util_1.isString(key)) {
+ return Reflect.set(target, key, value, receiver);
+ }
+ var index = Number(key);
+ if (isNaN(index)) {
+ return Reflect.set(target, key, value, receiver);
+ }
+ if (index >= 0 && index < target._items.length) {
+ target._items[index] = value;
+ return true;
+ }
+ else {
+ return false;
+ }
+ };
+ /**
+ * Creates a new `NodeList`.
+ *
+ * @param root - root node
+ * @param items - a list of items to initialize the list
+ */
+ NodeListStaticImpl._create = function (root, items) {
+ var list = new NodeListStaticImpl(root);
+ list._items = items;
+ return list;
+ };
+ return NodeListStaticImpl;
+}());
+exports.NodeListStaticImpl = NodeListStaticImpl;
+//# sourceMappingURL=NodeListStaticImpl.js.map
+
+/***/ }),
+
+/***/ 1032:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var util_1 = __nccwpck_require__(5282);
+/**
+ * Represents a mixin that extends child nodes that can have siblings
+ * other than doctypes. This mixin is implemented by {@link Element} and
+ * {@link CharacterData}.
+ */
+var NonDocumentTypeChildNodeImpl = /** @class */ (function () {
+ function NonDocumentTypeChildNodeImpl() {
+ }
+ Object.defineProperty(NonDocumentTypeChildNodeImpl.prototype, "previousElementSibling", {
+ /** @inheritdoc */
+ get: function () {
+ /**
+ * The previousElementSibling attribute’s getter must return the first
+ * preceding sibling that is an element, and null otherwise.
+ */
+ var node = util_1.Cast.asNode(this)._previousSibling;
+ while (node) {
+ if (util_1.Guard.isElementNode(node))
+ return node;
+ else
+ node = node._previousSibling;
+ }
+ return null;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(NonDocumentTypeChildNodeImpl.prototype, "nextElementSibling", {
+ /** @inheritdoc */
+ get: function () {
+ /**
+ * The nextElementSibling attribute’s getter must return the first
+ * following sibling that is an element, and null otherwise.
+ */
+ var node = util_1.Cast.asNode(this)._nextSibling;
+ while (node) {
+ if (util_1.Guard.isElementNode(node))
+ return node;
+ else
+ node = node._nextSibling;
+ }
+ return null;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return NonDocumentTypeChildNodeImpl;
+}());
+exports.NonDocumentTypeChildNodeImpl = NonDocumentTypeChildNodeImpl;
+//# sourceMappingURL=NonDocumentTypeChildNodeImpl.js.map
+
+/***/ }),
+
+/***/ 733:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var util_1 = __nccwpck_require__(5282);
+var algorithm_1 = __nccwpck_require__(61);
+/**
+ * Represents a mixin that extends non-element parent nodes. This mixin
+ * is implemented by {@link Document} and {@link DocumentFragment}.
+ */
+var NonElementParentNodeImpl = /** @class */ (function () {
+ function NonElementParentNodeImpl() {
+ }
+ /** @inheritdoc */
+ NonElementParentNodeImpl.prototype.getElementById = function (id) {
+ /**
+ * The getElementById(elementId) method, when invoked, must return the first
+ * element, in tree order, within the context object’s descendants,
+ * whose ID is elementId, and null if there is no such element otherwise.
+ */
+ var ele = algorithm_1.tree_getFirstDescendantNode(util_1.Cast.asNode(this), false, false, function (e) { return util_1.Guard.isElementNode(e); });
+ while (ele !== null) {
+ if (ele._uniqueIdentifier === id) {
+ return ele;
+ }
+ ele = algorithm_1.tree_getNextDescendantNode(util_1.Cast.asNode(this), ele, false, false, function (e) { return util_1.Guard.isElementNode(e); });
+ }
+ return null;
+ };
+ return NonElementParentNodeImpl;
+}());
+exports.NonElementParentNodeImpl = NonElementParentNodeImpl;
+//# sourceMappingURL=NonElementParentNodeImpl.js.map
+
+/***/ }),
+
+/***/ 5988:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var util_1 = __nccwpck_require__(5282);
+var algorithm_1 = __nccwpck_require__(61);
+/**
+ * Represents a mixin that extends parent nodes that can have children.
+ * This mixin is implemented by {@link Element}, {@link Document} and
+ * {@link DocumentFragment}.
+ */
+var ParentNodeImpl = /** @class */ (function () {
+ function ParentNodeImpl() {
+ }
+ Object.defineProperty(ParentNodeImpl.prototype, "children", {
+ /** @inheritdoc */
+ get: function () {
+ /**
+ * The children attribute’s getter must return an HTMLCollection collection
+ * rooted at context object matching only element children.
+ */
+ return algorithm_1.create_htmlCollection(util_1.Cast.asNode(this));
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParentNodeImpl.prototype, "firstElementChild", {
+ /** @inheritdoc */
+ get: function () {
+ /**
+ * The firstElementChild attribute’s getter must return the first child
+ * that is an element, and null otherwise.
+ */
+ var node = util_1.Cast.asNode(this)._firstChild;
+ while (node) {
+ if (util_1.Guard.isElementNode(node))
+ return node;
+ else
+ node = node._nextSibling;
+ }
+ return null;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParentNodeImpl.prototype, "lastElementChild", {
+ /** @inheritdoc */
+ get: function () {
+ /**
+ * The lastElementChild attribute’s getter must return the last child that
+ * is an element, and null otherwise.
+ */
+ var node = util_1.Cast.asNode(this)._lastChild;
+ while (node) {
+ if (util_1.Guard.isElementNode(node))
+ return node;
+ else
+ node = node._previousSibling;
+ }
+ return null;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParentNodeImpl.prototype, "childElementCount", {
+ /** @inheritdoc */
+ get: function () {
+ var e_1, _a;
+ /**
+ * The childElementCount attribute’s getter must return the number of
+ * children of context object that are elements.
+ */
+ var count = 0;
+ try {
+ for (var _b = __values(util_1.Cast.asNode(this)._children), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var childNode = _c.value;
+ if (util_1.Guard.isElementNode(childNode))
+ count++;
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ return count;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ ParentNodeImpl.prototype.prepend = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ /**
+ * 1. Let node be the result of converting nodes into a node given nodes
+ * and context object’s node document.
+ * 2. Pre-insert node into context object before the context object’s first
+ * child.
+ */
+ var node = util_1.Cast.asNode(this);
+ var childNode = algorithm_1.parentNode_convertNodesIntoANode(nodes, node._nodeDocument);
+ algorithm_1.mutation_preInsert(childNode, node, node._firstChild);
+ };
+ /** @inheritdoc */
+ ParentNodeImpl.prototype.append = function () {
+ var nodes = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ nodes[_i] = arguments[_i];
+ }
+ /**
+ * 1. Let node be the result of converting nodes into a node given nodes
+ * and context object’s node document.
+ * 2. Append node to context object.
+ */
+ var node = util_1.Cast.asNode(this);
+ var childNode = algorithm_1.parentNode_convertNodesIntoANode(nodes, node._nodeDocument);
+ algorithm_1.mutation_append(childNode, node);
+ };
+ /** @inheritdoc */
+ ParentNodeImpl.prototype.querySelector = function (selectors) {
+ /**
+ * The querySelector(selectors) method, when invoked, must return the first
+ * result of running scope-match a selectors string selectors against
+ * context object, if the result is not an empty list, and null otherwise.
+ */
+ var node = util_1.Cast.asNode(this);
+ var result = algorithm_1.selectors_scopeMatchASelectorsString(selectors, node);
+ return (result.length === 0 ? null : result[0]);
+ };
+ /** @inheritdoc */
+ ParentNodeImpl.prototype.querySelectorAll = function (selectors) {
+ /**
+ * The querySelectorAll(selectors) method, when invoked, must return the
+ * static result of running scope-match a selectors string selectors against
+ * context object.
+ */
+ var node = util_1.Cast.asNode(this);
+ var result = algorithm_1.selectors_scopeMatchASelectorsString(selectors, node);
+ return algorithm_1.create_nodeListStatic(node, result);
+ };
+ return ParentNodeImpl;
+}());
+exports.ParentNodeImpl = ParentNodeImpl;
+//# sourceMappingURL=ParentNodeImpl.js.map
+
+/***/ }),
+
+/***/ 9430:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(7305);
+var CharacterDataImpl_1 = __nccwpck_require__(5330);
+var WebIDLAlgorithm_1 = __nccwpck_require__(5457);
+/**
+ * Represents a processing instruction node.
+ */
+var ProcessingInstructionImpl = /** @class */ (function (_super) {
+ __extends(ProcessingInstructionImpl, _super);
+ /**
+ * Initializes a new instance of `ProcessingInstruction`.
+ */
+ function ProcessingInstructionImpl(target, data) {
+ var _this = _super.call(this, data) || this;
+ _this._target = target;
+ return _this;
+ }
+ Object.defineProperty(ProcessingInstructionImpl.prototype, "target", {
+ /**
+ * Gets the target of the {@link ProcessingInstruction} node.
+ */
+ get: function () { return this._target; },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Creates a new `ProcessingInstruction`.
+ *
+ * @param document - owner document
+ * @param target - instruction target
+ * @param data - node contents
+ */
+ ProcessingInstructionImpl._create = function (document, target, data) {
+ var node = new ProcessingInstructionImpl(target, data);
+ node._nodeDocument = document;
+ return node;
+ };
+ return ProcessingInstructionImpl;
+}(CharacterDataImpl_1.CharacterDataImpl));
+exports.ProcessingInstructionImpl = ProcessingInstructionImpl;
+/**
+ * Initialize prototype properties
+ */
+WebIDLAlgorithm_1.idl_defineConst(ProcessingInstructionImpl.prototype, "_nodeType", interfaces_1.NodeType.ProcessingInstruction);
+//# sourceMappingURL=ProcessingInstructionImpl.js.map
+
+/***/ }),
+
+/***/ 166:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DOMImpl_1 = __nccwpck_require__(4177);
+var interfaces_1 = __nccwpck_require__(7305);
+var AbstractRangeImpl_1 = __nccwpck_require__(7126);
+var DOMException_1 = __nccwpck_require__(3166);
+var algorithm_1 = __nccwpck_require__(61);
+var WebIDLAlgorithm_1 = __nccwpck_require__(5457);
+var util_1 = __nccwpck_require__(5282);
+/**
+ * Represents a live range.
+ */
+var RangeImpl = /** @class */ (function (_super) {
+ __extends(RangeImpl, _super);
+ /**
+ * Initializes a new instance of `Range`.
+ */
+ function RangeImpl() {
+ var _this = _super.call(this) || this;
+ /**
+ * The Range() constructor, when invoked, must return a new live range with
+ * (current global object’s associated Document, 0) as its start and end.
+ */
+ var doc = DOMImpl_1.dom.window._associatedDocument;
+ _this._start = [doc, 0];
+ _this._end = [doc, 0];
+ DOMImpl_1.dom.rangeList.add(_this);
+ return _this;
+ }
+ Object.defineProperty(RangeImpl.prototype, "commonAncestorContainer", {
+ /** @inheritdoc */
+ get: function () {
+ /**
+ * 1. Let container be start node.
+ * 2. While container is not an inclusive ancestor of end node, let
+ * container be container’s parent.
+ * 3. Return container.
+ */
+ var container = this._start[0];
+ while (!algorithm_1.tree_isAncestorOf(this._end[0], container, true)) {
+ if (container._parent === null) {
+ throw new Error("Parent node is null.");
+ }
+ container = container._parent;
+ }
+ return container;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ RangeImpl.prototype.setStart = function (node, offset) {
+ /**
+ * The setStart(node, offset) method, when invoked, must set the start of
+ * context object to boundary point (node, offset).
+ */
+ algorithm_1.range_setTheStart(this, node, offset);
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.setEnd = function (node, offset) {
+ /**
+ * The setEnd(node, offset) method, when invoked, must set the end of
+ * context object to boundary point (node, offset).
+ */
+ algorithm_1.range_setTheEnd(this, node, offset);
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.setStartBefore = function (node) {
+ /**
+ * 1. Let parent be node’s parent.
+ * 2. If parent is null, then throw an "InvalidNodeTypeError" DOMException.
+ * 3. Set the start of the context object to boundary point
+ * (parent, node’s index).
+ */
+ var parent = node._parent;
+ if (parent === null)
+ throw new DOMException_1.InvalidNodeTypeError();
+ algorithm_1.range_setTheStart(this, parent, algorithm_1.tree_index(node));
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.setStartAfter = function (node) {
+ /**
+ * 1. Let parent be node’s parent.
+ * 2. If parent is null, then throw an "InvalidNodeTypeError" DOMException.
+ * 3. Set the start of the context object to boundary point
+ * (parent, node’s index plus 1).
+ */
+ var parent = node._parent;
+ if (parent === null)
+ throw new DOMException_1.InvalidNodeTypeError();
+ algorithm_1.range_setTheStart(this, parent, algorithm_1.tree_index(node) + 1);
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.setEndBefore = function (node) {
+ /**
+ * 1. Let parent be node’s parent.
+ * 2. If parent is null, then throw an "InvalidNodeTypeError" DOMException.
+ * 3. Set the end of the context object to boundary point
+ * (parent, node’s index).
+ */
+ var parent = node._parent;
+ if (parent === null)
+ throw new DOMException_1.InvalidNodeTypeError();
+ algorithm_1.range_setTheEnd(this, parent, algorithm_1.tree_index(node));
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.setEndAfter = function (node) {
+ /**
+ * 1. Let parent be node’s parent.
+ * 2. If parent is null, then throw an "InvalidNodeTypeError" DOMException.
+ * 3. Set the end of the context object to boundary point
+ * (parent, node’s index plus 1).
+ */
+ var parent = node._parent;
+ if (parent === null)
+ throw new DOMException_1.InvalidNodeTypeError();
+ algorithm_1.range_setTheEnd(this, parent, algorithm_1.tree_index(node) + 1);
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.collapse = function (toStart) {
+ /**
+ * The collapse(toStart) method, when invoked, must if toStart is true,
+ * set end to start, and set start to end otherwise.
+ */
+ if (toStart) {
+ this._end = this._start;
+ }
+ else {
+ this._start = this._end;
+ }
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.selectNode = function (node) {
+ /**
+ * The selectNode(node) method, when invoked, must select node within
+ * context object.
+ */
+ algorithm_1.range_select(node, this);
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.selectNodeContents = function (node) {
+ /**
+ * 1. If node is a doctype, throw an "InvalidNodeTypeError" DOMException.
+ * 2. Let length be the length of node.
+ * 3. Set start to the boundary point (node, 0).
+ * 4. Set end to the boundary point (node, length).
+ */
+ if (util_1.Guard.isDocumentTypeNode(node))
+ throw new DOMException_1.InvalidNodeTypeError();
+ var length = algorithm_1.tree_nodeLength(node);
+ this._start = [node, 0];
+ this._end = [node, length];
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.compareBoundaryPoints = function (how, sourceRange) {
+ /**
+ * 1. If how is not one of
+ * - START_TO_START,
+ * - START_TO_END,
+ * - END_TO_END, and
+ * - END_TO_START,
+ * then throw a "NotSupportedError" DOMException.
+ */
+ if (how !== interfaces_1.HowToCompare.StartToStart && how !== interfaces_1.HowToCompare.StartToEnd &&
+ how !== interfaces_1.HowToCompare.EndToEnd && how !== interfaces_1.HowToCompare.EndToStart)
+ throw new DOMException_1.NotSupportedError();
+ /**
+ * 2. If context object’s root is not the same as sourceRange’s root,
+ * then throw a "WrongDocumentError" DOMException.
+ */
+ if (algorithm_1.range_root(this) !== algorithm_1.range_root(sourceRange))
+ throw new DOMException_1.WrongDocumentError();
+ /**
+ * 3. If how is:
+ * - START_TO_START:
+ * Let this point be the context object’s start. Let other point be
+ * sourceRange’s start.
+ * - START_TO_END:
+ * Let this point be the context object’s end. Let other point be
+ * sourceRange’s start.
+ * - END_TO_END:
+ * Let this point be the context object’s end. Let other point be
+ * sourceRange’s end.
+ * - END_TO_START:
+ * Let this point be the context object’s start. Let other point be
+ * sourceRange’s end.
+ */
+ var thisPoint;
+ var otherPoint;
+ switch (how) {
+ case interfaces_1.HowToCompare.StartToStart:
+ thisPoint = this._start;
+ otherPoint = sourceRange._start;
+ break;
+ case interfaces_1.HowToCompare.StartToEnd:
+ thisPoint = this._end;
+ otherPoint = sourceRange._start;
+ break;
+ case interfaces_1.HowToCompare.EndToEnd:
+ thisPoint = this._end;
+ otherPoint = sourceRange._end;
+ break;
+ case interfaces_1.HowToCompare.EndToStart:
+ thisPoint = this._start;
+ otherPoint = sourceRange._end;
+ break;
+ /* istanbul ignore next */
+ default:
+ throw new DOMException_1.NotSupportedError();
+ }
+ /**
+ * 4. If the position of this point relative to other point is
+ * - before
+ * Return −1.
+ * - equal
+ * Return 0.
+ * - after
+ * Return 1.
+ */
+ var position = algorithm_1.boundaryPoint_position(thisPoint, otherPoint);
+ if (position === interfaces_1.BoundaryPosition.Before) {
+ return -1;
+ }
+ else if (position === interfaces_1.BoundaryPosition.After) {
+ return 1;
+ }
+ else {
+ return 0;
+ }
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.deleteContents = function () {
+ var e_1, _a, e_2, _b;
+ /**
+ * 1. If the context object is collapsed, then return.
+ * 2. Let original start node, original start offset, original end node,
+ * and original end offset be the context object’s start node,
+ * start offset, end node, and end offset, respectively.
+ */
+ if (algorithm_1.range_collapsed(this))
+ return;
+ var originalStartNode = this._startNode;
+ var originalStartOffset = this._startOffset;
+ var originalEndNode = this._endNode;
+ var originalEndOffset = this._endOffset;
+ /**
+ * 3. If original start node and original end node are the same, and they
+ * are a Text, ProcessingInstruction, or Comment node, replace data with
+ * node original start node, offset original start offset, count original
+ * end offset minus original start offset, and data the empty string,
+ * and then return.
+ */
+ if (originalStartNode === originalEndNode &&
+ util_1.Guard.isCharacterDataNode(originalStartNode)) {
+ algorithm_1.characterData_replaceData(originalStartNode, originalStartOffset, originalEndOffset - originalStartOffset, '');
+ return;
+ }
+ /**
+ * 4. Let nodes to remove be a list of all the nodes that are contained in
+ * the context object, in tree order, omitting any node whose parent is also
+ * contained in the context object.
+ */
+ var nodesToRemove = [];
+ try {
+ for (var _c = __values(algorithm_1.range_getContainedNodes(this)), _d = _c.next(); !_d.done; _d = _c.next()) {
+ var node = _d.value;
+ var parent = node._parent;
+ if (parent !== null && algorithm_1.range_isContained(parent, this)) {
+ continue;
+ }
+ nodesToRemove.push(node);
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ var newNode;
+ var newOffset;
+ if (algorithm_1.tree_isAncestorOf(originalEndNode, originalStartNode, true)) {
+ /**
+ * 5. If original start node is an inclusive ancestor of original end
+ * node, set new node to original start node and new offset to original
+ * start offset.
+ */
+ newNode = originalStartNode;
+ newOffset = originalStartOffset;
+ }
+ else {
+ /**
+ * 6. Otherwise:
+ * 6.1. Let reference node equal original start node.
+ * 6.2. While reference node’s parent is not null and is not an inclusive
+ * ancestor of original end node, set reference node to its parent.
+ * 6.3. Set new node to the parent of reference node, and new offset to
+ * one plus the index of reference node.
+ */
+ var referenceNode = originalStartNode;
+ while (referenceNode._parent !== null &&
+ !algorithm_1.tree_isAncestorOf(originalEndNode, referenceNode._parent, true)) {
+ referenceNode = referenceNode._parent;
+ }
+ /* istanbul ignore next */
+ if (referenceNode._parent === null) {
+ throw new Error("Parent node is null.");
+ }
+ newNode = referenceNode._parent;
+ newOffset = algorithm_1.tree_index(referenceNode) + 1;
+ }
+ /**
+ * 7. If original start node is a Text, ProcessingInstruction, or Comment
+ * node, replace data with node original start node, offset original start
+ * offset, count original start node’s length minus original start offset,
+ * data the empty string.
+ */
+ if (util_1.Guard.isCharacterDataNode(originalStartNode)) {
+ algorithm_1.characterData_replaceData(originalStartNode, originalStartOffset, algorithm_1.tree_nodeLength(originalStartNode) - originalStartOffset, '');
+ }
+ try {
+ /**
+ * 8. For each node in nodes to remove, in tree order, remove node from its
+ * parent.
+ */
+ for (var nodesToRemove_1 = __values(nodesToRemove), nodesToRemove_1_1 = nodesToRemove_1.next(); !nodesToRemove_1_1.done; nodesToRemove_1_1 = nodesToRemove_1.next()) {
+ var node = nodesToRemove_1_1.value;
+ /* istanbul ignore else */
+ if (node._parent) {
+ algorithm_1.mutation_remove(node, node._parent);
+ }
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (nodesToRemove_1_1 && !nodesToRemove_1_1.done && (_b = nodesToRemove_1.return)) _b.call(nodesToRemove_1);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ /**
+ * 9. If original end node is a Text, ProcessingInstruction, or Comment
+ * node, replace data with node original end node, offset 0, count original
+ * end offset and data the empty string.
+ */
+ if (util_1.Guard.isCharacterDataNode(originalEndNode)) {
+ algorithm_1.characterData_replaceData(originalEndNode, 0, originalEndOffset, '');
+ }
+ /**
+ * 10. Set start and end to (new node, new offset).
+ */
+ this._start = [newNode, newOffset];
+ this._end = [newNode, newOffset];
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.extractContents = function () {
+ /**
+ * The extractContents() method, when invoked, must return the result of
+ * extracting the context object.
+ */
+ return algorithm_1.range_extract(this);
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.cloneContents = function () {
+ /**
+ * The cloneContents() method, when invoked, must return the result of
+ * cloning the contents of the context object.
+ */
+ return algorithm_1.range_cloneTheContents(this);
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.insertNode = function (node) {
+ /**
+ * The insertNode(node) method, when invoked, must insert node into the
+ * context object.
+ */
+ return algorithm_1.range_insert(node, this);
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.surroundContents = function (newParent) {
+ var e_3, _a;
+ try {
+ /**
+ * 1. If a non-Text node is partially contained in the context object, then
+ * throw an "InvalidStateError" DOMException.
+ */
+ for (var _b = __values(algorithm_1.range_getPartiallyContainedNodes(this)), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var node = _c.value;
+ if (!util_1.Guard.isTextNode(node)) {
+ throw new DOMException_1.InvalidStateError();
+ }
+ }
+ }
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_3) throw e_3.error; }
+ }
+ /**
+ * 2. If newParent is a Document, DocumentType, or DocumentFragment node,
+ * then throw an "InvalidNodeTypeError" DOMException.
+ */
+ if (util_1.Guard.isDocumentNode(newParent) ||
+ util_1.Guard.isDocumentTypeNode(newParent) ||
+ util_1.Guard.isDocumentFragmentNode(newParent)) {
+ throw new DOMException_1.InvalidNodeTypeError();
+ }
+ /**
+ * 3. Let fragment be the result of extracting the context object.
+ */
+ var fragment = algorithm_1.range_extract(this);
+ /**
+ * 4. If newParent has children, then replace all with null within newParent.
+ */
+ if ((newParent)._children.size !== 0) {
+ algorithm_1.mutation_replaceAll(null, newParent);
+ }
+ /**
+ * 5. Insert newParent into the context object.
+ * 6. Append fragment to newParent.
+ */
+ algorithm_1.range_insert(newParent, this);
+ algorithm_1.mutation_append(fragment, newParent);
+ /**
+ * 7. Select newParent within the context object.
+ */
+ algorithm_1.range_select(newParent, this);
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.cloneRange = function () {
+ /**
+ * The cloneRange() method, when invoked, must return a new live range with
+ * the same start and end as the context object.
+ */
+ return algorithm_1.create_range(this._start, this._end);
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.detach = function () {
+ /**
+ * The detach() method, when invoked, must do nothing.
+ *
+ * since JS lacks weak references, we still use detach
+ */
+ DOMImpl_1.dom.rangeList.delete(this);
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.isPointInRange = function (node, offset) {
+ /**
+ * 1. If node’s root is different from the context object’s root, return false.
+ */
+ if (algorithm_1.tree_rootNode(node) !== algorithm_1.range_root(this)) {
+ return false;
+ }
+ /**
+ * 2. If node is a doctype, then throw an "InvalidNodeTypeError" DOMException.
+ * 3. If offset is greater than node’s length, then throw an
+ * "IndexSizeError" DOMException.
+ */
+ if (util_1.Guard.isDocumentTypeNode(node))
+ throw new DOMException_1.InvalidNodeTypeError();
+ if (offset > algorithm_1.tree_nodeLength(node))
+ throw new DOMException_1.IndexSizeError();
+ /**
+ * 4. If (node, offset) is before start or after end, return false.
+ */
+ var bp = [node, offset];
+ if (algorithm_1.boundaryPoint_position(bp, this._start) === interfaces_1.BoundaryPosition.Before ||
+ algorithm_1.boundaryPoint_position(bp, this._end) === interfaces_1.BoundaryPosition.After) {
+ return false;
+ }
+ /**
+ * 5. Return true.
+ */
+ return true;
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.comparePoint = function (node, offset) {
+ /**
+ * 1. If node’s root is different from the context object’s root, then throw
+ * a "WrongDocumentError" DOMException.
+ * 2. If node is a doctype, then throw an "InvalidNodeTypeError" DOMException.
+ * 3. If offset is greater than node’s length, then throw an
+ * "IndexSizeError" DOMException.
+ */
+ if (algorithm_1.tree_rootNode(node) !== algorithm_1.range_root(this))
+ throw new DOMException_1.WrongDocumentError();
+ if (util_1.Guard.isDocumentTypeNode(node))
+ throw new DOMException_1.InvalidNodeTypeError();
+ if (offset > algorithm_1.tree_nodeLength(node))
+ throw new DOMException_1.IndexSizeError();
+ /**
+ * 4. If (node, offset) is before start, return −1.
+ * 5. If (node, offset) is after end, return 1.
+ * 6. Return 0.
+ */
+ var bp = [node, offset];
+ if (algorithm_1.boundaryPoint_position(bp, this._start) === interfaces_1.BoundaryPosition.Before) {
+ return -1;
+ }
+ else if (algorithm_1.boundaryPoint_position(bp, this._end) === interfaces_1.BoundaryPosition.After) {
+ return 1;
+ }
+ else {
+ return 0;
+ }
+ };
+ /** @inheritdoc */
+ RangeImpl.prototype.intersectsNode = function (node) {
+ /**
+ * 1. If node’s root is different from the context object’s root, return false.
+ */
+ if (algorithm_1.tree_rootNode(node) !== algorithm_1.range_root(this)) {
+ return false;
+ }
+ /**
+ * 2. Let parent be node’s parent.
+ * 3. If parent is null, return true.
+ */
+ var parent = node._parent;
+ if (parent === null)
+ return true;
+ /**
+ * 4. Let offset be node’s index.
+ */
+ var offset = algorithm_1.tree_index(node);
+ /**
+ * 5. If (parent, offset) is before end and (parent, offset plus 1) is
+ * after start, return true.
+ */
+ if (algorithm_1.boundaryPoint_position([parent, offset], this._end) === interfaces_1.BoundaryPosition.Before &&
+ algorithm_1.boundaryPoint_position([parent, offset + 1], this._start) === interfaces_1.BoundaryPosition.After) {
+ return true;
+ }
+ /**
+ * 6. Return false.
+ */
+ return false;
+ };
+ RangeImpl.prototype.toString = function () {
+ var e_4, _a;
+ /**
+ * 1. Let s be the empty string.
+ */
+ var s = '';
+ /**
+ * 2. If the context object’s start node is the context object’s end node
+ * and it is a Text node, then return the substring of that Text node’s data
+ * beginning at the context object’s start offset and ending at the context
+ * object’s end offset.
+ */
+ if (this._startNode === this._endNode && util_1.Guard.isTextNode(this._startNode)) {
+ return this._startNode._data.substring(this._startOffset, this._endOffset);
+ }
+ /**
+ * 3. If the context object’s start node is a Text node, then append the
+ * substring of that node’s data from the context object’s start offset
+ * until the end to s.
+ */
+ if (util_1.Guard.isTextNode(this._startNode)) {
+ s += this._startNode._data.substring(this._startOffset);
+ }
+ try {
+ /**
+ * 4. Append the concatenation of the data of all Text nodes that are
+ * contained in the context object, in tree order, to s.
+ */
+ for (var _b = __values(algorithm_1.range_getContainedNodes(this)), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var child = _c.value;
+ if (util_1.Guard.isTextNode(child)) {
+ s += child._data;
+ }
+ }
+ }
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_4) throw e_4.error; }
+ }
+ /**
+ * 5. If the context object’s end node is a Text node, then append the
+ * substring of that node’s data from its start until the context object’s
+ * end offset to s.
+ */
+ if (util_1.Guard.isTextNode(this._endNode)) {
+ s += this._endNode._data.substring(0, this._endOffset);
+ }
+ /**
+ * 6. Return s.
+ */
+ return s;
+ };
+ /**
+ * Creates a new `Range`.
+ *
+ * @param start - start point
+ * @param end - end point
+ */
+ RangeImpl._create = function (start, end) {
+ var range = new RangeImpl();
+ if (start)
+ range._start = start;
+ if (end)
+ range._end = end;
+ return range;
+ };
+ RangeImpl.START_TO_START = 0;
+ RangeImpl.START_TO_END = 1;
+ RangeImpl.END_TO_END = 2;
+ RangeImpl.END_TO_START = 3;
+ return RangeImpl;
+}(AbstractRangeImpl_1.AbstractRangeImpl));
+exports.RangeImpl = RangeImpl;
+/**
+ * Define constants on prototype.
+ */
+WebIDLAlgorithm_1.idl_defineConst(RangeImpl.prototype, "START_TO_START", 0);
+WebIDLAlgorithm_1.idl_defineConst(RangeImpl.prototype, "START_TO_END", 1);
+WebIDLAlgorithm_1.idl_defineConst(RangeImpl.prototype, "END_TO_END", 2);
+WebIDLAlgorithm_1.idl_defineConst(RangeImpl.prototype, "END_TO_START", 3);
+//# sourceMappingURL=RangeImpl.js.map
+
+/***/ }),
+
+/***/ 1911:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DocumentFragmentImpl_1 = __nccwpck_require__(2585);
+var util_1 = __nccwpck_require__(6195);
+var algorithm_1 = __nccwpck_require__(61);
+/**
+ * Represents a shadow root.
+ */
+var ShadowRootImpl = /** @class */ (function (_super) {
+ __extends(ShadowRootImpl, _super);
+ /**
+ * Initializes a new instance of `ShadowRoot`.
+ *
+ * @param host - shadow root's host element
+ * @param mode - shadow root's mode
+ */
+ function ShadowRootImpl(host, mode) {
+ var _this = _super.call(this) || this;
+ _this._host = host;
+ _this._mode = mode;
+ return _this;
+ }
+ Object.defineProperty(ShadowRootImpl.prototype, "mode", {
+ /** @inheritdoc */
+ get: function () { return this._mode; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ShadowRootImpl.prototype, "host", {
+ /** @inheritdoc */
+ get: function () { return this._host; },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Gets the parent event target for the given event.
+ *
+ * @param event - an event
+ */
+ ShadowRootImpl.prototype._getTheParent = function (event) {
+ /**
+ * A shadow root’s get the parent algorithm, given an event, returns null
+ * if event’s composed flag is unset and shadow root is the root of
+ * event’s path’s first struct’s invocation target, and shadow root’s host
+ * otherwise.
+ */
+ if (!event._composedFlag && !util_1.isEmpty(event._path) &&
+ algorithm_1.tree_rootNode(event._path[0].invocationTarget) === this) {
+ return null;
+ }
+ else {
+ return this._host;
+ }
+ };
+ // MIXIN: DocumentOrShadowRoot
+ // No elements
+ /**
+ * Creates a new `ShadowRoot`.
+ *
+ * @param document - owner document
+ * @param host - shadow root's host element
+ */
+ ShadowRootImpl._create = function (document, host) {
+ return new ShadowRootImpl(host, "closed");
+ };
+ return ShadowRootImpl;
+}(DocumentFragmentImpl_1.DocumentFragmentImpl));
+exports.ShadowRootImpl = ShadowRootImpl;
+//# sourceMappingURL=ShadowRootImpl.js.map
+
+/***/ }),
+
+/***/ 1964:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var algorithm_1 = __nccwpck_require__(61);
+/**
+ * Represents a mixin that allows nodes to become the contents of
+ * a element. This mixin is implemented by {@link Element} and
+ * {@link Text}.
+ */
+var SlotableImpl = /** @class */ (function () {
+ function SlotableImpl() {
+ }
+ Object.defineProperty(SlotableImpl.prototype, "_name", {
+ get: function () { return this.__name || ''; },
+ set: function (val) { this.__name = val; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SlotableImpl.prototype, "_assignedSlot", {
+ get: function () { return this.__assignedSlot || null; },
+ set: function (val) { this.__assignedSlot = val; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SlotableImpl.prototype, "assignedSlot", {
+ /** @inheritdoc */
+ get: function () {
+ return algorithm_1.shadowTree_findASlot(this, true);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SlotableImpl;
+}());
+exports.SlotableImpl = SlotableImpl;
+//# sourceMappingURL=SlotableImpl.js.map
+
+/***/ }),
+
+/***/ 6357:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var AbstractRangeImpl_1 = __nccwpck_require__(7126);
+var DOMException_1 = __nccwpck_require__(3166);
+var util_1 = __nccwpck_require__(5282);
+/**
+ * Represents a static range.
+ */
+var StaticRangeImpl = /** @class */ (function (_super) {
+ __extends(StaticRangeImpl, _super);
+ /**
+ * Initializes a new instance of `StaticRange`.
+ */
+ function StaticRangeImpl(init) {
+ var _this = _super.call(this) || this;
+ /**
+ * 1. If init’s startContainer or endContainer is a DocumentType or Attr
+ * node, then throw an "InvalidNodeTypeError" DOMException.
+ * 2. Let staticRange be a new StaticRange object.
+ * 3. Set staticRange’s start to (init’s startContainer, init’s startOffset)
+ * and end to (init’s endContainer, init’s endOffset).
+ * 4. Return staticRange.
+ */
+ if (util_1.Guard.isDocumentTypeNode(init.startContainer) || util_1.Guard.isAttrNode(init.startContainer) ||
+ util_1.Guard.isDocumentTypeNode(init.endContainer) || util_1.Guard.isAttrNode(init.endContainer)) {
+ throw new DOMException_1.InvalidNodeTypeError();
+ }
+ _this._start = [init.startContainer, init.startOffset];
+ _this._end = [init.endContainer, init.endOffset];
+ return _this;
+ }
+ return StaticRangeImpl;
+}(AbstractRangeImpl_1.AbstractRangeImpl));
+exports.StaticRangeImpl = StaticRangeImpl;
+//# sourceMappingURL=StaticRangeImpl.js.map
+
+/***/ }),
+
+/***/ 2191:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(7305);
+var CharacterDataImpl_1 = __nccwpck_require__(5330);
+var algorithm_1 = __nccwpck_require__(61);
+var WebIDLAlgorithm_1 = __nccwpck_require__(5457);
+/**
+ * Represents a text node.
+ */
+var TextImpl = /** @class */ (function (_super) {
+ __extends(TextImpl, _super);
+ /**
+ * Initializes a new instance of `Text`.
+ *
+ * @param data - the text content
+ */
+ function TextImpl(data) {
+ if (data === void 0) { data = ''; }
+ var _this = _super.call(this, data) || this;
+ _this._name = '';
+ _this._assignedSlot = null;
+ return _this;
+ }
+ Object.defineProperty(TextImpl.prototype, "wholeText", {
+ /** @inheritdoc */
+ get: function () {
+ var e_1, _a;
+ /**
+ * The wholeText attribute’s getter must return the concatenation of the
+ * data of the contiguous Text nodes of the context object, in tree order.
+ */
+ var text = '';
+ try {
+ for (var _b = __values(algorithm_1.text_contiguousTextNodes(this, true)), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var node = _c.value;
+ text = text + node._data;
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ return text;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ TextImpl.prototype.splitText = function (offset) {
+ /**
+ * The splitText(offset) method, when invoked, must split context object
+ * with offset offset.
+ */
+ return algorithm_1.text_split(this, offset);
+ };
+ Object.defineProperty(TextImpl.prototype, "assignedSlot", {
+ // MIXIN: Slotable
+ /* istanbul ignore next */
+ get: function () { throw new Error("Mixin: Slotable not implemented."); },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Creates a `Text`.
+ *
+ * @param document - owner document
+ * @param data - the text content
+ */
+ TextImpl._create = function (document, data) {
+ if (data === void 0) { data = ''; }
+ var node = new TextImpl(data);
+ node._nodeDocument = document;
+ return node;
+ };
+ return TextImpl;
+}(CharacterDataImpl_1.CharacterDataImpl));
+exports.TextImpl = TextImpl;
+/**
+ * Initialize prototype properties
+ */
+WebIDLAlgorithm_1.idl_defineConst(TextImpl.prototype, "_nodeType", interfaces_1.NodeType.Text);
+//# sourceMappingURL=TextImpl.js.map
+
+/***/ }),
+
+/***/ 9782:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(7305);
+/**
+ * Represents an object which can be used to iterate through the nodes
+ * of a subtree.
+ */
+var TraverserImpl = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `Traverser`.
+ *
+ * @param root - root node
+ */
+ function TraverserImpl(root) {
+ this._activeFlag = false;
+ this._root = root;
+ this._whatToShow = interfaces_1.WhatToShow.All;
+ this._filter = null;
+ }
+ Object.defineProperty(TraverserImpl.prototype, "root", {
+ /** @inheritdoc */
+ get: function () { return this._root; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TraverserImpl.prototype, "whatToShow", {
+ /** @inheritdoc */
+ get: function () { return this._whatToShow; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TraverserImpl.prototype, "filter", {
+ /** @inheritdoc */
+ get: function () { return this._filter; },
+ enumerable: true,
+ configurable: true
+ });
+ return TraverserImpl;
+}());
+exports.TraverserImpl = TraverserImpl;
+//# sourceMappingURL=TraverserImpl.js.map
+
+/***/ }),
+
+/***/ 9261:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(7305);
+var TraverserImpl_1 = __nccwpck_require__(9782);
+var algorithm_1 = __nccwpck_require__(61);
+/**
+ * Represents the nodes of a subtree and a position within them.
+ */
+var TreeWalkerImpl = /** @class */ (function (_super) {
+ __extends(TreeWalkerImpl, _super);
+ /**
+ * Initializes a new instance of `TreeWalker`.
+ */
+ function TreeWalkerImpl(root, current) {
+ var _this = _super.call(this, root) || this;
+ _this._current = current;
+ return _this;
+ }
+ Object.defineProperty(TreeWalkerImpl.prototype, "currentNode", {
+ /** @inheritdoc */
+ get: function () { return this._current; },
+ set: function (value) { this._current = value; },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ TreeWalkerImpl.prototype.parentNode = function () {
+ /**
+ * 1. Let node be the context object’s current.
+ * 2. While node is non-null and is not the context object’s root:
+ */
+ var node = this._current;
+ while (node !== null && node !== this._root) {
+ /**
+ * 2.1. Set node to node’s parent.
+ * 2.2. If node is non-null and filtering node within the context object
+ * returns FILTER_ACCEPT, then set the context object’s current to node
+ * and return node.
+ */
+ node = node._parent;
+ if (node !== null &&
+ algorithm_1.traversal_filter(this, node) === interfaces_1.FilterResult.Accept) {
+ this._current = node;
+ return node;
+ }
+ }
+ /**
+ * 3. Return null.
+ */
+ return null;
+ };
+ /** @inheritdoc */
+ TreeWalkerImpl.prototype.firstChild = function () {
+ /**
+ * The firstChild() method, when invoked, must traverse children with the
+ * context object and first.
+ */
+ return algorithm_1.treeWalker_traverseChildren(this, true);
+ };
+ /** @inheritdoc */
+ TreeWalkerImpl.prototype.lastChild = function () {
+ /**
+ * The lastChild() method, when invoked, must traverse children with the
+ * context object and last.
+ */
+ return algorithm_1.treeWalker_traverseChildren(this, false);
+ };
+ /** @inheritdoc */
+ TreeWalkerImpl.prototype.nextSibling = function () {
+ /**
+ * The nextSibling() method, when invoked, must traverse siblings with the
+ * context object and next.
+ */
+ return algorithm_1.treeWalker_traverseSiblings(this, true);
+ };
+ /** @inheritdoc */
+ TreeWalkerImpl.prototype.previousNode = function () {
+ /**
+ * 1. Let node be the context object’s current.
+ * 2. While node is not the context object’s root:
+ */
+ var node = this._current;
+ while (node !== this._root) {
+ /**
+ * 2.1. Let sibling be node’s previous sibling.
+ * 2.2. While sibling is non-null:
+ */
+ var sibling = node._previousSibling;
+ while (sibling) {
+ /**
+ * 2.2.1. Set node to sibling.
+ * 2.2.2. Let result be the result of filtering node within the context
+ * object.
+ */
+ node = sibling;
+ var result = algorithm_1.traversal_filter(this, node);
+ /**
+ * 2.2.3. While result is not FILTER_REJECT and node has a child:
+ */
+ while (result !== interfaces_1.FilterResult.Reject && node._lastChild) {
+ /**
+ * 2.2.3.1. Set node to node’s last child.
+ * 2.2.3.2. Set result to the result of filtering node within the
+ * context object.
+ */
+ node = node._lastChild;
+ result = algorithm_1.traversal_filter(this, node);
+ }
+ /**
+ * 2.2.4. If result is FILTER_ACCEPT, then set the context object’s
+ * current to node and return node.
+ */
+ if (result === interfaces_1.FilterResult.Accept) {
+ this._current = node;
+ return node;
+ }
+ /**
+ * 2.2.5. Set sibling to node’s previous sibling.
+ */
+ sibling = node._previousSibling;
+ }
+ /**
+ * 2.3. If node is the context object’s root or node’s parent is null,
+ * then return null.
+ */
+ if (node === this._root || node._parent === null) {
+ return null;
+ }
+ /**
+ * 2.4. Set node to node’s parent.
+ */
+ node = node._parent;
+ /**
+ * 2.5. If the return value of filtering node within the context object is
+ * FILTER_ACCEPT, then set the context object’s current to node and
+ * return node.
+ */
+ if (algorithm_1.traversal_filter(this, node) === interfaces_1.FilterResult.Accept) {
+ this._current = node;
+ return node;
+ }
+ }
+ /**
+ * 3. Return null.
+ */
+ return null;
+ };
+ /** @inheritdoc */
+ TreeWalkerImpl.prototype.previousSibling = function () {
+ /**
+ * The previousSibling() method, when invoked, must traverse siblings with
+ * the context object and previous.
+ */
+ return algorithm_1.treeWalker_traverseSiblings(this, false);
+ };
+ /** @inheritdoc */
+ TreeWalkerImpl.prototype.nextNode = function () {
+ /**
+ * 1. Let node be the context object’s current.
+ * 2. Let result be FILTER_ACCEPT.
+ * 3. While true:
+ */
+ var node = this._current;
+ var result = interfaces_1.FilterResult.Accept;
+ while (true) {
+ /**
+ * 3.1. While result is not FILTER_REJECT and node has a child:
+ */
+ while (result !== interfaces_1.FilterResult.Reject && node._firstChild) {
+ /**
+ * 3.1.1. Set node to its first child.
+ * 3.1.2. Set result to the result of filtering node within the context
+ * object.
+ * 3.1.3. If result is FILTER_ACCEPT, then set the context object’s
+ * current to node and return node.
+ */
+ node = node._firstChild;
+ result = algorithm_1.traversal_filter(this, node);
+ if (result === interfaces_1.FilterResult.Accept) {
+ this._current = node;
+ return node;
+ }
+ }
+ /**
+ * 3.2. Let sibling be null.
+ * 3.3. Let temporary be node.
+ * 3.4. While temporary is non-null:
+ */
+ var sibling = null;
+ var temporary = node;
+ while (temporary !== null) {
+ /**
+ * 3.4.1. If temporary is the context object’s root, then return null.
+ */
+ if (temporary === this._root) {
+ return null;
+ }
+ /**
+ * 3.4.2. Set sibling to temporary’s next sibling.
+ * 3.4.3. If sibling is non-null, then break.
+ */
+ sibling = temporary._nextSibling;
+ if (sibling !== null) {
+ node = sibling;
+ break;
+ }
+ /**
+ * 3.4.4. Set temporary to temporary’s parent.
+ */
+ temporary = temporary._parent;
+ }
+ /**
+ * 3.5. Set result to the result of filtering node within the context object.
+ * 3.6. If result is FILTER_ACCEPT, then set the context object’s current
+ * to node and return node.
+ */
+ result = algorithm_1.traversal_filter(this, node);
+ if (result === interfaces_1.FilterResult.Accept) {
+ this._current = node;
+ return node;
+ }
+ }
+ };
+ /**
+ * Creates a new `TreeWalker`.
+ *
+ * @param root - iterator's root node
+ * @param current - current node
+ */
+ TreeWalkerImpl._create = function (root, current) {
+ return new TreeWalkerImpl(root, current);
+ };
+ return TreeWalkerImpl;
+}(TraverserImpl_1.TraverserImpl));
+exports.TreeWalkerImpl = TreeWalkerImpl;
+//# sourceMappingURL=TreeWalkerImpl.js.map
+
+/***/ }),
+
+/***/ 9067:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var EventTargetImpl_1 = __nccwpck_require__(9968);
+var util_1 = __nccwpck_require__(6195);
+var algorithm_1 = __nccwpck_require__(61);
+/**
+ * Represents a window containing a DOM document.
+ */
+var WindowImpl = /** @class */ (function (_super) {
+ __extends(WindowImpl, _super);
+ /**
+ * Initializes a new instance of `Window`.
+ */
+ function WindowImpl() {
+ var _this = _super.call(this) || this;
+ _this._signalSlots = new Set();
+ _this._mutationObserverMicrotaskQueued = false;
+ _this._mutationObservers = new Set();
+ _this._iteratorList = new util_1.FixedSizeSet();
+ _this._associatedDocument = algorithm_1.create_document();
+ return _this;
+ }
+ Object.defineProperty(WindowImpl.prototype, "document", {
+ /** @inheritdoc */
+ get: function () { return this._associatedDocument; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(WindowImpl.prototype, "event", {
+ /** @inheritdoc */
+ get: function () { return this._currentEvent; },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Creates a new window with a blank document.
+ */
+ WindowImpl._create = function () {
+ return new WindowImpl();
+ };
+ return WindowImpl;
+}(EventTargetImpl_1.EventTargetImpl));
+exports.WindowImpl = WindowImpl;
+//# sourceMappingURL=WindowImpl.js.map
+
+/***/ }),
+
+/***/ 1685:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var DocumentImpl_1 = __nccwpck_require__(4333);
+/**
+ * Represents an XML document.
+ */
+var XMLDocumentImpl = /** @class */ (function (_super) {
+ __extends(XMLDocumentImpl, _super);
+ /**
+ * Initializes a new instance of `XMLDocument`.
+ */
+ function XMLDocumentImpl() {
+ return _super.call(this) || this;
+ }
+ return XMLDocumentImpl;
+}(DocumentImpl_1.DocumentImpl));
+exports.XMLDocumentImpl = XMLDocumentImpl;
+//# sourceMappingURL=XMLDocumentImpl.js.map
+
+/***/ }),
+
+/***/ 633:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var util_1 = __nccwpck_require__(6195);
+// Import implementation classes
+var AbortControllerImpl_1 = __nccwpck_require__(6461);
+exports.AbortController = AbortControllerImpl_1.AbortControllerImpl;
+var AbortSignalImpl_1 = __nccwpck_require__(6077);
+exports.AbortSignal = AbortSignalImpl_1.AbortSignalImpl;
+var AbstractRangeImpl_1 = __nccwpck_require__(7126);
+exports.AbstractRange = AbstractRangeImpl_1.AbstractRangeImpl;
+var AttrImpl_1 = __nccwpck_require__(7875);
+exports.Attr = AttrImpl_1.AttrImpl;
+var CDATASectionImpl_1 = __nccwpck_require__(3977);
+exports.CDATASection = CDATASectionImpl_1.CDATASectionImpl;
+var CharacterDataImpl_1 = __nccwpck_require__(5330);
+exports.CharacterData = CharacterDataImpl_1.CharacterDataImpl;
+var ChildNodeImpl_1 = __nccwpck_require__(8264);
+var CommentImpl_1 = __nccwpck_require__(930);
+exports.Comment = CommentImpl_1.CommentImpl;
+var CustomEventImpl_1 = __nccwpck_require__(9857);
+exports.CustomEvent = CustomEventImpl_1.CustomEventImpl;
+var DocumentFragmentImpl_1 = __nccwpck_require__(2585);
+exports.DocumentFragment = DocumentFragmentImpl_1.DocumentFragmentImpl;
+var DocumentImpl_1 = __nccwpck_require__(4333);
+exports.Document = DocumentImpl_1.DocumentImpl;
+var DocumentOrShadowRootImpl_1 = __nccwpck_require__(5274);
+var DocumentTypeImpl_1 = __nccwpck_require__(3173);
+exports.DocumentType = DocumentTypeImpl_1.DocumentTypeImpl;
+var DOMImpl_1 = __nccwpck_require__(4177);
+exports.dom = DOMImpl_1.dom;
+var DOMImplementationImpl_1 = __nccwpck_require__(2197);
+exports.DOMImplementation = DOMImplementationImpl_1.DOMImplementationImpl;
+var DOMTokenListImpl_1 = __nccwpck_require__(5096);
+exports.DOMTokenList = DOMTokenListImpl_1.DOMTokenListImpl;
+var ElementImpl_1 = __nccwpck_require__(5975);
+exports.Element = ElementImpl_1.ElementImpl;
+var EventImpl_1 = __nccwpck_require__(5809);
+exports.Event = EventImpl_1.EventImpl;
+var EventTargetImpl_1 = __nccwpck_require__(9968);
+exports.EventTarget = EventTargetImpl_1.EventTargetImpl;
+var HTMLCollectionImpl_1 = __nccwpck_require__(3969);
+exports.HTMLCollection = HTMLCollectionImpl_1.HTMLCollectionImpl;
+var MutationObserverImpl_1 = __nccwpck_require__(9616);
+exports.MutationObserver = MutationObserverImpl_1.MutationObserverImpl;
+var MutationRecordImpl_1 = __nccwpck_require__(6219);
+exports.MutationRecord = MutationRecordImpl_1.MutationRecordImpl;
+var NamedNodeMapImpl_1 = __nccwpck_require__(7206);
+exports.NamedNodeMap = NamedNodeMapImpl_1.NamedNodeMapImpl;
+var NodeFilterImpl_1 = __nccwpck_require__(2355);
+exports.NodeFilter = NodeFilterImpl_1.NodeFilterImpl;
+var NodeImpl_1 = __nccwpck_require__(1745);
+exports.Node = NodeImpl_1.NodeImpl;
+var NodeIteratorImpl_1 = __nccwpck_require__(1997);
+exports.NodeIterator = NodeIteratorImpl_1.NodeIteratorImpl;
+var NodeListImpl_1 = __nccwpck_require__(3728);
+exports.NodeList = NodeListImpl_1.NodeListImpl;
+var NodeListStaticImpl_1 = __nccwpck_require__(5306);
+exports.NodeListStatic = NodeListStaticImpl_1.NodeListStaticImpl;
+var NonDocumentTypeChildNodeImpl_1 = __nccwpck_require__(1032);
+var NonElementParentNodeImpl_1 = __nccwpck_require__(733);
+var ParentNodeImpl_1 = __nccwpck_require__(5988);
+var ProcessingInstructionImpl_1 = __nccwpck_require__(9430);
+exports.ProcessingInstruction = ProcessingInstructionImpl_1.ProcessingInstructionImpl;
+var RangeImpl_1 = __nccwpck_require__(166);
+exports.Range = RangeImpl_1.RangeImpl;
+var ShadowRootImpl_1 = __nccwpck_require__(1911);
+exports.ShadowRoot = ShadowRootImpl_1.ShadowRootImpl;
+var SlotableImpl_1 = __nccwpck_require__(1964);
+var StaticRangeImpl_1 = __nccwpck_require__(6357);
+exports.StaticRange = StaticRangeImpl_1.StaticRangeImpl;
+var TextImpl_1 = __nccwpck_require__(2191);
+exports.Text = TextImpl_1.TextImpl;
+var TraverserImpl_1 = __nccwpck_require__(9782);
+exports.Traverser = TraverserImpl_1.TraverserImpl;
+var TreeWalkerImpl_1 = __nccwpck_require__(9261);
+exports.TreeWalker = TreeWalkerImpl_1.TreeWalkerImpl;
+var WindowImpl_1 = __nccwpck_require__(9067);
+exports.Window = WindowImpl_1.WindowImpl;
+var XMLDocumentImpl_1 = __nccwpck_require__(1685);
+exports.XMLDocument = XMLDocumentImpl_1.XMLDocumentImpl;
+// Apply mixins
+// ChildNode
+util_1.applyMixin(ElementImpl_1.ElementImpl, ChildNodeImpl_1.ChildNodeImpl);
+util_1.applyMixin(CharacterDataImpl_1.CharacterDataImpl, ChildNodeImpl_1.ChildNodeImpl);
+util_1.applyMixin(DocumentTypeImpl_1.DocumentTypeImpl, ChildNodeImpl_1.ChildNodeImpl);
+// DocumentOrShadowRoot
+util_1.applyMixin(DocumentImpl_1.DocumentImpl, DocumentOrShadowRootImpl_1.DocumentOrShadowRootImpl);
+util_1.applyMixin(ShadowRootImpl_1.ShadowRootImpl, DocumentOrShadowRootImpl_1.DocumentOrShadowRootImpl);
+// NonDocumentTypeChildNode
+util_1.applyMixin(ElementImpl_1.ElementImpl, NonDocumentTypeChildNodeImpl_1.NonDocumentTypeChildNodeImpl);
+util_1.applyMixin(CharacterDataImpl_1.CharacterDataImpl, NonDocumentTypeChildNodeImpl_1.NonDocumentTypeChildNodeImpl);
+// NonElementParentNode
+util_1.applyMixin(DocumentImpl_1.DocumentImpl, NonElementParentNodeImpl_1.NonElementParentNodeImpl);
+util_1.applyMixin(DocumentFragmentImpl_1.DocumentFragmentImpl, NonElementParentNodeImpl_1.NonElementParentNodeImpl);
+// ParentNode
+util_1.applyMixin(DocumentImpl_1.DocumentImpl, ParentNodeImpl_1.ParentNodeImpl);
+util_1.applyMixin(DocumentFragmentImpl_1.DocumentFragmentImpl, ParentNodeImpl_1.ParentNodeImpl);
+util_1.applyMixin(ElementImpl_1.ElementImpl, ParentNodeImpl_1.ParentNodeImpl);
+// Slotable
+util_1.applyMixin(TextImpl_1.TextImpl, SlotableImpl_1.SlotableImpl);
+util_1.applyMixin(ElementImpl_1.ElementImpl, SlotableImpl_1.SlotableImpl);
+//# sourceMappingURL=index.js.map
+
+/***/ }),
+
+/***/ 7305:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Defines the position of a boundary point relative to another.
+ */
+var BoundaryPosition;
+(function (BoundaryPosition) {
+ BoundaryPosition[BoundaryPosition["Before"] = 0] = "Before";
+ BoundaryPosition[BoundaryPosition["Equal"] = 1] = "Equal";
+ BoundaryPosition[BoundaryPosition["After"] = 2] = "After";
+})(BoundaryPosition = exports.BoundaryPosition || (exports.BoundaryPosition = {}));
+/**
+ * Defines the event phase.
+ */
+var EventPhase;
+(function (EventPhase) {
+ EventPhase[EventPhase["None"] = 0] = "None";
+ EventPhase[EventPhase["Capturing"] = 1] = "Capturing";
+ EventPhase[EventPhase["AtTarget"] = 2] = "AtTarget";
+ EventPhase[EventPhase["Bubbling"] = 3] = "Bubbling";
+})(EventPhase = exports.EventPhase || (exports.EventPhase = {}));
+/**
+ * Defines the type of a node object.
+ */
+var NodeType;
+(function (NodeType) {
+ NodeType[NodeType["Element"] = 1] = "Element";
+ NodeType[NodeType["Attribute"] = 2] = "Attribute";
+ NodeType[NodeType["Text"] = 3] = "Text";
+ NodeType[NodeType["CData"] = 4] = "CData";
+ NodeType[NodeType["EntityReference"] = 5] = "EntityReference";
+ NodeType[NodeType["Entity"] = 6] = "Entity";
+ NodeType[NodeType["ProcessingInstruction"] = 7] = "ProcessingInstruction";
+ NodeType[NodeType["Comment"] = 8] = "Comment";
+ NodeType[NodeType["Document"] = 9] = "Document";
+ NodeType[NodeType["DocumentType"] = 10] = "DocumentType";
+ NodeType[NodeType["DocumentFragment"] = 11] = "DocumentFragment";
+ NodeType[NodeType["Notation"] = 12] = "Notation"; // historical
+})(NodeType = exports.NodeType || (exports.NodeType = {}));
+/**
+ * Defines the position of a node in the document relative to another
+ * node.
+ */
+var Position;
+(function (Position) {
+ Position[Position["Disconnected"] = 1] = "Disconnected";
+ Position[Position["Preceding"] = 2] = "Preceding";
+ Position[Position["Following"] = 4] = "Following";
+ Position[Position["Contains"] = 8] = "Contains";
+ Position[Position["ContainedBy"] = 16] = "ContainedBy";
+ Position[Position["ImplementationSpecific"] = 32] = "ImplementationSpecific";
+})(Position = exports.Position || (exports.Position = {}));
+/**
+ * Defines the return value of a filter callback.
+ */
+var FilterResult;
+(function (FilterResult) {
+ FilterResult[FilterResult["Accept"] = 1] = "Accept";
+ FilterResult[FilterResult["Reject"] = 2] = "Reject";
+ FilterResult[FilterResult["Skip"] = 3] = "Skip";
+})(FilterResult = exports.FilterResult || (exports.FilterResult = {}));
+/**
+ * Defines what to show in node filter.
+ */
+var WhatToShow;
+(function (WhatToShow) {
+ WhatToShow[WhatToShow["All"] = 4294967295] = "All";
+ WhatToShow[WhatToShow["Element"] = 1] = "Element";
+ WhatToShow[WhatToShow["Attribute"] = 2] = "Attribute";
+ WhatToShow[WhatToShow["Text"] = 4] = "Text";
+ WhatToShow[WhatToShow["CDataSection"] = 8] = "CDataSection";
+ WhatToShow[WhatToShow["EntityReference"] = 16] = "EntityReference";
+ WhatToShow[WhatToShow["Entity"] = 32] = "Entity";
+ WhatToShow[WhatToShow["ProcessingInstruction"] = 64] = "ProcessingInstruction";
+ WhatToShow[WhatToShow["Comment"] = 128] = "Comment";
+ WhatToShow[WhatToShow["Document"] = 256] = "Document";
+ WhatToShow[WhatToShow["DocumentType"] = 512] = "DocumentType";
+ WhatToShow[WhatToShow["DocumentFragment"] = 1024] = "DocumentFragment";
+ WhatToShow[WhatToShow["Notation"] = 2048] = "Notation";
+})(WhatToShow = exports.WhatToShow || (exports.WhatToShow = {}));
+/**
+ * Defines how boundary points are compared.
+ */
+var HowToCompare;
+(function (HowToCompare) {
+ HowToCompare[HowToCompare["StartToStart"] = 0] = "StartToStart";
+ HowToCompare[HowToCompare["StartToEnd"] = 1] = "StartToEnd";
+ HowToCompare[HowToCompare["EndToEnd"] = 2] = "EndToEnd";
+ HowToCompare[HowToCompare["EndToStart"] = 3] = "EndToStart";
+})(HowToCompare = exports.HowToCompare || (exports.HowToCompare = {}));
+//# sourceMappingURL=interfaces.js.map
+
+/***/ }),
+
+/***/ 4646:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var dom_1 = __nccwpck_require__(633);
+dom_1.dom.setFeatures(true);
+var dom_2 = __nccwpck_require__(633);
+exports.DOMImplementation = dom_2.DOMImplementation;
+var parser_1 = __nccwpck_require__(6216);
+exports.DOMParser = parser_1.DOMParser;
+var serializer_1 = __nccwpck_require__(7119);
+exports.XMLSerializer = serializer_1.XMLSerializer;
+//# sourceMappingURL=index.js.map
+
+/***/ }),
+
+/***/ 4349:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var algorithm_1 = __nccwpck_require__(61);
+var XMLParserImpl_1 = __nccwpck_require__(4126);
+/**
+ * Represents a parser for XML and HTML content.
+ *
+ * See: https://w3c.github.io/DOM-Parsing/#the-domparser-interface
+ */
+var DOMParserImpl = /** @class */ (function () {
+ function DOMParserImpl() {
+ }
+ /** @inheritdoc */
+ DOMParserImpl.prototype.parseFromString = function (source, mimeType) {
+ if (mimeType === "text/html")
+ throw new Error('HTML parser not implemented.');
+ try {
+ var parser = new XMLParserImpl_1.XMLParserImpl();
+ var doc = parser.parse(source);
+ doc._contentType = mimeType;
+ return doc;
+ }
+ catch (e) {
+ var errorNS = "http://www.mozilla.org/newlayout/xml/parsererror.xml";
+ var doc = algorithm_1.create_xmlDocument();
+ var root = doc.createElementNS(errorNS, "parsererror");
+ var ele = doc.createElementNS(errorNS, "error");
+ ele.setAttribute("message", e.message);
+ root.appendChild(ele);
+ doc.appendChild(root);
+ return doc;
+ }
+ };
+ return DOMParserImpl;
+}());
+exports.DOMParserImpl = DOMParserImpl;
+//# sourceMappingURL=DOMParserImpl.js.map
+
+/***/ }),
+
+/***/ 4126:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var XMLStringLexer_1 = __nccwpck_require__(7061);
+var interfaces_1 = __nccwpck_require__(3413);
+var infra_1 = __nccwpck_require__(4251);
+var algorithm_1 = __nccwpck_require__(61);
+var LocalNameSet_1 = __nccwpck_require__(9049);
+/**
+ * Represents a parser for XML content.
+ *
+ * See: https://html.spec.whatwg.org/#xml-parser
+ */
+var XMLParserImpl = /** @class */ (function () {
+ function XMLParserImpl() {
+ }
+ /**
+ * Parses XML content.
+ *
+ * @param source - a string containing XML content
+ */
+ XMLParserImpl.prototype.parse = function (source) {
+ var e_1, _a, e_2, _b;
+ var lexer = new XMLStringLexer_1.XMLStringLexer(source, { skipWhitespaceOnlyText: true });
+ var doc = algorithm_1.create_document();
+ var context = doc;
+ var token = lexer.nextToken();
+ while (token.type !== interfaces_1.TokenType.EOF) {
+ switch (token.type) {
+ case interfaces_1.TokenType.Declaration:
+ var declaration = token;
+ if (declaration.version !== "1.0") {
+ throw new Error("Invalid xml version: " + declaration.version);
+ }
+ break;
+ case interfaces_1.TokenType.DocType:
+ var doctype = token;
+ if (!algorithm_1.xml_isPubidChar(doctype.pubId)) {
+ throw new Error("DocType public identifier does not match PubidChar construct.");
+ }
+ if (!algorithm_1.xml_isLegalChar(doctype.sysId) ||
+ (doctype.sysId.indexOf('"') !== -1 && doctype.sysId.indexOf("'") !== -1)) {
+ throw new Error("DocType system identifier contains invalid characters.");
+ }
+ context.appendChild(doc.implementation.createDocumentType(doctype.name, doctype.pubId, doctype.sysId));
+ break;
+ case interfaces_1.TokenType.CDATA:
+ var cdata = token;
+ if (!algorithm_1.xml_isLegalChar(cdata.data) ||
+ cdata.data.indexOf("]]>") !== -1) {
+ throw new Error("CDATA contains invalid characters.");
+ }
+ context.appendChild(doc.createCDATASection(cdata.data));
+ break;
+ case interfaces_1.TokenType.Comment:
+ var comment = token;
+ if (!algorithm_1.xml_isLegalChar(comment.data) ||
+ comment.data.indexOf("--") !== -1 || comment.data.endsWith("-")) {
+ throw new Error("Comment data contains invalid characters.");
+ }
+ context.appendChild(doc.createComment(comment.data));
+ break;
+ case interfaces_1.TokenType.PI:
+ var pi = token;
+ if (pi.target.indexOf(":") !== -1 || (/^xml$/i).test(pi.target)) {
+ throw new Error("Processing instruction target contains invalid characters.");
+ }
+ if (!algorithm_1.xml_isLegalChar(pi.data) || pi.data.indexOf("?>") !== -1) {
+ throw new Error("Processing instruction data contains invalid characters.");
+ }
+ context.appendChild(doc.createProcessingInstruction(pi.target, pi.data));
+ break;
+ case interfaces_1.TokenType.Text:
+ var text = token;
+ if (!algorithm_1.xml_isLegalChar(text.data)) {
+ throw new Error("Text data contains invalid characters.");
+ }
+ context.appendChild(doc.createTextNode(text.data));
+ break;
+ case interfaces_1.TokenType.Element:
+ var element = token;
+ // inherit namespace from parent
+ var _c = __read(algorithm_1.namespace_extractQName(element.name), 2), prefix = _c[0], localName = _c[1];
+ if (localName.indexOf(":") !== -1 || !algorithm_1.xml_isName(localName)) {
+ throw new Error("Node local name contains invalid characters.");
+ }
+ if (prefix === "xmlns") {
+ throw new Error("An element cannot have the 'xmlns' prefix.");
+ }
+ var namespace = context.lookupNamespaceURI(prefix);
+ // override namespace if there is a namespace declaration
+ // attribute
+ // also lookup namespace declaration attributes
+ var nsDeclarations = {};
+ try {
+ for (var _d = (e_1 = void 0, __values(element.attributes)), _e = _d.next(); !_e.done; _e = _d.next()) {
+ var _f = __read(_e.value, 2), attName = _f[0], attValue = _f[1];
+ if (attName === "xmlns") {
+ namespace = attValue;
+ }
+ else {
+ var _g = __read(algorithm_1.namespace_extractQName(attName), 2), attPrefix = _g[0], attLocalName = _g[1];
+ if (attPrefix === "xmlns") {
+ if (attLocalName === prefix) {
+ namespace = attValue;
+ }
+ nsDeclarations[attLocalName] = attValue;
+ }
+ }
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ // create the DOM element node
+ var elementNode = (namespace !== null ?
+ doc.createElementNS(namespace, element.name) :
+ doc.createElement(element.name));
+ context.appendChild(elementNode);
+ // assign attributes
+ var localNameSet = new LocalNameSet_1.LocalNameSet();
+ try {
+ for (var _h = (e_2 = void 0, __values(element.attributes)), _j = _h.next(); !_j.done; _j = _h.next()) {
+ var _k = __read(_j.value, 2), attName = _k[0], attValue = _k[1];
+ var _l = __read(algorithm_1.namespace_extractQName(attName), 2), attPrefix = _l[0], attLocalName = _l[1];
+ var attNamespace = null;
+ if (attPrefix === "xmlns" || (attPrefix === null && attLocalName === "xmlns")) {
+ // namespace declaration attribute
+ attNamespace = infra_1.namespace.XMLNS;
+ }
+ else {
+ attNamespace = elementNode.lookupNamespaceURI(attPrefix);
+ if (attNamespace !== null && elementNode.isDefaultNamespace(attNamespace)) {
+ attNamespace = null;
+ }
+ else if (attNamespace === null && attPrefix !== null) {
+ attNamespace = nsDeclarations[attPrefix] || null;
+ }
+ }
+ if (localNameSet.has(attNamespace, attLocalName)) {
+ throw new Error("Element contains duplicate attributes.");
+ }
+ localNameSet.set(attNamespace, attLocalName);
+ if (attNamespace === infra_1.namespace.XMLNS) {
+ if (attValue === infra_1.namespace.XMLNS) {
+ throw new Error("XMLNS namespace is reserved.");
+ }
+ }
+ if (attLocalName.indexOf(":") !== -1 || !algorithm_1.xml_isName(attLocalName)) {
+ throw new Error("Attribute local name contains invalid characters.");
+ }
+ if (attPrefix === "xmlns" && attValue === "") {
+ throw new Error("Empty XML namespace is not allowed.");
+ }
+ if (attNamespace !== null)
+ elementNode.setAttributeNS(attNamespace, attName, attValue);
+ else
+ elementNode.setAttribute(attName, attValue);
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (_j && !_j.done && (_b = _h.return)) _b.call(_h);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ if (!element.selfClosing) {
+ context = elementNode;
+ }
+ break;
+ case interfaces_1.TokenType.ClosingTag:
+ var closingTag = token;
+ if (closingTag.name !== context.nodeName) {
+ throw new Error('Closing tag name does not match opening tag name.');
+ }
+ /* istanbul ignore else */
+ if (context._parent) {
+ context = context._parent;
+ }
+ break;
+ }
+ token = lexer.nextToken();
+ }
+ return doc;
+ };
+ return XMLParserImpl;
+}());
+exports.XMLParserImpl = XMLParserImpl;
+//# sourceMappingURL=XMLParserImpl.js.map
+
+/***/ }),
+
+/***/ 7061:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(3413);
+/**
+ * Represents a lexer for XML content in a string.
+ */
+var XMLStringLexer = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `XMLStringLexer`.
+ *
+ * @param str - the string to tokenize and lex
+ * @param options - lexer options
+ */
+ function XMLStringLexer(str, options) {
+ this._options = {
+ skipWhitespaceOnlyText: false
+ };
+ this.err = { line: -1, col: -1, index: -1, str: "" };
+ this._str = str;
+ this._index = 0;
+ this._length = str.length;
+ if (options) {
+ this._options.skipWhitespaceOnlyText = options.skipWhitespaceOnlyText || false;
+ }
+ }
+ /**
+ * Returns the next token.
+ */
+ XMLStringLexer.prototype.nextToken = function () {
+ if (this.eof()) {
+ return { type: interfaces_1.TokenType.EOF };
+ }
+ var token = (this.skipIfStartsWith('<') ? this.openBracket() : this.text());
+ if (this._options.skipWhitespaceOnlyText) {
+ if (token.type === interfaces_1.TokenType.Text &&
+ XMLStringLexer.isWhiteSpaceToken(token)) {
+ token = this.nextToken();
+ }
+ }
+ return token;
+ };
+ /**
+ * Branches from an opening bracket (`<`).
+ */
+ XMLStringLexer.prototype.openBracket = function () {
+ if (this.skipIfStartsWith('?')) {
+ if (this.skipIfStartsWith('xml')) {
+ if (XMLStringLexer.isSpace(this._str[this._index])) {
+ return this.declaration();
+ }
+ else {
+ // a processing instruction starting with xml. e.g.
+ this.seek(-3);
+ return this.pi();
+ }
+ }
+ else {
+ return this.pi();
+ }
+ }
+ else if (this.skipIfStartsWith('!')) {
+ if (this.skipIfStartsWith('--')) {
+ return this.comment();
+ }
+ else if (this.skipIfStartsWith('[CDATA[')) {
+ return this.cdata();
+ }
+ else if (this.skipIfStartsWith('DOCTYPE')) {
+ return this.doctype();
+ }
+ else {
+ this.throwError("Invalid '!' in opening tag.");
+ }
+ }
+ else if (this.skipIfStartsWith('/')) {
+ return this.closeTag();
+ }
+ else {
+ return this.openTag();
+ }
+ };
+ /**
+ * Produces an XML declaration token.
+ */
+ XMLStringLexer.prototype.declaration = function () {
+ var version = '';
+ var encoding = '';
+ var standalone = '';
+ while (!this.eof()) {
+ this.skipSpace();
+ if (this.skipIfStartsWith('?>')) {
+ return { type: interfaces_1.TokenType.Declaration, version: version, encoding: encoding, standalone: standalone };
+ }
+ else {
+ // attribute name
+ var _a = __read(this.attribute(), 2), attName = _a[0], attValue = _a[1];
+ if (attName === 'version')
+ version = attValue;
+ else if (attName === 'encoding')
+ encoding = attValue;
+ else if (attName === 'standalone')
+ standalone = attValue;
+ else
+ this.throwError('Invalid attribute name: ' + attName);
+ }
+ }
+ this.throwError('Missing declaration end symbol `?>`');
+ };
+ /**
+ * Produces a doc type token.
+ */
+ XMLStringLexer.prototype.doctype = function () {
+ var pubId = '';
+ var sysId = '';
+ // name
+ this.skipSpace();
+ var name = this.takeUntil2('[', '>', true);
+ this.skipSpace();
+ if (this.skipIfStartsWith('PUBLIC')) {
+ pubId = this.quotedString();
+ sysId = this.quotedString();
+ }
+ else if (this.skipIfStartsWith('SYSTEM')) {
+ sysId = this.quotedString();
+ }
+ // skip internal subset
+ this.skipSpace();
+ if (this.skipIfStartsWith('[')) {
+ // skip internal subset nodes
+ this.skipUntil(']');
+ if (!this.skipIfStartsWith(']')) {
+ this.throwError('Missing end bracket of DTD internal subset');
+ }
+ }
+ this.skipSpace();
+ if (!this.skipIfStartsWith('>')) {
+ this.throwError('Missing doctype end symbol `>`');
+ }
+ return { type: interfaces_1.TokenType.DocType, name: name, pubId: pubId, sysId: sysId };
+ };
+ /**
+ * Produces a processing instruction token.
+ */
+ XMLStringLexer.prototype.pi = function () {
+ var target = this.takeUntilStartsWith('?>', true);
+ if (this.eof()) {
+ this.throwError('Missing processing instruction end symbol `?>`');
+ }
+ this.skipSpace();
+ if (this.skipIfStartsWith('?>')) {
+ return { type: interfaces_1.TokenType.PI, target: target, data: '' };
+ }
+ var data = this.takeUntilStartsWith('?>');
+ if (this.eof()) {
+ this.throwError('Missing processing instruction end symbol `?>`');
+ }
+ this.seek(2);
+ return { type: interfaces_1.TokenType.PI, target: target, data: data };
+ };
+ /**
+ * Produces a text token.
+ *
+ */
+ XMLStringLexer.prototype.text = function () {
+ var data = this.takeUntil('<');
+ return { type: interfaces_1.TokenType.Text, data: data };
+ };
+ /**
+ * Produces a comment token.
+ *
+ */
+ XMLStringLexer.prototype.comment = function () {
+ var data = this.takeUntilStartsWith('-->');
+ if (this.eof()) {
+ this.throwError('Missing comment end symbol `-->`');
+ }
+ this.seek(3);
+ return { type: interfaces_1.TokenType.Comment, data: data };
+ };
+ /**
+ * Produces a CDATA token.
+ *
+ */
+ XMLStringLexer.prototype.cdata = function () {
+ var data = this.takeUntilStartsWith(']]>');
+ if (this.eof()) {
+ this.throwError('Missing CDATA end symbol `]>`');
+ }
+ this.seek(3);
+ return { type: interfaces_1.TokenType.CDATA, data: data };
+ };
+ /**
+ * Produces an element token.
+ */
+ XMLStringLexer.prototype.openTag = function () {
+ // element name
+ this.skipSpace();
+ var name = this.takeUntil2('>', '/', true);
+ this.skipSpace();
+ if (this.skipIfStartsWith('>')) {
+ return { type: interfaces_1.TokenType.Element, name: name, attributes: [], selfClosing: false };
+ }
+ else if (this.skipIfStartsWith('/>')) {
+ return { type: interfaces_1.TokenType.Element, name: name, attributes: [], selfClosing: true };
+ }
+ // attributes
+ var attributes = [];
+ while (!this.eof()) {
+ // end tag
+ this.skipSpace();
+ if (this.skipIfStartsWith('>')) {
+ return { type: interfaces_1.TokenType.Element, name: name, attributes: attributes, selfClosing: false };
+ }
+ else if (this.skipIfStartsWith('/>')) {
+ return { type: interfaces_1.TokenType.Element, name: name, attributes: attributes, selfClosing: true };
+ }
+ var attr = this.attribute();
+ attributes.push(attr);
+ }
+ this.throwError('Missing opening element tag end symbol `>`');
+ };
+ /**
+ * Produces a closing tag token.
+ *
+ */
+ XMLStringLexer.prototype.closeTag = function () {
+ this.skipSpace();
+ var name = this.takeUntil('>', true);
+ this.skipSpace();
+ if (!this.skipIfStartsWith('>')) {
+ this.throwError('Missing closing element tag end symbol `>`');
+ }
+ return { type: interfaces_1.TokenType.ClosingTag, name: name };
+ };
+ /**
+ * Reads an attribute name, value pair
+ */
+ XMLStringLexer.prototype.attribute = function () {
+ // attribute name
+ this.skipSpace();
+ var name = this.takeUntil('=', true);
+ this.skipSpace();
+ if (!this.skipIfStartsWith('=')) {
+ this.throwError('Missing equals sign before attribute value');
+ }
+ // attribute value
+ var value = this.quotedString();
+ return [name, value];
+ };
+ /**
+ * Reads a string between double or single quotes.
+ */
+ XMLStringLexer.prototype.quotedString = function () {
+ this.skipSpace();
+ var startQuote = this.take(1);
+ if (!XMLStringLexer.isQuote(startQuote)) {
+ this.throwError('Missing start quote character before quoted value');
+ }
+ var value = this.takeUntil(startQuote);
+ if (!this.skipIfStartsWith(startQuote)) {
+ this.throwError('Missing end quote character after quoted value');
+ }
+ return value;
+ };
+ /**
+ * Determines if the current index is at or past the end of input string.
+ */
+ XMLStringLexer.prototype.eof = function () { return this._index >= this._length; };
+ /**
+ * Skips the length of the given string if the string from current position
+ * starts with the given string.
+ *
+ * @param str - the string to match
+ */
+ XMLStringLexer.prototype.skipIfStartsWith = function (str) {
+ var strLength = str.length;
+ if (strLength === 1) {
+ if (this._str[this._index] === str) {
+ this._index++;
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+ for (var i = 0; i < strLength; i++) {
+ if (this._str[this._index + i] !== str[i])
+ return false;
+ }
+ this._index += strLength;
+ return true;
+ };
+ /**
+ * Seeks a number of character codes.
+ *
+ * @param count - number of characters to skip
+ */
+ XMLStringLexer.prototype.seek = function (count) {
+ this._index += count;
+ if (this._index < 0)
+ this._index = 0;
+ if (this._index > this._length)
+ this._index = this._length;
+ };
+ /**
+ * Skips space characters.
+ */
+ XMLStringLexer.prototype.skipSpace = function () {
+ while (!this.eof() && (XMLStringLexer.isSpace(this._str[this._index]))) {
+ this._index++;
+ }
+ };
+ /**
+ * Takes a given number of characters.
+ *
+ * @param count - character count
+ */
+ XMLStringLexer.prototype.take = function (count) {
+ if (count === 1) {
+ return this._str[this._index++];
+ }
+ var startIndex = this._index;
+ this.seek(count);
+ return this._str.slice(startIndex, this._index);
+ };
+ /**
+ * Takes characters until the next character matches `char`.
+ *
+ * @param char - a character to match
+ * @param space - whether a space character stops iteration
+ */
+ XMLStringLexer.prototype.takeUntil = function (char, space) {
+ if (space === void 0) { space = false; }
+ var startIndex = this._index;
+ while (this._index < this._length) {
+ var c = this._str[this._index];
+ if (c !== char && (!space || !XMLStringLexer.isSpace(c))) {
+ this._index++;
+ }
+ else {
+ break;
+ }
+ }
+ return this._str.slice(startIndex, this._index);
+ };
+ /**
+ * Takes characters until the next character matches `char1` or `char1`.
+ *
+ * @param char1 - a character to match
+ * @param char2 - a character to match
+ * @param space - whether a space character stops iteration
+ */
+ XMLStringLexer.prototype.takeUntil2 = function (char1, char2, space) {
+ if (space === void 0) { space = false; }
+ var startIndex = this._index;
+ while (this._index < this._length) {
+ var c = this._str[this._index];
+ if (c !== char1 && c !== char2 && (!space || !XMLStringLexer.isSpace(c))) {
+ this._index++;
+ }
+ else {
+ break;
+ }
+ }
+ return this._str.slice(startIndex, this._index);
+ };
+ /**
+ * Takes characters until the next characters matches `str`.
+ *
+ * @param str - a string to match
+ * @param space - whether a space character stops iteration
+ */
+ XMLStringLexer.prototype.takeUntilStartsWith = function (str, space) {
+ if (space === void 0) { space = false; }
+ var startIndex = this._index;
+ var strLength = str.length;
+ while (this._index < this._length) {
+ var match = true;
+ for (var i = 0; i < strLength; i++) {
+ var c = this._str[this._index + i];
+ var char = str[i];
+ if (space && XMLStringLexer.isSpace(c)) {
+ return this._str.slice(startIndex, this._index);
+ }
+ else if (c !== char) {
+ this._index++;
+ match = false;
+ break;
+ }
+ }
+ if (match)
+ return this._str.slice(startIndex, this._index);
+ }
+ this._index = this._length;
+ return this._str.slice(startIndex);
+ };
+ /**
+ * Skips characters until the next character matches `char`.
+ *
+ * @param char - a character to match
+ */
+ XMLStringLexer.prototype.skipUntil = function (char) {
+ while (this._index < this._length) {
+ var c = this._str[this._index];
+ if (c !== char) {
+ this._index++;
+ }
+ else {
+ break;
+ }
+ }
+ };
+ /**
+ * Determines if the given token is entirely whitespace.
+ *
+ * @param token - the token to check
+ */
+ XMLStringLexer.isWhiteSpaceToken = function (token) {
+ var str = token.data;
+ for (var i = 0; i < str.length; i++) {
+ var c = str[i];
+ if (c !== ' ' && c !== '\n' && c !== '\r' && c !== '\t' && c !== '\f')
+ return false;
+ }
+ return true;
+ };
+ /**
+ * Determines if the given character is whitespace.
+ *
+ * @param char - the character to check
+ */
+ XMLStringLexer.isSpace = function (char) {
+ return char === ' ' || char === '\n' || char === '\r' || char === '\t';
+ };
+ /**
+ * Determines if the given character is a quote character.
+ *
+ * @param char - the character to check
+ */
+ XMLStringLexer.isQuote = function (char) {
+ return (char === '"' || char === '\'');
+ };
+ /**
+ * Throws a parser error and records the line and column numbers in the parsed
+ * string.
+ *
+ * @param msg - error message
+ */
+ XMLStringLexer.prototype.throwError = function (msg) {
+ var regexp = /\r\n|\r|\n/g;
+ var match = null;
+ var line = 0;
+ var firstNewLineIndex = 0;
+ var lastNewlineIndex = this._str.length;
+ while ((match = regexp.exec(this._str)) !== null) {
+ if (match === null)
+ break;
+ line++;
+ if (match.index < this._index)
+ firstNewLineIndex = regexp.lastIndex;
+ if (match.index > this._index) {
+ lastNewlineIndex = match.index;
+ break;
+ }
+ }
+ this.err = {
+ line: line,
+ col: this._index - firstNewLineIndex,
+ index: this._index,
+ str: this._str.substring(firstNewLineIndex, lastNewlineIndex)
+ };
+ throw new Error(msg + "\nIndex: " + this.err.index +
+ "\nLn: " + this.err.line + ", Col: " + this.err.col +
+ "\nInput: " + this.err.str);
+ };
+ /**
+ * Returns an iterator for the lexer.
+ */
+ XMLStringLexer.prototype[Symbol.iterator] = function () {
+ this._index = 0;
+ return {
+ next: function () {
+ var token = this.nextToken();
+ if (token.type === interfaces_1.TokenType.EOF) {
+ return { done: true, value: null };
+ }
+ else {
+ return { done: false, value: token };
+ }
+ }.bind(this)
+ };
+ };
+ return XMLStringLexer;
+}());
+exports.XMLStringLexer = XMLStringLexer;
+//# sourceMappingURL=XMLStringLexer.js.map
+
+/***/ }),
+
+/***/ 6216:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+// Export classes
+var DOMParserImpl_1 = __nccwpck_require__(4349);
+exports.DOMParser = DOMParserImpl_1.DOMParserImpl;
+//# sourceMappingURL=index.js.map
+
+/***/ }),
+
+/***/ 3413:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Defines the type of a token.
+ */
+var TokenType;
+(function (TokenType) {
+ TokenType[TokenType["EOF"] = 0] = "EOF";
+ TokenType[TokenType["Declaration"] = 1] = "Declaration";
+ TokenType[TokenType["DocType"] = 2] = "DocType";
+ TokenType[TokenType["Element"] = 3] = "Element";
+ TokenType[TokenType["Text"] = 4] = "Text";
+ TokenType[TokenType["CDATA"] = 5] = "CDATA";
+ TokenType[TokenType["PI"] = 6] = "PI";
+ TokenType[TokenType["Comment"] = 7] = "Comment";
+ TokenType[TokenType["ClosingTag"] = 8] = "ClosingTag";
+})(TokenType = exports.TokenType || (exports.TokenType = {}));
+//# sourceMappingURL=interfaces.js.map
+
+/***/ }),
+
+/***/ 9049:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Represents a set of unique attribute namespaceURI and localName pairs.
+ * This set will contain tuples of unique attribute namespaceURI and
+ * localName pairs, and is populated as each attr is processed. This set is
+ * used to [optionally] enforce the well-formed constraint that an element
+ * cannot have two attributes with the same namespaceURI and localName.
+ * This can occur when two otherwise identical attributes on the same
+ * element differ only by their prefix values.
+ */
+var LocalNameSet = /** @class */ (function () {
+ function LocalNameSet() {
+ // tuple storage
+ this._items = {};
+ this._nullItems = {};
+ }
+ /**
+ * Adds or replaces a tuple.
+ *
+ * @param ns - namespace URI
+ * @param localName - attribute local name
+ */
+ LocalNameSet.prototype.set = function (ns, localName) {
+ if (ns === null) {
+ this._nullItems[localName] = true;
+ }
+ else if (this._items[ns]) {
+ this._items[ns][localName] = true;
+ }
+ else {
+ this._items[ns] = {};
+ this._items[ns][localName] = true;
+ }
+ };
+ /**
+ * Determines if the given tuple exists in the set.
+ *
+ * @param ns - namespace URI
+ * @param localName - attribute local name
+ */
+ LocalNameSet.prototype.has = function (ns, localName) {
+ if (ns === null) {
+ return this._nullItems[localName] === true;
+ }
+ else if (this._items[ns]) {
+ return this._items[ns][localName] === true;
+ }
+ else {
+ return false;
+ }
+ };
+ return LocalNameSet;
+}());
+exports.LocalNameSet = LocalNameSet;
+//# sourceMappingURL=LocalNameSet.js.map
+
+/***/ }),
+
+/***/ 283:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * A namespace prefix map is a map that associates namespaceURI and namespace
+ * prefix lists, where namespaceURI values are the map's unique keys (which can
+ * include the null value representing no namespace), and ordered lists of
+ * associated prefix values are the map's key values. The namespace prefix map
+ * will be populated by previously seen namespaceURIs and all their previously
+ * encountered prefix associations for a given node and its ancestors.
+ *
+ * _Note:_ The last seen prefix for a given namespaceURI is at the end of its
+ * respective list. The list is searched to find potentially matching prefixes,
+ * and if no matches are found for the given namespaceURI, then the last prefix
+ * in the list is used. See copy a namespace prefix map and retrieve a preferred
+ * prefix string for additional details.
+ *
+ * See: https://w3c.github.io/DOM-Parsing/#the-namespace-prefix-map
+ */
+var NamespacePrefixMap = /** @class */ (function () {
+ function NamespacePrefixMap() {
+ this._items = {};
+ this._nullItems = [];
+ }
+ /**
+ * Creates a copy of the map.
+ */
+ NamespacePrefixMap.prototype.copy = function () {
+ /**
+ * To copy a namespace prefix map map means to copy the map's keys into a
+ * new empty namespace prefix map, and to copy each of the values in the
+ * namespace prefix list associated with each keys' value into a new list
+ * which should be associated with the respective key in the new map.
+ */
+ var mapCopy = new NamespacePrefixMap();
+ for (var key in this._items) {
+ mapCopy._items[key] = this._items[key].slice(0);
+ }
+ mapCopy._nullItems = this._nullItems.slice(0);
+ return mapCopy;
+ };
+ /**
+ * Retrieves a preferred prefix string from the namespace prefix map.
+ *
+ * @param preferredPrefix - preferred prefix string
+ * @param ns - namespace
+ */
+ NamespacePrefixMap.prototype.get = function (preferredPrefix, ns) {
+ /**
+ * 1. Let candidates list be the result of retrieving a list from map where
+ * there exists a key in map that matches the value of ns or if there is no
+ * such key, then stop running these steps, and return the null value.
+ */
+ var candidatesList = ns === null ? this._nullItems : (this._items[ns] || null);
+ if (candidatesList === null) {
+ return null;
+ }
+ /**
+ * 2. Otherwise, for each prefix value prefix in candidates list, iterating
+ * from beginning to end:
+ *
+ * _Note:_ There will always be at least one prefix value in the list.
+ */
+ var prefix = null;
+ for (var i = 0; i < candidatesList.length; i++) {
+ prefix = candidatesList[i];
+ /**
+ * 2.1. If prefix matches preferred prefix, then stop running these steps
+ * and return prefix.
+ */
+ if (prefix === preferredPrefix) {
+ return prefix;
+ }
+ }
+ /**
+ * 2.2. If prefix is the last item in the candidates list, then stop
+ * running these steps and return prefix.
+ */
+ return prefix;
+ };
+ /**
+ * Checks if a prefix string is found in the namespace prefix map associated
+ * with the given namespace.
+ *
+ * @param prefix - prefix string
+ * @param ns - namespace
+ */
+ NamespacePrefixMap.prototype.has = function (prefix, ns) {
+ /**
+ * 1. Let candidates list be the result of retrieving a list from map where
+ * there exists a key in map that matches the value of ns or if there is
+ * no such key, then stop running these steps, and return false.
+ */
+ var candidatesList = ns === null ? this._nullItems : (this._items[ns] || null);
+ if (candidatesList === null) {
+ return false;
+ }
+ /**
+ * 2. If the value of prefix occurs at least once in candidates list,
+ * return true, otherwise return false.
+ */
+ return (candidatesList.indexOf(prefix) !== -1);
+ };
+ /**
+ * Checks if a prefix string is found in the namespace prefix map.
+ *
+ * @param prefix - prefix string
+ */
+ NamespacePrefixMap.prototype.hasPrefix = function (prefix) {
+ if (this._nullItems.indexOf(prefix) !== -1)
+ return true;
+ for (var key in this._items) {
+ if (this._items[key].indexOf(prefix) !== -1)
+ return true;
+ }
+ return false;
+ };
+ /**
+ * Adds a prefix string associated with a namespace to the prefix map.
+ *
+ * @param prefix - prefix string
+ * @param ns - namespace
+ */
+ NamespacePrefixMap.prototype.set = function (prefix, ns) {
+ /**
+ * 1. Let candidates list be the result of retrieving a list from map where
+ * there exists a key in map that matches the value of ns or if there is
+ * no such key, then let candidates list be null.
+ */
+ var candidatesList = ns === null ? this._nullItems : (this._items[ns] || null);
+ /**
+ * 2. If candidates list is null, then create a new list with prefix as the
+ * only item in the list, and associate that list with a new key ns in map.
+ * 3. Otherwise, append prefix to the end of candidates list.
+ *
+ * _Note:_ The steps in retrieve a preferred prefix string use the list to
+ * track the most recently used (MRU) prefix associated with a given
+ * namespace, which will be the prefix at the end of the list. This list
+ * may contain duplicates of the same prefix value seen earlier
+ * (and that's OK).
+ */
+ if (ns !== null && candidatesList === null) {
+ this._items[ns] = [prefix];
+ }
+ else {
+ candidatesList.push(prefix);
+ }
+ };
+ return NamespacePrefixMap;
+}());
+exports.NamespacePrefixMap = NamespacePrefixMap;
+//# sourceMappingURL=NamespacePrefixMap.js.map
+
+/***/ }),
+
+/***/ 5039:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(7305);
+var LocalNameSet_1 = __nccwpck_require__(9049);
+var NamespacePrefixMap_1 = __nccwpck_require__(283);
+var DOMException_1 = __nccwpck_require__(3166);
+var infra_1 = __nccwpck_require__(4251);
+var algorithm_1 = __nccwpck_require__(61);
+/**
+ * Represents an XML serializer.
+ *
+ * Implements: https://www.w3.org/TR/DOM-Parsing/#serializing
+ */
+var XMLSerializerImpl = /** @class */ (function () {
+ function XMLSerializerImpl() {
+ }
+ /** @inheritdoc */
+ XMLSerializerImpl.prototype.serializeToString = function (root) {
+ /**
+ * The serializeToString(root) method must produce an XML serialization
+ * of root passing a value of false for the require well-formed parameter,
+ * and return the result.
+ */
+ return this._xmlSerialization(root, false);
+ };
+ /**
+ * Produces an XML serialization of the given node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ XMLSerializerImpl.prototype._xmlSerialization = function (node, requireWellFormed) {
+ // To increase performance, use a namespace-aware serializer only if the
+ // document has namespaced elements
+ if (node._nodeDocument === undefined || node._nodeDocument._hasNamespaces) {
+ /** From: https://w3c.github.io/DOM-Parsing/#xml-serialization
+ *
+ * 1. Let namespace be a context namespace with value null.
+ * The context namespace tracks the XML serialization algorithm's current
+ * default namespace. The context namespace is changed when either an Element
+ * Node has a default namespace declaration, or the algorithm generates a
+ * default namespace declaration for the Element Node to match its own
+ * namespace. The algorithm assumes no namespace (null) to start.
+ * 2. Let prefix map be a new namespace prefix map.
+ * 3. Add the XML namespace with prefix value "xml" to prefix map.
+ * 4. Let prefix index be a generated namespace prefix index with value 1.
+ * The generated namespace prefix index is used to generate a new unique
+ * prefix value when no suitable existing namespace prefix is available to
+ * serialize a node's namespaceURI (or the namespaceURI of one of node's
+ * attributes). See the generate a prefix algorithm.
+ */
+ var namespace = null;
+ var prefixMap = new NamespacePrefixMap_1.NamespacePrefixMap();
+ prefixMap.set("xml", infra_1.namespace.XML);
+ var prefixIndex = { value: 1 };
+ /**
+ * 5. Return the result of running the XML serialization algorithm on node
+ * passing the context namespace namespace, namespace prefix map prefix map,
+ * generated namespace prefix index reference to prefix index, and the
+ * flag require well-formed. If an exception occurs during the execution
+ * of the algorithm, then catch that exception and throw an
+ * "InvalidStateError" DOMException.
+ */
+ try {
+ return this._serializeNodeNS(node, namespace, prefixMap, prefixIndex, requireWellFormed);
+ }
+ catch (_a) {
+ throw new DOMException_1.InvalidStateError();
+ }
+ }
+ else {
+ try {
+ return this._serializeNode(node, requireWellFormed);
+ }
+ catch (_b) {
+ throw new DOMException_1.InvalidStateError();
+ }
+ }
+ };
+ /**
+ * Produces an XML serialization of a node.
+ *
+ * @param node - node to serialize
+ * @param namespace - context namespace
+ * @param prefixMap - namespace prefix map
+ * @param prefixIndex - generated namespace prefix index
+ * @param requireWellFormed - whether to check conformance
+ */
+ XMLSerializerImpl.prototype._serializeNodeNS = function (node, namespace, prefixMap, prefixIndex, requireWellFormed) {
+ switch (node.nodeType) {
+ case interfaces_1.NodeType.Element:
+ return this._serializeElementNS(node, namespace, prefixMap, prefixIndex, requireWellFormed);
+ case interfaces_1.NodeType.Document:
+ return this._serializeDocumentNS(node, namespace, prefixMap, prefixIndex, requireWellFormed);
+ case interfaces_1.NodeType.Comment:
+ return this._serializeComment(node, requireWellFormed);
+ case interfaces_1.NodeType.Text:
+ return this._serializeText(node, requireWellFormed);
+ case interfaces_1.NodeType.DocumentFragment:
+ return this._serializeDocumentFragmentNS(node, namespace, prefixMap, prefixIndex, requireWellFormed);
+ case interfaces_1.NodeType.DocumentType:
+ return this._serializeDocumentType(node, requireWellFormed);
+ case interfaces_1.NodeType.ProcessingInstruction:
+ return this._serializeProcessingInstruction(node, requireWellFormed);
+ case interfaces_1.NodeType.CData:
+ return this._serializeCData(node, requireWellFormed);
+ default:
+ throw new Error("Unknown node type: " + node.nodeType);
+ }
+ };
+ /**
+ * Produces an XML serialization of a node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ XMLSerializerImpl.prototype._serializeNode = function (node, requireWellFormed) {
+ switch (node.nodeType) {
+ case interfaces_1.NodeType.Element:
+ return this._serializeElement(node, requireWellFormed);
+ case interfaces_1.NodeType.Document:
+ return this._serializeDocument(node, requireWellFormed);
+ case interfaces_1.NodeType.Comment:
+ return this._serializeComment(node, requireWellFormed);
+ case interfaces_1.NodeType.Text:
+ return this._serializeText(node, requireWellFormed);
+ case interfaces_1.NodeType.DocumentFragment:
+ return this._serializeDocumentFragment(node, requireWellFormed);
+ case interfaces_1.NodeType.DocumentType:
+ return this._serializeDocumentType(node, requireWellFormed);
+ case interfaces_1.NodeType.ProcessingInstruction:
+ return this._serializeProcessingInstruction(node, requireWellFormed);
+ case interfaces_1.NodeType.CData:
+ return this._serializeCData(node, requireWellFormed);
+ default:
+ throw new Error("Unknown node type: " + node.nodeType);
+ }
+ };
+ /**
+ * Produces an XML serialization of an element node.
+ *
+ * @param node - node to serialize
+ * @param namespace - context namespace
+ * @param prefixMap - namespace prefix map
+ * @param prefixIndex - generated namespace prefix index
+ * @param requireWellFormed - whether to check conformance
+ */
+ XMLSerializerImpl.prototype._serializeElementNS = function (node, namespace, prefixMap, prefixIndex, requireWellFormed) {
+ var e_1, _a;
+ /**
+ * From: https://w3c.github.io/DOM-Parsing/#xml-serializing-an-element-node
+ *
+ * 1. If the require well-formed flag is set (its value is true), and this
+ * node's localName attribute contains the character ":" (U+003A COLON) or
+ * does not match the XML Name production, then throw an exception; the
+ * serialization of this node would not be a well-formed element.
+ */
+ if (requireWellFormed && (node.localName.indexOf(":") !== -1 ||
+ !algorithm_1.xml_isName(node.localName))) {
+ throw new Error("Node local name contains invalid characters (well-formed required).");
+ }
+ /**
+ * 2. Let markup be the string "<" (U+003C LESS-THAN SIGN).
+ * 3. Let qualified name be an empty string.
+ * 4. Let skip end tag be a boolean flag with value false.
+ * 5. Let ignore namespace definition attribute be a boolean flag with value
+ * false.
+ * 6. Given prefix map, copy a namespace prefix map and let map be the
+ * result.
+ * 7. Let local prefixes map be an empty map. The map has unique Node prefix
+ * strings as its keys, with corresponding namespaceURI Node values as the
+ * map's key values (in this map, the null namespace is represented by the
+ * empty string).
+ *
+ * _Note:_ This map is local to each element. It is used to ensure there
+ * are no conflicting prefixes should a new namespace prefix attribute need
+ * to be generated. It is also used to enable skipping of duplicate prefix
+ * definitions when writing an element's attributes: the map allows the
+ * algorithm to distinguish between a prefix in the namespace prefix map
+ * that might be locally-defined (to the current Element) and one that is
+ * not.
+ * 8. Let local default namespace be the result of recording the namespace
+ * information for node given map and local prefixes map.
+ *
+ * _Note:_ The above step will update map with any found namespace prefix
+ * definitions, add the found prefix definitions to the local prefixes map
+ * and return a local default namespace value defined by a default namespace
+ * attribute if one exists. Otherwise it returns null.
+ * 9. Let inherited ns be a copy of namespace.
+ * 10. Let ns be the value of node's namespaceURI attribute.
+ */
+ var markup = "<";
+ var qualifiedName = '';
+ var skipEndTag = false;
+ var ignoreNamespaceDefinitionAttribute = false;
+ var map = prefixMap.copy();
+ var localPrefixesMap = {};
+ var localDefaultNamespace = this._recordNamespaceInformation(node, map, localPrefixesMap);
+ var inheritedNS = namespace;
+ var ns = node.namespaceURI;
+ /** 11. If inherited ns is equal to ns, then: */
+ if (inheritedNS === ns) {
+ /**
+ * 11.1. If local default namespace is not null, then set ignore
+ * namespace definition attribute to true.
+ */
+ if (localDefaultNamespace !== null) {
+ ignoreNamespaceDefinitionAttribute = true;
+ }
+ /**
+ * 11.2. If ns is the XML namespace, then append to qualified name the
+ * concatenation of the string "xml:" and the value of node's localName.
+ * 11.3. Otherwise, append to qualified name the value of node's
+ * localName. The node's prefix if it exists, is dropped.
+ */
+ if (ns === infra_1.namespace.XML) {
+ qualifiedName = 'xml:' + node.localName;
+ }
+ else {
+ qualifiedName = node.localName;
+ }
+ /** 11.4. Append the value of qualified name to markup. */
+ markup += qualifiedName;
+ }
+ else {
+ /**
+ * 12. Otherwise, inherited ns is not equal to ns (the node's own
+ * namespace is different from the context namespace of its parent).
+ * Run these sub-steps:
+ *
+ * 12.1. Let prefix be the value of node's prefix attribute.
+ * 12.2. Let candidate prefix be the result of retrieving a preferred
+ * prefix string prefix from map given namespace ns. The above may return
+ * null if no namespace key ns exists in map.
+ */
+ var prefix = node.prefix;
+ /**
+ * We don't need to run "retrieving a preferred prefix string" algorithm if
+ * the element has no prefix and its namespace matches to the default
+ * namespace.
+ * See: https://github.com/web-platform-tests/wpt/pull/16703
+ */
+ var candidatePrefix = null;
+ if (prefix !== null || ns !== localDefaultNamespace) {
+ candidatePrefix = map.get(prefix, ns);
+ }
+ /**
+ * 12.3. If the value of prefix matches "xmlns", then run the following
+ * steps:
+ */
+ if (prefix === "xmlns") {
+ /**
+ * 12.3.1. If the require well-formed flag is set, then throw an error.
+ * An Element with prefix "xmlns" will not legally round-trip in a
+ * conforming XML parser.
+ */
+ if (requireWellFormed) {
+ throw new Error("An element cannot have the 'xmlns' prefix (well-formed required).");
+ }
+ /**
+ * 12.3.2. Let candidate prefix be the value of prefix.
+ */
+ candidatePrefix = prefix;
+ }
+ /**
+ * 12.4.Found a suitable namespace prefix: if candidate prefix is not
+ * null (a namespace prefix is defined which maps to ns), then:
+ */
+ if (candidatePrefix !== null) {
+ /**
+ * The following may serialize a different prefix than the Element's
+ * existing prefix if it already had one. However, the retrieving a
+ * preferred prefix string algorithm already tried to match the
+ * existing prefix if possible.
+ *
+ * 12.4.1. Append to qualified name the concatenation of candidate
+ * prefix, ":" (U+003A COLON), and node's localName. There exists on
+ * this node or the node's ancestry a namespace prefix definition that
+ * defines the node's namespace.
+ * 12.4.2. If the local default namespace is not null (there exists a
+ * locally-defined default namespace declaration attribute) and its
+ * value is not the XML namespace, then let inherited ns get the value
+ * of local default namespace unless the local default namespace is the
+ * empty string in which case let it get null (the context namespace
+ * is changed to the declared default, rather than this node's own
+ * namespace).
+ *
+ * _Note:_ Any default namespace definitions or namespace prefixes that
+ * define the XML namespace are omitted when serializing this node's
+ * attributes.
+ */
+ qualifiedName = candidatePrefix + ':' + node.localName;
+ if (localDefaultNamespace !== null && localDefaultNamespace !== infra_1.namespace.XML) {
+ inheritedNS = localDefaultNamespace || null;
+ }
+ /**
+ * 12.4.3. Append the value of qualified name to markup.
+ */
+ markup += qualifiedName;
+ /** 12.5. Otherwise, if prefix is not null, then: */
+ }
+ else if (prefix !== null) {
+ /**
+ * _Note:_ By this step, there is no namespace or prefix mapping
+ * declaration in this node (or any parent node visited by this
+ * algorithm) that defines prefix otherwise the step labelled Found
+ * a suitable namespace prefix would have been followed. The sub-steps
+ * that follow will create a new namespace prefix declaration for prefix
+ * and ensure that prefix does not conflict with an existing namespace
+ * prefix declaration of the same localName in node's attribute list.
+ *
+ * 12.5.1. If the local prefixes map contains a key matching prefix,
+ * then let prefix be the result of generating a prefix providing as
+ * input map, ns, and prefix index.
+ */
+ if (prefix in localPrefixesMap) {
+ prefix = this._generatePrefix(ns, map, prefixIndex);
+ }
+ /**
+ * 12.5.2. Add prefix to map given namespace ns.
+ * 12.5.3. Append to qualified name the concatenation of prefix, ":"
+ * (U+003A COLON), and node's localName.
+ * 12.5.4. Append the value of qualified name to markup.
+ */
+ map.set(prefix, ns);
+ qualifiedName += prefix + ':' + node.localName;
+ markup += qualifiedName;
+ /**
+ * 12.5.5. Append the following to markup, in the order listed:
+ *
+ * _Note:_ The following serializes a namespace prefix declaration for
+ * prefix which was just added to the map.
+ *
+ * 12.5.5.1. " " (U+0020 SPACE);
+ * 12.5.5.2. The string "xmlns:";
+ * 12.5.5.3. The value of prefix;
+ * 12.5.5.4. "="" (U+003D EQUALS SIGN, U+0022 QUOTATION MARK);
+ * 12.5.5.5. The result of serializing an attribute value given ns and
+ * the require well-formed flag as input;
+ * 12.5.5.6. """ (U+0022 QUOTATION MARK).
+ */
+ markup += " xmlns:" + prefix + "=\"" +
+ this._serializeAttributeValue(ns, requireWellFormed) + "\"";
+ /**
+ * 12.5.5.7. If local default namespace is not null (there exists a
+ * locally-defined default namespace declaration attribute), then
+ * let inherited ns get the value of local default namespace unless the
+ * local default namespace is the empty string in which case let it get
+ * null.
+ */
+ if (localDefaultNamespace !== null) {
+ inheritedNS = localDefaultNamespace || null;
+ }
+ /**
+ * 12.6. Otherwise, if local default namespace is null, or local
+ * default namespace is not null and its value is not equal to ns, then:
+ */
+ }
+ else if (localDefaultNamespace === null ||
+ (localDefaultNamespace !== null && localDefaultNamespace !== ns)) {
+ /**
+ * _Note:_ At this point, the namespace for this node still needs to be
+ * serialized, but there's no prefix (or candidate prefix) available; the
+ * following uses the default namespace declaration to define the
+ * namespace--optionally replacing an existing default declaration
+ * if present.
+ *
+ * 12.6.1. Set the ignore namespace definition attribute flag to true.
+ * 12.6.2. Append to qualified name the value of node's localName.
+ * 12.6.3. Let the value of inherited ns be ns.
+ *
+ * _Note:_ The new default namespace will be used in the serialization
+ * to define this node's namespace and act as the context namespace for
+ * its children.
+ */
+ ignoreNamespaceDefinitionAttribute = true;
+ qualifiedName += node.localName;
+ inheritedNS = ns;
+ /**
+ * 12.6.4. Append the value of qualified name to markup.
+ */
+ markup += qualifiedName;
+ /**
+ * 12.6.5. Append the following to markup, in the order listed:
+ *
+ * _Note:_ The following serializes the new (or replacement) default
+ * namespace definition.
+ *
+ * 12.6.5.1. " " (U+0020 SPACE);
+ * 12.6.5.2. The string "xmlns";
+ * 12.6.5.3. "="" (U+003D EQUALS SIGN, U+0022 QUOTATION MARK);
+ * 12.6.5.4. The result of serializing an attribute value given ns
+ * and the require well-formed flag as input;
+ * 12.6.5.5. """ (U+0022 QUOTATION MARK).
+ */
+ markup += " xmlns" + "=\"" +
+ this._serializeAttributeValue(ns, requireWellFormed) + "\"";
+ /**
+ * 12.7. Otherwise, the node has a local default namespace that matches
+ * ns. Append to qualified name the value of node's localName, let the
+ * value of inherited ns be ns, and append the value of qualified name
+ * to markup.
+ */
+ }
+ else {
+ qualifiedName += node.localName;
+ inheritedNS = ns;
+ markup += qualifiedName;
+ }
+ }
+ /**
+ * 13. Append to markup the result of the XML serialization of node's
+ * attributes given map, prefix index, local prefixes map, ignore namespace
+ * definition attribute flag, and require well-formed flag.
+ */
+ markup += this._serializeAttributesNS(node, map, prefixIndex, localPrefixesMap, ignoreNamespaceDefinitionAttribute, requireWellFormed);
+ /**
+ * 14. If ns is the HTML namespace, and the node's list of children is
+ * empty, and the node's localName matches any one of the following void
+ * elements: "area", "base", "basefont", "bgsound", "br", "col", "embed",
+ * "frame", "hr", "img", "input", "keygen", "link", "menuitem", "meta",
+ * "param", "source", "track", "wbr"; then append the following to markup,
+ * in the order listed:
+ * 14.1. " " (U+0020 SPACE);
+ * 14.2. "/" (U+002F SOLIDUS).
+ * and set the skip end tag flag to true.
+ * 15. If ns is not the HTML namespace, and the node's list of children is
+ * empty, then append "/" (U+002F SOLIDUS) to markup and set the skip end
+ * tag flag to true.
+ * 16. Append ">" (U+003E GREATER-THAN SIGN) to markup.
+ */
+ var isHTML = (ns === infra_1.namespace.HTML);
+ if (isHTML && node.childNodes.length === 0 &&
+ XMLSerializerImpl._VoidElementNames.has(node.localName)) {
+ markup += " /";
+ skipEndTag = true;
+ }
+ else if (!isHTML && node.childNodes.length === 0) {
+ markup += "/";
+ skipEndTag = true;
+ }
+ markup += ">";
+ /**
+ * 17. If the value of skip end tag is true, then return the value of markup
+ * and skip the remaining steps. The node is a leaf-node.
+ */
+ if (skipEndTag)
+ return markup;
+ /**
+ * 18. If ns is the HTML namespace, and the node's localName matches the
+ * string "template", then this is a template element. Append to markup the
+ * result of XML serializing a DocumentFragment node given the template
+ * element's template contents (a DocumentFragment), providing inherited
+ * ns, map, prefix index, and the require well-formed flag.
+ *
+ * _Note:_ This allows template content to round-trip, given the rules for
+ * parsing XHTML documents.
+ *
+ * 19. Otherwise, append to markup the result of running the XML
+ * serialization algorithm on each of node's children, in tree order,
+ * providing inherited ns, map, prefix index, and the require well-formed
+ * flag.
+ */
+ if (isHTML && node.localName === "template") {
+ // TODO: serialize template contents
+ }
+ else {
+ try {
+ for (var _b = __values(node._children || node.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var childNode = _c.value;
+ markup += this._serializeNodeNS(childNode, inheritedNS, map, prefixIndex, requireWellFormed);
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ }
+ /**
+ * 20. Append the following to markup, in the order listed:
+ * 20.1. "" (U+003C LESS-THAN SIGN, U+002F SOLIDUS);
+ * 20.2. The value of qualified name;
+ * 20.3. ">" (U+003E GREATER-THAN SIGN).
+ */
+ markup += "" + qualifiedName + ">";
+ /**
+ * 21. Return the value of markup.
+ */
+ return markup;
+ };
+ /**
+ * Produces an XML serialization of a document node.
+ *
+ * @param node - node to serialize
+ * @param namespace - context namespace
+ * @param prefixMap - namespace prefix map
+ * @param prefixIndex - generated namespace prefix index
+ * @param requireWellFormed - whether to check conformance
+ */
+ XMLSerializerImpl.prototype._serializeDocumentNS = function (node, namespace, prefixMap, prefixIndex, requireWellFormed) {
+ var e_2, _a;
+ /**
+ * If the require well-formed flag is set (its value is true), and this node
+ * has no documentElement (the documentElement attribute's value is null),
+ * then throw an exception; the serialization of this node would not be a
+ * well-formed document.
+ */
+ if (requireWellFormed && node.documentElement === null) {
+ throw new Error("Missing document element (well-formed required).");
+ }
+ /**
+ * Otherwise, run the following steps:
+ * 1. Let serialized document be an empty string.
+ * 2. For each child child of node, in tree order, run the XML
+ * serialization algorithm on the child passing along the provided
+ * arguments, and append the result to serialized document.
+ *
+ * _Note:_ This will serialize any number of ProcessingInstruction and
+ * Comment nodes both before and after the Document's documentElement node,
+ * including at most one DocumentType node. (Text nodes are not allowed as
+ * children of the Document.)
+ *
+ * 3. Return the value of serialized document.
+ */
+ var serializedDocument = "";
+ try {
+ for (var _b = __values(node._children || node.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var childNode = _c.value;
+ serializedDocument += this._serializeNodeNS(childNode, namespace, prefixMap, prefixIndex, requireWellFormed);
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ return serializedDocument;
+ };
+ /**
+ * Produces an XML serialization of a comment node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ XMLSerializerImpl.prototype._serializeComment = function (node, requireWellFormed) {
+ /**
+ * If the require well-formed flag is set (its value is true), and node's
+ * data contains characters that are not matched by the XML Char production
+ * or contains "--" (two adjacent U+002D HYPHEN-MINUS characters) or that
+ * ends with a "-" (U+002D HYPHEN-MINUS) character, then throw an exception;
+ * the serialization of this node's data would not be well-formed.
+ */
+ if (requireWellFormed && (!algorithm_1.xml_isLegalChar(node.data) ||
+ node.data.indexOf("--") !== -1 || node.data.endsWith("-"))) {
+ throw new Error("Comment data contains invalid characters (well-formed required).");
+ }
+ /**
+ * Otherwise, return the concatenation of "".
+ */
+ return "";
+ };
+ /**
+ * Produces an XML serialization of a text node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ * @param level - current depth of the XML tree
+ */
+ XMLSerializerImpl.prototype._serializeText = function (node, requireWellFormed) {
+ /**
+ * 1. If the require well-formed flag is set (its value is true), and
+ * node's data contains characters that are not matched by the XML Char
+ * production, then throw an exception; the serialization of this node's
+ * data would not be well-formed.
+ */
+ if (requireWellFormed && !algorithm_1.xml_isLegalChar(node.data)) {
+ throw new Error("Text data contains invalid characters (well-formed required).");
+ }
+ /**
+ * 2. Let markup be the value of node's data.
+ * 3. Replace any occurrences of "&" in markup by "&".
+ * 4. Replace any occurrences of "<" in markup by "<".
+ * 5. Replace any occurrences of ">" in markup by ">".
+ * 6. Return the value of markup.
+ */
+ var result = "";
+ for (var i = 0; i < node.data.length; i++) {
+ var c = node.data[i];
+ if (c === "&")
+ result += "&";
+ else if (c === "<")
+ result += "<";
+ else if (c === ">")
+ result += ">";
+ else
+ result += c;
+ }
+ return result;
+ };
+ /**
+ * Produces an XML serialization of a document fragment node.
+ *
+ * @param node - node to serialize
+ * @param namespace - context namespace
+ * @param prefixMap - namespace prefix map
+ * @param prefixIndex - generated namespace prefix index
+ * @param requireWellFormed - whether to check conformance
+ */
+ XMLSerializerImpl.prototype._serializeDocumentFragmentNS = function (node, namespace, prefixMap, prefixIndex, requireWellFormed) {
+ var e_3, _a;
+ /**
+ * 1. Let markup the empty string.
+ * 2. For each child child of node, in tree order, run the XML serialization
+ * algorithm on the child given namespace, prefix map, a reference to prefix
+ * index, and flag require well-formed. Concatenate the result to markup.
+ * 3. Return the value of markup.
+ */
+ var markup = "";
+ try {
+ for (var _b = __values(node._children || node.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var childNode = _c.value;
+ markup += this._serializeNodeNS(childNode, namespace, prefixMap, prefixIndex, requireWellFormed);
+ }
+ }
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_3) throw e_3.error; }
+ }
+ return markup;
+ };
+ /**
+ * Produces an XML serialization of a document type node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ XMLSerializerImpl.prototype._serializeDocumentType = function (node, requireWellFormed) {
+ /**
+ * 1. If the require well-formed flag is true and the node's publicId
+ * attribute contains characters that are not matched by the XML PubidChar
+ * production, then throw an exception; the serialization of this node
+ * would not be a well-formed document type declaration.
+ */
+ if (requireWellFormed && !algorithm_1.xml_isPubidChar(node.publicId)) {
+ throw new Error("DocType public identifier does not match PubidChar construct (well-formed required).");
+ }
+ /**
+ * 2. If the require well-formed flag is true and the node's systemId
+ * attribute contains characters that are not matched by the XML Char
+ * production or that contains both a """ (U+0022 QUOTATION MARK) and a
+ * "'" (U+0027 APOSTROPHE), then throw an exception; the serialization
+ * of this node would not be a well-formed document type declaration.
+ */
+ if (requireWellFormed &&
+ (!algorithm_1.xml_isLegalChar(node.systemId) ||
+ (node.systemId.indexOf('"') !== -1 && node.systemId.indexOf("'") !== -1))) {
+ throw new Error("DocType system identifier contains invalid characters (well-formed required).");
+ }
+ /**
+ * 3. Let markup be an empty string.
+ * 4. Append the string "" (U+003E GREATER-THAN SIGN) to markup.
+ * 11. Return the value of markup.
+ */
+ return node.publicId && node.systemId ?
+ ""
+ : node.publicId ?
+ ""
+ : node.systemId ?
+ ""
+ :
+ "";
+ };
+ /**
+ * Produces an XML serialization of a processing instruction node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ XMLSerializerImpl.prototype._serializeProcessingInstruction = function (node, requireWellFormed) {
+ /**
+ * 1. If the require well-formed flag is set (its value is true), and node's
+ * target contains a ":" (U+003A COLON) character or is an ASCII
+ * case-insensitive match for the string "xml", then throw an exception;
+ * the serialization of this node's target would not be well-formed.
+ */
+ if (requireWellFormed && (node.target.indexOf(":") !== -1 || (/^xml$/i).test(node.target))) {
+ throw new Error("Processing instruction target contains invalid characters (well-formed required).");
+ }
+ /**
+ * 2. If the require well-formed flag is set (its value is true), and node's
+ * data contains characters that are not matched by the XML Char production
+ * or contains the string "?>" (U+003F QUESTION MARK,
+ * U+003E GREATER-THAN SIGN), then throw an exception; the serialization of
+ * this node's data would not be well-formed.
+ */
+ if (requireWellFormed && (!algorithm_1.xml_isLegalChar(node.data) ||
+ node.data.indexOf("?>") !== -1)) {
+ throw new Error("Processing instruction data contains invalid characters (well-formed required).");
+ }
+ /**
+ * 3. Let markup be the concatenation of the following, in the order listed:
+ * 3.1. "" (U+003C LESS-THAN SIGN, U+003F QUESTION MARK);
+ * 3.2. The value of node's target;
+ * 3.3. " " (U+0020 SPACE);
+ * 3.4. The value of node's data;
+ * 3.5. "?>" (U+003F QUESTION MARK, U+003E GREATER-THAN SIGN).
+ * 4. Return the value of markup.
+ */
+ return "" + (node.data === "" ? node.target : node.target + " " + node.data) + "?>";
+ };
+ /**
+ * Produces an XML serialization of a CDATA node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ XMLSerializerImpl.prototype._serializeCData = function (node, requireWellFormed) {
+ if (requireWellFormed && (node.data.indexOf("]]>") !== -1)) {
+ throw new Error("CDATA contains invalid characters (well-formed required).");
+ }
+ return "";
+ };
+ /**
+ * Produces an XML serialization of the attributes of an element node.
+ *
+ * @param node - node to serialize
+ * @param map - namespace prefix map
+ * @param prefixIndex - generated namespace prefix index
+ * @param localPrefixesMap - local prefixes map
+ * @param ignoreNamespaceDefinitionAttribute - whether to ignore namespace
+ * attributes
+ * @param requireWellFormed - whether to check conformance
+ */
+ XMLSerializerImpl.prototype._serializeAttributesNS = function (node, map, prefixIndex, localPrefixesMap, ignoreNamespaceDefinitionAttribute, requireWellFormed) {
+ var e_4, _a;
+ /**
+ * 1. Let result be the empty string.
+ * 2. Let localname set be a new empty namespace localname set. This
+ * localname set will contain tuples of unique attribute namespaceURI and
+ * localName pairs, and is populated as each attr is processed. This set is
+ * used to [optionally] enforce the well-formed constraint that an element
+ * cannot have two attributes with the same namespaceURI and localName.
+ * This can occur when two otherwise identical attributes on the same
+ * element differ only by their prefix values.
+ */
+ var result = "";
+ var localNameSet = requireWellFormed ? new LocalNameSet_1.LocalNameSet() : undefined;
+ try {
+ /**
+ * 3. Loop: For each attribute attr in element's attributes, in the order
+ * they are specified in the element's attribute list:
+ */
+ for (var _b = __values(node.attributes), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var attr = _c.value;
+ // Optimize common case
+ if (!ignoreNamespaceDefinitionAttribute && !requireWellFormed && attr.namespaceURI === null) {
+ result += " " + attr.localName + "=\"" +
+ this._serializeAttributeValue(attr.value, requireWellFormed) + "\"";
+ continue;
+ }
+ /**
+ * 3.1. If the require well-formed flag is set (its value is true), and the
+ * localname set contains a tuple whose values match those of a new tuple
+ * consisting of attr's namespaceURI attribute and localName attribute,
+ * then throw an exception; the serialization of this attr would fail to
+ * produce a well-formed element serialization.
+ */
+ if (requireWellFormed && localNameSet && localNameSet.has(attr.namespaceURI, attr.localName)) {
+ throw new Error("Element contains duplicate attributes (well-formed required).");
+ }
+ /**
+ * 3.2. Create a new tuple consisting of attr's namespaceURI attribute and
+ * localName attribute, and add it to the localname set.
+ * 3.3. Let attribute namespace be the value of attr's namespaceURI value.
+ * 3.4. Let candidate prefix be null.
+ */
+ if (requireWellFormed && localNameSet)
+ localNameSet.set(attr.namespaceURI, attr.localName);
+ var attributeNamespace = attr.namespaceURI;
+ var candidatePrefix = null;
+ /** 3.5. If attribute namespace is not null, then run these sub-steps: */
+ if (attributeNamespace !== null) {
+ /**
+ * 3.5.1. Let candidate prefix be the result of retrieving a preferred
+ * prefix string from map given namespace attribute namespace with
+ * preferred prefix being attr's prefix value.
+ */
+ candidatePrefix = map.get(attr.prefix, attributeNamespace);
+ /**
+ * 3.5.2. If the value of attribute namespace is the XMLNS namespace,
+ * then run these steps:
+ */
+ if (attributeNamespace === infra_1.namespace.XMLNS) {
+ /**
+ * 3.5.2.1. If any of the following are true, then stop running these
+ * steps and goto Loop to visit the next attribute:
+ * - the attr's value is the XML namespace;
+ * _Note:_ The XML namespace cannot be redeclared and survive
+ * round-tripping (unless it defines the prefix "xml"). To avoid this
+ * problem, this algorithm always prefixes elements in the XML
+ * namespace with "xml" and drops any related definitions as seen
+ * in the above condition.
+ * - the attr's prefix is null and the ignore namespace definition
+ * attribute flag is true (the Element's default namespace attribute
+ * should be skipped);
+ * - the attr's prefix is not null and either
+ * * the attr's localName is not a key contained in the local
+ * prefixes map, or
+ * * the attr's localName is present in the local prefixes map but
+ * the value of the key does not match attr's value
+ * and furthermore that the attr's localName (as the prefix to find)
+ * is found in the namespace prefix map given the namespace consisting
+ * of the attr's value (the current namespace prefix definition was
+ * exactly defined previously--on an ancestor element not the current
+ * element whose attributes are being processed).
+ */
+ if (attr.value === infra_1.namespace.XML ||
+ (attr.prefix === null && ignoreNamespaceDefinitionAttribute) ||
+ (attr.prefix !== null && (!(attr.localName in localPrefixesMap) ||
+ localPrefixesMap[attr.localName] !== attr.value) &&
+ map.has(attr.localName, attr.value)))
+ continue;
+ /**
+ * 3.5.2.2. If the require well-formed flag is set (its value is true),
+ * and the value of attr's value attribute matches the XMLNS
+ * namespace, then throw an exception; the serialization of this
+ * attribute would produce invalid XML because the XMLNS namespace
+ * is reserved and cannot be applied as an element's namespace via
+ * XML parsing.
+ *
+ * _Note:_ DOM APIs do allow creation of elements in the XMLNS
+ * namespace but with strict qualifications.
+ */
+ if (requireWellFormed && attr.value === infra_1.namespace.XMLNS) {
+ throw new Error("XMLNS namespace is reserved (well-formed required).");
+ }
+ /**
+ * 3.5.2.3. If the require well-formed flag is set (its value is true),
+ * and the value of attr's value attribute is the empty string, then
+ * throw an exception; namespace prefix declarations cannot be used
+ * to undeclare a namespace (use a default namespace declaration
+ * instead).
+ */
+ if (requireWellFormed && attr.value === '') {
+ throw new Error("Namespace prefix declarations cannot be used to undeclare a namespace (well-formed required).");
+ }
+ /**
+ * 3.5.2.4. the attr's prefix matches the string "xmlns", then let
+ * candidate prefix be the string "xmlns".
+ */
+ if (attr.prefix === 'xmlns')
+ candidatePrefix = 'xmlns';
+ /**
+ * 3.5.3. Otherwise, the attribute namespace is not the XMLNS namespace.
+ * Run these steps:
+ *
+ * _Note:_ The (candidatePrefix === null) check is not in the spec.
+ * We deviate from the spec here. Otherwise a prefix is generated for
+ * all attributes with namespaces.
+ */
+ }
+ else if (candidatePrefix === null) {
+ if (attr.prefix !== null &&
+ (!map.hasPrefix(attr.prefix) ||
+ map.has(attr.prefix, attributeNamespace))) {
+ /**
+ * Check if we can use the attribute's own prefix.
+ * We deviate from the spec here.
+ * TODO: This is not an efficient way of searching for prefixes.
+ * Follow developments to the spec.
+ */
+ candidatePrefix = attr.prefix;
+ }
+ else {
+ /**
+ * 3.5.3.1. Let candidate prefix be the result of generating a prefix
+ * providing map, attribute namespace, and prefix index as input.
+ */
+ candidatePrefix = this._generatePrefix(attributeNamespace, map, prefixIndex);
+ }
+ /**
+ * 3.5.3.2. Append the following to result, in the order listed:
+ * 3.5.3.2.1. " " (U+0020 SPACE);
+ * 3.5.3.2.2. The string "xmlns:";
+ * 3.5.3.2.3. The value of candidate prefix;
+ * 3.5.3.2.4. "="" (U+003D EQUALS SIGN, U+0022 QUOTATION MARK);
+ * 3.5.3.2.5. The result of serializing an attribute value given
+ * attribute namespace and the require well-formed flag as input;
+ * 3.5.3.2.6. """ (U+0022 QUOTATION MARK).
+ */
+ result += " xmlns:" + candidatePrefix + "=\"" +
+ this._serializeAttributeValue(attributeNamespace, requireWellFormed) + "\"";
+ }
+ }
+ /**
+ * 3.6. Append a " " (U+0020 SPACE) to result.
+ * 3.7. If candidate prefix is not null, then append to result the
+ * concatenation of candidate prefix with ":" (U+003A COLON).
+ */
+ result += " ";
+ if (candidatePrefix !== null) {
+ result += candidatePrefix + ':';
+ }
+ /**
+ * 3.8. If the require well-formed flag is set (its value is true), and
+ * this attr's localName attribute contains the character
+ * ":" (U+003A COLON) or does not match the XML Name production or
+ * equals "xmlns" and attribute namespace is null, then throw an
+ * exception; the serialization of this attr would not be a
+ * well-formed attribute.
+ */
+ if (requireWellFormed && (attr.localName.indexOf(":") !== -1 ||
+ !algorithm_1.xml_isName(attr.localName) ||
+ (attr.localName === "xmlns" && attributeNamespace === null))) {
+ throw new Error("Attribute local name contains invalid characters (well-formed required).");
+ }
+ /**
+ * 3.9. Append the following strings to result, in the order listed:
+ * 3.9.1. The value of attr's localName;
+ * 3.9.2. "="" (U+003D EQUALS SIGN, U+0022 QUOTATION MARK);
+ * 3.9.3. The result of serializing an attribute value given attr's value
+ * attribute and the require well-formed flag as input;
+ * 3.9.4. """ (U+0022 QUOTATION MARK).
+ */
+ result += attr.localName + "=\"" +
+ this._serializeAttributeValue(attr.value, requireWellFormed) + "\"";
+ }
+ }
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_4) throw e_4.error; }
+ }
+ /**
+ * 4. Return the value of result.
+ */
+ return result;
+ };
+ /**
+ * Records namespace information for the given element and returns the
+ * default namespace attribute value.
+ *
+ * @param node - element node to process
+ * @param map - namespace prefix map
+ * @param localPrefixesMap - local prefixes map
+ */
+ XMLSerializerImpl.prototype._recordNamespaceInformation = function (node, map, localPrefixesMap) {
+ var e_5, _a;
+ /**
+ * 1. Let default namespace attr value be null.
+ */
+ var defaultNamespaceAttrValue = null;
+ try {
+ /**
+ * 2. Main: For each attribute attr in element's attributes, in the order
+ * they are specified in the element's attribute list:
+ */
+ for (var _b = __values(node.attributes), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var attr = _c.value;
+ /**
+ * _Note:_ The following conditional steps find namespace prefixes. Only
+ * attributes in the XMLNS namespace are considered (e.g., attributes made
+ * to look like namespace declarations via
+ * setAttribute("xmlns:pretend-prefix", "pretend-namespace") are not
+ * included).
+ */
+ /** 2.1. Let attribute namespace be the value of attr's namespaceURI value. */
+ var attributeNamespace = attr.namespaceURI;
+ /** 2.2. Let attribute prefix be the value of attr's prefix. */
+ var attributePrefix = attr.prefix;
+ /** 2.3. If the attribute namespace is the XMLNS namespace, then: */
+ if (attributeNamespace === infra_1.namespace.XMLNS) {
+ /**
+ * 2.3.1. If attribute prefix is null, then attr is a default namespace
+ * declaration. Set the default namespace attr value to attr's value and
+ * stop running these steps, returning to Main to visit the next
+ * attribute.
+ */
+ if (attributePrefix === null) {
+ defaultNamespaceAttrValue = attr.value;
+ continue;
+ /**
+ * 2.3.2. Otherwise, the attribute prefix is not null and attr is a
+ * namespace prefix definition. Run the following steps:
+ */
+ }
+ else {
+ /** 2.3.2.1. Let prefix definition be the value of attr's localName. */
+ var prefixDefinition = attr.localName;
+ /** 2.3.2.2. Let namespace definition be the value of attr's value. */
+ var namespaceDefinition = attr.value;
+ /**
+ * 2.3.2.3. If namespace definition is the XML namespace, then stop
+ * running these steps, and return to Main to visit the next
+ * attribute.
+ *
+ * _Note:_ XML namespace definitions in prefixes are completely
+ * ignored (in order to avoid unnecessary work when there might be
+ * prefix conflicts). XML namespaced elements are always handled
+ * uniformly by prefixing (and overriding if necessary) the element's
+ * localname with the reserved "xml" prefix.
+ */
+ if (namespaceDefinition === infra_1.namespace.XML) {
+ continue;
+ }
+ /**
+ * 2.3.2.4. If namespace definition is the empty string (the
+ * declarative form of having no namespace), then let namespace
+ * definition be null instead.
+ */
+ if (namespaceDefinition === '') {
+ namespaceDefinition = null;
+ }
+ /**
+ * 2.3.2.5. If prefix definition is found in map given the namespace
+ * namespace definition, then stop running these steps, and return to
+ * Main to visit the next attribute.
+ *
+ * _Note:_ This step avoids adding duplicate prefix definitions for
+ * the same namespace in the map. This has the side-effect of avoiding
+ * later serialization of duplicate namespace prefix declarations in
+ * any descendant nodes.
+ */
+ if (map.has(prefixDefinition, namespaceDefinition)) {
+ continue;
+ }
+ /**
+ * 2.3.2.6. Add the prefix prefix definition to map given namespace
+ * namespace definition.
+ */
+ map.set(prefixDefinition, namespaceDefinition);
+ /**
+ * 2.3.2.7. Add the value of prefix definition as a new key to the
+ * local prefixes map, with the namespace definition as the key's
+ * value replacing the value of null with the empty string if
+ * applicable.
+ */
+ localPrefixesMap[prefixDefinition] = namespaceDefinition || '';
+ }
+ }
+ }
+ }
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_5) throw e_5.error; }
+ }
+ /**
+ * 3. Return the value of default namespace attr value.
+ *
+ * _Note:_ The empty string is a legitimate return value and is not
+ * converted to null.
+ */
+ return defaultNamespaceAttrValue;
+ };
+ /**
+ * Generates a new prefix for the given namespace.
+ *
+ * @param newNamespace - a namespace to generate prefix for
+ * @param prefixMap - namespace prefix map
+ * @param prefixIndex - generated namespace prefix index
+ */
+ XMLSerializerImpl.prototype._generatePrefix = function (newNamespace, prefixMap, prefixIndex) {
+ /**
+ * 1. Let generated prefix be the concatenation of the string "ns" and the
+ * current numerical value of prefix index.
+ * 2. Let the value of prefix index be incremented by one.
+ * 3. Add to map the generated prefix given the new namespace namespace.
+ * 4. Return the value of generated prefix.
+ */
+ var generatedPrefix = "ns" + prefixIndex.value;
+ prefixIndex.value++;
+ prefixMap.set(generatedPrefix, newNamespace);
+ return generatedPrefix;
+ };
+ /**
+ * Produces an XML serialization of an attribute value.
+ *
+ * @param value - attribute value
+ * @param requireWellFormed - whether to check conformance
+ */
+ XMLSerializerImpl.prototype._serializeAttributeValue = function (value, requireWellFormed) {
+ /**
+ * From: https://w3c.github.io/DOM-Parsing/#dfn-serializing-an-attribute-value
+ *
+ * 1. If the require well-formed flag is set (its value is true), and
+ * attribute value contains characters that are not matched by the XML Char
+ * production, then throw an exception; the serialization of this attribute
+ * value would fail to produce a well-formed element serialization.
+ */
+ if (requireWellFormed && value !== null && !algorithm_1.xml_isLegalChar(value)) {
+ throw new Error("Invalid characters in attribute value.");
+ }
+ /**
+ * 2. If attribute value is null, then return the empty string.
+ */
+ if (value === null)
+ return "";
+ /**
+ * 3. Otherwise, attribute value is a string. Return the value of attribute
+ * value, first replacing any occurrences of the following:
+ * - "&" with "&"
+ * - """ with """
+ * - "<" with "<"
+ * - ">" with ">"
+ * NOTE
+ * This matches behavior present in browsers, and goes above and beyond the
+ * grammar requirement in the XML specification's AttValue production by
+ * also replacing ">" characters.
+ */
+ var result = "";
+ for (var i = 0; i < value.length; i++) {
+ var c = value[i];
+ if (c === "\"")
+ result += """;
+ else if (c === "&")
+ result += "&";
+ else if (c === "<")
+ result += "<";
+ else if (c === ">")
+ result += ">";
+ else
+ result += c;
+ }
+ return result;
+ };
+ /**
+ * Produces an XML serialization of an element node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ XMLSerializerImpl.prototype._serializeElement = function (node, requireWellFormed) {
+ var e_6, _a;
+ /**
+ * From: https://w3c.github.io/DOM-Parsing/#xml-serializing-an-element-node
+ *
+ * 1. If the require well-formed flag is set (its value is true), and this
+ * node's localName attribute contains the character ":" (U+003A COLON) or
+ * does not match the XML Name production, then throw an exception; the
+ * serialization of this node would not be a well-formed element.
+ */
+ if (requireWellFormed && (node.localName.indexOf(":") !== -1 ||
+ !algorithm_1.xml_isName(node.localName))) {
+ throw new Error("Node local name contains invalid characters (well-formed required).");
+ }
+ /**
+ * 2. Let markup be the string "<" (U+003C LESS-THAN SIGN).
+ * 3. Let qualified name be an empty string.
+ * 4. Let skip end tag be a boolean flag with value false.
+ * 5. Let ignore namespace definition attribute be a boolean flag with value
+ * false.
+ * 6. Given prefix map, copy a namespace prefix map and let map be the
+ * result.
+ * 7. Let local prefixes map be an empty map. The map has unique Node prefix
+ * strings as its keys, with corresponding namespaceURI Node values as the
+ * map's key values (in this map, the null namespace is represented by the
+ * empty string).
+ *
+ * _Note:_ This map is local to each element. It is used to ensure there
+ * are no conflicting prefixes should a new namespace prefix attribute need
+ * to be generated. It is also used to enable skipping of duplicate prefix
+ * definitions when writing an element's attributes: the map allows the
+ * algorithm to distinguish between a prefix in the namespace prefix map
+ * that might be locally-defined (to the current Element) and one that is
+ * not.
+ * 8. Let local default namespace be the result of recording the namespace
+ * information for node given map and local prefixes map.
+ *
+ * _Note:_ The above step will update map with any found namespace prefix
+ * definitions, add the found prefix definitions to the local prefixes map
+ * and return a local default namespace value defined by a default namespace
+ * attribute if one exists. Otherwise it returns null.
+ * 9. Let inherited ns be a copy of namespace.
+ * 10. Let ns be the value of node's namespaceURI attribute.
+ */
+ var skipEndTag = false;
+ /** 11. If inherited ns is equal to ns, then: */
+ /**
+ * 11.1. If local default namespace is not null, then set ignore
+ * namespace definition attribute to true.
+ * 11.2. If ns is the XML namespace, then append to qualified name the
+ * concatenation of the string "xml:" and the value of node's localName.
+ * 11.3. Otherwise, append to qualified name the value of node's
+ * localName. The node's prefix if it exists, is dropped.
+ */
+ var qualifiedName = node.localName;
+ /** 11.4. Append the value of qualified name to markup. */
+ var markup = "<" + qualifiedName;
+ /**
+ * 13. Append to markup the result of the XML serialization of node's
+ * attributes given map, prefix index, local prefixes map, ignore namespace
+ * definition attribute flag, and require well-formed flag.
+ */
+ markup += this._serializeAttributes(node, requireWellFormed);
+ /**
+ * 14. If ns is the HTML namespace, and the node's list of children is
+ * empty, and the node's localName matches any one of the following void
+ * elements: "area", "base", "basefont", "bgsound", "br", "col", "embed",
+ * "frame", "hr", "img", "input", "keygen", "link", "menuitem", "meta",
+ * "param", "source", "track", "wbr"; then append the following to markup,
+ * in the order listed:
+ * 14.1. " " (U+0020 SPACE);
+ * 14.2. "/" (U+002F SOLIDUS).
+ * and set the skip end tag flag to true.
+ * 15. If ns is not the HTML namespace, and the node's list of children is
+ * empty, then append "/" (U+002F SOLIDUS) to markup and set the skip end
+ * tag flag to true.
+ * 16. Append ">" (U+003E GREATER-THAN SIGN) to markup.
+ */
+ if (node._children.size === 0) {
+ markup += "/";
+ skipEndTag = true;
+ }
+ markup += ">";
+ /**
+ * 17. If the value of skip end tag is true, then return the value of markup
+ * and skip the remaining steps. The node is a leaf-node.
+ */
+ if (skipEndTag)
+ return markup;
+ try {
+ /**
+ * 18. If ns is the HTML namespace, and the node's localName matches the
+ * string "template", then this is a template element. Append to markup the
+ * result of XML serializing a DocumentFragment node given the template
+ * element's template contents (a DocumentFragment), providing inherited
+ * ns, map, prefix index, and the require well-formed flag.
+ *
+ * _Note:_ This allows template content to round-trip, given the rules for
+ * parsing XHTML documents.
+ *
+ * 19. Otherwise, append to markup the result of running the XML
+ * serialization algorithm on each of node's children, in tree order,
+ * providing inherited ns, map, prefix index, and the require well-formed
+ * flag.
+ */
+ for (var _b = __values(node._children), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var childNode = _c.value;
+ markup += this._serializeNode(childNode, requireWellFormed);
+ }
+ }
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_6) throw e_6.error; }
+ }
+ /**
+ * 20. Append the following to markup, in the order listed:
+ * 20.1. "" (U+003C LESS-THAN SIGN, U+002F SOLIDUS);
+ * 20.2. The value of qualified name;
+ * 20.3. ">" (U+003E GREATER-THAN SIGN).
+ */
+ markup += "" + qualifiedName + ">";
+ /**
+ * 21. Return the value of markup.
+ */
+ return markup;
+ };
+ /**
+ * Produces an XML serialization of a document node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ XMLSerializerImpl.prototype._serializeDocument = function (node, requireWellFormed) {
+ var e_7, _a;
+ /**
+ * If the require well-formed flag is set (its value is true), and this node
+ * has no documentElement (the documentElement attribute's value is null),
+ * then throw an exception; the serialization of this node would not be a
+ * well-formed document.
+ */
+ if (requireWellFormed && node.documentElement === null) {
+ throw new Error("Missing document element (well-formed required).");
+ }
+ /**
+ * Otherwise, run the following steps:
+ * 1. Let serialized document be an empty string.
+ * 2. For each child child of node, in tree order, run the XML
+ * serialization algorithm on the child passing along the provided
+ * arguments, and append the result to serialized document.
+ *
+ * _Note:_ This will serialize any number of ProcessingInstruction and
+ * Comment nodes both before and after the Document's documentElement node,
+ * including at most one DocumentType node. (Text nodes are not allowed as
+ * children of the Document.)
+ *
+ * 3. Return the value of serialized document.
+ */
+ var serializedDocument = "";
+ try {
+ for (var _b = __values(node._children), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var childNode = _c.value;
+ serializedDocument += this._serializeNode(childNode, requireWellFormed);
+ }
+ }
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_7) throw e_7.error; }
+ }
+ return serializedDocument;
+ };
+ /**
+ * Produces an XML serialization of a document fragment node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ XMLSerializerImpl.prototype._serializeDocumentFragment = function (node, requireWellFormed) {
+ var e_8, _a;
+ /**
+ * 1. Let markup the empty string.
+ * 2. For each child child of node, in tree order, run the XML serialization
+ * algorithm on the child given namespace, prefix map, a reference to prefix
+ * index, and flag require well-formed. Concatenate the result to markup.
+ * 3. Return the value of markup.
+ */
+ var markup = "";
+ try {
+ for (var _b = __values(node._children), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var childNode = _c.value;
+ markup += this._serializeNode(childNode, requireWellFormed);
+ }
+ }
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_8) throw e_8.error; }
+ }
+ return markup;
+ };
+ /**
+ * Produces an XML serialization of the attributes of an element node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ XMLSerializerImpl.prototype._serializeAttributes = function (node, requireWellFormed) {
+ var e_9, _a;
+ /**
+ * 1. Let result be the empty string.
+ * 2. Let localname set be a new empty namespace localname set. This
+ * localname set will contain tuples of unique attribute namespaceURI and
+ * localName pairs, and is populated as each attr is processed. This set is
+ * used to [optionally] enforce the well-formed constraint that an element
+ * cannot have two attributes with the same namespaceURI and localName.
+ * This can occur when two otherwise identical attributes on the same
+ * element differ only by their prefix values.
+ */
+ var result = "";
+ var localNameSet = requireWellFormed ? {} : undefined;
+ try {
+ /**
+ * 3. Loop: For each attribute attr in element's attributes, in the order
+ * they are specified in the element's attribute list:
+ */
+ for (var _b = __values(node.attributes), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var attr = _c.value;
+ /**
+ * 3.1. If the require well-formed flag is set (its value is true), and the
+ * localname set contains a tuple whose values match those of a new tuple
+ * consisting of attr's namespaceURI attribute and localName attribute,
+ * then throw an exception; the serialization of this attr would fail to
+ * produce a well-formed element serialization.
+ */
+ if (requireWellFormed && localNameSet && (attr.localName in localNameSet)) {
+ throw new Error("Element contains duplicate attributes (well-formed required).");
+ }
+ /**
+ * 3.2. Create a new tuple consisting of attr's namespaceURI attribute and
+ * localName attribute, and add it to the localname set.
+ * 3.3. Let attribute namespace be the value of attr's namespaceURI value.
+ * 3.4. Let candidate prefix be null.
+ */
+ if (requireWellFormed && localNameSet)
+ localNameSet[attr.localName] = true;
+ /** 3.5. If attribute namespace is not null, then run these sub-steps: */
+ /**
+ * 3.6. Append a " " (U+0020 SPACE) to result.
+ * 3.7. If candidate prefix is not null, then append to result the
+ * concatenation of candidate prefix with ":" (U+003A COLON).
+ */
+ /**
+ * 3.8. If the require well-formed flag is set (its value is true), and
+ * this attr's localName attribute contains the character
+ * ":" (U+003A COLON) or does not match the XML Name production or
+ * equals "xmlns" and attribute namespace is null, then throw an
+ * exception; the serialization of this attr would not be a
+ * well-formed attribute.
+ */
+ if (requireWellFormed && (attr.localName.indexOf(":") !== -1 ||
+ !algorithm_1.xml_isName(attr.localName))) {
+ throw new Error("Attribute local name contains invalid characters (well-formed required).");
+ }
+ /**
+ * 3.9. Append the following strings to result, in the order listed:
+ * 3.9.1. The value of attr's localName;
+ * 3.9.2. "="" (U+003D EQUALS SIGN, U+0022 QUOTATION MARK);
+ * 3.9.3. The result of serializing an attribute value given attr's value
+ * attribute and the require well-formed flag as input;
+ * 3.9.4. """ (U+0022 QUOTATION MARK).
+ */
+ result += " " + attr.localName + "=\"" +
+ this._serializeAttributeValue(attr.value, requireWellFormed) + "\"";
+ }
+ }
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_9) throw e_9.error; }
+ }
+ /**
+ * 4. Return the value of result.
+ */
+ return result;
+ };
+ XMLSerializerImpl._VoidElementNames = new Set(['area', 'base', 'basefont',
+ 'bgsound', 'br', 'col', 'embed', 'frame', 'hr', 'img', 'input', 'keygen',
+ 'link', 'menuitem', 'meta', 'param', 'source', 'track', 'wbr']);
+ return XMLSerializerImpl;
+}());
+exports.XMLSerializerImpl = XMLSerializerImpl;
+//# sourceMappingURL=XMLSerializerImpl.js.map
+
+/***/ }),
+
+/***/ 7119:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+// Export classes
+var XMLSerializerImpl_1 = __nccwpck_require__(5039);
+exports.XMLSerializer = XMLSerializerImpl_1.XMLSerializerImpl;
+//# sourceMappingURL=index.js.map
+
+/***/ }),
+
+/***/ 5483:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var Guard_1 = __nccwpck_require__(6862);
+/**
+ * Contains type casts for DOM objects.
+ */
+var Cast = /** @class */ (function () {
+ function Cast() {
+ }
+ /**
+ * Casts the given object to a `Node`.
+ *
+ * @param a - the object to cast
+ */
+ Cast.asNode = function (a) {
+ if (Guard_1.Guard.isNode(a)) {
+ return a;
+ }
+ else {
+ throw new Error("Invalid object. Node expected.");
+ }
+ };
+ return Cast;
+}());
+exports.Cast = Cast;
+//# sourceMappingURL=Cast.js.map
+
+/***/ }),
+
+/***/ 8392:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var EmptySet = /** @class */ (function () {
+ function EmptySet() {
+ }
+ Object.defineProperty(EmptySet.prototype, "size", {
+ get: function () {
+ return 0;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ EmptySet.prototype.add = function (value) {
+ throw new Error("Cannot add to an empty set.");
+ };
+ EmptySet.prototype.clear = function () {
+ // no-op
+ };
+ EmptySet.prototype.delete = function (value) {
+ return false;
+ };
+ EmptySet.prototype.forEach = function (callbackfn, thisArg) {
+ // no-op
+ };
+ EmptySet.prototype.has = function (value) {
+ return false;
+ };
+ EmptySet.prototype[Symbol.iterator] = function () {
+ return new EmptySetIterator();
+ };
+ EmptySet.prototype.entries = function () {
+ return new EmptySetIterator();
+ };
+ EmptySet.prototype.keys = function () {
+ return new EmptySetIterator();
+ };
+ EmptySet.prototype.values = function () {
+ return new EmptySetIterator();
+ };
+ Object.defineProperty(EmptySet.prototype, Symbol.toStringTag, {
+ get: function () {
+ return "EmptySet";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return EmptySet;
+}());
+exports.EmptySet = EmptySet;
+var EmptySetIterator = /** @class */ (function () {
+ function EmptySetIterator() {
+ }
+ EmptySetIterator.prototype[Symbol.iterator] = function () {
+ return this;
+ };
+ EmptySetIterator.prototype.next = function () {
+ return { done: true, value: null };
+ };
+ return EmptySetIterator;
+}());
+//# sourceMappingURL=EmptySet.js.map
+
+/***/ }),
+
+/***/ 6862:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(7305);
+/**
+ * Contains user-defined type guards for DOM objects.
+ */
+var Guard = /** @class */ (function () {
+ function Guard() {
+ }
+ /**
+ * Determines if the given object is a `Node`.
+ *
+ * @param a - the object to check
+ */
+ Guard.isNode = function (a) {
+ return (!!a && a._nodeType !== undefined);
+ };
+ /**
+ * Determines if the given object is a `Document`.
+ *
+ * @param a - the object to check
+ */
+ Guard.isDocumentNode = function (a) {
+ return (Guard.isNode(a) && a._nodeType === interfaces_1.NodeType.Document);
+ };
+ /**
+ * Determines if the given object is a `DocumentType`.
+ *
+ * @param a - the object to check
+ */
+ Guard.isDocumentTypeNode = function (a) {
+ return (Guard.isNode(a) && a._nodeType === interfaces_1.NodeType.DocumentType);
+ };
+ /**
+ * Determines if the given object is a `DocumentFragment`.
+ *
+ * @param a - the object to check
+ */
+ Guard.isDocumentFragmentNode = function (a) {
+ return (Guard.isNode(a) && a._nodeType === interfaces_1.NodeType.DocumentFragment);
+ };
+ /**
+ * Determines if the given object is a `Attr`.
+ *
+ * @param a - the object to check
+ */
+ Guard.isAttrNode = function (a) {
+ return (Guard.isNode(a) && a._nodeType === interfaces_1.NodeType.Attribute);
+ };
+ /**
+ * Determines if the given node is a `CharacterData` node.
+ *
+ * @param a - the object to check
+ */
+ Guard.isCharacterDataNode = function (a) {
+ if (!Guard.isNode(a))
+ return false;
+ var type = a._nodeType;
+ return (type === interfaces_1.NodeType.Text ||
+ type === interfaces_1.NodeType.ProcessingInstruction ||
+ type === interfaces_1.NodeType.Comment ||
+ type === interfaces_1.NodeType.CData);
+ };
+ /**
+ * Determines if the given object is a `Text` or a `CDATASection`.
+ *
+ * @param a - the object to check
+ */
+ Guard.isTextNode = function (a) {
+ return (Guard.isNode(a) && (a._nodeType === interfaces_1.NodeType.Text || a._nodeType === interfaces_1.NodeType.CData));
+ };
+ /**
+ * Determines if the given object is a `Text`.
+ *
+ * @param a - the object to check
+ */
+ Guard.isExclusiveTextNode = function (a) {
+ return (Guard.isNode(a) && a._nodeType === interfaces_1.NodeType.Text);
+ };
+ /**
+ * Determines if the given object is a `CDATASection`.
+ *
+ * @param a - the object to check
+ */
+ Guard.isCDATASectionNode = function (a) {
+ return (Guard.isNode(a) && a._nodeType === interfaces_1.NodeType.CData);
+ };
+ /**
+ * Determines if the given object is a `Comment`.
+ *
+ * @param a - the object to check
+ */
+ Guard.isCommentNode = function (a) {
+ return (Guard.isNode(a) && a._nodeType === interfaces_1.NodeType.Comment);
+ };
+ /**
+ * Determines if the given object is a `ProcessingInstruction`.
+ *
+ * @param a - the object to check
+ */
+ Guard.isProcessingInstructionNode = function (a) {
+ return (Guard.isNode(a) && a._nodeType === interfaces_1.NodeType.ProcessingInstruction);
+ };
+ /**
+ * Determines if the given object is an `Element`.
+ *
+ * @param a - the object to check
+ */
+ Guard.isElementNode = function (a) {
+ return (Guard.isNode(a) && a._nodeType === interfaces_1.NodeType.Element);
+ };
+ /**
+ * Determines if the given object is a custom `Element`.
+ *
+ * @param a - the object to check
+ */
+ Guard.isCustomElementNode = function (a) {
+ return (Guard.isElementNode(a) && a._customElementState === "custom");
+ };
+ /**
+ * Determines if the given object is a `ShadowRoot`.
+ *
+ * @param a - the object to check
+ */
+ Guard.isShadowRoot = function (a) {
+ return (!!a && a.host !== undefined);
+ };
+ /**
+ * Determines if the given object is a `MouseEvent`.
+ *
+ * @param a - the object to check
+ */
+ Guard.isMouseEvent = function (a) {
+ return (!!a && a.screenX !== undefined && a.screenY != undefined);
+ };
+ /**
+ * Determines if the given object is a slotable.
+ *
+ * Element and Text nodes are slotables. A slotable has an associated name
+ * (a string).
+ *
+ * @param a - the object to check
+ */
+ Guard.isSlotable = function (a) {
+ return (!!a && a._name !== undefined && a._assignedSlot !== undefined &&
+ (Guard.isTextNode(a) || Guard.isElementNode(a)));
+ };
+ /**
+ * Determines if the given object is a slot.
+ *
+ * @param a - the object to check
+ */
+ Guard.isSlot = function (a) {
+ return (!!a && a._name !== undefined && a._assignedNodes !== undefined &&
+ Guard.isElementNode(a));
+ };
+ /**
+ * Determines if the given object is a `Window`.
+ *
+ * @param a - the object to check
+ */
+ Guard.isWindow = function (a) {
+ return (!!a && a.navigator !== undefined);
+ };
+ /**
+ * Determines if the given object is an `EventListener`.
+ *
+ * @param a - the object to check
+ */
+ Guard.isEventListener = function (a) {
+ return (!!a && a.handleEvent !== undefined);
+ };
+ /**
+ * Determines if the given object is a `RegisteredObserver`.
+ *
+ * @param a - the object to check
+ */
+ Guard.isRegisteredObserver = function (a) {
+ return (!!a && a.observer !== undefined && a.options !== undefined);
+ };
+ /**
+ * Determines if the given object is a `TransientRegisteredObserver`.
+ *
+ * @param a - the object to check
+ */
+ Guard.isTransientRegisteredObserver = function (a) {
+ return (!!a && a.source !== undefined && Guard.isRegisteredObserver(a));
+ };
+ return Guard;
+}());
+exports.Guard = Guard;
+//# sourceMappingURL=Guard.js.map
+
+/***/ }),
+
+/***/ 5282:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var Cast_1 = __nccwpck_require__(5483);
+exports.Cast = Cast_1.Cast;
+var Guard_1 = __nccwpck_require__(6862);
+exports.Guard = Guard_1.Guard;
+var EmptySet_1 = __nccwpck_require__(8392);
+exports.EmptySet = EmptySet_1.EmptySet;
+//# sourceMappingURL=index.js.map
+
+/***/ }),
+
+/***/ 8585:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var CodePoints_1 = __nccwpck_require__(8548);
+/**
+ * Base-64 encodes the given string.
+ *
+ * @param input - a string
+ */
+function forgivingBase64Encode(input) {
+ /**
+ * To forgiving-base64 encode given a byte sequence data, apply the base64
+ * algorithm defined in section 4 of RFC 4648 to data and return the result.
+ * [RFC4648]
+ */
+ return Buffer.from(input).toString('base64');
+}
+exports.forgivingBase64Encode = forgivingBase64Encode;
+/**
+ * Decodes a base-64 string.
+ *
+ * @param input - a string
+ */
+function forgivingBase64Decode(input) {
+ if (input === "")
+ return "";
+ /**
+ * 1. Remove all ASCII whitespace from data.
+ */
+ input = input.replace(CodePoints_1.ASCIIWhiteSpace, '');
+ /**
+ * 2. If data’s length divides by 4 leaving no remainder, then:
+ * 2.1. If data ends with one or two U+003D (=) code points, then remove them from data.
+ */
+ if (input.length % 4 === 0) {
+ if (input.endsWith("==")) {
+ input = input.substr(0, input.length - 2);
+ }
+ else if (input.endsWith("=")) {
+ input = input.substr(0, input.length - 1);
+ }
+ }
+ /**
+ * 3. If data’s length divides by 4 leaving a remainder of 1, then return failure.
+ */
+ if (input.length % 4 === 1)
+ return null;
+ /**
+ * 4. If data contains a code point that is not one of
+ * - U+002B (+)
+ * - U+002F (/)
+ * - ASCII alphanumeric
+ * then return failure.
+ */
+ if (!/[0-9A-Za-z+/]/.test(input))
+ return null;
+ /**
+ * 5. Let output be an empty byte sequence.
+ * 6. Let buffer be an empty buffer that can have bits appended to it.
+ * 7. Let position be a position variable for data, initially pointing at the
+ * start of data.
+ * 8. While position does not point past the end of data:
+ * 8.1. Find the code point pointed to by position in the second column of
+ * Table 1: The Base 64 Alphabet of RFC 4648. Let n be the number given in the
+ * first cell of the same row. [RFC4648]
+ * 8.2. Append the six bits corresponding to n, most significant bit first,
+ * to buffer.
+ * 8.3. If buffer has accumulated 24 bits, interpret them as three 8-bit
+ * big-endian numbers. Append three bytes with values equal to those numbers
+ * to output, in the same order, and then empty buffer.
+ * 8.4. Advance position by 1.
+ * 9. If buffer is not empty, it contains either 12 or 18 bits. If it contains
+ * 12 bits, then discard the last four and interpret the remaining eight as an
+ * 8-bit big-endian number. If it contains 18 bits, then discard the last two
+ * and interpret the remaining 16 as two 8-bit big-endian numbers. Append the
+ * one or two bytes with values equal to those one or two numbers to output,
+ * in the same order.
+ * 10. Return output.
+ */
+ return Buffer.from(input, 'base64').toString('utf8');
+}
+exports.forgivingBase64Decode = forgivingBase64Decode;
+//# sourceMappingURL=Base64.js.map
+
+/***/ }),
+
+/***/ 2460:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Determines if the given number is an ASCII byte.
+ *
+ * @param byte - a byte
+ */
+function isASCIIByte(byte) {
+ /**
+ * An ASCII byte is a byte in the range 0x00 (NUL) to 0x7F (DEL), inclusive.
+ */
+ return byte >= 0x00 && byte <= 0x7F;
+}
+exports.isASCIIByte = isASCIIByte;
+//# sourceMappingURL=Byte.js.map
+
+/***/ }),
+
+/***/ 1627:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+var __spread = (this && this.__spread) || function () {
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
+ return ar;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Returns the count of bytes in a sequence.
+ *
+ * @param list - a byte sequence
+ */
+function length(list) {
+ /**
+ * A byte sequence’s length is the number of bytes it contains.
+ */
+ return list.length;
+}
+exports.length = length;
+/**
+ * Converts each byte to lowercase.
+ *
+ * @param list - a byte sequence
+ */
+function byteLowercase(list) {
+ /**
+ * To byte-lowercase a byte sequence, increase each byte it contains, in the
+ * range 0x41 (A) to 0x5A (Z), inclusive, by 0x20.
+ */
+ for (var i = 0; i < list.length; i++) {
+ var c = list[i];
+ if (c >= 0x41 && c <= 0x5A) {
+ list[i] = c + 0x20;
+ }
+ }
+}
+exports.byteLowercase = byteLowercase;
+/**
+ * Converts each byte to uppercase.
+ *
+ * @param list - a byte sequence
+ */
+function byteUppercase(list) {
+ /**
+ * To byte-uppercase a byte sequence, subtract each byte it contains, in the
+ * range 0x61 (a) to 0x7A (z), inclusive, by 0x20.
+ */
+ for (var i = 0; i < list.length; i++) {
+ var c = list[i];
+ if (c >= 0x61 && c <= 0x7A) {
+ list[i] = c - 0x20;
+ }
+ }
+}
+exports.byteUppercase = byteUppercase;
+/**
+ * Compares two byte sequences.
+ *
+ * @param listA - a byte sequence
+ * @param listB - a byte sequence
+ */
+function byteCaseInsensitiveMatch(listA, listB) {
+ /**
+ * A byte sequence A is a byte-case-insensitive match for a byte sequence B,
+ * if the byte-lowercase of A is the byte-lowercase of B.
+ */
+ if (listA.length !== listB.length)
+ return false;
+ for (var i = 0; i < listA.length; i++) {
+ var a = listA[i];
+ var b = listB[i];
+ if (a >= 0x41 && a <= 0x5A)
+ a += 0x20;
+ if (b >= 0x41 && b <= 0x5A)
+ b += 0x20;
+ if (a !== b)
+ return false;
+ }
+ return true;
+}
+exports.byteCaseInsensitiveMatch = byteCaseInsensitiveMatch;
+/**
+ * Determines if `listA` starts with `listB`.
+ *
+ * @param listA - a byte sequence
+ * @param listB - a byte sequence
+ */
+function startsWith(listA, listB) {
+ /**
+ * 1. Let i be 0.
+ * 2. While true:
+ * 2.1. Let aByte be the ith byte of a if i is less than a’s length; otherwise null.
+ * 2.3. Let bByte be the ith byte of b if i is less than b’s length; otherwise null.
+ * 2.4. If bByte is null, then return true.
+ * 2.5. Return false if aByte is not bByte.
+ * 2.6. Set i to i + 1.
+ */
+ var i = 0;
+ while (true) {
+ if (i >= listA.length)
+ return false;
+ if (i >= listB.length)
+ return true;
+ if (listA[i] !== listB[i])
+ return false;
+ i++;
+ }
+}
+exports.startsWith = startsWith;
+/**
+ * Determines if `listA` is less than `listB`.
+ *
+ * @param listA - a byte sequence
+ * @param listB - a byte sequence
+ */
+function byteLessThan(listA, listB) {
+ /**
+ * 1. If b starts with a, then return false.
+ * 2. If a starts with b, then return true.
+ * 3. Let n be the smallest index such that the nth byte of a is different
+ * from the nth byte of b. (There has to be such an index, since neither byte
+ * sequence starts with the other.)
+ * 4. If the nth byte of a is less than the nth byte of b, then return true.
+ * 5. Return false.
+ */
+ var i = 0;
+ while (true) {
+ if (i >= listA.length)
+ return false;
+ if (i >= listB.length)
+ return true;
+ var a = listA[i];
+ var b = listB[i];
+ if (a < b)
+ return true;
+ else if (a > b)
+ return false;
+ i++;
+ }
+}
+exports.byteLessThan = byteLessThan;
+/**
+ * Decodes a byte sequence into a string.
+ *
+ * @param list - a byte sequence
+ */
+function isomorphicDecode(list) {
+ /**
+ * To isomorphic decode a byte sequence input, return a string whose length is
+ * equal to input’s length and whose code points have the same values as
+ * input’s bytes, in the same order.
+ */
+ return String.fromCodePoint.apply(String, __spread(list));
+}
+exports.isomorphicDecode = isomorphicDecode;
+//# sourceMappingURL=ByteSequence.js.map
+
+/***/ }),
+
+/***/ 8548:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * A surrogate is a code point that is in the range U+D800 to U+DFFF, inclusive.
+ */
+exports.Surrogate = /[\uD800-\uDFFF]/;
+/**
+ * A scalar value is a code point that is not a surrogate.
+ */
+exports.ScalarValue = /[\uD800-\uDFFF]/;
+/**
+ * A noncharacter is a code point that is in the range U+FDD0 to U+FDEF,
+ * inclusive, or U+FFFE, U+FFFF, U+1FFFE, U+1FFFF, U+2FFFE, U+2FFFF, U+3FFFE,
+ * U+3FFFF, U+4FFFE, U+4FFFF, U+5FFFE, U+5FFFF, U+6FFFE, U+6FFFF, U+7FFFE,
+ * U+7FFFF, U+8FFFE, U+8FFFF, U+9FFFE, U+9FFFF, U+AFFFE, U+AFFFF, U+BFFFE,
+ * U+BFFFF, U+CFFFE, U+CFFFF, U+DFFFE, U+DFFFF, U+EFFFE, U+EFFFF, U+FFFFE,
+ * U+FFFFF, U+10FFFE, or U+10FFFF.
+ */
+exports.NonCharacter = /[\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]/;
+/**
+ * An ASCII code point is a code point in the range U+0000 NULL to U+007F
+ * DELETE, inclusive.
+ */
+exports.ASCIICodePoint = /[\u0000-\u007F]/;
+/**
+ * An ASCII tab or newline is U+0009 TAB, U+000A LF, or U+000D CR.
+ */
+exports.ASCIITabOrNewLine = /[\t\n\r]/;
+/**
+ * ASCII whitespace is U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, or
+ * U+0020 SPACE.
+ */
+exports.ASCIIWhiteSpace = /[\t\n\f\r ]/;
+/**
+ * A C0 control is a code point in the range U+0000 NULL to U+001F
+ * INFORMATION SEPARATOR ONE, inclusive.
+ */
+exports.C0Control = /[\u0000-\u001F]/;
+/**
+ * A C0 control or space is a C0 control or U+0020 SPACE.
+ */
+exports.C0ControlOrSpace = /[\u0000-\u001F ]/;
+/**
+ * A control is a C0 control or a code point in the range U+007F DELETE to
+ * U+009F APPLICATION PROGRAM COMMAND, inclusive.
+ */
+exports.Control = /[\u0000-\u001F\u007F-\u009F]/;
+/**
+ * An ASCII digit is a code point in the range U+0030 (0) to U+0039 (9),
+ * inclusive.
+ */
+exports.ASCIIDigit = /[0-9]/;
+/**
+ * An ASCII upper hex digit is an ASCII digit or a code point in the range
+ * U+0041 (A) to U+0046 (F), inclusive.
+ */
+exports.ASCIIUpperHexDigit = /[0-9A-F]/;
+/**
+ * An ASCII lower hex digit is an ASCII digit or a code point in the range
+ * U+0061 (a) to U+0066 (f), inclusive.
+ */
+exports.ASCIILowerHexDigit = /[0-9a-f]/;
+/**
+ * An ASCII hex digit is an ASCII upper hex digit or ASCII lower hex digit.
+ */
+exports.ASCIIHexDigit = /[0-9A-Fa-f]/;
+/**
+ * An ASCII upper alpha is a code point in the range U+0041 (A) to U+005A (Z),
+ * inclusive.
+ */
+exports.ASCIIUpperAlpha = /[A-Z]/;
+/**
+ * An ASCII lower alpha is a code point in the range U+0061 (a) to U+007A (z),
+ * inclusive.
+ */
+exports.ASCIILowerAlpha = /[a-z]/;
+/**
+ * An ASCII alpha is an ASCII upper alpha or ASCII lower alpha.
+ */
+exports.ASCIIAlpha = /[A-Za-z]/;
+/**
+ * An ASCII alphanumeric is an ASCII digit or ASCII alpha.
+ */
+exports.ASCIIAlphanumeric = /[0-9A-Za-z]/;
+//# sourceMappingURL=CodePoints.js.map
+
+/***/ }),
+
+/***/ 9387:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var util_1 = __nccwpck_require__(6195);
+/**
+ * Parses the given byte sequence representing a JSON string into an object.
+ *
+ * @param bytes - a byte sequence
+ */
+function parseJSONFromBytes(bytes) {
+ /**
+ * 1. Let jsonText be the result of running UTF-8 decode on bytes. [ENCODING]
+ * 2. Return ? Call(%JSONParse%, undefined, « jsonText »).
+ */
+ var jsonText = util_1.utf8Decode(bytes);
+ return JSON.parse.call(undefined, jsonText);
+}
+exports.parseJSONFromBytes = parseJSONFromBytes;
+/**
+ * Serialize the given JavaScript value into a byte sequence.
+ *
+ * @param value - a JavaScript value
+ */
+function serializeJSONToBytes(value) {
+ /**
+ * 1. Let jsonString be ? Call(%JSONStringify%, undefined, « value »).
+ * 2. Return the result of running UTF-8 encode on jsonString. [ENCODING]
+ */
+ var jsonString = JSON.stringify.call(undefined, value);
+ return util_1.utf8Encode(jsonString);
+}
+exports.serializeJSONToBytes = serializeJSONToBytes;
+/**
+ * Parses the given JSON string into a Realm-independent JavaScript value.
+ *
+ * @param jsonText - a JSON string
+ */
+function parseJSONIntoInfraValues(jsonText) {
+ /**
+ * 1. Let jsValue be ? Call(%JSONParse%, undefined, « jsonText »).
+ * 2. Return the result of converting a JSON-derived JavaScript value to an
+ * Infra value, given jsValue.
+ */
+ var jsValue = JSON.parse.call(undefined, jsonText);
+ return convertAJSONDerivedJavaScriptValueToAnInfraValue(jsValue);
+}
+exports.parseJSONIntoInfraValues = parseJSONIntoInfraValues;
+/**
+ * Parses the value into a Realm-independent JavaScript value.
+ *
+ * @param jsValue - a JavaScript value
+ */
+function convertAJSONDerivedJavaScriptValueToAnInfraValue(jsValue) {
+ var e_1, _a;
+ /**
+ * 1. If Type(jsValue) is Null, String, or Number, then return jsValue.
+ */
+ if (jsValue === null || util_1.isString(jsValue) || util_1.isNumber(jsValue))
+ return jsValue;
+ /**
+ * 2. If IsArray(jsValue) is true, then:
+ * 2.1. Let result be an empty list.
+ * 2.2. Let length be ! ToLength(! Get(jsValue, "length")).
+ * 2.3. For each index of the range 0 to length − 1, inclusive:
+ * 2.3.1. Let indexName be ! ToString(index).
+ * 2.3.2. Let jsValueAtIndex be ! Get(jsValue, indexName).
+ * 2.3.3. Let infraValueAtIndex be the result of converting a JSON-derived
+ * JavaScript value to an Infra value, given jsValueAtIndex.
+ * 2.3.4. Append infraValueAtIndex to result.
+ * 2.8. Return result.
+ */
+ if (util_1.isArray(jsValue)) {
+ var result = new Array();
+ try {
+ for (var jsValue_1 = __values(jsValue), jsValue_1_1 = jsValue_1.next(); !jsValue_1_1.done; jsValue_1_1 = jsValue_1.next()) {
+ var jsValueAtIndex = jsValue_1_1.value;
+ result.push(convertAJSONDerivedJavaScriptValueToAnInfraValue(jsValueAtIndex));
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (jsValue_1_1 && !jsValue_1_1.done && (_a = jsValue_1.return)) _a.call(jsValue_1);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ return result;
+ }
+ else if (util_1.isObject(jsValue)) {
+ /**
+ * 3. Let result be an empty ordered map.
+ * 4. For each key of ! jsValue.[[OwnPropertyKeys]]():
+ * 4.1. Let jsValueAtKey be ! Get(jsValue, key).
+ * 4.2. Let infraValueAtKey be the result of converting a JSON-derived
+ * JavaScript value to an Infra value, given jsValueAtKey.
+ * 4.3. Set result[key] to infraValueAtKey.
+ * 5. Return result.
+ */
+ var result = new Map();
+ for (var key in jsValue) {
+ /* istanbul ignore else */
+ if (jsValue.hasOwnProperty(key)) {
+ var jsValueAtKey = jsValue[key];
+ result.set(key, convertAJSONDerivedJavaScriptValueToAnInfraValue(jsValueAtKey));
+ }
+ }
+ return result;
+ }
+ /* istanbul ignore next */
+ return jsValue;
+}
+exports.convertAJSONDerivedJavaScriptValueToAnInfraValue = convertAJSONDerivedJavaScriptValueToAnInfraValue;
+//# sourceMappingURL=JSON.js.map
+
+/***/ }),
+
+/***/ 340:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+var __spread = (this && this.__spread) || function () {
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
+ return ar;
+};
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var util_1 = __nccwpck_require__(6195);
+/**
+ * Adds the given item to the end of the list.
+ *
+ * @param list - a list
+ * @param item - an item
+ */
+function append(list, item) {
+ list.push(item);
+}
+exports.append = append;
+/**
+ * Extends a list by appending all items from another list.
+ *
+ * @param listA - a list to extend
+ * @param listB - a list containing items to append to `listA`
+ */
+function extend(listA, listB) {
+ listA.push.apply(listA, __spread(listB));
+}
+exports.extend = extend;
+/**
+ * Inserts the given item to the start of the list.
+ *
+ * @param list - a list
+ * @param item - an item
+ */
+function prepend(list, item) {
+ list.unshift(item);
+}
+exports.prepend = prepend;
+/**
+ * Replaces the given item or all items matching condition with a new item.
+ *
+ * @param list - a list
+ * @param conditionOrItem - an item to replace or a condition matching items
+ * to replace
+ * @param item - an item
+ */
+function replace(list, conditionOrItem, newItem) {
+ var e_1, _a;
+ var i = 0;
+ try {
+ for (var list_1 = __values(list), list_1_1 = list_1.next(); !list_1_1.done; list_1_1 = list_1.next()) {
+ var oldItem = list_1_1.value;
+ if (util_1.isFunction(conditionOrItem)) {
+ if (!!conditionOrItem.call(null, oldItem)) {
+ list[i] = newItem;
+ }
+ }
+ else if (oldItem === conditionOrItem) {
+ list[i] = newItem;
+ return;
+ }
+ i++;
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (list_1_1 && !list_1_1.done && (_a = list_1.return)) _a.call(list_1);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+}
+exports.replace = replace;
+/**
+ * Inserts the given item before the given index.
+ *
+ * @param list - a list
+ * @param item - an item
+ */
+function insert(list, item, index) {
+ list.splice(index, 0, item);
+}
+exports.insert = insert;
+/**
+ * Removes the given item or all items matching condition.
+ *
+ * @param list - a list
+ * @param conditionOrItem - an item to remove or a condition matching items
+ * to remove
+ */
+function remove(list, conditionOrItem) {
+ var i = list.length;
+ while (i--) {
+ var oldItem = list[i];
+ if (util_1.isFunction(conditionOrItem)) {
+ if (!!conditionOrItem.call(null, oldItem)) {
+ list.splice(i, 1);
+ }
+ }
+ else if (oldItem === conditionOrItem) {
+ list.splice(i, 1);
+ return;
+ }
+ }
+}
+exports.remove = remove;
+/**
+ * Removes all items from the list.
+ */
+function empty(list) {
+ list.length = 0;
+}
+exports.empty = empty;
+/**
+ * Determines if the list contains the given item or any items matching
+ * condition.
+ *
+ * @param list - a list
+ * @param conditionOrItem - an item to a condition to match
+ */
+function contains(list, conditionOrItem) {
+ var e_2, _a;
+ try {
+ for (var list_2 = __values(list), list_2_1 = list_2.next(); !list_2_1.done; list_2_1 = list_2.next()) {
+ var oldItem = list_2_1.value;
+ if (util_1.isFunction(conditionOrItem)) {
+ if (!!conditionOrItem.call(null, oldItem)) {
+ return true;
+ }
+ }
+ else if (oldItem === conditionOrItem) {
+ return true;
+ }
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (list_2_1 && !list_2_1.done && (_a = list_2.return)) _a.call(list_2);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ return false;
+}
+exports.contains = contains;
+/**
+ * Returns the count of items in the list matching the given condition.
+ *
+ * @param list - a list
+ * @param condition - an optional condition to match
+ */
+function size(list, condition) {
+ var e_3, _a;
+ if (condition === undefined) {
+ return list.length;
+ }
+ else {
+ var count = 0;
+ try {
+ for (var list_3 = __values(list), list_3_1 = list_3.next(); !list_3_1.done; list_3_1 = list_3.next()) {
+ var item = list_3_1.value;
+ if (!!condition.call(null, item)) {
+ count++;
+ }
+ }
+ }
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
+ finally {
+ try {
+ if (list_3_1 && !list_3_1.done && (_a = list_3.return)) _a.call(list_3);
+ }
+ finally { if (e_3) throw e_3.error; }
+ }
+ return count;
+ }
+}
+exports.size = size;
+/**
+ * Determines if the list is empty.
+ *
+ * @param list - a list
+ */
+function isEmpty(list) {
+ return list.length === 0;
+}
+exports.isEmpty = isEmpty;
+/**
+ * Returns an iterator for the items of the list.
+ *
+ * @param list - a list
+ * @param condition - an optional condition to match
+ */
+function forEach(list, condition) {
+ var list_4, list_4_1, item, e_4_1;
+ var e_4, _a;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0:
+ if (!(condition === undefined)) return [3 /*break*/, 2];
+ return [5 /*yield**/, __values(list)];
+ case 1:
+ _b.sent();
+ return [3 /*break*/, 9];
+ case 2:
+ _b.trys.push([2, 7, 8, 9]);
+ list_4 = __values(list), list_4_1 = list_4.next();
+ _b.label = 3;
+ case 3:
+ if (!!list_4_1.done) return [3 /*break*/, 6];
+ item = list_4_1.value;
+ if (!!!condition.call(null, item)) return [3 /*break*/, 5];
+ return [4 /*yield*/, item];
+ case 4:
+ _b.sent();
+ _b.label = 5;
+ case 5:
+ list_4_1 = list_4.next();
+ return [3 /*break*/, 3];
+ case 6: return [3 /*break*/, 9];
+ case 7:
+ e_4_1 = _b.sent();
+ e_4 = { error: e_4_1 };
+ return [3 /*break*/, 9];
+ case 8:
+ try {
+ if (list_4_1 && !list_4_1.done && (_a = list_4.return)) _a.call(list_4);
+ }
+ finally { if (e_4) throw e_4.error; }
+ return [7 /*endfinally*/];
+ case 9: return [2 /*return*/];
+ }
+ });
+}
+exports.forEach = forEach;
+/**
+ * Creates and returns a shallow clone of list.
+ *
+ * @param list - a list
+ */
+function clone(list) {
+ return new (Array.bind.apply(Array, __spread([void 0], list)))();
+}
+exports.clone = clone;
+/**
+ * Returns a new list containing items from the list sorted in ascending
+ * order.
+ *
+ * @param list - a list
+ * @param lessThanAlgo - a function that returns `true` if its first argument
+ * is less than its second argument, and `false` otherwise.
+ */
+function sortInAscendingOrder(list, lessThanAlgo) {
+ return list.sort(function (itemA, itemB) {
+ return lessThanAlgo.call(null, itemA, itemB) ? -1 : 1;
+ });
+}
+exports.sortInAscendingOrder = sortInAscendingOrder;
+/**
+ * Returns a new list containing items from the list sorted in descending
+ * order.
+ *
+ * @param list - a list
+ * @param lessThanAlgo - a function that returns `true` if its first argument
+ * is less than its second argument, and `false` otherwise.
+ */
+function sortInDescendingOrder(list, lessThanAlgo) {
+ return list.sort(function (itemA, itemB) {
+ return lessThanAlgo.call(null, itemA, itemB) ? 1 : -1;
+ });
+}
+exports.sortInDescendingOrder = sortInDescendingOrder;
+//# sourceMappingURL=List.js.map
+
+/***/ }),
+
+/***/ 2298:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+var __spread = (this && this.__spread) || function () {
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
+ return ar;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var util_1 = __nccwpck_require__(6195);
+/**
+ * Gets the value corresponding to the given key.
+ *
+ * @param map - a map
+ * @param key - a key
+ */
+function get(map, key) {
+ return map.get(key);
+}
+exports.get = get;
+/**
+ * Sets the value corresponding to the given key.
+ *
+ * @param map - a map
+ * @param key - a key
+ * @param val - a value
+ */
+function set(map, key, val) {
+ map.set(key, val);
+}
+exports.set = set;
+/**
+ * Removes the item with the given key or all items matching condition.
+ *
+ * @param map - a map
+ * @param conditionOrItem - the key of an item to remove or a condition matching
+ * items to remove
+ */
+function remove(map, conditionOrItem) {
+ var e_1, _a, e_2, _b;
+ if (!util_1.isFunction(conditionOrItem)) {
+ map.delete(conditionOrItem);
+ }
+ else {
+ var toRemove = [];
+ try {
+ for (var map_1 = __values(map), map_1_1 = map_1.next(); !map_1_1.done; map_1_1 = map_1.next()) {
+ var item = map_1_1.value;
+ if (!!conditionOrItem.call(null, item)) {
+ toRemove.push(item[0]);
+ }
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (map_1_1 && !map_1_1.done && (_a = map_1.return)) _a.call(map_1);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ try {
+ for (var toRemove_1 = __values(toRemove), toRemove_1_1 = toRemove_1.next(); !toRemove_1_1.done; toRemove_1_1 = toRemove_1.next()) {
+ var key = toRemove_1_1.value;
+ map.delete(key);
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (toRemove_1_1 && !toRemove_1_1.done && (_b = toRemove_1.return)) _b.call(toRemove_1);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ }
+}
+exports.remove = remove;
+/**
+ * Determines if the map contains a value with the given key.
+ *
+ * @param map - a map
+ * @param conditionOrItem - the key of an item to match or a condition matching
+ * items
+ */
+function contains(map, conditionOrItem) {
+ var e_3, _a;
+ if (!util_1.isFunction(conditionOrItem)) {
+ return map.has(conditionOrItem);
+ }
+ else {
+ try {
+ for (var map_2 = __values(map), map_2_1 = map_2.next(); !map_2_1.done; map_2_1 = map_2.next()) {
+ var item = map_2_1.value;
+ if (!!conditionOrItem.call(null, item)) {
+ return true;
+ }
+ }
+ }
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
+ finally {
+ try {
+ if (map_2_1 && !map_2_1.done && (_a = map_2.return)) _a.call(map_2);
+ }
+ finally { if (e_3) throw e_3.error; }
+ }
+ return false;
+ }
+}
+exports.contains = contains;
+/**
+ * Gets the keys of the map.
+ *
+ * @param map - a map
+ */
+function keys(map) {
+ return new Set(map.keys());
+}
+exports.keys = keys;
+/**
+ * Gets the values of the map.
+ *
+ * @param map - a map
+ */
+function values(map) {
+ return __spread(map.values());
+}
+exports.values = values;
+/**
+ * Gets the size of the map.
+ *
+ * @param map - a map
+ * @param condition - an optional condition to match
+ */
+function size(map, condition) {
+ var e_4, _a;
+ if (condition === undefined) {
+ return map.size;
+ }
+ else {
+ var count = 0;
+ try {
+ for (var map_3 = __values(map), map_3_1 = map_3.next(); !map_3_1.done; map_3_1 = map_3.next()) {
+ var item = map_3_1.value;
+ if (!!condition.call(null, item)) {
+ count++;
+ }
+ }
+ }
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
+ finally {
+ try {
+ if (map_3_1 && !map_3_1.done && (_a = map_3.return)) _a.call(map_3);
+ }
+ finally { if (e_4) throw e_4.error; }
+ }
+ return count;
+ }
+}
+exports.size = size;
+/**
+ * Determines if the map is empty.
+ *
+ * @param map - a map
+ */
+function isEmpty(map) {
+ return map.size === 0;
+}
+exports.isEmpty = isEmpty;
+/**
+ * Returns an iterator for the items of the map.
+ *
+ * @param map - a map
+ * @param condition - an optional condition to match
+ */
+function forEach(map, condition) {
+ var map_4, map_4_1, item, e_5_1;
+ var e_5, _a;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0:
+ if (!(condition === undefined)) return [3 /*break*/, 2];
+ return [5 /*yield**/, __values(map)];
+ case 1:
+ _b.sent();
+ return [3 /*break*/, 9];
+ case 2:
+ _b.trys.push([2, 7, 8, 9]);
+ map_4 = __values(map), map_4_1 = map_4.next();
+ _b.label = 3;
+ case 3:
+ if (!!map_4_1.done) return [3 /*break*/, 6];
+ item = map_4_1.value;
+ if (!!!condition.call(null, item)) return [3 /*break*/, 5];
+ return [4 /*yield*/, item];
+ case 4:
+ _b.sent();
+ _b.label = 5;
+ case 5:
+ map_4_1 = map_4.next();
+ return [3 /*break*/, 3];
+ case 6: return [3 /*break*/, 9];
+ case 7:
+ e_5_1 = _b.sent();
+ e_5 = { error: e_5_1 };
+ return [3 /*break*/, 9];
+ case 8:
+ try {
+ if (map_4_1 && !map_4_1.done && (_a = map_4.return)) _a.call(map_4);
+ }
+ finally { if (e_5) throw e_5.error; }
+ return [7 /*endfinally*/];
+ case 9: return [2 /*return*/];
+ }
+ });
+}
+exports.forEach = forEach;
+/**
+ * Creates and returns a shallow clone of map.
+ *
+ * @param map - a map
+ */
+function clone(map) {
+ return new Map(map);
+}
+exports.clone = clone;
+/**
+ * Returns a new map containing items from the map sorted in ascending
+ * order.
+ *
+ * @param map - a map
+ * @param lessThanAlgo - a function that returns `true` if its first argument
+ * is less than its second argument, and `false` otherwise.
+ */
+function sortInAscendingOrder(map, lessThanAlgo) {
+ var list = new (Array.bind.apply(Array, __spread([void 0], map)))();
+ list.sort(function (itemA, itemB) {
+ return lessThanAlgo.call(null, itemA, itemB) ? -1 : 1;
+ });
+ return new Map(list);
+}
+exports.sortInAscendingOrder = sortInAscendingOrder;
+/**
+ * Returns a new map containing items from the map sorted in descending
+ * order.
+ *
+ * @param map - a map
+ * @param lessThanAlgo - a function that returns `true` if its first argument
+ * is less than its second argument, and `false` otherwise.
+ */
+function sortInDescendingOrder(map, lessThanAlgo) {
+ var list = new (Array.bind.apply(Array, __spread([void 0], map)))();
+ list.sort(function (itemA, itemB) {
+ return lessThanAlgo.call(null, itemA, itemB) ? 1 : -1;
+ });
+ return new Map(list);
+}
+exports.sortInDescendingOrder = sortInDescendingOrder;
+//# sourceMappingURL=Map.js.map
+
+/***/ }),
+
+/***/ 3764:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.HTML = "http://www.w3.org/1999/xhtml";
+exports.XML = "http://www.w3.org/XML/1998/namespace";
+exports.XMLNS = "http://www.w3.org/2000/xmlns/";
+exports.MathML = "http://www.w3.org/1998/Math/MathML";
+exports.SVG = "http://www.w3.org/2000/svg";
+exports.XLink = "http://www.w3.org/1999/xlink";
+//# sourceMappingURL=Namespace.js.map
+
+/***/ }),
+
+/***/ 9201:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Appends the given item to the queue.
+ *
+ * @param list - a list
+ * @param item - an item
+ */
+function enqueue(list, item) {
+ list.push(item);
+}
+exports.enqueue = enqueue;
+/**
+ * Removes and returns an item from the queue.
+ *
+ * @param list - a list
+ */
+function dequeue(list) {
+ return list.shift() || null;
+}
+exports.dequeue = dequeue;
+//# sourceMappingURL=Queue.js.map
+
+/***/ }),
+
+/***/ 5931:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+var __spread = (this && this.__spread) || function () {
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
+ return ar;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var util_1 = __nccwpck_require__(6195);
+/**
+ * Adds the given item to the end of the set.
+ *
+ * @param set - a set
+ * @param item - an item
+ */
+function append(set, item) {
+ set.add(item);
+}
+exports.append = append;
+/**
+ * Extends a set by appending all items from another set.
+ *
+ * @param setA - a list to extend
+ * @param setB - a list containing items to append to `setA`
+ */
+function extend(setA, setB) {
+ setB.forEach(setA.add, setA);
+}
+exports.extend = extend;
+/**
+ * Inserts the given item to the start of the set.
+ *
+ * @param set - a set
+ * @param item - an item
+ */
+function prepend(set, item) {
+ var cloned = new Set(set);
+ set.clear();
+ set.add(item);
+ cloned.forEach(set.add, set);
+}
+exports.prepend = prepend;
+/**
+ * Replaces the given item or all items matching condition with a new item.
+ *
+ * @param set - a set
+ * @param conditionOrItem - an item to replace or a condition matching items
+ * to replace
+ * @param item - an item
+ */
+function replace(set, conditionOrItem, newItem) {
+ var e_1, _a;
+ var newSet = new Set();
+ try {
+ for (var set_1 = __values(set), set_1_1 = set_1.next(); !set_1_1.done; set_1_1 = set_1.next()) {
+ var oldItem = set_1_1.value;
+ if (util_1.isFunction(conditionOrItem)) {
+ if (!!conditionOrItem.call(null, oldItem)) {
+ newSet.add(newItem);
+ }
+ else {
+ newSet.add(oldItem);
+ }
+ }
+ else if (oldItem === conditionOrItem) {
+ newSet.add(newItem);
+ }
+ else {
+ newSet.add(oldItem);
+ }
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (set_1_1 && !set_1_1.done && (_a = set_1.return)) _a.call(set_1);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ set.clear();
+ newSet.forEach(set.add, set);
+}
+exports.replace = replace;
+/**
+ * Inserts the given item before the given index.
+ *
+ * @param set - a set
+ * @param item - an item
+ */
+function insert(set, item, index) {
+ var e_2, _a;
+ var newSet = new Set();
+ var i = 0;
+ try {
+ for (var set_2 = __values(set), set_2_1 = set_2.next(); !set_2_1.done; set_2_1 = set_2.next()) {
+ var oldItem = set_2_1.value;
+ if (i === index)
+ newSet.add(item);
+ newSet.add(oldItem);
+ i++;
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (set_2_1 && !set_2_1.done && (_a = set_2.return)) _a.call(set_2);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ set.clear();
+ newSet.forEach(set.add, set);
+}
+exports.insert = insert;
+/**
+ * Removes the given item or all items matching condition.
+ *
+ * @param set - a set
+ * @param conditionOrItem - an item to remove or a condition matching items
+ * to remove
+ */
+function remove(set, conditionOrItem) {
+ var e_3, _a, e_4, _b;
+ if (!util_1.isFunction(conditionOrItem)) {
+ set.delete(conditionOrItem);
+ }
+ else {
+ var toRemove = [];
+ try {
+ for (var set_3 = __values(set), set_3_1 = set_3.next(); !set_3_1.done; set_3_1 = set_3.next()) {
+ var item = set_3_1.value;
+ if (!!conditionOrItem.call(null, item)) {
+ toRemove.push(item);
+ }
+ }
+ }
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
+ finally {
+ try {
+ if (set_3_1 && !set_3_1.done && (_a = set_3.return)) _a.call(set_3);
+ }
+ finally { if (e_3) throw e_3.error; }
+ }
+ try {
+ for (var toRemove_1 = __values(toRemove), toRemove_1_1 = toRemove_1.next(); !toRemove_1_1.done; toRemove_1_1 = toRemove_1.next()) {
+ var oldItem = toRemove_1_1.value;
+ set.delete(oldItem);
+ }
+ }
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
+ finally {
+ try {
+ if (toRemove_1_1 && !toRemove_1_1.done && (_b = toRemove_1.return)) _b.call(toRemove_1);
+ }
+ finally { if (e_4) throw e_4.error; }
+ }
+ }
+}
+exports.remove = remove;
+/**
+ * Removes all items from the set.
+ */
+function empty(set) {
+ set.clear();
+}
+exports.empty = empty;
+/**
+ * Determines if the set contains the given item or any items matching
+ * condition.
+ *
+ * @param set - a set
+ * @param conditionOrItem - an item to a condition to match
+ */
+function contains(set, conditionOrItem) {
+ var e_5, _a;
+ if (!util_1.isFunction(conditionOrItem)) {
+ return set.has(conditionOrItem);
+ }
+ else {
+ try {
+ for (var set_4 = __values(set), set_4_1 = set_4.next(); !set_4_1.done; set_4_1 = set_4.next()) {
+ var oldItem = set_4_1.value;
+ if (!!conditionOrItem.call(null, oldItem)) {
+ return true;
+ }
+ }
+ }
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
+ finally {
+ try {
+ if (set_4_1 && !set_4_1.done && (_a = set_4.return)) _a.call(set_4);
+ }
+ finally { if (e_5) throw e_5.error; }
+ }
+ }
+ return false;
+}
+exports.contains = contains;
+/**
+ * Returns the count of items in the set matching the given condition.
+ *
+ * @param set - a set
+ * @param condition - an optional condition to match
+ */
+function size(set, condition) {
+ var e_6, _a;
+ if (condition === undefined) {
+ return set.size;
+ }
+ else {
+ var count = 0;
+ try {
+ for (var set_5 = __values(set), set_5_1 = set_5.next(); !set_5_1.done; set_5_1 = set_5.next()) {
+ var item = set_5_1.value;
+ if (!!condition.call(null, item)) {
+ count++;
+ }
+ }
+ }
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
+ finally {
+ try {
+ if (set_5_1 && !set_5_1.done && (_a = set_5.return)) _a.call(set_5);
+ }
+ finally { if (e_6) throw e_6.error; }
+ }
+ return count;
+ }
+}
+exports.size = size;
+/**
+ * Determines if the set is empty.
+ *
+ * @param set - a set
+ */
+function isEmpty(set) {
+ return set.size === 0;
+}
+exports.isEmpty = isEmpty;
+/**
+ * Returns an iterator for the items of the set.
+ *
+ * @param set - a set
+ * @param condition - an optional condition to match
+ */
+function forEach(set, condition) {
+ var set_6, set_6_1, item, e_7_1;
+ var e_7, _a;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0:
+ if (!(condition === undefined)) return [3 /*break*/, 2];
+ return [5 /*yield**/, __values(set)];
+ case 1:
+ _b.sent();
+ return [3 /*break*/, 9];
+ case 2:
+ _b.trys.push([2, 7, 8, 9]);
+ set_6 = __values(set), set_6_1 = set_6.next();
+ _b.label = 3;
+ case 3:
+ if (!!set_6_1.done) return [3 /*break*/, 6];
+ item = set_6_1.value;
+ if (!!!condition.call(null, item)) return [3 /*break*/, 5];
+ return [4 /*yield*/, item];
+ case 4:
+ _b.sent();
+ _b.label = 5;
+ case 5:
+ set_6_1 = set_6.next();
+ return [3 /*break*/, 3];
+ case 6: return [3 /*break*/, 9];
+ case 7:
+ e_7_1 = _b.sent();
+ e_7 = { error: e_7_1 };
+ return [3 /*break*/, 9];
+ case 8:
+ try {
+ if (set_6_1 && !set_6_1.done && (_a = set_6.return)) _a.call(set_6);
+ }
+ finally { if (e_7) throw e_7.error; }
+ return [7 /*endfinally*/];
+ case 9: return [2 /*return*/];
+ }
+ });
+}
+exports.forEach = forEach;
+/**
+ * Creates and returns a shallow clone of set.
+ *
+ * @param set - a set
+ */
+function clone(set) {
+ return new Set(set);
+}
+exports.clone = clone;
+/**
+ * Returns a new set containing items from the set sorted in ascending
+ * order.
+ *
+ * @param set - a set
+ * @param lessThanAlgo - a function that returns `true` if its first argument
+ * is less than its second argument, and `false` otherwise.
+ */
+function sortInAscendingOrder(set, lessThanAlgo) {
+ var list = new (Array.bind.apply(Array, __spread([void 0], set)))();
+ list.sort(function (itemA, itemB) {
+ return lessThanAlgo.call(null, itemA, itemB) ? -1 : 1;
+ });
+ return new Set(list);
+}
+exports.sortInAscendingOrder = sortInAscendingOrder;
+/**
+ * Returns a new set containing items from the set sorted in descending
+ * order.
+ *
+ * @param set - a set
+ * @param lessThanAlgo - a function that returns `true` if its first argument
+ * is less than its second argument, and `false` otherwise.
+ */
+function sortInDescendingOrder(set, lessThanAlgo) {
+ var list = new (Array.bind.apply(Array, __spread([void 0], set)))();
+ list.sort(function (itemA, itemB) {
+ return lessThanAlgo.call(null, itemA, itemB) ? 1 : -1;
+ });
+ return new Set(list);
+}
+exports.sortInDescendingOrder = sortInDescendingOrder;
+/**
+ * Determines if a set is a subset of another set.
+ *
+ * @param subset - a set
+ * @param superset - a superset possibly containing all items from `subset`.
+ */
+function isSubsetOf(subset, superset) {
+ var e_8, _a;
+ try {
+ for (var subset_1 = __values(subset), subset_1_1 = subset_1.next(); !subset_1_1.done; subset_1_1 = subset_1.next()) {
+ var item = subset_1_1.value;
+ if (!superset.has(item))
+ return false;
+ }
+ }
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
+ finally {
+ try {
+ if (subset_1_1 && !subset_1_1.done && (_a = subset_1.return)) _a.call(subset_1);
+ }
+ finally { if (e_8) throw e_8.error; }
+ }
+ return true;
+}
+exports.isSubsetOf = isSubsetOf;
+/**
+ * Determines if a set is a superset of another set.
+ *
+ * @param superset - a set
+ * @param subset - a subset possibly contained within `superset`.
+ */
+function isSupersetOf(superset, subset) {
+ return isSubsetOf(subset, superset);
+}
+exports.isSupersetOf = isSupersetOf;
+/**
+ * Returns a new set with items that are contained in both sets.
+ *
+ * @param setA - a set
+ * @param setB - a set
+ */
+function intersection(setA, setB) {
+ var e_9, _a;
+ var newSet = new Set();
+ try {
+ for (var setA_1 = __values(setA), setA_1_1 = setA_1.next(); !setA_1_1.done; setA_1_1 = setA_1.next()) {
+ var item = setA_1_1.value;
+ if (setB.has(item))
+ newSet.add(item);
+ }
+ }
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
+ finally {
+ try {
+ if (setA_1_1 && !setA_1_1.done && (_a = setA_1.return)) _a.call(setA_1);
+ }
+ finally { if (e_9) throw e_9.error; }
+ }
+ return newSet;
+}
+exports.intersection = intersection;
+/**
+ * Returns a new set with items from both sets.
+ *
+ * @param setA - a set
+ * @param setB - a set
+ */
+function union(setA, setB) {
+ var newSet = new Set(setA);
+ setB.forEach(newSet.add, newSet);
+ return newSet;
+}
+exports.union = union;
+/**
+ * Returns a set of integers from `n` to `m` inclusive.
+ *
+ * @param n - starting number
+ * @param m - ending number
+ */
+function range(n, m) {
+ var newSet = new Set();
+ for (var i = n; i <= m; i++) {
+ newSet.add(i);
+ }
+ return newSet;
+}
+exports.range = range;
+//# sourceMappingURL=Set.js.map
+
+/***/ }),
+
+/***/ 8784:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Pushes the given item to the stack.
+ *
+ * @param list - a list
+ * @param item - an item
+ */
+function push(list, item) {
+ list.push(item);
+}
+exports.push = push;
+/**
+ * Pops and returns an item from the stack.
+ *
+ * @param list - a list
+ */
+function pop(list) {
+ return list.pop() || null;
+}
+exports.pop = pop;
+//# sourceMappingURL=Stack.js.map
+
+/***/ }),
+
+/***/ 3203:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var CodePoints_1 = __nccwpck_require__(8548);
+var ByteSequence_1 = __nccwpck_require__(1627);
+var Byte_1 = __nccwpck_require__(2460);
+var util_1 = __nccwpck_require__(6195);
+/**
+ * Determines if the string `a` is a code unit prefix of string `b`.
+ *
+ * @param a - a string
+ * @param b - a string
+ */
+function isCodeUnitPrefix(a, b) {
+ /**
+ * 1. Let i be 0.
+ * 2. While true:
+ * 2.1. Let aCodeUnit be the ith code unit of a if i is less than a’s length;
+ * otherwise null.
+ * 2.2. Let bCodeUnit be the ith code unit of b if i is less than b’s length;
+ * otherwise null.
+ * 2.3. If bCodeUnit is null, then return true.
+ * 2.4. Return false if aCodeUnit is different from bCodeUnit.
+ * 2.5. Set i to i + 1.
+ */
+ var i = 0;
+ while (true) {
+ var aCodeUnit = i < a.length ? a.charCodeAt(i) : null;
+ var bCodeUnit = i < b.length ? b.charCodeAt(i) : null;
+ if (aCodeUnit === null)
+ return true;
+ if (aCodeUnit !== bCodeUnit)
+ return false;
+ i++;
+ }
+}
+exports.isCodeUnitPrefix = isCodeUnitPrefix;
+/**
+ * Determines if the string `a` is a code unit less than string `b`.
+ *
+ * @param a - a string
+ * @param b - a string
+ */
+function isCodeUnitLessThan(a, b) {
+ /**
+ * 1. If b is a code unit prefix of a, then return false.
+ * 2. If a is a code unit prefix of b, then return true.
+ * 3. Let n be the smallest index such that the nth code unit of a is
+ * different from the nth code unit of b. (There has to be such an index,
+ * since neither string is a prefix of the other.)
+ * 4. If the nth code unit of a is less than the nth code unit of b, then
+ * return true.
+ * 5. Return false.
+ */
+ if (isCodeUnitPrefix(b, a))
+ return false;
+ if (isCodeUnitPrefix(a, b))
+ return true;
+ for (var i = 0; i < Math.min(a.length, b.length); i++) {
+ var aCodeUnit = a.charCodeAt(i);
+ var bCodeUnit = b.charCodeAt(i);
+ if (aCodeUnit === bCodeUnit)
+ continue;
+ return (aCodeUnit < bCodeUnit);
+ }
+ /* istanbul ignore next */
+ return false;
+}
+exports.isCodeUnitLessThan = isCodeUnitLessThan;
+/**
+ * Isomorphic encodes the given string.
+ *
+ * @param str - a string
+ */
+function isomorphicEncode(str) {
+ var e_1, _a;
+ /**
+ * 1. Assert: input contains no code points greater than U+00FF.
+ * 2. Return a byte sequence whose length is equal to input’s length and whose
+ * bytes have the same values as input’s code points, in the same order.
+ */
+ var codePoints = Array.from(str);
+ var bytes = new Uint8Array(codePoints.length);
+ var i = 0;
+ try {
+ for (var str_1 = __values(str), str_1_1 = str_1.next(); !str_1_1.done; str_1_1 = str_1.next()) {
+ var codePoint = str_1_1.value;
+ var byte = codePoint.codePointAt(0);
+ console.assert(byte !== undefined && byte <= 0x00FF, "isomorphicEncode requires string bytes to be less than or equal to 0x00FF.");
+ if (byte !== undefined && byte <= 0x00FF) {
+ bytes[i++] = byte;
+ }
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (str_1_1 && !str_1_1.done && (_a = str_1.return)) _a.call(str_1);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ return bytes;
+}
+exports.isomorphicEncode = isomorphicEncode;
+/**
+ * Determines if the given string is An ASCII string.
+ *
+ * @param str - a string
+ */
+function isASCIIString(str) {
+ /**
+ * An ASCII string is a string whose code points are all ASCII code points.
+ */
+ return /^[\u0000-\u007F]*$/.test(str);
+}
+exports.isASCIIString = isASCIIString;
+/**
+ * Converts all uppercase ASCII code points to lowercase.
+ *
+ * @param str - a string
+ */
+function asciiLowercase(str) {
+ var e_2, _a;
+ /**
+ * To ASCII lowercase a string, replace all ASCII upper alphas in the string
+ * with their corresponding code point in ASCII lower alpha.
+ */
+ var result = "";
+ try {
+ for (var str_2 = __values(str), str_2_1 = str_2.next(); !str_2_1.done; str_2_1 = str_2.next()) {
+ var c = str_2_1.value;
+ var code = c.codePointAt(0);
+ if (code !== undefined && code >= 0x41 && code <= 0x5A) {
+ result += String.fromCodePoint(code + 0x20);
+ }
+ else {
+ result += c;
+ }
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (str_2_1 && !str_2_1.done && (_a = str_2.return)) _a.call(str_2);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ return result;
+}
+exports.asciiLowercase = asciiLowercase;
+/**
+ * Converts all uppercase ASCII code points to uppercase.
+ *
+ * @param str - a string
+ */
+function asciiUppercase(str) {
+ var e_3, _a;
+ /**
+ * To ASCII uppercase a string, replace all ASCII lower alphas in the string
+ * with their corresponding code point in ASCII upper alpha.
+ */
+ var result = "";
+ try {
+ for (var str_3 = __values(str), str_3_1 = str_3.next(); !str_3_1.done; str_3_1 = str_3.next()) {
+ var c = str_3_1.value;
+ var code = c.codePointAt(0);
+ if (code !== undefined && code >= 0x61 && code <= 0x7A) {
+ result += String.fromCodePoint(code - 0x20);
+ }
+ else {
+ result += c;
+ }
+ }
+ }
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
+ finally {
+ try {
+ if (str_3_1 && !str_3_1.done && (_a = str_3.return)) _a.call(str_3);
+ }
+ finally { if (e_3) throw e_3.error; }
+ }
+ return result;
+}
+exports.asciiUppercase = asciiUppercase;
+/**
+ * Compares two ASCII strings case-insensitively.
+ *
+ * @param a - a string
+ * @param b - a string
+ */
+function asciiCaseInsensitiveMatch(a, b) {
+ /**
+ * A string A is an ASCII case-insensitive match for a string B, if the ASCII
+ * lowercase of A is the ASCII lowercase of B.
+ */
+ return asciiLowercase(a) === asciiLowercase(b);
+}
+exports.asciiCaseInsensitiveMatch = asciiCaseInsensitiveMatch;
+/**
+ * ASCII encodes a string.
+ *
+ * @param str - a string
+ */
+function asciiEncode(str) {
+ /**
+ * 1. Assert: input is an ASCII string.
+ * 2. Return the isomorphic encoding of input.
+ */
+ console.assert(isASCIIString(str), "asciiEncode requires an ASCII string.");
+ return isomorphicEncode(str);
+}
+exports.asciiEncode = asciiEncode;
+/**
+ * ASCII decodes a byte sequence.
+ *
+ * @param bytes - a byte sequence
+ */
+function asciiDecode(bytes) {
+ var e_4, _a;
+ try {
+ /**
+ * 1. Assert: All bytes in input are ASCII bytes.
+ * 2. Return the isomorphic decoding of input.
+ */
+ for (var bytes_1 = __values(bytes), bytes_1_1 = bytes_1.next(); !bytes_1_1.done; bytes_1_1 = bytes_1.next()) {
+ var byte = bytes_1_1.value;
+ console.assert(Byte_1.isASCIIByte(byte), "asciiDecode requires an ASCII byte sequence.");
+ }
+ }
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
+ finally {
+ try {
+ if (bytes_1_1 && !bytes_1_1.done && (_a = bytes_1.return)) _a.call(bytes_1);
+ }
+ finally { if (e_4) throw e_4.error; }
+ }
+ return ByteSequence_1.isomorphicDecode(bytes);
+}
+exports.asciiDecode = asciiDecode;
+/**
+ * Strips newline characters from a string.
+ *
+ * @param str - a string
+ */
+function stripNewlines(str) {
+ /**
+ * To strip newlines from a string, remove any U+000A LF and U+000D CR code
+ * points from the string.
+ */
+ return str.replace(/[\n\r]/g, "");
+}
+exports.stripNewlines = stripNewlines;
+/**
+ * Normalizes newline characters in a string by converting consecutive
+ * carriage-return newline characters and also single carriage return characters
+ * into a single newline.
+ *
+ * @param str - a string
+ */
+function normalizeNewlines(str) {
+ /**
+ * To normalize newlines in a string, replace every U+000D CR U+000A LF code
+ * point pair with a single U+000A LF code point, and then replace every
+ * remaining U+000D CR code point with a U+000A LF code point.
+ */
+ return str.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
+}
+exports.normalizeNewlines = normalizeNewlines;
+/**
+ * Removes leading and trailing whitespace characters from a string.
+ *
+ * @param str - a string
+ */
+function stripLeadingAndTrailingASCIIWhitespace(str) {
+ /**
+ * To strip leading and trailing ASCII whitespace from a string, remove all
+ * ASCII whitespace that are at the start or the end of the string.
+ */
+ return str.replace(/^[\t\n\f\r ]+/, "").replace(/[\t\n\f\r ]+$/, "");
+}
+exports.stripLeadingAndTrailingASCIIWhitespace = stripLeadingAndTrailingASCIIWhitespace;
+/**
+ * Removes consecutive newline characters from a string.
+ *
+ * @param str - a string
+ */
+function stripAndCollapseASCIIWhitespace(str) {
+ /**
+ * To strip and collapse ASCII whitespace in a string, replace any sequence of
+ * one or more consecutive code points that are ASCII whitespace in the string
+ * with a single U+0020 SPACE code point, and then remove any leading and
+ * trailing ASCII whitespace from that string.
+ */
+ return stripLeadingAndTrailingASCIIWhitespace(str.replace(/[\t\n\f\r ]{2,}/g, " "));
+}
+exports.stripAndCollapseASCIIWhitespace = stripAndCollapseASCIIWhitespace;
+/**
+ * Collects a sequence of code points matching a given condition from the input
+ * string.
+ *
+ * @param condition - a condition to match
+ * @param input - a string
+ * @param options - starting position
+ */
+function collectASequenceOfCodePoints(condition, input, options) {
+ /**
+ * 1. Let result be the empty string.
+ * 2. While position doesn’t point past the end of input and the code point at
+ * position within input meets the condition condition:
+ * 2.1. Append that code point to the end of result.
+ * 2.2. Advance position by 1.
+ * 3. Return result.
+ */
+ if (!util_1.isArray(input))
+ return collectASequenceOfCodePoints(condition, Array.from(input), options);
+ var result = "";
+ while (options.position < input.length && !!condition.call(null, input[options.position])) {
+ result += input[options.position];
+ options.position++;
+ }
+ return result;
+}
+exports.collectASequenceOfCodePoints = collectASequenceOfCodePoints;
+/**
+ * Skips over ASCII whitespace.
+ *
+ * @param input - input string
+ * @param options - starting position
+ */
+function skipASCIIWhitespace(input, options) {
+ /**
+ * To skip ASCII whitespace within a string input given a position variable
+ * position, collect a sequence of code points that are ASCII whitespace from
+ * input given position. The collected code points are not used, but position
+ * is still updated.
+ */
+ collectASequenceOfCodePoints(function (str) { return CodePoints_1.ASCIIWhiteSpace.test(str); }, input, options);
+}
+exports.skipASCIIWhitespace = skipASCIIWhitespace;
+/**
+ * Solits a string at the given delimiter.
+ *
+ * @param input - input string
+ * @param delimiter - a delimiter string
+ */
+function strictlySplit(input, delimiter) {
+ /**
+ * 1. Let position be a position variable for input, initially pointing at the
+ * start of input.
+ * 2. Let tokens be a list of strings, initially empty.
+ * 3. Let token be the result of collecting a sequence of code points that are
+ * not equal to delimiter from input, given position.
+ * 4. Append token to tokens.
+ * 5. While position is not past the end of input:
+ * 5.1. Assert: the code point at position within input is delimiter.
+ * 5.2. Advance position by 1.
+ * 5.3. Let token be the result of collecting a sequence of code points that
+ * are not equal to delimiter from input, given position.
+ * 5.4. Append token to tokens.
+ * 6. Return tokens.
+ */
+ if (!util_1.isArray(input))
+ return strictlySplit(Array.from(input), delimiter);
+ var options = { position: 0 };
+ var tokens = [];
+ var token = collectASequenceOfCodePoints(function (str) { return delimiter !== str; }, input, options);
+ tokens.push(token);
+ while (options.position < input.length) {
+ console.assert(input[options.position] === delimiter, "strictlySplit found no delimiter in input string.");
+ options.position++;
+ token = collectASequenceOfCodePoints(function (str) { return delimiter !== str; }, input, options);
+ tokens.push(token);
+ }
+ return tokens;
+}
+exports.strictlySplit = strictlySplit;
+/**
+ * Splits a string on ASCII whitespace.
+ *
+ * @param input - a string
+ */
+function splitAStringOnASCIIWhitespace(input) {
+ /**
+ * 1. Let position be a position variable for input, initially pointing at the
+ * start of input.
+ * 2. Let tokens be a list of strings, initially empty.
+ * 3. Skip ASCII whitespace within input given position.
+ * 4. While position is not past the end of input:
+ * 4.1. Let token be the result of collecting a sequence of code points that
+ * are not ASCII whitespace from input, given position.
+ * 4.2. Append token to tokens.
+ * 4.3. Skip ASCII whitespace within input given position.
+ * 5. Return tokens.
+ */
+ if (!util_1.isArray(input))
+ return splitAStringOnASCIIWhitespace(Array.from(input));
+ var options = { position: 0 };
+ var tokens = [];
+ skipASCIIWhitespace(input, options);
+ while (options.position < input.length) {
+ var token = collectASequenceOfCodePoints(function (str) { return !CodePoints_1.ASCIIWhiteSpace.test(str); }, input, options);
+ tokens.push(token);
+ skipASCIIWhitespace(input, options);
+ }
+ return tokens;
+}
+exports.splitAStringOnASCIIWhitespace = splitAStringOnASCIIWhitespace;
+/**
+ * Splits a string on commas.
+ *
+ * @param input - a string
+ */
+function splitAStringOnCommas(input) {
+ /**
+ * 1. Let position be a position variable for input, initially pointing at the
+ * start of input.
+ * 2. Let tokens be a list of strings, initially empty.
+ * 3. While position is not past the end of input:
+ * 3.1. Let token be the result of collecting a sequence of code points that
+ * are not U+002C (,) from input, given position.
+ * 3.2. Strip leading and trailing ASCII whitespace from token.
+ * 3.3. Append token to tokens.
+ * 3.4. If position is not past the end of input, then:
+ * 3.4.1. Assert: the code point at position within input is U+002C (,).
+ * 3.4.2. Advance position by 1.
+ * 4. Return tokens.
+ */
+ if (!util_1.isArray(input))
+ return splitAStringOnCommas(Array.from(input));
+ var options = { position: 0 };
+ var tokens = [];
+ while (options.position < input.length) {
+ var token = collectASequenceOfCodePoints(function (str) { return str !== ','; }, input, options);
+ tokens.push(stripLeadingAndTrailingASCIIWhitespace(token));
+ if (options.position < input.length) {
+ console.assert(input[options.position] === ',', "splitAStringOnCommas found no delimiter in input string.");
+ options.position++;
+ }
+ }
+ return tokens;
+}
+exports.splitAStringOnCommas = splitAStringOnCommas;
+/**
+ * Concatenates a list of strings with the given separator.
+ *
+ * @param list - a list of strings
+ * @param separator - a separator string
+ */
+function concatenate(list, separator) {
+ if (separator === void 0) { separator = ""; }
+ /**
+ * 1. If list is empty, then return the empty string.
+ * 2. If separator is not given, then set separator to the empty string.
+ * 3. Return a string whose contents are list’s items, in order, separated
+ * from each other by separator.
+ */
+ if (list.length === 0)
+ return "";
+ return list.join(separator);
+}
+exports.concatenate = concatenate;
+//# sourceMappingURL=String.js.map
+
+/***/ }),
+
+/***/ 4251:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
+ result["default"] = mod;
+ return result;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var base64 = __importStar(__nccwpck_require__(8585));
+exports.base64 = base64;
+var byte = __importStar(__nccwpck_require__(2460));
+exports.byte = byte;
+var byteSequence = __importStar(__nccwpck_require__(1627));
+exports.byteSequence = byteSequence;
+var codePoint = __importStar(__nccwpck_require__(8548));
+exports.codePoint = codePoint;
+var json = __importStar(__nccwpck_require__(9387));
+exports.json = json;
+var list = __importStar(__nccwpck_require__(340));
+exports.list = list;
+var map = __importStar(__nccwpck_require__(2298));
+exports.map = map;
+var namespace = __importStar(__nccwpck_require__(3764));
+exports.namespace = namespace;
+var queue = __importStar(__nccwpck_require__(9201));
+exports.queue = queue;
+var set = __importStar(__nccwpck_require__(5931));
+exports.set = set;
+var stack = __importStar(__nccwpck_require__(8784));
+exports.stack = stack;
+var string = __importStar(__nccwpck_require__(3203));
+exports.string = string;
+//# sourceMappingURL=index.js.map
+
+/***/ }),
+
+/***/ 3568:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var util_1 = __nccwpck_require__(6195);
+var interfaces_1 = __nccwpck_require__(1752);
+var infra_1 = __nccwpck_require__(4251);
+var url_1 = __nccwpck_require__(7310);
+var _validationErrorCallback;
+/**
+ * Default ports for a special URL scheme.
+ */
+var _defaultPorts = {
+ "ftp": 21,
+ "file": null,
+ "http": 80,
+ "https": 443,
+ "ws": 80,
+ "wss": 443
+};
+/**
+ * The C0 control percent-encode set are the C0 controls and all code points
+ * greater than U+007E (~).
+ */
+var _c0ControlPercentEncodeSet = /[\0-\x1F\x7F-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
+/**
+ * The fragment percent-encode set is the C0 control percent-encode set and
+ * U+0020 SPACE, U+0022 ("), U+003C (<), U+003E (>), and U+0060 (`).
+ */
+var _fragmentPercentEncodeSet = /[ "<>`]|[\0-\x1F\x7F-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
+/**
+ * The path percent-encode set is the fragment percent-encode set and
+ * U+0023 (#), U+003F (?), U+007B ({), and U+007D (}).
+ */
+var _pathPercentEncodeSet = /[ "<>`#?{}]|[\0-\x1F\x7F-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
+/**
+ * The userinfo percent-encode set is the path percent-encode set and
+ * U+002F (/), U+003A (:), U+003B (;), U+003D (=), U+0040 (@), U+005B ([),
+ * U+005C (\), U+005D (]), U+005E (^), and U+007C (|).
+ */
+var _userInfoPercentEncodeSet = /[ "<>`#?{}/:;=@\[\]\\\^\|]|[\0-\x1F\x7F-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
+/**
+ * The URL code points are ASCII alphanumeric, U+0021 (!), U+0024 ($),
+ * U+0026 (&), U+0027 ('), U+0028 LEFT PARENTHESIS, U+0029 RIGHT PARENTHESIS,
+ * U+002A (*), U+002B (+), U+002C (,), U+002D (-), U+002E (.), U+002F (/),
+ * U+003A (:), U+003B (;), U+003D (=), U+003F (?), U+0040 (@), U+005F (_),
+ * U+007E (~), and code points in the range U+00A0 to U+10FFFD, inclusive,
+ * excluding surrogates and noncharacters.
+ */
+var _urlCodePoints = /[0-9A-Za-z!\$&-\/:;=\?@_~\xA0-\uD7FF\uE000-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uD83E\uD840-\uD87E\uD880-\uD8BE\uD8C0-\uD8FE\uD900-\uD93E\uD940-\uD97E\uD980-\uD9BE\uD9C0-\uD9FE\uDA00-\uDA3E\uDA40-\uDA7E\uDA80-\uDABE\uDAC0-\uDAFE\uDB00-\uDB3E\uDB40-\uDB7E\uDB80-\uDBBE\uDBC0-\uDBFE][\uDC00-\uDFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDC00-\uDFFD]/;
+/**
+ * A forbidden host code point is U+0000 NULL, U+0009 TAB, U+000A LF,
+ * U+000D CR, U+0020 SPACE, U+0023 (#), U+0025 (%), U+002F (/), U+003A (:),
+ * U+003F (?), U+0040 (@), U+005B ([), U+005C (\), or U+005D (]).
+ */
+var _forbiddenHostCodePoint = /[\0\t\f\r #%/:?@\[\\\]]/;
+/**
+ * Sets the callback function for validation errors.
+ *
+ * @param validationErrorCallback - a callback function to be called when a
+ * validation error occurs
+ */
+function setValidationErrorCallback(validationErrorCallback) {
+ _validationErrorCallback = validationErrorCallback;
+}
+exports.setValidationErrorCallback = setValidationErrorCallback;
+/**
+ * Generates a validation error.
+ *
+ * @param message - error message
+ */
+function validationError(message) {
+ if (_validationErrorCallback !== undefined) {
+ _validationErrorCallback.call(null, "Validation Error: " + message);
+ }
+}
+/**
+ * Creates a new URL.
+ */
+function newURL() {
+ return {
+ scheme: '',
+ username: '',
+ password: '',
+ host: null,
+ port: null,
+ path: [],
+ query: null,
+ fragment: null,
+ _cannotBeABaseURLFlag: false,
+ _blobURLEntry: null
+ };
+}
+exports.newURL = newURL;
+/**
+ * Determines if the scheme is a special scheme.
+ *
+ * @param scheme - a scheme
+ */
+function isSpecialScheme(scheme) {
+ return (scheme in _defaultPorts);
+}
+exports.isSpecialScheme = isSpecialScheme;
+/**
+ * Determines if the URL has a special scheme.
+ *
+ * @param url - an URL
+ */
+function isSpecial(url) {
+ return isSpecialScheme(url.scheme);
+}
+exports.isSpecial = isSpecial;
+/**
+ * Returns the default port for a special scheme.
+ *
+ * @param scheme - a scheme
+ */
+function defaultPort(scheme) {
+ return _defaultPorts[scheme] || null;
+}
+exports.defaultPort = defaultPort;
+/**
+ * Determines if the URL has credentials.
+ *
+ * @param url - an URL
+ */
+function includesCredentials(url) {
+ return url.username !== '' || url.password !== '';
+}
+exports.includesCredentials = includesCredentials;
+/**
+ * Determines if an URL cannot have credentials.
+ *
+ * @param url - an URL
+ */
+function cannotHaveAUsernamePasswordPort(url) {
+ /**
+ * A URL cannot have a username/password/port if its host is null or the
+ * empty string, its cannot-be-a-base-URL flag is set, or its scheme is
+ * "file".
+ */
+ return (url.host === null || url.host === "" || url._cannotBeABaseURLFlag ||
+ url.scheme === "file");
+}
+exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;
+/**
+ * Serializes an URL into a string.
+ *
+ * @param url - an URL
+ */
+function urlSerializer(url, excludeFragmentFlag) {
+ var e_1, _a;
+ if (excludeFragmentFlag === void 0) { excludeFragmentFlag = false; }
+ /**
+ * 1. Let output be url’s scheme and U+003A (:) concatenated.
+ */
+ var output = url.scheme + ':';
+ /**
+ * 2. If url’s host is non-null:
+ */
+ if (url.host !== null) {
+ /**
+ * 2.1. Append "//" to output.
+ */
+ output += '//';
+ /**
+ * 2.2. If url includes credentials, then:
+ */
+ if (includesCredentials(url)) {
+ /**
+ * 2.2.1. Append url’s username to output.
+ * 2.2.2. If url’s password is not the empty string, then append U+003A (:),
+ * followed by url’s password, to output.
+ * 2.2.3. Append U+0040 (@) to output.
+ */
+ output += url.username;
+ if (url.password !== '') {
+ output += ':' + url.password;
+ }
+ output += '@';
+ }
+ /**
+ * 2.3. Append url’s host, serialized, to output.
+ * 2.4. If url’s port is non-null, append U+003A (:) followed by url’s port,
+ * serialized, to output.
+ */
+ output += hostSerializer(url.host);
+ if (url.port !== null) {
+ output += ':' + url.port;
+ }
+ }
+ else if (url.host === null && url.scheme === "file") {
+ /**
+ * 3. Otherwise, if url’s host is null and url’s scheme is "file", append "//" to output.
+ */
+ output += '//';
+ }
+ /**
+ * 4. If url’s cannot-be-a-base-URL flag is set, append url’s path[0] to
+ * output.
+ * 5. Otherwise, then for each string in url’s path, append U+002F (/)
+ * followed by the string to output.
+ */
+ if (url._cannotBeABaseURLFlag) {
+ output += url.path[0];
+ }
+ else {
+ try {
+ for (var _b = __values(url.path), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var str = _c.value;
+ output += '/' + str;
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ }
+ /**
+ * 6. If url’s query is non-null, append U+003F (?), followed by url’s
+ * query, to output.
+ * 7. If the exclude fragment flag is unset and url’s fragment is non-null,
+ * append U+0023 (#), followed by url’s fragment, to output.
+ * 8. Return output.
+ */
+ if (url.query !== null) {
+ output += '?' + url.query;
+ }
+ if (!excludeFragmentFlag && url.fragment !== null) {
+ output += '#' + url.fragment;
+ }
+ return output;
+}
+exports.urlSerializer = urlSerializer;
+/**
+ * Serializes a host into a string.
+ *
+ * @param host - a host
+ */
+function hostSerializer(host) {
+ /**
+ * 1. If host is an IPv4 address, return the result of running the IPv4
+ * serializer on host.
+ * 2. Otherwise, if host is an IPv6 address, return U+005B ([), followed
+ * by the result of running the IPv6 serializer on host, followed by
+ * U+005D (]).
+ * 3. Otherwise, host is a domain, opaque host, or empty host, return host.
+ */
+ if (util_1.isNumber(host)) {
+ return iPv4Serializer(host);
+ }
+ else if (util_1.isArray(host)) {
+ return '[' + iPv6Serializer(host) + ']';
+ }
+ else {
+ return host;
+ }
+}
+exports.hostSerializer = hostSerializer;
+/**
+ * Serializes an IPv4 address into a string.
+ *
+ * @param address - an IPv4 address
+ */
+function iPv4Serializer(address) {
+ /**
+ * 1. Let output be the empty string.
+ * 2. Let n be the value of address.
+ * 3. For each i in the range 1 to 4, inclusive:
+ * 3.1. Prepend n % 256, serialized, to output.
+ * 3.2. If i is not 4, then prepend U+002E (.) to output.
+ * 3.3. Set n to floor(n / 256).
+ * 4. Return output.
+ */
+ var output = "";
+ var n = address;
+ for (var i = 1; i <= 4; i++) {
+ output = (n % 256).toString() + output;
+ if (i !== 4) {
+ output = '.' + output;
+ }
+ n = Math.floor(n / 256);
+ }
+ return output;
+}
+exports.iPv4Serializer = iPv4Serializer;
+/**
+ * Serializes an IPv6 address into a string.
+ *
+ * @param address - an IPv6 address represented as a list of eight numbers
+ */
+function iPv6Serializer(address) {
+ /**
+ * 1. Let output be the empty string.
+ * 2. Let compress be an index to the first IPv6 piece in the first longest
+ * sequences of address’s IPv6 pieces that are 0.
+ * In 0:f:0:0:f:f:0:0 it would point to the second 0.
+ * 3. If there is no sequence of address’s IPv6 pieces that are 0 that is
+ * longer than 1, then set compress to null.
+ */
+ var output = "";
+ var compress = null;
+ var lastIndex = -1;
+ var count = 0;
+ var lastCount = 0;
+ for (var i = 0; i < 8; i++) {
+ if (address[i] !== 0)
+ continue;
+ count = 1;
+ for (var j = i + 1; j < 8; j++) {
+ if (address[j] !== 0)
+ break;
+ count++;
+ continue;
+ }
+ if (count > lastCount) {
+ lastCount = count;
+ lastIndex = i;
+ }
+ }
+ if (lastCount > 1)
+ compress = lastIndex;
+ /**
+ * 4. Let ignore0 be false.
+ * 5. For each pieceIndex in the range 0 to 7, inclusive:
+ */
+ var ignore0 = false;
+ for (var pieceIndex = 0; pieceIndex < 8; pieceIndex++) {
+ /**
+ * 5.1. If ignore0 is true and address[pieceIndex] is 0, then continue.
+ * 5.2. Otherwise, if ignore0 is true, set ignore0 to false.
+ * 5.3. If compress is pieceIndex, then:
+ */
+ if (ignore0 && address[pieceIndex] === 0)
+ continue;
+ if (ignore0)
+ ignore0 = false;
+ if (compress === pieceIndex) {
+ /**
+ * 5.3.1. Let separator be "::" if pieceIndex is 0, and U+003A (:) otherwise.
+ * 5.3.2. Append separator to output.
+ * 5.3.3. Set ignore0 to true and continue.
+ */
+ output += (pieceIndex === 0 ? '::' : ':');
+ ignore0 = true;
+ continue;
+ }
+ /**
+ * 5.4. Append address[pieceIndex], represented as the shortest possible
+ * lowercase hexadecimal number, to output.
+ * 5.5. If pieceIndex is not 7, then append U+003A (:) to output.
+ */
+ output += address[pieceIndex].toString(16);
+ if (pieceIndex !== 7)
+ output += ':';
+ }
+ /**
+ * 6. Return output.
+ */
+ return output;
+}
+exports.iPv6Serializer = iPv6Serializer;
+/**
+ * Parses an URL string.
+ *
+ * @param input - input string
+ * @param baseURL - base URL
+ * @param encodingOverride - encoding override
+ */
+function urlParser(input, baseURL, encodingOverride) {
+ /**
+ * 1. Let url be the result of running the basic URL parser on input with
+ * base, and encoding override as provided.
+ * 2. If url is failure, return failure.
+ * 3. If url’s scheme is not "blob", return url.
+ * 4. Set url’s blob URL entry to the result of resolving the blob URL url,
+ * if that did not return failure, and null otherwise.
+ * 5. Return url.
+ */
+ var url = basicURLParser(input, baseURL, encodingOverride);
+ if (url === null)
+ return null;
+ if (url.scheme !== "blob")
+ return url;
+ var entry = resolveABlobURL(url);
+ if (entry !== null) {
+ url._blobURLEntry = entry;
+ }
+ else {
+ url._blobURLEntry = null;
+ }
+ return url;
+}
+exports.urlParser = urlParser;
+/**
+ * Parses an URL string.
+ *
+ * @param input - input string
+ * @param baseURL - base URL
+ * @param encodingOverride - encoding override
+ */
+function basicURLParser(input, baseURL, encodingOverride, url, stateOverride) {
+ var e_2, _a, e_3, _b;
+ /**
+ * 1. If url is not given:
+ * 1.1. Set url to a new URL.
+ * 1.2. If input contains any leading or trailing C0 control or space,
+ * validation error.
+ * 1.3. Remove any leading and trailing C0 control or space from input.
+ */
+ if (url === undefined) {
+ url = newURL();
+ // leading
+ var leadingControlOrSpace = /^[\u0000-\u001F\u0020]+/;
+ var trailingControlOrSpace = /[\u0000-\u001F\u0020]+$/;
+ if (leadingControlOrSpace.test(input) || trailingControlOrSpace.test(input)) {
+ validationError("Input string contains leading or trailing control characters or space.");
+ }
+ input = input.replace(leadingControlOrSpace, '');
+ input = input.replace(trailingControlOrSpace, '');
+ }
+ /**
+ * 2. If input contains any ASCII tab or newline, validation error.
+ * 3. Remove all ASCII tab or newline from input.
+ */
+ var tabOrNewline = /[\u0009\u000A\u000D]/g;
+ if (tabOrNewline.test(input)) {
+ validationError("Input string contains tab or newline characters.");
+ }
+ input = input.replace(tabOrNewline, '');
+ /**
+ * 4. Let state be state override if given, or scheme start state otherwise.
+ * 5. If base is not given, set it to null.
+ * 6. Let encoding be UTF-8.
+ * 7. If encoding override is given, set encoding to the result of getting
+ * an output encoding from encoding override.
+ */
+ var state = (stateOverride === undefined ? interfaces_1.ParserState.SchemeStart : stateOverride);
+ if (baseURL === undefined)
+ baseURL = null;
+ var encoding = (encodingOverride === undefined ||
+ encodingOverride === "replacement" || encodingOverride === "UTF-16BE" ||
+ encodingOverride === "UTF-16LE" ? "UTF-8" : encodingOverride);
+ /**
+ * 8. Let buffer be the empty string.
+ * 9. Let the @ flag, [] flag, and passwordTokenSeenFlag be unset.
+ * 10. Let pointer be a pointer to first code point in input.
+ */
+ var buffer = "";
+ var atFlag = false;
+ var arrayFlag = false;
+ var passwordTokenSeenFlag = false;
+ var EOF = "";
+ var walker = new util_1.StringWalker(input);
+ /**
+ * 11. Keep running the following state machine by switching on state. If
+ * after a run pointer points to the EOF code point, go to the next step.
+ * Otherwise, increase pointer by one and continue with the state machine.
+ */
+ while (true) {
+ switch (state) {
+ case interfaces_1.ParserState.SchemeStart:
+ /**
+ * 1. If c is an ASCII alpha, append c, lowercased, to buffer, and set
+ * state to scheme state.
+ * 2. Otherwise, if state override is not given, set state to no scheme
+ * state, and decrease pointer by one.
+ * 3. Otherwise, validation error, return failure.
+ */
+ if (infra_1.codePoint.ASCIIAlpha.test(walker.c())) {
+ buffer += walker.c().toLowerCase();
+ state = interfaces_1.ParserState.Scheme;
+ }
+ else if (stateOverride === undefined) {
+ state = interfaces_1.ParserState.NoScheme;
+ walker.pointer--;
+ }
+ else {
+ validationError("Invalid scheme start character.");
+ return null;
+ }
+ break;
+ case interfaces_1.ParserState.Scheme:
+ /**
+ * 1. If c is an ASCII alphanumeric, U+002B (+), U+002D (-), or U+002E
+ * (.), append c, lowercased, to buffer.
+ */
+ if (infra_1.codePoint.ASCIIAlphanumeric.test(walker.c()) ||
+ walker.c() === '+' || walker.c() === '-' || walker.c() === '.') {
+ buffer += walker.c().toLowerCase();
+ }
+ else if (walker.c() === ':') {
+ /**
+ * 2. Otherwise, if c is U+003A (:), then:
+ * 2.1. If state override is given, then:
+ * 2.1.1. If url’s scheme is a special scheme and buffer is not a
+ * special scheme, then return.
+ * 2.1.2. If url’s scheme is not a special scheme and buffer is a
+ * special scheme, then return.
+ * 2.1.3. If url includes credentials or has a non-null port, and
+ * buffer is "file", then return.
+ * 2.1.4. If url’s scheme is "file" and its host is an empty host or
+ * null, then return.
+ */
+ if (stateOverride !== undefined) {
+ if (isSpecialScheme(url.scheme) && !isSpecialScheme(buffer))
+ return url;
+ if (!isSpecialScheme(url.scheme) && isSpecialScheme(buffer))
+ return url;
+ if ((includesCredentials(url) || url.port !== null) && buffer === "file")
+ return url;
+ if (url.scheme === "file" && (url.host === "" || url.host === null))
+ return url;
+ }
+ /**
+ * 2.2. Set url’s scheme to buffer.
+ */
+ url.scheme = buffer;
+ /**
+ * 2.3. If state override is given, then:
+ * 2.3.1. If url’s port is url’s scheme’s default port, then set
+ * url’s port to null.
+ * 2.3.2. Return.
+ */
+ if (stateOverride !== undefined) {
+ if (url.port === defaultPort(url.scheme)) {
+ url.port = null;
+ }
+ return url;
+ }
+ /**
+ * 2.4. Set buffer to the empty string.
+ */
+ buffer = "";
+ if (url.scheme === "file") {
+ /**
+ * 2.5. If url’s scheme is "file", then:
+ * 2.5.1. If remaining does not start with "//", validation error.
+ * 2.5.2. Set state to file state.
+ */
+ if (!walker.remaining().startsWith("//")) {
+ validationError("Invalid file URL scheme, '//' expected.");
+ }
+ state = interfaces_1.ParserState.File;
+ }
+ else if (isSpecial(url) && baseURL !== null && baseURL.scheme === url.scheme) {
+ /**
+ * 2.6. Otherwise, if url is special, base is non-null, and base’s
+ * scheme is equal to url’s scheme, set state to special relative
+ * or authority state.
+ */
+ state = interfaces_1.ParserState.SpecialRelativeOrAuthority;
+ }
+ else if (isSpecial(url)) {
+ /**
+ * 2.7. Otherwise, if url is special, set state to special
+ * authority slashes state.
+ */
+ state = interfaces_1.ParserState.SpecialAuthoritySlashes;
+ }
+ else if (walker.remaining().startsWith("/")) {
+ /**
+ * 2.8. Otherwise, if remaining starts with an U+002F (/), set state
+ * to path or authority state and increase pointer by one.
+ */
+ state = interfaces_1.ParserState.PathOrAuthority;
+ walker.pointer++;
+ }
+ else {
+ /**
+ * 2.9. Otherwise, set url’s cannot-be-a-base-URL flag, append an
+ * empty string to url’s path, and set state to
+ * cannot-be-a-base-URL path state.
+ */
+ url._cannotBeABaseURLFlag = true;
+ url.path.push("");
+ state = interfaces_1.ParserState.CannotBeABaseURLPath;
+ }
+ }
+ else if (stateOverride === undefined) {
+ /**
+ * 3. Otherwise, if state override is not given, set buffer to the
+ * empty string, state to no scheme state, and start over (from the
+ * first code point in input).
+ */
+ buffer = "";
+ state = interfaces_1.ParserState.NoScheme;
+ walker.pointer = 0;
+ continue;
+ }
+ else {
+ /**
+ * 4. Otherwise, validation error, return failure.
+ */
+ validationError("Invalid input string.");
+ return null;
+ }
+ break;
+ case interfaces_1.ParserState.NoScheme:
+ /**
+ * 1. If base is null, or base’s cannot-be-a-base-URL flag is set
+ * and c is not U+0023 (#), validation error, return failure.
+ * 2. Otherwise, if base’s cannot-be-a-base-URL flag is set and
+ * c is U+0023 (#), set url’s scheme to base’s scheme, url’s path to
+ * a copy of base’s path, url’s query to base’s query, url’s
+ * fragment to the empty string, set url’s cannot-be-a-base-URL
+ * flag, and set state to fragment state.
+ * 3. Otherwise, if base’s scheme is not "file", set state to
+ * relative state and decrease pointer by one.
+ * 4. Otherwise, set state to file state and decrease pointer by one.
+ */
+ if (baseURL === null || (baseURL._cannotBeABaseURLFlag && walker.c() !== '#')) {
+ validationError("Invalid input string.");
+ return null;
+ }
+ else if (baseURL._cannotBeABaseURLFlag && walker.c() === '#') {
+ url.scheme = baseURL.scheme;
+ url.path = infra_1.list.clone(baseURL.path);
+ url.query = baseURL.query;
+ url.fragment = "";
+ url._cannotBeABaseURLFlag = true;
+ state = interfaces_1.ParserState.Fragment;
+ }
+ else if (baseURL.scheme !== "file") {
+ state = interfaces_1.ParserState.Relative;
+ walker.pointer--;
+ }
+ else {
+ state = interfaces_1.ParserState.File;
+ walker.pointer--;
+ }
+ break;
+ case interfaces_1.ParserState.SpecialRelativeOrAuthority:
+ /**
+ * If c is U+002F (/) and remaining starts with U+002F (/), then set
+ * state to special authority ignore slashes state and increase
+ * pointer by one.
+ * Otherwise, validation error, set state to relative state and
+ * decrease pointer by one.
+ */
+ if (walker.c() === '/' && walker.remaining().startsWith('/')) {
+ state = interfaces_1.ParserState.SpecialAuthorityIgnoreSlashes;
+ walker.pointer++;
+ }
+ else {
+ validationError("Invalid input string.");
+ state = interfaces_1.ParserState.Relative;
+ walker.pointer--;
+ }
+ break;
+ case interfaces_1.ParserState.PathOrAuthority:
+ /**
+ * If c is U+002F (/), then set state to authority state.
+ * Otherwise, set state to path state, and decrease pointer by one.
+ */
+ if (walker.c() === '/') {
+ state = interfaces_1.ParserState.Authority;
+ }
+ else {
+ state = interfaces_1.ParserState.Path;
+ walker.pointer--;
+ }
+ break;
+ case interfaces_1.ParserState.Relative:
+ /**
+ * Set url’s scheme to base’s scheme, and then, switching on c:
+ */
+ if (baseURL === null) {
+ throw new Error("Invalid parser state. Base URL is null.");
+ }
+ url.scheme = baseURL.scheme;
+ switch (walker.c()) {
+ case EOF: // EOF
+ /**
+ * Set url’s username to base’s username, url’s password to base’s
+ * password, url’s host to base’s host, url’s port to base’s port,
+ * url’s path to a copy of base’s path, and url’s query to base’s
+ * query.
+ */
+ url.username = baseURL.username;
+ url.password = baseURL.password;
+ url.host = baseURL.host;
+ url.port = baseURL.port;
+ url.path = infra_1.list.clone(baseURL.path);
+ url.query = baseURL.query;
+ break;
+ case '/':
+ /**
+ * Set state to relative slash state.
+ */
+ state = interfaces_1.ParserState.RelativeSlash;
+ break;
+ case '?':
+ /**
+ * Set url’s username to base’s username, url’s password to base’s
+ * password, url’s host to base’s host, url’s port to base’s port,
+ * url’s path to a copy of base’s path, url’s query to the empty
+ * string, and state to query state.
+ */
+ url.username = baseURL.username;
+ url.password = baseURL.password;
+ url.host = baseURL.host;
+ url.port = baseURL.port;
+ url.path = infra_1.list.clone(baseURL.path);
+ url.query = "";
+ state = interfaces_1.ParserState.Query;
+ break;
+ case '#':
+ /**
+ * Set url’s username to base’s username, url’s password to base’s
+ * password, url’s host to base’s host, url’s port to base’s port,
+ * url’s path to a copy of base’s path, url’s query to base’s
+ * query, url’s fragment to the empty string, and state to
+ * fragment state.
+ */
+ url.username = baseURL.username;
+ url.password = baseURL.password;
+ url.host = baseURL.host;
+ url.port = baseURL.port;
+ url.path = infra_1.list.clone(baseURL.path);
+ url.query = baseURL.query;
+ url.fragment = "";
+ state = interfaces_1.ParserState.Fragment;
+ break;
+ default:
+ /**
+ * If url is special and c is U+005C (\), validation error,
+ * set state to relative slash state.
+ * Otherwise, run these steps:
+ * 1. Set url’s username to base’s username, url’s password to
+ * base’s password, url’s host to base’s host, url’s port to
+ * base’s port, url’s path to a copy of base’s path, and then
+ * remove url’s path’s last item, if any.
+ * 2. Set state to path state, and decrease pointer by one.
+ */
+ if (isSpecial(url) && walker.c() === '\\') {
+ validationError("Invalid input string.");
+ state = interfaces_1.ParserState.RelativeSlash;
+ }
+ else {
+ url.username = baseURL.username;
+ url.password = baseURL.password;
+ url.host = baseURL.host;
+ url.port = baseURL.port;
+ url.path = infra_1.list.clone(baseURL.path);
+ if (url.path.length !== 0)
+ url.path.splice(url.path.length - 1, 1);
+ state = interfaces_1.ParserState.Path;
+ walker.pointer--;
+ }
+ break;
+ }
+ break;
+ case interfaces_1.ParserState.RelativeSlash:
+ /**
+ * 1. If url is special and c is U+002F (/) or U+005C (\), then:
+ * 1.1. If c is U+005C (\), validation error.
+ * 1.2. Set state to special authority ignore slashes state.
+ * 2. Otherwise, if c is U+002F (/), then set state to authority state.
+ * 3. Otherwise, set url’s username to base’s username, url’s password
+ * to base’s password, url’s host to base’s host, url’s port to base’s
+ * port, state to path state, and then, decrease pointer by one.
+ */
+ if (isSpecial(url) && (walker.c() === '/' || walker.c() === '\\')) {
+ if (walker.c() === '\\') {
+ validationError("Invalid input string.");
+ }
+ state = interfaces_1.ParserState.SpecialAuthorityIgnoreSlashes;
+ }
+ else if (walker.c() === '/') {
+ state = interfaces_1.ParserState.Authority;
+ }
+ else {
+ if (baseURL === null) {
+ throw new Error("Invalid parser state. Base URL is null.");
+ }
+ url.username = baseURL.username;
+ url.password = baseURL.password;
+ url.host = baseURL.host;
+ url.port = baseURL.port;
+ state = interfaces_1.ParserState.Path;
+ walker.pointer--;
+ }
+ break;
+ case interfaces_1.ParserState.SpecialAuthoritySlashes:
+ /**
+ * If c is U+002F (/) and remaining starts with U+002F (/), then set
+ * state to special authority ignore slashes state and increase
+ * pointer by one.
+ * Otherwise, validation error, set state to special authority ignore
+ * slashes state, and decrease pointer by one.
+ */
+ if (walker.c() === '/' && walker.remaining().startsWith('/')) {
+ state = interfaces_1.ParserState.SpecialAuthorityIgnoreSlashes;
+ walker.pointer++;
+ }
+ else {
+ validationError("Expected '//'.");
+ state = interfaces_1.ParserState.SpecialAuthorityIgnoreSlashes;
+ walker.pointer--;
+ }
+ break;
+ case interfaces_1.ParserState.SpecialAuthorityIgnoreSlashes:
+ /**
+ * If c is neither U+002F (/) nor U+005C (\), then set state to
+ * authority state and decrease pointer by one.
+ * Otherwise, validation error.
+ */
+ if (walker.c() !== '/' && walker.c() !== '\\') {
+ state = interfaces_1.ParserState.Authority;
+ walker.pointer--;
+ }
+ else {
+ validationError("Unexpected '/' or '\\'.");
+ }
+ break;
+ case interfaces_1.ParserState.Authority:
+ /**
+ * 1. If c is U+0040 (@), then:
+ */
+ if (walker.c() === '@') {
+ /**
+ * 1.1. Validation error.
+ * 1.2. If the @ flag is set, prepend "%40" to buffer.
+ * 1.3. Set the @ flag.
+ * 1.4. For each codePoint in buffer:
+ */
+ validationError("Unexpected '@'.");
+ if (atFlag)
+ buffer = '%40' + buffer;
+ atFlag = true;
+ try {
+ for (var buffer_1 = (e_2 = void 0, __values(buffer)), buffer_1_1 = buffer_1.next(); !buffer_1_1.done; buffer_1_1 = buffer_1.next()) {
+ var codePoint = buffer_1_1.value;
+ /**
+ * 1.4.1. If codePoint is U+003A (:) and passwordTokenSeenFlag is
+ * unset, then set passwordTokenSeenFlag and continue.
+ * 1.4.2. Let encodedCodePoints be the result of running UTF-8
+ * percent encode codePoint using the userinfo percent-encode set.
+ * 1.4.3. If passwordTokenSeenFlag is set, then append
+ * encodedCodePoints to url’s password.
+ * 1.4.4. Otherwise, append encodedCodePoints to url’s username.
+ */
+ if (codePoint === ':' && !passwordTokenSeenFlag) {
+ passwordTokenSeenFlag = true;
+ continue;
+ }
+ var encodedCodePoints = utf8PercentEncode(codePoint, _userInfoPercentEncodeSet);
+ if (passwordTokenSeenFlag) {
+ url.password += encodedCodePoints;
+ }
+ else {
+ url.username += encodedCodePoints;
+ }
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (buffer_1_1 && !buffer_1_1.done && (_a = buffer_1.return)) _a.call(buffer_1);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ /**
+ * 1.5. Set buffer to the empty string.
+ */
+ buffer = "";
+ }
+ else if (walker.c() === EOF || walker.c() === '/' || walker.c() === '?' || walker.c() === '#' ||
+ (isSpecial(url) && walker.c() === '\\')) {
+ /**
+ * 2. Otherwise, if one of the following is true
+ * - c is the EOF code point, U+002F (/), U+003F (?), or U+0023 (#)
+ * - url is special and c is U+005C (\)
+ * then:
+ * 2.1. If @ flag is set and buffer is the empty string, validation
+ * error, return failure.
+ * 2.2. Decrease pointer by the number of code points in buffer plus
+ * one, set buffer to the empty string, and set state to host state.
+ */
+ if (atFlag && buffer === "") {
+ validationError("Invalid input string.");
+ return null;
+ }
+ walker.pointer -= (buffer.length + 1);
+ buffer = "";
+ state = interfaces_1.ParserState.Host;
+ }
+ else {
+ /**
+ * 3. Otherwise, append c to buffer.
+ */
+ buffer += walker.c();
+ }
+ break;
+ case interfaces_1.ParserState.Host:
+ case interfaces_1.ParserState.Hostname:
+ if (stateOverride !== undefined && url.scheme === "file") {
+ /**
+ * 1. If state override is given and url’s scheme is "file", then
+ * decrease pointer by one and set state to file host state.
+ */
+ walker.pointer--;
+ state = interfaces_1.ParserState.FileHost;
+ }
+ else if (walker.c() === ':' && !arrayFlag) {
+ /**
+ * 2. Otherwise, if c is U+003A (:) and the [] flag is unset, then:
+ * 2.1. If buffer is the empty string, validation error, return
+ * failure.
+ * 2.2. Let host be the result of host parsing buffer with url is
+ * not special.
+ * 2.3. If host is failure, then return failure.
+ * 2.4. Set url’s host to host, buffer to the empty string, and
+ * state to port state.
+ * 2.5. If state override is given and state override is hostname
+ * state, then return.
+ */
+ if (buffer === "") {
+ validationError("Invalid input string.");
+ return null;
+ }
+ var host = hostParser(buffer, !isSpecial(url));
+ if (host === null)
+ return null;
+ url.host = host;
+ buffer = "";
+ state = interfaces_1.ParserState.Port;
+ if (stateOverride === interfaces_1.ParserState.Hostname)
+ return url;
+ }
+ else if (walker.c() === EOF || walker.c() === '/' || walker.c() === '?' || walker.c() === '#' ||
+ (isSpecial(url) && walker.c() === '\\')) {
+ /**
+ * 3. Otherwise, if one of the following is true
+ * - c is the EOF code point, U+002F (/), U+003F (?), or U+0023 (#)
+ * - url is special and c is U+005C (\)
+ * then decrease pointer by one, and then:
+ * 3.1. If url is special and buffer is the empty string, validation
+ * error, return failure.
+ * 3.2. Otherwise, if state override is given, buffer is the empty
+ * string, and either url includes credentials or url’s port is
+ * non-null, validation error, return.
+ * 3.3. Let host be the result of host parsing buffer with url is
+ * not special.
+ * 3.4. If host is failure, then return failure.
+ * 3.5. Set url’s host to host, buffer to the empty string, and
+ * state to path start state.
+ * 3.6. If state override is given, then return.
+ */
+ walker.pointer--;
+ if (isSpecial(url) && buffer === "") {
+ validationError("Invalid input string.");
+ return null;
+ }
+ else if (stateOverride !== undefined && buffer === "" &&
+ (includesCredentials(url) || url.port !== null)) {
+ validationError("Invalid input string.");
+ return url;
+ }
+ var host = hostParser(buffer, !isSpecial(url));
+ if (host === null)
+ return null;
+ url.host = host;
+ buffer = "";
+ state = interfaces_1.ParserState.PathStart;
+ if (stateOverride !== undefined)
+ return url;
+ }
+ else {
+ /**
+ * 4. Otherwise:
+ * 4.1. If c is U+005B ([), then set the [] flag.
+ * 4.2. If c is U+005D (]), then unset the [] flag.
+ * 4.3. Append c to buffer.
+ */
+ if (walker.c() === '[')
+ arrayFlag = true;
+ if (walker.c() === ']')
+ arrayFlag = false;
+ buffer += walker.c();
+ }
+ break;
+ case interfaces_1.ParserState.Port:
+ if (infra_1.codePoint.ASCIIDigit.test(walker.c())) {
+ /**
+ * 1. If c is an ASCII digit, append c to buffer.
+ */
+ buffer += walker.c();
+ }
+ else if (walker.c() === EOF || walker.c() === '/' || walker.c() === '?' || walker.c() === '#' ||
+ (isSpecial(url) && walker.c() === '\\') || stateOverride) {
+ /**
+ * 2. Otherwise, if one of the following is true
+ * - c is the EOF code point, U+002F (/), U+003F (?), or U+0023 (#)
+ * - url is special and c is U+005C (\)
+ * - state override is given
+ * then:
+ */
+ if (buffer !== "") {
+ /**
+ * 2.1. If buffer is not the empty string, then:
+ * 2.1.1. Let port be the mathematical integer value that is
+ * represented by buffer in radix-10 using ASCII digits for digits
+ * with values 0 through 9.
+ * 2.1.2. If port is greater than 2**16 − 1, validation error,
+ * return failure.
+ * 2.1.3. Set url’s port to null, if port is url’s scheme’s default
+ * port, and to port otherwise.
+ * 2.1.4. Set buffer to the empty string.
+ */
+ if (buffer !== "") {
+ var port = parseInt(buffer, 10);
+ if (port > Math.pow(2, 16) - 1) {
+ validationError("Invalid port number.");
+ return null;
+ }
+ url.port = (port === defaultPort(url.scheme) ? null : port);
+ buffer = "";
+ }
+ }
+ /**
+ * 2.2. If state override is given, then return.
+ * 2.3. Set state to path start state, and decrease pointer by one.
+ */
+ if (stateOverride !== undefined) {
+ return url;
+ }
+ state = interfaces_1.ParserState.PathStart;
+ walker.pointer--;
+ }
+ else {
+ /**
+ * 3. Otherwise, validation error, return failure.
+ */
+ validationError("Invalid input string.");
+ return null;
+ }
+ break;
+ case interfaces_1.ParserState.File:
+ /**
+ * 1. Set url’s scheme to "file".
+ */
+ url.scheme = "file";
+ if (walker.c() === '/' || walker.c() === '\\') {
+ /**
+ * 2. If c is U+002F (/) or U+005C (\), then:
+ * 2.1. If c is U+005C (\), validation error.
+ * 2.2. Set state to file slash state.
+ */
+ if (walker.c() === '\\') {
+ validationError("Invalid input string.");
+ }
+ state = interfaces_1.ParserState.FileSlash;
+ }
+ else if (baseURL !== null && baseURL.scheme === "file") {
+ /**
+ * 3. Otherwise, if base is non-null and base’s scheme is "file",
+ * switch on c:
+ */
+ switch (walker.c()) {
+ case EOF:
+ /**
+ * Set url’s host to base’s host, url’s path to a copy of base’s
+ * path, and url’s query to base’s query.
+ */
+ url.host = baseURL.host;
+ url.path = infra_1.list.clone(baseURL.path);
+ url.query = baseURL.query;
+ break;
+ case '?':
+ /**
+ * Set url’s host to base’s host, url’s path to a copy of base’s
+ * path, url’s query to the empty string, and state to query
+ * state.
+ */
+ url.host = baseURL.host;
+ url.path = infra_1.list.clone(baseURL.path);
+ url.query = "";
+ state = interfaces_1.ParserState.Query;
+ break;
+ case '#':
+ /**
+ * Set url’s host to base’s host, url’s path to a copy of base’s
+ * path, url’s query to base’s query, url’s fragment to the
+ * empty string, and state to fragment state.
+ */
+ url.host = baseURL.host;
+ url.path = infra_1.list.clone(baseURL.path);
+ url.query = baseURL.query;
+ url.fragment = "";
+ state = interfaces_1.ParserState.Fragment;
+ break;
+ default:
+ /**
+ * 1. If the substring from pointer in input does not start
+ * with a Windows drive letter, then set url’s host to base’s
+ * host, url’s path to a copy of base’s path, and then shorten
+ * url’s path.
+ * _Note:_ is a (platform-independent) Windows drive letter
+ * quirk.
+ * 2. Otherwise, validation error.
+ * 3. Set state to path state, and decrease pointer by one.
+ */
+ if (!startsWithAWindowsDriveLetter(walker.substring())) {
+ url.host = baseURL.host;
+ url.path = infra_1.list.clone(baseURL.path);
+ shorten(url);
+ }
+ else {
+ validationError("Unexpected windows drive letter in input string.");
+ }
+ state = interfaces_1.ParserState.Path;
+ walker.pointer--;
+ break;
+ }
+ }
+ else {
+ /**
+ * 4. Otherwise, set state to path state, and decrease pointer by
+ * one.
+ */
+ state = interfaces_1.ParserState.Path;
+ walker.pointer--;
+ }
+ break;
+ case interfaces_1.ParserState.FileSlash:
+ if (walker.c() === '/' || walker.c() === '\\') {
+ /**
+ * 1. If c is U+002F (/) or U+005C (\), then:
+ * 1.1. If c is U+005C (\), validation error.
+ * 1.2. Set state to file host state.
+ */
+ if (walker.c() === '\\') {
+ validationError("Invalid input string.");
+ }
+ state = interfaces_1.ParserState.FileHost;
+ }
+ else {
+ /**
+ * 2. Otherwise:
+ * 2.1. If base is non-null, base’s scheme is "file", and the
+ * substring from pointer in input does not start with a Windows
+ * drive letter, then:
+ * 2.1.1. If base’s path[0] is a normalized Windows drive letter,
+ * then append base’s path[0] to url’s path.
+ * _Note:_ is a (platform-independent) Windows drive letter
+ * quirk. Both url’s and base’s host are null under these conditions
+ * and therefore not copied.
+ * 2.1.2. Otherwise, set url’s host to base’s host.
+ * 2.2. Set state to path state, and decrease pointer by one.
+ */
+ if (baseURL !== null && baseURL.scheme === "file" &&
+ !startsWithAWindowsDriveLetter(walker.substring())) {
+ if (isNormalizedWindowsDriveLetter(baseURL.path[0])) {
+ url.path.push(baseURL.path[0]);
+ }
+ else {
+ url.host = baseURL.host;
+ }
+ }
+ state = interfaces_1.ParserState.Path;
+ walker.pointer--;
+ }
+ break;
+ case interfaces_1.ParserState.FileHost:
+ if (walker.c() === EOF || walker.c() === '/' || walker.c() === '\\' ||
+ walker.c() === '?' || walker.c() === '#') {
+ /**
+ * 1. If c is the EOF code point, U+002F (/), U+005C (\), U+003F (?),
+ * or U+0023 (#), then decrease pointer by one and then:
+ */
+ walker.pointer--;
+ if (stateOverride === undefined && isWindowsDriveLetter(buffer)) {
+ /**
+ * 1.1. If state override is not given and buffer is a Windows drive
+ * letter, validation error, set state to path state.
+ * _Note:_ is a (platform-independent) Windows drive letter
+ * quirk. buffer is not reset here and instead used in the path state.
+ */
+ validationError("Unexpected windows drive letter in input string.");
+ state = interfaces_1.ParserState.Path;
+ }
+ else if (buffer === "") {
+ /**
+ * 1.2. Otherwise, if buffer is the empty string, then:
+ * 1.2.1. Set url’s host to the empty string.
+ * 1.2.2. If state override is given, then return.
+ * 1.2.3. Set state to path start state.
+ */
+ url.host = "";
+ if (stateOverride !== undefined)
+ return url;
+ state = interfaces_1.ParserState.PathStart;
+ }
+ else {
+ /**
+ * 1.3. Otherwise, run these steps:
+ * 1.3.1. Let host be the result of host parsing buffer with url
+ * is not special.
+ * 1.3.2. If host is failure, then return failure.
+ * 1.3.3. If host is "localhost", then set host to the empty
+ * string.
+ * 1.3.4. Set url’s host to host.
+ * 1.3.5. If state override is given, then return.
+ * 1.3.6. Set buffer to the empty string and state to path start
+ * state.
+ */
+ var host = hostParser(buffer, !isSpecial(url));
+ if (host === null)
+ return null;
+ if (host === "localhost")
+ host = "";
+ url.host = host;
+ if (stateOverride !== undefined)
+ return url;
+ buffer = "";
+ state = interfaces_1.ParserState.PathStart;
+ }
+ }
+ else {
+ /**
+ * 2. Otherwise, append c to buffer.
+ */
+ buffer += walker.c();
+ }
+ break;
+ case interfaces_1.ParserState.PathStart:
+ if (isSpecial(url)) {
+ /**
+ * 1. If url is special, then:
+ * 1.1. If c is U+005C (\), validation error.
+ * 1.2. Set state to path state.
+ * 1.3. If c is neither U+002F (/) nor U+005C (\), then decrease
+ * pointer by one.
+ */
+ if (walker.c() === '\\') {
+ validationError("Invalid input string.");
+ }
+ state = interfaces_1.ParserState.Path;
+ if (walker.c() !== '/' && walker.c() !== '\\')
+ walker.pointer--;
+ }
+ else if (stateOverride === undefined && walker.c() === '?') {
+ /**
+ * 2. Otherwise, if state override is not given and c is U+003F (?),
+ * set url’s query to the empty string and state to query state.
+ */
+ url.query = "";
+ state = interfaces_1.ParserState.Query;
+ }
+ else if (stateOverride === undefined && walker.c() === '#') {
+ /**
+ * 3. Otherwise, if state override is not given and c is U+0023 (#),
+ * set url’s fragment to the empty string and state to fragment
+ * state.
+ */
+ url.fragment = "";
+ state = interfaces_1.ParserState.Fragment;
+ }
+ else if (walker.c() !== EOF) {
+ /**
+ * 4. Otherwise, if c is not the EOF code point:
+ * 4.1. Set state to path state.
+ * 4.2. If c is not U+002F (/), then decrease pointer by one.
+ */
+ state = interfaces_1.ParserState.Path;
+ if (walker.c() !== '/')
+ walker.pointer--;
+ }
+ break;
+ case interfaces_1.ParserState.Path:
+ if ((walker.c() === EOF || walker.c() === '/') ||
+ (isSpecial(url) && walker.c() === '\\') ||
+ (stateOverride === undefined && (walker.c() === '?' || walker.c() === '#'))) {
+ /**
+ * 1. If one of the following is true
+ * - c is the EOF code point or U+002F (/)
+ * - url is special and c is U+005C (\)
+ * - state override is not given and c is U+003F (?) or U+0023 (#)
+ * then:
+ */
+ if (isSpecial(url) && walker.c() === '\\') {
+ /**
+ * 1.1 If url is special and c is U+005C (\), validation error.
+ */
+ validationError("Invalid input string.");
+ }
+ if (isDoubleDotPathSegment(buffer)) {
+ /**
+ * 1.2. If buffer is a double-dot path segment, shorten url’s path,
+ * and then if neither c is U+002F (/), nor url is special and c is
+ * U+005C (\), append the empty string to url’s path.
+ */
+ shorten(url);
+ if (walker.c() !== '/' && !(isSpecial(url) && walker.c() === '\\')) {
+ url.path.push("");
+ }
+ }
+ else if (isSingleDotPathSegment(buffer) && walker.c() !== '/' &&
+ !(isSpecial(url) && walker.c() === '\\')) {
+ /**
+ * 1.3. Otherwise, if buffer is a single-dot path segment and if
+ * neither c is U+002F (/), nor url is special and c is U+005C (\),
+ * append the empty string to url’s path.
+ */
+ url.path.push("");
+ }
+ else if (!isSingleDotPathSegment(buffer)) {
+ /**
+ * 1.4. Otherwise, if buffer is not a single-dot path segment, then:
+ */
+ if (url.scheme === "file" && url.path.length === 0 &&
+ isWindowsDriveLetter(buffer)) {
+ /**
+ * 1.4.1. If url’s scheme is "file", url’s path is empty, and
+ * buffer is a Windows drive letter, then:
+ * 1.4.1.1. If url’s host is neither the empty string nor null,
+ * validation error, set url’s host to the empty string.
+ * 1.4.1.2. Replace the second code point in buffer with U+003A (:).
+ * _Note:_ is a (platform-independent) Windows drive letter quirk.
+ */
+ if (url.host !== null && url.host !== "") {
+ validationError("Invalid input string.");
+ url.host = "";
+ }
+ var bufferCodePoints = Array.from(buffer);
+ buffer = bufferCodePoints.slice(0, 1) + ':' + bufferCodePoints.slice(2);
+ }
+ /**
+ * 1.4.2. Append buffer to url’s path.
+ */
+ url.path.push(buffer);
+ }
+ /**
+ * 1.5. Set buffer to the empty string.
+ */
+ buffer = "";
+ /**
+ * 1.6. If url’s scheme is "file" and c is the EOF code point,
+ * U+003F (?), or U+0023 (#), then while url’s path’s size is
+ * greater than 1 and url’s path[0] is the empty string, validation
+ * error, remove the first item from url’s path.
+ */
+ if (url.scheme === "file" && (walker.c() === EOF || walker.c() === '?' || walker.c() === '#')) {
+ while (url.path.length > 1 && url.path[0] === "") {
+ validationError("Invalid input string.");
+ url.path.splice(0, 1);
+ }
+ }
+ /**
+ * 1.7. If c is U+003F (?), then set url’s query to the empty string
+ * and state to query state.
+ * 1.8. If c is U+0023 (#), then set url’s fragment to the empty
+ * string and state to fragment state.
+ */
+ if (walker.c() === '?') {
+ url.query = "";
+ state = interfaces_1.ParserState.Query;
+ }
+ if (walker.c() === '#') {
+ url.fragment = "";
+ state = interfaces_1.ParserState.Fragment;
+ }
+ }
+ else {
+ /**
+ * 2. Otherwise, run these steps:
+ * 2.1. If c is not a URL code point and not U+0025 (%), validation
+ * error.
+ * 2.2. If c is U+0025 (%) and remaining does not start with two
+ * ASCII hex digits, validation error.
+ * 2.3. UTF-8 percent encode c using the path percent-encode set,
+ * and append the result to buffer.
+ */
+ if (!_urlCodePoints.test(walker.c()) && walker.c() !== '%') {
+ validationError("Character is not a URL code point or a percent encoded character.");
+ }
+ if (walker.c() === '%' && !/^[0-9a-fA-F][0-9a-fA-F]/.test(walker.remaining())) {
+ validationError("Percent encoded character must be followed by two hex digits.");
+ }
+ buffer += utf8PercentEncode(walker.c(), _pathPercentEncodeSet);
+ }
+ break;
+ case interfaces_1.ParserState.CannotBeABaseURLPath:
+ /**
+ * 1. If c is U+003F (?), then set url’s query to the empty string and
+ * state to query state.
+ * 2. Otherwise, if c is U+0023 (#), then set url’s fragment to the
+ * empty string and state to fragment state.
+ * 3. Otherwise:
+ * 3.1. If c is not the EOF code point, not a URL code point, and not
+ * U+0025 (%), validation error.
+ * 3.2. If c is U+0025 (%) and remaining does not start with two ASCII
+ * hex digits, validation error.
+ * 3.3. If c is not the EOF code point, UTF-8 percent encode c using
+ * the C0 control percent-encode set, and append the result to url’s
+ * path[0].
+ */
+ if (walker.c() === '?') {
+ url.query = "";
+ state = interfaces_1.ParserState.Query;
+ }
+ else if (walker.c() === '#') {
+ url.fragment = "";
+ state = interfaces_1.ParserState.Fragment;
+ }
+ else {
+ if (walker.c() !== EOF && !_urlCodePoints.test(walker.c()) && walker.c() !== '%') {
+ validationError("Character is not a URL code point or a percent encoded character.");
+ }
+ if (walker.c() === '%' && !/^[0-9a-fA-F][0-9a-fA-F]/.test(walker.remaining())) {
+ validationError("Percent encoded character must be followed by two hex digits.");
+ }
+ if (walker.c() !== EOF) {
+ url.path[0] += utf8PercentEncode(walker.c(), _c0ControlPercentEncodeSet);
+ }
+ }
+ break;
+ case interfaces_1.ParserState.Query:
+ /**
+ * 1. If encoding is not UTF-8 and one of the following is true
+ * - url is not special
+ * - url’s scheme is "ws" or "wss"
+ * then set encoding to UTF-8.
+ */
+ if (encoding !== "UTF-8" && (!isSpecial(url) ||
+ url.scheme === "ws" || url.scheme === "wss")) {
+ encoding = "UTF-8";
+ }
+ if (stateOverride === undefined && walker.c() === '#') {
+ /**
+ * 2. If state override is not given and c is U+0023 (#), then set
+ * url’s fragment to the empty string and state to fragment state.
+ */
+ url.fragment = "";
+ state = interfaces_1.ParserState.Fragment;
+ }
+ else if (walker.c() !== EOF) {
+ /**
+ * 3. Otherwise, if c is not the EOF code point:
+ * 3.1. If c is not a URL code point and not U+0025 (%), validation
+ * error.
+ */
+ if (!_urlCodePoints.test(walker.c()) && walker.c() !== '%') {
+ validationError("Character is not a URL code point or a percent encoded character.");
+ }
+ /**
+ * 3.2. If c is U+0025 (%) and remaining does not start with two
+ * ASCII hex digits, validation error.
+ */
+ if (walker.c() === '%' && !/^[0-9a-fA-F][0-9a-fA-F]/.test(walker.remaining())) {
+ validationError("Percent encoded character must be followed by two hex digits.");
+ }
+ /**
+ * 3.3. Let bytes be the result of encoding c using encoding.
+ */
+ if (encoding.toUpperCase() !== "UTF-8") {
+ throw new Error("Only UTF-8 encoding is supported.");
+ }
+ var bytes = util_1.utf8Encode(walker.c());
+ /**
+ * 3.4. If bytes starts with `` and ends with 0x3B (;), then:
+ */
+ if (bytes.length >= 3 && bytes[0] === 38 && bytes[1] === 35 &&
+ bytes[bytes.length - 1] === 59) {
+ /**
+ * 3.4.1. Replace `` at the start of bytes with `%26%23`.
+ * 3.4.2. Replace 0x3B (;) at the end of bytes with `%3B`.
+ * 3.4.4. Append bytes, isomorphic decoded, to url’s query.
+ * _Note:_ can happen when encoding code points using a
+ * non-UTF-8 encoding.
+ */
+ bytes = bytes.subarray(2, bytes.length - 1);
+ url.query += "%26%23" + infra_1.byteSequence.isomorphicDecode(bytes) + "%3B";
+ }
+ else {
+ try {
+ /**
+ * 3.5. Otherwise, for each byte in bytes:
+ * 3.5.1. If one of the following is true
+ * - byte is less than 0x21 (!)
+ * - byte is greater than 0x7E (~)
+ * - byte is 0x22 ("), 0x23 (#), 0x3C (<), or 0x3E (>)
+ * - byte is 0x27 (') and url is special
+ * then append byte, percent encoded, to url’s query.
+ * 3.5.2. Otherwise, append a code point whose value is byte to
+ * url’s query.
+ */
+ for (var bytes_1 = (e_3 = void 0, __values(bytes)), bytes_1_1 = bytes_1.next(); !bytes_1_1.done; bytes_1_1 = bytes_1.next()) {
+ var byte = bytes_1_1.value;
+ if (byte < 0x21 || byte > 0x7E || byte === 0x22 ||
+ byte === 0x23 || byte === 0x3C || byte === 0x3E ||
+ (byte === 0x27 && isSpecial(url))) {
+ url.query += percentEncode(byte);
+ }
+ else {
+ url.query += String.fromCharCode(byte);
+ }
+ }
+ }
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
+ finally {
+ try {
+ if (bytes_1_1 && !bytes_1_1.done && (_b = bytes_1.return)) _b.call(bytes_1);
+ }
+ finally { if (e_3) throw e_3.error; }
+ }
+ }
+ }
+ break;
+ case interfaces_1.ParserState.Fragment:
+ /**
+ * Switching on c:
+ * - The EOF code point
+ * Do nothing.
+ * - U+0000 NULL
+ * Validation error.
+ * - Otherwise
+ * 1. If c is not a URL code point and not U+0025 (%), validation
+ * error.
+ * 2. If c is U+0025 (%) and remaining does not start with two ASCII
+ * hex digits, validation error.
+ * 3. UTF-8 percent encode c using the fragment percent-encode set and
+ * append the result to url’s fragment.
+ */
+ if (walker.c() === EOF) {
+ //
+ }
+ else if (walker.c() === "\u0000") {
+ validationError("NULL character in input string.");
+ }
+ else {
+ if (!_urlCodePoints.test(walker.c()) && walker.c() !== '%') {
+ validationError("Unexpected character in fragment string.");
+ }
+ if (walker.c() === '%' && !/^[A-Za-z0-9][A-Za-z0-9]/.test(walker.remaining())) {
+ validationError("Unexpected character in fragment string.");
+ }
+ url.fragment += utf8PercentEncode(walker.c(), _fragmentPercentEncodeSet);
+ }
+ break;
+ }
+ if (walker.eof)
+ break;
+ else
+ walker.pointer++;
+ }
+ /**
+ * 12. Return url.
+ */
+ return url;
+}
+exports.basicURLParser = basicURLParser;
+/**
+ * Sets a URL's username.
+ *
+ * @param url - a URL
+ * @param username - username string
+ */
+function setTheUsername(url, username) {
+ var e_4, _a;
+ /**
+ * 1. Set url’s username to the empty string.
+ * 2. For each code point in username, UTF-8 percent encode it using the
+ * userinfo percent-encode set, and append the result to url’s username.
+ */
+ var result = "";
+ try {
+ for (var username_1 = __values(username), username_1_1 = username_1.next(); !username_1_1.done; username_1_1 = username_1.next()) {
+ var codePoint = username_1_1.value;
+ result += utf8PercentEncode(codePoint, _userInfoPercentEncodeSet);
+ }
+ }
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
+ finally {
+ try {
+ if (username_1_1 && !username_1_1.done && (_a = username_1.return)) _a.call(username_1);
+ }
+ finally { if (e_4) throw e_4.error; }
+ }
+ url.username = result;
+}
+exports.setTheUsername = setTheUsername;
+/**
+ * Sets a URL's password.
+ *
+ * @param url - a URL
+ * @param username - password string
+ */
+function setThePassword(url, password) {
+ var e_5, _a;
+ /**
+ * 1. Set url’s password to the empty string.
+ * 2. For each code point in password, UTF-8 percent encode it using the
+ * userinfo percent-encode set, and append the result to url’s password.
+ */
+ var result = "";
+ try {
+ for (var password_1 = __values(password), password_1_1 = password_1.next(); !password_1_1.done; password_1_1 = password_1.next()) {
+ var codePoint = password_1_1.value;
+ result += utf8PercentEncode(codePoint, _userInfoPercentEncodeSet);
+ }
+ }
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
+ finally {
+ try {
+ if (password_1_1 && !password_1_1.done && (_a = password_1.return)) _a.call(password_1);
+ }
+ finally { if (e_5) throw e_5.error; }
+ }
+ url.password = result;
+}
+exports.setThePassword = setThePassword;
+/**
+ * Determines if the string represents a single dot path.
+ *
+ * @param str - a string
+ */
+function isSingleDotPathSegment(str) {
+ return str === '.' || str.toLowerCase() === "%2e";
+}
+exports.isSingleDotPathSegment = isSingleDotPathSegment;
+/**
+ * Determines if the string represents a double dot path.
+ *
+ * @param str - a string
+ */
+function isDoubleDotPathSegment(str) {
+ var lowerStr = str.toLowerCase();
+ return lowerStr === ".." || lowerStr === ".%2e" ||
+ lowerStr === "%2e." || lowerStr === "%2e%2e";
+}
+exports.isDoubleDotPathSegment = isDoubleDotPathSegment;
+/**
+ * Shorten's URL's path.
+ *
+ * @param url - an URL
+ */
+function shorten(url) {
+ /**
+ * 1. Let path be url’s path.
+ * 2. If path is empty, then return.
+ * 3. If url’s scheme is "file", path’s size is 1, and path[0] is a
+ * normalized Windows drive letter, then return.
+ * 4. Remove path’s last item.
+ */
+ var path = url.path;
+ if (path.length === 0)
+ return;
+ if (url.scheme === "file" && path.length === 1 &&
+ isNormalizedWindowsDriveLetter(path[0]))
+ return;
+ url.path.splice(url.path.length - 1, 1);
+}
+exports.shorten = shorten;
+/**
+ * Determines if a string is a normalized Windows drive letter.
+ *
+ * @param str - a string
+ */
+function isNormalizedWindowsDriveLetter(str) {
+ /**
+ * A normalized Windows drive letter is a Windows drive letter of which the
+ * second code point is U+003A (:).
+ */
+ return str.length >= 2 && infra_1.codePoint.ASCIIAlpha.test(str[0]) &&
+ str[1] === ':';
+}
+exports.isNormalizedWindowsDriveLetter = isNormalizedWindowsDriveLetter;
+/**
+ * Determines if a string is a Windows drive letter.
+ *
+ * @param str - a string
+ */
+function isWindowsDriveLetter(str) {
+ /**
+ * A Windows drive letter is two code points, of which the first is an ASCII
+ * alpha and the second is either U+003A (:) or U+007C (|).
+ */
+ return str.length >= 2 && infra_1.codePoint.ASCIIAlpha.test(str[0]) &&
+ (str[1] === ':' || str[1] === '|');
+}
+exports.isWindowsDriveLetter = isWindowsDriveLetter;
+/**
+ * Determines if a string starts with a Windows drive letter.
+ *
+ * @param str - a string
+ */
+function startsWithAWindowsDriveLetter(str) {
+ /**
+ * A string starts with a Windows drive letter if all of the following are
+ * true:
+ * - its length is greater than or equal to 2
+ * - its first two code points are a Windows drive letter
+ * - its length is 2 or its third code point is U+002F (/), U+005C (\),
+ * U+003F (?), or U+0023 (#).
+ */
+ return str.length >= 2 && isWindowsDriveLetter(str) &&
+ (str.length === 2 || (str[2] === '/' || str[2] === '\\' ||
+ str[2] === '?' || str[2] === '#'));
+}
+exports.startsWithAWindowsDriveLetter = startsWithAWindowsDriveLetter;
+/**
+ * Parses a host string.
+ *
+ * @param input - input string
+ * @param isNotSpecial - `true` if the source URL is not special; otherwise
+ * `false`.
+ */
+function hostParser(input, isNotSpecial) {
+ if (isNotSpecial === void 0) { isNotSpecial = false; }
+ /**
+ * 1. If isNotSpecial is not given, then set isNotSpecial to false.
+ * 2. If input starts with U+005B ([), then:
+ * 2.1. If input does not end with U+005D (]), validation error, return
+ * failure.
+ * 2.2. Return the result of IPv6 parsing input with its leading U+005B ([)
+ * and trailing U+005D (]) removed.
+ */
+ if (input.startsWith('[')) {
+ if (!input.endsWith(']')) {
+ validationError("Expected ']' after '['.");
+ return null;
+ }
+ return iPv6Parser(input.substring(1, input.length - 1));
+ }
+ /**
+ * 3. If isNotSpecial is true, then return the result of opaque-host parsing
+ * input.
+ */
+ if (isNotSpecial) {
+ return opaqueHostParser(input);
+ }
+ /**
+ * 4. Let domain be the result of running UTF-8 decode without BOM on the
+ * string percent decoding of input.
+ * _Note:_ Alternatively UTF-8 decode without BOM or fail can be used,
+ * coupled with an early return for failure, as domain to ASCII fails
+ * on U+FFFD REPLACEMENT CHARACTER.
+ */
+ var domain = util_1.utf8Decode(stringPercentDecode(input));
+ /**
+ * 5. Let asciiDomain be the result of running domain to ASCII on domain.
+ * 6. If asciiDomain is failure, validation error, return failure.
+ * 7. If asciiDomain contains a forbidden host code point, validation error,
+ * return failure.
+ */
+ var asciiDomain = domainToASCII(domain);
+ if (asciiDomain === null) {
+ validationError("Invalid domain.");
+ return null;
+ }
+ if (_forbiddenHostCodePoint.test(asciiDomain)) {
+ validationError("Invalid domain.");
+ return null;
+ }
+ /**
+ * 8. Let ipv4Host be the result of IPv4 parsing asciiDomain.
+ * 9. If ipv4Host is an IPv4 address or failure, return ipv4Host.
+ * 10. Return asciiDomain.
+ */
+ var ipv4Host = iPv4Parser(asciiDomain);
+ if (ipv4Host === null || util_1.isNumber(ipv4Host))
+ return ipv4Host;
+ return asciiDomain;
+}
+exports.hostParser = hostParser;
+/**
+ * Parses a string containing an IP v4 address.
+ *
+ * @param input - input string
+ * @param isNotSpecial - `true` if the source URL is not special; otherwise
+ * `false`.
+ */
+function iPv4NumberParser(input, validationErrorFlag) {
+ if (validationErrorFlag === void 0) { validationErrorFlag = { value: false }; }
+ /**
+ * 1. Let R be 10.
+ */
+ var R = 10;
+ if (input.startsWith("0x") || input.startsWith("0X")) {
+ /**
+ * 2. If input contains at least two code points and the first two code
+ * points are either "0x" or "0X", then:
+ * 2.1. Set validationErrorFlag.
+ * 2.2. Remove the first two code points from input.
+ * 2.3. Set R to 16.
+ */
+ validationErrorFlag.value = true;
+ input = input.substr(2);
+ R = 16;
+ }
+ else if (input.length >= 2 && input[0] === '0') {
+ /**
+ * 3. Otherwise, if input contains at least two code points and the first
+ * code point is U+0030 (0), then:
+ * 3.1. Set validationErrorFlag.
+ * 3.2. Remove the first code point from input.
+ * 3.3. Set R to 8.
+ */
+ validationErrorFlag.value = true;
+ input = input.substr(1);
+ R = 8;
+ }
+ /**
+ * 4. If input is the empty string, then return zero.
+ * 5. If input contains a code point that is not a radix-R digit, then
+ * return failure.
+ */
+ if (input === "")
+ return 0;
+ var radixRDigits = (R === 10 ? /^[0-9]+$/ : (R === 16 ? /^[0-9A-Fa-f]+$/ : /^[0-7]+$/));
+ if (!radixRDigits.test(input))
+ return null;
+ /**
+ * 6. Return the mathematical integer value that is represented by input in
+ * radix-R notation, using ASCII hex digits for digits with values
+ * 0 through 15.
+ */
+ return parseInt(input, R);
+}
+exports.iPv4NumberParser = iPv4NumberParser;
+/**
+ * Parses a string containing an IP v4 address.
+ *
+ * @param input - input string
+ */
+function iPv4Parser(input) {
+ var e_6, _a, e_7, _b;
+ /**
+ * 1. Let validationErrorFlag be unset.
+ * 2. Let parts be input split on U+002E (.).
+ */
+ var validationErrorFlag = { value: false };
+ var parts = input.split('.');
+ /**
+ * 3. If the last item in parts is the empty string, then:
+ * 3.1. Set validationErrorFlag.
+ * 3.2. If parts has more than one item, then remove the last item from
+ * parts.
+ */
+ if (parts[parts.length - 1] === "") {
+ validationErrorFlag.value = true;
+ if (parts.length > 1)
+ parts.pop();
+ }
+ /**
+ * 4. If parts has more than four items, return input.
+ */
+ if (parts.length > 4)
+ return input;
+ /**
+ * 5. Let numbers be the empty list.
+ * 6. For each part in parts:
+ * 6.1. If part is the empty string, return input.
+ * 6.2. Let n be the result of parsing part using validationErrorFlag.
+ * 6.3. If n is failure, return input.
+ * 6.4. Append n to numbers.
+ */
+ var numbers = [];
+ try {
+ for (var parts_1 = __values(parts), parts_1_1 = parts_1.next(); !parts_1_1.done; parts_1_1 = parts_1.next()) {
+ var part = parts_1_1.value;
+ if (part === "")
+ return input;
+ var n = iPv4NumberParser(part, validationErrorFlag);
+ if (n === null)
+ return input;
+ numbers.push(n);
+ }
+ }
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
+ finally {
+ try {
+ if (parts_1_1 && !parts_1_1.done && (_a = parts_1.return)) _a.call(parts_1);
+ }
+ finally { if (e_6) throw e_6.error; }
+ }
+ /**
+ * 7. If validationErrorFlag is set, validation error.
+ * 8. If any item in numbers is greater than 255, validation error.
+ * 9. If any but the last item in numbers is greater than 255, return
+ * failure.
+ * 10. If the last item in numbers is greater than or equal to
+ * 256**(5 − the number of items in numbers), validation error, return failure.
+ */
+ if (validationErrorFlag.value)
+ validationError("Invalid IP v4 address.");
+ for (var i = 0; i < numbers.length; i++) {
+ var item = numbers[i];
+ if (item > 255) {
+ validationError("Invalid IP v4 address.");
+ if (i < numbers.length - 1)
+ return null;
+ }
+ }
+ if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {
+ validationError("Invalid IP v4 address.");
+ return null;
+ }
+ /**
+ * 11. Let ipv4 be the last item in numbers.
+ * 12. Remove the last item from numbers.
+ */
+ var ipv4 = numbers[numbers.length - 1];
+ numbers.pop();
+ /**
+ * 13. Let counter be zero.
+ * 14. For each n in numbers:
+ * 14.2. Increment ipv4 by n × 256**(3 − counter).
+ * 14.2. Increment counter by 1.
+ */
+ var counter = 0;
+ try {
+ for (var numbers_1 = __values(numbers), numbers_1_1 = numbers_1.next(); !numbers_1_1.done; numbers_1_1 = numbers_1.next()) {
+ var n = numbers_1_1.value;
+ ipv4 += n * Math.pow(256, 3 - counter);
+ counter++;
+ }
+ }
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
+ finally {
+ try {
+ if (numbers_1_1 && !numbers_1_1.done && (_b = numbers_1.return)) _b.call(numbers_1);
+ }
+ finally { if (e_7) throw e_7.error; }
+ }
+ /**
+ * 15. Return ipv4.
+ */
+ return ipv4;
+}
+exports.iPv4Parser = iPv4Parser;
+/**
+ * Parses a string containing an IP v6 address.
+ *
+ * @param input - input string
+ */
+function iPv6Parser(input) {
+ var _a;
+ /**
+ * 1. Let address be a new IPv6 address whose IPv6 pieces are all 0.
+ * 2. Let pieceIndex be 0.
+ * 3. Let compress be null.
+ * 4. Let pointer be a pointer into input, initially 0 (pointing to the
+ * first code point).
+ */
+ var EOF = "";
+ var address = [0, 0, 0, 0, 0, 0, 0, 0];
+ var pieceIndex = 0;
+ var compress = null;
+ var walker = new util_1.StringWalker(input);
+ /**
+ * 5. If c is U+003A (:), then:
+ * 5.1. If remaining does not start with U+003A (:), validation error,
+ * return failure.
+ * 5.2. Increase pointer by 2.
+ * 5.3. Increase pieceIndex by 1 and then set compress to pieceIndex.
+ */
+ if (walker.c() === ':') {
+ if (!walker.remaining().startsWith(':')) {
+ validationError("Invalid IP v6 address.");
+ return null;
+ }
+ walker.pointer += 2;
+ pieceIndex += 1;
+ compress = pieceIndex;
+ }
+ /**
+ * 6. While c is not the EOF code point:
+ */
+ while (walker.c() !== EOF) {
+ /**
+ * 6.1. If pieceIndex is 8, validation error, return failure.
+ */
+ if (pieceIndex === 8) {
+ validationError("Invalid IP v6 address.");
+ return null;
+ }
+ /**
+ * 6.2. If c is U+003A (:), then:
+ * 6.2.1. If compress is non-null, validation error, return failure.
+ * 6.2.2. Increase pointer and pieceIndex by 1, set compress to pieceIndex,
+ * and then continue.
+ */
+ if (walker.c() === ':') {
+ if (compress !== null) {
+ validationError("Invalid IP v6 address.");
+ return null;
+ }
+ walker.pointer++;
+ pieceIndex++;
+ compress = pieceIndex;
+ continue;
+ }
+ /**
+ * 6.3. Let value and length be 0.
+ * 6.4. While length is less than 4 and c is an ASCII hex digit, set value
+ * to value × 0x10 + c interpreted as hexadecimal number, and increase
+ * pointer and length by 1.
+ */
+ var value = 0;
+ var length = 0;
+ while (length < 4 && infra_1.codePoint.ASCIIHexDigit.test(walker.c())) {
+ value = value * 0x10 + parseInt(walker.c(), 16);
+ walker.pointer++;
+ length++;
+ }
+ /**
+ * 6.5. If c is U+002E (.), then:
+ */
+ if (walker.c() === '.') {
+ /**
+ * 6.5.1. If length is 0, validation error, return failure.
+ * 6.5.2. Decrease pointer by length.
+ * 6.5.3. If pieceIndex is greater than 6, validation error, return
+ * failure.
+ * 6.5.4. Let numbersSeen be 0.
+ */
+ if (length === 0) {
+ validationError("Invalid IP v6 address.");
+ return null;
+ }
+ walker.pointer -= length;
+ if (pieceIndex > 6) {
+ validationError("Invalid IP v6 address.");
+ return null;
+ }
+ var numbersSeen = 0;
+ /**
+ * 6.5.5. While c is not the EOF code point:
+ */
+ while (walker.c() !== EOF) {
+ /**
+ * 6.5.5.1. Let ipv4Piece be null.
+ */
+ var ipv4Piece = null;
+ /**
+ * 6.5.5.2. If numbersSeen is greater than 0, then:
+ * 6.5.5.2.1. If c is a U+002E (.) and numbersSeen is less than 4, then
+ * increase pointer by 1.
+ * 6.5.5.2.1. Otherwise, validation error, return failure.
+ */
+ if (numbersSeen > 0) {
+ if (walker.c() === '.' && numbersSeen < 4) {
+ walker.pointer++;
+ }
+ else {
+ validationError("Invalid IP v6 address.");
+ return null;
+ }
+ }
+ /**
+ * 6.5.5.3. If c is not an ASCII digit, validation error, return
+ * failure.
+ */
+ if (!infra_1.codePoint.ASCIIDigit.test(walker.c())) {
+ validationError("Invalid IP v6 address.");
+ return null;
+ }
+ /**
+ * 6.5.5.4. While c is an ASCII digit:
+ */
+ while (infra_1.codePoint.ASCIIDigit.test(walker.c())) {
+ /**
+ * 6.5.5.4.1. Let number be c interpreted as decimal number.
+ */
+ var number = parseInt(walker.c(), 10);
+ /**
+ * 6.5.5.4.2. If ipv4Piece is null, then set ipv4Piece to number.
+ * Otherwise, if ipv4Piece is 0, validation error, return failure.
+ * Otherwise, set ipv4Piece to ipv4Piece × 10 + number.
+ */
+ if (ipv4Piece === null) {
+ ipv4Piece = number;
+ }
+ else if (ipv4Piece === 0) {
+ validationError("Invalid IP v6 address.");
+ return null;
+ }
+ else {
+ ipv4Piece = ipv4Piece * 10 + number;
+ }
+ /**
+ * 6.5.5.4.3. If ipv4Piece is greater than 255, validation error, return failure.
+ * 6.5.5.4.4. Increase pointer by 1.
+ */
+ if (ipv4Piece > 255) {
+ validationError("Invalid IP v6 address.");
+ return null;
+ }
+ walker.pointer++;
+ }
+ /**
+ * 6.5.5.5. Set address[pieceIndex] to address[pieceIndex] × 0x100 + ipv4Piece.
+ * 6.5.5.6. Increase numbersSeen by 1.
+ * 6.5.5.7. If numbersSeen is 2 or 4, then increase pieceIndex by 1.
+ */
+ if (ipv4Piece === null) {
+ validationError("Invalid IP v6 address.");
+ return null;
+ }
+ address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;
+ numbersSeen++;
+ if (numbersSeen === 2 || numbersSeen === 4)
+ pieceIndex++;
+ }
+ /**
+ * 6.5.6. If numbersSeen is not 4, validation error, return failure.
+ */
+ if (numbersSeen !== 4) {
+ validationError("Invalid IP v6 address.");
+ return null;
+ }
+ /**
+ * 6.5.7. Break.
+ */
+ break;
+ }
+ else if (walker.c() === ':') {
+ /**
+ * 6.6. Otherwise, if c is U+003A (:):
+ * 6.6.1. Increase pointer by 1.
+ * 6.6.2. If c is the EOF code point, validation error, return failure.
+ */
+ walker.pointer++;
+ if (walker.c() === EOF) {
+ validationError("Invalid IP v6 address.");
+ return null;
+ }
+ }
+ else if (walker.c() !== EOF) {
+ /**
+ * 6.7. Otherwise, if c is not the EOF code point, validation error,
+ * return failure.
+ */
+ validationError("Invalid IP v6 address.");
+ return null;
+ }
+ /**
+ * 6.8. Set address[pieceIndex] to value.
+ * 6.9. Increase pieceIndex by 1.
+ */
+ address[pieceIndex] = value;
+ pieceIndex++;
+ }
+ /**
+ * 7. If compress is non-null, then:
+ * 7.1. Let swaps be pieceIndex − compress.
+ * 7.2. Set pieceIndex to 7.
+ * 7.3. While pieceIndex is not 0 and swaps is greater than 0, swap
+ * address[pieceIndex] with address[compress + swaps − 1], and then decrease
+ * both pieceIndex and swaps by 1.
+ */
+ if (compress !== null) {
+ var swaps = pieceIndex - compress;
+ pieceIndex = 7;
+ while (pieceIndex !== 0 && swaps > 0) {
+ _a = __read([address[compress + swaps - 1], address[pieceIndex]], 2), address[pieceIndex] = _a[0], address[compress + swaps - 1] = _a[1];
+ pieceIndex--;
+ swaps--;
+ }
+ }
+ else if (compress === null && pieceIndex !== 8) {
+ /**
+ * 8. Otherwise, if compress is null and pieceIndex is not 8,
+ * validation error, return failure.
+ */
+ validationError("Invalid IP v6 address.");
+ return null;
+ }
+ /**
+ * 9. Return address.
+ */
+ return address;
+}
+exports.iPv6Parser = iPv6Parser;
+/**
+ * Parses an opaque host string.
+ *
+ * @param input - a string
+ */
+function opaqueHostParser(input) {
+ var e_8, _a;
+ /**
+ * 1. If input contains a forbidden host code point excluding U+0025 (%),
+ * validation error, return failure.
+ * 2. Let output be the empty string.
+ * 3. For each code point in input, UTF-8 percent encode it using the C0
+ * control percent-encode set, and append the result to output.
+ * 4. Return output.
+ */
+ var forbiddenChars = /[\x00\t\f\r #/:?@\[\\\]]/;
+ if (forbiddenChars.test(input)) {
+ validationError("Invalid host string.");
+ return null;
+ }
+ var output = "";
+ try {
+ for (var input_1 = __values(input), input_1_1 = input_1.next(); !input_1_1.done; input_1_1 = input_1.next()) {
+ var codePoint = input_1_1.value;
+ output += utf8PercentEncode(codePoint, _c0ControlPercentEncodeSet);
+ }
+ }
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
+ finally {
+ try {
+ if (input_1_1 && !input_1_1.done && (_a = input_1.return)) _a.call(input_1);
+ }
+ finally { if (e_8) throw e_8.error; }
+ }
+ return output;
+}
+exports.opaqueHostParser = opaqueHostParser;
+/**
+ * Resolves a Blob URL from the user agent's Blob URL store.
+ * function is not implemented.
+ * See: https://w3c.github.io/FileAPI/#blob-url-resolve
+ *
+ * @param url - an url
+ */
+function resolveABlobURL(url) {
+ return null;
+}
+exports.resolveABlobURL = resolveABlobURL;
+/**
+ * Percent encodes a byte.
+ *
+ * @param value - a byte
+ */
+function percentEncode(value) {
+ /**
+ * To percent encode a byte into a percent-encoded byte, return a string
+ * consisting of U+0025 (%), followed by two ASCII upper hex digits
+ * representing byte.
+ */
+ return '%' + ('00' + value.toString(16).toUpperCase()).slice(-2);
+}
+exports.percentEncode = percentEncode;
+/**
+ * Percent decodes a byte sequence input.
+ *
+ * @param input - a byte sequence
+ */
+function percentDecode(input) {
+ var isHexDigit = function (byte) {
+ return (byte >= 0x30 && byte <= 0x39) || (byte >= 0x41 && byte <= 0x46) ||
+ (byte >= 0x61 && byte <= 0x66);
+ };
+ /**
+ * 1. Let output be an empty byte sequence.
+ * 2. For each byte byte in input:
+ */
+ var output = new Uint8Array(input.length);
+ var n = 0;
+ for (var i = 0; i < input.length; i++) {
+ var byte = input[i];
+ /**
+ * 2.1. If byte is not 0x25 (%), then append byte to output.
+ * 2.2. Otherwise, if byte is 0x25 (%) and the next two bytes after byte
+ * in input are not in the ranges 0x30 (0) to 0x39 (9), 0x41 (A)
+ * to 0x46 (F), and 0x61 (a) to 0x66 (f), all inclusive, append byte
+ * to output.
+ * 2.3. Otherwise:
+ * 2.3.1. Let bytePoint be the two bytes after byte in input, decoded,
+ * and then interpreted as hexadecimal number.
+ * 2.3.2. Append a byte whose value is bytePoint to output.
+ * 2.3.3. Skip the next two bytes in input.
+ */
+ if (byte !== 0x25) {
+ output[n] = byte;
+ n++;
+ }
+ else if (byte === 0x25 && i >= input.length - 2) {
+ output[n] = byte;
+ n++;
+ }
+ else if (byte === 0x25 && (!isHexDigit(input[i + 1]) || !isHexDigit(input[i + 2]))) {
+ output[n] = byte;
+ n++;
+ }
+ else {
+ var bytePoint = parseInt(util_1.utf8Decode(Uint8Array.of(input[i + 1], input[i + 2])), 16);
+ output[n] = bytePoint;
+ n++;
+ i += 2;
+ }
+ }
+ return output.subarray(0, n);
+}
+exports.percentDecode = percentDecode;
+/**
+ * String percent decodes a string.
+ *
+ * @param input - a string
+ */
+function stringPercentDecode(input) {
+ /**
+ * 1. Let bytes be the UTF-8 encoding of input.
+ * 2. Return the percent decoding of bytes.
+ */
+ return percentDecode(util_1.utf8Encode(input));
+}
+exports.stringPercentDecode = stringPercentDecode;
+/**
+ * UTF-8 percent encodes a code point, using a percent encode set.
+ *
+ * @param codePoint - a code point
+ * @param percentEncodeSet - a percent encode set
+ */
+function utf8PercentEncode(codePoint, percentEncodeSet) {
+ var e_9, _a;
+ /**
+ * 1. If codePoint is not in percentEncodeSet, then return codePoint.
+ * 2. Let bytes be the result of running UTF-8 encode on codePoint.
+ * 3. Percent encode each byte in bytes, and then return the results
+ * concatenated, in the same order.
+ */
+ if (!percentEncodeSet.test(codePoint))
+ return codePoint;
+ var bytes = util_1.utf8Encode(codePoint);
+ var result = "";
+ try {
+ for (var bytes_2 = __values(bytes), bytes_2_1 = bytes_2.next(); !bytes_2_1.done; bytes_2_1 = bytes_2.next()) {
+ var byte = bytes_2_1.value;
+ result += percentEncode(byte);
+ }
+ }
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
+ finally {
+ try {
+ if (bytes_2_1 && !bytes_2_1.done && (_a = bytes_2.return)) _a.call(bytes_2);
+ }
+ finally { if (e_9) throw e_9.error; }
+ }
+ return result;
+}
+exports.utf8PercentEncode = utf8PercentEncode;
+/**
+ * Determines if two hosts are considered equal.
+ *
+ * @param hostA - a host
+ * @param hostB - a host
+ */
+function hostEquals(hostA, hostB) {
+ return hostA === hostB;
+}
+exports.hostEquals = hostEquals;
+/**
+ * Determines if two URLs are considered equal.
+ *
+ * @param urlA - a URL
+ * @param urlB - a URL
+ * @param excludeFragmentsFlag - whether to ignore fragments while comparing
+ */
+function urlEquals(urlA, urlB, excludeFragmentsFlag) {
+ if (excludeFragmentsFlag === void 0) { excludeFragmentsFlag = false; }
+ /**
+ * 1. Let serializedA be the result of serializing A, with the exclude
+ * fragment flag set if the exclude fragments flag is set.
+ * 2. Let serializedB be the result of serializing B, with the exclude
+ * fragment flag set if the exclude fragments flag is set.
+ * 3. Return true if serializedA is serializedB, and false otherwise.
+ */
+ return urlSerializer(urlA, excludeFragmentsFlag) ===
+ urlSerializer(urlB, excludeFragmentsFlag);
+}
+exports.urlEquals = urlEquals;
+/**
+ * Parses an `application/x-www-form-urlencoded` string.
+ *
+ * @param input - a string
+ */
+function urlEncodedStringParser(input) {
+ /**
+ * The application/x-www-form-urlencoded string parser takes a string input,
+ * UTF-8 encodes it, and then returns the result of
+ * application/x-www-form-urlencoded parsing it.
+ */
+ return urlEncodedParser(util_1.utf8Encode(input));
+}
+exports.urlEncodedStringParser = urlEncodedStringParser;
+/**
+ * Parses `application/x-www-form-urlencoded` bytes.
+ *
+ * @param input - a byte sequence
+ */
+function urlEncodedParser(input) {
+ var e_10, _a, e_11, _b;
+ /**
+ * 1. Let sequences be the result of splitting input on 0x26 (&).
+ */
+ var sequences = [];
+ var currentSequence = [];
+ try {
+ for (var input_2 = __values(input), input_2_1 = input_2.next(); !input_2_1.done; input_2_1 = input_2.next()) {
+ var byte = input_2_1.value;
+ if (byte === 0x26) {
+ sequences.push(Uint8Array.from(currentSequence));
+ currentSequence = [];
+ }
+ else {
+ currentSequence.push(byte);
+ }
+ }
+ }
+ catch (e_10_1) { e_10 = { error: e_10_1 }; }
+ finally {
+ try {
+ if (input_2_1 && !input_2_1.done && (_a = input_2.return)) _a.call(input_2);
+ }
+ finally { if (e_10) throw e_10.error; }
+ }
+ if (currentSequence.length !== 0) {
+ sequences.push(Uint8Array.from(currentSequence));
+ }
+ /**
+ * 2. Let output be an initially empty list of name-value tuples where both name and value hold a string.
+ */
+ var output = [];
+ try {
+ /**
+ * 3. For each byte sequence bytes in sequences:
+ */
+ for (var sequences_1 = __values(sequences), sequences_1_1 = sequences_1.next(); !sequences_1_1.done; sequences_1_1 = sequences_1.next()) {
+ var bytes = sequences_1_1.value;
+ /**
+ * 3.1. If bytes is the empty byte sequence, then continue.
+ */
+ if (bytes.length === 0)
+ continue;
+ /**
+ * 3.2. If bytes contains a 0x3D (=), then let name be the bytes from the
+ * start of bytes up to but excluding its first 0x3D (=), and let value be
+ * the bytes, if any, after the first 0x3D (=) up to the end of bytes.
+ * If 0x3D (=) is the first byte, then name will be the empty byte
+ * sequence. If it is the last, then value will be the empty byte sequence.
+ * 3.3. Otherwise, let name have the value of bytes and let value be the
+ * empty byte sequence.
+ */
+ var index = bytes.indexOf(0x3D);
+ var name = (index !== -1 ? bytes.slice(0, index) : bytes);
+ var value = (index !== -1 ? bytes.slice(index + 1) : new Uint8Array());
+ /**
+ * 3.4. Replace any 0x2B (+) in name and value with 0x20 (SP).
+ */
+ for (var i = 0; i < name.length; i++)
+ if (name[i] === 0x2B)
+ name[i] = 0x20;
+ for (var i = 0; i < value.length; i++)
+ if (value[i] === 0x2B)
+ value[i] = 0x20;
+ /**
+ * 3.5. Let nameString and valueString be the result of running UTF-8
+ * decode without BOM on the percent decoding of name and value,
+ * respectively.
+ */
+ var nameString = util_1.utf8Decode(name);
+ var valueString = util_1.utf8Decode(value);
+ /**
+ * 3.6. Append (nameString, valueString) to output.
+ */
+ output.push([nameString, valueString]);
+ }
+ }
+ catch (e_11_1) { e_11 = { error: e_11_1 }; }
+ finally {
+ try {
+ if (sequences_1_1 && !sequences_1_1.done && (_b = sequences_1.return)) _b.call(sequences_1);
+ }
+ finally { if (e_11) throw e_11.error; }
+ }
+ /**
+ * 4. Return output.
+ */
+ return output;
+}
+exports.urlEncodedParser = urlEncodedParser;
+/**
+ * Serializes `application/x-www-form-urlencoded` bytes.
+ *
+ * @param input - a byte sequence
+ */
+function urlEncodedByteSerializer(input) {
+ var e_12, _a;
+ /**
+ * 1. Let output be the empty string.
+ * 2. For each byte in input, depending on byte:
+ * 0x20 (SP)
+ * Append U+002B (+) to output.
+ *
+ * 0x2A (*)
+ * 0x2D (-)
+ * 0x2E (.)
+ * 0x30 (0) to 0x39 (9)
+ * 0x41 (A) to 0x5A (Z)
+ * 0x5F (_)
+ * 0x61 (a) to 0x7A (z)
+ * Append a code point whose value is byte to output.
+ *
+ * Otherwise
+ * Append byte, percent encoded, to output.
+ * 3. Return output.
+ */
+ var output = "";
+ try {
+ for (var input_3 = __values(input), input_3_1 = input_3.next(); !input_3_1.done; input_3_1 = input_3.next()) {
+ var byte = input_3_1.value;
+ if (byte === 0x20) {
+ output += '+';
+ }
+ else if (byte === 0x2A || byte === 0x2D || byte === 0x2E ||
+ (byte >= 0x30 && byte <= 0x39) || (byte >= 0x41 && byte <= 0x5A) ||
+ byte === 0x5F || (byte >= 0x61 && byte <= 0x7A)) {
+ output += String.fromCodePoint(byte);
+ }
+ else {
+ output += percentEncode(byte);
+ }
+ }
+ }
+ catch (e_12_1) { e_12 = { error: e_12_1 }; }
+ finally {
+ try {
+ if (input_3_1 && !input_3_1.done && (_a = input_3.return)) _a.call(input_3);
+ }
+ finally { if (e_12) throw e_12.error; }
+ }
+ return output;
+}
+exports.urlEncodedByteSerializer = urlEncodedByteSerializer;
+/**
+ * Serializes `application/x-www-form-urlencoded` tuples.
+ *
+ * @param input - input tuple of name/value pairs
+ * @param encodingOverride: encoding override
+ */
+function urlEncodedSerializer(tuples, encodingOverride) {
+ var e_13, _a;
+ /**
+ * 1. Let encoding be UTF-8.
+ * 2. If encoding override is given, set encoding to the result of getting
+ * an output encoding from encoding override.
+ */
+ var encoding = (encodingOverride === undefined ||
+ encodingOverride === "replacement" || encodingOverride === "UTF-16BE" ||
+ encodingOverride === "UTF-16LE" ? "UTF-8" : encodingOverride);
+ if (encoding.toUpperCase() !== "UTF-8") {
+ throw new Error("Only UTF-8 encoding is supported.");
+ }
+ /**
+ * 3. Let output be the empty string.
+ */
+ var output = "";
+ try {
+ /**
+ * 4. For each tuple in tuples:
+ */
+ for (var tuples_1 = __values(tuples), tuples_1_1 = tuples_1.next(); !tuples_1_1.done; tuples_1_1 = tuples_1.next()) {
+ var tuple = tuples_1_1.value;
+ /**
+ * 4.1. Let name be the result of serializing the result of encoding
+ * tuple’s name, using encoding.
+ */
+ var name = urlEncodedByteSerializer(util_1.utf8Encode(tuple[0]));
+ /**
+ * 4.2. Let value be tuple’s value.
+ */
+ var value = tuple[1];
+ /**
+ * TODO:
+ * 4.3. If value is a file, then set value to value’s filename.
+ */
+ /**
+ * 4.4. Set value to the result of serializing the result of encoding
+ * value, using encoding.
+ */
+ value = urlEncodedByteSerializer(util_1.utf8Encode(value));
+ /**
+ * 4.5. If tuple is not the first pair in tuples, then append U+0026 (&)
+ * to output.
+ */
+ if (output !== "")
+ output += '&';
+ /**
+ * 4.6. Append name, followed by U+003D (=), followed by value, to output.
+ */
+ output += name + '=' + value;
+ }
+ }
+ catch (e_13_1) { e_13 = { error: e_13_1 }; }
+ finally {
+ try {
+ if (tuples_1_1 && !tuples_1_1.done && (_a = tuples_1.return)) _a.call(tuples_1);
+ }
+ finally { if (e_13) throw e_13.error; }
+ }
+ /**
+ * 5. Return output.
+ */
+ return output;
+}
+exports.urlEncodedSerializer = urlEncodedSerializer;
+/**
+ * Returns a URL's origin.
+ *
+ * @param url - a URL
+ */
+function origin(url) {
+ /**
+ * A URL’s origin is the origin returned by running these steps, switching
+ * on URL’s scheme:
+ * "blob"
+ * 1. If URL’s blob URL entry is non-null, then return URL’s blob URL
+ * entry’s environment’s origin.
+ * 2. Let url be the result of parsing URL’s path[0].
+ * 3. Return a new opaque origin, if url is failure, and url’s origin
+ * otherwise.
+ * "ftp"
+ * "http"
+ * "https"
+ * "ws"
+ * "wss"
+ * Return a tuple consisting of URL’s scheme, URL’s host, URL’s port, and
+ * null.
+ * "file"
+ * Unfortunate as it is, is left as an exercise to the reader. When in
+ * doubt, return a new opaque origin.
+ * Otherwise
+ * Return a new opaque origin.
+ */
+ switch (url.scheme) {
+ case "blob":
+ if (url._blobURLEntry !== null) {
+ // TODO: return URL’s blob URL entry’s environment’s origin.
+ }
+ var parsedURL = basicURLParser(url.path[0]);
+ if (parsedURL === null)
+ return interfaces_1.OpaqueOrigin;
+ else
+ return origin(parsedURL);
+ case "ftp":
+ case "http":
+ case "https":
+ case "ws":
+ case "wss":
+ return [url.scheme, url.host === null ? "" : url.host, url.port, null];
+ case "file":
+ return interfaces_1.OpaqueOrigin;
+ default:
+ return interfaces_1.OpaqueOrigin;
+ }
+}
+exports.origin = origin;
+/**
+ * Converts a domain string to ASCII.
+ *
+ * @param domain - a domain string
+ */
+function domainToASCII(domain, beStrict) {
+ if (beStrict === void 0) { beStrict = false; }
+ /**
+ * 1. If beStrict is not given, set it to false.
+ * 2. Let result be the result of running Unicode ToASCII with domain_name
+ * set to domain, UseSTD3ASCIIRules set to beStrict, CheckHyphens set to
+ * false, CheckBidi set to true, CheckJoiners set to true,
+ * Transitional_Processing set to false, and VerifyDnsLength set to beStrict.
+ * 3. If result is a failure value, validation error, return failure.
+ * 4. Return result.
+ */
+ // Use node.js function
+ var result = url_1.domainToASCII(domain);
+ if (result === "") {
+ validationError("Invalid domain name.");
+ return null;
+ }
+ return result;
+}
+exports.domainToASCII = domainToASCII;
+/**
+ * Converts a domain string to Unicode.
+ *
+ * @param domain - a domain string
+ */
+function domainToUnicode(domain, beStrict) {
+ if (beStrict === void 0) { beStrict = false; }
+ /**
+ * 1. Let result be the result of running Unicode ToUnicode with domain_name
+ * set to domain, CheckHyphens set to false, CheckBidi set to true,
+ * CheckJoiners set to true, UseSTD3ASCIIRules set to false, and
+ * Transitional_Processing set to false.
+ * 2. Signify validation errors for any returned errors, and then,
+ * return result.
+ */
+ // Use node.js function
+ var result = url_1.domainToUnicode(domain);
+ if (result === "") {
+ validationError("Invalid domain name.");
+ }
+ return result;
+}
+exports.domainToUnicode = domainToUnicode;
+/**
+ * Serializes an origin.
+ * function is from the HTML spec:
+ * https://html.spec.whatwg.org/#ascii-serialisation-of-an-origin
+ *
+ * @param origin - an origin
+ */
+function asciiSerializationOfAnOrigin(origin) {
+ /**
+ * 1. If origin is an opaque origin, then return "null".
+ * 2. Otherwise, let result be origin's scheme.
+ * 3. Append "://" to result.
+ * 4. Append origin's host, serialized, to result.
+ * 5. If origin's port is non-null, append a U+003A COLON character (:),
+ * and origin's port, serialized, to result.
+ * 6. Return result.
+ */
+ if (origin[0] === "" && origin[1] === "" && origin[2] === null && origin[3] === null) {
+ return "null";
+ }
+ var result = origin[0] + "://" + hostSerializer(origin[1]);
+ if (origin[2] !== null)
+ result += ":" + origin[2].toString();
+ return result;
+}
+exports.asciiSerializationOfAnOrigin = asciiSerializationOfAnOrigin;
+//# sourceMappingURL=URLAlgorithm.js.map
+
+/***/ }),
+
+/***/ 1752:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Represents the state of the URL parser.
+ */
+var ParserState;
+(function (ParserState) {
+ ParserState[ParserState["SchemeStart"] = 0] = "SchemeStart";
+ ParserState[ParserState["Scheme"] = 1] = "Scheme";
+ ParserState[ParserState["NoScheme"] = 2] = "NoScheme";
+ ParserState[ParserState["SpecialRelativeOrAuthority"] = 3] = "SpecialRelativeOrAuthority";
+ ParserState[ParserState["PathOrAuthority"] = 4] = "PathOrAuthority";
+ ParserState[ParserState["Relative"] = 5] = "Relative";
+ ParserState[ParserState["RelativeSlash"] = 6] = "RelativeSlash";
+ ParserState[ParserState["SpecialAuthoritySlashes"] = 7] = "SpecialAuthoritySlashes";
+ ParserState[ParserState["SpecialAuthorityIgnoreSlashes"] = 8] = "SpecialAuthorityIgnoreSlashes";
+ ParserState[ParserState["Authority"] = 9] = "Authority";
+ ParserState[ParserState["Host"] = 10] = "Host";
+ ParserState[ParserState["Hostname"] = 11] = "Hostname";
+ ParserState[ParserState["Port"] = 12] = "Port";
+ ParserState[ParserState["File"] = 13] = "File";
+ ParserState[ParserState["FileSlash"] = 14] = "FileSlash";
+ ParserState[ParserState["FileHost"] = 15] = "FileHost";
+ ParserState[ParserState["PathStart"] = 16] = "PathStart";
+ ParserState[ParserState["Path"] = 17] = "Path";
+ ParserState[ParserState["CannotBeABaseURLPath"] = 18] = "CannotBeABaseURLPath";
+ ParserState[ParserState["Query"] = 19] = "Query";
+ ParserState[ParserState["Fragment"] = 20] = "Fragment";
+})(ParserState = exports.ParserState || (exports.ParserState = {}));
+exports.OpaqueOrigin = ["", "", null, null];
+//# sourceMappingURL=interfaces.js.map
+
+/***/ }),
+
+/***/ 7561:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Represents a cache for storing order between equal objects.
+ *
+ * This cache is used when an algorithm compares two objects and finds them to
+ * be equal but still needs to establish an order between those two objects.
+ * When two such objects `a` and `b` are passed to the `check` method, a random
+ * number is generated with `Math.random()`. If the random number is less than
+ * `0.5` it is assumed that `a < b` otherwise `a > b`. The random number along
+ * with `a` and `b` is stored in the cache, so that subsequent checks result
+ * in the same consistent result.
+ *
+ * The cache has a size limit which is defined on initialization.
+ */
+var CompareCache = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `CompareCache`.
+ *
+ * @param limit - maximum number of items to keep in the cache. When the limit
+ * is exceeded the first item is removed from the cache.
+ */
+ function CompareCache(limit) {
+ if (limit === void 0) { limit = 1000; }
+ this._items = new Map();
+ this._limit = limit;
+ }
+ /**
+ * Compares and caches the given objects. Returns `true` if `objA < objB` and
+ * `false` otherwise.
+ *
+ * @param objA - an item to compare
+ * @param objB - an item to compare
+ */
+ CompareCache.prototype.check = function (objA, objB) {
+ if (this._items.get(objA) === objB)
+ return true;
+ else if (this._items.get(objB) === objA)
+ return false;
+ var result = (Math.random() < 0.5);
+ if (result) {
+ this._items.set(objA, objB);
+ }
+ else {
+ this._items.set(objB, objA);
+ }
+ if (this._items.size > this._limit) {
+ var it_1 = this._items.keys().next();
+ /* istanbul ignore else */
+ if (!it_1.done) {
+ this._items.delete(it_1.value);
+ }
+ }
+ return result;
+ };
+ return CompareCache;
+}());
+exports.CompareCache = CompareCache;
+//# sourceMappingURL=CompareCache.js.map
+
+/***/ }),
+
+/***/ 6006:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Represents a set of objects with a size limit.
+ */
+var FixedSizeSet = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `FixedSizeSet`.
+ *
+ * @param limit - maximum number of items to keep in the set. When the limit
+ * is exceeded the first item is removed from the set.
+ */
+ function FixedSizeSet(limit) {
+ if (limit === void 0) { limit = 1000; }
+ this._items = new Set();
+ this._limit = limit;
+ }
+ /**
+ * Adds a new item to the set.
+ *
+ * @param item - an item
+ */
+ FixedSizeSet.prototype.add = function (item) {
+ this._items.add(item);
+ if (this._items.size > this._limit) {
+ var it_1 = this._items.values().next();
+ /* istanbul ignore else */
+ if (!it_1.done) {
+ this._items.delete(it_1.value);
+ }
+ }
+ return this;
+ };
+ /**
+ * Removes an item from the set.
+ *
+ * @param item - an item
+ */
+ FixedSizeSet.prototype.delete = function (item) {
+ return this._items.delete(item);
+ };
+ /**
+ * Determines if an item is in the set.
+ *
+ * @param item - an item
+ */
+ FixedSizeSet.prototype.has = function (item) {
+ return this._items.has(item);
+ };
+ /**
+ * Removes all items from the set.
+ */
+ FixedSizeSet.prototype.clear = function () {
+ this._items.clear();
+ };
+ Object.defineProperty(FixedSizeSet.prototype, "size", {
+ /**
+ * Gets the number of items in the set.
+ */
+ get: function () { return this._items.size; },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Applies the given callback function to all elements of the set.
+ */
+ FixedSizeSet.prototype.forEach = function (callback, thisArg) {
+ var _this = this;
+ this._items.forEach(function (e) { return callback.call(thisArg, e, e, _this); });
+ };
+ /**
+ * Iterates through the items in the set.
+ */
+ FixedSizeSet.prototype.keys = function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [5 /*yield**/, __values(this._items.keys())];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
+ };
+ /**
+ * Iterates through the items in the set.
+ */
+ FixedSizeSet.prototype.values = function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [5 /*yield**/, __values(this._items.values())];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
+ };
+ /**
+ * Iterates through the items in the set.
+ */
+ FixedSizeSet.prototype.entries = function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [5 /*yield**/, __values(this._items.entries())];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
+ };
+ /**
+ * Iterates through the items in the set.
+ */
+ FixedSizeSet.prototype[Symbol.iterator] = function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [5 /*yield**/, __values(this._items)];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
+ };
+ Object.defineProperty(FixedSizeSet.prototype, Symbol.toStringTag, {
+ /**
+ * Returns the string tag of the set.
+ */
+ get: function () {
+ return "FixedSizeSet";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return FixedSizeSet;
+}());
+exports.FixedSizeSet = FixedSizeSet;
+//# sourceMappingURL=FixedSizeSet.js.map
+
+/***/ }),
+
+/***/ 1857:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Represents an object with lazy initialization.
+ */
+var Lazy = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `Lazy`.
+ *
+ * @param initFunc - initializer function
+ */
+ function Lazy(initFunc) {
+ this._initialized = false;
+ this._value = undefined;
+ this._initFunc = initFunc;
+ }
+ Object.defineProperty(Lazy.prototype, "value", {
+ /**
+ * Gets the value of the object.
+ */
+ get: function () {
+ if (!this._initialized) {
+ this._value = this._initFunc();
+ this._initialized = true;
+ }
+ return this._value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return Lazy;
+}());
+exports.Lazy = Lazy;
+//# sourceMappingURL=Lazy.js.map
+
+/***/ }),
+
+/***/ 5798:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Represents a cache of objects with a size limit.
+ */
+var ObjectCache = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `ObjectCache`.
+ *
+ * @param limit - maximum number of items to keep in the cache. When the limit
+ * is exceeded the first item is removed from the cache.
+ */
+ function ObjectCache(limit) {
+ if (limit === void 0) { limit = 1000; }
+ this._items = new Map();
+ this._limit = limit;
+ }
+ /**
+ * Gets an item from the cache.
+ *
+ * @param key - object key
+ */
+ ObjectCache.prototype.get = function (key) {
+ return this._items.get(key);
+ };
+ /**
+ * Adds a new item to the cache.
+ *
+ * @param key - object key
+ * @param value - object value
+ */
+ ObjectCache.prototype.set = function (key, value) {
+ this._items.set(key, value);
+ if (this._items.size > this._limit) {
+ var it_1 = this._items.keys().next();
+ /* istanbul ignore else */
+ if (!it_1.done) {
+ this._items.delete(it_1.value);
+ }
+ }
+ };
+ /**
+ * Removes an item from the cache.
+ *
+ * @param item - an item
+ */
+ ObjectCache.prototype.delete = function (key) {
+ return this._items.delete(key);
+ };
+ /**
+ * Determines if an item is in the cache.
+ *
+ * @param item - an item
+ */
+ ObjectCache.prototype.has = function (key) {
+ return this._items.has(key);
+ };
+ /**
+ * Removes all items from the cache.
+ */
+ ObjectCache.prototype.clear = function () {
+ this._items.clear();
+ };
+ Object.defineProperty(ObjectCache.prototype, "size", {
+ /**
+ * Gets the number of items in the cache.
+ */
+ get: function () { return this._items.size; },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Applies the given callback function to all elements of the cache.
+ */
+ ObjectCache.prototype.forEach = function (callback, thisArg) {
+ this._items.forEach(function (v, k) { return callback.call(thisArg, k, v); });
+ };
+ /**
+ * Iterates through the items in the set.
+ */
+ ObjectCache.prototype.keys = function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [5 /*yield**/, __values(this._items.keys())];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
+ };
+ /**
+ * Iterates through the items in the set.
+ */
+ ObjectCache.prototype.values = function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [5 /*yield**/, __values(this._items.values())];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
+ };
+ /**
+ * Iterates through the items in the set.
+ */
+ ObjectCache.prototype.entries = function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [5 /*yield**/, __values(this._items.entries())];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
+ };
+ /**
+ * Iterates through the items in the set.
+ */
+ ObjectCache.prototype[Symbol.iterator] = function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [5 /*yield**/, __values(this._items)];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
+ };
+ Object.defineProperty(ObjectCache.prototype, Symbol.toStringTag, {
+ /**
+ * Returns the string tag of the cache.
+ */
+ get: function () {
+ return "ObjectCache";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ObjectCache;
+}());
+exports.ObjectCache = ObjectCache;
+//# sourceMappingURL=ObjectCache.js.map
+
+/***/ }),
+
+/***/ 4145:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Walks through the code points of a string.
+ */
+var StringWalker = /** @class */ (function () {
+ /**
+ * Initializes a new `StringWalker`.
+ *
+ * @param input - input string
+ */
+ function StringWalker(input) {
+ this._pointer = 0;
+ this._chars = Array.from(input);
+ this._length = this._chars.length;
+ }
+ Object.defineProperty(StringWalker.prototype, "eof", {
+ /**
+ * Determines if the current position is beyond the end of string.
+ */
+ get: function () { return this._pointer >= this._length; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(StringWalker.prototype, "length", {
+ /**
+ * Returns the number of code points in the input string.
+ */
+ get: function () { return this._length; },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Returns the current code point. Returns `-1` if the position is beyond
+ * the end of string.
+ */
+ StringWalker.prototype.codePoint = function () {
+ if (this._codePoint === undefined) {
+ if (this.eof) {
+ this._codePoint = -1;
+ }
+ else {
+ var cp = this._chars[this._pointer].codePointAt(0);
+ /* istanbul ignore else */
+ if (cp !== undefined) {
+ this._codePoint = cp;
+ }
+ else {
+ this._codePoint = -1;
+ }
+ }
+ }
+ return this._codePoint;
+ };
+ /**
+ * Returns the current character. Returns an empty string if the position is
+ * beyond the end of string.
+ */
+ StringWalker.prototype.c = function () {
+ if (this._c === undefined) {
+ this._c = (this.eof ? "" : this._chars[this._pointer]);
+ }
+ return this._c;
+ };
+ /**
+ * Returns the remaining string.
+ */
+ StringWalker.prototype.remaining = function () {
+ if (this._remaining === undefined) {
+ this._remaining = (this.eof ?
+ "" : this._chars.slice(this._pointer + 1).join(''));
+ }
+ return this._remaining;
+ };
+ /**
+ * Returns the substring from the current character to the end of string.
+ */
+ StringWalker.prototype.substring = function () {
+ if (this._substring === undefined) {
+ this._substring = (this.eof ?
+ "" : this._chars.slice(this._pointer).join(''));
+ }
+ return this._substring;
+ };
+ Object.defineProperty(StringWalker.prototype, "pointer", {
+ /**
+ * Gets or sets the current position.
+ */
+ get: function () { return this._pointer; },
+ set: function (val) {
+ if (val === this._pointer)
+ return;
+ this._pointer = val;
+ this._codePoint = undefined;
+ this._c = undefined;
+ this._remaining = undefined;
+ this._substring = undefined;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return StringWalker;
+}());
+exports.StringWalker = StringWalker;
+//# sourceMappingURL=StringWalker.js.map
+
+/***/ }),
+
+/***/ 6195:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var FixedSizeSet_1 = __nccwpck_require__(6006);
+exports.FixedSizeSet = FixedSizeSet_1.FixedSizeSet;
+var ObjectCache_1 = __nccwpck_require__(5798);
+exports.ObjectCache = ObjectCache_1.ObjectCache;
+var CompareCache_1 = __nccwpck_require__(7561);
+exports.CompareCache = CompareCache_1.CompareCache;
+var Lazy_1 = __nccwpck_require__(1857);
+exports.Lazy = Lazy_1.Lazy;
+var StringWalker_1 = __nccwpck_require__(4145);
+exports.StringWalker = StringWalker_1.StringWalker;
+/**
+ * Applies the mixin to a given class.
+ *
+ * @param baseClass - class to receive the mixin
+ * @param mixinClass - mixin class
+ * @param overrides - an array with names of function overrides. Base class
+ * functions whose names are in this array will be kept by prepending an
+ * underscore to their names.
+ */
+function applyMixin(baseClass, mixinClass) {
+ var overrides = [];
+ for (var _i = 2; _i < arguments.length; _i++) {
+ overrides[_i - 2] = arguments[_i];
+ }
+ Object.getOwnPropertyNames(mixinClass.prototype).forEach(function (name) {
+ if (name !== "constructor") {
+ if (overrides.indexOf(name) !== -1) {
+ var orgPropDesc = Object.getOwnPropertyDescriptor(baseClass.prototype, name);
+ /* istanbul ignore else */
+ if (orgPropDesc) {
+ Object.defineProperty(baseClass.prototype, "_" + name, orgPropDesc);
+ }
+ }
+ var propDesc = Object.getOwnPropertyDescriptor(mixinClass.prototype, name);
+ /* istanbul ignore else */
+ if (propDesc) {
+ Object.defineProperty(baseClass.prototype, name, propDesc);
+ }
+ }
+ });
+}
+exports.applyMixin = applyMixin;
+/**
+ * Applies default values to the given object.
+ *
+ * @param obj - an object
+ * @param defaults - an object with default values
+ * @param overwrite - if set to `true` defaults object always overwrites object
+ * values, whether they are `undefined` or not.
+ */
+function applyDefaults(obj, defaults, overwrite) {
+ if (overwrite === void 0) { overwrite = false; }
+ var result = clone(obj || {});
+ forEachObject(defaults, function (key, val) {
+ if (isPlainObject(val)) {
+ result[key] = applyDefaults(result[key], val, overwrite);
+ }
+ else if (overwrite || result[key] === undefined) {
+ result[key] = val;
+ }
+ });
+ return result;
+}
+exports.applyDefaults = applyDefaults;
+/**
+ * Iterates over items of an array or set.
+ *
+ * @param arr - array or set to iterate
+ * @param callback - a callback function which receives each array item as its
+ * single argument
+ * @param thisArg - the value of this inside callback
+ */
+function forEachArray(arr, callback, thisArg) {
+ arr.forEach(callback, thisArg);
+}
+exports.forEachArray = forEachArray;
+/**
+ * Iterates over key/value pairs of a map or object.
+ *
+ * @param obj - map or object to iterate
+ * @param callback - a callback function which receives object key as its first
+ * argument and object value as its second argument
+ * @param thisArg - the value of this inside callback
+ */
+function forEachObject(obj, callback, thisArg) {
+ if (isMap(obj)) {
+ obj.forEach(function (value, key) { return callback.call(thisArg, key, value); });
+ }
+ else {
+ for (var key in obj) {
+ /* istanbul ignore else */
+ if (obj.hasOwnProperty(key)) {
+ callback.call(thisArg, key, obj[key]);
+ }
+ }
+ }
+}
+exports.forEachObject = forEachObject;
+/**
+ * Returns the number of entries in an array or set.
+ *
+ * @param arr - array or set
+ */
+function arrayLength(obj) {
+ if (isSet(obj)) {
+ return obj.size;
+ }
+ else {
+ return obj.length;
+ }
+}
+exports.arrayLength = arrayLength;
+/**
+ * Returns the number of entries in a map or object.
+ *
+ * @param obj - map or object
+ */
+function objectLength(obj) {
+ if (isMap(obj)) {
+ return obj.size;
+ }
+ else {
+ return Object.keys(obj).length;
+ }
+}
+exports.objectLength = objectLength;
+/**
+ * Gets the value of a key from a map or object.
+ *
+ * @param obj - map or object
+ * @param key - the key to retrieve
+ */
+function getObjectValue(obj, key) {
+ if (isMap(obj)) {
+ return obj.get(key);
+ }
+ else {
+ return obj[key];
+ }
+}
+exports.getObjectValue = getObjectValue;
+/**
+ * Removes a property from a map or object.
+ *
+ * @param obj - map or object
+ * @param key - the key to remove
+ */
+function removeObjectValue(obj, key) {
+ if (isMap(obj)) {
+ obj.delete(key);
+ }
+ else {
+ delete obj[key];
+ }
+}
+exports.removeObjectValue = removeObjectValue;
+/**
+ * Deep clones the given object.
+ *
+ * @param obj - an object
+ */
+function clone(obj) {
+ var e_1, _a;
+ if (isFunction(obj)) {
+ return obj;
+ }
+ else if (isArray(obj)) {
+ var result = [];
+ try {
+ for (var obj_1 = __values(obj), obj_1_1 = obj_1.next(); !obj_1_1.done; obj_1_1 = obj_1.next()) {
+ var item = obj_1_1.value;
+ result.push(clone(item));
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (obj_1_1 && !obj_1_1.done && (_a = obj_1.return)) _a.call(obj_1);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ return result;
+ }
+ else if (isObject(obj)) {
+ var result = {};
+ for (var key in obj) {
+ /* istanbul ignore next */
+ if (obj.hasOwnProperty(key)) {
+ var val = obj[key];
+ result[key] = clone(val);
+ }
+ }
+ return result;
+ }
+ else {
+ return obj;
+ }
+}
+exports.clone = clone;
+/**
+ * Type guard for boolean types
+ *
+ * @param x - a variable to type check
+ */
+function isBoolean(x) {
+ return typeof x === "boolean";
+}
+exports.isBoolean = isBoolean;
+/**
+ * Type guard for numeric types
+ *
+ * @param x - a variable to type check
+ */
+function isNumber(x) {
+ return typeof x === "number";
+}
+exports.isNumber = isNumber;
+/**
+ * Type guard for strings
+ *
+ * @param x - a variable to type check
+ */
+function isString(x) {
+ return typeof x === "string";
+}
+exports.isString = isString;
+/**
+ * Type guard for function objects
+ *
+ * @param x - a variable to type check
+ */
+function isFunction(x) {
+ return !!x && Object.prototype.toString.call(x) === '[object Function]';
+}
+exports.isFunction = isFunction;
+/**
+ * Type guard for JS objects
+ *
+ * _Note:_ Functions are objects too
+ *
+ * @param x - a variable to type check
+ */
+function isObject(x) {
+ var type = typeof x;
+ return !!x && (type === 'function' || type === 'object');
+}
+exports.isObject = isObject;
+/**
+ * Type guard for arrays
+ *
+ * @param x - a variable to type check
+ */
+function isArray(x) {
+ return Array.isArray(x);
+}
+exports.isArray = isArray;
+/**
+ * Type guard for sets.
+ *
+ * @param x - a variable to check
+ */
+function isSet(x) {
+ return x instanceof Set;
+}
+exports.isSet = isSet;
+/**
+ * Type guard for maps.
+ *
+ * @param x - a variable to check
+ */
+function isMap(x) {
+ return x instanceof Map;
+}
+exports.isMap = isMap;
+/**
+ * Determines if `x` is an empty Array or an Object with no own properties.
+ *
+ * @param x - a variable to check
+ */
+function isEmpty(x) {
+ if (isArray(x)) {
+ return !x.length;
+ }
+ else if (isSet(x)) {
+ return !x.size;
+ }
+ else if (isMap(x)) {
+ return !x.size;
+ }
+ else if (isObject(x)) {
+ for (var key in x) {
+ if (x.hasOwnProperty(key)) {
+ return false;
+ }
+ }
+ return true;
+ }
+ return false;
+}
+exports.isEmpty = isEmpty;
+/**
+ * Determines if `x` is a plain Object.
+ *
+ * @param x - a variable to check
+ */
+function isPlainObject(x) {
+ if (isObject(x)) {
+ var proto = Object.getPrototypeOf(x);
+ var ctor = proto.constructor;
+ return proto && ctor &&
+ (typeof ctor === 'function') && (ctor instanceof ctor) &&
+ (Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object));
+ }
+ return false;
+}
+exports.isPlainObject = isPlainObject;
+/**
+ * Determines if `x` is an iterable Object.
+ *
+ * @param x - a variable to check
+ */
+function isIterable(x) {
+ return x && (typeof x[Symbol.iterator] === 'function');
+}
+exports.isIterable = isIterable;
+/**
+ * Gets the primitive value of an object.
+ */
+function getValue(obj) {
+ if (isFunction(obj.valueOf)) {
+ return obj.valueOf();
+ }
+ else {
+ return obj;
+ }
+}
+exports.getValue = getValue;
+/**
+ * UTF-8 encodes the given string.
+ *
+ * @param input - a string
+ */
+function utf8Encode(input) {
+ var bytes = new Uint8Array(input.length * 4);
+ var byteIndex = 0;
+ for (var i = 0; i < input.length; i++) {
+ var char = input.charCodeAt(i);
+ if (char < 128) {
+ bytes[byteIndex++] = char;
+ continue;
+ }
+ else if (char < 2048) {
+ bytes[byteIndex++] = char >> 6 | 192;
+ }
+ else {
+ if (char > 0xd7ff && char < 0xdc00) {
+ if (++i >= input.length) {
+ throw new Error("Incomplete surrogate pair.");
+ }
+ var c2 = input.charCodeAt(i);
+ if (c2 < 0xdc00 || c2 > 0xdfff) {
+ throw new Error("Invalid surrogate character.");
+ }
+ char = 0x10000 + ((char & 0x03ff) << 10) + (c2 & 0x03ff);
+ bytes[byteIndex++] = char >> 18 | 240;
+ bytes[byteIndex++] = char >> 12 & 63 | 128;
+ }
+ else {
+ bytes[byteIndex++] = char >> 12 | 224;
+ }
+ bytes[byteIndex++] = char >> 6 & 63 | 128;
+ }
+ bytes[byteIndex++] = char & 63 | 128;
+ }
+ return bytes.subarray(0, byteIndex);
+}
+exports.utf8Encode = utf8Encode;
+/**
+ * UTF-8 decodes the given byte sequence into a string.
+ *
+ * @param bytes - a byte sequence
+ */
+function utf8Decode(bytes) {
+ var result = "";
+ var i = 0;
+ while (i < bytes.length) {
+ var c = bytes[i++];
+ if (c > 127) {
+ if (c > 191 && c < 224) {
+ if (i >= bytes.length) {
+ throw new Error("Incomplete 2-byte sequence.");
+ }
+ c = (c & 31) << 6 | bytes[i++] & 63;
+ }
+ else if (c > 223 && c < 240) {
+ if (i + 1 >= bytes.length) {
+ throw new Error("Incomplete 3-byte sequence.");
+ }
+ c = (c & 15) << 12 | (bytes[i++] & 63) << 6 | bytes[i++] & 63;
+ }
+ else if (c > 239 && c < 248) {
+ if (i + 2 >= bytes.length) {
+ throw new Error("Incomplete 4-byte sequence.");
+ }
+ c = (c & 7) << 18 | (bytes[i++] & 63) << 12 | (bytes[i++] & 63) << 6 | bytes[i++] & 63;
+ }
+ else {
+ throw new Error("Unknown multi-byte start.");
+ }
+ }
+ if (c <= 0xffff) {
+ result += String.fromCharCode(c);
+ }
+ else if (c <= 0x10ffff) {
+ c -= 0x10000;
+ result += String.fromCharCode(c >> 10 | 0xd800);
+ result += String.fromCharCode(c & 0x3FF | 0xdc00);
+ }
+ else {
+ throw new Error("Code point exceeds UTF-16 limit.");
+ }
+ }
+ return result;
+}
+exports.utf8Decode = utf8Decode;
+//# sourceMappingURL=index.js.map
+
+/***/ }),
+
+/***/ 7171:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var __spreadArray = (this && this.__spreadArray) || function (to, from) {
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
+ to[j] = from[i];
+ return to;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.ContextAPI = void 0;
+var NoopContextManager_1 = __nccwpck_require__(4118);
+var global_utils_1 = __nccwpck_require__(5135);
+var diag_1 = __nccwpck_require__(1877);
+var API_NAME = 'context';
+var NOOP_CONTEXT_MANAGER = new NoopContextManager_1.NoopContextManager();
+/**
+ * Singleton object which represents the entry point to the OpenTelemetry Context API
+ */
+var ContextAPI = /** @class */ (function () {
+ /** Empty private constructor prevents end users from constructing a new instance of the API */
+ function ContextAPI() {
+ }
+ /** Get the singleton instance of the Context API */
+ ContextAPI.getInstance = function () {
+ if (!this._instance) {
+ this._instance = new ContextAPI();
+ }
+ return this._instance;
+ };
+ /**
+ * Set the current context manager.
+ *
+ * @returns true if the context manager was successfully registered, else false
+ */
+ ContextAPI.prototype.setGlobalContextManager = function (contextManager) {
+ return global_utils_1.registerGlobal(API_NAME, contextManager, diag_1.DiagAPI.instance());
+ };
+ /**
+ * Get the currently active context
+ */
+ ContextAPI.prototype.active = function () {
+ return this._getContextManager().active();
+ };
+ /**
+ * Execute a function with an active context
+ *
+ * @param context context to be active during function execution
+ * @param fn function to execute in a context
+ * @param thisArg optional receiver to be used for calling fn
+ * @param args optional arguments forwarded to fn
+ */
+ ContextAPI.prototype.with = function (context, fn, thisArg) {
+ var _a;
+ var args = [];
+ for (var _i = 3; _i < arguments.length; _i++) {
+ args[_i - 3] = arguments[_i];
+ }
+ return (_a = this._getContextManager()).with.apply(_a, __spreadArray([context, fn, thisArg], args));
+ };
+ /**
+ * Bind a context to a target function or event emitter
+ *
+ * @param context context to bind to the event emitter or function. Defaults to the currently active context
+ * @param target function or event emitter to bind
+ */
+ ContextAPI.prototype.bind = function (context, target) {
+ return this._getContextManager().bind(context, target);
+ };
+ ContextAPI.prototype._getContextManager = function () {
+ return global_utils_1.getGlobal(API_NAME) || NOOP_CONTEXT_MANAGER;
+ };
+ /** Disable and remove the global context manager */
+ ContextAPI.prototype.disable = function () {
+ this._getContextManager().disable();
+ global_utils_1.unregisterGlobal(API_NAME, diag_1.DiagAPI.instance());
+ };
+ return ContextAPI;
+}());
+exports.ContextAPI = ContextAPI;
+//# sourceMappingURL=context.js.map
+
+/***/ }),
+
+/***/ 1877:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.DiagAPI = void 0;
+var ComponentLogger_1 = __nccwpck_require__(7978);
+var logLevelLogger_1 = __nccwpck_require__(9639);
+var types_1 = __nccwpck_require__(8077);
+var global_utils_1 = __nccwpck_require__(5135);
+var API_NAME = 'diag';
+/**
+ * Singleton object which represents the entry point to the OpenTelemetry internal
+ * diagnostic API
+ */
+var DiagAPI = /** @class */ (function () {
+ /**
+ * Private internal constructor
+ * @private
+ */
+ function DiagAPI() {
+ function _logProxy(funcName) {
+ return function () {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ var logger = global_utils_1.getGlobal('diag');
+ // shortcut if logger not set
+ if (!logger)
+ return;
+ return logger[funcName].apply(logger, args);
+ };
+ }
+ // Using self local variable for minification purposes as 'this' cannot be minified
+ var self = this;
+ // DiagAPI specific functions
+ self.setLogger = function (logger, logLevel) {
+ var _a, _b;
+ if (logLevel === void 0) { logLevel = types_1.DiagLogLevel.INFO; }
+ if (logger === self) {
+ // There isn't much we can do here.
+ // Logging to the console might break the user application.
+ // Try to log to self. If a logger was previously registered it will receive the log.
+ var err = new Error('Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation');
+ self.error((_a = err.stack) !== null && _a !== void 0 ? _a : err.message);
+ return false;
+ }
+ var oldLogger = global_utils_1.getGlobal('diag');
+ var newLogger = logLevelLogger_1.createLogLevelDiagLogger(logLevel, logger);
+ // There already is an logger registered. We'll let it know before overwriting it.
+ if (oldLogger) {
+ var stack = (_b = new Error().stack) !== null && _b !== void 0 ? _b : '';
+ oldLogger.warn("Current logger will be overwritten from " + stack);
+ newLogger.warn("Current logger will overwrite one already registered from " + stack);
+ }
+ return global_utils_1.registerGlobal('diag', newLogger, self, true);
+ };
+ self.disable = function () {
+ global_utils_1.unregisterGlobal(API_NAME, self);
+ };
+ self.createComponentLogger = function (options) {
+ return new ComponentLogger_1.DiagComponentLogger(options);
+ };
+ self.verbose = _logProxy('verbose');
+ self.debug = _logProxy('debug');
+ self.info = _logProxy('info');
+ self.warn = _logProxy('warn');
+ self.error = _logProxy('error');
+ }
+ /** Get the singleton instance of the DiagAPI API */
+ DiagAPI.instance = function () {
+ if (!this._instance) {
+ this._instance = new DiagAPI();
+ }
+ return this._instance;
+ };
+ return DiagAPI;
+}());
+exports.DiagAPI = DiagAPI;
+//# sourceMappingURL=diag.js.map
+
+/***/ }),
+
+/***/ 9909:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.PropagationAPI = void 0;
+var global_utils_1 = __nccwpck_require__(5135);
+var NoopTextMapPropagator_1 = __nccwpck_require__(2368);
+var TextMapPropagator_1 = __nccwpck_require__(865);
+var context_helpers_1 = __nccwpck_require__(7682);
+var utils_1 = __nccwpck_require__(8136);
+var diag_1 = __nccwpck_require__(1877);
+var API_NAME = 'propagation';
+var NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator_1.NoopTextMapPropagator();
+/**
+ * Singleton object which represents the entry point to the OpenTelemetry Propagation API
+ */
+var PropagationAPI = /** @class */ (function () {
+ /** Empty private constructor prevents end users from constructing a new instance of the API */
+ function PropagationAPI() {
+ this.createBaggage = utils_1.createBaggage;
+ this.getBaggage = context_helpers_1.getBaggage;
+ this.setBaggage = context_helpers_1.setBaggage;
+ this.deleteBaggage = context_helpers_1.deleteBaggage;
+ }
+ /** Get the singleton instance of the Propagator API */
+ PropagationAPI.getInstance = function () {
+ if (!this._instance) {
+ this._instance = new PropagationAPI();
+ }
+ return this._instance;
+ };
+ /**
+ * Set the current propagator.
+ *
+ * @returns true if the propagator was successfully registered, else false
+ */
+ PropagationAPI.prototype.setGlobalPropagator = function (propagator) {
+ return global_utils_1.registerGlobal(API_NAME, propagator, diag_1.DiagAPI.instance());
+ };
+ /**
+ * Inject context into a carrier to be propagated inter-process
+ *
+ * @param context Context carrying tracing data to inject
+ * @param carrier carrier to inject context into
+ * @param setter Function used to set values on the carrier
+ */
+ PropagationAPI.prototype.inject = function (context, carrier, setter) {
+ if (setter === void 0) { setter = TextMapPropagator_1.defaultTextMapSetter; }
+ return this._getGlobalPropagator().inject(context, carrier, setter);
+ };
+ /**
+ * Extract context from a carrier
+ *
+ * @param context Context which the newly created context will inherit from
+ * @param carrier Carrier to extract context from
+ * @param getter Function used to extract keys from a carrier
+ */
+ PropagationAPI.prototype.extract = function (context, carrier, getter) {
+ if (getter === void 0) { getter = TextMapPropagator_1.defaultTextMapGetter; }
+ return this._getGlobalPropagator().extract(context, carrier, getter);
+ };
+ /**
+ * Return a list of all fields which may be used by the propagator.
+ */
+ PropagationAPI.prototype.fields = function () {
+ return this._getGlobalPropagator().fields();
+ };
+ /** Remove the global propagator */
+ PropagationAPI.prototype.disable = function () {
+ global_utils_1.unregisterGlobal(API_NAME, diag_1.DiagAPI.instance());
+ };
+ PropagationAPI.prototype._getGlobalPropagator = function () {
+ return global_utils_1.getGlobal(API_NAME) || NOOP_TEXT_MAP_PROPAGATOR;
+ };
+ return PropagationAPI;
+}());
+exports.PropagationAPI = PropagationAPI;
+//# sourceMappingURL=propagation.js.map
+
+/***/ }),
+
+/***/ 1539:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.TraceAPI = void 0;
+var global_utils_1 = __nccwpck_require__(5135);
+var ProxyTracerProvider_1 = __nccwpck_require__(2285);
+var spancontext_utils_1 = __nccwpck_require__(9745);
+var context_utils_1 = __nccwpck_require__(3326);
+var diag_1 = __nccwpck_require__(1877);
+var API_NAME = 'trace';
+/**
+ * Singleton object which represents the entry point to the OpenTelemetry Tracing API
+ */
+var TraceAPI = /** @class */ (function () {
+ /** Empty private constructor prevents end users from constructing a new instance of the API */
+ function TraceAPI() {
+ this._proxyTracerProvider = new ProxyTracerProvider_1.ProxyTracerProvider();
+ this.wrapSpanContext = spancontext_utils_1.wrapSpanContext;
+ this.isSpanContextValid = spancontext_utils_1.isSpanContextValid;
+ this.deleteSpan = context_utils_1.deleteSpan;
+ this.getSpan = context_utils_1.getSpan;
+ this.getSpanContext = context_utils_1.getSpanContext;
+ this.setSpan = context_utils_1.setSpan;
+ this.setSpanContext = context_utils_1.setSpanContext;
+ }
+ /** Get the singleton instance of the Trace API */
+ TraceAPI.getInstance = function () {
+ if (!this._instance) {
+ this._instance = new TraceAPI();
+ }
+ return this._instance;
+ };
+ /**
+ * Set the current global tracer.
+ *
+ * @returns true if the tracer provider was successfully registered, else false
+ */
+ TraceAPI.prototype.setGlobalTracerProvider = function (provider) {
+ var success = global_utils_1.registerGlobal(API_NAME, this._proxyTracerProvider, diag_1.DiagAPI.instance());
+ if (success) {
+ this._proxyTracerProvider.setDelegate(provider);
+ }
+ return success;
+ };
+ /**
+ * Returns the global tracer provider.
+ */
+ TraceAPI.prototype.getTracerProvider = function () {
+ return global_utils_1.getGlobal(API_NAME) || this._proxyTracerProvider;
+ };
+ /**
+ * Returns a tracer from the global tracer provider.
+ */
+ TraceAPI.prototype.getTracer = function (name, version) {
+ return this.getTracerProvider().getTracer(name, version);
+ };
+ /** Remove the global tracer provider */
+ TraceAPI.prototype.disable = function () {
+ global_utils_1.unregisterGlobal(API_NAME, diag_1.DiagAPI.instance());
+ this._proxyTracerProvider = new ProxyTracerProvider_1.ProxyTracerProvider();
+ };
+ return TraceAPI;
+}());
+exports.TraceAPI = TraceAPI;
+//# sourceMappingURL=trace.js.map
+
+/***/ }),
+
+/***/ 7682:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.deleteBaggage = exports.setBaggage = exports.getBaggage = void 0;
+var context_1 = __nccwpck_require__(8242);
+/**
+ * Baggage key
+ */
+var BAGGAGE_KEY = context_1.createContextKey('OpenTelemetry Baggage Key');
+/**
+ * Retrieve the current baggage from the given context
+ *
+ * @param {Context} Context that manage all context values
+ * @returns {Baggage} Extracted baggage from the context
+ */
+function getBaggage(context) {
+ return context.getValue(BAGGAGE_KEY) || undefined;
+}
+exports.getBaggage = getBaggage;
+/**
+ * Store a baggage in the given context
+ *
+ * @param {Context} Context that manage all context values
+ * @param {Baggage} baggage that will be set in the actual context
+ */
+function setBaggage(context, baggage) {
+ return context.setValue(BAGGAGE_KEY, baggage);
+}
+exports.setBaggage = setBaggage;
+/**
+ * Delete the baggage stored in the given context
+ *
+ * @param {Context} Context that manage all context values
+ */
+function deleteBaggage(context) {
+ return context.deleteValue(BAGGAGE_KEY);
+}
+exports.deleteBaggage = deleteBaggage;
+//# sourceMappingURL=context-helpers.js.map
+
+/***/ }),
+
+/***/ 4811:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.BaggageImpl = void 0;
+var BaggageImpl = /** @class */ (function () {
+ function BaggageImpl(entries) {
+ this._entries = entries ? new Map(entries) : new Map();
+ }
+ BaggageImpl.prototype.getEntry = function (key) {
+ var entry = this._entries.get(key);
+ if (!entry) {
+ return undefined;
+ }
+ return Object.assign({}, entry);
+ };
+ BaggageImpl.prototype.getAllEntries = function () {
+ return Array.from(this._entries.entries()).map(function (_a) {
+ var k = _a[0], v = _a[1];
+ return [k, v];
+ });
+ };
+ BaggageImpl.prototype.setEntry = function (key, entry) {
+ var newBaggage = new BaggageImpl(this._entries);
+ newBaggage._entries.set(key, entry);
+ return newBaggage;
+ };
+ BaggageImpl.prototype.removeEntry = function (key) {
+ var newBaggage = new BaggageImpl(this._entries);
+ newBaggage._entries.delete(key);
+ return newBaggage;
+ };
+ BaggageImpl.prototype.removeEntries = function () {
+ var keys = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ keys[_i] = arguments[_i];
+ }
+ var newBaggage = new BaggageImpl(this._entries);
+ for (var _a = 0, keys_1 = keys; _a < keys_1.length; _a++) {
+ var key = keys_1[_a];
+ newBaggage._entries.delete(key);
+ }
+ return newBaggage;
+ };
+ BaggageImpl.prototype.clear = function () {
+ return new BaggageImpl();
+ };
+ return BaggageImpl;
+}());
+exports.BaggageImpl = BaggageImpl;
+//# sourceMappingURL=baggage-impl.js.map
+
+/***/ }),
+
+/***/ 3542:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.baggageEntryMetadataSymbol = void 0;
+/**
+ * Symbol used to make BaggageEntryMetadata an opaque type
+ */
+exports.baggageEntryMetadataSymbol = Symbol('BaggageEntryMetadata');
+//# sourceMappingURL=symbol.js.map
+
+/***/ }),
+
+/***/ 1508:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+//# sourceMappingURL=types.js.map
+
+/***/ }),
+
+/***/ 8136:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.baggageEntryMetadataFromString = exports.createBaggage = void 0;
+var diag_1 = __nccwpck_require__(1877);
+var baggage_impl_1 = __nccwpck_require__(4811);
+var symbol_1 = __nccwpck_require__(3542);
+var diag = diag_1.DiagAPI.instance();
+/**
+ * Create a new Baggage with optional entries
+ *
+ * @param entries An array of baggage entries the new baggage should contain
+ */
+function createBaggage(entries) {
+ if (entries === void 0) { entries = {}; }
+ return new baggage_impl_1.BaggageImpl(new Map(Object.entries(entries)));
+}
+exports.createBaggage = createBaggage;
+/**
+ * Create a serializable BaggageEntryMetadata object from a string.
+ *
+ * @param str string metadata. Format is currently not defined by the spec and has no special meaning.
+ *
+ */
+function baggageEntryMetadataFromString(str) {
+ if (typeof str !== 'string') {
+ diag.error("Cannot create baggage metadata from unknown type: " + typeof str);
+ str = '';
+ }
+ return {
+ __TYPE__: symbol_1.baggageEntryMetadataSymbol,
+ toString: function () {
+ return str;
+ },
+ };
+}
+exports.baggageEntryMetadataFromString = baggageEntryMetadataFromString;
+//# sourceMappingURL=utils.js.map
+
+/***/ }),
+
+/***/ 4447:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+//# sourceMappingURL=Exception.js.map
+
+/***/ }),
+
+/***/ 2358:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+//# sourceMappingURL=Time.js.map
+
+/***/ }),
+
+/***/ 4118:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var __spreadArray = (this && this.__spreadArray) || function (to, from) {
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
+ to[j] = from[i];
+ return to;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.NoopContextManager = void 0;
+var context_1 = __nccwpck_require__(8242);
+var NoopContextManager = /** @class */ (function () {
+ function NoopContextManager() {
+ }
+ NoopContextManager.prototype.active = function () {
+ return context_1.ROOT_CONTEXT;
+ };
+ NoopContextManager.prototype.with = function (_context, fn, thisArg) {
+ var args = [];
+ for (var _i = 3; _i < arguments.length; _i++) {
+ args[_i - 3] = arguments[_i];
+ }
+ return fn.call.apply(fn, __spreadArray([thisArg], args));
+ };
+ NoopContextManager.prototype.bind = function (_context, target) {
+ return target;
+ };
+ NoopContextManager.prototype.enable = function () {
+ return this;
+ };
+ NoopContextManager.prototype.disable = function () {
+ return this;
+ };
+ return NoopContextManager;
+}());
+exports.NoopContextManager = NoopContextManager;
+//# sourceMappingURL=NoopContextManager.js.map
+
+/***/ }),
+
+/***/ 8242:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.ROOT_CONTEXT = exports.createContextKey = void 0;
+/** Get a key to uniquely identify a context value */
+function createContextKey(description) {
+ // The specification states that for the same input, multiple calls should
+ // return different keys. Due to the nature of the JS dependency management
+ // system, this creates problems where multiple versions of some package
+ // could hold different keys for the same property.
+ //
+ // Therefore, we use Symbol.for which returns the same key for the same input.
+ return Symbol.for(description);
+}
+exports.createContextKey = createContextKey;
+var BaseContext = /** @class */ (function () {
+ /**
+ * Construct a new context which inherits values from an optional parent context.
+ *
+ * @param parentContext a context from which to inherit values
+ */
+ function BaseContext(parentContext) {
+ // for minification
+ var self = this;
+ self._currentContext = parentContext ? new Map(parentContext) : new Map();
+ self.getValue = function (key) { return self._currentContext.get(key); };
+ self.setValue = function (key, value) {
+ var context = new BaseContext(self._currentContext);
+ context._currentContext.set(key, value);
+ return context;
+ };
+ self.deleteValue = function (key) {
+ var context = new BaseContext(self._currentContext);
+ context._currentContext.delete(key);
+ return context;
+ };
+ }
+ return BaseContext;
+}());
+/** The root context is used as the default parent context when there is no active context */
+exports.ROOT_CONTEXT = new BaseContext();
+//# sourceMappingURL=context.js.map
+
+/***/ }),
+
+/***/ 6504:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+//# sourceMappingURL=types.js.map
+
+/***/ }),
+
+/***/ 7978:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.DiagComponentLogger = void 0;
+var global_utils_1 = __nccwpck_require__(5135);
+/**
+ * Component Logger which is meant to be used as part of any component which
+ * will add automatically additional namespace in front of the log message.
+ * It will then forward all message to global diag logger
+ * @example
+ * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' });
+ * cLogger.debug('test');
+ * // @opentelemetry/instrumentation-http test
+ */
+var DiagComponentLogger = /** @class */ (function () {
+ function DiagComponentLogger(props) {
+ this._namespace = props.namespace || 'DiagComponentLogger';
+ }
+ DiagComponentLogger.prototype.debug = function () {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ return logProxy('debug', this._namespace, args);
+ };
+ DiagComponentLogger.prototype.error = function () {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ return logProxy('error', this._namespace, args);
+ };
+ DiagComponentLogger.prototype.info = function () {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ return logProxy('info', this._namespace, args);
+ };
+ DiagComponentLogger.prototype.warn = function () {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ return logProxy('warn', this._namespace, args);
+ };
+ DiagComponentLogger.prototype.verbose = function () {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ return logProxy('verbose', this._namespace, args);
+ };
+ return DiagComponentLogger;
+}());
+exports.DiagComponentLogger = DiagComponentLogger;
+function logProxy(funcName, namespace, args) {
+ var logger = global_utils_1.getGlobal('diag');
+ // shortcut if logger not set
+ if (!logger) {
+ return;
+ }
+ args.unshift(namespace);
+ return logger[funcName].apply(logger, args);
+}
+//# sourceMappingURL=ComponentLogger.js.map
+
+/***/ }),
+
+/***/ 3041:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.DiagConsoleLogger = void 0;
+var consoleMap = [
+ { n: 'error', c: 'error' },
+ { n: 'warn', c: 'warn' },
+ { n: 'info', c: 'info' },
+ { n: 'debug', c: 'debug' },
+ { n: 'verbose', c: 'trace' },
+];
+/**
+ * A simple Immutable Console based diagnostic logger which will output any messages to the Console.
+ * If you want to limit the amount of logging to a specific level or lower use the
+ * {@link createLogLevelDiagLogger}
+ */
+var DiagConsoleLogger = /** @class */ (function () {
+ function DiagConsoleLogger() {
+ function _consoleFunc(funcName) {
+ return function () {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ if (console) {
+ // Some environments only expose the console when the F12 developer console is open
+ // eslint-disable-next-line no-console
+ var theFunc = console[funcName];
+ if (typeof theFunc !== 'function') {
+ // Not all environments support all functions
+ // eslint-disable-next-line no-console
+ theFunc = console.log;
+ }
+ // One last final check
+ if (typeof theFunc === 'function') {
+ return theFunc.apply(console, args);
+ }
+ }
+ };
+ }
+ for (var i = 0; i < consoleMap.length; i++) {
+ this[consoleMap[i].n] = _consoleFunc(consoleMap[i].c);
+ }
+ }
+ return DiagConsoleLogger;
+}());
+exports.DiagConsoleLogger = DiagConsoleLogger;
+//# sourceMappingURL=consoleLogger.js.map
+
+/***/ }),
+
+/***/ 1634:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+__exportStar(__nccwpck_require__(3041), exports);
+__exportStar(__nccwpck_require__(8077), exports);
+//# sourceMappingURL=index.js.map
+
+/***/ }),
+
+/***/ 9639:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.createLogLevelDiagLogger = void 0;
+var types_1 = __nccwpck_require__(8077);
+function createLogLevelDiagLogger(maxLevel, logger) {
+ if (maxLevel < types_1.DiagLogLevel.NONE) {
+ maxLevel = types_1.DiagLogLevel.NONE;
+ }
+ else if (maxLevel > types_1.DiagLogLevel.ALL) {
+ maxLevel = types_1.DiagLogLevel.ALL;
+ }
+ // In case the logger is null or undefined
+ logger = logger || {};
+ function _filterFunc(funcName, theLevel) {
+ var theFunc = logger[funcName];
+ if (typeof theFunc === 'function' && maxLevel >= theLevel) {
+ return theFunc.bind(logger);
+ }
+ return function () { };
+ }
+ return {
+ error: _filterFunc('error', types_1.DiagLogLevel.ERROR),
+ warn: _filterFunc('warn', types_1.DiagLogLevel.WARN),
+ info: _filterFunc('info', types_1.DiagLogLevel.INFO),
+ debug: _filterFunc('debug', types_1.DiagLogLevel.DEBUG),
+ verbose: _filterFunc('verbose', types_1.DiagLogLevel.VERBOSE),
+ };
+}
+exports.createLogLevelDiagLogger = createLogLevelDiagLogger;
+//# sourceMappingURL=logLevelLogger.js.map
+
+/***/ }),
+
+/***/ 8077:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.DiagLogLevel = void 0;
+/**
+ * Defines the available internal logging levels for the diagnostic logger, the numeric values
+ * of the levels are defined to match the original values from the initial LogLevel to avoid
+ * compatibility/migration issues for any implementation that assume the numeric ordering.
+ */
+var DiagLogLevel;
+(function (DiagLogLevel) {
+ /** Diagnostic Logging level setting to disable all logging (except and forced logs) */
+ DiagLogLevel[DiagLogLevel["NONE"] = 0] = "NONE";
+ /** Identifies an error scenario */
+ DiagLogLevel[DiagLogLevel["ERROR"] = 30] = "ERROR";
+ /** Identifies a warning scenario */
+ DiagLogLevel[DiagLogLevel["WARN"] = 50] = "WARN";
+ /** General informational log message */
+ DiagLogLevel[DiagLogLevel["INFO"] = 60] = "INFO";
+ /** General debug log message */
+ DiagLogLevel[DiagLogLevel["DEBUG"] = 70] = "DEBUG";
+ /**
+ * Detailed trace level logging should only be used for development, should only be set
+ * in a development environment.
+ */
+ DiagLogLevel[DiagLogLevel["VERBOSE"] = 80] = "VERBOSE";
+ /** Used to set the logging level to include all logging */
+ DiagLogLevel[DiagLogLevel["ALL"] = 9999] = "ALL";
+})(DiagLogLevel = exports.DiagLogLevel || (exports.DiagLogLevel = {}));
+//# sourceMappingURL=types.js.map
+
+/***/ }),
+
+/***/ 5163:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.diag = exports.propagation = exports.trace = exports.context = exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = exports.isValidSpanId = exports.isValidTraceId = exports.isSpanContextValid = exports.baggageEntryMetadataFromString = void 0;
+__exportStar(__nccwpck_require__(1508), exports);
+var utils_1 = __nccwpck_require__(8136);
+Object.defineProperty(exports, "baggageEntryMetadataFromString", ({ enumerable: true, get: function () { return utils_1.baggageEntryMetadataFromString; } }));
+__exportStar(__nccwpck_require__(4447), exports);
+__exportStar(__nccwpck_require__(2358), exports);
+__exportStar(__nccwpck_require__(1634), exports);
+__exportStar(__nccwpck_require__(865), exports);
+__exportStar(__nccwpck_require__(7492), exports);
+__exportStar(__nccwpck_require__(4023), exports);
+__exportStar(__nccwpck_require__(3503), exports);
+__exportStar(__nccwpck_require__(2285), exports);
+__exportStar(__nccwpck_require__(9671), exports);
+__exportStar(__nccwpck_require__(3209), exports);
+__exportStar(__nccwpck_require__(5769), exports);
+__exportStar(__nccwpck_require__(1424), exports);
+__exportStar(__nccwpck_require__(4416), exports);
+__exportStar(__nccwpck_require__(955), exports);
+__exportStar(__nccwpck_require__(8845), exports);
+__exportStar(__nccwpck_require__(6905), exports);
+__exportStar(__nccwpck_require__(8384), exports);
+__exportStar(__nccwpck_require__(891), exports);
+__exportStar(__nccwpck_require__(3168), exports);
+var spancontext_utils_1 = __nccwpck_require__(9745);
+Object.defineProperty(exports, "isSpanContextValid", ({ enumerable: true, get: function () { return spancontext_utils_1.isSpanContextValid; } }));
+Object.defineProperty(exports, "isValidTraceId", ({ enumerable: true, get: function () { return spancontext_utils_1.isValidTraceId; } }));
+Object.defineProperty(exports, "isValidSpanId", ({ enumerable: true, get: function () { return spancontext_utils_1.isValidSpanId; } }));
+var invalid_span_constants_1 = __nccwpck_require__(1760);
+Object.defineProperty(exports, "INVALID_SPANID", ({ enumerable: true, get: function () { return invalid_span_constants_1.INVALID_SPANID; } }));
+Object.defineProperty(exports, "INVALID_TRACEID", ({ enumerable: true, get: function () { return invalid_span_constants_1.INVALID_TRACEID; } }));
+Object.defineProperty(exports, "INVALID_SPAN_CONTEXT", ({ enumerable: true, get: function () { return invalid_span_constants_1.INVALID_SPAN_CONTEXT; } }));
+__exportStar(__nccwpck_require__(8242), exports);
+__exportStar(__nccwpck_require__(6504), exports);
+var context_1 = __nccwpck_require__(7171);
+/** Entrypoint for context API */
+exports.context = context_1.ContextAPI.getInstance();
+var trace_1 = __nccwpck_require__(1539);
+/** Entrypoint for trace API */
+exports.trace = trace_1.TraceAPI.getInstance();
+var propagation_1 = __nccwpck_require__(9909);
+/** Entrypoint for propagation API */
+exports.propagation = propagation_1.PropagationAPI.getInstance();
+var diag_1 = __nccwpck_require__(1877);
+/**
+ * Entrypoint for Diag API.
+ * Defines Diagnostic handler used for internal diagnostic logging operations.
+ * The default provides a Noop DiagLogger implementation which may be changed via the
+ * diag.setLogger(logger: DiagLogger) function.
+ */
+exports.diag = diag_1.DiagAPI.instance();
+exports["default"] = {
+ trace: exports.trace,
+ context: exports.context,
+ propagation: exports.propagation,
+ diag: exports.diag,
+};
+//# sourceMappingURL=index.js.map
+
+/***/ }),
+
+/***/ 5135:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.unregisterGlobal = exports.getGlobal = exports.registerGlobal = void 0;
+var platform_1 = __nccwpck_require__(9957);
+var version_1 = __nccwpck_require__(8996);
+var semver_1 = __nccwpck_require__(1522);
+var major = version_1.VERSION.split('.')[0];
+var GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for("opentelemetry.js.api." + major);
+var _global = platform_1._globalThis;
+function registerGlobal(type, instance, diag, allowOverride) {
+ var _a;
+ if (allowOverride === void 0) { allowOverride = false; }
+ var api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) !== null && _a !== void 0 ? _a : {
+ version: version_1.VERSION,
+ });
+ if (!allowOverride && api[type]) {
+ // already registered an API of this type
+ var err = new Error("@opentelemetry/api: Attempted duplicate registration of API: " + type);
+ diag.error(err.stack || err.message);
+ return false;
+ }
+ if (api.version !== version_1.VERSION) {
+ // All registered APIs must be of the same version exactly
+ var err = new Error('@opentelemetry/api: All API registration versions must match');
+ diag.error(err.stack || err.message);
+ return false;
+ }
+ api[type] = instance;
+ diag.debug("@opentelemetry/api: Registered a global for " + type + " v" + version_1.VERSION + ".");
+ return true;
+}
+exports.registerGlobal = registerGlobal;
+function getGlobal(type) {
+ var _a, _b;
+ var globalVersion = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _a === void 0 ? void 0 : _a.version;
+ if (!globalVersion || !semver_1.isCompatible(globalVersion)) {
+ return;
+ }
+ return (_b = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _b === void 0 ? void 0 : _b[type];
+}
+exports.getGlobal = getGlobal;
+function unregisterGlobal(type, diag) {
+ diag.debug("@opentelemetry/api: Unregistering a global for " + type + " v" + version_1.VERSION + ".");
+ var api = _global[GLOBAL_OPENTELEMETRY_API_KEY];
+ if (api) {
+ delete api[type];
+ }
+}
+exports.unregisterGlobal = unregisterGlobal;
+//# sourceMappingURL=global-utils.js.map
+
+/***/ }),
+
+/***/ 1522:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.isCompatible = exports._makeCompatibilityCheck = void 0;
+var version_1 = __nccwpck_require__(8996);
+var re = /^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;
+/**
+ * Create a function to test an API version to see if it is compatible with the provided ownVersion.
+ *
+ * The returned function has the following semantics:
+ * - Exact match is always compatible
+ * - Major versions must match exactly
+ * - 1.x package cannot use global 2.x package
+ * - 2.x package cannot use global 1.x package
+ * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API
+ * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects
+ * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3
+ * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor
+ * - Patch and build tag differences are not considered at this time
+ *
+ * @param ownVersion version which should be checked against
+ */
+function _makeCompatibilityCheck(ownVersion) {
+ var acceptedVersions = new Set([ownVersion]);
+ var rejectedVersions = new Set();
+ var myVersionMatch = ownVersion.match(re);
+ if (!myVersionMatch) {
+ // we cannot guarantee compatibility so we always return noop
+ return function () { return false; };
+ }
+ var ownVersionParsed = {
+ major: +myVersionMatch[1],
+ minor: +myVersionMatch[2],
+ patch: +myVersionMatch[3],
+ prerelease: myVersionMatch[4],
+ };
+ // if ownVersion has a prerelease tag, versions must match exactly
+ if (ownVersionParsed.prerelease != null) {
+ return function isExactmatch(globalVersion) {
+ return globalVersion === ownVersion;
+ };
+ }
+ function _reject(v) {
+ rejectedVersions.add(v);
+ return false;
+ }
+ function _accept(v) {
+ acceptedVersions.add(v);
+ return true;
+ }
+ return function isCompatible(globalVersion) {
+ if (acceptedVersions.has(globalVersion)) {
+ return true;
+ }
+ if (rejectedVersions.has(globalVersion)) {
+ return false;
+ }
+ var globalVersionMatch = globalVersion.match(re);
+ if (!globalVersionMatch) {
+ // cannot parse other version
+ // we cannot guarantee compatibility so we always noop
+ return _reject(globalVersion);
+ }
+ var globalVersionParsed = {
+ major: +globalVersionMatch[1],
+ minor: +globalVersionMatch[2],
+ patch: +globalVersionMatch[3],
+ prerelease: globalVersionMatch[4],
+ };
+ // if globalVersion has a prerelease tag, versions must match exactly
+ if (globalVersionParsed.prerelease != null) {
+ return _reject(globalVersion);
+ }
+ // major versions must match
+ if (ownVersionParsed.major !== globalVersionParsed.major) {
+ return _reject(globalVersion);
+ }
+ if (ownVersionParsed.major === 0) {
+ if (ownVersionParsed.minor === globalVersionParsed.minor &&
+ ownVersionParsed.patch <= globalVersionParsed.patch) {
+ return _accept(globalVersion);
+ }
+ return _reject(globalVersion);
+ }
+ if (ownVersionParsed.minor <= globalVersionParsed.minor) {
+ return _accept(globalVersion);
+ }
+ return _reject(globalVersion);
+ };
+}
+exports._makeCompatibilityCheck = _makeCompatibilityCheck;
+/**
+ * Test an API version to see if it is compatible with this API.
+ *
+ * - Exact match is always compatible
+ * - Major versions must match exactly
+ * - 1.x package cannot use global 2.x package
+ * - 2.x package cannot use global 1.x package
+ * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API
+ * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects
+ * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3
+ * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor
+ * - Patch and build tag differences are not considered at this time
+ *
+ * @param version version of the API requesting an instance of the global API
+ */
+exports.isCompatible = _makeCompatibilityCheck(version_1.VERSION);
+//# sourceMappingURL=semver.js.map
+
+/***/ }),
+
+/***/ 9957:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+__exportStar(__nccwpck_require__(7200), exports);
+//# sourceMappingURL=index.js.map
+
+/***/ }),
+
+/***/ 9406:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports._globalThis = void 0;
+/** only globals that common to node and browsers are allowed */
+// eslint-disable-next-line node/no-unsupported-features/es-builtins
+exports._globalThis = typeof globalThis === 'object' ? globalThis : global;
+//# sourceMappingURL=globalThis.js.map
+
+/***/ }),
+
+/***/ 7200:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+__exportStar(__nccwpck_require__(9406), exports);
+//# sourceMappingURL=index.js.map
+
+/***/ }),
+
+/***/ 2368:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.NoopTextMapPropagator = void 0;
+/**
+ * No-op implementations of {@link TextMapPropagator}.
+ */
+var NoopTextMapPropagator = /** @class */ (function () {
+ function NoopTextMapPropagator() {
+ }
+ /** Noop inject function does nothing */
+ NoopTextMapPropagator.prototype.inject = function (_context, _carrier) { };
+ /** Noop extract function does nothing and returns the input context */
+ NoopTextMapPropagator.prototype.extract = function (context, _carrier) {
+ return context;
+ };
+ NoopTextMapPropagator.prototype.fields = function () {
+ return [];
+ };
+ return NoopTextMapPropagator;
+}());
+exports.NoopTextMapPropagator = NoopTextMapPropagator;
+//# sourceMappingURL=NoopTextMapPropagator.js.map
+
+/***/ }),
+
+/***/ 865:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.defaultTextMapSetter = exports.defaultTextMapGetter = void 0;
+exports.defaultTextMapGetter = {
+ get: function (carrier, key) {
+ if (carrier == null) {
+ return undefined;
+ }
+ return carrier[key];
+ },
+ keys: function (carrier) {
+ if (carrier == null) {
+ return [];
+ }
+ return Object.keys(carrier);
+ },
+};
+exports.defaultTextMapSetter = {
+ set: function (carrier, key, value) {
+ if (carrier == null) {
+ return;
+ }
+ carrier[key] = value;
+ },
+};
+//# sourceMappingURL=TextMapPropagator.js.map
+
+/***/ }),
+
+/***/ 1462:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.NonRecordingSpan = void 0;
+var invalid_span_constants_1 = __nccwpck_require__(1760);
+/**
+ * The NonRecordingSpan is the default {@link Span} that is used when no Span
+ * implementation is available. All operations are no-op including context
+ * propagation.
+ */
+var NonRecordingSpan = /** @class */ (function () {
+ function NonRecordingSpan(_spanContext) {
+ if (_spanContext === void 0) { _spanContext = invalid_span_constants_1.INVALID_SPAN_CONTEXT; }
+ this._spanContext = _spanContext;
+ }
+ // Returns a SpanContext.
+ NonRecordingSpan.prototype.spanContext = function () {
+ return this._spanContext;
+ };
+ // By default does nothing
+ NonRecordingSpan.prototype.setAttribute = function (_key, _value) {
+ return this;
+ };
+ // By default does nothing
+ NonRecordingSpan.prototype.setAttributes = function (_attributes) {
+ return this;
+ };
+ // By default does nothing
+ NonRecordingSpan.prototype.addEvent = function (_name, _attributes) {
+ return this;
+ };
+ // By default does nothing
+ NonRecordingSpan.prototype.setStatus = function (_status) {
+ return this;
+ };
+ // By default does nothing
+ NonRecordingSpan.prototype.updateName = function (_name) {
+ return this;
+ };
+ // By default does nothing
+ NonRecordingSpan.prototype.end = function (_endTime) { };
+ // isRecording always returns false for NonRecordingSpan.
+ NonRecordingSpan.prototype.isRecording = function () {
+ return false;
+ };
+ // By default does nothing
+ NonRecordingSpan.prototype.recordException = function (_exception, _time) { };
+ return NonRecordingSpan;
+}());
+exports.NonRecordingSpan = NonRecordingSpan;
+//# sourceMappingURL=NonRecordingSpan.js.map
+
+/***/ }),
+
+/***/ 7606:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.NoopTracer = void 0;
+var context_1 = __nccwpck_require__(7171);
+var context_utils_1 = __nccwpck_require__(3326);
+var NonRecordingSpan_1 = __nccwpck_require__(1462);
+var spancontext_utils_1 = __nccwpck_require__(9745);
+var context = context_1.ContextAPI.getInstance();
+/**
+ * No-op implementations of {@link Tracer}.
+ */
+var NoopTracer = /** @class */ (function () {
+ function NoopTracer() {
+ }
+ // startSpan starts a noop span.
+ NoopTracer.prototype.startSpan = function (name, options, context) {
+ var root = Boolean(options === null || options === void 0 ? void 0 : options.root);
+ if (root) {
+ return new NonRecordingSpan_1.NonRecordingSpan();
+ }
+ var parentFromContext = context && context_utils_1.getSpanContext(context);
+ if (isSpanContext(parentFromContext) &&
+ spancontext_utils_1.isSpanContextValid(parentFromContext)) {
+ return new NonRecordingSpan_1.NonRecordingSpan(parentFromContext);
+ }
+ else {
+ return new NonRecordingSpan_1.NonRecordingSpan();
+ }
+ };
+ NoopTracer.prototype.startActiveSpan = function (name, arg2, arg3, arg4) {
+ var opts;
+ var ctx;
+ var fn;
+ if (arguments.length < 2) {
+ return;
+ }
+ else if (arguments.length === 2) {
+ fn = arg2;
+ }
+ else if (arguments.length === 3) {
+ opts = arg2;
+ fn = arg3;
+ }
+ else {
+ opts = arg2;
+ ctx = arg3;
+ fn = arg4;
+ }
+ var parentContext = ctx !== null && ctx !== void 0 ? ctx : context.active();
+ var span = this.startSpan(name, opts, parentContext);
+ var contextWithSpanSet = context_utils_1.setSpan(parentContext, span);
+ return context.with(contextWithSpanSet, fn, undefined, span);
+ };
+ return NoopTracer;
+}());
+exports.NoopTracer = NoopTracer;
+function isSpanContext(spanContext) {
+ return (typeof spanContext === 'object' &&
+ typeof spanContext['spanId'] === 'string' &&
+ typeof spanContext['traceId'] === 'string' &&
+ typeof spanContext['traceFlags'] === 'number');
+}
+//# sourceMappingURL=NoopTracer.js.map
+
+/***/ }),
+
+/***/ 3259:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.NoopTracerProvider = void 0;
+var NoopTracer_1 = __nccwpck_require__(7606);
+/**
+ * An implementation of the {@link TracerProvider} which returns an impotent
+ * Tracer for all calls to `getTracer`.
+ *
+ * All operations are no-op.
+ */
+var NoopTracerProvider = /** @class */ (function () {
+ function NoopTracerProvider() {
+ }
+ NoopTracerProvider.prototype.getTracer = function (_name, _version) {
+ return new NoopTracer_1.NoopTracer();
+ };
+ return NoopTracerProvider;
+}());
+exports.NoopTracerProvider = NoopTracerProvider;
+//# sourceMappingURL=NoopTracerProvider.js.map
+
+/***/ }),
+
+/***/ 3503:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.ProxyTracer = void 0;
+var NoopTracer_1 = __nccwpck_require__(7606);
+var NOOP_TRACER = new NoopTracer_1.NoopTracer();
+/**
+ * Proxy tracer provided by the proxy tracer provider
+ */
+var ProxyTracer = /** @class */ (function () {
+ function ProxyTracer(_provider, name, version) {
+ this._provider = _provider;
+ this.name = name;
+ this.version = version;
+ }
+ ProxyTracer.prototype.startSpan = function (name, options, context) {
+ return this._getTracer().startSpan(name, options, context);
+ };
+ ProxyTracer.prototype.startActiveSpan = function (_name, _options, _context, _fn) {
+ var tracer = this._getTracer();
+ return Reflect.apply(tracer.startActiveSpan, tracer, arguments);
+ };
+ /**
+ * Try to get a tracer from the proxy tracer provider.
+ * If the proxy tracer provider has no delegate, return a noop tracer.
+ */
+ ProxyTracer.prototype._getTracer = function () {
+ if (this._delegate) {
+ return this._delegate;
+ }
+ var tracer = this._provider.getDelegateTracer(this.name, this.version);
+ if (!tracer) {
+ return NOOP_TRACER;
+ }
+ this._delegate = tracer;
+ return this._delegate;
+ };
+ return ProxyTracer;
+}());
+exports.ProxyTracer = ProxyTracer;
+//# sourceMappingURL=ProxyTracer.js.map
+
+/***/ }),
+
+/***/ 2285:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.ProxyTracerProvider = void 0;
+var ProxyTracer_1 = __nccwpck_require__(3503);
+var NoopTracerProvider_1 = __nccwpck_require__(3259);
+var NOOP_TRACER_PROVIDER = new NoopTracerProvider_1.NoopTracerProvider();
+/**
+ * Tracer provider which provides {@link ProxyTracer}s.
+ *
+ * Before a delegate is set, tracers provided are NoOp.
+ * When a delegate is set, traces are provided from the delegate.
+ * When a delegate is set after tracers have already been provided,
+ * all tracers already provided will use the provided delegate implementation.
+ */
+var ProxyTracerProvider = /** @class */ (function () {
+ function ProxyTracerProvider() {
+ }
+ /**
+ * Get a {@link ProxyTracer}
+ */
+ ProxyTracerProvider.prototype.getTracer = function (name, version) {
+ var _a;
+ return ((_a = this.getDelegateTracer(name, version)) !== null && _a !== void 0 ? _a : new ProxyTracer_1.ProxyTracer(this, name, version));
+ };
+ ProxyTracerProvider.prototype.getDelegate = function () {
+ var _a;
+ return (_a = this._delegate) !== null && _a !== void 0 ? _a : NOOP_TRACER_PROVIDER;
+ };
+ /**
+ * Set the delegate tracer provider
+ */
+ ProxyTracerProvider.prototype.setDelegate = function (delegate) {
+ this._delegate = delegate;
+ };
+ ProxyTracerProvider.prototype.getDelegateTracer = function (name, version) {
+ var _a;
+ return (_a = this._delegate) === null || _a === void 0 ? void 0 : _a.getTracer(name, version);
+ };
+ return ProxyTracerProvider;
+}());
+exports.ProxyTracerProvider = ProxyTracerProvider;
+//# sourceMappingURL=ProxyTracerProvider.js.map
+
+/***/ }),
+
+/***/ 9671:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+//# sourceMappingURL=Sampler.js.map
+
+/***/ }),
+
+/***/ 3209:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.SamplingDecision = void 0;
+/**
+ * A sampling decision that determines how a {@link Span} will be recorded
+ * and collected.
+ */
+var SamplingDecision;
+(function (SamplingDecision) {
+ /**
+ * `Span.isRecording() === false`, span will not be recorded and all events
+ * and attributes will be dropped.
+ */
+ SamplingDecision[SamplingDecision["NOT_RECORD"] = 0] = "NOT_RECORD";
+ /**
+ * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags}
+ * MUST NOT be set.
+ */
+ SamplingDecision[SamplingDecision["RECORD"] = 1] = "RECORD";
+ /**
+ * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags}
+ * MUST be set.
+ */
+ SamplingDecision[SamplingDecision["RECORD_AND_SAMPLED"] = 2] = "RECORD_AND_SAMPLED";
+})(SamplingDecision = exports.SamplingDecision || (exports.SamplingDecision = {}));
+//# sourceMappingURL=SamplingResult.js.map
+
+/***/ }),
+
+/***/ 955:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+//# sourceMappingURL=SpanOptions.js.map
+
+/***/ }),
+
+/***/ 7492:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+//# sourceMappingURL=attributes.js.map
+
+/***/ }),
+
+/***/ 3326:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.getSpanContext = exports.setSpanContext = exports.deleteSpan = exports.setSpan = exports.getSpan = void 0;
+var context_1 = __nccwpck_require__(8242);
+var NonRecordingSpan_1 = __nccwpck_require__(1462);
+/**
+ * span key
+ */
+var SPAN_KEY = context_1.createContextKey('OpenTelemetry Context Key SPAN');
+/**
+ * Return the span if one exists
+ *
+ * @param context context to get span from
+ */
+function getSpan(context) {
+ return context.getValue(SPAN_KEY) || undefined;
+}
+exports.getSpan = getSpan;
+/**
+ * Set the span on a context
+ *
+ * @param context context to use as parent
+ * @param span span to set active
+ */
+function setSpan(context, span) {
+ return context.setValue(SPAN_KEY, span);
+}
+exports.setSpan = setSpan;
+/**
+ * Remove current span stored in the context
+ *
+ * @param context context to delete span from
+ */
+function deleteSpan(context) {
+ return context.deleteValue(SPAN_KEY);
+}
+exports.deleteSpan = deleteSpan;
+/**
+ * Wrap span context in a NoopSpan and set as span in a new
+ * context
+ *
+ * @param context context to set active span on
+ * @param spanContext span context to be wrapped
+ */
+function setSpanContext(context, spanContext) {
+ return setSpan(context, new NonRecordingSpan_1.NonRecordingSpan(spanContext));
+}
+exports.setSpanContext = setSpanContext;
+/**
+ * Get the span context of the span if it exists.
+ *
+ * @param context context to get values from
+ */
+function getSpanContext(context) {
+ var _a;
+ return (_a = getSpan(context)) === null || _a === void 0 ? void 0 : _a.spanContext();
+}
+exports.getSpanContext = getSpanContext;
+//# sourceMappingURL=context-utils.js.map
+
+/***/ }),
+
+/***/ 1760:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = void 0;
+var trace_flags_1 = __nccwpck_require__(6905);
+exports.INVALID_SPANID = '0000000000000000';
+exports.INVALID_TRACEID = '00000000000000000000000000000000';
+exports.INVALID_SPAN_CONTEXT = {
+ traceId: exports.INVALID_TRACEID,
+ spanId: exports.INVALID_SPANID,
+ traceFlags: trace_flags_1.TraceFlags.NONE,
+};
+//# sourceMappingURL=invalid-span-constants.js.map
+
+/***/ }),
+
+/***/ 4023:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+//# sourceMappingURL=link.js.map
+
+/***/ }),
+
+/***/ 4416:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+//# sourceMappingURL=span.js.map
+
+/***/ }),
+
+/***/ 5769:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+//# sourceMappingURL=span_context.js.map
+
+/***/ }),
+
+/***/ 1424:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.SpanKind = void 0;
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var SpanKind;
+(function (SpanKind) {
+ /** Default value. Indicates that the span is used internally. */
+ SpanKind[SpanKind["INTERNAL"] = 0] = "INTERNAL";
+ /**
+ * Indicates that the span covers server-side handling of an RPC or other
+ * remote request.
+ */
+ SpanKind[SpanKind["SERVER"] = 1] = "SERVER";
+ /**
+ * Indicates that the span covers the client-side wrapper around an RPC or
+ * other remote request.
+ */
+ SpanKind[SpanKind["CLIENT"] = 2] = "CLIENT";
+ /**
+ * Indicates that the span describes producer sending a message to a
+ * broker. Unlike client and server, there is no direct critical path latency
+ * relationship between producer and consumer spans.
+ */
+ SpanKind[SpanKind["PRODUCER"] = 3] = "PRODUCER";
+ /**
+ * Indicates that the span describes consumer receiving a message from a
+ * broker. Unlike client and server, there is no direct critical path latency
+ * relationship between producer and consumer spans.
+ */
+ SpanKind[SpanKind["CONSUMER"] = 4] = "CONSUMER";
+})(SpanKind = exports.SpanKind || (exports.SpanKind = {}));
+//# sourceMappingURL=span_kind.js.map
+
+/***/ }),
+
+/***/ 9745:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.wrapSpanContext = exports.isSpanContextValid = exports.isValidSpanId = exports.isValidTraceId = void 0;
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var invalid_span_constants_1 = __nccwpck_require__(1760);
+var NonRecordingSpan_1 = __nccwpck_require__(1462);
+var VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i;
+var VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i;
+function isValidTraceId(traceId) {
+ return VALID_TRACEID_REGEX.test(traceId) && traceId !== invalid_span_constants_1.INVALID_TRACEID;
+}
+exports.isValidTraceId = isValidTraceId;
+function isValidSpanId(spanId) {
+ return VALID_SPANID_REGEX.test(spanId) && spanId !== invalid_span_constants_1.INVALID_SPANID;
+}
+exports.isValidSpanId = isValidSpanId;
+/**
+ * Returns true if this {@link SpanContext} is valid.
+ * @return true if this {@link SpanContext} is valid.
+ */
+function isSpanContextValid(spanContext) {
+ return (isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId));
+}
+exports.isSpanContextValid = isSpanContextValid;
+/**
+ * Wrap the given {@link SpanContext} in a new non-recording {@link Span}
+ *
+ * @param spanContext span context to be wrapped
+ * @returns a new non-recording {@link Span} with the provided context
+ */
+function wrapSpanContext(spanContext) {
+ return new NonRecordingSpan_1.NonRecordingSpan(spanContext);
+}
+exports.wrapSpanContext = wrapSpanContext;
+//# sourceMappingURL=spancontext-utils.js.map
+
+/***/ }),
+
+/***/ 8845:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.SpanStatusCode = void 0;
+/**
+ * An enumeration of status codes.
+ */
+var SpanStatusCode;
+(function (SpanStatusCode) {
+ /**
+ * The default status.
+ */
+ SpanStatusCode[SpanStatusCode["UNSET"] = 0] = "UNSET";
+ /**
+ * The operation has been validated by an Application developer or
+ * Operator to have completed successfully.
+ */
+ SpanStatusCode[SpanStatusCode["OK"] = 1] = "OK";
+ /**
+ * The operation contains an error.
+ */
+ SpanStatusCode[SpanStatusCode["ERROR"] = 2] = "ERROR";
+})(SpanStatusCode = exports.SpanStatusCode || (exports.SpanStatusCode = {}));
+//# sourceMappingURL=status.js.map
+
+/***/ }),
+
+/***/ 6905:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.TraceFlags = void 0;
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var TraceFlags;
+(function (TraceFlags) {
+ /** Represents no flag set. */
+ TraceFlags[TraceFlags["NONE"] = 0] = "NONE";
+ /** Bit to represent whether trace is sampled in trace flags. */
+ TraceFlags[TraceFlags["SAMPLED"] = 1] = "SAMPLED";
+})(TraceFlags = exports.TraceFlags || (exports.TraceFlags = {}));
+//# sourceMappingURL=trace_flags.js.map
+
+/***/ }),
+
+/***/ 8384:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+//# sourceMappingURL=trace_state.js.map
+
+/***/ }),
+
+/***/ 3168:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+//# sourceMappingURL=tracer.js.map
+
+/***/ }),
+
+/***/ 891:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+//# sourceMappingURL=tracer_provider.js.map
+
+/***/ }),
+
+/***/ 8996:
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.VERSION = void 0;
+// this is autogenerated file, see scripts/version-update.js
+exports.VERSION = '1.0.4';
+//# sourceMappingURL=version.js.map
+
+/***/ }),
+
+/***/ 4812:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+module.exports =
+{
+ parallel : __nccwpck_require__(8210),
+ serial : __nccwpck_require__(445),
+ serialOrdered : __nccwpck_require__(3578)
+};
+
+
+/***/ }),
+
+/***/ 1700:
+/***/ ((module) => {
+
+// API
+module.exports = abort;
+
+/**
+ * Aborts leftover active jobs
+ *
+ * @param {object} state - current state object
+ */
+function abort(state)
+{
+ Object.keys(state.jobs).forEach(clean.bind(state));
+
+ // reset leftover jobs
+ state.jobs = {};
+}
+
+/**
+ * Cleans up leftover job by invoking abort function for the provided job id
+ *
+ * @this state
+ * @param {string|number} key - job id to abort
+ */
+function clean(key)
+{
+ if (typeof this.jobs[key] == 'function')
+ {
+ this.jobs[key]();
+ }
+}
+
+
+/***/ }),
+
+/***/ 2794:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+var defer = __nccwpck_require__(5295);
+
+// API
+module.exports = async;
+
+/**
+ * Runs provided callback asynchronously
+ * even if callback itself is not
+ *
+ * @param {function} callback - callback to invoke
+ * @returns {function} - augmented callback
+ */
+function async(callback)
+{
+ var isAsync = false;
+
+ // check if async happened
+ defer(function() { isAsync = true; });
+
+ return function async_callback(err, result)
+ {
+ if (isAsync)
+ {
+ callback(err, result);
+ }
+ else
+ {
+ defer(function nextTick_callback()
+ {
+ callback(err, result);
+ });
+ }
+ };
+}
+
+
+/***/ }),
+
+/***/ 5295:
+/***/ ((module) => {
+
+module.exports = defer;
+
+/**
+ * Runs provided function on next iteration of the event loop
+ *
+ * @param {function} fn - function to run
+ */
+function defer(fn)
+{
+ var nextTick = typeof setImmediate == 'function'
+ ? setImmediate
+ : (
+ typeof process == 'object' && typeof process.nextTick == 'function'
+ ? process.nextTick
+ : null
+ );
+
+ if (nextTick)
+ {
+ nextTick(fn);
+ }
+ else
+ {
+ setTimeout(fn, 0);
+ }
+}
+
+
+/***/ }),
+
+/***/ 9023:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+var async = __nccwpck_require__(2794)
+ , abort = __nccwpck_require__(1700)
+ ;
+
+// API
+module.exports = iterate;
+
+/**
+ * Iterates over each job object
+ *
+ * @param {array|object} list - array or object (named list) to iterate over
+ * @param {function} iterator - iterator to run
+ * @param {object} state - current job status
+ * @param {function} callback - invoked when all elements processed
+ */
+function iterate(list, iterator, state, callback)
+{
+ // store current index
+ var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;
+
+ state.jobs[key] = runJob(iterator, key, list[key], function(error, output)
+ {
+ // don't repeat yourself
+ // skip secondary callbacks
+ if (!(key in state.jobs))
+ {
+ return;
+ }
+
+ // clean up jobs
+ delete state.jobs[key];
+
+ if (error)
+ {
+ // don't process rest of the results
+ // stop still active jobs
+ // and reset the list
+ abort(state);
+ }
+ else
+ {
+ state.results[key] = output;
+ }
+
+ // return salvaged results
+ callback(error, state.results);
+ });
+}
+
+/**
+ * Runs iterator over provided job element
+ *
+ * @param {function} iterator - iterator to invoke
+ * @param {string|number} key - key/index of the element in the list of jobs
+ * @param {mixed} item - job description
+ * @param {function} callback - invoked after iterator is done with the job
+ * @returns {function|mixed} - job abort function or something else
+ */
+function runJob(iterator, key, item, callback)
+{
+ var aborter;
+
+ // allow shortcut if iterator expects only two arguments
+ if (iterator.length == 2)
+ {
+ aborter = iterator(item, async(callback));
+ }
+ // otherwise go with full three arguments
+ else
+ {
+ aborter = iterator(item, key, async(callback));
+ }
+
+ return aborter;
+}
+
+
+/***/ }),
+
+/***/ 2474:
+/***/ ((module) => {
+
+// API
+module.exports = state;
+
+/**
+ * Creates initial state object
+ * for iteration over list
+ *
+ * @param {array|object} list - list to iterate over
+ * @param {function|null} sortMethod - function to use for keys sort,
+ * or `null` to keep them as is
+ * @returns {object} - initial state object
+ */
+function state(list, sortMethod)
+{
+ var isNamedList = !Array.isArray(list)
+ , initState =
+ {
+ index : 0,
+ keyedList: isNamedList || sortMethod ? Object.keys(list) : null,
+ jobs : {},
+ results : isNamedList ? {} : [],
+ size : isNamedList ? Object.keys(list).length : list.length
+ }
+ ;
+
+ if (sortMethod)
+ {
+ // sort array keys based on it's values
+ // sort object's keys just on own merit
+ initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)
+ {
+ return sortMethod(list[a], list[b]);
+ });
+ }
+
+ return initState;
+}
+
+
+/***/ }),
+
+/***/ 7942:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+var abort = __nccwpck_require__(1700)
+ , async = __nccwpck_require__(2794)
+ ;
+
+// API
+module.exports = terminator;
+
+/**
+ * Terminates jobs in the attached state context
+ *
+ * @this AsyncKitState#
+ * @param {function} callback - final callback to invoke after termination
+ */
+function terminator(callback)
+{
+ if (!Object.keys(this.jobs).length)
+ {
+ return;
+ }
+
+ // fast forward iteration index
+ this.index = this.size;
+
+ // abort jobs
+ abort(this);
+
+ // send back results we have so far
+ async(callback)(null, this.results);
+}
+
+
+/***/ }),
+
+/***/ 8210:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+var iterate = __nccwpck_require__(9023)
+ , initState = __nccwpck_require__(2474)
+ , terminator = __nccwpck_require__(7942)
+ ;
+
+// Public API
+module.exports = parallel;
+
+/**
+ * Runs iterator over provided array elements in parallel
+ *
+ * @param {array|object} list - array or object (named list) to iterate over
+ * @param {function} iterator - iterator to run
+ * @param {function} callback - invoked when all elements processed
+ * @returns {function} - jobs terminator
+ */
+function parallel(list, iterator, callback)
+{
+ var state = initState(list);
+
+ while (state.index < (state['keyedList'] || list).length)
+ {
+ iterate(list, iterator, state, function(error, result)
+ {
+ if (error)
+ {
+ callback(error, result);
+ return;
+ }
+
+ // looks like it's the last one
+ if (Object.keys(state.jobs).length === 0)
+ {
+ callback(null, state.results);
+ return;
+ }
+ });
+
+ state.index++;
+ }
+
+ return terminator.bind(state, callback);
+}
+
+
+/***/ }),
+
+/***/ 445:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+var serialOrdered = __nccwpck_require__(3578);
+
+// Public API
+module.exports = serial;
+
+/**
+ * Runs iterator over provided array elements in series
+ *
+ * @param {array|object} list - array or object (named list) to iterate over
+ * @param {function} iterator - iterator to run
+ * @param {function} callback - invoked when all elements processed
+ * @returns {function} - jobs terminator
+ */
+function serial(list, iterator, callback)
+{
+ return serialOrdered(list, iterator, null, callback);
+}
+
+
+/***/ }),
+
+/***/ 3578:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+var iterate = __nccwpck_require__(9023)
+ , initState = __nccwpck_require__(2474)
+ , terminator = __nccwpck_require__(7942)
+ ;
+
+// Public API
+module.exports = serialOrdered;
+// sorting helpers
+module.exports.ascending = ascending;
+module.exports.descending = descending;
+
+/**
+ * Runs iterator over provided sorted array elements in series
+ *
+ * @param {array|object} list - array or object (named list) to iterate over
+ * @param {function} iterator - iterator to run
+ * @param {function} sortMethod - custom sort function
+ * @param {function} callback - invoked when all elements processed
+ * @returns {function} - jobs terminator
+ */
+function serialOrdered(list, iterator, sortMethod, callback)
+{
+ var state = initState(list, sortMethod);
+
+ iterate(list, iterator, state, function iteratorHandler(error, result)
+ {
+ if (error)
+ {
+ callback(error, result);
+ return;
+ }
+
+ state.index++;
+
+ // are we there yet?
+ if (state.index < (state['keyedList'] || list).length)
+ {
+ iterate(list, iterator, state, iteratorHandler);
+ return;
+ }
+
+ // done here
+ callback(null, state.results);
+ });
+
+ return terminator.bind(state, callback);
+}
+
+/*
+ * -- Sort methods
+ */
+
+/**
+ * sort helper to sort array elements in ascending order
+ *
+ * @param {mixed} a - an item to compare
+ * @param {mixed} b - an item to compare
+ * @returns {number} - comparison result
+ */
+function ascending(a, b)
+{
+ return a < b ? -1 : a > b ? 1 : 0;
+}
+
+/**
+ * sort helper to sort array elements in descending order
+ *
+ * @param {mixed} a - an item to compare
+ * @param {mixed} b - an item to compare
+ * @returns {number} - comparison result
+ */
+function descending(a, b)
+{
+ return -1 * ascending(a, b);
+}
+
+
+/***/ }),
+
+/***/ 9417:
+/***/ ((module) => {
+
+"use strict";
+
+module.exports = balanced;
+function balanced(a, b, str) {
+ if (a instanceof RegExp) a = maybeMatch(a, str);
+ if (b instanceof RegExp) b = maybeMatch(b, str);
+
+ var r = range(a, b, str);
+
+ return r && {
+ start: r[0],
+ end: r[1],
+ pre: str.slice(0, r[0]),
+ body: str.slice(r[0] + a.length, r[1]),
+ post: str.slice(r[1] + b.length)
+ };
+}
+
+function maybeMatch(reg, str) {
+ var m = str.match(reg);
+ return m ? m[0] : null;
+}
+
+balanced.range = range;
+function range(a, b, str) {
+ var begs, beg, left, right, result;
+ var ai = str.indexOf(a);
+ var bi = str.indexOf(b, ai + 1);
+ var i = ai;
+
+ if (ai >= 0 && bi > 0) {
+ begs = [];
+ left = str.length;
+
+ while (i >= 0 && !result) {
+ if (i == ai) {
+ begs.push(i);
+ ai = str.indexOf(a, i + 1);
+ } else if (begs.length == 1) {
+ result = [ begs.pop(), bi ];
+ } else {
+ beg = begs.pop();
+ if (beg < left) {
+ left = beg;
+ right = bi;
+ }
+
+ bi = str.indexOf(b, i + 1);
+ }
+
+ i = ai < bi && ai >= 0 ? ai : bi;
+ }
+
+ if (begs.length) {
+ result = [ left, right ];
+ }
+ }
+
+ return result;
+}
+
+
+/***/ }),
+
+/***/ 3717:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+var concatMap = __nccwpck_require__(6891);
+var balanced = __nccwpck_require__(9417);
+
+module.exports = expandTop;
+
+var escSlash = '\0SLASH'+Math.random()+'\0';
+var escOpen = '\0OPEN'+Math.random()+'\0';
+var escClose = '\0CLOSE'+Math.random()+'\0';
+var escComma = '\0COMMA'+Math.random()+'\0';
+var escPeriod = '\0PERIOD'+Math.random()+'\0';
+
+function numeric(str) {
+ return parseInt(str, 10) == str
+ ? parseInt(str, 10)
+ : str.charCodeAt(0);
+}
+
+function escapeBraces(str) {
+ return str.split('\\\\').join(escSlash)
+ .split('\\{').join(escOpen)
+ .split('\\}').join(escClose)
+ .split('\\,').join(escComma)
+ .split('\\.').join(escPeriod);
+}
+
+function unescapeBraces(str) {
+ return str.split(escSlash).join('\\')
+ .split(escOpen).join('{')
+ .split(escClose).join('}')
+ .split(escComma).join(',')
+ .split(escPeriod).join('.');
+}
+
+
+// Basically just str.split(","), but handling cases
+// where we have nested braced sections, which should be
+// treated as individual members, like {a,{b,c},d}
+function parseCommaParts(str) {
+ if (!str)
+ return [''];
+
+ var parts = [];
+ var m = balanced('{', '}', str);
+
+ if (!m)
+ return str.split(',');
+
+ var pre = m.pre;
+ var body = m.body;
+ var post = m.post;
+ var p = pre.split(',');
+
+ p[p.length-1] += '{' + body + '}';
+ var postParts = parseCommaParts(post);
+ if (post.length) {
+ p[p.length-1] += postParts.shift();
+ p.push.apply(p, postParts);
+ }
+
+ parts.push.apply(parts, p);
+
+ return parts;
+}
+
+function expandTop(str) {
+ if (!str)
+ return [];
+
+ // I don't know why Bash 4.3 does this, but it does.
+ // Anything starting with {} will have the first two bytes preserved
+ // but *only* at the top level, so {},a}b will not expand to anything,
+ // but a{},b}c will be expanded to [a}c,abc].
+ // One could argue that this is a bug in Bash, but since the goal of
+ // this module is to match Bash's rules, we escape a leading {}
+ if (str.substr(0, 2) === '{}') {
+ str = '\\{\\}' + str.substr(2);
+ }
+
+ return expand(escapeBraces(str), true).map(unescapeBraces);
+}
+
+function identity(e) {
+ return e;
+}
+
+function embrace(str) {
+ return '{' + str + '}';
+}
+function isPadded(el) {
+ return /^-?0\d/.test(el);
+}
+
+function lte(i, y) {
+ return i <= y;
+}
+function gte(i, y) {
+ return i >= y;
+}
+
+function expand(str, isTop) {
+ var expansions = [];
+
+ var m = balanced('{', '}', str);
+ if (!m || /\$$/.test(m.pre)) return [str];
+
+ var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
+ var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
+ var isSequence = isNumericSequence || isAlphaSequence;
+ var isOptions = m.body.indexOf(',') >= 0;
+ if (!isSequence && !isOptions) {
+ // {a},b}
+ if (m.post.match(/,.*\}/)) {
+ str = m.pre + '{' + m.body + escClose + m.post;
+ return expand(str);
+ }
+ return [str];
+ }
+
+ var n;
+ if (isSequence) {
+ n = m.body.split(/\.\./);
+ } else {
+ n = parseCommaParts(m.body);
+ if (n.length === 1) {
+ // x{{a,b}}y ==> x{a}y x{b}y
+ n = expand(n[0], false).map(embrace);
+ if (n.length === 1) {
+ var post = m.post.length
+ ? expand(m.post, false)
+ : [''];
+ return post.map(function(p) {
+ return m.pre + n[0] + p;
+ });
+ }
+ }
+ }
+
+ // at this point, n is the parts, and we know it's not a comma set
+ // with a single entry.
+
+ // no need to expand pre, since it is guaranteed to be free of brace-sets
+ var pre = m.pre;
+ var post = m.post.length
+ ? expand(m.post, false)
+ : [''];
+
+ var N;
+
+ if (isSequence) {
+ var x = numeric(n[0]);
+ var y = numeric(n[1]);
+ var width = Math.max(n[0].length, n[1].length)
+ var incr = n.length == 3
+ ? Math.abs(numeric(n[2]))
+ : 1;
+ var test = lte;
+ var reverse = y < x;
+ if (reverse) {
+ incr *= -1;
+ test = gte;
+ }
+ var pad = n.some(isPadded);
+
+ N = [];
+
+ for (var i = x; test(i, y); i += incr) {
+ var c;
+ if (isAlphaSequence) {
+ c = String.fromCharCode(i);
+ if (c === '\\')
+ c = '';
+ } else {
+ c = String(i);
+ if (pad) {
+ var need = width - c.length;
+ if (need > 0) {
+ var z = new Array(need + 1).join('0');
+ if (i < 0)
+ c = '-' + z + c.slice(1);
+ else
+ c = z + c;
+ }
+ }
+ }
+ N.push(c);
+ }
+ } else {
+ N = concatMap(n, function(el) { return expand(el, false) });
+ }
+
+ for (var j = 0; j < N.length; j++) {
+ for (var k = 0; k < post.length; k++) {
+ var expansion = pre + N[j] + post[k];
+ if (!isTop || isSequence || expansion)
+ expansions.push(expansion);
+ }
+ }
+
+ return expansions;
+}
+
+
+
+/***/ }),
+
+/***/ 5443:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+var util = __nccwpck_require__(3837);
+var Stream = (__nccwpck_require__(2781).Stream);
+var DelayedStream = __nccwpck_require__(8611);
+
+module.exports = CombinedStream;
+function CombinedStream() {
+ this.writable = false;
+ this.readable = true;
+ this.dataSize = 0;
+ this.maxDataSize = 2 * 1024 * 1024;
+ this.pauseStreams = true;
+
+ this._released = false;
+ this._streams = [];
+ this._currentStream = null;
+ this._insideLoop = false;
+ this._pendingNext = false;
+}
+util.inherits(CombinedStream, Stream);
+
+CombinedStream.create = function(options) {
+ var combinedStream = new this();
+
+ options = options || {};
+ for (var option in options) {
+ combinedStream[option] = options[option];
+ }
+
+ return combinedStream;
+};
+
+CombinedStream.isStreamLike = function(stream) {
+ return (typeof stream !== 'function')
+ && (typeof stream !== 'string')
+ && (typeof stream !== 'boolean')
+ && (typeof stream !== 'number')
+ && (!Buffer.isBuffer(stream));
+};
+
+CombinedStream.prototype.append = function(stream) {
+ var isStreamLike = CombinedStream.isStreamLike(stream);
+
+ if (isStreamLike) {
+ if (!(stream instanceof DelayedStream)) {
+ var newStream = DelayedStream.create(stream, {
+ maxDataSize: Infinity,
+ pauseStream: this.pauseStreams,
+ });
+ stream.on('data', this._checkDataSize.bind(this));
+ stream = newStream;
+ }
+
+ this._handleErrors(stream);
+
+ if (this.pauseStreams) {
+ stream.pause();
+ }
+ }
+
+ this._streams.push(stream);
+ return this;
+};
+
+CombinedStream.prototype.pipe = function(dest, options) {
+ Stream.prototype.pipe.call(this, dest, options);
+ this.resume();
+ return dest;
+};
+
+CombinedStream.prototype._getNext = function() {
+ this._currentStream = null;
+
+ if (this._insideLoop) {
+ this._pendingNext = true;
+ return; // defer call
+ }
+
+ this._insideLoop = true;
+ try {
+ do {
+ this._pendingNext = false;
+ this._realGetNext();
+ } while (this._pendingNext);
+ } finally {
+ this._insideLoop = false;
+ }
+};
+
+CombinedStream.prototype._realGetNext = function() {
+ var stream = this._streams.shift();
+
+
+ if (typeof stream == 'undefined') {
+ this.end();
+ return;
+ }
+
+ if (typeof stream !== 'function') {
+ this._pipeNext(stream);
+ return;
+ }
+
+ var getStream = stream;
+ getStream(function(stream) {
+ var isStreamLike = CombinedStream.isStreamLike(stream);
+ if (isStreamLike) {
+ stream.on('data', this._checkDataSize.bind(this));
+ this._handleErrors(stream);
+ }
+
+ this._pipeNext(stream);
+ }.bind(this));
+};
+
+CombinedStream.prototype._pipeNext = function(stream) {
+ this._currentStream = stream;
+
+ var isStreamLike = CombinedStream.isStreamLike(stream);
+ if (isStreamLike) {
+ stream.on('end', this._getNext.bind(this));
+ stream.pipe(this, {end: false});
+ return;
+ }
+
+ var value = stream;
+ this.write(value);
+ this._getNext();
+};
+
+CombinedStream.prototype._handleErrors = function(stream) {
+ var self = this;
+ stream.on('error', function(err) {
+ self._emitError(err);
+ });
+};
+
+CombinedStream.prototype.write = function(data) {
+ this.emit('data', data);
+};
+
+CombinedStream.prototype.pause = function() {
+ if (!this.pauseStreams) {
+ return;
+ }
+
+ if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();
+ this.emit('pause');
+};
+
+CombinedStream.prototype.resume = function() {
+ if (!this._released) {
+ this._released = true;
+ this.writable = true;
+ this._getNext();
+ }
+
+ if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();
+ this.emit('resume');
+};
+
+CombinedStream.prototype.end = function() {
+ this._reset();
+ this.emit('end');
+};
+
+CombinedStream.prototype.destroy = function() {
+ this._reset();
+ this.emit('close');
+};
+
+CombinedStream.prototype._reset = function() {
+ this.writable = false;
+ this._streams = [];
+ this._currentStream = null;
+};
+
+CombinedStream.prototype._checkDataSize = function() {
+ this._updateDataSize();
+ if (this.dataSize <= this.maxDataSize) {
+ return;
+ }
+
+ var message =
+ 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';
+ this._emitError(new Error(message));
+};
+
+CombinedStream.prototype._updateDataSize = function() {
+ this.dataSize = 0;
+
+ var self = this;
+ this._streams.forEach(function(stream) {
+ if (!stream.dataSize) {
+ return;
+ }
+
+ self.dataSize += stream.dataSize;
+ });
+
+ if (this._currentStream && this._currentStream.dataSize) {
+ this.dataSize += this._currentStream.dataSize;
+ }
+};
+
+CombinedStream.prototype._emitError = function(err) {
+ this._reset();
+ this.emit('error', err);
+};
+
+
+/***/ }),
+
+/***/ 6891:
+/***/ ((module) => {
+
+module.exports = function (xs, fn) {
+ var res = [];
+ for (var i = 0; i < xs.length; i++) {
+ var x = fn(xs[i], i);
+ if (isArray(x)) res.push.apply(res, x);
+ else res.push(x);
+ }
+ return res;
+};
+
+var isArray = Array.isArray || function (xs) {
+ return Object.prototype.toString.call(xs) === '[object Array]';
+};
+
+
+/***/ }),
+
+/***/ 8611:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+var Stream = (__nccwpck_require__(2781).Stream);
+var util = __nccwpck_require__(3837);
+
+module.exports = DelayedStream;
+function DelayedStream() {
+ this.source = null;
+ this.dataSize = 0;
+ this.maxDataSize = 1024 * 1024;
+ this.pauseStream = true;
+
+ this._maxDataSizeExceeded = false;
+ this._released = false;
+ this._bufferedEvents = [];
+}
+util.inherits(DelayedStream, Stream);
+
+DelayedStream.create = function(source, options) {
+ var delayedStream = new this();
+
+ options = options || {};
+ for (var option in options) {
+ delayedStream[option] = options[option];
+ }
+
+ delayedStream.source = source;
+
+ var realEmit = source.emit;
+ source.emit = function() {
+ delayedStream._handleEmit(arguments);
+ return realEmit.apply(source, arguments);
+ };
+
+ source.on('error', function() {});
+ if (delayedStream.pauseStream) {
+ source.pause();
+ }
+
+ return delayedStream;
+};
+
+Object.defineProperty(DelayedStream.prototype, 'readable', {
+ configurable: true,
+ enumerable: true,
+ get: function() {
+ return this.source.readable;
+ }
+});
+
+DelayedStream.prototype.setEncoding = function() {
+ return this.source.setEncoding.apply(this.source, arguments);
+};
+
+DelayedStream.prototype.resume = function() {
+ if (!this._released) {
+ this.release();
+ }
+
+ this.source.resume();
+};
+
+DelayedStream.prototype.pause = function() {
+ this.source.pause();
+};
+
+DelayedStream.prototype.release = function() {
+ this._released = true;
+
+ this._bufferedEvents.forEach(function(args) {
+ this.emit.apply(this, args);
+ }.bind(this));
+ this._bufferedEvents = [];
+};
+
+DelayedStream.prototype.pipe = function() {
+ var r = Stream.prototype.pipe.apply(this, arguments);
+ this.resume();
+ return r;
+};
+
+DelayedStream.prototype._handleEmit = function(args) {
+ if (this._released) {
+ this.emit.apply(this, args);
+ return;
+ }
+
+ if (args[0] === 'data') {
+ this.dataSize += args[1].length;
+ this._checkIfMaxDataSizeExceeded();
+ }
+
+ this._bufferedEvents.push(args);
+};
+
+DelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {
+ if (this._maxDataSizeExceeded) {
+ return;
+ }
+
+ if (this.dataSize <= this.maxDataSize) {
+ return;
+ }
+
+ this._maxDataSizeExceeded = true;
+ var message =
+ 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'
+ this.emit('error', new Error(message));
+};
+
+
+/***/ }),
+
+/***/ 1917:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+
+var yaml = __nccwpck_require__(916);
+
+
+module.exports = yaml;
+
+
+/***/ }),
+
+/***/ 916:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+
+var loader = __nccwpck_require__(5190);
+var dumper = __nccwpck_require__(3034);
+
+
+function deprecated(name) {
+ return function () {
+ throw new Error('Function ' + name + ' is deprecated and cannot be used.');
+ };
+}
+
+
+module.exports.Type = __nccwpck_require__(967);
+module.exports.Schema = __nccwpck_require__(6514);
+module.exports.FAILSAFE_SCHEMA = __nccwpck_require__(6037);
+module.exports.JSON_SCHEMA = __nccwpck_require__(1571);
+module.exports.CORE_SCHEMA = __nccwpck_require__(2183);
+module.exports.DEFAULT_SAFE_SCHEMA = __nccwpck_require__(8949);
+module.exports.DEFAULT_FULL_SCHEMA = __nccwpck_require__(6874);
+module.exports.load = loader.load;
+module.exports.loadAll = loader.loadAll;
+module.exports.safeLoad = loader.safeLoad;
+module.exports.safeLoadAll = loader.safeLoadAll;
+module.exports.dump = dumper.dump;
+module.exports.safeDump = dumper.safeDump;
+module.exports.YAMLException = __nccwpck_require__(5199);
+
+// Deprecated schema names from JS-YAML 2.0.x
+module.exports.MINIMAL_SCHEMA = __nccwpck_require__(6037);
+module.exports.SAFE_SCHEMA = __nccwpck_require__(8949);
+module.exports.DEFAULT_SCHEMA = __nccwpck_require__(6874);
+
+// Deprecated functions from JS-YAML 1.x.x
+module.exports.scan = deprecated('scan');
+module.exports.parse = deprecated('parse');
+module.exports.compose = deprecated('compose');
+module.exports.addConstructor = deprecated('addConstructor');
+
+
+/***/ }),
+
+/***/ 9136:
+/***/ ((module) => {
+
+"use strict";
+
+
+
+function isNothing(subject) {
+ return (typeof subject === 'undefined') || (subject === null);
+}
+
+
+function isObject(subject) {
+ return (typeof subject === 'object') && (subject !== null);
+}
+
+
+function toArray(sequence) {
+ if (Array.isArray(sequence)) return sequence;
+ else if (isNothing(sequence)) return [];
+
+ return [ sequence ];
+}
+
+
+function extend(target, source) {
+ var index, length, key, sourceKeys;
+
+ if (source) {
+ sourceKeys = Object.keys(source);
+
+ for (index = 0, length = sourceKeys.length; index < length; index += 1) {
+ key = sourceKeys[index];
+ target[key] = source[key];
+ }
+ }
+
+ return target;
+}
+
+
+function repeat(string, count) {
+ var result = '', cycle;
+
+ for (cycle = 0; cycle < count; cycle += 1) {
+ result += string;
+ }
+
+ return result;
+}
+
+
+function isNegativeZero(number) {
+ return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);
+}
+
+
+module.exports.isNothing = isNothing;
+module.exports.isObject = isObject;
+module.exports.toArray = toArray;
+module.exports.repeat = repeat;
+module.exports.isNegativeZero = isNegativeZero;
+module.exports.extend = extend;
+
+
+/***/ }),
+
+/***/ 3034:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+/*eslint-disable no-use-before-define*/
+
+var common = __nccwpck_require__(9136);
+var YAMLException = __nccwpck_require__(5199);
+var DEFAULT_FULL_SCHEMA = __nccwpck_require__(6874);
+var DEFAULT_SAFE_SCHEMA = __nccwpck_require__(8949);
+
+var _toString = Object.prototype.toString;
+var _hasOwnProperty = Object.prototype.hasOwnProperty;
+
+var CHAR_TAB = 0x09; /* Tab */
+var CHAR_LINE_FEED = 0x0A; /* LF */
+var CHAR_CARRIAGE_RETURN = 0x0D; /* CR */
+var CHAR_SPACE = 0x20; /* Space */
+var CHAR_EXCLAMATION = 0x21; /* ! */
+var CHAR_DOUBLE_QUOTE = 0x22; /* " */
+var CHAR_SHARP = 0x23; /* # */
+var CHAR_PERCENT = 0x25; /* % */
+var CHAR_AMPERSAND = 0x26; /* & */
+var CHAR_SINGLE_QUOTE = 0x27; /* ' */
+var CHAR_ASTERISK = 0x2A; /* * */
+var CHAR_COMMA = 0x2C; /* , */
+var CHAR_MINUS = 0x2D; /* - */
+var CHAR_COLON = 0x3A; /* : */
+var CHAR_EQUALS = 0x3D; /* = */
+var CHAR_GREATER_THAN = 0x3E; /* > */
+var CHAR_QUESTION = 0x3F; /* ? */
+var CHAR_COMMERCIAL_AT = 0x40; /* @ */
+var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */
+var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */
+var CHAR_GRAVE_ACCENT = 0x60; /* ` */
+var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */
+var CHAR_VERTICAL_LINE = 0x7C; /* | */
+var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */
+
+var ESCAPE_SEQUENCES = {};
+
+ESCAPE_SEQUENCES[0x00] = '\\0';
+ESCAPE_SEQUENCES[0x07] = '\\a';
+ESCAPE_SEQUENCES[0x08] = '\\b';
+ESCAPE_SEQUENCES[0x09] = '\\t';
+ESCAPE_SEQUENCES[0x0A] = '\\n';
+ESCAPE_SEQUENCES[0x0B] = '\\v';
+ESCAPE_SEQUENCES[0x0C] = '\\f';
+ESCAPE_SEQUENCES[0x0D] = '\\r';
+ESCAPE_SEQUENCES[0x1B] = '\\e';
+ESCAPE_SEQUENCES[0x22] = '\\"';
+ESCAPE_SEQUENCES[0x5C] = '\\\\';
+ESCAPE_SEQUENCES[0x85] = '\\N';
+ESCAPE_SEQUENCES[0xA0] = '\\_';
+ESCAPE_SEQUENCES[0x2028] = '\\L';
+ESCAPE_SEQUENCES[0x2029] = '\\P';
+
+var DEPRECATED_BOOLEANS_SYNTAX = [
+ 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',
+ 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'
+];
+
+function compileStyleMap(schema, map) {
+ var result, keys, index, length, tag, style, type;
+
+ if (map === null) return {};
+
+ result = {};
+ keys = Object.keys(map);
+
+ for (index = 0, length = keys.length; index < length; index += 1) {
+ tag = keys[index];
+ style = String(map[tag]);
+
+ if (tag.slice(0, 2) === '!!') {
+ tag = 'tag:yaml.org,2002:' + tag.slice(2);
+ }
+ type = schema.compiledTypeMap['fallback'][tag];
+
+ if (type && _hasOwnProperty.call(type.styleAliases, style)) {
+ style = type.styleAliases[style];
+ }
+
+ result[tag] = style;
+ }
+
+ return result;
+}
+
+function encodeHex(character) {
+ var string, handle, length;
+
+ string = character.toString(16).toUpperCase();
+
+ if (character <= 0xFF) {
+ handle = 'x';
+ length = 2;
+ } else if (character <= 0xFFFF) {
+ handle = 'u';
+ length = 4;
+ } else if (character <= 0xFFFFFFFF) {
+ handle = 'U';
+ length = 8;
+ } else {
+ throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF');
+ }
+
+ return '\\' + handle + common.repeat('0', length - string.length) + string;
+}
+
+function State(options) {
+ this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;
+ this.indent = Math.max(1, (options['indent'] || 2));
+ this.noArrayIndent = options['noArrayIndent'] || false;
+ this.skipInvalid = options['skipInvalid'] || false;
+ this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);
+ this.styleMap = compileStyleMap(this.schema, options['styles'] || null);
+ this.sortKeys = options['sortKeys'] || false;
+ this.lineWidth = options['lineWidth'] || 80;
+ this.noRefs = options['noRefs'] || false;
+ this.noCompatMode = options['noCompatMode'] || false;
+ this.condenseFlow = options['condenseFlow'] || false;
+
+ this.implicitTypes = this.schema.compiledImplicit;
+ this.explicitTypes = this.schema.compiledExplicit;
+
+ this.tag = null;
+ this.result = '';
+
+ this.duplicates = [];
+ this.usedDuplicates = null;
+}
+
+// Indents every line in a string. Empty lines (\n only) are not indented.
+function indentString(string, spaces) {
+ var ind = common.repeat(' ', spaces),
+ position = 0,
+ next = -1,
+ result = '',
+ line,
+ length = string.length;
+
+ while (position < length) {
+ next = string.indexOf('\n', position);
+ if (next === -1) {
+ line = string.slice(position);
+ position = length;
+ } else {
+ line = string.slice(position, next + 1);
+ position = next + 1;
+ }
+
+ if (line.length && line !== '\n') result += ind;
+
+ result += line;
+ }
+
+ return result;
+}
+
+function generateNextLine(state, level) {
+ return '\n' + common.repeat(' ', state.indent * level);
+}
+
+function testImplicitResolving(state, str) {
+ var index, length, type;
+
+ for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {
+ type = state.implicitTypes[index];
+
+ if (type.resolve(str)) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
+// [33] s-white ::= s-space | s-tab
+function isWhitespace(c) {
+ return c === CHAR_SPACE || c === CHAR_TAB;
+}
+
+// Returns true if the character can be printed without escaping.
+// From YAML 1.2: "any allowed characters known to be non-printable
+// should also be escaped. [However,] This isn’t mandatory"
+// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029.
+function isPrintable(c) {
+ return (0x00020 <= c && c <= 0x00007E)
+ || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)
+ || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */)
+ || (0x10000 <= c && c <= 0x10FFFF);
+}
+
+// [34] ns-char ::= nb-char - s-white
+// [27] nb-char ::= c-printable - b-char - c-byte-order-mark
+// [26] b-char ::= b-line-feed | b-carriage-return
+// [24] b-line-feed ::= #xA /* LF */
+// [25] b-carriage-return ::= #xD /* CR */
+// [3] c-byte-order-mark ::= #xFEFF
+function isNsChar(c) {
+ return isPrintable(c) && !isWhitespace(c)
+ // byte-order-mark
+ && c !== 0xFEFF
+ // b-char
+ && c !== CHAR_CARRIAGE_RETURN
+ && c !== CHAR_LINE_FEED;
+}
+
+// Simplified test for values allowed after the first character in plain style.
+function isPlainSafe(c, prev) {
+ // Uses a subset of nb-char - c-flow-indicator - ":" - "#"
+ // where nb-char ::= c-printable - b-char - c-byte-order-mark.
+ return isPrintable(c) && c !== 0xFEFF
+ // - c-flow-indicator
+ && c !== CHAR_COMMA
+ && c !== CHAR_LEFT_SQUARE_BRACKET
+ && c !== CHAR_RIGHT_SQUARE_BRACKET
+ && c !== CHAR_LEFT_CURLY_BRACKET
+ && c !== CHAR_RIGHT_CURLY_BRACKET
+ // - ":" - "#"
+ // /* An ns-char preceding */ "#"
+ && c !== CHAR_COLON
+ && ((c !== CHAR_SHARP) || (prev && isNsChar(prev)));
+}
+
+// Simplified test for values allowed as the first character in plain style.
+function isPlainSafeFirst(c) {
+ // Uses a subset of ns-char - c-indicator
+ // where ns-char = nb-char - s-white.
+ return isPrintable(c) && c !== 0xFEFF
+ && !isWhitespace(c) // - s-white
+ // - (c-indicator ::=
+ // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”
+ && c !== CHAR_MINUS
+ && c !== CHAR_QUESTION
+ && c !== CHAR_COLON
+ && c !== CHAR_COMMA
+ && c !== CHAR_LEFT_SQUARE_BRACKET
+ && c !== CHAR_RIGHT_SQUARE_BRACKET
+ && c !== CHAR_LEFT_CURLY_BRACKET
+ && c !== CHAR_RIGHT_CURLY_BRACKET
+ // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"”
+ && c !== CHAR_SHARP
+ && c !== CHAR_AMPERSAND
+ && c !== CHAR_ASTERISK
+ && c !== CHAR_EXCLAMATION
+ && c !== CHAR_VERTICAL_LINE
+ && c !== CHAR_EQUALS
+ && c !== CHAR_GREATER_THAN
+ && c !== CHAR_SINGLE_QUOTE
+ && c !== CHAR_DOUBLE_QUOTE
+ // | “%” | “@” | “`”)
+ && c !== CHAR_PERCENT
+ && c !== CHAR_COMMERCIAL_AT
+ && c !== CHAR_GRAVE_ACCENT;
+}
+
+// Determines whether block indentation indicator is required.
+function needIndentIndicator(string) {
+ var leadingSpaceRe = /^\n* /;
+ return leadingSpaceRe.test(string);
+}
+
+var STYLE_PLAIN = 1,
+ STYLE_SINGLE = 2,
+ STYLE_LITERAL = 3,
+ STYLE_FOLDED = 4,
+ STYLE_DOUBLE = 5;
+
+// Determines which scalar styles are possible and returns the preferred style.
+// lineWidth = -1 => no limit.
+// Pre-conditions: str.length > 0.
+// Post-conditions:
+// STYLE_PLAIN or STYLE_SINGLE => no \n are in the string.
+// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).
+// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).
+function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) {
+ var i;
+ var char, prev_char;
+ var hasLineBreak = false;
+ var hasFoldableLine = false; // only checked if shouldTrackWidth
+ var shouldTrackWidth = lineWidth !== -1;
+ var previousLineBreak = -1; // count the first line correctly
+ var plain = isPlainSafeFirst(string.charCodeAt(0))
+ && !isWhitespace(string.charCodeAt(string.length - 1));
+
+ if (singleLineOnly) {
+ // Case: no block styles.
+ // Check for disallowed characters to rule out plain and single.
+ for (i = 0; i < string.length; i++) {
+ char = string.charCodeAt(i);
+ if (!isPrintable(char)) {
+ return STYLE_DOUBLE;
+ }
+ prev_char = i > 0 ? string.charCodeAt(i - 1) : null;
+ plain = plain && isPlainSafe(char, prev_char);
+ }
+ } else {
+ // Case: block styles permitted.
+ for (i = 0; i < string.length; i++) {
+ char = string.charCodeAt(i);
+ if (char === CHAR_LINE_FEED) {
+ hasLineBreak = true;
+ // Check if any line can be folded.
+ if (shouldTrackWidth) {
+ hasFoldableLine = hasFoldableLine ||
+ // Foldable line = too long, and not more-indented.
+ (i - previousLineBreak - 1 > lineWidth &&
+ string[previousLineBreak + 1] !== ' ');
+ previousLineBreak = i;
+ }
+ } else if (!isPrintable(char)) {
+ return STYLE_DOUBLE;
+ }
+ prev_char = i > 0 ? string.charCodeAt(i - 1) : null;
+ plain = plain && isPlainSafe(char, prev_char);
+ }
+ // in case the end is missing a \n
+ hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&
+ (i - previousLineBreak - 1 > lineWidth &&
+ string[previousLineBreak + 1] !== ' '));
+ }
+ // Although every style can represent \n without escaping, prefer block styles
+ // for multiline, since they're more readable and they don't add empty lines.
+ // Also prefer folding a super-long line.
+ if (!hasLineBreak && !hasFoldableLine) {
+ // Strings interpretable as another type have to be quoted;
+ // e.g. the string 'true' vs. the boolean true.
+ return plain && !testAmbiguousType(string)
+ ? STYLE_PLAIN : STYLE_SINGLE;
+ }
+ // Edge case: block indentation indicator can only have one digit.
+ if (indentPerLevel > 9 && needIndentIndicator(string)) {
+ return STYLE_DOUBLE;
+ }
+ // At this point we know block styles are valid.
+ // Prefer literal style unless we want to fold.
+ return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;
+}
+
+// Note: line breaking/folding is implemented for only the folded style.
+// NB. We drop the last trailing newline (if any) of a returned block scalar
+// since the dumper adds its own newline. This always works:
+// • No ending newline => unaffected; already using strip "-" chomping.
+// • Ending newline => removed then restored.
+// Importantly, this keeps the "+" chomp indicator from gaining an extra line.
+function writeScalar(state, string, level, iskey) {
+ state.dump = (function () {
+ if (string.length === 0) {
+ return "''";
+ }
+ if (!state.noCompatMode &&
+ DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1) {
+ return "'" + string + "'";
+ }
+
+ var indent = state.indent * Math.max(1, level); // no 0-indent scalars
+ // As indentation gets deeper, let the width decrease monotonically
+ // to the lower bound min(state.lineWidth, 40).
+ // Note that this implies
+ // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.
+ // state.lineWidth > 40 + state.indent: width decreases until the lower bound.
+ // This behaves better than a constant minimum width which disallows narrower options,
+ // or an indent threshold which causes the width to suddenly increase.
+ var lineWidth = state.lineWidth === -1
+ ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);
+
+ // Without knowing if keys are implicit/explicit, assume implicit for safety.
+ var singleLineOnly = iskey
+ // No block styles in flow mode.
+ || (state.flowLevel > -1 && level >= state.flowLevel);
+ function testAmbiguity(string) {
+ return testImplicitResolving(state, string);
+ }
+
+ switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) {
+ case STYLE_PLAIN:
+ return string;
+ case STYLE_SINGLE:
+ return "'" + string.replace(/'/g, "''") + "'";
+ case STYLE_LITERAL:
+ return '|' + blockHeader(string, state.indent)
+ + dropEndingNewline(indentString(string, indent));
+ case STYLE_FOLDED:
+ return '>' + blockHeader(string, state.indent)
+ + dropEndingNewline(indentString(foldString(string, lineWidth), indent));
+ case STYLE_DOUBLE:
+ return '"' + escapeString(string, lineWidth) + '"';
+ default:
+ throw new YAMLException('impossible error: invalid scalar style');
+ }
+ }());
+}
+
+// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.
+function blockHeader(string, indentPerLevel) {
+ var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';
+
+ // note the special case: the string '\n' counts as a "trailing" empty line.
+ var clip = string[string.length - 1] === '\n';
+ var keep = clip && (string[string.length - 2] === '\n' || string === '\n');
+ var chomp = keep ? '+' : (clip ? '' : '-');
+
+ return indentIndicator + chomp + '\n';
+}
+
+// (See the note for writeScalar.)
+function dropEndingNewline(string) {
+ return string[string.length - 1] === '\n' ? string.slice(0, -1) : string;
+}
+
+// Note: a long line without a suitable break point will exceed the width limit.
+// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.
+function foldString(string, width) {
+ // In folded style, $k$ consecutive newlines output as $k+1$ newlines—
+ // unless they're before or after a more-indented line, or at the very
+ // beginning or end, in which case $k$ maps to $k$.
+ // Therefore, parse each chunk as newline(s) followed by a content line.
+ var lineRe = /(\n+)([^\n]*)/g;
+
+ // first line (possibly an empty line)
+ var result = (function () {
+ var nextLF = string.indexOf('\n');
+ nextLF = nextLF !== -1 ? nextLF : string.length;
+ lineRe.lastIndex = nextLF;
+ return foldLine(string.slice(0, nextLF), width);
+ }());
+ // If we haven't reached the first content line yet, don't add an extra \n.
+ var prevMoreIndented = string[0] === '\n' || string[0] === ' ';
+ var moreIndented;
+
+ // rest of the lines
+ var match;
+ while ((match = lineRe.exec(string))) {
+ var prefix = match[1], line = match[2];
+ moreIndented = (line[0] === ' ');
+ result += prefix
+ + (!prevMoreIndented && !moreIndented && line !== ''
+ ? '\n' : '')
+ + foldLine(line, width);
+ prevMoreIndented = moreIndented;
+ }
+
+ return result;
+}
+
+// Greedy line breaking.
+// Picks the longest line under the limit each time,
+// otherwise settles for the shortest line over the limit.
+// NB. More-indented lines *cannot* be folded, as that would add an extra \n.
+function foldLine(line, width) {
+ if (line === '' || line[0] === ' ') return line;
+
+ // Since a more-indented line adds a \n, breaks can't be followed by a space.
+ var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.
+ var match;
+ // start is an inclusive index. end, curr, and next are exclusive.
+ var start = 0, end, curr = 0, next = 0;
+ var result = '';
+
+ // Invariants: 0 <= start <= length-1.
+ // 0 <= curr <= next <= max(0, length-2). curr - start <= width.
+ // Inside the loop:
+ // A match implies length >= 2, so curr and next are <= length-2.
+ while ((match = breakRe.exec(line))) {
+ next = match.index;
+ // maintain invariant: curr - start <= width
+ if (next - start > width) {
+ end = (curr > start) ? curr : next; // derive end <= length-2
+ result += '\n' + line.slice(start, end);
+ // skip the space that was output as \n
+ start = end + 1; // derive start <= length-1
+ }
+ curr = next;
+ }
+
+ // By the invariants, start <= length-1, so there is something left over.
+ // It is either the whole string or a part starting from non-whitespace.
+ result += '\n';
+ // Insert a break if the remainder is too long and there is a break available.
+ if (line.length - start > width && curr > start) {
+ result += line.slice(start, curr) + '\n' + line.slice(curr + 1);
+ } else {
+ result += line.slice(start);
+ }
+
+ return result.slice(1); // drop extra \n joiner
+}
+
+// Escapes a double-quoted string.
+function escapeString(string) {
+ var result = '';
+ var char, nextChar;
+ var escapeSeq;
+
+ for (var i = 0; i < string.length; i++) {
+ char = string.charCodeAt(i);
+ // Check for surrogate pairs (reference Unicode 3.0 section "3.7 Surrogates").
+ if (char >= 0xD800 && char <= 0xDBFF/* high surrogate */) {
+ nextChar = string.charCodeAt(i + 1);
+ if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) {
+ // Combine the surrogate pair and store it escaped.
+ result += encodeHex((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000);
+ // Advance index one extra since we already used that char here.
+ i++; continue;
+ }
+ }
+ escapeSeq = ESCAPE_SEQUENCES[char];
+ result += !escapeSeq && isPrintable(char)
+ ? string[i]
+ : escapeSeq || encodeHex(char);
+ }
+
+ return result;
+}
+
+function writeFlowSequence(state, level, object) {
+ var _result = '',
+ _tag = state.tag,
+ index,
+ length;
+
+ for (index = 0, length = object.length; index < length; index += 1) {
+ // Write only valid elements.
+ if (writeNode(state, level, object[index], false, false)) {
+ if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : '');
+ _result += state.dump;
+ }
+ }
+
+ state.tag = _tag;
+ state.dump = '[' + _result + ']';
+}
+
+function writeBlockSequence(state, level, object, compact) {
+ var _result = '',
+ _tag = state.tag,
+ index,
+ length;
+
+ for (index = 0, length = object.length; index < length; index += 1) {
+ // Write only valid elements.
+ if (writeNode(state, level + 1, object[index], true, true)) {
+ if (!compact || index !== 0) {
+ _result += generateNextLine(state, level);
+ }
+
+ if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
+ _result += '-';
+ } else {
+ _result += '- ';
+ }
+
+ _result += state.dump;
+ }
+ }
+
+ state.tag = _tag;
+ state.dump = _result || '[]'; // Empty sequence if no valid values.
+}
+
+function writeFlowMapping(state, level, object) {
+ var _result = '',
+ _tag = state.tag,
+ objectKeyList = Object.keys(object),
+ index,
+ length,
+ objectKey,
+ objectValue,
+ pairBuffer;
+
+ for (index = 0, length = objectKeyList.length; index < length; index += 1) {
+
+ pairBuffer = '';
+ if (index !== 0) pairBuffer += ', ';
+
+ if (state.condenseFlow) pairBuffer += '"';
+
+ objectKey = objectKeyList[index];
+ objectValue = object[objectKey];
+
+ if (!writeNode(state, level, objectKey, false, false)) {
+ continue; // Skip this pair because of invalid key;
+ }
+
+ if (state.dump.length > 1024) pairBuffer += '? ';
+
+ pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' ');
+
+ if (!writeNode(state, level, objectValue, false, false)) {
+ continue; // Skip this pair because of invalid value.
+ }
+
+ pairBuffer += state.dump;
+
+ // Both key and value are valid.
+ _result += pairBuffer;
+ }
+
+ state.tag = _tag;
+ state.dump = '{' + _result + '}';
+}
+
+function writeBlockMapping(state, level, object, compact) {
+ var _result = '',
+ _tag = state.tag,
+ objectKeyList = Object.keys(object),
+ index,
+ length,
+ objectKey,
+ objectValue,
+ explicitPair,
+ pairBuffer;
+
+ // Allow sorting keys so that the output file is deterministic
+ if (state.sortKeys === true) {
+ // Default sorting
+ objectKeyList.sort();
+ } else if (typeof state.sortKeys === 'function') {
+ // Custom sort function
+ objectKeyList.sort(state.sortKeys);
+ } else if (state.sortKeys) {
+ // Something is wrong
+ throw new YAMLException('sortKeys must be a boolean or a function');
+ }
+
+ for (index = 0, length = objectKeyList.length; index < length; index += 1) {
+ pairBuffer = '';
+
+ if (!compact || index !== 0) {
+ pairBuffer += generateNextLine(state, level);
+ }
+
+ objectKey = objectKeyList[index];
+ objectValue = object[objectKey];
+
+ if (!writeNode(state, level + 1, objectKey, true, true, true)) {
+ continue; // Skip this pair because of invalid key.
+ }
+
+ explicitPair = (state.tag !== null && state.tag !== '?') ||
+ (state.dump && state.dump.length > 1024);
+
+ if (explicitPair) {
+ if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
+ pairBuffer += '?';
+ } else {
+ pairBuffer += '? ';
+ }
+ }
+
+ pairBuffer += state.dump;
+
+ if (explicitPair) {
+ pairBuffer += generateNextLine(state, level);
+ }
+
+ if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {
+ continue; // Skip this pair because of invalid value.
+ }
+
+ if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
+ pairBuffer += ':';
+ } else {
+ pairBuffer += ': ';
+ }
+
+ pairBuffer += state.dump;
+
+ // Both key and value are valid.
+ _result += pairBuffer;
+ }
+
+ state.tag = _tag;
+ state.dump = _result || '{}'; // Empty mapping if no valid pairs.
+}
+
+function detectType(state, object, explicit) {
+ var _result, typeList, index, length, type, style;
+
+ typeList = explicit ? state.explicitTypes : state.implicitTypes;
+
+ for (index = 0, length = typeList.length; index < length; index += 1) {
+ type = typeList[index];
+
+ if ((type.instanceOf || type.predicate) &&
+ (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&
+ (!type.predicate || type.predicate(object))) {
+
+ state.tag = explicit ? type.tag : '?';
+
+ if (type.represent) {
+ style = state.styleMap[type.tag] || type.defaultStyle;
+
+ if (_toString.call(type.represent) === '[object Function]') {
+ _result = type.represent(object, style);
+ } else if (_hasOwnProperty.call(type.represent, style)) {
+ _result = type.represent[style](object, style);
+ } else {
+ throw new YAMLException('!<' + type.tag + '> tag resolver accepts not "' + style + '" style');
+ }
+
+ state.dump = _result;
+ }
+
+ return true;
+ }
+ }
+
+ return false;
+}
+
+// Serializes `object` and writes it to global `result`.
+// Returns true on success, or false on invalid object.
+//
+function writeNode(state, level, object, block, compact, iskey) {
+ state.tag = null;
+ state.dump = object;
+
+ if (!detectType(state, object, false)) {
+ detectType(state, object, true);
+ }
+
+ var type = _toString.call(state.dump);
+
+ if (block) {
+ block = (state.flowLevel < 0 || state.flowLevel > level);
+ }
+
+ var objectOrArray = type === '[object Object]' || type === '[object Array]',
+ duplicateIndex,
+ duplicate;
+
+ if (objectOrArray) {
+ duplicateIndex = state.duplicates.indexOf(object);
+ duplicate = duplicateIndex !== -1;
+ }
+
+ if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {
+ compact = false;
+ }
+
+ if (duplicate && state.usedDuplicates[duplicateIndex]) {
+ state.dump = '*ref_' + duplicateIndex;
+ } else {
+ if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {
+ state.usedDuplicates[duplicateIndex] = true;
+ }
+ if (type === '[object Object]') {
+ if (block && (Object.keys(state.dump).length !== 0)) {
+ writeBlockMapping(state, level, state.dump, compact);
+ if (duplicate) {
+ state.dump = '&ref_' + duplicateIndex + state.dump;
+ }
+ } else {
+ writeFlowMapping(state, level, state.dump);
+ if (duplicate) {
+ state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;
+ }
+ }
+ } else if (type === '[object Array]') {
+ var arrayLevel = (state.noArrayIndent && (level > 0)) ? level - 1 : level;
+ if (block && (state.dump.length !== 0)) {
+ writeBlockSequence(state, arrayLevel, state.dump, compact);
+ if (duplicate) {
+ state.dump = '&ref_' + duplicateIndex + state.dump;
+ }
+ } else {
+ writeFlowSequence(state, arrayLevel, state.dump);
+ if (duplicate) {
+ state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;
+ }
+ }
+ } else if (type === '[object String]') {
+ if (state.tag !== '?') {
+ writeScalar(state, state.dump, level, iskey);
+ }
+ } else {
+ if (state.skipInvalid) return false;
+ throw new YAMLException('unacceptable kind of an object to dump ' + type);
+ }
+
+ if (state.tag !== null && state.tag !== '?') {
+ state.dump = '!<' + state.tag + '> ' + state.dump;
+ }
+ }
+
+ return true;
+}
+
+function getDuplicateReferences(object, state) {
+ var objects = [],
+ duplicatesIndexes = [],
+ index,
+ length;
+
+ inspectNode(object, objects, duplicatesIndexes);
+
+ for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {
+ state.duplicates.push(objects[duplicatesIndexes[index]]);
+ }
+ state.usedDuplicates = new Array(length);
+}
+
+function inspectNode(object, objects, duplicatesIndexes) {
+ var objectKeyList,
+ index,
+ length;
+
+ if (object !== null && typeof object === 'object') {
+ index = objects.indexOf(object);
+ if (index !== -1) {
+ if (duplicatesIndexes.indexOf(index) === -1) {
+ duplicatesIndexes.push(index);
+ }
+ } else {
+ objects.push(object);
+
+ if (Array.isArray(object)) {
+ for (index = 0, length = object.length; index < length; index += 1) {
+ inspectNode(object[index], objects, duplicatesIndexes);
+ }
+ } else {
+ objectKeyList = Object.keys(object);
+
+ for (index = 0, length = objectKeyList.length; index < length; index += 1) {
+ inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);
+ }
+ }
+ }
+ }
+}
+
+function dump(input, options) {
+ options = options || {};
+
+ var state = new State(options);
+
+ if (!state.noRefs) getDuplicateReferences(input, state);
+
+ if (writeNode(state, 0, input, true, true)) return state.dump + '\n';
+
+ return '';
+}
+
+function safeDump(input, options) {
+ return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));
+}
+
+module.exports.dump = dump;
+module.exports.safeDump = safeDump;
+
+
+/***/ }),
+
+/***/ 5199:
+/***/ ((module) => {
+
+"use strict";
+// YAML error class. http://stackoverflow.com/questions/8458984
+//
+
+
+function YAMLException(reason, mark) {
+ // Super constructor
+ Error.call(this);
+
+ this.name = 'YAMLException';
+ this.reason = reason;
+ this.mark = mark;
+ this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : '');
+
+ // Include stack trace in error object
+ if (Error.captureStackTrace) {
+ // Chrome and NodeJS
+ Error.captureStackTrace(this, this.constructor);
+ } else {
+ // FF, IE 10+ and Safari 6+. Fallback for others
+ this.stack = (new Error()).stack || '';
+ }
+}
+
+
+// Inherit from Error
+YAMLException.prototype = Object.create(Error.prototype);
+YAMLException.prototype.constructor = YAMLException;
+
+
+YAMLException.prototype.toString = function toString(compact) {
+ var result = this.name + ': ';
+
+ result += this.reason || '(unknown reason)';
+
+ if (!compact && this.mark) {
+ result += ' ' + this.mark.toString();
+ }
+
+ return result;
+};
+
+
+module.exports = YAMLException;
+
+
+/***/ }),
+
+/***/ 5190:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+/*eslint-disable max-len,no-use-before-define*/
+
+var common = __nccwpck_require__(9136);
+var YAMLException = __nccwpck_require__(5199);
+var Mark = __nccwpck_require__(5426);
+var DEFAULT_SAFE_SCHEMA = __nccwpck_require__(8949);
+var DEFAULT_FULL_SCHEMA = __nccwpck_require__(6874);
+
+
+var _hasOwnProperty = Object.prototype.hasOwnProperty;
+
+
+var CONTEXT_FLOW_IN = 1;
+var CONTEXT_FLOW_OUT = 2;
+var CONTEXT_BLOCK_IN = 3;
+var CONTEXT_BLOCK_OUT = 4;
+
+
+var CHOMPING_CLIP = 1;
+var CHOMPING_STRIP = 2;
+var CHOMPING_KEEP = 3;
+
+
+var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
+var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/;
+var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/;
+var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i;
+var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;
+
+
+function _class(obj) { return Object.prototype.toString.call(obj); }
+
+function is_EOL(c) {
+ return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);
+}
+
+function is_WHITE_SPACE(c) {
+ return (c === 0x09/* Tab */) || (c === 0x20/* Space */);
+}
+
+function is_WS_OR_EOL(c) {
+ return (c === 0x09/* Tab */) ||
+ (c === 0x20/* Space */) ||
+ (c === 0x0A/* LF */) ||
+ (c === 0x0D/* CR */);
+}
+
+function is_FLOW_INDICATOR(c) {
+ return c === 0x2C/* , */ ||
+ c === 0x5B/* [ */ ||
+ c === 0x5D/* ] */ ||
+ c === 0x7B/* { */ ||
+ c === 0x7D/* } */;
+}
+
+function fromHexCode(c) {
+ var lc;
+
+ if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {
+ return c - 0x30;
+ }
+
+ /*eslint-disable no-bitwise*/
+ lc = c | 0x20;
+
+ if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {
+ return lc - 0x61 + 10;
+ }
+
+ return -1;
+}
+
+function escapedHexLen(c) {
+ if (c === 0x78/* x */) { return 2; }
+ if (c === 0x75/* u */) { return 4; }
+ if (c === 0x55/* U */) { return 8; }
+ return 0;
+}
+
+function fromDecimalCode(c) {
+ if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {
+ return c - 0x30;
+ }
+
+ return -1;
+}
+
+function simpleEscapeSequence(c) {
+ /* eslint-disable indent */
+ return (c === 0x30/* 0 */) ? '\x00' :
+ (c === 0x61/* a */) ? '\x07' :
+ (c === 0x62/* b */) ? '\x08' :
+ (c === 0x74/* t */) ? '\x09' :
+ (c === 0x09/* Tab */) ? '\x09' :
+ (c === 0x6E/* n */) ? '\x0A' :
+ (c === 0x76/* v */) ? '\x0B' :
+ (c === 0x66/* f */) ? '\x0C' :
+ (c === 0x72/* r */) ? '\x0D' :
+ (c === 0x65/* e */) ? '\x1B' :
+ (c === 0x20/* Space */) ? ' ' :
+ (c === 0x22/* " */) ? '\x22' :
+ (c === 0x2F/* / */) ? '/' :
+ (c === 0x5C/* \ */) ? '\x5C' :
+ (c === 0x4E/* N */) ? '\x85' :
+ (c === 0x5F/* _ */) ? '\xA0' :
+ (c === 0x4C/* L */) ? '\u2028' :
+ (c === 0x50/* P */) ? '\u2029' : '';
+}
+
+function charFromCodepoint(c) {
+ if (c <= 0xFFFF) {
+ return String.fromCharCode(c);
+ }
+ // Encode UTF-16 surrogate pair
+ // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF
+ return String.fromCharCode(
+ ((c - 0x010000) >> 10) + 0xD800,
+ ((c - 0x010000) & 0x03FF) + 0xDC00
+ );
+}
+
+var simpleEscapeCheck = new Array(256); // integer, for fast access
+var simpleEscapeMap = new Array(256);
+for (var i = 0; i < 256; i++) {
+ simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;
+ simpleEscapeMap[i] = simpleEscapeSequence(i);
+}
+
+
+function State(input, options) {
+ this.input = input;
+
+ this.filename = options['filename'] || null;
+ this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;
+ this.onWarning = options['onWarning'] || null;
+ this.legacy = options['legacy'] || false;
+ this.json = options['json'] || false;
+ this.listener = options['listener'] || null;
+
+ this.implicitTypes = this.schema.compiledImplicit;
+ this.typeMap = this.schema.compiledTypeMap;
+
+ this.length = input.length;
+ this.position = 0;
+ this.line = 0;
+ this.lineStart = 0;
+ this.lineIndent = 0;
+
+ this.documents = [];
+
+ /*
+ this.version;
+ this.checkLineBreaks;
+ this.tagMap;
+ this.anchorMap;
+ this.tag;
+ this.anchor;
+ this.kind;
+ this.result;*/
+
+}
+
+
+function generateError(state, message) {
+ return new YAMLException(
+ message,
+ new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart)));
+}
+
+function throwError(state, message) {
+ throw generateError(state, message);
+}
+
+function throwWarning(state, message) {
+ if (state.onWarning) {
+ state.onWarning.call(null, generateError(state, message));
+ }
+}
+
+
+var directiveHandlers = {
+
+ YAML: function handleYamlDirective(state, name, args) {
+
+ var match, major, minor;
+
+ if (state.version !== null) {
+ throwError(state, 'duplication of %YAML directive');
+ }
+
+ if (args.length !== 1) {
+ throwError(state, 'YAML directive accepts exactly one argument');
+ }
+
+ match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]);
+
+ if (match === null) {
+ throwError(state, 'ill-formed argument of the YAML directive');
+ }
+
+ major = parseInt(match[1], 10);
+ minor = parseInt(match[2], 10);
+
+ if (major !== 1) {
+ throwError(state, 'unacceptable YAML version of the document');
+ }
+
+ state.version = args[0];
+ state.checkLineBreaks = (minor < 2);
+
+ if (minor !== 1 && minor !== 2) {
+ throwWarning(state, 'unsupported YAML version of the document');
+ }
+ },
+
+ TAG: function handleTagDirective(state, name, args) {
+
+ var handle, prefix;
+
+ if (args.length !== 2) {
+ throwError(state, 'TAG directive accepts exactly two arguments');
+ }
+
+ handle = args[0];
+ prefix = args[1];
+
+ if (!PATTERN_TAG_HANDLE.test(handle)) {
+ throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');
+ }
+
+ if (_hasOwnProperty.call(state.tagMap, handle)) {
+ throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle');
+ }
+
+ if (!PATTERN_TAG_URI.test(prefix)) {
+ throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');
+ }
+
+ state.tagMap[handle] = prefix;
+ }
+};
+
+
+function captureSegment(state, start, end, checkJson) {
+ var _position, _length, _character, _result;
+
+ if (start < end) {
+ _result = state.input.slice(start, end);
+
+ if (checkJson) {
+ for (_position = 0, _length = _result.length; _position < _length; _position += 1) {
+ _character = _result.charCodeAt(_position);
+ if (!(_character === 0x09 ||
+ (0x20 <= _character && _character <= 0x10FFFF))) {
+ throwError(state, 'expected valid JSON character');
+ }
+ }
+ } else if (PATTERN_NON_PRINTABLE.test(_result)) {
+ throwError(state, 'the stream contains non-printable characters');
+ }
+
+ state.result += _result;
+ }
+}
+
+function mergeMappings(state, destination, source, overridableKeys) {
+ var sourceKeys, key, index, quantity;
+
+ if (!common.isObject(source)) {
+ throwError(state, 'cannot merge mappings; the provided source object is unacceptable');
+ }
+
+ sourceKeys = Object.keys(source);
+
+ for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {
+ key = sourceKeys[index];
+
+ if (!_hasOwnProperty.call(destination, key)) {
+ destination[key] = source[key];
+ overridableKeys[key] = true;
+ }
+ }
+}
+
+function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) {
+ var index, quantity;
+
+ // The output is a plain object here, so keys can only be strings.
+ // We need to convert keyNode to a string, but doing so can hang the process
+ // (deeply nested arrays that explode exponentially using aliases).
+ if (Array.isArray(keyNode)) {
+ keyNode = Array.prototype.slice.call(keyNode);
+
+ for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {
+ if (Array.isArray(keyNode[index])) {
+ throwError(state, 'nested arrays are not supported inside keys');
+ }
+
+ if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {
+ keyNode[index] = '[object Object]';
+ }
+ }
+ }
+
+ // Avoid code execution in load() via toString property
+ // (still use its own toString for arrays, timestamps,
+ // and whatever user schema extensions happen to have @@toStringTag)
+ if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {
+ keyNode = '[object Object]';
+ }
+
+
+ keyNode = String(keyNode);
+
+ if (_result === null) {
+ _result = {};
+ }
+
+ if (keyTag === 'tag:yaml.org,2002:merge') {
+ if (Array.isArray(valueNode)) {
+ for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {
+ mergeMappings(state, _result, valueNode[index], overridableKeys);
+ }
+ } else {
+ mergeMappings(state, _result, valueNode, overridableKeys);
+ }
+ } else {
+ if (!state.json &&
+ !_hasOwnProperty.call(overridableKeys, keyNode) &&
+ _hasOwnProperty.call(_result, keyNode)) {
+ state.line = startLine || state.line;
+ state.position = startPos || state.position;
+ throwError(state, 'duplicated mapping key');
+ }
+ _result[keyNode] = valueNode;
+ delete overridableKeys[keyNode];
+ }
+
+ return _result;
+}
+
+function readLineBreak(state) {
+ var ch;
+
+ ch = state.input.charCodeAt(state.position);
+
+ if (ch === 0x0A/* LF */) {
+ state.position++;
+ } else if (ch === 0x0D/* CR */) {
+ state.position++;
+ if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {
+ state.position++;
+ }
+ } else {
+ throwError(state, 'a line break is expected');
+ }
+
+ state.line += 1;
+ state.lineStart = state.position;
+}
+
+function skipSeparationSpace(state, allowComments, checkIndent) {
+ var lineBreaks = 0,
+ ch = state.input.charCodeAt(state.position);
+
+ while (ch !== 0) {
+ while (is_WHITE_SPACE(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+
+ if (allowComments && ch === 0x23/* # */) {
+ do {
+ ch = state.input.charCodeAt(++state.position);
+ } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);
+ }
+
+ if (is_EOL(ch)) {
+ readLineBreak(state);
+
+ ch = state.input.charCodeAt(state.position);
+ lineBreaks++;
+ state.lineIndent = 0;
+
+ while (ch === 0x20/* Space */) {
+ state.lineIndent++;
+ ch = state.input.charCodeAt(++state.position);
+ }
+ } else {
+ break;
+ }
+ }
+
+ if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {
+ throwWarning(state, 'deficient indentation');
+ }
+
+ return lineBreaks;
+}
+
+function testDocumentSeparator(state) {
+ var _position = state.position,
+ ch;
+
+ ch = state.input.charCodeAt(_position);
+
+ // Condition state.position === state.lineStart is tested
+ // in parent on each call, for efficiency. No needs to test here again.
+ if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&
+ ch === state.input.charCodeAt(_position + 1) &&
+ ch === state.input.charCodeAt(_position + 2)) {
+
+ _position += 3;
+
+ ch = state.input.charCodeAt(_position);
+
+ if (ch === 0 || is_WS_OR_EOL(ch)) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
+function writeFoldedLines(state, count) {
+ if (count === 1) {
+ state.result += ' ';
+ } else if (count > 1) {
+ state.result += common.repeat('\n', count - 1);
+ }
+}
+
+
+function readPlainScalar(state, nodeIndent, withinFlowCollection) {
+ var preceding,
+ following,
+ captureStart,
+ captureEnd,
+ hasPendingContent,
+ _line,
+ _lineStart,
+ _lineIndent,
+ _kind = state.kind,
+ _result = state.result,
+ ch;
+
+ ch = state.input.charCodeAt(state.position);
+
+ if (is_WS_OR_EOL(ch) ||
+ is_FLOW_INDICATOR(ch) ||
+ ch === 0x23/* # */ ||
+ ch === 0x26/* & */ ||
+ ch === 0x2A/* * */ ||
+ ch === 0x21/* ! */ ||
+ ch === 0x7C/* | */ ||
+ ch === 0x3E/* > */ ||
+ ch === 0x27/* ' */ ||
+ ch === 0x22/* " */ ||
+ ch === 0x25/* % */ ||
+ ch === 0x40/* @ */ ||
+ ch === 0x60/* ` */) {
+ return false;
+ }
+
+ if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {
+ following = state.input.charCodeAt(state.position + 1);
+
+ if (is_WS_OR_EOL(following) ||
+ withinFlowCollection && is_FLOW_INDICATOR(following)) {
+ return false;
+ }
+ }
+
+ state.kind = 'scalar';
+ state.result = '';
+ captureStart = captureEnd = state.position;
+ hasPendingContent = false;
+
+ while (ch !== 0) {
+ if (ch === 0x3A/* : */) {
+ following = state.input.charCodeAt(state.position + 1);
+
+ if (is_WS_OR_EOL(following) ||
+ withinFlowCollection && is_FLOW_INDICATOR(following)) {
+ break;
+ }
+
+ } else if (ch === 0x23/* # */) {
+ preceding = state.input.charCodeAt(state.position - 1);
+
+ if (is_WS_OR_EOL(preceding)) {
+ break;
+ }
+
+ } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||
+ withinFlowCollection && is_FLOW_INDICATOR(ch)) {
+ break;
+
+ } else if (is_EOL(ch)) {
+ _line = state.line;
+ _lineStart = state.lineStart;
+ _lineIndent = state.lineIndent;
+ skipSeparationSpace(state, false, -1);
+
+ if (state.lineIndent >= nodeIndent) {
+ hasPendingContent = true;
+ ch = state.input.charCodeAt(state.position);
+ continue;
+ } else {
+ state.position = captureEnd;
+ state.line = _line;
+ state.lineStart = _lineStart;
+ state.lineIndent = _lineIndent;
+ break;
+ }
+ }
+
+ if (hasPendingContent) {
+ captureSegment(state, captureStart, captureEnd, false);
+ writeFoldedLines(state, state.line - _line);
+ captureStart = captureEnd = state.position;
+ hasPendingContent = false;
+ }
+
+ if (!is_WHITE_SPACE(ch)) {
+ captureEnd = state.position + 1;
+ }
+
+ ch = state.input.charCodeAt(++state.position);
+ }
+
+ captureSegment(state, captureStart, captureEnd, false);
+
+ if (state.result) {
+ return true;
+ }
+
+ state.kind = _kind;
+ state.result = _result;
+ return false;
+}
+
+function readSingleQuotedScalar(state, nodeIndent) {
+ var ch,
+ captureStart, captureEnd;
+
+ ch = state.input.charCodeAt(state.position);
+
+ if (ch !== 0x27/* ' */) {
+ return false;
+ }
+
+ state.kind = 'scalar';
+ state.result = '';
+ state.position++;
+ captureStart = captureEnd = state.position;
+
+ while ((ch = state.input.charCodeAt(state.position)) !== 0) {
+ if (ch === 0x27/* ' */) {
+ captureSegment(state, captureStart, state.position, true);
+ ch = state.input.charCodeAt(++state.position);
+
+ if (ch === 0x27/* ' */) {
+ captureStart = state.position;
+ state.position++;
+ captureEnd = state.position;
+ } else {
+ return true;
+ }
+
+ } else if (is_EOL(ch)) {
+ captureSegment(state, captureStart, captureEnd, true);
+ writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
+ captureStart = captureEnd = state.position;
+
+ } else if (state.position === state.lineStart && testDocumentSeparator(state)) {
+ throwError(state, 'unexpected end of the document within a single quoted scalar');
+
+ } else {
+ state.position++;
+ captureEnd = state.position;
+ }
+ }
+
+ throwError(state, 'unexpected end of the stream within a single quoted scalar');
+}
+
+function readDoubleQuotedScalar(state, nodeIndent) {
+ var captureStart,
+ captureEnd,
+ hexLength,
+ hexResult,
+ tmp,
+ ch;
+
+ ch = state.input.charCodeAt(state.position);
+
+ if (ch !== 0x22/* " */) {
+ return false;
+ }
+
+ state.kind = 'scalar';
+ state.result = '';
+ state.position++;
+ captureStart = captureEnd = state.position;
+
+ while ((ch = state.input.charCodeAt(state.position)) !== 0) {
+ if (ch === 0x22/* " */) {
+ captureSegment(state, captureStart, state.position, true);
+ state.position++;
+ return true;
+
+ } else if (ch === 0x5C/* \ */) {
+ captureSegment(state, captureStart, state.position, true);
+ ch = state.input.charCodeAt(++state.position);
+
+ if (is_EOL(ch)) {
+ skipSeparationSpace(state, false, nodeIndent);
+
+ // TODO: rework to inline fn with no type cast?
+ } else if (ch < 256 && simpleEscapeCheck[ch]) {
+ state.result += simpleEscapeMap[ch];
+ state.position++;
+
+ } else if ((tmp = escapedHexLen(ch)) > 0) {
+ hexLength = tmp;
+ hexResult = 0;
+
+ for (; hexLength > 0; hexLength--) {
+ ch = state.input.charCodeAt(++state.position);
+
+ if ((tmp = fromHexCode(ch)) >= 0) {
+ hexResult = (hexResult << 4) + tmp;
+
+ } else {
+ throwError(state, 'expected hexadecimal character');
+ }
+ }
+
+ state.result += charFromCodepoint(hexResult);
+
+ state.position++;
+
+ } else {
+ throwError(state, 'unknown escape sequence');
+ }
+
+ captureStart = captureEnd = state.position;
+
+ } else if (is_EOL(ch)) {
+ captureSegment(state, captureStart, captureEnd, true);
+ writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
+ captureStart = captureEnd = state.position;
+
+ } else if (state.position === state.lineStart && testDocumentSeparator(state)) {
+ throwError(state, 'unexpected end of the document within a double quoted scalar');
+
+ } else {
+ state.position++;
+ captureEnd = state.position;
+ }
+ }
+
+ throwError(state, 'unexpected end of the stream within a double quoted scalar');
+}
+
+function readFlowCollection(state, nodeIndent) {
+ var readNext = true,
+ _line,
+ _tag = state.tag,
+ _result,
+ _anchor = state.anchor,
+ following,
+ terminator,
+ isPair,
+ isExplicitPair,
+ isMapping,
+ overridableKeys = {},
+ keyNode,
+ keyTag,
+ valueNode,
+ ch;
+
+ ch = state.input.charCodeAt(state.position);
+
+ if (ch === 0x5B/* [ */) {
+ terminator = 0x5D;/* ] */
+ isMapping = false;
+ _result = [];
+ } else if (ch === 0x7B/* { */) {
+ terminator = 0x7D;/* } */
+ isMapping = true;
+ _result = {};
+ } else {
+ return false;
+ }
+
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = _result;
+ }
+
+ ch = state.input.charCodeAt(++state.position);
+
+ while (ch !== 0) {
+ skipSeparationSpace(state, true, nodeIndent);
+
+ ch = state.input.charCodeAt(state.position);
+
+ if (ch === terminator) {
+ state.position++;
+ state.tag = _tag;
+ state.anchor = _anchor;
+ state.kind = isMapping ? 'mapping' : 'sequence';
+ state.result = _result;
+ return true;
+ } else if (!readNext) {
+ throwError(state, 'missed comma between flow collection entries');
+ }
+
+ keyTag = keyNode = valueNode = null;
+ isPair = isExplicitPair = false;
+
+ if (ch === 0x3F/* ? */) {
+ following = state.input.charCodeAt(state.position + 1);
+
+ if (is_WS_OR_EOL(following)) {
+ isPair = isExplicitPair = true;
+ state.position++;
+ skipSeparationSpace(state, true, nodeIndent);
+ }
+ }
+
+ _line = state.line;
+ composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
+ keyTag = state.tag;
+ keyNode = state.result;
+ skipSeparationSpace(state, true, nodeIndent);
+
+ ch = state.input.charCodeAt(state.position);
+
+ if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {
+ isPair = true;
+ ch = state.input.charCodeAt(++state.position);
+ skipSeparationSpace(state, true, nodeIndent);
+ composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
+ valueNode = state.result;
+ }
+
+ if (isMapping) {
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode);
+ } else if (isPair) {
+ _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode));
+ } else {
+ _result.push(keyNode);
+ }
+
+ skipSeparationSpace(state, true, nodeIndent);
+
+ ch = state.input.charCodeAt(state.position);
+
+ if (ch === 0x2C/* , */) {
+ readNext = true;
+ ch = state.input.charCodeAt(++state.position);
+ } else {
+ readNext = false;
+ }
+ }
+
+ throwError(state, 'unexpected end of the stream within a flow collection');
+}
+
+function readBlockScalar(state, nodeIndent) {
+ var captureStart,
+ folding,
+ chomping = CHOMPING_CLIP,
+ didReadContent = false,
+ detectedIndent = false,
+ textIndent = nodeIndent,
+ emptyLines = 0,
+ atMoreIndented = false,
+ tmp,
+ ch;
+
+ ch = state.input.charCodeAt(state.position);
+
+ if (ch === 0x7C/* | */) {
+ folding = false;
+ } else if (ch === 0x3E/* > */) {
+ folding = true;
+ } else {
+ return false;
+ }
+
+ state.kind = 'scalar';
+ state.result = '';
+
+ while (ch !== 0) {
+ ch = state.input.charCodeAt(++state.position);
+
+ if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {
+ if (CHOMPING_CLIP === chomping) {
+ chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;
+ } else {
+ throwError(state, 'repeat of a chomping mode identifier');
+ }
+
+ } else if ((tmp = fromDecimalCode(ch)) >= 0) {
+ if (tmp === 0) {
+ throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');
+ } else if (!detectedIndent) {
+ textIndent = nodeIndent + tmp - 1;
+ detectedIndent = true;
+ } else {
+ throwError(state, 'repeat of an indentation width identifier');
+ }
+
+ } else {
+ break;
+ }
+ }
+
+ if (is_WHITE_SPACE(ch)) {
+ do { ch = state.input.charCodeAt(++state.position); }
+ while (is_WHITE_SPACE(ch));
+
+ if (ch === 0x23/* # */) {
+ do { ch = state.input.charCodeAt(++state.position); }
+ while (!is_EOL(ch) && (ch !== 0));
+ }
+ }
+
+ while (ch !== 0) {
+ readLineBreak(state);
+ state.lineIndent = 0;
+
+ ch = state.input.charCodeAt(state.position);
+
+ while ((!detectedIndent || state.lineIndent < textIndent) &&
+ (ch === 0x20/* Space */)) {
+ state.lineIndent++;
+ ch = state.input.charCodeAt(++state.position);
+ }
+
+ if (!detectedIndent && state.lineIndent > textIndent) {
+ textIndent = state.lineIndent;
+ }
+
+ if (is_EOL(ch)) {
+ emptyLines++;
+ continue;
+ }
+
+ // End of the scalar.
+ if (state.lineIndent < textIndent) {
+
+ // Perform the chomping.
+ if (chomping === CHOMPING_KEEP) {
+ state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines);
+ } else if (chomping === CHOMPING_CLIP) {
+ if (didReadContent) { // i.e. only if the scalar is not empty.
+ state.result += '\n';
+ }
+ }
+
+ // Break this `while` cycle and go to the funciton's epilogue.
+ break;
+ }
+
+ // Folded style: use fancy rules to handle line breaks.
+ if (folding) {
+
+ // Lines starting with white space characters (more-indented lines) are not folded.
+ if (is_WHITE_SPACE(ch)) {
+ atMoreIndented = true;
+ // except for the first content line (cf. Example 8.1)
+ state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines);
+
+ // End of more-indented block.
+ } else if (atMoreIndented) {
+ atMoreIndented = false;
+ state.result += common.repeat('\n', emptyLines + 1);
+
+ // Just one line break - perceive as the same line.
+ } else if (emptyLines === 0) {
+ if (didReadContent) { // i.e. only if we have already read some scalar content.
+ state.result += ' ';
+ }
+
+ // Several line breaks - perceive as different lines.
+ } else {
+ state.result += common.repeat('\n', emptyLines);
+ }
+
+ // Literal style: just add exact number of line breaks between content lines.
+ } else {
+ // Keep all line breaks except the header line break.
+ state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines);
+ }
+
+ didReadContent = true;
+ detectedIndent = true;
+ emptyLines = 0;
+ captureStart = state.position;
+
+ while (!is_EOL(ch) && (ch !== 0)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+
+ captureSegment(state, captureStart, state.position, false);
+ }
+
+ return true;
+}
+
+function readBlockSequence(state, nodeIndent) {
+ var _line,
+ _tag = state.tag,
+ _anchor = state.anchor,
+ _result = [],
+ following,
+ detected = false,
+ ch;
+
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = _result;
+ }
+
+ ch = state.input.charCodeAt(state.position);
+
+ while (ch !== 0) {
+
+ if (ch !== 0x2D/* - */) {
+ break;
+ }
+
+ following = state.input.charCodeAt(state.position + 1);
+
+ if (!is_WS_OR_EOL(following)) {
+ break;
+ }
+
+ detected = true;
+ state.position++;
+
+ if (skipSeparationSpace(state, true, -1)) {
+ if (state.lineIndent <= nodeIndent) {
+ _result.push(null);
+ ch = state.input.charCodeAt(state.position);
+ continue;
+ }
+ }
+
+ _line = state.line;
+ composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);
+ _result.push(state.result);
+ skipSeparationSpace(state, true, -1);
+
+ ch = state.input.charCodeAt(state.position);
+
+ if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {
+ throwError(state, 'bad indentation of a sequence entry');
+ } else if (state.lineIndent < nodeIndent) {
+ break;
+ }
+ }
+
+ if (detected) {
+ state.tag = _tag;
+ state.anchor = _anchor;
+ state.kind = 'sequence';
+ state.result = _result;
+ return true;
+ }
+ return false;
+}
+
+function readBlockMapping(state, nodeIndent, flowIndent) {
+ var following,
+ allowCompact,
+ _line,
+ _pos,
+ _tag = state.tag,
+ _anchor = state.anchor,
+ _result = {},
+ overridableKeys = {},
+ keyTag = null,
+ keyNode = null,
+ valueNode = null,
+ atExplicitKey = false,
+ detected = false,
+ ch;
+
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = _result;
+ }
+
+ ch = state.input.charCodeAt(state.position);
+
+ while (ch !== 0) {
+ following = state.input.charCodeAt(state.position + 1);
+ _line = state.line; // Save the current line.
+ _pos = state.position;
+
+ //
+ // Explicit notation case. There are two separate blocks:
+ // first for the key (denoted by "?") and second for the value (denoted by ":")
+ //
+ if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {
+
+ if (ch === 0x3F/* ? */) {
+ if (atExplicitKey) {
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);
+ keyTag = keyNode = valueNode = null;
+ }
+
+ detected = true;
+ atExplicitKey = true;
+ allowCompact = true;
+
+ } else if (atExplicitKey) {
+ // i.e. 0x3A/* : */ === character after the explicit key.
+ atExplicitKey = false;
+ allowCompact = true;
+
+ } else {
+ throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');
+ }
+
+ state.position += 1;
+ ch = following;
+
+ //
+ // Implicit notation case. Flow-style node as the key first, then ":", and the value.
+ //
+ } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {
+
+ if (state.line === _line) {
+ ch = state.input.charCodeAt(state.position);
+
+ while (is_WHITE_SPACE(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+
+ if (ch === 0x3A/* : */) {
+ ch = state.input.charCodeAt(++state.position);
+
+ if (!is_WS_OR_EOL(ch)) {
+ throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');
+ }
+
+ if (atExplicitKey) {
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);
+ keyTag = keyNode = valueNode = null;
+ }
+
+ detected = true;
+ atExplicitKey = false;
+ allowCompact = false;
+ keyTag = state.tag;
+ keyNode = state.result;
+
+ } else if (detected) {
+ throwError(state, 'can not read an implicit mapping pair; a colon is missed');
+
+ } else {
+ state.tag = _tag;
+ state.anchor = _anchor;
+ return true; // Keep the result of `composeNode`.
+ }
+
+ } else if (detected) {
+ throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');
+
+ } else {
+ state.tag = _tag;
+ state.anchor = _anchor;
+ return true; // Keep the result of `composeNode`.
+ }
+
+ } else {
+ break; // Reading is done. Go to the epilogue.
+ }
+
+ //
+ // Common reading code for both explicit and implicit notations.
+ //
+ if (state.line === _line || state.lineIndent > nodeIndent) {
+ if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {
+ if (atExplicitKey) {
+ keyNode = state.result;
+ } else {
+ valueNode = state.result;
+ }
+ }
+
+ if (!atExplicitKey) {
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos);
+ keyTag = keyNode = valueNode = null;
+ }
+
+ skipSeparationSpace(state, true, -1);
+ ch = state.input.charCodeAt(state.position);
+ }
+
+ if (state.lineIndent > nodeIndent && (ch !== 0)) {
+ throwError(state, 'bad indentation of a mapping entry');
+ } else if (state.lineIndent < nodeIndent) {
+ break;
+ }
+ }
+
+ //
+ // Epilogue.
+ //
+
+ // Special case: last mapping's node contains only the key in explicit notation.
+ if (atExplicitKey) {
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);
+ }
+
+ // Expose the resulting mapping.
+ if (detected) {
+ state.tag = _tag;
+ state.anchor = _anchor;
+ state.kind = 'mapping';
+ state.result = _result;
+ }
+
+ return detected;
+}
+
+function readTagProperty(state) {
+ var _position,
+ isVerbatim = false,
+ isNamed = false,
+ tagHandle,
+ tagName,
+ ch;
+
+ ch = state.input.charCodeAt(state.position);
+
+ if (ch !== 0x21/* ! */) return false;
+
+ if (state.tag !== null) {
+ throwError(state, 'duplication of a tag property');
+ }
+
+ ch = state.input.charCodeAt(++state.position);
+
+ if (ch === 0x3C/* < */) {
+ isVerbatim = true;
+ ch = state.input.charCodeAt(++state.position);
+
+ } else if (ch === 0x21/* ! */) {
+ isNamed = true;
+ tagHandle = '!!';
+ ch = state.input.charCodeAt(++state.position);
+
+ } else {
+ tagHandle = '!';
+ }
+
+ _position = state.position;
+
+ if (isVerbatim) {
+ do { ch = state.input.charCodeAt(++state.position); }
+ while (ch !== 0 && ch !== 0x3E/* > */);
+
+ if (state.position < state.length) {
+ tagName = state.input.slice(_position, state.position);
+ ch = state.input.charCodeAt(++state.position);
+ } else {
+ throwError(state, 'unexpected end of the stream within a verbatim tag');
+ }
+ } else {
+ while (ch !== 0 && !is_WS_OR_EOL(ch)) {
+
+ if (ch === 0x21/* ! */) {
+ if (!isNamed) {
+ tagHandle = state.input.slice(_position - 1, state.position + 1);
+
+ if (!PATTERN_TAG_HANDLE.test(tagHandle)) {
+ throwError(state, 'named tag handle cannot contain such characters');
+ }
+
+ isNamed = true;
+ _position = state.position + 1;
+ } else {
+ throwError(state, 'tag suffix cannot contain exclamation marks');
+ }
+ }
+
+ ch = state.input.charCodeAt(++state.position);
+ }
+
+ tagName = state.input.slice(_position, state.position);
+
+ if (PATTERN_FLOW_INDICATORS.test(tagName)) {
+ throwError(state, 'tag suffix cannot contain flow indicator characters');
+ }
+ }
+
+ if (tagName && !PATTERN_TAG_URI.test(tagName)) {
+ throwError(state, 'tag name cannot contain such characters: ' + tagName);
+ }
+
+ if (isVerbatim) {
+ state.tag = tagName;
+
+ } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) {
+ state.tag = state.tagMap[tagHandle] + tagName;
+
+ } else if (tagHandle === '!') {
+ state.tag = '!' + tagName;
+
+ } else if (tagHandle === '!!') {
+ state.tag = 'tag:yaml.org,2002:' + tagName;
+
+ } else {
+ throwError(state, 'undeclared tag handle "' + tagHandle + '"');
+ }
+
+ return true;
+}
+
+function readAnchorProperty(state) {
+ var _position,
+ ch;
+
+ ch = state.input.charCodeAt(state.position);
+
+ if (ch !== 0x26/* & */) return false;
+
+ if (state.anchor !== null) {
+ throwError(state, 'duplication of an anchor property');
+ }
+
+ ch = state.input.charCodeAt(++state.position);
+ _position = state.position;
+
+ while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+
+ if (state.position === _position) {
+ throwError(state, 'name of an anchor node must contain at least one character');
+ }
+
+ state.anchor = state.input.slice(_position, state.position);
+ return true;
+}
+
+function readAlias(state) {
+ var _position, alias,
+ ch;
+
+ ch = state.input.charCodeAt(state.position);
+
+ if (ch !== 0x2A/* * */) return false;
+
+ ch = state.input.charCodeAt(++state.position);
+ _position = state.position;
+
+ while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+
+ if (state.position === _position) {
+ throwError(state, 'name of an alias node must contain at least one character');
+ }
+
+ alias = state.input.slice(_position, state.position);
+
+ if (!state.anchorMap.hasOwnProperty(alias)) {
+ throwError(state, 'unidentified alias "' + alias + '"');
+ }
+
+ state.result = state.anchorMap[alias];
+ skipSeparationSpace(state, true, -1);
+ return true;
+}
+
+function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {
+ var allowBlockStyles,
+ allowBlockScalars,
+ allowBlockCollections,
+ indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {
+ indentStatus = 1;
+ } else if (state.lineIndent === parentIndent) {
+ indentStatus = 0;
+ } else if (state.lineIndent < parentIndent) {
+ indentStatus = -1;
+ }
+ }
+ }
+
+ if (indentStatus === 1) {
+ while (readTagProperty(state) || readAnchorProperty(state)) {
+ if (skipSeparationSpace(state, true, -1)) {
+ atNewLine = true;
+ allowBlockCollections = allowBlockStyles;
+
+ if (state.lineIndent > parentIndent) {
+ indentStatus = 1;
+ } else if (state.lineIndent === parentIndent) {
+ indentStatus = 0;
+ } else if (state.lineIndent < parentIndent) {
+ indentStatus = -1;
+ }
+ } else {
+ allowBlockCollections = false;
+ }
+ }
+ }
+
+ if (allowBlockCollections) {
+ allowBlockCollections = atNewLine || allowCompact;
+ }
+
+ if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {
+ if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {
+ flowIndent = parentIndent;
+ } else {
+ flowIndent = parentIndent + 1;
+ }
+
+ blockIndent = state.position - state.lineStart;
+
+ if (indentStatus === 1) {
+ if (allowBlockCollections &&
+ (readBlockSequence(state, blockIndent) ||
+ readBlockMapping(state, blockIndent, flowIndent)) ||
+ readFlowCollection(state, flowIndent)) {
+ hasContent = true;
+ } else {
+ if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||
+ readSingleQuotedScalar(state, flowIndent) ||
+ readDoubleQuotedScalar(state, flowIndent)) {
+ hasContent = true;
+
+ } else if (readAlias(state)) {
+ hasContent = true;
+
+ if (state.tag !== null || state.anchor !== null) {
+ throwError(state, 'alias node should not have any properties');
+ }
+
+ } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {
+ hasContent = true;
+
+ if (state.tag === null) {
+ state.tag = '?';
+ }
+ }
+
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = state.result;
+ }
+ }
+ } else if (indentStatus === 0) {
+ // Special case: block sequences are allowed to have same indentation level as the parent.
+ // http://www.yaml.org/spec/1.2/spec.html#id2799784
+ hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);
+ }
+ }
+
+ if (state.tag !== null && state.tag !== '!') {
+ if (state.tag === '?') {
+ // Implicit resolving is not allowed for non-scalar types, and '?'
+ // non-specific tag is only automatically assigned to plain scalars.
+ //
+ // We only need to check kind conformity in case user explicitly assigns '?'
+ // tag, for example like this: "!> [0]"
+ //
+ if (state.result !== null && state.kind !== 'scalar') {
+ throwError(state, 'unacceptable node kind for !> tag; it should be "scalar", not "' + state.kind + '"');
+ }
+
+ for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {
+ type = state.implicitTypes[typeIndex];
+
+ if (type.resolve(state.result)) { // `state.result` updated in resolver if matched
+ state.result = type.construct(state.result);
+ state.tag = type.tag;
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = state.result;
+ }
+ break;
+ }
+ }
+ } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) {
+ type = state.typeMap[state.kind || 'fallback'][state.tag];
+
+ if (state.result !== null && type.kind !== state.kind) {
+ throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"');
+ }
+
+ if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched
+ throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');
+ } else {
+ state.result = type.construct(state.result);
+ if (state.anchor !== null) {
+ state.anchorMap[state.anchor] = state.result;
+ }
+ }
+ } else {
+ throwError(state, 'unknown tag !<' + state.tag + '>');
+ }
+ }
+
+ if (state.listener !== null) {
+ state.listener('close', state);
+ }
+ return state.tag !== null || state.anchor !== null || hasContent;
+}
+
+function readDocument(state) {
+ var documentStart = state.position,
+ _position,
+ directiveName,
+ directiveArgs,
+ hasDirectives = false,
+ ch;
+
+ state.version = null;
+ state.checkLineBreaks = state.legacy;
+ state.tagMap = {};
+ state.anchorMap = {};
+
+ while ((ch = state.input.charCodeAt(state.position)) !== 0) {
+ skipSeparationSpace(state, true, -1);
+
+ ch = state.input.charCodeAt(state.position);
+
+ if (state.lineIndent > 0 || ch !== 0x25/* % */) {
+ break;
+ }
+
+ hasDirectives = true;
+ ch = state.input.charCodeAt(++state.position);
+ _position = state.position;
+
+ while (ch !== 0 && !is_WS_OR_EOL(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+
+ directiveName = state.input.slice(_position, state.position);
+ directiveArgs = [];
+
+ if (directiveName.length < 1) {
+ throwError(state, 'directive name must not be less than one character in length');
+ }
+
+ while (ch !== 0) {
+ while (is_WHITE_SPACE(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+
+ if (ch === 0x23/* # */) {
+ do { ch = state.input.charCodeAt(++state.position); }
+ while (ch !== 0 && !is_EOL(ch));
+ break;
+ }
+
+ if (is_EOL(ch)) break;
+
+ _position = state.position;
+
+ while (ch !== 0 && !is_WS_OR_EOL(ch)) {
+ ch = state.input.charCodeAt(++state.position);
+ }
+
+ directiveArgs.push(state.input.slice(_position, state.position));
+ }
+
+ if (ch !== 0) readLineBreak(state);
+
+ if (_hasOwnProperty.call(directiveHandlers, directiveName)) {
+ directiveHandlers[directiveName](state, directiveName, directiveArgs);
+ } else {
+ throwWarning(state, 'unknown document directive "' + directiveName + '"');
+ }
+ }
+
+ skipSeparationSpace(state, true, -1);
+
+ if (state.lineIndent === 0 &&
+ state.input.charCodeAt(state.position) === 0x2D/* - */ &&
+ state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&
+ state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {
+ state.position += 3;
+ skipSeparationSpace(state, true, -1);
+
+ } else if (hasDirectives) {
+ throwError(state, 'directives end mark is expected');
+ }
+
+ composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);
+ skipSeparationSpace(state, true, -1);
+
+ if (state.checkLineBreaks &&
+ PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {
+ throwWarning(state, 'non-ASCII line breaks are interpreted as content');
+ }
+
+ state.documents.push(state.result);
+
+ if (state.position === state.lineStart && testDocumentSeparator(state)) {
+
+ if (state.input.charCodeAt(state.position) === 0x2E/* . */) {
+ state.position += 3;
+ skipSeparationSpace(state, true, -1);
+ }
+ return;
+ }
+
+ if (state.position < (state.length - 1)) {
+ throwError(state, 'end of the stream or a document separator is expected');
+ } else {
+ return;
+ }
+}
+
+
+function loadDocuments(input, options) {
+ input = String(input);
+ options = options || {};
+
+ if (input.length !== 0) {
+
+ // Add tailing `\n` if not exists
+ if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&
+ input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {
+ input += '\n';
+ }
+
+ // Strip BOM
+ if (input.charCodeAt(0) === 0xFEFF) {
+ input = input.slice(1);
+ }
+ }
+
+ var state = new State(input, options);
+
+ var nullpos = input.indexOf('\0');
+
+ if (nullpos !== -1) {
+ state.position = nullpos;
+ throwError(state, 'null byte is not allowed in input');
+ }
+
+ // Use 0 as string terminator. That significantly simplifies bounds check.
+ state.input += '\0';
+
+ while (state.input.charCodeAt(state.position) === 0x20/* Space */) {
+ state.lineIndent += 1;
+ state.position += 1;
+ }
+
+ while (state.position < (state.length - 1)) {
+ readDocument(state);
+ }
+
+ return state.documents;
+}
+
+
+function loadAll(input, iterator, options) {
+ if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {
+ options = iterator;
+ iterator = null;
+ }
+
+ var documents = loadDocuments(input, options);
+
+ if (typeof iterator !== 'function') {
+ return documents;
+ }
+
+ for (var index = 0, length = documents.length; index < length; index += 1) {
+ iterator(documents[index]);
+ }
+}
+
+
+function load(input, options) {
+ var documents = loadDocuments(input, options);
+
+ if (documents.length === 0) {
+ /*eslint-disable no-undefined*/
+ return undefined;
+ } else if (documents.length === 1) {
+ return documents[0];
+ }
+ throw new YAMLException('expected a single document in the stream, but found more');
+}
+
+
+function safeLoadAll(input, iterator, options) {
+ if (typeof iterator === 'object' && iterator !== null && typeof options === 'undefined') {
+ options = iterator;
+ iterator = null;
+ }
+
+ return loadAll(input, iterator, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));
+}
+
+
+function safeLoad(input, options) {
+ return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));
+}
+
+
+module.exports.loadAll = loadAll;
+module.exports.load = load;
+module.exports.safeLoadAll = safeLoadAll;
+module.exports.safeLoad = safeLoad;
+
+
+/***/ }),
+
+/***/ 5426:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+
+var common = __nccwpck_require__(9136);
+
+
+function Mark(name, buffer, position, line, column) {
+ this.name = name;
+ this.buffer = buffer;
+ this.position = position;
+ this.line = line;
+ this.column = column;
+}
+
+
+Mark.prototype.getSnippet = function getSnippet(indent, maxLength) {
+ var head, start, tail, end, snippet;
+
+ if (!this.buffer) return null;
+
+ indent = indent || 4;
+ maxLength = maxLength || 75;
+
+ head = '';
+ start = this.position;
+
+ while (start > 0 && '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) {
+ start -= 1;
+ if (this.position - start > (maxLength / 2 - 1)) {
+ head = ' ... ';
+ start += 5;
+ break;
+ }
+ }
+
+ tail = '';
+ end = this.position;
+
+ while (end < this.buffer.length && '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(end)) === -1) {
+ end += 1;
+ if (end - this.position > (maxLength / 2 - 1)) {
+ tail = ' ... ';
+ end -= 5;
+ break;
+ }
+ }
+
+ snippet = this.buffer.slice(start, end);
+
+ return common.repeat(' ', indent) + head + snippet + tail + '\n' +
+ common.repeat(' ', indent + this.position - start + head.length) + '^';
+};
+
+
+Mark.prototype.toString = function toString(compact) {
+ var snippet, where = '';
+
+ if (this.name) {
+ where += 'in "' + this.name + '" ';
+ }
+
+ where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1);
+
+ if (!compact) {
+ snippet = this.getSnippet();
+
+ if (snippet) {
+ where += ':\n' + snippet;
+ }
+ }
+
+ return where;
+};
+
+
+module.exports = Mark;
+
+
+/***/ }),
+
+/***/ 6514:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+/*eslint-disable max-len*/
+
+var common = __nccwpck_require__(9136);
+var YAMLException = __nccwpck_require__(5199);
+var Type = __nccwpck_require__(967);
+
+
+function compileList(schema, name, result) {
+ var exclude = [];
+
+ schema.include.forEach(function (includedSchema) {
+ result = compileList(includedSchema, name, result);
+ });
+
+ schema[name].forEach(function (currentType) {
+ result.forEach(function (previousType, previousIndex) {
+ if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) {
+ exclude.push(previousIndex);
+ }
+ });
+
+ result.push(currentType);
+ });
+
+ return result.filter(function (type, index) {
+ return exclude.indexOf(index) === -1;
+ });
+}
+
+
+function compileMap(/* lists... */) {
+ var result = {
+ scalar: {},
+ sequence: {},
+ mapping: {},
+ fallback: {}
+ }, index, length;
+
+ function collectType(type) {
+ result[type.kind][type.tag] = result['fallback'][type.tag] = type;
+ }
+
+ for (index = 0, length = arguments.length; index < length; index += 1) {
+ arguments[index].forEach(collectType);
+ }
+ return result;
+}
+
+
+function Schema(definition) {
+ this.include = definition.include || [];
+ this.implicit = definition.implicit || [];
+ this.explicit = definition.explicit || [];
+
+ this.implicit.forEach(function (type) {
+ if (type.loadKind && type.loadKind !== 'scalar') {
+ throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');
+ }
+ });
+
+ this.compiledImplicit = compileList(this, 'implicit', []);
+ this.compiledExplicit = compileList(this, 'explicit', []);
+ this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit);
+}
+
+
+Schema.DEFAULT = null;
+
+
+Schema.create = function createSchema() {
+ var schemas, types;
+
+ switch (arguments.length) {
+ case 1:
+ schemas = Schema.DEFAULT;
+ types = arguments[0];
+ break;
+
+ case 2:
+ schemas = arguments[0];
+ types = arguments[1];
+ break;
+
+ default:
+ throw new YAMLException('Wrong number of arguments for Schema.create function');
+ }
+
+ schemas = common.toArray(schemas);
+ types = common.toArray(types);
+
+ if (!schemas.every(function (schema) { return schema instanceof Schema; })) {
+ throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.');
+ }
+
+ if (!types.every(function (type) { return type instanceof Type; })) {
+ throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.');
+ }
+
+ return new Schema({
+ include: schemas,
+ explicit: types
+ });
+};
+
+
+module.exports = Schema;
+
+
+/***/ }),
+
+/***/ 2183:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+// Standard YAML's Core schema.
+// http://www.yaml.org/spec/1.2/spec.html#id2804923
+//
+// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.
+// So, Core schema has no distinctions from JSON schema is JS-YAML.
+
+
+
+
+
+var Schema = __nccwpck_require__(6514);
+
+
+module.exports = new Schema({
+ include: [
+ __nccwpck_require__(1571)
+ ]
+});
+
+
+/***/ }),
+
+/***/ 6874:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+// JS-YAML's default schema for `load` function.
+// It is not described in the YAML specification.
+//
+// This schema is based on JS-YAML's default safe schema and includes
+// JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function.
+//
+// Also this schema is used as default base schema at `Schema.create` function.
+
+
+
+
+
+var Schema = __nccwpck_require__(6514);
+
+
+module.exports = Schema.DEFAULT = new Schema({
+ include: [
+ __nccwpck_require__(8949)
+ ],
+ explicit: [
+ __nccwpck_require__(5914),
+ __nccwpck_require__(9242),
+ __nccwpck_require__(7278)
+ ]
+});
+
+
+/***/ }),
+
+/***/ 8949:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+// JS-YAML's default schema for `safeLoad` function.
+// It is not described in the YAML specification.
+//
+// This schema is based on standard YAML's Core schema and includes most of
+// extra types described at YAML tag repository. (http://yaml.org/type/)
+
+
+
+
+
+var Schema = __nccwpck_require__(6514);
+
+
+module.exports = new Schema({
+ include: [
+ __nccwpck_require__(2183)
+ ],
+ implicit: [
+ __nccwpck_require__(3714),
+ __nccwpck_require__(1393)
+ ],
+ explicit: [
+ __nccwpck_require__(2551),
+ __nccwpck_require__(6668),
+ __nccwpck_require__(6039),
+ __nccwpck_require__(9237)
+ ]
+});
+
+
+/***/ }),
+
+/***/ 6037:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+// Standard YAML's Failsafe schema.
+// http://www.yaml.org/spec/1.2/spec.html#id2802346
+
+
+
+
+
+var Schema = __nccwpck_require__(6514);
+
+
+module.exports = new Schema({
+ explicit: [
+ __nccwpck_require__(2672),
+ __nccwpck_require__(5490),
+ __nccwpck_require__(1173)
+ ]
+});
+
+
+/***/ }),
+
+/***/ 1571:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+// Standard YAML's JSON schema.
+// http://www.yaml.org/spec/1.2/spec.html#id2803231
+//
+// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.
+// So, this schema is not such strict as defined in the YAML specification.
+// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc.
+
+
+
+
+
+var Schema = __nccwpck_require__(6514);
+
+
+module.exports = new Schema({
+ include: [
+ __nccwpck_require__(6037)
+ ],
+ implicit: [
+ __nccwpck_require__(2671),
+ __nccwpck_require__(4675),
+ __nccwpck_require__(9963),
+ __nccwpck_require__(5564)
+ ]
+});
+
+
+/***/ }),
+
+/***/ 967:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+var YAMLException = __nccwpck_require__(5199);
+
+var TYPE_CONSTRUCTOR_OPTIONS = [
+ 'kind',
+ 'resolve',
+ 'construct',
+ 'instanceOf',
+ 'predicate',
+ 'represent',
+ 'defaultStyle',
+ 'styleAliases'
+];
+
+var YAML_NODE_KINDS = [
+ 'scalar',
+ 'sequence',
+ 'mapping'
+];
+
+function compileStyleAliases(map) {
+ var result = {};
+
+ if (map !== null) {
+ Object.keys(map).forEach(function (style) {
+ map[style].forEach(function (alias) {
+ result[String(alias)] = style;
+ });
+ });
+ }
+
+ return result;
+}
+
+function Type(tag, options) {
+ options = options || {};
+
+ Object.keys(options).forEach(function (name) {
+ if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {
+ throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.');
+ }
+ });
+
+ // TODO: Add tag format check.
+ this.tag = tag;
+ this.kind = options['kind'] || null;
+ this.resolve = options['resolve'] || function () { return true; };
+ this.construct = options['construct'] || function (data) { return data; };
+ this.instanceOf = options['instanceOf'] || null;
+ this.predicate = options['predicate'] || null;
+ this.represent = options['represent'] || null;
+ this.defaultStyle = options['defaultStyle'] || null;
+ this.styleAliases = compileStyleAliases(options['styleAliases'] || null);
+
+ if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {
+ throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.');
+ }
+}
+
+module.exports = Type;
+
+
+/***/ }),
+
+/***/ 2551:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+/*eslint-disable no-bitwise*/
+
+var NodeBuffer;
+
+try {
+ // A trick for browserified version, to not include `Buffer` shim
+ var _require = require;
+ NodeBuffer = _require('buffer').Buffer;
+} catch (__) {}
+
+var Type = __nccwpck_require__(967);
+
+
+// [ 64, 65, 66 ] -> [ padding, CR, LF ]
+var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r';
+
+
+function resolveYamlBinary(data) {
+ if (data === null) return false;
+
+ var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;
+
+ // Convert one by one.
+ for (idx = 0; idx < max; idx++) {
+ code = map.indexOf(data.charAt(idx));
+
+ // Skip CR/LF
+ if (code > 64) continue;
+
+ // Fail on illegal characters
+ if (code < 0) return false;
+
+ bitlen += 6;
+ }
+
+ // If there are any bits left, source was corrupted
+ return (bitlen % 8) === 0;
+}
+
+function constructYamlBinary(data) {
+ var idx, tailbits,
+ input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan
+ max = input.length,
+ map = BASE64_MAP,
+ bits = 0,
+ result = [];
+
+ // Collect by 6*4 bits (3 bytes)
+
+ for (idx = 0; idx < max; idx++) {
+ if ((idx % 4 === 0) && idx) {
+ result.push((bits >> 16) & 0xFF);
+ result.push((bits >> 8) & 0xFF);
+ result.push(bits & 0xFF);
+ }
+
+ bits = (bits << 6) | map.indexOf(input.charAt(idx));
+ }
+
+ // Dump tail
+
+ tailbits = (max % 4) * 6;
+
+ if (tailbits === 0) {
+ result.push((bits >> 16) & 0xFF);
+ result.push((bits >> 8) & 0xFF);
+ result.push(bits & 0xFF);
+ } else if (tailbits === 18) {
+ result.push((bits >> 10) & 0xFF);
+ result.push((bits >> 2) & 0xFF);
+ } else if (tailbits === 12) {
+ result.push((bits >> 4) & 0xFF);
+ }
+
+ // Wrap into Buffer for NodeJS and leave Array for browser
+ if (NodeBuffer) {
+ // Support node 6.+ Buffer API when available
+ return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result);
+ }
+
+ return result;
+}
+
+function representYamlBinary(object /*, style*/) {
+ var result = '', bits = 0, idx, tail,
+ max = object.length,
+ map = BASE64_MAP;
+
+ // Convert every three bytes to 4 ASCII characters.
+
+ for (idx = 0; idx < max; idx++) {
+ if ((idx % 3 === 0) && idx) {
+ result += map[(bits >> 18) & 0x3F];
+ result += map[(bits >> 12) & 0x3F];
+ result += map[(bits >> 6) & 0x3F];
+ result += map[bits & 0x3F];
+ }
+
+ bits = (bits << 8) + object[idx];
+ }
+
+ // Dump tail
+
+ tail = max % 3;
+
+ if (tail === 0) {
+ result += map[(bits >> 18) & 0x3F];
+ result += map[(bits >> 12) & 0x3F];
+ result += map[(bits >> 6) & 0x3F];
+ result += map[bits & 0x3F];
+ } else if (tail === 2) {
+ result += map[(bits >> 10) & 0x3F];
+ result += map[(bits >> 4) & 0x3F];
+ result += map[(bits << 2) & 0x3F];
+ result += map[64];
+ } else if (tail === 1) {
+ result += map[(bits >> 2) & 0x3F];
+ result += map[(bits << 4) & 0x3F];
+ result += map[64];
+ result += map[64];
}
+
+ return result;
+}
+
+function isBinary(object) {
+ return NodeBuffer && NodeBuffer.isBuffer(object);
+}
+
+module.exports = new Type('tag:yaml.org,2002:binary', {
+ kind: 'scalar',
+ resolve: resolveYamlBinary,
+ construct: constructYamlBinary,
+ predicate: isBinary,
+ represent: representYamlBinary
});
-DelayedStream.prototype.setEncoding = function() {
- return this.source.setEncoding.apply(this.source, arguments);
-};
-DelayedStream.prototype.resume = function() {
- if (!this._released) {
- this.release();
+/***/ }),
+
+/***/ 4675:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+var Type = __nccwpck_require__(967);
+
+function resolveYamlBoolean(data) {
+ if (data === null) return false;
+
+ var max = data.length;
+
+ return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||
+ (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));
+}
+
+function constructYamlBoolean(data) {
+ return data === 'true' ||
+ data === 'True' ||
+ data === 'TRUE';
+}
+
+function isBoolean(object) {
+ return Object.prototype.toString.call(object) === '[object Boolean]';
+}
+
+module.exports = new Type('tag:yaml.org,2002:bool', {
+ kind: 'scalar',
+ resolve: resolveYamlBoolean,
+ construct: constructYamlBoolean,
+ predicate: isBoolean,
+ represent: {
+ lowercase: function (object) { return object ? 'true' : 'false'; },
+ uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },
+ camelcase: function (object) { return object ? 'True' : 'False'; }
+ },
+ defaultStyle: 'lowercase'
+});
+
+
+/***/ }),
+
+/***/ 5564:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+var common = __nccwpck_require__(9136);
+var Type = __nccwpck_require__(967);
+
+var YAML_FLOAT_PATTERN = new RegExp(
+ // 2.5e4, 2.5 and integers
+ '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +
+ // .2e4, .2
+ // special case, seems not from spec
+ '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +
+ // 20:59
+ '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*' +
+ // .inf
+ '|[-+]?\\.(?:inf|Inf|INF)' +
+ // .nan
+ '|\\.(?:nan|NaN|NAN))$');
+
+function resolveYamlFloat(data) {
+ if (data === null) return false;
+
+ if (!YAML_FLOAT_PATTERN.test(data) ||
+ // Quick hack to not allow integers end with `_`
+ // Probably should update regexp & check speed
+ data[data.length - 1] === '_') {
+ return false;
}
- this.source.resume();
-};
+ return true;
+}
-DelayedStream.prototype.pause = function() {
- this.source.pause();
-};
+function constructYamlFloat(data) {
+ var value, sign, base, digits;
-DelayedStream.prototype.release = function() {
- this._released = true;
+ value = data.replace(/_/g, '').toLowerCase();
+ sign = value[0] === '-' ? -1 : 1;
+ digits = [];
- this._bufferedEvents.forEach(function(args) {
- this.emit.apply(this, args);
- }.bind(this));
- this._bufferedEvents = [];
-};
+ if ('+-'.indexOf(value[0]) >= 0) {
+ value = value.slice(1);
+ }
-DelayedStream.prototype.pipe = function() {
- var r = Stream.prototype.pipe.apply(this, arguments);
- this.resume();
- return r;
-};
+ if (value === '.inf') {
+ return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;
+
+ } else if (value === '.nan') {
+ return NaN;
+
+ } else if (value.indexOf(':') >= 0) {
+ value.split(':').forEach(function (v) {
+ digits.unshift(parseFloat(v, 10));
+ });
+
+ value = 0.0;
+ base = 1;
+
+ digits.forEach(function (d) {
+ value += d * base;
+ base *= 60;
+ });
+
+ return sign * value;
-DelayedStream.prototype._handleEmit = function(args) {
- if (this._released) {
- this.emit.apply(this, args);
- return;
}
+ return sign * parseFloat(value, 10);
+}
- if (args[0] === 'data') {
- this.dataSize += args[1].length;
- this._checkIfMaxDataSizeExceeded();
+
+var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;
+
+function representYamlFloat(object, style) {
+ var res;
+
+ if (isNaN(object)) {
+ switch (style) {
+ case 'lowercase': return '.nan';
+ case 'uppercase': return '.NAN';
+ case 'camelcase': return '.NaN';
+ }
+ } else if (Number.POSITIVE_INFINITY === object) {
+ switch (style) {
+ case 'lowercase': return '.inf';
+ case 'uppercase': return '.INF';
+ case 'camelcase': return '.Inf';
+ }
+ } else if (Number.NEGATIVE_INFINITY === object) {
+ switch (style) {
+ case 'lowercase': return '-.inf';
+ case 'uppercase': return '-.INF';
+ case 'camelcase': return '-.Inf';
+ }
+ } else if (common.isNegativeZero(object)) {
+ return '-0.0';
}
- this._bufferedEvents.push(args);
-};
+ res = object.toString(10);
-DelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {
- if (this._maxDataSizeExceeded) {
- return;
+ // JS stringifier can build scientific format without dots: 5e-100,
+ // while YAML requres dot: 5.e-100. Fix it with simple hack
+
+ return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;
+}
+
+function isFloat(object) {
+ return (Object.prototype.toString.call(object) === '[object Number]') &&
+ (object % 1 !== 0 || common.isNegativeZero(object));
+}
+
+module.exports = new Type('tag:yaml.org,2002:float', {
+ kind: 'scalar',
+ resolve: resolveYamlFloat,
+ construct: constructYamlFloat,
+ predicate: isFloat,
+ represent: representYamlFloat,
+ defaultStyle: 'lowercase'
+});
+
+
+/***/ }),
+
+/***/ 9963:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+var common = __nccwpck_require__(9136);
+var Type = __nccwpck_require__(967);
+
+function isHexCode(c) {
+ return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||
+ ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||
+ ((0x61/* a */ <= c) && (c <= 0x66/* f */));
+}
+
+function isOctCode(c) {
+ return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));
+}
+
+function isDecCode(c) {
+ return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));
+}
+
+function resolveYamlInteger(data) {
+ if (data === null) return false;
+
+ var max = data.length,
+ index = 0,
+ hasDigits = false,
+ ch;
+
+ if (!max) return false;
+
+ ch = data[index];
+
+ // sign
+ if (ch === '-' || ch === '+') {
+ ch = data[++index];
}
- if (this.dataSize <= this.maxDataSize) {
- return;
+ if (ch === '0') {
+ // 0
+ if (index + 1 === max) return true;
+ ch = data[++index];
+
+ // base 2, base 8, base 16
+
+ if (ch === 'b') {
+ // base 2
+ index++;
+
+ for (; index < max; index++) {
+ ch = data[index];
+ if (ch === '_') continue;
+ if (ch !== '0' && ch !== '1') return false;
+ hasDigits = true;
+ }
+ return hasDigits && ch !== '_';
+ }
+
+
+ if (ch === 'x') {
+ // base 16
+ index++;
+
+ for (; index < max; index++) {
+ ch = data[index];
+ if (ch === '_') continue;
+ if (!isHexCode(data.charCodeAt(index))) return false;
+ hasDigits = true;
+ }
+ return hasDigits && ch !== '_';
+ }
+
+ // base 8
+ for (; index < max; index++) {
+ ch = data[index];
+ if (ch === '_') continue;
+ if (!isOctCode(data.charCodeAt(index))) return false;
+ hasDigits = true;
+ }
+ return hasDigits && ch !== '_';
}
- this._maxDataSizeExceeded = true;
- var message =
- 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'
- this.emit('error', new Error(message));
-};
+ // base 10 (except 0) or base 60
+
+ // value should not start with `_`;
+ if (ch === '_') return false;
+
+ for (; index < max; index++) {
+ ch = data[index];
+ if (ch === '_') continue;
+ if (ch === ':') break;
+ if (!isDecCode(data.charCodeAt(index))) {
+ return false;
+ }
+ hasDigits = true;
+ }
+
+ // Should have digits and should not end with `_`
+ if (!hasDigits || ch === '_') return false;
+
+ // if !base60 - done;
+ if (ch !== ':') return true;
+
+ // base60 almost not used, no needs to optimize
+ return /^(:[0-5]?[0-9])+$/.test(data.slice(index));
+}
+
+function constructYamlInteger(data) {
+ var value = data, sign = 1, ch, base, digits = [];
+
+ if (value.indexOf('_') !== -1) {
+ value = value.replace(/_/g, '');
+ }
+
+ ch = value[0];
+
+ if (ch === '-' || ch === '+') {
+ if (ch === '-') sign = -1;
+ value = value.slice(1);
+ ch = value[0];
+ }
+
+ if (value === '0') return 0;
+
+ if (ch === '0') {
+ if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);
+ if (value[1] === 'x') return sign * parseInt(value, 16);
+ return sign * parseInt(value, 8);
+ }
+
+ if (value.indexOf(':') !== -1) {
+ value.split(':').forEach(function (v) {
+ digits.unshift(parseInt(v, 10));
+ });
+
+ value = 0;
+ base = 1;
+
+ digits.forEach(function (d) {
+ value += (d * base);
+ base *= 60;
+ });
+
+ return sign * value;
+
+ }
+
+ return sign * parseInt(value, 10);
+}
+
+function isInteger(object) {
+ return (Object.prototype.toString.call(object)) === '[object Number]' &&
+ (object % 1 === 0 && !common.isNegativeZero(object));
+}
+
+module.exports = new Type('tag:yaml.org,2002:int', {
+ kind: 'scalar',
+ resolve: resolveYamlInteger,
+ construct: constructYamlInteger,
+ predicate: isInteger,
+ represent: {
+ binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },
+ octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); },
+ decimal: function (obj) { return obj.toString(10); },
+ /* eslint-disable max-len */
+ hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }
+ },
+ defaultStyle: 'decimal',
+ styleAliases: {
+ binary: [ 2, 'bin' ],
+ octal: [ 8, 'oct' ],
+ decimal: [ 10, 'dec' ],
+ hexadecimal: [ 16, 'hex' ]
+ }
+});
+
+
+/***/ }),
+
+/***/ 7278:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+var esprima;
+
+// Browserified version does not have esprima
+//
+// 1. For node.js just require module as deps
+// 2. For browser try to require mudule via external AMD system.
+// If not found - try to fallback to window.esprima. If not
+// found too - then fail to parse.
+//
+try {
+ // workaround to exclude package from browserify list.
+ var _require = require;
+ esprima = _require('esprima');
+} catch (_) {
+ /* eslint-disable no-redeclare */
+ /* global window */
+ if (typeof window !== 'undefined') esprima = window.esprima;
+}
+
+var Type = __nccwpck_require__(967);
+
+function resolveJavascriptFunction(data) {
+ if (data === null) return false;
+
+ try {
+ var source = '(' + data + ')',
+ ast = esprima.parse(source, { range: true });
+
+ if (ast.type !== 'Program' ||
+ ast.body.length !== 1 ||
+ ast.body[0].type !== 'ExpressionStatement' ||
+ (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&
+ ast.body[0].expression.type !== 'FunctionExpression')) {
+ return false;
+ }
+
+ return true;
+ } catch (err) {
+ return false;
+ }
+}
+
+function constructJavascriptFunction(data) {
+ /*jslint evil:true*/
+
+ var source = '(' + data + ')',
+ ast = esprima.parse(source, { range: true }),
+ params = [],
+ body;
+
+ if (ast.type !== 'Program' ||
+ ast.body.length !== 1 ||
+ ast.body[0].type !== 'ExpressionStatement' ||
+ (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&
+ ast.body[0].expression.type !== 'FunctionExpression')) {
+ throw new Error('Failed to resolve function');
+ }
+
+ ast.body[0].expression.params.forEach(function (param) {
+ params.push(param.name);
+ });
+
+ body = ast.body[0].expression.body.range;
+
+ // Esprima's ranges include the first '{' and the last '}' characters on
+ // function expressions. So cut them out.
+ if (ast.body[0].expression.body.type === 'BlockStatement') {
+ /*eslint-disable no-new-func*/
+ return new Function(params, source.slice(body[0] + 1, body[1] - 1));
+ }
+ // ES6 arrow functions can omit the BlockStatement. In that case, just return
+ // the body.
+ /*eslint-disable no-new-func*/
+ return new Function(params, 'return ' + source.slice(body[0], body[1]));
+}
+
+function representJavascriptFunction(object /*, style*/) {
+ return object.toString();
+}
+
+function isFunction(object) {
+ return Object.prototype.toString.call(object) === '[object Function]';
+}
+
+module.exports = new Type('tag:yaml.org,2002:js/function', {
+ kind: 'scalar',
+ resolve: resolveJavascriptFunction,
+ construct: constructJavascriptFunction,
+ predicate: isFunction,
+ represent: representJavascriptFunction
+});
+
+
+/***/ }),
+
+/***/ 9242:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+var Type = __nccwpck_require__(967);
+
+function resolveJavascriptRegExp(data) {
+ if (data === null) return false;
+ if (data.length === 0) return false;
+
+ var regexp = data,
+ tail = /\/([gim]*)$/.exec(data),
+ modifiers = '';
+
+ // if regexp starts with '/' it can have modifiers and must be properly closed
+ // `/foo/gim` - modifiers tail can be maximum 3 chars
+ if (regexp[0] === '/') {
+ if (tail) modifiers = tail[1];
+
+ if (modifiers.length > 3) return false;
+ // if expression starts with /, is should be properly terminated
+ if (regexp[regexp.length - modifiers.length - 1] !== '/') return false;
+ }
+
+ return true;
+}
+
+function constructJavascriptRegExp(data) {
+ var regexp = data,
+ tail = /\/([gim]*)$/.exec(data),
+ modifiers = '';
+
+ // `/foo/gim` - tail can be maximum 4 chars
+ if (regexp[0] === '/') {
+ if (tail) modifiers = tail[1];
+ regexp = regexp.slice(1, regexp.length - modifiers.length - 1);
+ }
+
+ return new RegExp(regexp, modifiers);
+}
+
+function representJavascriptRegExp(object /*, style*/) {
+ var result = '/' + object.source + '/';
+
+ if (object.global) result += 'g';
+ if (object.multiline) result += 'm';
+ if (object.ignoreCase) result += 'i';
+
+ return result;
+}
+
+function isRegExp(object) {
+ return Object.prototype.toString.call(object) === '[object RegExp]';
+}
+
+module.exports = new Type('tag:yaml.org,2002:js/regexp', {
+ kind: 'scalar',
+ resolve: resolveJavascriptRegExp,
+ construct: constructJavascriptRegExp,
+ predicate: isRegExp,
+ represent: representJavascriptRegExp
+});
+
+
+/***/ }),
+
+/***/ 5914:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+var Type = __nccwpck_require__(967);
+
+function resolveJavascriptUndefined() {
+ return true;
+}
+
+function constructJavascriptUndefined() {
+ /*eslint-disable no-undefined*/
+ return undefined;
+}
+
+function representJavascriptUndefined() {
+ return '';
+}
+
+function isUndefined(object) {
+ return typeof object === 'undefined';
+}
+
+module.exports = new Type('tag:yaml.org,2002:js/undefined', {
+ kind: 'scalar',
+ resolve: resolveJavascriptUndefined,
+ construct: constructJavascriptUndefined,
+ predicate: isUndefined,
+ represent: representJavascriptUndefined
+});
+
+
+/***/ }),
+
+/***/ 1173:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+var Type = __nccwpck_require__(967);
+
+module.exports = new Type('tag:yaml.org,2002:map', {
+ kind: 'mapping',
+ construct: function (data) { return data !== null ? data : {}; }
+});
+
+
+/***/ }),
+
+/***/ 1393:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+var Type = __nccwpck_require__(967);
+
+function resolveYamlMerge(data) {
+ return data === '<<' || data === null;
+}
+
+module.exports = new Type('tag:yaml.org,2002:merge', {
+ kind: 'scalar',
+ resolve: resolveYamlMerge
+});
+
+
+/***/ }),
+
+/***/ 2671:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+var Type = __nccwpck_require__(967);
+
+function resolveYamlNull(data) {
+ if (data === null) return true;
+
+ var max = data.length;
+
+ return (max === 1 && data === '~') ||
+ (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));
+}
+
+function constructYamlNull() {
+ return null;
+}
+
+function isNull(object) {
+ return object === null;
+}
+
+module.exports = new Type('tag:yaml.org,2002:null', {
+ kind: 'scalar',
+ resolve: resolveYamlNull,
+ construct: constructYamlNull,
+ predicate: isNull,
+ represent: {
+ canonical: function () { return '~'; },
+ lowercase: function () { return 'null'; },
+ uppercase: function () { return 'NULL'; },
+ camelcase: function () { return 'Null'; }
+ },
+ defaultStyle: 'lowercase'
+});
+
+
+/***/ }),
+
+/***/ 6668:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+var Type = __nccwpck_require__(967);
+
+var _hasOwnProperty = Object.prototype.hasOwnProperty;
+var _toString = Object.prototype.toString;
+
+function resolveYamlOmap(data) {
+ if (data === null) return true;
+
+ var objectKeys = [], index, length, pair, pairKey, pairHasKey,
+ object = data;
+
+ for (index = 0, length = object.length; index < length; index += 1) {
+ pair = object[index];
+ pairHasKey = false;
+
+ if (_toString.call(pair) !== '[object Object]') return false;
+
+ for (pairKey in pair) {
+ if (_hasOwnProperty.call(pair, pairKey)) {
+ if (!pairHasKey) pairHasKey = true;
+ else return false;
+ }
+ }
+
+ if (!pairHasKey) return false;
+
+ if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);
+ else return false;
+ }
+
+ return true;
+}
+
+function constructYamlOmap(data) {
+ return data !== null ? data : [];
+}
+
+module.exports = new Type('tag:yaml.org,2002:omap', {
+ kind: 'sequence',
+ resolve: resolveYamlOmap,
+ construct: constructYamlOmap
+});
+
+
+/***/ }),
+
+/***/ 6039:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+var Type = __nccwpck_require__(967);
+
+var _toString = Object.prototype.toString;
+
+function resolveYamlPairs(data) {
+ if (data === null) return true;
+
+ var index, length, pair, keys, result,
+ object = data;
+
+ result = new Array(object.length);
+
+ for (index = 0, length = object.length; index < length; index += 1) {
+ pair = object[index];
+
+ if (_toString.call(pair) !== '[object Object]') return false;
+
+ keys = Object.keys(pair);
+
+ if (keys.length !== 1) return false;
+
+ result[index] = [ keys[0], pair[keys[0]] ];
+ }
+
+ return true;
+}
+
+function constructYamlPairs(data) {
+ if (data === null) return [];
+
+ var index, length, pair, keys, result,
+ object = data;
+
+ result = new Array(object.length);
+
+ for (index = 0, length = object.length; index < length; index += 1) {
+ pair = object[index];
+
+ keys = Object.keys(pair);
+
+ result[index] = [ keys[0], pair[keys[0]] ];
+ }
+
+ return result;
+}
+
+module.exports = new Type('tag:yaml.org,2002:pairs', {
+ kind: 'sequence',
+ resolve: resolveYamlPairs,
+ construct: constructYamlPairs
+});
+
+
+/***/ }),
+
+/***/ 5490:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+var Type = __nccwpck_require__(967);
+
+module.exports = new Type('tag:yaml.org,2002:seq', {
+ kind: 'sequence',
+ construct: function (data) { return data !== null ? data : []; }
+});
+
+
+/***/ }),
+
+/***/ 9237:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+var Type = __nccwpck_require__(967);
+
+var _hasOwnProperty = Object.prototype.hasOwnProperty;
+
+function resolveYamlSet(data) {
+ if (data === null) return true;
+
+ var key, object = data;
+
+ for (key in object) {
+ if (_hasOwnProperty.call(object, key)) {
+ if (object[key] !== null) return false;
+ }
+ }
+
+ return true;
+}
+
+function constructYamlSet(data) {
+ return data !== null ? data : {};
+}
+
+module.exports = new Type('tag:yaml.org,2002:set', {
+ kind: 'mapping',
+ resolve: resolveYamlSet,
+ construct: constructYamlSet
+});
+
+
+/***/ }),
+
+/***/ 2672:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+var Type = __nccwpck_require__(967);
+
+module.exports = new Type('tag:yaml.org,2002:str', {
+ kind: 'scalar',
+ construct: function (data) { return data !== null ? data : ''; }
+});
+
+
+/***/ }),
+
+/***/ 3714:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+"use strict";
+
+
+var Type = __nccwpck_require__(967);
+
+var YAML_DATE_REGEXP = new RegExp(
+ '^([0-9][0-9][0-9][0-9])' + // [1] year
+ '-([0-9][0-9])' + // [2] month
+ '-([0-9][0-9])$'); // [3] day
+
+var YAML_TIMESTAMP_REGEXP = new RegExp(
+ '^([0-9][0-9][0-9][0-9])' + // [1] year
+ '-([0-9][0-9]?)' + // [2] month
+ '-([0-9][0-9]?)' + // [3] day
+ '(?:[Tt]|[ \\t]+)' + // ...
+ '([0-9][0-9]?)' + // [4] hour
+ ':([0-9][0-9])' + // [5] minute
+ ':([0-9][0-9])' + // [6] second
+ '(?:\\.([0-9]*))?' + // [7] fraction
+ '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour
+ '(?::([0-9][0-9]))?))?$'); // [11] tz_minute
+
+function resolveYamlTimestamp(data) {
+ if (data === null) return false;
+ if (YAML_DATE_REGEXP.exec(data) !== null) return true;
+ if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;
+ return false;
+}
+
+function constructYamlTimestamp(data) {
+ var match, year, month, day, hour, minute, second, fraction = 0,
+ delta = null, tz_hour, tz_minute, date;
+
+ match = YAML_DATE_REGEXP.exec(data);
+ if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);
+
+ if (match === null) throw new Error('Date resolve error');
+
+ // match: [1] year [2] month [3] day
+
+ year = +(match[1]);
+ month = +(match[2]) - 1; // JS month starts with 0
+ day = +(match[3]);
+
+ if (!match[4]) { // no hour
+ return new Date(Date.UTC(year, month, day));
+ }
+
+ // match: [4] hour [5] minute [6] second [7] fraction
+
+ hour = +(match[4]);
+ minute = +(match[5]);
+ second = +(match[6]);
+
+ if (match[7]) {
+ fraction = match[7].slice(0, 3);
+ while (fraction.length < 3) { // milli-seconds
+ fraction += '0';
+ }
+ fraction = +fraction;
+ }
+
+ // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute
+
+ if (match[9]) {
+ tz_hour = +(match[10]);
+ tz_minute = +(match[11] || 0);
+ delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds
+ if (match[9] === '-') delta = -delta;
+ }
+
+ date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));
+
+ if (delta) date.setTime(date.getTime() - delta);
+
+ return date;
+}
+
+function representYamlTimestamp(object /*, style*/) {
+ return object.toISOString();
+}
+
+module.exports = new Type('tag:yaml.org,2002:timestamp', {
+ kind: 'scalar',
+ resolve: resolveYamlTimestamp,
+ construct: constructYamlTimestamp,
+ instanceOf: Date,
+ represent: representYamlTimestamp
+});
/***/ }),
@@ -61444,1305 +90465,2149 @@ module.exports = {
/***/ }),
-/***/ 106:
-/***/ ((module) => {
+/***/ 106:
+/***/ ((module) => {
+
+const debug = (
+ typeof process === 'object' &&
+ process.env &&
+ process.env.NODE_DEBUG &&
+ /\bsemver\b/i.test(process.env.NODE_DEBUG)
+) ? (...args) => console.error('SEMVER', ...args)
+ : () => {}
+
+module.exports = debug
+
+
+/***/ }),
+
+/***/ 2463:
+/***/ ((module) => {
+
+const numeric = /^[0-9]+$/
+const compareIdentifiers = (a, b) => {
+ const anum = numeric.test(a)
+ const bnum = numeric.test(b)
+
+ if (anum && bnum) {
+ a = +a
+ b = +b
+ }
+
+ return a === b ? 0
+ : (anum && !bnum) ? -1
+ : (bnum && !anum) ? 1
+ : a < b ? -1
+ : 1
+}
+
+const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)
+
+module.exports = {
+ compareIdentifiers,
+ rcompareIdentifiers
+}
+
+
+/***/ }),
+
+/***/ 785:
+/***/ ((module) => {
+
+// parse out just the options we care about so we always get a consistent
+// obj with keys in a consistent order.
+const opts = ['includePrerelease', 'loose', 'rtl']
+const parseOptions = options =>
+ !options ? {}
+ : typeof options !== 'object' ? { loose: true }
+ : opts.filter(k => options[k]).reduce((options, k) => {
+ options[k] = true
+ return options
+ }, {})
+module.exports = parseOptions
+
+
+/***/ }),
+
+/***/ 9523:
+/***/ ((module, exports, __nccwpck_require__) => {
+
+const { MAX_SAFE_COMPONENT_LENGTH } = __nccwpck_require__(2293)
+const debug = __nccwpck_require__(106)
+exports = module.exports = {}
+
+// The actual regexps go on exports.re
+const re = exports.re = []
+const src = exports.src = []
+const t = exports.t = {}
+let R = 0
+
+const createToken = (name, value, isGlobal) => {
+ const index = R++
+ debug(index, value)
+ t[name] = index
+ src[index] = value
+ re[index] = new RegExp(value, isGlobal ? 'g' : undefined)
+}
+
+// The following Regular Expressions can be used for tokenizing,
+// validating, and parsing SemVer version strings.
+
+// ## Numeric Identifier
+// A single `0`, or a non-zero digit followed by zero or more digits.
+
+createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*')
+createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')
+
+// ## Non-numeric Identifier
+// Zero or more digits, followed by a letter or hyphen, and then zero or
+// more letters, digits, or hyphens.
+
+createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*')
+
+// ## Main Version
+// Three dot-separated numeric identifiers.
+
+createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` +
+ `(${src[t.NUMERICIDENTIFIER]})\\.` +
+ `(${src[t.NUMERICIDENTIFIER]})`)
+
+createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` +
+ `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` +
+ `(${src[t.NUMERICIDENTIFIERLOOSE]})`)
+
+// ## Pre-release Version Identifier
+// A numeric identifier, or a non-numeric identifier.
+
+createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]
+}|${src[t.NONNUMERICIDENTIFIER]})`)
+
+createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]
+}|${src[t.NONNUMERICIDENTIFIER]})`)
+
+// ## Pre-release Version
+// Hyphen, followed by one or more dot-separated pre-release version
+// identifiers.
+
+createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]
+}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`)
+
+createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]
+}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)
+
+// ## Build Metadata Identifier
+// Any combination of digits, letters, or hyphens.
+
+createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')
+
+// ## Build Metadata
+// Plus sign, followed by one or more period-separated build metadata
+// identifiers.
+
+createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER]
+}(?:\\.${src[t.BUILDIDENTIFIER]})*))`)
+
+// ## Full Version String
+// A main version, followed optionally by a pre-release version and
+// build metadata.
+
+// Note that the only major, minor, patch, and pre-release sections of
+// the version string are capturing groups. The build metadata is not a
+// capturing group, because it should not ever be used in version
+// comparison.
+
+createToken('FULLPLAIN', `v?${src[t.MAINVERSION]
+}${src[t.PRERELEASE]}?${
+ src[t.BUILD]}?`)
+
+createToken('FULL', `^${src[t.FULLPLAIN]}$`)
+
+// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
+// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
+// common in the npm registry.
+createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE]
+}${src[t.PRERELEASELOOSE]}?${
+ src[t.BUILD]}?`)
+
+createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)
+
+createToken('GTLT', '((?:<|>)?=?)')
+
+// Something like "2.*" or "1.2.x".
+// Note that "x.x" is a valid xRange identifer, meaning "any version"
+// Only the first item is strictly required.
+createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`)
+createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`)
+
+createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` +
+ `(?:\\.(${src[t.XRANGEIDENTIFIER]})` +
+ `(?:\\.(${src[t.XRANGEIDENTIFIER]})` +
+ `(?:${src[t.PRERELEASE]})?${
+ src[t.BUILD]}?` +
+ `)?)?`)
+
+createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +
+ `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +
+ `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +
+ `(?:${src[t.PRERELEASELOOSE]})?${
+ src[t.BUILD]}?` +
+ `)?)?`)
+
+createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`)
+createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`)
+
+// Coercion.
+// Extract anything that could conceivably be a part of a valid semver
+createToken('COERCE', `${'(^|[^\\d])' +
+ '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +
+ `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +
+ `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +
+ `(?:$|[^\\d])`)
+createToken('COERCERTL', src[t.COERCE], true)
+
+// Tilde ranges.
+// Meaning is "reasonably at or greater than"
+createToken('LONETILDE', '(?:~>?)')
+
+createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true)
+exports.tildeTrimReplace = '$1~'
+
+createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)
+createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)
+
+// Caret ranges.
+// Meaning is "at least and backwards compatible with"
+createToken('LONECARET', '(?:\\^)')
+
+createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true)
+exports.caretTrimReplace = '$1^'
+
+createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)
+createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)
+
+// A simple gt/lt/eq thing, or just "" to indicate "any version"
+createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`)
+createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`)
+
+// An expression to strip any whitespace between the gtlt and the thing
+// it modifies, so that `> 1.2.3` ==> `>1.2.3`
+createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT]
+}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)
+exports.comparatorTrimReplace = '$1$2$3'
+
+// Something like `1.2.3 - 1.2.4`
+// Note that these all use the loose form, because they'll be
+// checked against either the strict or loose comparator form
+// later.
+createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` +
+ `\\s+-\\s+` +
+ `(${src[t.XRANGEPLAIN]})` +
+ `\\s*$`)
+
+createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` +
+ `\\s+-\\s+` +
+ `(${src[t.XRANGEPLAINLOOSE]})` +
+ `\\s*$`)
+
+// Star ranges basically just allow anything at all.
+createToken('STAR', '(<|>)?=?\\s*\\*')
+// >=0.0.0 is like a star
+createToken('GTE0', '^\\s*>=\\s*0\.0\.0\\s*$')
+createToken('GTE0PRE', '^\\s*>=\\s*0\.0\.0-0\\s*$')
+
+
+/***/ }),
+
+/***/ 9380:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+// Determine if version is greater than all the versions possible in the range.
+const outside = __nccwpck_require__(420)
+const gtr = (version, range, options) => outside(version, range, '>', options)
+module.exports = gtr
+
+
+/***/ }),
+
+/***/ 7008:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+const Range = __nccwpck_require__(9828)
+const intersects = (r1, r2, options) => {
+ r1 = new Range(r1, options)
+ r2 = new Range(r2, options)
+ return r1.intersects(r2)
+}
+module.exports = intersects
+
+
+/***/ }),
+
+/***/ 3323:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+const outside = __nccwpck_require__(420)
+// Determine if version is less than all the versions possible in the range
+const ltr = (version, range, options) => outside(version, range, '<', options)
+module.exports = ltr
+
+
+/***/ }),
+
+/***/ 579:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+const SemVer = __nccwpck_require__(8088)
+const Range = __nccwpck_require__(9828)
+
+const maxSatisfying = (versions, range, options) => {
+ let max = null
+ let maxSV = null
+ let rangeObj = null
+ try {
+ rangeObj = new Range(range, options)
+ } catch (er) {
+ return null
+ }
+ versions.forEach((v) => {
+ if (rangeObj.test(v)) {
+ // satisfies(v, range, options)
+ if (!max || maxSV.compare(v) === -1) {
+ // compare(max, v, true)
+ max = v
+ maxSV = new SemVer(max, options)
+ }
+ }
+ })
+ return max
+}
+module.exports = maxSatisfying
+
+
+/***/ }),
+
+/***/ 832:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+const SemVer = __nccwpck_require__(8088)
+const Range = __nccwpck_require__(9828)
+const minSatisfying = (versions, range, options) => {
+ let min = null
+ let minSV = null
+ let rangeObj = null
+ try {
+ rangeObj = new Range(range, options)
+ } catch (er) {
+ return null
+ }
+ versions.forEach((v) => {
+ if (rangeObj.test(v)) {
+ // satisfies(v, range, options)
+ if (!min || minSV.compare(v) === 1) {
+ // compare(min, v, true)
+ min = v
+ minSV = new SemVer(min, options)
+ }
+ }
+ })
+ return min
+}
+module.exports = minSatisfying
+
+
+/***/ }),
+
+/***/ 4179:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+const SemVer = __nccwpck_require__(8088)
+const Range = __nccwpck_require__(9828)
+const gt = __nccwpck_require__(4123)
+
+const minVersion = (range, loose) => {
+ range = new Range(range, loose)
+
+ let minver = new SemVer('0.0.0')
+ if (range.test(minver)) {
+ return minver
+ }
+
+ minver = new SemVer('0.0.0-0')
+ if (range.test(minver)) {
+ return minver
+ }
+
+ minver = null
+ for (let i = 0; i < range.set.length; ++i) {
+ const comparators = range.set[i]
+
+ let setMin = null
+ comparators.forEach((comparator) => {
+ // Clone to avoid manipulating the comparator's semver object.
+ const compver = new SemVer(comparator.semver.version)
+ switch (comparator.operator) {
+ case '>':
+ if (compver.prerelease.length === 0) {
+ compver.patch++
+ } else {
+ compver.prerelease.push(0)
+ }
+ compver.raw = compver.format()
+ /* fallthrough */
+ case '':
+ case '>=':
+ if (!setMin || gt(compver, setMin)) {
+ setMin = compver
+ }
+ break
+ case '<':
+ case '<=':
+ /* Ignore maximum versions */
+ break
+ /* istanbul ignore next */
+ default:
+ throw new Error(`Unexpected operation: ${comparator.operator}`)
+ }
+ })
+ if (setMin && (!minver || gt(minver, setMin)))
+ minver = setMin
+ }
+
+ if (minver && range.test(minver)) {
+ return minver
+ }
+
+ return null
+}
+module.exports = minVersion
+
+
+/***/ }),
+
+/***/ 420:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+
+const SemVer = __nccwpck_require__(8088)
+const Comparator = __nccwpck_require__(1532)
+const {ANY} = Comparator
+const Range = __nccwpck_require__(9828)
+const satisfies = __nccwpck_require__(6055)
+const gt = __nccwpck_require__(4123)
+const lt = __nccwpck_require__(194)
+const lte = __nccwpck_require__(7520)
+const gte = __nccwpck_require__(5522)
+
+const outside = (version, range, hilo, options) => {
+ version = new SemVer(version, options)
+ range = new Range(range, options)
+
+ let gtfn, ltefn, ltfn, comp, ecomp
+ switch (hilo) {
+ case '>':
+ gtfn = gt
+ ltefn = lte
+ ltfn = lt
+ comp = '>'
+ ecomp = '>='
+ break
+ case '<':
+ gtfn = lt
+ ltefn = gte
+ ltfn = gt
+ comp = '<'
+ ecomp = '<='
+ break
+ default:
+ throw new TypeError('Must provide a hilo val of "<" or ">"')
+ }
+
+ // If it satisfies the range it is not outside
+ if (satisfies(version, range, options)) {
+ return false
+ }
+
+ // From now on, variable terms are as if we're in "gtr" mode.
+ // but note that everything is flipped for the "ltr" function.
+
+ for (let i = 0; i < range.set.length; ++i) {
+ const comparators = range.set[i]
+
+ let high = null
+ let low = null
+
+ comparators.forEach((comparator) => {
+ if (comparator.semver === ANY) {
+ comparator = new Comparator('>=0.0.0')
+ }
+ high = high || comparator
+ low = low || comparator
+ if (gtfn(comparator.semver, high.semver, options)) {
+ high = comparator
+ } else if (ltfn(comparator.semver, low.semver, options)) {
+ low = comparator
+ }
+ })
+
+ // If the edge version comparator has a operator then our version
+ // isn't outside it
+ if (high.operator === comp || high.operator === ecomp) {
+ return false
+ }
+
+ // If the lowest version comparator has an operator and our version
+ // is less than it then it isn't higher than the range
+ if ((!low.operator || low.operator === comp) &&
+ ltefn(version, low.semver)) {
+ return false
+ } else if (low.operator === ecomp && ltfn(version, low.semver)) {
+ return false
+ }
+ }
+ return true
+}
+
+module.exports = outside
+
+
+/***/ }),
+
+/***/ 5297:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-const debug = (
- typeof process === 'object' &&
- process.env &&
- process.env.NODE_DEBUG &&
- /\bsemver\b/i.test(process.env.NODE_DEBUG)
-) ? (...args) => console.error('SEMVER', ...args)
- : () => {}
+// given a set of versions and a range, create a "simplified" range
+// that includes the same versions that the original range does
+// If the original range is shorter than the simplified one, return that.
+const satisfies = __nccwpck_require__(6055)
+const compare = __nccwpck_require__(4309)
+module.exports = (versions, range, options) => {
+ const set = []
+ let min = null
+ let prev = null
+ const v = versions.sort((a, b) => compare(a, b, options))
+ for (const version of v) {
+ const included = satisfies(version, range, options)
+ if (included) {
+ prev = version
+ if (!min)
+ min = version
+ } else {
+ if (prev) {
+ set.push([min, prev])
+ }
+ prev = null
+ min = null
+ }
+ }
+ if (min)
+ set.push([min, null])
-module.exports = debug
+ const ranges = []
+ for (const [min, max] of set) {
+ if (min === max)
+ ranges.push(min)
+ else if (!max && min === v[0])
+ ranges.push('*')
+ else if (!max)
+ ranges.push(`>=${min}`)
+ else if (min === v[0])
+ ranges.push(`<=${max}`)
+ else
+ ranges.push(`${min} - ${max}`)
+ }
+ const simplified = ranges.join(' || ')
+ const original = typeof range.raw === 'string' ? range.raw : String(range)
+ return simplified.length < original.length ? simplified : range
+}
/***/ }),
-/***/ 2463:
-/***/ ((module) => {
+/***/ 7863:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-const numeric = /^[0-9]+$/
-const compareIdentifiers = (a, b) => {
- const anum = numeric.test(a)
- const bnum = numeric.test(b)
+const Range = __nccwpck_require__(9828)
+const { ANY } = __nccwpck_require__(1532)
+const satisfies = __nccwpck_require__(6055)
+const compare = __nccwpck_require__(4309)
- if (anum && bnum) {
- a = +a
- b = +b
- }
+// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:
+// - Every simple range `r1, r2, ...` is a subset of some `R1, R2, ...`
+//
+// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:
+// - If c is only the ANY comparator
+// - If C is only the ANY comparator, return true
+// - Else return false
+// - Let EQ be the set of = comparators in c
+// - If EQ is more than one, return true (null set)
+// - Let GT be the highest > or >= comparator in c
+// - Let LT be the lowest < or <= comparator in c
+// - If GT and LT, and GT.semver > LT.semver, return true (null set)
+// - If EQ
+// - If GT, and EQ does not satisfy GT, return true (null set)
+// - If LT, and EQ does not satisfy LT, return true (null set)
+// - If EQ satisfies every C, return true
+// - Else return false
+// - If GT
+// - If GT.semver is lower than any > or >= comp in C, return false
+// - If GT is >=, and GT.semver does not satisfy every C, return false
+// - If LT
+// - If LT.semver is greater than any < or <= comp in C, return false
+// - If LT is <=, and LT.semver does not satisfy every C, return false
+// - If any C is a = range, and GT or LT are set, return false
+// - Else return true
- return a === b ? 0
- : (anum && !bnum) ? -1
- : (bnum && !anum) ? 1
- : a < b ? -1
- : 1
-}
+const subset = (sub, dom, options) => {
+ if (sub === dom)
+ return true
-const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)
+ sub = new Range(sub, options)
+ dom = new Range(dom, options)
+ let sawNonNull = false
-module.exports = {
- compareIdentifiers,
- rcompareIdentifiers
+ OUTER: for (const simpleSub of sub.set) {
+ for (const simpleDom of dom.set) {
+ const isSub = simpleSubset(simpleSub, simpleDom, options)
+ sawNonNull = sawNonNull || isSub !== null
+ if (isSub)
+ continue OUTER
+ }
+ // the null set is a subset of everything, but null simple ranges in
+ // a complex range should be ignored. so if we saw a non-null range,
+ // then we know this isn't a subset, but if EVERY simple range was null,
+ // then it is a subset.
+ if (sawNonNull)
+ return false
+ }
+ return true
}
+const simpleSubset = (sub, dom, options) => {
+ if (sub === dom)
+ return true
-/***/ }),
-
-/***/ 785:
-/***/ ((module) => {
-
-// parse out just the options we care about so we always get a consistent
-// obj with keys in a consistent order.
-const opts = ['includePrerelease', 'loose', 'rtl']
-const parseOptions = options =>
- !options ? {}
- : typeof options !== 'object' ? { loose: true }
- : opts.filter(k => options[k]).reduce((options, k) => {
- options[k] = true
- return options
- }, {})
-module.exports = parseOptions
+ if (sub.length === 1 && sub[0].semver === ANY)
+ return dom.length === 1 && dom[0].semver === ANY
+ const eqSet = new Set()
+ let gt, lt
+ for (const c of sub) {
+ if (c.operator === '>' || c.operator === '>=')
+ gt = higherGT(gt, c, options)
+ else if (c.operator === '<' || c.operator === '<=')
+ lt = lowerLT(lt, c, options)
+ else
+ eqSet.add(c.semver)
+ }
-/***/ }),
+ if (eqSet.size > 1)
+ return null
-/***/ 9523:
-/***/ ((module, exports, __nccwpck_require__) => {
+ let gtltComp
+ if (gt && lt) {
+ gtltComp = compare(gt.semver, lt.semver, options)
+ if (gtltComp > 0)
+ return null
+ else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<='))
+ return null
+ }
-const { MAX_SAFE_COMPONENT_LENGTH } = __nccwpck_require__(2293)
-const debug = __nccwpck_require__(106)
-exports = module.exports = {}
+ // will iterate one or zero times
+ for (const eq of eqSet) {
+ if (gt && !satisfies(eq, String(gt), options))
+ return null
-// The actual regexps go on exports.re
-const re = exports.re = []
-const src = exports.src = []
-const t = exports.t = {}
-let R = 0
+ if (lt && !satisfies(eq, String(lt), options))
+ return null
-const createToken = (name, value, isGlobal) => {
- const index = R++
- debug(index, value)
- t[name] = index
- src[index] = value
- re[index] = new RegExp(value, isGlobal ? 'g' : undefined)
-}
+ for (const c of dom) {
+ if (!satisfies(eq, String(c), options))
+ return false
+ }
-// The following Regular Expressions can be used for tokenizing,
-// validating, and parsing SemVer version strings.
+ return true
+ }
-// ## Numeric Identifier
-// A single `0`, or a non-zero digit followed by zero or more digits.
+ let higher, lower
+ let hasDomLT, hasDomGT
+ for (const c of dom) {
+ hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='
+ hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='
+ if (gt) {
+ if (c.operator === '>' || c.operator === '>=') {
+ higher = higherGT(gt, c, options)
+ if (higher === c && higher !== gt)
+ return false
+ } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options))
+ return false
+ }
+ if (lt) {
+ if (c.operator === '<' || c.operator === '<=') {
+ lower = lowerLT(lt, c, options)
+ if (lower === c && lower !== lt)
+ return false
+ } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options))
+ return false
+ }
+ if (!c.operator && (lt || gt) && gtltComp !== 0)
+ return false
+ }
-createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*')
-createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')
+ // if there was a < or >, and nothing in the dom, then must be false
+ // UNLESS it was limited by another range in the other direction.
+ // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0
+ if (gt && hasDomLT && !lt && gtltComp !== 0)
+ return false
-// ## Non-numeric Identifier
-// Zero or more digits, followed by a letter or hyphen, and then zero or
-// more letters, digits, or hyphens.
+ if (lt && hasDomGT && !gt && gtltComp !== 0)
+ return false
-createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*')
+ return true
+}
-// ## Main Version
-// Three dot-separated numeric identifiers.
+// >=1.2.3 is lower than >1.2.3
+const higherGT = (a, b, options) => {
+ if (!a)
+ return b
+ const comp = compare(a.semver, b.semver, options)
+ return comp > 0 ? a
+ : comp < 0 ? b
+ : b.operator === '>' && a.operator === '>=' ? b
+ : a
+}
-createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` +
- `(${src[t.NUMERICIDENTIFIER]})\\.` +
- `(${src[t.NUMERICIDENTIFIER]})`)
+// <=1.2.3 is higher than <1.2.3
+const lowerLT = (a, b, options) => {
+ if (!a)
+ return b
+ const comp = compare(a.semver, b.semver, options)
+ return comp < 0 ? a
+ : comp > 0 ? b
+ : b.operator === '<' && a.operator === '<=' ? b
+ : a
+}
-createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` +
- `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` +
- `(${src[t.NUMERICIDENTIFIERLOOSE]})`)
+module.exports = subset
-// ## Pre-release Version Identifier
-// A numeric identifier, or a non-numeric identifier.
-createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]
-}|${src[t.NONNUMERICIDENTIFIER]})`)
+/***/ }),
-createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]
-}|${src[t.NONNUMERICIDENTIFIER]})`)
+/***/ 2706:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-// ## Pre-release Version
-// Hyphen, followed by one or more dot-separated pre-release version
-// identifiers.
+const Range = __nccwpck_require__(9828)
-createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]
-}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`)
+// Mostly just for testing and legacy API reasons
+const toComparators = (range, options) =>
+ new Range(range, options).set
+ .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))
-createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]
-}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)
+module.exports = toComparators
-// ## Build Metadata Identifier
-// Any combination of digits, letters, or hyphens.
-createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')
+/***/ }),
-// ## Build Metadata
-// Plus sign, followed by one or more period-separated build metadata
-// identifiers.
+/***/ 2098:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER]
-}(?:\\.${src[t.BUILDIDENTIFIER]})*))`)
+const Range = __nccwpck_require__(9828)
+const validRange = (range, options) => {
+ try {
+ // Return '*' instead of '' so that truthiness works.
+ // This will throw if it's invalid anyway
+ return new Range(range, options).range || '*'
+ } catch (er) {
+ return null
+ }
+}
+module.exports = validRange
-// ## Full Version String
-// A main version, followed optionally by a pre-release version and
-// build metadata.
-// Note that the only major, minor, patch, and pre-release sections of
-// the version string are capturing groups. The build metadata is not a
-// capturing group, because it should not ever be used in version
-// comparison.
+/***/ }),
-createToken('FULLPLAIN', `v?${src[t.MAINVERSION]
-}${src[t.PRERELEASE]}?${
- src[t.BUILD]}?`)
+/***/ 4294:
+/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-createToken('FULL', `^${src[t.FULLPLAIN]}$`)
+module.exports = __nccwpck_require__(4219);
-// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
-// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
-// common in the npm registry.
-createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE]
-}${src[t.PRERELEASELOOSE]}?${
- src[t.BUILD]}?`)
-createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)
+/***/ }),
-createToken('GTLT', '((?:<|>)?=?)')
+/***/ 4219:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-// Something like "2.*" or "1.2.x".
-// Note that "x.x" is a valid xRange identifer, meaning "any version"
-// Only the first item is strictly required.
-createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`)
-createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`)
+"use strict";
-createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` +
- `(?:\\.(${src[t.XRANGEIDENTIFIER]})` +
- `(?:\\.(${src[t.XRANGEIDENTIFIER]})` +
- `(?:${src[t.PRERELEASE]})?${
- src[t.BUILD]}?` +
- `)?)?`)
-createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +
- `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +
- `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +
- `(?:${src[t.PRERELEASELOOSE]})?${
- src[t.BUILD]}?` +
- `)?)?`)
+var net = __nccwpck_require__(1808);
+var tls = __nccwpck_require__(4404);
+var http = __nccwpck_require__(3685);
+var https = __nccwpck_require__(5687);
+var events = __nccwpck_require__(2361);
+var assert = __nccwpck_require__(9491);
+var util = __nccwpck_require__(3837);
-createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`)
-createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`)
-// Coercion.
-// Extract anything that could conceivably be a part of a valid semver
-createToken('COERCE', `${'(^|[^\\d])' +
- '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +
- `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +
- `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +
- `(?:$|[^\\d])`)
-createToken('COERCERTL', src[t.COERCE], true)
+exports.httpOverHttp = httpOverHttp;
+exports.httpsOverHttp = httpsOverHttp;
+exports.httpOverHttps = httpOverHttps;
+exports.httpsOverHttps = httpsOverHttps;
-// Tilde ranges.
-// Meaning is "reasonably at or greater than"
-createToken('LONETILDE', '(?:~>?)')
-createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true)
-exports.tildeTrimReplace = '$1~'
+function httpOverHttp(options) {
+ var agent = new TunnelingAgent(options);
+ agent.request = http.request;
+ return agent;
+}
-createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)
-createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)
+function httpsOverHttp(options) {
+ var agent = new TunnelingAgent(options);
+ agent.request = http.request;
+ agent.createSocket = createSecureSocket;
+ agent.defaultPort = 443;
+ return agent;
+}
-// Caret ranges.
-// Meaning is "at least and backwards compatible with"
-createToken('LONECARET', '(?:\\^)')
+function httpOverHttps(options) {
+ var agent = new TunnelingAgent(options);
+ agent.request = https.request;
+ return agent;
+}
-createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true)
-exports.caretTrimReplace = '$1^'
+function httpsOverHttps(options) {
+ var agent = new TunnelingAgent(options);
+ agent.request = https.request;
+ agent.createSocket = createSecureSocket;
+ agent.defaultPort = 443;
+ return agent;
+}
-createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)
-createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)
-// A simple gt/lt/eq thing, or just "" to indicate "any version"
-createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`)
-createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`)
+function TunnelingAgent(options) {
+ var self = this;
+ self.options = options || {};
+ self.proxyOptions = self.options.proxy || {};
+ self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;
+ self.requests = [];
+ self.sockets = [];
-// An expression to strip any whitespace between the gtlt and the thing
-// it modifies, so that `> 1.2.3` ==> `>1.2.3`
-createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT]
-}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)
-exports.comparatorTrimReplace = '$1$2$3'
+ self.on('free', function onFree(socket, host, port, localAddress) {
+ var options = toOptions(host, port, localAddress);
+ for (var i = 0, len = self.requests.length; i < len; ++i) {
+ var pending = self.requests[i];
+ if (pending.host === options.host && pending.port === options.port) {
+ // Detect the request to connect same origin server,
+ // reuse the connection.
+ self.requests.splice(i, 1);
+ pending.request.onSocket(socket);
+ return;
+ }
+ }
+ socket.destroy();
+ self.removeSocket(socket);
+ });
+}
+util.inherits(TunnelingAgent, events.EventEmitter);
-// Something like `1.2.3 - 1.2.4`
-// Note that these all use the loose form, because they'll be
-// checked against either the strict or loose comparator form
-// later.
-createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` +
- `\\s+-\\s+` +
- `(${src[t.XRANGEPLAIN]})` +
- `\\s*$`)
+TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {
+ var self = this;
+ var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));
-createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` +
- `\\s+-\\s+` +
- `(${src[t.XRANGEPLAINLOOSE]})` +
- `\\s*$`)
+ if (self.sockets.length >= this.maxSockets) {
+ // We are over limit so we'll add it to the queue.
+ self.requests.push(options);
+ return;
+ }
-// Star ranges basically just allow anything at all.
-createToken('STAR', '(<|>)?=?\\s*\\*')
-// >=0.0.0 is like a star
-createToken('GTE0', '^\\s*>=\\s*0\.0\.0\\s*$')
-createToken('GTE0PRE', '^\\s*>=\\s*0\.0\.0-0\\s*$')
+ // If we are under maxSockets create a new one.
+ self.createSocket(options, function(socket) {
+ socket.on('free', onFree);
+ socket.on('close', onCloseOrRemove);
+ socket.on('agentRemove', onCloseOrRemove);
+ req.onSocket(socket);
+ function onFree() {
+ self.emit('free', socket, options);
+ }
-/***/ }),
+ function onCloseOrRemove(err) {
+ self.removeSocket(socket);
+ socket.removeListener('free', onFree);
+ socket.removeListener('close', onCloseOrRemove);
+ socket.removeListener('agentRemove', onCloseOrRemove);
+ }
+ });
+};
-/***/ 9380:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+TunnelingAgent.prototype.createSocket = function createSocket(options, cb) {
+ var self = this;
+ var placeholder = {};
+ self.sockets.push(placeholder);
-// Determine if version is greater than all the versions possible in the range.
-const outside = __nccwpck_require__(420)
-const gtr = (version, range, options) => outside(version, range, '>', options)
-module.exports = gtr
+ var connectOptions = mergeOptions({}, self.proxyOptions, {
+ method: 'CONNECT',
+ path: options.host + ':' + options.port,
+ agent: false,
+ headers: {
+ host: options.host + ':' + options.port
+ }
+ });
+ if (options.localAddress) {
+ connectOptions.localAddress = options.localAddress;
+ }
+ if (connectOptions.proxyAuth) {
+ connectOptions.headers = connectOptions.headers || {};
+ connectOptions.headers['Proxy-Authorization'] = 'Basic ' +
+ new Buffer(connectOptions.proxyAuth).toString('base64');
+ }
+ debug('making CONNECT request');
+ var connectReq = self.request(connectOptions);
+ connectReq.useChunkedEncodingByDefault = false; // for v0.6
+ connectReq.once('response', onResponse); // for v0.6
+ connectReq.once('upgrade', onUpgrade); // for v0.6
+ connectReq.once('connect', onConnect); // for v0.7 or later
+ connectReq.once('error', onError);
+ connectReq.end();
-/***/ }),
+ function onResponse(res) {
+ // Very hacky. This is necessary to avoid http-parser leaks.
+ res.upgrade = true;
+ }
-/***/ 7008:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+ function onUpgrade(res, socket, head) {
+ // Hacky.
+ process.nextTick(function() {
+ onConnect(res, socket, head);
+ });
+ }
-const Range = __nccwpck_require__(9828)
-const intersects = (r1, r2, options) => {
- r1 = new Range(r1, options)
- r2 = new Range(r2, options)
- return r1.intersects(r2)
-}
-module.exports = intersects
+ function onConnect(res, socket, head) {
+ connectReq.removeAllListeners();
+ socket.removeAllListeners();
+ if (res.statusCode !== 200) {
+ debug('tunneling socket could not be established, statusCode=%d',
+ res.statusCode);
+ socket.destroy();
+ var error = new Error('tunneling socket could not be established, ' +
+ 'statusCode=' + res.statusCode);
+ error.code = 'ECONNRESET';
+ options.request.emit('error', error);
+ self.removeSocket(placeholder);
+ return;
+ }
+ if (head.length > 0) {
+ debug('got illegal response body from proxy');
+ socket.destroy();
+ var error = new Error('got illegal response body from proxy');
+ error.code = 'ECONNRESET';
+ options.request.emit('error', error);
+ self.removeSocket(placeholder);
+ return;
+ }
+ debug('tunneling connection has established');
+ self.sockets[self.sockets.indexOf(placeholder)] = socket;
+ return cb(socket);
+ }
-/***/ }),
+ function onError(cause) {
+ connectReq.removeAllListeners();
-/***/ 3323:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+ debug('tunneling socket could not be established, cause=%s\n',
+ cause.message, cause.stack);
+ var error = new Error('tunneling socket could not be established, ' +
+ 'cause=' + cause.message);
+ error.code = 'ECONNRESET';
+ options.request.emit('error', error);
+ self.removeSocket(placeholder);
+ }
+};
-const outside = __nccwpck_require__(420)
-// Determine if version is less than all the versions possible in the range
-const ltr = (version, range, options) => outside(version, range, '<', options)
-module.exports = ltr
+TunnelingAgent.prototype.removeSocket = function removeSocket(socket) {
+ var pos = this.sockets.indexOf(socket)
+ if (pos === -1) {
+ return;
+ }
+ this.sockets.splice(pos, 1);
+ var pending = this.requests.shift();
+ if (pending) {
+ // If we have pending requests and a socket gets closed a new one
+ // needs to be created to take over in the pool for the one that closed.
+ this.createSocket(pending, function(socket) {
+ pending.request.onSocket(socket);
+ });
+ }
+};
-/***/ }),
+function createSecureSocket(options, cb) {
+ var self = this;
+ TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {
+ var hostHeader = options.request.getHeader('host');
+ var tlsOptions = mergeOptions({}, self.options, {
+ socket: socket,
+ servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host
+ });
-/***/ 579:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+ // 0 is dummy port for v0.6
+ var secureSocket = tls.connect(0, tlsOptions);
+ self.sockets[self.sockets.indexOf(socket)] = secureSocket;
+ cb(secureSocket);
+ });
+}
-const SemVer = __nccwpck_require__(8088)
-const Range = __nccwpck_require__(9828)
-const maxSatisfying = (versions, range, options) => {
- let max = null
- let maxSV = null
- let rangeObj = null
- try {
- rangeObj = new Range(range, options)
- } catch (er) {
- return null
+function toOptions(host, port, localAddress) {
+ if (typeof host === 'string') { // since v0.10
+ return {
+ host: host,
+ port: port,
+ localAddress: localAddress
+ };
}
- versions.forEach((v) => {
- if (rangeObj.test(v)) {
- // satisfies(v, range, options)
- if (!max || maxSV.compare(v) === -1) {
- // compare(max, v, true)
- max = v
- maxSV = new SemVer(max, options)
+ return host; // for v0.11 or later
+}
+
+function mergeOptions(target) {
+ for (var i = 1, len = arguments.length; i < len; ++i) {
+ var overrides = arguments[i];
+ if (typeof overrides === 'object') {
+ var keys = Object.keys(overrides);
+ for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {
+ var k = keys[j];
+ if (overrides[k] !== undefined) {
+ target[k] = overrides[k];
+ }
}
}
- })
- return max
+ }
+ return target;
}
-module.exports = maxSatisfying
-/***/ }),
-
-/***/ 832:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-const SemVer = __nccwpck_require__(8088)
-const Range = __nccwpck_require__(9828)
-const minSatisfying = (versions, range, options) => {
- let min = null
- let minSV = null
- let rangeObj = null
- try {
- rangeObj = new Range(range, options)
- } catch (er) {
- return null
- }
- versions.forEach((v) => {
- if (rangeObj.test(v)) {
- // satisfies(v, range, options)
- if (!min || minSV.compare(v) === 1) {
- // compare(min, v, true)
- min = v
- minSV = new SemVer(min, options)
- }
+var debug;
+if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) {
+ debug = function() {
+ var args = Array.prototype.slice.call(arguments);
+ if (typeof args[0] === 'string') {
+ args[0] = 'TUNNEL: ' + args[0];
+ } else {
+ args.unshift('TUNNEL:');
}
- })
- return min
+ console.error.apply(console, args);
+ }
+} else {
+ debug = function() {};
}
-module.exports = minSatisfying
+exports.debug = debug; // for test
/***/ }),
-/***/ 4179:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-const SemVer = __nccwpck_require__(8088)
-const Range = __nccwpck_require__(9828)
-const gt = __nccwpck_require__(4123)
-
-const minVersion = (range, loose) => {
- range = new Range(range, loose)
-
- let minver = new SemVer('0.0.0')
- if (range.test(minver)) {
- return minver
- }
-
- minver = new SemVer('0.0.0-0')
- if (range.test(minver)) {
- return minver
- }
+/***/ 9046:
+/***/ ((__unused_webpack_module, exports) => {
- minver = null
- for (let i = 0; i < range.set.length; ++i) {
- const comparators = range.set[i]
+"use strict";
- let setMin = null
- comparators.forEach((comparator) => {
- // Clone to avoid manipulating the comparator's semver object.
- const compver = new SemVer(comparator.semver.version)
- switch (comparator.operator) {
- case '>':
- if (compver.prerelease.length === 0) {
- compver.patch++
- } else {
- compver.prerelease.push(0)
- }
- compver.raw = compver.format()
- /* fallthrough */
- case '':
- case '>=':
- if (!setMin || gt(compver, setMin)) {
- setMin = compver
- }
- break
- case '<':
- case '<=':
- /* Ignore maximum versions */
- break
- /* istanbul ignore next */
- default:
- throw new Error(`Unexpected operation: ${comparator.operator}`)
- }
- })
- if (setMin && (!minver || gt(minver, setMin)))
- minver = setMin
- }
- if (minver && range.test(minver)) {
- return minver
- }
+exports.fromCallback = function (fn) {
+ return Object.defineProperty(function () {
+ if (typeof arguments[arguments.length - 1] === 'function') fn.apply(this, arguments)
+ else {
+ return new Promise((resolve, reject) => {
+ arguments[arguments.length] = (err, res) => {
+ if (err) return reject(err)
+ resolve(res)
+ }
+ arguments.length++
+ fn.apply(this, arguments)
+ })
+ }
+ }, 'name', { value: fn.name })
+}
- return null
+exports.fromPromise = function (fn) {
+ return Object.defineProperty(function () {
+ const cb = arguments[arguments.length - 1]
+ if (typeof cb !== 'function') return fn.apply(this, arguments)
+ else fn.apply(this, arguments).then(r => cb(null, r), cb)
+ }, 'name', { value: fn.name })
}
-module.exports = minVersion
/***/ }),
-/***/ 420:
+/***/ 2155:
/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-const SemVer = __nccwpck_require__(8088)
-const Comparator = __nccwpck_require__(1532)
-const {ANY} = Comparator
-const Range = __nccwpck_require__(9828)
-const satisfies = __nccwpck_require__(6055)
-const gt = __nccwpck_require__(4123)
-const lt = __nccwpck_require__(194)
-const lte = __nccwpck_require__(7520)
-const gte = __nccwpck_require__(5522)
-
-const outside = (version, range, hilo, options) => {
- version = new SemVer(version, options)
- range = new Range(range, options)
-
- let gtfn, ltefn, ltfn, comp, ecomp
- switch (hilo) {
- case '>':
- gtfn = gt
- ltefn = lte
- ltfn = lt
- comp = '>'
- ecomp = '>='
- break
- case '<':
- gtfn = lt
- ltefn = gte
- ltfn = gt
- comp = '<'
- ecomp = '<='
- break
- default:
- throw new TypeError('Must provide a hilo val of "<" or ">"')
- }
+var v1 = __nccwpck_require__(8749);
+var v4 = __nccwpck_require__(824);
- // If it satisfies the range it is not outside
- if (satisfies(version, range, options)) {
- return false
- }
+var uuid = v4;
+uuid.v1 = v1;
+uuid.v4 = v4;
- // From now on, variable terms are as if we're in "gtr" mode.
- // but note that everything is flipped for the "ltr" function.
+module.exports = uuid;
- for (let i = 0; i < range.set.length; ++i) {
- const comparators = range.set[i]
- let high = null
- let low = null
+/***/ }),
- comparators.forEach((comparator) => {
- if (comparator.semver === ANY) {
- comparator = new Comparator('>=0.0.0')
- }
- high = high || comparator
- low = low || comparator
- if (gtfn(comparator.semver, high.semver, options)) {
- high = comparator
- } else if (ltfn(comparator.semver, low.semver, options)) {
- low = comparator
- }
- })
+/***/ 2707:
+/***/ ((module) => {
- // If the edge version comparator has a operator then our version
- // isn't outside it
- if (high.operator === comp || high.operator === ecomp) {
- return false
- }
+/**
+ * Convert array of 16 byte values to UUID string format of the form:
+ * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
+ */
+var byteToHex = [];
+for (var i = 0; i < 256; ++i) {
+ byteToHex[i] = (i + 0x100).toString(16).substr(1);
+}
- // If the lowest version comparator has an operator and our version
- // is less than it then it isn't higher than the range
- if ((!low.operator || low.operator === comp) &&
- ltefn(version, low.semver)) {
- return false
- } else if (low.operator === ecomp && ltfn(version, low.semver)) {
- return false
- }
- }
- return true
+function bytesToUuid(buf, offset) {
+ var i = offset || 0;
+ var bth = byteToHex;
+ // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4
+ return ([
+ bth[buf[i++]], bth[buf[i++]],
+ bth[buf[i++]], bth[buf[i++]], '-',
+ bth[buf[i++]], bth[buf[i++]], '-',
+ bth[buf[i++]], bth[buf[i++]], '-',
+ bth[buf[i++]], bth[buf[i++]], '-',
+ bth[buf[i++]], bth[buf[i++]],
+ bth[buf[i++]], bth[buf[i++]],
+ bth[buf[i++]], bth[buf[i++]]
+ ]).join('');
}
-module.exports = outside
+module.exports = bytesToUuid;
/***/ }),
-/***/ 5297:
+/***/ 5859:
/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-// given a set of versions and a range, create a "simplified" range
-// that includes the same versions that the original range does
-// If the original range is shorter than the simplified one, return that.
-const satisfies = __nccwpck_require__(6055)
-const compare = __nccwpck_require__(4309)
-module.exports = (versions, range, options) => {
- const set = []
- let min = null
- let prev = null
- const v = versions.sort((a, b) => compare(a, b, options))
- for (const version of v) {
- const included = satisfies(version, range, options)
- if (included) {
- prev = version
- if (!min)
- min = version
- } else {
- if (prev) {
- set.push([min, prev])
- }
- prev = null
- min = null
- }
- }
- if (min)
- set.push([min, null])
+// Unique ID creation requires a high quality random # generator. In node.js
+// this is pretty straight-forward - we use the crypto API.
- const ranges = []
- for (const [min, max] of set) {
- if (min === max)
- ranges.push(min)
- else if (!max && min === v[0])
- ranges.push('*')
- else if (!max)
- ranges.push(`>=${min}`)
- else if (min === v[0])
- ranges.push(`<=${max}`)
- else
- ranges.push(`${min} - ${max}`)
- }
- const simplified = ranges.join(' || ')
- const original = typeof range.raw === 'string' ? range.raw : String(range)
- return simplified.length < original.length ? simplified : range
-}
+var crypto = __nccwpck_require__(6113);
+
+module.exports = function nodeRNG() {
+ return crypto.randomBytes(16);
+};
/***/ }),
-/***/ 7863:
+/***/ 8749:
/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-const Range = __nccwpck_require__(9828)
-const { ANY } = __nccwpck_require__(1532)
-const satisfies = __nccwpck_require__(6055)
-const compare = __nccwpck_require__(4309)
+var rng = __nccwpck_require__(5859);
+var bytesToUuid = __nccwpck_require__(2707);
-// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:
-// - Every simple range `r1, r2, ...` is a subset of some `R1, R2, ...`
+// **`v1()` - Generate time-based UUID**
//
-// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:
-// - If c is only the ANY comparator
-// - If C is only the ANY comparator, return true
-// - Else return false
-// - Let EQ be the set of = comparators in c
-// - If EQ is more than one, return true (null set)
-// - Let GT be the highest > or >= comparator in c
-// - Let LT be the lowest < or <= comparator in c
-// - If GT and LT, and GT.semver > LT.semver, return true (null set)
-// - If EQ
-// - If GT, and EQ does not satisfy GT, return true (null set)
-// - If LT, and EQ does not satisfy LT, return true (null set)
-// - If EQ satisfies every C, return true
-// - Else return false
-// - If GT
-// - If GT.semver is lower than any > or >= comp in C, return false
-// - If GT is >=, and GT.semver does not satisfy every C, return false
-// - If LT
-// - If LT.semver is greater than any < or <= comp in C, return false
-// - If LT is <=, and LT.semver does not satisfy every C, return false
-// - If any C is a = range, and GT or LT are set, return false
-// - Else return true
+// Inspired by https://github.com/LiosK/UUID.js
+// and http://docs.python.org/library/uuid.html
-const subset = (sub, dom, options) => {
- if (sub === dom)
- return true
+var _nodeId;
+var _clockseq;
- sub = new Range(sub, options)
- dom = new Range(dom, options)
- let sawNonNull = false
+// Previous uuid creation time
+var _lastMSecs = 0;
+var _lastNSecs = 0;
- OUTER: for (const simpleSub of sub.set) {
- for (const simpleDom of dom.set) {
- const isSub = simpleSubset(simpleSub, simpleDom, options)
- sawNonNull = sawNonNull || isSub !== null
- if (isSub)
- continue OUTER
+// See https://github.com/uuidjs/uuid for API details
+function v1(options, buf, offset) {
+ var i = buf && offset || 0;
+ var b = buf || [];
+
+ options = options || {};
+ var node = options.node || _nodeId;
+ var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;
+
+ // node and clockseq need to be initialized to random values if they're not
+ // specified. We do this lazily to minimize issues related to insufficient
+ // system entropy. See #189
+ if (node == null || clockseq == null) {
+ var seedBytes = rng();
+ if (node == null) {
+ // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
+ node = _nodeId = [
+ seedBytes[0] | 0x01,
+ seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]
+ ];
+ }
+ if (clockseq == null) {
+ // Per 4.2.2, randomize (14 bit) clockseq
+ clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;
}
- // the null set is a subset of everything, but null simple ranges in
- // a complex range should be ignored. so if we saw a non-null range,
- // then we know this isn't a subset, but if EVERY simple range was null,
- // then it is a subset.
- if (sawNonNull)
- return false
}
- return true
-}
-const simpleSubset = (sub, dom, options) => {
- if (sub === dom)
- return true
+ // UUID timestamps are 100 nano-second units since the Gregorian epoch,
+ // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
+ // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
+ // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
+ var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();
- if (sub.length === 1 && sub[0].semver === ANY)
- return dom.length === 1 && dom[0].semver === ANY
+ // Per 4.2.1.2, use count of uuid's generated during the current clock
+ // cycle to simulate higher resolution clock
+ var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;
- const eqSet = new Set()
- let gt, lt
- for (const c of sub) {
- if (c.operator === '>' || c.operator === '>=')
- gt = higherGT(gt, c, options)
- else if (c.operator === '<' || c.operator === '<=')
- lt = lowerLT(lt, c, options)
- else
- eqSet.add(c.semver)
- }
+ // Time since last uuid creation (in msecs)
+ var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;
- if (eqSet.size > 1)
- return null
+ // Per 4.2.1.2, Bump clockseq on clock regression
+ if (dt < 0 && options.clockseq === undefined) {
+ clockseq = clockseq + 1 & 0x3fff;
+ }
- let gtltComp
- if (gt && lt) {
- gtltComp = compare(gt.semver, lt.semver, options)
- if (gtltComp > 0)
- return null
- else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<='))
- return null
+ // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
+ // time interval
+ if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
+ nsecs = 0;
}
- // will iterate one or zero times
- for (const eq of eqSet) {
- if (gt && !satisfies(eq, String(gt), options))
- return null
+ // Per 4.2.1.2 Throw error if too many uuids are requested
+ if (nsecs >= 10000) {
+ throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');
+ }
- if (lt && !satisfies(eq, String(lt), options))
- return null
+ _lastMSecs = msecs;
+ _lastNSecs = nsecs;
+ _clockseq = clockseq;
- for (const c of dom) {
- if (!satisfies(eq, String(c), options))
- return false
- }
+ // Per 4.1.4 - Convert from unix epoch to Gregorian epoch
+ msecs += 12219292800000;
- return true
- }
+ // `time_low`
+ var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
+ b[i++] = tl >>> 24 & 0xff;
+ b[i++] = tl >>> 16 & 0xff;
+ b[i++] = tl >>> 8 & 0xff;
+ b[i++] = tl & 0xff;
- let higher, lower
- let hasDomLT, hasDomGT
- for (const c of dom) {
- hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='
- hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='
- if (gt) {
- if (c.operator === '>' || c.operator === '>=') {
- higher = higherGT(gt, c, options)
- if (higher === c && higher !== gt)
- return false
- } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options))
- return false
- }
- if (lt) {
- if (c.operator === '<' || c.operator === '<=') {
- lower = lowerLT(lt, c, options)
- if (lower === c && lower !== lt)
- return false
- } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options))
- return false
- }
- if (!c.operator && (lt || gt) && gtltComp !== 0)
- return false
- }
+ // `time_mid`
+ var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;
+ b[i++] = tmh >>> 8 & 0xff;
+ b[i++] = tmh & 0xff;
- // if there was a < or >, and nothing in the dom, then must be false
- // UNLESS it was limited by another range in the other direction.
- // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0
- if (gt && hasDomLT && !lt && gtltComp !== 0)
- return false
+ // `time_high_and_version`
+ b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
+ b[i++] = tmh >>> 16 & 0xff;
- if (lt && hasDomGT && !gt && gtltComp !== 0)
- return false
+ // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
+ b[i++] = clockseq >>> 8 | 0x80;
- return true
-}
+ // `clock_seq_low`
+ b[i++] = clockseq & 0xff;
-// >=1.2.3 is lower than >1.2.3
-const higherGT = (a, b, options) => {
- if (!a)
- return b
- const comp = compare(a.semver, b.semver, options)
- return comp > 0 ? a
- : comp < 0 ? b
- : b.operator === '>' && a.operator === '>=' ? b
- : a
-}
+ // `node`
+ for (var n = 0; n < 6; ++n) {
+ b[i + n] = node[n];
+ }
-// <=1.2.3 is higher than <1.2.3
-const lowerLT = (a, b, options) => {
- if (!a)
- return b
- const comp = compare(a.semver, b.semver, options)
- return comp < 0 ? a
- : comp > 0 ? b
- : b.operator === '<' && a.operator === '<=' ? b
- : a
+ return buf ? buf : bytesToUuid(b);
}
-module.exports = subset
+module.exports = v1;
/***/ }),
-/***/ 2706:
+/***/ 824:
/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-const Range = __nccwpck_require__(9828)
-
-// Mostly just for testing and legacy API reasons
-const toComparators = (range, options) =>
- new Range(range, options).set
- .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))
+var rng = __nccwpck_require__(5859);
+var bytesToUuid = __nccwpck_require__(2707);
-module.exports = toComparators
+function v4(options, buf, offset) {
+ var i = buf && offset || 0;
+ if (typeof(options) == 'string') {
+ buf = options === 'binary' ? new Array(16) : null;
+ options = null;
+ }
+ options = options || {};
-/***/ }),
+ var rnds = options.random || (options.rng || rng)();
-/***/ 2098:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+ // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
+ rnds[6] = (rnds[6] & 0x0f) | 0x40;
+ rnds[8] = (rnds[8] & 0x3f) | 0x80;
-const Range = __nccwpck_require__(9828)
-const validRange = (range, options) => {
- try {
- // Return '*' instead of '' so that truthiness works.
- // This will throw if it's invalid anyway
- return new Range(range, options).range || '*'
- } catch (er) {
- return null
+ // Copy bytes to buffer, if provided
+ if (buf) {
+ for (var ii = 0; ii < 16; ++ii) {
+ buf[i + ii] = rnds[ii];
+ }
}
+
+ return buf || bytesToUuid(rnds);
}
-module.exports = validRange
+
+module.exports = v4;
/***/ }),
-/***/ 4294:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
-
-module.exports = __nccwpck_require__(4219);
+/***/ 2624:
+/***/ (function(__unused_webpack_module, exports) {
+// Generated by CoffeeScript 1.12.7
+(function() {
+ "use strict";
+ exports.stripBOM = function(str) {
+ if (str[0] === '\uFEFF') {
+ return str.substring(1);
+ } else {
+ return str;
+ }
+ };
-/***/ }),
+}).call(this);
-/***/ 4219:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-"use strict";
+/***/ }),
+/***/ 3337:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-var net = __nccwpck_require__(1808);
-var tls = __nccwpck_require__(4404);
-var http = __nccwpck_require__(3685);
-var https = __nccwpck_require__(5687);
-var events = __nccwpck_require__(2361);
-var assert = __nccwpck_require__(9491);
-var util = __nccwpck_require__(3837);
+// Generated by CoffeeScript 1.12.7
+(function() {
+ "use strict";
+ var builder, defaults, escapeCDATA, requiresCDATA, wrapCDATA,
+ hasProp = {}.hasOwnProperty;
+ builder = __nccwpck_require__(2958);
-exports.httpOverHttp = httpOverHttp;
-exports.httpsOverHttp = httpsOverHttp;
-exports.httpOverHttps = httpOverHttps;
-exports.httpsOverHttps = httpsOverHttps;
+ defaults = (__nccwpck_require__(7251).defaults);
+ requiresCDATA = function(entry) {
+ return typeof entry === "string" && (entry.indexOf('&') >= 0 || entry.indexOf('>') >= 0 || entry.indexOf('<') >= 0);
+ };
-function httpOverHttp(options) {
- var agent = new TunnelingAgent(options);
- agent.request = http.request;
- return agent;
-}
+ wrapCDATA = function(entry) {
+ return "";
+ };
-function httpsOverHttp(options) {
- var agent = new TunnelingAgent(options);
- agent.request = http.request;
- agent.createSocket = createSecureSocket;
- agent.defaultPort = 443;
- return agent;
-}
+ escapeCDATA = function(entry) {
+ return entry.replace(']]>', ']]]]>');
+ };
-function httpOverHttps(options) {
- var agent = new TunnelingAgent(options);
- agent.request = https.request;
- return agent;
-}
+ exports.Builder = (function() {
+ function Builder(opts) {
+ var key, ref, value;
+ this.options = {};
+ ref = defaults["0.2"];
+ for (key in ref) {
+ if (!hasProp.call(ref, key)) continue;
+ value = ref[key];
+ this.options[key] = value;
+ }
+ for (key in opts) {
+ if (!hasProp.call(opts, key)) continue;
+ value = opts[key];
+ this.options[key] = value;
+ }
+ }
-function httpsOverHttps(options) {
- var agent = new TunnelingAgent(options);
- agent.request = https.request;
- agent.createSocket = createSecureSocket;
- agent.defaultPort = 443;
- return agent;
-}
+ Builder.prototype.buildObject = function(rootObj) {
+ var attrkey, charkey, render, rootElement, rootName;
+ attrkey = this.options.attrkey;
+ charkey = this.options.charkey;
+ if ((Object.keys(rootObj).length === 1) && (this.options.rootName === defaults['0.2'].rootName)) {
+ rootName = Object.keys(rootObj)[0];
+ rootObj = rootObj[rootName];
+ } else {
+ rootName = this.options.rootName;
+ }
+ render = (function(_this) {
+ return function(element, obj) {
+ var attr, child, entry, index, key, value;
+ if (typeof obj !== 'object') {
+ if (_this.options.cdata && requiresCDATA(obj)) {
+ element.raw(wrapCDATA(obj));
+ } else {
+ element.txt(obj);
+ }
+ } else if (Array.isArray(obj)) {
+ for (index in obj) {
+ if (!hasProp.call(obj, index)) continue;
+ child = obj[index];
+ for (key in child) {
+ entry = child[key];
+ element = render(element.ele(key), entry).up();
+ }
+ }
+ } else {
+ for (key in obj) {
+ if (!hasProp.call(obj, key)) continue;
+ child = obj[key];
+ if (key === attrkey) {
+ if (typeof child === "object") {
+ for (attr in child) {
+ value = child[attr];
+ element = element.att(attr, value);
+ }
+ }
+ } else if (key === charkey) {
+ if (_this.options.cdata && requiresCDATA(child)) {
+ element = element.raw(wrapCDATA(child));
+ } else {
+ element = element.txt(child);
+ }
+ } else if (Array.isArray(child)) {
+ for (index in child) {
+ if (!hasProp.call(child, index)) continue;
+ entry = child[index];
+ if (typeof entry === 'string') {
+ if (_this.options.cdata && requiresCDATA(entry)) {
+ element = element.ele(key).raw(wrapCDATA(entry)).up();
+ } else {
+ element = element.ele(key, entry).up();
+ }
+ } else {
+ element = render(element.ele(key), entry).up();
+ }
+ }
+ } else if (typeof child === "object") {
+ element = render(element.ele(key), child).up();
+ } else {
+ if (typeof child === 'string' && _this.options.cdata && requiresCDATA(child)) {
+ element = element.ele(key).raw(wrapCDATA(child)).up();
+ } else {
+ if (child == null) {
+ child = '';
+ }
+ element = element.ele(key, child.toString()).up();
+ }
+ }
+ }
+ }
+ return element;
+ };
+ })(this);
+ rootElement = builder.create(rootName, this.options.xmldec, this.options.doctype, {
+ headless: this.options.headless,
+ allowSurrogateChars: this.options.allowSurrogateChars
+ });
+ return render(rootElement, rootObj).end(this.options.renderOpts);
+ };
+ return Builder;
-function TunnelingAgent(options) {
- var self = this;
- self.options = options || {};
- self.proxyOptions = self.options.proxy || {};
- self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;
- self.requests = [];
- self.sockets = [];
+ })();
- self.on('free', function onFree(socket, host, port, localAddress) {
- var options = toOptions(host, port, localAddress);
- for (var i = 0, len = self.requests.length; i < len; ++i) {
- var pending = self.requests[i];
- if (pending.host === options.host && pending.port === options.port) {
- // Detect the request to connect same origin server,
- // reuse the connection.
- self.requests.splice(i, 1);
- pending.request.onSocket(socket);
- return;
- }
- }
- socket.destroy();
- self.removeSocket(socket);
- });
-}
-util.inherits(TunnelingAgent, events.EventEmitter);
+}).call(this);
-TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {
- var self = this;
- var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));
- if (self.sockets.length >= this.maxSockets) {
- // We are over limit so we'll add it to the queue.
- self.requests.push(options);
- return;
- }
+/***/ }),
- // If we are under maxSockets create a new one.
- self.createSocket(options, function(socket) {
- socket.on('free', onFree);
- socket.on('close', onCloseOrRemove);
- socket.on('agentRemove', onCloseOrRemove);
- req.onSocket(socket);
+/***/ 7251:
+/***/ (function(__unused_webpack_module, exports) {
- function onFree() {
- self.emit('free', socket, options);
+// Generated by CoffeeScript 1.12.7
+(function() {
+ exports.defaults = {
+ "0.1": {
+ explicitCharkey: false,
+ trim: true,
+ normalize: true,
+ normalizeTags: false,
+ attrkey: "@",
+ charkey: "#",
+ explicitArray: false,
+ ignoreAttrs: false,
+ mergeAttrs: false,
+ explicitRoot: false,
+ validator: null,
+ xmlns: false,
+ explicitChildren: false,
+ childkey: '@@',
+ charsAsChildren: false,
+ includeWhiteChars: false,
+ async: false,
+ strict: true,
+ attrNameProcessors: null,
+ attrValueProcessors: null,
+ tagNameProcessors: null,
+ valueProcessors: null,
+ emptyTag: ''
+ },
+ "0.2": {
+ explicitCharkey: false,
+ trim: false,
+ normalize: false,
+ normalizeTags: false,
+ attrkey: "$",
+ charkey: "_",
+ explicitArray: true,
+ ignoreAttrs: false,
+ mergeAttrs: false,
+ explicitRoot: true,
+ validator: null,
+ xmlns: false,
+ explicitChildren: false,
+ preserveChildrenOrder: false,
+ childkey: '$$',
+ charsAsChildren: false,
+ includeWhiteChars: false,
+ async: false,
+ strict: true,
+ attrNameProcessors: null,
+ attrValueProcessors: null,
+ tagNameProcessors: null,
+ valueProcessors: null,
+ rootName: 'root',
+ xmldec: {
+ 'version': '1.0',
+ 'encoding': 'UTF-8',
+ 'standalone': true
+ },
+ doctype: null,
+ renderOpts: {
+ 'pretty': true,
+ 'indent': ' ',
+ 'newline': '\n'
+ },
+ headless: false,
+ chunkSize: 10000,
+ emptyTag: '',
+ cdata: false
}
+ };
- function onCloseOrRemove(err) {
- self.removeSocket(socket);
- socket.removeListener('free', onFree);
- socket.removeListener('close', onCloseOrRemove);
- socket.removeListener('agentRemove', onCloseOrRemove);
- }
- });
-};
+}).call(this);
-TunnelingAgent.prototype.createSocket = function createSocket(options, cb) {
- var self = this;
- var placeholder = {};
- self.sockets.push(placeholder);
- var connectOptions = mergeOptions({}, self.proxyOptions, {
- method: 'CONNECT',
- path: options.host + ':' + options.port,
- agent: false,
- headers: {
- host: options.host + ':' + options.port
- }
- });
- if (options.localAddress) {
- connectOptions.localAddress = options.localAddress;
- }
- if (connectOptions.proxyAuth) {
- connectOptions.headers = connectOptions.headers || {};
- connectOptions.headers['Proxy-Authorization'] = 'Basic ' +
- new Buffer(connectOptions.proxyAuth).toString('base64');
- }
+/***/ }),
+
+/***/ 3314:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
- debug('making CONNECT request');
- var connectReq = self.request(connectOptions);
- connectReq.useChunkedEncodingByDefault = false; // for v0.6
- connectReq.once('response', onResponse); // for v0.6
- connectReq.once('upgrade', onUpgrade); // for v0.6
- connectReq.once('connect', onConnect); // for v0.7 or later
- connectReq.once('error', onError);
- connectReq.end();
+// Generated by CoffeeScript 1.12.7
+(function() {
+ "use strict";
+ var bom, defaults, events, isEmpty, processItem, processors, sax, setImmediate,
+ bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
- function onResponse(res) {
- // Very hacky. This is necessary to avoid http-parser leaks.
- res.upgrade = true;
- }
+ sax = __nccwpck_require__(2043);
- function onUpgrade(res, socket, head) {
- // Hacky.
- process.nextTick(function() {
- onConnect(res, socket, head);
- });
- }
+ events = __nccwpck_require__(2361);
- function onConnect(res, socket, head) {
- connectReq.removeAllListeners();
- socket.removeAllListeners();
+ bom = __nccwpck_require__(2624);
- if (res.statusCode !== 200) {
- debug('tunneling socket could not be established, statusCode=%d',
- res.statusCode);
- socket.destroy();
- var error = new Error('tunneling socket could not be established, ' +
- 'statusCode=' + res.statusCode);
- error.code = 'ECONNRESET';
- options.request.emit('error', error);
- self.removeSocket(placeholder);
- return;
- }
- if (head.length > 0) {
- debug('got illegal response body from proxy');
- socket.destroy();
- var error = new Error('got illegal response body from proxy');
- error.code = 'ECONNRESET';
- options.request.emit('error', error);
- self.removeSocket(placeholder);
- return;
- }
- debug('tunneling connection has established');
- self.sockets[self.sockets.indexOf(placeholder)] = socket;
- return cb(socket);
- }
+ processors = __nccwpck_require__(9236);
- function onError(cause) {
- connectReq.removeAllListeners();
+ setImmediate = (__nccwpck_require__(9512).setImmediate);
- debug('tunneling socket could not be established, cause=%s\n',
- cause.message, cause.stack);
- var error = new Error('tunneling socket could not be established, ' +
- 'cause=' + cause.message);
- error.code = 'ECONNRESET';
- options.request.emit('error', error);
- self.removeSocket(placeholder);
- }
-};
+ defaults = (__nccwpck_require__(7251).defaults);
-TunnelingAgent.prototype.removeSocket = function removeSocket(socket) {
- var pos = this.sockets.indexOf(socket)
- if (pos === -1) {
- return;
- }
- this.sockets.splice(pos, 1);
+ isEmpty = function(thing) {
+ return typeof thing === "object" && (thing != null) && Object.keys(thing).length === 0;
+ };
- var pending = this.requests.shift();
- if (pending) {
- // If we have pending requests and a socket gets closed a new one
- // needs to be created to take over in the pool for the one that closed.
- this.createSocket(pending, function(socket) {
- pending.request.onSocket(socket);
- });
- }
-};
+ processItem = function(processors, item, key) {
+ var i, len, process;
+ for (i = 0, len = processors.length; i < len; i++) {
+ process = processors[i];
+ item = process(item, key);
+ }
+ return item;
+ };
-function createSecureSocket(options, cb) {
- var self = this;
- TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {
- var hostHeader = options.request.getHeader('host');
- var tlsOptions = mergeOptions({}, self.options, {
- socket: socket,
- servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host
- });
+ exports.Parser = (function(superClass) {
+ extend(Parser, superClass);
- // 0 is dummy port for v0.6
- var secureSocket = tls.connect(0, tlsOptions);
- self.sockets[self.sockets.indexOf(socket)] = secureSocket;
- cb(secureSocket);
- });
-}
+ function Parser(opts) {
+ this.parseStringPromise = bind(this.parseStringPromise, this);
+ this.parseString = bind(this.parseString, this);
+ this.reset = bind(this.reset, this);
+ this.assignOrPush = bind(this.assignOrPush, this);
+ this.processAsync = bind(this.processAsync, this);
+ var key, ref, value;
+ if (!(this instanceof exports.Parser)) {
+ return new exports.Parser(opts);
+ }
+ this.options = {};
+ ref = defaults["0.2"];
+ for (key in ref) {
+ if (!hasProp.call(ref, key)) continue;
+ value = ref[key];
+ this.options[key] = value;
+ }
+ for (key in opts) {
+ if (!hasProp.call(opts, key)) continue;
+ value = opts[key];
+ this.options[key] = value;
+ }
+ if (this.options.xmlns) {
+ this.options.xmlnskey = this.options.attrkey + "ns";
+ }
+ if (this.options.normalizeTags) {
+ if (!this.options.tagNameProcessors) {
+ this.options.tagNameProcessors = [];
+ }
+ this.options.tagNameProcessors.unshift(processors.normalize);
+ }
+ this.reset();
+ }
+ Parser.prototype.processAsync = function() {
+ var chunk, err;
+ try {
+ if (this.remaining.length <= this.options.chunkSize) {
+ chunk = this.remaining;
+ this.remaining = '';
+ this.saxParser = this.saxParser.write(chunk);
+ return this.saxParser.close();
+ } else {
+ chunk = this.remaining.substr(0, this.options.chunkSize);
+ this.remaining = this.remaining.substr(this.options.chunkSize, this.remaining.length);
+ this.saxParser = this.saxParser.write(chunk);
+ return setImmediate(this.processAsync);
+ }
+ } catch (error1) {
+ err = error1;
+ if (!this.saxParser.errThrown) {
+ this.saxParser.errThrown = true;
+ return this.emit(err);
+ }
+ }
+ };
-function toOptions(host, port, localAddress) {
- if (typeof host === 'string') { // since v0.10
- return {
- host: host,
- port: port,
- localAddress: localAddress
+ Parser.prototype.assignOrPush = function(obj, key, newValue) {
+ if (!(key in obj)) {
+ if (!this.options.explicitArray) {
+ return obj[key] = newValue;
+ } else {
+ return obj[key] = [newValue];
+ }
+ } else {
+ if (!(obj[key] instanceof Array)) {
+ obj[key] = [obj[key]];
+ }
+ return obj[key].push(newValue);
+ }
};
- }
- return host; // for v0.11 or later
-}
-function mergeOptions(target) {
- for (var i = 1, len = arguments.length; i < len; ++i) {
- var overrides = arguments[i];
- if (typeof overrides === 'object') {
- var keys = Object.keys(overrides);
- for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {
- var k = keys[j];
- if (overrides[k] !== undefined) {
- target[k] = overrides[k];
+ Parser.prototype.reset = function() {
+ var attrkey, charkey, ontext, stack;
+ this.removeAllListeners();
+ this.saxParser = sax.parser(this.options.strict, {
+ trim: false,
+ normalize: false,
+ xmlns: this.options.xmlns
+ });
+ this.saxParser.errThrown = false;
+ this.saxParser.onerror = (function(_this) {
+ return function(error) {
+ _this.saxParser.resume();
+ if (!_this.saxParser.errThrown) {
+ _this.saxParser.errThrown = true;
+ return _this.emit("error", error);
+ }
+ };
+ })(this);
+ this.saxParser.onend = (function(_this) {
+ return function() {
+ if (!_this.saxParser.ended) {
+ _this.saxParser.ended = true;
+ return _this.emit("end", _this.resultObject);
+ }
+ };
+ })(this);
+ this.saxParser.ended = false;
+ this.EXPLICIT_CHARKEY = this.options.explicitCharkey;
+ this.resultObject = null;
+ stack = [];
+ attrkey = this.options.attrkey;
+ charkey = this.options.charkey;
+ this.saxParser.onopentag = (function(_this) {
+ return function(node) {
+ var key, newValue, obj, processedKey, ref;
+ obj = {};
+ obj[charkey] = "";
+ if (!_this.options.ignoreAttrs) {
+ ref = node.attributes;
+ for (key in ref) {
+ if (!hasProp.call(ref, key)) continue;
+ if (!(attrkey in obj) && !_this.options.mergeAttrs) {
+ obj[attrkey] = {};
+ }
+ newValue = _this.options.attrValueProcessors ? processItem(_this.options.attrValueProcessors, node.attributes[key], key) : node.attributes[key];
+ processedKey = _this.options.attrNameProcessors ? processItem(_this.options.attrNameProcessors, key) : key;
+ if (_this.options.mergeAttrs) {
+ _this.assignOrPush(obj, processedKey, newValue);
+ } else {
+ obj[attrkey][processedKey] = newValue;
+ }
+ }
+ }
+ obj["#name"] = _this.options.tagNameProcessors ? processItem(_this.options.tagNameProcessors, node.name) : node.name;
+ if (_this.options.xmlns) {
+ obj[_this.options.xmlnskey] = {
+ uri: node.uri,
+ local: node.local
+ };
+ }
+ return stack.push(obj);
+ };
+ })(this);
+ this.saxParser.onclosetag = (function(_this) {
+ return function() {
+ var cdata, emptyStr, key, node, nodeName, obj, objClone, old, s, xpath;
+ obj = stack.pop();
+ nodeName = obj["#name"];
+ if (!_this.options.explicitChildren || !_this.options.preserveChildrenOrder) {
+ delete obj["#name"];
+ }
+ if (obj.cdata === true) {
+ cdata = obj.cdata;
+ delete obj.cdata;
+ }
+ s = stack[stack.length - 1];
+ if (obj[charkey].match(/^\s*$/) && !cdata) {
+ emptyStr = obj[charkey];
+ delete obj[charkey];
+ } else {
+ if (_this.options.trim) {
+ obj[charkey] = obj[charkey].trim();
+ }
+ if (_this.options.normalize) {
+ obj[charkey] = obj[charkey].replace(/\s{2,}/g, " ").trim();
+ }
+ obj[charkey] = _this.options.valueProcessors ? processItem(_this.options.valueProcessors, obj[charkey], nodeName) : obj[charkey];
+ if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) {
+ obj = obj[charkey];
+ }
+ }
+ if (isEmpty(obj)) {
+ obj = _this.options.emptyTag !== '' ? _this.options.emptyTag : emptyStr;
+ }
+ if (_this.options.validator != null) {
+ xpath = "/" + ((function() {
+ var i, len, results;
+ results = [];
+ for (i = 0, len = stack.length; i < len; i++) {
+ node = stack[i];
+ results.push(node["#name"]);
+ }
+ return results;
+ })()).concat(nodeName).join("/");
+ (function() {
+ var err;
+ try {
+ return obj = _this.options.validator(xpath, s && s[nodeName], obj);
+ } catch (error1) {
+ err = error1;
+ return _this.emit("error", err);
+ }
+ })();
+ }
+ if (_this.options.explicitChildren && !_this.options.mergeAttrs && typeof obj === 'object') {
+ if (!_this.options.preserveChildrenOrder) {
+ node = {};
+ if (_this.options.attrkey in obj) {
+ node[_this.options.attrkey] = obj[_this.options.attrkey];
+ delete obj[_this.options.attrkey];
+ }
+ if (!_this.options.charsAsChildren && _this.options.charkey in obj) {
+ node[_this.options.charkey] = obj[_this.options.charkey];
+ delete obj[_this.options.charkey];
+ }
+ if (Object.getOwnPropertyNames(obj).length > 0) {
+ node[_this.options.childkey] = obj;
+ }
+ obj = node;
+ } else if (s) {
+ s[_this.options.childkey] = s[_this.options.childkey] || [];
+ objClone = {};
+ for (key in obj) {
+ if (!hasProp.call(obj, key)) continue;
+ objClone[key] = obj[key];
+ }
+ s[_this.options.childkey].push(objClone);
+ delete obj["#name"];
+ if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) {
+ obj = obj[charkey];
+ }
+ }
+ }
+ if (stack.length > 0) {
+ return _this.assignOrPush(s, nodeName, obj);
+ } else {
+ if (_this.options.explicitRoot) {
+ old = obj;
+ obj = {};
+ obj[nodeName] = old;
+ }
+ _this.resultObject = obj;
+ _this.saxParser.ended = true;
+ return _this.emit("end", _this.resultObject);
+ }
+ };
+ })(this);
+ ontext = (function(_this) {
+ return function(text) {
+ var charChild, s;
+ s = stack[stack.length - 1];
+ if (s) {
+ s[charkey] += text;
+ if (_this.options.explicitChildren && _this.options.preserveChildrenOrder && _this.options.charsAsChildren && (_this.options.includeWhiteChars || text.replace(/\\n/g, '').trim() !== '')) {
+ s[_this.options.childkey] = s[_this.options.childkey] || [];
+ charChild = {
+ '#name': '__text__'
+ };
+ charChild[charkey] = text;
+ if (_this.options.normalize) {
+ charChild[charkey] = charChild[charkey].replace(/\s{2,}/g, " ").trim();
+ }
+ s[_this.options.childkey].push(charChild);
+ }
+ return s;
+ }
+ };
+ })(this);
+ this.saxParser.ontext = ontext;
+ return this.saxParser.oncdata = (function(_this) {
+ return function(text) {
+ var s;
+ s = ontext(text);
+ if (s) {
+ return s.cdata = true;
+ }
+ };
+ })(this);
+ };
+
+ Parser.prototype.parseString = function(str, cb) {
+ var err;
+ if ((cb != null) && typeof cb === "function") {
+ this.on("end", function(result) {
+ this.reset();
+ return cb(null, result);
+ });
+ this.on("error", function(err) {
+ this.reset();
+ return cb(err);
+ });
+ }
+ try {
+ str = str.toString();
+ if (str.trim() === '') {
+ this.emit("end", null);
+ return true;
+ }
+ str = bom.stripBOM(str);
+ if (this.options.async) {
+ this.remaining = str;
+ setImmediate(this.processAsync);
+ return this.saxParser;
+ }
+ return this.saxParser.write(str).close();
+ } catch (error1) {
+ err = error1;
+ if (!(this.saxParser.errThrown || this.saxParser.ended)) {
+ this.emit('error', err);
+ return this.saxParser.errThrown = true;
+ } else if (this.saxParser.ended) {
+ throw err;
}
}
- }
- }
- return target;
-}
+ };
+
+ Parser.prototype.parseStringPromise = function(str) {
+ return new Promise((function(_this) {
+ return function(resolve, reject) {
+ return _this.parseString(str, function(err, value) {
+ if (err) {
+ return reject(err);
+ } else {
+ return resolve(value);
+ }
+ });
+ };
+ })(this));
+ };
+ return Parser;
-var debug;
-if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) {
- debug = function() {
- var args = Array.prototype.slice.call(arguments);
- if (typeof args[0] === 'string') {
- args[0] = 'TUNNEL: ' + args[0];
+ })(events);
+
+ exports.parseString = function(str, a, b) {
+ var cb, options, parser;
+ if (b != null) {
+ if (typeof b === 'function') {
+ cb = b;
+ }
+ if (typeof a === 'object') {
+ options = a;
+ }
} else {
- args.unshift('TUNNEL:');
+ if (typeof a === 'function') {
+ cb = a;
+ }
+ options = {};
}
- console.error.apply(console, args);
- }
-} else {
- debug = function() {};
-}
-exports.debug = debug; // for test
-
+ parser = new exports.Parser(options);
+ return parser.parseString(str, cb);
+ };
-/***/ }),
+ exports.parseStringPromise = function(str, a) {
+ var options, parser;
+ if (typeof a === 'object') {
+ options = a;
+ }
+ parser = new exports.Parser(options);
+ return parser.parseStringPromise(str);
+ };
-/***/ 9046:
-/***/ ((__unused_webpack_module, exports) => {
+}).call(this);
-"use strict";
+/***/ }),
-exports.fromCallback = function (fn) {
- return Object.defineProperty(function () {
- if (typeof arguments[arguments.length - 1] === 'function') fn.apply(this, arguments)
- else {
- return new Promise((resolve, reject) => {
- arguments[arguments.length] = (err, res) => {
- if (err) return reject(err)
- resolve(res)
- }
- arguments.length++
- fn.apply(this, arguments)
- })
- }
- }, 'name', { value: fn.name })
-}
+/***/ 9236:
+/***/ (function(__unused_webpack_module, exports) {
-exports.fromPromise = function (fn) {
- return Object.defineProperty(function () {
- const cb = arguments[arguments.length - 1]
- if (typeof cb !== 'function') return fn.apply(this, arguments)
- else fn.apply(this, arguments).then(r => cb(null, r), cb)
- }, 'name', { value: fn.name })
-}
+// Generated by CoffeeScript 1.12.7
+(function() {
+ "use strict";
+ var prefixMatch;
+ prefixMatch = new RegExp(/(?!xmlns)^.*:/);
-/***/ }),
+ exports.normalize = function(str) {
+ return str.toLowerCase();
+ };
-/***/ 2155:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+ exports.firstCharLowerCase = function(str) {
+ return str.charAt(0).toLowerCase() + str.slice(1);
+ };
-var v1 = __nccwpck_require__(8749);
-var v4 = __nccwpck_require__(824);
+ exports.stripPrefix = function(str) {
+ return str.replace(prefixMatch, '');
+ };
-var uuid = v4;
-uuid.v1 = v1;
-uuid.v4 = v4;
+ exports.parseNumbers = function(str) {
+ if (!isNaN(str)) {
+ str = str % 1 === 0 ? parseInt(str, 10) : parseFloat(str);
+ }
+ return str;
+ };
-module.exports = uuid;
+ exports.parseBooleans = function(str) {
+ if (/^(?:true|false)$/i.test(str)) {
+ str = str.toLowerCase() === 'true';
+ }
+ return str;
+ };
+}).call(this);
-/***/ }),
-/***/ 2707:
-/***/ ((module) => {
+/***/ }),
-/**
- * Convert array of 16 byte values to UUID string format of the form:
- * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
- */
-var byteToHex = [];
-for (var i = 0; i < 256; ++i) {
- byteToHex[i] = (i + 0x100).toString(16).substr(1);
-}
+/***/ 6189:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-function bytesToUuid(buf, offset) {
- var i = offset || 0;
- var bth = byteToHex;
- // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4
- return ([
- bth[buf[i++]], bth[buf[i++]],
- bth[buf[i++]], bth[buf[i++]], '-',
- bth[buf[i++]], bth[buf[i++]], '-',
- bth[buf[i++]], bth[buf[i++]], '-',
- bth[buf[i++]], bth[buf[i++]], '-',
- bth[buf[i++]], bth[buf[i++]],
- bth[buf[i++]], bth[buf[i++]],
- bth[buf[i++]], bth[buf[i++]]
- ]).join('');
-}
+// Generated by CoffeeScript 1.12.7
+(function() {
+ "use strict";
+ var builder, defaults, parser, processors,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
-module.exports = bytesToUuid;
+ defaults = __nccwpck_require__(7251);
+ builder = __nccwpck_require__(3337);
-/***/ }),
+ parser = __nccwpck_require__(3314);
-/***/ 5859:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+ processors = __nccwpck_require__(9236);
-// Unique ID creation requires a high quality random # generator. In node.js
-// this is pretty straight-forward - we use the crypto API.
+ exports.defaults = defaults.defaults;
-var crypto = __nccwpck_require__(6113);
+ exports.processors = processors;
-module.exports = function nodeRNG() {
- return crypto.randomBytes(16);
-};
+ exports.ValidationError = (function(superClass) {
+ extend(ValidationError, superClass);
+ function ValidationError(message) {
+ this.message = message;
+ }
-/***/ }),
+ return ValidationError;
-/***/ 8749:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+ })(Error);
-var rng = __nccwpck_require__(5859);
-var bytesToUuid = __nccwpck_require__(2707);
+ exports.Builder = builder.Builder;
-// **`v1()` - Generate time-based UUID**
-//
-// Inspired by https://github.com/LiosK/UUID.js
-// and http://docs.python.org/library/uuid.html
+ exports.Parser = parser.Parser;
-var _nodeId;
-var _clockseq;
+ exports.parseString = parser.parseString;
-// Previous uuid creation time
-var _lastMSecs = 0;
-var _lastNSecs = 0;
+ exports.parseStringPromise = parser.parseStringPromise;
-// See https://github.com/uuidjs/uuid for API details
-function v1(options, buf, offset) {
- var i = buf && offset || 0;
- var b = buf || [];
+}).call(this);
- options = options || {};
- var node = options.node || _nodeId;
- var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;
- // node and clockseq need to be initialized to random values if they're not
- // specified. We do this lazily to minimize issues related to insufficient
- // system entropy. See #189
- if (node == null || clockseq == null) {
- var seedBytes = rng();
- if (node == null) {
- // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
- node = _nodeId = [
- seedBytes[0] | 0x01,
- seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]
- ];
- }
- if (clockseq == null) {
- // Per 4.2.2, randomize (14 bit) clockseq
- clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;
- }
- }
+/***/ }),
- // UUID timestamps are 100 nano-second units since the Gregorian epoch,
- // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
- // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
- // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
- var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();
+/***/ 2839:
+/***/ (function(module) {
- // Per 4.2.1.2, use count of uuid's generated during the current clock
- // cycle to simulate higher resolution clock
- var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;
+// Generated by CoffeeScript 1.12.7
+(function() {
+ module.exports = {
+ Disconnected: 1,
+ Preceding: 2,
+ Following: 4,
+ Contains: 8,
+ ContainedBy: 16,
+ ImplementationSpecific: 32
+ };
- // Time since last uuid creation (in msecs)
- var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;
+}).call(this);
- // Per 4.2.1.2, Bump clockseq on clock regression
- if (dt < 0 && options.clockseq === undefined) {
- clockseq = clockseq + 1 & 0x3fff;
- }
- // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
- // time interval
- if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
- nsecs = 0;
- }
+/***/ }),
- // Per 4.2.1.2 Throw error if too many uuids are requested
- if (nsecs >= 10000) {
- throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');
- }
+/***/ 9267:
+/***/ (function(module) {
- _lastMSecs = msecs;
- _lastNSecs = nsecs;
- _clockseq = clockseq;
+// Generated by CoffeeScript 1.12.7
+(function() {
+ module.exports = {
+ Element: 1,
+ Attribute: 2,
+ Text: 3,
+ CData: 4,
+ EntityReference: 5,
+ EntityDeclaration: 6,
+ ProcessingInstruction: 7,
+ Comment: 8,
+ Document: 9,
+ DocType: 10,
+ DocumentFragment: 11,
+ NotationDeclaration: 12,
+ Declaration: 201,
+ Raw: 202,
+ AttributeDeclaration: 203,
+ ElementDeclaration: 204,
+ Dummy: 205
+ };
- // Per 4.1.4 - Convert from unix epoch to Gregorian epoch
- msecs += 12219292800000;
+}).call(this);
- // `time_low`
- var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
- b[i++] = tl >>> 24 & 0xff;
- b[i++] = tl >>> 16 & 0xff;
- b[i++] = tl >>> 8 & 0xff;
- b[i++] = tl & 0xff;
- // `time_mid`
- var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;
- b[i++] = tmh >>> 8 & 0xff;
- b[i++] = tmh & 0xff;
+/***/ }),
- // `time_high_and_version`
- b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
- b[i++] = tmh >>> 16 & 0xff;
+/***/ 8229:
+/***/ (function(module) {
- // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
- b[i++] = clockseq >>> 8 | 0x80;
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var assign, getValue, isArray, isEmpty, isFunction, isObject, isPlainObject,
+ slice = [].slice,
+ hasProp = {}.hasOwnProperty;
- // `clock_seq_low`
- b[i++] = clockseq & 0xff;
+ assign = function() {
+ var i, key, len, source, sources, target;
+ target = arguments[0], sources = 2 <= arguments.length ? slice.call(arguments, 1) : [];
+ if (isFunction(Object.assign)) {
+ Object.assign.apply(null, arguments);
+ } else {
+ for (i = 0, len = sources.length; i < len; i++) {
+ source = sources[i];
+ if (source != null) {
+ for (key in source) {
+ if (!hasProp.call(source, key)) continue;
+ target[key] = source[key];
+ }
+ }
+ }
+ }
+ return target;
+ };
- // `node`
- for (var n = 0; n < 6; ++n) {
- b[i + n] = node[n];
- }
+ isFunction = function(val) {
+ return !!val && Object.prototype.toString.call(val) === '[object Function]';
+ };
- return buf ? buf : bytesToUuid(b);
-}
+ isObject = function(val) {
+ var ref;
+ return !!val && ((ref = typeof val) === 'function' || ref === 'object');
+ };
-module.exports = v1;
+ isArray = function(val) {
+ if (isFunction(Array.isArray)) {
+ return Array.isArray(val);
+ } else {
+ return Object.prototype.toString.call(val) === '[object Array]';
+ }
+ };
+ isEmpty = function(val) {
+ var key;
+ if (isArray(val)) {
+ return !val.length;
+ } else {
+ for (key in val) {
+ if (!hasProp.call(val, key)) continue;
+ return false;
+ }
+ return true;
+ }
+ };
-/***/ }),
+ isPlainObject = function(val) {
+ var ctor, proto;
+ return isObject(val) && (proto = Object.getPrototypeOf(val)) && (ctor = proto.constructor) && (typeof ctor === 'function') && (ctor instanceof ctor) && (Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object));
+ };
-/***/ 824:
-/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
+ getValue = function(obj) {
+ if (isFunction(obj.valueOf)) {
+ return obj.valueOf();
+ } else {
+ return obj;
+ }
+ };
-var rng = __nccwpck_require__(5859);
-var bytesToUuid = __nccwpck_require__(2707);
+ module.exports.assign = assign;
-function v4(options, buf, offset) {
- var i = buf && offset || 0;
+ module.exports.isFunction = isFunction;
- if (typeof(options) == 'string') {
- buf = options === 'binary' ? new Array(16) : null;
- options = null;
- }
- options = options || {};
+ module.exports.isObject = isObject;
- var rnds = options.random || (options.rng || rng)();
+ module.exports.isArray = isArray;
- // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
- rnds[6] = (rnds[6] & 0x0f) | 0x40;
- rnds[8] = (rnds[8] & 0x3f) | 0x80;
+ module.exports.isEmpty = isEmpty;
- // Copy bytes to buffer, if provided
- if (buf) {
- for (var ii = 0; ii < 16; ++ii) {
- buf[i + ii] = rnds[ii];
- }
- }
+ module.exports.isPlainObject = isPlainObject;
- return buf || bytesToUuid(rnds);
-}
+ module.exports.getValue = getValue;
-module.exports = v4;
+}).call(this);
/***/ }),
-/***/ 2624:
-/***/ (function(__unused_webpack_module, exports) {
+/***/ 9766:
+/***/ (function(module) {
// Generated by CoffeeScript 1.12.7
(function() {
- "use strict";
- exports.stripBOM = function(str) {
- if (str[0] === '\uFEFF') {
- return str.substring(1);
- } else {
- return str;
- }
+ module.exports = {
+ None: 0,
+ OpenTag: 1,
+ InsideTag: 2,
+ CloseTag: 3
};
}).call(this);
@@ -62750,132 +92615,113 @@ module.exports = v4;
/***/ }),
-/***/ 3337:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+/***/ 8376:
+/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
// Generated by CoffeeScript 1.12.7
(function() {
- "use strict";
- var builder, defaults, escapeCDATA, requiresCDATA, wrapCDATA,
- hasProp = {}.hasOwnProperty;
+ var NodeType, XMLAttribute, XMLNode;
- builder = __nccwpck_require__(2958);
+ NodeType = __nccwpck_require__(9267);
- defaults = (__nccwpck_require__(7251).defaults);
+ XMLNode = __nccwpck_require__(7608);
- requiresCDATA = function(entry) {
- return typeof entry === "string" && (entry.indexOf('&') >= 0 || entry.indexOf('>') >= 0 || entry.indexOf('<') >= 0);
- };
+ module.exports = XMLAttribute = (function() {
+ function XMLAttribute(parent, name, value) {
+ this.parent = parent;
+ if (this.parent) {
+ this.options = this.parent.options;
+ this.stringify = this.parent.stringify;
+ }
+ if (name == null) {
+ throw new Error("Missing attribute name. " + this.debugInfo(name));
+ }
+ this.name = this.stringify.name(name);
+ this.value = this.stringify.attValue(value);
+ this.type = NodeType.Attribute;
+ this.isId = false;
+ this.schemaTypeInfo = null;
+ }
- wrapCDATA = function(entry) {
- return "";
- };
+ Object.defineProperty(XMLAttribute.prototype, 'nodeType', {
+ get: function() {
+ return this.type;
+ }
+ });
- escapeCDATA = function(entry) {
- return entry.replace(']]>', ']]]]>');
- };
+ Object.defineProperty(XMLAttribute.prototype, 'ownerElement', {
+ get: function() {
+ return this.parent;
+ }
+ });
- exports.Builder = (function() {
- function Builder(opts) {
- var key, ref, value;
- this.options = {};
- ref = defaults["0.2"];
- for (key in ref) {
- if (!hasProp.call(ref, key)) continue;
- value = ref[key];
- this.options[key] = value;
+ Object.defineProperty(XMLAttribute.prototype, 'textContent', {
+ get: function() {
+ return this.value;
+ },
+ set: function(value) {
+ return this.value = value || '';
}
- for (key in opts) {
- if (!hasProp.call(opts, key)) continue;
- value = opts[key];
- this.options[key] = value;
+ });
+
+ Object.defineProperty(XMLAttribute.prototype, 'namespaceURI', {
+ get: function() {
+ return '';
}
- }
+ });
- Builder.prototype.buildObject = function(rootObj) {
- var attrkey, charkey, render, rootElement, rootName;
- attrkey = this.options.attrkey;
- charkey = this.options.charkey;
- if ((Object.keys(rootObj).length === 1) && (this.options.rootName === defaults['0.2'].rootName)) {
- rootName = Object.keys(rootObj)[0];
- rootObj = rootObj[rootName];
- } else {
- rootName = this.options.rootName;
+ Object.defineProperty(XMLAttribute.prototype, 'prefix', {
+ get: function() {
+ return '';
}
- render = (function(_this) {
- return function(element, obj) {
- var attr, child, entry, index, key, value;
- if (typeof obj !== 'object') {
- if (_this.options.cdata && requiresCDATA(obj)) {
- element.raw(wrapCDATA(obj));
- } else {
- element.txt(obj);
- }
- } else if (Array.isArray(obj)) {
- for (index in obj) {
- if (!hasProp.call(obj, index)) continue;
- child = obj[index];
- for (key in child) {
- entry = child[key];
- element = render(element.ele(key), entry).up();
- }
- }
- } else {
- for (key in obj) {
- if (!hasProp.call(obj, key)) continue;
- child = obj[key];
- if (key === attrkey) {
- if (typeof child === "object") {
- for (attr in child) {
- value = child[attr];
- element = element.att(attr, value);
- }
- }
- } else if (key === charkey) {
- if (_this.options.cdata && requiresCDATA(child)) {
- element = element.raw(wrapCDATA(child));
- } else {
- element = element.txt(child);
- }
- } else if (Array.isArray(child)) {
- for (index in child) {
- if (!hasProp.call(child, index)) continue;
- entry = child[index];
- if (typeof entry === 'string') {
- if (_this.options.cdata && requiresCDATA(entry)) {
- element = element.ele(key).raw(wrapCDATA(entry)).up();
- } else {
- element = element.ele(key, entry).up();
- }
- } else {
- element = render(element.ele(key), entry).up();
- }
- }
- } else if (typeof child === "object") {
- element = render(element.ele(key), child).up();
- } else {
- if (typeof child === 'string' && _this.options.cdata && requiresCDATA(child)) {
- element = element.ele(key).raw(wrapCDATA(child)).up();
- } else {
- if (child == null) {
- child = '';
- }
- element = element.ele(key, child.toString()).up();
- }
- }
- }
- }
- return element;
- };
- })(this);
- rootElement = builder.create(rootName, this.options.xmldec, this.options.doctype, {
- headless: this.options.headless,
- allowSurrogateChars: this.options.allowSurrogateChars
- });
- return render(rootElement, rootObj).end(this.options.renderOpts);
+ });
+
+ Object.defineProperty(XMLAttribute.prototype, 'localName', {
+ get: function() {
+ return this.name;
+ }
+ });
+
+ Object.defineProperty(XMLAttribute.prototype, 'specified', {
+ get: function() {
+ return true;
+ }
+ });
+
+ XMLAttribute.prototype.clone = function() {
+ return Object.create(this);
+ };
+
+ XMLAttribute.prototype.toString = function(options) {
+ return this.options.writer.attribute(this, this.options.writer.filterOptions(options));
};
- return Builder;
+ XMLAttribute.prototype.debugInfo = function(name) {
+ name = name || this.name;
+ if (name == null) {
+ return "parent: <" + this.parent.name + ">";
+ } else {
+ return "attribute: {" + name + "}, parent: <" + this.parent.name + ">";
+ }
+ };
+
+ XMLAttribute.prototype.isEqualNode = function(node) {
+ if (node.namespaceURI !== this.namespaceURI) {
+ return false;
+ }
+ if (node.prefix !== this.prefix) {
+ return false;
+ }
+ if (node.localName !== this.localName) {
+ return false;
+ }
+ if (node.value !== this.value) {
+ return false;
+ }
+ return true;
+ };
+
+ return XMLAttribute;
})();
@@ -62884,952 +92730,1100 @@ module.exports = v4;
/***/ }),
-/***/ 7251:
-/***/ (function(__unused_webpack_module, exports) {
+/***/ 333:
+/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
// Generated by CoffeeScript 1.12.7
(function() {
- exports.defaults = {
- "0.1": {
- explicitCharkey: false,
- trim: true,
- normalize: true,
- normalizeTags: false,
- attrkey: "@",
- charkey: "#",
- explicitArray: false,
- ignoreAttrs: false,
- mergeAttrs: false,
- explicitRoot: false,
- validator: null,
- xmlns: false,
- explicitChildren: false,
- childkey: '@@',
- charsAsChildren: false,
- includeWhiteChars: false,
- async: false,
- strict: true,
- attrNameProcessors: null,
- attrValueProcessors: null,
- tagNameProcessors: null,
- valueProcessors: null,
- emptyTag: ''
- },
- "0.2": {
- explicitCharkey: false,
- trim: false,
- normalize: false,
- normalizeTags: false,
- attrkey: "$",
- charkey: "_",
- explicitArray: true,
- ignoreAttrs: false,
- mergeAttrs: false,
- explicitRoot: true,
- validator: null,
- xmlns: false,
- explicitChildren: false,
- preserveChildrenOrder: false,
- childkey: '$$',
- charsAsChildren: false,
- includeWhiteChars: false,
- async: false,
- strict: true,
- attrNameProcessors: null,
- attrValueProcessors: null,
- tagNameProcessors: null,
- valueProcessors: null,
- rootName: 'root',
- xmldec: {
- 'version': '1.0',
- 'encoding': 'UTF-8',
- 'standalone': true
- },
- doctype: null,
- renderOpts: {
- 'pretty': true,
- 'indent': ' ',
- 'newline': '\n'
- },
- headless: false,
- chunkSize: 10000,
- emptyTag: '',
- cdata: false
+ var NodeType, XMLCData, XMLCharacterData,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ NodeType = __nccwpck_require__(9267);
+
+ XMLCharacterData = __nccwpck_require__(7709);
+
+ module.exports = XMLCData = (function(superClass) {
+ extend(XMLCData, superClass);
+
+ function XMLCData(parent, text) {
+ XMLCData.__super__.constructor.call(this, parent);
+ if (text == null) {
+ throw new Error("Missing CDATA text. " + this.debugInfo());
+ }
+ this.name = "#cdata-section";
+ this.type = NodeType.CData;
+ this.value = this.stringify.cdata(text);
}
- };
+
+ XMLCData.prototype.clone = function() {
+ return Object.create(this);
+ };
+
+ XMLCData.prototype.toString = function(options) {
+ return this.options.writer.cdata(this, this.options.writer.filterOptions(options));
+ };
+
+ return XMLCData;
+
+ })(XMLCharacterData);
}).call(this);
/***/ }),
-/***/ 3314:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+/***/ 7709:
+/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
// Generated by CoffeeScript 1.12.7
(function() {
- "use strict";
- var bom, defaults, events, isEmpty, processItem, processors, sax, setImmediate,
- bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
+ var XMLCharacterData, XMLNode,
extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
hasProp = {}.hasOwnProperty;
- sax = __nccwpck_require__(2043);
-
- events = __nccwpck_require__(2361);
+ XMLNode = __nccwpck_require__(7608);
- bom = __nccwpck_require__(2624);
+ module.exports = XMLCharacterData = (function(superClass) {
+ extend(XMLCharacterData, superClass);
- processors = __nccwpck_require__(9236);
+ function XMLCharacterData(parent) {
+ XMLCharacterData.__super__.constructor.call(this, parent);
+ this.value = '';
+ }
- setImmediate = (__nccwpck_require__(9512).setImmediate);
+ Object.defineProperty(XMLCharacterData.prototype, 'data', {
+ get: function() {
+ return this.value;
+ },
+ set: function(value) {
+ return this.value = value || '';
+ }
+ });
- defaults = (__nccwpck_require__(7251).defaults);
+ Object.defineProperty(XMLCharacterData.prototype, 'length', {
+ get: function() {
+ return this.value.length;
+ }
+ });
- isEmpty = function(thing) {
- return typeof thing === "object" && (thing != null) && Object.keys(thing).length === 0;
- };
+ Object.defineProperty(XMLCharacterData.prototype, 'textContent', {
+ get: function() {
+ return this.value;
+ },
+ set: function(value) {
+ return this.value = value || '';
+ }
+ });
- processItem = function(processors, item, key) {
- var i, len, process;
- for (i = 0, len = processors.length; i < len; i++) {
- process = processors[i];
- item = process(item, key);
- }
- return item;
- };
+ XMLCharacterData.prototype.clone = function() {
+ return Object.create(this);
+ };
- exports.Parser = (function(superClass) {
- extend(Parser, superClass);
+ XMLCharacterData.prototype.substringData = function(offset, count) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- function Parser(opts) {
- this.parseStringPromise = bind(this.parseStringPromise, this);
- this.parseString = bind(this.parseString, this);
- this.reset = bind(this.reset, this);
- this.assignOrPush = bind(this.assignOrPush, this);
- this.processAsync = bind(this.processAsync, this);
- var key, ref, value;
- if (!(this instanceof exports.Parser)) {
- return new exports.Parser(opts);
- }
- this.options = {};
- ref = defaults["0.2"];
- for (key in ref) {
- if (!hasProp.call(ref, key)) continue;
- value = ref[key];
- this.options[key] = value;
- }
- for (key in opts) {
- if (!hasProp.call(opts, key)) continue;
- value = opts[key];
- this.options[key] = value;
- }
- if (this.options.xmlns) {
- this.options.xmlnskey = this.options.attrkey + "ns";
- }
- if (this.options.normalizeTags) {
- if (!this.options.tagNameProcessors) {
- this.options.tagNameProcessors = [];
- }
- this.options.tagNameProcessors.unshift(processors.normalize);
- }
- this.reset();
- }
+ XMLCharacterData.prototype.appendData = function(arg) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- Parser.prototype.processAsync = function() {
- var chunk, err;
- try {
- if (this.remaining.length <= this.options.chunkSize) {
- chunk = this.remaining;
- this.remaining = '';
- this.saxParser = this.saxParser.write(chunk);
- return this.saxParser.close();
- } else {
- chunk = this.remaining.substr(0, this.options.chunkSize);
- this.remaining = this.remaining.substr(this.options.chunkSize, this.remaining.length);
- this.saxParser = this.saxParser.write(chunk);
- return setImmediate(this.processAsync);
- }
- } catch (error1) {
- err = error1;
- if (!this.saxParser.errThrown) {
- this.saxParser.errThrown = true;
- return this.emit(err);
- }
- }
+ XMLCharacterData.prototype.insertData = function(offset, arg) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- Parser.prototype.assignOrPush = function(obj, key, newValue) {
- if (!(key in obj)) {
- if (!this.options.explicitArray) {
- return obj[key] = newValue;
- } else {
- return obj[key] = [newValue];
- }
- } else {
- if (!(obj[key] instanceof Array)) {
- obj[key] = [obj[key]];
- }
- return obj[key].push(newValue);
- }
+ XMLCharacterData.prototype.deleteData = function(offset, count) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- Parser.prototype.reset = function() {
- var attrkey, charkey, ontext, stack;
- this.removeAllListeners();
- this.saxParser = sax.parser(this.options.strict, {
- trim: false,
- normalize: false,
- xmlns: this.options.xmlns
- });
- this.saxParser.errThrown = false;
- this.saxParser.onerror = (function(_this) {
- return function(error) {
- _this.saxParser.resume();
- if (!_this.saxParser.errThrown) {
- _this.saxParser.errThrown = true;
- return _this.emit("error", error);
- }
- };
- })(this);
- this.saxParser.onend = (function(_this) {
- return function() {
- if (!_this.saxParser.ended) {
- _this.saxParser.ended = true;
- return _this.emit("end", _this.resultObject);
- }
- };
- })(this);
- this.saxParser.ended = false;
- this.EXPLICIT_CHARKEY = this.options.explicitCharkey;
- this.resultObject = null;
- stack = [];
- attrkey = this.options.attrkey;
- charkey = this.options.charkey;
- this.saxParser.onopentag = (function(_this) {
- return function(node) {
- var key, newValue, obj, processedKey, ref;
- obj = {};
- obj[charkey] = "";
- if (!_this.options.ignoreAttrs) {
- ref = node.attributes;
- for (key in ref) {
- if (!hasProp.call(ref, key)) continue;
- if (!(attrkey in obj) && !_this.options.mergeAttrs) {
- obj[attrkey] = {};
- }
- newValue = _this.options.attrValueProcessors ? processItem(_this.options.attrValueProcessors, node.attributes[key], key) : node.attributes[key];
- processedKey = _this.options.attrNameProcessors ? processItem(_this.options.attrNameProcessors, key) : key;
- if (_this.options.mergeAttrs) {
- _this.assignOrPush(obj, processedKey, newValue);
- } else {
- obj[attrkey][processedKey] = newValue;
- }
- }
- }
- obj["#name"] = _this.options.tagNameProcessors ? processItem(_this.options.tagNameProcessors, node.name) : node.name;
- if (_this.options.xmlns) {
- obj[_this.options.xmlnskey] = {
- uri: node.uri,
- local: node.local
- };
- }
- return stack.push(obj);
- };
- })(this);
- this.saxParser.onclosetag = (function(_this) {
- return function() {
- var cdata, emptyStr, key, node, nodeName, obj, objClone, old, s, xpath;
- obj = stack.pop();
- nodeName = obj["#name"];
- if (!_this.options.explicitChildren || !_this.options.preserveChildrenOrder) {
- delete obj["#name"];
- }
- if (obj.cdata === true) {
- cdata = obj.cdata;
- delete obj.cdata;
- }
- s = stack[stack.length - 1];
- if (obj[charkey].match(/^\s*$/) && !cdata) {
- emptyStr = obj[charkey];
- delete obj[charkey];
- } else {
- if (_this.options.trim) {
- obj[charkey] = obj[charkey].trim();
- }
- if (_this.options.normalize) {
- obj[charkey] = obj[charkey].replace(/\s{2,}/g, " ").trim();
- }
- obj[charkey] = _this.options.valueProcessors ? processItem(_this.options.valueProcessors, obj[charkey], nodeName) : obj[charkey];
- if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) {
- obj = obj[charkey];
- }
- }
- if (isEmpty(obj)) {
- obj = _this.options.emptyTag !== '' ? _this.options.emptyTag : emptyStr;
- }
- if (_this.options.validator != null) {
- xpath = "/" + ((function() {
- var i, len, results;
- results = [];
- for (i = 0, len = stack.length; i < len; i++) {
- node = stack[i];
- results.push(node["#name"]);
- }
- return results;
- })()).concat(nodeName).join("/");
- (function() {
- var err;
- try {
- return obj = _this.options.validator(xpath, s && s[nodeName], obj);
- } catch (error1) {
- err = error1;
- return _this.emit("error", err);
- }
- })();
- }
- if (_this.options.explicitChildren && !_this.options.mergeAttrs && typeof obj === 'object') {
- if (!_this.options.preserveChildrenOrder) {
- node = {};
- if (_this.options.attrkey in obj) {
- node[_this.options.attrkey] = obj[_this.options.attrkey];
- delete obj[_this.options.attrkey];
- }
- if (!_this.options.charsAsChildren && _this.options.charkey in obj) {
- node[_this.options.charkey] = obj[_this.options.charkey];
- delete obj[_this.options.charkey];
- }
- if (Object.getOwnPropertyNames(obj).length > 0) {
- node[_this.options.childkey] = obj;
- }
- obj = node;
- } else if (s) {
- s[_this.options.childkey] = s[_this.options.childkey] || [];
- objClone = {};
- for (key in obj) {
- if (!hasProp.call(obj, key)) continue;
- objClone[key] = obj[key];
- }
- s[_this.options.childkey].push(objClone);
- delete obj["#name"];
- if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) {
- obj = obj[charkey];
- }
- }
- }
- if (stack.length > 0) {
- return _this.assignOrPush(s, nodeName, obj);
- } else {
- if (_this.options.explicitRoot) {
- old = obj;
- obj = {};
- obj[nodeName] = old;
- }
- _this.resultObject = obj;
- _this.saxParser.ended = true;
- return _this.emit("end", _this.resultObject);
- }
- };
- })(this);
- ontext = (function(_this) {
- return function(text) {
- var charChild, s;
- s = stack[stack.length - 1];
- if (s) {
- s[charkey] += text;
- if (_this.options.explicitChildren && _this.options.preserveChildrenOrder && _this.options.charsAsChildren && (_this.options.includeWhiteChars || text.replace(/\\n/g, '').trim() !== '')) {
- s[_this.options.childkey] = s[_this.options.childkey] || [];
- charChild = {
- '#name': '__text__'
- };
- charChild[charkey] = text;
- if (_this.options.normalize) {
- charChild[charkey] = charChild[charkey].replace(/\s{2,}/g, " ").trim();
- }
- s[_this.options.childkey].push(charChild);
- }
- return s;
- }
- };
- })(this);
- this.saxParser.ontext = ontext;
- return this.saxParser.oncdata = (function(_this) {
- return function(text) {
- var s;
- s = ontext(text);
- if (s) {
- return s.cdata = true;
- }
- };
- })(this);
+ XMLCharacterData.prototype.replaceData = function(offset, count, arg) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- Parser.prototype.parseString = function(str, cb) {
- var err;
- if ((cb != null) && typeof cb === "function") {
- this.on("end", function(result) {
- this.reset();
- return cb(null, result);
- });
- this.on("error", function(err) {
- this.reset();
- return cb(err);
- });
+ XMLCharacterData.prototype.isEqualNode = function(node) {
+ if (!XMLCharacterData.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {
+ return false;
}
- try {
- str = str.toString();
- if (str.trim() === '') {
- this.emit("end", null);
- return true;
- }
- str = bom.stripBOM(str);
- if (this.options.async) {
- this.remaining = str;
- setImmediate(this.processAsync);
- return this.saxParser;
- }
- return this.saxParser.write(str).close();
- } catch (error1) {
- err = error1;
- if (!(this.saxParser.errThrown || this.saxParser.ended)) {
- this.emit('error', err);
- return this.saxParser.errThrown = true;
- } else if (this.saxParser.ended) {
- throw err;
- }
+ if (node.data !== this.data) {
+ return false;
+ }
+ return true;
+ };
+
+ return XMLCharacterData;
+
+ })(XMLNode);
+
+}).call(this);
+
+
+/***/ }),
+
+/***/ 4407:
+/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var NodeType, XMLCharacterData, XMLComment,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ NodeType = __nccwpck_require__(9267);
+
+ XMLCharacterData = __nccwpck_require__(7709);
+
+ module.exports = XMLComment = (function(superClass) {
+ extend(XMLComment, superClass);
+
+ function XMLComment(parent, text) {
+ XMLComment.__super__.constructor.call(this, parent);
+ if (text == null) {
+ throw new Error("Missing comment text. " + this.debugInfo());
}
+ this.name = "#comment";
+ this.type = NodeType.Comment;
+ this.value = this.stringify.comment(text);
+ }
+
+ XMLComment.prototype.clone = function() {
+ return Object.create(this);
};
- Parser.prototype.parseStringPromise = function(str) {
- return new Promise((function(_this) {
- return function(resolve, reject) {
- return _this.parseString(str, function(err, value) {
- if (err) {
- return reject(err);
- } else {
- return resolve(value);
- }
- });
- };
- })(this));
+ XMLComment.prototype.toString = function(options) {
+ return this.options.writer.comment(this, this.options.writer.filterOptions(options));
};
- return Parser;
+ return XMLComment;
- })(events);
+ })(XMLCharacterData);
- exports.parseString = function(str, a, b) {
- var cb, options, parser;
- if (b != null) {
- if (typeof b === 'function') {
- cb = b;
+}).call(this);
+
+
+/***/ }),
+
+/***/ 7465:
+/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLDOMConfiguration, XMLDOMErrorHandler, XMLDOMStringList;
+
+ XMLDOMErrorHandler = __nccwpck_require__(6744);
+
+ XMLDOMStringList = __nccwpck_require__(7028);
+
+ module.exports = XMLDOMConfiguration = (function() {
+ function XMLDOMConfiguration() {
+ var clonedSelf;
+ this.defaultParams = {
+ "canonical-form": false,
+ "cdata-sections": false,
+ "comments": false,
+ "datatype-normalization": false,
+ "element-content-whitespace": true,
+ "entities": true,
+ "error-handler": new XMLDOMErrorHandler(),
+ "infoset": true,
+ "validate-if-schema": false,
+ "namespaces": true,
+ "namespace-declarations": true,
+ "normalize-characters": false,
+ "schema-location": '',
+ "schema-type": '',
+ "split-cdata-sections": true,
+ "validate": false,
+ "well-formed": true
+ };
+ this.params = clonedSelf = Object.create(this.defaultParams);
+ }
+
+ Object.defineProperty(XMLDOMConfiguration.prototype, 'parameterNames', {
+ get: function() {
+ return new XMLDOMStringList(Object.keys(this.defaultParams));
}
- if (typeof a === 'object') {
- options = a;
+ });
+
+ XMLDOMConfiguration.prototype.getParameter = function(name) {
+ if (this.params.hasOwnProperty(name)) {
+ return this.params[name];
+ } else {
+ return null;
}
- } else {
- if (typeof a === 'function') {
- cb = a;
+ };
+
+ XMLDOMConfiguration.prototype.canSetParameter = function(name, value) {
+ return true;
+ };
+
+ XMLDOMConfiguration.prototype.setParameter = function(name, value) {
+ if (value != null) {
+ return this.params[name] = value;
+ } else {
+ return delete this.params[name];
}
- options = {};
- }
- parser = new exports.Parser(options);
- return parser.parseString(str, cb);
- };
+ };
- exports.parseStringPromise = function(str, a) {
- var options, parser;
- if (typeof a === 'object') {
- options = a;
- }
- parser = new exports.Parser(options);
- return parser.parseStringPromise(str);
- };
+ return XMLDOMConfiguration;
+
+ })();
}).call(this);
/***/ }),
-/***/ 9236:
-/***/ (function(__unused_webpack_module, exports) {
+/***/ 6744:
+/***/ (function(module) {
// Generated by CoffeeScript 1.12.7
(function() {
- "use strict";
- var prefixMatch;
+ var XMLDOMErrorHandler;
- prefixMatch = new RegExp(/(?!xmlns)^.*:/);
+ module.exports = XMLDOMErrorHandler = (function() {
+ function XMLDOMErrorHandler() {}
- exports.normalize = function(str) {
- return str.toLowerCase();
- };
+ XMLDOMErrorHandler.prototype.handleError = function(error) {
+ throw new Error(error);
+ };
- exports.firstCharLowerCase = function(str) {
- return str.charAt(0).toLowerCase() + str.slice(1);
- };
+ return XMLDOMErrorHandler;
- exports.stripPrefix = function(str) {
- return str.replace(prefixMatch, '');
- };
+ })();
- exports.parseNumbers = function(str) {
- if (!isNaN(str)) {
- str = str % 1 === 0 ? parseInt(str, 10) : parseFloat(str);
- }
- return str;
- };
+}).call(this);
- exports.parseBooleans = function(str) {
- if (/^(?:true|false)$/i.test(str)) {
- str = str.toLowerCase() === 'true';
+
+/***/ }),
+
+/***/ 8310:
+/***/ (function(module) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLDOMImplementation;
+
+ module.exports = XMLDOMImplementation = (function() {
+ function XMLDOMImplementation() {}
+
+ XMLDOMImplementation.prototype.hasFeature = function(feature, version) {
+ return true;
+ };
+
+ XMLDOMImplementation.prototype.createDocumentType = function(qualifiedName, publicId, systemId) {
+ throw new Error("This DOM method is not implemented.");
+ };
+
+ XMLDOMImplementation.prototype.createDocument = function(namespaceURI, qualifiedName, doctype) {
+ throw new Error("This DOM method is not implemented.");
+ };
+
+ XMLDOMImplementation.prototype.createHTMLDocument = function(title) {
+ throw new Error("This DOM method is not implemented.");
+ };
+
+ XMLDOMImplementation.prototype.getFeature = function(feature, version) {
+ throw new Error("This DOM method is not implemented.");
+ };
+
+ return XMLDOMImplementation;
+
+ })();
+
+}).call(this);
+
+
+/***/ }),
+
+/***/ 7028:
+/***/ (function(module) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLDOMStringList;
+
+ module.exports = XMLDOMStringList = (function() {
+ function XMLDOMStringList(arr) {
+ this.arr = arr || [];
}
- return str;
- };
+
+ Object.defineProperty(XMLDOMStringList.prototype, 'length', {
+ get: function() {
+ return this.arr.length;
+ }
+ });
+
+ XMLDOMStringList.prototype.item = function(index) {
+ return this.arr[index] || null;
+ };
+
+ XMLDOMStringList.prototype.contains = function(str) {
+ return this.arr.indexOf(str) !== -1;
+ };
+
+ return XMLDOMStringList;
+
+ })();
}).call(this);
/***/ }),
-/***/ 6189:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+/***/ 1015:
+/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
// Generated by CoffeeScript 1.12.7
(function() {
- "use strict";
- var builder, defaults, parser, processors,
+ var NodeType, XMLDTDAttList, XMLNode,
extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
hasProp = {}.hasOwnProperty;
- defaults = __nccwpck_require__(7251);
+ XMLNode = __nccwpck_require__(7608);
- builder = __nccwpck_require__(3337);
+ NodeType = __nccwpck_require__(9267);
- parser = __nccwpck_require__(3314);
+ module.exports = XMLDTDAttList = (function(superClass) {
+ extend(XMLDTDAttList, superClass);
- processors = __nccwpck_require__(9236);
+ function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) {
+ XMLDTDAttList.__super__.constructor.call(this, parent);
+ if (elementName == null) {
+ throw new Error("Missing DTD element name. " + this.debugInfo());
+ }
+ if (attributeName == null) {
+ throw new Error("Missing DTD attribute name. " + this.debugInfo(elementName));
+ }
+ if (!attributeType) {
+ throw new Error("Missing DTD attribute type. " + this.debugInfo(elementName));
+ }
+ if (!defaultValueType) {
+ throw new Error("Missing DTD attribute default. " + this.debugInfo(elementName));
+ }
+ if (defaultValueType.indexOf('#') !== 0) {
+ defaultValueType = '#' + defaultValueType;
+ }
+ if (!defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) {
+ throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT. " + this.debugInfo(elementName));
+ }
+ if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) {
+ throw new Error("Default value only applies to #FIXED or #DEFAULT. " + this.debugInfo(elementName));
+ }
+ this.elementName = this.stringify.name(elementName);
+ this.type = NodeType.AttributeDeclaration;
+ this.attributeName = this.stringify.name(attributeName);
+ this.attributeType = this.stringify.dtdAttType(attributeType);
+ if (defaultValue) {
+ this.defaultValue = this.stringify.dtdAttDefault(defaultValue);
+ }
+ this.defaultValueType = defaultValueType;
+ }
- exports.defaults = defaults.defaults;
+ XMLDTDAttList.prototype.toString = function(options) {
+ return this.options.writer.dtdAttList(this, this.options.writer.filterOptions(options));
+ };
- exports.processors = processors;
+ return XMLDTDAttList;
- exports.ValidationError = (function(superClass) {
- extend(ValidationError, superClass);
+ })(XMLNode);
- function ValidationError(message) {
- this.message = message;
- }
+}).call(this);
- return ValidationError;
- })(Error);
+/***/ }),
- exports.Builder = builder.Builder;
+/***/ 2421:
+/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
- exports.Parser = parser.Parser;
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var NodeType, XMLDTDElement, XMLNode,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
- exports.parseString = parser.parseString;
+ XMLNode = __nccwpck_require__(7608);
- exports.parseStringPromise = parser.parseStringPromise;
+ NodeType = __nccwpck_require__(9267);
+
+ module.exports = XMLDTDElement = (function(superClass) {
+ extend(XMLDTDElement, superClass);
+
+ function XMLDTDElement(parent, name, value) {
+ XMLDTDElement.__super__.constructor.call(this, parent);
+ if (name == null) {
+ throw new Error("Missing DTD element name. " + this.debugInfo());
+ }
+ if (!value) {
+ value = '(#PCDATA)';
+ }
+ if (Array.isArray(value)) {
+ value = '(' + value.join(',') + ')';
+ }
+ this.name = this.stringify.name(name);
+ this.type = NodeType.ElementDeclaration;
+ this.value = this.stringify.dtdElementValue(value);
+ }
+
+ XMLDTDElement.prototype.toString = function(options) {
+ return this.options.writer.dtdElement(this, this.options.writer.filterOptions(options));
+ };
+
+ return XMLDTDElement;
+
+ })(XMLNode);
}).call(this);
/***/ }),
-/***/ 2839:
-/***/ (function(module) {
+/***/ 53:
+/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
// Generated by CoffeeScript 1.12.7
(function() {
- module.exports = {
- Disconnected: 1,
- Preceding: 2,
- Following: 4,
- Contains: 8,
- ContainedBy: 16,
- ImplementationSpecific: 32
- };
+ var NodeType, XMLDTDEntity, XMLNode, isObject,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ isObject = (__nccwpck_require__(8229).isObject);
+
+ XMLNode = __nccwpck_require__(7608);
+
+ NodeType = __nccwpck_require__(9267);
+
+ module.exports = XMLDTDEntity = (function(superClass) {
+ extend(XMLDTDEntity, superClass);
+
+ function XMLDTDEntity(parent, pe, name, value) {
+ XMLDTDEntity.__super__.constructor.call(this, parent);
+ if (name == null) {
+ throw new Error("Missing DTD entity name. " + this.debugInfo(name));
+ }
+ if (value == null) {
+ throw new Error("Missing DTD entity value. " + this.debugInfo(name));
+ }
+ this.pe = !!pe;
+ this.name = this.stringify.name(name);
+ this.type = NodeType.EntityDeclaration;
+ if (!isObject(value)) {
+ this.value = this.stringify.dtdEntityValue(value);
+ this.internal = true;
+ } else {
+ if (!value.pubID && !value.sysID) {
+ throw new Error("Public and/or system identifiers are required for an external entity. " + this.debugInfo(name));
+ }
+ if (value.pubID && !value.sysID) {
+ throw new Error("System identifier is required for a public external entity. " + this.debugInfo(name));
+ }
+ this.internal = false;
+ if (value.pubID != null) {
+ this.pubID = this.stringify.dtdPubID(value.pubID);
+ }
+ if (value.sysID != null) {
+ this.sysID = this.stringify.dtdSysID(value.sysID);
+ }
+ if (value.nData != null) {
+ this.nData = this.stringify.dtdNData(value.nData);
+ }
+ if (this.pe && this.nData) {
+ throw new Error("Notation declaration is not allowed in a parameter entity. " + this.debugInfo(name));
+ }
+ }
+ }
+
+ Object.defineProperty(XMLDTDEntity.prototype, 'publicId', {
+ get: function() {
+ return this.pubID;
+ }
+ });
+
+ Object.defineProperty(XMLDTDEntity.prototype, 'systemId', {
+ get: function() {
+ return this.sysID;
+ }
+ });
+
+ Object.defineProperty(XMLDTDEntity.prototype, 'notationName', {
+ get: function() {
+ return this.nData || null;
+ }
+ });
+
+ Object.defineProperty(XMLDTDEntity.prototype, 'inputEncoding', {
+ get: function() {
+ return null;
+ }
+ });
+
+ Object.defineProperty(XMLDTDEntity.prototype, 'xmlEncoding', {
+ get: function() {
+ return null;
+ }
+ });
+
+ Object.defineProperty(XMLDTDEntity.prototype, 'xmlVersion', {
+ get: function() {
+ return null;
+ }
+ });
+
+ XMLDTDEntity.prototype.toString = function(options) {
+ return this.options.writer.dtdEntity(this, this.options.writer.filterOptions(options));
+ };
+
+ return XMLDTDEntity;
+
+ })(XMLNode);
}).call(this);
/***/ }),
-/***/ 9267:
-/***/ (function(module) {
+/***/ 2837:
+/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
// Generated by CoffeeScript 1.12.7
(function() {
- module.exports = {
- Element: 1,
- Attribute: 2,
- Text: 3,
- CData: 4,
- EntityReference: 5,
- EntityDeclaration: 6,
- ProcessingInstruction: 7,
- Comment: 8,
- Document: 9,
- DocType: 10,
- DocumentFragment: 11,
- NotationDeclaration: 12,
- Declaration: 201,
- Raw: 202,
- AttributeDeclaration: 203,
- ElementDeclaration: 204,
- Dummy: 205
- };
+ var NodeType, XMLDTDNotation, XMLNode,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ XMLNode = __nccwpck_require__(7608);
+
+ NodeType = __nccwpck_require__(9267);
+
+ module.exports = XMLDTDNotation = (function(superClass) {
+ extend(XMLDTDNotation, superClass);
+
+ function XMLDTDNotation(parent, name, value) {
+ XMLDTDNotation.__super__.constructor.call(this, parent);
+ if (name == null) {
+ throw new Error("Missing DTD notation name. " + this.debugInfo(name));
+ }
+ if (!value.pubID && !value.sysID) {
+ throw new Error("Public or system identifiers are required for an external entity. " + this.debugInfo(name));
+ }
+ this.name = this.stringify.name(name);
+ this.type = NodeType.NotationDeclaration;
+ if (value.pubID != null) {
+ this.pubID = this.stringify.dtdPubID(value.pubID);
+ }
+ if (value.sysID != null) {
+ this.sysID = this.stringify.dtdSysID(value.sysID);
+ }
+ }
+
+ Object.defineProperty(XMLDTDNotation.prototype, 'publicId', {
+ get: function() {
+ return this.pubID;
+ }
+ });
+
+ Object.defineProperty(XMLDTDNotation.prototype, 'systemId', {
+ get: function() {
+ return this.sysID;
+ }
+ });
+
+ XMLDTDNotation.prototype.toString = function(options) {
+ return this.options.writer.dtdNotation(this, this.options.writer.filterOptions(options));
+ };
+
+ return XMLDTDNotation;
+
+ })(XMLNode);
}).call(this);
/***/ }),
-/***/ 8229:
-/***/ (function(module) {
+/***/ 6364:
+/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
// Generated by CoffeeScript 1.12.7
(function() {
- var assign, getValue, isArray, isEmpty, isFunction, isObject, isPlainObject,
- slice = [].slice,
+ var NodeType, XMLDeclaration, XMLNode, isObject,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
hasProp = {}.hasOwnProperty;
- assign = function() {
- var i, key, len, source, sources, target;
- target = arguments[0], sources = 2 <= arguments.length ? slice.call(arguments, 1) : [];
- if (isFunction(Object.assign)) {
- Object.assign.apply(null, arguments);
- } else {
- for (i = 0, len = sources.length; i < len; i++) {
- source = sources[i];
- if (source != null) {
- for (key in source) {
- if (!hasProp.call(source, key)) continue;
- target[key] = source[key];
- }
- }
- }
- }
- return target;
- };
+ isObject = (__nccwpck_require__(8229).isObject);
- isFunction = function(val) {
- return !!val && Object.prototype.toString.call(val) === '[object Function]';
- };
+ XMLNode = __nccwpck_require__(7608);
- isObject = function(val) {
- var ref;
- return !!val && ((ref = typeof val) === 'function' || ref === 'object');
- };
+ NodeType = __nccwpck_require__(9267);
- isArray = function(val) {
- if (isFunction(Array.isArray)) {
- return Array.isArray(val);
- } else {
- return Object.prototype.toString.call(val) === '[object Array]';
- }
- };
+ module.exports = XMLDeclaration = (function(superClass) {
+ extend(XMLDeclaration, superClass);
- isEmpty = function(val) {
- var key;
- if (isArray(val)) {
- return !val.length;
- } else {
- for (key in val) {
- if (!hasProp.call(val, key)) continue;
- return false;
+ function XMLDeclaration(parent, version, encoding, standalone) {
+ var ref;
+ XMLDeclaration.__super__.constructor.call(this, parent);
+ if (isObject(version)) {
+ ref = version, version = ref.version, encoding = ref.encoding, standalone = ref.standalone;
+ }
+ if (!version) {
+ version = '1.0';
+ }
+ this.type = NodeType.Declaration;
+ this.version = this.stringify.xmlVersion(version);
+ if (encoding != null) {
+ this.encoding = this.stringify.xmlEncoding(encoding);
+ }
+ if (standalone != null) {
+ this.standalone = this.stringify.xmlStandalone(standalone);
}
- return true;
- }
- };
-
- isPlainObject = function(val) {
- var ctor, proto;
- return isObject(val) && (proto = Object.getPrototypeOf(val)) && (ctor = proto.constructor) && (typeof ctor === 'function') && (ctor instanceof ctor) && (Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object));
- };
-
- getValue = function(obj) {
- if (isFunction(obj.valueOf)) {
- return obj.valueOf();
- } else {
- return obj;
}
- };
-
- module.exports.assign = assign;
-
- module.exports.isFunction = isFunction;
-
- module.exports.isObject = isObject;
-
- module.exports.isArray = isArray;
- module.exports.isEmpty = isEmpty;
+ XMLDeclaration.prototype.toString = function(options) {
+ return this.options.writer.declaration(this, this.options.writer.filterOptions(options));
+ };
- module.exports.isPlainObject = isPlainObject;
+ return XMLDeclaration;
- module.exports.getValue = getValue;
+ })(XMLNode);
}).call(this);
/***/ }),
-/***/ 9766:
-/***/ (function(module) {
+/***/ 1801:
+/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
// Generated by CoffeeScript 1.12.7
(function() {
- module.exports = {
- None: 0,
- OpenTag: 1,
- InsideTag: 2,
- CloseTag: 3
- };
+ var NodeType, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLNamedNodeMap, XMLNode, isObject,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
-}).call(this);
+ isObject = (__nccwpck_require__(8229).isObject);
+ XMLNode = __nccwpck_require__(7608);
-/***/ }),
+ NodeType = __nccwpck_require__(9267);
-/***/ 8376:
-/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
+ XMLDTDAttList = __nccwpck_require__(1015);
-// Generated by CoffeeScript 1.12.7
-(function() {
- var NodeType, XMLAttribute, XMLNode;
+ XMLDTDEntity = __nccwpck_require__(53);
- NodeType = __nccwpck_require__(9267);
+ XMLDTDElement = __nccwpck_require__(2421);
- XMLNode = __nccwpck_require__(7608);
+ XMLDTDNotation = __nccwpck_require__(2837);
- module.exports = XMLAttribute = (function() {
- function XMLAttribute(parent, name, value) {
- this.parent = parent;
- if (this.parent) {
- this.options = this.parent.options;
- this.stringify = this.parent.stringify;
+ XMLNamedNodeMap = __nccwpck_require__(4361);
+
+ module.exports = XMLDocType = (function(superClass) {
+ extend(XMLDocType, superClass);
+
+ function XMLDocType(parent, pubID, sysID) {
+ var child, i, len, ref, ref1, ref2;
+ XMLDocType.__super__.constructor.call(this, parent);
+ this.type = NodeType.DocType;
+ if (parent.children) {
+ ref = parent.children;
+ for (i = 0, len = ref.length; i < len; i++) {
+ child = ref[i];
+ if (child.type === NodeType.Element) {
+ this.name = child.name;
+ break;
+ }
+ }
}
- if (name == null) {
- throw new Error("Missing attribute name. " + this.debugInfo(name));
+ this.documentObject = parent;
+ if (isObject(pubID)) {
+ ref1 = pubID, pubID = ref1.pubID, sysID = ref1.sysID;
+ }
+ if (sysID == null) {
+ ref2 = [pubID, sysID], sysID = ref2[0], pubID = ref2[1];
+ }
+ if (pubID != null) {
+ this.pubID = this.stringify.dtdPubID(pubID);
+ }
+ if (sysID != null) {
+ this.sysID = this.stringify.dtdSysID(sysID);
}
- this.name = this.stringify.name(name);
- this.value = this.stringify.attValue(value);
- this.type = NodeType.Attribute;
- this.isId = false;
- this.schemaTypeInfo = null;
}
- Object.defineProperty(XMLAttribute.prototype, 'nodeType', {
+ Object.defineProperty(XMLDocType.prototype, 'entities', {
get: function() {
- return this.type;
+ var child, i, len, nodes, ref;
+ nodes = {};
+ ref = this.children;
+ for (i = 0, len = ref.length; i < len; i++) {
+ child = ref[i];
+ if ((child.type === NodeType.EntityDeclaration) && !child.pe) {
+ nodes[child.name] = child;
+ }
+ }
+ return new XMLNamedNodeMap(nodes);
}
});
- Object.defineProperty(XMLAttribute.prototype, 'ownerElement', {
+ Object.defineProperty(XMLDocType.prototype, 'notations', {
get: function() {
- return this.parent;
+ var child, i, len, nodes, ref;
+ nodes = {};
+ ref = this.children;
+ for (i = 0, len = ref.length; i < len; i++) {
+ child = ref[i];
+ if (child.type === NodeType.NotationDeclaration) {
+ nodes[child.name] = child;
+ }
+ }
+ return new XMLNamedNodeMap(nodes);
}
});
- Object.defineProperty(XMLAttribute.prototype, 'textContent', {
+ Object.defineProperty(XMLDocType.prototype, 'publicId', {
get: function() {
- return this.value;
- },
- set: function(value) {
- return this.value = value || '';
+ return this.pubID;
}
});
- Object.defineProperty(XMLAttribute.prototype, 'namespaceURI', {
+ Object.defineProperty(XMLDocType.prototype, 'systemId', {
get: function() {
- return '';
+ return this.sysID;
}
});
- Object.defineProperty(XMLAttribute.prototype, 'prefix', {
+ Object.defineProperty(XMLDocType.prototype, 'internalSubset', {
get: function() {
- return '';
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
}
});
- Object.defineProperty(XMLAttribute.prototype, 'localName', {
- get: function() {
- return this.name;
- }
- });
+ XMLDocType.prototype.element = function(name, value) {
+ var child;
+ child = new XMLDTDElement(this, name, value);
+ this.children.push(child);
+ return this;
+ };
- Object.defineProperty(XMLAttribute.prototype, 'specified', {
- get: function() {
- return true;
- }
- });
+ XMLDocType.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {
+ var child;
+ child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);
+ this.children.push(child);
+ return this;
+ };
- XMLAttribute.prototype.clone = function() {
- return Object.create(this);
+ XMLDocType.prototype.entity = function(name, value) {
+ var child;
+ child = new XMLDTDEntity(this, false, name, value);
+ this.children.push(child);
+ return this;
};
- XMLAttribute.prototype.toString = function(options) {
- return this.options.writer.attribute(this, this.options.writer.filterOptions(options));
+ XMLDocType.prototype.pEntity = function(name, value) {
+ var child;
+ child = new XMLDTDEntity(this, true, name, value);
+ this.children.push(child);
+ return this;
};
- XMLAttribute.prototype.debugInfo = function(name) {
- name = name || this.name;
- if (name == null) {
- return "parent: <" + this.parent.name + ">";
- } else {
- return "attribute: {" + name + "}, parent: <" + this.parent.name + ">";
- }
+ XMLDocType.prototype.notation = function(name, value) {
+ var child;
+ child = new XMLDTDNotation(this, name, value);
+ this.children.push(child);
+ return this;
};
- XMLAttribute.prototype.isEqualNode = function(node) {
- if (node.namespaceURI !== this.namespaceURI) {
+ XMLDocType.prototype.toString = function(options) {
+ return this.options.writer.docType(this, this.options.writer.filterOptions(options));
+ };
+
+ XMLDocType.prototype.ele = function(name, value) {
+ return this.element(name, value);
+ };
+
+ XMLDocType.prototype.att = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {
+ return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue);
+ };
+
+ XMLDocType.prototype.ent = function(name, value) {
+ return this.entity(name, value);
+ };
+
+ XMLDocType.prototype.pent = function(name, value) {
+ return this.pEntity(name, value);
+ };
+
+ XMLDocType.prototype.not = function(name, value) {
+ return this.notation(name, value);
+ };
+
+ XMLDocType.prototype.up = function() {
+ return this.root() || this.documentObject;
+ };
+
+ XMLDocType.prototype.isEqualNode = function(node) {
+ if (!XMLDocType.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {
return false;
}
- if (node.prefix !== this.prefix) {
+ if (node.name !== this.name) {
return false;
}
- if (node.localName !== this.localName) {
+ if (node.publicId !== this.publicId) {
return false;
}
- if (node.value !== this.value) {
+ if (node.systemId !== this.systemId) {
return false;
}
return true;
};
- return XMLAttribute;
+ return XMLDocType;
- })();
+ })(XMLNode);
}).call(this);
/***/ }),
-/***/ 333:
+/***/ 3730:
/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
// Generated by CoffeeScript 1.12.7
(function() {
- var NodeType, XMLCData, XMLCharacterData,
+ var NodeType, XMLDOMConfiguration, XMLDOMImplementation, XMLDocument, XMLNode, XMLStringWriter, XMLStringifier, isPlainObject,
extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
hasProp = {}.hasOwnProperty;
+ isPlainObject = (__nccwpck_require__(8229).isPlainObject);
+
+ XMLDOMImplementation = __nccwpck_require__(8310);
+
+ XMLDOMConfiguration = __nccwpck_require__(7465);
+
+ XMLNode = __nccwpck_require__(7608);
+
NodeType = __nccwpck_require__(9267);
- XMLCharacterData = __nccwpck_require__(7709);
+ XMLStringifier = __nccwpck_require__(8594);
- module.exports = XMLCData = (function(superClass) {
- extend(XMLCData, superClass);
+ XMLStringWriter = __nccwpck_require__(5913);
- function XMLCData(parent, text) {
- XMLCData.__super__.constructor.call(this, parent);
- if (text == null) {
- throw new Error("Missing CDATA text. " + this.debugInfo());
+ module.exports = XMLDocument = (function(superClass) {
+ extend(XMLDocument, superClass);
+
+ function XMLDocument(options) {
+ XMLDocument.__super__.constructor.call(this, null);
+ this.name = "#document";
+ this.type = NodeType.Document;
+ this.documentURI = null;
+ this.domConfig = new XMLDOMConfiguration();
+ options || (options = {});
+ if (!options.writer) {
+ options.writer = new XMLStringWriter();
}
- this.name = "#cdata-section";
- this.type = NodeType.CData;
- this.value = this.stringify.cdata(text);
+ this.options = options;
+ this.stringify = new XMLStringifier(options);
}
- XMLCData.prototype.clone = function() {
- return Object.create(this);
+ Object.defineProperty(XMLDocument.prototype, 'implementation', {
+ value: new XMLDOMImplementation()
+ });
+
+ Object.defineProperty(XMLDocument.prototype, 'doctype', {
+ get: function() {
+ var child, i, len, ref;
+ ref = this.children;
+ for (i = 0, len = ref.length; i < len; i++) {
+ child = ref[i];
+ if (child.type === NodeType.DocType) {
+ return child;
+ }
+ }
+ return null;
+ }
+ });
+
+ Object.defineProperty(XMLDocument.prototype, 'documentElement', {
+ get: function() {
+ return this.rootObject || null;
+ }
+ });
+
+ Object.defineProperty(XMLDocument.prototype, 'inputEncoding', {
+ get: function() {
+ return null;
+ }
+ });
+
+ Object.defineProperty(XMLDocument.prototype, 'strictErrorChecking', {
+ get: function() {
+ return false;
+ }
+ });
+
+ Object.defineProperty(XMLDocument.prototype, 'xmlEncoding', {
+ get: function() {
+ if (this.children.length !== 0 && this.children[0].type === NodeType.Declaration) {
+ return this.children[0].encoding;
+ } else {
+ return null;
+ }
+ }
+ });
+
+ Object.defineProperty(XMLDocument.prototype, 'xmlStandalone', {
+ get: function() {
+ if (this.children.length !== 0 && this.children[0].type === NodeType.Declaration) {
+ return this.children[0].standalone === 'yes';
+ } else {
+ return false;
+ }
+ }
+ });
+
+ Object.defineProperty(XMLDocument.prototype, 'xmlVersion', {
+ get: function() {
+ if (this.children.length !== 0 && this.children[0].type === NodeType.Declaration) {
+ return this.children[0].version;
+ } else {
+ return "1.0";
+ }
+ }
+ });
+
+ Object.defineProperty(XMLDocument.prototype, 'URL', {
+ get: function() {
+ return this.documentURI;
+ }
+ });
+
+ Object.defineProperty(XMLDocument.prototype, 'origin', {
+ get: function() {
+ return null;
+ }
+ });
+
+ Object.defineProperty(XMLDocument.prototype, 'compatMode', {
+ get: function() {
+ return null;
+ }
+ });
+
+ Object.defineProperty(XMLDocument.prototype, 'characterSet', {
+ get: function() {
+ return null;
+ }
+ });
+
+ Object.defineProperty(XMLDocument.prototype, 'contentType', {
+ get: function() {
+ return null;
+ }
+ });
+
+ XMLDocument.prototype.end = function(writer) {
+ var writerOptions;
+ writerOptions = {};
+ if (!writer) {
+ writer = this.options.writer;
+ } else if (isPlainObject(writer)) {
+ writerOptions = writer;
+ writer = this.options.writer;
+ }
+ return writer.document(this, writer.filterOptions(writerOptions));
};
- XMLCData.prototype.toString = function(options) {
- return this.options.writer.cdata(this, this.options.writer.filterOptions(options));
+ XMLDocument.prototype.toString = function(options) {
+ return this.options.writer.document(this, this.options.writer.filterOptions(options));
};
- return XMLCData;
+ XMLDocument.prototype.createElement = function(tagName) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- })(XMLCharacterData);
+ XMLDocument.prototype.createDocumentFragment = function() {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
-}).call(this);
+ XMLDocument.prototype.createTextNode = function(data) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
+ XMLDocument.prototype.createComment = function(data) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
-/***/ }),
+ XMLDocument.prototype.createCDATASection = function(data) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
-/***/ 7709:
-/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
+ XMLDocument.prototype.createProcessingInstruction = function(target, data) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
-// Generated by CoffeeScript 1.12.7
-(function() {
- var XMLCharacterData, XMLNode,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
+ XMLDocument.prototype.createAttribute = function(name) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- XMLNode = __nccwpck_require__(7608);
+ XMLDocument.prototype.createEntityReference = function(name) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- module.exports = XMLCharacterData = (function(superClass) {
- extend(XMLCharacterData, superClass);
+ XMLDocument.prototype.getElementsByTagName = function(tagname) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- function XMLCharacterData(parent) {
- XMLCharacterData.__super__.constructor.call(this, parent);
- this.value = '';
- }
+ XMLDocument.prototype.importNode = function(importedNode, deep) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
+
+ XMLDocument.prototype.createElementNS = function(namespaceURI, qualifiedName) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
+
+ XMLDocument.prototype.createAttributeNS = function(namespaceURI, qualifiedName) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- Object.defineProperty(XMLCharacterData.prototype, 'data', {
- get: function() {
- return this.value;
- },
- set: function(value) {
- return this.value = value || '';
- }
- });
+ XMLDocument.prototype.getElementsByTagNameNS = function(namespaceURI, localName) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- Object.defineProperty(XMLCharacterData.prototype, 'length', {
- get: function() {
- return this.value.length;
- }
- });
+ XMLDocument.prototype.getElementById = function(elementId) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- Object.defineProperty(XMLCharacterData.prototype, 'textContent', {
- get: function() {
- return this.value;
- },
- set: function(value) {
- return this.value = value || '';
- }
- });
+ XMLDocument.prototype.adoptNode = function(source) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- XMLCharacterData.prototype.clone = function() {
- return Object.create(this);
+ XMLDocument.prototype.normalizeDocument = function() {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- XMLCharacterData.prototype.substringData = function(offset, count) {
+ XMLDocument.prototype.renameNode = function(node, namespaceURI, qualifiedName) {
throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- XMLCharacterData.prototype.appendData = function(arg) {
+ XMLDocument.prototype.getElementsByClassName = function(classNames) {
throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- XMLCharacterData.prototype.insertData = function(offset, arg) {
+ XMLDocument.prototype.createEvent = function(eventInterface) {
throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- XMLCharacterData.prototype.deleteData = function(offset, count) {
+ XMLDocument.prototype.createRange = function() {
throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- XMLCharacterData.prototype.replaceData = function(offset, count, arg) {
+ XMLDocument.prototype.createNodeIterator = function(root, whatToShow, filter) {
throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- XMLCharacterData.prototype.isEqualNode = function(node) {
- if (!XMLCharacterData.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {
- return false;
- }
- if (node.data !== this.data) {
- return false;
- }
- return true;
+ XMLDocument.prototype.createTreeWalker = function(root, whatToShow, filter) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- return XMLCharacterData;
+ return XMLDocument;
})(XMLNode);
@@ -63838,174 +93832,533 @@ module.exports = v4;
/***/ }),
-/***/ 4407:
+/***/ 7356:
/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
// Generated by CoffeeScript 1.12.7
(function() {
- var NodeType, XMLCharacterData, XMLComment,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ var NodeType, WriterState, XMLAttribute, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDocument, XMLDocumentCB, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLStringifier, XMLText, getValue, isFunction, isObject, isPlainObject, ref,
hasProp = {}.hasOwnProperty;
+ ref = __nccwpck_require__(8229), isObject = ref.isObject, isFunction = ref.isFunction, isPlainObject = ref.isPlainObject, getValue = ref.getValue;
+
NodeType = __nccwpck_require__(9267);
- XMLCharacterData = __nccwpck_require__(7709);
+ XMLDocument = __nccwpck_require__(3730);
- module.exports = XMLComment = (function(superClass) {
- extend(XMLComment, superClass);
+ XMLElement = __nccwpck_require__(9437);
- function XMLComment(parent, text) {
- XMLComment.__super__.constructor.call(this, parent);
- if (text == null) {
- throw new Error("Missing comment text. " + this.debugInfo());
+ XMLCData = __nccwpck_require__(333);
+
+ XMLComment = __nccwpck_require__(4407);
+
+ XMLRaw = __nccwpck_require__(6329);
+
+ XMLText = __nccwpck_require__(1318);
+
+ XMLProcessingInstruction = __nccwpck_require__(6939);
+
+ XMLDeclaration = __nccwpck_require__(6364);
+
+ XMLDocType = __nccwpck_require__(1801);
+
+ XMLDTDAttList = __nccwpck_require__(1015);
+
+ XMLDTDEntity = __nccwpck_require__(53);
+
+ XMLDTDElement = __nccwpck_require__(2421);
+
+ XMLDTDNotation = __nccwpck_require__(2837);
+
+ XMLAttribute = __nccwpck_require__(8376);
+
+ XMLStringifier = __nccwpck_require__(8594);
+
+ XMLStringWriter = __nccwpck_require__(5913);
+
+ WriterState = __nccwpck_require__(9766);
+
+ module.exports = XMLDocumentCB = (function() {
+ function XMLDocumentCB(options, onData, onEnd) {
+ var writerOptions;
+ this.name = "?xml";
+ this.type = NodeType.Document;
+ options || (options = {});
+ writerOptions = {};
+ if (!options.writer) {
+ options.writer = new XMLStringWriter();
+ } else if (isPlainObject(options.writer)) {
+ writerOptions = options.writer;
+ options.writer = new XMLStringWriter();
}
- this.name = "#comment";
- this.type = NodeType.Comment;
- this.value = this.stringify.comment(text);
+ this.options = options;
+ this.writer = options.writer;
+ this.writerOptions = this.writer.filterOptions(writerOptions);
+ this.stringify = new XMLStringifier(options);
+ this.onDataCallback = onData || function() {};
+ this.onEndCallback = onEnd || function() {};
+ this.currentNode = null;
+ this.currentLevel = -1;
+ this.openTags = {};
+ this.documentStarted = false;
+ this.documentCompleted = false;
+ this.root = null;
}
- XMLComment.prototype.clone = function() {
- return Object.create(this);
+ XMLDocumentCB.prototype.createChildNode = function(node) {
+ var att, attName, attributes, child, i, len, ref1, ref2;
+ switch (node.type) {
+ case NodeType.CData:
+ this.cdata(node.value);
+ break;
+ case NodeType.Comment:
+ this.comment(node.value);
+ break;
+ case NodeType.Element:
+ attributes = {};
+ ref1 = node.attribs;
+ for (attName in ref1) {
+ if (!hasProp.call(ref1, attName)) continue;
+ att = ref1[attName];
+ attributes[attName] = att.value;
+ }
+ this.node(node.name, attributes);
+ break;
+ case NodeType.Dummy:
+ this.dummy();
+ break;
+ case NodeType.Raw:
+ this.raw(node.value);
+ break;
+ case NodeType.Text:
+ this.text(node.value);
+ break;
+ case NodeType.ProcessingInstruction:
+ this.instruction(node.target, node.value);
+ break;
+ default:
+ throw new Error("This XML node type is not supported in a JS object: " + node.constructor.name);
+ }
+ ref2 = node.children;
+ for (i = 0, len = ref2.length; i < len; i++) {
+ child = ref2[i];
+ this.createChildNode(child);
+ if (child.type === NodeType.Element) {
+ this.up();
+ }
+ }
+ return this;
};
- XMLComment.prototype.toString = function(options) {
- return this.options.writer.comment(this, this.options.writer.filterOptions(options));
+ XMLDocumentCB.prototype.dummy = function() {
+ return this;
};
- return XMLComment;
-
- })(XMLCharacterData);
+ XMLDocumentCB.prototype.node = function(name, attributes, text) {
+ var ref1;
+ if (name == null) {
+ throw new Error("Missing node name.");
+ }
+ if (this.root && this.currentLevel === -1) {
+ throw new Error("Document can only have one root node. " + this.debugInfo(name));
+ }
+ this.openCurrent();
+ name = getValue(name);
+ if (attributes == null) {
+ attributes = {};
+ }
+ attributes = getValue(attributes);
+ if (!isObject(attributes)) {
+ ref1 = [attributes, text], text = ref1[0], attributes = ref1[1];
+ }
+ this.currentNode = new XMLElement(this, name, attributes);
+ this.currentNode.children = false;
+ this.currentLevel++;
+ this.openTags[this.currentLevel] = this.currentNode;
+ if (text != null) {
+ this.text(text);
+ }
+ return this;
+ };
-}).call(this);
+ XMLDocumentCB.prototype.element = function(name, attributes, text) {
+ var child, i, len, oldValidationFlag, ref1, root;
+ if (this.currentNode && this.currentNode.type === NodeType.DocType) {
+ this.dtdElement.apply(this, arguments);
+ } else {
+ if (Array.isArray(name) || isObject(name) || isFunction(name)) {
+ oldValidationFlag = this.options.noValidation;
+ this.options.noValidation = true;
+ root = new XMLDocument(this.options).element('TEMP_ROOT');
+ root.element(name);
+ this.options.noValidation = oldValidationFlag;
+ ref1 = root.children;
+ for (i = 0, len = ref1.length; i < len; i++) {
+ child = ref1[i];
+ this.createChildNode(child);
+ if (child.type === NodeType.Element) {
+ this.up();
+ }
+ }
+ } else {
+ this.node(name, attributes, text);
+ }
+ }
+ return this;
+ };
+ XMLDocumentCB.prototype.attribute = function(name, value) {
+ var attName, attValue;
+ if (!this.currentNode || this.currentNode.children) {
+ throw new Error("att() can only be used immediately after an ele() call in callback mode. " + this.debugInfo(name));
+ }
+ if (name != null) {
+ name = getValue(name);
+ }
+ if (isObject(name)) {
+ for (attName in name) {
+ if (!hasProp.call(name, attName)) continue;
+ attValue = name[attName];
+ this.attribute(attName, attValue);
+ }
+ } else {
+ if (isFunction(value)) {
+ value = value.apply();
+ }
+ if (this.options.keepNullAttributes && (value == null)) {
+ this.currentNode.attribs[name] = new XMLAttribute(this, name, "");
+ } else if (value != null) {
+ this.currentNode.attribs[name] = new XMLAttribute(this, name, value);
+ }
+ }
+ return this;
+ };
-/***/ }),
+ XMLDocumentCB.prototype.text = function(value) {
+ var node;
+ this.openCurrent();
+ node = new XMLText(this, value);
+ this.onData(this.writer.text(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
+ return this;
+ };
-/***/ 7465:
-/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
+ XMLDocumentCB.prototype.cdata = function(value) {
+ var node;
+ this.openCurrent();
+ node = new XMLCData(this, value);
+ this.onData(this.writer.cdata(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
+ return this;
+ };
-// Generated by CoffeeScript 1.12.7
-(function() {
- var XMLDOMConfiguration, XMLDOMErrorHandler, XMLDOMStringList;
+ XMLDocumentCB.prototype.comment = function(value) {
+ var node;
+ this.openCurrent();
+ node = new XMLComment(this, value);
+ this.onData(this.writer.comment(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
+ return this;
+ };
- XMLDOMErrorHandler = __nccwpck_require__(6744);
+ XMLDocumentCB.prototype.raw = function(value) {
+ var node;
+ this.openCurrent();
+ node = new XMLRaw(this, value);
+ this.onData(this.writer.raw(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
+ return this;
+ };
- XMLDOMStringList = __nccwpck_require__(7028);
+ XMLDocumentCB.prototype.instruction = function(target, value) {
+ var i, insTarget, insValue, len, node;
+ this.openCurrent();
+ if (target != null) {
+ target = getValue(target);
+ }
+ if (value != null) {
+ value = getValue(value);
+ }
+ if (Array.isArray(target)) {
+ for (i = 0, len = target.length; i < len; i++) {
+ insTarget = target[i];
+ this.instruction(insTarget);
+ }
+ } else if (isObject(target)) {
+ for (insTarget in target) {
+ if (!hasProp.call(target, insTarget)) continue;
+ insValue = target[insTarget];
+ this.instruction(insTarget, insValue);
+ }
+ } else {
+ if (isFunction(value)) {
+ value = value.apply();
+ }
+ node = new XMLProcessingInstruction(this, target, value);
+ this.onData(this.writer.processingInstruction(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
+ }
+ return this;
+ };
- module.exports = XMLDOMConfiguration = (function() {
- function XMLDOMConfiguration() {
- var clonedSelf;
- this.defaultParams = {
- "canonical-form": false,
- "cdata-sections": false,
- "comments": false,
- "datatype-normalization": false,
- "element-content-whitespace": true,
- "entities": true,
- "error-handler": new XMLDOMErrorHandler(),
- "infoset": true,
- "validate-if-schema": false,
- "namespaces": true,
- "namespace-declarations": true,
- "normalize-characters": false,
- "schema-location": '',
- "schema-type": '',
- "split-cdata-sections": true,
- "validate": false,
- "well-formed": true
- };
- this.params = clonedSelf = Object.create(this.defaultParams);
- }
+ XMLDocumentCB.prototype.declaration = function(version, encoding, standalone) {
+ var node;
+ this.openCurrent();
+ if (this.documentStarted) {
+ throw new Error("declaration() must be the first node.");
+ }
+ node = new XMLDeclaration(this, version, encoding, standalone);
+ this.onData(this.writer.declaration(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
+ return this;
+ };
- Object.defineProperty(XMLDOMConfiguration.prototype, 'parameterNames', {
- get: function() {
- return new XMLDOMStringList(Object.keys(this.defaultParams));
+ XMLDocumentCB.prototype.doctype = function(root, pubID, sysID) {
+ this.openCurrent();
+ if (root == null) {
+ throw new Error("Missing root node name.");
}
- });
+ if (this.root) {
+ throw new Error("dtd() must come before the root node.");
+ }
+ this.currentNode = new XMLDocType(this, pubID, sysID);
+ this.currentNode.rootNodeName = root;
+ this.currentNode.children = false;
+ this.currentLevel++;
+ this.openTags[this.currentLevel] = this.currentNode;
+ return this;
+ };
- XMLDOMConfiguration.prototype.getParameter = function(name) {
- if (this.params.hasOwnProperty(name)) {
- return this.params[name];
+ XMLDocumentCB.prototype.dtdElement = function(name, value) {
+ var node;
+ this.openCurrent();
+ node = new XMLDTDElement(this, name, value);
+ this.onData(this.writer.dtdElement(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
+ return this;
+ };
+
+ XMLDocumentCB.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {
+ var node;
+ this.openCurrent();
+ node = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);
+ this.onData(this.writer.dtdAttList(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
+ return this;
+ };
+
+ XMLDocumentCB.prototype.entity = function(name, value) {
+ var node;
+ this.openCurrent();
+ node = new XMLDTDEntity(this, false, name, value);
+ this.onData(this.writer.dtdEntity(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
+ return this;
+ };
+
+ XMLDocumentCB.prototype.pEntity = function(name, value) {
+ var node;
+ this.openCurrent();
+ node = new XMLDTDEntity(this, true, name, value);
+ this.onData(this.writer.dtdEntity(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
+ return this;
+ };
+
+ XMLDocumentCB.prototype.notation = function(name, value) {
+ var node;
+ this.openCurrent();
+ node = new XMLDTDNotation(this, name, value);
+ this.onData(this.writer.dtdNotation(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
+ return this;
+ };
+
+ XMLDocumentCB.prototype.up = function() {
+ if (this.currentLevel < 0) {
+ throw new Error("The document node has no parent.");
+ }
+ if (this.currentNode) {
+ if (this.currentNode.children) {
+ this.closeNode(this.currentNode);
+ } else {
+ this.openNode(this.currentNode);
+ }
+ this.currentNode = null;
} else {
- return null;
+ this.closeNode(this.openTags[this.currentLevel]);
}
+ delete this.openTags[this.currentLevel];
+ this.currentLevel--;
+ return this;
};
- XMLDOMConfiguration.prototype.canSetParameter = function(name, value) {
- return true;
+ XMLDocumentCB.prototype.end = function() {
+ while (this.currentLevel >= 0) {
+ this.up();
+ }
+ return this.onEnd();
+ };
+
+ XMLDocumentCB.prototype.openCurrent = function() {
+ if (this.currentNode) {
+ this.currentNode.children = true;
+ return this.openNode(this.currentNode);
+ }
+ };
+
+ XMLDocumentCB.prototype.openNode = function(node) {
+ var att, chunk, name, ref1;
+ if (!node.isOpen) {
+ if (!this.root && this.currentLevel === 0 && node.type === NodeType.Element) {
+ this.root = node;
+ }
+ chunk = '';
+ if (node.type === NodeType.Element) {
+ this.writerOptions.state = WriterState.OpenTag;
+ chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + '<' + node.name;
+ ref1 = node.attribs;
+ for (name in ref1) {
+ if (!hasProp.call(ref1, name)) continue;
+ att = ref1[name];
+ chunk += this.writer.attribute(att, this.writerOptions, this.currentLevel);
+ }
+ chunk += (node.children ? '>' : '/>') + this.writer.endline(node, this.writerOptions, this.currentLevel);
+ this.writerOptions.state = WriterState.InsideTag;
+ } else {
+ this.writerOptions.state = WriterState.OpenTag;
+ chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + '';
+ }
+ chunk += this.writer.endline(node, this.writerOptions, this.currentLevel);
+ }
+ this.onData(chunk, this.currentLevel);
+ return node.isOpen = true;
+ }
+ };
+
+ XMLDocumentCB.prototype.closeNode = function(node) {
+ var chunk;
+ if (!node.isClosed) {
+ chunk = '';
+ this.writerOptions.state = WriterState.CloseTag;
+ if (node.type === NodeType.Element) {
+ chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + '' + node.name + '>' + this.writer.endline(node, this.writerOptions, this.currentLevel);
+ } else {
+ chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + ']>' + this.writer.endline(node, this.writerOptions, this.currentLevel);
+ }
+ this.writerOptions.state = WriterState.None;
+ this.onData(chunk, this.currentLevel);
+ return node.isClosed = true;
+ }
+ };
+
+ XMLDocumentCB.prototype.onData = function(chunk, level) {
+ this.documentStarted = true;
+ return this.onDataCallback(chunk, level + 1);
+ };
+
+ XMLDocumentCB.prototype.onEnd = function() {
+ this.documentCompleted = true;
+ return this.onEndCallback();
};
- XMLDOMConfiguration.prototype.setParameter = function(name, value) {
- if (value != null) {
- return this.params[name] = value;
+ XMLDocumentCB.prototype.debugInfo = function(name) {
+ if (name == null) {
+ return "";
} else {
- return delete this.params[name];
+ return "node: <" + name + ">";
}
};
- return XMLDOMConfiguration;
-
- })();
-
-}).call(this);
+ XMLDocumentCB.prototype.ele = function() {
+ return this.element.apply(this, arguments);
+ };
+ XMLDocumentCB.prototype.nod = function(name, attributes, text) {
+ return this.node(name, attributes, text);
+ };
-/***/ }),
+ XMLDocumentCB.prototype.txt = function(value) {
+ return this.text(value);
+ };
-/***/ 6744:
-/***/ (function(module) {
+ XMLDocumentCB.prototype.dat = function(value) {
+ return this.cdata(value);
+ };
-// Generated by CoffeeScript 1.12.7
-(function() {
- var XMLDOMErrorHandler;
+ XMLDocumentCB.prototype.com = function(value) {
+ return this.comment(value);
+ };
- module.exports = XMLDOMErrorHandler = (function() {
- function XMLDOMErrorHandler() {}
+ XMLDocumentCB.prototype.ins = function(target, value) {
+ return this.instruction(target, value);
+ };
- XMLDOMErrorHandler.prototype.handleError = function(error) {
- throw new Error(error);
+ XMLDocumentCB.prototype.dec = function(version, encoding, standalone) {
+ return this.declaration(version, encoding, standalone);
};
- return XMLDOMErrorHandler;
+ XMLDocumentCB.prototype.dtd = function(root, pubID, sysID) {
+ return this.doctype(root, pubID, sysID);
+ };
- })();
+ XMLDocumentCB.prototype.e = function(name, attributes, text) {
+ return this.element(name, attributes, text);
+ };
-}).call(this);
+ XMLDocumentCB.prototype.n = function(name, attributes, text) {
+ return this.node(name, attributes, text);
+ };
+ XMLDocumentCB.prototype.t = function(value) {
+ return this.text(value);
+ };
-/***/ }),
+ XMLDocumentCB.prototype.d = function(value) {
+ return this.cdata(value);
+ };
-/***/ 8310:
-/***/ (function(module) {
+ XMLDocumentCB.prototype.c = function(value) {
+ return this.comment(value);
+ };
-// Generated by CoffeeScript 1.12.7
-(function() {
- var XMLDOMImplementation;
+ XMLDocumentCB.prototype.r = function(value) {
+ return this.raw(value);
+ };
- module.exports = XMLDOMImplementation = (function() {
- function XMLDOMImplementation() {}
+ XMLDocumentCB.prototype.i = function(target, value) {
+ return this.instruction(target, value);
+ };
- XMLDOMImplementation.prototype.hasFeature = function(feature, version) {
- return true;
+ XMLDocumentCB.prototype.att = function() {
+ if (this.currentNode && this.currentNode.type === NodeType.DocType) {
+ return this.attList.apply(this, arguments);
+ } else {
+ return this.attribute.apply(this, arguments);
+ }
};
- XMLDOMImplementation.prototype.createDocumentType = function(qualifiedName, publicId, systemId) {
- throw new Error("This DOM method is not implemented.");
+ XMLDocumentCB.prototype.a = function() {
+ if (this.currentNode && this.currentNode.type === NodeType.DocType) {
+ return this.attList.apply(this, arguments);
+ } else {
+ return this.attribute.apply(this, arguments);
+ }
};
- XMLDOMImplementation.prototype.createDocument = function(namespaceURI, qualifiedName, doctype) {
- throw new Error("This DOM method is not implemented.");
+ XMLDocumentCB.prototype.ent = function(name, value) {
+ return this.entity(name, value);
};
- XMLDOMImplementation.prototype.createHTMLDocument = function(title) {
- throw new Error("This DOM method is not implemented.");
+ XMLDocumentCB.prototype.pent = function(name, value) {
+ return this.pEntity(name, value);
};
- XMLDOMImplementation.prototype.getFeature = function(feature, version) {
- throw new Error("This DOM method is not implemented.");
+ XMLDocumentCB.prototype.not = function(name, value) {
+ return this.notation(name, value);
};
- return XMLDOMImplementation;
+ return XMLDocumentCB;
})();
@@ -64014,244 +94367,341 @@ module.exports = v4;
/***/ }),
-/***/ 7028:
-/***/ (function(module) {
+/***/ 3590:
+/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
// Generated by CoffeeScript 1.12.7
(function() {
- var XMLDOMStringList;
+ var NodeType, XMLDummy, XMLNode,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
- module.exports = XMLDOMStringList = (function() {
- function XMLDOMStringList(arr) {
- this.arr = arr || [];
- }
+ XMLNode = __nccwpck_require__(7608);
- Object.defineProperty(XMLDOMStringList.prototype, 'length', {
- get: function() {
- return this.arr.length;
- }
- });
+ NodeType = __nccwpck_require__(9267);
- XMLDOMStringList.prototype.item = function(index) {
- return this.arr[index] || null;
+ module.exports = XMLDummy = (function(superClass) {
+ extend(XMLDummy, superClass);
+
+ function XMLDummy(parent) {
+ XMLDummy.__super__.constructor.call(this, parent);
+ this.type = NodeType.Dummy;
+ }
+
+ XMLDummy.prototype.clone = function() {
+ return Object.create(this);
};
- XMLDOMStringList.prototype.contains = function(str) {
- return this.arr.indexOf(str) !== -1;
+ XMLDummy.prototype.toString = function(options) {
+ return '';
};
- return XMLDOMStringList;
+ return XMLDummy;
- })();
+ })(XMLNode);
}).call(this);
/***/ }),
-/***/ 1015:
+/***/ 9437:
/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
// Generated by CoffeeScript 1.12.7
(function() {
- var NodeType, XMLDTDAttList, XMLNode,
+ var NodeType, XMLAttribute, XMLElement, XMLNamedNodeMap, XMLNode, getValue, isFunction, isObject, ref,
extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
hasProp = {}.hasOwnProperty;
+ ref = __nccwpck_require__(8229), isObject = ref.isObject, isFunction = ref.isFunction, getValue = ref.getValue;
+
XMLNode = __nccwpck_require__(7608);
NodeType = __nccwpck_require__(9267);
- module.exports = XMLDTDAttList = (function(superClass) {
- extend(XMLDTDAttList, superClass);
+ XMLAttribute = __nccwpck_require__(8376);
- function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) {
- XMLDTDAttList.__super__.constructor.call(this, parent);
- if (elementName == null) {
- throw new Error("Missing DTD element name. " + this.debugInfo());
+ XMLNamedNodeMap = __nccwpck_require__(4361);
+
+ module.exports = XMLElement = (function(superClass) {
+ extend(XMLElement, superClass);
+
+ function XMLElement(parent, name, attributes) {
+ var child, j, len, ref1;
+ XMLElement.__super__.constructor.call(this, parent);
+ if (name == null) {
+ throw new Error("Missing element name. " + this.debugInfo());
}
- if (attributeName == null) {
- throw new Error("Missing DTD attribute name. " + this.debugInfo(elementName));
+ this.name = this.stringify.name(name);
+ this.type = NodeType.Element;
+ this.attribs = {};
+ this.schemaTypeInfo = null;
+ if (attributes != null) {
+ this.attribute(attributes);
}
- if (!attributeType) {
- throw new Error("Missing DTD attribute type. " + this.debugInfo(elementName));
+ if (parent.type === NodeType.Document) {
+ this.isRoot = true;
+ this.documentObject = parent;
+ parent.rootObject = this;
+ if (parent.children) {
+ ref1 = parent.children;
+ for (j = 0, len = ref1.length; j < len; j++) {
+ child = ref1[j];
+ if (child.type === NodeType.DocType) {
+ child.name = this.name;
+ break;
+ }
+ }
+ }
}
- if (!defaultValueType) {
- throw new Error("Missing DTD attribute default. " + this.debugInfo(elementName));
+ }
+
+ Object.defineProperty(XMLElement.prototype, 'tagName', {
+ get: function() {
+ return this.name;
}
- if (defaultValueType.indexOf('#') !== 0) {
- defaultValueType = '#' + defaultValueType;
+ });
+
+ Object.defineProperty(XMLElement.prototype, 'namespaceURI', {
+ get: function() {
+ return '';
}
- if (!defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) {
- throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT. " + this.debugInfo(elementName));
+ });
+
+ Object.defineProperty(XMLElement.prototype, 'prefix', {
+ get: function() {
+ return '';
}
- if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) {
- throw new Error("Default value only applies to #FIXED or #DEFAULT. " + this.debugInfo(elementName));
+ });
+
+ Object.defineProperty(XMLElement.prototype, 'localName', {
+ get: function() {
+ return this.name;
}
- this.elementName = this.stringify.name(elementName);
- this.type = NodeType.AttributeDeclaration;
- this.attributeName = this.stringify.name(attributeName);
- this.attributeType = this.stringify.dtdAttType(attributeType);
- if (defaultValue) {
- this.defaultValue = this.stringify.dtdAttDefault(defaultValue);
+ });
+
+ Object.defineProperty(XMLElement.prototype, 'id', {
+ get: function() {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
}
- this.defaultValueType = defaultValueType;
- }
+ });
- XMLDTDAttList.prototype.toString = function(options) {
- return this.options.writer.dtdAttList(this, this.options.writer.filterOptions(options));
- };
+ Object.defineProperty(XMLElement.prototype, 'className', {
+ get: function() {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ }
+ });
- return XMLDTDAttList;
+ Object.defineProperty(XMLElement.prototype, 'classList', {
+ get: function() {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ }
+ });
- })(XMLNode);
+ Object.defineProperty(XMLElement.prototype, 'attributes', {
+ get: function() {
+ if (!this.attributeMap || !this.attributeMap.nodes) {
+ this.attributeMap = new XMLNamedNodeMap(this.attribs);
+ }
+ return this.attributeMap;
+ }
+ });
-}).call(this);
+ XMLElement.prototype.clone = function() {
+ var att, attName, clonedSelf, ref1;
+ clonedSelf = Object.create(this);
+ if (clonedSelf.isRoot) {
+ clonedSelf.documentObject = null;
+ }
+ clonedSelf.attribs = {};
+ ref1 = this.attribs;
+ for (attName in ref1) {
+ if (!hasProp.call(ref1, attName)) continue;
+ att = ref1[attName];
+ clonedSelf.attribs[attName] = att.clone();
+ }
+ clonedSelf.children = [];
+ this.children.forEach(function(child) {
+ var clonedChild;
+ clonedChild = child.clone();
+ clonedChild.parent = clonedSelf;
+ return clonedSelf.children.push(clonedChild);
+ });
+ return clonedSelf;
+ };
+ XMLElement.prototype.attribute = function(name, value) {
+ var attName, attValue;
+ if (name != null) {
+ name = getValue(name);
+ }
+ if (isObject(name)) {
+ for (attName in name) {
+ if (!hasProp.call(name, attName)) continue;
+ attValue = name[attName];
+ this.attribute(attName, attValue);
+ }
+ } else {
+ if (isFunction(value)) {
+ value = value.apply();
+ }
+ if (this.options.keepNullAttributes && (value == null)) {
+ this.attribs[name] = new XMLAttribute(this, name, "");
+ } else if (value != null) {
+ this.attribs[name] = new XMLAttribute(this, name, value);
+ }
+ }
+ return this;
+ };
-/***/ }),
+ XMLElement.prototype.removeAttribute = function(name) {
+ var attName, j, len;
+ if (name == null) {
+ throw new Error("Missing attribute name. " + this.debugInfo());
+ }
+ name = getValue(name);
+ if (Array.isArray(name)) {
+ for (j = 0, len = name.length; j < len; j++) {
+ attName = name[j];
+ delete this.attribs[attName];
+ }
+ } else {
+ delete this.attribs[name];
+ }
+ return this;
+ };
-/***/ 2421:
-/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
+ XMLElement.prototype.toString = function(options) {
+ return this.options.writer.element(this, this.options.writer.filterOptions(options));
+ };
-// Generated by CoffeeScript 1.12.7
-(function() {
- var NodeType, XMLDTDElement, XMLNode,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
+ XMLElement.prototype.att = function(name, value) {
+ return this.attribute(name, value);
+ };
- XMLNode = __nccwpck_require__(7608);
+ XMLElement.prototype.a = function(name, value) {
+ return this.attribute(name, value);
+ };
- NodeType = __nccwpck_require__(9267);
+ XMLElement.prototype.getAttribute = function(name) {
+ if (this.attribs.hasOwnProperty(name)) {
+ return this.attribs[name].value;
+ } else {
+ return null;
+ }
+ };
- module.exports = XMLDTDElement = (function(superClass) {
- extend(XMLDTDElement, superClass);
+ XMLElement.prototype.setAttribute = function(name, value) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- function XMLDTDElement(parent, name, value) {
- XMLDTDElement.__super__.constructor.call(this, parent);
- if (name == null) {
- throw new Error("Missing DTD element name. " + this.debugInfo());
- }
- if (!value) {
- value = '(#PCDATA)';
- }
- if (Array.isArray(value)) {
- value = '(' + value.join(',') + ')';
+ XMLElement.prototype.getAttributeNode = function(name) {
+ if (this.attribs.hasOwnProperty(name)) {
+ return this.attribs[name];
+ } else {
+ return null;
}
- this.name = this.stringify.name(name);
- this.type = NodeType.ElementDeclaration;
- this.value = this.stringify.dtdElementValue(value);
- }
-
- XMLDTDElement.prototype.toString = function(options) {
- return this.options.writer.dtdElement(this, this.options.writer.filterOptions(options));
};
- return XMLDTDElement;
+ XMLElement.prototype.setAttributeNode = function(newAttr) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- })(XMLNode);
+ XMLElement.prototype.removeAttributeNode = function(oldAttr) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
-}).call(this);
+ XMLElement.prototype.getElementsByTagName = function(name) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
+ XMLElement.prototype.getAttributeNS = function(namespaceURI, localName) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
-/***/ }),
+ XMLElement.prototype.setAttributeNS = function(namespaceURI, qualifiedName, value) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
-/***/ 53:
-/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
+ XMLElement.prototype.removeAttributeNS = function(namespaceURI, localName) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
-// Generated by CoffeeScript 1.12.7
-(function() {
- var NodeType, XMLDTDEntity, XMLNode, isObject,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
+ XMLElement.prototype.getAttributeNodeNS = function(namespaceURI, localName) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- isObject = (__nccwpck_require__(8229).isObject);
+ XMLElement.prototype.setAttributeNodeNS = function(newAttr) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- XMLNode = __nccwpck_require__(7608);
+ XMLElement.prototype.getElementsByTagNameNS = function(namespaceURI, localName) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- NodeType = __nccwpck_require__(9267);
+ XMLElement.prototype.hasAttribute = function(name) {
+ return this.attribs.hasOwnProperty(name);
+ };
- module.exports = XMLDTDEntity = (function(superClass) {
- extend(XMLDTDEntity, superClass);
+ XMLElement.prototype.hasAttributeNS = function(namespaceURI, localName) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- function XMLDTDEntity(parent, pe, name, value) {
- XMLDTDEntity.__super__.constructor.call(this, parent);
- if (name == null) {
- throw new Error("Missing DTD entity name. " + this.debugInfo(name));
- }
- if (value == null) {
- throw new Error("Missing DTD entity value. " + this.debugInfo(name));
- }
- this.pe = !!pe;
- this.name = this.stringify.name(name);
- this.type = NodeType.EntityDeclaration;
- if (!isObject(value)) {
- this.value = this.stringify.dtdEntityValue(value);
- this.internal = true;
+ XMLElement.prototype.setIdAttribute = function(name, isId) {
+ if (this.attribs.hasOwnProperty(name)) {
+ return this.attribs[name].isId;
} else {
- if (!value.pubID && !value.sysID) {
- throw new Error("Public and/or system identifiers are required for an external entity. " + this.debugInfo(name));
- }
- if (value.pubID && !value.sysID) {
- throw new Error("System identifier is required for a public external entity. " + this.debugInfo(name));
- }
- this.internal = false;
- if (value.pubID != null) {
- this.pubID = this.stringify.dtdPubID(value.pubID);
- }
- if (value.sysID != null) {
- this.sysID = this.stringify.dtdSysID(value.sysID);
- }
- if (value.nData != null) {
- this.nData = this.stringify.dtdNData(value.nData);
- }
- if (this.pe && this.nData) {
- throw new Error("Notation declaration is not allowed in a parameter entity. " + this.debugInfo(name));
- }
+ return isId;
}
- }
+ };
- Object.defineProperty(XMLDTDEntity.prototype, 'publicId', {
- get: function() {
- return this.pubID;
- }
- });
+ XMLElement.prototype.setIdAttributeNS = function(namespaceURI, localName, isId) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- Object.defineProperty(XMLDTDEntity.prototype, 'systemId', {
- get: function() {
- return this.sysID;
- }
- });
+ XMLElement.prototype.setIdAttributeNode = function(idAttr, isId) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- Object.defineProperty(XMLDTDEntity.prototype, 'notationName', {
- get: function() {
- return this.nData || null;
- }
- });
+ XMLElement.prototype.getElementsByTagName = function(tagname) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
- Object.defineProperty(XMLDTDEntity.prototype, 'inputEncoding', {
- get: function() {
- return null;
+ XMLElement.prototype.getElementsByTagNameNS = function(namespaceURI, localName) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
+
+ XMLElement.prototype.getElementsByClassName = function(classNames) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
+ };
+
+ XMLElement.prototype.isEqualNode = function(node) {
+ var i, j, ref1;
+ if (!XMLElement.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {
+ return false;
+ }
+ if (node.namespaceURI !== this.namespaceURI) {
+ return false;
+ }
+ if (node.prefix !== this.prefix) {
+ return false;
+ }
+ if (node.localName !== this.localName) {
+ return false;
}
- });
-
- Object.defineProperty(XMLDTDEntity.prototype, 'xmlEncoding', {
- get: function() {
- return null;
+ if (node.attribs.length !== this.attribs.length) {
+ return false;
}
- });
-
- Object.defineProperty(XMLDTDEntity.prototype, 'xmlVersion', {
- get: function() {
- return null;
+ for (i = j = 0, ref1 = this.attribs.length - 1; 0 <= ref1 ? j <= ref1 : j >= ref1; i = 0 <= ref1 ? ++j : --j) {
+ if (!this.attribs[i].isEqualNode(node.attribs[i])) {
+ return false;
+ }
}
- });
-
- XMLDTDEntity.prototype.toString = function(options) {
- return this.options.writer.dtdEntity(this, this.options.writer.filterOptions(options));
+ return true;
};
- return XMLDTDEntity;
+ return XMLElement;
})(XMLNode);
@@ -64260,1492 +94710,1971 @@ module.exports = v4;
/***/ }),
-/***/ 2837:
-/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
+/***/ 4361:
+/***/ (function(module) {
// Generated by CoffeeScript 1.12.7
(function() {
- var NodeType, XMLDTDNotation, XMLNode,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
-
- XMLNode = __nccwpck_require__(7608);
-
- NodeType = __nccwpck_require__(9267);
-
- module.exports = XMLDTDNotation = (function(superClass) {
- extend(XMLDTDNotation, superClass);
+ var XMLNamedNodeMap;
- function XMLDTDNotation(parent, name, value) {
- XMLDTDNotation.__super__.constructor.call(this, parent);
- if (name == null) {
- throw new Error("Missing DTD notation name. " + this.debugInfo(name));
- }
- if (!value.pubID && !value.sysID) {
- throw new Error("Public or system identifiers are required for an external entity. " + this.debugInfo(name));
- }
- this.name = this.stringify.name(name);
- this.type = NodeType.NotationDeclaration;
- if (value.pubID != null) {
- this.pubID = this.stringify.dtdPubID(value.pubID);
- }
- if (value.sysID != null) {
- this.sysID = this.stringify.dtdSysID(value.sysID);
- }
+ module.exports = XMLNamedNodeMap = (function() {
+ function XMLNamedNodeMap(nodes) {
+ this.nodes = nodes;
}
- Object.defineProperty(XMLDTDNotation.prototype, 'publicId', {
- get: function() {
- return this.pubID;
- }
- });
-
- Object.defineProperty(XMLDTDNotation.prototype, 'systemId', {
+ Object.defineProperty(XMLNamedNodeMap.prototype, 'length', {
get: function() {
- return this.sysID;
+ return Object.keys(this.nodes).length || 0;
}
});
- XMLDTDNotation.prototype.toString = function(options) {
- return this.options.writer.dtdNotation(this, this.options.writer.filterOptions(options));
+ XMLNamedNodeMap.prototype.clone = function() {
+ return this.nodes = null;
};
- return XMLDTDNotation;
-
- })(XMLNode);
-
-}).call(this);
-
-
-/***/ }),
-
-/***/ 6364:
-/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
-
-// Generated by CoffeeScript 1.12.7
-(function() {
- var NodeType, XMLDeclaration, XMLNode, isObject,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
+ XMLNamedNodeMap.prototype.getNamedItem = function(name) {
+ return this.nodes[name];
+ };
- isObject = (__nccwpck_require__(8229).isObject);
+ XMLNamedNodeMap.prototype.setNamedItem = function(node) {
+ var oldNode;
+ oldNode = this.nodes[node.nodeName];
+ this.nodes[node.nodeName] = node;
+ return oldNode || null;
+ };
- XMLNode = __nccwpck_require__(7608);
+ XMLNamedNodeMap.prototype.removeNamedItem = function(name) {
+ var oldNode;
+ oldNode = this.nodes[name];
+ delete this.nodes[name];
+ return oldNode || null;
+ };
- NodeType = __nccwpck_require__(9267);
+ XMLNamedNodeMap.prototype.item = function(index) {
+ return this.nodes[Object.keys(this.nodes)[index]] || null;
+ };
- module.exports = XMLDeclaration = (function(superClass) {
- extend(XMLDeclaration, superClass);
+ XMLNamedNodeMap.prototype.getNamedItemNS = function(namespaceURI, localName) {
+ throw new Error("This DOM method is not implemented.");
+ };
- function XMLDeclaration(parent, version, encoding, standalone) {
- var ref;
- XMLDeclaration.__super__.constructor.call(this, parent);
- if (isObject(version)) {
- ref = version, version = ref.version, encoding = ref.encoding, standalone = ref.standalone;
- }
- if (!version) {
- version = '1.0';
- }
- this.type = NodeType.Declaration;
- this.version = this.stringify.xmlVersion(version);
- if (encoding != null) {
- this.encoding = this.stringify.xmlEncoding(encoding);
- }
- if (standalone != null) {
- this.standalone = this.stringify.xmlStandalone(standalone);
- }
- }
+ XMLNamedNodeMap.prototype.setNamedItemNS = function(node) {
+ throw new Error("This DOM method is not implemented.");
+ };
- XMLDeclaration.prototype.toString = function(options) {
- return this.options.writer.declaration(this, this.options.writer.filterOptions(options));
+ XMLNamedNodeMap.prototype.removeNamedItemNS = function(namespaceURI, localName) {
+ throw new Error("This DOM method is not implemented.");
};
- return XMLDeclaration;
+ return XMLNamedNodeMap;
- })(XMLNode);
+ })();
}).call(this);
/***/ }),
-/***/ 1801:
+/***/ 7608:
/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
// Generated by CoffeeScript 1.12.7
(function() {
- var NodeType, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLNamedNodeMap, XMLNode, isObject,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ var DocumentPosition, NodeType, XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLDummy, XMLElement, XMLNamedNodeMap, XMLNode, XMLNodeList, XMLProcessingInstruction, XMLRaw, XMLText, getValue, isEmpty, isFunction, isObject, ref1,
hasProp = {}.hasOwnProperty;
- isObject = (__nccwpck_require__(8229).isObject);
+ ref1 = __nccwpck_require__(8229), isObject = ref1.isObject, isFunction = ref1.isFunction, isEmpty = ref1.isEmpty, getValue = ref1.getValue;
- XMLNode = __nccwpck_require__(7608);
+ XMLElement = null;
- NodeType = __nccwpck_require__(9267);
+ XMLCData = null;
- XMLDTDAttList = __nccwpck_require__(1015);
+ XMLComment = null;
- XMLDTDEntity = __nccwpck_require__(53);
+ XMLDeclaration = null;
- XMLDTDElement = __nccwpck_require__(2421);
+ XMLDocType = null;
- XMLDTDNotation = __nccwpck_require__(2837);
+ XMLRaw = null;
- XMLNamedNodeMap = __nccwpck_require__(4361);
+ XMLText = null;
- module.exports = XMLDocType = (function(superClass) {
- extend(XMLDocType, superClass);
+ XMLProcessingInstruction = null;
- function XMLDocType(parent, pubID, sysID) {
- var child, i, len, ref, ref1, ref2;
- XMLDocType.__super__.constructor.call(this, parent);
- this.type = NodeType.DocType;
- if (parent.children) {
- ref = parent.children;
- for (i = 0, len = ref.length; i < len; i++) {
- child = ref[i];
- if (child.type === NodeType.Element) {
- this.name = child.name;
- break;
- }
- }
+ XMLDummy = null;
+
+ NodeType = null;
+
+ XMLNodeList = null;
+
+ XMLNamedNodeMap = null;
+
+ DocumentPosition = null;
+
+ module.exports = XMLNode = (function() {
+ function XMLNode(parent1) {
+ this.parent = parent1;
+ if (this.parent) {
+ this.options = this.parent.options;
+ this.stringify = this.parent.stringify;
}
- this.documentObject = parent;
- if (isObject(pubID)) {
- ref1 = pubID, pubID = ref1.pubID, sysID = ref1.sysID;
+ this.value = null;
+ this.children = [];
+ this.baseURI = null;
+ if (!XMLElement) {
+ XMLElement = __nccwpck_require__(9437);
+ XMLCData = __nccwpck_require__(333);
+ XMLComment = __nccwpck_require__(4407);
+ XMLDeclaration = __nccwpck_require__(6364);
+ XMLDocType = __nccwpck_require__(1801);
+ XMLRaw = __nccwpck_require__(6329);
+ XMLText = __nccwpck_require__(1318);
+ XMLProcessingInstruction = __nccwpck_require__(6939);
+ XMLDummy = __nccwpck_require__(3590);
+ NodeType = __nccwpck_require__(9267);
+ XMLNodeList = __nccwpck_require__(6768);
+ XMLNamedNodeMap = __nccwpck_require__(4361);
+ DocumentPosition = __nccwpck_require__(2839);
}
- if (sysID == null) {
- ref2 = [pubID, sysID], sysID = ref2[0], pubID = ref2[1];
+ }
+
+ Object.defineProperty(XMLNode.prototype, 'nodeName', {
+ get: function() {
+ return this.name;
}
- if (pubID != null) {
- this.pubID = this.stringify.dtdPubID(pubID);
+ });
+
+ Object.defineProperty(XMLNode.prototype, 'nodeType', {
+ get: function() {
+ return this.type;
}
- if (sysID != null) {
- this.sysID = this.stringify.dtdSysID(sysID);
+ });
+
+ Object.defineProperty(XMLNode.prototype, 'nodeValue', {
+ get: function() {
+ return this.value;
}
- }
+ });
- Object.defineProperty(XMLDocType.prototype, 'entities', {
+ Object.defineProperty(XMLNode.prototype, 'parentNode', {
get: function() {
- var child, i, len, nodes, ref;
- nodes = {};
- ref = this.children;
- for (i = 0, len = ref.length; i < len; i++) {
- child = ref[i];
- if ((child.type === NodeType.EntityDeclaration) && !child.pe) {
- nodes[child.name] = child;
- }
- }
- return new XMLNamedNodeMap(nodes);
+ return this.parent;
}
});
- Object.defineProperty(XMLDocType.prototype, 'notations', {
+ Object.defineProperty(XMLNode.prototype, 'childNodes', {
get: function() {
- var child, i, len, nodes, ref;
- nodes = {};
- ref = this.children;
- for (i = 0, len = ref.length; i < len; i++) {
- child = ref[i];
- if (child.type === NodeType.NotationDeclaration) {
- nodes[child.name] = child;
- }
+ if (!this.childNodeList || !this.childNodeList.nodes) {
+ this.childNodeList = new XMLNodeList(this.children);
}
- return new XMLNamedNodeMap(nodes);
+ return this.childNodeList;
}
});
- Object.defineProperty(XMLDocType.prototype, 'publicId', {
+ Object.defineProperty(XMLNode.prototype, 'firstChild', {
get: function() {
- return this.pubID;
+ return this.children[0] || null;
}
});
- Object.defineProperty(XMLDocType.prototype, 'systemId', {
+ Object.defineProperty(XMLNode.prototype, 'lastChild', {
get: function() {
- return this.sysID;
+ return this.children[this.children.length - 1] || null;
}
});
- Object.defineProperty(XMLDocType.prototype, 'internalSubset', {
+ Object.defineProperty(XMLNode.prototype, 'previousSibling', {
+ get: function() {
+ var i;
+ i = this.parent.children.indexOf(this);
+ return this.parent.children[i - 1] || null;
+ }
+ });
+
+ Object.defineProperty(XMLNode.prototype, 'nextSibling', {
+ get: function() {
+ var i;
+ i = this.parent.children.indexOf(this);
+ return this.parent.children[i + 1] || null;
+ }
+ });
+
+ Object.defineProperty(XMLNode.prototype, 'ownerDocument', {
+ get: function() {
+ return this.document() || null;
+ }
+ });
+
+ Object.defineProperty(XMLNode.prototype, 'textContent', {
get: function() {
+ var child, j, len, ref2, str;
+ if (this.nodeType === NodeType.Element || this.nodeType === NodeType.DocumentFragment) {
+ str = '';
+ ref2 = this.children;
+ for (j = 0, len = ref2.length; j < len; j++) {
+ child = ref2[j];
+ if (child.textContent) {
+ str += child.textContent;
+ }
+ }
+ return str;
+ } else {
+ return null;
+ }
+ },
+ set: function(value) {
throw new Error("This DOM method is not implemented." + this.debugInfo());
}
});
- XMLDocType.prototype.element = function(name, value) {
- var child;
- child = new XMLDTDElement(this, name, value);
- this.children.push(child);
- return this;
+ XMLNode.prototype.setParent = function(parent) {
+ var child, j, len, ref2, results;
+ this.parent = parent;
+ if (parent) {
+ this.options = parent.options;
+ this.stringify = parent.stringify;
+ }
+ ref2 = this.children;
+ results = [];
+ for (j = 0, len = ref2.length; j < len; j++) {
+ child = ref2[j];
+ results.push(child.setParent(this));
+ }
+ return results;
};
- XMLDocType.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {
- var child;
- child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);
+ XMLNode.prototype.element = function(name, attributes, text) {
+ var childNode, item, j, k, key, lastChild, len, len1, ref2, ref3, val;
+ lastChild = null;
+ if (attributes === null && (text == null)) {
+ ref2 = [{}, null], attributes = ref2[0], text = ref2[1];
+ }
+ if (attributes == null) {
+ attributes = {};
+ }
+ attributes = getValue(attributes);
+ if (!isObject(attributes)) {
+ ref3 = [attributes, text], text = ref3[0], attributes = ref3[1];
+ }
+ if (name != null) {
+ name = getValue(name);
+ }
+ if (Array.isArray(name)) {
+ for (j = 0, len = name.length; j < len; j++) {
+ item = name[j];
+ lastChild = this.element(item);
+ }
+ } else if (isFunction(name)) {
+ lastChild = this.element(name.apply());
+ } else if (isObject(name)) {
+ for (key in name) {
+ if (!hasProp.call(name, key)) continue;
+ val = name[key];
+ if (isFunction(val)) {
+ val = val.apply();
+ }
+ if (!this.options.ignoreDecorators && this.stringify.convertAttKey && key.indexOf(this.stringify.convertAttKey) === 0) {
+ lastChild = this.attribute(key.substr(this.stringify.convertAttKey.length), val);
+ } else if (!this.options.separateArrayItems && Array.isArray(val) && isEmpty(val)) {
+ lastChild = this.dummy();
+ } else if (isObject(val) && isEmpty(val)) {
+ lastChild = this.element(key);
+ } else if (!this.options.keepNullNodes && (val == null)) {
+ lastChild = this.dummy();
+ } else if (!this.options.separateArrayItems && Array.isArray(val)) {
+ for (k = 0, len1 = val.length; k < len1; k++) {
+ item = val[k];
+ childNode = {};
+ childNode[key] = item;
+ lastChild = this.element(childNode);
+ }
+ } else if (isObject(val)) {
+ if (!this.options.ignoreDecorators && this.stringify.convertTextKey && key.indexOf(this.stringify.convertTextKey) === 0) {
+ lastChild = this.element(val);
+ } else {
+ lastChild = this.element(key);
+ lastChild.element(val);
+ }
+ } else {
+ lastChild = this.element(key, val);
+ }
+ }
+ } else if (!this.options.keepNullNodes && text === null) {
+ lastChild = this.dummy();
+ } else {
+ if (!this.options.ignoreDecorators && this.stringify.convertTextKey && name.indexOf(this.stringify.convertTextKey) === 0) {
+ lastChild = this.text(text);
+ } else if (!this.options.ignoreDecorators && this.stringify.convertCDataKey && name.indexOf(this.stringify.convertCDataKey) === 0) {
+ lastChild = this.cdata(text);
+ } else if (!this.options.ignoreDecorators && this.stringify.convertCommentKey && name.indexOf(this.stringify.convertCommentKey) === 0) {
+ lastChild = this.comment(text);
+ } else if (!this.options.ignoreDecorators && this.stringify.convertRawKey && name.indexOf(this.stringify.convertRawKey) === 0) {
+ lastChild = this.raw(text);
+ } else if (!this.options.ignoreDecorators && this.stringify.convertPIKey && name.indexOf(this.stringify.convertPIKey) === 0) {
+ lastChild = this.instruction(name.substr(this.stringify.convertPIKey.length), text);
+ } else {
+ lastChild = this.node(name, attributes, text);
+ }
+ }
+ if (lastChild == null) {
+ throw new Error("Could not create any elements with: " + name + ". " + this.debugInfo());
+ }
+ return lastChild;
+ };
+
+ XMLNode.prototype.insertBefore = function(name, attributes, text) {
+ var child, i, newChild, refChild, removed;
+ if (name != null ? name.type : void 0) {
+ newChild = name;
+ refChild = attributes;
+ newChild.setParent(this);
+ if (refChild) {
+ i = children.indexOf(refChild);
+ removed = children.splice(i);
+ children.push(newChild);
+ Array.prototype.push.apply(children, removed);
+ } else {
+ children.push(newChild);
+ }
+ return newChild;
+ } else {
+ if (this.isRoot) {
+ throw new Error("Cannot insert elements at root level. " + this.debugInfo(name));
+ }
+ i = this.parent.children.indexOf(this);
+ removed = this.parent.children.splice(i);
+ child = this.parent.element(name, attributes, text);
+ Array.prototype.push.apply(this.parent.children, removed);
+ return child;
+ }
+ };
+
+ XMLNode.prototype.insertAfter = function(name, attributes, text) {
+ var child, i, removed;
+ if (this.isRoot) {
+ throw new Error("Cannot insert elements at root level. " + this.debugInfo(name));
+ }
+ i = this.parent.children.indexOf(this);
+ removed = this.parent.children.splice(i + 1);
+ child = this.parent.element(name, attributes, text);
+ Array.prototype.push.apply(this.parent.children, removed);
+ return child;
+ };
+
+ XMLNode.prototype.remove = function() {
+ var i, ref2;
+ if (this.isRoot) {
+ throw new Error("Cannot remove the root element. " + this.debugInfo());
+ }
+ i = this.parent.children.indexOf(this);
+ [].splice.apply(this.parent.children, [i, i - i + 1].concat(ref2 = [])), ref2;
+ return this.parent;
+ };
+
+ XMLNode.prototype.node = function(name, attributes, text) {
+ var child, ref2;
+ if (name != null) {
+ name = getValue(name);
+ }
+ attributes || (attributes = {});
+ attributes = getValue(attributes);
+ if (!isObject(attributes)) {
+ ref2 = [attributes, text], text = ref2[0], attributes = ref2[1];
+ }
+ child = new XMLElement(this, name, attributes);
+ if (text != null) {
+ child.text(text);
+ }
this.children.push(child);
- return this;
+ return child;
};
- XMLDocType.prototype.entity = function(name, value) {
+ XMLNode.prototype.text = function(value) {
var child;
- child = new XMLDTDEntity(this, false, name, value);
+ if (isObject(value)) {
+ this.element(value);
+ }
+ child = new XMLText(this, value);
this.children.push(child);
return this;
};
- XMLDocType.prototype.pEntity = function(name, value) {
+ XMLNode.prototype.cdata = function(value) {
var child;
- child = new XMLDTDEntity(this, true, name, value);
+ child = new XMLCData(this, value);
this.children.push(child);
return this;
};
- XMLDocType.prototype.notation = function(name, value) {
+ XMLNode.prototype.comment = function(value) {
var child;
- child = new XMLDTDNotation(this, name, value);
+ child = new XMLComment(this, value);
this.children.push(child);
return this;
};
- XMLDocType.prototype.toString = function(options) {
- return this.options.writer.docType(this, this.options.writer.filterOptions(options));
- };
-
- XMLDocType.prototype.ele = function(name, value) {
- return this.element(name, value);
- };
-
- XMLDocType.prototype.att = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {
- return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue);
- };
-
- XMLDocType.prototype.ent = function(name, value) {
- return this.entity(name, value);
+ XMLNode.prototype.commentBefore = function(value) {
+ var child, i, removed;
+ i = this.parent.children.indexOf(this);
+ removed = this.parent.children.splice(i);
+ child = this.parent.comment(value);
+ Array.prototype.push.apply(this.parent.children, removed);
+ return this;
};
- XMLDocType.prototype.pent = function(name, value) {
- return this.pEntity(name, value);
+ XMLNode.prototype.commentAfter = function(value) {
+ var child, i, removed;
+ i = this.parent.children.indexOf(this);
+ removed = this.parent.children.splice(i + 1);
+ child = this.parent.comment(value);
+ Array.prototype.push.apply(this.parent.children, removed);
+ return this;
};
- XMLDocType.prototype.not = function(name, value) {
- return this.notation(name, value);
+ XMLNode.prototype.raw = function(value) {
+ var child;
+ child = new XMLRaw(this, value);
+ this.children.push(child);
+ return this;
};
- XMLDocType.prototype.up = function() {
- return this.root() || this.documentObject;
+ XMLNode.prototype.dummy = function() {
+ var child;
+ child = new XMLDummy(this);
+ return child;
};
- XMLDocType.prototype.isEqualNode = function(node) {
- if (!XMLDocType.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {
- return false;
- }
- if (node.name !== this.name) {
- return false;
+ XMLNode.prototype.instruction = function(target, value) {
+ var insTarget, insValue, instruction, j, len;
+ if (target != null) {
+ target = getValue(target);
}
- if (node.publicId !== this.publicId) {
- return false;
+ if (value != null) {
+ value = getValue(value);
}
- if (node.systemId !== this.systemId) {
- return false;
+ if (Array.isArray(target)) {
+ for (j = 0, len = target.length; j < len; j++) {
+ insTarget = target[j];
+ this.instruction(insTarget);
+ }
+ } else if (isObject(target)) {
+ for (insTarget in target) {
+ if (!hasProp.call(target, insTarget)) continue;
+ insValue = target[insTarget];
+ this.instruction(insTarget, insValue);
+ }
+ } else {
+ if (isFunction(value)) {
+ value = value.apply();
+ }
+ instruction = new XMLProcessingInstruction(this, target, value);
+ this.children.push(instruction);
}
- return true;
+ return this;
};
- return XMLDocType;
-
- })(XMLNode);
-
-}).call(this);
-
-
-/***/ }),
-
-/***/ 3730:
-/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
-
-// Generated by CoffeeScript 1.12.7
-(function() {
- var NodeType, XMLDOMConfiguration, XMLDOMImplementation, XMLDocument, XMLNode, XMLStringWriter, XMLStringifier, isPlainObject,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
-
- isPlainObject = (__nccwpck_require__(8229).isPlainObject);
-
- XMLDOMImplementation = __nccwpck_require__(8310);
-
- XMLDOMConfiguration = __nccwpck_require__(7465);
-
- XMLNode = __nccwpck_require__(7608);
-
- NodeType = __nccwpck_require__(9267);
-
- XMLStringifier = __nccwpck_require__(8594);
-
- XMLStringWriter = __nccwpck_require__(5913);
+ XMLNode.prototype.instructionBefore = function(target, value) {
+ var child, i, removed;
+ i = this.parent.children.indexOf(this);
+ removed = this.parent.children.splice(i);
+ child = this.parent.instruction(target, value);
+ Array.prototype.push.apply(this.parent.children, removed);
+ return this;
+ };
- module.exports = XMLDocument = (function(superClass) {
- extend(XMLDocument, superClass);
+ XMLNode.prototype.instructionAfter = function(target, value) {
+ var child, i, removed;
+ i = this.parent.children.indexOf(this);
+ removed = this.parent.children.splice(i + 1);
+ child = this.parent.instruction(target, value);
+ Array.prototype.push.apply(this.parent.children, removed);
+ return this;
+ };
- function XMLDocument(options) {
- XMLDocument.__super__.constructor.call(this, null);
- this.name = "#document";
- this.type = NodeType.Document;
- this.documentURI = null;
- this.domConfig = new XMLDOMConfiguration();
- options || (options = {});
- if (!options.writer) {
- options.writer = new XMLStringWriter();
+ XMLNode.prototype.declaration = function(version, encoding, standalone) {
+ var doc, xmldec;
+ doc = this.document();
+ xmldec = new XMLDeclaration(doc, version, encoding, standalone);
+ if (doc.children.length === 0) {
+ doc.children.unshift(xmldec);
+ } else if (doc.children[0].type === NodeType.Declaration) {
+ doc.children[0] = xmldec;
+ } else {
+ doc.children.unshift(xmldec);
}
- this.options = options;
- this.stringify = new XMLStringifier(options);
- }
-
- Object.defineProperty(XMLDocument.prototype, 'implementation', {
- value: new XMLDOMImplementation()
- });
+ return doc.root() || doc;
+ };
- Object.defineProperty(XMLDocument.prototype, 'doctype', {
- get: function() {
- var child, i, len, ref;
- ref = this.children;
- for (i = 0, len = ref.length; i < len; i++) {
- child = ref[i];
- if (child.type === NodeType.DocType) {
- return child;
- }
+ XMLNode.prototype.dtd = function(pubID, sysID) {
+ var child, doc, doctype, i, j, k, len, len1, ref2, ref3;
+ doc = this.document();
+ doctype = new XMLDocType(doc, pubID, sysID);
+ ref2 = doc.children;
+ for (i = j = 0, len = ref2.length; j < len; i = ++j) {
+ child = ref2[i];
+ if (child.type === NodeType.DocType) {
+ doc.children[i] = doctype;
+ return doctype;
}
- return null;
- }
- });
-
- Object.defineProperty(XMLDocument.prototype, 'documentElement', {
- get: function() {
- return this.rootObject || null;
- }
- });
-
- Object.defineProperty(XMLDocument.prototype, 'inputEncoding', {
- get: function() {
- return null;
}
- });
-
- Object.defineProperty(XMLDocument.prototype, 'strictErrorChecking', {
- get: function() {
- return false;
+ ref3 = doc.children;
+ for (i = k = 0, len1 = ref3.length; k < len1; i = ++k) {
+ child = ref3[i];
+ if (child.isRoot) {
+ doc.children.splice(i, 0, doctype);
+ return doctype;
+ }
}
- });
+ doc.children.push(doctype);
+ return doctype;
+ };
- Object.defineProperty(XMLDocument.prototype, 'xmlEncoding', {
- get: function() {
- if (this.children.length !== 0 && this.children[0].type === NodeType.Declaration) {
- return this.children[0].encoding;
- } else {
- return null;
- }
+ XMLNode.prototype.up = function() {
+ if (this.isRoot) {
+ throw new Error("The root node has no parent. Use doc() if you need to get the document object.");
}
- });
+ return this.parent;
+ };
- Object.defineProperty(XMLDocument.prototype, 'xmlStandalone', {
- get: function() {
- if (this.children.length !== 0 && this.children[0].type === NodeType.Declaration) {
- return this.children[0].standalone === 'yes';
+ XMLNode.prototype.root = function() {
+ var node;
+ node = this;
+ while (node) {
+ if (node.type === NodeType.Document) {
+ return node.rootObject;
+ } else if (node.isRoot) {
+ return node;
} else {
- return false;
+ node = node.parent;
}
}
- });
+ };
- Object.defineProperty(XMLDocument.prototype, 'xmlVersion', {
- get: function() {
- if (this.children.length !== 0 && this.children[0].type === NodeType.Declaration) {
- return this.children[0].version;
+ XMLNode.prototype.document = function() {
+ var node;
+ node = this;
+ while (node) {
+ if (node.type === NodeType.Document) {
+ return node;
} else {
- return "1.0";
+ node = node.parent;
}
}
- });
-
- Object.defineProperty(XMLDocument.prototype, 'URL', {
- get: function() {
- return this.documentURI;
- }
- });
+ };
- Object.defineProperty(XMLDocument.prototype, 'origin', {
- get: function() {
- return null;
- }
- });
+ XMLNode.prototype.end = function(options) {
+ return this.document().end(options);
+ };
- Object.defineProperty(XMLDocument.prototype, 'compatMode', {
- get: function() {
- return null;
+ XMLNode.prototype.prev = function() {
+ var i;
+ i = this.parent.children.indexOf(this);
+ if (i < 1) {
+ throw new Error("Already at the first node. " + this.debugInfo());
}
- });
+ return this.parent.children[i - 1];
+ };
- Object.defineProperty(XMLDocument.prototype, 'characterSet', {
- get: function() {
- return null;
+ XMLNode.prototype.next = function() {
+ var i;
+ i = this.parent.children.indexOf(this);
+ if (i === -1 || i === this.parent.children.length - 1) {
+ throw new Error("Already at the last node. " + this.debugInfo());
}
- });
+ return this.parent.children[i + 1];
+ };
- Object.defineProperty(XMLDocument.prototype, 'contentType', {
- get: function() {
- return null;
- }
- });
+ XMLNode.prototype.importDocument = function(doc) {
+ var clonedRoot;
+ clonedRoot = doc.root().clone();
+ clonedRoot.parent = this;
+ clonedRoot.isRoot = false;
+ this.children.push(clonedRoot);
+ return this;
+ };
- XMLDocument.prototype.end = function(writer) {
- var writerOptions;
- writerOptions = {};
- if (!writer) {
- writer = this.options.writer;
- } else if (isPlainObject(writer)) {
- writerOptions = writer;
- writer = this.options.writer;
+ XMLNode.prototype.debugInfo = function(name) {
+ var ref2, ref3;
+ name = name || this.name;
+ if ((name == null) && !((ref2 = this.parent) != null ? ref2.name : void 0)) {
+ return "";
+ } else if (name == null) {
+ return "parent: <" + this.parent.name + ">";
+ } else if (!((ref3 = this.parent) != null ? ref3.name : void 0)) {
+ return "node: <" + name + ">";
+ } else {
+ return "node: <" + name + ">, parent: <" + this.parent.name + ">";
}
- return writer.document(this, writer.filterOptions(writerOptions));
};
- XMLDocument.prototype.toString = function(options) {
- return this.options.writer.document(this, this.options.writer.filterOptions(options));
+ XMLNode.prototype.ele = function(name, attributes, text) {
+ return this.element(name, attributes, text);
};
- XMLDocument.prototype.createElement = function(tagName) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLNode.prototype.nod = function(name, attributes, text) {
+ return this.node(name, attributes, text);
};
- XMLDocument.prototype.createDocumentFragment = function() {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLNode.prototype.txt = function(value) {
+ return this.text(value);
};
- XMLDocument.prototype.createTextNode = function(data) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLNode.prototype.dat = function(value) {
+ return this.cdata(value);
};
- XMLDocument.prototype.createComment = function(data) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLNode.prototype.com = function(value) {
+ return this.comment(value);
};
- XMLDocument.prototype.createCDATASection = function(data) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLNode.prototype.ins = function(target, value) {
+ return this.instruction(target, value);
};
- XMLDocument.prototype.createProcessingInstruction = function(target, data) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLNode.prototype.doc = function() {
+ return this.document();
};
- XMLDocument.prototype.createAttribute = function(name) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLNode.prototype.dec = function(version, encoding, standalone) {
+ return this.declaration(version, encoding, standalone);
};
- XMLDocument.prototype.createEntityReference = function(name) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLNode.prototype.e = function(name, attributes, text) {
+ return this.element(name, attributes, text);
};
- XMLDocument.prototype.getElementsByTagName = function(tagname) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLNode.prototype.n = function(name, attributes, text) {
+ return this.node(name, attributes, text);
};
- XMLDocument.prototype.importNode = function(importedNode, deep) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLNode.prototype.t = function(value) {
+ return this.text(value);
};
- XMLDocument.prototype.createElementNS = function(namespaceURI, qualifiedName) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLNode.prototype.d = function(value) {
+ return this.cdata(value);
};
- XMLDocument.prototype.createAttributeNS = function(namespaceURI, qualifiedName) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLNode.prototype.c = function(value) {
+ return this.comment(value);
};
- XMLDocument.prototype.getElementsByTagNameNS = function(namespaceURI, localName) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLNode.prototype.r = function(value) {
+ return this.raw(value);
};
- XMLDocument.prototype.getElementById = function(elementId) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLNode.prototype.i = function(target, value) {
+ return this.instruction(target, value);
};
- XMLDocument.prototype.adoptNode = function(source) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLNode.prototype.u = function() {
+ return this.up();
};
- XMLDocument.prototype.normalizeDocument = function() {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLNode.prototype.importXMLBuilder = function(doc) {
+ return this.importDocument(doc);
};
- XMLDocument.prototype.renameNode = function(node, namespaceURI, qualifiedName) {
+ XMLNode.prototype.replaceChild = function(newChild, oldChild) {
throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- XMLDocument.prototype.getElementsByClassName = function(classNames) {
+ XMLNode.prototype.removeChild = function(oldChild) {
throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- XMLDocument.prototype.createEvent = function(eventInterface) {
+ XMLNode.prototype.appendChild = function(newChild) {
throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- XMLDocument.prototype.createRange = function() {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLNode.prototype.hasChildNodes = function() {
+ return this.children.length !== 0;
};
- XMLDocument.prototype.createNodeIterator = function(root, whatToShow, filter) {
+ XMLNode.prototype.cloneNode = function(deep) {
throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- XMLDocument.prototype.createTreeWalker = function(root, whatToShow, filter) {
+ XMLNode.prototype.normalize = function() {
throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- return XMLDocument;
-
- })(XMLNode);
-
-}).call(this);
-
-
-/***/ }),
-
-/***/ 7356:
-/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
-
-// Generated by CoffeeScript 1.12.7
-(function() {
- var NodeType, WriterState, XMLAttribute, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDocument, XMLDocumentCB, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLStringifier, XMLText, getValue, isFunction, isObject, isPlainObject, ref,
- hasProp = {}.hasOwnProperty;
-
- ref = __nccwpck_require__(8229), isObject = ref.isObject, isFunction = ref.isFunction, isPlainObject = ref.isPlainObject, getValue = ref.getValue;
-
- NodeType = __nccwpck_require__(9267);
-
- XMLDocument = __nccwpck_require__(3730);
-
- XMLElement = __nccwpck_require__(9437);
-
- XMLCData = __nccwpck_require__(333);
-
- XMLComment = __nccwpck_require__(4407);
-
- XMLRaw = __nccwpck_require__(6329);
-
- XMLText = __nccwpck_require__(1318);
-
- XMLProcessingInstruction = __nccwpck_require__(6939);
-
- XMLDeclaration = __nccwpck_require__(6364);
-
- XMLDocType = __nccwpck_require__(1801);
-
- XMLDTDAttList = __nccwpck_require__(1015);
-
- XMLDTDEntity = __nccwpck_require__(53);
-
- XMLDTDElement = __nccwpck_require__(2421);
-
- XMLDTDNotation = __nccwpck_require__(2837);
-
- XMLAttribute = __nccwpck_require__(8376);
-
- XMLStringifier = __nccwpck_require__(8594);
-
- XMLStringWriter = __nccwpck_require__(5913);
-
- WriterState = __nccwpck_require__(9766);
-
- module.exports = XMLDocumentCB = (function() {
- function XMLDocumentCB(options, onData, onEnd) {
- var writerOptions;
- this.name = "?xml";
- this.type = NodeType.Document;
- options || (options = {});
- writerOptions = {};
- if (!options.writer) {
- options.writer = new XMLStringWriter();
- } else if (isPlainObject(options.writer)) {
- writerOptions = options.writer;
- options.writer = new XMLStringWriter();
- }
- this.options = options;
- this.writer = options.writer;
- this.writerOptions = this.writer.filterOptions(writerOptions);
- this.stringify = new XMLStringifier(options);
- this.onDataCallback = onData || function() {};
- this.onEndCallback = onEnd || function() {};
- this.currentNode = null;
- this.currentLevel = -1;
- this.openTags = {};
- this.documentStarted = false;
- this.documentCompleted = false;
- this.root = null;
- }
-
- XMLDocumentCB.prototype.createChildNode = function(node) {
- var att, attName, attributes, child, i, len, ref1, ref2;
- switch (node.type) {
- case NodeType.CData:
- this.cdata(node.value);
- break;
- case NodeType.Comment:
- this.comment(node.value);
- break;
- case NodeType.Element:
- attributes = {};
- ref1 = node.attribs;
- for (attName in ref1) {
- if (!hasProp.call(ref1, attName)) continue;
- att = ref1[attName];
- attributes[attName] = att.value;
- }
- this.node(node.name, attributes);
- break;
- case NodeType.Dummy:
- this.dummy();
- break;
- case NodeType.Raw:
- this.raw(node.value);
- break;
- case NodeType.Text:
- this.text(node.value);
- break;
- case NodeType.ProcessingInstruction:
- this.instruction(node.target, node.value);
- break;
- default:
- throw new Error("This XML node type is not supported in a JS object: " + node.constructor.name);
- }
- ref2 = node.children;
- for (i = 0, len = ref2.length; i < len; i++) {
- child = ref2[i];
- this.createChildNode(child);
- if (child.type === NodeType.Element) {
- this.up();
- }
- }
- return this;
- };
-
- XMLDocumentCB.prototype.dummy = function() {
- return this;
+ XMLNode.prototype.isSupported = function(feature, version) {
+ return true;
};
- XMLDocumentCB.prototype.node = function(name, attributes, text) {
- var ref1;
- if (name == null) {
- throw new Error("Missing node name.");
- }
- if (this.root && this.currentLevel === -1) {
- throw new Error("Document can only have one root node. " + this.debugInfo(name));
- }
- this.openCurrent();
- name = getValue(name);
- if (attributes == null) {
- attributes = {};
- }
- attributes = getValue(attributes);
- if (!isObject(attributes)) {
- ref1 = [attributes, text], text = ref1[0], attributes = ref1[1];
- }
- this.currentNode = new XMLElement(this, name, attributes);
- this.currentNode.children = false;
- this.currentLevel++;
- this.openTags[this.currentLevel] = this.currentNode;
- if (text != null) {
- this.text(text);
- }
- return this;
+ XMLNode.prototype.hasAttributes = function() {
+ return this.attribs.length !== 0;
};
- XMLDocumentCB.prototype.element = function(name, attributes, text) {
- var child, i, len, oldValidationFlag, ref1, root;
- if (this.currentNode && this.currentNode.type === NodeType.DocType) {
- this.dtdElement.apply(this, arguments);
- } else {
- if (Array.isArray(name) || isObject(name) || isFunction(name)) {
- oldValidationFlag = this.options.noValidation;
- this.options.noValidation = true;
- root = new XMLDocument(this.options).element('TEMP_ROOT');
- root.element(name);
- this.options.noValidation = oldValidationFlag;
- ref1 = root.children;
- for (i = 0, len = ref1.length; i < len; i++) {
- child = ref1[i];
- this.createChildNode(child);
- if (child.type === NodeType.Element) {
- this.up();
- }
- }
+ XMLNode.prototype.compareDocumentPosition = function(other) {
+ var ref, res;
+ ref = this;
+ if (ref === other) {
+ return 0;
+ } else if (this.document() !== other.document()) {
+ res = DocumentPosition.Disconnected | DocumentPosition.ImplementationSpecific;
+ if (Math.random() < 0.5) {
+ res |= DocumentPosition.Preceding;
} else {
- this.node(name, attributes, text);
- }
- }
- return this;
- };
-
- XMLDocumentCB.prototype.attribute = function(name, value) {
- var attName, attValue;
- if (!this.currentNode || this.currentNode.children) {
- throw new Error("att() can only be used immediately after an ele() call in callback mode. " + this.debugInfo(name));
- }
- if (name != null) {
- name = getValue(name);
- }
- if (isObject(name)) {
- for (attName in name) {
- if (!hasProp.call(name, attName)) continue;
- attValue = name[attName];
- this.attribute(attName, attValue);
+ res |= DocumentPosition.Following;
}
+ return res;
+ } else if (ref.isAncestor(other)) {
+ return DocumentPosition.Contains | DocumentPosition.Preceding;
+ } else if (ref.isDescendant(other)) {
+ return DocumentPosition.Contains | DocumentPosition.Following;
+ } else if (ref.isPreceding(other)) {
+ return DocumentPosition.Preceding;
} else {
- if (isFunction(value)) {
- value = value.apply();
- }
- if (this.options.keepNullAttributes && (value == null)) {
- this.currentNode.attribs[name] = new XMLAttribute(this, name, "");
- } else if (value != null) {
- this.currentNode.attribs[name] = new XMLAttribute(this, name, value);
- }
+ return DocumentPosition.Following;
}
- return this;
};
- XMLDocumentCB.prototype.text = function(value) {
- var node;
- this.openCurrent();
- node = new XMLText(this, value);
- this.onData(this.writer.text(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
- return this;
+ XMLNode.prototype.isSameNode = function(other) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- XMLDocumentCB.prototype.cdata = function(value) {
- var node;
- this.openCurrent();
- node = new XMLCData(this, value);
- this.onData(this.writer.cdata(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
- return this;
+ XMLNode.prototype.lookupPrefix = function(namespaceURI) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- XMLDocumentCB.prototype.comment = function(value) {
- var node;
- this.openCurrent();
- node = new XMLComment(this, value);
- this.onData(this.writer.comment(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
- return this;
+ XMLNode.prototype.isDefaultNamespace = function(namespaceURI) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- XMLDocumentCB.prototype.raw = function(value) {
- var node;
- this.openCurrent();
- node = new XMLRaw(this, value);
- this.onData(this.writer.raw(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
- return this;
+ XMLNode.prototype.lookupNamespaceURI = function(prefix) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- XMLDocumentCB.prototype.instruction = function(target, value) {
- var i, insTarget, insValue, len, node;
- this.openCurrent();
- if (target != null) {
- target = getValue(target);
+ XMLNode.prototype.isEqualNode = function(node) {
+ var i, j, ref2;
+ if (node.nodeType !== this.nodeType) {
+ return false;
}
- if (value != null) {
- value = getValue(value);
+ if (node.children.length !== this.children.length) {
+ return false;
}
- if (Array.isArray(target)) {
- for (i = 0, len = target.length; i < len; i++) {
- insTarget = target[i];
- this.instruction(insTarget);
- }
- } else if (isObject(target)) {
- for (insTarget in target) {
- if (!hasProp.call(target, insTarget)) continue;
- insValue = target[insTarget];
- this.instruction(insTarget, insValue);
- }
- } else {
- if (isFunction(value)) {
- value = value.apply();
+ for (i = j = 0, ref2 = this.children.length - 1; 0 <= ref2 ? j <= ref2 : j >= ref2; i = 0 <= ref2 ? ++j : --j) {
+ if (!this.children[i].isEqualNode(node.children[i])) {
+ return false;
}
- node = new XMLProcessingInstruction(this, target, value);
- this.onData(this.writer.processingInstruction(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
- }
- return this;
- };
-
- XMLDocumentCB.prototype.declaration = function(version, encoding, standalone) {
- var node;
- this.openCurrent();
- if (this.documentStarted) {
- throw new Error("declaration() must be the first node.");
}
- node = new XMLDeclaration(this, version, encoding, standalone);
- this.onData(this.writer.declaration(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
- return this;
+ return true;
};
- XMLDocumentCB.prototype.doctype = function(root, pubID, sysID) {
- this.openCurrent();
- if (root == null) {
- throw new Error("Missing root node name.");
- }
- if (this.root) {
- throw new Error("dtd() must come before the root node.");
- }
- this.currentNode = new XMLDocType(this, pubID, sysID);
- this.currentNode.rootNodeName = root;
- this.currentNode.children = false;
- this.currentLevel++;
- this.openTags[this.currentLevel] = this.currentNode;
- return this;
+ XMLNode.prototype.getFeature = function(feature, version) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- XMLDocumentCB.prototype.dtdElement = function(name, value) {
- var node;
- this.openCurrent();
- node = new XMLDTDElement(this, name, value);
- this.onData(this.writer.dtdElement(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
- return this;
+ XMLNode.prototype.setUserData = function(key, data, handler) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- XMLDocumentCB.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {
- var node;
- this.openCurrent();
- node = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);
- this.onData(this.writer.dtdAttList(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
- return this;
+ XMLNode.prototype.getUserData = function(key) {
+ throw new Error("This DOM method is not implemented." + this.debugInfo());
};
- XMLDocumentCB.prototype.entity = function(name, value) {
- var node;
- this.openCurrent();
- node = new XMLDTDEntity(this, false, name, value);
- this.onData(this.writer.dtdEntity(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
- return this;
+ XMLNode.prototype.contains = function(other) {
+ if (!other) {
+ return false;
+ }
+ return other === this || this.isDescendant(other);
};
- XMLDocumentCB.prototype.pEntity = function(name, value) {
- var node;
- this.openCurrent();
- node = new XMLDTDEntity(this, true, name, value);
- this.onData(this.writer.dtdEntity(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
- return this;
+ XMLNode.prototype.isDescendant = function(node) {
+ var child, isDescendantChild, j, len, ref2;
+ ref2 = this.children;
+ for (j = 0, len = ref2.length; j < len; j++) {
+ child = ref2[j];
+ if (node === child) {
+ return true;
+ }
+ isDescendantChild = child.isDescendant(node);
+ if (isDescendantChild) {
+ return true;
+ }
+ }
+ return false;
};
- XMLDocumentCB.prototype.notation = function(name, value) {
- var node;
- this.openCurrent();
- node = new XMLDTDNotation(this, name, value);
- this.onData(this.writer.dtdNotation(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);
- return this;
+ XMLNode.prototype.isAncestor = function(node) {
+ return node.isDescendant(this);
};
- XMLDocumentCB.prototype.up = function() {
- if (this.currentLevel < 0) {
- throw new Error("The document node has no parent.");
- }
- if (this.currentNode) {
- if (this.currentNode.children) {
- this.closeNode(this.currentNode);
- } else {
- this.openNode(this.currentNode);
- }
- this.currentNode = null;
+ XMLNode.prototype.isPreceding = function(node) {
+ var nodePos, thisPos;
+ nodePos = this.treePosition(node);
+ thisPos = this.treePosition(this);
+ if (nodePos === -1 || thisPos === -1) {
+ return false;
} else {
- this.closeNode(this.openTags[this.currentLevel]);
+ return nodePos < thisPos;
}
- delete this.openTags[this.currentLevel];
- this.currentLevel--;
- return this;
};
- XMLDocumentCB.prototype.end = function() {
- while (this.currentLevel >= 0) {
- this.up();
+ XMLNode.prototype.isFollowing = function(node) {
+ var nodePos, thisPos;
+ nodePos = this.treePosition(node);
+ thisPos = this.treePosition(this);
+ if (nodePos === -1 || thisPos === -1) {
+ return false;
+ } else {
+ return nodePos > thisPos;
}
- return this.onEnd();
};
- XMLDocumentCB.prototype.openCurrent = function() {
- if (this.currentNode) {
- this.currentNode.children = true;
- return this.openNode(this.currentNode);
+ XMLNode.prototype.treePosition = function(node) {
+ var found, pos;
+ pos = 0;
+ found = false;
+ this.foreachTreeNode(this.document(), function(childNode) {
+ pos++;
+ if (!found && childNode === node) {
+ return found = true;
+ }
+ });
+ if (found) {
+ return pos;
+ } else {
+ return -1;
}
};
- XMLDocumentCB.prototype.openNode = function(node) {
- var att, chunk, name, ref1;
- if (!node.isOpen) {
- if (!this.root && this.currentLevel === 0 && node.type === NodeType.Element) {
- this.root = node;
- }
- chunk = '';
- if (node.type === NodeType.Element) {
- this.writerOptions.state = WriterState.OpenTag;
- chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + '<' + node.name;
- ref1 = node.attribs;
- for (name in ref1) {
- if (!hasProp.call(ref1, name)) continue;
- att = ref1[name];
- chunk += this.writer.attribute(att, this.writerOptions, this.currentLevel);
- }
- chunk += (node.children ? '>' : '/>') + this.writer.endline(node, this.writerOptions, this.currentLevel);
- this.writerOptions.state = WriterState.InsideTag;
+ XMLNode.prototype.foreachTreeNode = function(node, func) {
+ var child, j, len, ref2, res;
+ node || (node = this.document());
+ ref2 = node.children;
+ for (j = 0, len = ref2.length; j < len; j++) {
+ child = ref2[j];
+ if (res = func(child)) {
+ return res;
} else {
- this.writerOptions.state = WriterState.OpenTag;
- chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + '';
+ res = this.foreachTreeNode(child, func);
+ if (res) {
+ return res;
}
- chunk += this.writer.endline(node, this.writerOptions, this.currentLevel);
}
- this.onData(chunk, this.currentLevel);
- return node.isOpen = true;
}
};
- XMLDocumentCB.prototype.closeNode = function(node) {
- var chunk;
- if (!node.isClosed) {
- chunk = '';
- this.writerOptions.state = WriterState.CloseTag;
- if (node.type === NodeType.Element) {
- chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + '' + node.name + '>' + this.writer.endline(node, this.writerOptions, this.currentLevel);
- } else {
- chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + ']>' + this.writer.endline(node, this.writerOptions, this.currentLevel);
- }
- this.writerOptions.state = WriterState.None;
- this.onData(chunk, this.currentLevel);
- return node.isClosed = true;
+ return XMLNode;
+
+ })();
+
+}).call(this);
+
+
+/***/ }),
+
+/***/ 6768:
+/***/ (function(module) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLNodeList;
+
+ module.exports = XMLNodeList = (function() {
+ function XMLNodeList(nodes) {
+ this.nodes = nodes;
+ }
+
+ Object.defineProperty(XMLNodeList.prototype, 'length', {
+ get: function() {
+ return this.nodes.length || 0;
}
- };
+ });
- XMLDocumentCB.prototype.onData = function(chunk, level) {
- this.documentStarted = true;
- return this.onDataCallback(chunk, level + 1);
+ XMLNodeList.prototype.clone = function() {
+ return this.nodes = null;
};
- XMLDocumentCB.prototype.onEnd = function() {
- this.documentCompleted = true;
- return this.onEndCallback();
+ XMLNodeList.prototype.item = function(index) {
+ return this.nodes[index] || null;
};
- XMLDocumentCB.prototype.debugInfo = function(name) {
- if (name == null) {
- return "";
- } else {
- return "node: <" + name + ">";
+ return XMLNodeList;
+
+ })();
+
+}).call(this);
+
+
+/***/ }),
+
+/***/ 6939:
+/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var NodeType, XMLCharacterData, XMLProcessingInstruction,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ NodeType = __nccwpck_require__(9267);
+
+ XMLCharacterData = __nccwpck_require__(7709);
+
+ module.exports = XMLProcessingInstruction = (function(superClass) {
+ extend(XMLProcessingInstruction, superClass);
+
+ function XMLProcessingInstruction(parent, target, value) {
+ XMLProcessingInstruction.__super__.constructor.call(this, parent);
+ if (target == null) {
+ throw new Error("Missing instruction target. " + this.debugInfo());
+ }
+ this.type = NodeType.ProcessingInstruction;
+ this.target = this.stringify.insTarget(target);
+ this.name = this.target;
+ if (value) {
+ this.value = this.stringify.insValue(value);
}
+ }
+
+ XMLProcessingInstruction.prototype.clone = function() {
+ return Object.create(this);
};
- XMLDocumentCB.prototype.ele = function() {
- return this.element.apply(this, arguments);
+ XMLProcessingInstruction.prototype.toString = function(options) {
+ return this.options.writer.processingInstruction(this, this.options.writer.filterOptions(options));
};
- XMLDocumentCB.prototype.nod = function(name, attributes, text) {
- return this.node(name, attributes, text);
+ XMLProcessingInstruction.prototype.isEqualNode = function(node) {
+ if (!XMLProcessingInstruction.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {
+ return false;
+ }
+ if (node.target !== this.target) {
+ return false;
+ }
+ return true;
};
- XMLDocumentCB.prototype.txt = function(value) {
- return this.text(value);
+ return XMLProcessingInstruction;
+
+ })(XMLCharacterData);
+
+}).call(this);
+
+
+/***/ }),
+
+/***/ 6329:
+/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var NodeType, XMLNode, XMLRaw,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ NodeType = __nccwpck_require__(9267);
+
+ XMLNode = __nccwpck_require__(7608);
+
+ module.exports = XMLRaw = (function(superClass) {
+ extend(XMLRaw, superClass);
+
+ function XMLRaw(parent, text) {
+ XMLRaw.__super__.constructor.call(this, parent);
+ if (text == null) {
+ throw new Error("Missing raw text. " + this.debugInfo());
+ }
+ this.type = NodeType.Raw;
+ this.value = this.stringify.raw(text);
+ }
+
+ XMLRaw.prototype.clone = function() {
+ return Object.create(this);
};
- XMLDocumentCB.prototype.dat = function(value) {
- return this.cdata(value);
+ XMLRaw.prototype.toString = function(options) {
+ return this.options.writer.raw(this, this.options.writer.filterOptions(options));
};
- XMLDocumentCB.prototype.com = function(value) {
- return this.comment(value);
- };
+ return XMLRaw;
+
+ })(XMLNode);
+
+}).call(this);
+
+
+/***/ }),
+
+/***/ 8601:
+/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var NodeType, WriterState, XMLStreamWriter, XMLWriterBase,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ NodeType = __nccwpck_require__(9267);
+
+ XMLWriterBase = __nccwpck_require__(6752);
+
+ WriterState = __nccwpck_require__(9766);
+
+ module.exports = XMLStreamWriter = (function(superClass) {
+ extend(XMLStreamWriter, superClass);
+
+ function XMLStreamWriter(stream, options) {
+ this.stream = stream;
+ XMLStreamWriter.__super__.constructor.call(this, options);
+ }
- XMLDocumentCB.prototype.ins = function(target, value) {
- return this.instruction(target, value);
+ XMLStreamWriter.prototype.endline = function(node, options, level) {
+ if (node.isLastRootNode && options.state === WriterState.CloseTag) {
+ return '';
+ } else {
+ return XMLStreamWriter.__super__.endline.call(this, node, options, level);
+ }
};
- XMLDocumentCB.prototype.dec = function(version, encoding, standalone) {
- return this.declaration(version, encoding, standalone);
+ XMLStreamWriter.prototype.document = function(doc, options) {
+ var child, i, j, k, len, len1, ref, ref1, results;
+ ref = doc.children;
+ for (i = j = 0, len = ref.length; j < len; i = ++j) {
+ child = ref[i];
+ child.isLastRootNode = i === doc.children.length - 1;
+ }
+ options = this.filterOptions(options);
+ ref1 = doc.children;
+ results = [];
+ for (k = 0, len1 = ref1.length; k < len1; k++) {
+ child = ref1[k];
+ results.push(this.writeChildNode(child, options, 0));
+ }
+ return results;
};
- XMLDocumentCB.prototype.dtd = function(root, pubID, sysID) {
- return this.doctype(root, pubID, sysID);
+ XMLStreamWriter.prototype.attribute = function(att, options, level) {
+ return this.stream.write(XMLStreamWriter.__super__.attribute.call(this, att, options, level));
};
- XMLDocumentCB.prototype.e = function(name, attributes, text) {
- return this.element(name, attributes, text);
+ XMLStreamWriter.prototype.cdata = function(node, options, level) {
+ return this.stream.write(XMLStreamWriter.__super__.cdata.call(this, node, options, level));
};
- XMLDocumentCB.prototype.n = function(name, attributes, text) {
- return this.node(name, attributes, text);
+ XMLStreamWriter.prototype.comment = function(node, options, level) {
+ return this.stream.write(XMLStreamWriter.__super__.comment.call(this, node, options, level));
};
- XMLDocumentCB.prototype.t = function(value) {
- return this.text(value);
+ XMLStreamWriter.prototype.declaration = function(node, options, level) {
+ return this.stream.write(XMLStreamWriter.__super__.declaration.call(this, node, options, level));
};
- XMLDocumentCB.prototype.d = function(value) {
- return this.cdata(value);
+ XMLStreamWriter.prototype.docType = function(node, options, level) {
+ var child, j, len, ref;
+ level || (level = 0);
+ this.openNode(node, options, level);
+ options.state = WriterState.OpenTag;
+ this.stream.write(this.indent(node, options, level));
+ this.stream.write(' 0) {
+ this.stream.write(' [');
+ this.stream.write(this.endline(node, options, level));
+ options.state = WriterState.InsideTag;
+ ref = node.children;
+ for (j = 0, len = ref.length; j < len; j++) {
+ child = ref[j];
+ this.writeChildNode(child, options, level + 1);
+ }
+ options.state = WriterState.CloseTag;
+ this.stream.write(']');
+ }
+ options.state = WriterState.CloseTag;
+ this.stream.write(options.spaceBeforeSlash + '>');
+ this.stream.write(this.endline(node, options, level));
+ options.state = WriterState.None;
+ return this.closeNode(node, options, level);
};
- XMLDocumentCB.prototype.c = function(value) {
- return this.comment(value);
+ XMLStreamWriter.prototype.element = function(node, options, level) {
+ var att, child, childNodeCount, firstChildNode, j, len, name, prettySuppressed, ref, ref1;
+ level || (level = 0);
+ this.openNode(node, options, level);
+ options.state = WriterState.OpenTag;
+ this.stream.write(this.indent(node, options, level) + '<' + node.name);
+ ref = node.attribs;
+ for (name in ref) {
+ if (!hasProp.call(ref, name)) continue;
+ att = ref[name];
+ this.attribute(att, options, level);
+ }
+ childNodeCount = node.children.length;
+ firstChildNode = childNodeCount === 0 ? null : node.children[0];
+ if (childNodeCount === 0 || node.children.every(function(e) {
+ return (e.type === NodeType.Text || e.type === NodeType.Raw) && e.value === '';
+ })) {
+ if (options.allowEmpty) {
+ this.stream.write('>');
+ options.state = WriterState.CloseTag;
+ this.stream.write('' + node.name + '>');
+ } else {
+ options.state = WriterState.CloseTag;
+ this.stream.write(options.spaceBeforeSlash + '/>');
+ }
+ } else if (options.pretty && childNodeCount === 1 && (firstChildNode.type === NodeType.Text || firstChildNode.type === NodeType.Raw) && (firstChildNode.value != null)) {
+ this.stream.write('>');
+ options.state = WriterState.InsideTag;
+ options.suppressPrettyCount++;
+ prettySuppressed = true;
+ this.writeChildNode(firstChildNode, options, level + 1);
+ options.suppressPrettyCount--;
+ prettySuppressed = false;
+ options.state = WriterState.CloseTag;
+ this.stream.write('' + node.name + '>');
+ } else {
+ this.stream.write('>' + this.endline(node, options, level));
+ options.state = WriterState.InsideTag;
+ ref1 = node.children;
+ for (j = 0, len = ref1.length; j < len; j++) {
+ child = ref1[j];
+ this.writeChildNode(child, options, level + 1);
+ }
+ options.state = WriterState.CloseTag;
+ this.stream.write(this.indent(node, options, level) + '' + node.name + '>');
+ }
+ this.stream.write(this.endline(node, options, level));
+ options.state = WriterState.None;
+ return this.closeNode(node, options, level);
};
- XMLDocumentCB.prototype.r = function(value) {
- return this.raw(value);
+ XMLStreamWriter.prototype.processingInstruction = function(node, options, level) {
+ return this.stream.write(XMLStreamWriter.__super__.processingInstruction.call(this, node, options, level));
};
- XMLDocumentCB.prototype.i = function(target, value) {
- return this.instruction(target, value);
+ XMLStreamWriter.prototype.raw = function(node, options, level) {
+ return this.stream.write(XMLStreamWriter.__super__.raw.call(this, node, options, level));
};
- XMLDocumentCB.prototype.att = function() {
- if (this.currentNode && this.currentNode.type === NodeType.DocType) {
- return this.attList.apply(this, arguments);
- } else {
- return this.attribute.apply(this, arguments);
- }
+ XMLStreamWriter.prototype.text = function(node, options, level) {
+ return this.stream.write(XMLStreamWriter.__super__.text.call(this, node, options, level));
};
- XMLDocumentCB.prototype.a = function() {
- if (this.currentNode && this.currentNode.type === NodeType.DocType) {
- return this.attList.apply(this, arguments);
- } else {
- return this.attribute.apply(this, arguments);
- }
+ XMLStreamWriter.prototype.dtdAttList = function(node, options, level) {
+ return this.stream.write(XMLStreamWriter.__super__.dtdAttList.call(this, node, options, level));
};
- XMLDocumentCB.prototype.ent = function(name, value) {
- return this.entity(name, value);
+ XMLStreamWriter.prototype.dtdElement = function(node, options, level) {
+ return this.stream.write(XMLStreamWriter.__super__.dtdElement.call(this, node, options, level));
};
- XMLDocumentCB.prototype.pent = function(name, value) {
- return this.pEntity(name, value);
+ XMLStreamWriter.prototype.dtdEntity = function(node, options, level) {
+ return this.stream.write(XMLStreamWriter.__super__.dtdEntity.call(this, node, options, level));
};
- XMLDocumentCB.prototype.not = function(name, value) {
- return this.notation(name, value);
+ XMLStreamWriter.prototype.dtdNotation = function(node, options, level) {
+ return this.stream.write(XMLStreamWriter.__super__.dtdNotation.call(this, node, options, level));
};
- return XMLDocumentCB;
+ return XMLStreamWriter;
- })();
+ })(XMLWriterBase);
}).call(this);
/***/ }),
-/***/ 3590:
+/***/ 5913:
/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
// Generated by CoffeeScript 1.12.7
(function() {
- var NodeType, XMLDummy, XMLNode,
+ var XMLStringWriter, XMLWriterBase,
extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
hasProp = {}.hasOwnProperty;
- XMLNode = __nccwpck_require__(7608);
-
- NodeType = __nccwpck_require__(9267);
+ XMLWriterBase = __nccwpck_require__(6752);
- module.exports = XMLDummy = (function(superClass) {
- extend(XMLDummy, superClass);
+ module.exports = XMLStringWriter = (function(superClass) {
+ extend(XMLStringWriter, superClass);
- function XMLDummy(parent) {
- XMLDummy.__super__.constructor.call(this, parent);
- this.type = NodeType.Dummy;
+ function XMLStringWriter(options) {
+ XMLStringWriter.__super__.constructor.call(this, options);
}
- XMLDummy.prototype.clone = function() {
- return Object.create(this);
- };
-
- XMLDummy.prototype.toString = function(options) {
- return '';
+ XMLStringWriter.prototype.document = function(doc, options) {
+ var child, i, len, r, ref;
+ options = this.filterOptions(options);
+ r = '';
+ ref = doc.children;
+ for (i = 0, len = ref.length; i < len; i++) {
+ child = ref[i];
+ r += this.writeChildNode(child, options, 0);
+ }
+ if (options.pretty && r.slice(-options.newline.length) === options.newline) {
+ r = r.slice(0, -options.newline.length);
+ }
+ return r;
};
- return XMLDummy;
+ return XMLStringWriter;
- })(XMLNode);
+ })(XMLWriterBase);
}).call(this);
/***/ }),
-/***/ 9437:
-/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
+/***/ 8594:
+/***/ (function(module) {
// Generated by CoffeeScript 1.12.7
(function() {
- var NodeType, XMLAttribute, XMLElement, XMLNamedNodeMap, XMLNode, getValue, isFunction, isObject, ref,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ var XMLStringifier,
+ bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
hasProp = {}.hasOwnProperty;
- ref = __nccwpck_require__(8229), isObject = ref.isObject, isFunction = ref.isFunction, getValue = ref.getValue;
+ module.exports = XMLStringifier = (function() {
+ function XMLStringifier(options) {
+ this.assertLegalName = bind(this.assertLegalName, this);
+ this.assertLegalChar = bind(this.assertLegalChar, this);
+ var key, ref, value;
+ options || (options = {});
+ this.options = options;
+ if (!this.options.version) {
+ this.options.version = '1.0';
+ }
+ ref = options.stringify || {};
+ for (key in ref) {
+ if (!hasProp.call(ref, key)) continue;
+ value = ref[key];
+ this[key] = value;
+ }
+ }
- XMLNode = __nccwpck_require__(7608);
+ XMLStringifier.prototype.name = function(val) {
+ if (this.options.noValidation) {
+ return val;
+ }
+ return this.assertLegalName('' + val || '');
+ };
- NodeType = __nccwpck_require__(9267);
+ XMLStringifier.prototype.text = function(val) {
+ if (this.options.noValidation) {
+ return val;
+ }
+ return this.assertLegalChar(this.textEscape('' + val || ''));
+ };
- XMLAttribute = __nccwpck_require__(8376);
+ XMLStringifier.prototype.cdata = function(val) {
+ if (this.options.noValidation) {
+ return val;
+ }
+ val = '' + val || '';
+ val = val.replace(']]>', ']]]]>');
+ return this.assertLegalChar(val);
+ };
- XMLNamedNodeMap = __nccwpck_require__(4361);
+ XMLStringifier.prototype.comment = function(val) {
+ if (this.options.noValidation) {
+ return val;
+ }
+ val = '' + val || '';
+ if (val.match(/--/)) {
+ throw new Error("Comment text cannot contain double-hypen: " + val);
+ }
+ return this.assertLegalChar(val);
+ };
- module.exports = XMLElement = (function(superClass) {
- extend(XMLElement, superClass);
+ XMLStringifier.prototype.raw = function(val) {
+ if (this.options.noValidation) {
+ return val;
+ }
+ return '' + val || '';
+ };
- function XMLElement(parent, name, attributes) {
- var child, j, len, ref1;
- XMLElement.__super__.constructor.call(this, parent);
- if (name == null) {
- throw new Error("Missing element name. " + this.debugInfo());
+ XMLStringifier.prototype.attValue = function(val) {
+ if (this.options.noValidation) {
+ return val;
}
- this.name = this.stringify.name(name);
- this.type = NodeType.Element;
- this.attribs = {};
- this.schemaTypeInfo = null;
- if (attributes != null) {
- this.attribute(attributes);
+ return this.assertLegalChar(this.attEscape(val = '' + val || ''));
+ };
+
+ XMLStringifier.prototype.insTarget = function(val) {
+ if (this.options.noValidation) {
+ return val;
}
- if (parent.type === NodeType.Document) {
- this.isRoot = true;
- this.documentObject = parent;
- parent.rootObject = this;
- if (parent.children) {
- ref1 = parent.children;
- for (j = 0, len = ref1.length; j < len; j++) {
- child = ref1[j];
- if (child.type === NodeType.DocType) {
- child.name = this.name;
- break;
- }
- }
- }
+ return this.assertLegalChar('' + val || '');
+ };
+
+ XMLStringifier.prototype.insValue = function(val) {
+ if (this.options.noValidation) {
+ return val;
}
- }
+ val = '' + val || '';
+ if (val.match(/\?>/)) {
+ throw new Error("Invalid processing instruction value: " + val);
+ }
+ return this.assertLegalChar(val);
+ };
- Object.defineProperty(XMLElement.prototype, 'tagName', {
- get: function() {
- return this.name;
+ XMLStringifier.prototype.xmlVersion = function(val) {
+ if (this.options.noValidation) {
+ return val;
}
- });
+ val = '' + val || '';
+ if (!val.match(/1\.[0-9]+/)) {
+ throw new Error("Invalid version number: " + val);
+ }
+ return val;
+ };
- Object.defineProperty(XMLElement.prototype, 'namespaceURI', {
- get: function() {
- return '';
+ XMLStringifier.prototype.xmlEncoding = function(val) {
+ if (this.options.noValidation) {
+ return val;
}
- });
+ val = '' + val || '';
+ if (!val.match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/)) {
+ throw new Error("Invalid encoding: " + val);
+ }
+ return this.assertLegalChar(val);
+ };
- Object.defineProperty(XMLElement.prototype, 'prefix', {
- get: function() {
- return '';
+ XMLStringifier.prototype.xmlStandalone = function(val) {
+ if (this.options.noValidation) {
+ return val;
}
- });
+ if (val) {
+ return "yes";
+ } else {
+ return "no";
+ }
+ };
- Object.defineProperty(XMLElement.prototype, 'localName', {
- get: function() {
- return this.name;
+ XMLStringifier.prototype.dtdPubID = function(val) {
+ if (this.options.noValidation) {
+ return val;
}
- });
+ return this.assertLegalChar('' + val || '');
+ };
- Object.defineProperty(XMLElement.prototype, 'id', {
- get: function() {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLStringifier.prototype.dtdSysID = function(val) {
+ if (this.options.noValidation) {
+ return val;
}
- });
+ return this.assertLegalChar('' + val || '');
+ };
- Object.defineProperty(XMLElement.prototype, 'className', {
- get: function() {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLStringifier.prototype.dtdElementValue = function(val) {
+ if (this.options.noValidation) {
+ return val;
}
- });
+ return this.assertLegalChar('' + val || '');
+ };
- Object.defineProperty(XMLElement.prototype, 'classList', {
- get: function() {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLStringifier.prototype.dtdAttType = function(val) {
+ if (this.options.noValidation) {
+ return val;
}
- });
+ return this.assertLegalChar('' + val || '');
+ };
- Object.defineProperty(XMLElement.prototype, 'attributes', {
- get: function() {
- if (!this.attributeMap || !this.attributeMap.nodes) {
- this.attributeMap = new XMLNamedNodeMap(this.attribs);
- }
- return this.attributeMap;
+ XMLStringifier.prototype.dtdAttDefault = function(val) {
+ if (this.options.noValidation) {
+ return val;
}
- });
+ return this.assertLegalChar('' + val || '');
+ };
- XMLElement.prototype.clone = function() {
- var att, attName, clonedSelf, ref1;
- clonedSelf = Object.create(this);
- if (clonedSelf.isRoot) {
- clonedSelf.documentObject = null;
+ XMLStringifier.prototype.dtdEntityValue = function(val) {
+ if (this.options.noValidation) {
+ return val;
}
- clonedSelf.attribs = {};
- ref1 = this.attribs;
- for (attName in ref1) {
- if (!hasProp.call(ref1, attName)) continue;
- att = ref1[attName];
- clonedSelf.attribs[attName] = att.clone();
+ return this.assertLegalChar('' + val || '');
+ };
+
+ XMLStringifier.prototype.dtdNData = function(val) {
+ if (this.options.noValidation) {
+ return val;
}
- clonedSelf.children = [];
- this.children.forEach(function(child) {
- var clonedChild;
- clonedChild = child.clone();
- clonedChild.parent = clonedSelf;
- return clonedSelf.children.push(clonedChild);
- });
- return clonedSelf;
+ return this.assertLegalChar('' + val || '');
};
- XMLElement.prototype.attribute = function(name, value) {
- var attName, attValue;
- if (name != null) {
- name = getValue(name);
+ XMLStringifier.prototype.convertAttKey = '@';
+
+ XMLStringifier.prototype.convertPIKey = '?';
+
+ XMLStringifier.prototype.convertTextKey = '#text';
+
+ XMLStringifier.prototype.convertCDataKey = '#cdata';
+
+ XMLStringifier.prototype.convertCommentKey = '#comment';
+
+ XMLStringifier.prototype.convertRawKey = '#raw';
+
+ XMLStringifier.prototype.assertLegalChar = function(str) {
+ var regex, res;
+ if (this.options.noValidation) {
+ return str;
}
- if (isObject(name)) {
- for (attName in name) {
- if (!hasProp.call(name, attName)) continue;
- attValue = name[attName];
- this.attribute(attName, attValue);
- }
- } else {
- if (isFunction(value)) {
- value = value.apply();
+ regex = '';
+ if (this.options.version === '1.0') {
+ regex = /[\0-\x08\x0B\f\x0E-\x1F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
+ if (res = str.match(regex)) {
+ throw new Error("Invalid character in string: " + str + " at index " + res.index);
}
- if (this.options.keepNullAttributes && (value == null)) {
- this.attribs[name] = new XMLAttribute(this, name, "");
- } else if (value != null) {
- this.attribs[name] = new XMLAttribute(this, name, value);
+ } else if (this.options.version === '1.1') {
+ regex = /[\0\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
+ if (res = str.match(regex)) {
+ throw new Error("Invalid character in string: " + str + " at index " + res.index);
}
}
- return this;
+ return str;
};
- XMLElement.prototype.removeAttribute = function(name) {
- var attName, j, len;
- if (name == null) {
- throw new Error("Missing attribute name. " + this.debugInfo());
+ XMLStringifier.prototype.assertLegalName = function(str) {
+ var regex;
+ if (this.options.noValidation) {
+ return str;
}
- name = getValue(name);
- if (Array.isArray(name)) {
- for (j = 0, len = name.length; j < len; j++) {
- attName = name[j];
- delete this.attribs[attName];
- }
- } else {
- delete this.attribs[name];
+ this.assertLegalChar(str);
+ regex = /^([:A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])([\x2D\.0-:A-Z_a-z\xB7\xC0-\xD6\xD8-\xF6\xF8-\u037D\u037F-\u1FFF\u200C\u200D\u203F\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])*$/;
+ if (!str.match(regex)) {
+ throw new Error("Invalid character in name");
+ }
+ return str;
+ };
+
+ XMLStringifier.prototype.textEscape = function(str) {
+ var ampregex;
+ if (this.options.noValidation) {
+ return str;
}
- return this;
+ ampregex = this.options.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g;
+ return str.replace(ampregex, '&').replace(//g, '>').replace(/\r/g, '
');
};
- XMLElement.prototype.toString = function(options) {
- return this.options.writer.element(this, this.options.writer.filterOptions(options));
+ XMLStringifier.prototype.attEscape = function(str) {
+ var ampregex;
+ if (this.options.noValidation) {
+ return str;
+ }
+ ampregex = this.options.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g;
+ return str.replace(ampregex, '&').replace(/ 0) {
+ return new Array(indentLevel).join(options.indent);
+ }
+ }
+ return '';
};
- XMLElement.prototype.setIdAttributeNode = function(idAttr, isId) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLWriterBase.prototype.endline = function(node, options, level) {
+ if (!options.pretty || options.suppressPrettyCount) {
+ return '';
+ } else {
+ return options.newline;
+ }
};
- XMLElement.prototype.getElementsByTagName = function(tagname) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLWriterBase.prototype.attribute = function(att, options, level) {
+ var r;
+ this.openAttribute(att, options, level);
+ r = ' ' + att.name + '="' + att.value + '"';
+ this.closeAttribute(att, options, level);
+ return r;
};
- XMLElement.prototype.getElementsByTagNameNS = function(namespaceURI, localName) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLWriterBase.prototype.cdata = function(node, options, level) {
+ var r;
+ this.openNode(node, options, level);
+ options.state = WriterState.OpenTag;
+ r = this.indent(node, options, level) + '' + this.endline(node, options, level);
+ options.state = WriterState.None;
+ this.closeNode(node, options, level);
+ return r;
};
- XMLElement.prototype.getElementsByClassName = function(classNames) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ XMLWriterBase.prototype.comment = function(node, options, level) {
+ var r;
+ this.openNode(node, options, level);
+ options.state = WriterState.OpenTag;
+ r = this.indent(node, options, level) + '' + this.endline(node, options, level);
+ options.state = WriterState.None;
+ this.closeNode(node, options, level);
+ return r;
};
- XMLElement.prototype.isEqualNode = function(node) {
- var i, j, ref1;
- if (!XMLElement.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {
- return false;
+ XMLWriterBase.prototype.declaration = function(node, options, level) {
+ var r;
+ this.openNode(node, options, level);
+ options.state = WriterState.OpenTag;
+ r = this.indent(node, options, level) + '';
+ r += this.endline(node, options, level);
+ options.state = WriterState.None;
+ this.closeNode(node, options, level);
+ return r;
+ };
+
+ XMLWriterBase.prototype.docType = function(node, options, level) {
+ var child, i, len, r, ref;
+ level || (level = 0);
+ this.openNode(node, options, level);
+ options.state = WriterState.OpenTag;
+ r = this.indent(node, options, level);
+ r += ' 0) {
+ r += ' [';
+ r += this.endline(node, options, level);
+ options.state = WriterState.InsideTag;
+ ref = node.children;
+ for (i = 0, len = ref.length; i < len; i++) {
+ child = ref[i];
+ r += this.writeChildNode(child, options, level + 1);
+ }
+ options.state = WriterState.CloseTag;
+ r += ']';
}
- if (node.attribs.length !== this.attribs.length) {
- return false;
+ options.state = WriterState.CloseTag;
+ r += options.spaceBeforeSlash + '>';
+ r += this.endline(node, options, level);
+ options.state = WriterState.None;
+ this.closeNode(node, options, level);
+ return r;
+ };
+
+ XMLWriterBase.prototype.element = function(node, options, level) {
+ var att, child, childNodeCount, firstChildNode, i, j, len, len1, name, prettySuppressed, r, ref, ref1, ref2;
+ level || (level = 0);
+ prettySuppressed = false;
+ r = '';
+ this.openNode(node, options, level);
+ options.state = WriterState.OpenTag;
+ r += this.indent(node, options, level) + '<' + node.name;
+ ref = node.attribs;
+ for (name in ref) {
+ if (!hasProp.call(ref, name)) continue;
+ att = ref[name];
+ r += this.attribute(att, options, level);
}
- for (i = j = 0, ref1 = this.attribs.length - 1; 0 <= ref1 ? j <= ref1 : j >= ref1; i = 0 <= ref1 ? ++j : --j) {
- if (!this.attribs[i].isEqualNode(node.attribs[i])) {
- return false;
+ childNodeCount = node.children.length;
+ firstChildNode = childNodeCount === 0 ? null : node.children[0];
+ if (childNodeCount === 0 || node.children.every(function(e) {
+ return (e.type === NodeType.Text || e.type === NodeType.Raw) && e.value === '';
+ })) {
+ if (options.allowEmpty) {
+ r += '>';
+ options.state = WriterState.CloseTag;
+ r += '' + node.name + '>' + this.endline(node, options, level);
+ } else {
+ options.state = WriterState.CloseTag;
+ r += options.spaceBeforeSlash + '/>' + this.endline(node, options, level);
+ }
+ } else if (options.pretty && childNodeCount === 1 && (firstChildNode.type === NodeType.Text || firstChildNode.type === NodeType.Raw) && (firstChildNode.value != null)) {
+ r += '>';
+ options.state = WriterState.InsideTag;
+ options.suppressPrettyCount++;
+ prettySuppressed = true;
+ r += this.writeChildNode(firstChildNode, options, level + 1);
+ options.suppressPrettyCount--;
+ prettySuppressed = false;
+ options.state = WriterState.CloseTag;
+ r += '' + node.name + '>' + this.endline(node, options, level);
+ } else {
+ if (options.dontPrettyTextNodes) {
+ ref1 = node.children;
+ for (i = 0, len = ref1.length; i < len; i++) {
+ child = ref1[i];
+ if ((child.type === NodeType.Text || child.type === NodeType.Raw) && (child.value != null)) {
+ options.suppressPrettyCount++;
+ prettySuppressed = true;
+ break;
+ }
+ }
+ }
+ r += '>' + this.endline(node, options, level);
+ options.state = WriterState.InsideTag;
+ ref2 = node.children;
+ for (j = 0, len1 = ref2.length; j < len1; j++) {
+ child = ref2[j];
+ r += this.writeChildNode(child, options, level + 1);
+ }
+ options.state = WriterState.CloseTag;
+ r += this.indent(node, options, level) + '' + node.name + '>';
+ if (prettySuppressed) {
+ options.suppressPrettyCount--;
}
+ r += this.endline(node, options, level);
+ options.state = WriterState.None;
}
- return true;
+ this.closeNode(node, options, level);
+ return r;
};
- return XMLElement;
-
- })(XMLNode);
-
-}).call(this);
-
-
-/***/ }),
+ XMLWriterBase.prototype.writeChildNode = function(node, options, level) {
+ switch (node.type) {
+ case NodeType.CData:
+ return this.cdata(node, options, level);
+ case NodeType.Comment:
+ return this.comment(node, options, level);
+ case NodeType.Element:
+ return this.element(node, options, level);
+ case NodeType.Raw:
+ return this.raw(node, options, level);
+ case NodeType.Text:
+ return this.text(node, options, level);
+ case NodeType.ProcessingInstruction:
+ return this.processingInstruction(node, options, level);
+ case NodeType.Dummy:
+ return '';
+ case NodeType.Declaration:
+ return this.declaration(node, options, level);
+ case NodeType.DocType:
+ return this.docType(node, options, level);
+ case NodeType.AttributeDeclaration:
+ return this.dtdAttList(node, options, level);
+ case NodeType.ElementDeclaration:
+ return this.dtdElement(node, options, level);
+ case NodeType.EntityDeclaration:
+ return this.dtdEntity(node, options, level);
+ case NodeType.NotationDeclaration:
+ return this.dtdNotation(node, options, level);
+ default:
+ throw new Error("Unknown XML node type: " + node.constructor.name);
+ }
+ };
-/***/ 4361:
-/***/ (function(module) {
+ XMLWriterBase.prototype.processingInstruction = function(node, options, level) {
+ var r;
+ this.openNode(node, options, level);
+ options.state = WriterState.OpenTag;
+ r = this.indent(node, options, level) + '';
+ options.state = WriterState.InsideTag;
+ r += node.target;
+ if (node.value) {
+ r += ' ' + node.value;
+ }
+ options.state = WriterState.CloseTag;
+ r += options.spaceBeforeSlash + '?>';
+ r += this.endline(node, options, level);
+ options.state = WriterState.None;
+ this.closeNode(node, options, level);
+ return r;
+ };
-// Generated by CoffeeScript 1.12.7
-(function() {
- var XMLNamedNodeMap;
+ XMLWriterBase.prototype.raw = function(node, options, level) {
+ var r;
+ this.openNode(node, options, level);
+ options.state = WriterState.OpenTag;
+ r = this.indent(node, options, level);
+ options.state = WriterState.InsideTag;
+ r += node.value;
+ options.state = WriterState.CloseTag;
+ r += this.endline(node, options, level);
+ options.state = WriterState.None;
+ this.closeNode(node, options, level);
+ return r;
+ };
- module.exports = XMLNamedNodeMap = (function() {
- function XMLNamedNodeMap(nodes) {
- this.nodes = nodes;
- }
+ XMLWriterBase.prototype.text = function(node, options, level) {
+ var r;
+ this.openNode(node, options, level);
+ options.state = WriterState.OpenTag;
+ r = this.indent(node, options, level);
+ options.state = WriterState.InsideTag;
+ r += node.value;
+ options.state = WriterState.CloseTag;
+ r += this.endline(node, options, level);
+ options.state = WriterState.None;
+ this.closeNode(node, options, level);
+ return r;
+ };
- Object.defineProperty(XMLNamedNodeMap.prototype, 'length', {
- get: function() {
- return Object.keys(this.nodes).length || 0;
+ XMLWriterBase.prototype.dtdAttList = function(node, options, level) {
+ var r;
+ this.openNode(node, options, level);
+ options.state = WriterState.OpenTag;
+ r = this.indent(node, options, level) + '' + this.endline(node, options, level);
+ options.state = WriterState.None;
+ this.closeNode(node, options, level);
+ return r;
};
- XMLNamedNodeMap.prototype.getNamedItem = function(name) {
- return this.nodes[name];
+ XMLWriterBase.prototype.dtdElement = function(node, options, level) {
+ var r;
+ this.openNode(node, options, level);
+ options.state = WriterState.OpenTag;
+ r = this.indent(node, options, level) + '' + this.endline(node, options, level);
+ options.state = WriterState.None;
+ this.closeNode(node, options, level);
+ return r;
};
- XMLNamedNodeMap.prototype.setNamedItem = function(node) {
- var oldNode;
- oldNode = this.nodes[node.nodeName];
- this.nodes[node.nodeName] = node;
- return oldNode || null;
+ XMLWriterBase.prototype.dtdEntity = function(node, options, level) {
+ var r;
+ this.openNode(node, options, level);
+ options.state = WriterState.OpenTag;
+ r = this.indent(node, options, level) + '' + this.endline(node, options, level);
+ options.state = WriterState.None;
+ this.closeNode(node, options, level);
+ return r;
};
- XMLNamedNodeMap.prototype.removeNamedItem = function(name) {
- var oldNode;
- oldNode = this.nodes[name];
- delete this.nodes[name];
- return oldNode || null;
+ XMLWriterBase.prototype.dtdNotation = function(node, options, level) {
+ var r;
+ this.openNode(node, options, level);
+ options.state = WriterState.OpenTag;
+ r = this.indent(node, options, level) + '' + this.endline(node, options, level);
+ options.state = WriterState.None;
+ this.closeNode(node, options, level);
+ return r;
};
- XMLNamedNodeMap.prototype.item = function(index) {
- return this.nodes[Object.keys(this.nodes)[index]] || null;
- };
+ XMLWriterBase.prototype.openNode = function(node, options, level) {};
- XMLNamedNodeMap.prototype.getNamedItemNS = function(namespaceURI, localName) {
- throw new Error("This DOM method is not implemented.");
- };
+ XMLWriterBase.prototype.closeNode = function(node, options, level) {};
- XMLNamedNodeMap.prototype.setNamedItemNS = function(node) {
- throw new Error("This DOM method is not implemented.");
- };
+ XMLWriterBase.prototype.openAttribute = function(att, options, level) {};
- XMLNamedNodeMap.prototype.removeNamedItemNS = function(namespaceURI, localName) {
- throw new Error("This DOM method is not implemented.");
- };
+ XMLWriterBase.prototype.closeAttribute = function(att, options, level) {};
- return XMLNamedNodeMap;
+ return XMLWriterBase;
})();
@@ -65754,1983 +96683,6125 @@ module.exports = v4;
/***/ }),
-/***/ 7608:
+/***/ 2958:
/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
// Generated by CoffeeScript 1.12.7
(function() {
- var DocumentPosition, NodeType, XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLDummy, XMLElement, XMLNamedNodeMap, XMLNode, XMLNodeList, XMLProcessingInstruction, XMLRaw, XMLText, getValue, isEmpty, isFunction, isObject, ref1,
- hasProp = {}.hasOwnProperty;
+ var NodeType, WriterState, XMLDOMImplementation, XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction, ref;
- ref1 = __nccwpck_require__(8229), isObject = ref1.isObject, isFunction = ref1.isFunction, isEmpty = ref1.isEmpty, getValue = ref1.getValue;
+ ref = __nccwpck_require__(8229), assign = ref.assign, isFunction = ref.isFunction;
- XMLElement = null;
+ XMLDOMImplementation = __nccwpck_require__(8310);
- XMLCData = null;
+ XMLDocument = __nccwpck_require__(3730);
- XMLComment = null;
+ XMLDocumentCB = __nccwpck_require__(7356);
- XMLDeclaration = null;
+ XMLStringWriter = __nccwpck_require__(5913);
- XMLDocType = null;
+ XMLStreamWriter = __nccwpck_require__(8601);
- XMLRaw = null;
+ NodeType = __nccwpck_require__(9267);
- XMLText = null;
+ WriterState = __nccwpck_require__(9766);
- XMLProcessingInstruction = null;
+ module.exports.create = function(name, xmldec, doctype, options) {
+ var doc, root;
+ if (name == null) {
+ throw new Error("Root element needs a name.");
+ }
+ options = assign({}, xmldec, doctype, options);
+ doc = new XMLDocument(options);
+ root = doc.element(name);
+ if (!options.headless) {
+ doc.declaration(options);
+ if ((options.pubID != null) || (options.sysID != null)) {
+ doc.dtd(options);
+ }
+ }
+ return root;
+ };
- XMLDummy = null;
+ module.exports.begin = function(options, onData, onEnd) {
+ var ref1;
+ if (isFunction(options)) {
+ ref1 = [options, onData], onData = ref1[0], onEnd = ref1[1];
+ options = {};
+ }
+ if (onData) {
+ return new XMLDocumentCB(options, onData, onEnd);
+ } else {
+ return new XMLDocument(options);
+ }
+ };
- NodeType = null;
+ module.exports.stringWriter = function(options) {
+ return new XMLStringWriter(options);
+ };
- XMLNodeList = null;
+ module.exports.streamWriter = function(stream, options) {
+ return new XMLStreamWriter(stream, options);
+ };
- XMLNamedNodeMap = null;
+ module.exports.implementation = new XMLDOMImplementation();
- DocumentPosition = null;
+ module.exports.nodeType = NodeType;
- module.exports = XMLNode = (function() {
- function XMLNode(parent1) {
- this.parent = parent1;
- if (this.parent) {
- this.options = this.parent.options;
- this.stringify = this.parent.stringify;
- }
- this.value = null;
- this.children = [];
- this.baseURI = null;
- if (!XMLElement) {
- XMLElement = __nccwpck_require__(9437);
- XMLCData = __nccwpck_require__(333);
- XMLComment = __nccwpck_require__(4407);
- XMLDeclaration = __nccwpck_require__(6364);
- XMLDocType = __nccwpck_require__(1801);
- XMLRaw = __nccwpck_require__(6329);
- XMLText = __nccwpck_require__(1318);
- XMLProcessingInstruction = __nccwpck_require__(6939);
- XMLDummy = __nccwpck_require__(3590);
- NodeType = __nccwpck_require__(9267);
- XMLNodeList = __nccwpck_require__(6768);
- XMLNamedNodeMap = __nccwpck_require__(4361);
- DocumentPosition = __nccwpck_require__(2839);
- }
- }
+ module.exports.writerState = WriterState;
- Object.defineProperty(XMLNode.prototype, 'nodeName', {
- get: function() {
- return this.name;
- }
- });
+}).call(this);
- Object.defineProperty(XMLNode.prototype, 'nodeType', {
- get: function() {
- return this.type;
- }
- });
- Object.defineProperty(XMLNode.prototype, 'nodeValue', {
- get: function() {
- return this.value;
- }
- });
+/***/ }),
- Object.defineProperty(XMLNode.prototype, 'parentNode', {
- get: function() {
- return this.parent;
- }
- });
+/***/ 5926:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
- Object.defineProperty(XMLNode.prototype, 'childNodes', {
- get: function() {
- if (!this.childNodeList || !this.childNodeList.nodes) {
- this.childNodeList = new XMLNodeList(this.children);
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(8033);
+var util_1 = __nccwpck_require__(6195);
+var util_2 = __nccwpck_require__(5282);
+var _1 = __nccwpck_require__(4260);
+var dom_1 = __nccwpck_require__(770);
+/** @inheritdoc */
+function builder(p1, p2) {
+ var options = formatBuilderOptions(isXMLBuilderCreateOptions(p1) ? p1 : interfaces_1.DefaultBuilderOptions);
+ var nodes = util_2.Guard.isNode(p1) || util_1.isArray(p1) ? p1 : p2;
+ if (nodes === undefined) {
+ throw new Error("Invalid arguments.");
+ }
+ if (util_1.isArray(nodes)) {
+ var builders = [];
+ for (var i = 0; i < nodes.length; i++) {
+ var builder_1 = new _1.XMLBuilderImpl(nodes[i]);
+ builder_1.set(options);
+ builders.push(builder_1);
+ }
+ return builders;
+ }
+ else {
+ var builder_2 = new _1.XMLBuilderImpl(nodes);
+ builder_2.set(options);
+ return builder_2;
+ }
+}
+exports.builder = builder;
+/** @inheritdoc */
+function create(p1, p2) {
+ var options = formatBuilderOptions(p1 === undefined || isXMLBuilderCreateOptions(p1) ?
+ p1 : interfaces_1.DefaultBuilderOptions);
+ var contents = isXMLBuilderCreateOptions(p1) ? p2 : p1;
+ var doc = dom_1.createDocument();
+ setOptions(doc, options);
+ var builder = new _1.XMLBuilderImpl(doc);
+ if (contents !== undefined) {
+ // parse contents
+ builder.ele(contents);
+ }
+ return builder;
+}
+exports.create = create;
+/** @inheritdoc */
+function fragment(p1, p2) {
+ var options = formatBuilderOptions(p1 === undefined || isXMLBuilderCreateOptions(p1) ?
+ p1 : interfaces_1.DefaultBuilderOptions);
+ var contents = isXMLBuilderCreateOptions(p1) ? p2 : p1;
+ var doc = dom_1.createDocument();
+ setOptions(doc, options, true);
+ var builder = new _1.XMLBuilderImpl(doc.createDocumentFragment());
+ if (contents !== undefined) {
+ // parse contents
+ builder.ele(contents);
+ }
+ return builder;
+}
+exports.fragment = fragment;
+/** @inheritdoc */
+function convert(p1, p2, p3) {
+ var builderOptions;
+ var contents;
+ var convertOptions;
+ if (isXMLBuilderCreateOptions(p1) && p2 !== undefined) {
+ builderOptions = p1;
+ contents = p2;
+ convertOptions = p3;
+ }
+ else {
+ builderOptions = interfaces_1.DefaultBuilderOptions;
+ contents = p1;
+ convertOptions = p2 || undefined;
+ }
+ return create(builderOptions, contents).end(convertOptions);
+}
+exports.convert = convert;
+function isXMLBuilderCreateOptions(obj) {
+ if (!util_1.isPlainObject(obj))
+ return false;
+ for (var key in obj) {
+ /* istanbul ignore else */
+ if (obj.hasOwnProperty(key)) {
+ if (!interfaces_1.XMLBuilderOptionKeys.has(key))
+ return false;
}
- return this.childNodeList;
- }
- });
+ }
+ return true;
+}
+function formatBuilderOptions(createOptions) {
+ if (createOptions === void 0) { createOptions = {}; }
+ var options = util_1.applyDefaults(createOptions, interfaces_1.DefaultBuilderOptions);
+ if (options.convert.att.length === 0 ||
+ options.convert.ins.length === 0 ||
+ options.convert.text.length === 0 ||
+ options.convert.cdata.length === 0 ||
+ options.convert.comment.length === 0) {
+ throw new Error("JS object converter strings cannot be zero length.");
+ }
+ return options;
+}
+function setOptions(doc, options, isFragment) {
+ var docWithSettings = doc;
+ docWithSettings._xmlBuilderOptions = options;
+ docWithSettings._isFragment = isFragment;
+}
+//# sourceMappingURL=BuilderFunctions.js.map
- Object.defineProperty(XMLNode.prototype, 'firstChild', {
- get: function() {
- return this.children[0] || null;
- }
- });
+/***/ }),
- Object.defineProperty(XMLNode.prototype, 'lastChild', {
- get: function() {
- return this.children[this.children.length - 1] || null;
- }
- });
+/***/ 268:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
- Object.defineProperty(XMLNode.prototype, 'previousSibling', {
- get: function() {
- var i;
- i = this.parent.children.indexOf(this);
- return this.parent.children[i - 1] || null;
- }
- });
+"use strict";
- Object.defineProperty(XMLNode.prototype, 'nextSibling', {
- get: function() {
- var i;
- i = this.parent.children.indexOf(this);
- return this.parent.children[i + 1] || null;
- }
- });
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var _1 = __nccwpck_require__(4260);
+/**
+ * Creates an XML builder which serializes the document in chunks.
+ *
+ * @param options - callback builder options
+ *
+ * @returns callback builder
+ */
+function createCB(options) {
+ return new _1.XMLBuilderCBImpl(options);
+}
+exports.createCB = createCB;
+/**
+ * Creates an XML builder which serializes the fragment in chunks.
+ *
+ * @param options - callback builder options
+ *
+ * @returns callback builder
+ */
+function fragmentCB(options) {
+ return new _1.XMLBuilderCBImpl(options, true);
+}
+exports.fragmentCB = fragmentCB;
+//# sourceMappingURL=BuilderFunctionsCB.js.map
- Object.defineProperty(XMLNode.prototype, 'ownerDocument', {
- get: function() {
- return this.document() || null;
- }
- });
+/***/ }),
- Object.defineProperty(XMLNode.prototype, 'textContent', {
- get: function() {
- var child, j, len, ref2, str;
- if (this.nodeType === NodeType.Element || this.nodeType === NodeType.DocumentFragment) {
- str = '';
- ref2 = this.children;
- for (j = 0, len = ref2.length; j < len; j++) {
- child = ref2[j];
- if (child.textContent) {
- str += child.textContent;
- }
- }
- return str;
- } else {
- return null;
- }
- },
- set: function(value) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
- }
- });
+/***/ 1438:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
- XMLNode.prototype.setParent = function(parent) {
- var child, j, len, ref2, results;
- this.parent = parent;
- if (parent) {
- this.options = parent.options;
- this.stringify = parent.stringify;
- }
- ref2 = this.children;
- results = [];
- for (j = 0, len = ref2.length; j < len; j++) {
- child = ref2[j];
- results.push(child.setParent(this));
- }
- return results;
- };
+"use strict";
- XMLNode.prototype.element = function(name, attributes, text) {
- var childNode, item, j, k, key, lastChild, len, len1, ref2, ref3, val;
- lastChild = null;
- if (attributes === null && (text == null)) {
- ref2 = [{}, null], attributes = ref2[0], text = ref2[1];
- }
- if (attributes == null) {
- attributes = {};
- }
- attributes = getValue(attributes);
- if (!isObject(attributes)) {
- ref3 = [attributes, text], text = ref3[0], attributes = ref3[1];
- }
- if (name != null) {
- name = getValue(name);
- }
- if (Array.isArray(name)) {
- for (j = 0, len = name.length; j < len; j++) {
- item = name[j];
- lastChild = this.element(item);
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
}
- } else if (isFunction(name)) {
- lastChild = this.element(name.apply());
- } else if (isObject(name)) {
- for (key in name) {
- if (!hasProp.call(name, key)) continue;
- val = name[key];
- if (isFunction(val)) {
- val = val.apply();
- }
- if (!this.options.ignoreDecorators && this.stringify.convertAttKey && key.indexOf(this.stringify.convertAttKey) === 0) {
- lastChild = this.attribute(key.substr(this.stringify.convertAttKey.length), val);
- } else if (!this.options.separateArrayItems && Array.isArray(val) && isEmpty(val)) {
- lastChild = this.dummy();
- } else if (isObject(val) && isEmpty(val)) {
- lastChild = this.element(key);
- } else if (!this.options.keepNullNodes && (val == null)) {
- lastChild = this.dummy();
- } else if (!this.options.separateArrayItems && Array.isArray(val)) {
- for (k = 0, len1 = val.length; k < len1; k++) {
- item = val[k];
- childNode = {};
- childNode[key] = item;
- lastChild = this.element(childNode);
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(8033);
+var util_1 = __nccwpck_require__(6195);
+var BuilderFunctions_1 = __nccwpck_require__(5926);
+var algorithm_1 = __nccwpck_require__(61);
+var infra_1 = __nccwpck_require__(4251);
+var NamespacePrefixMap_1 = __nccwpck_require__(283);
+var LocalNameSet_1 = __nccwpck_require__(9049);
+var util_2 = __nccwpck_require__(5282);
+var XMLCBWriter_1 = __nccwpck_require__(7572);
+var JSONCBWriter_1 = __nccwpck_require__(7525);
+var YAMLCBWriter_1 = __nccwpck_require__(2444);
+var events_1 = __nccwpck_require__(2361);
+/**
+ * Represents a readable XML document stream.
+ */
+var XMLBuilderCBImpl = /** @class */ (function (_super) {
+ __extends(XMLBuilderCBImpl, _super);
+ /**
+ * Initializes a new instance of `XMLStream`.
+ *
+ * @param options - stream writer options
+ * @param fragment - whether to create fragment stream or a document stream
+ *
+ * @returns XML stream
+ */
+ function XMLBuilderCBImpl(options, fragment) {
+ if (fragment === void 0) { fragment = false; }
+ var _this = _super.call(this) || this;
+ _this._hasDeclaration = false;
+ _this._docTypeName = "";
+ _this._hasDocumentElement = false;
+ _this._currentElementSerialized = false;
+ _this._openTags = [];
+ _this._ended = false;
+ _this._fragment = fragment;
+ // provide default options
+ _this._options = util_1.applyDefaults(options || {}, interfaces_1.DefaultXMLBuilderCBOptions);
+ _this._builderOptions = {
+ defaultNamespace: _this._options.defaultNamespace,
+ namespaceAlias: _this._options.namespaceAlias
+ };
+ if (_this._options.format === "json") {
+ _this._writer = new JSONCBWriter_1.JSONCBWriter(_this._options);
+ }
+ else if (_this._options.format === "yaml") {
+ _this._writer = new YAMLCBWriter_1.YAMLCBWriter(_this._options);
+ }
+ else {
+ _this._writer = new XMLCBWriter_1.XMLCBWriter(_this._options);
+ }
+ // automatically create listeners for callbacks passed via options
+ if (_this._options.data !== undefined) {
+ _this.on("data", _this._options.data);
+ }
+ if (_this._options.end !== undefined) {
+ _this.on("end", _this._options.end);
+ }
+ if (_this._options.error !== undefined) {
+ _this.on("error", _this._options.error);
+ }
+ _this._prefixMap = new NamespacePrefixMap_1.NamespacePrefixMap();
+ _this._prefixMap.set("xml", infra_1.namespace.XML);
+ _this._prefixIndex = { value: 1 };
+ _this._push(_this._writer.frontMatter());
+ return _this;
+ }
+ /** @inheritdoc */
+ XMLBuilderCBImpl.prototype.ele = function (p1, p2, p3) {
+ var e_1, _a;
+ // parse if JS object or XML or JSON string
+ if (util_1.isObject(p1) || (util_1.isString(p1) && (/^\s*/g, '>');
+ }
+ else {
+ for (var i = 0; i < node.data.length; i++) {
+ var c = node.data[i];
+ if (c === "&")
+ markup += "&";
+ else if (c === "<")
+ markup += "<";
+ else if (c === ">")
+ markup += ">";
+ else
+ markup += c;
+ }
+ }
+ this._push(this._writer.text(markup));
+ return this;
};
-
- XMLNode.prototype.cdata = function(value) {
- var child;
- child = new XMLCData(this, value);
- this.children.push(child);
- return this;
+ /** @inheritdoc */
+ XMLBuilderCBImpl.prototype.ins = function (target, content) {
+ if (content === void 0) { content = ''; }
+ this._serializeOpenTag(true);
+ var node;
+ try {
+ node = BuilderFunctions_1.fragment(this._builderOptions).ins(target, content).first().node;
+ }
+ catch (err) {
+ /* istanbul ignore next */
+ this.emit("error", err);
+ /* istanbul ignore next */
+ return this;
+ }
+ if (this._options.wellFormed && (node.target.indexOf(":") !== -1 || (/^xml$/i).test(node.target))) {
+ this.emit("error", new Error("Processing instruction target contains invalid characters (well-formed required)."));
+ return this;
+ }
+ if (this._options.wellFormed && !algorithm_1.xml_isLegalChar(node.data)) {
+ this.emit("error", Error("Processing instruction data contains invalid characters (well-formed required)."));
+ return this;
+ }
+ this._push(this._writer.instruction(node.target, node.data));
+ return this;
};
-
- XMLNode.prototype.comment = function(value) {
- var child;
- child = new XMLComment(this, value);
- this.children.push(child);
- return this;
+ /** @inheritdoc */
+ XMLBuilderCBImpl.prototype.dat = function (content) {
+ this._serializeOpenTag(true);
+ var node;
+ try {
+ node = BuilderFunctions_1.fragment(this._builderOptions).dat(content).first().node;
+ }
+ catch (err) {
+ this.emit("error", err);
+ return this;
+ }
+ this._push(this._writer.cdata(node.data));
+ return this;
};
-
- XMLNode.prototype.commentBefore = function(value) {
- var child, i, removed;
- i = this.parent.children.indexOf(this);
- removed = this.parent.children.splice(i);
- child = this.parent.comment(value);
- Array.prototype.push.apply(this.parent.children, removed);
- return this;
+ /** @inheritdoc */
+ XMLBuilderCBImpl.prototype.dec = function (options) {
+ if (options === void 0) { options = { version: "1.0" }; }
+ if (this._fragment) {
+ this.emit("error", Error("Cannot insert an XML declaration into a document fragment."));
+ return this;
+ }
+ if (this._hasDeclaration) {
+ this.emit("error", Error("XML declaration is already inserted."));
+ return this;
+ }
+ this._push(this._writer.declaration(options.version || "1.0", options.encoding, options.standalone));
+ this._hasDeclaration = true;
+ return this;
};
-
- XMLNode.prototype.commentAfter = function(value) {
- var child, i, removed;
- i = this.parent.children.indexOf(this);
- removed = this.parent.children.splice(i + 1);
- child = this.parent.comment(value);
- Array.prototype.push.apply(this.parent.children, removed);
- return this;
+ /** @inheritdoc */
+ XMLBuilderCBImpl.prototype.dtd = function (options) {
+ if (this._fragment) {
+ this.emit("error", Error("Cannot insert a DocType declaration into a document fragment."));
+ return this;
+ }
+ if (this._docTypeName !== "") {
+ this.emit("error", new Error("DocType declaration is already inserted."));
+ return this;
+ }
+ if (this._hasDocumentElement) {
+ this.emit("error", new Error("Cannot insert DocType declaration after document element."));
+ return this;
+ }
+ var node;
+ try {
+ node = BuilderFunctions_1.create().dtd(options).first().node;
+ }
+ catch (err) {
+ this.emit("error", err);
+ return this;
+ }
+ if (this._options.wellFormed && !algorithm_1.xml_isPubidChar(node.publicId)) {
+ this.emit("error", new Error("DocType public identifier does not match PubidChar construct (well-formed required)."));
+ return this;
+ }
+ if (this._options.wellFormed &&
+ (!algorithm_1.xml_isLegalChar(node.systemId) ||
+ (node.systemId.indexOf('"') !== -1 && node.systemId.indexOf("'") !== -1))) {
+ this.emit("error", new Error("DocType system identifier contains invalid characters (well-formed required)."));
+ return this;
+ }
+ this._docTypeName = options.name;
+ this._push(this._writer.docType(options.name, node.publicId, node.systemId));
+ return this;
};
-
- XMLNode.prototype.raw = function(value) {
- var child;
- child = new XMLRaw(this, value);
- this.children.push(child);
- return this;
+ /** @inheritdoc */
+ XMLBuilderCBImpl.prototype.up = function () {
+ this._serializeOpenTag(false);
+ this._serializeCloseTag();
+ return this;
};
-
- XMLNode.prototype.dummy = function() {
- var child;
- child = new XMLDummy(this);
- return child;
+ /** @inheritdoc */
+ XMLBuilderCBImpl.prototype.end = function () {
+ this._serializeOpenTag(false);
+ while (this._openTags.length > 0) {
+ this._serializeCloseTag();
+ }
+ this._push(null);
+ return this;
};
-
- XMLNode.prototype.instruction = function(target, value) {
- var insTarget, insValue, instruction, j, len;
- if (target != null) {
- target = getValue(target);
- }
- if (value != null) {
- value = getValue(value);
- }
- if (Array.isArray(target)) {
- for (j = 0, len = target.length; j < len; j++) {
- insTarget = target[j];
- this.instruction(insTarget);
+ /**
+ * Serializes the opening tag of an element node.
+ *
+ * @param hasChildren - whether the element node has child nodes
+ */
+ XMLBuilderCBImpl.prototype._serializeOpenTag = function (hasChildren) {
+ if (this._currentElementSerialized)
+ return;
+ if (this._currentElement === undefined)
+ return;
+ var node = this._currentElement.node;
+ if (this._options.wellFormed && (node.localName.indexOf(":") !== -1 ||
+ !algorithm_1.xml_isName(node.localName))) {
+ this.emit("error", new Error("Node local name contains invalid characters (well-formed required)."));
+ return;
}
- } else if (isObject(target)) {
- for (insTarget in target) {
- if (!hasProp.call(target, insTarget)) continue;
- insValue = target[insTarget];
- this.instruction(insTarget, insValue);
+ var qualifiedName = "";
+ var ignoreNamespaceDefinitionAttribute = false;
+ var map = this._prefixMap.copy();
+ var localPrefixesMap = {};
+ var localDefaultNamespace = this._recordNamespaceInformation(node, map, localPrefixesMap);
+ var inheritedNS = this._openTags.length === 0 ? null : this._openTags[this._openTags.length - 1][1];
+ var ns = node.namespaceURI;
+ if (ns === null)
+ ns = inheritedNS;
+ if (inheritedNS === ns) {
+ if (localDefaultNamespace !== null) {
+ ignoreNamespaceDefinitionAttribute = true;
+ }
+ if (ns === infra_1.namespace.XML) {
+ qualifiedName = "xml:" + node.localName;
+ }
+ else {
+ qualifiedName = node.localName;
+ }
+ this._writer.beginElement(qualifiedName);
+ this._push(this._writer.openTagBegin(qualifiedName));
}
- } else {
- if (isFunction(value)) {
- value = value.apply();
+ else {
+ var prefix = node.prefix;
+ var candidatePrefix = null;
+ if (prefix !== null || ns !== localDefaultNamespace) {
+ candidatePrefix = map.get(prefix, ns);
+ }
+ if (prefix === "xmlns") {
+ if (this._options.wellFormed) {
+ this.emit("error", new Error("An element cannot have the 'xmlns' prefix (well-formed required)."));
+ return;
+ }
+ candidatePrefix = prefix;
+ }
+ if (candidatePrefix !== null) {
+ qualifiedName = candidatePrefix + ':' + node.localName;
+ if (localDefaultNamespace !== null && localDefaultNamespace !== infra_1.namespace.XML) {
+ inheritedNS = localDefaultNamespace || null;
+ }
+ this._writer.beginElement(qualifiedName);
+ this._push(this._writer.openTagBegin(qualifiedName));
+ }
+ else if (prefix !== null) {
+ if (prefix in localPrefixesMap) {
+ prefix = this._generatePrefix(ns, map, this._prefixIndex);
+ }
+ map.set(prefix, ns);
+ qualifiedName += prefix + ':' + node.localName;
+ this._writer.beginElement(qualifiedName);
+ this._push(this._writer.openTagBegin(qualifiedName));
+ this._push(this._writer.attribute("xmlns:" + prefix, this._serializeAttributeValue(ns, this._options.wellFormed)));
+ if (localDefaultNamespace !== null) {
+ inheritedNS = localDefaultNamespace || null;
+ }
+ }
+ else if (localDefaultNamespace === null ||
+ (localDefaultNamespace !== null && localDefaultNamespace !== ns)) {
+ ignoreNamespaceDefinitionAttribute = true;
+ qualifiedName += node.localName;
+ inheritedNS = ns;
+ this._writer.beginElement(qualifiedName);
+ this._push(this._writer.openTagBegin(qualifiedName));
+ this._push(this._writer.attribute("xmlns", this._serializeAttributeValue(ns, this._options.wellFormed)));
+ }
+ else {
+ qualifiedName += node.localName;
+ inheritedNS = ns;
+ this._writer.beginElement(qualifiedName);
+ this._push(this._writer.openTagBegin(qualifiedName));
+ }
}
- instruction = new XMLProcessingInstruction(this, target, value);
- this.children.push(instruction);
- }
- return this;
- };
-
- XMLNode.prototype.instructionBefore = function(target, value) {
- var child, i, removed;
- i = this.parent.children.indexOf(this);
- removed = this.parent.children.splice(i);
- child = this.parent.instruction(target, value);
- Array.prototype.push.apply(this.parent.children, removed);
- return this;
+ this._serializeAttributes(node, map, this._prefixIndex, localPrefixesMap, ignoreNamespaceDefinitionAttribute, this._options.wellFormed);
+ var isHTML = (ns === infra_1.namespace.HTML);
+ if (isHTML && !hasChildren &&
+ XMLBuilderCBImpl._VoidElementNames.has(node.localName)) {
+ this._push(this._writer.openTagEnd(qualifiedName, true, true));
+ this._writer.endElement(qualifiedName);
+ }
+ else if (!isHTML && !hasChildren) {
+ this._push(this._writer.openTagEnd(qualifiedName, true, false));
+ this._writer.endElement(qualifiedName);
+ }
+ else {
+ this._push(this._writer.openTagEnd(qualifiedName, false, false));
+ }
+ this._currentElementSerialized = true;
+ /**
+ * Save qualified name, original inherited ns, original prefix map, and
+ * hasChildren flag.
+ */
+ this._openTags.push([qualifiedName, inheritedNS, this._prefixMap, hasChildren]);
+ /**
+ * New values of inherited namespace and prefix map will be used while
+ * serializing child nodes. They will be returned to their original values
+ * when this node is closed using the _openTags array item we saved above.
+ */
+ if (this._isPrefixMapModified(this._prefixMap, map)) {
+ this._prefixMap = map;
+ }
+ /**
+ * Calls following this will either serialize child nodes or close this tag.
+ */
+ this._writer.level++;
};
-
- XMLNode.prototype.instructionAfter = function(target, value) {
- var child, i, removed;
- i = this.parent.children.indexOf(this);
- removed = this.parent.children.splice(i + 1);
- child = this.parent.instruction(target, value);
- Array.prototype.push.apply(this.parent.children, removed);
- return this;
+ /**
+ * Serializes the closing tag of an element node.
+ */
+ XMLBuilderCBImpl.prototype._serializeCloseTag = function () {
+ this._writer.level--;
+ var lastEle = this._openTags.pop();
+ /* istanbul ignore next */
+ if (lastEle === undefined) {
+ this.emit("error", new Error("Last element is undefined."));
+ return;
+ }
+ var _a = __read(lastEle, 4), qualifiedName = _a[0], ns = _a[1], map = _a[2], hasChildren = _a[3];
+ /**
+ * Restore original values of inherited namespace and prefix map.
+ */
+ this._prefixMap = map;
+ if (!hasChildren)
+ return;
+ this._push(this._writer.closeTag(qualifiedName));
+ this._writer.endElement(qualifiedName);
};
-
- XMLNode.prototype.declaration = function(version, encoding, standalone) {
- var doc, xmldec;
- doc = this.document();
- xmldec = new XMLDeclaration(doc, version, encoding, standalone);
- if (doc.children.length === 0) {
- doc.children.unshift(xmldec);
- } else if (doc.children[0].type === NodeType.Declaration) {
- doc.children[0] = xmldec;
- } else {
- doc.children.unshift(xmldec);
- }
- return doc.root() || doc;
+ /**
+ * Pushes data to internal buffer.
+ *
+ * @param data - data
+ */
+ XMLBuilderCBImpl.prototype._push = function (data) {
+ if (data === null) {
+ this._ended = true;
+ this.emit("end");
+ }
+ else if (this._ended) {
+ this.emit("error", new Error("Cannot push to ended stream."));
+ }
+ else if (data.length !== 0) {
+ this._writer.hasData = true;
+ this.emit("data", data, this._writer.level);
+ }
};
-
- XMLNode.prototype.dtd = function(pubID, sysID) {
- var child, doc, doctype, i, j, k, len, len1, ref2, ref3;
- doc = this.document();
- doctype = new XMLDocType(doc, pubID, sysID);
- ref2 = doc.children;
- for (i = j = 0, len = ref2.length; j < len; i = ++j) {
- child = ref2[i];
- if (child.type === NodeType.DocType) {
- doc.children[i] = doctype;
- return doctype;
+ /**
+ * Reads and serializes an XML tree.
+ *
+ * @param node - root node
+ */
+ XMLBuilderCBImpl.prototype._fromNode = function (node) {
+ var e_2, _a, e_3, _b;
+ if (util_2.Guard.isElementNode(node)) {
+ var name = node.prefix ? node.prefix + ":" + node.localName : node.localName;
+ if (node.namespaceURI !== null) {
+ this.ele(node.namespaceURI, name);
+ }
+ else {
+ this.ele(name);
+ }
+ try {
+ for (var _c = __values(node.attributes), _d = _c.next(); !_d.done; _d = _c.next()) {
+ var attr = _d.value;
+ var name_1 = attr.prefix ? attr.prefix + ":" + attr.localName : attr.localName;
+ if (attr.namespaceURI !== null) {
+ this.att(attr.namespaceURI, name_1, attr.value);
+ }
+ else {
+ this.att(name_1, attr.value);
+ }
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ try {
+ for (var _e = __values(node.childNodes), _f = _e.next(); !_f.done; _f = _e.next()) {
+ var child = _f.value;
+ this._fromNode(child);
+ }
+ }
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
+ finally {
+ try {
+ if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
+ }
+ finally { if (e_3) throw e_3.error; }
+ }
+ this.up();
}
- }
- ref3 = doc.children;
- for (i = k = 0, len1 = ref3.length; k < len1; i = ++k) {
- child = ref3[i];
- if (child.isRoot) {
- doc.children.splice(i, 0, doctype);
- return doctype;
+ else if (util_2.Guard.isExclusiveTextNode(node) && node.data) {
+ this.txt(node.data);
+ }
+ else if (util_2.Guard.isCommentNode(node)) {
+ this.com(node.data);
+ }
+ else if (util_2.Guard.isCDATASectionNode(node)) {
+ this.dat(node.data);
+ }
+ else if (util_2.Guard.isProcessingInstructionNode(node)) {
+ this.ins(node.target, node.data);
}
- }
- doc.children.push(doctype);
- return doctype;
};
-
- XMLNode.prototype.up = function() {
- if (this.isRoot) {
- throw new Error("The root node has no parent. Use doc() if you need to get the document object.");
- }
- return this.parent;
+ /**
+ * Produces an XML serialization of the attributes of an element node.
+ *
+ * @param node - node to serialize
+ * @param map - namespace prefix map
+ * @param prefixIndex - generated namespace prefix index
+ * @param localPrefixesMap - local prefixes map
+ * @param ignoreNamespaceDefinitionAttribute - whether to ignore namespace
+ * attributes
+ * @param requireWellFormed - whether to check conformance
+ */
+ XMLBuilderCBImpl.prototype._serializeAttributes = function (node, map, prefixIndex, localPrefixesMap, ignoreNamespaceDefinitionAttribute, requireWellFormed) {
+ var e_4, _a;
+ var localNameSet = requireWellFormed ? new LocalNameSet_1.LocalNameSet() : undefined;
+ try {
+ for (var _b = __values(node.attributes), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var attr = _c.value;
+ // Optimize common case
+ if (!requireWellFormed && !ignoreNamespaceDefinitionAttribute && attr.namespaceURI === null) {
+ this._push(this._writer.attribute(attr.localName, this._serializeAttributeValue(attr.value, this._options.wellFormed)));
+ continue;
+ }
+ if (requireWellFormed && localNameSet && localNameSet.has(attr.namespaceURI, attr.localName)) {
+ this.emit("error", new Error("Element contains duplicate attributes (well-formed required)."));
+ return;
+ }
+ if (requireWellFormed && localNameSet)
+ localNameSet.set(attr.namespaceURI, attr.localName);
+ var attributeNamespace = attr.namespaceURI;
+ var candidatePrefix = null;
+ if (attributeNamespace !== null) {
+ candidatePrefix = map.get(attr.prefix, attributeNamespace);
+ if (attributeNamespace === infra_1.namespace.XMLNS) {
+ if (attr.value === infra_1.namespace.XML ||
+ (attr.prefix === null && ignoreNamespaceDefinitionAttribute) ||
+ (attr.prefix !== null && (!(attr.localName in localPrefixesMap) ||
+ localPrefixesMap[attr.localName] !== attr.value) &&
+ map.has(attr.localName, attr.value)))
+ continue;
+ if (requireWellFormed && attr.value === infra_1.namespace.XMLNS) {
+ this.emit("error", new Error("XMLNS namespace is reserved (well-formed required)."));
+ return;
+ }
+ if (requireWellFormed && attr.value === '') {
+ this.emit("error", new Error("Namespace prefix declarations cannot be used to undeclare a namespace (well-formed required)."));
+ return;
+ }
+ if (attr.prefix === 'xmlns')
+ candidatePrefix = 'xmlns';
+ /**
+ * _Note:_ The (candidatePrefix === null) check is not in the spec.
+ * We deviate from the spec here. Otherwise a prefix is generated for
+ * all attributes with namespaces.
+ */
+ }
+ else if (candidatePrefix === null) {
+ if (attr.prefix !== null &&
+ (!map.hasPrefix(attr.prefix) ||
+ map.has(attr.prefix, attributeNamespace))) {
+ /**
+ * Check if we can use the attribute's own prefix.
+ * We deviate from the spec here.
+ * TODO: This is not an efficient way of searching for prefixes.
+ * Follow developments to the spec.
+ */
+ candidatePrefix = attr.prefix;
+ }
+ else {
+ candidatePrefix = this._generatePrefix(attributeNamespace, map, prefixIndex);
+ }
+ this._push(this._writer.attribute("xmlns:" + candidatePrefix, this._serializeAttributeValue(attributeNamespace, this._options.wellFormed)));
+ }
+ }
+ if (requireWellFormed && (attr.localName.indexOf(":") !== -1 ||
+ !algorithm_1.xml_isName(attr.localName) ||
+ (attr.localName === "xmlns" && attributeNamespace === null))) {
+ this.emit("error", new Error("Attribute local name contains invalid characters (well-formed required)."));
+ return;
+ }
+ this._push(this._writer.attribute((candidatePrefix !== null ? candidatePrefix + ":" : "") + attr.localName, this._serializeAttributeValue(attr.value, this._options.wellFormed)));
+ }
+ }
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_4) throw e_4.error; }
+ }
};
-
- XMLNode.prototype.root = function() {
- var node;
- node = this;
- while (node) {
- if (node.type === NodeType.Document) {
- return node.rootObject;
- } else if (node.isRoot) {
- return node;
- } else {
- node = node.parent;
+ /**
+ * Produces an XML serialization of an attribute value.
+ *
+ * @param value - attribute value
+ * @param requireWellFormed - whether to check conformance
+ */
+ XMLBuilderCBImpl.prototype._serializeAttributeValue = function (value, requireWellFormed) {
+ if (requireWellFormed && value !== null && !algorithm_1.xml_isLegalChar(value)) {
+ this.emit("error", new Error("Invalid characters in attribute value."));
+ return "";
+ }
+ if (value === null)
+ return "";
+ if (this._options.noDoubleEncoding) {
+ return value.replace(/(?!&(lt|gt|amp|apos|quot);)&/g, '&')
+ .replace(//g, '>')
+ .replace(/"/g, '"');
+ }
+ else {
+ var result = "";
+ for (var i = 0; i < value.length; i++) {
+ var c = value[i];
+ if (c === "\"")
+ result += """;
+ else if (c === "&")
+ result += "&";
+ else if (c === "<")
+ result += "<";
+ else if (c === ">")
+ result += ">";
+ else
+ result += c;
+ }
+ return result;
}
- }
};
-
- XMLNode.prototype.document = function() {
- var node;
- node = this;
- while (node) {
- if (node.type === NodeType.Document) {
- return node;
- } else {
- node = node.parent;
+ /**
+ * Records namespace information for the given element and returns the
+ * default namespace attribute value.
+ *
+ * @param node - element node to process
+ * @param map - namespace prefix map
+ * @param localPrefixesMap - local prefixes map
+ */
+ XMLBuilderCBImpl.prototype._recordNamespaceInformation = function (node, map, localPrefixesMap) {
+ var e_5, _a;
+ var defaultNamespaceAttrValue = null;
+ try {
+ for (var _b = __values(node.attributes), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var attr = _c.value;
+ var attributeNamespace = attr.namespaceURI;
+ var attributePrefix = attr.prefix;
+ if (attributeNamespace === infra_1.namespace.XMLNS) {
+ if (attributePrefix === null) {
+ defaultNamespaceAttrValue = attr.value;
+ continue;
+ }
+ else {
+ var prefixDefinition = attr.localName;
+ var namespaceDefinition = attr.value;
+ if (namespaceDefinition === infra_1.namespace.XML) {
+ continue;
+ }
+ if (namespaceDefinition === '') {
+ namespaceDefinition = null;
+ }
+ if (map.has(prefixDefinition, namespaceDefinition)) {
+ continue;
+ }
+ map.set(prefixDefinition, namespaceDefinition);
+ localPrefixesMap[prefixDefinition] = namespaceDefinition || '';
+ }
+ }
+ }
}
- }
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_5) throw e_5.error; }
+ }
+ return defaultNamespaceAttrValue;
};
-
- XMLNode.prototype.end = function(options) {
- return this.document().end(options);
+ /**
+ * Generates a new prefix for the given namespace.
+ *
+ * @param newNamespace - a namespace to generate prefix for
+ * @param prefixMap - namespace prefix map
+ * @param prefixIndex - generated namespace prefix index
+ */
+ XMLBuilderCBImpl.prototype._generatePrefix = function (newNamespace, prefixMap, prefixIndex) {
+ var generatedPrefix = "ns" + prefixIndex.value;
+ prefixIndex.value++;
+ prefixMap.set(generatedPrefix, newNamespace);
+ return generatedPrefix;
};
-
- XMLNode.prototype.prev = function() {
- var i;
- i = this.parent.children.indexOf(this);
- if (i < 1) {
- throw new Error("Already at the first node. " + this.debugInfo());
- }
- return this.parent.children[i - 1];
+ /**
+ * Determines if the namespace prefix map was modified from its original.
+ *
+ * @param originalMap - original namespace prefix map
+ * @param newMap - new namespace prefix map
+ */
+ XMLBuilderCBImpl.prototype._isPrefixMapModified = function (originalMap, newMap) {
+ var items1 = originalMap._items;
+ var items2 = newMap._items;
+ var nullItems1 = originalMap._nullItems;
+ var nullItems2 = newMap._nullItems;
+ for (var key in items2) {
+ var arr1 = items1[key];
+ if (arr1 === undefined)
+ return true;
+ var arr2 = items2[key];
+ if (arr1.length !== arr2.length)
+ return true;
+ for (var i = 0; i < arr1.length; i++) {
+ if (arr1[i] !== arr2[i])
+ return true;
+ }
+ }
+ if (nullItems1.length !== nullItems2.length)
+ return true;
+ for (var i = 0; i < nullItems1.length; i++) {
+ if (nullItems1[i] !== nullItems2[i])
+ return true;
+ }
+ return false;
};
+ XMLBuilderCBImpl._VoidElementNames = new Set(['area', 'base', 'basefont',
+ 'bgsound', 'br', 'col', 'embed', 'frame', 'hr', 'img', 'input', 'keygen',
+ 'link', 'menuitem', 'meta', 'param', 'source', 'track', 'wbr']);
+ return XMLBuilderCBImpl;
+}(events_1.EventEmitter));
+exports.XMLBuilderCBImpl = XMLBuilderCBImpl;
+//# sourceMappingURL=XMLBuilderCBImpl.js.map
- XMLNode.prototype.next = function() {
- var i;
- i = this.parent.children.indexOf(this);
- if (i === -1 || i === this.parent.children.length - 1) {
- throw new Error("Already at the last node. " + this.debugInfo());
- }
- return this.parent.children[i + 1];
- };
+/***/ }),
- XMLNode.prototype.importDocument = function(doc) {
- var clonedRoot;
- clonedRoot = doc.root().clone();
- clonedRoot.parent = this;
- clonedRoot.isRoot = false;
- this.children.push(clonedRoot);
- return this;
- };
+/***/ 8248:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
- XMLNode.prototype.debugInfo = function(name) {
- var ref2, ref3;
- name = name || this.name;
- if ((name == null) && !((ref2 = this.parent) != null ? ref2.name : void 0)) {
- return "";
- } else if (name == null) {
- return "parent: <" + this.parent.name + ">";
- } else if (!((ref3 = this.parent) != null ? ref3.name : void 0)) {
- return "node: <" + name + ">";
- } else {
- return "node: <" + name + ">, parent: <" + this.parent.name + ">";
- }
- };
+"use strict";
- XMLNode.prototype.ele = function(name, attributes, text) {
- return this.element(name, attributes, text);
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
};
-
- XMLNode.prototype.nod = function(name, attributes, text) {
- return this.node(name, attributes, text);
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(8033);
+var util_1 = __nccwpck_require__(6195);
+var writers_1 = __nccwpck_require__(7476);
+var interfaces_2 = __nccwpck_require__(7305);
+var util_2 = __nccwpck_require__(5282);
+var algorithm_1 = __nccwpck_require__(61);
+var dom_1 = __nccwpck_require__(770);
+var infra_1 = __nccwpck_require__(4251);
+var readers_1 = __nccwpck_require__(560);
+/**
+ * Represents a wrapper that extends XML nodes to implement easy to use and
+ * chainable document builder methods.
+ */
+var XMLBuilderImpl = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `XMLBuilderNodeImpl`.
+ *
+ * @param domNode - the DOM node to wrap
+ */
+ function XMLBuilderImpl(domNode) {
+ this._domNode = domNode;
+ }
+ Object.defineProperty(XMLBuilderImpl.prototype, "node", {
+ /** @inheritdoc */
+ get: function () { return this._domNode; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(XMLBuilderImpl.prototype, "options", {
+ /** @inheritdoc */
+ get: function () { return this._options; },
+ enumerable: true,
+ configurable: true
+ });
+ /** @inheritdoc */
+ XMLBuilderImpl.prototype.set = function (options) {
+ this._options = util_1.applyDefaults(util_1.applyDefaults(this._options, options, true), // apply user settings
+ interfaces_1.DefaultBuilderOptions); // provide defaults
+ return this;
};
-
- XMLNode.prototype.txt = function(value) {
- return this.text(value);
+ /** @inheritdoc */
+ XMLBuilderImpl.prototype.ele = function (p1, p2, p3) {
+ var _a, _b, _c;
+ var namespace;
+ var name;
+ var attributes;
+ if (util_1.isObject(p1)) {
+ // ele(obj: ExpandObject)
+ return new readers_1.ObjectReader(this._options).parse(this, p1);
+ }
+ else if (p1 !== null && /^\s*= ref2; i = 0 <= ref2 ? ++j : --j) {
- if (!this.children[i].isEqualNode(node.children[i])) {
- return false;
+ /** @inheritdoc */
+ XMLBuilderImpl.prototype.end = function (writerOptions) {
+ writerOptions = writerOptions || {};
+ if (writerOptions.format === undefined) {
+ writerOptions.format = "xml";
}
- }
- return true;
+ return this.doc()._serialize(writerOptions);
};
-
- XMLNode.prototype.getFeature = function(feature, version) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ /**
+ * Gets the next descendant of the given node of the tree rooted at `root`
+ * in depth-first pre-order. Returns a three-tuple with
+ * [descendant, descendant_index, descendant_level].
+ *
+ * @param root - root node of the tree
+ * @param self - whether to visit the current node along with child nodes
+ * @param recursive - whether to visit all descendant nodes in tree-order or
+ * only the immediate child nodes
+ */
+ XMLBuilderImpl.prototype._getFirstDescendantNode = function (root, self, recursive) {
+ if (self)
+ return [this._domNode, 0, 0];
+ else if (recursive)
+ return this._getNextDescendantNode(root, root, recursive, 0, 0);
+ else
+ return [this._domNode.firstChild, 0, 1];
};
-
- XMLNode.prototype.setUserData = function(key, data, handler) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ /**
+ * Gets the next descendant of the given node of the tree rooted at `root`
+ * in depth-first pre-order. Returns a three-tuple with
+ * [descendant, descendant_index, descendant_level].
+ *
+ * @param root - root node of the tree
+ * @param node - current node
+ * @param recursive - whether to visit all descendant nodes in tree-order or
+ * only the immediate child nodes
+ * @param index - child node index
+ * @param level - current depth of the XML tree
+ */
+ XMLBuilderImpl.prototype._getNextDescendantNode = function (root, node, recursive, index, level) {
+ if (recursive) {
+ // traverse child nodes
+ if (node.firstChild)
+ return [node.firstChild, 0, level + 1];
+ if (node === root)
+ return [null, -1, -1];
+ // traverse siblings
+ if (node.nextSibling)
+ return [node.nextSibling, index + 1, level];
+ // traverse parent's next sibling
+ var parent = node.parentNode;
+ while (parent && parent !== root) {
+ if (parent.nextSibling)
+ return [parent.nextSibling, algorithm_1.tree_index(parent.nextSibling), level - 1];
+ parent = parent.parentNode;
+ level--;
+ }
+ }
+ else {
+ if (root === node)
+ return [node.firstChild, 0, level + 1];
+ else
+ return [node.nextSibling, index + 1, level];
+ }
+ return [null, -1, -1];
};
-
- XMLNode.prototype.getUserData = function(key) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ /**
+ * Converts the node into its string or object representation.
+ *
+ * @param options - serialization options
+ */
+ XMLBuilderImpl.prototype._serialize = function (writerOptions) {
+ if (writerOptions.format === "xml") {
+ var writer = new writers_1.XMLWriter(this._options, writerOptions);
+ return writer.serialize(this.node);
+ }
+ else if (writerOptions.format === "map") {
+ var writer = new writers_1.MapWriter(this._options, writerOptions);
+ return writer.serialize(this.node);
+ }
+ else if (writerOptions.format === "object") {
+ var writer = new writers_1.ObjectWriter(this._options, writerOptions);
+ return writer.serialize(this.node);
+ }
+ else if (writerOptions.format === "json") {
+ var writer = new writers_1.JSONWriter(this._options, writerOptions);
+ return writer.serialize(this.node);
+ }
+ else if (writerOptions.format === "yaml") {
+ var writer = new writers_1.YAMLWriter(this._options, writerOptions);
+ return writer.serialize(this.node);
+ }
+ else {
+ throw new Error("Invalid writer format: " + writerOptions.format + ". " + this._debugInfo());
+ }
};
-
- XMLNode.prototype.contains = function(other) {
- if (!other) {
- return false;
- }
- return other === this || this.isDescendant(other);
+ /**
+ * Extracts a namespace and name from the given string.
+ *
+ * @param namespace - namespace
+ * @param name - a string containing both a name and namespace separated by an
+ * `'@'` character
+ * @param ele - `true` if this is an element namespace; otherwise `false`
+ */
+ XMLBuilderImpl.prototype._extractNamespace = function (namespace, name, ele) {
+ // extract from name
+ var atIndex = name.indexOf("@");
+ if (atIndex > 0) {
+ if (namespace === undefined)
+ namespace = name.slice(atIndex + 1);
+ name = name.slice(0, atIndex);
+ }
+ if (namespace === undefined) {
+ // look-up default namespace
+ namespace = (ele ? this._options.defaultNamespace.ele : this._options.defaultNamespace.att);
+ }
+ else if (namespace !== null && namespace[0] === "@") {
+ // look-up namespace aliases
+ var alias = namespace.slice(1);
+ namespace = this._options.namespaceAlias[alias];
+ if (namespace === undefined) {
+ throw new Error("Namespace alias `" + alias + "` is not defined. " + this._debugInfo());
+ }
+ }
+ return [namespace, name];
};
-
- XMLNode.prototype.isDescendant = function(node) {
- var child, isDescendantChild, j, len, ref2;
- ref2 = this.children;
- for (j = 0, len = ref2.length; j < len; j++) {
- child = ref2[j];
- if (node === child) {
- return true;
+ /**
+ * Updates the element's namespace.
+ *
+ * @param ns - new namespace
+ */
+ XMLBuilderImpl.prototype._updateNamespace = function (ns) {
+ var e_2, _a, e_3, _b;
+ var ele = this._domNode;
+ if (util_2.Guard.isElementNode(ele) && ns !== null && ele.namespaceURI !== ns) {
+ var _c = __read(algorithm_1.namespace_extractQName(ele.prefix ? ele.prefix + ':' + ele.localName : ele.localName), 2), elePrefix = _c[0], eleLocalName = _c[1];
+ // re-create the element node if its namespace changed
+ // we can't simply change the namespaceURI since its read-only
+ var newEle = algorithm_1.create_element(this._doc, eleLocalName, ns, elePrefix);
+ try {
+ for (var _d = __values(ele.attributes), _e = _d.next(); !_e.done; _e = _d.next()) {
+ var attr = _e.value;
+ var attrQName = attr.prefix ? attr.prefix + ':' + attr.localName : attr.localName;
+ var _f = __read(algorithm_1.namespace_extractQName(attrQName), 1), attrPrefix = _f[0];
+ var newAttrNS = attr.namespaceURI;
+ if (newAttrNS === null && attrPrefix !== null) {
+ newAttrNS = ele.lookupNamespaceURI(attrPrefix);
+ }
+ if (newAttrNS === null) {
+ newEle.setAttribute(attrQName, attr.value);
+ }
+ else {
+ newEle.setAttributeNS(newAttrNS, attrQName, attr.value);
+ }
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ // replace the new node in parent node
+ var parent = ele.parentNode;
+ /* istanbul ignore next */
+ if (parent === null) {
+ throw new Error("Parent node is null." + this._debugInfo());
+ }
+ parent.replaceChild(newEle, ele);
+ this._domNode = newEle;
+ try {
+ // check child nodes
+ for (var _g = __values(ele.childNodes), _h = _g.next(); !_h.done; _h = _g.next()) {
+ var childNode = _h.value;
+ var newChildNode = childNode.cloneNode(true);
+ newEle.appendChild(newChildNode);
+ if (util_2.Guard.isElementNode(newChildNode)) {
+ var _j = __read(algorithm_1.namespace_extractQName(newChildNode.prefix ? newChildNode.prefix + ':' + newChildNode.localName : newChildNode.localName), 1), newChildNodePrefix = _j[0];
+ var newChildNodeNS = newEle.lookupNamespaceURI(newChildNodePrefix);
+ new XMLBuilderImpl(newChildNode)._updateNamespace(newChildNodeNS);
+ }
+ }
+ }
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
+ finally {
+ try {
+ if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
+ }
+ finally { if (e_3) throw e_3.error; }
+ }
}
- isDescendantChild = child.isDescendant(node);
- if (isDescendantChild) {
- return true;
+ };
+ Object.defineProperty(XMLBuilderImpl.prototype, "_doc", {
+ /**
+ * Returns the document owning this node.
+ */
+ get: function () {
+ var node = this.node;
+ if (util_2.Guard.isDocumentNode(node)) {
+ return node;
+ }
+ else {
+ var docNode = node.ownerDocument;
+ /* istanbul ignore next */
+ if (!docNode)
+ throw new Error("Owner document is null. " + this._debugInfo());
+ return docNode;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Returns debug information for this node.
+ *
+ * @param name - node name
+ */
+ XMLBuilderImpl.prototype._debugInfo = function (name) {
+ var node = this.node;
+ var parentNode = node.parentNode;
+ name = name || node.nodeName;
+ var parentName = parentNode ? parentNode.nodeName : '';
+ if (!parentName) {
+ return "node: <" + name + ">";
+ }
+ else {
+ return "node: <" + name + ">, parent: <" + parentName + ">";
}
- }
- return false;
};
+ Object.defineProperty(XMLBuilderImpl.prototype, "_options", {
+ /**
+ * Gets or sets builder options.
+ */
+ get: function () {
+ var doc = this._doc;
+ /* istanbul ignore next */
+ if (doc._xmlBuilderOptions === undefined) {
+ throw new Error("Builder options is not set.");
+ }
+ return doc._xmlBuilderOptions;
+ },
+ set: function (value) {
+ var doc = this._doc;
+ doc._xmlBuilderOptions = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return XMLBuilderImpl;
+}());
+exports.XMLBuilderImpl = XMLBuilderImpl;
+//# sourceMappingURL=XMLBuilderImpl.js.map
- XMLNode.prototype.isAncestor = function(node) {
- return node.isDescendant(this);
- };
+/***/ }),
- XMLNode.prototype.isPreceding = function(node) {
- var nodePos, thisPos;
- nodePos = this.treePosition(node);
- thisPos = this.treePosition(this);
- if (nodePos === -1 || thisPos === -1) {
- return false;
- } else {
- return nodePos < thisPos;
- }
- };
+/***/ 770:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
- XMLNode.prototype.isFollowing = function(node) {
- var nodePos, thisPos;
- nodePos = this.treePosition(node);
- thisPos = this.treePosition(this);
- if (nodePos === -1 || thisPos === -1) {
- return false;
- } else {
- return nodePos > thisPos;
- }
- };
+"use strict";
- XMLNode.prototype.treePosition = function(node) {
- var found, pos;
- pos = 0;
- found = false;
- this.foreachTreeNode(this.document(), function(childNode) {
- pos++;
- if (!found && childNode === node) {
- return found = true;
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var dom_1 = __nccwpck_require__(4646);
+var dom_2 = __nccwpck_require__(633);
+var util_1 = __nccwpck_require__(6195);
+dom_2.dom.setFeatures(false);
+/**
+ * Creates an XML document without any child nodes.
+ */
+function createDocument() {
+ var impl = new dom_1.DOMImplementation();
+ var doc = impl.createDocument(null, 'root', null);
+ /* istanbul ignore else */
+ if (doc.documentElement) {
+ doc.removeChild(doc.documentElement);
+ }
+ return doc;
+}
+exports.createDocument = createDocument;
+/**
+ * Sanitizes input strings with user supplied replacement characters.
+ *
+ * @param str - input string
+ * @param replacement - replacement character or function
+ */
+function sanitizeInput(str, replacement) {
+ if (str == null) {
+ return str;
+ }
+ else if (replacement === undefined) {
+ return str + "";
+ }
+ else {
+ var result = "";
+ str = str + "";
+ for (var i = 0; i < str.length; i++) {
+ var n = str.charCodeAt(i);
+ // #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
+ if (n === 0x9 || n === 0xA || n === 0xD ||
+ (n >= 0x20 && n <= 0xD7FF) ||
+ (n >= 0xE000 && n <= 0xFFFD)) {
+ // valid character - not surrogate pair
+ result += str.charAt(i);
+ }
+ else if (n >= 0xD800 && n <= 0xDBFF && i < str.length - 1) {
+ var n2 = str.charCodeAt(i + 1);
+ if (n2 >= 0xDC00 && n2 <= 0xDFFF) {
+ // valid surrogate pair
+ n = (n - 0xD800) * 0x400 + n2 - 0xDC00 + 0x10000;
+ result += String.fromCodePoint(n);
+ i++;
+ }
+ else {
+ // invalid lone surrogate
+ result += util_1.isString(replacement) ? replacement : replacement(str.charAt(i), i, str);
+ }
+ }
+ else {
+ // invalid character
+ result += util_1.isString(replacement) ? replacement : replacement(str.charAt(i), i, str);
+ }
}
- });
- if (found) {
- return pos;
- } else {
- return -1;
- }
- };
+ return result;
+ }
+}
+exports.sanitizeInput = sanitizeInput;
+//# sourceMappingURL=dom.js.map
- XMLNode.prototype.foreachTreeNode = function(node, func) {
- var child, j, len, ref2, res;
- node || (node = this.document());
- ref2 = node.children;
- for (j = 0, len = ref2.length; j < len; j++) {
- child = ref2[j];
- if (res = func(child)) {
- return res;
- } else {
- res = this.foreachTreeNode(child, func);
- if (res) {
- return res;
- }
- }
- }
- };
+/***/ }),
- return XMLNode;
+/***/ 4260:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
- })();
+"use strict";
-}).call(this);
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var XMLBuilderImpl_1 = __nccwpck_require__(8248);
+exports.XMLBuilderImpl = XMLBuilderImpl_1.XMLBuilderImpl;
+var XMLBuilderCBImpl_1 = __nccwpck_require__(1438);
+exports.XMLBuilderCBImpl = XMLBuilderCBImpl_1.XMLBuilderCBImpl;
+var BuilderFunctions_1 = __nccwpck_require__(5926);
+exports.builder = BuilderFunctions_1.builder;
+exports.create = BuilderFunctions_1.create;
+exports.fragment = BuilderFunctions_1.fragment;
+exports.convert = BuilderFunctions_1.convert;
+var BuilderFunctionsCB_1 = __nccwpck_require__(268);
+exports.createCB = BuilderFunctionsCB_1.createCB;
+exports.fragmentCB = BuilderFunctionsCB_1.fragmentCB;
+//# sourceMappingURL=index.js.map
+
+/***/ }),
+
+/***/ 151:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var builder_1 = __nccwpck_require__(4260);
+exports.builder = builder_1.builder;
+exports.create = builder_1.create;
+exports.fragment = builder_1.fragment;
+exports.convert = builder_1.convert;
+exports.createCB = builder_1.createCB;
+exports.fragmentCB = builder_1.fragmentCB;
+//# sourceMappingURL=index.js.map
/***/ }),
-/***/ 6768:
-/***/ (function(module) {
+/***/ 8033:
+/***/ ((__unused_webpack_module, exports) => {
-// Generated by CoffeeScript 1.12.7
-(function() {
- var XMLNodeList;
+"use strict";
- module.exports = XMLNodeList = (function() {
- function XMLNodeList(nodes) {
- this.nodes = nodes;
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Defines default values for builder options.
+ */
+exports.DefaultBuilderOptions = {
+ version: "1.0",
+ encoding: undefined,
+ standalone: undefined,
+ keepNullNodes: false,
+ keepNullAttributes: false,
+ ignoreConverters: false,
+ convert: {
+ att: "@",
+ ins: "?",
+ text: "#",
+ cdata: "$",
+ comment: "!"
+ },
+ defaultNamespace: {
+ ele: undefined,
+ att: undefined
+ },
+ namespaceAlias: {
+ html: "http://www.w3.org/1999/xhtml",
+ xml: "http://www.w3.org/XML/1998/namespace",
+ xmlns: "http://www.w3.org/2000/xmlns/",
+ mathml: "http://www.w3.org/1998/Math/MathML",
+ svg: "http://www.w3.org/2000/svg",
+ xlink: "http://www.w3.org/1999/xlink"
+ },
+ invalidCharReplacement: undefined,
+ parser: undefined
+};
+/**
+ * Contains keys of `XMLBuilderOptions`.
+ */
+exports.XMLBuilderOptionKeys = new Set(Object.keys(exports.DefaultBuilderOptions));
+/**
+ * Defines default values for builder options.
+ */
+exports.DefaultXMLBuilderCBOptions = {
+ format: "xml",
+ wellFormed: false,
+ prettyPrint: false,
+ indent: " ",
+ newline: "\n",
+ offset: 0,
+ width: 0,
+ allowEmptyTags: false,
+ spaceBeforeSlash: false,
+ keepNullNodes: false,
+ keepNullAttributes: false,
+ ignoreConverters: false,
+ convert: {
+ att: "@",
+ ins: "?",
+ text: "#",
+ cdata: "$",
+ comment: "!"
+ },
+ defaultNamespace: {
+ ele: undefined,
+ att: undefined
+ },
+ namespaceAlias: {
+ html: "http://www.w3.org/1999/xhtml",
+ xml: "http://www.w3.org/XML/1998/namespace",
+ xmlns: "http://www.w3.org/2000/xmlns/",
+ mathml: "http://www.w3.org/1998/Math/MathML",
+ svg: "http://www.w3.org/2000/svg",
+ xlink: "http://www.w3.org/1999/xlink"
}
+};
+//# sourceMappingURL=interfaces.js.map
- Object.defineProperty(XMLNodeList.prototype, 'length', {
- get: function() {
- return this.nodes.length || 0;
- }
- });
+/***/ }),
- XMLNodeList.prototype.clone = function() {
- return this.nodes = null;
- };
+/***/ 3396:
+/***/ ((__unused_webpack_module, exports) => {
- XMLNodeList.prototype.item = function(index) {
- return this.nodes[index] || null;
+"use strict";
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Pre-serializes XML nodes.
+ */
+var BaseReader = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `BaseReader`.
+ *
+ * @param builderOptions - XML builder options
+ */
+ function BaseReader(builderOptions) {
+ this._builderOptions = builderOptions;
+ if (builderOptions.parser) {
+ Object.assign(this, builderOptions.parser);
+ }
+ }
+ BaseReader.prototype._docType = function (parent, name, publicId, systemId) {
+ return parent.dtd({ name: name, pubID: publicId, sysID: systemId });
+ };
+ BaseReader.prototype._comment = function (parent, data) {
+ return parent.com(data);
+ };
+ BaseReader.prototype._text = function (parent, data) {
+ return parent.txt(data);
+ };
+ BaseReader.prototype._instruction = function (parent, target, data) {
+ return parent.ins(target, data);
+ };
+ BaseReader.prototype._cdata = function (parent, data) {
+ return parent.dat(data);
+ };
+ BaseReader.prototype._element = function (parent, namespace, name) {
+ return (namespace === undefined ? parent.ele(name) : parent.ele(namespace, name));
+ };
+ BaseReader.prototype._attribute = function (parent, namespace, name, value) {
+ return (namespace === undefined ? parent.att(name, value) : parent.att(namespace, name, value));
+ };
+ /**
+ * Main parser function which parses the given object and returns an XMLBuilder.
+ *
+ * @param node - node to recieve parsed content
+ * @param obj - object to parse
+ */
+ BaseReader.prototype.parse = function (node, obj) {
+ return this._parse(node, obj);
+ };
+ /**
+ * Creates a DocType node.
+ * The node will be skipped if the function returns `undefined`.
+ *
+ * @param name - node name
+ * @param publicId - public identifier
+ * @param systemId - system identifier
+ */
+ BaseReader.prototype.docType = function (parent, name, publicId, systemId) {
+ return this._docType(parent, name, publicId, systemId);
+ };
+ /**
+ * Creates a comment node.
+ * The node will be skipped if the function returns `undefined`.
+ *
+ * @param parent - parent node
+ * @param data - node data
+ */
+ BaseReader.prototype.comment = function (parent, data) {
+ return this._comment(parent, data);
+ };
+ /**
+ * Creates a text node.
+ * The node will be skipped if the function returns `undefined`.
+ *
+ * @param parent - parent node
+ * @param data - node data
+ */
+ BaseReader.prototype.text = function (parent, data) {
+ return this._text(parent, data);
+ };
+ /**
+ * Creates a processing instruction node.
+ * The node will be skipped if the function returns `undefined`.
+ *
+ * @param parent - parent node
+ * @param target - instruction target
+ * @param data - node data
+ */
+ BaseReader.prototype.instruction = function (parent, target, data) {
+ return this._instruction(parent, target, data);
+ };
+ /**
+ * Creates a CData section node.
+ * The node will be skipped if the function returns `undefined`.
+ *
+ * @param parent - parent node
+ * @param data - node data
+ */
+ BaseReader.prototype.cdata = function (parent, data) {
+ return this._cdata(parent, data);
+ };
+ /**
+ * Creates an element node.
+ * The node will be skipped if the function returns `undefined`.
+ *
+ * @param parent - parent node
+ * @param namespace - node namespace
+ * @param name - node name
+ */
+ BaseReader.prototype.element = function (parent, namespace, name) {
+ return this._element(parent, namespace, name);
+ };
+ /**
+ * Creates an attribute or namespace declaration.
+ * The node will be skipped if the function returns `undefined`.
+ *
+ * @param parent - parent node
+ * @param namespace - node namespace
+ * @param name - node name
+ * @param value - node value
+ */
+ BaseReader.prototype.attribute = function (parent, namespace, name, value) {
+ return this._attribute(parent, namespace, name, value);
};
+ return BaseReader;
+}());
+exports.BaseReader = BaseReader;
+//# sourceMappingURL=BaseReader.js.map
- return XMLNodeList;
+/***/ }),
- })();
+/***/ 3518:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-}).call(this);
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var ObjectReader_1 = __nccwpck_require__(768);
+var BaseReader_1 = __nccwpck_require__(3396);
+/**
+ * Parses XML nodes from a JSON string.
+ */
+var JSONReader = /** @class */ (function (_super) {
+ __extends(JSONReader, _super);
+ function JSONReader() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ /**
+ * Parses the given document representation.
+ *
+ * @param node - node receive parsed XML nodes
+ * @param str - JSON string to parse
+ */
+ JSONReader.prototype._parse = function (node, str) {
+ return new ObjectReader_1.ObjectReader(this._builderOptions).parse(node, JSON.parse(str));
+ };
+ return JSONReader;
+}(BaseReader_1.BaseReader));
+exports.JSONReader = JSONReader;
+//# sourceMappingURL=JSONReader.js.map
/***/ }),
-/***/ 6939:
-/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
+/***/ 768:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-// Generated by CoffeeScript 1.12.7
-(function() {
- var NodeType, XMLCharacterData, XMLProcessingInstruction,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
+"use strict";
- NodeType = __nccwpck_require__(9267);
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var util_1 = __nccwpck_require__(6195);
+var BaseReader_1 = __nccwpck_require__(3396);
+var dom_1 = __nccwpck_require__(770);
+/**
+ * Parses XML nodes from objects and arrays.
+ * ES6 maps and sets are also supoorted.
+ */
+var ObjectReader = /** @class */ (function (_super) {
+ __extends(ObjectReader, _super);
+ function ObjectReader() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ /**
+ * Parses the given document representation.
+ *
+ * @param node - node receive parsed XML nodes
+ * @param obj - object to parse
+ */
+ ObjectReader.prototype._parse = function (node, obj) {
+ var _this = this;
+ var options = this._builderOptions;
+ // sanitizes input characters
+ var invalidCharReplacement = options.invalidCharReplacement;
+ var s = function (str) {
+ return dom_1.sanitizeInput(str, invalidCharReplacement);
+ };
+ var lastChild = null;
+ if (util_1.isFunction(obj)) {
+ // evaluate if function
+ lastChild = this.parse(node, obj.apply(this));
+ }
+ else if (util_1.isArray(obj) || util_1.isSet(obj)) {
+ util_1.forEachArray(obj, function (item) { return lastChild = _this.parse(node, item); }, this);
+ }
+ else /* if (isMap(obj) || isObject(obj)) */ {
+ // expand if object
+ util_1.forEachObject(obj, function (key, val) {
+ if (util_1.isFunction(val)) {
+ // evaluate if function
+ val = val.apply(_this);
+ }
+ if (!options.ignoreConverters && key.indexOf(options.convert.att) === 0) {
+ // assign attributes
+ if (key === options.convert.att) {
+ if (util_1.isArray(val) || util_1.isSet(val)) {
+ throw new Error("Invalid attribute: " + val.toString() + ". " + node._debugInfo());
+ }
+ else /* if (isMap(val) || isObject(val)) */ {
+ util_1.forEachObject(val, function (attrKey, attrVal) {
+ lastChild = _this.attribute(node, undefined, s(attrKey), s(attrVal)) || lastChild;
+ });
+ }
+ }
+ else {
+ lastChild = _this.attribute(node, undefined, s(key.substr(options.convert.att.length)), s(val)) || lastChild;
+ }
+ }
+ else if (!options.ignoreConverters && key.indexOf(options.convert.text) === 0) {
+ // text node
+ if (util_1.isMap(val) || util_1.isObject(val)) {
+ // if the key is #text expand child nodes under this node to support mixed content
+ lastChild = _this.parse(node, val);
+ }
+ else {
+ lastChild = _this.text(node, s(val)) || lastChild;
+ }
+ }
+ else if (!options.ignoreConverters && key.indexOf(options.convert.cdata) === 0) {
+ // cdata node
+ if (util_1.isArray(val) || util_1.isSet(val)) {
+ util_1.forEachArray(val, function (item) { return lastChild = _this.cdata(node, s(item)) || lastChild; }, _this);
+ }
+ else {
+ lastChild = _this.cdata(node, s(val)) || lastChild;
+ }
+ }
+ else if (!options.ignoreConverters && key.indexOf(options.convert.comment) === 0) {
+ // comment node
+ if (util_1.isArray(val) || util_1.isSet(val)) {
+ util_1.forEachArray(val, function (item) { return lastChild = _this.comment(node, s(item)) || lastChild; }, _this);
+ }
+ else {
+ lastChild = _this.comment(node, s(val)) || lastChild;
+ }
+ }
+ else if (!options.ignoreConverters && key.indexOf(options.convert.ins) === 0) {
+ // processing instruction
+ if (util_1.isString(val)) {
+ var insIndex = val.indexOf(' ');
+ var insTarget = (insIndex === -1 ? val : val.substr(0, insIndex));
+ var insValue = (insIndex === -1 ? '' : val.substr(insIndex + 1));
+ lastChild = _this.instruction(node, s(insTarget), s(insValue)) || lastChild;
+ }
+ else if (util_1.isArray(val) || util_1.isSet(val)) {
+ util_1.forEachArray(val, function (item) {
+ var insIndex = item.indexOf(' ');
+ var insTarget = (insIndex === -1 ? item : item.substr(0, insIndex));
+ var insValue = (insIndex === -1 ? '' : item.substr(insIndex + 1));
+ lastChild = _this.instruction(node, s(insTarget), s(insValue)) || lastChild;
+ }, _this);
+ }
+ else /* if (isMap(target) || isObject(target)) */ {
+ util_1.forEachObject(val, function (insTarget, insValue) { return lastChild = _this.instruction(node, s(insTarget), s(insValue)) || lastChild; }, _this);
+ }
+ }
+ else if ((util_1.isArray(val) || util_1.isSet(val)) && util_1.isEmpty(val)) {
+ // skip empty arrays
+ }
+ else if ((util_1.isMap(val) || util_1.isObject(val)) && util_1.isEmpty(val)) {
+ // empty objects produce one node
+ lastChild = _this.element(node, undefined, s(key)) || lastChild;
+ }
+ else if (!options.keepNullNodes && (val == null)) {
+ // skip null and undefined nodes
+ }
+ else if (util_1.isArray(val) || util_1.isSet(val)) {
+ // expand list by creating child nodes
+ util_1.forEachArray(val, function (item) {
+ var childNode = {};
+ childNode[key] = item;
+ lastChild = _this.parse(node, childNode);
+ }, _this);
+ }
+ else if (util_1.isMap(val) || util_1.isObject(val)) {
+ // create a parent node
+ var parent = _this.element(node, undefined, key);
+ if (parent) {
+ lastChild = parent;
+ // expand child nodes under parent
+ _this.parse(parent, val);
+ }
+ }
+ else if (val != null && val !== '') {
+ // leaf element node with a single text node
+ var parent = _this.element(node, undefined, key);
+ if (parent) {
+ lastChild = parent;
+ _this.text(parent, s(val));
+ }
+ }
+ else {
+ // leaf element node
+ lastChild = _this.element(node, undefined, s(key)) || lastChild;
+ }
+ }, this);
+ }
+ return lastChild || node;
+ };
+ return ObjectReader;
+}(BaseReader_1.BaseReader));
+exports.ObjectReader = ObjectReader;
+//# sourceMappingURL=ObjectReader.js.map
- XMLCharacterData = __nccwpck_require__(7709);
+/***/ }),
- module.exports = XMLProcessingInstruction = (function(superClass) {
- extend(XMLProcessingInstruction, superClass);
+/***/ 5044:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
- function XMLProcessingInstruction(parent, target, value) {
- XMLProcessingInstruction.__super__.constructor.call(this, parent);
- if (target == null) {
- throw new Error("Missing instruction target. " + this.debugInfo());
- }
- this.type = NodeType.ProcessingInstruction;
- this.target = this.stringify.insTarget(target);
- this.name = this.target;
- if (value) {
- this.value = this.stringify.insValue(value);
- }
- }
+"use strict";
- XMLProcessingInstruction.prototype.clone = function() {
- return Object.create(this);
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
};
-
- XMLProcessingInstruction.prototype.toString = function(options) {
- return this.options.writer.processingInstruction(this, this.options.writer.filterOptions(options));
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
-
- XMLProcessingInstruction.prototype.isEqualNode = function(node) {
- if (!XMLProcessingInstruction.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {
- return false;
- }
- if (node.target !== this.target) {
- return false;
- }
- return true;
+})();
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var XMLStringLexer_1 = __nccwpck_require__(7061);
+var interfaces_1 = __nccwpck_require__(3413);
+var infra_1 = __nccwpck_require__(4251);
+var algorithm_1 = __nccwpck_require__(61);
+var dom_1 = __nccwpck_require__(770);
+var BaseReader_1 = __nccwpck_require__(3396);
+/**
+ * Parses XML nodes from an XML document string.
+ */
+var XMLReader = /** @class */ (function (_super) {
+ __extends(XMLReader, _super);
+ function XMLReader() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ /**
+ * Parses the given document representation.
+ *
+ * @param node - node receive parsed XML nodes
+ * @param str - XML document string to parse
+ */
+ XMLReader.prototype._parse = function (node, str) {
+ var e_1, _a, e_2, _b;
+ var lexer = new XMLStringLexer_1.XMLStringLexer(str, { skipWhitespaceOnlyText: true });
+ // sanitizes input characters
+ var invalidCharReplacement = this._builderOptions.invalidCharReplacement;
+ var s = function (str) {
+ return dom_1.sanitizeInput(str, invalidCharReplacement);
+ };
+ var context = node;
+ var token = lexer.nextToken();
+ while (token.type !== interfaces_1.TokenType.EOF) {
+ switch (token.type) {
+ case interfaces_1.TokenType.Declaration:
+ var declaration = token;
+ var version = s(declaration.version);
+ if (version !== "1.0") {
+ throw new Error("Invalid xml version: " + version);
+ }
+ var builderOptions = {
+ version: version
+ };
+ if (declaration.encoding) {
+ builderOptions.encoding = s(declaration.encoding);
+ }
+ if (declaration.standalone) {
+ builderOptions.standalone = (s(declaration.standalone) === "yes");
+ }
+ context.set(builderOptions);
+ break;
+ case interfaces_1.TokenType.DocType:
+ var doctype = token;
+ context = this.docType(context, s(doctype.name), s(doctype.pubId), s(doctype.sysId)) || context;
+ break;
+ case interfaces_1.TokenType.CDATA:
+ var cdata = token;
+ context = this.cdata(context, s(cdata.data)) || context;
+ break;
+ case interfaces_1.TokenType.Comment:
+ var comment = token;
+ context = this.comment(context, s(comment.data)) || context;
+ break;
+ case interfaces_1.TokenType.PI:
+ var pi = token;
+ context = this.instruction(context, s(pi.target), s(pi.data)) || context;
+ break;
+ case interfaces_1.TokenType.Text:
+ var text = token;
+ context = this.text(context, s(text.data)) || context;
+ break;
+ case interfaces_1.TokenType.Element:
+ var element = token;
+ var elementName = s(element.name);
+ // inherit namespace from parent
+ var _c = __read(algorithm_1.namespace_extractQName(elementName), 1), prefix = _c[0];
+ var namespace = context.node.lookupNamespaceURI(prefix);
+ // override namespace if there is a namespace declaration
+ // attribute
+ // also lookup namespace declaration attributes
+ var nsDeclarations = {};
+ try {
+ for (var _d = (e_1 = void 0, __values(element.attributes)), _e = _d.next(); !_e.done; _e = _d.next()) {
+ var _f = __read(_e.value, 2), attName = _f[0], attValue = _f[1];
+ attName = s(attName);
+ attValue = s(attValue);
+ if (attName === "xmlns") {
+ namespace = attValue;
+ }
+ else {
+ var _g = __read(algorithm_1.namespace_extractQName(attName), 2), attPrefix = _g[0], attLocalName = _g[1];
+ if (attPrefix === "xmlns") {
+ if (attLocalName === prefix) {
+ namespace = attValue;
+ }
+ nsDeclarations[attLocalName] = attValue;
+ }
+ }
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ // create the DOM element node
+ var elementNode = (namespace !== null ?
+ this.element(context, namespace, elementName) :
+ this.element(context, undefined, elementName));
+ if (elementNode === undefined)
+ break;
+ try {
+ // assign attributes
+ for (var _h = (e_2 = void 0, __values(element.attributes)), _j = _h.next(); !_j.done; _j = _h.next()) {
+ var _k = __read(_j.value, 2), attName = _k[0], attValue = _k[1];
+ attName = s(attName);
+ attValue = s(attValue);
+ var _l = __read(algorithm_1.namespace_extractQName(attName), 2), attPrefix = _l[0], attLocalName = _l[1];
+ var attNamespace = null;
+ if (attPrefix === "xmlns" || (attPrefix === null && attLocalName === "xmlns")) {
+ // namespace declaration attribute
+ attNamespace = infra_1.namespace.XMLNS;
+ }
+ else {
+ attNamespace = elementNode.node.lookupNamespaceURI(attPrefix);
+ if (attNamespace !== null && elementNode.node.isDefaultNamespace(attNamespace)) {
+ attNamespace = null;
+ }
+ else if (attNamespace === null && attPrefix !== null) {
+ attNamespace = nsDeclarations[attPrefix] || null;
+ }
+ }
+ if (attNamespace !== null)
+ this.attribute(elementNode, attNamespace, attName, attValue);
+ else
+ this.attribute(elementNode, undefined, attName, attValue);
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (_j && !_j.done && (_b = _h.return)) _b.call(_h);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ if (!element.selfClosing) {
+ context = elementNode;
+ }
+ break;
+ case interfaces_1.TokenType.ClosingTag:
+ /* istanbul ignore else */
+ if (context.node.parentNode) {
+ context = context.up();
+ }
+ break;
+ }
+ token = lexer.nextToken();
+ }
+ return context;
};
-
- return XMLProcessingInstruction;
-
- })(XMLCharacterData);
-
-}).call(this);
-
+ return XMLReader;
+}(BaseReader_1.BaseReader));
+exports.XMLReader = XMLReader;
+//# sourceMappingURL=XMLReader.js.map
/***/ }),
-/***/ 6329:
-/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
-
-// Generated by CoffeeScript 1.12.7
-(function() {
- var NodeType, XMLNode, XMLRaw,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
-
- NodeType = __nccwpck_require__(9267);
-
- XMLNode = __nccwpck_require__(7608);
-
- module.exports = XMLRaw = (function(superClass) {
- extend(XMLRaw, superClass);
+/***/ 2475:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
- function XMLRaw(parent, text) {
- XMLRaw.__super__.constructor.call(this, parent);
- if (text == null) {
- throw new Error("Missing raw text. " + this.debugInfo());
- }
- this.type = NodeType.Raw;
- this.value = this.stringify.raw(text);
- }
+"use strict";
- XMLRaw.prototype.clone = function() {
- return Object.create(this);
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
};
-
- XMLRaw.prototype.toString = function(options) {
- return this.options.writer.raw(this, this.options.writer.filterOptions(options));
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var ObjectReader_1 = __nccwpck_require__(768);
+var BaseReader_1 = __nccwpck_require__(3396);
+var js_yaml_1 = __nccwpck_require__(1917);
+/**
+ * Parses XML nodes from a YAML string.
+ */
+var YAMLReader = /** @class */ (function (_super) {
+ __extends(YAMLReader, _super);
+ function YAMLReader() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ /**
+ * Parses the given document representation.
+ *
+ * @param node - node receive parsed XML nodes
+ * @param str - YAML string to parse
+ */
+ YAMLReader.prototype._parse = function (node, str) {
+ var result = js_yaml_1.safeLoad(str);
+ /* istanbul ignore next */
+ if (result === undefined) {
+ throw new Error("Unable to parse YAML document.");
+ }
+ return new ObjectReader_1.ObjectReader(this._builderOptions).parse(node, result);
};
+ return YAMLReader;
+}(BaseReader_1.BaseReader));
+exports.YAMLReader = YAMLReader;
+//# sourceMappingURL=YAMLReader.js.map
- return XMLRaw;
+/***/ }),
- })(XMLNode);
+/***/ 560:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-}).call(this);
+"use strict";
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var XMLReader_1 = __nccwpck_require__(5044);
+exports.XMLReader = XMLReader_1.XMLReader;
+var ObjectReader_1 = __nccwpck_require__(768);
+exports.ObjectReader = ObjectReader_1.ObjectReader;
+var JSONReader_1 = __nccwpck_require__(3518);
+exports.JSONReader = JSONReader_1.JSONReader;
+var YAMLReader_1 = __nccwpck_require__(2475);
+exports.YAMLReader = YAMLReader_1.YAMLReader;
+//# sourceMappingURL=index.js.map
/***/ }),
-/***/ 8601:
-/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
-
-// Generated by CoffeeScript 1.12.7
-(function() {
- var NodeType, WriterState, XMLStreamWriter, XMLWriterBase,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
+/***/ 708:
+/***/ ((__unused_webpack_module, exports) => {
- NodeType = __nccwpck_require__(9267);
+"use strict";
- XMLWriterBase = __nccwpck_require__(6752);
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+/**
+ * Pre-serializes XML nodes.
+ */
+var BaseCBWriter = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `BaseCBWriter`.
+ *
+ * @param builderOptions - XML builder options
+ */
+ function BaseCBWriter(builderOptions) {
+ /**
+ * Gets the current depth of the XML tree.
+ */
+ this.level = 0;
+ this._builderOptions = builderOptions;
+ this._writerOptions = builderOptions;
+ }
+ return BaseCBWriter;
+}());
+exports.BaseCBWriter = BaseCBWriter;
+//# sourceMappingURL=BaseCBWriter.js.map
- WriterState = __nccwpck_require__(9766);
+/***/ }),
- module.exports = XMLStreamWriter = (function(superClass) {
- extend(XMLStreamWriter, superClass);
+/***/ 7644:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
- function XMLStreamWriter(stream, options) {
- this.stream = stream;
- XMLStreamWriter.__super__.constructor.call(this, options);
- }
+"use strict";
- XMLStreamWriter.prototype.endline = function(node, options, level) {
- if (node.isLastRootNode && options.state === WriterState.CloseTag) {
- return '';
- } else {
- return XMLStreamWriter.__super__.endline.call(this, node, options, level);
- }
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
};
-
- XMLStreamWriter.prototype.document = function(doc, options) {
- var child, i, j, k, len, len1, ref, ref1, results;
- ref = doc.children;
- for (i = j = 0, len = ref.length; j < len; i = ++j) {
- child = ref[i];
- child.isLastRootNode = i === doc.children.length - 1;
- }
- options = this.filterOptions(options);
- ref1 = doc.children;
- results = [];
- for (k = 0, len1 = ref1.length; k < len1; k++) {
- child = ref1[k];
- results.push(this.writeChildNode(child, options, 0));
- }
- return results;
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+var __spread = (this && this.__spread) || function () {
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
+ return ar;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var interfaces_1 = __nccwpck_require__(7305);
+var LocalNameSet_1 = __nccwpck_require__(9049);
+var NamespacePrefixMap_1 = __nccwpck_require__(283);
+var infra_1 = __nccwpck_require__(4251);
+var algorithm_1 = __nccwpck_require__(61);
+/**
+ * Pre-serializes XML nodes.
+ */
+var BaseWriter = /** @class */ (function () {
+ /**
+ * Initializes a new instance of `BaseWriter`.
+ *
+ * @param builderOptions - XML builder options
+ */
+ function BaseWriter(builderOptions) {
+ /**
+ * Gets the current depth of the XML tree.
+ */
+ this.level = 0;
+ this._builderOptions = builderOptions;
+ }
+ /**
+ * Used by derived classes to serialize the XML declaration.
+ *
+ * @param version - a version number string
+ * @param encoding - encoding declaration
+ * @param standalone - standalone document declaration
+ */
+ BaseWriter.prototype.declaration = function (version, encoding, standalone) { };
+ /**
+ * Used by derived classes to serialize a DocType node.
+ *
+ * @param name - node name
+ * @param publicId - public identifier
+ * @param systemId - system identifier
+ */
+ BaseWriter.prototype.docType = function (name, publicId, systemId) { };
+ /**
+ * Used by derived classes to serialize a comment node.
+ *
+ * @param data - node data
+ */
+ BaseWriter.prototype.comment = function (data) { };
+ /**
+ * Used by derived classes to serialize a text node.
+ *
+ * @param data - node data
+ */
+ BaseWriter.prototype.text = function (data) { };
+ /**
+ * Used by derived classes to serialize a processing instruction node.
+ *
+ * @param target - instruction target
+ * @param data - node data
+ */
+ BaseWriter.prototype.instruction = function (target, data) { };
+ /**
+ * Used by derived classes to serialize a CData section node.
+ *
+ * @param data - node data
+ */
+ BaseWriter.prototype.cdata = function (data) { };
+ /**
+ * Used by derived classes to serialize the beginning of the opening tag of an
+ * element node.
+ *
+ * @param name - node name
+ */
+ BaseWriter.prototype.openTagBegin = function (name) { };
+ /**
+ * Used by derived classes to serialize the ending of the opening tag of an
+ * element node.
+ *
+ * @param name - node name
+ * @param selfClosing - whether the element node is self closing
+ * @param voidElement - whether the element node is a HTML void element
+ */
+ BaseWriter.prototype.openTagEnd = function (name, selfClosing, voidElement) { };
+ /**
+ * Used by derived classes to serialize the closing tag of an element node.
+ *
+ * @param name - node name
+ */
+ BaseWriter.prototype.closeTag = function (name) { };
+ /**
+ * Used by derived classes to serialize attributes or namespace declarations.
+ *
+ * @param attributes - attribute array
+ */
+ BaseWriter.prototype.attributes = function (attributes) {
+ var e_1, _a;
+ try {
+ for (var attributes_1 = __values(attributes), attributes_1_1 = attributes_1.next(); !attributes_1_1.done; attributes_1_1 = attributes_1.next()) {
+ var attr = attributes_1_1.value;
+ this.attribute(attr[1] === null ? attr[2] : attr[1] + ':' + attr[2], attr[3]);
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (attributes_1_1 && !attributes_1_1.done && (_a = attributes_1.return)) _a.call(attributes_1);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
};
-
- XMLStreamWriter.prototype.attribute = function(att, options, level) {
- return this.stream.write(XMLStreamWriter.__super__.attribute.call(this, att, options, level));
+ /**
+ * Used by derived classes to serialize an attribute or namespace declaration.
+ *
+ * @param name - node name
+ * @param value - node value
+ */
+ BaseWriter.prototype.attribute = function (name, value) { };
+ /**
+ * Used by derived classes to perform any pre-processing steps before starting
+ * serializing an element node.
+ *
+ * @param name - node name
+ */
+ BaseWriter.prototype.beginElement = function (name) { };
+ /**
+ * Used by derived classes to perform any post-processing steps after
+ * completing serializing an element node.
+ *
+ * @param name - node name
+ */
+ BaseWriter.prototype.endElement = function (name) { };
+ /**
+ * Produces an XML serialization of the given node. The pre-serializer inserts
+ * namespace declarations where necessary and produces qualified names for
+ * nodes and attributes.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ BaseWriter.prototype.serializeNode = function (node, requireWellFormed, noDoubleEncoding) {
+ var hasNamespaces = (node._nodeDocument !== undefined && node._nodeDocument._hasNamespaces);
+ this.level = 0;
+ this.currentNode = node;
+ if (hasNamespaces) {
+ /** From: https://w3c.github.io/DOM-Parsing/#xml-serialization
+ *
+ * 1. Let namespace be a context namespace with value null.
+ * The context namespace tracks the XML serialization algorithm's current
+ * default namespace. The context namespace is changed when either an Element
+ * Node has a default namespace declaration, or the algorithm generates a
+ * default namespace declaration for the Element Node to match its own
+ * namespace. The algorithm assumes no namespace (null) to start.
+ * 2. Let prefix map be a new namespace prefix map.
+ * 3. Add the XML namespace with prefix value "xml" to prefix map.
+ * 4. Let prefix index be a generated namespace prefix index with value 1.
+ * The generated namespace prefix index is used to generate a new unique
+ * prefix value when no suitable existing namespace prefix is available to
+ * serialize a node's namespaceURI (or the namespaceURI of one of node's
+ * attributes). See the generate a prefix algorithm.
+ */
+ var namespace = null;
+ var prefixMap = new NamespacePrefixMap_1.NamespacePrefixMap();
+ prefixMap.set("xml", infra_1.namespace.XML);
+ var prefixIndex = { value: 1 };
+ /**
+ * 5. Return the result of running the XML serialization algorithm on node
+ * passing the context namespace namespace, namespace prefix map prefix map,
+ * generated namespace prefix index reference to prefix index, and the
+ * flag require well-formed. If an exception occurs during the execution
+ * of the algorithm, then catch that exception and throw an
+ * "InvalidStateError" DOMException.
+ */
+ this._serializeNodeNS(node, namespace, prefixMap, prefixIndex, requireWellFormed, noDoubleEncoding);
+ }
+ else {
+ this._serializeNode(node, requireWellFormed, noDoubleEncoding);
+ }
};
-
- XMLStreamWriter.prototype.cdata = function(node, options, level) {
- return this.stream.write(XMLStreamWriter.__super__.cdata.call(this, node, options, level));
+ /**
+ * Produces an XML serialization of a node.
+ *
+ * @param node - node to serialize
+ * @param namespace - context namespace
+ * @param prefixMap - namespace prefix map
+ * @param prefixIndex - generated namespace prefix index
+ * @param requireWellFormed - whether to check conformance
+ */
+ BaseWriter.prototype._serializeNodeNS = function (node, namespace, prefixMap, prefixIndex, requireWellFormed, noDoubleEncoding) {
+ this.currentNode = node;
+ switch (node.nodeType) {
+ case interfaces_1.NodeType.Element:
+ this._serializeElementNS(node, namespace, prefixMap, prefixIndex, requireWellFormed, noDoubleEncoding);
+ break;
+ case interfaces_1.NodeType.Document:
+ this._serializeDocumentNS(node, namespace, prefixMap, prefixIndex, requireWellFormed, noDoubleEncoding);
+ break;
+ case interfaces_1.NodeType.Comment:
+ this._serializeComment(node, requireWellFormed, noDoubleEncoding);
+ break;
+ case interfaces_1.NodeType.Text:
+ this._serializeText(node, requireWellFormed, noDoubleEncoding);
+ break;
+ case interfaces_1.NodeType.DocumentFragment:
+ this._serializeDocumentFragmentNS(node, namespace, prefixMap, prefixIndex, requireWellFormed, noDoubleEncoding);
+ break;
+ case interfaces_1.NodeType.DocumentType:
+ this._serializeDocumentType(node, requireWellFormed, noDoubleEncoding);
+ break;
+ case interfaces_1.NodeType.ProcessingInstruction:
+ this._serializeProcessingInstruction(node, requireWellFormed, noDoubleEncoding);
+ break;
+ case interfaces_1.NodeType.CData:
+ this._serializeCData(node, requireWellFormed, noDoubleEncoding);
+ break;
+ default:
+ throw new Error("Unknown node type: " + node.nodeType);
+ }
};
-
- XMLStreamWriter.prototype.comment = function(node, options, level) {
- return this.stream.write(XMLStreamWriter.__super__.comment.call(this, node, options, level));
+ /**
+ * Produces an XML serialization of a node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ BaseWriter.prototype._serializeNode = function (node, requireWellFormed, noDoubleEncoding) {
+ this.currentNode = node;
+ switch (node.nodeType) {
+ case interfaces_1.NodeType.Element:
+ this._serializeElement(node, requireWellFormed, noDoubleEncoding);
+ break;
+ case interfaces_1.NodeType.Document:
+ this._serializeDocument(node, requireWellFormed, noDoubleEncoding);
+ break;
+ case interfaces_1.NodeType.Comment:
+ this._serializeComment(node, requireWellFormed, noDoubleEncoding);
+ break;
+ case interfaces_1.NodeType.Text:
+ this._serializeText(node, requireWellFormed, noDoubleEncoding);
+ break;
+ case interfaces_1.NodeType.DocumentFragment:
+ this._serializeDocumentFragment(node, requireWellFormed, noDoubleEncoding);
+ break;
+ case interfaces_1.NodeType.DocumentType:
+ this._serializeDocumentType(node, requireWellFormed, noDoubleEncoding);
+ break;
+ case interfaces_1.NodeType.ProcessingInstruction:
+ this._serializeProcessingInstruction(node, requireWellFormed, noDoubleEncoding);
+ break;
+ case interfaces_1.NodeType.CData:
+ this._serializeCData(node, requireWellFormed, noDoubleEncoding);
+ break;
+ default:
+ throw new Error("Unknown node type: " + node.nodeType);
+ }
};
-
- XMLStreamWriter.prototype.declaration = function(node, options, level) {
- return this.stream.write(XMLStreamWriter.__super__.declaration.call(this, node, options, level));
+ /**
+ * Produces an XML serialization of an element node.
+ *
+ * @param node - node to serialize
+ * @param namespace - context namespace
+ * @param prefixMap - namespace prefix map
+ * @param prefixIndex - generated namespace prefix index
+ * @param requireWellFormed - whether to check conformance
+ */
+ BaseWriter.prototype._serializeElementNS = function (node, namespace, prefixMap, prefixIndex, requireWellFormed, noDoubleEncoding) {
+ var e_2, _a;
+ var attributes = [];
+ /**
+ * From: https://w3c.github.io/DOM-Parsing/#xml-serializing-an-element-node
+ *
+ * 1. If the require well-formed flag is set (its value is true), and this
+ * node's localName attribute contains the character ":" (U+003A COLON) or
+ * does not match the XML Name production, then throw an exception; the
+ * serialization of this node would not be a well-formed element.
+ */
+ if (requireWellFormed && (node.localName.indexOf(":") !== -1 ||
+ !algorithm_1.xml_isName(node.localName))) {
+ throw new Error("Node local name contains invalid characters (well-formed required).");
+ }
+ /**
+ * 2. Let markup be the string "<" (U+003C LESS-THAN SIGN).
+ * 3. Let qualified name be an empty string.
+ * 4. Let skip end tag be a boolean flag with value false.
+ * 5. Let ignore namespace definition attribute be a boolean flag with value
+ * false.
+ * 6. Given prefix map, copy a namespace prefix map and let map be the
+ * result.
+ * 7. Let local prefixes map be an empty map. The map has unique Node prefix
+ * strings as its keys, with corresponding namespaceURI Node values as the
+ * map's key values (in this map, the null namespace is represented by the
+ * empty string).
+ *
+ * _Note:_ This map is local to each element. It is used to ensure there
+ * are no conflicting prefixes should a new namespace prefix attribute need
+ * to be generated. It is also used to enable skipping of duplicate prefix
+ * definitions when writing an element's attributes: the map allows the
+ * algorithm to distinguish between a prefix in the namespace prefix map
+ * that might be locally-defined (to the current Element) and one that is
+ * not.
+ * 8. Let local default namespace be the result of recording the namespace
+ * information for node given map and local prefixes map.
+ *
+ * _Note:_ The above step will update map with any found namespace prefix
+ * definitions, add the found prefix definitions to the local prefixes map
+ * and return a local default namespace value defined by a default namespace
+ * attribute if one exists. Otherwise it returns null.
+ * 9. Let inherited ns be a copy of namespace.
+ * 10. Let ns be the value of node's namespaceURI attribute.
+ */
+ var qualifiedName = '';
+ var skipEndTag = false;
+ var ignoreNamespaceDefinitionAttribute = false;
+ var map = prefixMap.copy();
+ var localPrefixesMap = {};
+ var localDefaultNamespace = this._recordNamespaceInformation(node, map, localPrefixesMap);
+ var inheritedNS = namespace;
+ var ns = node.namespaceURI;
+ /** 11. If inherited ns is equal to ns, then: */
+ if (inheritedNS === ns) {
+ /**
+ * 11.1. If local default namespace is not null, then set ignore
+ * namespace definition attribute to true.
+ */
+ if (localDefaultNamespace !== null) {
+ ignoreNamespaceDefinitionAttribute = true;
+ }
+ /**
+ * 11.2. If ns is the XML namespace, then append to qualified name the
+ * concatenation of the string "xml:" and the value of node's localName.
+ * 11.3. Otherwise, append to qualified name the value of node's
+ * localName. The node's prefix if it exists, is dropped.
+ */
+ if (ns === infra_1.namespace.XML) {
+ qualifiedName = 'xml:' + node.localName;
+ }
+ else {
+ qualifiedName = node.localName;
+ }
+ /** 11.4. Append the value of qualified name to markup. */
+ this.beginElement(qualifiedName);
+ this.openTagBegin(qualifiedName);
+ }
+ else {
+ /**
+ * 12. Otherwise, inherited ns is not equal to ns (the node's own
+ * namespace is different from the context namespace of its parent).
+ * Run these sub-steps:
+ *
+ * 12.1. Let prefix be the value of node's prefix attribute.
+ * 12.2. Let candidate prefix be the result of retrieving a preferred
+ * prefix string prefix from map given namespace ns. The above may return
+ * null if no namespace key ns exists in map.
+ */
+ var prefix = node.prefix;
+ /**
+ * We don't need to run "retrieving a preferred prefix string" algorithm if
+ * the element has no prefix and its namespace matches to the default
+ * namespace.
+ * See: https://github.com/web-platform-tests/wpt/pull/16703
+ */
+ var candidatePrefix = null;
+ if (prefix !== null || ns !== localDefaultNamespace) {
+ candidatePrefix = map.get(prefix, ns);
+ }
+ /**
+ * 12.3. If the value of prefix matches "xmlns", then run the following
+ * steps:
+ */
+ if (prefix === "xmlns") {
+ /**
+ * 12.3.1. If the require well-formed flag is set, then throw an error.
+ * An Element with prefix "xmlns" will not legally round-trip in a
+ * conforming XML parser.
+ */
+ if (requireWellFormed) {
+ throw new Error("An element cannot have the 'xmlns' prefix (well-formed required).");
+ }
+ /**
+ * 12.3.2. Let candidate prefix be the value of prefix.
+ */
+ candidatePrefix = prefix;
+ }
+ /**
+ * 12.4.Found a suitable namespace prefix: if candidate prefix is not
+ * null (a namespace prefix is defined which maps to ns), then:
+ */
+ if (candidatePrefix !== null) {
+ /**
+ * The following may serialize a different prefix than the Element's
+ * existing prefix if it already had one. However, the retrieving a
+ * preferred prefix string algorithm already tried to match the
+ * existing prefix if possible.
+ *
+ * 12.4.1. Append to qualified name the concatenation of candidate
+ * prefix, ":" (U+003A COLON), and node's localName. There exists on
+ * this node or the node's ancestry a namespace prefix definition that
+ * defines the node's namespace.
+ * 12.4.2. If the local default namespace is not null (there exists a
+ * locally-defined default namespace declaration attribute) and its
+ * value is not the XML namespace, then let inherited ns get the value
+ * of local default namespace unless the local default namespace is the
+ * empty string in which case let it get null (the context namespace
+ * is changed to the declared default, rather than this node's own
+ * namespace).
+ *
+ * _Note:_ Any default namespace definitions or namespace prefixes that
+ * define the XML namespace are omitted when serializing this node's
+ * attributes.
+ */
+ qualifiedName = candidatePrefix + ':' + node.localName;
+ if (localDefaultNamespace !== null && localDefaultNamespace !== infra_1.namespace.XML) {
+ inheritedNS = localDefaultNamespace || null;
+ }
+ /**
+ * 12.4.3. Append the value of qualified name to markup.
+ */
+ this.beginElement(qualifiedName);
+ this.openTagBegin(qualifiedName);
+ /** 12.5. Otherwise, if prefix is not null, then: */
+ }
+ else if (prefix !== null) {
+ /**
+ * _Note:_ By this step, there is no namespace or prefix mapping
+ * declaration in this node (or any parent node visited by this
+ * algorithm) that defines prefix otherwise the step labelled Found
+ * a suitable namespace prefix would have been followed. The sub-steps
+ * that follow will create a new namespace prefix declaration for prefix
+ * and ensure that prefix does not conflict with an existing namespace
+ * prefix declaration of the same localName in node's attribute list.
+ *
+ * 12.5.1. If the local prefixes map contains a key matching prefix,
+ * then let prefix be the result of generating a prefix providing as
+ * input map, ns, and prefix index.
+ */
+ if (prefix in localPrefixesMap) {
+ prefix = this._generatePrefix(ns, map, prefixIndex);
+ }
+ /**
+ * 12.5.2. Add prefix to map given namespace ns.
+ * 12.5.3. Append to qualified name the concatenation of prefix, ":"
+ * (U+003A COLON), and node's localName.
+ * 12.5.4. Append the value of qualified name to markup.
+ */
+ map.set(prefix, ns);
+ qualifiedName += prefix + ':' + node.localName;
+ this.beginElement(qualifiedName);
+ this.openTagBegin(qualifiedName);
+ /**
+ * 12.5.5. Append the following to markup, in the order listed:
+ *
+ * _Note:_ The following serializes a namespace prefix declaration for
+ * prefix which was just added to the map.
+ *
+ * 12.5.5.1. " " (U+0020 SPACE);
+ * 12.5.5.2. The string "xmlns:";
+ * 12.5.5.3. The value of prefix;
+ * 12.5.5.4. "="" (U+003D EQUALS SIGN, U+0022 QUOTATION MARK);
+ * 12.5.5.5. The result of serializing an attribute value given ns and
+ * the require well-formed flag as input;
+ * 12.5.5.6. """ (U+0022 QUOTATION MARK).
+ */
+ attributes.push([null, 'xmlns', prefix,
+ this._serializeAttributeValue(ns, requireWellFormed, noDoubleEncoding)]);
+ /**
+ * 12.5.5.7. If local default namespace is not null (there exists a
+ * locally-defined default namespace declaration attribute), then
+ * let inherited ns get the value of local default namespace unless the
+ * local default namespace is the empty string in which case let it get
+ * null.
+ */
+ if (localDefaultNamespace !== null) {
+ inheritedNS = localDefaultNamespace || null;
+ }
+ /**
+ * 12.6. Otherwise, if local default namespace is null, or local
+ * default namespace is not null and its value is not equal to ns, then:
+ */
+ }
+ else if (localDefaultNamespace === null ||
+ (localDefaultNamespace !== null && localDefaultNamespace !== ns)) {
+ /**
+ * _Note:_ At this point, the namespace for this node still needs to be
+ * serialized, but there's no prefix (or candidate prefix) available; the
+ * following uses the default namespace declaration to define the
+ * namespace--optionally replacing an existing default declaration
+ * if present.
+ *
+ * 12.6.1. Set the ignore namespace definition attribute flag to true.
+ * 12.6.2. Append to qualified name the value of node's localName.
+ * 12.6.3. Let the value of inherited ns be ns.
+ *
+ * _Note:_ The new default namespace will be used in the serialization
+ * to define this node's namespace and act as the context namespace for
+ * its children.
+ */
+ ignoreNamespaceDefinitionAttribute = true;
+ qualifiedName += node.localName;
+ inheritedNS = ns;
+ /**
+ * 12.6.4. Append the value of qualified name to markup.
+ */
+ this.beginElement(qualifiedName);
+ this.openTagBegin(qualifiedName);
+ /**
+ * 12.6.5. Append the following to markup, in the order listed:
+ *
+ * _Note:_ The following serializes the new (or replacement) default
+ * namespace definition.
+ *
+ * 12.6.5.1. " " (U+0020 SPACE);
+ * 12.6.5.2. The string "xmlns";
+ * 12.6.5.3. "="" (U+003D EQUALS SIGN, U+0022 QUOTATION MARK);
+ * 12.6.5.4. The result of serializing an attribute value given ns
+ * and the require well-formed flag as input;
+ * 12.6.5.5. """ (U+0022 QUOTATION MARK).
+ */
+ attributes.push([null, null, 'xmlns',
+ this._serializeAttributeValue(ns, requireWellFormed, noDoubleEncoding)]);
+ /**
+ * 12.7. Otherwise, the node has a local default namespace that matches
+ * ns. Append to qualified name the value of node's localName, let the
+ * value of inherited ns be ns, and append the value of qualified name
+ * to markup.
+ */
+ }
+ else {
+ qualifiedName += node.localName;
+ inheritedNS = ns;
+ this.beginElement(qualifiedName);
+ this.openTagBegin(qualifiedName);
+ }
+ }
+ /**
+ * 13. Append to markup the result of the XML serialization of node's
+ * attributes given map, prefix index, local prefixes map, ignore namespace
+ * definition attribute flag, and require well-formed flag.
+ */
+ attributes.push.apply(attributes, __spread(this._serializeAttributesNS(node, map, prefixIndex, localPrefixesMap, ignoreNamespaceDefinitionAttribute, requireWellFormed, noDoubleEncoding)));
+ this.attributes(attributes);
+ /**
+ * 14. If ns is the HTML namespace, and the node's list of children is
+ * empty, and the node's localName matches any one of the following void
+ * elements: "area", "base", "basefont", "bgsound", "br", "col", "embed",
+ * "frame", "hr", "img", "input", "keygen", "link", "menuitem", "meta",
+ * "param", "source", "track", "wbr"; then append the following to markup,
+ * in the order listed:
+ * 14.1. " " (U+0020 SPACE);
+ * 14.2. "/" (U+002F SOLIDUS).
+ * and set the skip end tag flag to true.
+ * 15. If ns is not the HTML namespace, and the node's list of children is
+ * empty, then append "/" (U+002F SOLIDUS) to markup and set the skip end
+ * tag flag to true.
+ * 16. Append ">" (U+003E GREATER-THAN SIGN) to markup.
+ */
+ var isHTML = (ns === infra_1.namespace.HTML);
+ if (isHTML && node.childNodes.length === 0 &&
+ BaseWriter._VoidElementNames.has(node.localName)) {
+ this.openTagEnd(qualifiedName, true, true);
+ this.endElement(qualifiedName);
+ skipEndTag = true;
+ }
+ else if (!isHTML && node.childNodes.length === 0) {
+ this.openTagEnd(qualifiedName, true, false);
+ this.endElement(qualifiedName);
+ skipEndTag = true;
+ }
+ else {
+ this.openTagEnd(qualifiedName, false, false);
+ }
+ /**
+ * 17. If the value of skip end tag is true, then return the value of markup
+ * and skip the remaining steps. The node is a leaf-node.
+ */
+ if (skipEndTag)
+ return;
+ /**
+ * 18. If ns is the HTML namespace, and the node's localName matches the
+ * string "template", then this is a template element. Append to markup the
+ * result of XML serializing a DocumentFragment node given the template
+ * element's template contents (a DocumentFragment), providing inherited
+ * ns, map, prefix index, and the require well-formed flag.
+ *
+ * _Note:_ This allows template content to round-trip, given the rules for
+ * parsing XHTML documents.
+ *
+ * 19. Otherwise, append to markup the result of running the XML
+ * serialization algorithm on each of node's children, in tree order,
+ * providing inherited ns, map, prefix index, and the require well-formed
+ * flag.
+ */
+ if (isHTML && node.localName === "template") {
+ // TODO: serialize template contents
+ }
+ else {
+ try {
+ for (var _b = __values(node.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var childNode = _c.value;
+ this.level++;
+ this._serializeNodeNS(childNode, inheritedNS, map, prefixIndex, requireWellFormed, noDoubleEncoding);
+ this.level--;
+ }
+ }
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_2) throw e_2.error; }
+ }
+ }
+ /**
+ * 20. Append the following to markup, in the order listed:
+ * 20.1. "" (U+003C LESS-THAN SIGN, U+002F SOLIDUS);
+ * 20.2. The value of qualified name;
+ * 20.3. ">" (U+003E GREATER-THAN SIGN).
+ * 21. Return the value of markup.
+ */
+ this.closeTag(qualifiedName);
+ this.endElement(qualifiedName);
};
-
- XMLStreamWriter.prototype.docType = function(node, options, level) {
- var child, j, len, ref;
- level || (level = 0);
- this.openNode(node, options, level);
- options.state = WriterState.OpenTag;
- this.stream.write(this.indent(node, options, level));
- this.stream.write(' 0) {
- this.stream.write(' [');
- this.stream.write(this.endline(node, options, level));
- options.state = WriterState.InsideTag;
- ref = node.children;
- for (j = 0, len = ref.length; j < len; j++) {
- child = ref[j];
- this.writeChildNode(child, options, level + 1);
+ /**
+ * Produces an XML serialization of an element node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ BaseWriter.prototype._serializeElement = function (node, requireWellFormed, noDoubleEncoding) {
+ var e_3, _a;
+ /**
+ * From: https://w3c.github.io/DOM-Parsing/#xml-serializing-an-element-node
+ *
+ * 1. If the require well-formed flag is set (its value is true), and this
+ * node's localName attribute contains the character ":" (U+003A COLON) or
+ * does not match the XML Name production, then throw an exception; the
+ * serialization of this node would not be a well-formed element.
+ */
+ if (requireWellFormed && (node.localName.indexOf(":") !== -1 ||
+ !algorithm_1.xml_isName(node.localName))) {
+ throw new Error("Node local name contains invalid characters (well-formed required).");
}
- options.state = WriterState.CloseTag;
- this.stream.write(']');
- }
- options.state = WriterState.CloseTag;
- this.stream.write(options.spaceBeforeSlash + '>');
- this.stream.write(this.endline(node, options, level));
- options.state = WriterState.None;
- return this.closeNode(node, options, level);
+ /**
+ * 2. Let markup be the string "<" (U+003C LESS-THAN SIGN).
+ * 3. Let qualified name be an empty string.
+ * 4. Let skip end tag be a boolean flag with value false.
+ * 5. Let ignore namespace definition attribute be a boolean flag with value
+ * false.
+ * 6. Given prefix map, copy a namespace prefix map and let map be the
+ * result.
+ * 7. Let local prefixes map be an empty map. The map has unique Node prefix
+ * strings as its keys, with corresponding namespaceURI Node values as the
+ * map's key values (in this map, the null namespace is represented by the
+ * empty string).
+ *
+ * _Note:_ This map is local to each element. It is used to ensure there
+ * are no conflicting prefixes should a new namespace prefix attribute need
+ * to be generated. It is also used to enable skipping of duplicate prefix
+ * definitions when writing an element's attributes: the map allows the
+ * algorithm to distinguish between a prefix in the namespace prefix map
+ * that might be locally-defined (to the current Element) and one that is
+ * not.
+ * 8. Let local default namespace be the result of recording the namespace
+ * information for node given map and local prefixes map.
+ *
+ * _Note:_ The above step will update map with any found namespace prefix
+ * definitions, add the found prefix definitions to the local prefixes map
+ * and return a local default namespace value defined by a default namespace
+ * attribute if one exists. Otherwise it returns null.
+ * 9. Let inherited ns be a copy of namespace.
+ * 10. Let ns be the value of node's namespaceURI attribute.
+ */
+ var skipEndTag = false;
+ /** 11. If inherited ns is equal to ns, then: */
+ /**
+ * 11.1. If local default namespace is not null, then set ignore
+ * namespace definition attribute to true.
+ */
+ /**
+ * 11.2. If ns is the XML namespace, then append to qualified name the
+ * concatenation of the string "xml:" and the value of node's localName.
+ * 11.3. Otherwise, append to qualified name the value of node's
+ * localName. The node's prefix if it exists, is dropped.
+ */
+ var qualifiedName = node.localName;
+ /** 11.4. Append the value of qualified name to markup. */
+ this.beginElement(qualifiedName);
+ this.openTagBegin(qualifiedName);
+ /**
+ * 13. Append to markup the result of the XML serialization of node's
+ * attributes given map, prefix index, local prefixes map, ignore namespace
+ * definition attribute flag, and require well-formed flag.
+ */
+ var attributes = this._serializeAttributes(node, requireWellFormed, noDoubleEncoding);
+ this.attributes(attributes);
+ /**
+ * 14. If ns is the HTML namespace, and the node's list of children is
+ * empty, and the node's localName matches any one of the following void
+ * elements: "area", "base", "basefont", "bgsound", "br", "col", "embed",
+ * "frame", "hr", "img", "input", "keygen", "link", "menuitem", "meta",
+ * "param", "source", "track", "wbr"; then append the following to markup,
+ * in the order listed:
+ * 14.1. " " (U+0020 SPACE);
+ * 14.2. "/" (U+002F SOLIDUS).
+ * and set the skip end tag flag to true.
+ * 15. If ns is not the HTML namespace, and the node's list of children is
+ * empty, then append "/" (U+002F SOLIDUS) to markup and set the skip end
+ * tag flag to true.
+ * 16. Append ">" (U+003E GREATER-THAN SIGN) to markup.
+ */
+ if (!node.hasChildNodes()) {
+ this.openTagEnd(qualifiedName, true, false);
+ this.endElement(qualifiedName);
+ skipEndTag = true;
+ }
+ else {
+ this.openTagEnd(qualifiedName, false, false);
+ }
+ /**
+ * 17. If the value of skip end tag is true, then return the value of markup
+ * and skip the remaining steps. The node is a leaf-node.
+ */
+ if (skipEndTag)
+ return;
+ try {
+ /**
+ * 18. If ns is the HTML namespace, and the node's localName matches the
+ * string "template", then this is a template element. Append to markup the
+ * result of XML serializing a DocumentFragment node given the template
+ * element's template contents (a DocumentFragment), providing inherited
+ * ns, map, prefix index, and the require well-formed flag.
+ *
+ * _Note:_ This allows template content to round-trip, given the rules for
+ * parsing XHTML documents.
+ *
+ * 19. Otherwise, append to markup the result of running the XML
+ * serialization algorithm on each of node's children, in tree order,
+ * providing inherited ns, map, prefix index, and the require well-formed
+ * flag.
+ */
+ for (var _b = __values(node._children), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var childNode = _c.value;
+ this.level++;
+ this._serializeNode(childNode, requireWellFormed, noDoubleEncoding);
+ this.level--;
+ }
+ }
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_3) throw e_3.error; }
+ }
+ /**
+ * 20. Append the following to markup, in the order listed:
+ * 20.1. "" (U+003C LESS-THAN SIGN, U+002F SOLIDUS);
+ * 20.2. The value of qualified name;
+ * 20.3. ">" (U+003E GREATER-THAN SIGN).
+ * 21. Return the value of markup.
+ */
+ this.closeTag(qualifiedName);
+ this.endElement(qualifiedName);
};
-
- XMLStreamWriter.prototype.element = function(node, options, level) {
- var att, child, childNodeCount, firstChildNode, j, len, name, prettySuppressed, ref, ref1;
- level || (level = 0);
- this.openNode(node, options, level);
- options.state = WriterState.OpenTag;
- this.stream.write(this.indent(node, options, level) + '<' + node.name);
- ref = node.attribs;
- for (name in ref) {
- if (!hasProp.call(ref, name)) continue;
- att = ref[name];
- this.attribute(att, options, level);
- }
- childNodeCount = node.children.length;
- firstChildNode = childNodeCount === 0 ? null : node.children[0];
- if (childNodeCount === 0 || node.children.every(function(e) {
- return (e.type === NodeType.Text || e.type === NodeType.Raw) && e.value === '';
- })) {
- if (options.allowEmpty) {
- this.stream.write('>');
- options.state = WriterState.CloseTag;
- this.stream.write('' + node.name + '>');
- } else {
- options.state = WriterState.CloseTag;
- this.stream.write(options.spaceBeforeSlash + '/>');
+ /**
+ * Produces an XML serialization of a document node.
+ *
+ * @param node - node to serialize
+ * @param namespace - context namespace
+ * @param prefixMap - namespace prefix map
+ * @param prefixIndex - generated namespace prefix index
+ * @param requireWellFormed - whether to check conformance
+ */
+ BaseWriter.prototype._serializeDocumentNS = function (node, namespace, prefixMap, prefixIndex, requireWellFormed, noDoubleEncoding) {
+ var e_4, _a;
+ /**
+ * If the require well-formed flag is set (its value is true), and this node
+ * has no documentElement (the documentElement attribute's value is null),
+ * then throw an exception; the serialization of this node would not be a
+ * well-formed document.
+ */
+ if (requireWellFormed && node.documentElement === null) {
+ throw new Error("Missing document element (well-formed required).");
}
- } else if (options.pretty && childNodeCount === 1 && (firstChildNode.type === NodeType.Text || firstChildNode.type === NodeType.Raw) && (firstChildNode.value != null)) {
- this.stream.write('>');
- options.state = WriterState.InsideTag;
- options.suppressPrettyCount++;
- prettySuppressed = true;
- this.writeChildNode(firstChildNode, options, level + 1);
- options.suppressPrettyCount--;
- prettySuppressed = false;
- options.state = WriterState.CloseTag;
- this.stream.write('' + node.name + '>');
- } else {
- this.stream.write('>' + this.endline(node, options, level));
- options.state = WriterState.InsideTag;
- ref1 = node.children;
- for (j = 0, len = ref1.length; j < len; j++) {
- child = ref1[j];
- this.writeChildNode(child, options, level + 1);
+ try {
+ /**
+ * Otherwise, run the following steps:
+ * 1. Let serialized document be an empty string.
+ * 2. For each child child of node, in tree order, run the XML
+ * serialization algorithm on the child passing along the provided
+ * arguments, and append the result to serialized document.
+ *
+ * _Note:_ This will serialize any number of ProcessingInstruction and
+ * Comment nodes both before and after the Document's documentElement node,
+ * including at most one DocumentType node. (Text nodes are not allowed as
+ * children of the Document.)
+ *
+ * 3. Return the value of serialized document.
+ */
+ for (var _b = __values(node.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var childNode = _c.value;
+ this._serializeNodeNS(childNode, namespace, prefixMap, prefixIndex, requireWellFormed, noDoubleEncoding);
+ }
+ }
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_4) throw e_4.error; }
}
- options.state = WriterState.CloseTag;
- this.stream.write(this.indent(node, options, level) + '' + node.name + '>');
- }
- this.stream.write(this.endline(node, options, level));
- options.state = WriterState.None;
- return this.closeNode(node, options, level);
};
-
- XMLStreamWriter.prototype.processingInstruction = function(node, options, level) {
- return this.stream.write(XMLStreamWriter.__super__.processingInstruction.call(this, node, options, level));
+ /**
+ * Produces an XML serialization of a document node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ BaseWriter.prototype._serializeDocument = function (node, requireWellFormed, noDoubleEncoding) {
+ var e_5, _a;
+ /**
+ * If the require well-formed flag is set (its value is true), and this node
+ * has no documentElement (the documentElement attribute's value is null),
+ * then throw an exception; the serialization of this node would not be a
+ * well-formed document.
+ */
+ if (requireWellFormed && node.documentElement === null) {
+ throw new Error("Missing document element (well-formed required).");
+ }
+ try {
+ /**
+ * Otherwise, run the following steps:
+ * 1. Let serialized document be an empty string.
+ * 2. For each child child of node, in tree order, run the XML
+ * serialization algorithm on the child passing along the provided
+ * arguments, and append the result to serialized document.
+ *
+ * _Note:_ This will serialize any number of ProcessingInstruction and
+ * Comment nodes both before and after the Document's documentElement node,
+ * including at most one DocumentType node. (Text nodes are not allowed as
+ * children of the Document.)
+ *
+ * 3. Return the value of serialized document.
+ */
+ for (var _b = __values(node._children), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var childNode = _c.value;
+ this._serializeNode(childNode, requireWellFormed, noDoubleEncoding);
+ }
+ }
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_5) throw e_5.error; }
+ }
};
-
- XMLStreamWriter.prototype.raw = function(node, options, level) {
- return this.stream.write(XMLStreamWriter.__super__.raw.call(this, node, options, level));
+ /**
+ * Produces an XML serialization of a comment node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ BaseWriter.prototype._serializeComment = function (node, requireWellFormed, noDoubleEncoding) {
+ /**
+ * If the require well-formed flag is set (its value is true), and node's
+ * data contains characters that are not matched by the XML Char production
+ * or contains "--" (two adjacent U+002D HYPHEN-MINUS characters) or that
+ * ends with a "-" (U+002D HYPHEN-MINUS) character, then throw an exception;
+ * the serialization of this node's data would not be well-formed.
+ */
+ if (requireWellFormed && (!algorithm_1.xml_isLegalChar(node.data) ||
+ node.data.indexOf("--") !== -1 || node.data.endsWith("-"))) {
+ throw new Error("Comment data contains invalid characters (well-formed required).");
+ }
+ /**
+ * Otherwise, return the concatenation of "".
+ */
+ this.comment(node.data);
};
-
- XMLStreamWriter.prototype.text = function(node, options, level) {
- return this.stream.write(XMLStreamWriter.__super__.text.call(this, node, options, level));
+ /**
+ * Produces an XML serialization of a text node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ * @param level - current depth of the XML tree
+ */
+ BaseWriter.prototype._serializeText = function (node, requireWellFormed, noDoubleEncoding) {
+ /**
+ * 1. If the require well-formed flag is set (its value is true), and
+ * node's data contains characters that are not matched by the XML Char
+ * production, then throw an exception; the serialization of this node's
+ * data would not be well-formed.
+ */
+ if (requireWellFormed && !algorithm_1.xml_isLegalChar(node.data)) {
+ throw new Error("Text data contains invalid characters (well-formed required).");
+ }
+ /**
+ * 2. Let markup be the value of node's data.
+ * 3. Replace any occurrences of "&" in markup by "&".
+ * 4. Replace any occurrences of "<" in markup by "<".
+ * 5. Replace any occurrences of ">" in markup by ">".
+ * 6. Return the value of markup.
+ */
+ var markup = "";
+ if (noDoubleEncoding) {
+ markup = node.data.replace(/(?!&(lt|gt|amp|apos|quot);)&/g, '&')
+ .replace(//g, '>');
+ }
+ else {
+ for (var i = 0; i < node.data.length; i++) {
+ var c = node.data[i];
+ if (c === "&")
+ markup += "&";
+ else if (c === "<")
+ markup += "<";
+ else if (c === ">")
+ markup += ">";
+ else
+ markup += c;
+ }
+ }
+ this.text(markup);
};
-
- XMLStreamWriter.prototype.dtdAttList = function(node, options, level) {
- return this.stream.write(XMLStreamWriter.__super__.dtdAttList.call(this, node, options, level));
+ /**
+ * Produces an XML serialization of a document fragment node.
+ *
+ * @param node - node to serialize
+ * @param namespace - context namespace
+ * @param prefixMap - namespace prefix map
+ * @param prefixIndex - generated namespace prefix index
+ * @param requireWellFormed - whether to check conformance
+ */
+ BaseWriter.prototype._serializeDocumentFragmentNS = function (node, namespace, prefixMap, prefixIndex, requireWellFormed, noDoubleEncoding) {
+ var e_6, _a;
+ try {
+ /**
+ * 1. Let markup the empty string.
+ * 2. For each child child of node, in tree order, run the XML serialization
+ * algorithm on the child given namespace, prefix map, a reference to prefix
+ * index, and flag require well-formed. Concatenate the result to markup.
+ * 3. Return the value of markup.
+ */
+ for (var _b = __values(node.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var childNode = _c.value;
+ this._serializeNodeNS(childNode, namespace, prefixMap, prefixIndex, requireWellFormed, noDoubleEncoding);
+ }
+ }
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_6) throw e_6.error; }
+ }
};
-
- XMLStreamWriter.prototype.dtdElement = function(node, options, level) {
- return this.stream.write(XMLStreamWriter.__super__.dtdElement.call(this, node, options, level));
+ /**
+ * Produces an XML serialization of a document fragment node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ BaseWriter.prototype._serializeDocumentFragment = function (node, requireWellFormed, noDoubleEncoding) {
+ var e_7, _a;
+ try {
+ /**
+ * 1. Let markup the empty string.
+ * 2. For each child child of node, in tree order, run the XML serialization
+ * algorithm on the child given namespace, prefix map, a reference to prefix
+ * index, and flag require well-formed. Concatenate the result to markup.
+ * 3. Return the value of markup.
+ */
+ for (var _b = __values(node._children), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var childNode = _c.value;
+ this._serializeNode(childNode, requireWellFormed, noDoubleEncoding);
+ }
+ }
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_7) throw e_7.error; }
+ }
};
-
- XMLStreamWriter.prototype.dtdEntity = function(node, options, level) {
- return this.stream.write(XMLStreamWriter.__super__.dtdEntity.call(this, node, options, level));
+ /**
+ * Produces an XML serialization of a document type node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ BaseWriter.prototype._serializeDocumentType = function (node, requireWellFormed, noDoubleEncoding) {
+ /**
+ * 1. If the require well-formed flag is true and the node's publicId
+ * attribute contains characters that are not matched by the XML PubidChar
+ * production, then throw an exception; the serialization of this node
+ * would not be a well-formed document type declaration.
+ */
+ if (requireWellFormed && !algorithm_1.xml_isPubidChar(node.publicId)) {
+ throw new Error("DocType public identifier does not match PubidChar construct (well-formed required).");
+ }
+ /**
+ * 2. If the require well-formed flag is true and the node's systemId
+ * attribute contains characters that are not matched by the XML Char
+ * production or that contains both a """ (U+0022 QUOTATION MARK) and a
+ * "'" (U+0027 APOSTROPHE), then throw an exception; the serialization
+ * of this node would not be a well-formed document type declaration.
+ */
+ if (requireWellFormed &&
+ (!algorithm_1.xml_isLegalChar(node.systemId) ||
+ (node.systemId.indexOf('"') !== -1 && node.systemId.indexOf("'") !== -1))) {
+ throw new Error("DocType system identifier contains invalid characters (well-formed required).");
+ }
+ /**
+ * 3. Let markup be an empty string.
+ * 4. Append the string "" (U+003E GREATER-THAN SIGN) to markup.
+ * 11. Return the value of markup.
+ */
+ this.docType(node.name, node.publicId, node.systemId);
};
-
- XMLStreamWriter.prototype.dtdNotation = function(node, options, level) {
- return this.stream.write(XMLStreamWriter.__super__.dtdNotation.call(this, node, options, level));
+ /**
+ * Produces an XML serialization of a processing instruction node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ BaseWriter.prototype._serializeProcessingInstruction = function (node, requireWellFormed, noDoubleEncoding) {
+ /**
+ * 1. If the require well-formed flag is set (its value is true), and node's
+ * target contains a ":" (U+003A COLON) character or is an ASCII
+ * case-insensitive match for the string "xml", then throw an exception;
+ * the serialization of this node's target would not be well-formed.
+ */
+ if (requireWellFormed && (node.target.indexOf(":") !== -1 || (/^xml$/i).test(node.target))) {
+ throw new Error("Processing instruction target contains invalid characters (well-formed required).");
+ }
+ /**
+ * 2. If the require well-formed flag is set (its value is true), and node's
+ * data contains characters that are not matched by the XML Char production
+ * or contains the string "?>" (U+003F QUESTION MARK,
+ * U+003E GREATER-THAN SIGN), then throw an exception; the serialization of
+ * this node's data would not be well-formed.
+ */
+ if (requireWellFormed && (!algorithm_1.xml_isLegalChar(node.data) ||
+ node.data.indexOf("?>") !== -1)) {
+ throw new Error("Processing instruction data contains invalid characters (well-formed required).");
+ }
+ /**
+ * 3. Let markup be the concatenation of the following, in the order listed:
+ * 3.1. "" (U+003C LESS-THAN SIGN, U+003F QUESTION MARK);
+ * 3.2. The value of node's target;
+ * 3.3. " " (U+0020 SPACE);
+ * 3.4. The value of node's data;
+ * 3.5. "?>" (U+003F QUESTION MARK, U+003E GREATER-THAN SIGN).
+ * 4. Return the value of markup.
+ */
+ this.instruction(node.target, node.data);
};
-
- return XMLStreamWriter;
-
- })(XMLWriterBase);
-
-}).call(this);
-
-
-/***/ }),
-
-/***/ 5913:
-/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
-
-// Generated by CoffeeScript 1.12.7
-(function() {
- var XMLStringWriter, XMLWriterBase,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
-
- XMLWriterBase = __nccwpck_require__(6752);
-
- module.exports = XMLStringWriter = (function(superClass) {
- extend(XMLStringWriter, superClass);
-
- function XMLStringWriter(options) {
- XMLStringWriter.__super__.constructor.call(this, options);
- }
-
- XMLStringWriter.prototype.document = function(doc, options) {
- var child, i, len, r, ref;
- options = this.filterOptions(options);
- r = '';
- ref = doc.children;
- for (i = 0, len = ref.length; i < len; i++) {
- child = ref[i];
- r += this.writeChildNode(child, options, 0);
- }
- if (options.pretty && r.slice(-options.newline.length) === options.newline) {
- r = r.slice(0, -options.newline.length);
- }
- return r;
+ /**
+ * Produces an XML serialization of a CDATA node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ BaseWriter.prototype._serializeCData = function (node, requireWellFormed, noDoubleEncoding) {
+ if (requireWellFormed && (node.data.indexOf("]]>") !== -1)) {
+ throw new Error("CDATA contains invalid characters (well-formed required).");
+ }
+ this.cdata(node.data);
};
-
- return XMLStringWriter;
-
- })(XMLWriterBase);
-
-}).call(this);
-
-
-/***/ }),
-
-/***/ 8594:
-/***/ (function(module) {
-
-// Generated by CoffeeScript 1.12.7
-(function() {
- var XMLStringifier,
- bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
- hasProp = {}.hasOwnProperty;
-
- module.exports = XMLStringifier = (function() {
- function XMLStringifier(options) {
- this.assertLegalName = bind(this.assertLegalName, this);
- this.assertLegalChar = bind(this.assertLegalChar, this);
- var key, ref, value;
- options || (options = {});
- this.options = options;
- if (!this.options.version) {
- this.options.version = '1.0';
- }
- ref = options.stringify || {};
- for (key in ref) {
- if (!hasProp.call(ref, key)) continue;
- value = ref[key];
- this[key] = value;
- }
- }
-
- XMLStringifier.prototype.name = function(val) {
- if (this.options.noValidation) {
- return val;
- }
- return this.assertLegalName('' + val || '');
+ /**
+ * Produces an XML serialization of the attributes of an element node.
+ *
+ * @param node - node to serialize
+ * @param map - namespace prefix map
+ * @param prefixIndex - generated namespace prefix index
+ * @param localPrefixesMap - local prefixes map
+ * @param ignoreNamespaceDefinitionAttribute - whether to ignore namespace
+ * attributes
+ * @param requireWellFormed - whether to check conformance
+ */
+ BaseWriter.prototype._serializeAttributesNS = function (node, map, prefixIndex, localPrefixesMap, ignoreNamespaceDefinitionAttribute, requireWellFormed, noDoubleEncoding) {
+ var e_8, _a;
+ /**
+ * 1. Let result be the empty string.
+ * 2. Let localname set be a new empty namespace localname set. This
+ * localname set will contain tuples of unique attribute namespaceURI and
+ * localName pairs, and is populated as each attr is processed. This set is
+ * used to [optionally] enforce the well-formed constraint that an element
+ * cannot have two attributes with the same namespaceURI and localName.
+ * This can occur when two otherwise identical attributes on the same
+ * element differ only by their prefix values.
+ */
+ var result = [];
+ var localNameSet = requireWellFormed ? new LocalNameSet_1.LocalNameSet() : undefined;
+ try {
+ /**
+ * 3. Loop: For each attribute attr in element's attributes, in the order
+ * they are specified in the element's attribute list:
+ */
+ for (var _b = __values(node.attributes), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var attr = _c.value;
+ // Optimize common case
+ if (!requireWellFormed && !ignoreNamespaceDefinitionAttribute && attr.namespaceURI === null) {
+ result.push([null, null, attr.localName,
+ this._serializeAttributeValue(attr.value, requireWellFormed, noDoubleEncoding)]);
+ continue;
+ }
+ /**
+ * 3.1. If the require well-formed flag is set (its value is true), and the
+ * localname set contains a tuple whose values match those of a new tuple
+ * consisting of attr's namespaceURI attribute and localName attribute,
+ * then throw an exception; the serialization of this attr would fail to
+ * produce a well-formed element serialization.
+ */
+ if (requireWellFormed && localNameSet && localNameSet.has(attr.namespaceURI, attr.localName)) {
+ throw new Error("Element contains duplicate attributes (well-formed required).");
+ }
+ /**
+ * 3.2. Create a new tuple consisting of attr's namespaceURI attribute and
+ * localName attribute, and add it to the localname set.
+ * 3.3. Let attribute namespace be the value of attr's namespaceURI value.
+ * 3.4. Let candidate prefix be null.
+ */
+ if (requireWellFormed && localNameSet)
+ localNameSet.set(attr.namespaceURI, attr.localName);
+ var attributeNamespace = attr.namespaceURI;
+ var candidatePrefix = null;
+ /** 3.5. If attribute namespace is not null, then run these sub-steps: */
+ if (attributeNamespace !== null) {
+ /**
+ * 3.5.1. Let candidate prefix be the result of retrieving a preferred
+ * prefix string from map given namespace attribute namespace with
+ * preferred prefix being attr's prefix value.
+ */
+ candidatePrefix = map.get(attr.prefix, attributeNamespace);
+ /**
+ * 3.5.2. If the value of attribute namespace is the XMLNS namespace,
+ * then run these steps:
+ */
+ if (attributeNamespace === infra_1.namespace.XMLNS) {
+ /**
+ * 3.5.2.1. If any of the following are true, then stop running these
+ * steps and goto Loop to visit the next attribute:
+ * - the attr's value is the XML namespace;
+ * _Note:_ The XML namespace cannot be redeclared and survive
+ * round-tripping (unless it defines the prefix "xml"). To avoid this
+ * problem, this algorithm always prefixes elements in the XML
+ * namespace with "xml" and drops any related definitions as seen
+ * in the above condition.
+ * - the attr's prefix is null and the ignore namespace definition
+ * attribute flag is true (the Element's default namespace attribute
+ * should be skipped);
+ * - the attr's prefix is not null and either
+ * * the attr's localName is not a key contained in the local
+ * prefixes map, or
+ * * the attr's localName is present in the local prefixes map but
+ * the value of the key does not match attr's value
+ * and furthermore that the attr's localName (as the prefix to find)
+ * is found in the namespace prefix map given the namespace consisting
+ * of the attr's value (the current namespace prefix definition was
+ * exactly defined previously--on an ancestor element not the current
+ * element whose attributes are being processed).
+ */
+ if (attr.value === infra_1.namespace.XML ||
+ (attr.prefix === null && ignoreNamespaceDefinitionAttribute) ||
+ (attr.prefix !== null && (!(attr.localName in localPrefixesMap) ||
+ localPrefixesMap[attr.localName] !== attr.value) &&
+ map.has(attr.localName, attr.value)))
+ continue;
+ /**
+ * 3.5.2.2. If the require well-formed flag is set (its value is true),
+ * and the value of attr's value attribute matches the XMLNS
+ * namespace, then throw an exception; the serialization of this
+ * attribute would produce invalid XML because the XMLNS namespace
+ * is reserved and cannot be applied as an element's namespace via
+ * XML parsing.
+ *
+ * _Note:_ DOM APIs do allow creation of elements in the XMLNS
+ * namespace but with strict qualifications.
+ */
+ if (requireWellFormed && attr.value === infra_1.namespace.XMLNS) {
+ throw new Error("XMLNS namespace is reserved (well-formed required).");
+ }
+ /**
+ * 3.5.2.3. If the require well-formed flag is set (its value is true),
+ * and the value of attr's value attribute is the empty string, then
+ * throw an exception; namespace prefix declarations cannot be used
+ * to undeclare a namespace (use a default namespace declaration
+ * instead).
+ */
+ if (requireWellFormed && attr.value === '') {
+ throw new Error("Namespace prefix declarations cannot be used to undeclare a namespace (well-formed required).");
+ }
+ /**
+ * 3.5.2.4. the attr's prefix matches the string "xmlns", then let
+ * candidate prefix be the string "xmlns".
+ */
+ if (attr.prefix === 'xmlns')
+ candidatePrefix = 'xmlns';
+ /**
+ * 3.5.3. Otherwise, the attribute namespace is not the XMLNS namespace.
+ * Run these steps:
+ *
+ * _Note:_ The (candidatePrefix === null) check is not in the spec.
+ * We deviate from the spec here. Otherwise a prefix is generated for
+ * all attributes with namespaces.
+ */
+ }
+ else if (candidatePrefix === null) {
+ if (attr.prefix !== null &&
+ (!map.hasPrefix(attr.prefix) ||
+ map.has(attr.prefix, attributeNamespace))) {
+ /**
+ * Check if we can use the attribute's own prefix.
+ * We deviate from the spec here.
+ * TODO: This is not an efficient way of searching for prefixes.
+ * Follow developments to the spec.
+ */
+ candidatePrefix = attr.prefix;
+ }
+ else {
+ /**
+ * 3.5.3.1. Let candidate prefix be the result of generating a prefix
+ * providing map, attribute namespace, and prefix index as input.
+ */
+ candidatePrefix = this._generatePrefix(attributeNamespace, map, prefixIndex);
+ }
+ /**
+ * 3.5.3.2. Append the following to result, in the order listed:
+ * 3.5.3.2.1. " " (U+0020 SPACE);
+ * 3.5.3.2.2. The string "xmlns:";
+ * 3.5.3.2.3. The value of candidate prefix;
+ * 3.5.3.2.4. "="" (U+003D EQUALS SIGN, U+0022 QUOTATION MARK);
+ * 3.5.3.2.5. The result of serializing an attribute value given
+ * attribute namespace and the require well-formed flag as input;
+ * 3.5.3.2.6. """ (U+0022 QUOTATION MARK).
+ */
+ result.push([null, "xmlns", candidatePrefix,
+ this._serializeAttributeValue(attributeNamespace, requireWellFormed, noDoubleEncoding)]);
+ }
+ }
+ /**
+ * 3.6. Append a " " (U+0020 SPACE) to result.
+ * 3.7. If candidate prefix is not null, then append to result the
+ * concatenation of candidate prefix with ":" (U+003A COLON).
+ */
+ var attrName = '';
+ if (candidatePrefix !== null) {
+ attrName = candidatePrefix;
+ }
+ /**
+ * 3.8. If the require well-formed flag is set (its value is true), and
+ * this attr's localName attribute contains the character
+ * ":" (U+003A COLON) or does not match the XML Name production or
+ * equals "xmlns" and attribute namespace is null, then throw an
+ * exception; the serialization of this attr would not be a
+ * well-formed attribute.
+ */
+ if (requireWellFormed && (attr.localName.indexOf(":") !== -1 ||
+ !algorithm_1.xml_isName(attr.localName) ||
+ (attr.localName === "xmlns" && attributeNamespace === null))) {
+ throw new Error("Attribute local name contains invalid characters (well-formed required).");
+ }
+ /**
+ * 3.9. Append the following strings to result, in the order listed:
+ * 3.9.1. The value of attr's localName;
+ * 3.9.2. "="" (U+003D EQUALS SIGN, U+0022 QUOTATION MARK);
+ * 3.9.3. The result of serializing an attribute value given attr's value
+ * attribute and the require well-formed flag as input;
+ * 3.9.4. """ (U+0022 QUOTATION MARK).
+ */
+ result.push([attributeNamespace, candidatePrefix, attr.localName,
+ this._serializeAttributeValue(attr.value, requireWellFormed, noDoubleEncoding)]);
+ }
+ }
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_8) throw e_8.error; }
+ }
+ /**
+ * 4. Return the value of result.
+ */
+ return result;
};
-
- XMLStringifier.prototype.text = function(val) {
- if (this.options.noValidation) {
- return val;
- }
- return this.assertLegalChar(this.textEscape('' + val || ''));
+ /**
+ * Produces an XML serialization of the attributes of an element node.
+ *
+ * @param node - node to serialize
+ * @param requireWellFormed - whether to check conformance
+ */
+ BaseWriter.prototype._serializeAttributes = function (node, requireWellFormed, noDoubleEncoding) {
+ var e_9, _a;
+ /**
+ * 1. Let result be the empty string.
+ * 2. Let localname set be a new empty namespace localname set. This
+ * localname set will contain tuples of unique attribute namespaceURI and
+ * localName pairs, and is populated as each attr is processed. This set is
+ * used to [optionally] enforce the well-formed constraint that an element
+ * cannot have two attributes with the same namespaceURI and localName.
+ * This can occur when two otherwise identical attributes on the same
+ * element differ only by their prefix values.
+ */
+ var result = [];
+ var localNameSet = requireWellFormed ? {} : undefined;
+ try {
+ /**
+ * 3. Loop: For each attribute attr in element's attributes, in the order
+ * they are specified in the element's attribute list:
+ */
+ for (var _b = __values(node.attributes), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var attr = _c.value;
+ // Optimize common case
+ if (!requireWellFormed) {
+ result.push([null, null, attr.localName,
+ this._serializeAttributeValue(attr.value, requireWellFormed, noDoubleEncoding)]);
+ continue;
+ }
+ /**
+ * 3.1. If the require well-formed flag is set (its value is true), and the
+ * localname set contains a tuple whose values match those of a new tuple
+ * consisting of attr's namespaceURI attribute and localName attribute,
+ * then throw an exception; the serialization of this attr would fail to
+ * produce a well-formed element serialization.
+ */
+ if (requireWellFormed && localNameSet && (attr.localName in localNameSet)) {
+ throw new Error("Element contains duplicate attributes (well-formed required).");
+ }
+ /**
+ * 3.2. Create a new tuple consisting of attr's namespaceURI attribute and
+ * localName attribute, and add it to the localname set.
+ * 3.3. Let attribute namespace be the value of attr's namespaceURI value.
+ * 3.4. Let candidate prefix be null.
+ */
+ /* istanbul ignore else */
+ if (requireWellFormed && localNameSet)
+ localNameSet[attr.localName] = true;
+ /** 3.5. If attribute namespace is not null, then run these sub-steps: */
+ /**
+ * 3.6. Append a " " (U+0020 SPACE) to result.
+ * 3.7. If candidate prefix is not null, then append to result the
+ * concatenation of candidate prefix with ":" (U+003A COLON).
+ */
+ /**
+ * 3.8. If the require well-formed flag is set (its value is true), and
+ * this attr's localName attribute contains the character
+ * ":" (U+003A COLON) or does not match the XML Name production or
+ * equals "xmlns" and attribute namespace is null, then throw an
+ * exception; the serialization of this attr would not be a
+ * well-formed attribute.
+ */
+ if (requireWellFormed && (attr.localName.indexOf(":") !== -1 ||
+ !algorithm_1.xml_isName(attr.localName))) {
+ throw new Error("Attribute local name contains invalid characters (well-formed required).");
+ }
+ /**
+ * 3.9. Append the following strings to result, in the order listed:
+ * 3.9.1. The value of attr's localName;
+ * 3.9.2. "="" (U+003D EQUALS SIGN, U+0022 QUOTATION MARK);
+ * 3.9.3. The result of serializing an attribute value given attr's value
+ * attribute and the require well-formed flag as input;
+ * 3.9.4. """ (U+0022 QUOTATION MARK).
+ */
+ result.push([null, null, attr.localName,
+ this._serializeAttributeValue(attr.value, requireWellFormed, noDoubleEncoding)]);
+ }
+ }
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_9) throw e_9.error; }
+ }
+ /**
+ * 4. Return the value of result.
+ */
+ return result;
};
-
- XMLStringifier.prototype.cdata = function(val) {
- if (this.options.noValidation) {
- return val;
- }
- val = '' + val || '';
- val = val.replace(']]>', ']]]]>');
- return this.assertLegalChar(val);
+ /**
+ * Records namespace information for the given element and returns the
+ * default namespace attribute value.
+ *
+ * @param node - element node to process
+ * @param map - namespace prefix map
+ * @param localPrefixesMap - local prefixes map
+ */
+ BaseWriter.prototype._recordNamespaceInformation = function (node, map, localPrefixesMap) {
+ var e_10, _a;
+ /**
+ * 1. Let default namespace attr value be null.
+ */
+ var defaultNamespaceAttrValue = null;
+ try {
+ /**
+ * 2. Main: For each attribute attr in element's attributes, in the order
+ * they are specified in the element's attribute list:
+ */
+ for (var _b = __values(node.attributes), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var attr = _c.value;
+ /**
+ * _Note:_ The following conditional steps find namespace prefixes. Only
+ * attributes in the XMLNS namespace are considered (e.g., attributes made
+ * to look like namespace declarations via
+ * setAttribute("xmlns:pretend-prefix", "pretend-namespace") are not
+ * included).
+ */
+ /** 2.1. Let attribute namespace be the value of attr's namespaceURI value. */
+ var attributeNamespace = attr.namespaceURI;
+ /** 2.2. Let attribute prefix be the value of attr's prefix. */
+ var attributePrefix = attr.prefix;
+ /** 2.3. If the attribute namespace is the XMLNS namespace, then: */
+ if (attributeNamespace === infra_1.namespace.XMLNS) {
+ /**
+ * 2.3.1. If attribute prefix is null, then attr is a default namespace
+ * declaration. Set the default namespace attr value to attr's value and
+ * stop running these steps, returning to Main to visit the next
+ * attribute.
+ */
+ if (attributePrefix === null) {
+ defaultNamespaceAttrValue = attr.value;
+ continue;
+ /**
+ * 2.3.2. Otherwise, the attribute prefix is not null and attr is a
+ * namespace prefix definition. Run the following steps:
+ */
+ }
+ else {
+ /** 2.3.2.1. Let prefix definition be the value of attr's localName. */
+ var prefixDefinition = attr.localName;
+ /** 2.3.2.2. Let namespace definition be the value of attr's value. */
+ var namespaceDefinition = attr.value;
+ /**
+ * 2.3.2.3. If namespace definition is the XML namespace, then stop
+ * running these steps, and return to Main to visit the next
+ * attribute.
+ *
+ * _Note:_ XML namespace definitions in prefixes are completely
+ * ignored (in order to avoid unnecessary work when there might be
+ * prefix conflicts). XML namespaced elements are always handled
+ * uniformly by prefixing (and overriding if necessary) the element's
+ * localname with the reserved "xml" prefix.
+ */
+ if (namespaceDefinition === infra_1.namespace.XML) {
+ continue;
+ }
+ /**
+ * 2.3.2.4. If namespace definition is the empty string (the
+ * declarative form of having no namespace), then let namespace
+ * definition be null instead.
+ */
+ if (namespaceDefinition === '') {
+ namespaceDefinition = null;
+ }
+ /**
+ * 2.3.2.5. If prefix definition is found in map given the namespace
+ * namespace definition, then stop running these steps, and return to
+ * Main to visit the next attribute.
+ *
+ * _Note:_ This step avoids adding duplicate prefix definitions for
+ * the same namespace in the map. This has the side-effect of avoiding
+ * later serialization of duplicate namespace prefix declarations in
+ * any descendant nodes.
+ */
+ if (map.has(prefixDefinition, namespaceDefinition)) {
+ continue;
+ }
+ /**
+ * 2.3.2.6. Add the prefix prefix definition to map given namespace
+ * namespace definition.
+ */
+ map.set(prefixDefinition, namespaceDefinition);
+ /**
+ * 2.3.2.7. Add the value of prefix definition as a new key to the
+ * local prefixes map, with the namespace definition as the key's
+ * value replacing the value of null with the empty string if
+ * applicable.
+ */
+ localPrefixesMap[prefixDefinition] = namespaceDefinition || '';
+ }
+ }
+ }
+ }
+ catch (e_10_1) { e_10 = { error: e_10_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_10) throw e_10.error; }
+ }
+ /**
+ * 3. Return the value of default namespace attr value.
+ *
+ * _Note:_ The empty string is a legitimate return value and is not
+ * converted to null.
+ */
+ return defaultNamespaceAttrValue;
};
-
- XMLStringifier.prototype.comment = function(val) {
- if (this.options.noValidation) {
- return val;
- }
- val = '' + val || '';
- if (val.match(/--/)) {
- throw new Error("Comment text cannot contain double-hypen: " + val);
- }
- return this.assertLegalChar(val);
+ /**
+ * Generates a new prefix for the given namespace.
+ *
+ * @param newNamespace - a namespace to generate prefix for
+ * @param prefixMap - namespace prefix map
+ * @param prefixIndex - generated namespace prefix index
+ */
+ BaseWriter.prototype._generatePrefix = function (newNamespace, prefixMap, prefixIndex) {
+ /**
+ * 1. Let generated prefix be the concatenation of the string "ns" and the
+ * current numerical value of prefix index.
+ * 2. Let the value of prefix index be incremented by one.
+ * 3. Add to map the generated prefix given the new namespace namespace.
+ * 4. Return the value of generated prefix.
+ */
+ var generatedPrefix = "ns" + prefixIndex.value.toString();
+ prefixIndex.value++;
+ prefixMap.set(generatedPrefix, newNamespace);
+ return generatedPrefix;
};
-
- XMLStringifier.prototype.raw = function(val) {
- if (this.options.noValidation) {
- return val;
- }
- return '' + val || '';
+ /**
+ * Produces an XML serialization of an attribute value.
+ *
+ * @param value - attribute value
+ * @param requireWellFormed - whether to check conformance
+ */
+ BaseWriter.prototype._serializeAttributeValue = function (value, requireWellFormed, noDoubleEncoding) {
+ /**
+ * From: https://w3c.github.io/DOM-Parsing/#dfn-serializing-an-attribute-value
+ *
+ * 1. If the require well-formed flag is set (its value is true), and
+ * attribute value contains characters that are not matched by the XML Char
+ * production, then throw an exception; the serialization of this attribute
+ * value would fail to produce a well-formed element serialization.
+ */
+ if (requireWellFormed && value !== null && !algorithm_1.xml_isLegalChar(value)) {
+ throw new Error("Invalid characters in attribute value.");
+ }
+ /**
+ * 2. If attribute value is null, then return the empty string.
+ */
+ if (value === null)
+ return "";
+ /**
+ * 3. Otherwise, attribute value is a string. Return the value of attribute
+ * value, first replacing any occurrences of the following:
+ * - "&" with "&"
+ * - """ with """
+ * - "<" with "<"
+ * - ">" with ">"
+ * NOTE
+ * This matches behavior present in browsers, and goes above and beyond the
+ * grammar requirement in the XML specification's AttValue production by
+ * also replacing ">" characters.
+ */
+ if (noDoubleEncoding) {
+ return value.replace(/(?!&(lt|gt|amp|apos|quot);)&/g, '&')
+ .replace(//g, '>')
+ .replace(/"/g, '"');
+ }
+ else {
+ var result = "";
+ for (var i = 0; i < value.length; i++) {
+ var c = value[i];
+ if (c === "\"")
+ result += """;
+ else if (c === "&")
+ result += "&";
+ else if (c === "<")
+ result += "<";
+ else if (c === ">")
+ result += ">";
+ else
+ result += c;
+ }
+ return result;
+ }
};
+ BaseWriter._VoidElementNames = new Set(['area', 'base', 'basefont',
+ 'bgsound', 'br', 'col', 'embed', 'frame', 'hr', 'img', 'input', 'keygen',
+ 'link', 'menuitem', 'meta', 'param', 'source', 'track', 'wbr']);
+ return BaseWriter;
+}());
+exports.BaseWriter = BaseWriter;
+//# sourceMappingURL=BaseWriter.js.map
- XMLStringifier.prototype.attValue = function(val) {
- if (this.options.noValidation) {
- return val;
- }
- return this.assertLegalChar(this.attEscape(val = '' + val || ''));
- };
+/***/ }),
- XMLStringifier.prototype.insTarget = function(val) {
- if (this.options.noValidation) {
- return val;
- }
- return this.assertLegalChar('' + val || '');
- };
+/***/ 7525:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
- XMLStringifier.prototype.insValue = function(val) {
- if (this.options.noValidation) {
- return val;
- }
- val = '' + val || '';
- if (val.match(/\?>/)) {
- throw new Error("Invalid processing instruction value: " + val);
- }
- return this.assertLegalChar(val);
- };
+"use strict";
- XMLStringifier.prototype.xmlVersion = function(val) {
- if (this.options.noValidation) {
- return val;
- }
- val = '' + val || '';
- if (!val.match(/1\.[0-9]+/)) {
- throw new Error("Invalid version number: " + val);
- }
- return val;
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
};
-
- XMLStringifier.prototype.xmlEncoding = function(val) {
- if (this.options.noValidation) {
- return val;
- }
- val = '' + val || '';
- if (!val.match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/)) {
- throw new Error("Invalid encoding: " + val);
- }
- return this.assertLegalChar(val);
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
-
- XMLStringifier.prototype.xmlStandalone = function(val) {
- if (this.options.noValidation) {
- return val;
- }
- if (val) {
- return "yes";
- } else {
- return "no";
- }
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var BaseCBWriter_1 = __nccwpck_require__(708);
+/**
+ * Serializes XML nodes.
+ */
+var JSONCBWriter = /** @class */ (function (_super) {
+ __extends(JSONCBWriter, _super);
+ /**
+ * Initializes a new instance of `JSONCBWriter`.
+ *
+ * @param builderOptions - XML builder options
+ */
+ function JSONCBWriter(builderOptions) {
+ var _this = _super.call(this, builderOptions) || this;
+ _this._hasChildren = [];
+ _this._additionalLevel = 0;
+ return _this;
+ }
+ /** @inheritdoc */
+ JSONCBWriter.prototype.frontMatter = function () {
+ return "";
};
-
- XMLStringifier.prototype.dtdPubID = function(val) {
- if (this.options.noValidation) {
- return val;
- }
- return this.assertLegalChar('' + val || '');
+ /** @inheritdoc */
+ JSONCBWriter.prototype.declaration = function (version, encoding, standalone) {
+ return "";
};
-
- XMLStringifier.prototype.dtdSysID = function(val) {
- if (this.options.noValidation) {
- return val;
- }
- return this.assertLegalChar('' + val || '');
+ /** @inheritdoc */
+ JSONCBWriter.prototype.docType = function (name, publicId, systemId) {
+ return "";
};
-
- XMLStringifier.prototype.dtdElementValue = function(val) {
- if (this.options.noValidation) {
- return val;
- }
- return this.assertLegalChar('' + val || '');
+ /** @inheritdoc */
+ JSONCBWriter.prototype.comment = function (data) {
+ // { "!": "hello" }
+ return this._comma() + this._beginLine() + "{" + this._sep() +
+ this._key(this._builderOptions.convert.comment) + this._sep() +
+ this._val(data) + this._sep() + "}";
};
-
- XMLStringifier.prototype.dtdAttType = function(val) {
- if (this.options.noValidation) {
- return val;
- }
- return this.assertLegalChar('' + val || '');
+ /** @inheritdoc */
+ JSONCBWriter.prototype.text = function (data) {
+ // { "#": "hello" }
+ return this._comma() + this._beginLine() + "{" + this._sep() +
+ this._key(this._builderOptions.convert.text) + this._sep() +
+ this._val(data) + this._sep() + "}";
};
-
- XMLStringifier.prototype.dtdAttDefault = function(val) {
- if (this.options.noValidation) {
- return val;
- }
- return this.assertLegalChar('' + val || '');
+ /** @inheritdoc */
+ JSONCBWriter.prototype.instruction = function (target, data) {
+ // { "?": "target hello" }
+ return this._comma() + this._beginLine() + "{" + this._sep() +
+ this._key(this._builderOptions.convert.ins) + this._sep() +
+ this._val(data ? target + " " + data : target) + this._sep() + "}";
};
-
- XMLStringifier.prototype.dtdEntityValue = function(val) {
- if (this.options.noValidation) {
- return val;
- }
- return this.assertLegalChar('' + val || '');
+ /** @inheritdoc */
+ JSONCBWriter.prototype.cdata = function (data) {
+ // { "$": "hello" }
+ return this._comma() + this._beginLine() + "{" + this._sep() +
+ this._key(this._builderOptions.convert.cdata) + this._sep() +
+ this._val(data) + this._sep() + "}";
};
-
- XMLStringifier.prototype.dtdNData = function(val) {
- if (this.options.noValidation) {
- return val;
- }
- return this.assertLegalChar('' + val || '');
+ /** @inheritdoc */
+ JSONCBWriter.prototype.attribute = function (name, value) {
+ // { "@name": "val" }
+ return this._comma() + this._beginLine(1) + "{" + this._sep() +
+ this._key(this._builderOptions.convert.att + name) + this._sep() +
+ this._val(value) + this._sep() + "}";
};
-
- XMLStringifier.prototype.convertAttKey = '@';
-
- XMLStringifier.prototype.convertPIKey = '?';
-
- XMLStringifier.prototype.convertTextKey = '#text';
-
- XMLStringifier.prototype.convertCDataKey = '#cdata';
-
- XMLStringifier.prototype.convertCommentKey = '#comment';
-
- XMLStringifier.prototype.convertRawKey = '#raw';
-
- XMLStringifier.prototype.assertLegalChar = function(str) {
- var regex, res;
- if (this.options.noValidation) {
+ /** @inheritdoc */
+ JSONCBWriter.prototype.openTagBegin = function (name) {
+ // { "node": { "#": [
+ var str = this._comma() + this._beginLine() + "{" + this._sep() + this._key(name) + this._sep() + "{";
+ this._additionalLevel++;
+ this.hasData = true;
+ str += this._beginLine() + this._key(this._builderOptions.convert.text) + this._sep() + "[";
+ this._hasChildren.push(false);
return str;
- }
- regex = '';
- if (this.options.version === '1.0') {
- regex = /[\0-\x08\x0B\f\x0E-\x1F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
- if (res = str.match(regex)) {
- throw new Error("Invalid character in string: " + str + " at index " + res.index);
+ };
+ /** @inheritdoc */
+ JSONCBWriter.prototype.openTagEnd = function (name, selfClosing, voidElement) {
+ if (selfClosing) {
+ var str = this._sep() + "]";
+ this._additionalLevel--;
+ str += this._beginLine() + "}" + this._sep() + "}";
+ return str;
}
- } else if (this.options.version === '1.1') {
- regex = /[\0\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
- if (res = str.match(regex)) {
- throw new Error("Invalid character in string: " + str + " at index " + res.index);
+ else {
+ return "";
}
- }
- return str;
- };
-
- XMLStringifier.prototype.assertLegalName = function(str) {
- var regex;
- if (this.options.noValidation) {
- return str;
- }
- this.assertLegalChar(str);
- regex = /^([:A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])([\x2D\.0-:A-Z_a-z\xB7\xC0-\xD6\xD8-\xF6\xF8-\u037D\u037F-\u1FFF\u200C\u200D\u203F\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])*$/;
- if (!str.match(regex)) {
- throw new Error("Invalid character in name");
- }
- return str;
};
-
- XMLStringifier.prototype.textEscape = function(str) {
- var ampregex;
- if (this.options.noValidation) {
+ /** @inheritdoc */
+ JSONCBWriter.prototype.closeTag = function (name) {
+ // ] } }
+ var str = this._beginLine() + "]";
+ this._additionalLevel--;
+ str += this._beginLine() + "}" + this._sep() + "}";
return str;
- }
- ampregex = this.options.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g;
- return str.replace(ampregex, '&').replace(//g, '>').replace(/\r/g, '
');
};
-
- XMLStringifier.prototype.attEscape = function(str) {
- var ampregex;
- if (this.options.noValidation) {
- return str;
- }
- ampregex = this.options.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g;
- return str.replace(ampregex, '&').replace(/ 0) {
+ this._hasChildren[this._hasChildren.length - 1] = true;
}
return str;
- }
- });
-
- XMLText.prototype.clone = function() {
- return Object.create(this);
};
-
- XMLText.prototype.toString = function(options) {
- return this.options.writer.text(this, this.options.writer.filterOptions(options));
+ /**
+ * Produces a separator string.
+ */
+ JSONCBWriter.prototype._sep = function () {
+ return (this._writerOptions.prettyPrint ? " " : "");
};
-
- XMLText.prototype.splitText = function(offset) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ /**
+ * Produces a JSON key string delimited with double quotes.
+ */
+ JSONCBWriter.prototype._key = function (key) {
+ return "\"" + key + "\":";
};
-
- XMLText.prototype.replaceWholeText = function(content) {
- throw new Error("This DOM method is not implemented." + this.debugInfo());
+ /**
+ * Produces a JSON value string delimited with double quotes.
+ */
+ JSONCBWriter.prototype._val = function (val) {
+ return JSON.stringify(val);
};
-
- return XMLText;
-
- })(XMLCharacterData);
-
-}).call(this);
-
+ return JSONCBWriter;
+}(BaseCBWriter_1.BaseCBWriter));
+exports.JSONCBWriter = JSONCBWriter;
+//# sourceMappingURL=JSONCBWriter.js.map
/***/ }),
-/***/ 6752:
-/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
-
-// Generated by CoffeeScript 1.12.7
-(function() {
- var NodeType, WriterState, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDummy, XMLElement, XMLProcessingInstruction, XMLRaw, XMLText, XMLWriterBase, assign,
- hasProp = {}.hasOwnProperty;
-
- assign = (__nccwpck_require__(8229).assign);
-
- NodeType = __nccwpck_require__(9267);
-
- XMLDeclaration = __nccwpck_require__(6364);
-
- XMLDocType = __nccwpck_require__(1801);
-
- XMLCData = __nccwpck_require__(333);
-
- XMLComment = __nccwpck_require__(4407);
-
- XMLElement = __nccwpck_require__(9437);
+/***/ 7510:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
- XMLRaw = __nccwpck_require__(6329);
+"use strict";
- XMLText = __nccwpck_require__(1318);
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var ObjectWriter_1 = __nccwpck_require__(243);
+var util_1 = __nccwpck_require__(6195);
+var BaseWriter_1 = __nccwpck_require__(7644);
+/**
+ * Serializes XML nodes into a JSON string.
+ */
+var JSONWriter = /** @class */ (function (_super) {
+ __extends(JSONWriter, _super);
+ /**
+ * Initializes a new instance of `JSONWriter`.
+ *
+ * @param builderOptions - XML builder options
+ * @param writerOptions - serialization options
+ */
+ function JSONWriter(builderOptions, writerOptions) {
+ var _this = _super.call(this, builderOptions) || this;
+ // provide default options
+ _this._writerOptions = util_1.applyDefaults(writerOptions, {
+ wellFormed: false,
+ noDoubleEncoding: false,
+ prettyPrint: false,
+ indent: ' ',
+ newline: '\n',
+ offset: 0,
+ group: false,
+ verbose: false
+ });
+ return _this;
+ }
+ /**
+ * Produces an XML serialization of the given node.
+ *
+ * @param node - node to serialize
+ * @param writerOptions - serialization options
+ */
+ JSONWriter.prototype.serialize = function (node) {
+ // convert to object
+ var objectWriterOptions = util_1.applyDefaults(this._writerOptions, {
+ format: "object",
+ wellFormed: false,
+ noDoubleEncoding: false,
+ });
+ var objectWriter = new ObjectWriter_1.ObjectWriter(this._builderOptions, objectWriterOptions);
+ var val = objectWriter.serialize(node);
+ // recursively convert object into JSON string
+ return this._beginLine(this._writerOptions, 0) + this._convertObject(val, this._writerOptions);
+ };
+ /**
+ * Produces an XML serialization of the given object.
+ *
+ * @param obj - object to serialize
+ * @param options - serialization options
+ * @param level - depth of the XML tree
+ */
+ JSONWriter.prototype._convertObject = function (obj, options, level) {
+ var e_1, _a;
+ var _this = this;
+ if (level === void 0) { level = 0; }
+ var markup = '';
+ var isLeaf = this._isLeafNode(obj);
+ if (util_1.isArray(obj)) {
+ markup += '[';
+ var len = obj.length;
+ var i = 0;
+ try {
+ for (var obj_1 = __values(obj), obj_1_1 = obj_1.next(); !obj_1_1.done; obj_1_1 = obj_1.next()) {
+ var val = obj_1_1.value;
+ markup += this._endLine(options, level + 1) +
+ this._beginLine(options, level + 1) +
+ this._convertObject(val, options, level + 1);
+ if (i < len - 1) {
+ markup += ',';
+ }
+ i++;
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (obj_1_1 && !obj_1_1.done && (_a = obj_1.return)) _a.call(obj_1);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ markup += this._endLine(options, level) + this._beginLine(options, level);
+ markup += ']';
+ }
+ else if (util_1.isObject(obj)) {
+ markup += '{';
+ var len_1 = util_1.objectLength(obj);
+ var i_1 = 0;
+ util_1.forEachObject(obj, function (key, val) {
+ if (isLeaf && options.prettyPrint) {
+ markup += ' ';
+ }
+ else {
+ markup += _this._endLine(options, level + 1) + _this._beginLine(options, level + 1);
+ }
+ markup += _this._key(key);
+ if (options.prettyPrint) {
+ markup += ' ';
+ }
+ markup += _this._convertObject(val, options, level + 1);
+ if (i_1 < len_1 - 1) {
+ markup += ',';
+ }
+ i_1++;
+ }, this);
+ if (isLeaf && options.prettyPrint) {
+ markup += ' ';
+ }
+ else {
+ markup += this._endLine(options, level) + this._beginLine(options, level);
+ }
+ markup += '}';
+ }
+ else {
+ markup += this._val(obj);
+ }
+ return markup;
+ };
+ /**
+ * Produces characters to be prepended to a line of string in pretty-print
+ * mode.
+ *
+ * @param options - serialization options
+ * @param level - current depth of the XML tree
+ */
+ JSONWriter.prototype._beginLine = function (options, level) {
+ if (!options.prettyPrint) {
+ return '';
+ }
+ else {
+ var indentLevel = options.offset + level + 1;
+ if (indentLevel > 0) {
+ return new Array(indentLevel).join(options.indent);
+ }
+ }
+ return '';
+ };
+ /**
+ * Produces characters to be appended to a line of string in pretty-print
+ * mode.
+ *
+ * @param options - serialization options
+ * @param level - current depth of the XML tree
+ */
+ JSONWriter.prototype._endLine = function (options, level) {
+ if (!options.prettyPrint) {
+ return '';
+ }
+ else {
+ return options.newline;
+ }
+ };
+ /**
+ * Produces a JSON key string delimited with double quotes.
+ */
+ JSONWriter.prototype._key = function (key) {
+ return "\"" + key + "\":";
+ };
+ /**
+ * Produces a JSON value string delimited with double quotes.
+ */
+ JSONWriter.prototype._val = function (val) {
+ return JSON.stringify(val);
+ };
+ /**
+ * Determines if an object is a leaf node.
+ *
+ * @param obj
+ */
+ JSONWriter.prototype._isLeafNode = function (obj) {
+ return this._descendantCount(obj) <= 1;
+ };
+ /**
+ * Counts the number of descendants of the given object.
+ *
+ * @param obj
+ * @param count
+ */
+ JSONWriter.prototype._descendantCount = function (obj, count) {
+ var _this = this;
+ if (count === void 0) { count = 0; }
+ if (util_1.isArray(obj)) {
+ util_1.forEachArray(obj, function (val) { return count += _this._descendantCount(val, count); }, this);
+ }
+ else if (util_1.isObject(obj)) {
+ util_1.forEachObject(obj, function (key, val) { return count += _this._descendantCount(val, count); }, this);
+ }
+ else {
+ count++;
+ }
+ return count;
+ };
+ return JSONWriter;
+}(BaseWriter_1.BaseWriter));
+exports.JSONWriter = JSONWriter;
+//# sourceMappingURL=JSONWriter.js.map
- XMLProcessingInstruction = __nccwpck_require__(6939);
+/***/ }),
- XMLDummy = __nccwpck_require__(3590);
+/***/ 1397:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
- XMLDTDAttList = __nccwpck_require__(1015);
+"use strict";
- XMLDTDElement = __nccwpck_require__(2421);
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var util_1 = __nccwpck_require__(6195);
+var ObjectWriter_1 = __nccwpck_require__(243);
+var BaseWriter_1 = __nccwpck_require__(7644);
+/**
+ * Serializes XML nodes into ES6 maps and arrays.
+ */
+var MapWriter = /** @class */ (function (_super) {
+ __extends(MapWriter, _super);
+ /**
+ * Initializes a new instance of `MapWriter`.
+ *
+ * @param builderOptions - XML builder options
+ * @param writerOptions - serialization options
+ */
+ function MapWriter(builderOptions, writerOptions) {
+ var _this = _super.call(this, builderOptions) || this;
+ // provide default options
+ _this._writerOptions = util_1.applyDefaults(writerOptions, {
+ format: "map",
+ wellFormed: false,
+ noDoubleEncoding: false,
+ group: false,
+ verbose: false
+ });
+ return _this;
+ }
+ /**
+ * Produces an XML serialization of the given node.
+ *
+ * @param node - node to serialize
+ */
+ MapWriter.prototype.serialize = function (node) {
+ // convert to object
+ var objectWriterOptions = util_1.applyDefaults(this._writerOptions, {
+ format: "object",
+ wellFormed: false,
+ noDoubleEncoding: false,
+ verbose: false
+ });
+ var objectWriter = new ObjectWriter_1.ObjectWriter(this._builderOptions, objectWriterOptions);
+ var val = objectWriter.serialize(node);
+ // recursively convert object into Map
+ return this._convertObject(val);
+ };
+ /**
+ * Recursively converts a JS object into an ES5 map.
+ *
+ * @param obj - a JS object
+ */
+ MapWriter.prototype._convertObject = function (obj) {
+ if (util_1.isArray(obj)) {
+ for (var i = 0; i < obj.length; i++) {
+ obj[i] = this._convertObject(obj[i]);
+ }
+ return obj;
+ }
+ else if (util_1.isObject(obj)) {
+ var map = new Map();
+ for (var key in obj) {
+ map.set(key, this._convertObject(obj[key]));
+ }
+ return map;
+ }
+ else {
+ return obj;
+ }
+ };
+ return MapWriter;
+}(BaseWriter_1.BaseWriter));
+exports.MapWriter = MapWriter;
+//# sourceMappingURL=MapWriter.js.map
- XMLDTDEntity = __nccwpck_require__(53);
+/***/ }),
- XMLDTDNotation = __nccwpck_require__(2837);
+/***/ 243:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
- WriterState = __nccwpck_require__(9766);
+"use strict";
- module.exports = XMLWriterBase = (function() {
- function XMLWriterBase(options) {
- var key, ref, value;
- options || (options = {});
- this.options = options;
- ref = options.writer || {};
- for (key in ref) {
- if (!hasProp.call(ref, key)) continue;
- value = ref[key];
- this["_" + key] = this[key];
- this[key] = value;
- }
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var util_1 = __nccwpck_require__(6195);
+var interfaces_1 = __nccwpck_require__(7305);
+var BaseWriter_1 = __nccwpck_require__(7644);
+/**
+ * Serializes XML nodes into objects and arrays.
+ */
+var ObjectWriter = /** @class */ (function (_super) {
+ __extends(ObjectWriter, _super);
+ /**
+ * Initializes a new instance of `ObjectWriter`.
+ *
+ * @param builderOptions - XML builder options
+ * @param writerOptions - serialization options
+ */
+ function ObjectWriter(builderOptions, writerOptions) {
+ var _this = _super.call(this, builderOptions) || this;
+ _this._writerOptions = util_1.applyDefaults(writerOptions, {
+ format: "object",
+ wellFormed: false,
+ noDoubleEncoding: false,
+ group: false,
+ verbose: false
+ });
+ return _this;
}
-
- XMLWriterBase.prototype.filterOptions = function(options) {
- var filteredOptions, ref, ref1, ref2, ref3, ref4, ref5, ref6;
- options || (options = {});
- options = assign({}, this.options, options);
- filteredOptions = {
- writer: this
- };
- filteredOptions.pretty = options.pretty || false;
- filteredOptions.allowEmpty = options.allowEmpty || false;
- filteredOptions.indent = (ref = options.indent) != null ? ref : ' ';
- filteredOptions.newline = (ref1 = options.newline) != null ? ref1 : '\n';
- filteredOptions.offset = (ref2 = options.offset) != null ? ref2 : 0;
- filteredOptions.dontPrettyTextNodes = (ref3 = (ref4 = options.dontPrettyTextNodes) != null ? ref4 : options.dontprettytextnodes) != null ? ref3 : 0;
- filteredOptions.spaceBeforeSlash = (ref5 = (ref6 = options.spaceBeforeSlash) != null ? ref6 : options.spacebeforeslash) != null ? ref5 : '';
- if (filteredOptions.spaceBeforeSlash === true) {
- filteredOptions.spaceBeforeSlash = ' ';
- }
- filteredOptions.suppressPrettyCount = 0;
- filteredOptions.user = {};
- filteredOptions.state = WriterState.None;
- return filteredOptions;
+ /**
+ * Produces an XML serialization of the given node.
+ *
+ * @param node - node to serialize
+ */
+ ObjectWriter.prototype.serialize = function (node) {
+ this._currentList = [];
+ this._currentIndex = 0;
+ this._listRegister = [this._currentList];
+ /**
+ * First pass, serialize nodes
+ * This creates a list of nodes grouped under node types while preserving
+ * insertion order. For example:
+ * [
+ * root: [
+ * node: [
+ * { "@" : { "att1": "val1", "att2": "val2" }
+ * { "#": "node text" }
+ * { childNode: [] }
+ * { "#": "more text" }
+ * ],
+ * node: [
+ * { "@" : { "att": "val" }
+ * { "#": [ "text line1", "text line2" ] }
+ * ]
+ * ]
+ * ]
+ */
+ this.serializeNode(node, this._writerOptions.wellFormed, this._writerOptions.noDoubleEncoding);
+ /**
+ * Second pass, process node lists. Above example becomes:
+ * {
+ * root: {
+ * node: [
+ * {
+ * "@att1": "val1",
+ * "@att2": "val2",
+ * "#1": "node text",
+ * childNode: {},
+ * "#2": "more text"
+ * },
+ * {
+ * "@att": "val",
+ * "#": [ "text line1", "text line2" ]
+ * }
+ * ]
+ * }
+ * }
+ */
+ return this._process(this._currentList, this._writerOptions);
};
-
- XMLWriterBase.prototype.indent = function(node, options, level) {
- var indentLevel;
- if (!options.pretty || options.suppressPrettyCount) {
- return '';
- } else if (options.pretty) {
- indentLevel = (level || 0) + options.offset + 1;
- if (indentLevel > 0) {
- return new Array(indentLevel).join(options.indent);
+ ObjectWriter.prototype._process = function (items, options) {
+ var _a, _b, _c, _d, _e, _f, _g;
+ if (items.length === 0)
+ return {};
+ // determine if there are non-unique element names
+ var namesSeen = {};
+ var hasNonUniqueNames = false;
+ var textCount = 0;
+ var commentCount = 0;
+ var instructionCount = 0;
+ var cdataCount = 0;
+ for (var i = 0; i < items.length; i++) {
+ var item = items[i];
+ var key = Object.keys(item)[0];
+ switch (key) {
+ case "@":
+ continue;
+ case "#":
+ textCount++;
+ break;
+ case "!":
+ commentCount++;
+ break;
+ case "?":
+ instructionCount++;
+ break;
+ case "$":
+ cdataCount++;
+ break;
+ default:
+ if (namesSeen[key]) {
+ hasNonUniqueNames = true;
+ }
+ else {
+ namesSeen[key] = true;
+ }
+ break;
+ }
+ }
+ var defAttrKey = this._getAttrKey();
+ var defTextKey = this._getNodeKey(interfaces_1.NodeType.Text);
+ var defCommentKey = this._getNodeKey(interfaces_1.NodeType.Comment);
+ var defInstructionKey = this._getNodeKey(interfaces_1.NodeType.ProcessingInstruction);
+ var defCdataKey = this._getNodeKey(interfaces_1.NodeType.CData);
+ if (textCount === 1 && items.length === 1 && util_1.isString(items[0]["#"])) {
+ // special case of an element node with a single text node
+ return items[0]["#"];
+ }
+ else if (hasNonUniqueNames) {
+ var obj = {};
+ // process attributes first
+ for (var i = 0; i < items.length; i++) {
+ var item = items[i];
+ var key = Object.keys(item)[0];
+ if (key === "@") {
+ var attrs = item["@"];
+ var attrKeys = Object.keys(attrs);
+ if (attrKeys.length === 1) {
+ obj[defAttrKey + attrKeys[0]] = attrs[attrKeys[0]];
+ }
+ else {
+ obj[defAttrKey] = item["@"];
+ }
+ }
+ }
+ // list contains element nodes with non-unique names
+ // return an array with mixed content notation
+ var result = [];
+ for (var i = 0; i < items.length; i++) {
+ var item = items[i];
+ var key = Object.keys(item)[0];
+ switch (key) {
+ case "@":
+ // attributes were processed above
+ break;
+ case "#":
+ result.push((_a = {}, _a[defTextKey] = item["#"], _a));
+ break;
+ case "!":
+ result.push((_b = {}, _b[defCommentKey] = item["!"], _b));
+ break;
+ case "?":
+ result.push((_c = {}, _c[defInstructionKey] = item["?"], _c));
+ break;
+ case "$":
+ result.push((_d = {}, _d[defCdataKey] = item["$"], _d));
+ break;
+ default:
+ // element node
+ var ele = item;
+ if (ele[key].length !== 0 && util_1.isArray(ele[key][0])) {
+ // group of element nodes
+ var eleGroup = [];
+ var listOfLists = ele[key];
+ for (var i_1 = 0; i_1 < listOfLists.length; i_1++) {
+ eleGroup.push(this._process(listOfLists[i_1], options));
+ }
+ result.push((_e = {}, _e[key] = eleGroup, _e));
+ }
+ else {
+ // single element node
+ if (options.verbose) {
+ result.push((_f = {}, _f[key] = [this._process(ele[key], options)], _f));
+ }
+ else {
+ result.push((_g = {}, _g[key] = this._process(ele[key], options), _g));
+ }
+ }
+ break;
+ }
+ }
+ obj[defTextKey] = result;
+ return obj;
+ }
+ else {
+ // all element nodes have unique names
+ // return an object while prefixing data node keys
+ var textId = 1;
+ var commentId = 1;
+ var instructionId = 1;
+ var cdataId = 1;
+ var obj = {};
+ for (var i = 0; i < items.length; i++) {
+ var item = items[i];
+ var key = Object.keys(item)[0];
+ switch (key) {
+ case "@":
+ var attrs = item["@"];
+ var attrKeys = Object.keys(attrs);
+ if (!options.group || attrKeys.length === 1) {
+ for (var attrName in attrs) {
+ obj[defAttrKey + attrName] = attrs[attrName];
+ }
+ }
+ else {
+ obj[defAttrKey] = attrs;
+ }
+ break;
+ case "#":
+ textId = this._processSpecItem(item["#"], obj, options.group, defTextKey, textCount, textId);
+ break;
+ case "!":
+ commentId = this._processSpecItem(item["!"], obj, options.group, defCommentKey, commentCount, commentId);
+ break;
+ case "?":
+ instructionId = this._processSpecItem(item["?"], obj, options.group, defInstructionKey, instructionCount, instructionId);
+ break;
+ case "$":
+ cdataId = this._processSpecItem(item["$"], obj, options.group, defCdataKey, cdataCount, cdataId);
+ break;
+ default:
+ // element node
+ var ele = item;
+ if (ele[key].length !== 0 && util_1.isArray(ele[key][0])) {
+ // group of element nodes
+ var eleGroup = [];
+ var listOfLists = ele[key];
+ for (var i_2 = 0; i_2 < listOfLists.length; i_2++) {
+ eleGroup.push(this._process(listOfLists[i_2], options));
+ }
+ obj[key] = eleGroup;
+ }
+ else {
+ // single element node
+ if (options.verbose) {
+ obj[key] = [this._process(ele[key], options)];
+ }
+ else {
+ obj[key] = this._process(ele[key], options);
+ }
+ }
+ break;
+ }
+ }
+ return obj;
}
- }
- return '';
};
-
- XMLWriterBase.prototype.endline = function(node, options, level) {
- if (!options.pretty || options.suppressPrettyCount) {
- return '';
- } else {
- return options.newline;
- }
+ ObjectWriter.prototype._processSpecItem = function (item, obj, group, defKey, count, id) {
+ var e_1, _a;
+ if (!group && util_1.isArray(item) && count + item.length > 2) {
+ try {
+ for (var item_1 = __values(item), item_1_1 = item_1.next(); !item_1_1.done; item_1_1 = item_1.next()) {
+ var subItem = item_1_1.value;
+ var key = defKey + (id++).toString();
+ obj[key] = subItem;
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (item_1_1 && !item_1_1.done && (_a = item_1.return)) _a.call(item_1);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ }
+ else {
+ var key = count > 1 ? defKey + (id++).toString() : defKey;
+ obj[key] = item;
+ }
+ return id;
};
-
- XMLWriterBase.prototype.attribute = function(att, options, level) {
- var r;
- this.openAttribute(att, options, level);
- r = ' ' + att.name + '="' + att.value + '"';
- this.closeAttribute(att, options, level);
- return r;
+ /** @inheritdoc */
+ ObjectWriter.prototype.beginElement = function (name) {
+ var _a, _b;
+ var childItems = [];
+ if (this._currentList.length === 0) {
+ this._currentList.push((_a = {}, _a[name] = childItems, _a));
+ }
+ else {
+ var lastItem = this._currentList[this._currentList.length - 1];
+ if (this._isElementNode(lastItem, name)) {
+ if (lastItem[name].length !== 0 && util_1.isArray(lastItem[name][0])) {
+ var listOfLists = lastItem[name];
+ listOfLists.push(childItems);
+ }
+ else {
+ lastItem[name] = [lastItem[name], childItems];
+ }
+ }
+ else {
+ this._currentList.push((_b = {}, _b[name] = childItems, _b));
+ }
+ }
+ this._currentIndex++;
+ if (this._listRegister.length > this._currentIndex) {
+ this._listRegister[this._currentIndex] = childItems;
+ }
+ else {
+ this._listRegister.push(childItems);
+ }
+ this._currentList = childItems;
};
-
- XMLWriterBase.prototype.cdata = function(node, options, level) {
- var r;
- this.openNode(node, options, level);
- options.state = WriterState.OpenTag;
- r = this.indent(node, options, level) + '' + this.endline(node, options, level);
- options.state = WriterState.None;
- this.closeNode(node, options, level);
- return r;
+ /** @inheritdoc */
+ ObjectWriter.prototype.endElement = function () {
+ this._currentList = this._listRegister[--this._currentIndex];
};
-
- XMLWriterBase.prototype.comment = function(node, options, level) {
- var r;
- this.openNode(node, options, level);
- options.state = WriterState.OpenTag;
- r = this.indent(node, options, level) + '' + this.endline(node, options, level);
- options.state = WriterState.None;
- this.closeNode(node, options, level);
- return r;
+ /** @inheritdoc */
+ ObjectWriter.prototype.attribute = function (name, value) {
+ var _a, _b;
+ if (this._currentList.length === 0) {
+ this._currentList.push({ "@": (_a = {}, _a[name] = value, _a) });
+ }
+ else {
+ var lastItem = this._currentList[this._currentList.length - 1];
+ /* istanbul ignore else */
+ if (this._isAttrNode(lastItem)) {
+ lastItem["@"][name] = value;
+ }
+ else {
+ this._currentList.push({ "@": (_b = {}, _b[name] = value, _b) });
+ }
+ }
};
-
- XMLWriterBase.prototype.declaration = function(node, options, level) {
- var r;
- this.openNode(node, options, level);
- options.state = WriterState.OpenTag;
- r = this.indent(node, options, level) + '';
- r += this.endline(node, options, level);
- options.state = WriterState.None;
- this.closeNode(node, options, level);
- return r;
+ /** @inheritdoc */
+ ObjectWriter.prototype.comment = function (data) {
+ if (this._currentList.length === 0) {
+ this._currentList.push({ "!": data });
+ }
+ else {
+ var lastItem = this._currentList[this._currentList.length - 1];
+ if (this._isCommentNode(lastItem)) {
+ if (util_1.isArray(lastItem["!"])) {
+ lastItem["!"].push(data);
+ }
+ else {
+ lastItem["!"] = [lastItem["!"], data];
+ }
+ }
+ else {
+ this._currentList.push({ "!": data });
+ }
+ }
};
-
- XMLWriterBase.prototype.docType = function(node, options, level) {
- var child, i, len, r, ref;
- level || (level = 0);
- this.openNode(node, options, level);
- options.state = WriterState.OpenTag;
- r = this.indent(node, options, level);
- r += ' 0) {
- r += ' [';
- r += this.endline(node, options, level);
- options.state = WriterState.InsideTag;
- ref = node.children;
- for (i = 0, len = ref.length; i < len; i++) {
- child = ref[i];
- r += this.writeChildNode(child, options, level + 1);
+ /** @inheritdoc */
+ ObjectWriter.prototype.text = function (data) {
+ if (this._currentList.length === 0) {
+ this._currentList.push({ "#": data });
+ }
+ else {
+ var lastItem = this._currentList[this._currentList.length - 1];
+ if (this._isTextNode(lastItem)) {
+ if (util_1.isArray(lastItem["#"])) {
+ lastItem["#"].push(data);
+ }
+ else {
+ lastItem["#"] = [lastItem["#"], data];
+ }
+ }
+ else {
+ this._currentList.push({ "#": data });
+ }
}
- options.state = WriterState.CloseTag;
- r += ']';
- }
- options.state = WriterState.CloseTag;
- r += options.spaceBeforeSlash + '>';
- r += this.endline(node, options, level);
- options.state = WriterState.None;
- this.closeNode(node, options, level);
- return r;
};
-
- XMLWriterBase.prototype.element = function(node, options, level) {
- var att, child, childNodeCount, firstChildNode, i, j, len, len1, name, prettySuppressed, r, ref, ref1, ref2;
- level || (level = 0);
- prettySuppressed = false;
- r = '';
- this.openNode(node, options, level);
- options.state = WriterState.OpenTag;
- r += this.indent(node, options, level) + '<' + node.name;
- ref = node.attribs;
- for (name in ref) {
- if (!hasProp.call(ref, name)) continue;
- att = ref[name];
- r += this.attribute(att, options, level);
- }
- childNodeCount = node.children.length;
- firstChildNode = childNodeCount === 0 ? null : node.children[0];
- if (childNodeCount === 0 || node.children.every(function(e) {
- return (e.type === NodeType.Text || e.type === NodeType.Raw) && e.value === '';
- })) {
- if (options.allowEmpty) {
- r += '>';
- options.state = WriterState.CloseTag;
- r += '' + node.name + '>' + this.endline(node, options, level);
- } else {
- options.state = WriterState.CloseTag;
- r += options.spaceBeforeSlash + '/>' + this.endline(node, options, level);
+ /** @inheritdoc */
+ ObjectWriter.prototype.instruction = function (target, data) {
+ var value = (data === "" ? target : target + " " + data);
+ if (this._currentList.length === 0) {
+ this._currentList.push({ "?": value });
}
- } else if (options.pretty && childNodeCount === 1 && (firstChildNode.type === NodeType.Text || firstChildNode.type === NodeType.Raw) && (firstChildNode.value != null)) {
- r += '>';
- options.state = WriterState.InsideTag;
- options.suppressPrettyCount++;
- prettySuppressed = true;
- r += this.writeChildNode(firstChildNode, options, level + 1);
- options.suppressPrettyCount--;
- prettySuppressed = false;
- options.state = WriterState.CloseTag;
- r += '' + node.name + '>' + this.endline(node, options, level);
- } else {
- if (options.dontPrettyTextNodes) {
- ref1 = node.children;
- for (i = 0, len = ref1.length; i < len; i++) {
- child = ref1[i];
- if ((child.type === NodeType.Text || child.type === NodeType.Raw) && (child.value != null)) {
- options.suppressPrettyCount++;
- prettySuppressed = true;
- break;
+ else {
+ var lastItem = this._currentList[this._currentList.length - 1];
+ if (this._isInstructionNode(lastItem)) {
+ if (util_1.isArray(lastItem["?"])) {
+ lastItem["?"].push(value);
+ }
+ else {
+ lastItem["?"] = [lastItem["?"], value];
+ }
}
- }
+ else {
+ this._currentList.push({ "?": value });
+ }
+ }
+ };
+ /** @inheritdoc */
+ ObjectWriter.prototype.cdata = function (data) {
+ if (this._currentList.length === 0) {
+ this._currentList.push({ "$": data });
+ }
+ else {
+ var lastItem = this._currentList[this._currentList.length - 1];
+ if (this._isCDATANode(lastItem)) {
+ if (util_1.isArray(lastItem["$"])) {
+ lastItem["$"].push(data);
+ }
+ else {
+ lastItem["$"] = [lastItem["$"], data];
+ }
+ }
+ else {
+ this._currentList.push({ "$": data });
+ }
+ }
+ };
+ ObjectWriter.prototype._isAttrNode = function (x) {
+ return "@" in x;
+ };
+ ObjectWriter.prototype._isTextNode = function (x) {
+ return "#" in x;
+ };
+ ObjectWriter.prototype._isCommentNode = function (x) {
+ return "!" in x;
+ };
+ ObjectWriter.prototype._isInstructionNode = function (x) {
+ return "?" in x;
+ };
+ ObjectWriter.prototype._isCDATANode = function (x) {
+ return "$" in x;
+ };
+ ObjectWriter.prototype._isElementNode = function (x, name) {
+ return name in x;
+ };
+ /**
+ * Returns an object key for an attribute or namespace declaration.
+ */
+ ObjectWriter.prototype._getAttrKey = function () {
+ return this._builderOptions.convert.att;
+ };
+ /**
+ * Returns an object key for the given node type.
+ *
+ * @param nodeType - node type to get a key for
+ */
+ ObjectWriter.prototype._getNodeKey = function (nodeType) {
+ switch (nodeType) {
+ case interfaces_1.NodeType.Comment:
+ return this._builderOptions.convert.comment;
+ case interfaces_1.NodeType.Text:
+ return this._builderOptions.convert.text;
+ case interfaces_1.NodeType.ProcessingInstruction:
+ return this._builderOptions.convert.ins;
+ case interfaces_1.NodeType.CData:
+ return this._builderOptions.convert.cdata;
+ /* istanbul ignore next */
+ default:
+ throw new Error("Invalid node type.");
+ }
+ };
+ return ObjectWriter;
+}(BaseWriter_1.BaseWriter));
+exports.ObjectWriter = ObjectWriter;
+//# sourceMappingURL=ObjectWriter.js.map
+
+/***/ }),
+
+/***/ 7572:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var BaseCBWriter_1 = __nccwpck_require__(708);
+/**
+ * Serializes XML nodes.
+ */
+var XMLCBWriter = /** @class */ (function (_super) {
+ __extends(XMLCBWriter, _super);
+ /**
+ * Initializes a new instance of `XMLCBWriter`.
+ *
+ * @param builderOptions - XML builder options
+ */
+ function XMLCBWriter(builderOptions) {
+ var _this = _super.call(this, builderOptions) || this;
+ _this._lineLength = 0;
+ return _this;
+ }
+ /** @inheritdoc */
+ XMLCBWriter.prototype.frontMatter = function () {
+ return "";
+ };
+ /** @inheritdoc */
+ XMLCBWriter.prototype.declaration = function (version, encoding, standalone) {
+ var markup = this._beginLine() + "";
+ return markup;
+ };
+ /** @inheritdoc */
+ XMLCBWriter.prototype.docType = function (name, publicId, systemId) {
+ var markup = this._beginLine();
+ if (publicId && systemId) {
+ markup += "";
}
- r += '>' + this.endline(node, options, level);
- options.state = WriterState.InsideTag;
- ref2 = node.children;
- for (j = 0, len1 = ref2.length; j < len1; j++) {
- child = ref2[j];
- r += this.writeChildNode(child, options, level + 1);
+ else if (publicId) {
+ markup += "";
}
- options.state = WriterState.CloseTag;
- r += this.indent(node, options, level) + '' + node.name + '>';
- if (prettySuppressed) {
- options.suppressPrettyCount--;
+ else if (systemId) {
+ markup += "";
}
- r += this.endline(node, options, level);
- options.state = WriterState.None;
- }
- this.closeNode(node, options, level);
- return r;
+ else {
+ markup += "";
+ }
+ return markup;
};
-
- XMLWriterBase.prototype.writeChildNode = function(node, options, level) {
- switch (node.type) {
- case NodeType.CData:
- return this.cdata(node, options, level);
- case NodeType.Comment:
- return this.comment(node, options, level);
- case NodeType.Element:
- return this.element(node, options, level);
- case NodeType.Raw:
- return this.raw(node, options, level);
- case NodeType.Text:
- return this.text(node, options, level);
- case NodeType.ProcessingInstruction:
- return this.processingInstruction(node, options, level);
- case NodeType.Dummy:
- return '';
- case NodeType.Declaration:
- return this.declaration(node, options, level);
- case NodeType.DocType:
- return this.docType(node, options, level);
- case NodeType.AttributeDeclaration:
- return this.dtdAttList(node, options, level);
- case NodeType.ElementDeclaration:
- return this.dtdElement(node, options, level);
- case NodeType.EntityDeclaration:
- return this.dtdEntity(node, options, level);
- case NodeType.NotationDeclaration:
- return this.dtdNotation(node, options, level);
- default:
- throw new Error("Unknown XML node type: " + node.constructor.name);
- }
+ /** @inheritdoc */
+ XMLCBWriter.prototype.comment = function (data) {
+ return this._beginLine() + "";
};
-
- XMLWriterBase.prototype.processingInstruction = function(node, options, level) {
- var r;
- this.openNode(node, options, level);
- options.state = WriterState.OpenTag;
- r = this.indent(node, options, level) + '';
- options.state = WriterState.InsideTag;
- r += node.target;
- if (node.value) {
- r += ' ' + node.value;
- }
- options.state = WriterState.CloseTag;
- r += options.spaceBeforeSlash + '?>';
- r += this.endline(node, options, level);
- options.state = WriterState.None;
- this.closeNode(node, options, level);
- return r;
+ /** @inheritdoc */
+ XMLCBWriter.prototype.text = function (data) {
+ return this._beginLine() + data;
};
-
- XMLWriterBase.prototype.raw = function(node, options, level) {
- var r;
- this.openNode(node, options, level);
- options.state = WriterState.OpenTag;
- r = this.indent(node, options, level);
- options.state = WriterState.InsideTag;
- r += node.value;
- options.state = WriterState.CloseTag;
- r += this.endline(node, options, level);
- options.state = WriterState.None;
- this.closeNode(node, options, level);
- return r;
+ /** @inheritdoc */
+ XMLCBWriter.prototype.instruction = function (target, data) {
+ if (data) {
+ return this._beginLine() + "" + target + " " + data + "?>";
+ }
+ else {
+ return this._beginLine() + "" + target + "?>";
+ }
};
-
- XMLWriterBase.prototype.text = function(node, options, level) {
- var r;
- this.openNode(node, options, level);
- options.state = WriterState.OpenTag;
- r = this.indent(node, options, level);
- options.state = WriterState.InsideTag;
- r += node.value;
- options.state = WriterState.CloseTag;
- r += this.endline(node, options, level);
- options.state = WriterState.None;
- this.closeNode(node, options, level);
- return r;
+ /** @inheritdoc */
+ XMLCBWriter.prototype.cdata = function (data) {
+ return this._beginLine() + "";
};
-
- XMLWriterBase.prototype.dtdAttList = function(node, options, level) {
- var r;
- this.openNode(node, options, level);
- options.state = WriterState.OpenTag;
- r = this.indent(node, options, level) + '' + this.endline(node, options, level);
- options.state = WriterState.None;
- this.closeNode(node, options, level);
- return r;
+ /** @inheritdoc */
+ XMLCBWriter.prototype.openTagBegin = function (name) {
+ this._lineLength += 1 + name.length;
+ return this._beginLine() + "<" + name;
};
-
- XMLWriterBase.prototype.dtdElement = function(node, options, level) {
- var r;
- this.openNode(node, options, level);
- options.state = WriterState.OpenTag;
- r = this.indent(node, options, level) + '' + this.endline(node, options, level);
- options.state = WriterState.None;
- this.closeNode(node, options, level);
- return r;
+ /** @inheritdoc */
+ XMLCBWriter.prototype.openTagEnd = function (name, selfClosing, voidElement) {
+ if (voidElement) {
+ return " />";
+ }
+ else if (selfClosing) {
+ if (this._writerOptions.allowEmptyTags) {
+ return ">" + name + ">";
+ }
+ else if (this._writerOptions.spaceBeforeSlash) {
+ return " />";
+ }
+ else {
+ return "/>";
+ }
+ }
+ else {
+ return ">";
+ }
};
-
- XMLWriterBase.prototype.dtdEntity = function(node, options, level) {
- var r;
- this.openNode(node, options, level);
- options.state = WriterState.OpenTag;
- r = this.indent(node, options, level) + '";
+ };
+ /** @inheritdoc */
+ XMLCBWriter.prototype.attribute = function (name, value) {
+ var str = name + "=\"" + value + "\"";
+ if (this._writerOptions.prettyPrint && this._writerOptions.width > 0 &&
+ this._lineLength + 1 + str.length > this._writerOptions.width) {
+ str = this._beginLine() + this._indent(1) + str;
+ this._lineLength = str.length;
+ return str;
}
- if (node.nData) {
- r += ' NDATA ' + node.nData;
+ else {
+ this._lineLength += 1 + str.length;
+ return " " + str;
}
- }
- options.state = WriterState.CloseTag;
- r += options.spaceBeforeSlash + '>' + this.endline(node, options, level);
- options.state = WriterState.None;
- this.closeNode(node, options, level);
- return r;
};
-
- XMLWriterBase.prototype.dtdNotation = function(node, options, level) {
- var r;
- this.openNode(node, options, level);
- options.state = WriterState.OpenTag;
- r = this.indent(node, options, level) + '' + this.endline(node, options, level);
- options.state = WriterState.None;
- this.closeNode(node, options, level);
- return r;
+ /** @inheritdoc */
+ XMLCBWriter.prototype.beginElement = function (name) { };
+ /** @inheritdoc */
+ XMLCBWriter.prototype.endElement = function (name) { };
+ /**
+ * Produces characters to be prepended to a line of string in pretty-print
+ * mode.
+ */
+ XMLCBWriter.prototype._beginLine = function () {
+ if (this._writerOptions.prettyPrint) {
+ var str = (this.hasData ? this._writerOptions.newline : "") +
+ this._indent(this._writerOptions.offset + this.level);
+ this._lineLength = str.length;
+ return str;
+ }
+ else {
+ return "";
+ }
};
-
- XMLWriterBase.prototype.openNode = function(node, options, level) {};
-
- XMLWriterBase.prototype.closeNode = function(node, options, level) {};
-
- XMLWriterBase.prototype.openAttribute = function(att, options, level) {};
-
- XMLWriterBase.prototype.closeAttribute = function(att, options, level) {};
-
- return XMLWriterBase;
-
- })();
-
-}).call(this);
-
+ /**
+ * Produces an indentation string.
+ *
+ * @param level - depth of the tree
+ */
+ XMLCBWriter.prototype._indent = function (level) {
+ if (level <= 0) {
+ return "";
+ }
+ else {
+ return this._writerOptions.indent.repeat(level);
+ }
+ };
+ return XMLCBWriter;
+}(BaseCBWriter_1.BaseCBWriter));
+exports.XMLCBWriter = XMLCBWriter;
+//# sourceMappingURL=XMLCBWriter.js.map
/***/ }),
-/***/ 2958:
-/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) {
-
-// Generated by CoffeeScript 1.12.7
-(function() {
- var NodeType, WriterState, XMLDOMImplementation, XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction, ref;
-
- ref = __nccwpck_require__(8229), assign = ref.assign, isFunction = ref.isFunction;
-
- XMLDOMImplementation = __nccwpck_require__(8310);
-
- XMLDocument = __nccwpck_require__(3730);
+/***/ 9606:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
- XMLDocumentCB = __nccwpck_require__(7356);
+"use strict";
- XMLStringWriter = __nccwpck_require__(5913);
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var util_1 = __nccwpck_require__(6195);
+var interfaces_1 = __nccwpck_require__(7305);
+var BaseWriter_1 = __nccwpck_require__(7644);
+var util_2 = __nccwpck_require__(5282);
+/**
+ * Serializes XML nodes into strings.
+ */
+var XMLWriter = /** @class */ (function (_super) {
+ __extends(XMLWriter, _super);
+ /**
+ * Initializes a new instance of `XMLWriter`.
+ *
+ * @param builderOptions - XML builder options
+ * @param writerOptions - serialization options
+ */
+ function XMLWriter(builderOptions, writerOptions) {
+ var _this = _super.call(this, builderOptions) || this;
+ _this._indentation = {};
+ _this._lengthToLastNewline = 0;
+ // provide default options
+ _this._writerOptions = util_1.applyDefaults(writerOptions, {
+ wellFormed: false,
+ noDoubleEncoding: false,
+ headless: false,
+ prettyPrint: false,
+ indent: " ",
+ newline: "\n",
+ offset: 0,
+ width: 0,
+ allowEmptyTags: false,
+ indentTextOnlyNodes: false,
+ spaceBeforeSlash: false
+ });
+ return _this;
+ }
+ /**
+ * Produces an XML serialization of the given node.
+ *
+ * @param node - node to serialize
+ */
+ XMLWriter.prototype.serialize = function (node) {
+ this._refs = { suppressPretty: false, emptyNode: false, markup: "" };
+ // Serialize XML declaration
+ if (node.nodeType === interfaces_1.NodeType.Document && !this._writerOptions.headless) {
+ this.declaration(this._builderOptions.version, this._builderOptions.encoding, this._builderOptions.standalone);
+ }
+ // recursively serialize node
+ this.serializeNode(node, this._writerOptions.wellFormed, this._writerOptions.noDoubleEncoding);
+ // remove trailing newline
+ if (this._writerOptions.prettyPrint &&
+ this._refs.markup.slice(-this._writerOptions.newline.length) === this._writerOptions.newline) {
+ this._refs.markup = this._refs.markup.slice(0, -this._writerOptions.newline.length);
+ }
+ return this._refs.markup;
+ };
+ /** @inheritdoc */
+ XMLWriter.prototype.declaration = function (version, encoding, standalone) {
+ this._beginLine();
+ this._refs.markup += "";
+ this._endLine();
+ };
+ /** @inheritdoc */
+ XMLWriter.prototype.docType = function (name, publicId, systemId) {
+ this._beginLine();
+ if (publicId && systemId) {
+ this._refs.markup += "";
+ }
+ else if (publicId) {
+ this._refs.markup += "";
+ }
+ else if (systemId) {
+ this._refs.markup += "";
+ }
+ else {
+ this._refs.markup += "";
+ }
+ this._endLine();
+ };
+ /** @inheritdoc */
+ XMLWriter.prototype.openTagBegin = function (name) {
+ this._beginLine();
+ this._refs.markup += "<" + name;
+ };
+ /** @inheritdoc */
+ XMLWriter.prototype.openTagEnd = function (name, selfClosing, voidElement) {
+ // do not indent text only elements or elements with empty text nodes
+ this._refs.suppressPretty = false;
+ this._refs.emptyNode = false;
+ if (this._writerOptions.prettyPrint && !selfClosing && !voidElement) {
+ var textOnlyNode = true;
+ var emptyNode = true;
+ var childNode = this.currentNode.firstChild;
+ var cdataCount = 0;
+ var textCount = 0;
+ while (childNode) {
+ if (util_2.Guard.isExclusiveTextNode(childNode)) {
+ textCount++;
+ }
+ else if (util_2.Guard.isCDATASectionNode(childNode)) {
+ cdataCount++;
+ }
+ else {
+ textOnlyNode = false;
+ emptyNode = false;
+ break;
+ }
+ if (childNode.data !== '') {
+ emptyNode = false;
+ }
+ childNode = childNode.nextSibling;
+ }
+ this._refs.suppressPretty = !this._writerOptions.indentTextOnlyNodes && textOnlyNode && ((cdataCount <= 1 && textCount === 0) || cdataCount === 0);
+ this._refs.emptyNode = emptyNode;
+ }
+ if ((voidElement || selfClosing || this._refs.emptyNode) && this._writerOptions.allowEmptyTags) {
+ this._refs.markup += ">" + name + ">";
+ }
+ else {
+ this._refs.markup += voidElement ? " />" :
+ (selfClosing || this._refs.emptyNode) ? (this._writerOptions.spaceBeforeSlash ? " />" : "/>") : ">";
+ }
+ this._endLine();
+ };
+ /** @inheritdoc */
+ XMLWriter.prototype.closeTag = function (name) {
+ if (!this._refs.emptyNode) {
+ this._beginLine();
+ this._refs.markup += "" + name + ">";
+ }
+ this._refs.suppressPretty = false;
+ this._refs.emptyNode = false;
+ this._endLine();
+ };
+ /** @inheritdoc */
+ XMLWriter.prototype.attribute = function (name, value) {
+ var str = name + "=\"" + value + "\"";
+ if (this._writerOptions.prettyPrint && this._writerOptions.width > 0 &&
+ this._refs.markup.length - this._lengthToLastNewline + 1 + str.length > this._writerOptions.width) {
+ this._endLine();
+ this._beginLine();
+ this._refs.markup += this._indent(1) + str;
+ }
+ else {
+ this._refs.markup += " " + str;
+ }
+ };
+ /** @inheritdoc */
+ XMLWriter.prototype.text = function (data) {
+ if (data !== '') {
+ this._beginLine();
+ this._refs.markup += data;
+ this._endLine();
+ }
+ };
+ /** @inheritdoc */
+ XMLWriter.prototype.cdata = function (data) {
+ if (data !== '') {
+ this._beginLine();
+ this._refs.markup += "";
+ this._endLine();
+ }
+ };
+ /** @inheritdoc */
+ XMLWriter.prototype.comment = function (data) {
+ this._beginLine();
+ this._refs.markup += "";
+ this._endLine();
+ };
+ /** @inheritdoc */
+ XMLWriter.prototype.instruction = function (target, data) {
+ this._beginLine();
+ this._refs.markup += "" + (data === "" ? target : target + " " + data) + "?>";
+ this._endLine();
+ };
+ /**
+ * Produces characters to be prepended to a line of string in pretty-print
+ * mode.
+ */
+ XMLWriter.prototype._beginLine = function () {
+ if (this._writerOptions.prettyPrint && !this._refs.suppressPretty) {
+ this._refs.markup += this._indent(this._writerOptions.offset + this.level);
+ }
+ };
+ /**
+ * Produces characters to be appended to a line of string in pretty-print
+ * mode.
+ */
+ XMLWriter.prototype._endLine = function () {
+ if (this._writerOptions.prettyPrint && !this._refs.suppressPretty) {
+ this._refs.markup += this._writerOptions.newline;
+ this._lengthToLastNewline = this._refs.markup.length;
+ }
+ };
+ /**
+ * Produces an indentation string.
+ *
+ * @param level - depth of the tree
+ */
+ XMLWriter.prototype._indent = function (level) {
+ if (level <= 0) {
+ return "";
+ }
+ else if (this._indentation[level] !== undefined) {
+ return this._indentation[level];
+ }
+ else {
+ var str = this._writerOptions.indent.repeat(level);
+ this._indentation[level] = str;
+ return str;
+ }
+ };
+ return XMLWriter;
+}(BaseWriter_1.BaseWriter));
+exports.XMLWriter = XMLWriter;
+//# sourceMappingURL=XMLWriter.js.map
- XMLStreamWriter = __nccwpck_require__(8601);
+/***/ }),
- NodeType = __nccwpck_require__(9267);
+/***/ 2444:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
- WriterState = __nccwpck_require__(9766);
+"use strict";
- module.exports.create = function(name, xmldec, doctype, options) {
- var doc, root;
- if (name == null) {
- throw new Error("Root element needs a name.");
- }
- options = assign({}, xmldec, doctype, options);
- doc = new XMLDocument(options);
- root = doc.element(name);
- if (!options.headless) {
- doc.declaration(options);
- if ((options.pubID != null) || (options.sysID != null)) {
- doc.dtd(options);
- }
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var BaseCBWriter_1 = __nccwpck_require__(708);
+/**
+ * Serializes XML nodes.
+ */
+var YAMLCBWriter = /** @class */ (function (_super) {
+ __extends(YAMLCBWriter, _super);
+ /**
+ * Initializes a new instance of `BaseCBWriter`.
+ *
+ * @param builderOptions - XML builder options
+ */
+ function YAMLCBWriter(builderOptions) {
+ var _this = _super.call(this, builderOptions) || this;
+ _this._rootWritten = false;
+ _this._additionalLevel = 0;
+ if (builderOptions.indent.length < 2) {
+ throw new Error("YAML indententation string must be at least two characters long.");
+ }
+ if (builderOptions.offset < 0) {
+ throw new Error("YAML offset should be zero or a positive number.");
+ }
+ return _this;
}
- return root;
- };
+ /** @inheritdoc */
+ YAMLCBWriter.prototype.frontMatter = function () {
+ return this._beginLine() + "---";
+ };
+ /** @inheritdoc */
+ YAMLCBWriter.prototype.declaration = function (version, encoding, standalone) {
+ return "";
+ };
+ /** @inheritdoc */
+ YAMLCBWriter.prototype.docType = function (name, publicId, systemId) {
+ return "";
+ };
+ /** @inheritdoc */
+ YAMLCBWriter.prototype.comment = function (data) {
+ // "!": "hello"
+ return this._beginLine() +
+ this._key(this._builderOptions.convert.comment) + " " +
+ this._val(data);
+ };
+ /** @inheritdoc */
+ YAMLCBWriter.prototype.text = function (data) {
+ // "#": "hello"
+ return this._beginLine() +
+ this._key(this._builderOptions.convert.text) + " " +
+ this._val(data);
+ };
+ /** @inheritdoc */
+ YAMLCBWriter.prototype.instruction = function (target, data) {
+ // "?": "target hello"
+ return this._beginLine() +
+ this._key(this._builderOptions.convert.ins) + " " +
+ this._val(data ? target + " " + data : target);
+ };
+ /** @inheritdoc */
+ YAMLCBWriter.prototype.cdata = function (data) {
+ // "$": "hello"
+ return this._beginLine() +
+ this._key(this._builderOptions.convert.cdata) + " " +
+ this._val(data);
+ };
+ /** @inheritdoc */
+ YAMLCBWriter.prototype.attribute = function (name, value) {
+ // "@name": "val"
+ this._additionalLevel++;
+ var str = this._beginLine() +
+ this._key(this._builderOptions.convert.att + name) + " " +
+ this._val(value);
+ this._additionalLevel--;
+ return str;
+ };
+ /** @inheritdoc */
+ YAMLCBWriter.prototype.openTagBegin = function (name) {
+ // "node":
+ // "#":
+ // -
+ var str = this._beginLine() + this._key(name);
+ if (!this._rootWritten) {
+ this._rootWritten = true;
+ }
+ this.hasData = true;
+ this._additionalLevel++;
+ str += this._beginLine(true) + this._key(this._builderOptions.convert.text);
+ return str;
+ };
+ /** @inheritdoc */
+ YAMLCBWriter.prototype.openTagEnd = function (name, selfClosing, voidElement) {
+ if (selfClosing) {
+ return " " + this._val("");
+ }
+ return "";
+ };
+ /** @inheritdoc */
+ YAMLCBWriter.prototype.closeTag = function (name) {
+ this._additionalLevel--;
+ return "";
+ };
+ /** @inheritdoc */
+ YAMLCBWriter.prototype.beginElement = function (name) { };
+ /** @inheritdoc */
+ YAMLCBWriter.prototype.endElement = function (name) { };
+ /**
+ * Produces characters to be prepended to a line of string in pretty-print
+ * mode.
+ */
+ YAMLCBWriter.prototype._beginLine = function (suppressArray) {
+ if (suppressArray === void 0) { suppressArray = false; }
+ return (this.hasData ? this._writerOptions.newline : "") +
+ this._indent(this._writerOptions.offset + this.level, suppressArray);
+ };
+ /**
+ * Produces an indentation string.
+ *
+ * @param level - depth of the tree
+ * @param suppressArray - whether the suppress array marker
+ */
+ YAMLCBWriter.prototype._indent = function (level, suppressArray) {
+ if (level + this._additionalLevel <= 0) {
+ return "";
+ }
+ else {
+ var chars = this._writerOptions.indent.repeat(level + this._additionalLevel);
+ if (!suppressArray && this._rootWritten) {
+ return chars.substr(0, chars.length - 2) + '-' + chars.substr(-1, 1);
+ }
+ return chars;
+ }
+ };
+ /**
+ * Produces a YAML key string delimited with double quotes.
+ */
+ YAMLCBWriter.prototype._key = function (key) {
+ return "\"" + key + "\":";
+ };
+ /**
+ * Produces a YAML value string delimited with double quotes.
+ */
+ YAMLCBWriter.prototype._val = function (val) {
+ return JSON.stringify(val);
+ };
+ return YAMLCBWriter;
+}(BaseCBWriter_1.BaseCBWriter));
+exports.YAMLCBWriter = YAMLCBWriter;
+//# sourceMappingURL=YAMLCBWriter.js.map
- module.exports.begin = function(options, onData, onEnd) {
- var ref1;
- if (isFunction(options)) {
- ref1 = [options, onData], onData = ref1[0], onEnd = ref1[1];
- options = {};
- }
- if (onData) {
- return new XMLDocumentCB(options, onData, onEnd);
- } else {
- return new XMLDocument(options);
- }
- };
+/***/ }),
- module.exports.stringWriter = function(options) {
- return new XMLStringWriter(options);
- };
+/***/ 6517:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
- module.exports.streamWriter = function(stream, options) {
- return new XMLStreamWriter(stream, options);
- };
+"use strict";
- module.exports.implementation = new XMLDOMImplementation();
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var ObjectWriter_1 = __nccwpck_require__(243);
+var util_1 = __nccwpck_require__(6195);
+var BaseWriter_1 = __nccwpck_require__(7644);
+/**
+ * Serializes XML nodes into a YAML string.
+ */
+var YAMLWriter = /** @class */ (function (_super) {
+ __extends(YAMLWriter, _super);
+ /**
+ * Initializes a new instance of `YAMLWriter`.
+ *
+ * @param builderOptions - XML builder options
+ * @param writerOptions - serialization options
+ */
+ function YAMLWriter(builderOptions, writerOptions) {
+ var _this = _super.call(this, builderOptions) || this;
+ // provide default options
+ _this._writerOptions = util_1.applyDefaults(writerOptions, {
+ wellFormed: false,
+ noDoubleEncoding: false,
+ indent: ' ',
+ newline: '\n',
+ offset: 0,
+ group: false,
+ verbose: false
+ });
+ if (_this._writerOptions.indent.length < 2) {
+ throw new Error("YAML indententation string must be at least two characters long.");
+ }
+ if (_this._writerOptions.offset < 0) {
+ throw new Error("YAML offset should be zero or a positive number.");
+ }
+ return _this;
+ }
+ /**
+ * Produces an XML serialization of the given node.
+ *
+ * @param node - node to serialize
+ * @param writerOptions - serialization options
+ */
+ YAMLWriter.prototype.serialize = function (node) {
+ // convert to object
+ var objectWriterOptions = util_1.applyDefaults(this._writerOptions, {
+ format: "object",
+ wellFormed: false,
+ noDoubleEncoding: false,
+ });
+ var objectWriter = new ObjectWriter_1.ObjectWriter(this._builderOptions, objectWriterOptions);
+ var val = objectWriter.serialize(node);
+ var markup = this._beginLine(this._writerOptions, 0) + '---' + this._endLine(this._writerOptions) +
+ this._convertObject(val, this._writerOptions, 0);
+ // remove trailing newline
+ /* istanbul ignore else */
+ if (markup.slice(-this._writerOptions.newline.length) === this._writerOptions.newline) {
+ markup = markup.slice(0, -this._writerOptions.newline.length);
+ }
+ return markup;
+ };
+ /**
+ * Produces an XML serialization of the given object.
+ *
+ * @param obj - object to serialize
+ * @param options - serialization options
+ * @param level - depth of the XML tree
+ * @param indentLeaf - indents leaf nodes
+ */
+ YAMLWriter.prototype._convertObject = function (obj, options, level, suppressIndent) {
+ var e_1, _a;
+ var _this = this;
+ if (suppressIndent === void 0) { suppressIndent = false; }
+ var markup = '';
+ if (util_1.isArray(obj)) {
+ try {
+ for (var obj_1 = __values(obj), obj_1_1 = obj_1.next(); !obj_1_1.done; obj_1_1 = obj_1.next()) {
+ var val = obj_1_1.value;
+ markup += this._beginLine(options, level, true);
+ if (!util_1.isObject(val)) {
+ markup += this._val(val) + this._endLine(options);
+ }
+ else if (util_1.isEmpty(val)) {
+ markup += '""' + this._endLine(options);
+ }
+ else {
+ markup += this._convertObject(val, options, level, true);
+ }
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (obj_1_1 && !obj_1_1.done && (_a = obj_1.return)) _a.call(obj_1);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ }
+ else /* if (isObject(obj)) */ {
+ util_1.forEachObject(obj, function (key, val) {
+ if (suppressIndent) {
+ markup += _this._key(key);
+ suppressIndent = false;
+ }
+ else {
+ markup += _this._beginLine(options, level) + _this._key(key);
+ }
+ if (!util_1.isObject(val)) {
+ markup += ' ' + _this._val(val) + _this._endLine(options);
+ }
+ else if (util_1.isEmpty(val)) {
+ markup += ' ""' + _this._endLine(options);
+ }
+ else {
+ markup += _this._endLine(options) +
+ _this._convertObject(val, options, level + 1);
+ }
+ }, this);
+ }
+ return markup;
+ };
+ /**
+ * Produces characters to be prepended to a line of string in pretty-print
+ * mode.
+ *
+ * @param options - serialization options
+ * @param level - current depth of the XML tree
+ * @param isArray - whether this line is an array item
+ */
+ YAMLWriter.prototype._beginLine = function (options, level, isArray) {
+ if (isArray === void 0) { isArray = false; }
+ var indentLevel = options.offset + level + 1;
+ var chars = new Array(indentLevel).join(options.indent);
+ if (isArray) {
+ return chars.substr(0, chars.length - 2) + '-' + chars.substr(-1, 1);
+ }
+ else {
+ return chars;
+ }
+ };
+ /**
+ * Produces characters to be appended to a line of string in pretty-print
+ * mode.
+ *
+ * @param options - serialization options
+ */
+ YAMLWriter.prototype._endLine = function (options) {
+ return options.newline;
+ };
+ /**
+ * Produces a YAML key string delimited with double quotes.
+ */
+ YAMLWriter.prototype._key = function (key) {
+ return "\"" + key + "\":";
+ };
+ /**
+ * Produces a YAML value string delimited with double quotes.
+ */
+ YAMLWriter.prototype._val = function (val) {
+ return JSON.stringify(val);
+ };
+ return YAMLWriter;
+}(BaseWriter_1.BaseWriter));
+exports.YAMLWriter = YAMLWriter;
+//# sourceMappingURL=YAMLWriter.js.map
- module.exports.nodeType = NodeType;
+/***/ }),
- module.exports.writerState = WriterState;
+/***/ 7476:
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-}).call(this);
+"use strict";
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+var MapWriter_1 = __nccwpck_require__(1397);
+exports.MapWriter = MapWriter_1.MapWriter;
+var XMLWriter_1 = __nccwpck_require__(9606);
+exports.XMLWriter = XMLWriter_1.XMLWriter;
+var ObjectWriter_1 = __nccwpck_require__(243);
+exports.ObjectWriter = ObjectWriter_1.ObjectWriter;
+var JSONWriter_1 = __nccwpck_require__(7510);
+exports.JSONWriter = JSONWriter_1.JSONWriter;
+var YAMLWriter_1 = __nccwpck_require__(6517);
+exports.YAMLWriter = YAMLWriter_1.YAMLWriter;
+//# sourceMappingURL=index.js.map
/***/ }),
@@ -68624,7 +103695,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.getVersionFromFileContent = exports.isCacheFeatureAvailable = exports.isGhes = exports.isJobStatusSuccess = exports.getToolcachePath = exports.isVersionSatisfies = exports.getDownloadArchiveExtension = exports.extractJdkFile = exports.getVersionFromToolcachePath = exports.getBooleanInput = exports.getTempDir = void 0;
+exports.getVersionFromFile = exports.isCacheFeatureAvailable = exports.isGhes = exports.isJobStatusSuccess = exports.getToolcachePath = exports.isVersionSatisfies = exports.getDownloadArchiveExtension = exports.extractJdkFile = exports.getVersionFromToolcachePath = exports.getBooleanInput = exports.getTempDir = void 0;
const os_1 = __importDefault(__nccwpck_require__(2037));
const path_1 = __importDefault(__nccwpck_require__(1017));
const fs = __importStar(__nccwpck_require__(7147));
@@ -68633,6 +103704,7 @@ const cache = __importStar(__nccwpck_require__(7799));
const core = __importStar(__nccwpck_require__(2186));
const tc = __importStar(__nccwpck_require__(7784));
const constants_1 = __nccwpck_require__(9042);
+const xmlbuilder2_1 = __nccwpck_require__(151);
function getTempDir() {
let tempDirectory = process.env['RUNNER_TEMP'] || os_1.default.tmpdir();
return tempDirectory;
@@ -68719,17 +103791,27 @@ function isCacheFeatureAvailable() {
return false;
}
exports.isCacheFeatureAvailable = isCacheFeatureAvailable;
-function getVersionFromFileContent(content, distributionName) {
- var _a, _b, _c, _d, _e;
- const javaVersionRegExp = /(?(?<=(^|\s|\-))(\d+\S*))(\s|$)/;
- const fileContent = ((_b = (_a = content.match(javaVersionRegExp)) === null || _a === void 0 ? void 0 : _a.groups) === null || _b === void 0 ? void 0 : _b.version)
- ? (_d = (_c = content.match(javaVersionRegExp)) === null || _c === void 0 ? void 0 : _c.groups) === null || _d === void 0 ? void 0 : _d.version
- : '';
- if (!fileContent) {
+function getVersionFromFile(fileName, content, distributionName) {
+ var _a;
+ let parsedVersion = null;
+ core.debug(`Getting version from: '${fileName}'`);
+ if (fileName.includes('.java-version')) {
+ parsedVersion = parseJavaVersionFile(content);
+ }
+ else if (fileName.includes('pom.xml')) {
+ parsedVersion = parsePomXmlFile(content);
+ }
+ else if (fileName.includes('build.gradle')) {
+ parsedVersion = parseBuildGradleFile(content);
+ }
+ else {
+ throw new Error(`File ${fileName} not supported, files supported: '.java-version' 'pom.xml' and 'build.gradle'`);
+ }
+ if (!parsedVersion) {
return null;
}
- core.debug(`Version from file '${fileContent}'`);
- const tentativeVersion = avoidOldNotation(fileContent);
+ core.debug(`Version from file '${parsedVersion}'`);
+ const tentativeVersion = avoidOldNotation(parsedVersion);
const rawVersion = tentativeVersion.split('-')[0];
let version = semver.validRange(rawVersion) ? tentativeVersion : semver.coerce(tentativeVersion);
core.debug(`Range version from file is '${version}'`);
@@ -68737,12 +103819,112 @@ function getVersionFromFileContent(content, distributionName) {
return null;
}
if (constants_1.DISTRIBUTIONS_ONLY_MAJOR_VERSION.includes(distributionName)) {
- const coerceVersion = (_e = semver.coerce(version)) !== null && _e !== void 0 ? _e : version;
+ const coerceVersion = (_a = semver.coerce(version)) !== null && _a !== void 0 ? _a : version;
version = semver.major(coerceVersion).toString();
}
return version.toString();
}
-exports.getVersionFromFileContent = getVersionFromFileContent;
+exports.getVersionFromFile = getVersionFromFile;
+function parseJavaVersionFile(content) {
+ var _a, _b, _c, _d;
+ const javaVersionRegExp = /(?(?<=(^|\s|\-))(\d+\S*))(\s|$)/;
+ const fileContent = ((_b = (_a = content.match(javaVersionRegExp)) === null || _a === void 0 ? void 0 : _a.groups) === null || _b === void 0 ? void 0 : _b.version)
+ ? (_d = (_c = content.match(javaVersionRegExp)) === null || _c === void 0 ? void 0 : _c.groups) === null || _d === void 0 ? void 0 : _d.version
+ : '';
+ if (!fileContent) {
+ return null;
+ }
+ return fileContent;
+}
+function parsePomXmlFile(xmlFileAsString) {
+ const xmlDoc = xmlbuilder2_1.create(xmlFileAsString);
+ const versionDefinitionTypes = [
+ getByMavenProperties,
+ getBySpringBootSpecification,
+ getByMavenCompilerPluginConfig
+ ];
+ for (const definitionType of versionDefinitionTypes) {
+ const version = definitionType(xmlDoc);
+ if (version !== null) {
+ return version;
+ }
+ }
+ return null;
+}
+function getByMavenProperties(xmlDoc) {
+ const versionTags = ['maven.compiler.source', 'maven.compiler.release'];
+ for (const tag of versionTags) {
+ const version = getVersionByTagName(xmlDoc, tag);
+ if (version !== null) {
+ return version;
+ }
+ }
+ return null;
+}
+function getBySpringBootSpecification(xmlDoc) {
+ return getVersionByTagName(xmlDoc, 'java.version');
+}
+function getVersionByTagName(xmlDoc, tag) {
+ const match = xmlDoc.find(n => n.node.nodeName === tag, false, true);
+ if (match !== undefined) {
+ core.debug(`Found java version: '${match.first().toString()}' using tag: '${tag}'`);
+ return match.first().toString();
+ }
+ else {
+ return null;
+ }
+}
+function getByMavenCompilerPluginConfig(xmlDoc) {
+ const mavenCompilePlugin = xmlDoc.find(n => n.node.nodeName === 'artifactId' && n.first().toString() === 'maven-compiler-plugin', false, true);
+ if (mavenCompilePlugin != undefined) {
+ const sourceOrTag = mavenCompilePlugin
+ .up()
+ .find(n => n.node.nodeName === 'source' || n.node.nodeName === 'target', false, true);
+ if (sourceOrTag !== undefined) {
+ core.debug(`Found java version: '${sourceOrTag
+ .first()
+ .toString()}' defined on the maven-compiler-plugin'`);
+ return sourceOrTag.first().toString();
+ }
+ }
+ return null;
+}
+function parseBuildGradleFile(buildGradle) {
+ const versionDefinitionTypes = [getByJavaLibraryPlugin, getByJavaPlugin];
+ for (const definitionType of versionDefinitionTypes) {
+ const version = definitionType(buildGradle);
+ if (version !== null) {
+ return version;
+ }
+ }
+ return null;
+}
+function getByJavaLibraryPlugin(buildGradle) {
+ return getVersionByRegex(buildGradle, 'JavaLanguageVersion.of\\((\\d+)\\)');
+}
+function getByJavaPlugin(buildGradle) {
+ const possibleRegex = [
+ 'sourceCompatibility\\s?=\\s?JavaVersion.VERSION_(?:1_)?(\\d+)',
+ 'targetCompatibility\\s?=\\s?JavaVersion.VERSION_(?:1_)?(\\d+)'
+ ];
+ for (var regex of possibleRegex) {
+ const version = getVersionByRegex(buildGradle, regex);
+ if (version !== null) {
+ return version;
+ }
+ }
+ return null;
+}
+function getVersionByRegex(content, regex) {
+ const match = content.match(new RegExp(regex));
+ if (match) {
+ core.debug(`Found java version: '${match[1]}' using regex: '${regex}'`);
+ return match[1];
+ }
+ else {
+ return null;
+ }
+}
// By convention, action expects version 8 in the format `8.*` instead of `1.8`
function avoidOldNotation(content) {
return content.startsWith('1.') ? content.substring(2) : content;
diff --git a/dist/setup/index.js b/dist/setup/index.js
index 3b8eb7455..277e1e9e2 100644
--- a/dist/setup/index.js
+++ b/dist/setup/index.js
@@ -105104,7 +105104,7 @@ function run() {
.readFileSync(versionFile)
.toString()
.trim();
- const version = util_1.getVersionFromFileContent(content, distributionName);
+ const version = util_1.getVersionFromFile(versionFile, content, distributionName);
core.debug(`Parsed version from file '${version}'`);
if (!version) {
throw new Error(`No supported version was found in file ${versionFile}`);
@@ -105352,7 +105352,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.getVersionFromFileContent = exports.isCacheFeatureAvailable = exports.isGhes = exports.isJobStatusSuccess = exports.getToolcachePath = exports.isVersionSatisfies = exports.getDownloadArchiveExtension = exports.extractJdkFile = exports.getVersionFromToolcachePath = exports.getBooleanInput = exports.getTempDir = void 0;
+exports.getVersionFromFile = exports.isCacheFeatureAvailable = exports.isGhes = exports.isJobStatusSuccess = exports.getToolcachePath = exports.isVersionSatisfies = exports.getDownloadArchiveExtension = exports.extractJdkFile = exports.getVersionFromToolcachePath = exports.getBooleanInput = exports.getTempDir = void 0;
const os_1 = __importDefault(__nccwpck_require__(2037));
const path_1 = __importDefault(__nccwpck_require__(1017));
const fs = __importStar(__nccwpck_require__(7147));
@@ -105361,6 +105361,7 @@ const cache = __importStar(__nccwpck_require__(7799));
const core = __importStar(__nccwpck_require__(2186));
const tc = __importStar(__nccwpck_require__(7784));
const constants_1 = __nccwpck_require__(9042);
+const xmlbuilder2_1 = __nccwpck_require__(151);
function getTempDir() {
let tempDirectory = process.env['RUNNER_TEMP'] || os_1.default.tmpdir();
return tempDirectory;
@@ -105447,17 +105448,27 @@ function isCacheFeatureAvailable() {
return false;
}
exports.isCacheFeatureAvailable = isCacheFeatureAvailable;
-function getVersionFromFileContent(content, distributionName) {
- var _a, _b, _c, _d, _e;
- const javaVersionRegExp = /(?(?<=(^|\s|\-))(\d+\S*))(\s|$)/;
- const fileContent = ((_b = (_a = content.match(javaVersionRegExp)) === null || _a === void 0 ? void 0 : _a.groups) === null || _b === void 0 ? void 0 : _b.version)
- ? (_d = (_c = content.match(javaVersionRegExp)) === null || _c === void 0 ? void 0 : _c.groups) === null || _d === void 0 ? void 0 : _d.version
- : '';
- if (!fileContent) {
+function getVersionFromFile(fileName, content, distributionName) {
+ var _a;
+ let parsedVersion = null;
+ core.debug(`Getting version from: '${fileName}'`);
+ if (fileName.includes('.java-version')) {
+ parsedVersion = parseJavaVersionFile(content);
+ }
+ else if (fileName.includes('pom.xml')) {
+ parsedVersion = parsePomXmlFile(content);
+ }
+ else if (fileName.includes('build.gradle')) {
+ parsedVersion = parseBuildGradleFile(content);
+ }
+ else {
+ throw new Error(`File ${fileName} not supported, files supported: '.java-version' 'pom.xml' and 'build.gradle'`);
+ }
+ if (!parsedVersion) {
return null;
}
- core.debug(`Version from file '${fileContent}'`);
- const tentativeVersion = avoidOldNotation(fileContent);
+ core.debug(`Version from file '${parsedVersion}'`);
+ const tentativeVersion = avoidOldNotation(parsedVersion);
const rawVersion = tentativeVersion.split('-')[0];
let version = semver.validRange(rawVersion) ? tentativeVersion : semver.coerce(tentativeVersion);
core.debug(`Range version from file is '${version}'`);
@@ -105465,12 +105476,112 @@ function getVersionFromFileContent(content, distributionName) {
return null;
}
if (constants_1.DISTRIBUTIONS_ONLY_MAJOR_VERSION.includes(distributionName)) {
- const coerceVersion = (_e = semver.coerce(version)) !== null && _e !== void 0 ? _e : version;
+ const coerceVersion = (_a = semver.coerce(version)) !== null && _a !== void 0 ? _a : version;
version = semver.major(coerceVersion).toString();
}
return version.toString();
}
-exports.getVersionFromFileContent = getVersionFromFileContent;
+exports.getVersionFromFile = getVersionFromFile;
+function parseJavaVersionFile(content) {
+ var _a, _b, _c, _d;
+ const javaVersionRegExp = /(?(?<=(^|\s|\-))(\d+\S*))(\s|$)/;
+ const fileContent = ((_b = (_a = content.match(javaVersionRegExp)) === null || _a === void 0 ? void 0 : _a.groups) === null || _b === void 0 ? void 0 : _b.version)
+ ? (_d = (_c = content.match(javaVersionRegExp)) === null || _c === void 0 ? void 0 : _c.groups) === null || _d === void 0 ? void 0 : _d.version
+ : '';
+ if (!fileContent) {
+ return null;
+ }
+ return fileContent;
+}
+function parsePomXmlFile(xmlFileAsString) {
+ const xmlDoc = xmlbuilder2_1.create(xmlFileAsString);
+ const versionDefinitionTypes = [
+ getByMavenProperties,
+ getBySpringBootSpecification,
+ getByMavenCompilerPluginConfig
+ ];
+ for (const definitionType of versionDefinitionTypes) {
+ const version = definitionType(xmlDoc);
+ if (version !== null) {
+ return version;
+ }
+ }
+ return null;
+}
+function getByMavenProperties(xmlDoc) {
+ const versionTags = ['maven.compiler.source', 'maven.compiler.release'];
+ for (const tag of versionTags) {
+ const version = getVersionByTagName(xmlDoc, tag);
+ if (version !== null) {
+ return version;
+ }
+ }
+ return null;
+}
+function getBySpringBootSpecification(xmlDoc) {
+ return getVersionByTagName(xmlDoc, 'java.version');
+}
+function getVersionByTagName(xmlDoc, tag) {
+ const match = xmlDoc.find(n => n.node.nodeName === tag, false, true);
+ if (match !== undefined) {
+ core.debug(`Found java version: '${match.first().toString()}' using tag: '${tag}'`);
+ return match.first().toString();
+ }
+ else {
+ return null;
+ }
+}
+function getByMavenCompilerPluginConfig(xmlDoc) {
+ const mavenCompilePlugin = xmlDoc.find(n => n.node.nodeName === 'artifactId' && n.first().toString() === 'maven-compiler-plugin', false, true);
+ if (mavenCompilePlugin != undefined) {
+ const sourceOrTag = mavenCompilePlugin
+ .up()
+ .find(n => n.node.nodeName === 'source' || n.node.nodeName === 'target', false, true);
+ if (sourceOrTag !== undefined) {
+ core.debug(`Found java version: '${sourceOrTag
+ .first()
+ .toString()}' defined on the maven-compiler-plugin'`);
+ return sourceOrTag.first().toString();
+ }
+ }
+ return null;
+}
+function parseBuildGradleFile(buildGradle) {
+ const versionDefinitionTypes = [getByJavaLibraryPlugin, getByJavaPlugin];
+ for (const definitionType of versionDefinitionTypes) {
+ const version = definitionType(buildGradle);
+ if (version !== null) {
+ return version;
+ }
+ }
+ return null;
+}
+function getByJavaLibraryPlugin(buildGradle) {
+ return getVersionByRegex(buildGradle, 'JavaLanguageVersion.of\\((\\d+)\\)');
+}
+function getByJavaPlugin(buildGradle) {
+ const possibleRegex = [
+ 'sourceCompatibility\\s?=\\s?JavaVersion.VERSION_(?:1_)?(\\d+)',
+ 'targetCompatibility\\s?=\\s?JavaVersion.VERSION_(?:1_)?(\\d+)'
+ ];
+ for (var regex of possibleRegex) {
+ const version = getVersionByRegex(buildGradle, regex);
+ if (version !== null) {
+ return version;
+ }
+ }
+ return null;
+}
+function getVersionByRegex(content, regex) {
+ const match = content.match(new RegExp(regex));
+ if (match) {
+ core.debug(`Found java version: '${match[1]}' using regex: '${regex}'`);
+ return match[1];
+ }
+ else {
+ return null;
+ }
+}
// By convention, action expects version 8 in the format `8.*` instead of `1.8`
function avoidOldNotation(content) {
return content.startsWith('1.') ? content.substring(2) : content;
diff --git a/docs/advanced-usage.md b/docs/advanced-usage.md
index f5463bb77..996ad483a 100644
--- a/docs/advanced-usage.md
+++ b/docs/advanced-usage.md
@@ -468,12 +468,25 @@ steps:
## Java-version file
If the `java-version-file` input is specified, the action will try to extract the version from the file and install it.
-Action is able to recognize all variants of the version description according to [jenv](https://github.com/jenv/jenv).
-Valid entry options:
-```
-major versions: 8, 11, 16, 17
-more specific versions: 1.8.0.2, 17.0, 11.0, 11.0.4, 8.0.232, 8.0.282+8
-early access (EA) versions: 15-ea, 15.0.0-ea, 15.0.0-ea.2, 15.0.0+2-ea
-versions with specified distribution: openjdk64-11.0.2
-```
-If the file contains multiple versions, only the first one will be recognized.
+
+It is able to parse the following files as `java-version-file`:
+
+- `.java-version`: Action is able to recognize all variants of the version description according to [jenv](https://github.com/jenv/jenv).
+ Valid entry options:
+ ```
+ major versions: 8, 11, 16, 17
+ more specific versions: 1.8.0.2, 17.0, 11.0, 11.0.4, 8.0.232, 8.0.282+8
+ early access (EA) versions: 15-ea, 15.0.0-ea, 15.0.0-ea.2, 15.0.0+2-ea
+ versions with specified distribution: openjdk64-11.0.2
+ ```
+ If the file contains multiple versions, only the first one will be recognized.
+- `pom.xml`
+ - Spring Boot: `` under project properties.
+ - Maven compiler plugin
+ - Setting the [source](https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html).
+ - Setting the [release](https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-release.html).
+- `build.gradle`
+ - Java library plugin: uses what is defined by `JavaLanguageVersion` example: `JavaLanguageVersion.of(11)`
+ - Java plugin [docs](https://docs.gradle.org/current/userguide/java_plugin.html#toolchain_and_compatibility):
+ - sourceCompatibility
+ - targetCompatibility
diff --git a/package-lock.json b/package-lock.json
index cd47d6ebf..51d1c68d0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,4784 +1,8 @@
{
"name": "setup-java",
"version": "3.4.1",
- "lockfileVersion": 2,
+ "lockfileVersion": 1,
"requires": true,
- "packages": {
- "": {
- "name": "setup-java",
- "version": "3.4.1",
- "license": "MIT",
- "dependencies": {
- "@actions/cache": "^3.0.4",
- "@actions/core": "^1.10.0",
- "@actions/exec": "^1.0.4",
- "@actions/glob": "^0.2.0",
- "@actions/http-client": "^1.0.11",
- "@actions/io": "^1.0.2",
- "@actions/tool-cache": "^1.6.1",
- "semver": "^7.3.4",
- "xmlbuilder2": "^2.4.0"
- },
- "devDependencies": {
- "@types/jest": "^27.0.2",
- "@types/node": "^16.11.25",
- "@types/semver": "^7.3.4",
- "@vercel/ncc": "^0.33.4",
- "jest": "^27.2.5",
- "jest-circus": "^27.2.5",
- "prettier": "^1.19.1",
- "ts-jest": "^27.0.5",
- "typescript": "^4.2.3"
- }
- },
- "node_modules/@actions/cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.0.4.tgz",
- "integrity": "sha512-9RwVL8/ISJoYWFNH1wR/C26E+M3HDkGPWmbFJMMCKwTkjbNZJreMT4XaR/EB1bheIvN4PREQxEQQVJ18IPnf/Q==",
- "dependencies": {
- "@actions/core": "^1.2.6",
- "@actions/exec": "^1.0.1",
- "@actions/glob": "^0.1.0",
- "@actions/http-client": "^2.0.1",
- "@actions/io": "^1.0.1",
- "@azure/ms-rest-js": "^2.6.0",
- "@azure/storage-blob": "^12.8.0",
- "semver": "^6.1.0",
- "uuid": "^3.3.3"
- }
- },
- "node_modules/@actions/cache/node_modules/@actions/glob": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/@actions/glob/-/glob-0.1.2.tgz",
- "integrity": "sha512-SclLR7Ia5sEqjkJTPs7Sd86maMDw43p769YxBOxvPvEWuPEhpAnBsQfENOpXjFYMmhCqd127bmf+YdvJqVqR4A==",
- "dependencies": {
- "@actions/core": "^1.2.6",
- "minimatch": "^3.0.4"
- }
- },
- "node_modules/@actions/cache/node_modules/@actions/http-client": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz",
- "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==",
- "dependencies": {
- "tunnel": "^0.0.6"
- }
- },
- "node_modules/@actions/cache/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@actions/core": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz",
- "integrity": "sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==",
- "dependencies": {
- "@actions/http-client": "^2.0.1",
- "uuid": "^8.3.2"
- }
- },
- "node_modules/@actions/core/node_modules/@actions/http-client": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz",
- "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==",
- "dependencies": {
- "tunnel": "^0.0.6"
- }
- },
- "node_modules/@actions/core/node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/@actions/exec": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.0.4.tgz",
- "integrity": "sha512-4DPChWow9yc9W3WqEbUj8Nr86xkpyE29ZzWjXucHItclLbEW6jr80Zx4nqv18QL6KK65+cifiQZXvnqgTV6oHw==",
- "dependencies": {
- "@actions/io": "^1.0.1"
- }
- },
- "node_modules/@actions/glob": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/@actions/glob/-/glob-0.2.0.tgz",
- "integrity": "sha512-mqE2a7I66kxcvsdwxs/filQwZsq25IfktMaviGfDB51v6Q3bvxnV7mFsZnvYtLhqGZbPxwBnH8AD3UYaOWb//w==",
- "dependencies": {
- "@actions/core": "^1.2.6",
- "minimatch": "^3.0.4"
- }
- },
- "node_modules/@actions/http-client": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz",
- "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==",
- "dependencies": {
- "tunnel": "0.0.6"
- }
- },
- "node_modules/@actions/io": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.0.2.tgz",
- "integrity": "sha512-J8KuFqVPr3p6U8W93DOXlXW6zFvrQAJANdS+vw0YhusLIq+bszW8zmK2Fh1C2kDPX8FMvwIl1OUcFgvJoXLbAg=="
- },
- "node_modules/@actions/tool-cache": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-1.6.1.tgz",
- "integrity": "sha512-F+vwEDwfqcHMKuSkj79pihOnsAMv23EkG76nMpc82UsnXwyQdyEsktGxrB0SNtm7pRqTXEIOoAPTgrSQclXYTg==",
- "dependencies": {
- "@actions/core": "^1.2.6",
- "@actions/exec": "^1.0.0",
- "@actions/http-client": "^1.0.8",
- "@actions/io": "^1.0.1",
- "semver": "^6.1.0",
- "uuid": "^3.3.2"
- }
- },
- "node_modules/@actions/tool-cache/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@azure/abort-controller": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.0.4.tgz",
- "integrity": "sha512-lNUmDRVGpanCsiUN3NWxFTdwmdFI53xwhkTFfHDGTYk46ca7Ind3nanJc+U6Zj9Tv+9nTCWRBscWEW1DyKOpTw==",
- "dependencies": {
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/@azure/abort-controller/node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- },
- "node_modules/@azure/core-asynciterator-polyfill": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@azure/core-asynciterator-polyfill/-/core-asynciterator-polyfill-1.0.2.tgz",
- "integrity": "sha512-3rkP4LnnlWawl0LZptJOdXNrT/fHp2eQMadoasa6afspXdpGrtPZuAQc2PD0cpgyuoXtUWyC3tv7xfntjGS5Dw==",
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/@azure/core-auth": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.3.2.tgz",
- "integrity": "sha512-7CU6DmCHIZp5ZPiZ9r3J17lTKMmYsm/zGvNkjArQwPkrLlZ1TZ+EUYfGgh2X31OLMVAQCTJZW4cXHJi02EbJnA==",
- "dependencies": {
- "@azure/abort-controller": "^1.0.0",
- "tslib": "^2.2.0"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/@azure/core-auth/node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- },
- "node_modules/@azure/core-http": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/@azure/core-http/-/core-http-2.2.4.tgz",
- "integrity": "sha512-QmmJmexXKtPyc3/rsZR/YTLDvMatzbzAypJmLzvlfxgz/SkgnqV/D4f6F2LsK6tBj1qhyp8BoXiOebiej0zz3A==",
- "dependencies": {
- "@azure/abort-controller": "^1.0.0",
- "@azure/core-asynciterator-polyfill": "^1.0.0",
- "@azure/core-auth": "^1.3.0",
- "@azure/core-tracing": "1.0.0-preview.13",
- "@azure/logger": "^1.0.0",
- "@types/node-fetch": "^2.5.0",
- "@types/tunnel": "^0.0.3",
- "form-data": "^4.0.0",
- "node-fetch": "^2.6.7",
- "process": "^0.11.10",
- "tough-cookie": "^4.0.0",
- "tslib": "^2.2.0",
- "tunnel": "^0.0.6",
- "uuid": "^8.3.0",
- "xml2js": "^0.4.19"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/@azure/core-http/node_modules/form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/@azure/core-http/node_modules/tough-cookie": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz",
- "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==",
- "dependencies": {
- "psl": "^1.1.33",
- "punycode": "^2.1.1",
- "universalify": "^0.1.2"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@azure/core-http/node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- },
- "node_modules/@azure/core-http/node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/@azure/core-lro": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.2.4.tgz",
- "integrity": "sha512-e1I2v2CZM0mQo8+RSix0x091Av493e4bnT22ds2fcQGslTHzM2oTbswkB65nP4iEpCxBrFxOSDPKExmTmjCVtQ==",
- "dependencies": {
- "@azure/abort-controller": "^1.0.0",
- "@azure/core-tracing": "1.0.0-preview.13",
- "@azure/logger": "^1.0.0",
- "tslib": "^2.2.0"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/@azure/core-lro/node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- },
- "node_modules/@azure/core-paging": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.2.1.tgz",
- "integrity": "sha512-UtH5iMlYsvg+nQYIl4UHlvvSrsBjOlRF4fs0j7mxd3rWdAStrKYrh2durOpHs5C9yZbVhsVDaisoyaf/lL1EVA==",
- "dependencies": {
- "@azure/core-asynciterator-polyfill": "^1.0.0",
- "tslib": "^2.2.0"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/@azure/core-paging/node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- },
- "node_modules/@azure/core-tracing": {
- "version": "1.0.0-preview.13",
- "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz",
- "integrity": "sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==",
- "dependencies": {
- "@opentelemetry/api": "^1.0.1",
- "tslib": "^2.2.0"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/@azure/core-tracing/node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- },
- "node_modules/@azure/logger": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.0.3.tgz",
- "integrity": "sha512-aK4s3Xxjrx3daZr3VylxejK3vG5ExXck5WOHDJ8in/k9AqlfIyFMMT1uG7u8mNjX+QRILTIn0/Xgschfh/dQ9g==",
- "dependencies": {
- "tslib": "^2.2.0"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/@azure/logger/node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- },
- "node_modules/@azure/ms-rest-js": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/@azure/ms-rest-js/-/ms-rest-js-2.6.1.tgz",
- "integrity": "sha512-LLi4jRe/qy5IM8U2CkoDgSZp2OH+MgDe2wePmhz8uY84Svc53EhHaamVyoU6BjjHBxvCRh1vcD1urJDccrxqIw==",
- "dependencies": {
- "@azure/core-auth": "^1.1.4",
- "abort-controller": "^3.0.0",
- "form-data": "^2.5.0",
- "node-fetch": "^2.6.7",
- "tough-cookie": "^3.0.1",
- "tslib": "^1.10.0",
- "tunnel": "0.0.6",
- "uuid": "^8.3.2",
- "xml2js": "^0.4.19"
- }
- },
- "node_modules/@azure/ms-rest-js/node_modules/form-data": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
- "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 0.12"
- }
- },
- "node_modules/@azure/ms-rest-js/node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/@azure/storage-blob": {
- "version": "12.9.0",
- "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.9.0.tgz",
- "integrity": "sha512-ank38FdCLfJ+EoeMzCz3hkYJuZAd63ARvDKkxZYRDb+beBYf+/+gx8jNTqkq/hfyUl4dJQ/a7tECU0Y0F98CHg==",
- "dependencies": {
- "@azure/abort-controller": "^1.0.0",
- "@azure/core-http": "^2.0.0",
- "@azure/core-lro": "^2.2.0",
- "@azure/core-paging": "^1.1.1",
- "@azure/core-tracing": "1.0.0-preview.13",
- "@azure/logger": "^1.0.0",
- "events": "^3.0.0",
- "tslib": "^2.2.0"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/@azure/storage-blob/node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- },
- "node_modules/@babel/code-frame": {
- "version": "7.15.8",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz",
- "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==",
- "dev": true,
- "dependencies": {
- "@babel/highlight": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/compat-data": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz",
- "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/core": {
- "version": "7.15.8",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz",
- "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.15.8",
- "@babel/generator": "^7.15.8",
- "@babel/helper-compilation-targets": "^7.15.4",
- "@babel/helper-module-transforms": "^7.15.8",
- "@babel/helpers": "^7.15.4",
- "@babel/parser": "^7.15.8",
- "@babel/template": "^7.15.4",
- "@babel/traverse": "^7.15.4",
- "@babel/types": "^7.15.6",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.1.2",
- "semver": "^6.3.0",
- "source-map": "^0.5.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
- }
- },
- "node_modules/@babel/core/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/core/node_modules/source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/@babel/generator": {
- "version": "7.15.8",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz",
- "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.15.6",
- "jsesc": "^2.5.1",
- "source-map": "^0.5.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/generator/node_modules/source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz",
- "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.15.0",
- "@babel/helper-validator-option": "^7.14.5",
- "browserslist": "^4.16.6",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-function-name": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz",
- "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-get-function-arity": "^7.15.4",
- "@babel/template": "^7.15.4",
- "@babel/types": "^7.15.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-get-function-arity": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz",
- "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.15.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz",
- "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.15.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz",
- "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.15.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-imports": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz",
- "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.15.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.15.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz",
- "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-module-imports": "^7.15.4",
- "@babel/helper-replace-supers": "^7.15.4",
- "@babel/helper-simple-access": "^7.15.4",
- "@babel/helper-split-export-declaration": "^7.15.4",
- "@babel/helper-validator-identifier": "^7.15.7",
- "@babel/template": "^7.15.4",
- "@babel/traverse": "^7.15.4",
- "@babel/types": "^7.15.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-optimise-call-expression": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz",
- "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.15.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-plugin-utils": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz",
- "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-replace-supers": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz",
- "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-member-expression-to-functions": "^7.15.4",
- "@babel/helper-optimise-call-expression": "^7.15.4",
- "@babel/traverse": "^7.15.4",
- "@babel/types": "^7.15.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-simple-access": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz",
- "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.15.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz",
- "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.15.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.15.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
- "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-option": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz",
- "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helpers": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz",
- "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==",
- "dev": true,
- "dependencies": {
- "@babel/template": "^7.15.4",
- "@babel/traverse": "^7.15.4",
- "@babel/types": "^7.15.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz",
- "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.14.5",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
- "dev": true
- },
- "node_modules/@babel/highlight/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.15.8",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz",
- "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==",
- "dev": true,
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-bigint": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
- "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-class-properties": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.12.13"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-import-meta": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
- "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-json-strings": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-optional-catch-binding": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-optional-chaining": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-top-level-await": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz",
- "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/template": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz",
- "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.14.5",
- "@babel/parser": "^7.15.4",
- "@babel/types": "^7.15.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz",
- "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.14.5",
- "@babel/generator": "^7.15.4",
- "@babel/helper-function-name": "^7.15.4",
- "@babel/helper-hoist-variables": "^7.15.4",
- "@babel/helper-split-export-declaration": "^7.15.4",
- "@babel/parser": "^7.15.4",
- "@babel/types": "^7.15.4",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/types": {
- "version": "7.15.6",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz",
- "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==",
- "dev": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.14.9",
- "to-fast-properties": "^2.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@bcoe/v8-coverage": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
- "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
- "dev": true
- },
- "node_modules/@istanbuljs/load-nyc-config": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
- "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
- "dev": true,
- "dependencies": {
- "camelcase": "^5.3.1",
- "find-up": "^4.1.0",
- "get-package-type": "^0.1.0",
- "js-yaml": "^3.13.1",
- "resolve-from": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/schema": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/console": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.2.5.tgz",
- "integrity": "sha512-smtlRF9vNKorRMCUtJ+yllIoiY8oFmfFG7xlzsAE76nKEwXNhjPOJIsc7Dv+AUitVt76t+KjIpUP9m98Crn2LQ==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^27.2.5",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "jest-message-util": "^27.2.5",
- "jest-util": "^27.2.5",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/@jest/core": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.2.5.tgz",
- "integrity": "sha512-VR7mQ+jykHN4WO3OvusRJMk4xCa2MFLipMS+43fpcRGaYrN1KwMATfVEXif7ccgFKYGy5D1TVXTNE4mGq/KMMA==",
- "dev": true,
- "dependencies": {
- "@jest/console": "^27.2.5",
- "@jest/reporters": "^27.2.5",
- "@jest/test-result": "^27.2.5",
- "@jest/transform": "^27.2.5",
- "@jest/types": "^27.2.5",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "emittery": "^0.8.1",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.4",
- "jest-changed-files": "^27.2.5",
- "jest-config": "^27.2.5",
- "jest-haste-map": "^27.2.5",
- "jest-message-util": "^27.2.5",
- "jest-regex-util": "^27.0.6",
- "jest-resolve": "^27.2.5",
- "jest-resolve-dependencies": "^27.2.5",
- "jest-runner": "^27.2.5",
- "jest-runtime": "^27.2.5",
- "jest-snapshot": "^27.2.5",
- "jest-util": "^27.2.5",
- "jest-validate": "^27.2.5",
- "jest-watcher": "^27.2.5",
- "micromatch": "^4.0.4",
- "rimraf": "^3.0.0",
- "slash": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/@jest/core/node_modules/micromatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
- "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
- "dev": true,
- "dependencies": {
- "braces": "^3.0.1",
- "picomatch": "^2.2.3"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/@jest/core/node_modules/picomatch": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
- "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/@jest/environment": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.2.5.tgz",
- "integrity": "sha512-XvUW3q6OUF+54SYFCgbbfCd/BKTwm5b2MGLoc2jINXQLKQDTCS2P2IrpPOtQ08WWZDGzbhAzVhOYta3J2arubg==",
- "dev": true,
- "dependencies": {
- "@jest/fake-timers": "^27.2.5",
- "@jest/types": "^27.2.5",
- "@types/node": "*",
- "jest-mock": "^27.2.5"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/@jest/fake-timers": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.2.5.tgz",
- "integrity": "sha512-ZGUb6jg7BgwY+nmO0TW10bc7z7Hl2G/UTAvmxEyZ/GgNFoa31tY9/cgXmqcxnnZ7o5Xs7RAOz3G1SKIj8IVDlg==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^27.2.5",
- "@sinonjs/fake-timers": "^8.0.1",
- "@types/node": "*",
- "jest-message-util": "^27.2.5",
- "jest-mock": "^27.2.5",
- "jest-util": "^27.2.5"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/@jest/globals": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.2.5.tgz",
- "integrity": "sha512-naRI537GM+enFVJQs6DcwGYPn/0vgJNb06zGVbzXfDfe/epDPV73hP1vqO37PqSKDeOXM2KInr6ymYbL1HTP7g==",
- "dev": true,
- "dependencies": {
- "@jest/environment": "^27.2.5",
- "@jest/types": "^27.2.5",
- "expect": "^27.2.5"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/@jest/reporters": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.2.5.tgz",
- "integrity": "sha512-zYuR9fap3Q3mxQ454VWF8I6jYHErh368NwcKHWO2uy2fwByqBzRHkf9j2ekMDM7PaSTWcLBSZyd7NNxR1iHxzQ==",
- "dev": true,
- "dependencies": {
- "@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "^27.2.5",
- "@jest/test-result": "^27.2.5",
- "@jest/transform": "^27.2.5",
- "@jest/types": "^27.2.5",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "collect-v8-coverage": "^1.0.0",
- "exit": "^0.1.2",
- "glob": "^7.1.2",
- "graceful-fs": "^4.2.4",
- "istanbul-lib-coverage": "^3.0.0",
- "istanbul-lib-instrument": "^4.0.3",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^4.0.0",
- "istanbul-reports": "^3.0.2",
- "jest-haste-map": "^27.2.5",
- "jest-resolve": "^27.2.5",
- "jest-util": "^27.2.5",
- "jest-worker": "^27.2.5",
- "slash": "^3.0.0",
- "source-map": "^0.6.0",
- "string-length": "^4.0.1",
- "terminal-link": "^2.0.0",
- "v8-to-istanbul": "^8.1.0"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/@jest/source-map": {
- "version": "27.0.6",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz",
- "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==",
- "dev": true,
- "dependencies": {
- "callsites": "^3.0.0",
- "graceful-fs": "^4.2.4",
- "source-map": "^0.6.0"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/@jest/test-result": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.5.tgz",
- "integrity": "sha512-ub7j3BrddxZ0BdSnM5JCF6cRZJ/7j3wgdX0+Dtwhw2Po+HKsELCiXUTvh+mgS4/89mpnU1CPhZxe2mTvuLPJJg==",
- "dev": true,
- "dependencies": {
- "@jest/console": "^27.2.5",
- "@jest/types": "^27.2.5",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "collect-v8-coverage": "^1.0.0"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/@jest/test-sequencer": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.2.5.tgz",
- "integrity": "sha512-8j8fHZRfnjbbdMitMAGFKaBZ6YqvFRFJlMJzcy3v75edTOqc7RY65S9JpMY6wT260zAcL2sTQRga/P4PglCu3Q==",
- "dev": true,
- "dependencies": {
- "@jest/test-result": "^27.2.5",
- "graceful-fs": "^4.2.4",
- "jest-haste-map": "^27.2.5",
- "jest-runtime": "^27.2.5"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/@jest/transform": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.2.5.tgz",
- "integrity": "sha512-29lRtAHHYGALbZOx343v0zKmdOg4Sb0rsA1uSv0818bvwRhs3TyElOmTVXlrw0v1ZTqXJCAH/cmoDXimBhQOJQ==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.1.0",
- "@jest/types": "^27.2.5",
- "babel-plugin-istanbul": "^6.0.0",
- "chalk": "^4.0.0",
- "convert-source-map": "^1.4.0",
- "fast-json-stable-stringify": "^2.0.0",
- "graceful-fs": "^4.2.4",
- "jest-haste-map": "^27.2.5",
- "jest-regex-util": "^27.0.6",
- "jest-util": "^27.2.5",
- "micromatch": "^4.0.4",
- "pirates": "^4.0.1",
- "slash": "^3.0.0",
- "source-map": "^0.6.1",
- "write-file-atomic": "^3.0.0"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/@jest/transform/node_modules/micromatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
- "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
- "dev": true,
- "dependencies": {
- "braces": "^3.0.1",
- "picomatch": "^2.2.3"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/@jest/transform/node_modules/picomatch": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
- "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/@jest/types": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.2.5.tgz",
- "integrity": "sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==",
- "dev": true,
- "dependencies": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
- "@types/node": "*",
- "@types/yargs": "^16.0.0",
- "chalk": "^4.0.0"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/@oozcitak/dom": {
- "version": "1.15.8",
- "resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-1.15.8.tgz",
- "integrity": "sha512-MoOnLBNsF+ok0HjpAvxYxR4piUhRDCEWK0ot3upwOOHYudJd30j6M+LNcE8RKpwfnclAX9T66nXXzkytd29XSw==",
- "dependencies": {
- "@oozcitak/infra": "1.0.8",
- "@oozcitak/url": "1.0.4",
- "@oozcitak/util": "8.3.8"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/@oozcitak/infra": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-1.0.8.tgz",
- "integrity": "sha512-JRAUc9VR6IGHOL7OGF+yrvs0LO8SlqGnPAMqyzOuFZPSZSXI7Xf2O9+awQPSMXgIWGtgUf/dA6Hs6X6ySEaWTg==",
- "dependencies": {
- "@oozcitak/util": "8.3.8"
- },
- "engines": {
- "node": ">=6.0"
- }
- },
- "node_modules/@oozcitak/url": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@oozcitak/url/-/url-1.0.4.tgz",
- "integrity": "sha512-kDcD8y+y3FCSOvnBI6HJgl00viO/nGbQoCINmQ0h98OhnGITrWR3bOGfwYCthgcrV8AnTJz8MzslTQbC3SOAmw==",
- "dependencies": {
- "@oozcitak/infra": "1.0.8",
- "@oozcitak/util": "8.3.8"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/@oozcitak/util": {
- "version": "8.3.8",
- "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.3.8.tgz",
- "integrity": "sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==",
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/@opentelemetry/api": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz",
- "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==",
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/@sinonjs/commons": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz",
- "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==",
- "dev": true,
- "dependencies": {
- "type-detect": "4.0.8"
- }
- },
- "node_modules/@sinonjs/fake-timers": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.0.1.tgz",
- "integrity": "sha512-AU7kwFxreVd6OAXcAFlKSmZquiRUU0FvYm44k1Y1QbK7Co4m0aqfGMhjykIeQp/H6rcl+nFmj0zfdUcGVs9Dew==",
- "dev": true,
- "dependencies": {
- "@sinonjs/commons": "^1.7.0"
- }
- },
- "node_modules/@tootallnate/once": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
- "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/@types/babel__core": {
- "version": "7.1.16",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz",
- "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==",
- "dev": true,
- "dependencies": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0",
- "@types/babel__generator": "*",
- "@types/babel__template": "*",
- "@types/babel__traverse": "*"
- }
- },
- "node_modules/@types/babel__generator": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz",
- "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.0.0"
- }
- },
- "node_modules/@types/babel__template": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz",
- "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==",
- "dev": true,
- "dependencies": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0"
- }
- },
- "node_modules/@types/babel__traverse": {
- "version": "7.14.2",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz",
- "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.3.0"
- }
- },
- "node_modules/@types/graceful-fs": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz",
- "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/istanbul-lib-coverage": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
- "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==",
- "dev": true
- },
- "node_modules/@types/istanbul-lib-report": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
- "dev": true,
- "dependencies": {
- "@types/istanbul-lib-coverage": "*"
- }
- },
- "node_modules/@types/istanbul-reports": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz",
- "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==",
- "dev": true,
- "dependencies": {
- "@types/istanbul-lib-report": "*"
- }
- },
- "node_modules/@types/jest": {
- "version": "27.0.2",
- "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.0.2.tgz",
- "integrity": "sha512-4dRxkS/AFX0c5XW6IPMNOydLn2tEhNhJV7DnYK+0bjoJZ+QTmfucBlihX7aoEsh/ocYtkLC73UbnBXBXIxsULA==",
- "dev": true,
- "dependencies": {
- "jest-diff": "^27.0.0",
- "pretty-format": "^27.0.0"
- }
- },
- "node_modules/@types/node": {
- "version": "16.11.25",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.25.tgz",
- "integrity": "sha512-NrTwfD7L1RTc2qrHQD4RTTy4p0CO2LatKBEKEds3CaVuhoM/+DJzmWZl5f+ikR8cm8F5mfJxK+9rQq07gRiSjQ=="
- },
- "node_modules/@types/node-fetch": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz",
- "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==",
- "dependencies": {
- "@types/node": "*",
- "form-data": "^3.0.0"
- }
- },
- "node_modules/@types/prettier": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.1.tgz",
- "integrity": "sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw==",
- "dev": true
- },
- "node_modules/@types/semver": {
- "version": "7.3.4",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.4.tgz",
- "integrity": "sha512-+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==",
- "dev": true
- },
- "node_modules/@types/stack-utils": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
- "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==",
- "dev": true
- },
- "node_modules/@types/tunnel": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.3.tgz",
- "integrity": "sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/yargs": {
- "version": "16.0.4",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz",
- "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==",
- "dev": true,
- "dependencies": {
- "@types/yargs-parser": "*"
- }
- },
- "node_modules/@types/yargs-parser": {
- "version": "20.2.0",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz",
- "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==",
- "dev": true
- },
- "node_modules/@vercel/ncc": {
- "version": "0.33.4",
- "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.33.4.tgz",
- "integrity": "sha512-ln18hs7dMffelP47tpkaR+V5Tj6coykNyxJrlcmCormPqRQjB/Gv4cu2FfBG+PMzIfdZp2CLDsrrB1NPU22Qhg==",
- "dev": true,
- "bin": {
- "ncc": "dist/ncc/cli.js"
- }
- },
- "node_modules/abab": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz",
- "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==",
- "dev": true
- },
- "node_modules/abort-controller": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
- "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
- "dependencies": {
- "event-target-shim": "^5.0.0"
- },
- "engines": {
- "node": ">=6.5"
- }
- },
- "node_modules/acorn": {
- "version": "8.5.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz",
- "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==",
- "dev": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-globals": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz",
- "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==",
- "dev": true,
- "dependencies": {
- "acorn": "^7.1.1",
- "acorn-walk": "^7.1.1"
- }
- },
- "node_modules/acorn-globals/node_modules/acorn": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
- "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
- "dev": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-walk": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
- "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dev": true,
- "dependencies": {
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/ansi-escapes": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
- "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
- "dev": true,
- "dependencies": {
- "type-fest": "^0.21.3"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "dev": true,
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
- },
- "node_modules/babel-jest": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.2.5.tgz",
- "integrity": "sha512-GC9pWCcitBhSuF7H3zl0mftoKizlswaF0E3qi+rPL417wKkCB0d+Sjjb0OfXvxj7gWiBf497ldgRMii68Xz+2g==",
- "dev": true,
- "dependencies": {
- "@jest/transform": "^27.2.5",
- "@jest/types": "^27.2.5",
- "@types/babel__core": "^7.1.14",
- "babel-plugin-istanbul": "^6.0.0",
- "babel-preset-jest": "^27.2.0",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.4",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.8.0"
- }
- },
- "node_modules/babel-plugin-istanbul": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz",
- "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@istanbuljs/load-nyc-config": "^1.0.0",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-instrument": "^4.0.0",
- "test-exclude": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/babel-plugin-jest-hoist": {
- "version": "27.2.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.2.0.tgz",
- "integrity": "sha512-TOux9khNKdi64mW+0OIhcmbAn75tTlzKhxmiNXevQaPbrBYK7YKjP1jl6NHTJ6XR5UgUrJbCnWlKVnJn29dfjw==",
- "dev": true,
- "dependencies": {
- "@babel/template": "^7.3.3",
- "@babel/types": "^7.3.3",
- "@types/babel__core": "^7.0.0",
- "@types/babel__traverse": "^7.0.6"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/babel-preset-current-node-syntax": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
- "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
- "dev": true,
- "dependencies": {
- "@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/plugin-syntax-bigint": "^7.8.3",
- "@babel/plugin-syntax-class-properties": "^7.8.3",
- "@babel/plugin-syntax-import-meta": "^7.8.3",
- "@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.8.3",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3",
- "@babel/plugin-syntax-top-level-await": "^7.8.3"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/babel-preset-jest": {
- "version": "27.2.0",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.2.0.tgz",
- "integrity": "sha512-z7MgQ3peBwN5L5aCqBKnF6iqdlvZvFUQynEhu0J+X9nHLU72jO3iY331lcYrg+AssJ8q7xsv5/3AICzVmJ/wvg==",
- "dev": true,
- "dependencies": {
- "babel-plugin-jest-hoist": "^27.2.0",
- "babel-preset-current-node-syntax": "^1.0.0"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
- },
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browser-process-hrtime": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
- "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==",
- "dev": true
- },
- "node_modules/browserslist": {
- "version": "4.17.3",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz",
- "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==",
- "dev": true,
- "dependencies": {
- "caniuse-lite": "^1.0.30001264",
- "electron-to-chromium": "^1.3.857",
- "escalade": "^3.1.1",
- "node-releases": "^1.1.77",
- "picocolors": "^0.2.1"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- }
- },
- "node_modules/bs-logger": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
- "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
- "dev": true,
- "dependencies": {
- "fast-json-stable-stringify": "2.x"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/bser": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
- "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
- "dev": true,
- "dependencies": {
- "node-int64": "^0.4.0"
- }
- },
- "node_modules/buffer-from": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
- "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
- "dev": true
- },
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001265",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz",
- "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- }
- },
- "node_modules/chalk": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
- "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/char-regex": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
- "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/ci-info": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz",
- "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==",
- "dev": true
- },
- "node_modules/cjs-module-lexer": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz",
- "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==",
- "dev": true
- },
- "node_modules/cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "node_modules/co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
- "dev": true,
- "engines": {
- "iojs": ">= 1.0.0",
- "node": ">= 0.12.0"
- }
- },
- "node_modules/collect-v8-coverage": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
- "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==",
- "dev": true
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "node_modules/convert-source-map": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
- "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.1"
- }
- },
- "node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/cssom": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
- "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==",
- "dev": true
- },
- "node_modules/cssstyle": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
- "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
- "dev": true,
- "dependencies": {
- "cssom": "~0.3.6"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cssstyle/node_modules/cssom": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
- "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
- "dev": true
- },
- "node_modules/data-urls": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz",
- "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==",
- "dev": true,
- "dependencies": {
- "abab": "^2.0.3",
- "whatwg-mimetype": "^2.3.0",
- "whatwg-url": "^8.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/decimal.js": {
- "version": "10.3.1",
- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz",
- "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==",
- "dev": true
- },
- "node_modules/dedent": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
- "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=",
- "dev": true
- },
- "node_modules/deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true
- },
- "node_modules/deepmerge": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
- "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/detect-newline": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
- "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/diff-sequences": {
- "version": "27.0.6",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz",
- "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==",
- "dev": true,
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/domexception": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz",
- "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==",
- "dev": true,
- "dependencies": {
- "webidl-conversions": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/domexception/node_modules/webidl-conversions": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz",
- "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/electron-to-chromium": {
- "version": "1.3.867",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.867.tgz",
- "integrity": "sha512-WbTXOv7hsLhjJyl7jBfDkioaY++iVVZomZ4dU6TMe/SzucV6mUAs2VZn/AehBwuZMiNEQDaPuTGn22YK5o+aDw==",
- "dev": true
- },
- "node_modules/emittery": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz",
- "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/emittery?sponsor=1"
- }
- },
- "node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/escodegen": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz",
- "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==",
- "dev": true,
- "dependencies": {
- "esprima": "^4.0.1",
- "estraverse": "^5.2.0",
- "esutils": "^2.0.2",
- "optionator": "^0.8.1"
- },
- "bin": {
- "escodegen": "bin/escodegen.js",
- "esgenerate": "bin/esgenerate.js"
- },
- "engines": {
- "node": ">=6.0"
- },
- "optionalDependencies": {
- "source-map": "~0.6.1"
- }
- },
- "node_modules/esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/estraverse": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
- "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/event-target-shim": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
- "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "engines": {
- "node": ">=0.8.x"
- }
- },
- "node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
- "dev": true,
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/expect": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/expect/-/expect-27.2.5.tgz",
- "integrity": "sha512-ZrO0w7bo8BgGoP/bLz+HDCI+0Hfei9jUSZs5yI/Wyn9VkG9w8oJ7rHRgYj+MA7yqqFa0IwHA3flJzZtYugShJA==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^27.2.5",
- "ansi-styles": "^5.0.0",
- "jest-get-type": "^27.0.6",
- "jest-matcher-utils": "^27.2.5",
- "jest-message-util": "^27.2.5",
- "jest-regex-util": "^27.0.6"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/expect/node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
- },
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
- "dev": true
- },
- "node_modules/fb-watchman": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz",
- "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==",
- "dev": true,
- "dependencies": {
- "bser": "2.1.1"
- }
- },
- "node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/form-data": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
- "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
- "dev": true
- },
- "node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
- },
- "node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true,
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-package-type": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
- "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
- "dev": true,
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.6",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
- "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
- "dev": true
- },
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/html-encoding-sniffer": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
- "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==",
- "dev": true,
- "dependencies": {
- "whatwg-encoding": "^1.0.5"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
- },
- "node_modules/http-proxy-agent": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
- "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
- "dev": true,
- "dependencies": {
- "@tootallnate/once": "1",
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/https-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
- "dev": true,
- "dependencies": {
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dev": true,
- "engines": {
- "node": ">=10.17.0"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/import-local": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz",
- "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==",
- "dev": true,
- "dependencies": {
- "pkg-dir": "^4.2.0",
- "resolve-cwd": "^3.0.0"
- },
- "bin": {
- "import-local-fixture": "fixtures/cli.js"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
- "dev": true,
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "dev": true,
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
- },
- "node_modules/ip-regex": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
- "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/is-ci": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz",
- "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==",
- "dev": true,
- "dependencies": {
- "ci-info": "^3.1.1"
- },
- "bin": {
- "is-ci": "bin.js"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz",
- "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==",
- "dev": true,
- "dependencies": {
- "has": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-generator-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
- "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-potential-custom-element-name": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
- "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
- "dev": true
- },
- "node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
- "dev": true
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
- "dev": true
- },
- "node_modules/istanbul-lib-coverage": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.2.tgz",
- "integrity": "sha512-o5+eTUYzCJ11/+JhW5/FUCdfsdoYVdQ/8I/OveE2XsjehYn5DdeSnNQAbjYaO8gQ6hvGTN6GM6ddQqpTVG5j8g==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-instrument": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
- "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.7.5",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-coverage": "^3.0.0",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-instrument/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/istanbul-lib-report": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
- "dev": true,
- "dependencies": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^3.0.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-source-maps": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
- "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
- "dev": true,
- "dependencies": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^3.0.0",
- "source-map": "^0.6.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/istanbul-reports": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
- "integrity": "sha512-bFjUnc95rHjdCR63WMHUS7yfJJh8T9IPSWavvR02hhjVwezWALZ5axF9EqjmwZHpXqkzbgAMP8DmAtiyNxrdrQ==",
- "dev": true,
- "dependencies": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest/-/jest-27.2.5.tgz",
- "integrity": "sha512-vDMzXcpQN4Ycaqu+vO7LX8pZwNNoKMhc+gSp6q1D8S6ftRk8gNW8cni3YFxknP95jxzQo23Lul0BI2FrWgnwYQ==",
- "dev": true,
- "dependencies": {
- "@jest/core": "^27.2.5",
- "import-local": "^3.0.2",
- "jest-cli": "^27.2.5"
- },
- "bin": {
- "jest": "bin/jest.js"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/jest-changed-files": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.2.5.tgz",
- "integrity": "sha512-jfnNJzF89csUKRPKJ4MwZ1SH27wTmX2xiAIHUHrsb/OYd9Jbo4/SXxJ17/nnx6RIifpthk3Y+LEeOk+/dDeGdw==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^27.2.5",
- "execa": "^5.0.0",
- "throat": "^6.0.1"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-circus": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.2.5.tgz",
- "integrity": "sha512-eyL9IcrAxm3Saq3rmajFCwpaxaRMGJ1KJs+7hlTDinXpJmeR3P02bheM3CYohE7UfwOBmrFMJHjgo/WPcLTM+Q==",
- "dev": true,
- "dependencies": {
- "@jest/environment": "^27.2.5",
- "@jest/test-result": "^27.2.5",
- "@jest/types": "^27.2.5",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "co": "^4.6.0",
- "dedent": "^0.7.0",
- "expect": "^27.2.5",
- "is-generator-fn": "^2.0.0",
- "jest-each": "^27.2.5",
- "jest-matcher-utils": "^27.2.5",
- "jest-message-util": "^27.2.5",
- "jest-runtime": "^27.2.5",
- "jest-snapshot": "^27.2.5",
- "jest-util": "^27.2.5",
- "pretty-format": "^27.2.5",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3",
- "throat": "^6.0.1"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-config": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.2.5.tgz",
- "integrity": "sha512-QdENtn9b5rIIYGlbDNEcgY9LDL5kcokJnXrp7x8AGjHob/XFqw1Z6p+gjfna2sUulQsQ3ce2Fvntnv+7fKYDhQ==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.1.0",
- "@jest/test-sequencer": "^27.2.5",
- "@jest/types": "^27.2.5",
- "babel-jest": "^27.2.5",
- "chalk": "^4.0.0",
- "deepmerge": "^4.2.2",
- "glob": "^7.1.1",
- "graceful-fs": "^4.2.4",
- "is-ci": "^3.0.0",
- "jest-circus": "^27.2.5",
- "jest-environment-jsdom": "^27.2.5",
- "jest-environment-node": "^27.2.5",
- "jest-get-type": "^27.0.6",
- "jest-jasmine2": "^27.2.5",
- "jest-regex-util": "^27.0.6",
- "jest-resolve": "^27.2.5",
- "jest-runner": "^27.2.5",
- "jest-util": "^27.2.5",
- "jest-validate": "^27.2.5",
- "micromatch": "^4.0.4",
- "pretty-format": "^27.2.5"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- },
- "peerDependencies": {
- "ts-node": ">=9.0.0"
- },
- "peerDependenciesMeta": {
- "ts-node": {
- "optional": true
- }
- }
- },
- "node_modules/jest-config/node_modules/micromatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
- "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
- "dev": true,
- "dependencies": {
- "braces": "^3.0.1",
- "picomatch": "^2.2.3"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/jest-config/node_modules/picomatch": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
- "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/jest-diff": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.2.5.tgz",
- "integrity": "sha512-7gfwwyYkeslOOVQY4tVq5TaQa92mWfC9COsVYMNVYyJTOYAqbIkoD3twi5A+h+tAPtAelRxkqY6/xu+jwTr0dA==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.0.0",
- "diff-sequences": "^27.0.6",
- "jest-get-type": "^27.0.6",
- "pretty-format": "^27.2.5"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-docblock": {
- "version": "27.0.6",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz",
- "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==",
- "dev": true,
- "dependencies": {
- "detect-newline": "^3.0.0"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-each": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.2.5.tgz",
- "integrity": "sha512-HUPWIbJT0bXarRwKu/m7lYzqxR4GM5EhKOsu0z3t0SKtbFN6skQhpAUADM4qFShBXb9zoOuag5lcrR1x/WM+Ag==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^27.2.5",
- "chalk": "^4.0.0",
- "jest-get-type": "^27.0.6",
- "jest-util": "^27.2.5",
- "pretty-format": "^27.2.5"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-environment-jsdom": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.2.5.tgz",
- "integrity": "sha512-QtRpOh/RQKuXniaWcoFE2ElwP6tQcyxHu0hlk32880g0KczdonCs5P1sk5+weu/OVzh5V4Bt1rXuQthI01mBLg==",
- "dev": true,
- "dependencies": {
- "@jest/environment": "^27.2.5",
- "@jest/fake-timers": "^27.2.5",
- "@jest/types": "^27.2.5",
- "@types/node": "*",
- "jest-mock": "^27.2.5",
- "jest-util": "^27.2.5",
- "jsdom": "^16.6.0"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-environment-node": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.2.5.tgz",
- "integrity": "sha512-0o1LT4grm7iwrS8fIoLtwJxb/hoa3GsH7pP10P02Jpj7Mi4BXy65u46m89vEM2WfD1uFJQ2+dfDiWZNA2e6bJg==",
- "dev": true,
- "dependencies": {
- "@jest/environment": "^27.2.5",
- "@jest/fake-timers": "^27.2.5",
- "@jest/types": "^27.2.5",
- "@types/node": "*",
- "jest-mock": "^27.2.5",
- "jest-util": "^27.2.5"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-get-type": {
- "version": "27.0.6",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz",
- "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==",
- "dev": true,
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-haste-map": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.5.tgz",
- "integrity": "sha512-pzO+Gw2WLponaSi0ilpzYBE0kuVJstoXBX8YWyUebR8VaXuX4tzzn0Zp23c/WaETo7XYTGv2e8KdnpiskAFMhQ==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^27.2.5",
- "@types/graceful-fs": "^4.1.2",
- "@types/node": "*",
- "anymatch": "^3.0.3",
- "fb-watchman": "^2.0.0",
- "graceful-fs": "^4.2.4",
- "jest-regex-util": "^27.0.6",
- "jest-serializer": "^27.0.6",
- "jest-util": "^27.2.5",
- "jest-worker": "^27.2.5",
- "micromatch": "^4.0.4",
- "walker": "^1.0.7"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- },
- "optionalDependencies": {
- "fsevents": "^2.3.2"
- }
- },
- "node_modules/jest-haste-map/node_modules/micromatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
- "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
- "dev": true,
- "dependencies": {
- "braces": "^3.0.1",
- "picomatch": "^2.2.3"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/jest-haste-map/node_modules/picomatch": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
- "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/jest-jasmine2": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.2.5.tgz",
- "integrity": "sha512-hdxY9Cm/CjLqu2tXeAoQHPgA4vcqlweVXYOg1+S9FeFdznB9Rti+eEBKDDkmOy9iqr4Xfbq95OkC4NFbXXPCAQ==",
- "dev": true,
- "dependencies": {
- "@babel/traverse": "^7.1.0",
- "@jest/environment": "^27.2.5",
- "@jest/source-map": "^27.0.6",
- "@jest/test-result": "^27.2.5",
- "@jest/types": "^27.2.5",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "co": "^4.6.0",
- "expect": "^27.2.5",
- "is-generator-fn": "^2.0.0",
- "jest-each": "^27.2.5",
- "jest-matcher-utils": "^27.2.5",
- "jest-message-util": "^27.2.5",
- "jest-runtime": "^27.2.5",
- "jest-snapshot": "^27.2.5",
- "jest-util": "^27.2.5",
- "pretty-format": "^27.2.5",
- "throat": "^6.0.1"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-leak-detector": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.2.5.tgz",
- "integrity": "sha512-HYsi3GUR72bYhOGB5C5saF9sPdxGzSjX7soSQS+BqDRysc7sPeBwPbhbuT8DnOpijnKjgwWQ8JqvbmReYnt3aQ==",
- "dev": true,
- "dependencies": {
- "jest-get-type": "^27.0.6",
- "pretty-format": "^27.2.5"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-matcher-utils": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.2.5.tgz",
- "integrity": "sha512-qNR/kh6bz0Dyv3m68Ck2g1fLW5KlSOUNcFQh87VXHZwWc/gY6XwnKofx76Qytz3x5LDWT09/2+yXndTkaG4aWg==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.0.0",
- "jest-diff": "^27.2.5",
- "jest-get-type": "^27.0.6",
- "pretty-format": "^27.2.5"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-message-util": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.5.tgz",
- "integrity": "sha512-ggXSLoPfIYcbmZ8glgEJZ8b+e0Msw/iddRmgkoO7lDAr9SmI65IIfv7VnvTnV4FGnIIUIjzM+fHRHO5RBvyAbQ==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.12.13",
- "@jest/types": "^27.2.5",
- "@types/stack-utils": "^2.0.0",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.4",
- "micromatch": "^4.0.4",
- "pretty-format": "^27.2.5",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-message-util/node_modules/micromatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
- "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
- "dev": true,
- "dependencies": {
- "braces": "^3.0.1",
- "picomatch": "^2.2.3"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/jest-message-util/node_modules/picomatch": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
- "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/jest-mock": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.2.5.tgz",
- "integrity": "sha512-HiMB3LqE9RzmeMzZARi2Bz3NoymxyP0gCid4y42ca1djffNtYFKgI220aC1VP1mUZ8rbpqZbHZOJ15093bZV/Q==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^27.2.5",
- "@types/node": "*"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-pnp-resolver": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz",
- "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==",
- "dev": true,
- "engines": {
- "node": ">=6"
- },
- "peerDependencies": {
- "jest-resolve": "*"
- },
- "peerDependenciesMeta": {
- "jest-resolve": {
- "optional": true
- }
- }
- },
- "node_modules/jest-regex-util": {
- "version": "27.0.6",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz",
- "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==",
- "dev": true,
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-resolve": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.2.5.tgz",
- "integrity": "sha512-q5irwS3oS73SKy3+FM/HL2T7WJftrk9BRzrXF92f7net5HMlS7lJMg/ZwxLB4YohKqjSsdksEw7n/jvMxV7EKg==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^27.2.5",
- "chalk": "^4.0.0",
- "escalade": "^3.1.1",
- "graceful-fs": "^4.2.4",
- "jest-haste-map": "^27.2.5",
- "jest-pnp-resolver": "^1.2.2",
- "jest-util": "^27.2.5",
- "jest-validate": "^27.2.5",
- "resolve": "^1.20.0",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-resolve-dependencies": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.2.5.tgz",
- "integrity": "sha512-BSjefped31bcvvCh++/pN9ueqqN1n0+p8/58yScuWfklLm2tbPbS9d251vJhAy0ZI2pL/0IaGhOTJrs9Y4FJlg==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^27.2.5",
- "jest-regex-util": "^27.0.6",
- "jest-snapshot": "^27.2.5"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-runner": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.2.5.tgz",
- "integrity": "sha512-n41vw9RLg5TKAnEeJK9d6pGOsBOpwE89XBniK+AD1k26oIIy3V7ogM1scbDjSheji8MUPC9pNgCrZ/FHLVDNgg==",
- "dev": true,
- "dependencies": {
- "@jest/console": "^27.2.5",
- "@jest/environment": "^27.2.5",
- "@jest/test-result": "^27.2.5",
- "@jest/transform": "^27.2.5",
- "@jest/types": "^27.2.5",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "emittery": "^0.8.1",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.4",
- "jest-docblock": "^27.0.6",
- "jest-environment-jsdom": "^27.2.5",
- "jest-environment-node": "^27.2.5",
- "jest-haste-map": "^27.2.5",
- "jest-leak-detector": "^27.2.5",
- "jest-message-util": "^27.2.5",
- "jest-resolve": "^27.2.5",
- "jest-runtime": "^27.2.5",
- "jest-util": "^27.2.5",
- "jest-worker": "^27.2.5",
- "source-map-support": "^0.5.6",
- "throat": "^6.0.1"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-runtime": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.2.5.tgz",
- "integrity": "sha512-N0WRZ3QszKyZ3Dm27HTBbBuestsSd3Ud5ooVho47XZJ8aSKO/X1Ag8M1dNx9XzfGVRNdB/xCA3lz8MJwIzPLLA==",
- "dev": true,
- "dependencies": {
- "@jest/console": "^27.2.5",
- "@jest/environment": "^27.2.5",
- "@jest/fake-timers": "^27.2.5",
- "@jest/globals": "^27.2.5",
- "@jest/source-map": "^27.0.6",
- "@jest/test-result": "^27.2.5",
- "@jest/transform": "^27.2.5",
- "@jest/types": "^27.2.5",
- "@types/yargs": "^16.0.0",
- "chalk": "^4.0.0",
- "cjs-module-lexer": "^1.0.0",
- "collect-v8-coverage": "^1.0.0",
- "execa": "^5.0.0",
- "exit": "^0.1.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.4",
- "jest-haste-map": "^27.2.5",
- "jest-message-util": "^27.2.5",
- "jest-mock": "^27.2.5",
- "jest-regex-util": "^27.0.6",
- "jest-resolve": "^27.2.5",
- "jest-snapshot": "^27.2.5",
- "jest-util": "^27.2.5",
- "jest-validate": "^27.2.5",
- "slash": "^3.0.0",
- "strip-bom": "^4.0.0",
- "yargs": "^16.2.0"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-serializer": {
- "version": "27.0.6",
- "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz",
- "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "graceful-fs": "^4.2.4"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-snapshot": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.2.5.tgz",
- "integrity": "sha512-2/Jkn+VN6Abwz0llBltZaiJMnL8b1j5Bp/gRIxe9YR3FCEh9qp0TXVV0dcpTGZ8AcJV1SZGQkczewkI9LP5yGw==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.7.2",
- "@babel/generator": "^7.7.2",
- "@babel/parser": "^7.7.2",
- "@babel/plugin-syntax-typescript": "^7.7.2",
- "@babel/traverse": "^7.7.2",
- "@babel/types": "^7.0.0",
- "@jest/transform": "^27.2.5",
- "@jest/types": "^27.2.5",
- "@types/babel__traverse": "^7.0.4",
- "@types/prettier": "^2.1.5",
- "babel-preset-current-node-syntax": "^1.0.0",
- "chalk": "^4.0.0",
- "expect": "^27.2.5",
- "graceful-fs": "^4.2.4",
- "jest-diff": "^27.2.5",
- "jest-get-type": "^27.0.6",
- "jest-haste-map": "^27.2.5",
- "jest-matcher-utils": "^27.2.5",
- "jest-message-util": "^27.2.5",
- "jest-resolve": "^27.2.5",
- "jest-util": "^27.2.5",
- "natural-compare": "^1.4.0",
- "pretty-format": "^27.2.5",
- "semver": "^7.3.2"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-util": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.2.5.tgz",
- "integrity": "sha512-QRhDC6XxISntMzFRd/OQ6TGsjbzA5ONO0tlAj2ElHs155x1aEr0rkYJBEysG6H/gZVH3oGFzCdAB/GA8leh8NQ==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^27.2.5",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.4",
- "is-ci": "^3.0.0",
- "picomatch": "^2.2.3"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-util/node_modules/picomatch": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
- "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/jest-validate": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.2.5.tgz",
- "integrity": "sha512-XgYtjS89nhVe+UfkbLgcm+GgXKWgL80t9nTcNeejyO3t0Sj/yHE8BtIJqjZu9NXQksYbGImoQRXmQ1gP+Guffw==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^27.2.5",
- "camelcase": "^6.2.0",
- "chalk": "^4.0.0",
- "jest-get-type": "^27.0.6",
- "leven": "^3.1.0",
- "pretty-format": "^27.2.5"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-validate/node_modules/camelcase": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz",
- "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-watcher": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.2.5.tgz",
- "integrity": "sha512-umV4qGozg2Dn6DTTtqAh9puPw+DGLK9AQas7+mWjiK8t0fWMpxKg8ZXReZw7L4C88DqorsGUiDgwHNZ+jkVrkQ==",
- "dev": true,
- "dependencies": {
- "@jest/test-result": "^27.2.5",
- "@jest/types": "^27.2.5",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "jest-util": "^27.2.5",
- "string-length": "^4.0.1"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-worker": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.5.tgz",
- "integrity": "sha512-HTjEPZtcNKZ4LnhSp02NEH4vE+5OpJ0EsOWYvGQpHgUMLngydESAAMH5Wd/asPf29+XUDQZszxpLg1BkIIA2aw==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- }
- },
- "node_modules/jest-worker/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/jest/node_modules/jest-cli": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.2.5.tgz",
- "integrity": "sha512-XzfcOXi5WQrXqFYsDxq5RDOKY4FNIgBgvgf3ZBz4e/j5/aWep5KnsAYH5OFPMdX/TP/LFsYQMRH7kzJUMh6JKg==",
- "dev": true,
- "dependencies": {
- "@jest/core": "^27.2.5",
- "@jest/test-result": "^27.2.5",
- "@jest/types": "^27.2.5",
- "chalk": "^4.0.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.4",
- "import-local": "^3.0.2",
- "jest-config": "^27.2.5",
- "jest-util": "^27.2.5",
- "jest-validate": "^27.2.5",
- "prompts": "^2.0.1",
- "yargs": "^16.2.0"
- },
- "bin": {
- "jest": "bin/jest.js"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "node_modules/js-yaml": {
- "version": "3.14.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
- "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/jsdom": {
- "version": "16.7.0",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz",
- "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==",
- "dev": true,
- "dependencies": {
- "abab": "^2.0.5",
- "acorn": "^8.2.4",
- "acorn-globals": "^6.0.0",
- "cssom": "^0.4.4",
- "cssstyle": "^2.3.0",
- "data-urls": "^2.0.0",
- "decimal.js": "^10.2.1",
- "domexception": "^2.0.1",
- "escodegen": "^2.0.0",
- "form-data": "^3.0.0",
- "html-encoding-sniffer": "^2.0.1",
- "http-proxy-agent": "^4.0.1",
- "https-proxy-agent": "^5.0.0",
- "is-potential-custom-element-name": "^1.0.1",
- "nwsapi": "^2.2.0",
- "parse5": "6.0.1",
- "saxes": "^5.0.1",
- "symbol-tree": "^3.2.4",
- "tough-cookie": "^4.0.0",
- "w3c-hr-time": "^1.0.2",
- "w3c-xmlserializer": "^2.0.0",
- "webidl-conversions": "^6.1.0",
- "whatwg-encoding": "^1.0.5",
- "whatwg-mimetype": "^2.3.0",
- "whatwg-url": "^8.5.0",
- "ws": "^7.4.6",
- "xml-name-validator": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "canvas": "^2.5.0"
- },
- "peerDependenciesMeta": {
- "canvas": {
- "optional": true
- }
- }
- },
- "node_modules/jsdom/node_modules/tough-cookie": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz",
- "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==",
- "dev": true,
- "dependencies": {
- "psl": "^1.1.33",
- "punycode": "^2.1.1",
- "universalify": "^0.1.2"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true,
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true,
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/kleur": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
- "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/leven": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/levn": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
- "dev": true,
- "dependencies": {
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
- },
- "node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
- "dev": true,
- "dependencies": {
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/make-dir/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/make-error": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
- "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "dev": true
- },
- "node_modules/makeerror": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz",
- "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=",
- "dev": true,
- "dependencies": {
- "tmpl": "1.0.x"
- }
- },
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
- },
- "node_modules/mime-db": {
- "version": "1.46.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz",
- "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.29",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz",
- "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==",
- "dependencies": {
- "mime-db": "1.46.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
- "dev": true
- },
- "node_modules/node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/node-fetch/node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
- },
- "node_modules/node-fetch/node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
- },
- "node_modules/node-fetch/node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/node-int64": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
- "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=",
- "dev": true
- },
- "node_modules/node-modules-regexp": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz",
- "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/node-releases": {
- "version": "1.1.77",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz",
- "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==",
- "dev": true
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nwsapi": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz",
- "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==",
- "dev": true
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dev": true,
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/optionator": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
- "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
- "dev": true,
- "dependencies": {
- "deep-is": "~0.1.3",
- "fast-levenshtein": "~2.0.6",
- "levn": "~0.3.0",
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2",
- "word-wrap": "~1.2.3"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
- "dev": true
- },
- "node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "node_modules/picocolors": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
- "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
- "dev": true
- },
- "node_modules/picomatch": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
- "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pirates": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz",
- "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==",
- "dev": true,
- "dependencies": {
- "node-modules-regexp": "^1.0.0"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
- "dependencies": {
- "find-up": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/prelude-ls": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
- "dev": true,
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/prettier": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
- "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
- "dev": true,
- "bin": {
- "prettier": "bin-prettier.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/pretty-format": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.5.tgz",
- "integrity": "sha512-+nYn2z9GgicO9JiqmY25Xtq8SYfZ/5VCpEU3pppHHNAhd1y+ZXxmNPd1evmNcAd6Hz4iBV2kf0UpGth5A/VJ7g==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^27.2.5",
- "ansi-regex": "^5.0.1",
- "ansi-styles": "^5.0.0",
- "react-is": "^17.0.1"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/pretty-format/node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
- "engines": {
- "node": ">= 0.6.0"
- }
- },
- "node_modules/prompts": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
- "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
- "dev": true,
- "dependencies": {
- "kleur": "^3.0.3",
- "sisteransi": "^1.0.5"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/psl": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
- "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
- },
- "node_modules/punycode": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/react-is": {
- "version": "17.0.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz",
- "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==",
- "dev": true
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/resolve": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
- "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
- "dev": true,
- "dependencies": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-cwd": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
- "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
- "dev": true,
- "dependencies": {
- "resolve-from": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
- },
- "node_modules/sax": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
- },
- "node_modules/saxes": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz",
- "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
- "dev": true,
- "dependencies": {
- "xmlchars": "^2.2.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/semver": {
- "version": "7.3.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz",
- "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/signal-exit": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz",
- "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==",
- "dev": true
- },
- "node_modules/sisteransi": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
- "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
- "dev": true
- },
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-support": {
- "version": "0.5.20",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz",
- "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==",
- "dev": true,
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
- },
- "node_modules/stack-utils": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz",
- "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==",
- "dev": true,
- "dependencies": {
- "escape-string-regexp": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/stack-utils/node_modules/escape-string-regexp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-length": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
- "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
- "dev": true,
- "dependencies": {
- "char-regex": "^1.0.2",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-hyperlinks": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz",
- "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0",
- "supports-color": "^7.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/symbol-tree": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
- "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
- "dev": true
- },
- "node_modules/terminal-link": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz",
- "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==",
- "dev": true,
- "dependencies": {
- "ansi-escapes": "^4.2.1",
- "supports-hyperlinks": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/test-exclude": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
- "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
- "dev": true,
- "dependencies": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^7.1.4",
- "minimatch": "^3.0.4"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/throat": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz",
- "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==",
- "dev": true
- },
- "node_modules/tmpl": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
- "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
- "dev": true
- },
- "node_modules/to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/tough-cookie": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
- "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==",
- "dependencies": {
- "ip-regex": "^2.1.0",
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tr46": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
- "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
- "dev": true,
- "dependencies": {
- "punycode": "^2.1.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ts-jest": {
- "version": "27.0.5",
- "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.5.tgz",
- "integrity": "sha512-lIJApzfTaSSbtlksfFNHkWOzLJuuSm4faFAfo5kvzOiRAuoN4/eKxVJ2zEAho8aecE04qX6K1pAzfH5QHL1/8w==",
- "dev": true,
- "dependencies": {
- "bs-logger": "0.x",
- "fast-json-stable-stringify": "2.x",
- "jest-util": "^27.0.0",
- "json5": "2.x",
- "lodash": "4.x",
- "make-error": "1.x",
- "semver": "7.x",
- "yargs-parser": "20.x"
- },
- "bin": {
- "ts-jest": "cli.js"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- },
- "peerDependencies": {
- "@babel/core": ">=7.0.0-beta.0 <8",
- "@types/jest": "^27.0.0",
- "babel-jest": ">=27.0.0 <28",
- "jest": "^27.0.0",
- "typescript": ">=3.8 <5.0"
- },
- "peerDependenciesMeta": {
- "@babel/core": {
- "optional": true
- },
- "@types/jest": {
- "optional": true
- },
- "babel-jest": {
- "optional": true
- }
- }
- },
- "node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
- },
- "node_modules/tunnel": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
- "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
- "engines": {
- "node": ">=0.6.11 <=0.7.0 || >=0.7.3"
- }
- },
- "node_modules/type-check": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
- "dev": true,
- "dependencies": {
- "prelude-ls": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/typedarray-to-buffer": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
- "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
- "dev": true,
- "dependencies": {
- "is-typedarray": "^1.0.0"
- }
- },
- "node_modules/typescript": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz",
- "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==",
- "dev": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=4.2.0"
- }
- },
- "node_modules/universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
- "bin": {
- "uuid": "bin/uuid"
- }
- },
- "node_modules/v8-to-istanbul": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz",
- "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==",
- "dev": true,
- "dependencies": {
- "@types/istanbul-lib-coverage": "^2.0.1",
- "convert-source-map": "^1.6.0",
- "source-map": "^0.7.3"
- },
- "engines": {
- "node": ">=10.12.0"
- }
- },
- "node_modules/v8-to-istanbul/node_modules/source-map": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
- "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/w3c-hr-time": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
- "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
- "dev": true,
- "dependencies": {
- "browser-process-hrtime": "^1.0.0"
- }
- },
- "node_modules/w3c-xmlserializer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz",
- "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==",
- "dev": true,
- "dependencies": {
- "xml-name-validator": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/walker": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz",
- "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=",
- "dev": true,
- "dependencies": {
- "makeerror": "1.0.x"
- }
- },
- "node_modules/webidl-conversions": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
- "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==",
- "dev": true,
- "engines": {
- "node": ">=10.4"
- }
- },
- "node_modules/whatwg-encoding": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
- "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
- "dev": true,
- "dependencies": {
- "iconv-lite": "0.4.24"
- }
- },
- "node_modules/whatwg-mimetype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
- "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==",
- "dev": true
- },
- "node_modules/whatwg-url": {
- "version": "8.7.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
- "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
- "dev": true,
- "dependencies": {
- "lodash": "^4.7.0",
- "tr46": "^2.1.0",
- "webidl-conversions": "^6.1.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
- "dev": true
- },
- "node_modules/write-file-atomic": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
- "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
- "dev": true,
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "is-typedarray": "^1.0.0",
- "signal-exit": "^3.0.2",
- "typedarray-to-buffer": "^3.1.5"
- }
- },
- "node_modules/ws": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz",
- "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==",
- "dev": true,
- "engines": {
- "node": ">=8.3.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/xml-name-validator": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
- "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
- "dev": true
- },
- "node_modules/xml2js": {
- "version": "0.4.23",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
- "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
- "dependencies": {
- "sax": ">=0.6.0",
- "xmlbuilder": "~11.0.0"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/xmlbuilder": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
- "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/xmlbuilder2": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/xmlbuilder2/-/xmlbuilder2-2.4.0.tgz",
- "integrity": "sha512-KrOVUGD65xTQ7ZA+GMQGdBSpe1Ufu5ylCQSYVk6QostySDkxPmAQ0WWIu7dR3JjLfVbF22RFQX7KyrZ6VTLcQg==",
- "dependencies": {
- "@oozcitak/dom": "1.15.8",
- "@oozcitak/infra": "1.0.8",
- "@oozcitak/util": "8.3.8",
- "@types/node": "14.6.2",
- "js-yaml": "3.14.0"
- },
- "engines": {
- "node": ">=10.0"
- }
- },
- "node_modules/xmlbuilder2/node_modules/@types/node": {
- "version": "14.6.2",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.2.tgz",
- "integrity": "sha512-onlIwbaeqvZyniGPfdw/TEhKIh79pz66L1q06WUQqJLnAb6wbjvOtepLYTGHTqzdXgBYIE3ZdmqHDGsRsbBz7A=="
- },
- "node_modules/xmlchars": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
- "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
- "dev": true
- },
- "node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
- "node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- }
- },
"dependencies": {
"@actions/cache": {
"version": "3.0.4",
@@ -7241,8 +2465,7 @@
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz",
"integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==",
- "dev": true,
- "requires": {}
+ "dev": true
},
"jest-regex-util": {
"version": "27.0.6",
@@ -8388,8 +3611,7 @@
"version": "7.5.5",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz",
"integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==",
- "dev": true,
- "requires": {}
+ "dev": true
},
"xml-name-validator": {
"version": "3.0.0",
diff --git a/src/setup-java.ts b/src/setup-java.ts
index 1d6dc15b4..95929a2bb 100644
--- a/src/setup-java.ts
+++ b/src/setup-java.ts
@@ -1,7 +1,7 @@
import fs from 'fs';
import * as core from '@actions/core';
import * as auth from './auth';
-import { getBooleanInput, isCacheFeatureAvailable, getVersionFromFileContent } from './util';
+import { getBooleanInput, isCacheFeatureAvailable, getVersionFromFile } from './util';
import * as toolchains from './toolchains';
import * as constants from './constants';
import { restore } from './cache';
@@ -47,7 +47,7 @@ async function run() {
.toString()
.trim();
- const version = getVersionFromFileContent(content, distributionName);
+ const version = getVersionFromFile(versionFile, content, distributionName);
core.debug(`Parsed version from file '${version}'`);
if (!version) {
diff --git a/src/util.ts b/src/util.ts
index d3a09f6ce..d228925b6 100644
--- a/src/util.ts
+++ b/src/util.ts
@@ -7,6 +7,9 @@ import * as core from '@actions/core';
import * as tc from '@actions/tool-cache';
import { INPUT_JOB_STATUS, DISTRIBUTIONS_ONLY_MAJOR_VERSION } from './constants';
+import { create } from 'xmlbuilder2';
+import { XMLBuilder } from 'xmlbuilder2/lib/interfaces';
+import { on } from 'events';
export function getTempDir() {
let tempDirectory = process.env['RUNNER_TEMP'] || os.tmpdir();
@@ -100,21 +103,33 @@ export function isCacheFeatureAvailable(): boolean {
return false;
}
-export function getVersionFromFileContent(
+export function getVersionFromFile(
+ fileName: string,
content: string,
distributionName: string
): string | null {
- const javaVersionRegExp = /(?(?<=(^|\s|\-))(\d+\S*))(\s|$)/;
- const fileContent = content.match(javaVersionRegExp)?.groups?.version
- ? (content.match(javaVersionRegExp)?.groups?.version as string)
- : '';
- if (!fileContent) {
+ let parsedVersion = null;
+
+ core.debug(`Getting version from: '${fileName}'`);
+ if (fileName.includes('.java-version')) {
+ parsedVersion = parseJavaVersionFile(content);
+ } else if (fileName.includes('pom.xml')) {
+ parsedVersion = parsePomXmlFile(content);
+ } else if (fileName.includes('build.gradle')) {
+ parsedVersion = parseBuildGradleFile(content);
+ } else {
+ throw new Error(
+ `File ${fileName} not supported, files supported: '.java-version' 'pom.xml' and 'build.gradle'`
+ );
+ }
+
+ if (!parsedVersion) {
return null;
}
- core.debug(`Version from file '${fileContent}'`);
+ core.debug(`Version from file '${parsedVersion}'`);
- const tentativeVersion = avoidOldNotation(fileContent);
+ const tentativeVersion = avoidOldNotation(parsedVersion);
const rawVersion = tentativeVersion.split('-')[0];
let version = semver.validRange(rawVersion) ? tentativeVersion : semver.coerce(tentativeVersion);
@@ -133,6 +148,137 @@ export function getVersionFromFileContent(
return version.toString();
}
+function parseJavaVersionFile(content: string): string | null {
+ const javaVersionRegExp = /(?(?<=(^|\s|\-))(\d+\S*))(\s|$)/;
+ const fileContent = content.match(javaVersionRegExp)?.groups?.version
+ ? (content.match(javaVersionRegExp)?.groups?.version as string)
+ : '';
+ if (!fileContent) {
+ return null;
+ }
+
+ return fileContent;
+}
+
+function parsePomXmlFile(xmlFileAsString: string): string | null {
+ const xmlDoc = create(xmlFileAsString);
+ const versionDefinitionTypes = [
+ getByMavenProperties,
+ getBySpringBootSpecification,
+ getByMavenCompilerPluginConfig
+ ];
+
+ for (const definitionType of versionDefinitionTypes) {
+ const version = definitionType(xmlDoc);
+
+ if (version !== null) {
+ return version;
+ }
+ }
+
+ return null;
+}
+
+function getByMavenProperties(xmlDoc: XMLBuilder): string | null {
+ const versionTags = ['maven.compiler.source', 'maven.compiler.release'];
+
+ for (const tag of versionTags) {
+ const version = getVersionByTagName(xmlDoc, tag);
+
+ if (version !== null) {
+ return version;
+ }
+ }
+
+ return null;
+}
+
+function getBySpringBootSpecification(xmlDoc: XMLBuilder): string | null {
+ return getVersionByTagName(xmlDoc, 'java.version');
+}
+
+function getVersionByTagName(xmlDoc: XMLBuilder, tag: string): string | null {
+ const match = xmlDoc.find(n => n.node.nodeName === tag, false, true);
+
+ if (match !== undefined) {
+ core.debug(`Found java version: '${match.first().toString()}' using tag: '${tag}'`);
+ return match.first().toString();
+ } else {
+ return null;
+ }
+}
+
+function getByMavenCompilerPluginConfig(xmlDoc: XMLBuilder): string | null {
+ const mavenCompilePlugin = xmlDoc.find(
+ n => n.node.nodeName === 'artifactId' && n.first().toString() === 'maven-compiler-plugin',
+ false,
+ true
+ );
+
+ if (mavenCompilePlugin != undefined) {
+ const sourceOrTag = mavenCompilePlugin
+ .up()
+ .find(n => n.node.nodeName === 'source' || n.node.nodeName === 'target', false, true);
+
+ if (sourceOrTag !== undefined) {
+ core.debug(
+ `Found java version: '${sourceOrTag
+ .first()
+ .toString()}' defined on the maven-compiler-plugin'`
+ );
+ return sourceOrTag.first().toString();
+ }
+ }
+
+ return null;
+}
+
+function parseBuildGradleFile(buildGradle: string): any {
+ const versionDefinitionTypes = [getByJavaLibraryPlugin, getByJavaPlugin];
+
+ for (const definitionType of versionDefinitionTypes) {
+ const version = definitionType(buildGradle);
+
+ if (version !== null) {
+ return version;
+ }
+ }
+
+ return null;
+}
+
+function getByJavaLibraryPlugin(buildGradle: string) {
+ return getVersionByRegex(buildGradle, 'JavaLanguageVersion.of\\((\\d+)\\)');
+}
+
+function getByJavaPlugin(buildGradle: string) {
+ const possibleRegex = [
+ 'sourceCompatibility\\s?=\\s?JavaVersion.VERSION_(?:1_)?(\\d+)',
+ 'targetCompatibility\\s?=\\s?JavaVersion.VERSION_(?:1_)?(\\d+)'
+ ];
+
+ for (var regex of possibleRegex) {
+ const version = getVersionByRegex(buildGradle, regex);
+
+ if (version !== null) {
+ return version;
+ }
+ }
+
+ return null;
+}
+
+function getVersionByRegex(content: string, regex: string): string | null {
+ const match = content.match(new RegExp(regex));
+
+ if (match) {
+ core.debug(`Found java version: '${match[1]}' using regex: '${regex}'`);
+ return match[1];
+ } else {
+ return null;
+ }
+}
+
// By convention, action expects version 8 in the format `8.*` instead of `1.8`
function avoidOldNotation(content: string): string {
return content.startsWith('1.') ? content.substring(2) : content;