@fragno-dev/upload 0.1.1

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 (355) hide show
  1. package/LICENSE.md +16 -0
  2. package/README.md +43 -0
  3. package/bin/run.js +5 -0
  4. package/dist/browser/client/clients.js +49 -0
  5. package/dist/browser/client/clients.js.map +1 -0
  6. package/dist/browser/client/helpers.d.ts +51 -0
  7. package/dist/browser/client/helpers.d.ts.map +1 -0
  8. package/dist/browser/client/helpers.js +242 -0
  9. package/dist/browser/client/helpers.js.map +1 -0
  10. package/dist/browser/client/node_modules/.pnpm/@nanostores_query@0.3.4_nanostores@1.1.0/node_modules/@nanostores/query/dist/nanoquery.js +354 -0
  11. package/dist/browser/client/node_modules/.pnpm/@nanostores_query@0.3.4_nanostores@1.1.0/node_modules/@nanostores/query/dist/nanoquery.js.map +1 -0
  12. package/dist/browser/client/node_modules/.pnpm/@nanostores_solid@1.1.1_nanostores@1.1.0_solid-js@1.9.10/node_modules/@nanostores/solid/dist/index.js +14 -0
  13. package/dist/browser/client/node_modules/.pnpm/@nanostores_solid@1.1.1_nanostores@1.1.0_solid-js@1.9.10/node_modules/@nanostores/solid/dist/index.js.map +1 -0
  14. package/dist/browser/client/node_modules/.pnpm/nanoevents@9.1.0/node_modules/nanoevents/index.js +17 -0
  15. package/dist/browser/client/node_modules/.pnpm/nanoevents@9.1.0/node_modules/nanoevents/index.js.map +1 -0
  16. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/atom/index.js +62 -0
  17. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/atom/index.js.map +1 -0
  18. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/clean-stores/index.js +6 -0
  19. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/clean-stores/index.js.map +1 -0
  20. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/computed/index.js +50 -0
  21. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/computed/index.js.map +1 -0
  22. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/lifecycle/index.js +99 -0
  23. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/lifecycle/index.js.map +1 -0
  24. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/listen-keys/index.js +11 -0
  25. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/listen-keys/index.js.map +1 -0
  26. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/map/index.js +25 -0
  27. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/map/index.js.map +1 -0
  28. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/task/index.js +24 -0
  29. package/dist/browser/client/node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/task/index.js.map +1 -0
  30. package/dist/browser/client/packages/fragment-upload/src/definition.js +49 -0
  31. package/dist/browser/client/packages/fragment-upload/src/definition.js.map +1 -0
  32. package/dist/browser/client/packages/fragment-upload/src/keys.d.ts +7 -0
  33. package/dist/browser/client/packages/fragment-upload/src/keys.d.ts.map +1 -0
  34. package/dist/browser/client/packages/fragment-upload/src/keys.js +28 -0
  35. package/dist/browser/client/packages/fragment-upload/src/keys.js.map +1 -0
  36. package/dist/browser/client/packages/fragment-upload/src/routes/files.js +98 -0
  37. package/dist/browser/client/packages/fragment-upload/src/routes/files.js.map +1 -0
  38. package/dist/browser/client/packages/fragment-upload/src/routes/index.js +9 -0
  39. package/dist/browser/client/packages/fragment-upload/src/routes/index.js.map +1 -0
  40. package/dist/browser/client/packages/fragment-upload/src/routes/shared.js +41 -0
  41. package/dist/browser/client/packages/fragment-upload/src/routes/shared.js.map +1 -0
  42. package/dist/browser/client/packages/fragment-upload/src/routes/uploads.js +186 -0
  43. package/dist/browser/client/packages/fragment-upload/src/routes/uploads.js.map +1 -0
  44. package/dist/browser/client/packages/fragment-upload/src/schema.js +8 -0
  45. package/dist/browser/client/packages/fragment-upload/src/schema.js.map +1 -0
  46. package/dist/browser/client/packages/fragment-upload/src/storage/types.d.ts +9 -0
  47. package/dist/browser/client/packages/fragment-upload/src/storage/types.d.ts.map +1 -0
  48. package/dist/browser/client/packages/fragment-upload/src/types.d.ts +31 -0
  49. package/dist/browser/client/packages/fragment-upload/src/types.d.ts.map +1 -0
  50. package/dist/browser/client/packages/fragno/dist/api/error.js +48 -0
  51. package/dist/browser/client/packages/fragno/dist/api/error.js.map +1 -0
  52. package/dist/browser/client/packages/fragno/dist/api/internal/path.js +76 -0
  53. package/dist/browser/client/packages/fragno/dist/api/internal/path.js.map +1 -0
  54. package/dist/browser/client/packages/fragno/dist/api/internal/response-stream.js +81 -0
  55. package/dist/browser/client/packages/fragno/dist/api/internal/response-stream.js.map +1 -0
  56. package/dist/browser/client/packages/fragno/dist/api/internal/route.js +10 -0
  57. package/dist/browser/client/packages/fragno/dist/api/internal/route.js.map +1 -0
  58. package/dist/browser/client/packages/fragno/dist/api/request-input-context.js +185 -0
  59. package/dist/browser/client/packages/fragno/dist/api/request-input-context.js.map +1 -0
  60. package/dist/browser/client/packages/fragno/dist/api/request-output-context.js +119 -0
  61. package/dist/browser/client/packages/fragno/dist/api/request-output-context.js.map +1 -0
  62. package/dist/browser/client/packages/fragno/dist/api/route.js +17 -0
  63. package/dist/browser/client/packages/fragno/dist/api/route.js.map +1 -0
  64. package/dist/browser/client/packages/fragno/dist/client/client-error.js +92 -0
  65. package/dist/browser/client/packages/fragno/dist/client/client-error.js.map +1 -0
  66. package/dist/browser/client/packages/fragno/dist/client/client.js +495 -0
  67. package/dist/browser/client/packages/fragno/dist/client/client.js.map +1 -0
  68. package/dist/browser/client/packages/fragno/dist/client/client.svelte.js +120 -0
  69. package/dist/browser/client/packages/fragno/dist/client/client.svelte.js.map +1 -0
  70. package/dist/browser/client/packages/fragno/dist/client/internal/fetcher-merge.js +36 -0
  71. package/dist/browser/client/packages/fragno/dist/client/internal/fetcher-merge.js.map +1 -0
  72. package/dist/browser/client/packages/fragno/dist/client/internal/ndjson-streaming.js +139 -0
  73. package/dist/browser/client/packages/fragno/dist/client/internal/ndjson-streaming.js.map +1 -0
  74. package/dist/browser/client/packages/fragno/dist/client/react.js +70 -0
  75. package/dist/browser/client/packages/fragno/dist/client/react.js.map +1 -0
  76. package/dist/browser/client/packages/fragno/dist/client/solid.js +108 -0
  77. package/dist/browser/client/packages/fragno/dist/client/solid.js.map +1 -0
  78. package/dist/browser/client/packages/fragno/dist/client/vanilla.js +96 -0
  79. package/dist/browser/client/packages/fragno/dist/client/vanilla.js.map +1 -0
  80. package/dist/browser/client/packages/fragno/dist/client/vue.js +120 -0
  81. package/dist/browser/client/packages/fragno/dist/client/vue.js.map +1 -0
  82. package/dist/browser/client/packages/fragno/dist/util/async.js +40 -0
  83. package/dist/browser/client/packages/fragno/dist/util/async.js.map +1 -0
  84. package/dist/browser/client/packages/fragno/dist/util/content-type.js +49 -0
  85. package/dist/browser/client/packages/fragno/dist/util/content-type.js.map +1 -0
  86. package/dist/browser/client/packages/fragno/dist/util/nanostores.js +31 -0
  87. package/dist/browser/client/packages/fragno/dist/util/nanostores.js.map +1 -0
  88. package/dist/browser/client/packages/fragno/dist/util/ssr.js +18 -0
  89. package/dist/browser/client/packages/fragno/dist/util/ssr.js.map +1 -0
  90. package/dist/browser/client/react.d.ts +295 -0
  91. package/dist/browser/client/react.d.ts.map +1 -0
  92. package/dist/browser/client/react.js +11 -0
  93. package/dist/browser/client/react.js.map +1 -0
  94. package/dist/browser/client/solid.d.ts +303 -0
  95. package/dist/browser/client/solid.d.ts.map +1 -0
  96. package/dist/browser/client/solid.js +11 -0
  97. package/dist/browser/client/solid.js.map +1 -0
  98. package/dist/browser/client/svelte.d.ts +295 -0
  99. package/dist/browser/client/svelte.d.ts.map +1 -0
  100. package/dist/browser/client/svelte.js +11 -0
  101. package/dist/browser/client/svelte.js.map +1 -0
  102. package/dist/browser/client/vanilla.d.ts +296 -0
  103. package/dist/browser/client/vanilla.d.ts.map +1 -0
  104. package/dist/browser/client/vanilla.js +11 -0
  105. package/dist/browser/client/vanilla.js.map +1 -0
  106. package/dist/browser/client/vue.d.ts +295 -0
  107. package/dist/browser/client/vue.d.ts.map +1 -0
  108. package/dist/browser/client/vue.js +11 -0
  109. package/dist/browser/client/vue.js.map +1 -0
  110. package/dist/browser/index-BdjKPO4J.d.ts +177 -0
  111. package/dist/browser/index-BdjKPO4J.d.ts.map +1 -0
  112. package/dist/browser/index.js +3 -0
  113. package/dist/browser/src-vdNJUbjT.js +1982 -0
  114. package/dist/browser/src-vdNJUbjT.js.map +1 -0
  115. package/dist/cli/commands/files/delete.d.ts +40 -0
  116. package/dist/cli/commands/files/delete.d.ts.map +1 -0
  117. package/dist/cli/commands/files/delete.js +31 -0
  118. package/dist/cli/commands/files/delete.js.map +1 -0
  119. package/dist/cli/commands/files/download-url.d.ts +40 -0
  120. package/dist/cli/commands/files/download-url.d.ts.map +1 -0
  121. package/dist/cli/commands/files/download-url.js +31 -0
  122. package/dist/cli/commands/files/download-url.js.map +1 -0
  123. package/dist/cli/commands/files/download.d.ts +49 -0
  124. package/dist/cli/commands/files/download.d.ts.map +1 -0
  125. package/dist/cli/commands/files/download.js +65 -0
  126. package/dist/cli/commands/files/download.js.map +1 -0
  127. package/dist/cli/commands/files/get.d.ts +40 -0
  128. package/dist/cli/commands/files/get.d.ts.map +1 -0
  129. package/dist/cli/commands/files/get.js +31 -0
  130. package/dist/cli/commands/files/get.js.map +1 -0
  131. package/dist/cli/commands/files/list.d.ts +56 -0
  132. package/dist/cli/commands/files/list.d.ts.map +1 -0
  133. package/dist/cli/commands/files/list.js +53 -0
  134. package/dist/cli/commands/files/list.js.map +1 -0
  135. package/dist/cli/commands/files/update.d.ts +56 -0
  136. package/dist/cli/commands/files/update.d.ts.map +1 -0
  137. package/dist/cli/commands/files/update.js +53 -0
  138. package/dist/cli/commands/files/update.js.map +1 -0
  139. package/dist/cli/commands/files/upload.d.ts +73 -0
  140. package/dist/cli/commands/files/upload.d.ts.map +1 -0
  141. package/dist/cli/commands/files/upload.js +87 -0
  142. package/dist/cli/commands/files/upload.js.map +1 -0
  143. package/dist/cli/commands/uploads/abort.d.ts +37 -0
  144. package/dist/cli/commands/uploads/abort.d.ts.map +1 -0
  145. package/dist/cli/commands/uploads/abort.js +26 -0
  146. package/dist/cli/commands/uploads/abort.js.map +1 -0
  147. package/dist/cli/commands/uploads/complete.d.ts +41 -0
  148. package/dist/cli/commands/uploads/complete.d.ts.map +1 -0
  149. package/dist/cli/commands/uploads/complete.js +45 -0
  150. package/dist/cli/commands/uploads/complete.js.map +1 -0
  151. package/dist/cli/commands/uploads/content.d.ts +46 -0
  152. package/dist/cli/commands/uploads/content.d.ts.map +1 -0
  153. package/dist/cli/commands/uploads/content.js +43 -0
  154. package/dist/cli/commands/uploads/content.js.map +1 -0
  155. package/dist/cli/commands/uploads/create.d.ts +72 -0
  156. package/dist/cli/commands/uploads/create.d.ts.map +1 -0
  157. package/dist/cli/commands/uploads/create.js +84 -0
  158. package/dist/cli/commands/uploads/create.js.map +1 -0
  159. package/dist/cli/commands/uploads/get.d.ts +37 -0
  160. package/dist/cli/commands/uploads/get.d.ts.map +1 -0
  161. package/dist/cli/commands/uploads/get.js +26 -0
  162. package/dist/cli/commands/uploads/get.js.map +1 -0
  163. package/dist/cli/commands/uploads/parts-complete.d.ts +41 -0
  164. package/dist/cli/commands/uploads/parts-complete.d.ts.map +1 -0
  165. package/dist/cli/commands/uploads/parts-complete.js +44 -0
  166. package/dist/cli/commands/uploads/parts-complete.js.map +1 -0
  167. package/dist/cli/commands/uploads/parts-list.d.ts +37 -0
  168. package/dist/cli/commands/uploads/parts-list.d.ts.map +1 -0
  169. package/dist/cli/commands/uploads/parts-list.js +26 -0
  170. package/dist/cli/commands/uploads/parts-list.js.map +1 -0
  171. package/dist/cli/commands/uploads/parts-urls.d.ts +46 -0
  172. package/dist/cli/commands/uploads/parts-urls.d.ts.map +1 -0
  173. package/dist/cli/commands/uploads/parts-urls.js +57 -0
  174. package/dist/cli/commands/uploads/parts-urls.js.map +1 -0
  175. package/dist/cli/commands/uploads/progress.d.ts +45 -0
  176. package/dist/cli/commands/uploads/progress.d.ts.map +1 -0
  177. package/dist/cli/commands/uploads/progress.js +40 -0
  178. package/dist/cli/commands/uploads/progress.js.map +1 -0
  179. package/dist/cli/commands/uploads/transfer.d.ts +73 -0
  180. package/dist/cli/commands/uploads/transfer.d.ts.map +1 -0
  181. package/dist/cli/commands/uploads/transfer.js +170 -0
  182. package/dist/cli/commands/uploads/transfer.js.map +1 -0
  183. package/dist/cli/index.d.ts +27 -0
  184. package/dist/cli/index.d.ts.map +1 -0
  185. package/dist/cli/index.js +198 -0
  186. package/dist/cli/index.js.map +1 -0
  187. package/dist/cli/keys.js +32 -0
  188. package/dist/cli/keys.js.map +1 -0
  189. package/dist/cli/utils/client.js +174 -0
  190. package/dist/cli/utils/client.js.map +1 -0
  191. package/dist/cli/utils/options.js +135 -0
  192. package/dist/cli/utils/options.js.map +1 -0
  193. package/dist/node/cli/commands/files/delete.d.ts +40 -0
  194. package/dist/node/cli/commands/files/delete.d.ts.map +1 -0
  195. package/dist/node/cli/commands/files/delete.js +31 -0
  196. package/dist/node/cli/commands/files/delete.js.map +1 -0
  197. package/dist/node/cli/commands/files/download-url.d.ts +40 -0
  198. package/dist/node/cli/commands/files/download-url.d.ts.map +1 -0
  199. package/dist/node/cli/commands/files/download-url.js +31 -0
  200. package/dist/node/cli/commands/files/download-url.js.map +1 -0
  201. package/dist/node/cli/commands/files/download.d.ts +49 -0
  202. package/dist/node/cli/commands/files/download.d.ts.map +1 -0
  203. package/dist/node/cli/commands/files/download.js +65 -0
  204. package/dist/node/cli/commands/files/download.js.map +1 -0
  205. package/dist/node/cli/commands/files/get.d.ts +40 -0
  206. package/dist/node/cli/commands/files/get.d.ts.map +1 -0
  207. package/dist/node/cli/commands/files/get.js +31 -0
  208. package/dist/node/cli/commands/files/get.js.map +1 -0
  209. package/dist/node/cli/commands/files/list.d.ts +56 -0
  210. package/dist/node/cli/commands/files/list.d.ts.map +1 -0
  211. package/dist/node/cli/commands/files/list.js +53 -0
  212. package/dist/node/cli/commands/files/list.js.map +1 -0
  213. package/dist/node/cli/commands/files/update.d.ts +56 -0
  214. package/dist/node/cli/commands/files/update.d.ts.map +1 -0
  215. package/dist/node/cli/commands/files/update.js +53 -0
  216. package/dist/node/cli/commands/files/update.js.map +1 -0
  217. package/dist/node/cli/commands/files/upload.d.ts +73 -0
  218. package/dist/node/cli/commands/files/upload.d.ts.map +1 -0
  219. package/dist/node/cli/commands/files/upload.js +87 -0
  220. package/dist/node/cli/commands/files/upload.js.map +1 -0
  221. package/dist/node/cli/commands/uploads/abort.d.ts +37 -0
  222. package/dist/node/cli/commands/uploads/abort.d.ts.map +1 -0
  223. package/dist/node/cli/commands/uploads/abort.js +26 -0
  224. package/dist/node/cli/commands/uploads/abort.js.map +1 -0
  225. package/dist/node/cli/commands/uploads/complete.d.ts +41 -0
  226. package/dist/node/cli/commands/uploads/complete.d.ts.map +1 -0
  227. package/dist/node/cli/commands/uploads/complete.js +45 -0
  228. package/dist/node/cli/commands/uploads/complete.js.map +1 -0
  229. package/dist/node/cli/commands/uploads/content.d.ts +46 -0
  230. package/dist/node/cli/commands/uploads/content.d.ts.map +1 -0
  231. package/dist/node/cli/commands/uploads/content.js +43 -0
  232. package/dist/node/cli/commands/uploads/content.js.map +1 -0
  233. package/dist/node/cli/commands/uploads/create.d.ts +72 -0
  234. package/dist/node/cli/commands/uploads/create.d.ts.map +1 -0
  235. package/dist/node/cli/commands/uploads/create.js +84 -0
  236. package/dist/node/cli/commands/uploads/create.js.map +1 -0
  237. package/dist/node/cli/commands/uploads/get.d.ts +37 -0
  238. package/dist/node/cli/commands/uploads/get.d.ts.map +1 -0
  239. package/dist/node/cli/commands/uploads/get.js +26 -0
  240. package/dist/node/cli/commands/uploads/get.js.map +1 -0
  241. package/dist/node/cli/commands/uploads/parts-complete.d.ts +41 -0
  242. package/dist/node/cli/commands/uploads/parts-complete.d.ts.map +1 -0
  243. package/dist/node/cli/commands/uploads/parts-complete.js +44 -0
  244. package/dist/node/cli/commands/uploads/parts-complete.js.map +1 -0
  245. package/dist/node/cli/commands/uploads/parts-list.d.ts +37 -0
  246. package/dist/node/cli/commands/uploads/parts-list.d.ts.map +1 -0
  247. package/dist/node/cli/commands/uploads/parts-list.js +26 -0
  248. package/dist/node/cli/commands/uploads/parts-list.js.map +1 -0
  249. package/dist/node/cli/commands/uploads/parts-urls.d.ts +46 -0
  250. package/dist/node/cli/commands/uploads/parts-urls.d.ts.map +1 -0
  251. package/dist/node/cli/commands/uploads/parts-urls.js +57 -0
  252. package/dist/node/cli/commands/uploads/parts-urls.js.map +1 -0
  253. package/dist/node/cli/commands/uploads/progress.d.ts +45 -0
  254. package/dist/node/cli/commands/uploads/progress.d.ts.map +1 -0
  255. package/dist/node/cli/commands/uploads/progress.js +40 -0
  256. package/dist/node/cli/commands/uploads/progress.js.map +1 -0
  257. package/dist/node/cli/commands/uploads/transfer.d.ts +73 -0
  258. package/dist/node/cli/commands/uploads/transfer.d.ts.map +1 -0
  259. package/dist/node/cli/commands/uploads/transfer.js +170 -0
  260. package/dist/node/cli/commands/uploads/transfer.js.map +1 -0
  261. package/dist/node/cli/index.d.ts +27 -0
  262. package/dist/node/cli/index.d.ts.map +1 -0
  263. package/dist/node/cli/index.js +198 -0
  264. package/dist/node/cli/index.js.map +1 -0
  265. package/dist/node/cli/utils/client.js +174 -0
  266. package/dist/node/cli/utils/client.js.map +1 -0
  267. package/dist/node/cli/utils/options.js +135 -0
  268. package/dist/node/cli/utils/options.js.map +1 -0
  269. package/dist/node/client/clients.d.ts +295 -0
  270. package/dist/node/client/clients.d.ts.map +1 -0
  271. package/dist/node/client/clients.js +49 -0
  272. package/dist/node/client/clients.js.map +1 -0
  273. package/dist/node/client/helpers.d.ts +51 -0
  274. package/dist/node/client/helpers.d.ts.map +1 -0
  275. package/dist/node/client/helpers.js +242 -0
  276. package/dist/node/client/helpers.js.map +1 -0
  277. package/dist/node/client/react.d.ts +295 -0
  278. package/dist/node/client/react.d.ts.map +1 -0
  279. package/dist/node/client/react.js +11 -0
  280. package/dist/node/client/react.js.map +1 -0
  281. package/dist/node/client/solid.d.ts +303 -0
  282. package/dist/node/client/solid.d.ts.map +1 -0
  283. package/dist/node/client/solid.js +11 -0
  284. package/dist/node/client/solid.js.map +1 -0
  285. package/dist/node/client/svelte.d.ts +295 -0
  286. package/dist/node/client/svelte.d.ts.map +1 -0
  287. package/dist/node/client/svelte.js +11 -0
  288. package/dist/node/client/svelte.js.map +1 -0
  289. package/dist/node/client/vanilla.d.ts +296 -0
  290. package/dist/node/client/vanilla.d.ts.map +1 -0
  291. package/dist/node/client/vanilla.js +11 -0
  292. package/dist/node/client/vanilla.js.map +1 -0
  293. package/dist/node/client/vue.d.ts +295 -0
  294. package/dist/node/client/vue.d.ts.map +1 -0
  295. package/dist/node/client/vue.js +11 -0
  296. package/dist/node/client/vue.js.map +1 -0
  297. package/dist/node/config.d.ts +41 -0
  298. package/dist/node/config.d.ts.map +1 -0
  299. package/dist/node/config.js +26 -0
  300. package/dist/node/config.js.map +1 -0
  301. package/dist/node/definition.d.ts +829 -0
  302. package/dist/node/definition.d.ts.map +1 -0
  303. package/dist/node/definition.js +59 -0
  304. package/dist/node/definition.js.map +1 -0
  305. package/dist/node/index.d.ts +1246 -0
  306. package/dist/node/index.d.ts.map +1 -0
  307. package/dist/node/index.js +19 -0
  308. package/dist/node/index.js.map +1 -0
  309. package/dist/node/keys.d.ts +12 -0
  310. package/dist/node/keys.d.ts.map +1 -0
  311. package/dist/node/keys.js +63 -0
  312. package/dist/node/keys.js.map +1 -0
  313. package/dist/node/routes/files.js +450 -0
  314. package/dist/node/routes/files.js.map +1 -0
  315. package/dist/node/routes/index.d.ts +2023 -0
  316. package/dist/node/routes/index.d.ts.map +1 -0
  317. package/dist/node/routes/index.js +9 -0
  318. package/dist/node/routes/index.js.map +1 -0
  319. package/dist/node/routes/shared.js +66 -0
  320. package/dist/node/routes/shared.js.map +1 -0
  321. package/dist/node/routes/uploads.js +454 -0
  322. package/dist/node/routes/uploads.js.map +1 -0
  323. package/dist/node/schema.d.ts +14 -0
  324. package/dist/node/schema.d.ts.map +1 -0
  325. package/dist/node/schema.js +30 -0
  326. package/dist/node/schema.js.map +1 -0
  327. package/dist/node/services/files.d.ts +20 -0
  328. package/dist/node/services/files.d.ts.map +1 -0
  329. package/dist/node/services/files.js +93 -0
  330. package/dist/node/services/files.js.map +1 -0
  331. package/dist/node/services/helpers.js +36 -0
  332. package/dist/node/services/helpers.js.map +1 -0
  333. package/dist/node/services/index.js +4 -0
  334. package/dist/node/services/uploads.d.ts +50 -0
  335. package/dist/node/services/uploads.d.ts.map +1 -0
  336. package/dist/node/services/uploads.js +358 -0
  337. package/dist/node/services/uploads.js.map +1 -0
  338. package/dist/node/storage/fs.d.ts +16 -0
  339. package/dist/node/storage/fs.d.ts.map +1 -0
  340. package/dist/node/storage/fs.js +94 -0
  341. package/dist/node/storage/fs.js.map +1 -0
  342. package/dist/node/storage/r2.d.ts +103 -0
  343. package/dist/node/storage/r2.d.ts.map +1 -0
  344. package/dist/node/storage/r2.js +23 -0
  345. package/dist/node/storage/r2.js.map +1 -0
  346. package/dist/node/storage/s3.d.ts +44 -0
  347. package/dist/node/storage/s3.d.ts.map +1 -0
  348. package/dist/node/storage/s3.js +398 -0
  349. package/dist/node/storage/s3.js.map +1 -0
  350. package/dist/node/storage/types.d.ts +118 -0
  351. package/dist/node/storage/types.d.ts.map +1 -0
  352. package/dist/node/types.d.ts +32 -0
  353. package/dist/node/types.d.ts.map +1 -0
  354. package/dist/tsconfig.tsbuildinfo +1 -0
  355. package/package.json +105 -0
