@storm-software/linting-tools
Version:
⚡ A package containing various linting tools used to validate syntax, enforce design standards, and format code in a Storm workspace.
477 lines (470 loc) • 17.5 kB
JavaScript
import {
C,
N
} from "./chunk-LPYA2BIK.js";
import {
init_esm_shims
} from "./chunk-6WF54AHT.js";
// ../../node_modules/.pnpm/confbox@0.1.8/node_modules/confbox/dist/toml.mjs
init_esm_shims();
var F = Object.defineProperty;
var V = (e, n, t) => n in e ? F(e, n, { enumerable: true, configurable: true, writable: true, value: t }) : e[n] = t;
var O = (e, n, t) => (V(e, typeof n != "symbol" ? n + "" : n, t), t);
var L = (e, n, t) => {
if (!n.has(e)) throw TypeError("Cannot " + t);
};
var d = (e, n, t) => (L(e, n, "read from private field"), t ? t.call(e) : n.get(e));
var T = (e, n, t) => {
if (n.has(e)) throw TypeError("Cannot add the same private member more than once");
n instanceof WeakSet ? n.add(e) : n.set(e, t);
};
var w = (e, n, t, i) => (L(e, n, "write to private field"), i ? i.call(e, t) : n.set(e, t), t);
var h;
var m;
var s;
function U(e, n) {
let t = e.slice(0, n).split(/\r\n|\n|\r/g);
return [t.length, t.pop().length + 1];
}
function X(e, n, t) {
let i = e.split(/\r\n|\n|\r/g), l = "", r = (Math.log10(n + 1) | 0) + 1;
for (let f = n - 1; f <= n + 1; f++) {
let o = i[f - 1];
o && (l += f.toString().padEnd(r, " "), l += ": ", l += o, l += `
`, f === n && (l += " ".repeat(r + t + 2), l += `^
`));
}
return l;
}
var u = class extends Error {
constructor(t, i) {
const [l, r] = U(i.toml, i.ptr), f = X(i.toml, l, r);
super(`Invalid TOML document: ${t}
${f}`, i);
O(this, "line");
O(this, "column");
O(this, "codeblock");
this.line = l, this.column = r, this.codeblock = f;
}
};
function x(e, n = 0, t = e.length) {
let i = e.indexOf(`
`, n);
return e[i - 1] === "\r" && i--, i <= t ? i : -1;
}
function A(e, n) {
for (let t = n; t < e.length; t++) {
let i = e[t];
if (i === `
`) return t;
if (i === "\r" && e[t + 1] === `
`) return t + 1;
if (i < " " && i !== " " || i === "\x7F") throw new u("control characters are not allowed in comments", { toml: e, ptr: n });
}
return e.length;
}
function g(e, n, t, i) {
let l;
for (; (l = e[n]) === " " || l === " " || !t && (l === `
` || l === "\r" && e[n + 1] === `
`); ) n++;
return i || l !== "#" ? n : g(e, A(e, n), t);
}
function P(e, n, t, i, l = false) {
if (!i) return n = x(e, n), n < 0 ? e.length : n;
for (let r = n; r < e.length; r++) {
let f = e[r];
if (f === "#") r = x(e, r);
else {
if (f === t) return r + 1;
if (f === i) return r;
if (l && (f === `
` || f === "\r" && e[r + 1] === `
`)) return r;
}
}
throw new u("cannot find end of structure", { toml: e, ptr: n });
}
function v(e, n) {
let t = e[n], i = t === e[n + 1] && e[n + 1] === e[n + 2] ? e.slice(n, n + 3) : t;
n += i.length - 1;
do
n = e.indexOf(i, ++n);
while (n > -1 && t !== "'" && e[n - 1] === "\\" && e[n - 2] !== "\\");
return n > -1 && (n += i.length, i.length > 1 && (e[n] === t && n++, e[n] === t && n++)), n;
}
var B = /^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}:\d{2}(?:\.\d+)?)?(Z|[-+]\d{2}:\d{2})?$/i;
var b = class b2 extends Date {
constructor(t) {
let i = true, l = true, r = "Z";
if (typeof t == "string") {
let f = t.match(B);
f ? (f[1] || (i = false, t = `0000-01-01T${t}`), l = !!f[2], f[2] && +f[2] > 23 ? t = "" : (r = f[3] || null, t = t.toUpperCase(), !r && l && (t += "Z"))) : t = "";
}
super(t);
T(this, h, false);
T(this, m, false);
T(this, s, null);
isNaN(this.getTime()) || (w(this, h, i), w(this, m, l), w(this, s, r));
}
isDateTime() {
return d(this, h) && d(this, m);
}
isLocal() {
return !d(this, h) || !d(this, m) || !d(this, s);
}
isDate() {
return d(this, h) && !d(this, m);
}
isTime() {
return d(this, m) && !d(this, h);
}
isValid() {
return d(this, h) || d(this, m);
}
toISOString() {
let t = super.toISOString();
if (this.isDate()) return t.slice(0, 10);
if (this.isTime()) return t.slice(11, 23);
if (d(this, s) === null) return t.slice(0, -1);
if (d(this, s) === "Z") return t;
let i = +d(this, s).slice(1, 3) * 60 + +d(this, s).slice(4, 6);
return i = d(this, s)[0] === "-" ? i : -i, new Date(this.getTime() - i * 6e4).toISOString().slice(0, -1) + d(this, s);
}
static wrapAsOffsetDateTime(t, i = "Z") {
let l = new b2(t);
return w(l, s, i), l;
}
static wrapAsLocalDateTime(t) {
let i = new b2(t);
return w(i, s, null), i;
}
static wrapAsLocalDate(t) {
let i = new b2(t);
return w(i, m, false), w(i, s, null), i;
}
static wrapAsLocalTime(t) {
let i = new b2(t);
return w(i, h, false), w(i, s, null), i;
}
};
h = /* @__PURE__ */ new WeakMap(), m = /* @__PURE__ */ new WeakMap(), s = /* @__PURE__ */ new WeakMap();
var S = b;
var Y = /^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/;
var j = /^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/;
var q = /^[+-]?0[0-9_]/;
var J = /^[0-9a-f]{4,8}$/i;
var R = { b: "\b", t: " ", n: `
`, f: "\f", r: "\r", '"': '"', "\\": "\\" };
function C2(e, n = 0, t = e.length) {
let i = e[n] === "'", l = e[n++] === e[n] && e[n] === e[n + 1];
l && (t -= 2, e[n += 2] === "\r" && n++, e[n] === `
` && n++);
let r = 0, f, o = "", a = n;
for (; n < t - 1; ) {
let c = e[n++];
if (c === `
` || c === "\r" && e[n] === `
`) {
if (!l) throw new u("newlines are not allowed in strings", { toml: e, ptr: n - 1 });
} else if (c < " " && c !== " " || c === "\x7F") throw new u("control characters are not allowed in strings", { toml: e, ptr: n - 1 });
if (f) {
if (f = false, c === "u" || c === "U") {
let y = e.slice(n, n += c === "u" ? 4 : 8);
if (!J.test(y)) throw new u("invalid unicode escape", { toml: e, ptr: r });
try {
o += String.fromCodePoint(parseInt(y, 16));
} catch {
throw new u("invalid unicode escape", { toml: e, ptr: r });
}
} else if (l && (c === `
` || c === " " || c === " " || c === "\r")) {
if (n = g(e, n - 1, true), e[n] !== `
` && e[n] !== "\r") throw new u("invalid escape: only line-ending whitespace may be escaped", { toml: e, ptr: r });
n = g(e, n);
} else if (c in R) o += R[c];
else throw new u("unrecognized escape sequence", { toml: e, ptr: r });
a = n;
} else !i && c === "\\" && (r = n - 1, f = true, o += e.slice(a, r));
}
return o + e.slice(a, t - 1);
}
function H(e, n, t) {
if (e === "true") return true;
if (e === "false") return false;
if (e === "-inf") return -1 / 0;
if (e === "inf" || e === "+inf") return 1 / 0;
if (e === "nan" || e === "+nan" || e === "-nan") return NaN;
if (e === "-0") return 0;
let i;
if ((i = Y.test(e)) || j.test(e)) {
if (q.test(e)) throw new u("leading zeroes are not allowed", { toml: n, ptr: t });
let r = +e.replace(/_/g, "");
if (isNaN(r)) throw new u("invalid number", { toml: n, ptr: t });
if (i && !Number.isSafeInteger(r)) throw new u("integer value cannot be represented losslessly", { toml: n, ptr: t });
return r;
}
let l = new S(e);
if (!l.isValid()) throw new u("invalid value", { toml: n, ptr: t });
return l;
}
function Q(e, n, t, i) {
let l = e.slice(n, t), r = l.indexOf("#");
r > -1 && (A(e, r), l = l.slice(0, r));
let f = l.trimEnd();
if (!i) {
let o = l.indexOf(`
`, f.length);
if (o > -1) throw new u("newlines are not allowed in inline tables", { toml: e, ptr: n + o });
}
return [f, r];
}
function I(e, n, t) {
let i = e[n];
if (i === "[" || i === "{") {
let [f, o] = i === "[" ? ne(e, n) : ee(e, n), a = P(e, o, ",", t);
if (t === "}") {
let c = x(e, o, a);
if (c > -1) throw new u("newlines are not allowed in inline tables", { toml: e, ptr: c });
}
return [f, a];
}
let l;
if (i === '"' || i === "'") {
l = v(e, n);
let f = C2(e, n, l);
if (t) {
if (l = g(e, l, t !== "]"), e[l] && e[l] !== "," && e[l] !== t && e[l] !== `
` && e[l] !== "\r") throw new u("unexpected character encountered", { toml: e, ptr: l });
l += +(e[l] === ",");
}
return [f, l];
}
l = P(e, n, ",", t);
let r = Q(e, n, l - +(e[l - 1] === ","), t === "]");
if (!r[0]) throw new u("incomplete key-value declaration: no value specified", { toml: e, ptr: n });
return t && r[1] > -1 && (l = g(e, n + r[1]), l += +(e[l] === ",")), [H(r[0], e, n), l];
}
var W = /^[a-zA-Z0-9-_]+[ \t]*$/;
function p(e, n, t = "=") {
let i = n - 1, l = [], r = e.indexOf(t, n);
if (r < 0) throw new u("incomplete key-value: cannot find end of key", { toml: e, ptr: n });
do {
let f = e[n = ++i];
if (f !== " " && f !== " ") if (f === '"' || f === "'") {
if (f === e[n + 1] && f === e[n + 2]) throw new u("multiline strings are not allowed in keys", { toml: e, ptr: n });
let o = v(e, n);
if (o < 0) throw new u("unfinished string encountered", { toml: e, ptr: n });
i = e.indexOf(".", o);
let a = e.slice(o, i < 0 || i > r ? r : i), c = x(a);
if (c > -1) throw new u("newlines are not allowed in keys", { toml: e, ptr: n + i + c });
if (a.trimStart()) throw new u("found extra tokens after the string part", { toml: e, ptr: o });
if (r < o && (r = e.indexOf(t, o), r < 0)) throw new u("incomplete key-value: cannot find end of key", { toml: e, ptr: n });
l.push(C2(e, n, o));
} else {
i = e.indexOf(".", n);
let o = e.slice(n, i < 0 || i > r ? r : i);
if (!W.test(o)) throw new u("only letter, numbers, dashes and underscores are allowed in keys", { toml: e, ptr: n });
l.push(o.trimEnd());
}
} while (i + 1 && i < r);
return [l, g(e, r + 1, true, true)];
}
function ee(e, n) {
let t = {}, i = /* @__PURE__ */ new Set(), l, r = 0;
for (n++; (l = e[n++]) !== "}" && l; ) {
if (l === `
`) throw new u("newlines are not allowed in inline tables", { toml: e, ptr: n - 1 });
if (l === "#") throw new u("inline tables cannot contain comments", { toml: e, ptr: n - 1 });
if (l === ",") throw new u("expected key-value, found comma", { toml: e, ptr: n - 1 });
if (l !== " " && l !== " ") {
let f, o = t, a = false, [c, y] = p(e, n - 1);
for (let E = 0; E < c.length; E++) {
if (E && (o = a ? o[f] : o[f] = {}), f = c[E], (a = Object.hasOwn(o, f)) && (typeof o[f] != "object" || i.has(o[f]))) throw new u("trying to redefine an already defined value", { toml: e, ptr: n });
!a && f === "__proto__" && Object.defineProperty(o, f, { enumerable: true, configurable: true, writable: true });
}
if (a) throw new u("trying to redefine an already defined value", { toml: e, ptr: n });
let [k, z] = I(e, y, "}");
i.add(k), o[f] = k, n = z, r = e[n - 1] === "," ? n - 1 : 0;
}
}
if (r) throw new u("trailing commas are not allowed in inline tables", { toml: e, ptr: r });
if (!l) throw new u("unfinished table encountered", { toml: e, ptr: n });
return [t, n];
}
function ne(e, n) {
let t = [], i;
for (n++; (i = e[n++]) !== "]" && i; ) {
if (i === ",") throw new u("expected value, found comma", { toml: e, ptr: n - 1 });
if (i === "#") n = A(e, n);
else if (i !== " " && i !== " " && i !== `
` && i !== "\r") {
let l = I(e, n - 1, "]");
t.push(l[0]), n = l[1];
}
}
if (!i) throw new u("unfinished array encountered", { toml: e, ptr: n });
return [t, n];
}
function M(e, n, t, i) {
let l = n, r = t, f, o = false, a;
for (let c = 0; c < e.length; c++) {
if (c) {
if (l = o ? l[f] : l[f] = {}, r = (a = r[f]).c, i === 0 && (a.t === 1 || a.t === 2)) return null;
if (a.t === 2) {
let y = l.length - 1;
l = l[y], r = r[y].c;
}
}
if (f = e[c], (o = Object.hasOwn(l, f)) && r[f]?.t === 0 && r[f]?.d) return null;
o || (f === "__proto__" && (Object.defineProperty(l, f, { enumerable: true, configurable: true, writable: true }), Object.defineProperty(r, f, { enumerable: true, configurable: true, writable: true })), r[f] = { t: c < e.length - 1 && i === 2 ? 3 : i, d: false, i: 0, c: {} });
}
if (a = r[f], a.t !== i && !(i === 1 && a.t === 3) || (i === 2 && (a.d || (a.d = true, l[f] = []), l[f].push(l = {}), a.c[a.i++] = a = { t: 1, d: false, i: 0, c: {} }), a.d)) return null;
if (a.d = true, i === 1) l = o ? l[f] : l[f] = {};
else if (i === 0 && o) return null;
return [f, l, a.c];
}
function te(e) {
let n = {}, t = {}, i = n, l = t;
for (let r = g(e, 0); r < e.length; ) {
if (e[r] === "[") {
let f = e[++r] === "[", o = p(e, r += +f, "]");
if (f) {
if (e[o[1] - 1] !== "]") throw new u("expected end of table declaration", { toml: e, ptr: o[1] - 1 });
o[1]++;
}
let a = M(o[0], n, t, f ? 2 : 1);
if (!a) throw new u("trying to redefine an already defined table or value", { toml: e, ptr: r });
l = a[2], i = a[1], r = o[1];
} else {
let f = p(e, r), o = M(f[0], i, l, 0);
if (!o) throw new u("trying to redefine an already defined table or value", { toml: e, ptr: r });
let a = I(e, f[1]);
o[1][o[0]] = a[0], r = a[1];
}
if (r = g(e, r, true), e[r] && e[r] !== `
` && e[r] !== "\r") throw new u("each key-value declaration must be followed by an end-of-line", { toml: e, ptr: r });
r = g(e, r);
}
return n;
}
var Z = /^[a-z0-9-_]+$/i;
function _(e) {
let n = typeof e;
if (n === "object") {
if (Array.isArray(e)) return "array";
if (e instanceof Date) return "date";
}
return n;
}
function ie(e) {
for (let n = 0; n < e.length; n++) if (_(e[n]) !== "object") return false;
return e.length != 0;
}
function $(e) {
return JSON.stringify(e).replace(/\x7f/g, "\\u007f");
}
function N2(e, n = _(e)) {
if (n === "number") return isNaN(e) ? "nan" : e === 1 / 0 ? "inf" : e === -1 / 0 ? "-inf" : e.toString();
if (n === "bigint" || n === "boolean") return e.toString();
if (n === "string") return $(e);
if (n === "date") {
if (isNaN(e.getTime())) throw new TypeError("cannot serialize invalid date");
return e.toISOString();
}
if (n === "object") return le(e);
if (n === "array") return re(e);
}
function le(e) {
let n = Object.keys(e);
if (n.length === 0) return "{}";
let t = "{ ";
for (let i = 0; i < n.length; i++) {
let l = n[i];
i && (t += ", "), t += Z.test(l) ? l : $(l), t += " = ", t += N2(e[l]);
}
return t + " }";
}
function re(e) {
if (e.length === 0) return "[]";
let n = "[ ";
for (let t = 0; t < e.length; t++) {
if (t && (n += ", "), e[t] === null || e[t] === void 0) throw new TypeError("arrays cannot contain null or undefined values");
n += N2(e[t]);
}
return n + " ]";
}
function fe(e, n) {
let t = "";
for (let i = 0; i < e.length; i++) t += `[[${n}]]
`, t += D(e[i], n), t += `
`;
return t;
}
function D(e, n = "") {
let t = "", i = "", l = Object.keys(e);
for (let r = 0; r < l.length; r++) {
let f = l[r];
if (e[f] !== null && e[f] !== void 0) {
let o = _(e[f]);
if (o === "symbol" || o === "function") throw new TypeError(`cannot serialize values of type '${o}'`);
let a = Z.test(f) ? f : $(f);
if (o === "array" && ie(e[f])) i += fe(e[f], n ? `${n}.${a}` : a);
else if (o === "object") {
let c = n ? `${n}.${a}` : a;
i += `[${c}]
`, i += D(e[f], c), i += `
`;
} else t += a, t += " = ", t += N2(e[f], o), t += `
`;
}
}
return `${t}
${i}`.trim();
}
function oe(e) {
if (_(e) !== "object") throw new TypeError("stringify can only be called with an object");
return D(e);
}
function ae(e) {
const n = te(e);
return N(e, n, { preserveIndentation: false }), n;
}
function ue(e) {
const n = C(e, { preserveIndentation: false }), t = oe(e);
return n.whitespace.start + t + n.whitespace.end;
}
export {
ae,
ue
};
/*! Bundled license information:
confbox/dist/toml.mjs:
(*!
* Copyright (c) Squirrel Chat et al., All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the copyright holder nor the names of its contributors
* may be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*)
*/