@struktoai/mirage-browser 0.0.5-alpha.1 → 0.0.6

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 (602) hide show
  1. package/README.md +138 -80
  2. package/dist/accessor/opfs.d.ts +10 -0
  3. package/dist/accessor/opfs.d.ts.map +1 -0
  4. package/dist/accessor/opfs.js +25 -0
  5. package/dist/accessor/opfs.js.map +1 -0
  6. package/dist/commands/builtin/opfs/index.d.ts +3 -0
  7. package/dist/commands/builtin/opfs/index.d.ts.map +1 -0
  8. package/dist/commands/builtin/opfs/index.js +20 -0
  9. package/dist/commands/builtin/opfs/index.js.map +1 -0
  10. package/dist/commands/builtin/opfs/io.d.ts +4 -0
  11. package/dist/commands/builtin/opfs/io.d.ts.map +1 -0
  12. package/dist/commands/builtin/opfs/io.js +56 -0
  13. package/dist/commands/builtin/opfs/io.js.map +1 -0
  14. package/dist/core/opfs/append.d.ts +4 -0
  15. package/dist/core/opfs/append.d.ts.map +1 -0
  16. package/dist/core/opfs/append.js +38 -0
  17. package/dist/core/opfs/append.js.map +1 -0
  18. package/dist/core/opfs/constants.d.ts +3 -0
  19. package/dist/core/opfs/constants.d.ts.map +1 -0
  20. package/dist/core/opfs/constants.js +16 -0
  21. package/dist/core/opfs/constants.js.map +1 -0
  22. package/dist/core/opfs/copy.d.ts +4 -0
  23. package/dist/core/opfs/copy.d.ts.map +1 -0
  24. package/dist/core/opfs/copy.js +40 -0
  25. package/dist/core/opfs/copy.js.map +1 -0
  26. package/dist/core/opfs/create.d.ts +4 -0
  27. package/dist/core/opfs/create.d.ts.map +1 -0
  28. package/dist/core/opfs/create.js +18 -0
  29. package/dist/core/opfs/create.js.map +1 -0
  30. package/dist/core/opfs/du/entries.d.ts +4 -0
  31. package/dist/core/opfs/du/entries.d.ts.map +1 -0
  32. package/dist/core/opfs/du/entries.js +56 -0
  33. package/dist/core/opfs/du/entries.js.map +1 -0
  34. package/dist/core/opfs/du/index.d.ts +3 -0
  35. package/dist/core/opfs/du/index.d.ts.map +1 -0
  36. package/dist/core/opfs/du/index.js +16 -0
  37. package/dist/core/opfs/du/index.js.map +1 -0
  38. package/dist/core/opfs/du/size.d.ts +4 -0
  39. package/dist/core/opfs/du/size.d.ts.map +1 -0
  40. package/dist/core/opfs/du/size.js +18 -0
  41. package/dist/core/opfs/du/size.js.map +1 -0
  42. package/dist/core/opfs/du/walk.d.ts +3 -0
  43. package/dist/core/opfs/du/walk.d.ts.map +1 -0
  44. package/dist/core/opfs/du/walk.js +98 -0
  45. package/dist/core/opfs/du/walk.js.map +1 -0
  46. package/dist/core/opfs/entry.d.ts +11 -0
  47. package/dist/core/opfs/entry.d.ts.map +1 -0
  48. package/dist/core/opfs/entry.js +42 -0
  49. package/dist/core/opfs/entry.js.map +1 -0
  50. package/dist/core/opfs/exists.d.ts +4 -0
  51. package/dist/core/opfs/exists.d.ts.map +1 -0
  52. package/dist/core/opfs/exists.js +64 -0
  53. package/dist/core/opfs/exists.js.map +1 -0
  54. package/dist/core/opfs/find.d.ts +21 -0
  55. package/dist/core/opfs/find.d.ts.map +1 -0
  56. package/dist/core/opfs/find.js +154 -0
  57. package/dist/core/opfs/find.js.map +1 -0
  58. package/dist/core/opfs/mkdir.d.ts +4 -0
  59. package/dist/core/opfs/mkdir.d.ts.map +1 -0
  60. package/dist/core/opfs/mkdir.js +64 -0
  61. package/dist/core/opfs/mkdir.js.map +1 -0
  62. package/dist/core/opfs/read.d.ts +22 -0
  63. package/dist/core/opfs/read.d.ts.map +1 -0
  64. package/dist/core/opfs/read.js +57 -0
  65. package/dist/core/opfs/read.js.map +1 -0
  66. package/dist/core/opfs/readdir.d.ts +4 -0
  67. package/dist/core/opfs/readdir.d.ts.map +1 -0
  68. package/dist/core/opfs/readdir.js +50 -0
  69. package/dist/core/opfs/readdir.js.map +1 -0
  70. package/dist/core/opfs/rename.d.ts +4 -0
  71. package/dist/core/opfs/rename.d.ts.map +1 -0
  72. package/dist/core/opfs/rename.js +97 -0
  73. package/dist/core/opfs/rename.js.map +1 -0
  74. package/dist/core/opfs/rm.d.ts +4 -0
  75. package/dist/core/opfs/rm.d.ts.map +1 -0
  76. package/dist/core/opfs/rm.js +40 -0
  77. package/dist/core/opfs/rm.js.map +1 -0
  78. package/dist/core/opfs/rmdir.d.ts +4 -0
  79. package/dist/core/opfs/rmdir.d.ts.map +1 -0
  80. package/dist/core/opfs/rmdir.js +48 -0
  81. package/dist/core/opfs/rmdir.js.map +1 -0
  82. package/dist/core/opfs/stat.d.ts +5 -0
  83. package/dist/core/opfs/stat.d.ts.map +1 -0
  84. package/dist/core/opfs/stat.js +88 -0
  85. package/dist/core/opfs/stat.js.map +1 -0
  86. package/dist/core/opfs/stream.d.ts +4 -0
  87. package/dist/core/opfs/stream.d.ts.map +1 -0
  88. package/dist/core/opfs/stream.js +44 -0
  89. package/dist/core/opfs/stream.js.map +1 -0
  90. package/dist/core/opfs/truncate.d.ts +4 -0
  91. package/dist/core/opfs/truncate.d.ts.map +1 -0
  92. package/dist/core/opfs/truncate.js +49 -0
  93. package/dist/core/opfs/truncate.js.map +1 -0
  94. package/dist/core/opfs/unlink.d.ts +4 -0
  95. package/dist/core/opfs/unlink.d.ts.map +1 -0
  96. package/dist/core/opfs/unlink.js +40 -0
  97. package/dist/core/opfs/unlink.js.map +1 -0
  98. package/dist/core/opfs/utils.d.ts +20 -0
  99. package/dist/core/opfs/utils.d.ts.map +1 -0
  100. package/dist/core/opfs/utils.js +149 -0
  101. package/dist/core/opfs/utils.js.map +1 -0
  102. package/dist/core/opfs/write.d.ts +4 -0
  103. package/dist/core/opfs/write.d.ts.map +1 -0
  104. package/dist/core/opfs/write.js +33 -0
  105. package/dist/core/opfs/write.js.map +1 -0
  106. package/dist/generated/wasm.d.ts +3 -0
  107. package/dist/generated/wasm.d.ts.map +1 -0
  108. package/dist/generated/wasm.js +4 -0
  109. package/dist/generated/wasm.js.map +1 -0
  110. package/dist/index.d.ts +118 -1246
  111. package/dist/index.d.ts.map +1 -0
  112. package/dist/index.js +130 -698
  113. package/dist/index.js.map +1 -1
  114. package/dist/ops/opfs/index.d.ts +3 -0
  115. package/dist/ops/opfs/index.d.ts.map +1 -0
  116. package/dist/ops/opfs/index.js +23 -0
  117. package/dist/ops/opfs/index.js.map +1 -0
  118. package/dist/resource/aliyun/aliyun.d.ts +8 -0
  119. package/dist/resource/aliyun/aliyun.d.ts.map +1 -0
  120. package/dist/resource/aliyun/aliyun.js +24 -0
  121. package/dist/resource/aliyun/aliyun.js.map +1 -0
  122. package/dist/resource/aliyun/config.d.ts +17 -0
  123. package/dist/resource/aliyun/config.d.ts.map +1 -0
  124. package/dist/resource/aliyun/config.js +24 -0
  125. package/dist/resource/aliyun/config.js.map +1 -0
  126. package/dist/resource/aliyun/prompt.d.ts +2 -0
  127. package/dist/resource/aliyun/prompt.d.ts.map +1 -0
  128. package/dist/resource/aliyun/prompt.js +19 -0
  129. package/dist/resource/aliyun/prompt.js.map +1 -0
  130. package/dist/resource/backblaze/backblaze.d.ts +8 -0
  131. package/dist/resource/backblaze/backblaze.d.ts.map +1 -0
  132. package/dist/resource/backblaze/backblaze.js +24 -0
  133. package/dist/resource/backblaze/backblaze.js.map +1 -0
  134. package/dist/resource/backblaze/config.d.ts +17 -0
  135. package/dist/resource/backblaze/config.d.ts.map +1 -0
  136. package/dist/resource/backblaze/config.js +24 -0
  137. package/dist/resource/backblaze/config.js.map +1 -0
  138. package/dist/resource/backblaze/prompt.d.ts +2 -0
  139. package/dist/resource/backblaze/prompt.d.ts.map +1 -0
  140. package/dist/resource/backblaze/prompt.js +19 -0
  141. package/dist/resource/backblaze/prompt.js.map +1 -0
  142. package/dist/resource/box/box.d.ts +34 -0
  143. package/dist/resource/box/box.d.ts.map +1 -0
  144. package/dist/resource/box/box.js +99 -0
  145. package/dist/resource/box/box.js.map +1 -0
  146. package/dist/resource/box/config.d.ts +41 -0
  147. package/dist/resource/box/config.d.ts.map +1 -0
  148. package/dist/resource/box/config.js +38 -0
  149. package/dist/resource/box/config.js.map +1 -0
  150. package/dist/resource/ceph/ceph.d.ts +8 -0
  151. package/dist/resource/ceph/ceph.d.ts.map +1 -0
  152. package/dist/resource/ceph/ceph.js +24 -0
  153. package/dist/resource/ceph/ceph.js.map +1 -0
  154. package/dist/resource/ceph/config.d.ts +16 -0
  155. package/dist/resource/ceph/config.d.ts.map +1 -0
  156. package/dist/resource/ceph/config.js +22 -0
  157. package/dist/resource/ceph/config.js.map +1 -0
  158. package/dist/resource/ceph/prompt.d.ts +2 -0
  159. package/dist/resource/ceph/prompt.d.ts.map +1 -0
  160. package/dist/resource/ceph/prompt.js +19 -0
  161. package/dist/resource/ceph/prompt.js.map +1 -0
  162. package/dist/resource/digitalocean/config.d.ts +17 -0
  163. package/dist/resource/digitalocean/config.d.ts.map +1 -0
  164. package/dist/resource/digitalocean/config.js +24 -0
  165. package/dist/resource/digitalocean/config.js.map +1 -0
  166. package/dist/resource/digitalocean/digitalocean.d.ts +8 -0
  167. package/dist/resource/digitalocean/digitalocean.d.ts.map +1 -0
  168. package/dist/resource/digitalocean/digitalocean.js +24 -0
  169. package/dist/resource/digitalocean/digitalocean.js.map +1 -0
  170. package/dist/resource/digitalocean/prompt.d.ts +2 -0
  171. package/dist/resource/digitalocean/prompt.d.ts.map +1 -0
  172. package/dist/resource/digitalocean/prompt.js +19 -0
  173. package/dist/resource/digitalocean/prompt.js.map +1 -0
  174. package/dist/resource/discord/config.d.ts +20 -0
  175. package/dist/resource/discord/config.d.ts.map +1 -0
  176. package/dist/resource/discord/config.js +32 -0
  177. package/dist/resource/discord/config.js.map +1 -0
  178. package/dist/resource/discord/discord.d.ts +33 -0
  179. package/dist/resource/discord/discord.d.ts.map +1 -0
  180. package/dist/resource/discord/discord.js +90 -0
  181. package/dist/resource/discord/discord.js.map +1 -0
  182. package/dist/resource/dropbox/config.d.ts +34 -0
  183. package/dist/resource/dropbox/config.d.ts.map +1 -0
  184. package/dist/resource/dropbox/config.js +31 -0
  185. package/dist/resource/dropbox/config.js.map +1 -0
  186. package/dist/resource/dropbox/dropbox.d.ts +34 -0
  187. package/dist/resource/dropbox/dropbox.d.ts.map +1 -0
  188. package/dist/resource/dropbox/dropbox.js +95 -0
  189. package/dist/resource/dropbox/dropbox.js.map +1 -0
  190. package/dist/resource/gcal/gcal.d.ts +32 -0
  191. package/dist/resource/gcal/gcal.d.ts.map +1 -0
  192. package/dist/resource/gcal/gcal.js +87 -0
  193. package/dist/resource/gcal/gcal.js.map +1 -0
  194. package/dist/resource/gcs/config.d.ts +16 -0
  195. package/dist/resource/gcs/config.d.ts.map +1 -0
  196. package/dist/resource/gcs/config.js +24 -0
  197. package/dist/resource/gcs/config.js.map +1 -0
  198. package/dist/resource/gcs/gcs.d.ts +8 -0
  199. package/dist/resource/gcs/gcs.d.ts.map +1 -0
  200. package/dist/resource/gcs/gcs.js +24 -0
  201. package/dist/resource/gcs/gcs.js.map +1 -0
  202. package/dist/resource/gcs/prompt.d.ts +2 -0
  203. package/dist/resource/gcs/prompt.d.ts.map +1 -0
  204. package/dist/resource/gcs/prompt.js +19 -0
  205. package/dist/resource/gcs/prompt.js.map +1 -0
  206. package/dist/resource/gdocs/gdocs.d.ts +32 -0
  207. package/dist/resource/gdocs/gdocs.d.ts.map +1 -0
  208. package/dist/resource/gdocs/gdocs.js +84 -0
  209. package/dist/resource/gdocs/gdocs.js.map +1 -0
  210. package/dist/resource/gdrive/gdrive.d.ts +34 -0
  211. package/dist/resource/gdrive/gdrive.d.ts.map +1 -0
  212. package/dist/resource/gdrive/gdrive.js +89 -0
  213. package/dist/resource/gdrive/gdrive.js.map +1 -0
  214. package/dist/resource/github/github.d.ts +38 -0
  215. package/dist/resource/github/github.d.ts.map +1 -0
  216. package/dist/resource/github/github.js +121 -0
  217. package/dist/resource/github/github.js.map +1 -0
  218. package/dist/resource/gmail/gmail.d.ts +33 -0
  219. package/dist/resource/gmail/gmail.d.ts.map +1 -0
  220. package/dist/resource/gmail/gmail.js +88 -0
  221. package/dist/resource/gmail/gmail.js.map +1 -0
  222. package/dist/resource/gsheets/gsheets.d.ts +32 -0
  223. package/dist/resource/gsheets/gsheets.d.ts.map +1 -0
  224. package/dist/resource/gsheets/gsheets.js +84 -0
  225. package/dist/resource/gsheets/gsheets.js.map +1 -0
  226. package/dist/resource/gslides/gslides.d.ts +32 -0
  227. package/dist/resource/gslides/gslides.d.ts.map +1 -0
  228. package/dist/resource/gslides/gslides.js +84 -0
  229. package/dist/resource/gslides/gslides.js.map +1 -0
  230. package/dist/resource/langfuse/config.d.ts +23 -0
  231. package/dist/resource/langfuse/config.d.ts.map +1 -0
  232. package/dist/resource/langfuse/config.js +36 -0
  233. package/dist/resource/langfuse/config.js.map +1 -0
  234. package/dist/resource/langfuse/langfuse.d.ts +31 -0
  235. package/dist/resource/langfuse/langfuse.d.ts.map +1 -0
  236. package/dist/resource/langfuse/langfuse.js +98 -0
  237. package/dist/resource/langfuse/langfuse.js.map +1 -0
  238. package/dist/resource/linear/linear.d.ts +33 -0
  239. package/dist/resource/linear/linear.d.ts.map +1 -0
  240. package/dist/resource/linear/linear.js +93 -0
  241. package/dist/resource/linear/linear.js.map +1 -0
  242. package/dist/resource/minio/config.d.ts +16 -0
  243. package/dist/resource/minio/config.d.ts.map +1 -0
  244. package/dist/resource/minio/config.js +22 -0
  245. package/dist/resource/minio/config.js.map +1 -0
  246. package/dist/resource/minio/minio.d.ts +8 -0
  247. package/dist/resource/minio/minio.d.ts.map +1 -0
  248. package/dist/resource/minio/minio.js +24 -0
  249. package/dist/resource/minio/minio.js.map +1 -0
  250. package/dist/resource/minio/prompt.d.ts +2 -0
  251. package/dist/resource/minio/prompt.d.ts.map +1 -0
  252. package/dist/resource/minio/prompt.js +19 -0
  253. package/dist/resource/minio/prompt.js.map +1 -0
  254. package/dist/resource/mongodb/http_driver.d.ts +27 -0
  255. package/dist/resource/mongodb/http_driver.d.ts.map +1 -0
  256. package/dist/resource/mongodb/http_driver.js +96 -0
  257. package/dist/resource/mongodb/http_driver.js.map +1 -0
  258. package/dist/resource/mongodb/mongodb.d.ts +41 -0
  259. package/dist/resource/mongodb/mongodb.d.ts.map +1 -0
  260. package/dist/resource/mongodb/mongodb.js +100 -0
  261. package/dist/resource/mongodb/mongodb.js.map +1 -0
  262. package/dist/resource/notion/config.d.ts +20 -0
  263. package/dist/resource/notion/config.d.ts.map +1 -0
  264. package/dist/resource/notion/config.js +32 -0
  265. package/dist/resource/notion/config.js.map +1 -0
  266. package/dist/resource/notion/notion.d.ts +32 -0
  267. package/dist/resource/notion/notion.d.ts.map +1 -0
  268. package/dist/resource/notion/notion.js +86 -0
  269. package/dist/resource/notion/notion.js.map +1 -0
  270. package/dist/resource/oci/config.d.ts +20 -0
  271. package/dist/resource/oci/config.d.ts.map +1 -0
  272. package/dist/resource/oci/config.js +30 -0
  273. package/dist/resource/oci/config.js.map +1 -0
  274. package/dist/resource/oci/oci.d.ts +8 -0
  275. package/dist/resource/oci/oci.d.ts.map +1 -0
  276. package/dist/resource/oci/oci.js +24 -0
  277. package/dist/resource/oci/oci.js.map +1 -0
  278. package/dist/resource/oci/prompt.d.ts +2 -0
  279. package/dist/resource/oci/prompt.d.ts.map +1 -0
  280. package/dist/resource/oci/prompt.js +19 -0
  281. package/dist/resource/oci/prompt.js.map +1 -0
  282. package/dist/resource/opfs/opfs.d.ts +57 -0
  283. package/dist/resource/opfs/opfs.d.ts.map +1 -0
  284. package/dist/resource/opfs/opfs.js +236 -0
  285. package/dist/resource/opfs/opfs.js.map +1 -0
  286. package/dist/resource/opfs/prompt.d.ts +2 -0
  287. package/dist/resource/opfs/prompt.d.ts.map +1 -0
  288. package/dist/resource/opfs/prompt.js +17 -0
  289. package/dist/resource/opfs/prompt.js.map +1 -0
  290. package/dist/resource/postgres/neon_driver.d.ts +8 -0
  291. package/dist/resource/postgres/neon_driver.d.ts.map +1 -0
  292. package/dist/resource/postgres/neon_driver.js +28 -0
  293. package/dist/resource/postgres/neon_driver.js.map +1 -0
  294. package/dist/resource/postgres/postgres.d.ts +40 -0
  295. package/dist/resource/postgres/postgres.d.ts.map +1 -0
  296. package/dist/resource/postgres/postgres.js +98 -0
  297. package/dist/resource/postgres/postgres.js.map +1 -0
  298. package/dist/resource/qingstor/config.d.ts +17 -0
  299. package/dist/resource/qingstor/config.d.ts.map +1 -0
  300. package/dist/resource/qingstor/config.js +24 -0
  301. package/dist/resource/qingstor/config.js.map +1 -0
  302. package/dist/resource/qingstor/prompt.d.ts +2 -0
  303. package/dist/resource/qingstor/prompt.d.ts.map +1 -0
  304. package/dist/resource/qingstor/prompt.js +19 -0
  305. package/dist/resource/qingstor/prompt.js.map +1 -0
  306. package/dist/resource/qingstor/qingstor.d.ts +8 -0
  307. package/dist/resource/qingstor/qingstor.d.ts.map +1 -0
  308. package/dist/resource/qingstor/qingstor.js +24 -0
  309. package/dist/resource/qingstor/qingstor.js.map +1 -0
  310. package/dist/resource/r2/config.d.ts +20 -0
  311. package/dist/resource/r2/config.d.ts.map +1 -0
  312. package/dist/resource/r2/config.js +26 -0
  313. package/dist/resource/r2/config.js.map +1 -0
  314. package/dist/resource/r2/prompt.d.ts +2 -0
  315. package/dist/resource/r2/prompt.d.ts.map +1 -0
  316. package/dist/resource/r2/prompt.js +19 -0
  317. package/dist/resource/r2/prompt.js.map +1 -0
  318. package/dist/resource/r2/r2.d.ts +8 -0
  319. package/dist/resource/r2/r2.d.ts.map +1 -0
  320. package/dist/resource/r2/r2.js +24 -0
  321. package/dist/resource/r2/r2.js.map +1 -0
  322. package/dist/resource/redis/redis.d.ts +17 -0
  323. package/dist/resource/redis/redis.d.ts.map +1 -0
  324. package/dist/resource/redis/redis.js +29 -0
  325. package/dist/resource/redis/redis.js.map +1 -0
  326. package/dist/resource/redis/store.d.ts +75 -0
  327. package/dist/resource/redis/store.d.ts.map +1 -0
  328. package/dist/resource/redis/store.js +378 -0
  329. package/dist/resource/redis/store.js.map +1 -0
  330. package/dist/resource/registry.d.ts +25 -0
  331. package/dist/resource/registry.d.ts.map +1 -0
  332. package/dist/resource/registry.js +274 -0
  333. package/dist/resource/registry.js.map +1 -0
  334. package/dist/resource/s3/config.d.ts +7 -0
  335. package/dist/resource/s3/config.d.ts.map +1 -0
  336. package/dist/resource/s3/config.js +26 -0
  337. package/dist/resource/s3/config.js.map +1 -0
  338. package/dist/resource/s3/s3.d.ts +53 -0
  339. package/dist/resource/s3/s3.d.ts.map +1 -0
  340. package/dist/resource/s3/s3.js +182 -0
  341. package/dist/resource/s3/s3.js.map +1 -0
  342. package/dist/resource/s3_alias.d.ts +113 -0
  343. package/dist/resource/s3_alias.d.ts.map +1 -0
  344. package/dist/resource/s3_alias.js +133 -0
  345. package/dist/resource/s3_alias.js.map +1 -0
  346. package/dist/resource/scaleway/config.d.ts +17 -0
  347. package/dist/resource/scaleway/config.d.ts.map +1 -0
  348. package/dist/resource/scaleway/config.js +24 -0
  349. package/dist/resource/scaleway/config.js.map +1 -0
  350. package/dist/resource/scaleway/prompt.d.ts +2 -0
  351. package/dist/resource/scaleway/prompt.d.ts.map +1 -0
  352. package/dist/resource/scaleway/prompt.js +19 -0
  353. package/dist/resource/scaleway/prompt.js.map +1 -0
  354. package/dist/resource/scaleway/scaleway.d.ts +8 -0
  355. package/dist/resource/scaleway/scaleway.d.ts.map +1 -0
  356. package/dist/resource/scaleway/scaleway.js +24 -0
  357. package/dist/resource/scaleway/scaleway.js.map +1 -0
  358. package/dist/resource/seaweedfs/config.d.ts +16 -0
  359. package/dist/resource/seaweedfs/config.d.ts.map +1 -0
  360. package/dist/resource/seaweedfs/config.js +22 -0
  361. package/dist/resource/seaweedfs/config.js.map +1 -0
  362. package/dist/resource/seaweedfs/prompt.d.ts +2 -0
  363. package/dist/resource/seaweedfs/prompt.d.ts.map +1 -0
  364. package/dist/resource/seaweedfs/prompt.js +19 -0
  365. package/dist/resource/seaweedfs/prompt.js.map +1 -0
  366. package/dist/resource/seaweedfs/seaweedfs.d.ts +8 -0
  367. package/dist/resource/seaweedfs/seaweedfs.d.ts.map +1 -0
  368. package/dist/resource/seaweedfs/seaweedfs.js +24 -0
  369. package/dist/resource/seaweedfs/seaweedfs.js.map +1 -0
  370. package/dist/resource/slack/config.d.ts +20 -0
  371. package/dist/resource/slack/config.d.ts.map +1 -0
  372. package/dist/resource/slack/config.js +32 -0
  373. package/dist/resource/slack/config.js.map +1 -0
  374. package/dist/resource/slack/slack.d.ts +33 -0
  375. package/dist/resource/slack/slack.d.ts.map +1 -0
  376. package/dist/resource/slack/slack.js +91 -0
  377. package/dist/resource/slack/slack.js.map +1 -0
  378. package/dist/resource/supabase/config.d.ts +20 -0
  379. package/dist/resource/supabase/config.d.ts.map +1 -0
  380. package/dist/resource/supabase/config.js +26 -0
  381. package/dist/resource/supabase/config.js.map +1 -0
  382. package/dist/resource/supabase/prompt.d.ts +2 -0
  383. package/dist/resource/supabase/prompt.d.ts.map +1 -0
  384. package/dist/resource/supabase/prompt.js +19 -0
  385. package/dist/resource/supabase/prompt.js.map +1 -0
  386. package/dist/resource/supabase/supabase.d.ts +8 -0
  387. package/dist/resource/supabase/supabase.d.ts.map +1 -0
  388. package/dist/resource/supabase/supabase.js +24 -0
  389. package/dist/resource/supabase/supabase.js.map +1 -0
  390. package/dist/resource/tencent/config.d.ts +17 -0
  391. package/dist/resource/tencent/config.d.ts.map +1 -0
  392. package/dist/resource/tencent/config.js +24 -0
  393. package/dist/resource/tencent/config.js.map +1 -0
  394. package/dist/resource/tencent/prompt.d.ts +2 -0
  395. package/dist/resource/tencent/prompt.d.ts.map +1 -0
  396. package/dist/resource/tencent/prompt.js +19 -0
  397. package/dist/resource/tencent/prompt.js.map +1 -0
  398. package/dist/resource/tencent/tencent.d.ts +8 -0
  399. package/dist/resource/tencent/tencent.d.ts.map +1 -0
  400. package/dist/resource/tencent/tencent.js +24 -0
  401. package/dist/resource/tencent/tencent.js.map +1 -0
  402. package/dist/resource/trello/config.d.ts +22 -0
  403. package/dist/resource/trello/config.d.ts.map +1 -0
  404. package/dist/resource/trello/config.js +35 -0
  405. package/dist/resource/trello/config.js.map +1 -0
  406. package/dist/resource/trello/trello.d.ts +32 -0
  407. package/dist/resource/trello/trello.d.ts.map +1 -0
  408. package/dist/resource/trello/trello.js +94 -0
  409. package/dist/resource/trello/trello.js.map +1 -0
  410. package/dist/resource/wasabi/config.d.ts +17 -0
  411. package/dist/resource/wasabi/config.d.ts.map +1 -0
  412. package/dist/resource/wasabi/config.js +29 -0
  413. package/dist/resource/wasabi/config.js.map +1 -0
  414. package/dist/resource/wasabi/prompt.d.ts +2 -0
  415. package/dist/resource/wasabi/prompt.d.ts.map +1 -0
  416. package/dist/resource/wasabi/prompt.js +19 -0
  417. package/dist/resource/wasabi/prompt.js.map +1 -0
  418. package/dist/resource/wasabi/wasabi.d.ts +8 -0
  419. package/dist/resource/wasabi/wasabi.d.ts.map +1 -0
  420. package/dist/resource/wasabi/wasabi.js +24 -0
  421. package/dist/resource/wasabi/wasabi.js.map +1 -0
  422. package/dist/test-utils.d.ts +37 -0
  423. package/dist/test-utils.d.ts.map +1 -0
  424. package/dist/test-utils.js +518 -0
  425. package/dist/test-utils.js.map +1 -0
  426. package/dist/workspace.d.ts +10 -0
  427. package/dist/workspace.d.ts.map +1 -0
  428. package/dist/workspace.js +62 -0
  429. package/dist/workspace.js.map +1 -0
  430. package/package.json +13 -6
  431. package/dist/aliyun-DR6KT3H6.js +0 -8
  432. package/dist/aliyun-DR6KT3H6.js.map +0 -1
  433. package/dist/backblaze-XCLZXTES.js +0 -8
  434. package/dist/backblaze-XCLZXTES.js.map +0 -1
  435. package/dist/box-XBCSU3AA.js +0 -8
  436. package/dist/box-XBCSU3AA.js.map +0 -1
  437. package/dist/ceph-F5S2NMTO.js +0 -8
  438. package/dist/ceph-F5S2NMTO.js.map +0 -1
  439. package/dist/chunk-2J35WXX5.js +0 -28
  440. package/dist/chunk-2J35WXX5.js.map +0 -1
  441. package/dist/chunk-2WNXK742.js +0 -89
  442. package/dist/chunk-2WNXK742.js.map +0 -1
  443. package/dist/chunk-2WSKXBSV.js +0 -139
  444. package/dist/chunk-2WSKXBSV.js.map +0 -1
  445. package/dist/chunk-37WKCB2E.js +0 -95
  446. package/dist/chunk-37WKCB2E.js.map +0 -1
  447. package/dist/chunk-3IYCVC7W.js +0 -96
  448. package/dist/chunk-3IYCVC7W.js.map +0 -1
  449. package/dist/chunk-46HNNKFR.js +0 -95
  450. package/dist/chunk-46HNNKFR.js.map +0 -1
  451. package/dist/chunk-4IF4TGAI.js +0 -11
  452. package/dist/chunk-4IF4TGAI.js.map +0 -1
  453. package/dist/chunk-5OZJMTYW.js +0 -113
  454. package/dist/chunk-5OZJMTYW.js.map +0 -1
  455. package/dist/chunk-5UM6EBVW.js +0 -108
  456. package/dist/chunk-5UM6EBVW.js.map +0 -1
  457. package/dist/chunk-6HRSCX2U.js +0 -98
  458. package/dist/chunk-6HRSCX2U.js.map +0 -1
  459. package/dist/chunk-7HWQAYXR.js +0 -85
  460. package/dist/chunk-7HWQAYXR.js.map +0 -1
  461. package/dist/chunk-AUZNQ7EI.js +0 -85
  462. package/dist/chunk-AUZNQ7EI.js.map +0 -1
  463. package/dist/chunk-BGA2F226.js +0 -182
  464. package/dist/chunk-BGA2F226.js.map +0 -1
  465. package/dist/chunk-BV372CUO.js +0 -90
  466. package/dist/chunk-BV372CUO.js.map +0 -1
  467. package/dist/chunk-C4THTILY.js +0 -95
  468. package/dist/chunk-C4THTILY.js.map +0 -1
  469. package/dist/chunk-D4MEOKNQ.js +0 -95
  470. package/dist/chunk-D4MEOKNQ.js.map +0 -1
  471. package/dist/chunk-D4RAMWYH.js +0 -88
  472. package/dist/chunk-D4RAMWYH.js.map +0 -1
  473. package/dist/chunk-EHIT6WCY.js +0 -95
  474. package/dist/chunk-EHIT6WCY.js.map +0 -1
  475. package/dist/chunk-EN6TZYT2.js +0 -95
  476. package/dist/chunk-EN6TZYT2.js.map +0 -1
  477. package/dist/chunk-FTDVV7EQ.js +0 -85
  478. package/dist/chunk-FTDVV7EQ.js.map +0 -1
  479. package/dist/chunk-G67Q2Z6I.js +0 -95
  480. package/dist/chunk-G67Q2Z6I.js.map +0 -1
  481. package/dist/chunk-GM2QMJAY.js +0 -85
  482. package/dist/chunk-GM2QMJAY.js.map +0 -1
  483. package/dist/chunk-HRWLHJX2.js +0 -84
  484. package/dist/chunk-HRWLHJX2.js.map +0 -1
  485. package/dist/chunk-INEXV2PN.js +0 -91
  486. package/dist/chunk-INEXV2PN.js.map +0 -1
  487. package/dist/chunk-IZMKMD3O.js +0 -11
  488. package/dist/chunk-IZMKMD3O.js.map +0 -1
  489. package/dist/chunk-JUVMJ5GI.js +0 -85
  490. package/dist/chunk-JUVMJ5GI.js.map +0 -1
  491. package/dist/chunk-KL2VFYUV.js +0 -159
  492. package/dist/chunk-KL2VFYUV.js.map +0 -1
  493. package/dist/chunk-L64GRKOD.js +0 -38
  494. package/dist/chunk-L64GRKOD.js.map +0 -1
  495. package/dist/chunk-LPDLPRPS.js +0 -11
  496. package/dist/chunk-LPDLPRPS.js.map +0 -1
  497. package/dist/chunk-M2UF2JHJ.js +0 -11
  498. package/dist/chunk-M2UF2JHJ.js.map +0 -1
  499. package/dist/chunk-NVHPJ5CV.js +0 -109
  500. package/dist/chunk-NVHPJ5CV.js.map +0 -1
  501. package/dist/chunk-OSTDTTWI.js +0 -35
  502. package/dist/chunk-OSTDTTWI.js.map +0 -1
  503. package/dist/chunk-PQCRGTSA.js +0 -85
  504. package/dist/chunk-PQCRGTSA.js.map +0 -1
  505. package/dist/chunk-QE7QNA45.js +0 -114
  506. package/dist/chunk-QE7QNA45.js.map +0 -1
  507. package/dist/chunk-QG2NUNCY.js +0 -95
  508. package/dist/chunk-QG2NUNCY.js.map +0 -1
  509. package/dist/chunk-UFHBDBZD.js +0 -1212
  510. package/dist/chunk-UFHBDBZD.js.map +0 -1
  511. package/dist/chunk-UY22T4AC.js +0 -112
  512. package/dist/chunk-UY22T4AC.js.map +0 -1
  513. package/dist/chunk-XJBC3OYX.js +0 -11
  514. package/dist/chunk-XJBC3OYX.js.map +0 -1
  515. package/dist/chunk-Y6DYUK6J.js +0 -85
  516. package/dist/chunk-Y6DYUK6J.js.map +0 -1
  517. package/dist/chunk-YOCTIHQZ.js +0 -89
  518. package/dist/chunk-YOCTIHQZ.js.map +0 -1
  519. package/dist/chunk-ZDJPUXYH.js +0 -101
  520. package/dist/chunk-ZDJPUXYH.js.map +0 -1
  521. package/dist/chunk-ZKCOSE3R.js +0 -90
  522. package/dist/chunk-ZKCOSE3R.js.map +0 -1
  523. package/dist/chunk-ZTHVEXIV.js +0 -11
  524. package/dist/chunk-ZTHVEXIV.js.map +0 -1
  525. package/dist/config-2Y6LZKLV.js +0 -9
  526. package/dist/config-2Y6LZKLV.js.map +0 -1
  527. package/dist/config-4GSOMUMF.js +0 -9
  528. package/dist/config-4GSOMUMF.js.map +0 -1
  529. package/dist/config-5YBUWFUP.js +0 -9
  530. package/dist/config-5YBUWFUP.js.map +0 -1
  531. package/dist/config-DE5OZ4I7.js +0 -9
  532. package/dist/config-DE5OZ4I7.js.map +0 -1
  533. package/dist/config-ELDOFRJW.js +0 -9
  534. package/dist/config-ELDOFRJW.js.map +0 -1
  535. package/dist/config-FPM3LAW7.js +0 -9
  536. package/dist/config-FPM3LAW7.js.map +0 -1
  537. package/dist/config-JY557MA6.js +0 -9
  538. package/dist/config-JY557MA6.js.map +0 -1
  539. package/dist/config-UU27ALAA.js +0 -9
  540. package/dist/config-UU27ALAA.js.map +0 -1
  541. package/dist/config-WRACCRPN.js +0 -9
  542. package/dist/config-WRACCRPN.js.map +0 -1
  543. package/dist/digitalocean-QDHTRS2W.js +0 -8
  544. package/dist/digitalocean-QDHTRS2W.js.map +0 -1
  545. package/dist/discord-ERUI7OAQ.js +0 -7
  546. package/dist/discord-ERUI7OAQ.js.map +0 -1
  547. package/dist/dropbox-3U6D4HLE.js +0 -8
  548. package/dist/dropbox-3U6D4HLE.js.map +0 -1
  549. package/dist/gcal-MTBSDG34.js +0 -8
  550. package/dist/gcal-MTBSDG34.js.map +0 -1
  551. package/dist/gcs-KNGRBBET.js +0 -8
  552. package/dist/gcs-KNGRBBET.js.map +0 -1
  553. package/dist/gdocs-RUIOIRKP.js +0 -8
  554. package/dist/gdocs-RUIOIRKP.js.map +0 -1
  555. package/dist/gdrive-5JB7ZKEP.js +0 -8
  556. package/dist/gdrive-5JB7ZKEP.js.map +0 -1
  557. package/dist/github-CIXBFBVO.js +0 -7
  558. package/dist/github-CIXBFBVO.js.map +0 -1
  559. package/dist/github_ci-HR6YOYAO.js +0 -8
  560. package/dist/github_ci-HR6YOYAO.js.map +0 -1
  561. package/dist/gmail-JHGWTQU5.js +0 -8
  562. package/dist/gmail-JHGWTQU5.js.map +0 -1
  563. package/dist/gsheets-N54JO2RS.js +0 -8
  564. package/dist/gsheets-N54JO2RS.js.map +0 -1
  565. package/dist/gslides-B4VMNLMB.js +0 -8
  566. package/dist/gslides-B4VMNLMB.js.map +0 -1
  567. package/dist/langfuse-HEUJGDOC.js +0 -7
  568. package/dist/langfuse-HEUJGDOC.js.map +0 -1
  569. package/dist/linear-J4QQ3CA6.js +0 -7
  570. package/dist/linear-J4QQ3CA6.js.map +0 -1
  571. package/dist/minio-BXWHJ6K5.js +0 -8
  572. package/dist/minio-BXWHJ6K5.js.map +0 -1
  573. package/dist/mongodb-YZP643ZU.js +0 -7
  574. package/dist/mongodb-YZP643ZU.js.map +0 -1
  575. package/dist/notion-I5S5SRLO.js +0 -7
  576. package/dist/notion-I5S5SRLO.js.map +0 -1
  577. package/dist/oci-XOPKH4AE.js +0 -8
  578. package/dist/oci-XOPKH4AE.js.map +0 -1
  579. package/dist/opfs-36QO72Y5.js +0 -7
  580. package/dist/opfs-36QO72Y5.js.map +0 -1
  581. package/dist/postgres-HPOMN2AR.js +0 -7
  582. package/dist/postgres-HPOMN2AR.js.map +0 -1
  583. package/dist/qingstor-JKAHLK62.js +0 -8
  584. package/dist/qingstor-JKAHLK62.js.map +0 -1
  585. package/dist/r2-L3QXQ76M.js +0 -8
  586. package/dist/r2-L3QXQ76M.js.map +0 -1
  587. package/dist/s3-LRZJPGHK.js +0 -9
  588. package/dist/s3-LRZJPGHK.js.map +0 -1
  589. package/dist/scaleway-CGNDYNKS.js +0 -8
  590. package/dist/scaleway-CGNDYNKS.js.map +0 -1
  591. package/dist/seaweedfs-BSQWCBIR.js +0 -8
  592. package/dist/seaweedfs-BSQWCBIR.js.map +0 -1
  593. package/dist/slack-62ECSENR.js +0 -7
  594. package/dist/slack-62ECSENR.js.map +0 -1
  595. package/dist/supabase-J66NXWAF.js +0 -8
  596. package/dist/supabase-J66NXWAF.js.map +0 -1
  597. package/dist/tencent-AC667LV3.js +0 -8
  598. package/dist/tencent-AC667LV3.js.map +0 -1
  599. package/dist/trello-SUPG6VDF.js +0 -7
  600. package/dist/trello-SUPG6VDF.js.map +0 -1
  601. package/dist/wasabi-5KKPW6LH.js +0 -8
  602. package/dist/wasabi-5KKPW6LH.js.map +0 -1