@@ -0,0 +1,354 @@
1
+ import { startTask } from "../../../../../nanostores@1.1.0/node_modules/nanostores/task/index.js";
2
+ import { atom } from "../../../../../nanostores@1.1.0/node_modules/nanostores/atom/index.js";
3
+ import { onStart, onStop } from "../../../../../nanostores@1.1.0/node_modules/nanostores/lifecycle/index.js";
4
+ import { batched } from "../../../../../nanostores@1.1.0/node_modules/nanostores/computed/index.js";
5
+ import { map } from "../../../../../nanostores@1.1.0/node_modules/nanostores/map/index.js";
6
+ import { createNanoEvents } from "../../../../../nanoevents@9.1.0/node_modules/nanoevents/index.js";
7
+
8
+ //#region ../../node_modules/.pnpm/@nanostores+query@0.3.4_nanostores@1.1.0/node_modules/@nanostores/query/dist/nanoquery.js
9
+ function defaultOnErrorRetry({ retryCount }) {
10
+ return ~~((Math.random() + .5) * (1 << (retryCount < 8 ? retryCount : 8))) * 2e3;
11
+ }
12
+ const nanoqueryFactory = ([isAppVisible, visibilityChangeSubscribe, reconnectChangeSubscribe]) => {
13
+ const nanoquery$1 = ({ cache = /* @__PURE__ */ new Map(), fetcher: globalFetcher, ...globalSettings } = {}) => {
14
+ const events = createNanoEvents();
15
+ let focus = true;
16
+ visibilityChangeSubscribe(() => {
17
+ focus = isAppVisible();
18
+ focus && events.emit(FOCUS);
19
+ });
20
+ reconnectChangeSubscribe(() => events.emit(RECONNECT));
21
+ const _revalidateOnInterval = /* @__PURE__ */ new Map(), _errorInvalidateTimeouts = /* @__PURE__ */ new Map(), _runningFetches = /* @__PURE__ */ new Map();
22
+ let rewrittenSettings = {};
23
+ const getCachedValueByKey = (key) => {
24
+ const fromCache = cache.get(key);
25
+ if (!fromCache) return [];
26
+ return (fromCache.expires || 0) > getNow() ? [fromCache.data, fromCache.error] : [];
27
+ };
28
+ const runFetcher = async ([key, keyParts], store, settings) => {
29
+ if (!focus) return;
30
+ const set = (v) => {
31
+ if (store.key === key) {
32
+ store.set(v);
33
+ events.emit(SET_CACHE, key, v, true);
34
+ }
35
+ };
36
+ const setAsLoading = (prev) => {
37
+ set({
38
+ ...prev === void 0 ? {} : { data: prev },
39
+ ...loading,
40
+ promise: _runningFetches.get(key)
41
+ });
42
+ };
43
+ let { dedupeTime = 4e3, cacheLifetime = Infinity, fetcher, onErrorRetry = defaultOnErrorRetry } = {
44
+ ...settings,
45
+ ...rewrittenSettings
46
+ };
47
+ if (cacheLifetime < dedupeTime) cacheLifetime = dedupeTime;
48
+ const now = getNow();
49
+ if (_runningFetches.has(key)) {
50
+ if (!store.value.loading) setAsLoading(getCachedValueByKey(key)[0]);
51
+ return;
52
+ }
53
+ let cachedValue, cachedError;
54
+ const fromCache = cache.get(key);
55
+ if (fromCache?.data !== void 0 || fromCache?.error) {
56
+ [cachedValue, cachedError] = getCachedValueByKey(key);
57
+ if ((fromCache.created || 0) + dedupeTime > now) {
58
+ if (store.value.data != cachedValue || store.value.error != cachedError) set({
59
+ ...notLoading,
60
+ data: cachedValue,
61
+ error: cachedError
62
+ });
63
+ return;
64
+ }
65
+ }
66
+ const finishTask = startTask();
67
+ try {
68
+ clearTimeout(_errorInvalidateTimeouts.get(key));
69
+ const promise = fetcher(...keyParts);
70
+ _runningFetches.set(key, promise);
71
+ setAsLoading(cachedValue);
72
+ const res = await promise;
73
+ cache.set(key, {
74
+ data: res,
75
+ created: getNow(),
76
+ expires: getNow() + cacheLifetime
77
+ });
78
+ set({
79
+ data: res,
80
+ ...notLoading
81
+ });
82
+ } catch (error) {
83
+ settings.onError?.(error);
84
+ const retryCount = (cache.get(key)?.retryCount || 0) + 1;
85
+ cache.set(key, {
86
+ error,
87
+ created: getNow(),
88
+ expires: getNow() + cacheLifetime,
89
+ retryCount
90
+ });
91
+ if (onErrorRetry) {
92
+ const timer = onErrorRetry({
93
+ error,
94
+ key,
95
+ retryCount
96
+ });
97
+ if (timer) _errorInvalidateTimeouts.set(key, setTimeout(() => {
98
+ invalidateKeys(key);
99
+ cache.set(key, { retryCount });
100
+ }, timer));
101
+ }
102
+ set({
103
+ data: store.value.data,
104
+ error,
105
+ ...notLoading
106
+ });
107
+ } finally {
108
+ finishTask();
109
+ _runningFetches.delete(key);
110
+ }
111
+ };
112
+ const createFetcherStore = (keyInput, { fetcher = globalFetcher, ...fetcherSettings } = {}) => {
113
+ if (!fetcher) throw new Error("You need to set up either global fetcher of fetcher in createFetcherStore");
114
+ const fetcherStore = /* @__PURE__ */ map({ ...notLoading }), settings = {
115
+ ...globalSettings,
116
+ ...fetcherSettings,
117
+ fetcher
118
+ };
119
+ fetcherStore._ = fetcherSymbol;
120
+ fetcherStore.invalidate = () => {
121
+ const { key } = fetcherStore;
122
+ if (key) invalidateKeys(key);
123
+ };
124
+ fetcherStore.revalidate = () => {
125
+ const { key } = fetcherStore;
126
+ if (key) revalidateKeys(key);
127
+ };
128
+ fetcherStore.mutate = (data) => {
129
+ const { key } = fetcherStore;
130
+ if (key) mutateCache(key, data);
131
+ };
132
+ fetcherStore.fetch = async () => {
133
+ let resolve;
134
+ const promise = new Promise((r) => resolve = r);
135
+ const unsub = fetcherStore.listen(({ error, data }) => {
136
+ if (error !== void 0) resolve({ error });
137
+ if (data !== void 0) resolve({ data });
138
+ });
139
+ return promise.finally(unsub);
140
+ };
141
+ let keysInternalUnsub, prevKey, prevKeyParts, keyUnsub, keyStore;
142
+ let evtUnsubs = [];
143
+ onStart(fetcherStore, () => {
144
+ const firstRun = !keysInternalUnsub;
145
+ [keyStore, keysInternalUnsub] = getKeyStore(keyInput);
146
+ keyUnsub = keyStore.subscribe((currentKeys) => {
147
+ if (currentKeys) {
148
+ const [newKey, keyParts] = currentKeys;
149
+ fetcherStore.key = newKey;
150
+ runFetcher([newKey, keyParts], fetcherStore, settings);
151
+ prevKey = newKey;
152
+ prevKeyParts = keyParts;
153
+ } else {
154
+ fetcherStore.key = prevKey = prevKeyParts = void 0;
155
+ fetcherStore.set({ ...notLoading });
156
+ }
157
+ });
158
+ const currentKeyValue = keyStore.get();
159
+ if (currentKeyValue) {
160
+ [prevKey, prevKeyParts] = currentKeyValue;
161
+ if (firstRun) handleNewListener();
162
+ }
163
+ const { revalidateInterval = 0, revalidateOnFocus, revalidateOnReconnect } = settings;
164
+ const runRefetcher = () => {
165
+ if (prevKey) runFetcher([prevKey, prevKeyParts], fetcherStore, settings);
166
+ };
167
+ if (revalidateInterval > 0) _revalidateOnInterval.set(keyInput, setInterval(runRefetcher, revalidateInterval));
168
+ if (revalidateOnFocus) evtUnsubs.push(events.on(FOCUS, runRefetcher));
169
+ if (revalidateOnReconnect) evtUnsubs.push(events.on(RECONNECT, runRefetcher));
170
+ const cacheKeyChangeHandler = (keySelector) => {
171
+ if (prevKey && testKeyAgainstSelector(prevKey, keySelector)) runFetcher([prevKey, prevKeyParts], fetcherStore, settings);
172
+ };
173
+ evtUnsubs.push(events.on(INVALIDATE_KEYS, cacheKeyChangeHandler), events.on(REVALIDATE_KEYS, cacheKeyChangeHandler), events.on(SET_CACHE, (keySelector, data, full) => {
174
+ if (prevKey && testKeyAgainstSelector(prevKey, keySelector) && fetcherStore.value !== data && fetcherStore.value.data !== data) fetcherStore.set(full ? data : {
175
+ data,
176
+ ...notLoading
177
+ });
178
+ }));
179
+ });
180
+ const handleNewListener = () => {
181
+ if (prevKey && prevKeyParts) runFetcher([prevKey, prevKeyParts], fetcherStore, settings);
182
+ };
183
+ const originListen = fetcherStore.listen;
184
+ fetcherStore.listen = (listener) => {
185
+ const unsub = originListen(listener);
186
+ listener(fetcherStore.value);
187
+ handleNewListener();
188
+ return unsub;
189
+ };
190
+ onStop(fetcherStore, () => {
191
+ fetcherStore.value = { ...notLoading };
192
+ keysInternalUnsub?.();
193
+ evtUnsubs.forEach((fn) => fn());
194
+ evtUnsubs = [];
195
+ keyUnsub?.();
196
+ clearInterval(_revalidateOnInterval.get(keyInput));
197
+ });
198
+ return fetcherStore;
199
+ };
200
+ const iterOverCache = (keySelector, cb) => {
201
+ for (const key of cache.keys()) if (testKeyAgainstSelector(key, keySelector)) cb(key);
202
+ };
203
+ const invalidateKeys = (keySelector) => {
204
+ iterOverCache(keySelector, (key) => {
205
+ cache.delete(key);
206
+ });
207
+ events.emit(INVALIDATE_KEYS, keySelector);
208
+ };
209
+ const revalidateKeys = (keySelector) => {
210
+ iterOverCache(keySelector, (key) => {
211
+ const cached = cache.get(key);
212
+ if (cached) cache.set(key, {
213
+ ...cached,
214
+ created: -Infinity
215
+ });
216
+ });
217
+ events.emit(REVALIDATE_KEYS, keySelector);
218
+ };
219
+ const mutateCache = (keySelector, data) => {
220
+ iterOverCache(keySelector, (key) => {
221
+ if (data === void 0) cache.delete(key);
222
+ else cache.set(key, {
223
+ data,
224
+ created: getNow(),
225
+ expires: getNow() + (globalSettings.cacheLifetime ?? 8e3)
226
+ });
227
+ });
228
+ events.emit(SET_CACHE, keySelector, data);
229
+ };
230
+ function createMutatorStore(mutator, opts) {
231
+ const { throttleCalls, onError } = opts ?? {
232
+ throttleCalls: true,
233
+ onError: globalSettings?.onError
234
+ };
235
+ const mutate = async (data) => {
236
+ if (throttleCalls && store.value?.loading) return;
237
+ const newMutator = rewrittenSettings.fetcher ?? mutator;
238
+ const keysToInvalidate = [], keysToRevalidate = [];
239
+ const safeKeySet = (k, v) => {
240
+ if (store.lc) store.setKey(k, v);
241
+ };
242
+ try {
243
+ store.set({
244
+ error: void 0,
245
+ data: void 0,
246
+ mutate,
247
+ ...loading
248
+ });
249
+ const result = await newMutator({
250
+ data,
251
+ invalidate: (key) => {
252
+ keysToInvalidate.push(key);
253
+ },
254
+ revalidate: (key) => {
255
+ keysToRevalidate.push(key);
256
+ },
257
+ getCacheUpdater: (key, shouldRevalidate = true) => [(newVal) => {
258
+ mutateCache(key, newVal);
259
+ if (shouldRevalidate) keysToRevalidate.push(key);
260
+ }, cache.get(key)?.data]
261
+ });
262
+ safeKeySet("data", result);
263
+ return result;
264
+ } catch (error) {
265
+ onError?.(error);
266
+ safeKeySet("error", error);
267
+ store.setKey("error", error);
268
+ } finally {
269
+ safeKeySet("loading", false);
270
+ keysToInvalidate.forEach(invalidateKeys);
271
+ keysToRevalidate.forEach(revalidateKeys);
272
+ }
273
+ };
274
+ const store = /* @__PURE__ */ map({
275
+ mutate,
276
+ ...notLoading
277
+ });
278
+ onStop(store, () => store.set({
279
+ mutate,
280
+ ...notLoading
281
+ }));
282
+ store.mutate = mutate;
283
+ return store;
284
+ }
285
+ const __unsafeOverruleSettings = (data) => {
286
+ console.warn(`You should only use __unsafeOverruleSettings in test environment`);
287
+ rewrittenSettings = data;
288
+ };
289
+ return [
290
+ createFetcherStore,
291
+ createMutatorStore,
292
+ {
293
+ __unsafeOverruleSettings,
294
+ invalidateKeys,
295
+ revalidateKeys,
296
+ mutateCache
297
+ }
298
+ ];
299
+ };
300
+ function isSomeKey(key) {
301
+ return typeof key === "string" || typeof key === "number" || key === true;
302
+ }
303
+ const getKeyStore = (keys) => {
304
+ if (isSomeKey(keys)) return [/* @__PURE__ */ atom(["" + keys, [keys]]), () => {}];
305
+ const keyParts = [];
306
+ const $key = /* @__PURE__ */ atom(null);
307
+ const keysAsStoresToIndexes = /* @__PURE__ */ new Map();
308
+ const setKeyStoreValue = () => {
309
+ if (keyParts.some((v) => v === null || v === void 0 || v === false)) $key.set(null);
310
+ else $key.set([keyParts.join(""), keyParts]);
311
+ };
312
+ for (let i = 0; i < keys.length; i++) {
313
+ const keyOrStore = keys[i];
314
+ if (isSomeKey(keyOrStore)) keyParts.push(keyOrStore);
315
+ else {
316
+ keyParts.push(null);
317
+ keysAsStoresToIndexes.set(keyOrStore, i);
318
+ }
319
+ }
320
+ const storesAsArray = [...keysAsStoresToIndexes.keys()];
321
+ const $storeKeys = /* @__PURE__ */ batched(storesAsArray, (...storeValues) => {
322
+ for (let i = 0; i < storeValues.length; i++) {
323
+ const store = storesAsArray[i], partIndex = keysAsStoresToIndexes.get(store);
324
+ keyParts[partIndex] = store._ === fetcherSymbol ? store.value && "data" in store.value ? store.key : null : storeValues[i];
325
+ }
326
+ setKeyStoreValue();
327
+ });
328
+ setKeyStoreValue();
329
+ return [$key, $storeKeys.subscribe(noop)];
330
+ };
331
+ function noop() {}
332
+ const FOCUS = 1, RECONNECT = 2, INVALIDATE_KEYS = 3, REVALIDATE_KEYS = 4, SET_CACHE = 5;
333
+ const testKeyAgainstSelector = (key, selector) => {
334
+ if (Array.isArray(selector)) return selector.includes(key);
335
+ else if (typeof selector === "function") return selector(key);
336
+ else return key === selector;
337
+ };
338
+ const getNow = () => (/* @__PURE__ */ new Date()).getTime();
339
+ const fetcherSymbol = Symbol();
340
+ const loading = { loading: true }, notLoading = { loading: false };
341
+ return nanoquery$1;
342
+ };
343
+ const subscribe = (name, fn) => {
344
+ if (!(typeof window === "undefined")) addEventListener(name, fn);
345
+ };
346
+ const nanoquery = nanoqueryFactory([
347
+ () => !document.hidden,
348
+ (cb) => subscribe("visibilitychange", cb),
349
+ (cb) => subscribe("online", cb)
350
+ ]);
351
+
352
+ //#endregion
353
+ export { nanoquery };
354
+ //# sourceMappingURL=nanoquery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nanoquery.js","names":["map","onStart","onStop","atom","batched","startTask","createNanoEvents","defaultOnErrorRetry","retryCount","Math","random","nanoqueryFactory","isAppVisible","visibilityChangeSubscribe","reconnectChangeSubscribe","nanoquery","cache","Map","fetcher","globalFetcher","globalSettings","events","focus","emit","FOCUS","RECONNECT","_revalidateOnInterval","_errorInvalidateTimeouts","_runningFetches","rewrittenSettings","getCachedValueByKey","key","fromCache","get","cacheHit","expires","getNow","data","error","runFetcher","keyParts","store","settings","set","v","SET_CACHE","setAsLoading","prev","toSet","loading","promise","dedupeTime","cacheLifetime","Infinity","onErrorRetry","now","has","value","cachedValue","cachedError","created","notLoading","finishTask","clearTimeout","res","onError","timer","setTimeout","invalidateKeys","delete","createFetcherStore","keyInput","fetcherSettings","process","env","NODE_ENV","Error","fetcherStore","_","fetcherSymbol","invalidate","revalidate","revalidateKeys","mutate","mutateCache","fetch","resolve","Promise","r","unsub","listen","finally","keysInternalUnsub","prevKey","prevKeyParts","keyUnsub","keyStore","evtUnsubs","firstRun","getKeyStore","subscribe","currentKeys","newKey","currentKeyValue","handleNewListener","revalidateInterval","revalidateOnFocus","revalidateOnReconnect","runRefetcher","setInterval","push","on","cacheKeyChangeHandler","keySelector","testKeyAgainstSelector","INVALIDATE_KEYS","REVALIDATE_KEYS","full","originListen","listener","forEach","fn","clearInterval","iterOverCache","cb","keys","cached","createMutatorStore","mutator","opts","throttleCalls","newMutator","keysToInvalidate","keysToRevalidate","safeKeySet","k","lc","setKey","result","getCacheUpdater","shouldRevalidate","newVal","__unsafeOverruleSettings","console","warn","isSomeKey","$key","keysAsStoresToIndexes","setKeyStoreValue","some","join","i","length","keyOrStore","storesAsArray","$storeKeys","storeValues","partIndex","noop","selector","Array","isArray","includes","Date","getTime","Symbol","name","isServer","window","addEventListener","browserCompat","document","hidden"],"sources":["../../../../../../../../../../../../node_modules/.pnpm/@nanostores+query@0.3.4_nanostores@1.1.0/node_modules/@nanostores/query/dist/nanoquery.js"],"sourcesContent":["import { map, onStart, onStop, atom, batched, startTask } from 'nanostores';\nimport { createNanoEvents } from 'nanoevents';\n\nfunction defaultOnErrorRetry({ retryCount }) {\n return ~~((Math.random() + 0.5) * (1 << (retryCount < 8 ? retryCount : 8))) * 2e3;\n}\nconst nanoqueryFactory = ([\n isAppVisible,\n visibilityChangeSubscribe,\n reconnectChangeSubscribe\n]) => {\n const nanoquery = ({\n cache = /* @__PURE__ */ new Map(),\n fetcher: globalFetcher,\n ...globalSettings\n } = {}) => {\n const events = createNanoEvents();\n let focus = true;\n visibilityChangeSubscribe(() => {\n focus = isAppVisible();\n focus && events.emit(FOCUS);\n });\n reconnectChangeSubscribe(() => events.emit(RECONNECT));\n const _revalidateOnInterval = /* @__PURE__ */ new Map(), _errorInvalidateTimeouts = /* @__PURE__ */ new Map(), _runningFetches = /* @__PURE__ */ new Map();\n let rewrittenSettings = {};\n const getCachedValueByKey = (key) => {\n const fromCache = cache.get(key);\n if (!fromCache)\n return [];\n const cacheHit = (fromCache.expires || 0) > getNow();\n return cacheHit ? [fromCache.data, fromCache.error] : [];\n };\n const runFetcher = async ([key, keyParts], store, settings) => {\n if (!focus)\n return;\n const set = (v) => {\n if (store.key === key) {\n store.set(v);\n events.emit(SET_CACHE, key, v, true);\n }\n };\n const setAsLoading = (prev) => {\n const toSet = prev === void 0 ? {} : { data: prev };\n set({\n ...toSet,\n ...loading,\n promise: _runningFetches.get(key)\n });\n };\n let {\n dedupeTime = 4e3,\n cacheLifetime = Infinity,\n fetcher,\n onErrorRetry = defaultOnErrorRetry\n } = {\n ...settings,\n ...rewrittenSettings\n };\n if (cacheLifetime < dedupeTime)\n cacheLifetime = dedupeTime;\n const now = getNow();\n if (_runningFetches.has(key)) {\n if (!store.value.loading)\n setAsLoading(getCachedValueByKey(key)[0]);\n return;\n }\n let cachedValue, cachedError;\n const fromCache = cache.get(key);\n if (fromCache?.data !== void 0 || fromCache?.error) {\n [cachedValue, cachedError] = getCachedValueByKey(key);\n if ((fromCache.created || 0) + dedupeTime > now) {\n if (store.value.data != cachedValue || store.value.error != cachedError) {\n set({ ...notLoading, data: cachedValue, error: cachedError });\n }\n return;\n }\n }\n const finishTask = startTask();\n try {\n clearTimeout(_errorInvalidateTimeouts.get(key));\n const promise = fetcher(...keyParts);\n _runningFetches.set(key, promise);\n setAsLoading(cachedValue);\n const res = await promise;\n cache.set(key, {\n data: res,\n created: getNow(),\n expires: getNow() + cacheLifetime\n });\n set({ data: res, ...notLoading });\n } catch (error) {\n settings.onError?.(error);\n const retryCount = (cache.get(key)?.retryCount || 0) + 1;\n cache.set(key, {\n error,\n created: getNow(),\n expires: getNow() + cacheLifetime,\n retryCount\n });\n if (onErrorRetry) {\n const timer = onErrorRetry({\n error,\n key,\n retryCount\n });\n if (timer)\n _errorInvalidateTimeouts.set(\n key,\n setTimeout(() => {\n invalidateKeys(key);\n cache.set(key, { retryCount });\n }, timer)\n );\n }\n set({ data: store.value.data, error, ...notLoading });\n } finally {\n finishTask();\n _runningFetches.delete(key);\n }\n };\n const createFetcherStore = (keyInput, {\n fetcher = globalFetcher,\n ...fetcherSettings\n } = {}) => {\n if (process.env.NODE_ENV !== \"production\" && !fetcher) {\n throw new Error(\n \"You need to set up either global fetcher of fetcher in createFetcherStore\"\n );\n }\n const fetcherStore = map({\n ...notLoading\n }), settings = { ...globalSettings, ...fetcherSettings, fetcher };\n fetcherStore._ = fetcherSymbol;\n fetcherStore.invalidate = () => {\n const { key } = fetcherStore;\n if (key) {\n invalidateKeys(key);\n }\n };\n fetcherStore.revalidate = () => {\n const { key } = fetcherStore;\n if (key) {\n revalidateKeys(key);\n }\n };\n fetcherStore.mutate = (data) => {\n const { key } = fetcherStore;\n if (key) {\n mutateCache(key, data);\n }\n };\n fetcherStore.fetch = async () => {\n let resolve;\n const promise = new Promise((r) => resolve = r);\n const unsub = fetcherStore.listen(({ error, data }) => {\n if (error !== void 0)\n resolve({ error });\n if (data !== void 0)\n resolve({ data });\n });\n return promise.finally(unsub);\n };\n let keysInternalUnsub, prevKey, prevKeyParts, keyUnsub, keyStore;\n let evtUnsubs = [];\n onStart(fetcherStore, () => {\n const firstRun = !keysInternalUnsub;\n [keyStore, keysInternalUnsub] = getKeyStore(keyInput);\n keyUnsub = keyStore.subscribe((currentKeys) => {\n if (currentKeys) {\n const [newKey, keyParts] = currentKeys;\n fetcherStore.key = newKey;\n runFetcher([newKey, keyParts], fetcherStore, settings);\n prevKey = newKey;\n prevKeyParts = keyParts;\n } else {\n fetcherStore.key = prevKey = prevKeyParts = void 0;\n fetcherStore.set({ ...notLoading });\n }\n });\n const currentKeyValue = keyStore.get();\n if (currentKeyValue) {\n [prevKey, prevKeyParts] = currentKeyValue;\n if (firstRun)\n handleNewListener();\n }\n const {\n revalidateInterval = 0,\n revalidateOnFocus,\n revalidateOnReconnect\n } = settings;\n const runRefetcher = () => {\n if (prevKey)\n runFetcher([prevKey, prevKeyParts], fetcherStore, settings);\n };\n if (revalidateInterval > 0) {\n _revalidateOnInterval.set(\n keyInput,\n setInterval(runRefetcher, revalidateInterval)\n );\n }\n if (revalidateOnFocus)\n evtUnsubs.push(events.on(FOCUS, runRefetcher));\n if (revalidateOnReconnect)\n evtUnsubs.push(events.on(RECONNECT, runRefetcher));\n const cacheKeyChangeHandler = (keySelector) => {\n if (prevKey && testKeyAgainstSelector(prevKey, keySelector)) {\n runFetcher([prevKey, prevKeyParts], fetcherStore, settings);\n }\n };\n evtUnsubs.push(\n events.on(INVALIDATE_KEYS, cacheKeyChangeHandler),\n events.on(REVALIDATE_KEYS, cacheKeyChangeHandler),\n events.on(SET_CACHE, (keySelector, data, full) => {\n if (prevKey && testKeyAgainstSelector(prevKey, keySelector) && fetcherStore.value !== data && fetcherStore.value.data !== data) {\n fetcherStore.set(\n full ? data : { data, ...notLoading }\n );\n }\n })\n );\n });\n const handleNewListener = () => {\n if (prevKey && prevKeyParts)\n runFetcher([prevKey, prevKeyParts], fetcherStore, settings);\n };\n const originListen = fetcherStore.listen;\n fetcherStore.listen = (listener) => {\n const unsub = originListen(listener);\n listener(fetcherStore.value);\n handleNewListener();\n return unsub;\n };\n onStop(fetcherStore, () => {\n fetcherStore.value = { ...notLoading };\n keysInternalUnsub?.();\n evtUnsubs.forEach((fn) => fn());\n evtUnsubs = [];\n keyUnsub?.();\n clearInterval(_revalidateOnInterval.get(keyInput));\n });\n return fetcherStore;\n };\n const iterOverCache = (keySelector, cb) => {\n for (const key of cache.keys()) {\n if (testKeyAgainstSelector(key, keySelector))\n cb(key);\n }\n };\n const invalidateKeys = (keySelector) => {\n iterOverCache(keySelector, (key) => {\n cache.delete(key);\n });\n events.emit(INVALIDATE_KEYS, keySelector);\n };\n const revalidateKeys = (keySelector) => {\n iterOverCache(keySelector, (key) => {\n const cached = cache.get(key);\n if (cached) {\n cache.set(key, { ...cached, created: -Infinity });\n }\n });\n events.emit(REVALIDATE_KEYS, keySelector);\n };\n const mutateCache = (keySelector, data) => {\n iterOverCache(keySelector, (key) => {\n if (data === void 0)\n cache.delete(key);\n else {\n cache.set(key, {\n data,\n created: getNow(),\n expires: getNow() + (globalSettings.cacheLifetime ?? 8e3)\n });\n }\n });\n events.emit(SET_CACHE, keySelector, data);\n };\n function createMutatorStore(mutator, opts) {\n const { throttleCalls, onError } = opts ?? {\n throttleCalls: true,\n onError: globalSettings?.onError\n };\n const mutate = async (data) => {\n if (throttleCalls && store.value?.loading)\n return;\n const newMutator = rewrittenSettings.fetcher ?? mutator;\n const keysToInvalidate = [], keysToRevalidate = [];\n const safeKeySet = (k, v) => {\n if (store.lc) {\n store.setKey(k, v);\n }\n };\n try {\n store.set({\n error: void 0,\n data: void 0,\n mutate,\n ...loading\n });\n const result = await newMutator({\n data,\n invalidate: (key) => {\n keysToInvalidate.push(key);\n },\n revalidate: (key) => {\n keysToRevalidate.push(key);\n },\n getCacheUpdater: (key, shouldRevalidate = true) => [\n (newVal) => {\n mutateCache(key, newVal);\n if (shouldRevalidate) {\n keysToRevalidate.push(key);\n }\n },\n cache.get(key)?.data\n ]\n });\n safeKeySet(\"data\", result);\n return result;\n } catch (error) {\n onError?.(error);\n safeKeySet(\"error\", error);\n store.setKey(\"error\", error);\n } finally {\n safeKeySet(\"loading\", false);\n keysToInvalidate.forEach(invalidateKeys);\n keysToRevalidate.forEach(revalidateKeys);\n }\n };\n const store = map({\n mutate,\n ...notLoading\n });\n onStop(\n store,\n () => store.set({ mutate, ...notLoading })\n );\n store.mutate = mutate;\n return store;\n }\n const __unsafeOverruleSettings = (data) => {\n if (process.env.NODE_ENV !== \"test\") {\n console.warn(\n `You should only use __unsafeOverruleSettings in test environment`\n );\n }\n rewrittenSettings = data;\n };\n return [\n createFetcherStore,\n createMutatorStore,\n { __unsafeOverruleSettings, invalidateKeys, revalidateKeys, mutateCache }\n ];\n };\n function isSomeKey(key) {\n return typeof key === \"string\" || typeof key === \"number\" || key === true;\n }\n const getKeyStore = (keys) => {\n if (isSomeKey(keys))\n return [\n atom([\"\" + keys, [keys]]),\n () => {\n }\n ];\n const keyParts = [];\n const $key = atom(null);\n const keysAsStoresToIndexes = /* @__PURE__ */ new Map();\n const setKeyStoreValue = () => {\n if (keyParts.some((v) => v === null || v === void 0 || v === false)) {\n $key.set(null);\n } else {\n $key.set([keyParts.join(\"\"), keyParts]);\n }\n };\n for (let i = 0; i < keys.length; i++) {\n const keyOrStore = keys[i];\n if (isSomeKey(keyOrStore)) {\n keyParts.push(keyOrStore);\n } else {\n keyParts.push(null);\n keysAsStoresToIndexes.set(keyOrStore, i);\n }\n }\n const storesAsArray = [...keysAsStoresToIndexes.keys()];\n const $storeKeys = batched(storesAsArray, (...storeValues) => {\n for (let i = 0; i < storeValues.length; i++) {\n const store = storesAsArray[i], partIndex = keysAsStoresToIndexes.get(store);\n keyParts[partIndex] = store._ === fetcherSymbol ? store.value && \"data\" in store.value ? store.key : null : storeValues[i];\n }\n setKeyStoreValue();\n });\n setKeyStoreValue();\n return [$key, $storeKeys.subscribe(noop)];\n };\n function noop() {\n }\n const FOCUS = 1, RECONNECT = 2, INVALIDATE_KEYS = 3, REVALIDATE_KEYS = 4, SET_CACHE = 5;\n const testKeyAgainstSelector = (key, selector) => {\n if (Array.isArray(selector))\n return selector.includes(key);\n else if (typeof selector === \"function\")\n return selector(key);\n else\n return key === selector;\n };\n const getNow = () => (/* @__PURE__ */ new Date()).getTime();\n const fetcherSymbol = Symbol();\n const loading = { loading: true }, notLoading = { loading: false };\n return nanoquery;\n};\n\nconst subscribe = (name, fn) => {\n const isServer = typeof window === \"undefined\";\n if (!isServer) {\n addEventListener(name, fn);\n }\n};\nconst browserCompat = [\n () => !document.hidden,\n (cb) => subscribe(\"visibilitychange\", cb),\n (cb) => subscribe(\"online\", cb)\n];\n\nconst nanoquery = nanoqueryFactory(browserCompat);\n\nexport { nanoquery, defaultOnErrorRetry as onErrorRetry };\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { createStore, reconcile } from "solid-js/store";
2
+ import { onCleanup } from "solid-js";
3
+
4
+ //#region ../../node_modules/.pnpm/@nanostores+solid@1.1.1_nanostores@1.1.0_solid-js@1.9.10/node_modules/@nanostores/solid/dist/index.js
5
+ function m(e, o = {}) {
6
+ let t = e.listen(() => {}), [r, s] = createStore({ value: e.get() }), n = e.subscribe((i) => {
7
+ s("value", reconcile(i, o));
8
+ });
9
+ return onCleanup(() => n()), t(), () => r.value;
10
+ }
11
+
12
+ //#endregion
13
+ export { m };
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["createStore","c","reconcile","u","onCleanup","S","m","e","o","t","listen","r","s","value","get","n","subscribe","i","useStore"],"sources":["../../../../../../../../../../../../node_modules/.pnpm/@nanostores+solid@1.1.1_nanostores@1.1.0_solid-js@1.9.10/node_modules/@nanostores/solid/dist/index.js"],"sourcesContent":["import{createStore as c,reconcile as u}from\"solid-js/store\";import{onCleanup as S}from\"solid-js\";function m(e,o={}){let t=e.listen(()=>{}),[r,s]=c({value:e.get()}),n=e.subscribe(i=>{s(\"value\",u(i,o))});return S(()=>n()),t(),()=>r.value}export{m as useStore};\n"],"x_google_ignoreList":[0],"mappings":";;;;AAAiG,SAASM,EAAEC,GAAEC,IAAE,EAAE,EAAC;CAAC,IAAIC,IAAEF,EAAEG,aAAW,GAAG,EAAC,CAACC,GAAEC,KAAGX,YAAE,EAACY,OAAMN,EAAEO,KAAI,EAAE,CAAC,EAACC,IAAER,EAAES,WAAUC,MAAG;AAACL,IAAE,SAAQT,UAAEc,GAAET,EAAE,CAAC;GAAE;AAAC,QAAOH,gBAAMU,GAAG,CAAC,EAACN,GAAG,QAAKE,EAAEE"}
@@ -0,0 +1,17 @@
1
+ //#region ../../node_modules/.pnpm/nanoevents@9.1.0/node_modules/nanoevents/index.js
2
+ let createNanoEvents = () => ({
3
+ emit(event, ...args) {
4
+ for (let callbacks = this.events[event] || [], i = 0, length = callbacks.length; i < length; i++) callbacks[i](...args);
5
+ },
6
+ events: {},
7
+ on(event, cb) {
8
+ (this.events[event] ||= []).push(cb);
9
+ return () => {
10
+ this.events[event] = this.events[event]?.filter((i) => cb !== i);
11
+ };
12
+ }
13
+ });
14
+
15
+ //#endregion
16
+ export { createNanoEvents };
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["createNanoEvents","emit","event","args","callbacks","events","i","length","on","cb","push","filter"],"sources":["../../../../../../../../../../node_modules/.pnpm/nanoevents@9.1.0/node_modules/nanoevents/index.js"],"sourcesContent":["export let createNanoEvents = () => ({\n emit(event, ...args) {\n for (\n let callbacks = this.events[event] || [],\n i = 0,\n length = callbacks.length;\n i < length;\n i++\n ) {\n callbacks[i](...args)\n }\n },\n events: {},\n on(event, cb) {\n ;(this.events[event] ||= []).push(cb)\n return () => {\n this.events[event] = this.events[event]?.filter(i => cb !== i)\n }\n }\n})\n"],"x_google_ignoreList":[0],"mappings":";AAAA,IAAWA,0BAA0B;CACnCC,KAAKC,OAAO,GAAGC,MAAM;AACnB,OACE,IAAIC,YAAY,KAAKC,OAAOH,UAAU,EAAE,EACtCI,IAAI,GACJC,SAASH,UAAUG,QACrBD,IAAIC,QACJD,IAEAF,WAAUE,GAAG,GAAGH,KAAK;;CAGzBE,QAAQ,EAAE;CACVG,GAAGN,OAAOO,IAAI;AACX,GAAC,KAAKJ,OAAOH,WAAW,EAAE,EAAEQ,KAAKD,GAAG;AACrC,eAAa;AACX,QAAKJ,OAAOH,SAAS,KAAKG,OAAOH,QAAQS,QAAOL,MAAKG,OAAOH,EAAE;;;CAGnE"}
@@ -0,0 +1,62 @@
1
+ import { clean } from "../clean-stores/index.js";
2
+
3
+ //#region ../../node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/atom/index.js
4
+ let listenerQueue = [];
5
+ let lqIndex = 0;
6
+ const QUEUE_ITEMS_PER_LISTENER = 4;
7
+ let epoch = 0;
8
+ const atom = /* @__NO_SIDE_EFFECTS__ */ (initialValue) => {
9
+ let listeners = [];
10
+ let $atom = {
11
+ get() {
12
+ if (!$atom.lc) $atom.listen(() => {})();
13
+ return $atom.value;
14
+ },
15
+ lc: 0,
16
+ listen(listener) {
17
+ $atom.lc = listeners.push(listener);
18
+ return () => {
19
+ for (let i = lqIndex + QUEUE_ITEMS_PER_LISTENER; i < listenerQueue.length;) if (listenerQueue[i] === listener) listenerQueue.splice(i, QUEUE_ITEMS_PER_LISTENER);
20
+ else i += QUEUE_ITEMS_PER_LISTENER;
21
+ let index = listeners.indexOf(listener);
22
+ if (~index) {
23
+ listeners.splice(index, 1);
24
+ if (!--$atom.lc) $atom.off();
25
+ }
26
+ };
27
+ },
28
+ notify(oldValue, changedKey) {
29
+ epoch++;
30
+ let runListenerQueue = !listenerQueue.length;
31
+ for (let listener of listeners) listenerQueue.push(listener, $atom.value, oldValue, changedKey);
32
+ if (runListenerQueue) {
33
+ for (lqIndex = 0; lqIndex < listenerQueue.length; lqIndex += QUEUE_ITEMS_PER_LISTENER) listenerQueue[lqIndex](listenerQueue[lqIndex + 1], listenerQueue[lqIndex + 2], listenerQueue[lqIndex + 3]);
34
+ listenerQueue.length = 0;
35
+ }
36
+ },
37
+ off() {},
38
+ set(newValue) {
39
+ let oldValue = $atom.value;
40
+ if (oldValue !== newValue) {
41
+ $atom.value = newValue;
42
+ $atom.notify(oldValue);
43
+ }
44
+ },
45
+ subscribe(listener) {
46
+ let unbind = $atom.listen(listener);
47
+ listener($atom.value);
48
+ return unbind;
49
+ },
50
+ value: initialValue
51
+ };
52
+ $atom[clean] = () => {
53
+ listeners = [];
54
+ $atom.lc = 0;
55
+ $atom.off();
56
+ };
57
+ return $atom;
58
+ };
59
+
60
+ //#endregion
61
+ export { atom, epoch };
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["clean","listenerQueue","lqIndex","QUEUE_ITEMS_PER_LISTENER","epoch","atom","initialValue","listeners","$atom","get","lc","listen","value","listener","push","i","length","splice","index","indexOf","off","notify","oldValue","changedKey","runListenerQueue","set","newValue","subscribe","unbind","process","env","NODE_ENV","readonlyType","store"],"sources":["../../../../../../../../../../../node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/atom/index.js"],"sourcesContent":["import { clean } from '../clean-stores/index.js'\n\nlet listenerQueue = []\nlet lqIndex = 0\nconst QUEUE_ITEMS_PER_LISTENER = 4\nexport let epoch = 0\n\n/* @__NO_SIDE_EFFECTS__ */\nexport const atom = initialValue => {\n let listeners = []\n let $atom = {\n get() {\n if (!$atom.lc) {\n $atom.listen(() => {})()\n }\n return $atom.value\n },\n lc: 0,\n listen(listener) {\n $atom.lc = listeners.push(listener)\n\n return () => {\n for (\n let i = lqIndex + QUEUE_ITEMS_PER_LISTENER;\n i < listenerQueue.length;\n\n ) {\n if (listenerQueue[i] === listener) {\n listenerQueue.splice(i, QUEUE_ITEMS_PER_LISTENER)\n } else {\n i += QUEUE_ITEMS_PER_LISTENER\n }\n }\n\n let index = listeners.indexOf(listener)\n if (~index) {\n listeners.splice(index, 1)\n if (!--$atom.lc) $atom.off()\n }\n }\n },\n notify(oldValue, changedKey) {\n epoch++\n let runListenerQueue = !listenerQueue.length\n for (let listener of listeners) {\n listenerQueue.push(listener, $atom.value, oldValue, changedKey)\n }\n\n if (runListenerQueue) {\n for (\n lqIndex = 0;\n lqIndex < listenerQueue.length;\n lqIndex += QUEUE_ITEMS_PER_LISTENER\n ) {\n listenerQueue[lqIndex](\n listenerQueue[lqIndex + 1],\n listenerQueue[lqIndex + 2],\n listenerQueue[lqIndex + 3]\n )\n }\n listenerQueue.length = 0\n }\n },\n /* It will be called on last listener unsubscribing.\n We will redefine it in onMount and onStop. */\n off() {},\n set(newValue) {\n let oldValue = $atom.value\n if (oldValue !== newValue) {\n $atom.value = newValue\n $atom.notify(oldValue)\n }\n },\n subscribe(listener) {\n let unbind = $atom.listen(listener)\n listener($atom.value)\n return unbind\n },\n value: initialValue\n }\n\n if (process.env.NODE_ENV !== 'production') {\n $atom[clean] = () => {\n listeners = []\n $atom.lc = 0\n $atom.off()\n }\n }\n\n return $atom\n}\n\nexport const readonlyType = store => store\n"],"x_google_ignoreList":[0],"mappings":";;;AAEA,IAAIC,gBAAgB,EAAE;AACtB,IAAIC,UAAU;AACd,MAAMC,2BAA2B;AACjC,IAAWC,QAAQ;AAGnB,MAAaC,mCAAOC,iBAAgB;CAClC,IAAIC,YAAY,EAAE;CAClB,IAAIC,QAAQ;EACVC,MAAM;AACJ,OAAI,CAACD,MAAME,GACTF,OAAMG,aAAa,GAAG,EAAE;AAE1B,UAAOH,MAAMI;;EAEfF,IAAI;EACJC,OAAOE,UAAU;AACfL,SAAME,KAAKH,UAAUO,KAAKD,SAAS;AAEnC,gBAAa;AACX,SACE,IAAIE,IAAIb,UAAUC,0BAClBY,IAAId,cAAce,QAGlB,KAAIf,cAAcc,OAAOF,SACvBZ,eAAcgB,OAAOF,GAAGZ,yBAAyB;QAEjDY,MAAKZ;IAIT,IAAIe,QAAQX,UAAUY,QAAQN,SAAS;AACvC,QAAI,CAACK,OAAO;AACVX,eAAUU,OAAOC,OAAO,EAAE;AAC1B,SAAI,CAAC,EAAEV,MAAME,GAAIF,OAAMY,KAAK;;;;EAIlCC,OAAOC,UAAUC,YAAY;AAC3BnB;GACA,IAAIoB,mBAAmB,CAACvB,cAAce;AACtC,QAAK,IAAIH,YAAYN,UACnBN,eAAca,KAAKD,UAAUL,MAAMI,OAAOU,UAAUC,WAAW;AAGjE,OAAIC,kBAAkB;AACpB,SACEtB,UAAU,GACVA,UAAUD,cAAce,QACxBd,WAAWC,yBAEXF,eAAcC,SACZD,cAAcC,UAAU,IACxBD,cAAcC,UAAU,IACxBD,cAAcC,UAAU,GACzB;AAEHD,kBAAce,SAAS;;;EAK3BI,MAAM;EACNK,IAAIC,UAAU;GACZ,IAAIJ,WAAWd,MAAMI;AACrB,OAAIU,aAAaI,UAAU;AACzBlB,UAAMI,QAAQc;AACdlB,UAAMa,OAAOC,SAAS;;;EAG1BK,UAAUd,UAAU;GAClB,IAAIe,SAASpB,MAAMG,OAAOE,SAAS;AACnCA,YAASL,MAAMI,MAAM;AACrB,UAAOgB;;EAEThB,OAAON;EACR;AAGCE,OAAMR,eAAe;AACnBO,cAAY,EAAE;AACdC,QAAME,KAAK;AACXF,QAAMY,KAAK;;AAIf,QAAOZ"}
@@ -0,0 +1,6 @@
1
+ //#region ../../node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/clean-stores/index.js
2
+ let clean = Symbol("clean");
3
+
4
+ //#endregion
5
+ export { clean };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["cleanTasks","clean","Symbol","cleanStores","stores","process","env","NODE_ENV","Error","$store","mocked"],"sources":["../../../../../../../../../../../node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/clean-stores/index.js"],"sourcesContent":["import { cleanTasks } from '../task/index.js'\n\nexport let clean = Symbol('clean')\n\nexport let cleanStores = (...stores) => {\n if (process.env.NODE_ENV === 'production') {\n throw new Error(\n 'cleanStores() can be used only during development or tests'\n )\n }\n cleanTasks()\n for (let $store of stores) {\n if ($store) {\n if ($store.mocked) delete $store.mocked\n if ($store[clean]) $store[clean]()\n }\n }\n}\n"],"x_google_ignoreList":[0],"mappings":";AAEA,IAAWC,QAAQC,OAAO,QAAQ"}
@@ -0,0 +1,50 @@
1
+ import { atom, epoch } from "../atom/index.js";
2
+ import { onMount } from "../lifecycle/index.js";
3
+
4
+ //#region ../../node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/computed/index.js
5
+ let computedStore = (stores, cb, batched$1) => {
6
+ if (!Array.isArray(stores)) stores = [stores];
7
+ let previousArgs;
8
+ let currentEpoch;
9
+ let set = () => {
10
+ if (currentEpoch === epoch) return;
11
+ currentEpoch = epoch;
12
+ let args = stores.map(($store) => $store.get());
13
+ if (!previousArgs || args.some((arg, i) => arg !== previousArgs[i])) {
14
+ previousArgs = args;
15
+ let value = cb(...args);
16
+ if (value && value.then && value.t) value.then((asyncValue) => {
17
+ if (previousArgs === args) $computed.set(asyncValue);
18
+ });
19
+ else {
20
+ $computed.set(value);
21
+ currentEpoch = epoch;
22
+ }
23
+ }
24
+ };
25
+ let $computed = /* @__PURE__ */ atom(void 0);
26
+ let get = $computed.get;
27
+ $computed.get = () => {
28
+ set();
29
+ return get();
30
+ };
31
+ let timer;
32
+ let run = batched$1 ? () => {
33
+ clearTimeout(timer);
34
+ timer = setTimeout(set);
35
+ } : set;
36
+ onMount($computed, () => {
37
+ let unbinds = stores.map(($store) => $store.listen(run));
38
+ set();
39
+ return () => {
40
+ for (let unbind of unbinds) unbind();
41
+ };
42
+ });
43
+ return $computed;
44
+ };
45
+ const computed = /* @__NO_SIDE_EFFECTS__ */ (stores, fn) => computedStore(stores, fn);
46
+ const batched = /* @__NO_SIDE_EFFECTS__ */ (stores, fn) => computedStore(stores, fn, true);
47
+
48
+ //#endregion
49
+ export { batched, computed };
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["atom","epoch","onMount","computedStore","stores","cb","batched","Array","isArray","previousArgs","currentEpoch","set","args","map","$store","get","some","arg","i","value","then","t","asyncValue","$computed","undefined","timer","run","clearTimeout","setTimeout","unbinds","listen","unbind","computed","fn"],"sources":["../../../../../../../../../../../node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/computed/index.js"],"sourcesContent":["import { atom, epoch } from '../atom/index.js'\nimport { onMount } from '../lifecycle/index.js'\n\nlet computedStore = (stores, cb, batched) => {\n if (!Array.isArray(stores)) stores = [stores]\n\n let previousArgs\n let currentEpoch\n let set = () => {\n if (currentEpoch === epoch) return\n currentEpoch = epoch\n let args = stores.map($store => $store.get())\n if (!previousArgs || args.some((arg, i) => arg !== previousArgs[i])) {\n previousArgs = args\n let value = cb(...args)\n if (value && value.then && value.t) {\n value.then(asyncValue => {\n if (previousArgs === args) {\n // Prevent a stale set\n $computed.set(asyncValue)\n }\n })\n } else {\n $computed.set(value)\n currentEpoch = epoch\n }\n }\n }\n let $computed = atom(undefined)\n let get = $computed.get\n $computed.get = () => {\n set()\n return get()\n }\n\n let timer\n let run = batched\n ? () => {\n clearTimeout(timer)\n timer = setTimeout(set)\n }\n : set\n\n onMount($computed, () => {\n let unbinds = stores.map($store => $store.listen(run))\n set()\n return () => {\n for (let unbind of unbinds) unbind()\n }\n })\n\n return $computed\n}\n\n/* @__NO_SIDE_EFFECTS__ */\nexport const computed = (stores, fn) => computedStore(stores, fn)\n\n/* @__NO_SIDE_EFFECTS__ */\nexport const batched = (stores, fn) => computedStore(stores, fn, true)\n"],"x_google_ignoreList":[0],"mappings":";;;;AAGA,IAAIG,iBAAiBC,QAAQC,IAAIC,cAAY;AAC3C,KAAI,CAACC,MAAMC,QAAQJ,OAAO,CAAEA,UAAS,CAACA,OAAO;CAE7C,IAAIK;CACJ,IAAIC;CACJ,IAAIC,YAAY;AACd,MAAID,iBAAiBT,MAAO;AAC5BS,iBAAeT;EACf,IAAIW,OAAOR,OAAOS,KAAIC,WAAUA,OAAOC,KAAK,CAAC;AAC7C,MAAI,CAACN,gBAAgBG,KAAKI,MAAMC,KAAKC,MAAMD,QAAQR,aAAaS,GAAG,EAAE;AACnET,kBAAeG;GACf,IAAIO,QAAQd,GAAG,GAAGO,KAAK;AACvB,OAAIO,SAASA,MAAMC,QAAQD,MAAME,EAC/BF,OAAMC,MAAKE,eAAc;AACvB,QAAIb,iBAAiBG,KAEnBW,WAAUZ,IAAIW,WAAW;KAE3B;QACG;AACLC,cAAUZ,IAAIQ,MAAM;AACpBT,mBAAeT;;;;CAIrB,IAAIsB,YAAYvB,qBAAKwB,OAAU;CAC/B,IAAIT,MAAMQ,UAAUR;AACpBQ,WAAUR,YAAY;AACpBJ,OAAK;AACL,SAAOI,KAAK;;CAGd,IAAIU;CACJ,IAAIC,MAAMpB,kBACA;AACJqB,eAAaF,MAAM;AACnBA,UAAQG,WAAWjB,IAAI;KAEzBA;AAEJT,SAAQqB,iBAAiB;EACvB,IAAIM,UAAUzB,OAAOS,KAAIC,WAAUA,OAAOgB,OAAOJ,IAAI,CAAC;AACtDf,OAAK;AACL,eAAa;AACX,QAAK,IAAIoB,UAAUF,QAASE,SAAQ;;GAEtC;AAEF,QAAOR;;AAIT,MAAaS,uCAAY5B,QAAQ6B,OAAO9B,cAAcC,QAAQ6B,GAAG;AAGjE,MAAa3B,sCAAWF,QAAQ6B,OAAO9B,cAAcC,QAAQ6B,IAAI,KAAK"}