@deslop/workbench 0.0.360 → 0.0.381
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/dist/anthropic-C02QVQ9u.mjs +6313 -0
- package/dist/azure-openai-responses-CUFLNwdy.mjs +207 -0
- package/dist/client/assets/{(home)-DVKAaI4b.js → (home)-BL3S5BVq.js} +1 -1
- package/dist/client/assets/-workbench-terminal-YB9hQXjr.js +145 -0
- package/dist/client/assets/agent-BmwIVlVZ.js +1 -0
- package/dist/client/assets/agent-CE67X_hb.js +2 -0
- package/dist/client/assets/{arc-CuHXSNPr.js → arc-BjSQqbzd.js} +1 -1
- package/dist/client/assets/architectureDiagram-3BPJPVTR-CTWT1AFv.js +36 -0
- package/dist/client/assets/{blockDiagram-GPEHLZMM-D3jiL-uN.js → blockDiagram-GPEHLZMM-CISQUfO9.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-bA47L7u8.js → c4Diagram-AAUBKEIU-Ct3OGD9a.js} +1 -1
- package/dist/client/assets/channel-S3CdaK6m.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-optplvap.js → chunk-2J33WTMH-BUMgKaV6.js} +1 -1
- package/dist/client/assets/{chunk-3OPIFGDE-k7mTnOn5.js → chunk-3OPIFGDE-BlIdNnu8.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-Co5qfYem.js → chunk-4BX2VUAB-CiBu5cRv.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-7AWIUH7L.js → chunk-55IACEB6-nU8KvKB3.js} +1 -1
- package/dist/client/assets/{chunk-5ZQYHXKU-Bub4jU0C.js → chunk-5ZQYHXKU-DbN9DSns.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-DcofuxtV.js → chunk-727SXJPM-DkPu5ecB.js} +2 -2
- package/dist/client/assets/{chunk-AQP2D5EJ-CBwGmuY5.js → chunk-AQP2D5EJ-B8lrSg7a.js} +1 -1
- package/dist/client/assets/{chunk-BSJP7CBP-BInTsaMb.js → chunk-BSJP7CBP-C450xCVa.js} +1 -1
- package/dist/client/assets/{chunk-CSCIHK7Q-BTHSw3Fl.js → chunk-CSCIHK7Q-DoGVP1BZ.js} +2 -2
- package/dist/client/assets/{chunk-FMBD7UC4-BQD4ioRx.js → chunk-FMBD7UC4-cqorOok8.js} +1 -1
- package/dist/client/assets/{chunk-KSCS5N6A-CUDSaUx0.js → chunk-KSCS5N6A-dbmnxO_p.js} +1 -1
- package/dist/client/assets/{chunk-L5ZTLDWV-D0-tvK0S.js → chunk-L5ZTLDWV-D9P-YjsA.js} +1 -1
- package/dist/client/assets/{chunk-LZXEDZCA-BkJ5xlLM.js → chunk-LZXEDZCA-BdVT_AWc.js} +2 -2
- package/dist/client/assets/{chunk-ND2GUHAM-COdW9HuZ.js → chunk-ND2GUHAM-CmHIi1wD.js} +1 -1
- package/dist/client/assets/{chunk-NZK2D7GU-Byrnkfto.js → chunk-NZK2D7GU-hkTOm2qR.js} +1 -1
- package/dist/client/assets/{chunk-O5CBEL6O-C_CProRX.js → chunk-O5CBEL6O-D1fDxsSH.js} +1 -1
- package/dist/client/assets/chunk-QZHKN3VN-BS_CF_l3.js +1 -0
- package/dist/client/assets/chunk-WU5MYG2G-CtG2KJlt.js +1 -0
- package/dist/client/assets/{chunk-XPW4576I-DWr3727k.js → chunk-XPW4576I-BjBK3ctW.js} +2 -2
- package/dist/client/assets/classDiagram-4FO5ZUOK-BdTSUdNF.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-BdTSUdNF.js +1 -0
- package/dist/client/assets/compiler-runtime-CLAvuQ-D.js +1 -0
- package/dist/client/assets/cose-bilkent-S5V4N54A-BGt2II16.js +1 -0
- package/dist/client/assets/{cytoscape.esm-FqbQrHcz.js → cytoscape.esm-Kic9WIU3.js} +2 -2
- package/dist/client/assets/{dagre-BM42HDAG-Bwiv8kFL.js → dagre-BM42HDAG-CN7Tha00.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-BY9KXQPi.js → diagram-2AECGRRQ-DnobmroZ.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-C-jmG8LL.js → diagram-5GNKFQAL-D6NqAeoi.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-qDHWGr5P.js → diagram-KO2AKTUF-y8QX4vEL.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-Dg8zuIuL.js → diagram-LMA3HP47-DAEPoAHp.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-DupmLmKo.js → diagram-OG6HWLK6-B3KiYvxM.js} +1 -1
- package/dist/client/assets/dialog-B0kBnYwI.js +153 -0
- package/dist/client/assets/diff-BP9B4x7R.js +2 -0
- package/dist/client/assets/diff-OmMK6IL0.js +221 -0
- package/dist/client/assets/dist-D9sYb5Oa.js +1 -0
- package/dist/client/assets/{erDiagram-TEJ5UH35-DcYoMsDA.js → erDiagram-TEJ5UH35-CbzdEpkS.js} +1 -1
- package/dist/client/assets/external-link-D7Q28KpR.js +1 -0
- package/dist/client/assets/fallbacks-DwGmG_0c.js +16 -0
- package/dist/client/assets/{flowDiagram-I6XJVG4X-xLfWiyaL.js → flowDiagram-I6XJVG4X-C2H7PQev.js} +1 -1
- package/dist/client/assets/ganttDiagram-6RSMTGT7-BZql2QFP.js +292 -0
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DE7nmb1q.js → gitGraphDiagram-PVQCEYII-d2_5HIIo.js} +1 -1
- package/dist/client/assets/{index-D1icept3.js → index-Cc-cDoXa.js} +4 -4
- package/dist/client/assets/index-DT_QSnKQ.css +2 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-CUzdfhph.js → infoDiagram-5YYISTIA-DaDFMb3D.js} +1 -1
- package/dist/client/assets/input-CEh4Uy0l.js +1 -0
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-D3h5fT3O.js → ishikawaDiagram-YF4QCWOH-7tWPtPSR.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-DXqP7IZk.js → journeyDiagram-JHISSGLW-CYDeiigr.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-BBdz3OGi.js → kanban-definition-UN3LZRKU-BFoF4JfY.js} +3 -3
- package/dist/client/assets/{katex-Vhh-h91d.js → katex-CddkPoXu.js} +1 -1
- package/dist/client/assets/{line-D2nnU070.js → line-CcJ0IOWh.js} +1 -1
- package/dist/client/assets/{linear-BifnMVyn.js → linear-Ct8JHF0c.js} +1 -1
- package/dist/client/assets/mermaid-parser.core-CKHoAf1J.js +2 -2
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-BAbACAeS.js → mindmap-definition-RKZ34NQL-DTgZ_Z5F.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-YjWBEaV3.js → pieDiagram-4H26LBE5-BmpbjVUG.js} +1 -1
- package/dist/client/assets/pierre-dark-vibrant-D4RhcSIK.js +1 -0
- package/dist/client/assets/pierre-light-vibrant-B76X7i5Y.js +1 -0
- package/dist/client/assets/portless-4_iTgOr5.js +1 -0
- package/dist/client/assets/portless-qyhmpSUj.js +2 -0
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-0qpR8bhI.js → quadrantDiagram-W4KKPZXB-BncnX7WL.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-UxrH60_h.js → requirementDiagram-4Y6WPE33-C4viwYDb.js} +1 -1
- package/dist/client/assets/resizable-A9BpOcmt.js +1 -0
- package/dist/client/assets/route-Da0uHKH9.js +45 -0
- package/dist/client/assets/route-ULg8h9n0.js +2 -0
- package/dist/client/assets/run-CCCofwDU.js +2 -0
- package/dist/client/assets/run-D7w-8aQA.js +1 -0
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-CtfCq9EV.js → sankeyDiagram-5OEKKPKP-cs1kWOqp.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BgLwmDnV.js → sequenceDiagram-3UESZ5HK-D7Bj1Dg6.js} +1 -1
- package/dist/client/assets/sonner-DgKrvTU1.js +1 -0
- package/dist/client/assets/src-DzxfdEt6.js +1 -0
- package/dist/client/assets/state-_2CmL5IM.js +2 -0
- package/dist/client/assets/{stateDiagram-AJRCARHV--lvnWH2s.js → stateDiagram-AJRCARHV-xBL-crbl.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-ZbAyaVmU.js +1 -0
- package/dist/client/assets/terminal-DJ8tjXNh.js +1 -0
- package/dist/client/assets/terminal-Dx10AUUW.js +2 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-BbIMEZmJ.js → timeline-definition-PNZ67QCA-Bs3JkoMQ.js} +2 -2
- package/dist/client/assets/triangle-alert-cDPYgb7f.js +1 -0
- package/dist/client/assets/{vennDiagram-CIIHVFJN-ClrNZ6mc.js → vennDiagram-CIIHVFJN-D25dPloy.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-B104yVOC.js → wardleyDiagram-YWT4CUSO-B7X6xZZ7.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-BBRSu-ZO.js → xychartDiagram-2RQKCTM6-Cgc-2R8L.js} +1 -1
- package/dist/client/index.html +13 -14
- package/dist/completionchunk-DDfxP5hO.mjs +5196 -0
- package/dist/dist-CsBDFjO2.mjs +1163 -0
- package/dist/{execAsync-BeHTdVKh.mjs → execAsync-B-b5b4hb.mjs} +2 -2
- package/dist/from-DGwFTZmN.mjs +3845 -0
- package/dist/{getMachineId-bsd-8V0SSHI2.mjs → getMachineId-bsd-C-aUDBo5.mjs} +4 -3
- package/dist/{getMachineId-darwin-fwMRmXNE.mjs → getMachineId-darwin-CQg0u9gI.mjs} +4 -3
- package/dist/{getMachineId-linux-BglPdw6k.mjs → getMachineId-linux-DQmpbzHz.mjs} +3 -2
- package/dist/{getMachineId-unsupported-B6r8oWEG.mjs → getMachineId-unsupported-BT4Te_jg.mjs} +3 -2
- package/dist/{getMachineId-win-Bvbq3C3K.mjs → getMachineId-win-zoUdci1a.mjs} +4 -3
- package/dist/github-copilot-headers-B--aVYl2.mjs +39 -0
- package/dist/google-DHtiCcEt.mjs +348 -0
- package/dist/google-shared-BT0mQb3v.mjs +25358 -0
- package/dist/google-vertex-CRkz0MgQ.mjs +391 -0
- package/dist/hash-CDrrQIkY.mjs +17 -0
- package/dist/headers-m19bM8_9.mjs +9 -0
- package/dist/mistral-DXtHhhUc.mjs +36806 -0
- package/dist/multipart-parser-6y-zJbR0.mjs +295 -0
- package/dist/openai-CUH8rb7p.mjs +6671 -0
- package/dist/openai-codex-responses-BSLixEC8.mjs +1081 -0
- package/dist/openai-completions-CE-LDmL4.mjs +735 -0
- package/dist/openai-prompt-cache-6hf3xB_x.mjs +9 -0
- package/dist/openai-responses-41QiypX_.mjs +217 -0
- package/dist/openai-responses-shared-BAoGGIxP.mjs +415 -0
- package/dist/openrouter-CDq1vETJ.mjs +125 -0
- package/dist/otel-ugdFQeJO.mjs +23177 -0
- package/dist/photon_rs-D6BNoOSO.mjs +4253 -0
- package/dist/rolldown-runtime-EQORzF3F.mjs +38 -0
- package/dist/sanitize-unicode-CPcy0g31.mjs +27 -0
- package/dist/server.js +247457 -56643
- package/dist/src-BHoXDvRK.mjs +1178 -0
- package/dist/transform-messages-CUKh2_5w.mjs +188 -0
- package/package.json +4 -3
- package/dist/client/assets/-workbench-terminal-CoufoT41.js +0 -145
- package/dist/client/assets/agent-B0AsYIb3.js +0 -2
- package/dist/client/assets/agent-DCVbbaGs.js +0 -1
- package/dist/client/assets/architectureDiagram-3BPJPVTR-hs4IN-ZW.js +0 -36
- package/dist/client/assets/button-Dz6Az3h_.js +0 -16
- package/dist/client/assets/channel-CHiC1IgU.js +0 -1
- package/dist/client/assets/chunk-QZHKN3VN-SFi3gsXX.js +0 -1
- package/dist/client/assets/chunk-WU5MYG2G-OzrGGim9.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-DvZGz7Ek.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DvZGz7Ek.js +0 -1
- package/dist/client/assets/compiler-runtime-rGeCHUuX.js +0 -1
- package/dist/client/assets/cose-bilkent-S5V4N54A-BzitJXTQ.js +0 -1
- package/dist/client/assets/diff-BqnMP7Ys.js +0 -217
- package/dist/client/assets/diff-CLnQZZVT.js +0 -2
- package/dist/client/assets/dist-lRkD-JPF.js +0 -1
- package/dist/client/assets/external-link-DPI4TAq4.js +0 -1
- package/dist/client/assets/fallbacks-uU4M5NOw.js +0 -1
- package/dist/client/assets/ganttDiagram-6RSMTGT7-hA3inn7u.js +0 -292
- package/dist/client/assets/index-DNWcrdqu.css +0 -2
- package/dist/client/assets/input-group-1-P7Y_75.js +0 -153
- package/dist/client/assets/loader-circle-BxillczB.js +0 -1
- package/dist/client/assets/portless-ClPWjTC4.js +0 -1
- package/dist/client/assets/portless-QJD7ZmA9.js +0 -2
- package/dist/client/assets/resizable-BaJ5ba6-.js +0 -1
- package/dist/client/assets/route-C-L2dkin.js +0 -45
- package/dist/client/assets/route-b5JXfzPO.js +0 -2
- package/dist/client/assets/run-C7DiKMnt.js +0 -1
- package/dist/client/assets/run-Dt91HvlA.js +0 -2
- package/dist/client/assets/src-oaGqIoNi.js +0 -1
- package/dist/client/assets/state-CVjPP5QG.js +0 -2
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BggoNPhO.js +0 -1
- package/dist/client/assets/terminal-C4sv4xT5.js +0 -2
- package/dist/client/assets/terminal-kxE_eoTZ.js +0 -1
- package/dist/client/assets/triangle-alert-CTEZG9zF.js +0 -1
- /package/dist/client/assets/{chunk-QTnfLwEv.js → rolldown-runtime-QTnfLwEv.js} +0 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
#!/usr/bin/env -S node --max-old-space-size=16384 --heapsnapshot-near-heap-limit=3 --report-on-fatalerror
|
|
2
|
+
import { n as __esmMin } from "./rolldown-runtime-EQORzF3F.mjs";
|
|
3
|
+
import { a as File, i as init_esm_min, n as FormData, t as init_from } from "./from-DGwFTZmN.mjs";
|
|
4
|
+
//#region ../../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/multipart-parser.js
|
|
5
|
+
function _fileName(headerValue) {
|
|
6
|
+
const m = headerValue.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);
|
|
7
|
+
if (!m) return;
|
|
8
|
+
const match = m[2] || m[3] || "";
|
|
9
|
+
let filename = match.slice(match.lastIndexOf("\\") + 1);
|
|
10
|
+
filename = filename.replace(/%22/g, "\"");
|
|
11
|
+
filename = filename.replace(/&#(\d{4});/g, (m, code) => {
|
|
12
|
+
return String.fromCharCode(code);
|
|
13
|
+
});
|
|
14
|
+
return filename;
|
|
15
|
+
}
|
|
16
|
+
async function toFormData(Body, ct) {
|
|
17
|
+
if (!/multipart/i.test(ct)) throw new TypeError("Failed to fetch");
|
|
18
|
+
const m = ct.match(/boundary=(?:"([^"]+)"|([^;]+))/i);
|
|
19
|
+
if (!m) throw new TypeError("no or bad content-type header, no multipart boundary");
|
|
20
|
+
const parser = new MultipartParser(m[1] || m[2]);
|
|
21
|
+
let headerField;
|
|
22
|
+
let headerValue;
|
|
23
|
+
let entryValue;
|
|
24
|
+
let entryName;
|
|
25
|
+
let contentType;
|
|
26
|
+
let filename;
|
|
27
|
+
const entryChunks = [];
|
|
28
|
+
const formData = new FormData();
|
|
29
|
+
const onPartData = (ui8a) => {
|
|
30
|
+
entryValue += decoder.decode(ui8a, { stream: true });
|
|
31
|
+
};
|
|
32
|
+
const appendToFile = (ui8a) => {
|
|
33
|
+
entryChunks.push(ui8a);
|
|
34
|
+
};
|
|
35
|
+
const appendFileToFormData = () => {
|
|
36
|
+
const file = new File(entryChunks, filename, { type: contentType });
|
|
37
|
+
formData.append(entryName, file);
|
|
38
|
+
};
|
|
39
|
+
const appendEntryToFormData = () => {
|
|
40
|
+
formData.append(entryName, entryValue);
|
|
41
|
+
};
|
|
42
|
+
const decoder = new TextDecoder("utf-8");
|
|
43
|
+
decoder.decode();
|
|
44
|
+
parser.onPartBegin = function() {
|
|
45
|
+
parser.onPartData = onPartData;
|
|
46
|
+
parser.onPartEnd = appendEntryToFormData;
|
|
47
|
+
headerField = "";
|
|
48
|
+
headerValue = "";
|
|
49
|
+
entryValue = "";
|
|
50
|
+
entryName = "";
|
|
51
|
+
contentType = "";
|
|
52
|
+
filename = null;
|
|
53
|
+
entryChunks.length = 0;
|
|
54
|
+
};
|
|
55
|
+
parser.onHeaderField = function(ui8a) {
|
|
56
|
+
headerField += decoder.decode(ui8a, { stream: true });
|
|
57
|
+
};
|
|
58
|
+
parser.onHeaderValue = function(ui8a) {
|
|
59
|
+
headerValue += decoder.decode(ui8a, { stream: true });
|
|
60
|
+
};
|
|
61
|
+
parser.onHeaderEnd = function() {
|
|
62
|
+
headerValue += decoder.decode();
|
|
63
|
+
headerField = headerField.toLowerCase();
|
|
64
|
+
if (headerField === "content-disposition") {
|
|
65
|
+
const m = headerValue.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i);
|
|
66
|
+
if (m) entryName = m[2] || m[3] || "";
|
|
67
|
+
filename = _fileName(headerValue);
|
|
68
|
+
if (filename) {
|
|
69
|
+
parser.onPartData = appendToFile;
|
|
70
|
+
parser.onPartEnd = appendFileToFormData;
|
|
71
|
+
}
|
|
72
|
+
} else if (headerField === "content-type") contentType = headerValue;
|
|
73
|
+
headerValue = "";
|
|
74
|
+
headerField = "";
|
|
75
|
+
};
|
|
76
|
+
for await (const chunk of Body) parser.write(chunk);
|
|
77
|
+
parser.end();
|
|
78
|
+
return formData;
|
|
79
|
+
}
|
|
80
|
+
var s, S, f, F, LF, CR, SPACE, HYPHEN, COLON, A, Z, lower, noop, MultipartParser;
|
|
81
|
+
//#endregion
|
|
82
|
+
__esmMin((() => {
|
|
83
|
+
init_from();
|
|
84
|
+
init_esm_min();
|
|
85
|
+
s = 0;
|
|
86
|
+
S = {
|
|
87
|
+
START_BOUNDARY: s++,
|
|
88
|
+
HEADER_FIELD_START: s++,
|
|
89
|
+
HEADER_FIELD: s++,
|
|
90
|
+
HEADER_VALUE_START: s++,
|
|
91
|
+
HEADER_VALUE: s++,
|
|
92
|
+
HEADER_VALUE_ALMOST_DONE: s++,
|
|
93
|
+
HEADERS_ALMOST_DONE: s++,
|
|
94
|
+
PART_DATA_START: s++,
|
|
95
|
+
PART_DATA: s++,
|
|
96
|
+
END: s++
|
|
97
|
+
};
|
|
98
|
+
f = 1;
|
|
99
|
+
F = {
|
|
100
|
+
PART_BOUNDARY: f,
|
|
101
|
+
LAST_BOUNDARY: f *= 2
|
|
102
|
+
};
|
|
103
|
+
LF = 10;
|
|
104
|
+
CR = 13;
|
|
105
|
+
SPACE = 32;
|
|
106
|
+
HYPHEN = 45;
|
|
107
|
+
COLON = 58;
|
|
108
|
+
A = 97;
|
|
109
|
+
Z = 122;
|
|
110
|
+
lower = (c) => c | 32;
|
|
111
|
+
noop = () => {};
|
|
112
|
+
MultipartParser = class {
|
|
113
|
+
/**
|
|
114
|
+
* @param {string} boundary
|
|
115
|
+
*/
|
|
116
|
+
constructor(boundary) {
|
|
117
|
+
this.index = 0;
|
|
118
|
+
this.flags = 0;
|
|
119
|
+
this.onHeaderEnd = noop;
|
|
120
|
+
this.onHeaderField = noop;
|
|
121
|
+
this.onHeadersEnd = noop;
|
|
122
|
+
this.onHeaderValue = noop;
|
|
123
|
+
this.onPartBegin = noop;
|
|
124
|
+
this.onPartData = noop;
|
|
125
|
+
this.onPartEnd = noop;
|
|
126
|
+
this.boundaryChars = {};
|
|
127
|
+
boundary = "\r\n--" + boundary;
|
|
128
|
+
const ui8a = new Uint8Array(boundary.length);
|
|
129
|
+
for (let i = 0; i < boundary.length; i++) {
|
|
130
|
+
ui8a[i] = boundary.charCodeAt(i);
|
|
131
|
+
this.boundaryChars[ui8a[i]] = true;
|
|
132
|
+
}
|
|
133
|
+
this.boundary = ui8a;
|
|
134
|
+
this.lookbehind = new Uint8Array(this.boundary.length + 8);
|
|
135
|
+
this.state = S.START_BOUNDARY;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* @param {Uint8Array} data
|
|
139
|
+
*/
|
|
140
|
+
write(data) {
|
|
141
|
+
let i = 0;
|
|
142
|
+
const length_ = data.length;
|
|
143
|
+
let previousIndex = this.index;
|
|
144
|
+
let { lookbehind, boundary, boundaryChars, index, state, flags } = this;
|
|
145
|
+
const boundaryLength = this.boundary.length;
|
|
146
|
+
const boundaryEnd = boundaryLength - 1;
|
|
147
|
+
const bufferLength = data.length;
|
|
148
|
+
let c;
|
|
149
|
+
let cl;
|
|
150
|
+
const mark = (name) => {
|
|
151
|
+
this[name + "Mark"] = i;
|
|
152
|
+
};
|
|
153
|
+
const clear = (name) => {
|
|
154
|
+
delete this[name + "Mark"];
|
|
155
|
+
};
|
|
156
|
+
const callback = (callbackSymbol, start, end, ui8a) => {
|
|
157
|
+
if (start === void 0 || start !== end) this[callbackSymbol](ui8a && ui8a.subarray(start, end));
|
|
158
|
+
};
|
|
159
|
+
const dataCallback = (name, clear) => {
|
|
160
|
+
const markSymbol = name + "Mark";
|
|
161
|
+
if (!(markSymbol in this)) return;
|
|
162
|
+
if (clear) {
|
|
163
|
+
callback(name, this[markSymbol], i, data);
|
|
164
|
+
delete this[markSymbol];
|
|
165
|
+
} else {
|
|
166
|
+
callback(name, this[markSymbol], data.length, data);
|
|
167
|
+
this[markSymbol] = 0;
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
for (i = 0; i < length_; i++) {
|
|
171
|
+
c = data[i];
|
|
172
|
+
switch (state) {
|
|
173
|
+
case S.START_BOUNDARY:
|
|
174
|
+
if (index === boundary.length - 2) {
|
|
175
|
+
if (c === HYPHEN) flags |= F.LAST_BOUNDARY;
|
|
176
|
+
else if (c !== CR) return;
|
|
177
|
+
index++;
|
|
178
|
+
break;
|
|
179
|
+
} else if (index - 1 === boundary.length - 2) {
|
|
180
|
+
if (flags & F.LAST_BOUNDARY && c === HYPHEN) {
|
|
181
|
+
state = S.END;
|
|
182
|
+
flags = 0;
|
|
183
|
+
} else if (!(flags & F.LAST_BOUNDARY) && c === LF) {
|
|
184
|
+
index = 0;
|
|
185
|
+
callback("onPartBegin");
|
|
186
|
+
state = S.HEADER_FIELD_START;
|
|
187
|
+
} else return;
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
if (c !== boundary[index + 2]) index = -2;
|
|
191
|
+
if (c === boundary[index + 2]) index++;
|
|
192
|
+
break;
|
|
193
|
+
case S.HEADER_FIELD_START:
|
|
194
|
+
state = S.HEADER_FIELD;
|
|
195
|
+
mark("onHeaderField");
|
|
196
|
+
index = 0;
|
|
197
|
+
case S.HEADER_FIELD:
|
|
198
|
+
if (c === CR) {
|
|
199
|
+
clear("onHeaderField");
|
|
200
|
+
state = S.HEADERS_ALMOST_DONE;
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
index++;
|
|
204
|
+
if (c === HYPHEN) break;
|
|
205
|
+
if (c === COLON) {
|
|
206
|
+
if (index === 1) return;
|
|
207
|
+
dataCallback("onHeaderField", true);
|
|
208
|
+
state = S.HEADER_VALUE_START;
|
|
209
|
+
break;
|
|
210
|
+
}
|
|
211
|
+
cl = lower(c);
|
|
212
|
+
if (cl < A || cl > Z) return;
|
|
213
|
+
break;
|
|
214
|
+
case S.HEADER_VALUE_START:
|
|
215
|
+
if (c === SPACE) break;
|
|
216
|
+
mark("onHeaderValue");
|
|
217
|
+
state = S.HEADER_VALUE;
|
|
218
|
+
case S.HEADER_VALUE:
|
|
219
|
+
if (c === CR) {
|
|
220
|
+
dataCallback("onHeaderValue", true);
|
|
221
|
+
callback("onHeaderEnd");
|
|
222
|
+
state = S.HEADER_VALUE_ALMOST_DONE;
|
|
223
|
+
}
|
|
224
|
+
break;
|
|
225
|
+
case S.HEADER_VALUE_ALMOST_DONE:
|
|
226
|
+
if (c !== LF) return;
|
|
227
|
+
state = S.HEADER_FIELD_START;
|
|
228
|
+
break;
|
|
229
|
+
case S.HEADERS_ALMOST_DONE:
|
|
230
|
+
if (c !== LF) return;
|
|
231
|
+
callback("onHeadersEnd");
|
|
232
|
+
state = S.PART_DATA_START;
|
|
233
|
+
break;
|
|
234
|
+
case S.PART_DATA_START:
|
|
235
|
+
state = S.PART_DATA;
|
|
236
|
+
mark("onPartData");
|
|
237
|
+
case S.PART_DATA:
|
|
238
|
+
previousIndex = index;
|
|
239
|
+
if (index === 0) {
|
|
240
|
+
i += boundaryEnd;
|
|
241
|
+
while (i < bufferLength && !(data[i] in boundaryChars)) i += boundaryLength;
|
|
242
|
+
i -= boundaryEnd;
|
|
243
|
+
c = data[i];
|
|
244
|
+
}
|
|
245
|
+
if (index < boundary.length) if (boundary[index] === c) {
|
|
246
|
+
if (index === 0) dataCallback("onPartData", true);
|
|
247
|
+
index++;
|
|
248
|
+
} else index = 0;
|
|
249
|
+
else if (index === boundary.length) {
|
|
250
|
+
index++;
|
|
251
|
+
if (c === CR) flags |= F.PART_BOUNDARY;
|
|
252
|
+
else if (c === HYPHEN) flags |= F.LAST_BOUNDARY;
|
|
253
|
+
else index = 0;
|
|
254
|
+
} else if (index - 1 === boundary.length) if (flags & F.PART_BOUNDARY) {
|
|
255
|
+
index = 0;
|
|
256
|
+
if (c === LF) {
|
|
257
|
+
flags &= ~F.PART_BOUNDARY;
|
|
258
|
+
callback("onPartEnd");
|
|
259
|
+
callback("onPartBegin");
|
|
260
|
+
state = S.HEADER_FIELD_START;
|
|
261
|
+
break;
|
|
262
|
+
}
|
|
263
|
+
} else if (flags & F.LAST_BOUNDARY) if (c === HYPHEN) {
|
|
264
|
+
callback("onPartEnd");
|
|
265
|
+
state = S.END;
|
|
266
|
+
flags = 0;
|
|
267
|
+
} else index = 0;
|
|
268
|
+
else index = 0;
|
|
269
|
+
if (index > 0) lookbehind[index - 1] = c;
|
|
270
|
+
else if (previousIndex > 0) {
|
|
271
|
+
const _lookbehind = new Uint8Array(lookbehind.buffer, lookbehind.byteOffset, lookbehind.byteLength);
|
|
272
|
+
callback("onPartData", 0, previousIndex, _lookbehind);
|
|
273
|
+
previousIndex = 0;
|
|
274
|
+
mark("onPartData");
|
|
275
|
+
i--;
|
|
276
|
+
}
|
|
277
|
+
break;
|
|
278
|
+
case S.END: break;
|
|
279
|
+
default: throw new Error(`Unexpected state entered: ${state}`);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
dataCallback("onHeaderField");
|
|
283
|
+
dataCallback("onHeaderValue");
|
|
284
|
+
dataCallback("onPartData");
|
|
285
|
+
this.index = index;
|
|
286
|
+
this.state = state;
|
|
287
|
+
this.flags = flags;
|
|
288
|
+
}
|
|
289
|
+
end() {
|
|
290
|
+
if (this.state === S.HEADER_FIELD_START && this.index === 0 || this.state === S.PART_DATA && this.index === this.boundary.length) this.onPartEnd();
|
|
291
|
+
else if (this.state !== S.END) throw new Error("MultipartParser.end(): stream ended unexpectedly");
|
|
292
|
+
}
|
|
293
|
+
};
|
|
294
|
+
}))();
|
|
295
|
+
export { toFormData };
|