249 lines
7.0 KiB
JavaScript
249 lines
7.0 KiB
JavaScript
// node_modules/@ungap/structured-clone/esm/types.js
|
|
var VOID = -1;
|
|
var PRIMITIVE = 0;
|
|
var ARRAY = 1;
|
|
var OBJECT = 2;
|
|
var DATE = 3;
|
|
var REGEXP = 4;
|
|
var MAP = 5;
|
|
var SET = 6;
|
|
var ERROR = 7;
|
|
var BIGINT = 8;
|
|
|
|
// node_modules/@ungap/structured-clone/esm/deserialize.js
|
|
var env = typeof self === "object" ? self : globalThis;
|
|
var deserializer = ($, _) => {
|
|
const as = (out, index) => {
|
|
$.set(index, out);
|
|
return out;
|
|
};
|
|
const unpair = (index) => {
|
|
if ($.has(index))
|
|
return $.get(index);
|
|
const [type, value] = _[index];
|
|
switch (type) {
|
|
case PRIMITIVE:
|
|
case VOID:
|
|
return as(value, index);
|
|
case ARRAY: {
|
|
const arr = as([], index);
|
|
for (const index2 of value)
|
|
arr.push(unpair(index2));
|
|
return arr;
|
|
}
|
|
case OBJECT: {
|
|
const object = as({}, index);
|
|
for (const [key, index2] of value)
|
|
object[unpair(key)] = unpair(index2);
|
|
return object;
|
|
}
|
|
case DATE:
|
|
return as(new Date(value), index);
|
|
case REGEXP: {
|
|
const { source, flags } = value;
|
|
return as(new RegExp(source, flags), index);
|
|
}
|
|
case MAP: {
|
|
const map = as(/* @__PURE__ */ new Map(), index);
|
|
for (const [key, index2] of value)
|
|
map.set(unpair(key), unpair(index2));
|
|
return map;
|
|
}
|
|
case SET: {
|
|
const set = as(/* @__PURE__ */ new Set(), index);
|
|
for (const index2 of value)
|
|
set.add(unpair(index2));
|
|
return set;
|
|
}
|
|
case ERROR: {
|
|
const { name, message } = value;
|
|
return as(new env[name](message), index);
|
|
}
|
|
case BIGINT:
|
|
return as(BigInt(value), index);
|
|
case "BigInt":
|
|
return as(Object(BigInt(value)), index);
|
|
case "ArrayBuffer":
|
|
return as(new Uint8Array(value).buffer, value);
|
|
case "DataView": {
|
|
const { buffer } = new Uint8Array(value);
|
|
return as(new DataView(buffer), value);
|
|
}
|
|
}
|
|
return as(new env[type](value), index);
|
|
};
|
|
return unpair;
|
|
};
|
|
var deserialize = (serialized) => deserializer(/* @__PURE__ */ new Map(), serialized)(0);
|
|
|
|
// node_modules/@ungap/structured-clone/esm/serialize.js
|
|
var EMPTY = "";
|
|
var { toString } = {};
|
|
var { keys } = Object;
|
|
var typeOf = (value) => {
|
|
const type = typeof value;
|
|
if (type !== "object" || !value)
|
|
return [PRIMITIVE, type];
|
|
const asString = toString.call(value).slice(8, -1);
|
|
switch (asString) {
|
|
case "Array":
|
|
return [ARRAY, EMPTY];
|
|
case "Object":
|
|
return [OBJECT, EMPTY];
|
|
case "Date":
|
|
return [DATE, EMPTY];
|
|
case "RegExp":
|
|
return [REGEXP, EMPTY];
|
|
case "Map":
|
|
return [MAP, EMPTY];
|
|
case "Set":
|
|
return [SET, EMPTY];
|
|
case "DataView":
|
|
return [ARRAY, asString];
|
|
}
|
|
if (asString.includes("Array"))
|
|
return [ARRAY, asString];
|
|
if (asString.includes("Error"))
|
|
return [ERROR, asString];
|
|
return [OBJECT, asString];
|
|
};
|
|
var shouldSkip = ([TYPE, type]) => TYPE === PRIMITIVE && (type === "function" || type === "symbol");
|
|
var serializer = (strict, json, $, _) => {
|
|
const as = (out, value) => {
|
|
const index = _.push(out) - 1;
|
|
$.set(value, index);
|
|
return index;
|
|
};
|
|
const pair = (value) => {
|
|
if ($.has(value))
|
|
return $.get(value);
|
|
let [TYPE, type] = typeOf(value);
|
|
switch (TYPE) {
|
|
case PRIMITIVE: {
|
|
let entry = value;
|
|
switch (type) {
|
|
case "bigint":
|
|
TYPE = BIGINT;
|
|
entry = value.toString();
|
|
break;
|
|
case "function":
|
|
case "symbol":
|
|
if (strict)
|
|
throw new TypeError("unable to serialize " + type);
|
|
entry = null;
|
|
break;
|
|
case "undefined":
|
|
return as([VOID], value);
|
|
}
|
|
return as([TYPE, entry], value);
|
|
}
|
|
case ARRAY: {
|
|
if (type) {
|
|
let spread = value;
|
|
if (type === "DataView") {
|
|
spread = new Uint8Array(value.buffer);
|
|
} else if (type === "ArrayBuffer") {
|
|
spread = new Uint8Array(value);
|
|
}
|
|
return as([type, [...spread]], value);
|
|
}
|
|
const arr = [];
|
|
const index = as([TYPE, arr], value);
|
|
for (const entry of value)
|
|
arr.push(pair(entry));
|
|
return index;
|
|
}
|
|
case OBJECT: {
|
|
if (type) {
|
|
switch (type) {
|
|
case "BigInt":
|
|
return as([type, value.toString()], value);
|
|
case "Boolean":
|
|
case "Number":
|
|
case "String":
|
|
return as([type, value.valueOf()], value);
|
|
}
|
|
}
|
|
if (json && "toJSON" in value)
|
|
return pair(value.toJSON());
|
|
const entries = [];
|
|
const index = as([TYPE, entries], value);
|
|
for (const key of keys(value)) {
|
|
if (strict || !shouldSkip(typeOf(value[key])))
|
|
entries.push([pair(key), pair(value[key])]);
|
|
}
|
|
return index;
|
|
}
|
|
case DATE:
|
|
return as([TYPE, value.toISOString()], value);
|
|
case REGEXP: {
|
|
const { source, flags } = value;
|
|
return as([TYPE, { source, flags }], value);
|
|
}
|
|
case MAP: {
|
|
const entries = [];
|
|
const index = as([TYPE, entries], value);
|
|
for (const [key, entry] of value) {
|
|
if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))
|
|
entries.push([pair(key), pair(entry)]);
|
|
}
|
|
return index;
|
|
}
|
|
case SET: {
|
|
const entries = [];
|
|
const index = as([TYPE, entries], value);
|
|
for (const entry of value) {
|
|
if (strict || !shouldSkip(typeOf(entry)))
|
|
entries.push(pair(entry));
|
|
}
|
|
return index;
|
|
}
|
|
}
|
|
const { message } = value;
|
|
return as([TYPE, { name: type, message }], value);
|
|
};
|
|
return pair;
|
|
};
|
|
var serialize = (value, { json, lossy } = {}) => {
|
|
const _ = [];
|
|
return serializer(!(json || lossy), !!json, /* @__PURE__ */ new Map(), _)(value), _;
|
|
};
|
|
|
|
// node_modules/@ungap/structured-clone/esm/index.js
|
|
var esm_default = typeof structuredClone === "function" ? (
|
|
/* c8 ignore start */
|
|
(any, options) => options && ("json" in options || "lossy" in options) ? deserialize(serialize(any, options)) : structuredClone(any)
|
|
) : (any, options) => deserialize(serialize(any, options));
|
|
|
|
// node_modules/unist-util-position/lib/index.js
|
|
var pointEnd = point("end");
|
|
var pointStart = point("start");
|
|
function point(type) {
|
|
return point2;
|
|
function point2(node) {
|
|
const point3 = node && node.position && node.position[type] || {};
|
|
if (typeof point3.line === "number" && point3.line > 0 && typeof point3.column === "number" && point3.column > 0) {
|
|
return {
|
|
line: point3.line,
|
|
column: point3.column,
|
|
offset: typeof point3.offset === "number" && point3.offset > -1 ? point3.offset : void 0
|
|
};
|
|
}
|
|
}
|
|
}
|
|
function position(node) {
|
|
const start = pointStart(node);
|
|
const end = pointEnd(node);
|
|
if (start && end) {
|
|
return { start, end };
|
|
}
|
|
}
|
|
|
|
export {
|
|
pointEnd,
|
|
pointStart,
|
|
position,
|
|
esm_default
|
|
};
|
|
//# sourceMappingURL=chunk-4GTXHKNR.js.map
|