@vibe-lark/larkpal 0.1.86 → 0.1.87

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.
Files changed (208) hide show
  1. package/dist/account-id-BM1T6029-BzQ_cMoi.mjs +1 -0
  2. package/dist/activation-context--5yu1dPF-XV0Y0pTy.mjs +1 -0
  3. package/dist/anthropic-CFZUCb1w.mjs +39 -0
  4. package/dist/assistant-visible-text-DuFWokAt-BOJV_zwc.mjs +9 -0
  5. package/dist/azure-openai-responses-BEuiMaF-.mjs +1 -0
  6. package/dist/boundary-file-read-BSd9MXPy-gnNVhPKT.mjs +1 -0
  7. package/dist/browser-lifecycle-cleanup-BdNsMhMD-BM97qA_M.mjs +1 -0
  8. package/dist/build-Bkj0hOS2.mjs +3 -0
  9. package/dist/bundled-compat-BpaDaAAu-DJtrIX6i.mjs +27 -0
  10. package/dist/bundled-dir-U738ay4K-BxbzrJOo.mjs +1 -0
  11. package/dist/call-DimWbpgJ-B4pv55RH.mjs +20 -0
  12. package/dist/channel-bootstrap.runtime-BVclcGv1-CEZ0-JP9.mjs +1 -0
  13. package/dist/channel-bootstrap.runtime-Cwcr38m2-Dt6QlQkX.mjs +1 -0
  14. package/dist/chunk-DHbaKqs-.mjs +1 -0
  15. package/dist/cli.mjs +7 -92
  16. package/dist/command-format-LSnUCVVF-Dn4h9IOh.mjs +16 -0
  17. package/dist/config-Bim2pi8a-03N-28sw.mjs +1 -0
  18. package/dist/delivery-context.shared-j5hC5qb1-BSLQG47q.mjs +1 -0
  19. package/dist/diagnostic-ClMwNnUA-BMKvPQJT.mjs +1 -0
  20. package/dist/dist-J5UB83Ws.mjs +601 -0
  21. package/dist/dist-coestTs9.mjs +5 -0
  22. package/dist/env-api-keys-Cuz5irWW.mjs +1 -0
  23. package/dist/event-stream-B7Ei41Bu.mjs +1 -0
  24. package/dist/facade-loader-DFzIYYt_-4bzFvy-b.mjs +1 -0
  25. package/dist/from-Ba69_5cR.mjs +14 -0
  26. package/dist/gateway-method-policy-C7rf0SeV-CTJcMQCE.mjs +1 -0
  27. package/dist/github-copilot-headers-BfhryVuU.mjs +1 -0
  28. package/dist/google-ABo-1guT.mjs +1 -0
  29. package/dist/google-gemini-cli-CGlN1zUA.mjs +2 -0
  30. package/dist/google-shared-C60sNhwd.mjs +301 -0
  31. package/dist/google-vertex-De0nAItu.mjs +1 -0
  32. package/dist/hash-Dw-N8Y9l.mjs +1 -0
  33. package/dist/headers-Bpsp70B9.mjs +1 -0
  34. package/dist/home-dir-C44RaPME-B5iLWwCq.mjs +1 -0
  35. package/dist/ids-BPsM98Uu-CJBJAeVC.mjs +1 -0
  36. package/dist/image-2w3cApg7-CrpUMCvm.mjs +3 -0
  37. package/dist/interactive-init-C5MFL5MW.mjs +8 -0
  38. package/dist/io-CH2g3vsv-JJtUIa_U.mjs +10 -0
  39. package/dist/jiti-loader-cache-Bat69wam-DNIteTtO.mjs +9 -0
  40. package/dist/json-file-BQRNuxmK-hRjIgOXI.mjs +1 -0
  41. package/dist/json-parse-BESd8UAM.mjs +3 -0
  42. package/dist/jws-YaZ38F_i.mjs +12 -0
  43. package/dist/lark-cli-provider-BLMxH6CN.mjs +4 -0
  44. package/dist/lark-logger-xpMKNNtY.mjs +1 -0
  45. package/dist/live-smoke-DpURW676.mjs +33 -0
  46. package/dist/load-context-mb7uvLSn-3xYwSnOZ.mjs +1 -0
  47. package/dist/loader-708jrx4Y-BbJRXNlQ.mjs +4 -0
  48. package/dist/main.mjs +153 -74571
  49. package/dist/manifest-registry-_hxKCS2K-OL8KK_o4.mjs +15 -0
  50. package/dist/mcp-server.mjs +4 -527
  51. package/dist/message-channel-Bk_YHfQg-n2Hw2Y0L.mjs +1 -0
  52. package/dist/message-channel-core-DTA--Gjh-CIh10vfo.mjs +1 -0
  53. package/dist/message.config.runtime-K-k4XOyq-F_h0Cgkl.mjs +1 -0
  54. package/dist/message.gateway.runtime-DqHOHRTQ-ge4c5p4s.mjs +1 -0
  55. package/dist/mistral-DyL3Zo1b.mjs +7 -0
  56. package/dist/model-auth-env-oyg2Hexc-DJbt9J3o.mjs +1 -0
  57. package/dist/models-config-BmpSQJQF-BL6S5qAo.mjs +1 -0
  58. package/dist/models-config.runtime-SOhLEw-f.mjs +1 -0
  59. package/dist/multipart-parser-B9dwXBqu.mjs +2 -0
  60. package/dist/oauth-25y2wc7K.mjs +75 -0
  61. package/dist/openai-C-rgGb7X.mjs +16 -0
  62. package/dist/openai-codex-responses-BbyAPsP1.mjs +7 -0
  63. package/dist/openai-completions-Bu5qvQzb.mjs +5 -0
  64. package/dist/openai-responses-pIdwQBc4.mjs +1 -0
  65. package/dist/openai-responses-shared-DqW1JSux.mjs +10 -0
  66. package/dist/paths-D6msg0S1-BO4XgM1u.mjs +1 -0
  67. package/dist/paths-D92DjaZ--DdtJ-zYp.mjs +1 -0
  68. package/dist/pi-model-discovery-Bd0TWzo8-DvSM0eWu.mjs +1 -0
  69. package/dist/pi-model-discovery-runtime-PrjWOmsV.mjs +1 -0
  70. package/dist/pi-tools.before-tool-call.runtime-Bn7uqKie-WPxU5oNX.mjs +2 -0
  71. package/dist/plugin-auto-enable-DdH3n9V8-Dr_bUXkG.mjs +1 -0
  72. package/dist/process-scoped-map-B2cWkYET-Co-i-MXA.mjs +1 -0
  73. package/dist/provider-discovery.runtime-DY0VWQ81.mjs +1 -0
  74. package/dist/provider-model-compat-CFqcq0it-BUwZENrz.mjs +1 -0
  75. package/dist/provider-runtime-C8rljsNs-BDvu6FW3.mjs +1 -0
  76. package/dist/provider-runtime-CT50mNIX-DImw7ZZu.mjs +79 -0
  77. package/dist/provider-stream-COLujAAo-Dpq1DSIk.mjs +248 -0
  78. package/dist/providers.runtime-Ba7tOlq7-B4t6ywCr.mjs +1 -0
  79. package/dist/public-surface-loader-BVl0NQAE-TfJ3izj1.mjs +1 -0
  80. package/dist/resolve-C33B7eeu-DZM_z6Wr.mjs +1 -0
  81. package/dist/runtime-Cym-fqI8-1GOIuRRQ.mjs +1 -0
  82. package/dist/runtime-channel-state-CohMybAh-BBzhl07Q.mjs +1 -0
  83. package/dist/runtime-snapshot-C54O1-gI-DxusscPf.mjs +1 -0
  84. package/dist/runtime-state-IBOIXKOx-Cw1GA1td.mjs +1 -0
  85. package/dist/runtime-web-tools-fallback.runtime-Ca-qn1mj-BsYE2gOd.mjs +1 -0
  86. package/dist/runtime-web-tools-manifest.runtime-BgxQTjmq-P6MKP9gQ.mjs +1 -0
  87. package/dist/runtime-web-tools-public-artifacts.runtime-D9qcoWIX-5VoyjouO.mjs +1 -0
  88. package/dist/session-archive.runtime-B52_5vs4-cU2tYbBz.mjs +1 -0
  89. package/dist/session-key-Cn2QoOyX-QZeYmbxd.mjs +1 -0
  90. package/dist/session-transcript-files.fs-DEeFXruQ-CXIAFSsr.mjs +1 -0
  91. package/dist/src-CCDx_C-U.mjs +3 -0
  92. package/dist/src-DACmA9V6.mjs +5 -0
  93. package/dist/subagent-announce-L5WsQatW--rMn240x.mjs +2 -0
  94. package/dist/subagent-announce.registry.runtime-DiqZyeTs-DNfNHsls.mjs +1 -0
  95. package/dist/subagent-registry-steer-runtime-DFgZFC0j-XYS1_qwl.mjs +1 -0
  96. package/dist/subagent-system-prompt-C1qnN--K-CsU4f97T.mjs +23 -0
  97. package/dist/target-parsing-loaded-DKkb6jJY-B830OA1a.mjs +12 -0
  98. package/dist/task-registry-delivery-runtime-Dd1CUkZF-B2Hj2k8C.mjs +16 -0
  99. package/dist/task-registry-delivery-runtime-ragbeVx5-Bdvo2Q5u.mjs +1 -0
  100. package/dist/thinking-Bh-7MqXz-uApNUe6g.mjs +1 -0
  101. package/dist/transcript-E_-ISOkD-VTwb782D.mjs +5 -0
  102. package/dist/transcript.runtime-BqhvZZdl-B4E0TiX5.mjs +1 -0
  103. package/dist/transform-messages-BTA3xbAI.mjs +1 -0
  104. package/dist/web-provider-public-artifacts-BlpRwIUS-DbVhDOrY.mjs +1 -0
  105. package/dist/web-search-providers.runtime--0aUtC3b-Bjh4Bmrz.mjs +1 -0
  106. package/package.json +2 -3
  107. package/dist/account-id-BM1T6029-DYjVxojW.mjs +0 -46
  108. package/dist/activation-context--5yu1dPF-Bwsn3moT.mjs +0 -172
  109. package/dist/anthropic-TH8ERTXK.mjs +0 -5962
  110. package/dist/assistant-visible-text-DuFWokAt-CsbII5KS.mjs +0 -596
  111. package/dist/azure-openai-responses-Bt_Ag9Er.mjs +0 -166
  112. package/dist/boundary-file-read-BSd9MXPy--KThL5e6.mjs +0 -594
  113. package/dist/browser-lifecycle-cleanup-BdNsMhMD-O3tnAM4i.mjs +0 -60
  114. package/dist/build-DgTrEpge.mjs +0 -3333
  115. package/dist/bundled-compat-BpaDaAAu-D7oazKjD.mjs +0 -5216
  116. package/dist/bundled-dir-U738ay4K-DXK0q_TV.mjs +0 -258
  117. package/dist/call-DimWbpgJ-ColD4W-y.mjs +0 -9993
  118. package/dist/channel-bootstrap.runtime-BVclcGv1-DJv_Z-Kr.mjs +0 -2
  119. package/dist/channel-bootstrap.runtime-Cwcr38m2-VRfVCR-i.mjs +0 -33
  120. package/dist/chunk-D6SyT4dJ.mjs +0 -36
  121. package/dist/command-format-LSnUCVVF-BQ2SMKka.mjs +0 -685
  122. package/dist/config-Bim2pi8a-BQUdfiEi.mjs +0 -9
  123. package/dist/delivery-context.shared-j5hC5qb1-CI83RXXZ.mjs +0 -72
  124. package/dist/diagnostic-ClMwNnUA-D6nUtLnb.mjs +0 -140
  125. package/dist/dist-CEGw8-2W.mjs +0 -429
  126. package/dist/dist-DD2aJ2UL.mjs +0 -125135
  127. package/dist/env-api-keys-BVvSg7T2.mjs +0 -68
  128. package/dist/event-stream-xaQWmyas.mjs +0 -15226
  129. package/dist/facade-loader-DFzIYYt_-CIr4HKtE.mjs +0 -194
  130. package/dist/from-DF7cl2wz.mjs +0 -3842
  131. package/dist/gateway-method-policy-C7rf0SeV-CJQMEYIE.mjs +0 -28
  132. package/dist/github-copilot-headers-DjqWtUoP.mjs +0 -22
  133. package/dist/google-C2pVrgBZ.mjs +0 -336
  134. package/dist/google-gemini-cli-BBxgS5Ho.mjs +0 -623
  135. package/dist/google-shared-BsWgwEk1.mjs +0 -22791
  136. package/dist/google-vertex-BsVLJrrC.mjs +0 -358
  137. package/dist/hash-DAFtW_W7.mjs +0 -16
  138. package/dist/headers-R3HdCbAE.mjs +0 -8
  139. package/dist/home-dir-C44RaPME-CBRS4HLP.mjs +0 -93
  140. package/dist/ids-BPsM98Uu-CwuxvUai.mjs +0 -77
  141. package/dist/image-2w3cApg7-CxpHvoB5.mjs +0 -207
  142. package/dist/interactive-init-BXQBalNr.mjs +0 -450
  143. package/dist/io-CH2g3vsv-BOGlLlB8.mjs +0 -26218
  144. package/dist/jiti-loader-cache-Bat69wam-D6hCxboy.mjs +0 -5049
  145. package/dist/json-file-BQRNuxmK-DhJM5NsG.mjs +0 -108
  146. package/dist/json-parse-v_HIJjjI.mjs +0 -381
  147. package/dist/jws-GFcTvvVT.mjs +0 -2291
  148. package/dist/lark-cli-provider-BARgbbmo.mjs +0 -554
  149. package/dist/lark-logger-D7_pEVQc.mjs +0 -143
  150. package/dist/live-smoke-BhkBOcH9.mjs +0 -7135
  151. package/dist/load-context-mb7uvLSn-B10MAi3I.mjs +0 -29
  152. package/dist/loader-708jrx4Y-BOswuvpe.mjs +0 -5053
  153. package/dist/manifest-registry-_hxKCS2K-CZdeyN0f.mjs +0 -3512
  154. package/dist/message-channel-Bk_YHfQg-AeNrPPpp.mjs +0 -50
  155. package/dist/message-channel-core-DTA--Gjh-CY4Tkb7N.mjs +0 -29
  156. package/dist/message.config.runtime-K-k4XOyq-DZTmXomP.mjs +0 -2
  157. package/dist/message.gateway.runtime-DqHOHRTQ-DH4ml0YF.mjs +0 -2
  158. package/dist/mistral-CaR4DiLu.mjs +0 -28657
  159. package/dist/model-auth-env-oyg2Hexc-DU_rOUU5.mjs +0 -1306
  160. package/dist/models-config-BmpSQJQF-Gfvh1n3A.mjs +0 -1282
  161. package/dist/models-config.runtime-BsU_22xk.mjs +0 -2
  162. package/dist/multipart-parser-DedmaB5g.mjs +0 -294
  163. package/dist/oauth-DOJeGfcE.mjs +0 -6392
  164. package/dist/openai-BDtIh3Ja.mjs +0 -6693
  165. package/dist/openai-codex-responses-C5EORu31.mjs +0 -664
  166. package/dist/openai-completions-CR_cS6gX.mjs +0 -669
  167. package/dist/openai-responses-oGxwZyuC.mjs +0 -184
  168. package/dist/openai-responses-shared-BixMSDZE.mjs +0 -398
  169. package/dist/paths-D6msg0S1-C2lYuisN.mjs +0 -189
  170. package/dist/paths-D92DjaZ--CTOESW2b.mjs +0 -192
  171. package/dist/pi-model-discovery-Bd0TWzo8-BFsJmeMb.mjs +0 -227
  172. package/dist/pi-model-discovery-runtime-CCCZxkd8.mjs +0 -2
  173. package/dist/pi-tools.before-tool-call.runtime-Bn7uqKie-C5ewk8kK.mjs +0 -399
  174. package/dist/plugin-auto-enable-DdH3n9V8-DsA1isaF.mjs +0 -1456
  175. package/dist/process-scoped-map-B2cWkYET-CXwUZ8CZ.mjs +0 -61
  176. package/dist/provider-discovery.runtime-BPzz1PFj.mjs +0 -58
  177. package/dist/provider-model-compat-CFqcq0it-BDDuBI3A.mjs +0 -118
  178. package/dist/provider-runtime-C8rljsNs-CIT93zoy.mjs +0 -2
  179. package/dist/provider-runtime-CT50mNIX-BwEV6GyO.mjs +0 -573
  180. package/dist/provider-stream-COLujAAo-CbJPDngm.mjs +0 -35449
  181. package/dist/providers.runtime-Ba7tOlq7-CXkhkzU9.mjs +0 -219
  182. package/dist/public-surface-loader-BVl0NQAE-C0piXtsT.mjs +0 -117
  183. package/dist/resolve-C33B7eeu-BNvYTl6k.mjs +0 -1041
  184. package/dist/runtime-Cym-fqI8-DaSDMH-a.mjs +0 -120
  185. package/dist/runtime-channel-state-CohMybAh-hXR6y5Gx.mjs +0 -19
  186. package/dist/runtime-snapshot-C54O1-gI-40cbyi7P.mjs +0 -677
  187. package/dist/runtime-state-IBOIXKOx-Bf9tcLvc.mjs +0 -10
  188. package/dist/runtime-web-tools-fallback.runtime-Ca-qn1mj-BCVImm7a.mjs +0 -39
  189. package/dist/runtime-web-tools-manifest.runtime-BgxQTjmq-Cb4nJkRT.mjs +0 -2
  190. package/dist/runtime-web-tools-public-artifacts.runtime-D9qcoWIX-BrQdXzOQ.mjs +0 -2
  191. package/dist/session-archive.runtime-B52_5vs4-BG-_IwNJ.mjs +0 -2
  192. package/dist/session-key-Cn2QoOyX-CuHbJMgR.mjs +0 -82
  193. package/dist/session-transcript-files.fs-DEeFXruQ-B1PF6nLy.mjs +0 -147
  194. package/dist/src-BgCX0MLG.mjs +0 -813
  195. package/dist/src-DYbqlAqf.mjs +0 -1177
  196. package/dist/subagent-announce-L5WsQatW-CQWI9GMd.mjs +0 -344
  197. package/dist/subagent-announce.registry.runtime-DiqZyeTs-BKuniyi3.mjs +0 -28
  198. package/dist/subagent-registry-steer-runtime-DFgZFC0j-BhBz0roy.mjs +0 -211
  199. package/dist/subagent-system-prompt-C1qnN--K-DpnTFP47.mjs +0 -3061
  200. package/dist/target-parsing-loaded-DKkb6jJY-BMD4CkpS.mjs +0 -1002
  201. package/dist/task-registry-delivery-runtime-Dd1CUkZF-C8U40a3O.mjs +0 -2950
  202. package/dist/task-registry-delivery-runtime-ragbeVx5-CNbFAkjD.mjs +0 -2
  203. package/dist/thinking-Bh-7MqXz-D3woGbO7.mjs +0 -2
  204. package/dist/transcript-E_-ISOkD-DWCfZP2p.mjs +0 -2019
  205. package/dist/transcript.runtime-BqhvZZdl-BPy42vBP.mjs +0 -2
  206. package/dist/transform-messages-DbhIzTxq.mjs +0 -207
  207. package/dist/web-provider-public-artifacts-BlpRwIUS-CGPSV4W2.mjs +0 -295
  208. package/dist/web-search-providers.runtime--0aUtC3b-DyuhC95V.mjs +0 -200
