wao 0.41.3 → 0.41.5

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 (719) hide show
  1. package/.babelrc-cjs +5 -0
  2. package/.babelrc-esm +5 -0
  3. package/.gitmodules +4 -0
  4. package/.prettierrc +6 -0
  5. package/README.md +90 -0
  6. package/app/.eslintrc.json +3 -0
  7. package/app/.mocharc.cjs +6 -0
  8. package/app/arweave.mjs +87 -0
  9. package/app/components/Footer.js +76 -0
  10. package/app/components/Global.js +1128 -0
  11. package/app/components/Header.js +306 -0
  12. package/app/components/Left.js +28 -0
  13. package/app/components/Logo.js +34 -0
  14. package/app/components/Middle.js +37 -0
  15. package/app/components/Sidebar.js +93 -0
  16. package/app/components/Tags.js +42 -0
  17. package/app/components/editor/Editor.js +322 -0
  18. package/app/components/editor/FilePath.js +42 -0
  19. package/app/components/editor/MonacoEditor.js +44 -0
  20. package/app/components/left/LeftMessages.js +85 -0
  21. package/app/components/left/LeftModules.js +86 -0
  22. package/app/components/left/LeftNetworks.js +438 -0
  23. package/app/components/left/LeftProcesses.js +98 -0
  24. package/app/components/left/LeftProjects.js +397 -0
  25. package/app/components/left/LeftTests.js +189 -0
  26. package/app/components/middle/MiddleBlocks.js +79 -0
  27. package/app/components/middle/MiddleEntity.js +16 -0
  28. package/app/components/middle/MiddleEntityAccount.js +264 -0
  29. package/app/components/middle/MiddleEntityAssignment.js +104 -0
  30. package/app/components/middle/MiddleEntityBlock.js +148 -0
  31. package/app/components/middle/MiddleEntityMessage.js +430 -0
  32. package/app/components/middle/MiddleEntityModule.js +183 -0
  33. package/app/components/middle/MiddleEntityProcess.js +323 -0
  34. package/app/components/middle/MiddleEntityTx.js +211 -0
  35. package/app/components/middle/MiddleMessages.js +87 -0
  36. package/app/components/middle/MiddleModules.js +89 -0
  37. package/app/components/middle/MiddleNetworks.js +516 -0
  38. package/app/components/middle/MiddleProcesses.js +87 -0
  39. package/app/components/middle/MiddleTests.js +134 -0
  40. package/app/components/modals/CreateFileModal.js +115 -0
  41. package/app/components/modals/CreateFolderModal.js +83 -0
  42. package/app/components/modals/CreateProjectModal.js +63 -0
  43. package/app/components/modals/FSModal.js +141 -0
  44. package/app/components/modals/ImportModal.js +105 -0
  45. package/app/components/modals/LaunchNetworkModal.js +95 -0
  46. package/app/components/modals/Modal.js +38 -0
  47. package/app/components/modals/ProxyModal.js +122 -0
  48. package/app/components/modals/RenameFileModal.js +95 -0
  49. package/app/components/styles/EditorScrollbarStyle.js +29 -0
  50. package/app/components/styles/EntityScrollbarStyle.js +29 -0
  51. package/app/components/styles/GlobalStyle.js +102 -0
  52. package/app/components/styles/XtermStyle.js +37 -0
  53. package/app/components/terminal/Terminal.js +132 -0
  54. package/app/components/terminal/Xterm.js +160 -0
  55. package/app/components/ui/avatar.jsx +49 -0
  56. package/app/components/ui/checkbox.jsx +17 -0
  57. package/app/components/ui/close-button.jsx +20 -0
  58. package/app/components/ui/color-mode.jsx +61 -0
  59. package/app/components/ui/dialog.jsx +54 -0
  60. package/app/components/ui/drawer.jsx +44 -0
  61. package/app/components/ui/field.jsx +22 -0
  62. package/app/components/ui/input-group.jsx +39 -0
  63. package/app/components/ui/popover.jsx +49 -0
  64. package/app/components/ui/provider.jsx +12 -0
  65. package/app/components/ui/radio.jsx +17 -0
  66. package/app/components/ui/slider.jsx +107 -0
  67. package/app/components/ui/toaster.jsx +69 -0
  68. package/app/components/ui/tooltip.jsx +35 -0
  69. package/app/index.js +10 -0
  70. package/app/jsconfig.json +7 -0
  71. package/app/lib/GithubCSS.js +1218 -0
  72. package/app/lib/addon-fit.js +72 -0
  73. package/app/lib/data.js +31 -0
  74. package/app/lib/github-markdown.css +1169 -0
  75. package/app/lib/global.js +1 -0
  76. package/app/lib/guide.js +82 -0
  77. package/app/lib/hub.js +109 -0
  78. package/app/lib/scripts.js +47 -0
  79. package/app/lib/store.js +34 -0
  80. package/app/lib/use.js +64 -0
  81. package/app/lib/utils.js +387 -0
  82. package/app/lib/webrtc.js +217 -0
  83. package/app/next.config.js +25 -0
  84. package/app/package.json +62 -0
  85. package/app/pages/404.js +9 -0
  86. package/app/pages/_app.js +10 -0
  87. package/app/pages/_document.js +14 -0
  88. package/app/pages/index.js +121 -0
  89. package/app/playwright.config.mjs +41 -0
  90. package/app/proxy.mjs +21 -0
  91. package/app/public/assets/cover.png +0 -0
  92. package/app/public/blueprints/apm.lua +91 -0
  93. package/app/public/blueprints/arena.lua +345 -0
  94. package/app/public/blueprints/arns.lua +318 -0
  95. package/app/public/blueprints/chat.lua +210 -0
  96. package/app/public/blueprints/chatroom.lua +56 -0
  97. package/app/public/blueprints/patch-legacy-reply.lua +13 -0
  98. package/app/public/blueprints/staking.lua +93 -0
  99. package/app/public/blueprints/token.lua +298 -0
  100. package/app/public/blueprints/voting.lua +45 -0
  101. package/app/public/favicon.ico +0 -0
  102. package/app/public/logo.png +0 -0
  103. package/cli-esm.js +55 -0
  104. package/cli.js +54 -0
  105. package/devnet/app/api.js +129 -0
  106. package/devnet/app/components/layout.js +89 -0
  107. package/devnet/app/components/pagination.js +144 -0
  108. package/devnet/app/components/search.js +159 -0
  109. package/devnet/app/components/table.js +124 -0
  110. package/devnet/app/components/tags.js +89 -0
  111. package/devnet/app/index.html +14 -0
  112. package/devnet/app/main.js +215 -0
  113. package/devnet/app/router.js +59 -0
  114. package/devnet/app/state.js +19 -0
  115. package/devnet/app/style.css +1606 -0
  116. package/devnet/app/utils.js +77 -0
  117. package/devnet/app/views/blocks.js +75 -0
  118. package/devnet/app/views/dashboard.js +127 -0
  119. package/devnet/app/views/entity.js +1473 -0
  120. package/devnet/app/views/messages.js +90 -0
  121. package/devnet/app/views/modules.js +165 -0
  122. package/devnet/app/views/processes.js +90 -0
  123. package/devnet/app/views/schedulers.js +90 -0
  124. package/devnet/app/views/transactions.js +88 -0
  125. package/devnet/migrations/0001_initial.sql +51 -0
  126. package/devnet/package.json +26 -0
  127. package/devnet/playwright.config.js +7 -0
  128. package/devnet/src/cu-worker.js +166 -0
  129. package/devnet/src/index.js +309 -0
  130. package/devnet/vite.config.js +17 -0
  131. package/devnet/vitest.config.js +10 -0
  132. package/devnet/wrangler-cu.toml +32 -0
  133. package/devnet/wrangler.toml +38 -0
  134. package/dhfs-tutorial-app/package.json +15 -0
  135. package/dist/esm/workspace/dashboard/public/favicon.png +0 -0
  136. package/dist/esm/workspace/src/counter.lua +14 -0
  137. package/dist/package.json +82 -0
  138. package/hb.sh +18 -0
  139. package/hbsig/.babelrc-cjs +5 -0
  140. package/hbsig/.babelrc-esm +5 -0
  141. package/hbsig/README.md +1 -0
  142. package/hbsig/dist/cjs/bin_to_str.js +44 -0
  143. package/hbsig/dist/cjs/collect-body-keys.js +470 -0
  144. package/hbsig/dist/cjs/commit.js +330 -0
  145. package/hbsig/dist/cjs/encode-array-item.js +110 -0
  146. package/hbsig/dist/cjs/encode-utils.js +242 -0
  147. package/hbsig/dist/cjs/encode.js +1365 -0
  148. package/hbsig/dist/cjs/erl_json.js +326 -0
  149. package/hbsig/dist/cjs/erl_str.js +1042 -0
  150. package/hbsig/dist/cjs/flat.js +279 -0
  151. package/hbsig/dist/cjs/http-message-signatures/httpbis.js +489 -0
  152. package/hbsig/dist/cjs/http-message-signatures/index.js +25 -0
  153. package/hbsig/dist/cjs/http-message-signatures/structured-header.js +129 -0
  154. package/hbsig/dist/cjs/httpsig.js +861 -0
  155. package/hbsig/dist/cjs/id.js +470 -0
  156. package/hbsig/dist/cjs/index.js +174 -0
  157. package/hbsig/dist/cjs/nocrypto.js +51 -0
  158. package/hbsig/dist/cjs/parser.js +201 -0
  159. package/hbsig/dist/cjs/send-utils.js +1231 -0
  160. package/hbsig/dist/cjs/send.js +211 -0
  161. package/hbsig/dist/cjs/signer-utils.js +494 -0
  162. package/hbsig/dist/cjs/signer.js +436 -0
  163. package/hbsig/dist/cjs/structured.js +515 -0
  164. package/hbsig/dist/cjs/test.js +12 -0
  165. package/hbsig/dist/cjs/utils.js +44 -0
  166. package/hbsig/dist/esm/bin_to_str.js +46 -0
  167. package/hbsig/dist/esm/collect-body-keys.js +436 -0
  168. package/hbsig/dist/esm/commit.js +219 -0
  169. package/hbsig/dist/esm/encode-array-item.js +112 -0
  170. package/hbsig/dist/esm/encode-utils.js +191 -0
  171. package/hbsig/dist/esm/encode.js +1256 -0
  172. package/hbsig/dist/esm/erl_json.js +292 -0
  173. package/hbsig/dist/esm/erl_str.js +1144 -0
  174. package/hbsig/dist/esm/flat.js +250 -0
  175. package/hbsig/dist/esm/http-message-signatures/httpbis.js +438 -0
  176. package/hbsig/dist/esm/http-message-signatures/index.js +4 -0
  177. package/hbsig/dist/esm/http-message-signatures/structured-header.js +105 -0
  178. package/hbsig/dist/esm/httpsig.js +866 -0
  179. package/hbsig/dist/esm/id.js +459 -0
  180. package/hbsig/dist/esm/index.js +13 -0
  181. package/hbsig/dist/esm/nocrypto.js +4 -0
  182. package/hbsig/dist/esm/package.json +3 -0
  183. package/hbsig/dist/esm/parser.js +171 -0
  184. package/hbsig/dist/esm/send-utils.js +1132 -0
  185. package/hbsig/dist/esm/send.js +142 -0
  186. package/hbsig/dist/esm/signer-utils.js +375 -0
  187. package/hbsig/dist/esm/signer.js +312 -0
  188. package/hbsig/dist/esm/structured.js +496 -0
  189. package/hbsig/dist/esm/test.js +2 -0
  190. package/hbsig/dist/esm/utils.js +29 -0
  191. package/hbsig/dist/package.json +39 -0
  192. package/hbsig/make.js +36 -0
  193. package/hbsig/package.json +39 -0
  194. package/hbsig/src/bin_to_str.js +46 -0
  195. package/hbsig/src/collect-body-keys.js +436 -0
  196. package/hbsig/src/commit.js +219 -0
  197. package/hbsig/src/encode-array-item.js +112 -0
  198. package/hbsig/src/encode-utils.js +191 -0
  199. package/hbsig/src/encode.js +1256 -0
  200. package/hbsig/src/erl_json.js +292 -0
  201. package/hbsig/src/erl_str.js +1144 -0
  202. package/hbsig/src/flat.js +250 -0
  203. package/hbsig/src/http-message-signatures/httpbis.js +438 -0
  204. package/hbsig/src/http-message-signatures/index.js +4 -0
  205. package/hbsig/src/http-message-signatures/structured-header.js +105 -0
  206. package/hbsig/src/httpsig.js +866 -0
  207. package/hbsig/src/id.js +459 -0
  208. package/hbsig/src/index.js +13 -0
  209. package/hbsig/src/nocrypto.js +4 -0
  210. package/hbsig/src/parser.js +171 -0
  211. package/hbsig/src/send-utils.js +1132 -0
  212. package/hbsig/src/send.js +142 -0
  213. package/hbsig/src/signer-utils.js +375 -0
  214. package/hbsig/src/signer.js +312 -0
  215. package/hbsig/src/structured.js +496 -0
  216. package/hbsig/src/test.js +2 -0
  217. package/hbsig/src/utils.js +29 -0
  218. package/lp/index.html +25 -0
  219. package/lp/package.json +19 -0
  220. package/lp/public/cover.png +0 -0
  221. package/lp/public/favicon.ico +0 -0
  222. package/lp/public/favicon.png +0 -0
  223. package/lp/public/images/book.jpg +0 -0
  224. package/lp/public/images/dashboard.png +0 -0
  225. package/lp/public/images/devnet.png +0 -0
  226. package/lp/public/images/hero-bg.png +0 -0
  227. package/lp/public/images/hyperadd.png +0 -0
  228. package/lp/public/images/message-flow.png +0 -0
  229. package/lp/public/images/mobile.png +0 -0
  230. package/lp/public/images/og-cover.png +0 -0
  231. package/lp/public/images/scan.png +0 -0
  232. package/lp/public/images/wao-hub.png +0 -0
  233. package/lp/public/images/wao-web.png +0 -0
  234. package/lp/public/logo.png +0 -0
  235. package/lp/src/App.jsx +29 -0
  236. package/lp/src/components/CodeBlock.jsx +37 -0
  237. package/lp/src/components/CodeBlock.module.css +89 -0
  238. package/lp/src/components/Footer.jsx +22 -0
  239. package/lp/src/components/Footer.module.css +60 -0
  240. package/lp/src/components/Nav.jsx +80 -0
  241. package/lp/src/components/Nav.module.css +177 -0
  242. package/lp/src/components/SectionWrapper.jsx +15 -0
  243. package/lp/src/hooks/useReveal.js +25 -0
  244. package/lp/src/hooks/useScrolled.js +14 -0
  245. package/lp/src/main.jsx +10 -0
  246. package/lp/src/sections/Book.jsx +60 -0
  247. package/lp/src/sections/Book.module.css +204 -0
  248. package/lp/src/sections/Browser.jsx +46 -0
  249. package/lp/src/sections/Browser.module.css +67 -0
  250. package/lp/src/sections/Devnet.jsx +55 -0
  251. package/lp/src/sections/Devnet.module.css +136 -0
  252. package/lp/src/sections/GetStarted.jsx +51 -0
  253. package/lp/src/sections/GetStarted.module.css +128 -0
  254. package/lp/src/sections/Hero.jsx +67 -0
  255. package/lp/src/sections/Hero.module.css +202 -0
  256. package/lp/src/sections/HyperADD.jsx +46 -0
  257. package/lp/src/sections/HyperADD.module.css +113 -0
  258. package/lp/src/sections/SDK.jsx +90 -0
  259. package/lp/src/sections/SDK.module.css +122 -0
  260. package/lp/src/sections/Testing.jsx +47 -0
  261. package/lp/src/sections/Testing.module.css +124 -0
  262. package/lp/src/sections/Vision.jsx +93 -0
  263. package/lp/src/sections/Vision.module.css +147 -0
  264. package/lp/src/styles/globals.css +285 -0
  265. package/lp/src/utils/scrollTo.js +4 -0
  266. package/lp/vite.config.js +7 -0
  267. package/make.js +39 -0
  268. package/package.json +17 -12
  269. package/patches/@permaweb+ao-loader+0.0.44.patch +64 -0
  270. package/plan.md +435 -0
  271. package/rebar.lock +1 -0
  272. package/src/accounts-web.js +128 -0
  273. package/src/accounts.js +124 -0
  274. package/src/adaptor-base.js +622 -0
  275. package/src/adaptor-cf.js +11 -0
  276. package/src/adaptor-web.js +11 -0
  277. package/src/adaptor.js +10 -0
  278. package/src/ao-loader.js +30660 -0
  279. package/src/ao.js +1173 -0
  280. package/src/aoconnect-base.js +1098 -0
  281. package/src/aoconnect-cf.js +9 -0
  282. package/src/aoconnect-web.js +8 -0
  283. package/src/aoconnect.js +8 -0
  284. package/src/aos_wamr.js +1 -0
  285. package/src/ar-remote.js +87 -0
  286. package/src/ar.js +276 -0
  287. package/src/armem-base.js +529 -0
  288. package/src/armem-cf.js +67 -0
  289. package/src/armem-web.js +19 -0
  290. package/src/armem.js +26 -0
  291. package/src/bao.js +141 -0
  292. package/src/bar.js +366 -0
  293. package/src/build.js +7 -0
  294. package/src/bundler.js +119 -0
  295. package/src/car.js +10 -0
  296. package/src/cf-env.js +29 -0
  297. package/src/cf.js +11 -0
  298. package/src/cli.js +561 -0
  299. package/src/compress.js +112 -0
  300. package/src/create.js +415 -0
  301. package/src/devs.js +86 -0
  302. package/src/dirname.js +1 -0
  303. package/src/dodb.js +26 -0
  304. package/src/erl_json.js +289 -0
  305. package/src/erl_str.js +1139 -0
  306. package/src/gql.js +229 -0
  307. package/src/hb.js +967 -0
  308. package/src/helpers.js +203 -0
  309. package/src/http.js +619 -0
  310. package/src/hub/bundler.js +123 -0
  311. package/src/hub/cu.js +74 -0
  312. package/src/hub/fs.js +157 -0
  313. package/src/hub/index.js +85 -0
  314. package/src/hub/utils.js +64 -0
  315. package/src/hub/ws-proxy.js +67 -0
  316. package/src/hyper-aos.js +1 -0
  317. package/src/hyperbeam-server.js +21 -0
  318. package/src/hyperbeam.js +585 -0
  319. package/src/index.js +5 -0
  320. package/src/keygen.js +47 -0
  321. package/src/lfdb.js +67 -0
  322. package/src/lua/aos.wasm +0 -0
  323. package/src/lua/aos2_0_1.js +1 -0
  324. package/src/lua/aos2_0_1.wasm +0 -0
  325. package/src/lua/aos2_0_3.js +1 -0
  326. package/src/lua/aos2_0_3.wasm +0 -0
  327. package/src/lua/aos2_0_4_32.js +1 -0
  328. package/src/lua/aos2_0_4_32.wasm +0 -0
  329. package/src/lua/aos2_0_6.wasm +0 -0
  330. package/src/lua/apm.lua +61 -0
  331. package/src/lua/llama.wasm +0 -0
  332. package/src/lua/process.wasm +0 -0
  333. package/src/lua/sqlite.js +1 -0
  334. package/src/lua/sqlite.wasm +0 -0
  335. package/src/lua/weavedb_mock.lua +44 -0
  336. package/src/lua/weavedrive.lua +53 -0
  337. package/src/run.js +25 -0
  338. package/src/server.js +173 -0
  339. package/src/storage-multi.js +183 -0
  340. package/src/tao.js +12 -0
  341. package/src/tar.js +10 -0
  342. package/src/test.js +42 -0
  343. package/src/tgql-d1.js +407 -0
  344. package/src/tgql.js +310 -0
  345. package/src/toerl.js +162 -0
  346. package/src/utils.js +777 -0
  347. package/src/wao.js +29 -0
  348. package/src/waosm/README.md +81 -0
  349. package/src/waosm/waosm.d.ts +40 -0
  350. package/src/waosm/waosm.js +240 -0
  351. package/src/waosm/waosm_bg.wasm +0 -0
  352. package/src/waosm/waosm_bg.wasm.d.ts +8 -0
  353. package/src/waosm-node/README.md +81 -0
  354. package/src/waosm-node/waosm.d.ts +8 -0
  355. package/src/waosm-node/waosm.js +4 -0
  356. package/src/waosm-node/waosm_bg.js +147 -0
  357. package/src/waosm-node/waosm_bg.wasm +0 -0
  358. package/src/waosm-node/waosm_bg.wasm.d.ts +8 -0
  359. package/src/waosm-node/waosm_bg.wasm.js +14 -0
  360. package/src/waosm-node.js +9 -0
  361. package/src/war.js +10 -0
  362. package/src/weavedrive.js +376 -0
  363. package/src/web.js +11 -0
  364. package/src/workspace/.mcp.json +8 -0
  365. package/src/workspace/CLAUDE.md +258 -0
  366. package/src/workspace/README.md +85 -0
  367. package/src/workspace/dashboard/index.html +163 -0
  368. package/src/workspace/dashboard/package.json +18 -0
  369. package/src/workspace/dashboard/public/favicon.ico +0 -0
  370. package/src/workspace/dashboard/public/favicon.png +0 -0
  371. package/src/workspace/dashboard/server.js +224 -0
  372. package/src/workspace/dashboard/src/App.jsx +2350 -0
  373. package/{cjs/workspace/frontend → src/workspace/dashboard}/vite.config.js +6 -0
  374. package/src/workspace/package.json +18 -0
  375. package/src/workspace/src/counter.lua +14 -0
  376. package/tsconfig.json +18 -0
  377. package/types/index.d.ts +329 -0
  378. package/waollama/.eslintrc.json +3 -0
  379. package/waollama/README.md +19 -0
  380. package/waollama/arweave.mjs +87 -0
  381. package/waollama/components/ui/avatar.jsx +49 -0
  382. package/waollama/components/ui/checkbox.jsx +17 -0
  383. package/waollama/components/ui/close-button.jsx +20 -0
  384. package/waollama/components/ui/color-mode.jsx +61 -0
  385. package/waollama/components/ui/dialog.jsx +54 -0
  386. package/waollama/components/ui/drawer.jsx +44 -0
  387. package/waollama/components/ui/field.jsx +22 -0
  388. package/waollama/components/ui/input-group.jsx +39 -0
  389. package/waollama/components/ui/popover.jsx +49 -0
  390. package/waollama/components/ui/provider.jsx +12 -0
  391. package/waollama/components/ui/radio.jsx +17 -0
  392. package/waollama/components/ui/slider.jsx +107 -0
  393. package/waollama/components/ui/tooltip.jsx +35 -0
  394. package/waollama/index.js +10 -0
  395. package/waollama/jsconfig.json +7 -0
  396. package/waollama/lib/ao-loader.js +30654 -0
  397. package/waollama/lib/client.js +1 -0
  398. package/waollama/lib/wasm.js +1 -0
  399. package/waollama/next.config.js +25 -0
  400. package/waollama/package.json +43 -0
  401. package/waollama/pages/404.js +9 -0
  402. package/waollama/pages/_app.js +9 -0
  403. package/waollama/pages/_document.js +14 -0
  404. package/waollama/pages/index.js +212 -0
  405. package/waollama/playwright.config.js +31 -0
  406. package/waollama/proxy.mjs +21 -0
  407. package/waollama/public/favicon.ico +0 -0
  408. package/waollama/public/human.png +0 -0
  409. package/waollama/public/llama.png +0 -0
  410. package/waosm/Cargo.toml +11 -0
  411. package/waosm/README.md +81 -0
  412. package/waosm/compress.js +112 -0
  413. package/waosm/make.js +33 -0
  414. package/waosm/package.json +10 -0
  415. package/waosm/src/lib.rs +180 -0
  416. package/waosm/test.js +16 -0
  417. package/cjs/workspace/.claude/agents/builder.md +0 -99
  418. package/cjs/workspace/.claude/agents/device-builder.md +0 -86
  419. package/cjs/workspace/.claude/agents/tester.md +0 -90
  420. package/cjs/workspace/.claude/mcp/dashboard/server.js +0 -128
  421. package/cjs/workspace/.claude/rules/deploy.md +0 -45
  422. package/cjs/workspace/.claude/rules/frontend.md +0 -69
  423. package/cjs/workspace/.claude/rules/hyperbeam.md +0 -104
  424. package/cjs/workspace/.claude/rules/lua.md +0 -108
  425. package/cjs/workspace/.claude/rules/testing.md +0 -257
  426. package/cjs/workspace/.claude/settings.json +0 -109
  427. package/cjs/workspace/.claude/skills/build/SKILL.md +0 -214
  428. package/cjs/workspace/.claude/skills/build-aos/SKILL.md +0 -129
  429. package/cjs/workspace/.claude/skills/build-device/SKILL.md +0 -192
  430. package/cjs/workspace/.claude/skills/build-frontend/SKILL.md +0 -134
  431. package/cjs/workspace/.claude/skills/build-module/SKILL.md +0 -281
  432. package/cjs/workspace/.claude/skills/create-aos/SKILL.md +0 -63
  433. package/cjs/workspace/.claude/skills/create-device/SKILL.md +0 -87
  434. package/cjs/workspace/.claude/skills/create-module/SKILL.md +0 -162
  435. package/cjs/workspace/.claude/skills/debug/SKILL.md +0 -57
  436. package/cjs/workspace/.claude/skills/deploy/SKILL.md +0 -85
  437. package/cjs/workspace/.claude/skills/dev/SKILL.md +0 -32
  438. package/cjs/workspace/.claude/skills/plan/SKILL.md +0 -176
  439. package/cjs/workspace/.claude/skills/readme/SKILL.md +0 -186
  440. package/cjs/workspace/.claude/skills/report/SKILL.md +0 -49
  441. package/cjs/workspace/.claude/skills/team/SKILL.md +0 -101
  442. package/cjs/workspace/.claude/skills/test/SKILL.md +0 -56
  443. package/cjs/workspace/.claude/skills/test-device/SKILL.md +0 -114
  444. package/cjs/workspace/.claude/skills/test-e2e/SKILL.md +0 -103
  445. package/cjs/workspace/.claude/skills/test-hb/SKILL.md +0 -76
  446. package/cjs/workspace/.claude/skills/validate/SKILL.md +0 -96
  447. package/cjs/workspace/.claude/skills/validate/scripts/check-lua.sh +0 -41
  448. package/cjs/workspace/docs/aos-lua.md +0 -428
  449. package/cjs/workspace/docs/debug.md +0 -230
  450. package/cjs/workspace/docs/hyperbeam-dev.md +0 -606
  451. package/cjs/workspace/docs/hyperbeam-devices.md +0 -618
  452. package/cjs/workspace/docs/wao-sdk.md +0 -807
  453. package/cjs/workspace/frontend/e2e/.gitkeep +0 -0
  454. package/cjs/workspace/frontend/index.html +0 -12
  455. package/cjs/workspace/frontend/package.json +0 -24
  456. package/cjs/workspace/frontend/playwright.config.js +0 -10
  457. package/cjs/workspace/frontend/src/App.jsx +0 -24
  458. package/cjs/workspace/frontend/test/.gitkeep +0 -0
  459. package/cjs/workspace/frontend/vitest.config.js +0 -10
  460. package/cjs/workspace/scripts/deploy.js +0 -140
  461. package/cjs/workspace/scripts/keygen.js +0 -52
  462. package/cjs/workspace/test/aos.test.js +0 -98
  463. package/cjs/workspace/test/hyperbeam.test.js +0 -80
  464. package/esm/compiler/native +0 -0
  465. package/esm/workspace/.claude/agents/builder.md +0 -99
  466. package/esm/workspace/.claude/agents/device-builder.md +0 -86
  467. package/esm/workspace/.claude/agents/tester.md +0 -90
  468. package/esm/workspace/.claude/mcp/dashboard/server.js +0 -128
  469. package/esm/workspace/.claude/rules/deploy.md +0 -45
  470. package/esm/workspace/.claude/rules/frontend.md +0 -69
  471. package/esm/workspace/.claude/rules/hyperbeam.md +0 -104
  472. package/esm/workspace/.claude/rules/lua.md +0 -108
  473. package/esm/workspace/.claude/rules/testing.md +0 -257
  474. package/esm/workspace/.claude/settings.json +0 -109
  475. package/esm/workspace/.claude/skills/build/SKILL.md +0 -214
  476. package/esm/workspace/.claude/skills/build-aos/SKILL.md +0 -129
  477. package/esm/workspace/.claude/skills/build-device/SKILL.md +0 -192
  478. package/esm/workspace/.claude/skills/build-frontend/SKILL.md +0 -134
  479. package/esm/workspace/.claude/skills/build-module/SKILL.md +0 -281
  480. package/esm/workspace/.claude/skills/create-aos/SKILL.md +0 -63
  481. package/esm/workspace/.claude/skills/create-device/SKILL.md +0 -87
  482. package/esm/workspace/.claude/skills/create-module/SKILL.md +0 -162
  483. package/esm/workspace/.claude/skills/debug/SKILL.md +0 -57
  484. package/esm/workspace/.claude/skills/deploy/SKILL.md +0 -85
  485. package/esm/workspace/.claude/skills/dev/SKILL.md +0 -32
  486. package/esm/workspace/.claude/skills/plan/SKILL.md +0 -176
  487. package/esm/workspace/.claude/skills/readme/SKILL.md +0 -186
  488. package/esm/workspace/.claude/skills/report/SKILL.md +0 -49
  489. package/esm/workspace/.claude/skills/team/SKILL.md +0 -101
  490. package/esm/workspace/.claude/skills/test/SKILL.md +0 -56
  491. package/esm/workspace/.claude/skills/test-device/SKILL.md +0 -114
  492. package/esm/workspace/.claude/skills/test-e2e/SKILL.md +0 -103
  493. package/esm/workspace/.claude/skills/test-hb/SKILL.md +0 -76
  494. package/esm/workspace/.claude/skills/validate/SKILL.md +0 -96
  495. package/esm/workspace/.claude/skills/validate/scripts/check-lua.sh +0 -41
  496. package/esm/workspace/docs/aos-lua.md +0 -428
  497. package/esm/workspace/docs/debug.md +0 -230
  498. package/esm/workspace/docs/hyperbeam-dev.md +0 -606
  499. package/esm/workspace/docs/hyperbeam-devices.md +0 -618
  500. package/esm/workspace/docs/wao-sdk.md +0 -807
  501. package/esm/workspace/frontend/e2e/.gitkeep +0 -0
  502. package/esm/workspace/frontend/index.html +0 -12
  503. package/esm/workspace/frontend/package.json +0 -24
  504. package/esm/workspace/frontend/playwright.config.js +0 -10
  505. package/esm/workspace/frontend/src/App.jsx +0 -24
  506. package/esm/workspace/frontend/src/main.jsx +0 -9
  507. package/esm/workspace/frontend/test/.gitkeep +0 -0
  508. package/esm/workspace/frontend/vite.config.js +0 -6
  509. package/esm/workspace/frontend/vitest.config.js +0 -10
  510. package/esm/workspace/scripts/deploy.js +0 -140
  511. package/esm/workspace/scripts/keygen.js +0 -52
  512. package/esm/workspace/test/aos.test.js +0 -98
  513. package/esm/workspace/test/hyperbeam.test.js +0 -80
  514. /package/{cjs/workspace/dashboard/public → devnet/app}/favicon.ico +0 -0
  515. /package/{cjs/workspace → dhfs-tutorial-app}/src/counter.lua +0 -0
  516. /package/{cjs → dist/cjs}/accounts-web.js +0 -0
  517. /package/{cjs → dist/cjs}/accounts.js +0 -0
  518. /package/{cjs → dist/cjs}/adaptor-base.js +0 -0
  519. /package/{cjs → dist/cjs}/adaptor-cf.js +0 -0
  520. /package/{cjs → dist/cjs}/adaptor-web.js +0 -0
  521. /package/{cjs → dist/cjs}/adaptor.js +0 -0
  522. /package/{cjs → dist/cjs}/ao-loader.js +0 -0
  523. /package/{cjs → dist/cjs}/ao.js +0 -0
  524. /package/{cjs → dist/cjs}/aoconnect-base.js +0 -0
  525. /package/{cjs → dist/cjs}/aoconnect-cf.js +0 -0
  526. /package/{cjs → dist/cjs}/aoconnect-web.js +0 -0
  527. /package/{cjs → dist/cjs}/aoconnect.js +0 -0
  528. /package/{cjs → dist/cjs}/aos_wamr.js +0 -0
  529. /package/{cjs → dist/cjs}/ar-remote.js +0 -0
  530. /package/{cjs → dist/cjs}/ar.js +0 -0
  531. /package/{cjs → dist/cjs}/armem-base.js +0 -0
  532. /package/{cjs → dist/cjs}/armem-cf.js +0 -0
  533. /package/{cjs → dist/cjs}/armem-web.js +0 -0
  534. /package/{cjs → dist/cjs}/armem.js +0 -0
  535. /package/{cjs → dist/cjs}/bao.js +0 -0
  536. /package/{cjs → dist/cjs}/bar.js +0 -0
  537. /package/{cjs → dist/cjs}/build.js +0 -0
  538. /package/{cjs → dist/cjs}/bundler.js +0 -0
  539. /package/{cjs → dist/cjs}/car.js +0 -0
  540. /package/{cjs → dist/cjs}/cf-env.js +0 -0
  541. /package/{cjs → dist/cjs}/cf.js +0 -0
  542. /package/{cjs → dist/cjs}/cli.js +0 -0
  543. /package/{cjs → dist/cjs}/compress.js +0 -0
  544. /package/{cjs → dist/cjs}/create.js +0 -0
  545. /package/{cjs → dist/cjs}/devs.js +0 -0
  546. /package/{cjs → dist/cjs}/dirname.js +0 -0
  547. /package/{cjs → dist/cjs}/dodb.js +0 -0
  548. /package/{cjs → dist/cjs}/erl_json.js +0 -0
  549. /package/{cjs → dist/cjs}/erl_str.js +0 -0
  550. /package/{cjs → dist/cjs}/gql.js +0 -0
  551. /package/{cjs → dist/cjs}/hb.js +0 -0
  552. /package/{cjs → dist/cjs}/helpers.js +0 -0
  553. /package/{cjs → dist/cjs}/http.js +0 -0
  554. /package/{cjs → dist/cjs}/hub/bundler.js +0 -0
  555. /package/{cjs → dist/cjs}/hub/cu.js +0 -0
  556. /package/{cjs → dist/cjs}/hub/fs.js +0 -0
  557. /package/{cjs → dist/cjs}/hub/index.js +0 -0
  558. /package/{cjs → dist/cjs}/hub/utils.js +0 -0
  559. /package/{cjs → dist/cjs}/hub/ws-proxy.js +0 -0
  560. /package/{cjs → dist/cjs}/hyper-aos.js +0 -0
  561. /package/{cjs → dist/cjs}/hyperbeam-server.js +0 -0
  562. /package/{cjs → dist/cjs}/hyperbeam.js +0 -0
  563. /package/{cjs → dist/cjs}/index.js +0 -0
  564. /package/{cjs → dist/cjs}/keygen.js +0 -0
  565. /package/{cjs → dist/cjs}/lfdb.js +0 -0
  566. /package/{cjs → dist/cjs}/lua/aos.wasm +0 -0
  567. /package/{cjs → dist/cjs}/lua/aos2_0_1.js +0 -0
  568. /package/{cjs → dist/cjs}/lua/aos2_0_1.wasm +0 -0
  569. /package/{cjs → dist/cjs}/lua/aos2_0_3.js +0 -0
  570. /package/{cjs → dist/cjs}/lua/aos2_0_3.wasm +0 -0
  571. /package/{cjs → dist/cjs}/lua/aos2_0_4_32.js +0 -0
  572. /package/{cjs → dist/cjs}/lua/aos2_0_4_32.wasm +0 -0
  573. /package/{cjs → dist/cjs}/lua/aos2_0_6.wasm +0 -0
  574. /package/{cjs → dist/cjs}/lua/apm.lua +0 -0
  575. /package/{cjs → dist/cjs}/lua/llama.wasm +0 -0
  576. /package/{cjs → dist/cjs}/lua/process.wasm +0 -0
  577. /package/{cjs → dist/cjs}/lua/sqlite.js +0 -0
  578. /package/{cjs → dist/cjs}/lua/sqlite.wasm +0 -0
  579. /package/{cjs → dist/cjs}/lua/weavedb_mock.lua +0 -0
  580. /package/{cjs → dist/cjs}/lua/weavedrive.lua +0 -0
  581. /package/{cjs → dist/cjs}/run.js +0 -0
  582. /package/{cjs → dist/cjs}/server.js +0 -0
  583. /package/{cjs → dist/cjs}/storage-multi.js +0 -0
  584. /package/{cjs → dist/cjs}/tao.js +0 -0
  585. /package/{cjs → dist/cjs}/tar.js +0 -0
  586. /package/{cjs → dist/cjs}/test.js +0 -0
  587. /package/{cjs → dist/cjs}/tgql-d1.js +0 -0
  588. /package/{cjs → dist/cjs}/tgql.js +0 -0
  589. /package/{cjs → dist/cjs}/toerl.js +0 -0
  590. /package/{cjs → dist/cjs}/utils.js +0 -0
  591. /package/{cjs → dist/cjs}/wao.js +0 -0
  592. /package/{cjs → dist/cjs}/waosm/waosm.js +0 -0
  593. /package/{cjs → dist/cjs}/waosm-node/waosm.js +0 -0
  594. /package/{cjs → dist/cjs}/waosm-node/waosm_bg.js +0 -0
  595. /package/{cjs → dist/cjs}/waosm-node/waosm_bg.wasm +0 -0
  596. /package/{cjs → dist/cjs}/waosm-node/waosm_bg.wasm.js +0 -0
  597. /package/{cjs → dist/cjs}/waosm-node.js +0 -0
  598. /package/{cjs → dist/cjs}/war.js +0 -0
  599. /package/{cjs → dist/cjs}/weavedrive.js +0 -0
  600. /package/{cjs → dist/cjs}/web.js +0 -0
  601. /package/{cjs → dist/cjs}/workspace/.mcp.json +0 -0
  602. /package/{cjs → dist/cjs}/workspace/CLAUDE.md +0 -0
  603. /package/{cjs → dist/cjs}/workspace/README.md +0 -0
  604. /package/{cjs → dist/cjs}/workspace/dashboard/index.html +0 -0
  605. /package/{cjs → dist/cjs}/workspace/dashboard/package.json +0 -0
  606. /package/{esm → dist/cjs}/workspace/dashboard/public/favicon.ico +0 -0
  607. /package/{cjs → dist/cjs}/workspace/dashboard/public/favicon.png +0 -0
  608. /package/{cjs → dist/cjs}/workspace/dashboard/server.js +0 -0
  609. /package/{cjs → dist/cjs}/workspace/dashboard/src/App.jsx +0 -0
  610. /package/{cjs → dist/cjs}/workspace/dashboard/src/main.jsx +0 -0
  611. /package/{cjs → dist/cjs}/workspace/dashboard/vite.config.js +0 -0
  612. /package/{cjs → dist/cjs}/workspace/package.json +0 -0
  613. /package/{esm → dist/cjs}/workspace/src/counter.lua +0 -0
  614. /package/{esm → dist/esm}/accounts-web.js +0 -0
  615. /package/{esm → dist/esm}/accounts.js +0 -0
  616. /package/{esm → dist/esm}/adaptor-base.js +0 -0
  617. /package/{esm → dist/esm}/adaptor-cf.js +0 -0
  618. /package/{esm → dist/esm}/adaptor-web.js +0 -0
  619. /package/{esm → dist/esm}/adaptor.js +0 -0
  620. /package/{esm → dist/esm}/ao-loader.js +0 -0
  621. /package/{esm → dist/esm}/ao.js +0 -0
  622. /package/{esm → dist/esm}/aoconnect-base.js +0 -0
  623. /package/{esm → dist/esm}/aoconnect-cf.js +0 -0
  624. /package/{esm → dist/esm}/aoconnect-web.js +0 -0
  625. /package/{esm → dist/esm}/aoconnect.js +0 -0
  626. /package/{esm → dist/esm}/aos_wamr.js +0 -0
  627. /package/{esm → dist/esm}/ar-remote.js +0 -0
  628. /package/{esm → dist/esm}/ar.js +0 -0
  629. /package/{esm → dist/esm}/armem-base.js +0 -0
  630. /package/{esm → dist/esm}/armem-cf.js +0 -0
  631. /package/{esm → dist/esm}/armem-web.js +0 -0
  632. /package/{esm → dist/esm}/armem.js +0 -0
  633. /package/{esm → dist/esm}/bao.js +0 -0
  634. /package/{esm → dist/esm}/bar.js +0 -0
  635. /package/{esm → dist/esm}/build.js +0 -0
  636. /package/{esm → dist/esm}/bundler.js +0 -0
  637. /package/{esm → dist/esm}/car.js +0 -0
  638. /package/{esm → dist/esm}/cf-env.js +0 -0
  639. /package/{esm → dist/esm}/cf.js +0 -0
  640. /package/{esm → dist/esm}/cli.js +0 -0
  641. /package/{esm → dist/esm}/compress.js +0 -0
  642. /package/{esm → dist/esm}/create.js +0 -0
  643. /package/{esm → dist/esm}/devs.js +0 -0
  644. /package/{esm → dist/esm}/dirname.js +0 -0
  645. /package/{esm → dist/esm}/dodb.js +0 -0
  646. /package/{esm → dist/esm}/erl_json.js +0 -0
  647. /package/{esm → dist/esm}/erl_str.js +0 -0
  648. /package/{esm → dist/esm}/gql.js +0 -0
  649. /package/{esm → dist/esm}/hb.js +0 -0
  650. /package/{esm → dist/esm}/helpers.js +0 -0
  651. /package/{esm → dist/esm}/http.js +0 -0
  652. /package/{esm → dist/esm}/hub/bundler.js +0 -0
  653. /package/{esm → dist/esm}/hub/cu.js +0 -0
  654. /package/{esm → dist/esm}/hub/fs.js +0 -0
  655. /package/{esm → dist/esm}/hub/index.js +0 -0
  656. /package/{esm → dist/esm}/hub/utils.js +0 -0
  657. /package/{esm → dist/esm}/hub/ws-proxy.js +0 -0
  658. /package/{esm → dist/esm}/hyper-aos.js +0 -0
  659. /package/{esm → dist/esm}/hyperbeam-server.js +0 -0
  660. /package/{esm → dist/esm}/hyperbeam.js +0 -0
  661. /package/{esm → dist/esm}/index.js +0 -0
  662. /package/{esm → dist/esm}/keygen.js +0 -0
  663. /package/{esm → dist/esm}/lfdb.js +0 -0
  664. /package/{esm → dist/esm}/lua/aos.wasm +0 -0
  665. /package/{esm → dist/esm}/lua/aos2_0_1.js +0 -0
  666. /package/{esm → dist/esm}/lua/aos2_0_1.wasm +0 -0
  667. /package/{esm → dist/esm}/lua/aos2_0_3.js +0 -0
  668. /package/{esm → dist/esm}/lua/aos2_0_3.wasm +0 -0
  669. /package/{esm → dist/esm}/lua/aos2_0_4_32.js +0 -0
  670. /package/{esm → dist/esm}/lua/aos2_0_4_32.wasm +0 -0
  671. /package/{esm → dist/esm}/lua/aos2_0_6.wasm +0 -0
  672. /package/{esm → dist/esm}/lua/apm.lua +0 -0
  673. /package/{esm → dist/esm}/lua/llama.wasm +0 -0
  674. /package/{esm → dist/esm}/lua/process.wasm +0 -0
  675. /package/{esm → dist/esm}/lua/sqlite.js +0 -0
  676. /package/{esm → dist/esm}/lua/sqlite.wasm +0 -0
  677. /package/{esm → dist/esm}/lua/weavedb_mock.lua +0 -0
  678. /package/{esm → dist/esm}/lua/weavedrive.lua +0 -0
  679. /package/{esm → dist/esm}/package.json +0 -0
  680. /package/{esm → dist/esm}/run.js +0 -0
  681. /package/{esm → dist/esm}/server.js +0 -0
  682. /package/{esm → dist/esm}/storage-multi.js +0 -0
  683. /package/{esm → dist/esm}/tao.js +0 -0
  684. /package/{esm → dist/esm}/tar.js +0 -0
  685. /package/{esm → dist/esm}/test.js +0 -0
  686. /package/{esm → dist/esm}/tgql-d1.js +0 -0
  687. /package/{esm → dist/esm}/tgql.js +0 -0
  688. /package/{esm → dist/esm}/toerl.js +0 -0
  689. /package/{esm → dist/esm}/utils.js +0 -0
  690. /package/{esm → dist/esm}/wao.js +0 -0
  691. /package/{esm → dist/esm}/waosm/README.md +0 -0
  692. /package/{esm → dist/esm}/waosm/waosm.d.ts +0 -0
  693. /package/{esm → dist/esm}/waosm/waosm.js +0 -0
  694. /package/{esm → dist/esm}/waosm/waosm_bg.wasm +0 -0
  695. /package/{esm → dist/esm}/waosm/waosm_bg.wasm.d.ts +0 -0
  696. /package/{esm → dist/esm}/waosm-node/README.md +0 -0
  697. /package/{esm → dist/esm}/waosm-node/waosm.d.ts +0 -0
  698. /package/{esm → dist/esm}/waosm-node/waosm.js +0 -0
  699. /package/{esm → dist/esm}/waosm-node/waosm_bg.js +0 -0
  700. /package/{esm → dist/esm}/waosm-node/waosm_bg.wasm +0 -0
  701. /package/{esm → dist/esm}/waosm-node/waosm_bg.wasm.d.ts +0 -0
  702. /package/{esm → dist/esm}/waosm-node/waosm_bg.wasm.js +0 -0
  703. /package/{esm → dist/esm}/waosm-node.js +0 -0
  704. /package/{esm → dist/esm}/war.js +0 -0
  705. /package/{esm → dist/esm}/weavedrive.js +0 -0
  706. /package/{esm → dist/esm}/web.js +0 -0
  707. /package/{esm → dist/esm}/workspace/.mcp.json +0 -0
  708. /package/{esm → dist/esm}/workspace/CLAUDE.md +0 -0
  709. /package/{esm → dist/esm}/workspace/README.md +0 -0
  710. /package/{esm → dist/esm}/workspace/dashboard/index.html +0 -0
  711. /package/{esm → dist/esm}/workspace/dashboard/package.json +0 -0
  712. /package/{esm/workspace/dashboard/public/favicon.png → dist/esm/workspace/dashboard/public/favicon.ico} +0 -0
  713. /package/{esm → dist/esm}/workspace/dashboard/server.js +0 -0
  714. /package/{esm → dist/esm}/workspace/dashboard/src/App.jsx +0 -0
  715. /package/{cjs/workspace/frontend → dist/esm/workspace/dashboard}/src/main.jsx +0 -0
  716. /package/{esm → dist/esm}/workspace/dashboard/vite.config.js +0 -0
  717. /package/{esm → dist/esm}/workspace/package.json +0 -0
  718. /package/{postinstall.cjs → dist/postinstall.cjs} +0 -0
  719. /package/{esm → src}/workspace/dashboard/src/main.jsx +0 -0