@@ -0,0 +1,154 @@
1
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
+ import { buildTree, emitStartPath, keep, startBasename, } from '@struktoai/mirage-core/commands/builtin/find_eval';
15
+ import { compareCodePoints } from '@struktoai/mirage-core/utils/sort';
16
+ import { isNotFound, iterEntries, norm, resolveDirHandle } from "./utils.js";
17
+ async function walk(ctx, dir, current, depth) {
18
+ const opts = ctx.options;
19
+ if (opts.maxDepth !== null && opts.maxDepth !== undefined && depth > opts.maxDepth)
20
+ return;
21
+ let iter;
22
+ try {
23
+ iter = iterEntries(dir);
24
+ }
25
+ catch {
26
+ return;
27
+ }
28
+ for await (const [entryName, handle] of iter) {
29
+ const kind = handle.kind === 'directory' ? 'd' : 'f';
30
+ const entryPath = current === '/' ? `/${entryName}` : `${current}/${entryName}`;
31
+ const entryDepth = depth + 1;
32
+ let accept = true;
33
+ if (opts.maxDepth !== null && opts.maxDepth !== undefined && entryDepth > opts.maxDepth) {
34
+ accept = false;
35
+ }
36
+ let isEmpty = null;
37
+ if (accept && opts.empty === true) {
38
+ try {
39
+ if (kind === 'f') {
40
+ isEmpty = (await handle.getFile()).size === 0;
41
+ }
42
+ else {
43
+ isEmpty = true;
44
+ for await (const _child of iterEntries(handle)) {
45
+ void _child;
46
+ isEmpty = false;
47
+ break;
48
+ }
49
+ }
50
+ }
51
+ catch {
52
+ isEmpty = null;
53
+ }
54
+ }
55
+ if (accept &&
56
+ !keep({ key: entryPath, name: entryName, kind, depth: entryDepth, isEmpty }, ctx.tree, opts.minDepth)) {
57
+ accept = false;
58
+ }
59
+ // Directories count as size 0 for -size (deliberate GNU divergence).
60
+ if (accept && kind !== 'f' && (opts.minSize != null || opts.maxSize != null)) {
61
+ // Directories contribute size 0 to -size (#318).
62
+ if (opts.minSize != null && opts.minSize > 0)
63
+ accept = false;
64
+ if (opts.maxSize != null && opts.maxSize < 0)
65
+ accept = false;
66
+ }
67
+ if (accept &&
68
+ kind === 'f' &&
69
+ (opts.minSize !== null ||
70
+ opts.maxSize !== null ||
71
+ opts.mtimeMin !== null ||
72
+ opts.mtimeMax !== null)) {
73
+ try {
74
+ const fh = await dir.getFileHandle(entryName, { create: false });
75
+ const file = await fh.getFile();
76
+ if (opts.minSize !== null && opts.minSize !== undefined && file.size < opts.minSize)
77
+ accept = false;
78
+ if (opts.maxSize !== null && opts.maxSize !== undefined && file.size > opts.maxSize)
79
+ accept = false;
80
+ if (accept && (opts.mtimeMin !== undefined || opts.mtimeMax !== undefined)) {
81
+ const mtime = file.lastModified / 1000;
82
+ if (opts.mtimeMin !== null && opts.mtimeMin !== undefined && mtime < opts.mtimeMin)
83
+ accept = false;
84
+ if (opts.mtimeMax !== null && opts.mtimeMax !== undefined && mtime > opts.mtimeMax)
85
+ accept = false;
86
+ }
87
+ }
88
+ catch {
89
+ accept = false;
90
+ }
91
+ }
92
+ if (accept)
93
+ ctx.results.push(entryPath);
94
+ if (kind === 'd') {
95
+ try {
96
+ const child = await dir.getDirectoryHandle(entryName, { create: false });
97
+ await walk(ctx, child, entryPath, depth + 1);
98
+ }
99
+ catch {
100
+ // ignore
101
+ }
102
+ }
103
+ }
104
+ }
105
+ export async function find(accessor, p, options = {}) {
106
+ const root = accessor.rootHandle;
107
+ const virtual = norm(p.mountPath);
108
+ const startName = startBasename(p.virtual);
109
+ const results = [];
110
+ const tree = options.tree ??
111
+ buildTree({
112
+ name: options.name,
113
+ iname: options.iname,
114
+ pathPattern: options.pathPattern,
115
+ type: options.type,
116
+ nameExclude: options.nameExclude,
117
+ orNames: options.orNames,
118
+ empty: options.empty,
119
+ });
120
+ let dir;
121
+ try {
122
+ dir = await resolveDirHandle(root, virtual, { create: false });
123
+ }
124
+ catch (err) {
125
+ if (isNotFound(err))
126
+ return results;
127
+ throw err;
128
+ }
129
+ if (options.maxDepth == null || options.maxDepth >= 0) {
130
+ let rootEmpty = null;
131
+ if (options.empty === true) {
132
+ rootEmpty = true;
133
+ for await (const _child of iterEntries(dir)) {
134
+ void _child;
135
+ rootEmpty = false;
136
+ break;
137
+ }
138
+ }
139
+ emitStartPath(results, virtual, startName, {
140
+ kind: 'd',
141
+ isEmpty: rootEmpty,
142
+ exists: true,
143
+ tree,
144
+ maxDepth: options.maxDepth,
145
+ minDepth: options.minDepth,
146
+ minSize: options.minSize,
147
+ maxSize: options.maxSize,
148
+ });
149
+ }
150
+ await walk({ options, tree, results }, dir, virtual, 0);
151
+ results.sort(compareCodePoints);
152
+ return results;
153
+ }
154
+ //# sourceMappingURL=find.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find.js","sourceRoot":"","sources":["../../../src/core/opfs/find.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { PathSpec } from '@struktoai/mirage-core/types';
2
+ import type { OPFSAccessor } from '../../accessor/opfs.ts';
3
+ export declare function mkdir(accessor: OPFSAccessor, path: PathSpec, parents?: boolean): Promise<void>;
4
+ //# sourceMappingURL=mkdir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mkdir.d.ts","sourceRoot":"","sources":["../../../src/core/opfs/mkdir.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAI5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AA+B1D,wBAAsB,KAAK,CACzB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,QAAQ,EACd,OAAO,UAAQ,GACd,OAAO,CAAC,IAAI,CAAC,CAuBf"}
@@ -0,0 +1,64 @@
1
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
+ import { invalidateAfterWrite, invalidateAncestors } from '@struktoai/mirage-core/cache/context';
15
+ import { eexist, enotdir } from '@struktoai/mirage-core/utils/errors';
16
+ import { mountedPath } from '@struktoai/mirage-core/utils/key_prefix';
17
+ import { ancestors, norm } from '@struktoai/mirage-core/utils/path';
18
+ import { destError, kindAt, resolveDirHandle, resolveParentDirHandle, splitSegments, } from "./utils.js";
19
+ // Reject a `mkdir` OPFS cannot satisfy, the way the store backends'
20
+ // checkMkdirTarget does. OPFS has no kernel to consult and raises the same
21
+ // TypeMismatchError whether the chain crossed a plain file or the target
22
+ // itself is one, so the chain is walked to tell GNU's two errnos apart and to
23
+ // name the component `-p` tripped on.
24
+ async function checkMkdirTarget(root, spec, key, parents) {
25
+ if (!parents) {
26
+ if ((await kindAt(root, key)) !== null)
27
+ throw eexist(spec);
28
+ return;
29
+ }
30
+ for (const component of [...ancestors(key), key]) {
31
+ if ((await kindAt(root, component)) !== 'file')
32
+ continue;
33
+ const named = mountedPath(spec, component);
34
+ throw component === key ? eexist(named) : enotdir(named);
35
+ }
36
+ }
37
+ export async function mkdir(accessor, path, parents = false) {
38
+ const root = accessor.rootHandle;
39
+ const virtual = path.mountPath;
40
+ const segs = splitSegments(virtual);
41
+ if (segs.length === 0)
42
+ return;
43
+ await checkMkdirTarget(root, path, norm(virtual), parents);
44
+ if (parents) {
45
+ await resolveDirHandle(root, virtual, { create: true });
46
+ await invalidateAfterWrite(path);
47
+ await invalidateAncestors(path);
48
+ return;
49
+ }
50
+ let parentDir;
51
+ let name;
52
+ try {
53
+ ;
54
+ [parentDir, name] = await resolveParentDirHandle(root, virtual, { create: false });
55
+ }
56
+ catch (err) {
57
+ // A bare Error here would not be classified as a filesystem failure,
58
+ // so the command layer could not report it with a GNU strerror.
59
+ throw destError(err, path);
60
+ }
61
+ await parentDir.getDirectoryHandle(name, { create: true });
62
+ await invalidateAfterWrite(path);
63
+ }
64
+ //# sourceMappingURL=mkdir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mkdir.js","sourceRoot":"","sources":["../../../src/core/opfs/mkdir.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { IndexCacheStore } from '@struktoai/mirage-core/cache/index/store';
2
+ import type { PathSpec } from '@struktoai/mirage-core/types';
3
+ import type { OPFSAccessor } from '../../accessor/opfs.ts';
4
+ /**
5
+ * Read a file, optionally only a byte range of it.
6
+ *
7
+ * `File` is a `Blob`, so `slice` bounds the window without materializing the
8
+ * whole file: only the sliced bytes are read off the origin-private store.
9
+ * `slice`'s end is exclusive, and it clamps past EOF rather than throwing,
10
+ * which is the POSIX answer the ops factory expects.
11
+ *
12
+ * Args:
13
+ * accessor: OPFS accessor.
14
+ * path: the path to read.
15
+ * _index: unused; OPFS resolves the handle from the path itself.
16
+ * options: `{offset, size}`, the byte window, or absent for the whole file.
17
+ */
18
+ export declare function read(accessor: OPFSAccessor, path: PathSpec, _index?: IndexCacheStore, options?: {
19
+ offset?: number;
20
+ size?: number;
21
+ }): Promise<Uint8Array>;
22
+ //# sourceMappingURL=read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/core/opfs/read.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAG/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAG1D;;;;;;;;;;;;;GAaG;AACH,wBAAsB,IAAI,CACxB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,QAAQ,EACd,MAAM,CAAC,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,OAAO,CAAC,UAAU,CAAC,CAsBrB"}
@@ -0,0 +1,57 @@
1
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
+ import { record, startOp } from '@struktoai/mirage-core/observe/context';
15
+ import { ResourceName } from '@struktoai/mirage-core/types';
16
+ import { eisdir, enoent } from '@struktoai/mirage-core/utils/errors';
17
+ import { isNotFound, resolveFileHandle } from "./utils.js";
18
+ /**
19
+ * Read a file, optionally only a byte range of it.
20
+ *
21
+ * `File` is a `Blob`, so `slice` bounds the window without materializing the
22
+ * whole file: only the sliced bytes are read off the origin-private store.
23
+ * `slice`'s end is exclusive, and it clamps past EOF rather than throwing,
24
+ * which is the POSIX answer the ops factory expects.
25
+ *
26
+ * Args:
27
+ * accessor: OPFS accessor.
28
+ * path: the path to read.
29
+ * _index: unused; OPFS resolves the handle from the path itself.
30
+ * options: `{offset, size}`, the byte window, or absent for the whole file.
31
+ */
32
+ export async function read(accessor, path, _index, options) {
33
+ const offset = options?.offset ?? 0;
34
+ const size = options?.size ?? null;
35
+ const root = accessor.rootHandle;
36
+ const timer = startOp();
37
+ const virtual = path.mountPath;
38
+ let handle;
39
+ try {
40
+ handle = await resolveFileHandle(root, virtual, { create: false });
41
+ }
42
+ catch (err) {
43
+ if (isNotFound(err))
44
+ throw enoent(path);
45
+ if (err instanceof DOMException && err.name === 'TypeMismatchError')
46
+ throw eisdir(path);
47
+ throw err;
48
+ }
49
+ const file = await handle.getFile();
50
+ const window = offset === 0 && size === null
51
+ ? file
52
+ : file.slice(offset, size === null ? undefined : offset + size);
53
+ const bytes = new Uint8Array(await window.arrayBuffer());
54
+ record('read', virtual, ResourceName.OPFS, bytes.byteLength, timer);
55
+ return bytes;
56
+ }
57
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/core/opfs/read.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAGvE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAE3D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAA;AAEpE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE1D;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,QAAsB,EACtB,IAAc,EACd,MAAwB,EACxB,OAA4C;IAE5C,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,CAAC,CAAA;IACnC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,IAAI,CAAA;IAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAA;IAChC,MAAM,KAAK,GAAG,OAAO,EAAE,CAAA;IACvB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAA;IAC9B,IAAI,MAA4B,CAAA;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;IACpE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,GAAG,YAAY,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,mBAAmB;YAAE,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;QACvF,MAAM,GAAG,CAAA;IACX,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;IACnC,MAAM,MAAM,GACV,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI;QAC3B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACnE,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;IACxD,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IACnE,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { PathSpec } from '@struktoai/mirage-core/types';
2
+ import type { OPFSAccessor } from '../../accessor/opfs.ts';
3
+ export declare function readdir(accessor: OPFSAccessor, path: PathSpec): Promise<string[]>;
4
+ //# sourceMappingURL=readdir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readdir.d.ts","sourceRoot":"","sources":["../../../src/core/opfs/readdir.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAI5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAG1D,wBAAsB,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA4BvF"}
@@ -0,0 +1,50 @@
1
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
+ import { enoent, enotdir } from '@struktoai/mirage-core/utils/errors';
15
+ import { mountPrefixOf } from '@struktoai/mirage-core/utils/key_prefix';
16
+ import { compareCodePoints } from '@struktoai/mirage-core/utils/sort';
17
+ import { isNotFound, isTypeMismatch, iterEntries, norm, resolveDirHandle } from "./utils.js";
18
+ export async function readdir(accessor, path) {
19
+ const root = accessor.rootHandle;
20
+ // A pattern spec addresses the directory whose entries the glob filters,
21
+ // and the rest of this function works in mount-relative space, so the
22
+ // directory has to be read off `dir` rather than off the virtual
23
+ // `directory` string (python strips the prefix by hand for the same
24
+ // reason).
25
+ const virtual = (path.pattern !== null ? path.dir : path).mountPath;
26
+ let dir;
27
+ try {
28
+ dir = await resolveDirHandle(root, virtual, { create: false });
29
+ }
30
+ catch (err) {
31
+ // OPFS already separates the two cases the way the kernel does: a missing
32
+ // component is NotFoundError (ENOENT), a component that exists but is a
33
+ // file is TypeMismatchError (ENOTDIR). Keep the split instead of
34
+ // collapsing both into one errno.
35
+ if (isNotFound(err))
36
+ throw enoent(path);
37
+ if (isTypeMismatch(err))
38
+ throw enotdir(path);
39
+ throw err;
40
+ }
41
+ const names = [];
42
+ for await (const [name] of iterEntries(dir)) {
43
+ names.push(name);
44
+ }
45
+ const base = norm(virtual);
46
+ const dirPrefix = base === '/' ? '/' : `${base}/`;
47
+ const mountPrefix = mountPrefixOf(path.virtual, path.resourcePath);
48
+ return names.map((n) => `${mountPrefix}${dirPrefix}${n}`).sort(compareCodePoints);
49
+ }
50
+ //# sourceMappingURL=readdir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readdir.js","sourceRoot":"","sources":["../../../src/core/opfs/readdir.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAGvE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAErE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE5F,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,QAAsB,EAAE,IAAc;IAClE,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAA;IAChC,yEAAyE;IACzE,sEAAsE;IACtE,iEAAiE;IACjE,oEAAoE;IACpE,WAAW;IACX,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAA;IACnE,IAAI,GAA8B,CAAA;IAClC,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,0EAA0E;QAC1E,wEAAwE;QACxE,iEAAiE;QACjE,kCAAkC;QAClC,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,cAAc,CAAC,GAAG,CAAC;YAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5C,MAAM,GAAG,CAAA;IACX,CAAC;IACD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;IAC1B,MAAM,SAAS,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAA;IACjD,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IAClE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;AACnF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { PathSpec } from '@struktoai/mirage-core/types';
2
+ import type { OPFSAccessor } from '../../accessor/opfs.ts';
3
+ export declare function rename(accessor: OPFSAccessor, src: PathSpec, dst: PathSpec): Promise<void>;
4
+ //# sourceMappingURL=rename.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rename.d.ts","sourceRoot":"","sources":["../../../src/core/opfs/rename.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAiC1D,wBAAsB,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDhG"}
@@ -0,0 +1,97 @@
1
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
+ import { enoent } from '@struktoai/mirage-core/utils/errors';
15
+ import { destError, isNotFound, iterEntries, resolveDirHandle, resolveFileHandle, resolveParentDirHandle, toWritableChunk, } from "./utils.js";
16
+ async function copyDirRecursive(root, srcPath, dstPath) {
17
+ const srcDir = await resolveDirHandle(root, srcPath, { create: false });
18
+ const dstDir = await resolveDirHandle(root, dstPath, { create: true });
19
+ for await (const [name, handle] of iterEntries(srcDir)) {
20
+ if (handle.kind === 'file') {
21
+ const srcFile = await srcDir.getFileHandle(name, { create: false });
22
+ const file = await srcFile.getFile();
23
+ const data = new Uint8Array(await file.arrayBuffer());
24
+ const dstFile = await dstDir.getFileHandle(name, { create: true });
25
+ const writable = await dstFile.createWritable();
26
+ await writable.write(toWritableChunk(data));
27
+ await writable.close();
28
+ }
29
+ else {
30
+ await copyDirRecursive(root, `${srcPath}/${name}`, `${dstPath}/${name}`);
31
+ }
32
+ }
33
+ }
34
+ export async function rename(accessor, src, dst) {
35
+ const root = accessor.rootHandle;
36
+ const srcPath = src.mountPath;
37
+ const dstPath = dst.mountPath;
38
+ let srcParent;
39
+ let srcName;
40
+ try {
41
+ ;
42
+ [srcParent, srcName] = await resolveParentDirHandle(root, srcPath, { create: false });
43
+ }
44
+ catch (err) {
45
+ if (isNotFound(err))
46
+ throw enoent(src);
47
+ throw err;
48
+ }
49
+ let isFile = false;
50
+ try {
51
+ await srcParent.getFileHandle(srcName, { create: false });
52
+ isFile = true;
53
+ }
54
+ catch (err) {
55
+ if (!isNotFound(err) && !(err instanceof DOMException && err.name === 'TypeMismatchError')) {
56
+ throw err;
57
+ }
58
+ }
59
+ if (!isFile) {
60
+ try {
61
+ await srcParent.getDirectoryHandle(srcName, { create: false });
62
+ }
63
+ catch (err) {
64
+ if (isNotFound(err))
65
+ throw enoent(src);
66
+ throw err;
67
+ }
68
+ }
69
+ // rename(2) resolves the destination first and never creates parents;
70
+ // OPFS creates per segment, so the chain has to be probed explicitly.
71
+ try {
72
+ await resolveParentDirHandle(root, dstPath, { create: false });
73
+ }
74
+ catch (err) {
75
+ throw destError(err, dst);
76
+ }
77
+ if (isFile) {
78
+ const srcFile = await resolveFileHandle(root, srcPath, { create: false });
79
+ const file = await srcFile.getFile();
80
+ const data = new Uint8Array(await file.arrayBuffer());
81
+ let dstFile;
82
+ try {
83
+ dstFile = await resolveFileHandle(root, dstPath, { create: true });
84
+ }
85
+ catch (err) {
86
+ throw destError(err, dst);
87
+ }
88
+ const writable = await dstFile.createWritable();
89
+ await writable.write(toWritableChunk(data));
90
+ await writable.close();
91
+ await srcParent.removeEntry(srcName);
92
+ return;
93
+ }
94
+ await copyDirRecursive(root, srcPath, dstPath);
95
+ await srcParent.removeEntry(srcName, { recursive: true });
96
+ }
97
+ //# sourceMappingURL=rename.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rename.js","sourceRoot":"","sources":["../../../src/core/opfs/rename.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { PathSpec } from '@struktoai/mirage-core/types';
2
+ import type { OPFSAccessor } from '../../accessor/opfs.ts';
3
+ export declare function rmR(accessor: OPFSAccessor, path: PathSpec): Promise<void>;
4
+ //# sourceMappingURL=rm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rm.d.ts","sourceRoot":"","sources":["../../../src/core/opfs/rm.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAG1D,wBAAsB,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB/E"}
@@ -0,0 +1,40 @@
1
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
+ import { isNotFound, resolveParentDirHandle } from "./utils.js";
15
+ export async function rmR(accessor, path) {
16
+ const root = accessor.rootHandle;
17
+ const virtual = path.mountPath;
18
+ let parentDir;
19
+ let name;
20
+ try {
21
+ ;
22
+ [parentDir, name] = await resolveParentDirHandle(root, virtual, { create: false });
23
+ }
24
+ catch (err) {
25
+ if (isNotFound(err))
26
+ return;
27
+ if (err instanceof Error && err.message.startsWith('no parent directory'))
28
+ return;
29
+ throw err;
30
+ }
31
+ try {
32
+ await parentDir.removeEntry(name, { recursive: true });
33
+ }
34
+ catch (err) {
35
+ if (isNotFound(err))
36
+ return;
37
+ throw err;
38
+ }
39
+ }
40
+ //# sourceMappingURL=rm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rm.js","sourceRoot":"","sources":["../../../src/core/opfs/rm.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAIvE,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAE/D,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,QAAsB,EAAE,IAAc;IAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAA;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAA;IAC9B,IAAI,SAAoC,CAAA;IACxC,IAAI,IAAY,CAAA;IAChB,IAAI,CAAC;QACH,CAAC;QAAA,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;IACrF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,OAAM;QAC3B,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC;YAAE,OAAM;QACjF,MAAM,GAAG,CAAA;IACX,CAAC;IACD,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,OAAM;QAC3B,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { PathSpec } from '@struktoai/mirage-core/types';
2
+ import type { OPFSAccessor } from '../../accessor/opfs.ts';
3
+ export declare function rmdir(accessor: OPFSAccessor, path: PathSpec): Promise<void>;
4
+ //# sourceMappingURL=rmdir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rmdir.d.ts","sourceRoot":"","sources":["../../../src/core/opfs/rmdir.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAG1D,wBAAsB,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBjF"}
@@ -0,0 +1,48 @@
1
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
+ import { enotempty } from '@struktoai/mirage-core/utils/errors';
15
+ import { isNotFound, resolveParentDirHandle } from "./utils.js";
16
+ export async function rmdir(accessor, path) {
17
+ const root = accessor.rootHandle;
18
+ const virtual = path.mountPath;
19
+ let parentDir;
20
+ let name;
21
+ try {
22
+ ;
23
+ [parentDir, name] = await resolveParentDirHandle(root, virtual, { create: false });
24
+ }
25
+ catch (err) {
26
+ if (isNotFound(err))
27
+ return;
28
+ if (err instanceof Error && err.message.startsWith('no parent directory'))
29
+ return;
30
+ throw err;
31
+ }
32
+ try {
33
+ await parentDir.removeEntry(name, { recursive: false });
34
+ }
35
+ catch (err) {
36
+ if (isNotFound(err))
37
+ return;
38
+ // OPFS enforces the emptiness itself under `recursive: false`, but names
39
+ // its refusal InvalidModificationError. Rethrown raw it reached the
40
+ // caller as an untyped DOMException that `classify` could not name, so
41
+ // FUSE reported EIO and the sandbox runtimes saw no errno at all.
42
+ if (err instanceof DOMException && err.name === 'InvalidModificationError') {
43
+ throw enotempty(path);
44
+ }
45
+ throw err;
46
+ }
47
+ }
48
+ //# sourceMappingURL=rmdir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rmdir.js","sourceRoot":"","sources":["../../../src/core/opfs/rmdir.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAGvE,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAE/D,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAE/D,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,QAAsB,EAAE,IAAc;IAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAA;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAA;IAC9B,IAAI,SAAoC,CAAA;IACxC,IAAI,IAAY,CAAA;IAChB,IAAI,CAAC;QACH,CAAC;QAAA,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;IACrF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,OAAM;QAC3B,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC;YAAE,OAAM;QACjF,MAAM,GAAG,CAAA;IACX,CAAC;IACD,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;IACzD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,OAAM;QAC3B,yEAAyE;QACzE,oEAAoE;QACpE,uEAAuE;QACvE,kEAAkE;QAClE,IAAI,GAAG,YAAY,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;YAC3E,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC"}