@@ -1,2 +0,0 @@
1
- import { t as ensureOpenClawModelsJson } from "./models-config-BmpSQJQF-Gfvh1n3A.mjs";
2
- export { ensureOpenClawModelsJson };
@@ -1,294 +0,0 @@
1
- import { n as __esmMin } from "./chunk-D6SyT4dJ.mjs";
2
- import { a as File, i as init_esm_min, n as FormData, t as init_from } from "./from-DF7cl2wz.mjs";
3
- //#region node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/multipart-parser.js
4
- function _fileName(headerValue) {
5
- const m = headerValue.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);
6
- if (!m) return;
7
- const match = m[2] || m[3] || "";
8
- let filename = match.slice(match.lastIndexOf("\\") + 1);
9
- filename = filename.replace(/%22/g, "\"");
10
- filename = filename.replace(/&#(\d{4});/g, (m, code) => {
11
- return String.fromCharCode(code);
12
- });
13
- return filename;
14
- }
15
- async function toFormData(Body, ct) {
16
- if (!/multipart/i.test(ct)) throw new TypeError("Failed to fetch");
17
- const m = ct.match(/boundary=(?:"([^"]+)"|([^;]+))/i);
18
- if (!m) throw new TypeError("no or bad content-type header, no multipart boundary");
19
- const parser = new MultipartParser(m[1] || m[2]);
20
- let headerField;
21
- let headerValue;
22
- let entryValue;
23
- let entryName;
24
- let contentType;
25
- let filename;
26
- const entryChunks = [];
27
- const formData = new FormData();
28
- const onPartData = (ui8a) => {
29
- entryValue += decoder.decode(ui8a, { stream: true });
30
- };
31
- const appendToFile = (ui8a) => {
32
- entryChunks.push(ui8a);
33
- };
34
- const appendFileToFormData = () => {
35
- const file = new File(entryChunks, filename, { type: contentType });
36
- formData.append(entryName, file);
37
- };
38
- const appendEntryToFormData = () => {
39
- formData.append(entryName, entryValue);
40
- };
41
- const decoder = new TextDecoder("utf-8");
42
- decoder.decode();
43
- parser.onPartBegin = function() {
44
- parser.onPartData = onPartData;
45
- parser.onPartEnd = appendEntryToFormData;
46
- headerField = "";
47
- headerValue = "";
48
- entryValue = "";
49
- entryName = "";
50
- contentType = "";
51
- filename = null;
52
- entryChunks.length = 0;
53
- };
54
- parser.onHeaderField = function(ui8a) {
55
- headerField += decoder.decode(ui8a, { stream: true });
56
- };
57
- parser.onHeaderValue = function(ui8a) {
58
- headerValue += decoder.decode(ui8a, { stream: true });
59
- };
60
- parser.onHeaderEnd = function() {
61
- headerValue += decoder.decode();
62
- headerField = headerField.toLowerCase();
63
- if (headerField === "content-disposition") {
64
- const m = headerValue.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i);
65
- if (m) entryName = m[2] || m[3] || "";
66
- filename = _fileName(headerValue);
67
- if (filename) {
68
- parser.onPartData = appendToFile;
69
- parser.onPartEnd = appendFileToFormData;
70
- }
71
- } else if (headerField === "content-type") contentType = headerValue;
72
- headerValue = "";
73
- headerField = "";
74
- };
75
- for await (const chunk of Body) parser.write(chunk);
76
- parser.end();
77
- return formData;
78
- }
79
- var s, S, f, F, LF, CR, SPACE, HYPHEN, COLON, A, Z, lower, noop, MultipartParser;
80
- //#endregion
81
- __esmMin((() => {
82
- init_from();
83
- init_esm_min();
84
- s = 0;
85
- S = {
86
- START_BOUNDARY: s++,
87
- HEADER_FIELD_START: s++,
88
- HEADER_FIELD: s++,
89
- HEADER_VALUE_START: s++,
90
- HEADER_VALUE: s++,
91
- HEADER_VALUE_ALMOST_DONE: s++,
92
- HEADERS_ALMOST_DONE: s++,
93
- PART_DATA_START: s++,
94
- PART_DATA: s++,
95
- END: s++
96
- };
97
- f = 1;
98
- F = {
99
- PART_BOUNDARY: f,
100
- LAST_BOUNDARY: f *= 2
101
- };
102
- LF = 10;
103
- CR = 13;
104
- SPACE = 32;
105
- HYPHEN = 45;
106
- COLON = 58;
107
- A = 97;
108
- Z = 122;
109
- lower = (c) => c | 32;
110
- noop = () => {};
111
- MultipartParser = class {
112
- /**
113
- * @param {string} boundary
114
- */
115
- constructor(boundary) {
116
- this.index = 0;
117
- this.flags = 0;
118
- this.onHeaderEnd = noop;
119
- this.onHeaderField = noop;
120
- this.onHeadersEnd = noop;
121
- this.onHeaderValue = noop;
122
- this.onPartBegin = noop;
123
- this.onPartData = noop;
124
- this.onPartEnd = noop;
125
- this.boundaryChars = {};
126
- boundary = "\r\n--" + boundary;
127
- const ui8a = new Uint8Array(boundary.length);
128
- for (let i = 0; i < boundary.length; i++) {
129
- ui8a[i] = boundary.charCodeAt(i);
130
- this.boundaryChars[ui8a[i]] = true;
131
- }
132
- this.boundary = ui8a;
133
- this.lookbehind = new Uint8Array(this.boundary.length + 8);
134
- this.state = S.START_BOUNDARY;
135
- }
136
- /**
137
- * @param {Uint8Array} data
138
- */
139
- write(data) {
140
- let i = 0;
141
- const length_ = data.length;
142
- let previousIndex = this.index;
143
- let { lookbehind, boundary, boundaryChars, index, state, flags } = this;
144
- const boundaryLength = this.boundary.length;
145
- const boundaryEnd = boundaryLength - 1;
146
- const bufferLength = data.length;
147
- let c;
148
- let cl;
149
- const mark = (name) => {
150
- this[name + "Mark"] = i;
151
- };
152
- const clear = (name) => {
153
- delete this[name + "Mark"];
154
- };
155
- const callback = (callbackSymbol, start, end, ui8a) => {
156
- if (start === void 0 || start !== end) this[callbackSymbol](ui8a && ui8a.subarray(start, end));
157
- };
158
- const dataCallback = (name, clear) => {
159
- const markSymbol = name + "Mark";
160
- if (!(markSymbol in this)) return;
161
- if (clear) {
162
- callback(name, this[markSymbol], i, data);
163
- delete this[markSymbol];
164
- } else {
165
- callback(name, this[markSymbol], data.length, data);
166
- this[markSymbol] = 0;
167
- }
168
- };
169
- for (i = 0; i < length_; i++) {
170
- c = data[i];
171
- switch (state) {
172
- case S.START_BOUNDARY:
173
- if (index === boundary.length - 2) {
174
- if (c === HYPHEN) flags |= F.LAST_BOUNDARY;
175
- else if (c !== CR) return;
176
- index++;
177
- break;
178
- } else if (index - 1 === boundary.length - 2) {
179
- if (flags & F.LAST_BOUNDARY && c === HYPHEN) {
180
- state = S.END;
181
- flags = 0;
182
- } else if (!(flags & F.LAST_BOUNDARY) && c === LF) {
183
- index = 0;
184
- callback("onPartBegin");
185
- state = S.HEADER_FIELD_START;
186
- } else return;
187
- break;
188
- }
189
- if (c !== boundary[index + 2]) index = -2;
190
- if (c === boundary[index + 2]) index++;
191
- break;
192
- case S.HEADER_FIELD_START:
193
- state = S.HEADER_FIELD;
194
- mark("onHeaderField");
195
- index = 0;
196
- case S.HEADER_FIELD:
197
- if (c === CR) {
198
- clear("onHeaderField");
199
- state = S.HEADERS_ALMOST_DONE;
200
- break;
201
- }
202
- index++;
203
- if (c === HYPHEN) break;
204
- if (c === COLON) {
205
- if (index === 1) return;
206
- dataCallback("onHeaderField", true);
207
- state = S.HEADER_VALUE_START;
208
- break;
209
- }
210
- cl = lower(c);
211
- if (cl < A || cl > Z) return;
212
- break;
213
- case S.HEADER_VALUE_START:
214
- if (c === SPACE) break;
215
- mark("onHeaderValue");
216
- state = S.HEADER_VALUE;
217
- case S.HEADER_VALUE:
218
- if (c === CR) {
219
- dataCallback("onHeaderValue", true);
220
- callback("onHeaderEnd");
221
- state = S.HEADER_VALUE_ALMOST_DONE;
222
- }
223
- break;
224
- case S.HEADER_VALUE_ALMOST_DONE:
225
- if (c !== LF) return;
226
- state = S.HEADER_FIELD_START;
227
- break;
228
- case S.HEADERS_ALMOST_DONE:
229
- if (c !== LF) return;
230
- callback("onHeadersEnd");
231
- state = S.PART_DATA_START;
232
- break;
233
- case S.PART_DATA_START:
234
- state = S.PART_DATA;
235
- mark("onPartData");
236
- case S.PART_DATA:
237
- previousIndex = index;
238
- if (index === 0) {
239
- i += boundaryEnd;
240
- while (i < bufferLength && !(data[i] in boundaryChars)) i += boundaryLength;
241
- i -= boundaryEnd;
242
- c = data[i];
243
- }
244
- if (index < boundary.length) if (boundary[index] === c) {
245
- if (index === 0) dataCallback("onPartData", true);
246
- index++;
247
- } else index = 0;
248
- else if (index === boundary.length) {
249
- index++;
250
- if (c === CR) flags |= F.PART_BOUNDARY;
251
- else if (c === HYPHEN) flags |= F.LAST_BOUNDARY;
252
- else index = 0;
253
- } else if (index - 1 === boundary.length) if (flags & F.PART_BOUNDARY) {
254
- index = 0;
255
- if (c === LF) {
256
- flags &= ~F.PART_BOUNDARY;
257
- callback("onPartEnd");
258
- callback("onPartBegin");
259
- state = S.HEADER_FIELD_START;
260
- break;
261
- }
262
- } else if (flags & F.LAST_BOUNDARY) if (c === HYPHEN) {
263
- callback("onPartEnd");
264
- state = S.END;
265
- flags = 0;
266
- } else index = 0;
267
- else index = 0;
268
- if (index > 0) lookbehind[index - 1] = c;
269
- else if (previousIndex > 0) {
270
- const _lookbehind = new Uint8Array(lookbehind.buffer, lookbehind.byteOffset, lookbehind.byteLength);
271
- callback("onPartData", 0, previousIndex, _lookbehind);
272
- previousIndex = 0;
273
- mark("onPartData");
274
- i--;
275
- }
276
- break;
277
- case S.END: break;
278
- default: throw new Error(`Unexpected state entered: ${state}`);
279
- }
280
- }
281
- dataCallback("onHeaderField");
282
- dataCallback("onHeaderValue");
283
- dataCallback("onPartData");
284
- this.index = index;
285
- this.state = state;
286
- this.flags = flags;
287
- }
288
- end() {
289
- if (this.state === S.HEADER_FIELD_START && this.index === 0 || this.state === S.PART_DATA && this.index === this.boundary.length) this.onPartEnd();
290
- else if (this.state !== S.END) throw new Error("MultipartParser.end(): stream ended unexpectedly");
291
- }
292
- };
293
- }))();
294
- export { toFormData };