@@ -0,0 +1,1365 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.enc = enc;
7
+ var _base64url = _interopRequireDefault(require("base64url"));
8
+ var _encodeUtils = require("./encode-utils.js");
9
+ var _encodeArrayItem = _interopRequireDefault(require("./encode-array-item.js"));
10
+ var _collectBodyKeys = _interopRequireDefault(require("./collect-body-keys.js"));
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
12
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
13
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
14
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
15
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
16
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
17
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
18
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
19
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
20
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
21
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
22
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
23
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
24
+ var MAX_HEADER_LENGTH = 4096;
25
+
26
+ // Step 1: Process and normalize input values (handle symbols, nested objects/arrays)
27
+ function processInputValues(obj) {
28
+ // Currently this is a no-op, but will be used for input validation/normalization
29
+ return obj;
30
+ }
31
+
32
+ // Step 2: Handle empty object case
33
+ function handleEmptyObject(obj) {
34
+ if (Object.keys(obj).length === 0) {
35
+ return {
36
+ headers: {},
37
+ body: undefined
38
+ };
39
+ }
40
+ return null;
41
+ }
42
+
43
+ // Step 3: Handle single field with empty binary
44
+ function handleSingleEmptyBinaryField(obj) {
45
+ var objKeys = Object.keys(obj);
46
+ if (objKeys.length === 1) {
47
+ var fieldName = objKeys[0];
48
+ var fieldValue = obj[fieldName];
49
+ if ((0, _encodeUtils.isBytes)(fieldValue) && (fieldValue.length === 0 || fieldValue.byteLength === 0)) {
50
+ var headers = {};
51
+ // For 'body' field, we can't send it as a header (reserved name, gets stripped).
52
+ // Use inline-body-key to signal that body was present but empty.
53
+ // The modOut function will reconstruct body: <<>> when it sees inline-body-key: body
54
+ // with no actual body content.
55
+ if (fieldName.toLowerCase() === "body") {
56
+ headers["inline-body-key"] = "body";
57
+ return {
58
+ headers: headers,
59
+ body: undefined
60
+ };
61
+ }
62
+ // Include the key with empty value - empty string becomes empty binary in Erlang
63
+ headers[fieldName.toLowerCase()] = "";
64
+ return {
65
+ headers: headers,
66
+ body: undefined
67
+ };
68
+ }
69
+ }
70
+ return null;
71
+ }
72
+
73
+ // Step 4: Handle single field with binary data
74
+ function handleSingleBinaryField(_x) {
75
+ return _handleSingleBinaryField.apply(this, arguments);
76
+ } // Step 5: Handle single field with primitive value (string/number/boolean/null/undefined/symbol)
77
+ function _handleSingleBinaryField() {
78
+ _handleSingleBinaryField = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(obj) {
79
+ var hasBodyBinary, otherFields, headers, bodyBuffer, bodyArrayBuffer, contentDigest, base64;
80
+ return _regenerator().w(function (_context) {
81
+ while (1) switch (_context.n) {
82
+ case 0:
83
+ hasBodyBinary = obj.body && (0, _encodeUtils.isBytes)(obj.body);
84
+ otherFields = Object.keys(obj).filter(function (k) {
85
+ return k !== "body";
86
+ });
87
+ if (!(hasBodyBinary && otherFields.length === 0)) {
88
+ _context.n = 2;
89
+ break;
90
+ }
91
+ headers = {};
92
+ bodyBuffer = (0, _encodeUtils.toBuffer)(obj.body);
93
+ bodyArrayBuffer = bodyBuffer.buffer.slice(bodyBuffer.byteOffset, bodyBuffer.byteOffset + bodyBuffer.byteLength);
94
+ _context.n = 1;
95
+ return (0, _encodeUtils.sha256)(bodyArrayBuffer);
96
+ case 1:
97
+ contentDigest = _context.v;
98
+ base64 = _base64url["default"].toBase64(_base64url["default"].encode(contentDigest));
99
+ headers["content-digest"] = "sha-256=:".concat(base64, ":");
100
+ return _context.a(2, {
101
+ headers: headers,
102
+ body: obj.body
103
+ });
104
+ case 2:
105
+ return _context.a(2, null);
106
+ }
107
+ }, _callee);
108
+ }));
109
+ return _handleSingleBinaryField.apply(this, arguments);
110
+ }
111
+ function handleSinglePrimitiveField(_x2) {
112
+ return _handleSinglePrimitiveField.apply(this, arguments);
113
+ } // Step 6a: Handle single field with non-empty binary (not body field)
114
+ function _handleSinglePrimitiveField() {
115
+ _handleSinglePrimitiveField = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(obj) {
116
+ var objKeys, fieldName, fieldValue, headers, bodyContent, encoder, encoded, contentDigest, base64, aoType;
117
+ return _regenerator().w(function (_context2) {
118
+ while (1) switch (_context2.n) {
119
+ case 0:
120
+ objKeys = Object.keys(obj);
121
+ if (!(objKeys.length === 1)) {
122
+ _context2.n = 2;
123
+ break;
124
+ }
125
+ fieldName = objKeys[0];
126
+ fieldValue = obj[fieldName];
127
+ if (!((fieldName === "data" || fieldName === "body") && (typeof fieldValue === "string" || typeof fieldValue === "boolean" || typeof fieldValue === "number" || fieldValue === null || fieldValue === undefined || _typeof(fieldValue) === "symbol"))) {
128
+ _context2.n = 2;
129
+ break;
130
+ }
131
+ headers = {};
132
+ bodyContent = (0, _encodeUtils.encodePrimitiveContent)(fieldValue);
133
+ encoder = new TextEncoder();
134
+ encoded = encoder.encode(bodyContent);
135
+ _context2.n = 1;
136
+ return (0, _encodeUtils.sha256)(encoded.buffer);
137
+ case 1:
138
+ contentDigest = _context2.v;
139
+ base64 = _base64url["default"].toBase64(_base64url["default"].encode(contentDigest));
140
+ headers["content-digest"] = "sha-256=:".concat(base64, ":");
141
+ aoType = (0, _encodeUtils.getAoType)(fieldValue);
142
+ if (aoType === "atom" || aoType === "integer" || aoType === "float") {
143
+ headers["ao-types"] = "".concat(fieldName.toLowerCase(), "=\"").concat(aoType, "\"");
144
+ }
145
+ if (fieldName !== "body") {
146
+ headers["inline-body-key"] = fieldName;
147
+ }
148
+ return _context2.a(2, {
149
+ headers: headers,
150
+ body: bodyContent
151
+ });
152
+ case 2:
153
+ return _context2.a(2, null);
154
+ }
155
+ }, _callee2);
156
+ }));
157
+ return _handleSinglePrimitiveField.apply(this, arguments);
158
+ }
159
+ function handleSingleNonEmptyBinaryField(_x3) {
160
+ return _handleSingleNonEmptyBinaryField.apply(this, arguments);
161
+ } // Step 6: Handle single field with non-ASCII string
162
+ function _handleSingleNonEmptyBinaryField() {
163
+ _handleSingleNonEmptyBinaryField = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(obj) {
164
+ var objKeys, fieldName, fieldValue, headers, bodyBuffer, bodyArrayBuffer, contentDigest, base64;
165
+ return _regenerator().w(function (_context3) {
166
+ while (1) switch (_context3.n) {
167
+ case 0:
168
+ objKeys = Object.keys(obj);
169
+ if (!(objKeys.length === 1)) {
170
+ _context3.n = 2;
171
+ break;
172
+ }
173
+ fieldName = objKeys[0];
174
+ fieldValue = obj[fieldName];
175
+ if (!((0, _encodeUtils.isBytes)(fieldValue) && fieldValue.length > 0)) {
176
+ _context3.n = 2;
177
+ break;
178
+ }
179
+ headers = {};
180
+ bodyBuffer = (0, _encodeUtils.toBuffer)(fieldValue);
181
+ bodyArrayBuffer = bodyBuffer.buffer.slice(bodyBuffer.byteOffset, bodyBuffer.byteOffset + bodyBuffer.byteLength);
182
+ _context3.n = 1;
183
+ return (0, _encodeUtils.sha256)(bodyArrayBuffer);
184
+ case 1:
185
+ contentDigest = _context3.v;
186
+ base64 = _base64url["default"].toBase64(_base64url["default"].encode(contentDigest));
187
+ headers["content-digest"] = "sha-256=:".concat(base64, ":");
188
+ if (fieldName !== "body") {
189
+ headers["inline-body-key"] = fieldName;
190
+ }
191
+ return _context3.a(2, {
192
+ headers: headers,
193
+ body: fieldValue
194
+ });
195
+ case 2:
196
+ return _context3.a(2, null);
197
+ }
198
+ }, _callee3);
199
+ }));
200
+ return _handleSingleNonEmptyBinaryField.apply(this, arguments);
201
+ }
202
+ function handleSingleNonAsciiStringField(_x4) {
203
+ return _handleSingleNonAsciiStringField.apply(this, arguments);
204
+ } // Step 7: Collect all keys that need to go in body
205
+ function _handleSingleNonAsciiStringField() {
206
+ _handleSingleNonAsciiStringField = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(obj) {
207
+ var objKeys, fieldName, fieldValue, headers, encoder, encoded, contentDigest, base64;
208
+ return _regenerator().w(function (_context4) {
209
+ while (1) switch (_context4.n) {
210
+ case 0:
211
+ objKeys = Object.keys(obj);
212
+ if (!(objKeys.length === 1)) {
213
+ _context4.n = 2;
214
+ break;
215
+ }
216
+ fieldName = objKeys[0];
217
+ fieldValue = obj[fieldName];
218
+ if (!(typeof fieldValue === "string" && (0, _encodeUtils.hasNonAscii)(fieldValue))) {
219
+ _context4.n = 2;
220
+ break;
221
+ }
222
+ headers = {};
223
+ encoder = new TextEncoder();
224
+ encoded = encoder.encode(fieldValue);
225
+ _context4.n = 1;
226
+ return (0, _encodeUtils.sha256)(encoded.buffer);
227
+ case 1:
228
+ contentDigest = _context4.v;
229
+ base64 = _base64url["default"].toBase64(_base64url["default"].encode(contentDigest));
230
+ headers["content-digest"] = "sha-256=:".concat(base64, ":");
231
+ if (fieldName !== "body") {
232
+ headers["inline-body-key"] = fieldName;
233
+ }
234
+ return _context4.a(2, {
235
+ headers: headers,
236
+ body: fieldValue
237
+ });
238
+ case 2:
239
+ return _context4.a(2, null);
240
+ }
241
+ }, _callee4);
242
+ }));
243
+ return _handleSingleNonAsciiStringField.apply(this, arguments);
244
+ }
245
+ function collectBodyKeysStep(obj) {
246
+ return (0, _collectBodyKeys["default"])(obj);
247
+ }
248
+
249
+ // Step 8: Process fields that can go in headers
250
+ function processHeaderFields(obj, bodyKeys, headers, headerTypes) {
251
+ var _loop = function _loop() {
252
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
253
+ key = _Object$entries$_i[0],
254
+ value = _Object$entries$_i[1];
255
+ var needsBody = bodyKeys.includes(key) || bodyKeys.some(function (k) {
256
+ return k.startsWith("".concat(key, "/"));
257
+ });
258
+ if (!needsBody) {
259
+ if (value === null) {
260
+ headers[key] = '"null"';
261
+ headerTypes.push("".concat(key.toLowerCase(), "=\"atom\""));
262
+ } else if (value === undefined) {
263
+ headers[key] = '"undefined"';
264
+ headerTypes.push("".concat(key.toLowerCase(), "=\"atom\""));
265
+ } else if (typeof value === "boolean") {
266
+ headers[key] = "\"".concat(value, "\"");
267
+ headerTypes.push("".concat(key.toLowerCase(), "=\"atom\""));
268
+ } else if (_typeof(value) === "symbol") {
269
+ headers[key] = "\"".concat(value.description || "Symbol.for()", "\"");
270
+ headerTypes.push("".concat(key.toLowerCase(), "=\"atom\""));
271
+ } else if (typeof value === "number") {
272
+ headers[key] = String(value);
273
+ headerTypes.push("".concat(key.toLowerCase(), "=\"").concat(Number.isInteger(value) ? "integer" : "float", "\""));
274
+ } else if (typeof value === "string") {
275
+ if (value.length === 0) {
276
+ // Empty string becomes empty binary in Erlang - no ao-types needed
277
+ headers[key] = "";
278
+ } else if ((0, _encodeUtils.hasNonAscii)(value)) {
279
+ return 1; // continue
280
+ } else {
281
+ headers[key] = value;
282
+ }
283
+ } else if (Array.isArray(value) && value.length === 0) {
284
+ // Empty array - use list type annotation
285
+ headers[key] = "";
286
+ headerTypes.push("".concat(key.toLowerCase(), "=\"list\""));
287
+ } else if (Array.isArray(value) && !value.some(function (item) {
288
+ return (0, _encodeUtils.isPojo)(item);
289
+ })) {
290
+ var hasNonAsciiItems = value.some(function (item) {
291
+ return typeof item === "string" && (0, _encodeUtils.hasNonAscii)(item);
292
+ });
293
+ if (!hasNonAsciiItems) {
294
+ var encodedItems = value.map(function (item) {
295
+ return (0, _encodeArrayItem["default"])(item);
296
+ }).join(", ");
297
+ headers[key] = encodedItems;
298
+ headerTypes.push("".concat(key.toLowerCase(), "=\"list\""));
299
+ }
300
+ } else if ((0, _encodeUtils.isBytes)(value) && (value.length === 0 || value.byteLength === 0)) {
301
+ // Empty buffer becomes empty binary in Erlang - no ao-types needed
302
+ // For 'body' field, we can't send it as a header (reserved name, gets stripped).
303
+ // Use inline-body-key to signal that body was present but empty.
304
+ if (key.toLowerCase() === "body") {
305
+ headers["inline-body-key"] = "body";
306
+ } else {
307
+ headers[key] = "";
308
+ }
309
+ } else if ((0, _encodeUtils.isPojo)(value) && Object.keys(value).length === 0) {
310
+ // Empty object - use map type annotation
311
+ headers[key] = "";
312
+ headerTypes.push("".concat(key.toLowerCase(), "=\"map\""));
313
+ }
314
+ } else {
315
+ // Fields that need body still get type annotations
316
+ var aoType = (0, _encodeUtils.getAoType)(value);
317
+ if (aoType) {
318
+ headerTypes.push("".concat(key.toLowerCase(), "=\"").concat(aoType, "\""));
319
+ }
320
+ }
321
+ };
322
+ for (var _i = 0, _Object$entries = Object.entries(obj); _i < _Object$entries.length; _i++) {
323
+ if (_loop()) continue;
324
+ }
325
+
326
+ // Second pass for array type annotations
327
+ var _loop2 = function _loop2() {
328
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2),
329
+ key = _Object$entries2$_i[0],
330
+ value = _Object$entries2$_i[1];
331
+ if (Array.isArray(value)) {
332
+ if (bodyKeys.includes(key) || bodyKeys.some(function (k) {
333
+ return k.startsWith("".concat(key, "/"));
334
+ })) {
335
+ if (!headerTypes.some(function (t) {
336
+ return t.startsWith("".concat(key.toLowerCase(), "="));
337
+ })) {
338
+ headerTypes.push("".concat(key.toLowerCase(), "=\"list\""));
339
+ }
340
+ }
341
+ }
342
+ };
343
+ for (var _i2 = 0, _Object$entries2 = Object.entries(obj); _i2 < _Object$entries2.length; _i2++) {
344
+ _loop2();
345
+ }
346
+ }
347
+
348
+ // Step 9: Handle case where all body keys are empty binaries
349
+ function handleAllEmptyBinaryBodyKeys(obj, bodyKeys, headers, headerTypes) {
350
+ if (bodyKeys.length === 0) {
351
+ if (headerTypes.length > 0) {
352
+ headers["ao-types"] = headerTypes.sort().join(", ");
353
+ }
354
+ return {
355
+ headers: headers,
356
+ body: undefined
357
+ };
358
+ }
359
+ var allBodyKeysAreEmptyBinaries = bodyKeys.every(function (key) {
360
+ var value = (0, _encodeUtils.getValueByPath)(obj, key);
361
+ return (0, _encodeUtils.isBytes)(value) && (value.length === 0 || value.byteLength === 0);
362
+ });
363
+ if (allBodyKeysAreEmptyBinaries) {
364
+ if (headerTypes.length > 0) {
365
+ headers["ao-types"] = headerTypes.sort().join(", ");
366
+ }
367
+ return {
368
+ headers: headers,
369
+ body: undefined
370
+ };
371
+ }
372
+ return null;
373
+ }
374
+
375
+ // Step 10: Handle single body key optimization
376
+ function handleSingleBodyKeyOptimization(_x5, _x6, _x7, _x8) {
377
+ return _handleSingleBodyKeyOptimization.apply(this, arguments);
378
+ } // Step 11: Sort body keys
379
+ function _handleSingleBodyKeyOptimization() {
380
+ _handleSingleBodyKeyOptimization = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(obj, bodyKeys, headers, headerTypes) {
381
+ var otherFields, singleKey, value, contentToHash, bodyContent, bodyBuffer, encoder, encoded, contentDigest, base64;
382
+ return _regenerator().w(function (_context5) {
383
+ while (1) switch (_context5.n) {
384
+ case 0:
385
+ // Skip this optimization if there are other header fields - need full multipart encoding
386
+ // to be compatible with HyperBEAM scheduler endpoint
387
+ otherFields = Object.keys(obj).filter(function (k) {
388
+ return !bodyKeys.includes(k) && !bodyKeys.some(function (bk) {
389
+ return bk.startsWith("".concat(k, "/"));
390
+ });
391
+ });
392
+ if (!(otherFields.length > 0 && bodyKeys.length === 1)) {
393
+ _context5.n = 1;
394
+ break;
395
+ }
396
+ return _context5.a(2, null);
397
+ case 1:
398
+ if (!(bodyKeys.length === 1)) {
399
+ _context5.n = 3;
400
+ break;
401
+ }
402
+ singleKey = bodyKeys[0];
403
+ value = (0, _encodeUtils.getValueByPath)(obj, singleKey); // Apply optimization for binary data OR strings with newlines
404
+ if (!((0, _encodeUtils.isBytes)(value) && value.length > 0 || typeof value === "string" && value.includes("\n"))) {
405
+ _context5.n = 3;
406
+ break;
407
+ }
408
+ bodyContent = value;
409
+ if ((0, _encodeUtils.isBytes)(value)) {
410
+ bodyBuffer = (0, _encodeUtils.toBuffer)(value);
411
+ contentToHash = bodyBuffer.buffer.slice(bodyBuffer.byteOffset, bodyBuffer.byteOffset + bodyBuffer.byteLength);
412
+ } else {
413
+ // For strings, encode to UTF-8 for hashing
414
+ encoder = new TextEncoder();
415
+ encoded = encoder.encode(value);
416
+ contentToHash = encoded.buffer;
417
+ bodyContent = value;
418
+ }
419
+ _context5.n = 2;
420
+ return (0, _encodeUtils.sha256)(contentToHash);
421
+ case 2:
422
+ contentDigest = _context5.v;
423
+ base64 = _base64url["default"].toBase64(_base64url["default"].encode(contentDigest));
424
+ headers["content-digest"] = "sha-256=:".concat(base64, ":");
425
+ if (singleKey !== "body") {
426
+ headers["inline-body-key"] = singleKey;
427
+ }
428
+ if (headerTypes.length > 0) {
429
+ headers["ao-types"] = headerTypes.sort().join(", ");
430
+ }
431
+ return _context5.a(2, {
432
+ headers: headers,
433
+ body: bodyContent
434
+ });
435
+ case 3:
436
+ return _context5.a(2, null);
437
+ }
438
+ }, _callee5);
439
+ }));
440
+ return _handleSingleBodyKeyOptimization.apply(this, arguments);
441
+ }
442
+ function sortBodyKeys(bodyKeys) {
443
+ return bodyKeys.sort(function (a, b) {
444
+ var aIsArrayElement = /\/\d+$/.test(a);
445
+ var bIsArrayElement = /\/\d+$/.test(b);
446
+ var aBase = a.split("/")[0];
447
+ var bBase = b.split("/")[0];
448
+ if (aBase === bBase) {
449
+ if (!aIsArrayElement && bIsArrayElement) {
450
+ return -1;
451
+ }
452
+ if (aIsArrayElement && !bIsArrayElement) {
453
+ return 1;
454
+ }
455
+ if (aIsArrayElement && bIsArrayElement) {
456
+ var aIndex = parseInt(a.split("/")[1]);
457
+ var bIndex = parseInt(b.split("/")[1]);
458
+ return aIndex - bIndex;
459
+ }
460
+ return a.localeCompare(b);
461
+ }
462
+ return a.localeCompare(b);
463
+ });
464
+ }
465
+
466
+ // Step 12: Check for special data/body case
467
+ function checkSpecialDataBodyCase(obj, sortedBodyKeys) {
468
+ return sortedBodyKeys.includes("data") && sortedBodyKeys.includes("body") && obj.data && obj.data.body && (0, _encodeUtils.isBytes)(obj.data.body) && obj.body && obj.body.data && (0, _encodeUtils.isBytes)(obj.body.data);
469
+ }
470
+
471
+ // Step 13.2.2: Handle empty string in nested path
472
+ function handleEmptyStringInNestedPath(bodyKey, value, pathParts) {
473
+ if (typeof value === "string" && value === "" && pathParts.length > 1) {
474
+ var lines = [];
475
+ lines.push("content-disposition: form-data;name=\"".concat(bodyKey, "\""));
476
+ lines.push("");
477
+ lines.push("");
478
+ return new Blob([lines.join("\r\n")]);
479
+ }
480
+ return null;
481
+ }
482
+
483
+ // Step 13.2.3.2: Handle arrays with only empty elements
484
+ function handleArrayWithOnlyEmptyElements(bodyKey, value, headers, sortedBodyKeys) {
485
+ var fieldLines = [];
486
+ var partTypes = [];
487
+ value.forEach(function (item, idx) {
488
+ var index = idx + 1;
489
+ var itemType = (0, _encodeUtils.getAoType)(item);
490
+ if (itemType) {
491
+ partTypes.push("".concat(index, "=\"").concat(itemType, "\""));
492
+ }
493
+ });
494
+ var isInline = bodyKey === "body" && headers["inline-body-key"] === "body";
495
+ if (isInline) {
496
+ var orderedLines = [];
497
+ if (partTypes.length > 0) {
498
+ orderedLines.push("ao-types: ".concat((0, _encodeUtils.sortTypeAnnotations)(partTypes).join(", ")));
499
+ }
500
+ orderedLines.push("content-disposition: inline");
501
+ orderedLines.push("");
502
+ return new Blob([orderedLines.join("\r\n")]);
503
+ } else {
504
+ var _orderedLines = [];
505
+ if (partTypes.length > 0) {
506
+ _orderedLines.push("ao-types: ".concat((0, _encodeUtils.sortTypeAnnotations)(partTypes).join(", ")));
507
+ }
508
+ _orderedLines.push("content-disposition: form-data;name=\"".concat(bodyKey, "\""));
509
+ var isLastBodyPart = sortedBodyKeys.indexOf(bodyKey) === sortedBodyKeys.length - 1;
510
+ var hasOnlyTypes = partTypes.length > 0 && fieldLines.length === 0;
511
+ if (isLastBodyPart && hasOnlyTypes) {
512
+ return new Blob([_orderedLines.join("\r\n")]);
513
+ } else {
514
+ _orderedLines.push("");
515
+ return new Blob([_orderedLines.join("\r\n")]);
516
+ }
517
+ }
518
+ }
519
+
520
+ // Step 13.2.3.3: Build indices with own parts
521
+ function buildIndicesWithOwnParts(bodyKey, sortedBodyKeys) {
522
+ var indicesWithOwnParts = new Set();
523
+ sortedBodyKeys.forEach(function (key) {
524
+ if (key.startsWith(bodyKey + "/")) {
525
+ var subPath = key.substring(bodyKey.length + 1);
526
+ var match = subPath.match(/^(\d+)/);
527
+ if (match) {
528
+ indicesWithOwnParts.add(parseInt(match[1]));
529
+ }
530
+ }
531
+ });
532
+ return indicesWithOwnParts;
533
+ }
534
+
535
+ // Step 13.2.3.4: Process array items
536
+ function processArrayItems(value, indicesWithOwnParts, hasNestedObjectParts, pathParts) {
537
+ var fieldLines = [];
538
+ var partTypes = [];
539
+ if (hasNestedObjectParts) {
540
+ value.forEach(function (item, idx) {
541
+ var index = idx + 1;
542
+ if (Array.isArray(item)) {
543
+ partTypes.push("".concat(index, "=\"list\""));
544
+ }
545
+ });
546
+ }
547
+ value.forEach(function (item, idx) {
548
+ var index = idx + 1;
549
+ if (indicesWithOwnParts.has(index)) {
550
+ // This item has its own part - skip it here
551
+ // Don't add type annotation for items that have their own parts
552
+ return;
553
+ }
554
+ if (hasNestedObjectParts && Array.isArray(item) && item.some(function (subItem) {
555
+ return (0, _encodeUtils.isPojo)(subItem);
556
+ })) {
557
+ return;
558
+ }
559
+ if (typeof item === "string" && item === "") {
560
+ // Empty strings become empty binaries naturally - no type annotation needed
561
+ } else if ((0, _encodeUtils.isPojo)(item) && Object.keys(item).length === 0) {
562
+ // Use "map" instead of "empty-message" for structured codec compatibility
563
+ partTypes.push("".concat(index, "=\"map\""));
564
+ } else if ((0, _encodeUtils.isPojo)(item)) {
565
+ // Non-empty objects are handled elsewhere
566
+ } else if (Array.isArray(item)) {
567
+ if (item.length === 0) {
568
+ // Use "list" instead of "empty-list" for structured codec compatibility
569
+ partTypes.push("".concat(index, "=\"list\""));
570
+ } else {
571
+ partTypes.push("".concat(index, "=\"list\""));
572
+ var encodedItems = item.map(function (subItem) {
573
+ if (typeof subItem === "number") {
574
+ if (Number.isInteger(subItem)) {
575
+ return "\"(ao-type-integer) ".concat(subItem, "\"");
576
+ } else {
577
+ return "\"(ao-type-float) ".concat((0, _encodeUtils.formatFloat)(subItem), "\"");
578
+ }
579
+ } else if (typeof subItem === "string") {
580
+ return "\"".concat(subItem, "\"");
581
+ } else if (subItem === null) {
582
+ return "\"(ao-type-atom) \\\"null\\\"\"";
583
+ } else if (subItem === undefined) {
584
+ return "\"(ao-type-atom) \\\"undefined\\\"\"";
585
+ } else if (_typeof(subItem) === "symbol") {
586
+ var desc = subItem.description || "Symbol.for()";
587
+ return "\"(ao-type-atom) \\\"".concat(desc, "\\\"\"");
588
+ } else if (typeof subItem === "boolean") {
589
+ return "\"(ao-type-atom) \\\"".concat(subItem, "\\\"\"");
590
+ } else if (Array.isArray(subItem)) {
591
+ return (0, _encodeArrayItem["default"])(subItem);
592
+ } else if ((0, _encodeUtils.isBytes)(subItem)) {
593
+ var buffer = (0, _encodeUtils.toBuffer)(subItem);
594
+ if (buffer.length === 0 || buffer.byteLength === 0) {
595
+ return "\"\"";
596
+ }
597
+ return "\"(ao-type-binary)\"";
598
+ } else if ((0, _encodeUtils.isPojo)(subItem)) {
599
+ var json = JSON.stringify(subItem);
600
+ var escaped = json.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
601
+ return "\"(ao-type-map) ".concat(escaped, "\"");
602
+ } else {
603
+ return "\"".concat(String(subItem), "\"");
604
+ }
605
+ }).join(", ");
606
+ fieldLines.push("".concat(index, ": ").concat(encodedItems));
607
+ }
608
+ } else if (typeof item === "number") {
609
+ if (Number.isInteger(item)) {
610
+ partTypes.push("".concat(index, "=\"integer\""));
611
+ fieldLines.push("".concat(index, ": ").concat(item));
612
+ } else {
613
+ partTypes.push("".concat(index, "=\"float\""));
614
+ fieldLines.push("".concat(index, ": ").concat((0, _encodeUtils.formatFloat)(item)));
615
+ }
616
+ } else if (typeof item === "string") {
617
+ fieldLines.push("".concat(index, ": ").concat(item));
618
+ } else if (item === null || item === undefined || _typeof(item) === "symbol" || typeof item === "boolean") {
619
+ partTypes.push("".concat(index, "=\"atom\""));
620
+ if (item === null) {
621
+ fieldLines.push("".concat(index, ": null"));
622
+ } else if (item === undefined) {
623
+ fieldLines.push("".concat(index, ": undefined"));
624
+ } else if (_typeof(item) === "symbol") {
625
+ var desc = item.description || "Symbol.for()";
626
+ fieldLines.push("".concat(index, ": ").concat(desc));
627
+ } else {
628
+ fieldLines.push("".concat(index, ": ").concat(item));
629
+ }
630
+ } else if ((0, _encodeUtils.isBytes)(item)) {
631
+ var buffer = (0, _encodeUtils.toBuffer)(item);
632
+ if (buffer.length === 0) {
633
+ // Empty buffers become empty binaries naturally - no type annotation needed
634
+ } else {
635
+ partTypes.push("".concat(index, "=\"binary\""));
636
+ }
637
+ }
638
+ });
639
+ return {
640
+ fieldLines: fieldLines,
641
+ partTypes: partTypes
642
+ };
643
+ }
644
+
645
+ // Step 13.2.3.5: Create array body part
646
+ function createArrayBodyPart(bodyKey, fieldLines, partTypes, headers) {
647
+ var isInline = bodyKey === "body" && headers["inline-body-key"] === "body";
648
+ if (isInline) {
649
+ var orderedLines = [];
650
+ if (partTypes.length > 0) {
651
+ orderedLines.push("ao-types: ".concat((0, _encodeUtils.sortTypeAnnotations)(partTypes).join(", ")));
652
+ }
653
+ orderedLines.push("content-disposition: inline");
654
+ if (fieldLines.length > 0) {
655
+ orderedLines.push("");
656
+ var _iterator = _createForOfIteratorHelper(fieldLines),
657
+ _step;
658
+ try {
659
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
660
+ var line = _step.value;
661
+ orderedLines.push(line);
662
+ }
663
+ } catch (err) {
664
+ _iterator.e(err);
665
+ } finally {
666
+ _iterator.f();
667
+ }
668
+ }
669
+ return new Blob([orderedLines.join("\r\n") + "\r\n"]);
670
+ } else {
671
+ var _orderedLines2 = [];
672
+ if (partTypes.length > 0) {
673
+ _orderedLines2.push("ao-types: ".concat((0, _encodeUtils.sortTypeAnnotations)(partTypes).join(", ")));
674
+ }
675
+ _orderedLines2.push("content-disposition: form-data;name=\"".concat(bodyKey, "\""));
676
+ var _iterator2 = _createForOfIteratorHelper(fieldLines),
677
+ _step2;
678
+ try {
679
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
680
+ var _line = _step2.value;
681
+ _orderedLines2.push(_line);
682
+ }
683
+ } catch (err) {
684
+ _iterator2.e(err);
685
+ } finally {
686
+ _iterator2.f();
687
+ }
688
+ if (fieldLines.length > 0) {
689
+ return new Blob([_orderedLines2.join("\r\n") + "\r\n"]);
690
+ } else {
691
+ return new Blob([_orderedLines2.join("\r\n")]);
692
+ }
693
+ }
694
+ }
695
+
696
+ // Step 13.2.3: Handle array values
697
+ function handleArrayValue(bodyKey, value, headers, sortedBodyKeys, pathParts) {
698
+ var arrayInfo = (0, _encodeUtils.analyzeArray)(value);
699
+ if (arrayInfo.hasOnlyNonEmptyObjects) {
700
+ return null;
701
+ }
702
+ if (arrayInfo.hasOnlyEmptyElements) {
703
+ return handleArrayWithOnlyEmptyElements(bodyKey, value, headers, sortedBodyKeys);
704
+ }
705
+ var indicesWithOwnParts = buildIndicesWithOwnParts(bodyKey, sortedBodyKeys);
706
+ var hasNestedObjectParts = sortedBodyKeys.some(function (key) {
707
+ return key.startsWith(bodyKey + "/") && key.split("/").length > pathParts.length + 1;
708
+ });
709
+ var _processArrayItems = processArrayItems(value, indicesWithOwnParts, hasNestedObjectParts, pathParts),
710
+ fieldLines = _processArrayItems.fieldLines,
711
+ partTypes = _processArrayItems.partTypes;
712
+ return createArrayBodyPart(bodyKey, fieldLines, partTypes, headers);
713
+ }
714
+
715
+ // Step 13.2.4.3: Process object fields
716
+ function processObjectFields(value, bodyKey, sortedBodyKeys) {
717
+ var objectTypes = [];
718
+ var fieldLines = [];
719
+ var binaryFields = [];
720
+ var arrayTypes = [];
721
+
722
+ // First collect array types
723
+ // Note: Use "list" for both empty and non-empty arrays for structured codec compatibility
724
+ for (var _i3 = 0, _Object$entries3 = Object.entries(value); _i3 < _Object$entries3.length; _i3++) {
725
+ var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i3], 2),
726
+ k = _Object$entries3$_i[0],
727
+ v = _Object$entries3$_i[1];
728
+ if (Array.isArray(v)) {
729
+ arrayTypes.push("".concat(k.toLowerCase(), "=\"list\""));
730
+ }
731
+ }
732
+
733
+ // Then process other fields
734
+ for (var _i4 = 0, _Object$entries4 = Object.entries(value); _i4 < _Object$entries4.length; _i4++) {
735
+ var _Object$entries4$_i = _slicedToArray(_Object$entries4[_i4], 2),
736
+ _k = _Object$entries4$_i[0],
737
+ _v = _Object$entries4$_i[1];
738
+ var childPath = "".concat(bodyKey, "/").concat(_k);
739
+ if (sortedBodyKeys.includes(childPath)) {
740
+ continue;
741
+ }
742
+ if (Array.isArray(_v) && _v.some(function (item) {
743
+ return (0, _encodeUtils.isPojo)(item);
744
+ })) {
745
+ var hasOnlyEmpty = _v.every(function (item) {
746
+ return (0, _encodeUtils.isEmpty)(item);
747
+ });
748
+ if (hasOnlyEmpty) {
749
+ continue;
750
+ }
751
+ }
752
+ if (Array.isArray(_v)) {
753
+ // Type already added in arrayTypes
754
+ } else if (_v === null || _v === undefined || _typeof(_v) === "symbol" || typeof _v === "boolean") {
755
+ objectTypes.push("".concat(_k.toLowerCase(), "=\"atom\""));
756
+ } else if (typeof _v === "number") {
757
+ objectTypes.push("".concat(_k.toLowerCase(), "=\"").concat(Number.isInteger(_v) ? "integer" : "float", "\""));
758
+ } else if (typeof _v === "string" && _v.length === 0) {
759
+ // Empty strings become empty binaries naturally - no type annotation needed
760
+ } else if ((0, _encodeUtils.isBytes)(_v) && (_v.length === 0 || _v.byteLength === 0)) {
761
+ // Empty buffers become empty binaries naturally - no type annotation needed
762
+ } else if ((0, _encodeUtils.isPojo)(_v) && Object.keys(_v).length === 0) {
763
+ // Use "map" instead of "empty-message" for structured codec compatibility
764
+ objectTypes.push("".concat(_k.toLowerCase(), "=\"map\""));
765
+ }
766
+ if (typeof _v === "string") {
767
+ if (_v.length === 0) {
768
+ fieldLines.push("".concat(_k, ": "));
769
+ } else {
770
+ fieldLines.push("".concat(_k, ": ").concat(_v));
771
+ }
772
+ } else if (typeof _v === "number") {
773
+ fieldLines.push("".concat(_k, ": ").concat(_v));
774
+ } else if (typeof _v === "boolean") {
775
+ fieldLines.push("".concat(_k, ": \"").concat(_v, "\""));
776
+ } else if (_v === null) {
777
+ fieldLines.push("".concat(_k, ": \"null\""));
778
+ } else if (_v === undefined) {
779
+ fieldLines.push("".concat(_k, ": \"undefined\""));
780
+ } else if (_typeof(_v) === "symbol") {
781
+ var desc = _v.description || "Symbol.for()";
782
+ fieldLines.push("".concat(_k, ": \"").concat(desc, "\""));
783
+ } else if ((0, _encodeUtils.isBytes)(_v)) {
784
+ var buffer = (0, _encodeUtils.toBuffer)(_v);
785
+ binaryFields.push({
786
+ key: _k,
787
+ buffer: buffer
788
+ });
789
+ } else if (Array.isArray(_v) && _v.length === 0) {
790
+ // Empty array - include the key so Erlang knows it exists
791
+ fieldLines.push("".concat(_k, ": "));
792
+ } else if ((0, _encodeUtils.isPojo)(_v) && Object.keys(_v).length === 0) {
793
+ // Empty object - include the key so Erlang knows it exists
794
+ fieldLines.push("".concat(_k, ": "));
795
+ } else if (Array.isArray(_v) && _v.length > 0) {
796
+ var _childPath = "".concat(bodyKey, "/").concat(_k);
797
+ if (!sortedBodyKeys.includes(_childPath)) {
798
+ var hasObjects = _v.some(function (item) {
799
+ return (0, _encodeUtils.isPojo)(item);
800
+ });
801
+ if (!hasObjects) {
802
+ var encodedItems = _v.map(function (item) {
803
+ return (0, _encodeArrayItem["default"])(item);
804
+ }).join(", ");
805
+ fieldLines.push("".concat(_k, ": ").concat(encodedItems));
806
+ }
807
+ }
808
+ }
809
+ }
810
+ var allTypes = [].concat(arrayTypes, objectTypes);
811
+ return {
812
+ allTypes: allTypes,
813
+ fieldLines: fieldLines,
814
+ binaryFields: binaryFields
815
+ };
816
+ }
817
+
818
+ // Step 13.2.4.5: Create object body part
819
+ function createObjectBodyPart(bodyKey, value, allTypes, fieldLines, binaryFields, headers, sortedBodyKeys) {
820
+ var isInline = bodyKey === "body" && headers["inline-body-key"] === "body";
821
+ var lines = [];
822
+ if (isInline) {
823
+ var orderedLines = [];
824
+
825
+ // For inline mode: fields first, then headers
826
+ var _iterator3 = _createForOfIteratorHelper(fieldLines),
827
+ _step3;
828
+ try {
829
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
830
+ var line = _step3.value;
831
+ orderedLines.push(line);
832
+ }
833
+ } catch (err) {
834
+ _iterator3.e(err);
835
+ } finally {
836
+ _iterator3.f();
837
+ }
838
+ if (allTypes.length > 0) {
839
+ orderedLines.push("ao-types: ".concat(allTypes.sort().join(", ")));
840
+ }
841
+ orderedLines.push("content-disposition: inline");
842
+ var binaryFieldsForInline = Object.entries(value).filter(function (_ref) {
843
+ var _ref2 = _slicedToArray(_ref, 2),
844
+ k = _ref2[0],
845
+ v = _ref2[1];
846
+ return (0, _encodeUtils.isBytes)(v) && !sortedBodyKeys.includes("".concat(bodyKey, "/").concat(k));
847
+ }).map(function (_ref3) {
848
+ var _ref4 = _slicedToArray(_ref3, 2),
849
+ k = _ref4[0],
850
+ v = _ref4[1];
851
+ return {
852
+ key: k,
853
+ buffer: (0, _encodeUtils.toBuffer)(v)
854
+ };
855
+ });
856
+ if (binaryFieldsForInline.length > 0) {
857
+ var parts = [];
858
+ // Join all text lines first
859
+ parts.push(Buffer.from(orderedLines.join("\r\n")));
860
+ // Then add binary fields
861
+ var _iterator4 = _createForOfIteratorHelper(binaryFieldsForInline),
862
+ _step4;
863
+ try {
864
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
865
+ var _step4$value = _step4.value,
866
+ key = _step4$value.key,
867
+ buffer = _step4$value.buffer;
868
+ parts.push(Buffer.from("\r\n".concat(key, ": ")));
869
+ parts.push(buffer);
870
+ }
871
+ } catch (err) {
872
+ _iterator4.e(err);
873
+ } finally {
874
+ _iterator4.f();
875
+ }
876
+ parts.push(Buffer.from("\r\n"));
877
+ var fullBody = Buffer.concat(parts);
878
+ return new Blob([fullBody]);
879
+ } else {
880
+ return new Blob([orderedLines.join("\r\n") + "\r\n"]);
881
+ }
882
+ } else {
883
+ // Non-inline mode remains the same
884
+ var _orderedLines3 = [];
885
+ if (allTypes.length > 0) {
886
+ _orderedLines3.push("ao-types: ".concat(allTypes.sort().join(", ")));
887
+ }
888
+ _orderedLines3.push("content-disposition: form-data;name=\"".concat(bodyKey, "\""));
889
+ var hasBinaryFields = binaryFields && binaryFields.length > 0;
890
+ if (hasBinaryFields || fieldLines.length === 0) {
891
+ _orderedLines3.push("");
892
+ }
893
+ var _iterator5 = _createForOfIteratorHelper(fieldLines),
894
+ _step5;
895
+ try {
896
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
897
+ var _line2 = _step5.value;
898
+ _orderedLines3.push(_line2);
899
+ }
900
+ } catch (err) {
901
+ _iterator5.e(err);
902
+ } finally {
903
+ _iterator5.f();
904
+ }
905
+ if (binaryFields && binaryFields.length > 0) {
906
+ var _parts = [];
907
+ var headerText = _orderedLines3.join("\r\n");
908
+ _parts.push(Buffer.from(headerText));
909
+ for (var i = 0; i < binaryFields.length; i++) {
910
+ var _binaryFields$i = binaryFields[i],
911
+ _key = _binaryFields$i.key,
912
+ _buffer = _binaryFields$i.buffer;
913
+ if (i > 0) {
914
+ _parts.push(Buffer.from("\r\n"));
915
+ }
916
+ _parts.push(Buffer.from("".concat(_key, ": ")));
917
+ _parts.push(_buffer);
918
+ }
919
+ _parts.push(Buffer.from("\r\n"));
920
+ var _fullBody = Buffer.concat(_parts);
921
+ return new Blob([_fullBody]);
922
+ } else {
923
+ if (fieldLines.length > 0) {
924
+ return new Blob([_orderedLines3.join("\r\n") + "\r\n"]);
925
+ } else {
926
+ return new Blob([_orderedLines3.join("\r\n")]);
927
+ }
928
+ }
929
+ }
930
+ }
931
+
932
+ // Step 13.2.4: Handle object values
933
+ function handleObjectValue(obj, bodyKey, value, headers, sortedBodyKeys, pathParts, hasSpecialDataBody) {
934
+ if (Object.keys(value).length === 0) {
935
+ // Skip empty objects in certain contexts
936
+ var parentPath = pathParts.slice(0, -1).join("/");
937
+ var parentValue = parentPath ? (0, _encodeUtils.getValueByPath)(obj, parentPath) : obj;
938
+ if (Array.isArray(parentValue)) {
939
+ var parentArrayInfo = (0, _encodeUtils.analyzeArray)(parentValue);
940
+ if (parentArrayInfo.hasObjects && (parentArrayInfo.hasEmptyStrings || parentArrayInfo.hasEmptyObjects)) {
941
+ return null;
942
+ }
943
+ }
944
+ return null;
945
+ }
946
+
947
+ // Skip special data/body case
948
+ if (hasSpecialDataBody && bodyKey === "data" && Object.keys(value).length === 1 && value.body && (0, _encodeUtils.isBytes)(value.body)) {
949
+ return null;
950
+ }
951
+ var _processObjectFields = processObjectFields(value, bodyKey, sortedBodyKeys),
952
+ allTypes = _processObjectFields.allTypes,
953
+ fieldLines = _processObjectFields.fieldLines,
954
+ binaryFields = _processObjectFields.binaryFields;
955
+
956
+ // Check if object should be skipped
957
+ var hasOnlyEmptyCollections = Object.entries(value).every(function (_ref5) {
958
+ var _ref6 = _slicedToArray(_ref5, 2),
959
+ k = _ref6[0],
960
+ v = _ref6[1];
961
+ return (0, _encodeUtils.isEmpty)(v);
962
+ });
963
+ var hasArraysWithOnlyEmptyElements = Object.entries(value).some(function (_ref7) {
964
+ var _ref8 = _slicedToArray(_ref7, 2),
965
+ k = _ref8[0],
966
+ v = _ref8[1];
967
+ return Array.isArray(v) && v.length > 0 && v.every(function (item) {
968
+ return (0, _encodeUtils.isEmpty)(item);
969
+ });
970
+ });
971
+ var shouldSkipObject = Object.entries(value).every(function (_ref9) {
972
+ var _ref0 = _slicedToArray(_ref9, 2),
973
+ k = _ref0[0],
974
+ v = _ref0[1];
975
+ var childPath = "".concat(bodyKey, "/").concat(k);
976
+ if (sortedBodyKeys.includes(childPath)) return true;
977
+ if (Array.isArray(v) && v.some(function (item) {
978
+ return (0, _encodeUtils.isPojo)(item);
979
+ })) {
980
+ var hasOnlyEmpty = v.every(function (item) {
981
+ return (0, _encodeUtils.isEmpty)(item);
982
+ });
983
+ return hasOnlyEmpty || sortedBodyKeys.includes(childPath);
984
+ }
985
+ return false;
986
+ });
987
+ if (shouldSkipObject && !hasOnlyEmptyCollections && !hasArraysWithOnlyEmptyElements) {
988
+ return null;
989
+ }
990
+ return createObjectBodyPart(bodyKey, value, allTypes, fieldLines, binaryFields, headers, sortedBodyKeys);
991
+ }
992
+
993
+ // Step 13.2.5: Handle primitive values
994
+ function handlePrimitiveValue(bodyKey, value, headers) {
995
+ var isInline = bodyKey === "body" && headers["inline-body-key"] === "body";
996
+ var lines = [];
997
+ if (isInline) {
998
+ lines.push("content-disposition: inline");
999
+ } else {
1000
+ lines.push("content-disposition: form-data;name=\"".concat(bodyKey, "\""));
1001
+ }
1002
+ if (typeof value === "string") {
1003
+ lines.push("");
1004
+ lines.push(value);
1005
+ return new Blob([lines.join("\r\n")]);
1006
+ } else {
1007
+ var content = (0, _encodeUtils.encodePrimitiveContent)(value);
1008
+ lines.push("");
1009
+ lines.push(content);
1010
+ return new Blob([lines.join("\r\n")]);
1011
+ }
1012
+ }
1013
+
1014
+ // Step 13.2.6: Handle binary values
1015
+ function handleBinaryValue(bodyKey, value, headers) {
1016
+ var isInline = bodyKey === "body" && headers["inline-body-key"] === "body";
1017
+ var lines = [];
1018
+ if (isInline) {
1019
+ lines.push("content-disposition: inline");
1020
+ } else {
1021
+ lines.push("content-disposition: form-data;name=\"".concat(bodyKey, "\""));
1022
+ }
1023
+ var buffer = (0, _encodeUtils.toBuffer)(value);
1024
+ // Always keep binary data as raw binary, regardless of whether it's in an array
1025
+ var headerText = lines.join("\r\n") + "\r\n\r\n";
1026
+ return new Blob([headerText, buffer]);
1027
+ }
1028
+
1029
+ // Step 13.3: Handle special data/body case
1030
+ function handleSpecialDataBodyCase(obj, hasSpecialDataBody) {
1031
+ if (hasSpecialDataBody && obj.data && obj.data.body && (0, _encodeUtils.isBytes)(obj.data.body)) {
1032
+ var buffer = (0, _encodeUtils.toBuffer)(obj.data.body);
1033
+ var specialPart = ["content-disposition: form-data;name=\"data/body\"", "", ""].join("\r\n");
1034
+ return new Blob([specialPart, buffer]);
1035
+ }
1036
+ return null;
1037
+ }
1038
+
1039
+ // Step 13: Build body parts for each body key
1040
+ function buildBodyParts(obj, sortedBodyKeys, headers, hasSpecialDataBody) {
1041
+ // Step 13.1: Initialize body parts collection
1042
+ var bodyParts = [];
1043
+
1044
+ // Step 13.2: Process each body key
1045
+ var _iterator6 = _createForOfIteratorHelper(sortedBodyKeys),
1046
+ _step6;
1047
+ try {
1048
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
1049
+ var bodyKey = _step6.value;
1050
+ // Step 13.2.1: Get value for current body key
1051
+ var value = (0, _encodeUtils.getValueByPath)(obj, bodyKey);
1052
+ var pathParts = bodyKey.split("/");
1053
+
1054
+ // Step 13.2.2: Handle empty string in nested path
1055
+ var emptyStringPart = handleEmptyStringInNestedPath(bodyKey, value, pathParts);
1056
+ if (emptyStringPart) {
1057
+ bodyParts.push(emptyStringPart);
1058
+ continue;
1059
+ }
1060
+
1061
+ // Step 13.2.3: Handle array values
1062
+ if (Array.isArray(value)) {
1063
+ var arrayPart = handleArrayValue(bodyKey, value, headers, sortedBodyKeys, pathParts);
1064
+ if (arrayPart) {
1065
+ bodyParts.push(arrayPart);
1066
+ }
1067
+ continue;
1068
+ }
1069
+
1070
+ // Step 13.2.4: Handle object values
1071
+ if ((0, _encodeUtils.isPojo)(value)) {
1072
+ var objectPart = handleObjectValue(obj, bodyKey, value, headers, sortedBodyKeys, pathParts, hasSpecialDataBody);
1073
+ if (objectPart) {
1074
+ bodyParts.push(objectPart);
1075
+ }
1076
+ continue;
1077
+ }
1078
+
1079
+ // Step 13.2.5: Handle primitive values
1080
+ if (typeof value === "string" || typeof value === "boolean" || typeof value === "number" || value === null || value === undefined || _typeof(value) === "symbol") {
1081
+ var primitivePart = handlePrimitiveValue(bodyKey, value, headers);
1082
+ bodyParts.push(primitivePart);
1083
+ continue;
1084
+ }
1085
+
1086
+ // Step 13.2.6: Handle binary values
1087
+ if ((0, _encodeUtils.isBytes)(value)) {
1088
+ var binaryPart = handleBinaryValue(bodyKey, value, headers);
1089
+ bodyParts.push(binaryPart);
1090
+ continue;
1091
+ }
1092
+ }
1093
+
1094
+ // Step 13.3: Handle special data/body case
1095
+ } catch (err) {
1096
+ _iterator6.e(err);
1097
+ } finally {
1098
+ _iterator6.f();
1099
+ }
1100
+ var specialPart = handleSpecialDataBodyCase(obj, hasSpecialDataBody);
1101
+ if (specialPart) {
1102
+ bodyParts.push(specialPart);
1103
+ }
1104
+
1105
+ // Step 13.4: Return body parts
1106
+ return bodyParts;
1107
+ }
1108
+
1109
+ // Step 14: Generate multipart boundary
1110
+ function generateBoundary(_x9) {
1111
+ return _generateBoundary.apply(this, arguments);
1112
+ } // Step 15: Assemble final multipart body
1113
+ function _generateBoundary() {
1114
+ _generateBoundary = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(bodyParts) {
1115
+ var partsContent, allContent, boundaryHash, boundary;
1116
+ return _regenerator().w(function (_context6) {
1117
+ while (1) switch (_context6.n) {
1118
+ case 0:
1119
+ _context6.n = 1;
1120
+ return Promise.all(bodyParts.map(function (part) {
1121
+ return part.text();
1122
+ }));
1123
+ case 1:
1124
+ partsContent = _context6.v;
1125
+ allContent = partsContent.join("");
1126
+ _context6.n = 2;
1127
+ return (0, _encodeUtils.sha256)(new TextEncoder().encode(allContent));
1128
+ case 2:
1129
+ boundaryHash = _context6.v;
1130
+ boundary = _base64url["default"].encode(Buffer.from(boundaryHash));
1131
+ return _context6.a(2, boundary);
1132
+ }
1133
+ }, _callee6);
1134
+ }));
1135
+ return _generateBoundary.apply(this, arguments);
1136
+ }
1137
+ function assembleMultipartBody(bodyParts, boundary) {
1138
+ var finalParts = [];
1139
+ for (var i = 0; i < bodyParts.length; i++) {
1140
+ if (i === 0) {
1141
+ finalParts.push(new Blob(["--".concat(boundary, "\r\n")]));
1142
+ } else {
1143
+ finalParts.push(new Blob(["\r\n--".concat(boundary, "\r\n")]));
1144
+ }
1145
+ finalParts.push(bodyParts[i]);
1146
+ }
1147
+ finalParts.push(new Blob(["\r\n--".concat(boundary, "--")]));
1148
+ return new Blob(finalParts);
1149
+ }
1150
+
1151
+ // Step 16: Calculate content digest
1152
+ function calculateContentDigest(_x0) {
1153
+ return _calculateContentDigest.apply(this, arguments);
1154
+ } // Step 17: Set final headers (content-type, content-length)
1155
+ function _calculateContentDigest() {
1156
+ _calculateContentDigest = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7(body) {
1157
+ var finalContent, contentDigest, base64;
1158
+ return _regenerator().w(function (_context7) {
1159
+ while (1) switch (_context7.n) {
1160
+ case 0:
1161
+ _context7.n = 1;
1162
+ return body.arrayBuffer();
1163
+ case 1:
1164
+ finalContent = _context7.v;
1165
+ if (!(finalContent.byteLength > 0)) {
1166
+ _context7.n = 3;
1167
+ break;
1168
+ }
1169
+ _context7.n = 2;
1170
+ return (0, _encodeUtils.sha256)(finalContent);
1171
+ case 2:
1172
+ contentDigest = _context7.v;
1173
+ base64 = _base64url["default"].toBase64(_base64url["default"].encode(contentDigest));
1174
+ return _context7.a(2, {
1175
+ digest: base64,
1176
+ byteLength: finalContent.byteLength
1177
+ });
1178
+ case 3:
1179
+ return _context7.a(2, {
1180
+ digest: null,
1181
+ byteLength: finalContent.byteLength
1182
+ });
1183
+ }
1184
+ }, _callee7);
1185
+ }));
1186
+ return _calculateContentDigest.apply(this, arguments);
1187
+ }
1188
+ function setFinalHeaders(headers, boundary, contentDigest, byteLength) {
1189
+ headers["content-type"] = "multipart/form-data; boundary=\"".concat(boundary, "\"");
1190
+ if (contentDigest) {
1191
+ headers["content-digest"] = "sha-256=:".concat(contentDigest, ":");
1192
+ }
1193
+ headers["content-length"] = String(byteLength);
1194
+ }
1195
+ function enc() {
1196
+ return _enc.apply(this, arguments);
1197
+ }
1198
+ function _enc() {
1199
+ _enc = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee8() {
1200
+ var obj,
1201
+ processedObj,
1202
+ emptyResult,
1203
+ emptyBinaryResult,
1204
+ singleBinaryResult,
1205
+ primitiveResult,
1206
+ nonEmptyBinaryResult,
1207
+ nonAsciiResult,
1208
+ bodyKeys,
1209
+ objKeys,
1210
+ headers,
1211
+ headerTypes,
1212
+ emptyBinaryBodyResult,
1213
+ singleBodyKeyResult,
1214
+ sortedBodyKeys,
1215
+ hasSpecialDataBody,
1216
+ bodyValue,
1217
+ bodyParts,
1218
+ boundary,
1219
+ body,
1220
+ _yield$calculateConte,
1221
+ contentDigest,
1222
+ byteLength,
1223
+ _args8 = arguments;
1224
+ return _regenerator().w(function (_context8) {
1225
+ while (1) switch (_context8.n) {
1226
+ case 0:
1227
+ obj = _args8.length > 0 && _args8[0] !== undefined ? _args8[0] : {};
1228
+ // Step 1: Process and normalize input values
1229
+ processedObj = processInputValues(obj); // Step 2: Handle empty object case
1230
+ emptyResult = handleEmptyObject(processedObj);
1231
+ if (!emptyResult) {
1232
+ _context8.n = 1;
1233
+ break;
1234
+ }
1235
+ return _context8.a(2, emptyResult);
1236
+ case 1:
1237
+ // Step 3: Handle single field with empty binary
1238
+ emptyBinaryResult = handleSingleEmptyBinaryField(processedObj);
1239
+ if (!emptyBinaryResult) {
1240
+ _context8.n = 2;
1241
+ break;
1242
+ }
1243
+ return _context8.a(2, emptyBinaryResult);
1244
+ case 2:
1245
+ _context8.n = 3;
1246
+ return handleSingleBinaryField(processedObj);
1247
+ case 3:
1248
+ singleBinaryResult = _context8.v;
1249
+ if (!singleBinaryResult) {
1250
+ _context8.n = 4;
1251
+ break;
1252
+ }
1253
+ return _context8.a(2, singleBinaryResult);
1254
+ case 4:
1255
+ _context8.n = 5;
1256
+ return handleSinglePrimitiveField(processedObj);
1257
+ case 5:
1258
+ primitiveResult = _context8.v;
1259
+ if (!primitiveResult) {
1260
+ _context8.n = 6;
1261
+ break;
1262
+ }
1263
+ return _context8.a(2, primitiveResult);
1264
+ case 6:
1265
+ _context8.n = 7;
1266
+ return handleSingleNonEmptyBinaryField(processedObj);
1267
+ case 7:
1268
+ nonEmptyBinaryResult = _context8.v;
1269
+ if (!nonEmptyBinaryResult) {
1270
+ _context8.n = 8;
1271
+ break;
1272
+ }
1273
+ return _context8.a(2, nonEmptyBinaryResult);
1274
+ case 8:
1275
+ _context8.n = 9;
1276
+ return handleSingleNonAsciiStringField(processedObj);
1277
+ case 9:
1278
+ nonAsciiResult = _context8.v;
1279
+ if (!nonAsciiResult) {
1280
+ _context8.n = 10;
1281
+ break;
1282
+ }
1283
+ return _context8.a(2, nonAsciiResult);
1284
+ case 10:
1285
+ // Step 7: Collect all keys that need to go in body
1286
+ bodyKeys = collectBodyKeysStep(processedObj);
1287
+ objKeys = Object.keys(obj);
1288
+ headers = {};
1289
+ headerTypes = []; // Step 8: Process fields that can go in headers
1290
+ processHeaderFields(obj, bodyKeys, headers, headerTypes);
1291
+
1292
+ // Step 9: Handle case where all body keys are empty binaries
1293
+ emptyBinaryBodyResult = handleAllEmptyBinaryBodyKeys(obj, bodyKeys, headers, headerTypes);
1294
+ if (!emptyBinaryBodyResult) {
1295
+ _context8.n = 11;
1296
+ break;
1297
+ }
1298
+ return _context8.a(2, emptyBinaryBodyResult);
1299
+ case 11:
1300
+ _context8.n = 12;
1301
+ return handleSingleBodyKeyOptimization(obj, bodyKeys, headers, headerTypes);
1302
+ case 12:
1303
+ singleBodyKeyResult = _context8.v;
1304
+ if (!singleBodyKeyResult) {
1305
+ _context8.n = 13;
1306
+ break;
1307
+ }
1308
+ return _context8.a(2, singleBodyKeyResult);
1309
+ case 13:
1310
+ // Step 11: Sort body keys
1311
+ sortedBodyKeys = sortBodyKeys(bodyKeys); // Step 12: Check for special data/body case
1312
+ hasSpecialDataBody = checkSpecialDataBodyCase(obj, sortedBodyKeys); // Only add body-keys header if there are actual body keys
1313
+ if (sortedBodyKeys.length > 0) {
1314
+ headers["body-keys"] = sortedBodyKeys.map(function (k) {
1315
+ return "\"".concat(k, "\"");
1316
+ }).join(", ");
1317
+ }
1318
+
1319
+ // Special case: single body key named "body" containing an object
1320
+ if (!hasSpecialDataBody && sortedBodyKeys.length === 1 && sortedBodyKeys[0] === "body") {
1321
+ bodyValue = obj.body;
1322
+ if ((0, _encodeUtils.isPojo)(bodyValue)) {
1323
+ headers["inline-body-key"] = "body";
1324
+ }
1325
+ }
1326
+ if (headerTypes.length > 0) {
1327
+ headers["ao-types"] = headerTypes.sort().join(", ");
1328
+ }
1329
+
1330
+ // Step 13: Build body parts for each body key
1331
+ bodyParts = buildBodyParts(obj, sortedBodyKeys, headers, hasSpecialDataBody); // If no body parts were created, return headers only
1332
+ if (!(bodyParts.length === 0)) {
1333
+ _context8.n = 14;
1334
+ break;
1335
+ }
1336
+ return _context8.a(2, {
1337
+ headers: headers,
1338
+ body: undefined
1339
+ });
1340
+ case 14:
1341
+ _context8.n = 15;
1342
+ return generateBoundary(bodyParts);
1343
+ case 15:
1344
+ boundary = _context8.v;
1345
+ // Step 15: Assemble final multipart body
1346
+ body = assembleMultipartBody(bodyParts, boundary); // Step 16: Calculate content digest
1347
+ _context8.n = 16;
1348
+ return calculateContentDigest(body);
1349
+ case 16:
1350
+ _yield$calculateConte = _context8.v;
1351
+ contentDigest = _yield$calculateConte.digest;
1352
+ byteLength = _yield$calculateConte.byteLength;
1353
+ // Step 17: Set final headers (content-type, content-length)
1354
+ setFinalHeaders(headers, boundary, contentDigest, byteLength);
1355
+
1356
+ // Step 18: Return result
1357
+ return _context8.a(2, {
1358
+ headers: headers,
1359
+ body: body
1360
+ });
1361
+ }
1362
+ }, _callee8);
1363
+ }));
1364
+ return _enc.apply(this, arguments);
1365
+ }