@mx-space/cli 0.13.0 → 0.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -1
- package/dist/{Lexical.dev-By5dOKBN.mjs → Lexical.dev-BsbWMhb3.mjs} +2265 -429
- package/dist/{Lexical.node-fXM8Jp7p.mjs → Lexical.node-DnR_u_Ke.mjs} +47 -10
- package/dist/Lexical.prod-B7L8eVsO.mjs +6816 -0
- package/dist/{LexicalClipboard.dev--HxGoSkO.mjs → LexicalClipboard.dev-BGSFbuTA.mjs} +131 -39
- package/dist/{LexicalClipboard.node-C3mRbrmW.mjs → LexicalClipboard.node-CUD_tpWb.mjs} +2 -2
- package/dist/LexicalClipboard.prod-DQXfRt3h.mjs +429 -0
- package/dist/{LexicalCodeCore.dev-DjSrd4A4.mjs → LexicalCodeCore.dev-B9lK_GSN.mjs} +81 -67
- package/dist/LexicalCodeCore.prod-CNWMPXhg.mjs +651 -0
- package/dist/LexicalDragon.dev-DRm2bGZ1.mjs +186 -0
- package/dist/{LexicalDragon.node-BVhw4C7s.mjs → LexicalDragon.node-d8gPruly.mjs} +3 -2
- package/dist/LexicalDragon.prod-ey3uKDJF.mjs +121 -0
- package/dist/{LexicalExtension.dev-BPNyvGqe.mjs → LexicalExtension.dev-CXtOJb83.mjs} +349 -35
- package/dist/{LexicalExtension.node-BVlcrgOx.mjs → LexicalExtension.node-CMsupJZs.mjs} +9 -4
- package/dist/{LexicalExtension.prod-DFKbiNt-.mjs → LexicalExtension.prod-BCLGhzcg.mjs} +477 -328
- package/dist/{LexicalHeadless.dev-B-cj7Pr5.mjs → LexicalHeadless.dev-yVDOBd64.mjs} +2 -2
- package/dist/{LexicalHeadless.prod-Byp1vNzT.mjs → LexicalHeadless.prod-B8qauuEA.mjs} +2 -2
- package/dist/{LexicalHtml.dev-prBAwszN.mjs → LexicalHtml.dev-3rdckXIU.mjs} +323 -265
- package/dist/{LexicalHtml.node-BvNF96jZ.mjs → LexicalHtml.node-DagZUjQ_.mjs} +6 -4
- package/dist/{LexicalHtml.prod-Sz3CW1ht.mjs → LexicalHtml.prod-B5AQaJDb.mjs} +354 -352
- package/dist/{LexicalLink.dev-NySTYhVR.mjs → LexicalLink.dev-CspSwLNB.mjs} +69 -58
- package/dist/{LexicalLink.prod-BuCM8gts.mjs → LexicalLink.prod-Da-ZW6H5.mjs} +210 -211
- package/dist/{LexicalList.dev-DIMOvSFD.mjs → LexicalList.dev-CNXmV6v8.mjs} +246 -198
- package/dist/LexicalList.prod-DgQzj4v9.mjs +944 -0
- package/dist/{LexicalMarkdown.dev-C7aylvCG.mjs → LexicalMarkdown.dev-0XURdo96.mjs} +129 -37
- package/dist/LexicalMarkdown.prod-qUsIQfJx.mjs +932 -0
- package/dist/{LexicalRichText.dev-DfICq6lU.mjs → LexicalRichText.dev-BqsEA7I9.mjs} +151 -122
- package/dist/{LexicalRichText.node-Bg9jND3Q.mjs → LexicalRichText.node-D73RR0Ck.mjs} +8 -11
- package/dist/LexicalRichText.prod-4Atyd7OR.mjs +538 -0
- package/dist/{LexicalSelection.dev-DGjj12wW.mjs → LexicalSelection.dev-DK5xfxKP.mjs} +10 -9
- package/dist/{LexicalSelection.node-BU5L4193.mjs → LexicalSelection.node-pyZyrANz.mjs} +4 -4
- package/dist/{LexicalSelection.prod-D-PwRbyK.mjs → LexicalSelection.prod-C5GrCbDC.mjs} +144 -146
- package/dist/{LexicalTable.dev-ChP7cugd.mjs → LexicalTable.dev-DiR_4rdI.mjs} +184 -119
- package/dist/LexicalTable.prod-Cbc5EasT.mjs +2336 -0
- package/dist/{LexicalUtils.dev-BiFU3789.mjs → LexicalUtils.dev-jhPjn1vQ.mjs} +375 -35
- package/dist/{LexicalUtils.node-j3Llm7Y3.mjs → LexicalUtils.node-Ck74ludK.mjs} +24 -12
- package/dist/LexicalUtils.prod-nuTBxnk_.mjs +504 -0
- package/dist/bin/mxs.mjs +1 -1
- package/dist/esm-BumPuCXw.mjs +2 -0
- package/dist/{esm-lpolVSUJ.mjs → esm-DupC6TTP.mjs} +172 -172
- package/dist/index.d.mts +16 -16
- package/dist/index.mjs +1 -1
- package/dist/{mxs-PFV8OJ-M.mjs → mxs-BgAyMQdq.mjs} +1595 -314
- package/package.json +17 -17
- package/dist/Lexical.prod-BlCvXPGa.mjs +0 -6088
- package/dist/LexicalClipboard.prod-DNJzFMcT.mjs +0 -371
- package/dist/LexicalCodeCore.prod-DTDShkR3.mjs +0 -642
- package/dist/LexicalDragon.dev-DwprRH0z.mjs +0 -88
- package/dist/LexicalDragon.prod-nh4J-8vn.mjs +0 -59
- package/dist/LexicalList.prod-MVqfA6Vo.mjs +0 -925
- package/dist/LexicalMarkdown.prod-CfQSM406.mjs +0 -868
- package/dist/LexicalRichText.prod-GsFzCK-o.mjs +0 -550
- package/dist/LexicalTable.prod-Bpr9YRXp.mjs +0 -2311
- package/dist/LexicalUtils.prod-DCvrA78p.mjs +0 -373
- package/dist/esm-DGvoYR6n.mjs +0 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { $ as drain, $a as identity, $i as reduce$1, $n as try_, $r as get$16, $t as either, A as compose, Aa as pipeArguments, Ai as empty$11, An as orElse$3, Ar as Scope, At as encodeSync, B as ensuring$2, Ba as cached, Bi as head$2, Bn as scoped, Br as set$3, Bt as async, C as Number$, Ca as some, Ci as isConfigError, Cn as match$2, Ct as currentContext, D as String$, Da as left, Di as appendAll, Dn as onError, Dr as taggedEnum, Dt as unsafeMake, Ea as string$1, Ei as append$2, En as negate, Er as tagged, Et as get$20, Fa as redact$1, Fi as findFirstIndex, Fn as retry, Fr as isFailure, Ft as addFinalizer, G as mapError$1, Gi as join, Gn as suspend, Gr as updateAs, Gt as catchIf, H as fromChannel, Ha as hash, Hi as isArray$1, Hn as serviceOption, Hr as updateAndGet, Ht as catchAll, I as make$22, Ia as symbolRedactable, Ii as findLast, In as runFork$1, Ir as void_$1, It as all$5, J as splitLines, Ja as globalValue, Ji as match$1, Jn as tapError, Jr as cons$1, Jt as catchTags, K as run$6, Ka as isObject, Ki as make$23, Kn as sync, Kr as CommitPrototype, Kt as catchSome, L as isConfig, La as toStringUnknown, Li as flatMap$4, Ln as runSync, Lr as ParentSpan, Lt as annotateLogs, M as decodeUnknown, Ma as Class, Mi as filter$2, Mn as provide$1, Mr as isInterrupted, Mt as _void, N as int, Na as NodeInspectSymbol, Ni as filterMap, Nn as provideService, Nr as isInterruptedOnly, Nt as acquireRelease, O as TaggedError, Oa as merge$2, Oi as contains, On as onInterrupt, Or as error$1, Ot as nominal, P as optional$9, Pa as format$3, Pi as findFirst, Pn as repeatN, Pr as fail$3, Pt as acquireUseRelease, Q as unwrapScoped, Qa as dual, Qi as prepend$1, Qn as tryPromise, Qr as fromIterable$2, Qt as dieMessage, R as asyncScoped, Ra as equals, Ri as fromIterable$1, Rn as runtime, Rr as get$15, Rt as as, S as Literal, Sa as orElse$2, Si as omit, Sn as mapInputContext, Sr as unsafeDone, St as succeed$2, Ta as mapInput, Ti as allocate, Tn as matchEffect, Tr as TaggedError$1, Tt as currentTracerEnabled, Ua as string, Ui as isEmptyReadonlyArray, Un as sleep$1, Ur as allLevels, Ut as catchAllCause, Va as combine$2, Vi as headNonEmpty, Vn as serviceFunctions, Vr as update$8, Vt as cached$1, W as mapChunks, Wa as symbol$1, Wi as isNonEmptyReadonlyArray, Wn as succeed$1, Wr as getOrDefault, Wt as catchAllDefect, X as transduce, Xa as constUndefined, Xi as matchRight, Xn as timeout, Xr as of$3, Xt as contextWithEffect, Y as suspend$2, Ya as constFalse, Yi as matchLeft, Yn as tapErrorCause, Yr as isNil, Yt as context, Z as unwrap$16, Za as constVoid, Zi as of$2, Zn as tryMap, Zr as empty$12, Zt as die, _ as fromString, _a as isOption, _i as Reference, _n as logError, _r as failCause, _t as effect, a as make$30, aa as tailNonEmpty, ai as add$1, an as filterOrDieMessage, ar as useSpan, at as embedInput, b as Defect, ba as match, bi as getOption, bn as mapBoth, br as make$28, bt as provideMerge, c as defaultLogger, ci as remove$4, cn as fnUntraced, cr as withParentSpan, ct as fromEffect, d as get$17, da as flatMap$3, di as map$9, dn as forkScoped, dr as zipRight, dt as write, ea as reduceRight, ei as has, en as ensuring, eo as pipe, er as uninterruptible, et as foldLeftChunks, f as make$26, fa as fromNullable, fi as of$1, fn as gen, fr as zipWith, ft as spaced, g as when, ga as isNone, gi as GenericTag, gn as locally, gr as fail$4, gt as make$29, h as value$1, ha as getOrUndefined, hi as unsafeFromArray, hn as isEffect, hr as complete, ht as get$18, i as isMailbox, ia as splitAt, ii as make$27, in as filter$1, io as __toESM, ir as unsafeMakeSemaphore, it as acquireUseRelease$1, ja as BaseProto, ji as every, jn as orElseFail, jr as addFinalizer$1, jt as is$2, k as Union, ka as right, ki as drop, kn as orDie, kr as log, kt as decodeSync, l as prettyLoggerDefault, la as map$10, li as seconds, ln as forEach$1, lr as zip, lt as suspend$1, m as orElse$1, ma as getOrThrow, mi as toArray, mn as interruptible, mr as _await, mt as updateContext, n as make$31, na as sort$2, ni as make$25, nn as failCause$1, no as __exportAll, nr as unlessEffect, nt as fromChannel$1, o as toChannel, oa as take, oi as fromIterable$3, on as flatMap$1, or as when$1, ot as ensuring$1, p as updateEffect, pa as getOrElse, pi as reduce$2, pn as ignore, pr as DeferredTypeId, pt as runFork, q as runCollect, qa as isTagged, qi as map$7, qn as tap, qr as round, qt as catchTag, r as unsafeAdd, ra as span, ri as set$2, rn as failSync, ro as __require, rr as unsafeMakeLatch, rt as unwrapScoped$1, s as unify, sa as unsafeGet, si as has$1, sn as flatten$3, sr as withFiberRuntime, st as flatMap$2, t as join$1, ta as some$1, ti as isEmpty$5, tn as fail$2, to as __commonJSMin, tr as uninterruptibleMask, tt as forEach, u as withMinimumLogLevel, ua as filter$3, ui as appendAll$1, un as forkDaemon, ur as zipLeft, ut as void_, v as Cause, va as isSome, vi as Tag$2, vn as logWarning, vr as interrupt, vt as mergeAll, w as NumberFromString, wa as boolean$3, wi as isMissingDataOnly, wn as matchCauseEffect, wr as Error$1, wt as currentLoggers, x as Int, xa as none$3, xi as merge$3, xn as mapError, xr as succeed$3, xt as scoped$1, y as Date$, ya as map$8, yi as get$19, yn as map$6, yr as isDone, yt as provide, z as bufferChunks, za as symbol$2, zi as getSomes, zn as scope, zr as make$24, zt as asVoid } from "./esm-
|
|
2
|
-
import { _ as LinkNode, a as HeadingNode, b as CodeHighlightNode, d as ListItemNode, f as ListNode, g as AutoLinkNode, o as QuoteNode, x as CodeNode } from "./LexicalRichText.node-
|
|
3
|
-
import { a as HorizontalRuleNode } from "./LexicalExtension.node-
|
|
4
|
-
import {
|
|
1
|
+
import { $ as drain, $a as identity, $i as reduce$1, $n as try_, $r as get$16, $t as either, A as compose, Aa as pipeArguments, Ai as empty$11, An as orElse$3, Ar as Scope, At as encodeSync, B as ensuring$2, Ba as cached, Bi as head$2, Bn as scoped, Br as set$3, Bt as async, C as Number$, Ca as some, Ci as isConfigError, Cn as match$2, Ct as currentContext, D as String$, Da as left, Di as appendAll, Dn as onError, Dr as taggedEnum, Dt as unsafeMake, Ea as string$1, Ei as append$2, En as negate, Er as tagged, Et as get$20, Fa as redact$1, Fi as findFirstIndex, Fn as retry, Fr as isFailure, Ft as addFinalizer, G as mapError$1, Gi as join, Gn as suspend, Gr as updateAs, Gt as catchIf, H as fromChannel, Ha as hash, Hi as isArray$1, Hn as serviceOption, Hr as updateAndGet, Ht as catchAll, I as make$22, Ia as symbolRedactable, Ii as findLast, In as runFork$1, Ir as void_$1, It as all$5, J as splitLines, Ja as globalValue, Ji as match$1, Jn as tapError, Jr as cons$1, Jt as catchTags, K as run$6, Ka as isObject, Ki as make$23, Kn as sync, Kr as CommitPrototype, Kt as catchSome, L as isConfig, La as toStringUnknown, Li as flatMap$4, Ln as runSync, Lr as ParentSpan, Lt as annotateLogs, M as decodeUnknown, Ma as Class, Mi as filter$2, Mn as provide$1, Mr as isInterrupted, Mt as _void, N as int, Na as NodeInspectSymbol, Ni as filterMap, Nn as provideService, Nr as isInterruptedOnly, Nt as acquireRelease, O as TaggedError, Oa as merge$2, Oi as contains, On as onInterrupt, Or as error$1, Ot as nominal, P as optional$9, Pa as format$3, Pi as findFirst, Pn as repeatN, Pr as fail$3, Pt as acquireUseRelease, Q as unwrapScoped, Qa as dual, Qi as prepend$1, Qn as tryPromise, Qr as fromIterable$2, Qt as dieMessage, R as asyncScoped, Ra as equals, Ri as fromIterable$1, Rn as runtime, Rr as get$15, Rt as as, S as Literal, Sa as orElse$2, Si as omit, Sn as mapInputContext, Sr as unsafeDone, St as succeed$2, Ta as mapInput, Ti as allocate, Tn as matchEffect, Tr as TaggedError$1, Tt as currentTracerEnabled, Ua as string, Ui as isEmptyReadonlyArray, Un as sleep$1, Ur as allLevels, Ut as catchAllCause, Va as combine$2, Vi as headNonEmpty, Vn as serviceFunctions, Vr as update$8, Vt as cached$1, W as mapChunks, Wa as symbol$1, Wi as isNonEmptyReadonlyArray, Wn as succeed$1, Wr as getOrDefault, Wt as catchAllDefect, X as transduce, Xa as constUndefined, Xi as matchRight, Xn as timeout, Xr as of$3, Xt as contextWithEffect, Y as suspend$2, Ya as constFalse, Yi as matchLeft, Yn as tapErrorCause, Yr as isNil, Yt as context, Z as unwrap$16, Za as constVoid, Zi as of$2, Zn as tryMap, Zr as empty$12, Zt as die, _ as fromString, _a as isOption, _i as Reference, _n as logError, _r as failCause, _t as effect, a as make$30, aa as tailNonEmpty, ai as add$1, an as filterOrDieMessage, ar as useSpan, at as embedInput, b as Defect, ba as match, bi as getOption, bn as mapBoth, br as make$28, bt as provideMerge, c as defaultLogger, ci as remove$4, cn as fnUntraced, cr as withParentSpan, ct as fromEffect, d as get$17, da as flatMap$3, di as map$9, dn as forkScoped, dr as zipRight, dt as write, ea as reduceRight, ei as has, en as ensuring, eo as pipe, er as uninterruptible, et as foldLeftChunks, f as make$26, fa as fromNullable, fi as of$1, fn as gen, fr as zipWith, ft as spaced, g as when, ga as isNone, gi as GenericTag, gn as locally, gr as fail$4, gt as make$29, h as value$1, ha as getOrUndefined, hi as unsafeFromArray, hn as isEffect, hr as complete, ht as get$18, i as isMailbox, ia as splitAt, ii as make$27, in as filter$1, io as __toESM, ir as unsafeMakeSemaphore, it as acquireUseRelease$1, ja as BaseProto, ji as every, jn as orElseFail, jr as addFinalizer$1, jt as is$2, k as Union, ka as right, ki as drop, kn as orDie, kr as log, kt as decodeSync, l as prettyLoggerDefault, la as map$10, li as seconds, ln as forEach$1, lr as zip, lt as suspend$1, m as orElse$1, ma as getOrThrow, mi as toArray, mn as interruptible, mr as _await, mt as updateContext, n as make$31, na as sort$2, ni as make$25, nn as failCause$1, no as __exportAll, nr as unlessEffect, nt as fromChannel$1, o as toChannel, oa as take, oi as fromIterable$3, on as flatMap$1, or as when$1, ot as ensuring$1, p as updateEffect, pa as getOrElse, pi as reduce$2, pn as ignore, pr as DeferredTypeId, pt as runFork, q as runCollect, qa as isTagged, qi as map$7, qn as tap, qr as round, qt as catchTag, r as unsafeAdd, ra as span, ri as set$2, rn as failSync, ro as __require, rr as unsafeMakeLatch, rt as unwrapScoped$1, s as unify, sa as unsafeGet, si as has$1, sn as flatten$3, sr as withFiberRuntime, st as flatMap$2, t as join$1, ta as some$1, ti as isEmpty$5, tn as fail$2, to as __commonJSMin, tr as uninterruptibleMask, tt as forEach, u as withMinimumLogLevel, ua as filter$3, ui as appendAll$1, un as forkDaemon, ur as zipLeft, ut as void_, v as Cause, va as isSome, vi as Tag$2, vn as logWarning, vr as interrupt, vt as mergeAll, w as NumberFromString, wa as boolean$3, wi as isMissingDataOnly, wn as matchCauseEffect, wr as Error$1, wt as currentLoggers, x as Int, xa as none$3, xi as merge$3, xn as mapError, xr as succeed$3, xt as scoped$1, y as Date$, ya as map$8, yi as get$19, yn as map$6, yr as isDone, yt as provide, z as bufferChunks, za as symbol$2, zi as getSomes, zn as scope, zr as make$24, zt as asVoid } from "./esm-DupC6TTP.mjs";
|
|
2
|
+
import { _ as LinkNode, a as HeadingNode, b as CodeHighlightNode, d as ListItemNode, f as ListNode, g as AutoLinkNode, o as QuoteNode, x as CodeNode } from "./LexicalRichText.node-D73RR0Ck.mjs";
|
|
3
|
+
import { a as HorizontalRuleNode } from "./LexicalExtension.node-CMsupJZs.mjs";
|
|
4
|
+
import { dn as ElementNode, un as DecoratorNode } from "./Lexical.node-DnR_u_Ke.mjs";
|
|
5
5
|
import { createRequire } from "node:module";
|
|
6
6
|
import * as ChildProcess from "node:child_process";
|
|
7
7
|
import childProcess, { execFile, spawn } from "node:child_process";
|
|
@@ -25,7 +25,7 @@ import { promisify, styleText } from "node:util";
|
|
|
25
25
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
26
26
|
import fs$1, { constants, readFile } from "node:fs/promises";
|
|
27
27
|
import process$1, { stdin, stdout } from "node:process";
|
|
28
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
28
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/Error.js
|
|
29
29
|
/**
|
|
30
30
|
* @since 1.0.0
|
|
31
31
|
* @category type id
|
|
@@ -99,7 +99,7 @@ var SystemError = class extends TaggedError("@effect/platform/Error/SystemError"
|
|
|
99
99
|
}
|
|
100
100
|
};
|
|
101
101
|
//#endregion
|
|
102
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
102
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/internal/fileSystem.js
|
|
103
103
|
/** @internal */
|
|
104
104
|
const tag$2 = /*#__PURE__*/ GenericTag("@effect/platform/FileSystem");
|
|
105
105
|
/** @internal */
|
|
@@ -151,7 +151,7 @@ const stream = (file, { bufferSize = 16, bytesToRead: bytesToRead_, chunkSize: c
|
|
|
151
151
|
return bufferChunks(fromChannel(loop(BigInt(0))), { capacity: bufferSize });
|
|
152
152
|
};
|
|
153
153
|
//#endregion
|
|
154
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
154
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/FileSystem.js
|
|
155
155
|
/**
|
|
156
156
|
* @since 1.0.0
|
|
157
157
|
*/
|
|
@@ -201,7 +201,7 @@ const WatchEventRemove = /*#__PURE__*/ tagged("Remove");
|
|
|
201
201
|
*/
|
|
202
202
|
var WatchBackend = class extends Tag$2("@effect/platform/FileSystem/WatchBackend")() {};
|
|
203
203
|
//#endregion
|
|
204
|
-
//#region ../../node_modules/.pnpm/@effect+typeclass@0.40.0_effect@3.21.
|
|
204
|
+
//#region ../../node_modules/.pnpm/@effect+typeclass@0.40.0_effect@3.21.4/node_modules/@effect/typeclass/dist/esm/internal/Iterable.js
|
|
205
205
|
/** @internal */
|
|
206
206
|
function reduce(b, f) {
|
|
207
207
|
return function(iterable) {
|
|
@@ -221,7 +221,7 @@ function map$5(f) {
|
|
|
221
221
|
};
|
|
222
222
|
}
|
|
223
223
|
//#endregion
|
|
224
|
-
//#region ../../node_modules/.pnpm/@effect+typeclass@0.40.0_effect@3.21.
|
|
224
|
+
//#region ../../node_modules/.pnpm/@effect+typeclass@0.40.0_effect@3.21.4/node_modules/@effect/typeclass/dist/esm/Product.js
|
|
225
225
|
/**
|
|
226
226
|
* @since 0.24.0
|
|
227
227
|
*/
|
|
@@ -234,7 +234,7 @@ const struct$2 = (F) => (fields) => {
|
|
|
234
234
|
}, (r) => keys.map((k) => r[k]));
|
|
235
235
|
};
|
|
236
236
|
//#endregion
|
|
237
|
-
//#region ../../node_modules/.pnpm/@effect+typeclass@0.40.0_effect@3.21.
|
|
237
|
+
//#region ../../node_modules/.pnpm/@effect+typeclass@0.40.0_effect@3.21.4/node_modules/@effect/typeclass/dist/esm/Semigroup.js
|
|
238
238
|
/**
|
|
239
239
|
* @since 0.24.0
|
|
240
240
|
*/
|
|
@@ -314,7 +314,7 @@ const array$1 = () => make$19((self, that) => self.concat(that));
|
|
|
314
314
|
*/
|
|
315
315
|
const struct$1 = /*#__PURE__*/ struct$2(Product);
|
|
316
316
|
//#endregion
|
|
317
|
-
//#region ../../node_modules/.pnpm/@effect+typeclass@0.40.0_effect@3.21.
|
|
317
|
+
//#region ../../node_modules/.pnpm/@effect+typeclass@0.40.0_effect@3.21.4/node_modules/@effect/typeclass/dist/esm/Monoid.js
|
|
318
318
|
/**
|
|
319
319
|
* @category constructors
|
|
320
320
|
* @since 0.24.0
|
|
@@ -351,7 +351,7 @@ const struct = (fields) => {
|
|
|
351
351
|
return fromSemigroup(struct$1(fields), empty);
|
|
352
352
|
};
|
|
353
353
|
//#endregion
|
|
354
|
-
//#region ../../node_modules/.pnpm/@effect+printer-ansi@0.49.0_@effect+typeclass@0.40.0_effect@3.21.
|
|
354
|
+
//#region ../../node_modules/.pnpm/@effect+printer-ansi@0.49.0_@effect+typeclass@0.40.0_effect@3.21.4__effect@3.21.4/node_modules/@effect/printer-ansi/dist/esm/internal/color.js
|
|
355
355
|
/** @internal */
|
|
356
356
|
const black = { _tag: "Black" };
|
|
357
357
|
/** @internal */
|
|
@@ -378,7 +378,7 @@ const toCode$1 = (color) => {
|
|
|
378
378
|
}
|
|
379
379
|
};
|
|
380
380
|
//#endregion
|
|
381
|
-
//#region ../../node_modules/.pnpm/@effect+printer-ansi@0.49.0_@effect+typeclass@0.40.0_effect@3.21.
|
|
381
|
+
//#region ../../node_modules/.pnpm/@effect+printer-ansi@0.49.0_@effect+typeclass@0.40.0_effect@3.21.4__effect@3.21.4/node_modules/@effect/printer-ansi/dist/esm/internal/sgr.js
|
|
382
382
|
/** @internal */
|
|
383
383
|
const reset = { _tag: "Reset" };
|
|
384
384
|
/** @internal */
|
|
@@ -540,7 +540,7 @@ const stringifyInternal = (self) => {
|
|
|
540
540
|
]))}${join(self.commands, "")}`;
|
|
541
541
|
};
|
|
542
542
|
//#endregion
|
|
543
|
-
//#region ../../node_modules/.pnpm/@effect+printer-ansi@0.49.0_@effect+typeclass@0.40.0_effect@3.21.
|
|
543
|
+
//#region ../../node_modules/.pnpm/@effect+printer-ansi@0.49.0_@effect+typeclass@0.40.0_effect@3.21.4__effect@3.21.4/node_modules/@effect/printer-ansi/dist/esm/Ansi.js
|
|
544
544
|
/**
|
|
545
545
|
* @since 1.0.0
|
|
546
546
|
* @category constructors
|
|
@@ -597,7 +597,7 @@ const cyanBright = cyanBright$1;
|
|
|
597
597
|
*/
|
|
598
598
|
const combine = combine$1;
|
|
599
599
|
//#endregion
|
|
600
|
-
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.
|
|
600
|
+
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.4__effect@3.21.4/node_modules/@effect/printer/dist/esm/internal/flatten.js
|
|
601
601
|
const FlattenSymbolKey = "@effect/printer/Flatten";
|
|
602
602
|
/** @internal */
|
|
603
603
|
const FlattenTypeId = /*#__PURE__*/ Symbol.for(FlattenSymbolKey);
|
|
@@ -656,7 +656,7 @@ const map$4 = /*#__PURE__*/ dual(2, (self, f) => {
|
|
|
656
656
|
}
|
|
657
657
|
});
|
|
658
658
|
//#endregion
|
|
659
|
-
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.
|
|
659
|
+
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.4__effect@3.21.4/node_modules/@effect/printer/dist/esm/internal/doc.js
|
|
660
660
|
const DocSymbolKey = "@effect/printer/Doc";
|
|
661
661
|
/** @internal */
|
|
662
662
|
const DocTypeId = /*#__PURE__*/ Symbol.for(DocSymbolKey);
|
|
@@ -916,7 +916,7 @@ const textSpaces = (n) => {
|
|
|
916
916
|
return s;
|
|
917
917
|
};
|
|
918
918
|
//#endregion
|
|
919
|
-
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.
|
|
919
|
+
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.4__effect@3.21.4/node_modules/@effect/printer/dist/esm/internal/docStream.js
|
|
920
920
|
const DocStreamSymbolKey = "@effect/printer/DocStream";
|
|
921
921
|
/** @internal */
|
|
922
922
|
const DocStreamTypeId = /*#__PURE__*/ Symbol.for(DocStreamSymbolKey);
|
|
@@ -1005,7 +1005,7 @@ const popAnnotation = (stream) => {
|
|
|
1005
1005
|
return op;
|
|
1006
1006
|
};
|
|
1007
1007
|
//#endregion
|
|
1008
|
-
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.
|
|
1008
|
+
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.4__effect@3.21.4/node_modules/@effect/printer/dist/esm/internal/layoutPipeline.js
|
|
1009
1009
|
/** @internal */
|
|
1010
1010
|
const nil = { _tag: "Nil" };
|
|
1011
1011
|
/** @internal */
|
|
@@ -1021,7 +1021,7 @@ const undoAnnotation = (pipeline) => ({
|
|
|
1021
1021
|
pipeline
|
|
1022
1022
|
});
|
|
1023
1023
|
//#endregion
|
|
1024
|
-
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.
|
|
1024
|
+
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.4__effect@3.21.4/node_modules/@effect/printer/dist/esm/internal/pageWidth.js
|
|
1025
1025
|
const PageWidthSymbolKey = "@effect/printer/PageWidth";
|
|
1026
1026
|
/** @internal */
|
|
1027
1027
|
const PageWidthTypeId = /*#__PURE__*/ Symbol.for(PageWidthSymbolKey);
|
|
@@ -1067,7 +1067,7 @@ const remainingWidth = (pageWidth, ribbonFraction, indentation, currentColumn) =
|
|
|
1067
1067
|
return Math.min(columnsLeftInLine, columnsLeftInRibbon);
|
|
1068
1068
|
};
|
|
1069
1069
|
//#endregion
|
|
1070
|
-
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.
|
|
1070
|
+
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.4__effect@3.21.4/node_modules/@effect/printer/dist/esm/internal/layout.js
|
|
1071
1071
|
/** @internal */
|
|
1072
1072
|
const options$3 = (pageWidth) => ({ pageWidth });
|
|
1073
1073
|
/** @internal */
|
|
@@ -1256,7 +1256,7 @@ const failsOnFirstLine = (self) => {
|
|
|
1256
1256
|
throw new Error("bug");
|
|
1257
1257
|
};
|
|
1258
1258
|
//#endregion
|
|
1259
|
-
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.
|
|
1259
|
+
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.4__effect@3.21.4/node_modules/@effect/printer/dist/esm/Doc.js
|
|
1260
1260
|
/**
|
|
1261
1261
|
* The abstract data type `Doc<A>` represents prettified documents that have
|
|
1262
1262
|
* been annotated with data of type `A`.
|
|
@@ -1643,7 +1643,7 @@ const indent$1 = indent$2;
|
|
|
1643
1643
|
*/
|
|
1644
1644
|
const annotate = annotate$1;
|
|
1645
1645
|
//#endregion
|
|
1646
|
-
//#region ../../node_modules/.pnpm/@effect+printer-ansi@0.49.0_@effect+typeclass@0.40.0_effect@3.21.
|
|
1646
|
+
//#region ../../node_modules/.pnpm/@effect+printer-ansi@0.49.0_@effect+typeclass@0.40.0_effect@3.21.4__effect@3.21.4/node_modules/@effect/printer-ansi/dist/esm/internal/ansiDoc.js
|
|
1647
1647
|
/** @internal */
|
|
1648
1648
|
const beep$1 = /*#__PURE__*/ annotate(empty$8, beep$2);
|
|
1649
1649
|
/** @internal */
|
|
@@ -1667,7 +1667,7 @@ const eraseLines$1 = (rows) => annotate(empty$8, eraseLines$2(rows));
|
|
|
1667
1667
|
/** @internal */
|
|
1668
1668
|
const eraseLine$1 = /*#__PURE__*/ annotate(empty$8, eraseLine$2);
|
|
1669
1669
|
//#endregion
|
|
1670
|
-
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.
|
|
1670
|
+
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.4__effect@3.21.4/node_modules/@effect/printer/dist/esm/PageWidth.js
|
|
1671
1671
|
/**
|
|
1672
1672
|
* @since 1.0.0
|
|
1673
1673
|
*/
|
|
@@ -1677,7 +1677,7 @@ const eraseLine$1 = /*#__PURE__*/ annotate(empty$8, eraseLine$2);
|
|
|
1677
1677
|
*/
|
|
1678
1678
|
const defaultPageWidth = defaultPageWidth$1;
|
|
1679
1679
|
//#endregion
|
|
1680
|
-
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.
|
|
1680
|
+
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.4__effect@3.21.4/node_modules/@effect/printer/dist/esm/Layout.js
|
|
1681
1681
|
/**
|
|
1682
1682
|
* @since 1.0.0
|
|
1683
1683
|
*/
|
|
@@ -1852,7 +1852,7 @@ const pretty = pretty$1;
|
|
|
1852
1852
|
*/
|
|
1853
1853
|
const smart = smart$1;
|
|
1854
1854
|
//#endregion
|
|
1855
|
-
//#region ../../node_modules/.pnpm/@effect+printer-ansi@0.49.0_@effect+typeclass@0.40.0_effect@3.21.
|
|
1855
|
+
//#region ../../node_modules/.pnpm/@effect+printer-ansi@0.49.0_@effect+typeclass@0.40.0_effect@3.21.4__effect@3.21.4/node_modules/@effect/printer-ansi/dist/esm/internal/ansiRender.js
|
|
1856
1856
|
/** @internal */
|
|
1857
1857
|
const render$3 = /*#__PURE__*/ dual(2, (self, config) => {
|
|
1858
1858
|
switch (config.style) {
|
|
@@ -1895,7 +1895,7 @@ const renderSafe = (self, stack) => {
|
|
|
1895
1895
|
}
|
|
1896
1896
|
};
|
|
1897
1897
|
//#endregion
|
|
1898
|
-
//#region ../../node_modules/.pnpm/@effect+printer-ansi@0.49.0_@effect+typeclass@0.40.0_effect@3.21.
|
|
1898
|
+
//#region ../../node_modules/.pnpm/@effect+printer-ansi@0.49.0_@effect+typeclass@0.40.0_effect@3.21.4__effect@3.21.4/node_modules/@effect/printer-ansi/dist/esm/AnsiDoc.js
|
|
1899
1899
|
/**
|
|
1900
1900
|
* Play a beeping sound.
|
|
1901
1901
|
*
|
|
@@ -1993,7 +1993,7 @@ const eraseLine = eraseLine$1;
|
|
|
1993
1993
|
*/
|
|
1994
1994
|
const render$2 = render$3;
|
|
1995
1995
|
//#endregion
|
|
1996
|
-
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.
|
|
1996
|
+
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.4__effect@3.21.4/node_modules/@effect/printer/dist/esm/internal/optimize.js
|
|
1997
1997
|
/** @internal */
|
|
1998
1998
|
const optimize$1 = /*#__PURE__*/ dual(2, (self, depth) => runSync(optimizeSafe(self, depth)));
|
|
1999
1999
|
const optimizeSafe = (self, depth) => {
|
|
@@ -2036,7 +2036,7 @@ const optimizeSafe = (self, depth) => {
|
|
|
2036
2036
|
return optimize(self);
|
|
2037
2037
|
};
|
|
2038
2038
|
//#endregion
|
|
2039
|
-
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.
|
|
2039
|
+
//#region ../../node_modules/.pnpm/@effect+printer@0.49.0_@effect+typeclass@0.40.0_effect@3.21.4__effect@3.21.4/node_modules/@effect/printer/dist/esm/Optimize.js
|
|
2040
2040
|
/**
|
|
2041
2041
|
* @since 1.0.0
|
|
2042
2042
|
*/
|
|
@@ -2084,7 +2084,7 @@ const Deep = { _tag: "Deep" };
|
|
|
2084
2084
|
*/
|
|
2085
2085
|
const optimize = optimize$1;
|
|
2086
2086
|
//#endregion
|
|
2087
|
-
//#region ../../node_modules/.pnpm/@effect+printer-ansi@0.49.0_@effect+typeclass@0.40.0_effect@3.21.
|
|
2087
|
+
//#region ../../node_modules/.pnpm/@effect+printer-ansi@0.49.0_@effect+typeclass@0.40.0_effect@3.21.4__effect@3.21.4/node_modules/@effect/printer-ansi/dist/esm/Color.js
|
|
2088
2088
|
/**
|
|
2089
2089
|
* @since 1.0.0
|
|
2090
2090
|
*/
|
|
@@ -2109,7 +2109,7 @@ const cyan = cyan$1;
|
|
|
2109
2109
|
*/
|
|
2110
2110
|
const white = white$3;
|
|
2111
2111
|
//#endregion
|
|
2112
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
2112
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/internal/helpDoc/span.js
|
|
2113
2113
|
/** @internal */
|
|
2114
2114
|
const text$10 = (value) => ({
|
|
2115
2115
|
_tag: "Text",
|
|
@@ -2164,16 +2164,16 @@ const spans = (spans) => {
|
|
|
2164
2164
|
return empty$7;
|
|
2165
2165
|
};
|
|
2166
2166
|
/** @internal */
|
|
2167
|
-
const isEmpty$3 = (self) => size$
|
|
2167
|
+
const isEmpty$3 = (self) => size$9(self) === 0;
|
|
2168
2168
|
/** @internal */
|
|
2169
|
-
const size$
|
|
2169
|
+
const size$9 = (self) => {
|
|
2170
2170
|
switch (self._tag) {
|
|
2171
2171
|
case "Text":
|
|
2172
2172
|
case "URI": return self.value.length;
|
|
2173
2173
|
case "Highlight":
|
|
2174
2174
|
case "Strong":
|
|
2175
|
-
case "Weak": return size$
|
|
2176
|
-
case "Sequence": return size$
|
|
2175
|
+
case "Weak": return size$9(self.value);
|
|
2176
|
+
case "Sequence": return size$9(self.left) + size$9(self.right);
|
|
2177
2177
|
}
|
|
2178
2178
|
};
|
|
2179
2179
|
/** @internal */
|
|
@@ -2188,7 +2188,7 @@ const toAnsiDoc$1 = (self) => {
|
|
|
2188
2188
|
}
|
|
2189
2189
|
};
|
|
2190
2190
|
//#endregion
|
|
2191
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
2191
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/internal/helpDoc.js
|
|
2192
2192
|
/** @internal */
|
|
2193
2193
|
const isEmpty$2 = (helpDoc) => helpDoc._tag === "Empty";
|
|
2194
2194
|
/** @internal */
|
|
@@ -2259,7 +2259,7 @@ const toAnsiDocInternal = (self) => {
|
|
|
2259
2259
|
}
|
|
2260
2260
|
};
|
|
2261
2261
|
//#endregion
|
|
2262
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
2262
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/internal/cliConfig.js
|
|
2263
2263
|
/** @internal */
|
|
2264
2264
|
const Tag$1 = /*#__PURE__*/ GenericTag("@effect/cli/CliConfig");
|
|
2265
2265
|
/** @internal */
|
|
@@ -2274,11 +2274,11 @@ const defaultConfig = {
|
|
|
2274
2274
|
/** @internal */
|
|
2275
2275
|
const normalizeCase = /*#__PURE__*/ dual(2, (self, text) => self.isCaseSensitive ? text : text.toLowerCase());
|
|
2276
2276
|
//#endregion
|
|
2277
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
2277
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/internal/terminal.js
|
|
2278
2278
|
/** @internal */
|
|
2279
2279
|
const tag$1 = /*#__PURE__*/ GenericTag("@effect/platform/Terminal");
|
|
2280
2280
|
//#endregion
|
|
2281
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
2281
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/Terminal.js
|
|
2282
2282
|
/**
|
|
2283
2283
|
* A `QuitException` represents an exception that occurs when a user attempts to
|
|
2284
2284
|
* quit out of a `Terminal` prompt for input (usually by entering `ctrl`+`c`).
|
|
@@ -2298,7 +2298,7 @@ const isQuitException = (u) => typeof u === "object" && u != null && "_tag" in u
|
|
|
2298
2298
|
*/
|
|
2299
2299
|
const Terminal = tag$1;
|
|
2300
2300
|
//#endregion
|
|
2301
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
2301
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/internal/prompt/action.js
|
|
2302
2302
|
/** @internal */
|
|
2303
2303
|
const Action = /*#__PURE__*/ taggedEnum();
|
|
2304
2304
|
/** @internal */
|
|
@@ -2380,7 +2380,7 @@ const succeed = (value) => {
|
|
|
2380
2380
|
return op;
|
|
2381
2381
|
};
|
|
2382
2382
|
//#endregion
|
|
2383
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
2383
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/internal/prompt/ansi-utils.js
|
|
2384
2384
|
const defaultFigures = {
|
|
2385
2385
|
arrowUp: /*#__PURE__*/ text$11("↑"),
|
|
2386
2386
|
arrowDown: /*#__PURE__*/ text$11("↓"),
|
|
@@ -2433,7 +2433,7 @@ function lines(prompt, columns) {
|
|
|
2433
2433
|
return columns === 0 ? lines.length : pipe(map$7(lines, (line) => Math.ceil(line.length / columns)), reduce$1(0, (left, right) => left + right));
|
|
2434
2434
|
}
|
|
2435
2435
|
//#endregion
|
|
2436
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
2436
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/internal/prompt/date.js
|
|
2437
2437
|
const renderBeep$5 = /*#__PURE__*/ render$2(beep, { style: "pretty" });
|
|
2438
2438
|
function handleClear$5(options) {
|
|
2439
2439
|
return (state, _) => {
|
|
@@ -2885,13 +2885,13 @@ var Meridiem = class extends DatePart {
|
|
|
2885
2885
|
}
|
|
2886
2886
|
};
|
|
2887
2887
|
//#endregion
|
|
2888
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
2888
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/internal/path.js
|
|
2889
2889
|
/** @internal */
|
|
2890
2890
|
const TypeId$13 = /*#__PURE__*/ Symbol.for("@effect/platform/Path");
|
|
2891
2891
|
/** @internal */
|
|
2892
2892
|
const Path$2 = /*#__PURE__*/ GenericTag("@effect/platform/Path");
|
|
2893
2893
|
//#endregion
|
|
2894
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
2894
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/Path.js
|
|
2895
2895
|
/**
|
|
2896
2896
|
* @since 1.0.0
|
|
2897
2897
|
*/
|
|
@@ -2906,7 +2906,7 @@ const TypeId$12 = TypeId$13;
|
|
|
2906
2906
|
*/
|
|
2907
2907
|
const Path$1 = Path$2;
|
|
2908
2908
|
//#endregion
|
|
2909
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
2909
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/internal/prompt/utils.js
|
|
2910
2910
|
/** @internal */
|
|
2911
2911
|
const entriesToDisplay = (cursor, total, maxVisible) => {
|
|
2912
2912
|
const max = maxVisible === void 0 ? total : maxVisible;
|
|
@@ -2919,7 +2919,7 @@ const entriesToDisplay = (cursor, total, maxVisible) => {
|
|
|
2919
2919
|
};
|
|
2920
2920
|
};
|
|
2921
2921
|
//#endregion
|
|
2922
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
2922
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/internal/prompt/file.js
|
|
2923
2923
|
const CONFIRM_MESSAGE = "The selected directory contains files. Would you like to traverse the selected directory?";
|
|
2924
2924
|
const Confirm = /*#__PURE__*/ taggedEnum();
|
|
2925
2925
|
const showConfirmation = /*#__PURE__*/ Confirm.$is("Show");
|
|
@@ -3146,7 +3146,7 @@ const file$5 = (options = {}) => {
|
|
|
3146
3146
|
});
|
|
3147
3147
|
};
|
|
3148
3148
|
//#endregion
|
|
3149
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
3149
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/internal/prompt/number.js
|
|
3150
3150
|
const parseInt$1 = /*#__PURE__*/ NumberFromString.pipe(/*#__PURE__*/ int(), decodeUnknown);
|
|
3151
3151
|
const parseFloat$1 = /*#__PURE__*/ decodeUnknown(NumberFromString);
|
|
3152
3152
|
const renderBeep$3 = /*#__PURE__*/ render$2(beep, { style: "pretty" });
|
|
@@ -3401,7 +3401,7 @@ const float = (options) => {
|
|
|
3401
3401
|
});
|
|
3402
3402
|
};
|
|
3403
3403
|
//#endregion
|
|
3404
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
3404
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/internal/prompt/select.js
|
|
3405
3405
|
const renderBeep$2 = /*#__PURE__*/ render$2(beep, { style: "pretty" });
|
|
3406
3406
|
const NEWLINE_REGEX = /\r?\n/;
|
|
3407
3407
|
function renderOutput$2(leadingSymbol, trailingSymbol, options) {
|
|
@@ -3539,7 +3539,7 @@ const select = (options) => {
|
|
|
3539
3539
|
});
|
|
3540
3540
|
};
|
|
3541
3541
|
//#endregion
|
|
3542
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
3542
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/internal/prompt/text.js
|
|
3543
3543
|
function getValue(state, options) {
|
|
3544
3544
|
return state.value.length > 0 ? state.value : options.default;
|
|
3545
3545
|
}
|
|
@@ -3739,7 +3739,7 @@ const hidden = (options) => basePrompt(options, "hidden").pipe(map$3(make$22));
|
|
|
3739
3739
|
/** @internal */
|
|
3740
3740
|
const text$9 = (options) => basePrompt(options, "text");
|
|
3741
3741
|
//#endregion
|
|
3742
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
3742
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/internal/prompt/toggle.js
|
|
3743
3743
|
const renderBeep = /*#__PURE__*/ render$2(beep, { style: "pretty" });
|
|
3744
3744
|
function handleClear(options) {
|
|
3745
3745
|
return gen(function* () {
|
|
@@ -4085,7 +4085,7 @@ const getZshCompletions$3 = (self) => {
|
|
|
4085
4085
|
}
|
|
4086
4086
|
};
|
|
4087
4087
|
//#endregion
|
|
4088
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
4088
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/internal/usage.js
|
|
4089
4089
|
/** @internal */
|
|
4090
4090
|
const empty$5 = { _tag: "Empty" };
|
|
4091
4091
|
/** @internal */
|
|
@@ -4587,7 +4587,7 @@ const getZshCompletions$2 = (self, state = {
|
|
|
4587
4587
|
}
|
|
4588
4588
|
};
|
|
4589
4589
|
//#endregion
|
|
4590
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
4590
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/Args.js
|
|
4591
4591
|
/**
|
|
4592
4592
|
* @since 1.0.0
|
|
4593
4593
|
* @category combinators
|
|
@@ -4608,14 +4608,14 @@ const repeated$2 = repeated$3;
|
|
|
4608
4608
|
*/
|
|
4609
4609
|
const text$6 = text$7;
|
|
4610
4610
|
//#endregion
|
|
4611
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
4611
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/HelpDoc.js
|
|
4612
4612
|
/**
|
|
4613
4613
|
* @since 1.0.0
|
|
4614
4614
|
* @category constructors
|
|
4615
4615
|
*/
|
|
4616
4616
|
const p = p$1;
|
|
4617
4617
|
//#endregion
|
|
4618
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
4618
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/internal/autoCorrect.js
|
|
4619
4619
|
/** @internal */
|
|
4620
4620
|
const levensteinDistance = (first, second, config) => {
|
|
4621
4621
|
if (first.length === 0 && second.length === 0) return 0;
|
|
@@ -4638,7 +4638,7 @@ const levensteinDistance = (first, second, config) => {
|
|
|
4638
4638
|
return matrix[rowCount][columnCount];
|
|
4639
4639
|
};
|
|
4640
4640
|
//#endregion
|
|
4641
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
4641
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/internal/prompt/list.js
|
|
4642
4642
|
/** @internal */
|
|
4643
4643
|
const list$15 = (options) => text$9(options).pipe(map$3((output) => output.split(options.delimiter || ",")));
|
|
4644
4644
|
/** @internal */
|
|
@@ -5594,7 +5594,7 @@ const getZshCompletions$1 = (self, state = {
|
|
|
5594
5594
|
}
|
|
5595
5595
|
};
|
|
5596
5596
|
//#endregion
|
|
5597
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
5597
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/Options.js
|
|
5598
5598
|
/**
|
|
5599
5599
|
* @since 1.0.0
|
|
5600
5600
|
* @category constructors
|
|
@@ -5661,7 +5661,7 @@ const withDefault = withDefault$1;
|
|
|
5661
5661
|
*/
|
|
5662
5662
|
const withDescription$3 = withDescription$4;
|
|
5663
5663
|
//#endregion
|
|
5664
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
5664
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/internal/builtInOptions.js
|
|
5665
5665
|
/** @internal */
|
|
5666
5666
|
const setLogLevel = (level) => ({
|
|
5667
5667
|
_tag: "SetLogLevel",
|
|
@@ -5720,7 +5720,7 @@ const builtInOptions = (command, usage, helpDoc) => map$1(builtIns, (builtIn) =>
|
|
|
5720
5720
|
return none$3();
|
|
5721
5721
|
});
|
|
5722
5722
|
//#endregion
|
|
5723
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
5723
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/internal/commandDirective.js
|
|
5724
5724
|
/** @internal */
|
|
5725
5725
|
const builtIn = (option) => ({
|
|
5726
5726
|
_tag: "BuiltIn",
|
|
@@ -5829,10 +5829,10 @@ const getHelpInternal = (self, config) => {
|
|
|
5829
5829
|
}
|
|
5830
5830
|
};
|
|
5831
5831
|
const printSubcommands = (subcommands) => {
|
|
5832
|
-
const maxUsageLength = reduceRight(subcommands, 0, (max, [usage]) => Math.max(size$
|
|
5832
|
+
const maxUsageLength = reduceRight(subcommands, 0, (max, [usage]) => Math.max(size$9(usage), max));
|
|
5833
5833
|
const documents = map$7(subcommands, ([usage, desc]) => p$1(spans([
|
|
5834
5834
|
usage,
|
|
5835
|
-
text$10(" ".repeat(maxUsageLength - size$
|
|
5835
|
+
text$10(" ".repeat(maxUsageLength - size$9(usage) + 2)),
|
|
5836
5836
|
desc
|
|
5837
5837
|
])));
|
|
5838
5838
|
if (isNonEmptyReadonlyArray(documents)) return enumeration(documents);
|
|
@@ -6318,14 +6318,14 @@ const helpRequestedError = (command) => {
|
|
|
6318
6318
|
return op;
|
|
6319
6319
|
};
|
|
6320
6320
|
//#endregion
|
|
6321
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
6321
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/ValidationError.js
|
|
6322
6322
|
/**
|
|
6323
6323
|
* @since 1.0.0
|
|
6324
6324
|
* @category constructors
|
|
6325
6325
|
*/
|
|
6326
6326
|
const helpRequested = helpRequestedError;
|
|
6327
6327
|
//#endregion
|
|
6328
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
6328
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/internal/cliApp.js
|
|
6329
6329
|
const proto = { pipe() {
|
|
6330
6330
|
return pipeArguments(this, arguments);
|
|
6331
6331
|
} };
|
|
@@ -6604,7 +6604,7 @@ const run$3 = /*#__PURE__*/ dual(2, (self, config) => {
|
|
|
6604
6604
|
return (args) => run$4(app, args, handler);
|
|
6605
6605
|
});
|
|
6606
6606
|
//#endregion
|
|
6607
|
-
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.
|
|
6607
|
+
//#region ../../node_modules/.pnpm/@effect+cli@0.75.2_@effect+platform@0.96.2_effect@3.21.4__@effect+printer-ansi@0.49.0_@_01a8c4d9bc0f75ad9760cebe2a3dffeb/node_modules/@effect/cli/dist/esm/Command.js
|
|
6608
6608
|
/**
|
|
6609
6609
|
* @since 1.0.0
|
|
6610
6610
|
* @category constructors
|
|
@@ -6626,7 +6626,7 @@ const withSubcommands = withSubcommands$1;
|
|
|
6626
6626
|
*/
|
|
6627
6627
|
const run$2 = run$3;
|
|
6628
6628
|
//#endregion
|
|
6629
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
6629
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/internal/commandExecutor.js
|
|
6630
6630
|
/** @internal */
|
|
6631
6631
|
const TypeId$9 = /*#__PURE__*/ Symbol.for("@effect/platform/CommandExecutor");
|
|
6632
6632
|
/** @internal */
|
|
@@ -6666,7 +6666,7 @@ const collectUint8Array = /*#__PURE__*/ foldLeftChunks(/*#__PURE__*/ new Uint8Ar
|
|
|
6666
6666
|
return newArray;
|
|
6667
6667
|
}));
|
|
6668
6668
|
//#endregion
|
|
6669
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
6669
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/internal/command.js
|
|
6670
6670
|
/** @internal */
|
|
6671
6671
|
const CommandTypeId = /*#__PURE__*/ Symbol.for("@effect/platform/Command");
|
|
6672
6672
|
/** @internal */
|
|
@@ -6730,7 +6730,7 @@ const stdin$2 = /*#__PURE__*/ dual(2, (self, input) => {
|
|
|
6730
6730
|
}
|
|
6731
6731
|
});
|
|
6732
6732
|
//#endregion
|
|
6733
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
6733
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/Command.js
|
|
6734
6734
|
/**
|
|
6735
6735
|
* Flatten this command to a non-empty array of standard commands.
|
|
6736
6736
|
*
|
|
@@ -6750,7 +6750,7 @@ const flatten = flatten$1;
|
|
|
6750
6750
|
*/
|
|
6751
6751
|
const stdin$1 = stdin$2;
|
|
6752
6752
|
//#endregion
|
|
6753
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
6753
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/CommandExecutor.js
|
|
6754
6754
|
/**
|
|
6755
6755
|
* @since 1.0.0
|
|
6756
6756
|
* @category tags
|
|
@@ -6777,7 +6777,7 @@ const ProcessId = ProcessId$1;
|
|
|
6777
6777
|
*/
|
|
6778
6778
|
const makeExecutor = makeExecutor$1;
|
|
6779
6779
|
//#endregion
|
|
6780
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
6780
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effe_6f676239777f0c28233e14563d81e402/node_modules/@effect/platform-node-shared/dist/esm/internal/error.js
|
|
6781
6781
|
/** @internal */
|
|
6782
6782
|
const handleErrnoException = (module, method) => (err, [path]) => {
|
|
6783
6783
|
let reason = "Unknown";
|
|
@@ -6815,7 +6815,7 @@ const handleErrnoException = (module, method) => (err, [path]) => {
|
|
|
6815
6815
|
});
|
|
6816
6816
|
};
|
|
6817
6817
|
//#endregion
|
|
6818
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
6818
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effe_6f676239777f0c28233e14563d81e402/node_modules/@effect/platform-node-shared/dist/esm/internal/stream.js
|
|
6819
6819
|
/** @internal */
|
|
6820
6820
|
const fromReadable$1 = (evaluate, onError, options) => fromChannel(fromReadableChannel(evaluate, onError, options));
|
|
6821
6821
|
/** @internal */
|
|
@@ -6936,7 +6936,7 @@ const unsafeReadableRead = (readable, onError, exit, options) => {
|
|
|
6936
6936
|
}));
|
|
6937
6937
|
};
|
|
6938
6938
|
//#endregion
|
|
6939
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
6939
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effe_6f676239777f0c28233e14563d81e402/node_modules/@effect/platform-node-shared/dist/esm/internal/sink.js
|
|
6940
6940
|
/** @internal */
|
|
6941
6941
|
const fromWritable$1 = (evaluate, onError, options) => fromChannel$1(fromWritableChannel(evaluate, onError, options));
|
|
6942
6942
|
/** @internal */
|
|
@@ -6951,7 +6951,7 @@ const writableOutput = (writable, deferred, onError) => suspend(() => {
|
|
|
6951
6951
|
}));
|
|
6952
6952
|
});
|
|
6953
6953
|
//#endregion
|
|
6954
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
6954
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effe_6f676239777f0c28233e14563d81e402/node_modules/@effect/platform-node-shared/dist/esm/internal/commandExecutor.js
|
|
6955
6955
|
const inputToStdioOption = (stdin) => typeof stdin === "string" ? stdin : "pipe";
|
|
6956
6956
|
const outputToStdioOption = (output) => typeof output === "string" ? output : "pipe";
|
|
6957
6957
|
const toError = (err) => err instanceof globalThis.Error ? err : new globalThis.Error(String(err));
|
|
@@ -7058,14 +7058,14 @@ const runCommand = (fileSystem) => (command) => {
|
|
|
7058
7058
|
}
|
|
7059
7059
|
};
|
|
7060
7060
|
//#endregion
|
|
7061
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
7061
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effe_6f676239777f0c28233e14563d81e402/node_modules/@effect/platform-node-shared/dist/esm/NodeCommandExecutor.js
|
|
7062
7062
|
/**
|
|
7063
7063
|
* @since 1.0.0
|
|
7064
7064
|
* @category layer
|
|
7065
7065
|
*/
|
|
7066
7066
|
const layer$9 = /* @__PURE__ */ effect(CommandExecutor, /*#__PURE__*/ pipe(FileSystem, /*#__PURE__*/ map$6((fileSystem) => makeExecutor(runCommand(fileSystem)))));
|
|
7067
7067
|
//#endregion
|
|
7068
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
7068
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/internal/effectify.js
|
|
7069
7069
|
/** @internal */
|
|
7070
7070
|
const effectify$1 = (fn, onError, onSyncError) => (...args) => async((resume) => {
|
|
7071
7071
|
try {
|
|
@@ -7078,13 +7078,13 @@ const effectify$1 = (fn, onError, onSyncError) => (...args) => async((resume) =>
|
|
|
7078
7078
|
}
|
|
7079
7079
|
});
|
|
7080
7080
|
//#endregion
|
|
7081
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
7081
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/Effectify.js
|
|
7082
7082
|
/**
|
|
7083
7083
|
* @since 1.0.0
|
|
7084
7084
|
*/
|
|
7085
7085
|
const effectify = effectify$1;
|
|
7086
7086
|
//#endregion
|
|
7087
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
7087
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effe_6f676239777f0c28233e14563d81e402/node_modules/@effect/platform-node-shared/dist/esm/internal/fileSystem.js
|
|
7088
7088
|
const handleBadArgument = (method) => (cause) => new BadArgument({
|
|
7089
7089
|
module: "FileSystem",
|
|
7090
7090
|
method,
|
|
@@ -7366,7 +7366,7 @@ const writeFile = (path, data, options) => async((resume, signal) => {
|
|
|
7366
7366
|
}
|
|
7367
7367
|
});
|
|
7368
7368
|
//#endregion
|
|
7369
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
7369
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effe_6f676239777f0c28233e14563d81e402/node_modules/@effect/platform-node-shared/dist/esm/NodeFileSystem.js
|
|
7370
7370
|
/**
|
|
7371
7371
|
* @since 1.0.0
|
|
7372
7372
|
*/
|
|
@@ -7403,7 +7403,7 @@ const layer$7 = /* @__PURE__ */ effect(FileSystem, /* @__PURE__ */ map$6(/*#__PU
|
|
|
7403
7403
|
writeFile
|
|
7404
7404
|
})));
|
|
7405
7405
|
//#endregion
|
|
7406
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
7406
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effe_6f676239777f0c28233e14563d81e402/node_modules/@effect/platform-node-shared/dist/esm/internal/path.js
|
|
7407
7407
|
const fromFileUrl = (url) => try_({
|
|
7408
7408
|
try: () => NodeUrl.fileURLToPath(url),
|
|
7409
7409
|
catch: (error) => new BadArgument({
|
|
@@ -7425,7 +7425,7 @@ const toFileUrl = (path) => try_({
|
|
|
7425
7425
|
({ ...Path.posix });
|
|
7426
7426
|
({ ...Path.win32 });
|
|
7427
7427
|
//#endregion
|
|
7428
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
7428
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effe_6f676239777f0c28233e14563d81e402/node_modules/@effect/platform-node-shared/dist/esm/NodePath.js
|
|
7429
7429
|
/**
|
|
7430
7430
|
* @since 1.0.0
|
|
7431
7431
|
*/
|
|
@@ -7440,10 +7440,10 @@ const layer$5 = /* @__PURE__ */ succeed$2(Path$1, /*#__PURE__*/ Path$1.of({
|
|
|
7440
7440
|
toFileUrl
|
|
7441
7441
|
}));
|
|
7442
7442
|
//#endregion
|
|
7443
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
7443
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effe_6f676239777f0c28233e14563d81e402/node_modules/@effect/platform-node-shared/dist/esm/internal/terminal.js
|
|
7444
7444
|
const defaultShouldQuit = (input) => input.key.ctrl && (input.key.name === "c" || input.key.name === "d");
|
|
7445
7445
|
//#endregion
|
|
7446
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
7446
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effe_6f676239777f0c28233e14563d81e402/node_modules/@effect/platform-node-shared/dist/esm/NodeTerminal.js
|
|
7447
7447
|
/**
|
|
7448
7448
|
* @since 1.0.0
|
|
7449
7449
|
* @category layer
|
|
@@ -7509,7 +7509,7 @@ const layer$3 = /* @__PURE__ */ scoped$1(Terminal, /*#__PURE__*/ (/* @__PURE__ *
|
|
|
7509
7509
|
});
|
|
7510
7510
|
}))(defaultShouldQuit));
|
|
7511
7511
|
//#endregion
|
|
7512
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
7512
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/Transferable.js
|
|
7513
7513
|
/**
|
|
7514
7514
|
* @since 1.0.0
|
|
7515
7515
|
*/
|
|
@@ -7543,7 +7543,7 @@ const unsafeMakeCollector = () => {
|
|
|
7543
7543
|
});
|
|
7544
7544
|
};
|
|
7545
7545
|
//#endregion
|
|
7546
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
7546
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/WorkerError.js
|
|
7547
7547
|
/**
|
|
7548
7548
|
* @since 1.0.0
|
|
7549
7549
|
* @category type ids
|
|
@@ -7590,7 +7590,7 @@ var WorkerError = class extends TaggedError()("WorkerError", {
|
|
|
7590
7590
|
}
|
|
7591
7591
|
};
|
|
7592
7592
|
//#endregion
|
|
7593
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
7593
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/internal/worker.js
|
|
7594
7594
|
/** @internal */
|
|
7595
7595
|
const PlatformWorkerTypeId = /*#__PURE__*/ Symbol.for("@effect/platform/Worker/PlatformWorker");
|
|
7596
7596
|
/** @internal */
|
|
@@ -7733,7 +7733,7 @@ const makePlatform$1 = () => (options) => PlatformWorker$1.of({
|
|
|
7733
7733
|
}
|
|
7734
7734
|
});
|
|
7735
7735
|
//#endregion
|
|
7736
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node@0.107.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
7736
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node@0.107.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effect@3.2_22637108d931dc137f32f11c72691ffa/node_modules/@effect/platform-node/dist/esm/NodeContext.js
|
|
7737
7737
|
/**
|
|
7738
7738
|
* @since 1.0.0
|
|
7739
7739
|
*/
|
|
@@ -7792,7 +7792,7 @@ const layer$2 = /*#__PURE__*/ pipe(/*#__PURE__*/ mergeAll(layer$5, layer$9, laye
|
|
|
7792
7792
|
}
|
|
7793
7793
|
})))), /*#__PURE__*/ provideMerge(layer$7));
|
|
7794
7794
|
//#endregion
|
|
7795
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
7795
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/Cookies.js
|
|
7796
7796
|
/**
|
|
7797
7797
|
* @since 1.0.0
|
|
7798
7798
|
*/
|
|
@@ -7974,7 +7974,7 @@ const tryDecodeURIComponent = (str) => {
|
|
|
7974
7974
|
}
|
|
7975
7975
|
};
|
|
7976
7976
|
//#endregion
|
|
7977
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
7977
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/Headers.js
|
|
7978
7978
|
/**
|
|
7979
7979
|
* @since 1.0.0
|
|
7980
7980
|
*/
|
|
@@ -8076,7 +8076,7 @@ const currentRedactedNames = /*#__PURE__*/ globalValue("@effect/platform/Headers
|
|
|
8076
8076
|
"x-api-key"
|
|
8077
8077
|
]));
|
|
8078
8078
|
//#endregion
|
|
8079
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
8079
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/HttpClientError.js
|
|
8080
8080
|
/**
|
|
8081
8081
|
* @since 1.0.0
|
|
8082
8082
|
* @category type id
|
|
@@ -8108,7 +8108,7 @@ var ResponseError = class extends TypeIdError(TypeId$6, "ResponseError") {
|
|
|
8108
8108
|
}
|
|
8109
8109
|
};
|
|
8110
8110
|
//#endregion
|
|
8111
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
8111
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/UrlParams.js
|
|
8112
8112
|
/**
|
|
8113
8113
|
* @since 1.0.0
|
|
8114
8114
|
*/
|
|
@@ -8176,7 +8176,7 @@ const baseUrl = () => {
|
|
|
8176
8176
|
if ("location" in globalThis && globalThis.location !== void 0 && globalThis.location.origin !== void 0 && globalThis.location.pathname !== void 0) return location.origin + location.pathname;
|
|
8177
8177
|
};
|
|
8178
8178
|
//#endregion
|
|
8179
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
8179
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/HttpIncomingMessage.js
|
|
8180
8180
|
/**
|
|
8181
8181
|
* @since 1.0.0
|
|
8182
8182
|
*/
|
|
@@ -8211,7 +8211,7 @@ const inspect = (self, that) => {
|
|
|
8211
8211
|
return obj;
|
|
8212
8212
|
};
|
|
8213
8213
|
//#endregion
|
|
8214
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
8214
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/HttpTraceContext.js
|
|
8215
8215
|
/**
|
|
8216
8216
|
* @since 1.0.0
|
|
8217
8217
|
* @category encoding
|
|
@@ -8221,7 +8221,7 @@ const toHeaders = (span) => unsafeFromRecord({
|
|
|
8221
8221
|
traceparent: `00-${span.traceId}-${span.spanId}-${span.sampled ? "01" : "00"}`
|
|
8222
8222
|
});
|
|
8223
8223
|
//#endregion
|
|
8224
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
8224
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/internal/httpBody.js
|
|
8225
8225
|
/** @internal */
|
|
8226
8226
|
const TypeId$4 = /*#__PURE__*/ Symbol.for("@effect/platform/HttpBody");
|
|
8227
8227
|
/** @internal */
|
|
@@ -8310,7 +8310,7 @@ var FormDataImpl = class extends BodyBase {
|
|
|
8310
8310
|
/** @internal */
|
|
8311
8311
|
const formData = (body) => new FormDataImpl(body);
|
|
8312
8312
|
//#endregion
|
|
8313
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
8313
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/internal/httpClientRequest.js
|
|
8314
8314
|
/** @internal */
|
|
8315
8315
|
const TypeId$3 = /*#__PURE__*/ Symbol.for("@effect/platform/HttpClientRequest");
|
|
8316
8316
|
const Proto = {
|
|
@@ -8417,11 +8417,11 @@ const bodyJson$1 = /*#__PURE__*/ dual(2, (self, body) => map$6(json(body), (body
|
|
|
8417
8417
|
/** @internal */
|
|
8418
8418
|
const bodyFormData$1 = /*#__PURE__*/ dual(2, (self, body) => setBody(self, formData(body)));
|
|
8419
8419
|
//#endregion
|
|
8420
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
8420
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/internal/httpClientResponse.js
|
|
8421
8421
|
/** @internal */
|
|
8422
8422
|
const TypeId$2 = /*#__PURE__*/ Symbol.for("@effect/platform/HttpClientResponse");
|
|
8423
8423
|
//#endregion
|
|
8424
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
8424
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/internal/httpClient.js
|
|
8425
8425
|
const ATTR_HTTP_REQUEST_HEADER = (key) => `http.request.header.${key}`;
|
|
8426
8426
|
const ATTR_HTTP_REQUEST_METHOD = "http.request.method";
|
|
8427
8427
|
const ATTR_HTTP_RESPONSE_HEADER = (key) => `http.response.header.${key}`;
|
|
@@ -8639,7 +8639,7 @@ const transformResponse = /*#__PURE__*/ dual(2, (self, f) => {
|
|
|
8639
8639
|
/** @internal */
|
|
8640
8640
|
const layerMergedContext$1 = (effect$1) => effect(tag, flatMap$1(context(), (context) => map$6(effect$1, (client) => transformResponse(client, mapInputContext((input) => merge$3(context, input))))));
|
|
8641
8641
|
//#endregion
|
|
8642
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
8642
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/HttpClient.js
|
|
8643
8643
|
/**
|
|
8644
8644
|
* @since 1.0.0
|
|
8645
8645
|
* @category tags
|
|
@@ -8655,21 +8655,21 @@ const make$9 = make$10;
|
|
|
8655
8655
|
*/
|
|
8656
8656
|
const layerMergedContext = layerMergedContext$1;
|
|
8657
8657
|
//#endregion
|
|
8658
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
8658
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/HttpClientResponse.js
|
|
8659
8659
|
/**
|
|
8660
8660
|
* @since 1.0.0
|
|
8661
8661
|
* @category type ids
|
|
8662
8662
|
*/
|
|
8663
8663
|
const TypeId = TypeId$2;
|
|
8664
8664
|
//#endregion
|
|
8665
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
8665
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effe_6f676239777f0c28233e14563d81e402/node_modules/@effect/platform-node-shared/dist/esm/NodeSink.js
|
|
8666
8666
|
/**
|
|
8667
8667
|
* @category constructor
|
|
8668
8668
|
* @since 1.0.0
|
|
8669
8669
|
*/
|
|
8670
8670
|
const fromWritable = fromWritable$1;
|
|
8671
8671
|
//#endregion
|
|
8672
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
8672
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.60.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effe_6f676239777f0c28233e14563d81e402/node_modules/@effect/platform-node-shared/dist/esm/NodeStream.js
|
|
8673
8673
|
/**
|
|
8674
8674
|
* @category constructors
|
|
8675
8675
|
* @since 1.0.0
|
|
@@ -8686,7 +8686,7 @@ const toString$1 = toString$2;
|
|
|
8686
8686
|
*/
|
|
8687
8687
|
const toUint8Array = toUint8Array$1;
|
|
8688
8688
|
//#endregion
|
|
8689
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node@0.107.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
8689
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node@0.107.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effect@3.2_22637108d931dc137f32f11c72691ffa/node_modules/@effect/platform-node/dist/esm/internal/httpIncomingMessage.js
|
|
8690
8690
|
/** @internal */
|
|
8691
8691
|
var HttpIncomingMessageImpl = class extends Class {
|
|
8692
8692
|
source;
|
|
@@ -8744,7 +8744,7 @@ var HttpIncomingMessageImpl = class extends Class {
|
|
|
8744
8744
|
}
|
|
8745
8745
|
};
|
|
8746
8746
|
//#endregion
|
|
8747
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node@0.107.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
8747
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node@0.107.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effect@3.2_22637108d931dc137f32f11c72691ffa/node_modules/@effect/platform-node/dist/esm/internal/httpClient.js
|
|
8748
8748
|
/** @internal */
|
|
8749
8749
|
const HttpAgentTypeId = /*#__PURE__*/ Symbol.for("@effect/platform-node/Http/NodeClient/HttpAgent");
|
|
8750
8750
|
/** @internal */
|
|
@@ -8892,11 +8892,11 @@ var ClientResponseImpl$1 = class extends HttpIncomingMessageImpl {
|
|
|
8892
8892
|
/** @internal */
|
|
8893
8893
|
const layer$1 = /*#__PURE__*/ provide(/* @__PURE__ */ layerMergedContext(/* @__PURE__ */ map$6(HttpAgent, fromAgent)), agentLayer);
|
|
8894
8894
|
//#endregion
|
|
8895
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node@0.107.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
8895
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node@0.107.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effect@3.2_22637108d931dc137f32f11c72691ffa/node_modules/@effect/platform-node/dist/esm/internal/httpClientUndici.js
|
|
8896
8896
|
/** @internal */
|
|
8897
8897
|
const undiciOptionsTagKey = "@effect/platform-node/NodeHttpClient/undiciOptions";
|
|
8898
8898
|
//#endregion
|
|
8899
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node@0.107.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
8899
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node@0.107.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effect@3.2_22637108d931dc137f32f11c72691ffa/node_modules/@effect/platform-node/dist/esm/NodeHttpClient.js
|
|
8900
8900
|
/**
|
|
8901
8901
|
* @since 1.0.0
|
|
8902
8902
|
* @category layers
|
|
@@ -8904,7 +8904,7 @@ const undiciOptionsTagKey = "@effect/platform-node/NodeHttpClient/undiciOptions"
|
|
|
8904
8904
|
const layer = layer$1;
|
|
8905
8905
|
Tag$2(undiciOptionsTagKey)();
|
|
8906
8906
|
//#endregion
|
|
8907
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
8907
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/Runtime.js
|
|
8908
8908
|
/**
|
|
8909
8909
|
* @since 1.0.0
|
|
8910
8910
|
*/
|
|
@@ -8938,7 +8938,7 @@ const makeRunMain = (f) => dual((args) => isEffect(args[0]), (effect, options) =
|
|
|
8938
8938
|
});
|
|
8939
8939
|
});
|
|
8940
8940
|
//#endregion
|
|
8941
|
-
//#region ../../node_modules/.pnpm/@effect+platform-node@0.107.0_@effect+cluster@0.58.2_@effect+platform@0.96.
|
|
8941
|
+
//#region ../../node_modules/.pnpm/@effect+platform-node@0.107.0_@effect+cluster@0.58.2_@effect+platform@0.96.2_effect@3.2_22637108d931dc137f32f11c72691ffa/node_modules/@effect/platform-node/dist/esm/NodeRuntime.js
|
|
8942
8942
|
/**
|
|
8943
8943
|
* @since 1.0.0
|
|
8944
8944
|
*/
|
|
@@ -9133,7 +9133,7 @@ const toErrorEnvelope = (err) => {
|
|
|
9133
9133
|
return envelope;
|
|
9134
9134
|
};
|
|
9135
9135
|
//#endregion
|
|
9136
|
-
//#region ../../node_modules/.pnpm/@effect+platform@0.96.
|
|
9136
|
+
//#region ../../node_modules/.pnpm/@effect+platform@0.96.2_effect@3.21.4/node_modules/@effect/platform/dist/esm/HttpClientRequest.js
|
|
9137
9137
|
/**
|
|
9138
9138
|
* @since 1.0.0
|
|
9139
9139
|
* @category constructors
|
|
@@ -10048,7 +10048,7 @@ function parseBody(res) {
|
|
|
10048
10048
|
function decodeWithSchema(schema, body) {
|
|
10049
10049
|
return tryPromise({
|
|
10050
10050
|
try: async () => {
|
|
10051
|
-
const { Schema: SchemaMod } = await import("./esm-
|
|
10051
|
+
const { Schema: SchemaMod } = await import("./esm-BumPuCXw.mjs");
|
|
10052
10052
|
return SchemaMod.decodeUnknownPromise(schema)(body);
|
|
10053
10053
|
},
|
|
10054
10054
|
catch: (err) => new ServerError({
|
|
@@ -11605,18 +11605,23 @@ var UnknownEditorNodeError = class extends EditorProjectionError {
|
|
|
11605
11605
|
}
|
|
11606
11606
|
};
|
|
11607
11607
|
//#endregion
|
|
11608
|
-
//#region ../../node_modules/.pnpm/nanoid@5.1.
|
|
11608
|
+
//#region ../../node_modules/.pnpm/nanoid@5.1.16/node_modules/nanoid/index.js
|
|
11609
11609
|
const POOL_SIZE_MULTIPLIER = 128;
|
|
11610
11610
|
let pool, poolOffset;
|
|
11611
11611
|
function fillPool(bytes) {
|
|
11612
|
-
if (bytes < 0
|
|
11613
|
-
|
|
11614
|
-
pool
|
|
11615
|
-
|
|
11616
|
-
|
|
11617
|
-
|
|
11618
|
-
|
|
11619
|
-
|
|
11612
|
+
if (bytes < 0) throw new RangeError("Wrong ID size");
|
|
11613
|
+
try {
|
|
11614
|
+
if (!pool || pool.length < bytes) {
|
|
11615
|
+
pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER);
|
|
11616
|
+
webcrypto.getRandomValues(pool);
|
|
11617
|
+
poolOffset = 0;
|
|
11618
|
+
} else if (poolOffset + bytes > pool.length) {
|
|
11619
|
+
webcrypto.getRandomValues(pool);
|
|
11620
|
+
poolOffset = 0;
|
|
11621
|
+
}
|
|
11622
|
+
} catch (e) {
|
|
11623
|
+
pool = void 0;
|
|
11624
|
+
throw e;
|
|
11620
11625
|
}
|
|
11621
11626
|
poolOffset += bytes;
|
|
11622
11627
|
}
|
|
@@ -11659,7 +11664,7 @@ function customAlphabet(alphabet, size = 21) {
|
|
|
11659
11664
|
return customRandom(alphabet, size, random);
|
|
11660
11665
|
}
|
|
11661
11666
|
//#endregion
|
|
11662
|
-
//#region ../../node_modules/.pnpm/@haklex+rich-litexml@0.
|
|
11667
|
+
//#region ../../node_modules/.pnpm/@haklex+rich-litexml@0.29.0_typescript@6.0.3/node_modules/@haklex/rich-litexml/dist/src-B0q3dIvF.js
|
|
11663
11668
|
var impl = null;
|
|
11664
11669
|
function registerParseHTML(fn) {
|
|
11665
11670
|
impl = fn;
|
|
@@ -11814,7 +11819,7 @@ function numAttr(el, name) {
|
|
|
11814
11819
|
const v = el.getAttribute(name);
|
|
11815
11820
|
return v !== null ? Number(v) : void 0;
|
|
11816
11821
|
}
|
|
11817
|
-
var IMAGE_LAYOUTS = new Set([
|
|
11822
|
+
var IMAGE_LAYOUTS = /* @__PURE__ */ new Set([
|
|
11818
11823
|
"align-left",
|
|
11819
11824
|
"align-right",
|
|
11820
11825
|
"float-left",
|
|
@@ -12734,7 +12739,7 @@ function getFormatBit(tagName) {
|
|
|
12734
12739
|
* end of document) is found. We expand those into explicit `<tag …></tag>`
|
|
12735
12740
|
* before handing the string to linkedom / DOMParser.
|
|
12736
12741
|
*/
|
|
12737
|
-
var HTML_VOID_ELEMENTS = new Set([
|
|
12742
|
+
var HTML_VOID_ELEMENTS = /* @__PURE__ */ new Set([
|
|
12738
12743
|
"area",
|
|
12739
12744
|
"base",
|
|
12740
12745
|
"br",
|
|
@@ -12800,7 +12805,7 @@ function deserializeFromXml(xml, registry) {
|
|
|
12800
12805
|
} };
|
|
12801
12806
|
}
|
|
12802
12807
|
/** Structural containers whose whitespace-only text nodes are layout artifacts, not content */
|
|
12803
|
-
var BLOCK_TAGS = new Set([
|
|
12808
|
+
var BLOCK_TAGS = /* @__PURE__ */ new Set([
|
|
12804
12809
|
"doc",
|
|
12805
12810
|
"fragment",
|
|
12806
12811
|
"root",
|
|
@@ -12977,7 +12982,7 @@ function renderInline(el) {
|
|
|
12977
12982
|
return `<${el.tag}${attrs}>${inner}</${el.tag}>`;
|
|
12978
12983
|
}
|
|
12979
12984
|
function isInlineElement(el) {
|
|
12980
|
-
return new Set([
|
|
12985
|
+
return (/* @__PURE__ */ new Set([
|
|
12981
12986
|
"b",
|
|
12982
12987
|
"i",
|
|
12983
12988
|
"u",
|
|
@@ -12997,7 +13002,7 @@ function isInlineElement(el) {
|
|
|
12997
13002
|
"math",
|
|
12998
13003
|
"footnote",
|
|
12999
13004
|
"comment"
|
|
13000
|
-
]).has(el.tag);
|
|
13005
|
+
])).has(el.tag);
|
|
13001
13006
|
}
|
|
13002
13007
|
function pad(indent) {
|
|
13003
13008
|
return " ".repeat(indent);
|
|
@@ -19497,12 +19502,12 @@ var CSSStyleDeclaration = class extends Map {
|
|
|
19497
19502
|
const self = this[PRIVATE];
|
|
19498
19503
|
updateKeys(self);
|
|
19499
19504
|
const cssText = [];
|
|
19500
|
-
self.forEach(push, cssText);
|
|
19505
|
+
self.forEach(push$1, cssText);
|
|
19501
19506
|
return cssText.join(";");
|
|
19502
19507
|
}
|
|
19503
19508
|
};
|
|
19504
19509
|
const { prototype } = CSSStyleDeclaration;
|
|
19505
|
-
function push(value, key) {
|
|
19510
|
+
function push$1(value, key) {
|
|
19506
19511
|
if (key !== PRIVATE) this.push(`${key}:${value}`);
|
|
19507
19512
|
}
|
|
19508
19513
|
//#endregion
|
|
@@ -24054,7 +24059,7 @@ function Document() {
|
|
|
24054
24059
|
}
|
|
24055
24060
|
setPrototypeOf(Document, Document$1).prototype = Document$1.prototype;
|
|
24056
24061
|
//#endregion
|
|
24057
|
-
//#region ../../node_modules/.pnpm/@haklex+rich-litexml@0.
|
|
24062
|
+
//#region ../../node_modules/.pnpm/@haklex+rich-litexml@0.29.0_typescript@6.0.3/node_modules/@haklex/rich-litexml/dist/node.mjs
|
|
24058
24063
|
registerParseHTML((html) => parseHTML(html).document);
|
|
24059
24064
|
//#endregion
|
|
24060
24065
|
//#region ../editor/src/core/litexml.ts
|
|
@@ -24090,7 +24095,7 @@ function stripMxLitexmlDocWrapper(xml) {
|
|
|
24090
24095
|
return trimmed;
|
|
24091
24096
|
}
|
|
24092
24097
|
//#endregion
|
|
24093
|
-
//#region ../../node_modules/.pnpm/@lexical+table@0.
|
|
24098
|
+
//#region ../../node_modules/.pnpm/@lexical+table@0.46.0_typescript@6.0.3/node_modules/@lexical/table/dist/LexicalTable.node.mjs
|
|
24094
24099
|
/**
|
|
24095
24100
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
24096
24101
|
*
|
|
@@ -24098,7 +24103,7 @@ function stripMxLitexmlDocWrapper(xml) {
|
|
|
24098
24103
|
* LICENSE file in the root directory of this source tree.
|
|
24099
24104
|
*
|
|
24100
24105
|
*/
|
|
24101
|
-
const mod$2 = await (process.env.NODE_ENV !== "production" ? import("./LexicalTable.dev-
|
|
24106
|
+
const mod$2 = await (process.env.NODE_ENV !== "production" ? import("./LexicalTable.dev-DiR_4rdI.mjs") : import("./LexicalTable.prod-Cbc5EasT.mjs"));
|
|
24102
24107
|
mod$2.$computeTableMap;
|
|
24103
24108
|
mod$2.$computeTableMapSkipCellCheck;
|
|
24104
24109
|
mod$2.$createTableCellNode;
|
|
@@ -24159,7 +24164,7 @@ mod$2.registerTablePlugin;
|
|
|
24159
24164
|
mod$2.registerTableSelectionObserver;
|
|
24160
24165
|
mod$2.setScrollableTablesActive;
|
|
24161
24166
|
//#endregion
|
|
24162
|
-
//#region ../../node_modules/.pnpm/@lexical+markdown@0.
|
|
24167
|
+
//#region ../../node_modules/.pnpm/@lexical+markdown@0.46.0_typescript@6.0.3/node_modules/@lexical/markdown/dist/LexicalMarkdown.node.mjs
|
|
24163
24168
|
/**
|
|
24164
24169
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
24165
24170
|
*
|
|
@@ -24167,7 +24172,7 @@ mod$2.setScrollableTablesActive;
|
|
|
24167
24172
|
* LICENSE file in the root directory of this source tree.
|
|
24168
24173
|
*
|
|
24169
24174
|
*/
|
|
24170
|
-
const mod$1 = await (process.env.NODE_ENV !== "production" ? import("./LexicalMarkdown.dev-
|
|
24175
|
+
const mod$1 = await (process.env.NODE_ENV !== "production" ? import("./LexicalMarkdown.dev-0XURdo96.mjs") : import("./LexicalMarkdown.prod-qUsIQfJx.mjs"));
|
|
24171
24176
|
mod$1.$convertFromMarkdownString;
|
|
24172
24177
|
mod$1.$convertSelectionToMarkdownString;
|
|
24173
24178
|
const $convertToMarkdownString = mod$1.$convertToMarkdownString;
|
|
@@ -24192,9 +24197,10 @@ mod$1.TEXT_FORMAT_TRANSFORMERS;
|
|
|
24192
24197
|
mod$1.TEXT_MATCH_TRANSFORMERS;
|
|
24193
24198
|
const TRANSFORMERS = mod$1.TRANSFORMERS;
|
|
24194
24199
|
mod$1.UNORDERED_LIST;
|
|
24200
|
+
mod$1.isTableRowDivider;
|
|
24195
24201
|
mod$1.registerMarkdownShortcuts;
|
|
24196
24202
|
//#endregion
|
|
24197
|
-
//#region ../../node_modules/.pnpm/@haklex+rich-headless@0.
|
|
24203
|
+
//#region ../../node_modules/.pnpm/@haklex+rich-headless@0.29.1_lexical@0.46.0_typescript@6.0.3__typescript@6.0.3/node_modules/@haklex/rich-headless/dist/transformers.mjs
|
|
24198
24204
|
/**
|
|
24199
24205
|
* Headless Markdown transformers — export-only (Lexical → Markdown).
|
|
24200
24206
|
* Import stubs are no-ops; used only for $convertToMarkdownString.
|
|
@@ -24621,7 +24627,7 @@ function $toMarkdown() {
|
|
|
24621
24627
|
return $convertToMarkdownString(allHeadlessTransformers);
|
|
24622
24628
|
}
|
|
24623
24629
|
//#endregion
|
|
24624
|
-
//#region ../../node_modules/.pnpm/@haklex+rich-headless@0.
|
|
24630
|
+
//#region ../../node_modules/.pnpm/@haklex+rich-headless@0.29.1_lexical@0.46.0_typescript@6.0.3__typescript@6.0.3/node_modules/@haklex/rich-headless/dist/index.mjs
|
|
24625
24631
|
var INTRINSIC_TYPES = [
|
|
24626
24632
|
"root",
|
|
24627
24633
|
"paragraph",
|
|
@@ -24775,7 +24781,8 @@ var RubyNode = class RubyNode extends ElementNode {
|
|
|
24775
24781
|
super(key);
|
|
24776
24782
|
this.__reading = "";
|
|
24777
24783
|
}
|
|
24778
|
-
static importJSON(
|
|
24784
|
+
static importJSON(_json) {
|
|
24785
|
+
const json = _json;
|
|
24779
24786
|
const node = new RubyNode();
|
|
24780
24787
|
node.__reading = json.reading ?? "";
|
|
24781
24788
|
return node;
|
|
@@ -24813,7 +24820,8 @@ var DetailsNode = class DetailsNode extends ElementNode {
|
|
|
24813
24820
|
this.__summary = "";
|
|
24814
24821
|
this.__open = false;
|
|
24815
24822
|
}
|
|
24816
|
-
static importJSON(
|
|
24823
|
+
static importJSON(_json) {
|
|
24824
|
+
const json = _json;
|
|
24817
24825
|
const node = new DetailsNode();
|
|
24818
24826
|
node.__summary = json.summary ?? "";
|
|
24819
24827
|
node.__open = json.open ?? false;
|
|
@@ -24847,7 +24855,8 @@ var RichQuoteNode = class RichQuoteNode extends QuoteNode {
|
|
|
24847
24855
|
super(key);
|
|
24848
24856
|
this.__attribution = null;
|
|
24849
24857
|
}
|
|
24850
|
-
static importJSON(
|
|
24858
|
+
static importJSON(_json) {
|
|
24859
|
+
const json = _json;
|
|
24851
24860
|
const node = new RichQuoteNode();
|
|
24852
24861
|
node.__attribution = json.attribution ?? null;
|
|
24853
24862
|
return node;
|
|
@@ -24880,7 +24889,8 @@ function headlessDecorator(type, propKeys, defaults, inline = false) {
|
|
|
24880
24889
|
for (const k of propKeys) n[`__${k}`] = node[`__${k}`];
|
|
24881
24890
|
return n;
|
|
24882
24891
|
}
|
|
24883
|
-
static importJSON(
|
|
24892
|
+
static importJSON(_json) {
|
|
24893
|
+
const json = _json;
|
|
24884
24894
|
const node = new Node();
|
|
24885
24895
|
for (const k of propKeys) node[`__${k}`] = json[k] ?? defaults[k];
|
|
24886
24896
|
return node;
|
|
@@ -25053,7 +25063,8 @@ var customHeadlessNodes = [
|
|
|
25053
25063
|
n.__contentState = node.__contentState;
|
|
25054
25064
|
return n;
|
|
25055
25065
|
}
|
|
25056
|
-
static importJSON(
|
|
25066
|
+
static importJSON(_json) {
|
|
25067
|
+
const json = _json;
|
|
25057
25068
|
const node = new BannerNode();
|
|
25058
25069
|
node.__bannerType = json.bannerType ?? "note";
|
|
25059
25070
|
node.__contentState = json.content ?? null;
|
|
@@ -25076,6 +25087,9 @@ var customHeadlessNodes = [
|
|
|
25076
25087
|
decorate() {
|
|
25077
25088
|
return null;
|
|
25078
25089
|
}
|
|
25090
|
+
isInline() {
|
|
25091
|
+
return false;
|
|
25092
|
+
}
|
|
25079
25093
|
getTextContent() {
|
|
25080
25094
|
return extractText(this.__contentState);
|
|
25081
25095
|
}
|
|
@@ -25095,7 +25109,8 @@ var customHeadlessNodes = [
|
|
|
25095
25109
|
n.__contentState = node.__contentState;
|
|
25096
25110
|
return n;
|
|
25097
25111
|
}
|
|
25098
|
-
static importJSON(
|
|
25112
|
+
static importJSON(_json) {
|
|
25113
|
+
const json = _json;
|
|
25099
25114
|
const node = new AlertQuoteNode();
|
|
25100
25115
|
node.__alertType = json.alertType ?? "note";
|
|
25101
25116
|
node.__contentState = json.content ?? null;
|
|
@@ -25118,6 +25133,9 @@ var customHeadlessNodes = [
|
|
|
25118
25133
|
decorate() {
|
|
25119
25134
|
return null;
|
|
25120
25135
|
}
|
|
25136
|
+
isInline() {
|
|
25137
|
+
return false;
|
|
25138
|
+
}
|
|
25121
25139
|
getTextContent() {
|
|
25122
25140
|
return extractText(this.__contentState);
|
|
25123
25141
|
}
|
|
@@ -25135,7 +25153,8 @@ var customHeadlessNodes = [
|
|
|
25135
25153
|
n.__contentState = node.__contentState;
|
|
25136
25154
|
return n;
|
|
25137
25155
|
}
|
|
25138
|
-
static importJSON(
|
|
25156
|
+
static importJSON(_json) {
|
|
25157
|
+
const json = _json;
|
|
25139
25158
|
const node = new NestedDocNode();
|
|
25140
25159
|
node.__contentState = json.content ?? null;
|
|
25141
25160
|
return node;
|
|
@@ -25156,6 +25175,9 @@ var customHeadlessNodes = [
|
|
|
25156
25175
|
decorate() {
|
|
25157
25176
|
return null;
|
|
25158
25177
|
}
|
|
25178
|
+
isInline() {
|
|
25179
|
+
return false;
|
|
25180
|
+
}
|
|
25159
25181
|
getTextContent() {
|
|
25160
25182
|
return extractText(this.__contentState);
|
|
25161
25183
|
}
|
|
@@ -25177,7 +25199,8 @@ var customHeadlessNodes = [
|
|
|
25177
25199
|
n.__cells = node.__cells;
|
|
25178
25200
|
return n;
|
|
25179
25201
|
}
|
|
25180
|
-
static importJSON(
|
|
25202
|
+
static importJSON(_json) {
|
|
25203
|
+
const json = _json;
|
|
25181
25204
|
const node = new GridContainerNode();
|
|
25182
25205
|
node.__cols = json.cols ?? 2;
|
|
25183
25206
|
const rawGap = json.gap;
|
|
@@ -25203,6 +25226,9 @@ var customHeadlessNodes = [
|
|
|
25203
25226
|
decorate() {
|
|
25204
25227
|
return null;
|
|
25205
25228
|
}
|
|
25229
|
+
isInline() {
|
|
25230
|
+
return false;
|
|
25231
|
+
}
|
|
25206
25232
|
getTextContent() {
|
|
25207
25233
|
return this.__cells.map((cell) => extractText(cell)).join("\n");
|
|
25208
25234
|
}
|
|
@@ -25211,7 +25237,7 @@ var customHeadlessNodes = [
|
|
|
25211
25237
|
ChatNode
|
|
25212
25238
|
];
|
|
25213
25239
|
var allHeadlessNodes = [...builtinNodes, ...customHeadlessNodes];
|
|
25214
|
-
const createHeadlessEditor = (await (process.env.NODE_ENV !== "production" ? import("./LexicalHeadless.dev-
|
|
25240
|
+
const createHeadlessEditor = (await (process.env.NODE_ENV !== "production" ? import("./LexicalHeadless.dev-yVDOBd64.mjs") : import("./LexicalHeadless.prod-B8qauuEA.mjs"))).createHeadlessEditor;
|
|
25215
25241
|
//#endregion
|
|
25216
25242
|
//#region ../editor/src/core/nodes/litexml.ts
|
|
25217
25243
|
const XML_ESCAPE_MAP = {
|
|
@@ -25252,10 +25278,19 @@ const mapBlockProjection = {
|
|
|
25252
25278
|
}
|
|
25253
25279
|
};
|
|
25254
25280
|
//#endregion
|
|
25281
|
+
//#region ../editor/src/core/nodes/stock.ts
|
|
25282
|
+
const stockBlockProjection = {
|
|
25283
|
+
type: "stock",
|
|
25284
|
+
toMarkdown(node) {
|
|
25285
|
+
return serializeLiteXmlFallbackNode(node);
|
|
25286
|
+
}
|
|
25287
|
+
};
|
|
25288
|
+
//#endregion
|
|
25255
25289
|
//#region ../editor/src/core/nodes/registry.ts
|
|
25256
25290
|
const mxBlockRegistry = {
|
|
25257
25291
|
[mapBlockProjection.type]: mapBlockProjection,
|
|
25258
|
-
[afilmoryBlockProjection.type]: afilmoryBlockProjection
|
|
25292
|
+
[afilmoryBlockProjection.type]: afilmoryBlockProjection,
|
|
25293
|
+
[stockBlockProjection.type]: stockBlockProjection
|
|
25259
25294
|
};
|
|
25260
25295
|
//#endregion
|
|
25261
25296
|
//#region ../editor/src/core/markdown.ts
|
|
@@ -25759,7 +25794,7 @@ const inlineRendererEntries = [
|
|
|
25759
25794
|
["ruby", rubyRenderer]
|
|
25760
25795
|
];
|
|
25761
25796
|
//#endregion
|
|
25762
|
-
//#region ../../node_modules/.pnpm/fast-xml-parser@5.
|
|
25797
|
+
//#region ../../node_modules/.pnpm/fast-xml-parser@5.9.3/node_modules/fast-xml-parser/src/util.js
|
|
25763
25798
|
const regexName = /* @__PURE__ */ new RegExp("^[:A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$");
|
|
25764
25799
|
function getAllMatches(string, regex) {
|
|
25765
25800
|
const matches = [];
|
|
@@ -25799,7 +25834,7 @@ const criticalProperties = [
|
|
|
25799
25834
|
"prototype"
|
|
25800
25835
|
];
|
|
25801
25836
|
//#endregion
|
|
25802
|
-
//#region ../../node_modules/.pnpm/@nodable+entities@2.
|
|
25837
|
+
//#region ../../node_modules/.pnpm/@nodable+entities@2.2.0/node_modules/@nodable/entities/src/entities.js
|
|
25803
25838
|
/**
|
|
25804
25839
|
* Basic Latin & Special Characters
|
|
25805
25840
|
* @type {Record<string, string>}
|
|
@@ -26933,7 +26968,26 @@ const COMMON_HTML = {
|
|
|
26933
26968
|
frac34: "¾"
|
|
26934
26969
|
};
|
|
26935
26970
|
//#endregion
|
|
26936
|
-
//#region ../../node_modules/.pnpm/@nodable+entities@2.
|
|
26971
|
+
//#region ../../node_modules/.pnpm/@nodable+entities@2.2.0/node_modules/@nodable/entities/src/EntityDecoder.js
|
|
26972
|
+
/**
|
|
26973
|
+
* Action constants for `onExternalEntity` and `onInputEntity` hooks.
|
|
26974
|
+
*
|
|
26975
|
+
* Use these instead of raw strings to avoid typos:
|
|
26976
|
+
*
|
|
26977
|
+
* @example
|
|
26978
|
+
* import EntityDecoder, { ENTITY_ACTION } from './EntityDecoder.js';
|
|
26979
|
+
* const dec = new EntityDecoder({
|
|
26980
|
+
* onInputEntity: (name, value) => ENTITY_ACTION.BLOCK,
|
|
26981
|
+
* });
|
|
26982
|
+
*/
|
|
26983
|
+
const ENTITY_ACTION = Object.freeze({
|
|
26984
|
+
/** Resolve and expand the entity normally. */
|
|
26985
|
+
ALLOW: "allow",
|
|
26986
|
+
/** Silently skip this entity — it will not be registered. */
|
|
26987
|
+
BLOCK: "block",
|
|
26988
|
+
/** Throw an error, aborting entity registration entirely. */
|
|
26989
|
+
THROW: "throw"
|
|
26990
|
+
});
|
|
26937
26991
|
const SPECIAL_CHARS = /* @__PURE__ */ new Set("!?\\\\/[]$%{}^&*()<>|+");
|
|
26938
26992
|
/**
|
|
26939
26993
|
* Validate that an entity name contains no dangerous characters.
|
|
@@ -27072,6 +27126,14 @@ var EntityDecoder = class {
|
|
|
27072
27126
|
* the effective action is max(onNCR, rangeMinimum).
|
|
27073
27127
|
* @param {'remove'|'throw'} [options.ncr.nullNCR='remove']
|
|
27074
27128
|
* Action for U+0000 (null). 'allow' and 'leave' are clamped to 'remove' since null is never safe.
|
|
27129
|
+
* @param {((name: string, value: string) => 'allow'|'block'|'throw')|null} [options.onExternalEntity=null]
|
|
27130
|
+
* Hook called when an external entity is registered via `setExternalEntities()` or
|
|
27131
|
+
* `addExternalEntity()`. Return `ENTITY_ACTION.ALLOW` to accept the entity,
|
|
27132
|
+
* `ENTITY_ACTION.BLOCK` to silently skip it, or `ENTITY_ACTION.THROW` to abort with an error.
|
|
27133
|
+
* @param {((name: string, value: string) => 'allow'|'block'|'throw')|null} [options.onInputEntity=null]
|
|
27134
|
+
* Hook called when an input entity is registered via `addInputEntities()`. Return
|
|
27135
|
+
* `ENTITY_ACTION.ALLOW` to accept, `ENTITY_ACTION.BLOCK` to silently skip, or
|
|
27136
|
+
* `ENTITY_ACTION.THROW` to abort with an error.
|
|
27075
27137
|
*/
|
|
27076
27138
|
constructor(options = {}) {
|
|
27077
27139
|
this._limit = options.limit || {};
|
|
@@ -27095,34 +27157,79 @@ var EntityDecoder = class {
|
|
|
27095
27157
|
this._ncrXmlVersion = ncrCfg.xmlVersion;
|
|
27096
27158
|
this._ncrOnLevel = ncrCfg.onLevel;
|
|
27097
27159
|
this._ncrNullLevel = ncrCfg.nullLevel;
|
|
27160
|
+
/** @type {((name: string, value: string) => 'allow'|'block'|'throw')|null} */
|
|
27161
|
+
this._onExternalEntity = typeof options.onExternalEntity === "function" ? options.onExternalEntity : null;
|
|
27162
|
+
/** @type {((name: string, value: string) => 'allow'|'block'|'throw')|null} */
|
|
27163
|
+
this._onInputEntity = typeof options.onInputEntity === "function" ? options.onInputEntity : null;
|
|
27164
|
+
}
|
|
27165
|
+
/**
|
|
27166
|
+
* Invoke a registration hook for a single entity name/value pair.
|
|
27167
|
+
* Returns true when the entity should be accepted, false when it should be
|
|
27168
|
+
* silently skipped (BLOCK), and throws when the hook returns THROW.
|
|
27169
|
+
*
|
|
27170
|
+
* @param {((name: string, value: string) => 'allow'|'block'|'throw')|null} hook
|
|
27171
|
+
* @param {string} name
|
|
27172
|
+
* @param {string} value
|
|
27173
|
+
* @param {string} context — used in error messages ('external' | 'input')
|
|
27174
|
+
* @returns {boolean} true = accept, false = skip
|
|
27175
|
+
*/
|
|
27176
|
+
_applyRegistrationHook(hook, name, value, context) {
|
|
27177
|
+
if (!hook) return true;
|
|
27178
|
+
const action = hook(name, value);
|
|
27179
|
+
if (action === ENTITY_ACTION.BLOCK) return false;
|
|
27180
|
+
if (action === ENTITY_ACTION.THROW) throw new Error(`[EntityDecoder] Registration of ${context} entity "&${name};" was rejected by hook`);
|
|
27181
|
+
return true;
|
|
27098
27182
|
}
|
|
27099
27183
|
/**
|
|
27100
27184
|
* Replace the full set of persistent external entities.
|
|
27101
27185
|
* All keys are validated — throws on invalid characters.
|
|
27186
|
+
* If `onExternalEntity` is set, it is called once per entry; entries that
|
|
27187
|
+
* return `ENTITY_ACTION.BLOCK` are silently omitted, `ENTITY_ACTION.THROW`
|
|
27188
|
+
* aborts the whole call.
|
|
27102
27189
|
* @param {Record<string, string | { regex?: RegExp, val: string }>} map
|
|
27103
27190
|
*/
|
|
27104
27191
|
setExternalEntities(map) {
|
|
27105
27192
|
if (map) for (const key of Object.keys(map)) validateEntityName$1(key);
|
|
27106
|
-
this.
|
|
27193
|
+
if (!this._onExternalEntity) {
|
|
27194
|
+
this._externalMap = mergeEntityMaps(map);
|
|
27195
|
+
return;
|
|
27196
|
+
}
|
|
27197
|
+
const flat = mergeEntityMaps(map);
|
|
27198
|
+
const filtered = Object.create(null);
|
|
27199
|
+
for (const [name, value] of Object.entries(flat)) if (this._applyRegistrationHook(this._onExternalEntity, name, value, "external")) filtered[name] = value;
|
|
27200
|
+
this._externalMap = filtered;
|
|
27107
27201
|
}
|
|
27108
27202
|
/**
|
|
27109
27203
|
* Add a single persistent external entity.
|
|
27204
|
+
* If `onExternalEntity` is set it is called before the entity is stored;
|
|
27205
|
+
* `ENTITY_ACTION.BLOCK` silently skips storage, `ENTITY_ACTION.THROW` raises.
|
|
27110
27206
|
* @param {string} key
|
|
27111
27207
|
* @param {string} value
|
|
27112
27208
|
*/
|
|
27113
27209
|
addExternalEntity(key, value) {
|
|
27114
27210
|
validateEntityName$1(key);
|
|
27115
|
-
if (typeof value === "string" && value.indexOf("&") === -1)
|
|
27211
|
+
if (typeof value === "string" && value.indexOf("&") === -1) {
|
|
27212
|
+
if (this._applyRegistrationHook(this._onExternalEntity, key, value, "external")) this._externalMap[key] = value;
|
|
27213
|
+
}
|
|
27116
27214
|
}
|
|
27117
27215
|
/**
|
|
27118
27216
|
* Inject DOCTYPE entities for the current document.
|
|
27119
27217
|
* Also resets per-document expansion counters.
|
|
27218
|
+
* If `onInputEntity` is set it is called once per entry; entries returning
|
|
27219
|
+
* `ENTITY_ACTION.BLOCK` are silently omitted, `ENTITY_ACTION.THROW` aborts.
|
|
27120
27220
|
* @param {Record<string, string | { regx?: RegExp, regex?: RegExp, val: string }>} map
|
|
27121
27221
|
*/
|
|
27122
27222
|
addInputEntities(map) {
|
|
27123
27223
|
this._totalExpansions = 0;
|
|
27124
27224
|
this._expandedLength = 0;
|
|
27125
|
-
this.
|
|
27225
|
+
if (!this._onInputEntity) {
|
|
27226
|
+
this._inputMap = mergeEntityMaps(map);
|
|
27227
|
+
return;
|
|
27228
|
+
}
|
|
27229
|
+
const flat = mergeEntityMaps(map);
|
|
27230
|
+
const filtered = Object.create(null);
|
|
27231
|
+
for (const [name, value] of Object.entries(flat)) if (this._applyRegistrationHook(this._onInputEntity, name, value, "input")) filtered[name] = value;
|
|
27232
|
+
this._inputMap = filtered;
|
|
27126
27233
|
}
|
|
27127
27234
|
/**
|
|
27128
27235
|
* Wipe input/runtime entities and reset counters.
|
|
@@ -27326,7 +27433,7 @@ var EntityDecoder = class {
|
|
|
27326
27433
|
}
|
|
27327
27434
|
};
|
|
27328
27435
|
//#endregion
|
|
27329
|
-
//#region ../../node_modules/.pnpm/fast-xml-parser@5.
|
|
27436
|
+
//#region ../../node_modules/.pnpm/fast-xml-parser@5.9.3/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js
|
|
27330
27437
|
const defaultOnDangerousProperty = (name) => {
|
|
27331
27438
|
if (DANGEROUS_PROPERTY_NAMES.includes(name)) return "__" + name;
|
|
27332
27439
|
return name;
|
|
@@ -27346,7 +27453,8 @@ const defaultOptions$2 = {
|
|
|
27346
27453
|
numberParseOptions: {
|
|
27347
27454
|
hex: true,
|
|
27348
27455
|
leadingZeros: true,
|
|
27349
|
-
eNotation: true
|
|
27456
|
+
eNotation: true,
|
|
27457
|
+
unicode: false
|
|
27350
27458
|
},
|
|
27351
27459
|
tagValueProcessor: function(tagName, val) {
|
|
27352
27460
|
return val;
|
|
@@ -27452,7 +27560,7 @@ const buildOptions = function(options) {
|
|
|
27452
27560
|
return built;
|
|
27453
27561
|
};
|
|
27454
27562
|
//#endregion
|
|
27455
|
-
//#region ../../node_modules/.pnpm/fast-xml-parser@5.
|
|
27563
|
+
//#region ../../node_modules/.pnpm/fast-xml-parser@5.9.3/node_modules/fast-xml-parser/src/xmlparser/xmlNode.js
|
|
27456
27564
|
let METADATA_SYMBOL$1;
|
|
27457
27565
|
if (typeof Symbol !== "function") METADATA_SYMBOL$1 = "@@xmlMetadata";
|
|
27458
27566
|
else METADATA_SYMBOL$1 = Symbol("XML Node Metadata");
|
|
@@ -27515,7 +27623,7 @@ const getRegexes = (xmlVersion = "1.0") => xmlVersion === "1.1" ? regexes11 : re
|
|
|
27515
27623
|
*/
|
|
27516
27624
|
const qName = (str, { xmlVersion = "1.0" } = {}) => getRegexes(xmlVersion).qName.test(str);
|
|
27517
27625
|
//#endregion
|
|
27518
|
-
//#region ../../node_modules/.pnpm/fast-xml-parser@5.
|
|
27626
|
+
//#region ../../node_modules/.pnpm/fast-xml-parser@5.9.3/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js
|
|
27519
27627
|
var DocTypeReader = class {
|
|
27520
27628
|
constructor(options, xmlVersion) {
|
|
27521
27629
|
this.suppressValidationErr = !options;
|
|
@@ -27738,7 +27846,189 @@ function validateEntityName(name, xmlVersion) {
|
|
|
27738
27846
|
else throw new Error(`Invalid entity name ${name}`);
|
|
27739
27847
|
}
|
|
27740
27848
|
//#endregion
|
|
27741
|
-
//#region ../../node_modules/.pnpm/
|
|
27849
|
+
//#region ../../node_modules/.pnpm/anynum@1.0.1/node_modules/anynum/digitTable.js
|
|
27850
|
+
/**
|
|
27851
|
+
* Flat lookup table: maps Unicode code point → ASCII digit (0-9).
|
|
27852
|
+
* Only decimal digit characters (Unicode category Nd) are included.
|
|
27853
|
+
*
|
|
27854
|
+
* Strategy: Int32Array of size (maxCodePoint - minCodePoint + 1).
|
|
27855
|
+
* Value 0xFF means "not a digit". Value 0-9 is the ASCII digit value.
|
|
27856
|
+
* This gives O(1) lookup with no branching, no bisect, no loop.
|
|
27857
|
+
*
|
|
27858
|
+
* Memory: range is 0x0660 to 0x1FBF0 → ~129,936 entries × 1 byte = ~127 KB.
|
|
27859
|
+
* Acceptable for a one-time init; lookup is a single array index.
|
|
27860
|
+
*/
|
|
27861
|
+
const SCRIPT_ZEROS = [
|
|
27862
|
+
48,
|
|
27863
|
+
1632,
|
|
27864
|
+
1776,
|
|
27865
|
+
2406,
|
|
27866
|
+
2534,
|
|
27867
|
+
2662,
|
|
27868
|
+
2790,
|
|
27869
|
+
2918,
|
|
27870
|
+
3046,
|
|
27871
|
+
3174,
|
|
27872
|
+
3302,
|
|
27873
|
+
3430,
|
|
27874
|
+
3558,
|
|
27875
|
+
3664,
|
|
27876
|
+
3792,
|
|
27877
|
+
3872,
|
|
27878
|
+
4160,
|
|
27879
|
+
4240,
|
|
27880
|
+
6112,
|
|
27881
|
+
6160,
|
|
27882
|
+
6470,
|
|
27883
|
+
6608,
|
|
27884
|
+
6784,
|
|
27885
|
+
6800,
|
|
27886
|
+
6992,
|
|
27887
|
+
7088,
|
|
27888
|
+
7232,
|
|
27889
|
+
7248,
|
|
27890
|
+
65296,
|
|
27891
|
+
120782,
|
|
27892
|
+
120792,
|
|
27893
|
+
120802,
|
|
27894
|
+
120812,
|
|
27895
|
+
120822,
|
|
27896
|
+
66720,
|
|
27897
|
+
68912,
|
|
27898
|
+
69734,
|
|
27899
|
+
69872,
|
|
27900
|
+
69942,
|
|
27901
|
+
70096,
|
|
27902
|
+
70384,
|
|
27903
|
+
70736,
|
|
27904
|
+
70864,
|
|
27905
|
+
71248,
|
|
27906
|
+
71360,
|
|
27907
|
+
71472,
|
|
27908
|
+
71904,
|
|
27909
|
+
72016,
|
|
27910
|
+
72688,
|
|
27911
|
+
72784,
|
|
27912
|
+
73040,
|
|
27913
|
+
73120,
|
|
27914
|
+
73552,
|
|
27915
|
+
92768,
|
|
27916
|
+
92864,
|
|
27917
|
+
93008,
|
|
27918
|
+
123200,
|
|
27919
|
+
123632,
|
|
27920
|
+
124144,
|
|
27921
|
+
125264,
|
|
27922
|
+
130032
|
|
27923
|
+
];
|
|
27924
|
+
const HIGH_MAP = /* @__PURE__ */ new Map();
|
|
27925
|
+
const LOW_MAX = 65535;
|
|
27926
|
+
const TABLE_OFFSET = 1632;
|
|
27927
|
+
const TABLE = new Uint8Array(63904).fill(255);
|
|
27928
|
+
for (const zero of SCRIPT_ZEROS) for (let d = 0; d < 10; d++) {
|
|
27929
|
+
const cp = zero + d;
|
|
27930
|
+
if (cp <= LOW_MAX) TABLE[cp - TABLE_OFFSET] = d;
|
|
27931
|
+
else HIGH_MAP.set(cp, d);
|
|
27932
|
+
}
|
|
27933
|
+
//#endregion
|
|
27934
|
+
//#region ../../node_modules/.pnpm/anynum@1.0.1/node_modules/anynum/anynum.js
|
|
27935
|
+
const CHAR_0 = 48;
|
|
27936
|
+
const CHAR_9 = 57;
|
|
27937
|
+
const CHAR_MINUS = 45;
|
|
27938
|
+
const MINUS_SET = new Set([
|
|
27939
|
+
8722,
|
|
27940
|
+
65293,
|
|
27941
|
+
65123
|
|
27942
|
+
]);
|
|
27943
|
+
/**
|
|
27944
|
+
* Normalize all Unicode decimal digit characters in a string to ASCII (0-9),
|
|
27945
|
+
* and normalize Unicode minus variants to ASCII '-' (U+002D).
|
|
27946
|
+
*
|
|
27947
|
+
* Non-digit, non-minus characters are passed through unchanged.
|
|
27948
|
+
*
|
|
27949
|
+
* Performance design:
|
|
27950
|
+
* - Fast path: if the string has no convertible characters, return it unchanged
|
|
27951
|
+
* (zero allocation).
|
|
27952
|
+
* - BMP digits (0x0660..0xFFFF excl. surrogates): flat Uint8Array lookup (O(1)).
|
|
27953
|
+
* - Supplementary plane digits (> 0xFFFF, encoded as surrogate pairs): Map lookup.
|
|
27954
|
+
* - Minus variants: checked inline with a small fixed Set.
|
|
27955
|
+
*
|
|
27956
|
+
* @param {string} str
|
|
27957
|
+
* @returns {string}
|
|
27958
|
+
*/
|
|
27959
|
+
function anynum(str) {
|
|
27960
|
+
if (typeof str !== "string") return str;
|
|
27961
|
+
const len = str.length;
|
|
27962
|
+
if (len === 0) return str;
|
|
27963
|
+
let firstHit = -1;
|
|
27964
|
+
for (let i = 0; i < len; i++) {
|
|
27965
|
+
const cc = str.charCodeAt(i);
|
|
27966
|
+
if (cc >= CHAR_0 && cc <= CHAR_9 || cc === CHAR_MINUS) continue;
|
|
27967
|
+
if (cc < 1632) {
|
|
27968
|
+
if (MINUS_SET.has(cc)) {
|
|
27969
|
+
firstHit = i;
|
|
27970
|
+
break;
|
|
27971
|
+
}
|
|
27972
|
+
continue;
|
|
27973
|
+
}
|
|
27974
|
+
if (cc >= 55296 && cc <= 56319) {
|
|
27975
|
+
if (i + 1 < len) {
|
|
27976
|
+
const low = str.charCodeAt(i + 1);
|
|
27977
|
+
if (low >= 56320 && low <= 57343) {
|
|
27978
|
+
const cp = 65536 + (cc - 55296 << 10) + (low - 56320);
|
|
27979
|
+
if (HIGH_MAP.has(cp)) {
|
|
27980
|
+
firstHit = i;
|
|
27981
|
+
break;
|
|
27982
|
+
}
|
|
27983
|
+
}
|
|
27984
|
+
}
|
|
27985
|
+
continue;
|
|
27986
|
+
}
|
|
27987
|
+
if (TABLE[cc - 1632] !== 255 || MINUS_SET.has(cc)) {
|
|
27988
|
+
firstHit = i;
|
|
27989
|
+
break;
|
|
27990
|
+
}
|
|
27991
|
+
}
|
|
27992
|
+
if (firstHit === -1) return str;
|
|
27993
|
+
const chars = [];
|
|
27994
|
+
if (firstHit > 0) chars.push(str.slice(0, firstHit));
|
|
27995
|
+
for (let i = firstHit; i < len; i++) {
|
|
27996
|
+
const cc = str.charCodeAt(i);
|
|
27997
|
+
if (cc >= CHAR_0 && cc <= CHAR_9 || cc === CHAR_MINUS) {
|
|
27998
|
+
chars.push(str[i]);
|
|
27999
|
+
continue;
|
|
28000
|
+
}
|
|
28001
|
+
if (cc < 1632) {
|
|
28002
|
+
chars.push(MINUS_SET.has(cc) ? "-" : str[i]);
|
|
28003
|
+
continue;
|
|
28004
|
+
}
|
|
28005
|
+
if (cc >= 55296 && cc <= 56319) {
|
|
28006
|
+
if (i + 1 < len) {
|
|
28007
|
+
const low = str.charCodeAt(i + 1);
|
|
28008
|
+
if (low >= 56320 && low <= 57343) {
|
|
28009
|
+
const cp = 65536 + (cc - 55296 << 10) + (low - 56320);
|
|
28010
|
+
const d = HIGH_MAP.get(cp);
|
|
28011
|
+
if (d !== void 0) {
|
|
28012
|
+
chars.push(String.fromCharCode(d + 48));
|
|
28013
|
+
i++;
|
|
28014
|
+
continue;
|
|
28015
|
+
}
|
|
28016
|
+
}
|
|
28017
|
+
}
|
|
28018
|
+
chars.push(str[i]);
|
|
28019
|
+
continue;
|
|
28020
|
+
}
|
|
28021
|
+
if (MINUS_SET.has(cc)) {
|
|
28022
|
+
chars.push("-");
|
|
28023
|
+
continue;
|
|
28024
|
+
}
|
|
28025
|
+
const d = TABLE[cc - TABLE_OFFSET];
|
|
28026
|
+
chars.push(d !== 255 ? String.fromCharCode(d + 48) : str[i]);
|
|
28027
|
+
}
|
|
28028
|
+
return chars.join("");
|
|
28029
|
+
}
|
|
28030
|
+
//#endregion
|
|
28031
|
+
//#region ../../node_modules/.pnpm/strnum@2.4.1/node_modules/strnum/strnum.js
|
|
27742
28032
|
const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;
|
|
27743
28033
|
const binRegex = /^0b[01]+$/;
|
|
27744
28034
|
const octRegex = /^0o[0-7]+$/;
|
|
@@ -27750,7 +28040,8 @@ const consider = {
|
|
|
27750
28040
|
leadingZeros: true,
|
|
27751
28041
|
decimalPoint: ".",
|
|
27752
28042
|
eNotation: true,
|
|
27753
|
-
infinity: "original"
|
|
28043
|
+
infinity: "original",
|
|
28044
|
+
unicode: false
|
|
27754
28045
|
};
|
|
27755
28046
|
function toNumber(str, options = {}) {
|
|
27756
28047
|
options = Object.assign({}, consider, options);
|
|
@@ -27759,7 +28050,11 @@ function toNumber(str, options = {}) {
|
|
|
27759
28050
|
if (trimmedStr.length === 0) return str;
|
|
27760
28051
|
else if (options.skipLike !== void 0 && options.skipLike.test(trimmedStr)) return str;
|
|
27761
28052
|
else if (trimmedStr === "0") return 0;
|
|
27762
|
-
|
|
28053
|
+
if (options.unicode) {
|
|
28054
|
+
trimmedStr = anynum(trimmedStr);
|
|
28055
|
+
if (trimmedStr === "0") return 0;
|
|
28056
|
+
}
|
|
28057
|
+
if (options.hex && hexRegex.test(trimmedStr)) return parse_int(trimmedStr, 16);
|
|
27763
28058
|
else if (options.binary && binRegex.test(trimmedStr)) return parse_int(trimmedStr, 2);
|
|
27764
28059
|
else if (options.octal && octRegex.test(trimmedStr)) return parse_int(trimmedStr, 8);
|
|
27765
28060
|
else if (!isFinite(trimmedStr)) return handleInfinity(str, Number(trimmedStr), options);
|
|
@@ -27847,7 +28142,7 @@ function handleInfinity(str, num, options) {
|
|
|
27847
28142
|
}
|
|
27848
28143
|
}
|
|
27849
28144
|
//#endregion
|
|
27850
|
-
//#region ../../node_modules/.pnpm/fast-xml-parser@5.
|
|
28145
|
+
//#region ../../node_modules/.pnpm/fast-xml-parser@5.9.3/node_modules/fast-xml-parser/src/ignoreAttributes.js
|
|
27851
28146
|
function getIgnoreAttributesFn(ignoreAttributes) {
|
|
27852
28147
|
if (typeof ignoreAttributes === "function") return ignoreAttributes;
|
|
27853
28148
|
if (Array.isArray(ignoreAttributes)) return (attrName) => {
|
|
@@ -27859,7 +28154,7 @@ function getIgnoreAttributesFn(ignoreAttributes) {
|
|
|
27859
28154
|
return () => false;
|
|
27860
28155
|
}
|
|
27861
28156
|
//#endregion
|
|
27862
|
-
//#region ../../node_modules/.pnpm/path-expression-matcher@1.
|
|
28157
|
+
//#region ../../node_modules/.pnpm/path-expression-matcher@1.6.0/node_modules/path-expression-matcher/src/Expression.js
|
|
27863
28158
|
/**
|
|
27864
28159
|
* Expression - Parses and stores a tag pattern expression
|
|
27865
28160
|
*
|
|
@@ -28011,7 +28306,7 @@ var Expression = class {
|
|
|
28011
28306
|
}
|
|
28012
28307
|
};
|
|
28013
28308
|
//#endregion
|
|
28014
|
-
//#region ../../node_modules/.pnpm/path-expression-matcher@1.
|
|
28309
|
+
//#region ../../node_modules/.pnpm/path-expression-matcher@1.6.0/node_modules/path-expression-matcher/src/ExpressionSet.js
|
|
28015
28310
|
/**
|
|
28016
28311
|
* ExpressionSet - An indexed collection of Expressions for efficient bulk matching
|
|
28017
28312
|
*
|
|
@@ -28045,6 +28340,8 @@ var ExpressionSet = class {
|
|
|
28045
28340
|
this._wildcardByDepth = /* @__PURE__ */ new Map();
|
|
28046
28341
|
/** @type {import('./Expression.js').default[]} expressions containing deep wildcard (..) */
|
|
28047
28342
|
this._deepWildcards = [];
|
|
28343
|
+
/** @type {Map<string, import('./Expression.js').default[]>} terminalTag → deep wildcard expressions */
|
|
28344
|
+
this._deepByTerminalTag = /* @__PURE__ */ new Map();
|
|
28048
28345
|
/** @type {Set<string>} pattern strings already added — used for deduplication */
|
|
28049
28346
|
this._patterns = /* @__PURE__ */ new Set();
|
|
28050
28347
|
/** @type {boolean} whether the set is sealed against further additions */
|
|
@@ -28067,7 +28364,12 @@ var ExpressionSet = class {
|
|
|
28067
28364
|
if (this._patterns.has(expression.pattern)) return this;
|
|
28068
28365
|
this._patterns.add(expression.pattern);
|
|
28069
28366
|
if (expression.hasDeepWildcard()) {
|
|
28070
|
-
|
|
28367
|
+
const lastSeg = expression.segments[expression.segments.length - 1];
|
|
28368
|
+
if (lastSeg && lastSeg.type !== "deep-wildcard" && lastSeg.tag !== "*") {
|
|
28369
|
+
const tag = lastSeg.tag;
|
|
28370
|
+
if (!this._deepByTerminalTag.has(tag)) this._deepByTerminalTag.set(tag, []);
|
|
28371
|
+
this._deepByTerminalTag.get(tag).push(expression);
|
|
28372
|
+
} else this._deepWildcards.push(expression);
|
|
28071
28373
|
return this;
|
|
28072
28374
|
}
|
|
28073
28375
|
const depth = expression.length;
|
|
@@ -28170,7 +28472,8 @@ var ExpressionSet = class {
|
|
|
28170
28472
|
*/
|
|
28171
28473
|
findMatch(matcher) {
|
|
28172
28474
|
const depth = matcher.getDepth();
|
|
28173
|
-
const
|
|
28475
|
+
const tag = matcher.getCurrentTag();
|
|
28476
|
+
const exactKey = `${depth}:${tag}`;
|
|
28174
28477
|
const exactBucket = this._byDepthAndTag.get(exactKey);
|
|
28175
28478
|
if (exactBucket) {
|
|
28176
28479
|
for (let i = 0; i < exactBucket.length; i++) if (matcher.matches(exactBucket[i])) return exactBucket[i];
|
|
@@ -28179,12 +28482,16 @@ var ExpressionSet = class {
|
|
|
28179
28482
|
if (wildcardBucket) {
|
|
28180
28483
|
for (let i = 0; i < wildcardBucket.length; i++) if (matcher.matches(wildcardBucket[i])) return wildcardBucket[i];
|
|
28181
28484
|
}
|
|
28485
|
+
const deepBucket = this._deepByTerminalTag.get(tag);
|
|
28486
|
+
if (deepBucket) {
|
|
28487
|
+
for (let i = 0; i < deepBucket.length; i++) if (matcher.matches(deepBucket[i])) return deepBucket[i];
|
|
28488
|
+
}
|
|
28182
28489
|
for (let i = 0; i < this._deepWildcards.length; i++) if (matcher.matches(this._deepWildcards[i])) return this._deepWildcards[i];
|
|
28183
28490
|
return null;
|
|
28184
28491
|
}
|
|
28185
28492
|
};
|
|
28186
28493
|
//#endregion
|
|
28187
|
-
//#region ../../node_modules/.pnpm/path-expression-matcher@1.
|
|
28494
|
+
//#region ../../node_modules/.pnpm/path-expression-matcher@1.6.0/node_modules/path-expression-matcher/src/Matcher.js
|
|
28188
28495
|
/**
|
|
28189
28496
|
* MatcherView - A lightweight read-only view over a Matcher's internal state.
|
|
28190
28497
|
*
|
|
@@ -28256,6 +28563,24 @@ var MatcherView = class {
|
|
|
28256
28563
|
return current.values !== void 0 && attrName in current.values;
|
|
28257
28564
|
}
|
|
28258
28565
|
/**
|
|
28566
|
+
* Get the value of a "kept" attribute from the nearest ancestor (or
|
|
28567
|
+
* current node) that declared it via `push(tag, attrs, ns, { keep: [...] })`.
|
|
28568
|
+
* @param {string} attrName
|
|
28569
|
+
* @returns {*}
|
|
28570
|
+
*/
|
|
28571
|
+
getAnyParentAttr(attrName) {
|
|
28572
|
+
return this._matcher.getAnyParentAttr(attrName);
|
|
28573
|
+
}
|
|
28574
|
+
/**
|
|
28575
|
+
* Check whether any ancestor (or the current node) kept the given
|
|
28576
|
+
* attribute via `push(tag, attrs, ns, { keep: [...] })`.
|
|
28577
|
+
* @param {string} attrName
|
|
28578
|
+
* @returns {boolean}
|
|
28579
|
+
*/
|
|
28580
|
+
hasAnyParentAttr(attrName) {
|
|
28581
|
+
return this._matcher.hasAnyParentAttr(attrName);
|
|
28582
|
+
}
|
|
28583
|
+
/**
|
|
28259
28584
|
* Get current node's sibling position (child index in parent).
|
|
28260
28585
|
* @returns {number}
|
|
28261
28586
|
*/
|
|
@@ -28352,14 +28677,17 @@ var Matcher = class {
|
|
|
28352
28677
|
this.siblingStacks = [];
|
|
28353
28678
|
this._pathStringCache = null;
|
|
28354
28679
|
this._view = new MatcherView(this);
|
|
28680
|
+
this._keptAttrs = [];
|
|
28355
28681
|
}
|
|
28356
28682
|
/**
|
|
28357
28683
|
* Push a new tag onto the path.
|
|
28358
28684
|
* @param {string} tagName
|
|
28359
28685
|
* @param {Object|null} [attrValues=null]
|
|
28360
28686
|
* @param {string|null} [namespace=null]
|
|
28687
|
+
* @param {Object|null} [options=null]
|
|
28688
|
+
* @param {string[]} [options.keep] - Names of attributes (from attrValues)
|
|
28361
28689
|
*/
|
|
28362
|
-
push(tagName, attrValues = null, namespace = null) {
|
|
28690
|
+
push(tagName, attrValues = null, namespace = null, options = null) {
|
|
28363
28691
|
this._pathStringCache = null;
|
|
28364
28692
|
if (this.path.length > 0) this.path[this.path.length - 1].values = void 0;
|
|
28365
28693
|
const currentLevel = this.path.length;
|
|
@@ -28378,6 +28706,16 @@ var Matcher = class {
|
|
|
28378
28706
|
if (namespace !== null && namespace !== void 0) node.namespace = namespace;
|
|
28379
28707
|
if (attrValues !== null && attrValues !== void 0) node.values = attrValues;
|
|
28380
28708
|
this.path.push(node);
|
|
28709
|
+
const depth = this.path.length;
|
|
28710
|
+
const keep = options !== null ? options.keep : null;
|
|
28711
|
+
if (keep !== null && keep !== void 0 && keep.length > 0 && attrValues) for (let i = 0; i < keep.length; i++) {
|
|
28712
|
+
const name = keep[i];
|
|
28713
|
+
if (attrValues[name] !== void 0) this._keptAttrs.push({
|
|
28714
|
+
depth,
|
|
28715
|
+
name,
|
|
28716
|
+
value: attrValues[name]
|
|
28717
|
+
});
|
|
28718
|
+
}
|
|
28381
28719
|
}
|
|
28382
28720
|
/**
|
|
28383
28721
|
* Pop the last tag from the path.
|
|
@@ -28388,6 +28726,8 @@ var Matcher = class {
|
|
|
28388
28726
|
this._pathStringCache = null;
|
|
28389
28727
|
const node = this.path.pop();
|
|
28390
28728
|
if (this.siblingStacks.length > this.path.length + 1) this.siblingStacks.length = this.path.length + 1;
|
|
28729
|
+
const poppedDepth = this.path.length + 1;
|
|
28730
|
+
while (this._keptAttrs.length > 0 && this._keptAttrs[this._keptAttrs.length - 1].depth >= poppedDepth) this._keptAttrs.pop();
|
|
28391
28731
|
return node;
|
|
28392
28732
|
}
|
|
28393
28733
|
/**
|
|
@@ -28435,6 +28775,31 @@ var Matcher = class {
|
|
|
28435
28775
|
return current.values !== void 0 && attrName in current.values;
|
|
28436
28776
|
}
|
|
28437
28777
|
/**
|
|
28778
|
+
* Get the value of a "kept" attribute from the nearest ancestor (or
|
|
28779
|
+
* current node) that declared it via `push(tag, attrs, ns, { keep: [...] })`.
|
|
28780
|
+
* Unlike getAttrValue(), this works regardless of how deep the path has
|
|
28781
|
+
* gone since the attribute was pushed — but only for attribute names that
|
|
28782
|
+
* were explicitly marked with `keep` at push time. Cost is proportional to
|
|
28783
|
+
* the number of currently-kept attributes (typically 0-3), not path depth.
|
|
28784
|
+
* @param {string} attrName
|
|
28785
|
+
* @returns {*} the value, or undefined if no ancestor kept this attribute
|
|
28786
|
+
*/
|
|
28787
|
+
getAnyParentAttr(attrName) {
|
|
28788
|
+
const kept = this._keptAttrs;
|
|
28789
|
+
for (let i = kept.length - 1; i >= 0; i--) if (kept[i].name === attrName) return kept[i].value;
|
|
28790
|
+
}
|
|
28791
|
+
/**
|
|
28792
|
+
* Check whether any ancestor (or the current node) kept the given
|
|
28793
|
+
* attribute via `push(tag, attrs, ns, { keep: [...] })`.
|
|
28794
|
+
* @param {string} attrName
|
|
28795
|
+
* @returns {boolean}
|
|
28796
|
+
*/
|
|
28797
|
+
hasAnyParentAttr(attrName) {
|
|
28798
|
+
const kept = this._keptAttrs;
|
|
28799
|
+
for (let i = kept.length - 1; i >= 0; i--) if (kept[i].name === attrName) return true;
|
|
28800
|
+
return false;
|
|
28801
|
+
}
|
|
28802
|
+
/**
|
|
28438
28803
|
* Get current node's sibling position (child index in parent).
|
|
28439
28804
|
* @returns {number}
|
|
28440
28805
|
*/
|
|
@@ -28495,6 +28860,7 @@ var Matcher = class {
|
|
|
28495
28860
|
this._pathStringCache = null;
|
|
28496
28861
|
this.path = [];
|
|
28497
28862
|
this.siblingStacks = [];
|
|
28863
|
+
this._keptAttrs = [];
|
|
28498
28864
|
}
|
|
28499
28865
|
/**
|
|
28500
28866
|
* Match current path against an Expression.
|
|
@@ -28583,7 +28949,8 @@ var Matcher = class {
|
|
|
28583
28949
|
snapshot() {
|
|
28584
28950
|
return {
|
|
28585
28951
|
path: this.path.map((node) => ({ ...node })),
|
|
28586
|
-
siblingStacks: this.siblingStacks.map((map) => new Map(map))
|
|
28952
|
+
siblingStacks: this.siblingStacks.map((map) => new Map(map)),
|
|
28953
|
+
keptAttrs: this._keptAttrs.map((entry) => ({ ...entry }))
|
|
28587
28954
|
};
|
|
28588
28955
|
}
|
|
28589
28956
|
/**
|
|
@@ -28594,6 +28961,7 @@ var Matcher = class {
|
|
|
28594
28961
|
this._pathStringCache = null;
|
|
28595
28962
|
this.path = snapshot.path.map((node) => ({ ...node }));
|
|
28596
28963
|
this.siblingStacks = snapshot.siblingStacks.map((map) => new Map(map));
|
|
28964
|
+
this._keptAttrs = (snapshot.keptAttrs || []).map((entry) => ({ ...entry }));
|
|
28597
28965
|
}
|
|
28598
28966
|
/**
|
|
28599
28967
|
* Return the read-only {@link MatcherView} for this matcher.
|
|
@@ -28616,7 +28984,811 @@ var Matcher = class {
|
|
|
28616
28984
|
}
|
|
28617
28985
|
};
|
|
28618
28986
|
//#endregion
|
|
28619
|
-
//#region ../../node_modules/.pnpm/
|
|
28987
|
+
//#region ../../node_modules/.pnpm/is-unsafe@1.0.1/node_modules/is-unsafe/src/contexts/html.js
|
|
28988
|
+
/**
|
|
28989
|
+
* HTML context patterns.
|
|
28990
|
+
*
|
|
28991
|
+
* Detects XSS vectors that are dangerous when a string ends up rendered as HTML.
|
|
28992
|
+
* All patterns use bounded quantifiers to ensure linear-time matching (ReDoS-safe).
|
|
28993
|
+
*
|
|
28994
|
+
* Each entry is { pattern: RegExp, id: string, description: string }
|
|
28995
|
+
* so callers can inspect which rule fired if they need to.
|
|
28996
|
+
*/
|
|
28997
|
+
const HTML_PATTERNS = [
|
|
28998
|
+
{
|
|
28999
|
+
id: "html-script-open",
|
|
29000
|
+
description: "<script opening tag",
|
|
29001
|
+
pattern: /<script[\s>/]/i
|
|
29002
|
+
},
|
|
29003
|
+
{
|
|
29004
|
+
id: "html-script-close",
|
|
29005
|
+
description: "<\/script closing tag",
|
|
29006
|
+
pattern: /<\/script[\s>]/i
|
|
29007
|
+
},
|
|
29008
|
+
{
|
|
29009
|
+
id: "html-javascript-protocol",
|
|
29010
|
+
description: "javascript: URI scheme (with optional whitespace/encoding)",
|
|
29011
|
+
pattern: /j[\t\n\r ]*a[\t\n\r ]*v[\t\n\r ]*a[\t\n\r ]*s[\t\n\r ]*c[\t\n\r ]*r[\t\n\r ]*i[\t\n\r ]*p[\t\n\r ]*t[\t\n\r ]*:/i
|
|
29012
|
+
},
|
|
29013
|
+
{
|
|
29014
|
+
id: "html-vbscript-protocol",
|
|
29015
|
+
description: "vbscript: URI scheme",
|
|
29016
|
+
pattern: /vbscript[\t\n\r ]*:/i
|
|
29017
|
+
},
|
|
29018
|
+
{
|
|
29019
|
+
id: "html-data-html",
|
|
29020
|
+
description: "data:text/html URI — can execute scripts in browsers",
|
|
29021
|
+
pattern: /data[\t\n\r ]*:[\t\n\r ]*text\/html/i
|
|
29022
|
+
},
|
|
29023
|
+
{
|
|
29024
|
+
id: "html-data-xhtml",
|
|
29025
|
+
description: "data:application/xhtml+xml URI",
|
|
29026
|
+
pattern: /data[\t\n\r ]*:[\t\n\r ]*application\/xhtml/i
|
|
29027
|
+
},
|
|
29028
|
+
{
|
|
29029
|
+
id: "html-data-svg",
|
|
29030
|
+
description: "data:image/svg+xml URI — can execute scripts",
|
|
29031
|
+
pattern: /data[\t\n\r ]*:[\t\n\r ]*image\/svg\+xml/i
|
|
29032
|
+
},
|
|
29033
|
+
{
|
|
29034
|
+
id: "html-inline-event-handler",
|
|
29035
|
+
description: "Inline event handler attributes: onclick=, onerror=, onload=, etc.",
|
|
29036
|
+
pattern: /\bon\w{1,30}\s*=/i
|
|
29037
|
+
},
|
|
29038
|
+
{
|
|
29039
|
+
id: "html-entity-obfuscated-script",
|
|
29040
|
+
description: "HTML-entity-encoded <script (e.g. <script or <script)",
|
|
29041
|
+
pattern: /(?:�*3[Cc];?|�*60;?|<)\s*script/i
|
|
29042
|
+
},
|
|
29043
|
+
{
|
|
29044
|
+
id: "html-entity-obfuscated-javascript",
|
|
29045
|
+
description: "HTML-entity-encoded javascript: (partial — catches common j or j for \"j\")",
|
|
29046
|
+
pattern: /(?:�*6[Aa];?|�*106;?)\s*(?:�*61;?|a)[\s\S]{0,80}script\s*:/i
|
|
29047
|
+
},
|
|
29048
|
+
{
|
|
29049
|
+
id: "html-style-expression",
|
|
29050
|
+
description: "CSS expression() — IE-era code execution in style attributes",
|
|
29051
|
+
pattern: /style[\s\S]{0,20}expression\s*\(/i
|
|
29052
|
+
},
|
|
29053
|
+
{
|
|
29054
|
+
id: "html-object-embed",
|
|
29055
|
+
description: "<object or <embed tags that can load active content",
|
|
29056
|
+
pattern: /<(?:object|embed)[\s>/]/i
|
|
29057
|
+
},
|
|
29058
|
+
{
|
|
29059
|
+
id: "html-base-tag",
|
|
29060
|
+
description: "<base href= — can hijack all relative URLs on a page",
|
|
29061
|
+
pattern: /<base[\s>]/i
|
|
29062
|
+
},
|
|
29063
|
+
{
|
|
29064
|
+
id: "html-meta-refresh",
|
|
29065
|
+
description: "<meta http-equiv=\"refresh\" — can redirect users",
|
|
29066
|
+
pattern: /<meta[\s\S]{0,40}http-equiv[\s\S]{0,20}refresh/i
|
|
29067
|
+
},
|
|
29068
|
+
{
|
|
29069
|
+
id: "html-srcdoc",
|
|
29070
|
+
description: "srcdoc= attribute on iframes — embeds HTML that can run scripts",
|
|
29071
|
+
pattern: /srcdoc\s*=/i
|
|
29072
|
+
},
|
|
29073
|
+
{
|
|
29074
|
+
id: "html-iframe",
|
|
29075
|
+
description: "<iframe tag",
|
|
29076
|
+
pattern: /<iframe[\s>/]/i
|
|
29077
|
+
},
|
|
29078
|
+
{
|
|
29079
|
+
id: "html-form",
|
|
29080
|
+
description: "<form tag — can be used for phishing / credential harvesting injection",
|
|
29081
|
+
pattern: /<form[\s>/]/i
|
|
29082
|
+
}
|
|
29083
|
+
];
|
|
29084
|
+
//#endregion
|
|
29085
|
+
//#region ../../node_modules/.pnpm/is-unsafe@1.0.1/node_modules/is-unsafe/src/contexts/xml.js
|
|
29086
|
+
/**
|
|
29087
|
+
* XML context patterns.
|
|
29088
|
+
*
|
|
29089
|
+
* Detects injection vectors that are specifically dangerous when a string
|
|
29090
|
+
* is inserted into an XML document (not HTML rendering context).
|
|
29091
|
+
*
|
|
29092
|
+
* Key distinction from HTML: these patterns target parser-level attacks —
|
|
29093
|
+
* things that can confuse or subvert an XML parser, trigger external entity
|
|
29094
|
+
* resolution, or inject DTD content. HTML rendering concerns (XSS) belong
|
|
29095
|
+
* in the HTML context.
|
|
29096
|
+
*/
|
|
29097
|
+
const XML_PATTERNS = [
|
|
29098
|
+
{
|
|
29099
|
+
id: "xml-cdata-injection",
|
|
29100
|
+
description: "CDATA section injection: <![CDATA[ breaks out of text node context",
|
|
29101
|
+
pattern: /<!\[CDATA\[/i
|
|
29102
|
+
},
|
|
29103
|
+
{
|
|
29104
|
+
id: "xml-cdata-close",
|
|
29105
|
+
description: "CDATA close sequence: ]]> can terminate an enclosing CDATA section",
|
|
29106
|
+
pattern: /\]\]>/
|
|
29107
|
+
},
|
|
29108
|
+
{
|
|
29109
|
+
id: "xml-processing-instruction",
|
|
29110
|
+
description: "XML processing instruction: <?xml-stylesheet or <?php etc.",
|
|
29111
|
+
pattern: /<\?(?:xml[\- ]|php|asp)/i
|
|
29112
|
+
},
|
|
29113
|
+
{
|
|
29114
|
+
id: "xml-doctype-injection",
|
|
29115
|
+
description: "DOCTYPE declaration embedded in content — can define entities",
|
|
29116
|
+
pattern: /<!DOCTYPE(?:[\s[]|$)/i
|
|
29117
|
+
},
|
|
29118
|
+
{
|
|
29119
|
+
id: "xml-entity-system",
|
|
29120
|
+
description: "SYSTEM keyword — used in external entity declarations (XXE)",
|
|
29121
|
+
pattern: /\bSYSTEM\s+["']/i
|
|
29122
|
+
},
|
|
29123
|
+
{
|
|
29124
|
+
id: "xml-entity-public",
|
|
29125
|
+
description: "PUBLIC keyword — used in external entity declarations (XXE)",
|
|
29126
|
+
pattern: /\bPUBLIC\s+["']/i
|
|
29127
|
+
},
|
|
29128
|
+
{
|
|
29129
|
+
id: "xml-entity-declaration",
|
|
29130
|
+
description: "<!ENTITY declaration — defines entities, potential XXE or entity expansion",
|
|
29131
|
+
pattern: /<!ENTITY[\s%]/i
|
|
29132
|
+
},
|
|
29133
|
+
{
|
|
29134
|
+
id: "xml-billion-laughs",
|
|
29135
|
+
description: "Entity reference chaining / billion laughs: repeated &eX; style references",
|
|
29136
|
+
pattern: /(?:&\w{1,20};){3,}/
|
|
29137
|
+
},
|
|
29138
|
+
{
|
|
29139
|
+
id: "xml-namespace-confusion",
|
|
29140
|
+
description: "xmlns: attribute injection — can redefine namespaces to confuse parsers",
|
|
29141
|
+
pattern: /\bxmlns\s*(?::\w{1,40})?\s*=/i
|
|
29142
|
+
},
|
|
29143
|
+
{
|
|
29144
|
+
id: "xml-comment-injection",
|
|
29145
|
+
description: "<!-- comment injection — can hide content from some parsers",
|
|
29146
|
+
pattern: /<!--/
|
|
29147
|
+
},
|
|
29148
|
+
{
|
|
29149
|
+
id: "xml-comment-close",
|
|
29150
|
+
description: "--> closes an enclosing XML comment",
|
|
29151
|
+
pattern: /-->/
|
|
29152
|
+
},
|
|
29153
|
+
{
|
|
29154
|
+
id: "xml-pi-close",
|
|
29155
|
+
description: "?> closes an enclosing processing instruction",
|
|
29156
|
+
pattern: /\?>/
|
|
29157
|
+
}
|
|
29158
|
+
];
|
|
29159
|
+
//#endregion
|
|
29160
|
+
//#region ../../node_modules/.pnpm/is-unsafe@1.0.1/node_modules/is-unsafe/src/contexts/svg.js
|
|
29161
|
+
/**
|
|
29162
|
+
* SVG context patterns.
|
|
29163
|
+
*
|
|
29164
|
+
* SVG is XML-based but renders in browsers, giving it a unique attack surface
|
|
29165
|
+
* that combines XML parser behaviour with browser rendering and JavaScript execution.
|
|
29166
|
+
*
|
|
29167
|
+
* Many of these vectors bypass HTML sanitizers that don't understand SVG semantics
|
|
29168
|
+
* (DOMPurify has documented bypass vulnerabilities specifically in SVG/XML context).
|
|
29169
|
+
*/
|
|
29170
|
+
const SVG_PATTERNS = [
|
|
29171
|
+
{
|
|
29172
|
+
id: "svg-script-element",
|
|
29173
|
+
description: "<script element inside SVG executes JavaScript",
|
|
29174
|
+
pattern: /<script[\s>/]/i
|
|
29175
|
+
},
|
|
29176
|
+
{
|
|
29177
|
+
id: "svg-xlink-href-javascript",
|
|
29178
|
+
description: "xlink:href with javascript: — classic SVG XSS via <a> or <use>",
|
|
29179
|
+
pattern: /xlink\s*:\s*href\s*=\s*["']?\s*javascript\s*:/i
|
|
29180
|
+
},
|
|
29181
|
+
{
|
|
29182
|
+
id: "svg-href-javascript",
|
|
29183
|
+
description: "href= with javascript: in SVG context (<a>, <animate>, etc.)",
|
|
29184
|
+
pattern: /href\s*=\s*["']?\s*javascript\s*:/i
|
|
29185
|
+
},
|
|
29186
|
+
{
|
|
29187
|
+
id: "svg-foreignobject",
|
|
29188
|
+
description: "<foreignObject embeds HTML inside SVG — can execute scripts",
|
|
29189
|
+
pattern: /<foreignObject[\s>/]/i
|
|
29190
|
+
},
|
|
29191
|
+
{
|
|
29192
|
+
id: "svg-use-external",
|
|
29193
|
+
description: "<use xlink:href or href pointing to external resource (non-fragment URL)",
|
|
29194
|
+
pattern: /<use[\s\S]{0,60}(?:xlink\s*:\s*)?href\s*=\s*(?:["'][^#]|[^"'#\s>])/i
|
|
29195
|
+
},
|
|
29196
|
+
{
|
|
29197
|
+
id: "svg-animate-href",
|
|
29198
|
+
description: "<animate attributeName=\"href\" — can dynamically change href to javascript:",
|
|
29199
|
+
pattern: /<animate[\s\S]{0,80}attributeName\s*=\s*["'][\s]*href["']/i
|
|
29200
|
+
},
|
|
29201
|
+
{
|
|
29202
|
+
id: "svg-animate-xlinkhref",
|
|
29203
|
+
description: "<animate attributeName=\"xlink:href\"",
|
|
29204
|
+
pattern: /<animate[\s\S]{0,80}attributeName\s*=\s*["'][\s]*xlink\s*:\s*href["']/i
|
|
29205
|
+
},
|
|
29206
|
+
{
|
|
29207
|
+
id: "svg-set-javascript",
|
|
29208
|
+
description: "<set to=\"javascript:...\" — sets an attribute to a javascript: URI",
|
|
29209
|
+
pattern: /<set[\s\S]{0,80}to\s*=\s*["']?\s*javascript\s*:/i
|
|
29210
|
+
},
|
|
29211
|
+
{
|
|
29212
|
+
id: "svg-event-handler",
|
|
29213
|
+
description: "SVG-specific event handler attributes: onload=, onerror=, onactivate=, etc.",
|
|
29214
|
+
pattern: /\bon(?:load|error|activate|begin|end|repeat|focus|blur|click|mouse\w{1,20}|key\w{1,20})\s*=/i
|
|
29215
|
+
},
|
|
29216
|
+
{
|
|
29217
|
+
id: "svg-handler-generic",
|
|
29218
|
+
description: "Generic on* handler catch-all for SVG attributes",
|
|
29219
|
+
pattern: /\bon\w{1,30}\s*=/i
|
|
29220
|
+
},
|
|
29221
|
+
{
|
|
29222
|
+
id: "svg-filter-feimage",
|
|
29223
|
+
description: "<feImage href= — filter primitive that can load external resources",
|
|
29224
|
+
pattern: /<feImage[\s\S]{0,80}(?:xlink\s*:\s*)?href\s*=/i
|
|
29225
|
+
},
|
|
29226
|
+
{
|
|
29227
|
+
id: "svg-image-external",
|
|
29228
|
+
description: "<image xlink:href with http/https or javascript protocol",
|
|
29229
|
+
pattern: /<image[\s\S]{0,80}(?:xlink\s*:\s*)?href\s*=\s*["']?\s*(?:https?|javascript)\s*:/i
|
|
29230
|
+
},
|
|
29231
|
+
{
|
|
29232
|
+
id: "svg-style-javascript",
|
|
29233
|
+
description: "style= attribute containing javascript: (e.g. background:url(javascript:...))",
|
|
29234
|
+
pattern: /style\s*=[\s\S]{0,60}javascript\s*:/i
|
|
29235
|
+
}
|
|
29236
|
+
];
|
|
29237
|
+
//#endregion
|
|
29238
|
+
//#region ../../node_modules/.pnpm/is-unsafe@1.0.1/node_modules/is-unsafe/src/contexts/sql.js
|
|
29239
|
+
/**
|
|
29240
|
+
* SQL context patterns — high-precision rules only.
|
|
29241
|
+
*
|
|
29242
|
+
* These rules have very low false-positive risk and are safe to apply to
|
|
29243
|
+
* general user text (names, descriptions, search queries, etc.).
|
|
29244
|
+
* All patterns are ReDoS-safe — unlike the `sql-injection` npm package
|
|
29245
|
+
* which has an active CVE on its own detection regexes.
|
|
29246
|
+
*
|
|
29247
|
+
* For exhaustive coverage including noisier heuristics (comment sequences,
|
|
29248
|
+
* hex literals, stacked queries with semicolons), use 'SQL-STRICT' instead.
|
|
29249
|
+
* Apply 'SQL-STRICT' only to strings that are specifically SQL fragments,
|
|
29250
|
+
* not to general free-text fields.
|
|
29251
|
+
*/
|
|
29252
|
+
const SQL_PATTERNS = [
|
|
29253
|
+
{
|
|
29254
|
+
id: "sql-block-comment-open",
|
|
29255
|
+
description: "SQL block comment open: /* ... */ — unusual in legitimate user text",
|
|
29256
|
+
pattern: /\/\*/
|
|
29257
|
+
},
|
|
29258
|
+
{
|
|
29259
|
+
id: "sql-union-select",
|
|
29260
|
+
description: "UNION SELECT — most common SQL injection aggregation attack",
|
|
29261
|
+
pattern: /\bUNION\s{1,20}(?:ALL\s{1,20})?SELECT\b/i
|
|
29262
|
+
},
|
|
29263
|
+
{
|
|
29264
|
+
id: "sql-drop-table",
|
|
29265
|
+
description: "DROP TABLE — destructive DDL injection",
|
|
29266
|
+
pattern: /\bDROP\s{1,20}TABLE\b/i
|
|
29267
|
+
},
|
|
29268
|
+
{
|
|
29269
|
+
id: "sql-drop-database",
|
|
29270
|
+
description: "DROP DATABASE — destructive DDL injection",
|
|
29271
|
+
pattern: /\bDROP\s{1,20}DATABASE\b/i
|
|
29272
|
+
},
|
|
29273
|
+
{
|
|
29274
|
+
id: "sql-insert-into",
|
|
29275
|
+
description: "INSERT INTO — data injection",
|
|
29276
|
+
pattern: /\bINSERT\s{1,20}INTO\b/i
|
|
29277
|
+
},
|
|
29278
|
+
{
|
|
29279
|
+
id: "sql-delete-from",
|
|
29280
|
+
description: "DELETE FROM — data deletion injection",
|
|
29281
|
+
pattern: /\bDELETE\s{1,20}FROM\b/i
|
|
29282
|
+
},
|
|
29283
|
+
{
|
|
29284
|
+
id: "sql-update-set",
|
|
29285
|
+
description: "UPDATE ... SET — data modification injection",
|
|
29286
|
+
pattern: /\bUPDATE\b[\s\S]{1,60}\bSET\b/i
|
|
29287
|
+
},
|
|
29288
|
+
{
|
|
29289
|
+
id: "sql-exec-xp",
|
|
29290
|
+
description: "EXEC xp_ — MSSQL extended stored procedure execution",
|
|
29291
|
+
pattern: /\bEXEC(?:UTE)?\s{1,20}xp_/i
|
|
29292
|
+
},
|
|
29293
|
+
{
|
|
29294
|
+
id: "sql-tautology-string",
|
|
29295
|
+
description: "Classic string tautology: ' OR '1'='1 or \" OR \"1\"=\"1\"",
|
|
29296
|
+
pattern: /'\s{0,10}OR\s{0,10}'[^']{0,20}'\s*=\s*'[^']{0,20}/i
|
|
29297
|
+
},
|
|
29298
|
+
{
|
|
29299
|
+
id: "sql-tautology-numeric",
|
|
29300
|
+
description: "Numeric tautology: OR 1=1",
|
|
29301
|
+
pattern: /\bOR\s{1,10}1\s*=\s*1\b/i
|
|
29302
|
+
},
|
|
29303
|
+
{
|
|
29304
|
+
id: "sql-always-true-zero",
|
|
29305
|
+
description: "Numeric tautology: OR 0=0",
|
|
29306
|
+
pattern: /\bOR\s{1,10}0\s*=\s*0\b/i
|
|
29307
|
+
},
|
|
29308
|
+
{
|
|
29309
|
+
id: "sql-sleep-benchmark",
|
|
29310
|
+
description: "Time-based blind injection: SLEEP() or BENCHMARK()",
|
|
29311
|
+
pattern: /\b(?:SLEEP|BENCHMARK)\s*\(/i
|
|
29312
|
+
},
|
|
29313
|
+
{
|
|
29314
|
+
id: "sql-waitfor-delay",
|
|
29315
|
+
description: "MSSQL time-based blind injection: WAITFOR DELAY",
|
|
29316
|
+
pattern: /\bWAITFOR\s{1,20}DELAY\b/i
|
|
29317
|
+
},
|
|
29318
|
+
{
|
|
29319
|
+
id: "sql-char-function",
|
|
29320
|
+
description: "CHAR() function — used to obfuscate injected strings",
|
|
29321
|
+
pattern: /\bCHAR\s*\(\s*\d{1,3}/i
|
|
29322
|
+
},
|
|
29323
|
+
{
|
|
29324
|
+
id: "sql-information-schema",
|
|
29325
|
+
description: "INFORMATION_SCHEMA — reconnaissance query for table/column enumeration",
|
|
29326
|
+
pattern: /\bINFORMATION_SCHEMA\b/i
|
|
29327
|
+
}
|
|
29328
|
+
];
|
|
29329
|
+
//#endregion
|
|
29330
|
+
//#region ../../node_modules/.pnpm/is-unsafe@1.0.1/node_modules/is-unsafe/src/contexts/sql-strict.js
|
|
29331
|
+
/**
|
|
29332
|
+
* SQL-STRICT context patterns.
|
|
29333
|
+
*
|
|
29334
|
+
* Extends the base 'SQL' context with three additional rules that are
|
|
29335
|
+
* effective at detecting real injections but carry a higher false-positive
|
|
29336
|
+
* risk on general free-text input.
|
|
29337
|
+
*
|
|
29338
|
+
* Use 'SQL-STRICT' when:
|
|
29339
|
+
* - The string is specifically a SQL fragment or database identifier
|
|
29340
|
+
* - You control the input domain (e.g. a dedicated SQL search field)
|
|
29341
|
+
* - You can tolerate occasional false positives in exchange for broader coverage
|
|
29342
|
+
*
|
|
29343
|
+
* Use 'SQL' (not STRICT) when:
|
|
29344
|
+
* - The field is general user text (names, descriptions, comments)
|
|
29345
|
+
* - False positives would block legitimate content (e.g. "see note -- above")
|
|
29346
|
+
*
|
|
29347
|
+
* Rules moved here from 'SQL' due to false-positive risk:
|
|
29348
|
+
*
|
|
29349
|
+
* sql-line-comment — "--" fires on "see note -- above", "value--", CSS var(--primary)
|
|
29350
|
+
* sql-stacked-query — "; SELECT" fires on legitimate prose with semicolons + SQL words
|
|
29351
|
+
* sql-hex-encoding — "0xDEAD" fires on hex values in technical docs and log output
|
|
29352
|
+
*/
|
|
29353
|
+
const SQL_STRICT_EXTRA = [
|
|
29354
|
+
{
|
|
29355
|
+
id: "sql-line-comment",
|
|
29356
|
+
description: "SQL line comment: -- followed by whitespace or end of string",
|
|
29357
|
+
pattern: /--(?:\s|$)/
|
|
29358
|
+
},
|
|
29359
|
+
{
|
|
29360
|
+
id: "sql-stacked-query",
|
|
29361
|
+
description: "Stacked queries: semicolon immediately followed by a SQL keyword",
|
|
29362
|
+
pattern: /;\s{0,10}(?:SELECT|INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|EXEC)\b/i
|
|
29363
|
+
},
|
|
29364
|
+
{
|
|
29365
|
+
id: "sql-hex-encoding",
|
|
29366
|
+
description: "Hex-encoded string injection: 0x41414141 style (MySQL)",
|
|
29367
|
+
pattern: /\b0x[0-9a-f]{4,}/i
|
|
29368
|
+
}
|
|
29369
|
+
];
|
|
29370
|
+
const SQL_STRICT_PATTERNS = [...SQL_PATTERNS, ...SQL_STRICT_EXTRA];
|
|
29371
|
+
//#endregion
|
|
29372
|
+
//#region ../../node_modules/.pnpm/is-unsafe@1.0.1/node_modules/is-unsafe/src/contexts/shell.js
|
|
29373
|
+
/**
|
|
29374
|
+
* SHELL context patterns.
|
|
29375
|
+
*
|
|
29376
|
+
* Detects shell injection vectors and path traversal patterns.
|
|
29377
|
+
* Designed for use when a string will be passed to a shell command,
|
|
29378
|
+
* used as a file path, or interpolated into OS-level operations.
|
|
29379
|
+
*/
|
|
29380
|
+
const SHELL_PATTERNS = [
|
|
29381
|
+
{
|
|
29382
|
+
id: "shell-path-traversal-unix",
|
|
29383
|
+
description: "Unix path traversal: ../ — climbing the directory tree",
|
|
29384
|
+
pattern: /\.\.\//
|
|
29385
|
+
},
|
|
29386
|
+
{
|
|
29387
|
+
id: "shell-path-traversal-windows",
|
|
29388
|
+
description: "Windows path traversal: ..\\ — climbing the directory tree",
|
|
29389
|
+
pattern: /\.\.\\/
|
|
29390
|
+
},
|
|
29391
|
+
{
|
|
29392
|
+
id: "shell-path-traversal-encoded",
|
|
29393
|
+
description: "URL-encoded path traversal: %2e%2e or %2f variants",
|
|
29394
|
+
pattern: /%2e%2e|%2f\.\.|\.\.%2f/i
|
|
29395
|
+
},
|
|
29396
|
+
{
|
|
29397
|
+
id: "shell-null-byte",
|
|
29398
|
+
description: "Null byte injection: \\x00 or %00 — truncates strings in C-backed functions",
|
|
29399
|
+
pattern: /\x00|%00/
|
|
29400
|
+
},
|
|
29401
|
+
{
|
|
29402
|
+
id: "shell-semicolon",
|
|
29403
|
+
description: "Semicolon command separator: cmd1; cmd2",
|
|
29404
|
+
pattern: /;/
|
|
29405
|
+
},
|
|
29406
|
+
{
|
|
29407
|
+
id: "shell-pipe",
|
|
29408
|
+
description: "Pipe operator: cmd1 | cmd2",
|
|
29409
|
+
pattern: /\|/
|
|
29410
|
+
},
|
|
29411
|
+
{
|
|
29412
|
+
id: "shell-and-operator",
|
|
29413
|
+
description: "AND operator: cmd1 && cmd2",
|
|
29414
|
+
pattern: /&&/
|
|
29415
|
+
},
|
|
29416
|
+
{
|
|
29417
|
+
id: "shell-or-operator",
|
|
29418
|
+
description: "OR operator: cmd1 || cmd2",
|
|
29419
|
+
pattern: /\|\|/
|
|
29420
|
+
},
|
|
29421
|
+
{
|
|
29422
|
+
id: "shell-backtick",
|
|
29423
|
+
description: "Backtick command substitution: `cmd`",
|
|
29424
|
+
pattern: /`/
|
|
29425
|
+
},
|
|
29426
|
+
{
|
|
29427
|
+
id: "shell-dollar-paren",
|
|
29428
|
+
description: "Dollar-paren command substitution: $(cmd)",
|
|
29429
|
+
pattern: /\$\(/
|
|
29430
|
+
},
|
|
29431
|
+
{
|
|
29432
|
+
id: "shell-dollar-brace",
|
|
29433
|
+
description: "Dollar-brace variable expansion: ${var} — can be abused for injection",
|
|
29434
|
+
pattern: /\$\{/
|
|
29435
|
+
},
|
|
29436
|
+
{
|
|
29437
|
+
id: "shell-redirect-out",
|
|
29438
|
+
description: "Output redirection: cmd > file or cmd >> file",
|
|
29439
|
+
pattern: />{1,2}/
|
|
29440
|
+
},
|
|
29441
|
+
{
|
|
29442
|
+
id: "shell-redirect-in",
|
|
29443
|
+
description: "Input redirection: cmd < file",
|
|
29444
|
+
pattern: /</
|
|
29445
|
+
},
|
|
29446
|
+
{
|
|
29447
|
+
id: "shell-newline-injection",
|
|
29448
|
+
description: "Newline injection: \\n or \\r — can inject new shell commands",
|
|
29449
|
+
pattern: /[\n\r]/
|
|
29450
|
+
},
|
|
29451
|
+
{
|
|
29452
|
+
id: "shell-glob-star",
|
|
29453
|
+
description: "Glob expansion: * or ? — can expand to unintended files",
|
|
29454
|
+
pattern: /[/\\][*?]/
|
|
29455
|
+
},
|
|
29456
|
+
{
|
|
29457
|
+
id: "shell-absolute-root",
|
|
29458
|
+
description: "Absolute root path injection: string starting with / or \\ (Windows UNC)",
|
|
29459
|
+
pattern: /^(?:\/|\\\\)/
|
|
29460
|
+
},
|
|
29461
|
+
{
|
|
29462
|
+
id: "shell-windows-drive",
|
|
29463
|
+
description: "Windows drive letter path injection: C:\\ or D:/",
|
|
29464
|
+
pattern: /^[a-zA-Z]:[/\\]/
|
|
29465
|
+
},
|
|
29466
|
+
{
|
|
29467
|
+
id: "shell-curl-wget",
|
|
29468
|
+
description: "curl/wget with URL or flags — can exfiltrate data or download payloads",
|
|
29469
|
+
pattern: /\b(?:curl|wget)\s+(?:https?:\/\/|ftp:\/\/|-)/i
|
|
29470
|
+
}
|
|
29471
|
+
];
|
|
29472
|
+
//#endregion
|
|
29473
|
+
//#region ../../node_modules/.pnpm/is-unsafe@1.0.1/node_modules/is-unsafe/src/contexts/redos.js
|
|
29474
|
+
/**
|
|
29475
|
+
* REDOS context patterns.
|
|
29476
|
+
*
|
|
29477
|
+
* Detects strings that, if used as regular expressions, could cause
|
|
29478
|
+
* catastrophic backtracking (ReDoS — Regular Expression Denial of Service).
|
|
29479
|
+
*
|
|
29480
|
+
* These patterns detect the structural forms that lead to exponential or
|
|
29481
|
+
* polynomial backtracking in NFA-based regex engines (V8, PCRE, Java, etc.).
|
|
29482
|
+
*
|
|
29483
|
+
* Use this context when user-supplied strings will be compiled into RegExp objects.
|
|
29484
|
+
*/
|
|
29485
|
+
const REDOS_PATTERNS = [
|
|
29486
|
+
{
|
|
29487
|
+
id: "redos-nested-quantifier-plus",
|
|
29488
|
+
description: "Nested + quantifier inside a group with outer quantifier: (a+)+, (.+b)*, etc.",
|
|
29489
|
+
pattern: /\([^)]*\+[^)]*\)[+*]/
|
|
29490
|
+
},
|
|
29491
|
+
{
|
|
29492
|
+
id: "redos-nested-quantifier-star",
|
|
29493
|
+
description: "Nested * quantifier: (a*)* or (a*)+ — catastrophic backtracking",
|
|
29494
|
+
pattern: /\([^)]*\*[^)]*\)[*+]/
|
|
29495
|
+
},
|
|
29496
|
+
{
|
|
29497
|
+
id: "redos-nested-groups",
|
|
29498
|
+
description: "Doubly nested quantified groups: ((a+)+) — guaranteed catastrophic",
|
|
29499
|
+
pattern: /\(\([^)]{0,40}\)[+*]\)[+*]/
|
|
29500
|
+
},
|
|
29501
|
+
{
|
|
29502
|
+
id: "redos-alternation-overlap",
|
|
29503
|
+
description: "Overlapping alternation under quantifier: (a|a)+ — ambiguous NFA paths",
|
|
29504
|
+
pattern: /\(([^|()]{1,20})\|(?:\1)(?:\|[^|()]{1,20}){0,5}\)[+*?]{1,2}/
|
|
29505
|
+
},
|
|
29506
|
+
{
|
|
29507
|
+
id: "redos-star-plus-concat",
|
|
29508
|
+
description: "(x*x)+ pattern — triggers super-linear backtracking",
|
|
29509
|
+
pattern: /\([^)]{0,10}\*[^)]{0,10}\)[+*]/
|
|
29510
|
+
},
|
|
29511
|
+
{
|
|
29512
|
+
id: "redos-dot-star-greedy",
|
|
29513
|
+
description: "(.*){n,} or (.+){n,} — repeated greedy dot quantifiers",
|
|
29514
|
+
pattern: /\(\.[*+]\)\{?\d/
|
|
29515
|
+
},
|
|
29516
|
+
{
|
|
29517
|
+
id: "redos-large-repetition",
|
|
29518
|
+
description: "Very large fixed or range repetition count {1000,} or {1000,n} — denial of service via backtracking",
|
|
29519
|
+
pattern: /\{\d{4,}(?:,\d*)?\}/
|
|
29520
|
+
},
|
|
29521
|
+
{
|
|
29522
|
+
id: "redos-catastrophic-alternation",
|
|
29523
|
+
description: "Long alternation with many similar branches — polynomial backtracking risk",
|
|
29524
|
+
pattern: /\([^)]{0,200}(?:\|[^|)]{0,50}){9,}\)/
|
|
29525
|
+
}
|
|
29526
|
+
];
|
|
29527
|
+
//#endregion
|
|
29528
|
+
//#region ../../node_modules/.pnpm/is-unsafe@1.0.1/node_modules/is-unsafe/src/contexts/nosql.js
|
|
29529
|
+
const sep = "[\"'\\s]*:";
|
|
29530
|
+
//#endregion
|
|
29531
|
+
//#region ../../node_modules/.pnpm/is-unsafe@1.0.1/node_modules/is-unsafe/src/registry.js
|
|
29532
|
+
/**
|
|
29533
|
+
* Context registry — maps context name strings to their pattern arrays.
|
|
29534
|
+
*
|
|
29535
|
+
* Adding a new context: create a file in ./contexts/, export a default array
|
|
29536
|
+
* of pattern objects, and register it here.
|
|
29537
|
+
*
|
|
29538
|
+
* Context name guide:
|
|
29539
|
+
* SQL — high-precision rules; safe for general text fields
|
|
29540
|
+
* SQL-STRICT — SQL + three noisier rules (line comments, stacked queries, hex);
|
|
29541
|
+
* use only for SQL-specific inputs
|
|
29542
|
+
* REDOS — detects ReDoS-prone patterns when string will be compiled as RegExp
|
|
29543
|
+
*/
|
|
29544
|
+
/** @type {Record<string, Array<{id: string, description: string, pattern: RegExp}>>} */
|
|
29545
|
+
const CONTEXT_REGISTRY = {
|
|
29546
|
+
HTML: HTML_PATTERNS,
|
|
29547
|
+
XML: XML_PATTERNS,
|
|
29548
|
+
SVG: SVG_PATTERNS,
|
|
29549
|
+
SQL: SQL_PATTERNS,
|
|
29550
|
+
"SQL-STRICT": SQL_STRICT_PATTERNS,
|
|
29551
|
+
SHELL: SHELL_PATTERNS,
|
|
29552
|
+
REDOS: REDOS_PATTERNS,
|
|
29553
|
+
NOSQL: [
|
|
29554
|
+
{
|
|
29555
|
+
id: "nosql-where-operator",
|
|
29556
|
+
description: "$where — executes arbitrary JavaScript server-side in MongoDB",
|
|
29557
|
+
pattern: new RegExp(`\\$where${sep}`, "i")
|
|
29558
|
+
},
|
|
29559
|
+
{
|
|
29560
|
+
id: "nosql-ne-operator",
|
|
29561
|
+
description: "$ne — \"not equal\" operator used to bypass equality checks",
|
|
29562
|
+
pattern: new RegExp(`\\$ne${sep}`, "i")
|
|
29563
|
+
},
|
|
29564
|
+
{
|
|
29565
|
+
id: "nosql-gt-operator",
|
|
29566
|
+
description: "$gt — \"greater than\" used to bypass password/value checks",
|
|
29567
|
+
pattern: new RegExp(`\\$gte?${sep}`, "i")
|
|
29568
|
+
},
|
|
29569
|
+
{
|
|
29570
|
+
id: "nosql-lt-operator",
|
|
29571
|
+
description: "$lt / $lte — \"less than\" bypass variants",
|
|
29572
|
+
pattern: new RegExp(`\\$lte?${sep}`, "i")
|
|
29573
|
+
},
|
|
29574
|
+
{
|
|
29575
|
+
id: "nosql-regex-operator",
|
|
29576
|
+
description: "$regex — can be used to extract data character by character (blind injection)",
|
|
29577
|
+
pattern: new RegExp(`\\$regex${sep}`, "i")
|
|
29578
|
+
},
|
|
29579
|
+
{
|
|
29580
|
+
id: "nosql-or-operator",
|
|
29581
|
+
description: "$or — logical OR; used to create always-true conditions",
|
|
29582
|
+
pattern: new RegExp(`\\$or${sep}\\s*\\[`, "i")
|
|
29583
|
+
},
|
|
29584
|
+
{
|
|
29585
|
+
id: "nosql-and-operator",
|
|
29586
|
+
description: "$and — logical AND operator injection",
|
|
29587
|
+
pattern: new RegExp(`\\$and${sep}\\s*\\[`, "i")
|
|
29588
|
+
},
|
|
29589
|
+
{
|
|
29590
|
+
id: "nosql-nor-operator",
|
|
29591
|
+
description: "$nor — logical NOR operator injection",
|
|
29592
|
+
pattern: new RegExp(`\\$nor${sep}\\s*\\[`, "i")
|
|
29593
|
+
},
|
|
29594
|
+
{
|
|
29595
|
+
id: "nosql-exists-operator",
|
|
29596
|
+
description: "$exists — can enumerate fields to determine schema",
|
|
29597
|
+
pattern: new RegExp(`\\$exists${sep}`, "i")
|
|
29598
|
+
},
|
|
29599
|
+
{
|
|
29600
|
+
id: "nosql-in-operator",
|
|
29601
|
+
description: "$in — matches any value in a list; can enumerate values",
|
|
29602
|
+
pattern: new RegExp(`\\$in${sep}\\s*\\[`, "i")
|
|
29603
|
+
},
|
|
29604
|
+
{
|
|
29605
|
+
id: "nosql-expr-operator",
|
|
29606
|
+
description: "$expr — allows aggregation expressions in queries (MongoDB 3.6+)",
|
|
29607
|
+
pattern: new RegExp(`\\$expr${sep}`, "i")
|
|
29608
|
+
},
|
|
29609
|
+
{
|
|
29610
|
+
id: "nosql-function-operator",
|
|
29611
|
+
description: "$function — executes arbitrary JavaScript in MongoDB 4.4+",
|
|
29612
|
+
pattern: new RegExp(`\\$function${sep}`, "i")
|
|
29613
|
+
},
|
|
29614
|
+
{
|
|
29615
|
+
id: "nosql-accumulator-operator",
|
|
29616
|
+
description: "$accumulator — custom aggregation with arbitrary JS execution",
|
|
29617
|
+
pattern: new RegExp(`\\$accumulator${sep}`, "i")
|
|
29618
|
+
},
|
|
29619
|
+
{
|
|
29620
|
+
id: "nosql-proto-pollution",
|
|
29621
|
+
description: "__proto__ — prototype pollution via object key injection",
|
|
29622
|
+
pattern: /__proto__/
|
|
29623
|
+
},
|
|
29624
|
+
{
|
|
29625
|
+
id: "nosql-constructor-prototype",
|
|
29626
|
+
description: "constructor.prototype — alternative prototype pollution vector (dot notation or JSON key)",
|
|
29627
|
+
pattern: /constructor[\s"':.,{\[]*prototype/i
|
|
29628
|
+
},
|
|
29629
|
+
{
|
|
29630
|
+
id: "nosql-proto-bracket",
|
|
29631
|
+
description: "[\"__proto__\"] — bracket-notation prototype pollution",
|
|
29632
|
+
pattern: /\[["']__proto__["']\]/
|
|
29633
|
+
}
|
|
29634
|
+
],
|
|
29635
|
+
LOG: [
|
|
29636
|
+
{
|
|
29637
|
+
id: "log-crlf-injection",
|
|
29638
|
+
description: "CRLF injection: literal \\r or \\n embeds fake log lines",
|
|
29639
|
+
pattern: /[\r\n]/
|
|
29640
|
+
},
|
|
29641
|
+
{
|
|
29642
|
+
id: "log-url-encoded-crlf",
|
|
29643
|
+
description: "URL-encoded CRLF: %0d, %0a, %0D, %0A — decoded by some log parsers",
|
|
29644
|
+
pattern: /%0[dDaA]/
|
|
29645
|
+
},
|
|
29646
|
+
{
|
|
29647
|
+
id: "log-unicode-newline",
|
|
29648
|
+
description: "Unicode newline variants: U+2028 (line separator), U+2029 (paragraph separator)",
|
|
29649
|
+
pattern: /[\u2028\u2029]/
|
|
29650
|
+
},
|
|
29651
|
+
{
|
|
29652
|
+
id: "log-log4shell-jndi",
|
|
29653
|
+
description: "Log4Shell: ${jndi:...} triggers remote code execution in Apache Log4j",
|
|
29654
|
+
pattern: /\$\{jndi\s*:/i
|
|
29655
|
+
},
|
|
29656
|
+
{
|
|
29657
|
+
id: "log-log4shell-obfuscated",
|
|
29658
|
+
description: "Obfuscated Log4Shell: ${::-j}... lookup-bypass prefix used to evade WAF detection",
|
|
29659
|
+
pattern: /\$\{::-/
|
|
29660
|
+
},
|
|
29661
|
+
{
|
|
29662
|
+
id: "log-log4j-lookup",
|
|
29663
|
+
description: "Log4j lookup syntax: ${env:...}, ${sys:...}, ${ctx:...} — data exfiltration",
|
|
29664
|
+
pattern: /\$\{(?:env|sys|ctx|main|map|sd|web|docker|k8s|spring)\s*:/i
|
|
29665
|
+
},
|
|
29666
|
+
{
|
|
29667
|
+
id: "log-ssti-double-brace",
|
|
29668
|
+
description: "SSTI double-brace: {{expression}} — Jinja2, Twig, Handlebars, etc.",
|
|
29669
|
+
pattern: /\{\{[\s\S]{0,80}\}\}/
|
|
29670
|
+
},
|
|
29671
|
+
{
|
|
29672
|
+
id: "log-ssti-hash-brace",
|
|
29673
|
+
description: "SSTI hash-brace: #{expression} — Thymeleaf, Velocity, Ruby ERB",
|
|
29674
|
+
pattern: /#\{[\s\S]{0,80}\}/
|
|
29675
|
+
},
|
|
29676
|
+
{
|
|
29677
|
+
id: "log-ssti-dollar-brace",
|
|
29678
|
+
description: "SSTI/EL injection: ${expression with operators or method calls} — JSP EL, Freemarker, SpEL",
|
|
29679
|
+
pattern: /\$\{[^}]*(?:\.|\(|\*|\+|\bclass\b|\bruntime\b|\bprocess\b|\bexec\b)[^}]{0,80}\}/i
|
|
29680
|
+
},
|
|
29681
|
+
{
|
|
29682
|
+
id: "log-ssti-percent-tag",
|
|
29683
|
+
description: "SSTI ERB/ASP tag: <%= expression %> — Ruby ERB, ASP",
|
|
29684
|
+
pattern: /<%=[\s\S]{0,80}%>/
|
|
29685
|
+
},
|
|
29686
|
+
{
|
|
29687
|
+
id: "log-null-byte",
|
|
29688
|
+
description: "Null byte: \\x00 or %00 — can truncate log entries in C-backed loggers",
|
|
29689
|
+
pattern: /\x00|%00/
|
|
29690
|
+
},
|
|
29691
|
+
{
|
|
29692
|
+
id: "log-ansi-escape",
|
|
29693
|
+
description: "ANSI escape sequence: ESC[ — can manipulate terminal output when logs are tailed",
|
|
29694
|
+
pattern: /\x1b\[/
|
|
29695
|
+
}
|
|
29696
|
+
]
|
|
29697
|
+
};
|
|
29698
|
+
/**
|
|
29699
|
+
* Enum of valid context names — e.g. `VALID_CONTEXTS.HTML === 'HTML'`.
|
|
29700
|
+
* @type {Record<string, string>}
|
|
29701
|
+
*/
|
|
29702
|
+
const VALID_CONTEXTS = Object.freeze(Object.fromEntries(Object.keys(CONTEXT_REGISTRY).map((k) => [k, k])));
|
|
29703
|
+
//#endregion
|
|
29704
|
+
//#region ../../node_modules/.pnpm/is-unsafe@1.0.1/node_modules/is-unsafe/src/index.js
|
|
29705
|
+
/**
|
|
29706
|
+
* is-unsafe
|
|
29707
|
+
*
|
|
29708
|
+
* Zero-dependency, DOM-free, pure predicate for detecting unsafe strings
|
|
29709
|
+
* across HTML, XML, SVG, SQL, SQL-STRICT, SHELL, REDOS, NOSQL, and LOG contexts.
|
|
29710
|
+
*
|
|
29711
|
+
* @module is-unsafe
|
|
29712
|
+
*/
|
|
29713
|
+
/**
|
|
29714
|
+
* @typedef {'HTML'|'XML'|'SVG'|'SQL'|'SQL-STRICT'|'SHELL'|'REDOS'|'NOSQL'|'LOG'} ContextName
|
|
29715
|
+
*/
|
|
29716
|
+
/**
|
|
29717
|
+
* @typedef {Object} MatchResult
|
|
29718
|
+
* @property {string} context - The context in which the match was found
|
|
29719
|
+
* @property {string} id - Rule identifier
|
|
29720
|
+
* @property {string} description - Human-readable description of what was matched
|
|
29721
|
+
* @property {RegExp} pattern - The pattern that matched
|
|
29722
|
+
*/
|
|
29723
|
+
/**
|
|
29724
|
+
* Validate that `value` is a string. Throws TypeError if not.
|
|
29725
|
+
* @param {unknown} value
|
|
29726
|
+
*/
|
|
29727
|
+
function assertString(value) {
|
|
29728
|
+
if (typeof value !== "string") throw new TypeError(`is-unsafe: first argument must be a string, got ${typeof value}`);
|
|
29729
|
+
}
|
|
29730
|
+
/**
|
|
29731
|
+
* Validate that `context` is a recognised context name, an array of them,
|
|
29732
|
+
* or a RegExp instance. Throws TypeError if not.
|
|
29733
|
+
* @param {ContextName|ContextName[]|RegExp} context
|
|
29734
|
+
*/
|
|
29735
|
+
function assertContext(context) {
|
|
29736
|
+
if (context instanceof RegExp) return;
|
|
29737
|
+
if (typeof context === "string") {
|
|
29738
|
+
if (!CONTEXT_REGISTRY[context]) throw new TypeError(`is-unsafe: unknown context "${context}". Valid contexts: ${Object.keys(VALID_CONTEXTS).join(", ")}`);
|
|
29739
|
+
return;
|
|
29740
|
+
}
|
|
29741
|
+
if (Array.isArray(context)) {
|
|
29742
|
+
if (context.length === 0) throw new TypeError("is-unsafe: context array must not be empty");
|
|
29743
|
+
for (const c of context) if (typeof c !== "string" || !CONTEXT_REGISTRY[c]) throw new TypeError(`is-unsafe: unknown context "${c}" in array. Valid contexts: ${Object.keys(VALID_CONTEXTS).join(", ")}`);
|
|
29744
|
+
return;
|
|
29745
|
+
}
|
|
29746
|
+
throw new TypeError(`is-unsafe: second argument must be a context string, array of context strings, or RegExp. Got: ${typeof context}`);
|
|
29747
|
+
}
|
|
29748
|
+
/**
|
|
29749
|
+
* Test a single value against one named context's patterns.
|
|
29750
|
+
* Returns the first matching MatchResult, or null if nothing matched.
|
|
29751
|
+
*
|
|
29752
|
+
* @param {string} value
|
|
29753
|
+
* @param {string} contextName
|
|
29754
|
+
* @returns {MatchResult|null}
|
|
29755
|
+
*/
|
|
29756
|
+
function matchContext(value, contextName) {
|
|
29757
|
+
const patterns = CONTEXT_REGISTRY[contextName];
|
|
29758
|
+
for (const rule of patterns) if (rule.pattern.test(value)) return {
|
|
29759
|
+
context: contextName,
|
|
29760
|
+
id: rule.id,
|
|
29761
|
+
description: rule.description,
|
|
29762
|
+
pattern: rule.pattern
|
|
29763
|
+
};
|
|
29764
|
+
return null;
|
|
29765
|
+
}
|
|
29766
|
+
/**
|
|
29767
|
+
* Returns `true` if `value` is unsafe in the given context(s), `false` otherwise.
|
|
29768
|
+
*
|
|
29769
|
+
* @param {string} value - The string to test
|
|
29770
|
+
* @param {ContextName|ContextName[]|RegExp} context
|
|
29771
|
+
* - A named context ('HTML', 'XML', 'SVG', 'SQL', 'SQL-STRICT', 'SHELL', 'REDOS', 'NOSQL', 'LOG')
|
|
29772
|
+
* - An array of named contexts — returns true if unsafe in **any** of them
|
|
29773
|
+
* - A custom RegExp — returns true if the pattern matches
|
|
29774
|
+
* @returns {boolean}
|
|
29775
|
+
*
|
|
29776
|
+
* @example
|
|
29777
|
+
* isUnsafe('<script>alert(1)<\/script>', 'HTML') // true
|
|
29778
|
+
* isUnsafe('hello world', 'HTML') // false
|
|
29779
|
+
* isUnsafe('value', ['HTML', 'SQL']) // false
|
|
29780
|
+
* isUnsafe('value', /my-pattern/i) // false
|
|
29781
|
+
*/
|
|
29782
|
+
function isUnsafe(value, context) {
|
|
29783
|
+
assertString(value);
|
|
29784
|
+
assertContext(context);
|
|
29785
|
+
if (context instanceof RegExp) return context.test(value);
|
|
29786
|
+
if (typeof context === "string") return matchContext(value, context) !== null;
|
|
29787
|
+
for (const c of context) if (matchContext(value, c) !== null) return true;
|
|
29788
|
+
return false;
|
|
29789
|
+
}
|
|
29790
|
+
//#endregion
|
|
29791
|
+
//#region ../../node_modules/.pnpm/fast-xml-parser@5.9.3/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js
|
|
28620
29792
|
/**
|
|
28621
29793
|
* Extract raw attributes (without prefix) from prefixed attribute map
|
|
28622
29794
|
* @param {object} prefixedAttrs - Attributes with prefix from buildAttributesMap
|
|
@@ -28682,7 +29854,8 @@ var OrderedObjParser = class {
|
|
|
28682
29854
|
maxTotalExpansions: this.options.processEntities.maxTotalExpansions,
|
|
28683
29855
|
maxExpandedLength: this.options.processEntities.maxExpandedLength,
|
|
28684
29856
|
applyLimitsTo: this.options.processEntities.appliesTo
|
|
28685
|
-
}
|
|
29857
|
+
},
|
|
29858
|
+
onInputEntity: (name, value) => isUnsafe(value, [VALID_CONTEXTS.HTML, VALID_CONTEXTS.XML]) ? ENTITY_ACTION.BLOCK : ENTITY_ACTION.ALLOW
|
|
28686
29859
|
});
|
|
28687
29860
|
}
|
|
28688
29861
|
this.matcher = new Matcher();
|
|
@@ -29129,7 +30302,7 @@ function sanitizeName(name, options) {
|
|
|
29129
30302
|
return name;
|
|
29130
30303
|
}
|
|
29131
30304
|
//#endregion
|
|
29132
|
-
//#region ../../node_modules/.pnpm/fast-xml-parser@5.
|
|
30305
|
+
//#region ../../node_modules/.pnpm/fast-xml-parser@5.9.3/node_modules/fast-xml-parser/src/xmlparser/node2json.js
|
|
29133
30306
|
const METADATA_SYMBOL = XmlNode.getMetaDataSymbol();
|
|
29134
30307
|
/**
|
|
29135
30308
|
* Helper function to strip attribute prefix from attribute map
|
|
@@ -29229,7 +30402,7 @@ function isLeafTag(obj, options) {
|
|
|
29229
30402
|
return false;
|
|
29230
30403
|
}
|
|
29231
30404
|
//#endregion
|
|
29232
|
-
//#region ../../node_modules/.pnpm/fast-xml-parser@5.
|
|
30405
|
+
//#region ../../node_modules/.pnpm/fast-xml-parser@5.9.3/node_modules/fast-xml-parser/src/validator.js
|
|
29233
30406
|
const defaultOptions$1 = {
|
|
29234
30407
|
allowBooleanAttributes: false,
|
|
29235
30408
|
unpairedTags: []
|
|
@@ -29467,7 +30640,7 @@ function getPositionFromMatch(match) {
|
|
|
29467
30640
|
return match.startIndex + match[1].length;
|
|
29468
30641
|
}
|
|
29469
30642
|
//#endregion
|
|
29470
|
-
//#region ../../node_modules/.pnpm/fast-xml-parser@5.
|
|
30643
|
+
//#region ../../node_modules/.pnpm/fast-xml-parser@5.9.3/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js
|
|
29471
30644
|
var XMLParser = class {
|
|
29472
30645
|
constructor(options) {
|
|
29473
30646
|
this.externalEntities = {};
|
|
@@ -30431,7 +31604,7 @@ function wrapAnsi(string, columns, options) {
|
|
|
30431
31604
|
return String(string).normalize().split(CRLF_OR_LF).map((line) => exec(line, columns, options)).join("\n");
|
|
30432
31605
|
}
|
|
30433
31606
|
//#endregion
|
|
30434
|
-
//#region ../../node_modules/.pnpm/@clack+core@1.4.
|
|
31607
|
+
//#region ../../node_modules/.pnpm/@clack+core@1.4.2/node_modules/@clack/core/dist/index.mjs
|
|
30435
31608
|
var import_src = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
30436
31609
|
const ESC = "\x1B";
|
|
30437
31610
|
const CSI = `${ESC}[`;
|
|
@@ -30790,13 +31963,13 @@ var n = class extends V {
|
|
|
30790
31963
|
}
|
|
30791
31964
|
};
|
|
30792
31965
|
//#endregion
|
|
30793
|
-
//#region ../../node_modules/.pnpm/@clack+prompts@1.
|
|
31966
|
+
//#region ../../node_modules/.pnpm/@clack+prompts@1.6.0/node_modules/@clack/prompts/dist/index.mjs
|
|
30794
31967
|
function isUnicodeSupported() {
|
|
30795
31968
|
if (process$1.platform !== "win32") return process$1.env.TERM !== "linux";
|
|
30796
31969
|
return Boolean(process$1.env.CI) || Boolean(process$1.env.WT_SESSION) || Boolean(process$1.env.TERMINUS_SUBLIME) || process$1.env.ConEmuTask === "{cmd::Cmder}" || process$1.env.TERM_PROGRAM === "Terminus-Sublime" || process$1.env.TERM_PROGRAM === "vscode" || process$1.env.TERM === "xterm-256color" || process$1.env.TERM === "alacritty" || process$1.env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
|
|
30797
31970
|
}
|
|
30798
|
-
const unicode = isUnicodeSupported(), unicodeOr = (
|
|
30799
|
-
switch (
|
|
31971
|
+
const unicode = isUnicodeSupported(), unicodeOr = (o, e) => unicode ? o : e, S_STEP_ACTIVE = unicodeOr("◆", "*"), S_STEP_CANCEL = unicodeOr("■", "x"), S_STEP_ERROR = unicodeOr("▲", "x"), S_STEP_SUBMIT = unicodeOr("◇", "o"), S_BAR = unicodeOr("│", "|"), S_BAR_END = unicodeOr("└", "—"), S_RADIO_ACTIVE = unicodeOr("●", ">"), S_RADIO_INACTIVE = unicodeOr("○", " "), symbol = (o) => {
|
|
31972
|
+
switch (o) {
|
|
30800
31973
|
case "initial":
|
|
30801
31974
|
case "active": return styleText("cyan", S_STEP_ACTIVE);
|
|
30802
31975
|
case "cancel": return styleText("red", S_STEP_CANCEL);
|
|
@@ -30833,6 +32006,8 @@ ${g}
|
|
|
30833
32006
|
}
|
|
30834
32007
|
}).prompt();
|
|
30835
32008
|
};
|
|
32009
|
+
`${styleText("dim", "↑/↓")}`, `${styleText("dim", "Space:")}`, `${styleText("dim", "Enter:")}`;
|
|
32010
|
+
`${styleText("dim", "↑/↓")}`, `${styleText("dim", "Enter:")}`;
|
|
30836
32011
|
`${styleText("gray", S_BAR)}`;
|
|
30837
32012
|
const text$2 = (t) => new n({
|
|
30838
32013
|
validate: t.validate,
|
|
@@ -31000,14 +32175,14 @@ const get$12 = make$14("get", { recordId: text$6({ name: "recordId" }) }, ({ rec
|
|
|
31000
32175
|
})).pipe(withDescription("get AI insights by record id"));
|
|
31001
32176
|
//#endregion
|
|
31002
32177
|
//#region src/cli/ai/insights/list.ts
|
|
31003
|
-
const page$
|
|
31004
|
-
const size$
|
|
31005
|
-
const grouped$
|
|
32178
|
+
const page$8 = integer("page").pipe(optional$4);
|
|
32179
|
+
const size$8 = integer("size").pipe(optional$4);
|
|
32180
|
+
const grouped$1 = boolean("grouped").pipe(withDescription$3("group rows by article"));
|
|
31006
32181
|
const unwrap$14 = (value) => getOrUndefined(value);
|
|
31007
32182
|
const list$14 = make$14("list", {
|
|
31008
|
-
page: page$
|
|
31009
|
-
size: size$
|
|
31010
|
-
grouped: grouped$
|
|
32183
|
+
page: page$8,
|
|
32184
|
+
size: size$8,
|
|
32185
|
+
grouped: grouped$1
|
|
31011
32186
|
}, ({ page, size, grouped }) => gen(function* () {
|
|
31012
32187
|
const ai = yield* Ai;
|
|
31013
32188
|
const renderer = yield* Renderer;
|
|
@@ -31184,14 +32359,14 @@ const get$11 = make$14("get", { recordId: text$6({ name: "recordId" }) }, ({ rec
|
|
|
31184
32359
|
})).pipe(withDescription("get an AI summary by record id"));
|
|
31185
32360
|
//#endregion
|
|
31186
32361
|
//#region src/cli/ai/summary/list.ts
|
|
31187
|
-
const page$
|
|
31188
|
-
const size$
|
|
31189
|
-
const grouped
|
|
32362
|
+
const page$7 = integer("page").pipe(optional$4);
|
|
32363
|
+
const size$7 = integer("size").pipe(optional$4);
|
|
32364
|
+
const grouped = boolean("grouped").pipe(withDescription$3("group rows by article"));
|
|
31190
32365
|
const unwrap$12 = (value) => getOrUndefined(value);
|
|
31191
32366
|
const list$13 = make$14("list", {
|
|
31192
|
-
page: page$
|
|
31193
|
-
size: size$
|
|
31194
|
-
grouped
|
|
32367
|
+
page: page$7,
|
|
32368
|
+
size: size$7,
|
|
32369
|
+
grouped
|
|
31195
32370
|
}, ({ page, size, grouped }) => gen(function* () {
|
|
31196
32371
|
const ai = yield* Ai;
|
|
31197
32372
|
const renderer = yield* Renderer;
|
|
@@ -31409,14 +32584,14 @@ const generate = make$14("generate", {
|
|
|
31409
32584
|
})).pipe(withDescription("regenerate translation entries"));
|
|
31410
32585
|
//#endregion
|
|
31411
32586
|
//#region src/cli/ai/translate/entries/list.ts
|
|
31412
|
-
const page$
|
|
31413
|
-
const size$
|
|
32587
|
+
const page$6 = integer("page").pipe(optional$4);
|
|
32588
|
+
const size$6 = integer("size").pipe(optional$4);
|
|
31414
32589
|
const keyPath = text$4("key-path").pipe(optional$4);
|
|
31415
32590
|
const lang = text$4("lang").pipe(optional$4);
|
|
31416
32591
|
const unwrap$10 = (value) => getOrUndefined(value);
|
|
31417
32592
|
const list$12 = make$14("list", {
|
|
31418
|
-
page: page$
|
|
31419
|
-
size: size$
|
|
32593
|
+
page: page$6,
|
|
32594
|
+
size: size$6,
|
|
31420
32595
|
keyPath,
|
|
31421
32596
|
lang
|
|
31422
32597
|
}, ({ page, size, keyPath, lang }) => gen(function* () {
|
|
@@ -31453,12 +32628,12 @@ const languages = make$14("languages", { id: text$6({ name: "idOrSlug" }) }, ({
|
|
|
31453
32628
|
})).pipe(withDescription("list languages an article has been translated into"));
|
|
31454
32629
|
//#endregion
|
|
31455
32630
|
//#region src/cli/ai/translate/list.ts
|
|
31456
|
-
const page$
|
|
31457
|
-
const size$
|
|
32631
|
+
const page$5 = integer("page").pipe(optional$4);
|
|
32632
|
+
const size$5 = integer("size").pipe(optional$4);
|
|
31458
32633
|
const unwrap$9 = (value) => getOrUndefined(value);
|
|
31459
32634
|
const list$11 = make$14("list", {
|
|
31460
|
-
page: page$
|
|
31461
|
-
size: size$
|
|
32635
|
+
page: page$5,
|
|
32636
|
+
size: size$5
|
|
31462
32637
|
}, ({ page, size }) => gen(function* () {
|
|
31463
32638
|
const ai = yield* Ai;
|
|
31464
32639
|
const renderer = yield* Renderer;
|
|
@@ -34422,14 +35597,14 @@ const get$6 = make$14("get", { slugOrId: text$6({ name: "slugOrId" }) }, ({ slug
|
|
|
34422
35597
|
})).pipe(withDescription("get a note by snowflake id or numeric nid"));
|
|
34423
35598
|
//#endregion
|
|
34424
35599
|
//#region src/cli/note/list.ts
|
|
34425
|
-
const page$
|
|
34426
|
-
const size$
|
|
35600
|
+
const page$2 = integer("page").pipe(optional$4);
|
|
35601
|
+
const size$2 = integer("size").pipe(optional$4);
|
|
34427
35602
|
const state$1 = text$4("state").pipe(optional$4);
|
|
34428
35603
|
const sort$1 = text$4("sort").pipe(optional$4);
|
|
34429
35604
|
const unwrap$6 = (value) => getOrUndefined(value);
|
|
34430
35605
|
const list$6 = make$14("list", {
|
|
34431
|
-
page: page$
|
|
34432
|
-
size: size$
|
|
35606
|
+
page: page$2,
|
|
35607
|
+
size: size$2,
|
|
34433
35608
|
state: state$1,
|
|
34434
35609
|
sort: sort$1
|
|
34435
35610
|
}, ({ page, size, sort }) => gen(function* () {
|
|
@@ -35180,14 +36355,14 @@ const get$4 = make$14("get", { slugOrId: text$6({ name: "slugOrId" }) }, ({ slug
|
|
|
35180
36355
|
})).pipe(withDescription("get a post by slug or id"));
|
|
35181
36356
|
//#endregion
|
|
35182
36357
|
//#region src/cli/post/list.ts
|
|
35183
|
-
const page$
|
|
35184
|
-
const size$
|
|
36358
|
+
const page$1 = integer("page").pipe(optional$4);
|
|
36359
|
+
const size$1 = integer("size").pipe(optional$4);
|
|
35185
36360
|
const state = choice("state", ["publish", "draft"]).pipe(optional$4);
|
|
35186
36361
|
const sort = choice("sort", ["created", "modified"]).pipe(optional$4);
|
|
35187
36362
|
const unwrap$4 = (value) => getOrUndefined(value);
|
|
35188
36363
|
const list$4 = make$14("list", {
|
|
35189
|
-
page: page$
|
|
35190
|
-
size: size$
|
|
36364
|
+
page: page$1,
|
|
36365
|
+
size: size$1,
|
|
35191
36366
|
state,
|
|
35192
36367
|
sort
|
|
35193
36368
|
}, ({ page, size, state, sort }) => gen(function* () {
|
|
@@ -35707,7 +36882,7 @@ const profileCmd = make$14("profile").pipe(withDescription(help$4.description),
|
|
|
35707
36882
|
//#region src/cli/project/_flags.ts
|
|
35708
36883
|
const optional$1 = (self) => optional$4(self);
|
|
35709
36884
|
const unwrap$3 = (value) => getOrUndefined(value);
|
|
35710
|
-
const name$
|
|
36885
|
+
const name$2 = optional$1(text$4("name"));
|
|
35711
36886
|
const description$2 = optional$1(text$4("description"));
|
|
35712
36887
|
const previewUrl = optional$1(text$4("preview-url"));
|
|
35713
36888
|
const docUrl = optional$1(text$4("doc-url"));
|
|
@@ -35723,7 +36898,7 @@ const parseCsv = (v) => {
|
|
|
35723
36898
|
return v.split(",").map((s) => s.trim()).filter(Boolean);
|
|
35724
36899
|
};
|
|
35725
36900
|
const projectWriteOptions = {
|
|
35726
|
-
name: name$
|
|
36901
|
+
name: name$2,
|
|
35727
36902
|
description: description$2,
|
|
35728
36903
|
previewUrl,
|
|
35729
36904
|
docUrl,
|
|
@@ -35977,12 +37152,12 @@ const projectListView = {
|
|
|
35977
37152
|
};
|
|
35978
37153
|
//#endregion
|
|
35979
37154
|
//#region src/cli/project/list.ts
|
|
35980
|
-
const page
|
|
35981
|
-
const size
|
|
37155
|
+
const page = integer("page").pipe(optional$4);
|
|
37156
|
+
const size = integer("size").pipe(optional$4);
|
|
35982
37157
|
const unwrap$2 = (value) => getOrUndefined(value);
|
|
35983
37158
|
const list$3 = make$14("list", {
|
|
35984
|
-
page
|
|
35985
|
-
size
|
|
37159
|
+
page,
|
|
37160
|
+
size
|
|
35986
37161
|
}, ({ page, size }) => gen(function* () {
|
|
35987
37162
|
const api = yield* Api;
|
|
35988
37163
|
const renderer = yield* Renderer;
|
|
@@ -38348,11 +39523,11 @@ const SNIPPET_TYPES = [
|
|
|
38348
39523
|
"json5",
|
|
38349
39524
|
"function",
|
|
38350
39525
|
"text",
|
|
38351
|
-
"yaml"
|
|
39526
|
+
"yaml",
|
|
39527
|
+
"skill"
|
|
38352
39528
|
];
|
|
38353
39529
|
const SNIPPET_KEYS = [
|
|
38354
|
-
"
|
|
38355
|
-
"reference",
|
|
39530
|
+
"path",
|
|
38356
39531
|
"type",
|
|
38357
39532
|
"raw",
|
|
38358
39533
|
"private",
|
|
@@ -38360,12 +39535,10 @@ const SNIPPET_KEYS = [
|
|
|
38360
39535
|
"metatype",
|
|
38361
39536
|
"schema",
|
|
38362
39537
|
"method",
|
|
38363
|
-
"customPath",
|
|
38364
39538
|
"secret",
|
|
38365
39539
|
"enable"
|
|
38366
39540
|
];
|
|
38367
39541
|
const snippetWriteOptions = {
|
|
38368
|
-
reference: optional(text$4("reference")),
|
|
38369
39542
|
type: optional(choice("type", SNIPPET_TYPES)),
|
|
38370
39543
|
file: optional(text$4("file")),
|
|
38371
39544
|
raw: optional(text$4("raw")),
|
|
@@ -38380,7 +39553,6 @@ const snippetWriteOptions = {
|
|
|
38380
39553
|
])),
|
|
38381
39554
|
metatype: optional(text$4("metatype")),
|
|
38382
39555
|
schema: optional(text$4("schema")),
|
|
38383
|
-
customPath: optional(text$4("custom-path")),
|
|
38384
39556
|
secret: optional(text$4("secret")),
|
|
38385
39557
|
private: boolean("private"),
|
|
38386
39558
|
noPrivate: boolean("no-private"),
|
|
@@ -38388,7 +39560,6 @@ const snippetWriteOptions = {
|
|
|
38388
39560
|
noEnable: boolean("no-enable")
|
|
38389
39561
|
};
|
|
38390
39562
|
const toSnippetFlagInputs = (opts) => ({
|
|
38391
|
-
reference: unwrap$1(opts.reference),
|
|
38392
39563
|
type: unwrap$1(opts.type),
|
|
38393
39564
|
file: unwrap$1(opts.file),
|
|
38394
39565
|
raw: unwrap$1(opts.raw),
|
|
@@ -38396,20 +39567,17 @@ const toSnippetFlagInputs = (opts) => ({
|
|
|
38396
39567
|
method: unwrap$1(opts.method),
|
|
38397
39568
|
metatype: unwrap$1(opts.metatype),
|
|
38398
39569
|
schema: unwrap$1(opts.schema),
|
|
38399
|
-
customPath: unwrap$1(opts.customPath),
|
|
38400
39570
|
secret: unwrap$1(opts.secret),
|
|
38401
39571
|
private: opts.private ? true : opts.noPrivate ? false : void 0,
|
|
38402
39572
|
enable: opts.enable ? true : opts.noEnable ? false : void 0
|
|
38403
39573
|
});
|
|
38404
39574
|
const snippetFieldsOf = (flags) => {
|
|
38405
39575
|
const out = {};
|
|
38406
|
-
if (flags.reference !== void 0) out.reference = flags.reference;
|
|
38407
39576
|
if (flags.type !== void 0) out.type = flags.type;
|
|
38408
39577
|
if (flags.comment !== void 0) out.comment = flags.comment;
|
|
38409
39578
|
if (flags.method !== void 0) out.method = flags.method;
|
|
38410
39579
|
if (flags.metatype !== void 0) out.metatype = flags.metatype;
|
|
38411
39580
|
if (flags.schema !== void 0) out.schema = flags.schema;
|
|
38412
|
-
if (flags.customPath !== void 0) out.customPath = flags.customPath;
|
|
38413
39581
|
if (flags.secret !== void 0) out.secret = flags.secret;
|
|
38414
39582
|
if (flags.private !== void 0) out.private = flags.private;
|
|
38415
39583
|
if (flags.enable !== void 0) out.enable = flags.enable;
|
|
@@ -38439,13 +39607,14 @@ const EXT_BY_TYPE = {
|
|
|
38439
39607
|
json5: "json5",
|
|
38440
39608
|
function: "js",
|
|
38441
39609
|
yaml: "yaml",
|
|
38442
|
-
text: "txt"
|
|
39610
|
+
text: "txt",
|
|
39611
|
+
skill: "md"
|
|
38443
39612
|
};
|
|
38444
39613
|
const extForType = (type) => typeof type === "string" && EXT_BY_TYPE[type] || "txt";
|
|
38445
|
-
const create$1 = make$14("
|
|
38446
|
-
|
|
39614
|
+
const create$1 = make$14("put", {
|
|
39615
|
+
path: text$6({ name: "path" }),
|
|
38447
39616
|
...snippetWriteOptions
|
|
38448
|
-
}, ({
|
|
39617
|
+
}, ({ path, ...rest }) => gen(function* () {
|
|
38449
39618
|
const flags = toSnippetFlagInputs(rest);
|
|
38450
39619
|
const api = yield* Api;
|
|
38451
39620
|
const renderer = yield* Renderer;
|
|
@@ -38453,65 +39622,48 @@ const create$1 = make$14("create", {
|
|
|
38453
39622
|
if (raw === void 0) {
|
|
38454
39623
|
if (!process.stdin.isTTY) return yield* fail$2(new ValidationFailed({ message: "no snippet content provided; pass --file, --raw, or pipe stdin" }));
|
|
38455
39624
|
raw = yield* (yield* Editor).openEditor({
|
|
38456
|
-
filename: `snippet
|
|
39625
|
+
filename: `snippet.${extForType(flags.type ?? "json")}`,
|
|
38457
39626
|
initialContent: ""
|
|
38458
39627
|
});
|
|
38459
39628
|
}
|
|
38460
39629
|
if (!raw.trim()) return yield* fail$2(new ValidationFailed({ message: "snippet content is empty" }));
|
|
38461
39630
|
const body = {
|
|
38462
39631
|
...snippetFieldsOf(flags),
|
|
38463
|
-
|
|
39632
|
+
path,
|
|
38464
39633
|
raw
|
|
38465
39634
|
};
|
|
38466
|
-
const res = yield* api.request("/snippets", {
|
|
38467
|
-
method: "
|
|
39635
|
+
const res = yield* api.request("/snippets/by-path", {
|
|
39636
|
+
method: "PUT",
|
|
38468
39637
|
body
|
|
38469
39638
|
});
|
|
38470
39639
|
yield* renderer.emitSuccess(res);
|
|
38471
|
-
})).pipe(withDescription("
|
|
38472
|
-
|
|
38473
|
-
|
|
38474
|
-
|
|
38475
|
-
|
|
38476
|
-
|
|
38477
|
-
const data = res.data;
|
|
38478
|
-
if (Array.isArray(data)) return data;
|
|
38479
|
-
}
|
|
38480
|
-
return [];
|
|
38481
|
-
};
|
|
38482
|
-
const resolveSnippetId = (api, ref) => gen(function* () {
|
|
38483
|
-
if (isSnowflakeId(ref)) return ref;
|
|
38484
|
-
const slash = ref.indexOf("/");
|
|
38485
|
-
const reference = slash === -1 ? "root" : ref.slice(0, slash);
|
|
38486
|
-
const name = slash === -1 ? ref : ref.slice(slash + 1);
|
|
38487
|
-
const match = unwrapList(yield* api.request(`/snippets/group/${encodeURIComponent(reference)}`).pipe(catchAll(() => succeed$1(null)))).find((s) => s.name === name);
|
|
38488
|
-
if (!match?.id) return yield* fail$2(new ResourceNotFound({
|
|
38489
|
-
kind: "snippet",
|
|
38490
|
-
ref,
|
|
38491
|
-
message: `snippet not found: ${ref}`
|
|
38492
|
-
}));
|
|
38493
|
-
return match.id;
|
|
38494
|
-
});
|
|
38495
|
-
const del$1 = make$14("delete", {
|
|
38496
|
-
target: text$6({ name: "idOrRefName" }),
|
|
38497
|
-
force: boolean("force").pipe(withDescription$3("skip the non-TTY guard"))
|
|
38498
|
-
}, ({ target, force }) => gen(function* () {
|
|
39640
|
+
})).pipe(withDescription("write a snippet by path"));
|
|
39641
|
+
const del$1 = make$14("rm", {
|
|
39642
|
+
target: text$6({ name: "pathOrId" }),
|
|
39643
|
+
force: boolean("force").pipe(withDescription$3("skip the non-TTY guard")),
|
|
39644
|
+
recursive: boolean("recursive")
|
|
39645
|
+
}, ({ target, force, recursive }) => gen(function* () {
|
|
38499
39646
|
if (!force && !process.stdin.isTTY) return yield* fail$2(new ValidationFailed({ message: "refusing to delete without --force in non-TTY context" }));
|
|
38500
39647
|
const api = yield* Api;
|
|
38501
39648
|
const renderer = yield* Renderer;
|
|
38502
|
-
|
|
38503
|
-
yield* api.request(
|
|
38504
|
-
|
|
38505
|
-
|
|
38506
|
-
|
|
39649
|
+
if (isSnowflakeId(target)) yield* api.request(`/snippets/${target}`, { method: "DELETE" });
|
|
39650
|
+
else yield* api.request("/snippets/by-path", {
|
|
39651
|
+
method: "DELETE",
|
|
39652
|
+
query: {
|
|
39653
|
+
path: target,
|
|
39654
|
+
recursive
|
|
39655
|
+
}
|
|
39656
|
+
});
|
|
39657
|
+
yield* renderer.emitSuccess({ deleted: target });
|
|
39658
|
+
})).pipe(withDescription("delete a snippet path"));
|
|
39659
|
+
const edit = make$14("edit", { target: text$6({ name: "pathOrId" }) }, ({ target }) => gen(function* () {
|
|
38507
39660
|
const api = yield* Api;
|
|
38508
39661
|
const editor = yield* Editor;
|
|
38509
39662
|
const renderer = yield* Renderer;
|
|
38510
|
-
const
|
|
38511
|
-
const current = unwrapDoc(yield* api.request(`/snippets/${id}`));
|
|
39663
|
+
const current = unwrapDoc(yield* api.request(isSnowflakeId(target) ? `/snippets/${target}` : "/snippets/by-path", isSnowflakeId(target) ? void 0 : { query: { path: target } }));
|
|
38512
39664
|
const initial = typeof current.raw === "string" ? current.raw : "";
|
|
38513
39665
|
const next = yield* editor.openEditor({
|
|
38514
|
-
filename: `snippet
|
|
39666
|
+
filename: `snippet.${extForType(current.type)}`,
|
|
38515
39667
|
initialContent: initial
|
|
38516
39668
|
});
|
|
38517
39669
|
if (next.trim() === initial.trim()) {
|
|
@@ -38522,62 +39674,164 @@ const edit = make$14("edit", { target: text$6({ name: "idOrRefName" }) }, ({ tar
|
|
|
38522
39674
|
...pickSnippetFields(current),
|
|
38523
39675
|
raw: next
|
|
38524
39676
|
};
|
|
38525
|
-
const res = yield* api.request(`/snippets/${
|
|
39677
|
+
const res = yield* api.request(isSnowflakeId(target) ? `/snippets/${target}` : "/snippets/by-path", {
|
|
38526
39678
|
method: "PUT",
|
|
38527
39679
|
body
|
|
38528
39680
|
});
|
|
38529
39681
|
yield* renderer.emitSuccess(res);
|
|
38530
39682
|
})).pipe(withDescription("edit snippet content via $EDITOR"));
|
|
38531
|
-
const get$1 = make$14("get", { target: text$6({ name: "
|
|
39683
|
+
const get$1 = make$14("get", { target: text$6({ name: "pathOrId" }) }, ({ target }) => gen(function* () {
|
|
38532
39684
|
const api = yield* Api;
|
|
38533
39685
|
const renderer = yield* Renderer;
|
|
38534
|
-
const
|
|
38535
|
-
const res = yield* api.request(`/snippets/${id}`);
|
|
39686
|
+
const res = yield* api.request(isSnowflakeId(target) ? `/snippets/${target}` : "/snippets/by-path", isSnowflakeId(target) ? void 0 : { query: { path: target } });
|
|
38536
39687
|
yield* renderer.emitSuccess(res);
|
|
38537
|
-
})).pipe(withDescription("get a snippet by
|
|
39688
|
+
})).pipe(withDescription("get a snippet by path or id"));
|
|
38538
39689
|
//#endregion
|
|
38539
39690
|
//#region src/cli/snippet/list.ts
|
|
38540
|
-
const
|
|
38541
|
-
const
|
|
38542
|
-
const
|
|
39691
|
+
const prefix = text$6({ name: "prefix" }).pipe(optional$6);
|
|
39692
|
+
const limit = integer("limit").pipe(optional$4);
|
|
39693
|
+
const recursive$1 = boolean("recursive");
|
|
38543
39694
|
const unwrap = (value) => getOrUndefined(value);
|
|
38544
|
-
const list$1 = make$14("
|
|
38545
|
-
|
|
38546
|
-
|
|
38547
|
-
|
|
38548
|
-
}, ({
|
|
39695
|
+
const list$1 = make$14("ls", {
|
|
39696
|
+
prefix,
|
|
39697
|
+
limit,
|
|
39698
|
+
recursive: recursive$1
|
|
39699
|
+
}, ({ prefix, limit, recursive }) => gen(function* () {
|
|
38549
39700
|
const api = yield* Api;
|
|
38550
39701
|
const renderer = yield* Renderer;
|
|
38551
|
-
const res = yield* api.request(
|
|
38552
|
-
|
|
38553
|
-
|
|
39702
|
+
const res = yield* api.request("/snippets", { query: {
|
|
39703
|
+
prefix: unwrap(prefix),
|
|
39704
|
+
limit: unwrap(limit),
|
|
39705
|
+
recursive
|
|
38554
39706
|
} });
|
|
38555
39707
|
yield* renderer.emitSuccess(res);
|
|
38556
|
-
})).pipe(withDescription("list
|
|
38557
|
-
|
|
38558
|
-
|
|
38559
|
-
|
|
38560
|
-
|
|
38561
|
-
|
|
38562
|
-
|
|
39708
|
+
})).pipe(withDescription("list snippet VFS paths"));
|
|
39709
|
+
//#endregion
|
|
39710
|
+
//#region src/cli/snippet/_sync.ts
|
|
39711
|
+
const IGNORED_NAMES = new Set([
|
|
39712
|
+
".git",
|
|
39713
|
+
"node_modules",
|
|
39714
|
+
"__pycache__",
|
|
39715
|
+
".DS_Store"
|
|
39716
|
+
]);
|
|
39717
|
+
function normalizeRemotePrefix(prefix) {
|
|
39718
|
+
const normalized = prefix.replaceAll(/^\/+|\/+$/g, "");
|
|
39719
|
+
return normalized ? `${normalized}/` : "";
|
|
39720
|
+
}
|
|
39721
|
+
function detectSnippetType(remotePath, raw) {
|
|
39722
|
+
if (remotePath.endsWith("/SKILL.md") && raw.startsWith("---\n")) return "skill";
|
|
39723
|
+
if (remotePath.endsWith(".json")) return "json";
|
|
39724
|
+
if (remotePath.endsWith(".json5")) return "json5";
|
|
39725
|
+
if (remotePath.endsWith(".yaml") || remotePath.endsWith(".yml")) return "yaml";
|
|
39726
|
+
return "text";
|
|
39727
|
+
}
|
|
39728
|
+
async function walkTextFiles(root) {
|
|
39729
|
+
const files = [];
|
|
39730
|
+
async function visit(current) {
|
|
39731
|
+
const entries = await fs$1.readdir(current, { withFileTypes: true });
|
|
39732
|
+
for (const entry of entries) {
|
|
39733
|
+
if (IGNORED_NAMES.has(entry.name)) continue;
|
|
39734
|
+
const fullPath = path.join(current, entry.name);
|
|
39735
|
+
if (entry.isDirectory()) await visit(fullPath);
|
|
39736
|
+
else if (entry.isFile()) files.push(fullPath);
|
|
39737
|
+
}
|
|
39738
|
+
}
|
|
39739
|
+
await visit(root);
|
|
39740
|
+
return files.sort();
|
|
39741
|
+
}
|
|
39742
|
+
function toRemotePath(prefix, localRoot, file) {
|
|
39743
|
+
const relative = path.relative(localRoot, file).split(path.sep).join("/");
|
|
39744
|
+
return `${normalizeRemotePrefix(prefix)}${relative}`;
|
|
39745
|
+
}
|
|
39746
|
+
function toLocalPath(localRoot, prefix, remotePath) {
|
|
39747
|
+
const normalizedPrefix = normalizeRemotePrefix(prefix);
|
|
39748
|
+
const relative = normalizedPrefix ? remotePath.slice(normalizedPrefix.length) : remotePath;
|
|
39749
|
+
return path.join(localRoot, ...relative.split("/"));
|
|
39750
|
+
}
|
|
39751
|
+
const pull = make$14("pull", {
|
|
39752
|
+
remotePrefix: text$6({ name: "remotePrefix" }),
|
|
39753
|
+
localDir: text$6({ name: "localDir" }),
|
|
39754
|
+
dryRun: boolean("dry-run")
|
|
39755
|
+
}, ({ remotePrefix, localDir, dryRun }) => gen(function* () {
|
|
38563
39756
|
const api = yield* Api;
|
|
38564
39757
|
const renderer = yield* Renderer;
|
|
38565
|
-
const
|
|
38566
|
-
|
|
38567
|
-
|
|
38568
|
-
|
|
38569
|
-
|
|
38570
|
-
|
|
38571
|
-
|
|
38572
|
-
const
|
|
38573
|
-
|
|
38574
|
-
|
|
38575
|
-
|
|
38576
|
-
|
|
38577
|
-
|
|
39758
|
+
const list = yield* api.request("/snippets", { query: {
|
|
39759
|
+
prefix: remotePrefix,
|
|
39760
|
+
recursive: true,
|
|
39761
|
+
limit: 1e3
|
|
39762
|
+
} });
|
|
39763
|
+
const objects = list?.data?.objects ?? list?.objects ?? [];
|
|
39764
|
+
const planned = [];
|
|
39765
|
+
for (const object of objects) {
|
|
39766
|
+
const detail = yield* api.request("/snippets/by-path", { query: { path: object.path } });
|
|
39767
|
+
const row = detail?.data ?? detail;
|
|
39768
|
+
const raw = typeof row?.raw === "string" ? row.raw : "";
|
|
39769
|
+
const local = toLocalPath(localDir, remotePrefix, object.path);
|
|
39770
|
+
planned.push({
|
|
39771
|
+
remote: object.path,
|
|
39772
|
+
local
|
|
39773
|
+
});
|
|
39774
|
+
if (!dryRun) {
|
|
39775
|
+
yield* tryPromise(() => fs$1.mkdir(path.dirname(local), { recursive: true }));
|
|
39776
|
+
yield* tryPromise(() => fs$1.writeFile(local, raw, "utf8"));
|
|
39777
|
+
}
|
|
39778
|
+
}
|
|
39779
|
+
yield* renderer.emitSuccess({
|
|
39780
|
+
dryRun,
|
|
39781
|
+
pulled: planned
|
|
39782
|
+
});
|
|
39783
|
+
})).pipe(withDescription("pull a snippet VFS prefix into a local directory"));
|
|
39784
|
+
const push = make$14("push", {
|
|
39785
|
+
localDir: text$6({ name: "localDir" }),
|
|
39786
|
+
remotePrefix: text$6({ name: "remotePrefix" }),
|
|
39787
|
+
dryRun: boolean("dry-run"),
|
|
39788
|
+
forceType: choice("type", SNIPPET_TYPES).pipe(optional$4)
|
|
39789
|
+
}, ({ localDir, remotePrefix, dryRun, forceType }) => gen(function* () {
|
|
39790
|
+
const api = yield* Api;
|
|
39791
|
+
const renderer = yield* Renderer;
|
|
39792
|
+
const files = yield* tryPromise(() => walkTextFiles(localDir));
|
|
39793
|
+
const typeOverride = getOrUndefined(forceType);
|
|
39794
|
+
const planned = [];
|
|
39795
|
+
for (const file of files) {
|
|
39796
|
+
const raw = yield* tryPromise(() => fs$1.readFile(file, "utf8"));
|
|
39797
|
+
const remote = toRemotePath(remotePrefix, localDir, file);
|
|
39798
|
+
const type = typeOverride ?? detectSnippetType(remote, raw);
|
|
39799
|
+
planned.push({
|
|
39800
|
+
local: file,
|
|
39801
|
+
remote,
|
|
39802
|
+
type
|
|
39803
|
+
});
|
|
39804
|
+
if (!dryRun) yield* api.request("/snippets/by-path", {
|
|
39805
|
+
method: "PUT",
|
|
39806
|
+
body: {
|
|
39807
|
+
path: remote,
|
|
39808
|
+
raw,
|
|
39809
|
+
type
|
|
39810
|
+
}
|
|
39811
|
+
});
|
|
39812
|
+
}
|
|
39813
|
+
yield* renderer.emitSuccess({
|
|
39814
|
+
dryRun,
|
|
39815
|
+
pushed: planned
|
|
39816
|
+
});
|
|
39817
|
+
})).pipe(withDescription("push a local directory into snippet VFS"));
|
|
39818
|
+
const update$1 = make$14("mv", {
|
|
39819
|
+
from: text$6({ name: "from" }),
|
|
39820
|
+
to: text$6({ name: "to" }),
|
|
39821
|
+
recursive: boolean("recursive")
|
|
39822
|
+
}, ({ from, to, recursive }) => gen(function* () {
|
|
39823
|
+
const api = yield* Api;
|
|
39824
|
+
const renderer = yield* Renderer;
|
|
39825
|
+
const res = yield* api.request("/snippets/move", {
|
|
39826
|
+
method: "POST",
|
|
39827
|
+
body: {
|
|
39828
|
+
from,
|
|
39829
|
+
to,
|
|
39830
|
+
recursive
|
|
39831
|
+
}
|
|
38578
39832
|
});
|
|
38579
39833
|
yield* renderer.emitSuccess(res);
|
|
38580
|
-
})).pipe(withDescription("
|
|
39834
|
+
})).pipe(withDescription("move or rename a snippet path"));
|
|
38581
39835
|
//#endregion
|
|
38582
39836
|
//#region src/cli/snippet/index.ts
|
|
38583
39837
|
const help$1 = registerCommandHelp({
|
|
@@ -38586,47 +39840,68 @@ const help$1 = registerCommandHelp({
|
|
|
38586
39840
|
skillChapter: "commands-snippet",
|
|
38587
39841
|
verbs: [
|
|
38588
39842
|
{
|
|
38589
|
-
name: "
|
|
39843
|
+
name: "ls",
|
|
38590
39844
|
args: [
|
|
38591
|
-
"[
|
|
38592
|
-
"[--
|
|
38593
|
-
"[--
|
|
39845
|
+
"[prefix]",
|
|
39846
|
+
"[--recursive]",
|
|
39847
|
+
"[--limit <n>]"
|
|
38594
39848
|
],
|
|
38595
|
-
description: "list
|
|
39849
|
+
description: "list snippet paths"
|
|
38596
39850
|
},
|
|
38597
39851
|
{
|
|
38598
39852
|
name: "get",
|
|
38599
|
-
args: ["<id
|
|
39853
|
+
args: ["<path|id>"],
|
|
38600
39854
|
description: "show a single snippet (full, includes raw)"
|
|
38601
39855
|
},
|
|
38602
39856
|
{
|
|
38603
|
-
name: "
|
|
39857
|
+
name: "put",
|
|
38604
39858
|
args: [
|
|
38605
|
-
"
|
|
38606
|
-
"[--reference <r>]",
|
|
39859
|
+
"<path>",
|
|
38607
39860
|
"[--type <t>]",
|
|
38608
|
-
"[--file <path|-> | --raw <text>
|
|
38609
|
-
"..."
|
|
39861
|
+
"[--file <path|-> | --raw <text>]"
|
|
38610
39862
|
],
|
|
38611
|
-
description: "
|
|
39863
|
+
description: "write a snippet"
|
|
38612
39864
|
},
|
|
38613
39865
|
{
|
|
38614
|
-
name: "
|
|
39866
|
+
name: "mv",
|
|
38615
39867
|
args: [
|
|
38616
|
-
"<
|
|
38617
|
-
"
|
|
38618
|
-
"
|
|
39868
|
+
"<from>",
|
|
39869
|
+
"<to>",
|
|
39870
|
+
"[--recursive]"
|
|
39871
|
+
],
|
|
39872
|
+
description: "move a snippet path"
|
|
39873
|
+
},
|
|
39874
|
+
{
|
|
39875
|
+
name: "push",
|
|
39876
|
+
args: [
|
|
39877
|
+
"<local-dir>",
|
|
39878
|
+
"<remote-prefix>",
|
|
39879
|
+
"[--dry-run]",
|
|
39880
|
+
"[--type <t>]"
|
|
39881
|
+
],
|
|
39882
|
+
description: "sync local files into snippet VFS"
|
|
39883
|
+
},
|
|
39884
|
+
{
|
|
39885
|
+
name: "pull",
|
|
39886
|
+
args: [
|
|
39887
|
+
"<remote-prefix>",
|
|
39888
|
+
"<local-dir>",
|
|
39889
|
+
"[--dry-run]"
|
|
38619
39890
|
],
|
|
38620
|
-
description: "
|
|
39891
|
+
description: "sync snippet VFS files into a local directory"
|
|
38621
39892
|
},
|
|
38622
39893
|
{
|
|
38623
39894
|
name: "edit",
|
|
38624
|
-
args: ["<id
|
|
39895
|
+
args: ["<path|id>"],
|
|
38625
39896
|
description: "edit snippet content via $EDITOR"
|
|
38626
39897
|
},
|
|
38627
39898
|
{
|
|
38628
|
-
name: "
|
|
38629
|
-
args: [
|
|
39899
|
+
name: "rm",
|
|
39900
|
+
args: [
|
|
39901
|
+
"<path|id>",
|
|
39902
|
+
"[--recursive]",
|
|
39903
|
+
"[--force]"
|
|
39904
|
+
],
|
|
38630
39905
|
description: "delete a snippet"
|
|
38631
39906
|
}
|
|
38632
39907
|
]
|
|
@@ -38636,6 +39911,8 @@ const snippetCmd = make$14("snippet").pipe(withDescription(help$1.description),
|
|
|
38636
39911
|
get$1,
|
|
38637
39912
|
create$1,
|
|
38638
39913
|
update$1,
|
|
39914
|
+
push,
|
|
39915
|
+
pull,
|
|
38639
39916
|
edit,
|
|
38640
39917
|
del$1
|
|
38641
39918
|
]));
|
|
@@ -41320,6 +42597,10 @@ const resolveCliVersion = () => {
|
|
|
41320
42597
|
return "0.0.0-unknown";
|
|
41321
42598
|
};
|
|
41322
42599
|
const CLI_VERSION = resolveCliVersion();
|
|
42600
|
+
for (const stream of [process.stdout, process.stderr]) {
|
|
42601
|
+
const handle = stream._handle;
|
|
42602
|
+
if (handle && typeof handle.setBlocking === "function") handle.setBlocking(true);
|
|
42603
|
+
}
|
|
41323
42604
|
if (import.meta.url.endsWith("/src/bin/mxs.ts")) process.env[LOCAL_DEV_ENV] ??= "1";
|
|
41324
42605
|
const rootCmd = make$14("mxs", {}, () => flatMap$1(Renderer, (r) => r.emitInfo("mxs: mx-space CLI — see `mxs --help` for the command list, or `mxs <command> --help` for details."))).pipe(withDescription("mx-space CLI — manage your mx-core blog from the command line."), withSubcommands([
|
|
41325
42606
|
authCmd,
|