target-supabase-sdk 0.1.9 → 0.2.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 (464) hide show
  1. package/README.md +184 -1
  2. package/dist/browser.d.ts +60 -0
  3. package/dist/browser.d.ts.map +1 -0
  4. package/dist/browser.js +6 -0
  5. package/dist/browser.js.map +1 -0
  6. package/dist/chunks/create-logger-DyH3mZ8p.js +1028 -0
  7. package/dist/chunks/create-logger-DyH3mZ8p.js.map +1 -0
  8. package/dist/chunks/enable-log-persist-C_bSw6Kx.js +1362 -0
  9. package/dist/chunks/enable-log-persist-C_bSw6Kx.js.map +1 -0
  10. package/dist/chunks/word.interface-DLgRobKV.js +1973 -0
  11. package/dist/chunks/word.interface-DLgRobKV.js.map +1 -0
  12. package/dist/command/command.api.d.ts +1 -1
  13. package/dist/command/command.api.d.ts.map +1 -1
  14. package/dist/command/command.interface.d.ts +1 -1
  15. package/dist/command/command.interface.d.ts.map +1 -1
  16. package/dist/core.api.d.ts +10 -6
  17. package/dist/core.api.d.ts.map +1 -1
  18. package/dist/core.interface.d.ts +3 -2
  19. package/dist/core.interface.d.ts.map +1 -1
  20. package/dist/core.utils.d.ts +1 -1
  21. package/dist/core.utils.d.ts.map +1 -1
  22. package/dist/idea/idea.interface.d.ts +1 -1
  23. package/dist/idea/idea.interface.d.ts.map +1 -1
  24. package/dist/index.d.ts +2 -48
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/link/link.api.d.ts +1 -1
  27. package/dist/link/link.api.d.ts.map +1 -1
  28. package/dist/link/link.interface.d.ts +3 -3
  29. package/dist/link/link.interface.d.ts.map +1 -1
  30. package/dist/list/list.api.d.ts +3 -1
  31. package/dist/list/list.api.d.ts.map +1 -1
  32. package/dist/list/list.interface.d.ts +2 -2
  33. package/dist/list/list.interface.d.ts.map +1 -1
  34. package/dist/node/env/env-parsers.d.ts +19 -0
  35. package/dist/node/env/env-parsers.d.ts.map +1 -0
  36. package/dist/node/env/index.d.ts +11 -0
  37. package/dist/node/env/index.d.ts.map +1 -0
  38. package/dist/node/env/init-supabase-from-env.d.ts +17 -0
  39. package/dist/node/env/init-supabase-from-env.d.ts.map +1 -0
  40. package/dist/node/env/load-env.d.ts +20 -0
  41. package/dist/node/env/load-env.d.ts.map +1 -0
  42. package/dist/node/env/project-root.d.ts +11 -0
  43. package/dist/node/env/project-root.d.ts.map +1 -0
  44. package/dist/node/env/public-base-url.d.ts +10 -0
  45. package/dist/node/env/public-base-url.d.ts.map +1 -0
  46. package/dist/node/env/require-env.d.ts +3 -0
  47. package/dist/node/env/require-env.d.ts.map +1 -0
  48. package/dist/node/fs/json-state-store.d.ts +19 -0
  49. package/dist/node/fs/json-state-store.d.ts.map +1 -0
  50. package/dist/node/fs/read-source-file.d.ts +19 -0
  51. package/dist/node/fs/read-source-file.d.ts.map +1 -0
  52. package/dist/node/node-liveness.d.ts +30 -0
  53. package/dist/node/node-liveness.d.ts.map +1 -0
  54. package/dist/node/node-runtime.base.d.ts +60 -0
  55. package/dist/node/node-runtime.base.d.ts.map +1 -0
  56. package/dist/node/node.api.d.ts +4 -4
  57. package/dist/node/node.api.d.ts.map +1 -1
  58. package/dist/node/node.interface.d.ts +1 -6
  59. package/dist/node/node.interface.d.ts.map +1 -1
  60. package/dist/node/preload/run-service-preload.d.ts +14 -0
  61. package/dist/node/preload/run-service-preload.d.ts.map +1 -0
  62. package/dist/node/preload/service-preload.interface.d.ts +15 -0
  63. package/dist/node/preload/service-preload.interface.d.ts.map +1 -0
  64. package/dist/node/process/index.d.ts +5 -0
  65. package/dist/node/process/index.d.ts.map +1 -0
  66. package/dist/node/process/managed-child-processes.d.ts +37 -0
  67. package/dist/node/process/managed-child-processes.d.ts.map +1 -0
  68. package/dist/node/process/process-spawn.d.ts +27 -0
  69. package/dist/node/process/process-spawn.d.ts.map +1 -0
  70. package/dist/node/readiness/index.d.ts +9 -0
  71. package/dist/node/readiness/index.d.ts.map +1 -0
  72. package/dist/node/readiness/poll-until.d.ts +11 -0
  73. package/dist/node/readiness/poll-until.d.ts.map +1 -0
  74. package/dist/node/readiness/readiness-checks.d.ts +22 -0
  75. package/dist/node/readiness/readiness-checks.d.ts.map +1 -0
  76. package/dist/node/readiness/readiness.types.d.ts +12 -0
  77. package/dist/node/readiness/readiness.types.d.ts.map +1 -0
  78. package/dist/node/readiness/run-readiness-checks.d.ts +4 -0
  79. package/dist/node/readiness/run-readiness-checks.d.ts.map +1 -0
  80. package/dist/node/readiness/service-ready-gate.d.ts +26 -0
  81. package/dist/node/readiness/service-ready-gate.d.ts.map +1 -0
  82. package/dist/node.d.ts +36 -0
  83. package/dist/node.d.ts.map +1 -0
  84. package/dist/node.js +2483 -0
  85. package/dist/node.js.map +1 -0
  86. package/dist/parcel/chunk-fetch-registry.d.ts +14 -0
  87. package/dist/parcel/chunk-fetch-registry.d.ts.map +1 -0
  88. package/dist/parcel/chunk-url.utils.d.ts +9 -0
  89. package/dist/parcel/chunk-url.utils.d.ts.map +1 -0
  90. package/dist/parcel/parcel-manager.d.ts +44 -20
  91. package/dist/parcel/parcel-manager.d.ts.map +1 -1
  92. package/dist/parcel/parcel.api.d.ts +306 -0
  93. package/dist/parcel/parcel.api.d.ts.map +1 -0
  94. package/dist/parcel/parcel.interface.d.ts +26 -5
  95. package/dist/parcel/parcel.interface.d.ts.map +1 -1
  96. package/dist/parcel/parcel.service.d.ts +38 -0
  97. package/dist/parcel/parcel.service.d.ts.map +1 -0
  98. package/dist/parcel/storage-provider-registry.d.ts +17 -0
  99. package/dist/parcel/storage-provider-registry.d.ts.map +1 -0
  100. package/dist/parcel/storage-provider.types.d.ts +31 -0
  101. package/dist/parcel/storage-provider.types.d.ts.map +1 -0
  102. package/dist/preload.d.ts +7 -0
  103. package/dist/preload.d.ts.map +1 -0
  104. package/dist/preload.js +47 -0
  105. package/dist/preload.js.map +1 -0
  106. package/dist/repo/repo-context.utils.d.ts.map +1 -1
  107. package/dist/repo/repo-manager.d.ts +14 -3
  108. package/dist/repo/repo-manager.d.ts.map +1 -1
  109. package/dist/repo/repo.api.d.ts +1 -1
  110. package/dist/repo/repo.api.d.ts.map +1 -1
  111. package/dist/repo/repo.interface.d.ts +1 -1
  112. package/dist/repo/repo.interface.d.ts.map +1 -1
  113. package/dist/repo/repo.script-loader.d.ts +5 -5
  114. package/dist/repo/repo.script-loader.d.ts.map +1 -1
  115. package/dist/service/base.interface.d.ts +54 -57
  116. package/dist/service/base.interface.d.ts.map +1 -1
  117. package/dist/service/index.d.ts +21 -0
  118. package/dist/service/index.d.ts.map +1 -0
  119. package/dist/service/service.api.d.ts +503 -0
  120. package/dist/service/service.api.d.ts.map +1 -0
  121. package/dist/service/service.interface.d.ts +36 -9
  122. package/dist/service/service.interface.d.ts.map +1 -1
  123. package/dist/shared/http/fetch-retry.d.ts +21 -0
  124. package/dist/shared/http/fetch-retry.d.ts.map +1 -0
  125. package/dist/shared/log/create-logger.d.ts +27 -0
  126. package/dist/shared/log/create-logger.d.ts.map +1 -0
  127. package/dist/shared/log/enable-log-persist.d.ts +28 -0
  128. package/dist/shared/log/enable-log-persist.d.ts.map +1 -0
  129. package/dist/shared/log/index.d.ts +10 -0
  130. package/dist/shared/log/index.d.ts.map +1 -0
  131. package/dist/shared/log/log-manager.d.ts +37 -60
  132. package/dist/shared/log/log-manager.d.ts.map +1 -1
  133. package/dist/shared/log/log-persist-batch-id.d.ts +13 -0
  134. package/dist/shared/log/log-persist-batch-id.d.ts.map +1 -0
  135. package/dist/shared/log/log-persist-flush.d.ts +8 -0
  136. package/dist/shared/log/log-persist-flush.d.ts.map +1 -0
  137. package/dist/shared/log/log-persist-hook.d.ts +6 -0
  138. package/dist/shared/log/log-persist-hook.d.ts.map +1 -0
  139. package/dist/shared/log/log-persist-logger.d.ts +15 -0
  140. package/dist/shared/log/log-persist-logger.d.ts.map +1 -0
  141. package/dist/shared/log/log-persist-registry.d.ts +17 -0
  142. package/dist/shared/log/log-persist-registry.d.ts.map +1 -0
  143. package/dist/shared/log/log-persist.config.d.ts +10 -0
  144. package/dist/shared/log/log-persist.config.d.ts.map +1 -0
  145. package/dist/shared/log/log-persist.d.ts +55 -0
  146. package/dist/shared/log/log-persist.d.ts.map +1 -0
  147. package/dist/shared/log/log-persist.interface.d.ts +116 -0
  148. package/dist/shared/log/log-persist.interface.d.ts.map +1 -0
  149. package/dist/shared/log/log-scope.d.ts +56 -0
  150. package/dist/shared/log/log-scope.d.ts.map +1 -0
  151. package/dist/shared/utils/fetch-url.d.ts +3 -0
  152. package/dist/shared/utils/fetch-url.d.ts.map +1 -0
  153. package/dist/shared/utils/network-error.d.ts +14 -0
  154. package/dist/shared/utils/network-error.d.ts.map +1 -0
  155. package/dist/shared/utils/safe-file-name.d.ts +14 -0
  156. package/dist/shared/utils/safe-file-name.d.ts.map +1 -0
  157. package/dist/shared/utils/sha256.d.ts +3 -0
  158. package/dist/shared/utils/sha256.d.ts.map +1 -0
  159. package/dist/supabase.d.ts +7 -2
  160. package/dist/supabase.d.ts.map +1 -1
  161. package/dist/task/index.d.ts +16 -0
  162. package/dist/task/index.d.ts.map +1 -0
  163. package/dist/task/local-task-registry.d.ts +11 -1
  164. package/dist/task/local-task-registry.d.ts.map +1 -1
  165. package/dist/task/task-manager.d.ts +21 -11
  166. package/dist/task/task-manager.d.ts.map +1 -1
  167. package/dist/task/task-node.d.ts +19 -0
  168. package/dist/task/task-node.d.ts.map +1 -0
  169. package/dist/task/task-post-validated.api.d.ts +19 -0
  170. package/dist/task/task-post-validated.api.d.ts.map +1 -0
  171. package/dist/task/task-post.api.d.ts +54 -0
  172. package/dist/task/task-post.api.d.ts.map +1 -0
  173. package/dist/task/task-queue.d.ts +7 -0
  174. package/dist/task/task-queue.d.ts.map +1 -0
  175. package/dist/task/task-repo-context.d.ts +2 -0
  176. package/dist/task/task-repo-context.d.ts.map +1 -1
  177. package/dist/task/task-repo-validation.d.ts +46 -0
  178. package/dist/task/task-repo-validation.d.ts.map +1 -0
  179. package/dist/task/task.api.d.ts +5 -47
  180. package/dist/task/task.api.d.ts.map +1 -1
  181. package/dist/task/task.constant.d.ts +4 -0
  182. package/dist/task/task.constant.d.ts.map +1 -0
  183. package/dist/task/task.interface.d.ts +3 -1
  184. package/dist/task/task.interface.d.ts.map +1 -1
  185. package/dist/trigger/trigger-manager.d.ts +25 -0
  186. package/dist/trigger/trigger-manager.d.ts.map +1 -0
  187. package/dist/trigger/trigger-node.d.ts +23 -0
  188. package/dist/trigger/trigger-node.d.ts.map +1 -0
  189. package/dist/trigger/trigger.api.d.ts +140 -0
  190. package/dist/trigger/trigger.api.d.ts.map +1 -0
  191. package/dist/trigger/trigger.constant.d.ts +8 -0
  192. package/dist/trigger/trigger.constant.d.ts.map +1 -0
  193. package/dist/trigger/trigger.interface.d.ts +87 -0
  194. package/dist/trigger/trigger.interface.d.ts.map +1 -0
  195. package/dist/trigger/trigger.utils.d.ts +6 -0
  196. package/dist/trigger/trigger.utils.d.ts.map +1 -0
  197. package/dist/word/word.api.d.ts +1 -1
  198. package/dist/word/word.api.d.ts.map +1 -1
  199. package/dist/word/word.interface.d.ts +2 -2
  200. package/dist/word/word.interface.d.ts.map +1 -1
  201. package/package.json +91 -61
  202. package/src/browser.ts +165 -0
  203. package/src/command/command.api.ts +20 -18
  204. package/src/command/command.interface.ts +2 -3
  205. package/src/core.api.ts +466 -477
  206. package/src/core.interface.ts +63 -62
  207. package/src/core.utils.ts +64 -64
  208. package/src/idea/idea.interface.ts +3 -3
  209. package/src/index.ts +2 -79
  210. package/src/link/link.api.ts +28 -30
  211. package/src/link/link.interface.ts +4 -5
  212. package/src/list/list.api.ts +50 -29
  213. package/src/list/list.interface.ts +3 -4
  214. package/src/node/env/env-parsers.ts +77 -0
  215. package/src/node/env/index.ts +10 -0
  216. package/src/node/env/init-supabase-from-env.ts +38 -0
  217. package/src/node/env/load-env.ts +67 -0
  218. package/src/node/env/project-root.ts +34 -0
  219. package/src/node/env/public-base-url.ts +18 -0
  220. package/src/node/env/require-env.ts +15 -0
  221. package/src/node/fs/json-state-store.ts +97 -0
  222. package/src/node/fs/read-source-file.ts +75 -0
  223. package/src/node/node-liveness.ts +80 -0
  224. package/src/node/node-runtime.base.ts +481 -0
  225. package/src/node/node.api.ts +12 -11
  226. package/src/node/node.interface.ts +1 -8
  227. package/src/node/node.utils.ts +1 -1
  228. package/src/node/preload/run-service-preload.ts +48 -0
  229. package/src/node/preload/service-preload.interface.ts +14 -0
  230. package/src/node/process/index.ts +8 -0
  231. package/src/node/process/managed-child-processes.ts +121 -0
  232. package/src/node/process/process-spawn.ts +61 -0
  233. package/src/node/readiness/index.ts +20 -0
  234. package/src/node/readiness/poll-until.ts +27 -0
  235. package/src/node/readiness/readiness-checks.ts +79 -0
  236. package/src/node/readiness/readiness.types.ts +13 -0
  237. package/src/node/readiness/run-readiness-checks.ts +20 -0
  238. package/src/node/readiness/service-ready-gate.ts +65 -0
  239. package/src/node.ts +153 -0
  240. package/src/parcel/chunk-fetch-registry.ts +96 -0
  241. package/src/parcel/chunk-url.utils.ts +30 -0
  242. package/src/parcel/parcel-manager.ts +431 -173
  243. package/src/parcel/parcel.api.ts +103 -0
  244. package/src/parcel/parcel.interface.ts +44 -23
  245. package/src/parcel/parcel.service.ts +79 -0
  246. package/src/parcel/storage-provider-registry.ts +49 -0
  247. package/src/parcel/storage-provider.types.ts +45 -0
  248. package/src/preload.ts +7 -0
  249. package/src/repo/repo-context.utils.ts +3 -4
  250. package/src/repo/repo-manager.ts +54 -39
  251. package/src/repo/repo.api.ts +5 -5
  252. package/src/repo/repo.interface.ts +1 -2
  253. package/src/repo/repo.script-loader.ts +16 -20
  254. package/src/service/base.interface.ts +81 -90
  255. package/src/service/index.ts +173 -0
  256. package/src/service/service.api.ts +294 -0
  257. package/src/service/service.interface.ts +49 -17
  258. package/src/shared/http/fetch-retry.ts +145 -0
  259. package/src/shared/log/create-logger.ts +51 -0
  260. package/src/shared/log/enable-log-persist.ts +225 -0
  261. package/src/shared/log/index.ts +31 -0
  262. package/src/shared/log/log-manager.ts +112 -121
  263. package/src/shared/log/log-persist-batch-id.ts +43 -0
  264. package/src/shared/log/log-persist-flush.ts +128 -0
  265. package/src/shared/log/log-persist-hook.ts +13 -0
  266. package/src/shared/log/log-persist-logger.ts +33 -0
  267. package/src/shared/log/log-persist-registry.ts +109 -0
  268. package/src/shared/log/log-persist.config.ts +97 -0
  269. package/src/shared/log/log-persist.interface.ts +132 -0
  270. package/src/shared/log/log-persist.ts +704 -0
  271. package/src/shared/log/log-scope.ts +123 -0
  272. package/src/shared/utils/config-path.utils.ts +1 -1
  273. package/src/shared/utils/fetch-url.ts +13 -0
  274. package/src/shared/utils/network-error.ts +152 -0
  275. package/src/shared/utils/safe-file-name.ts +37 -0
  276. package/src/shared/utils/sha256.ts +15 -0
  277. package/src/supabase.ts +125 -119
  278. package/src/task/index.ts +45 -0
  279. package/src/task/local-task-registry.ts +115 -36
  280. package/src/task/task-manager.ts +101 -113
  281. package/src/task/task-node.ts +302 -0
  282. package/src/task/task-post-validated.api.ts +47 -0
  283. package/src/task/task-post.api.ts +99 -0
  284. package/src/task/task-queue.ts +18 -0
  285. package/src/task/task-repo-context.ts +4 -1
  286. package/src/task/task-repo-validation.ts +169 -0
  287. package/src/task/task.api.ts +68 -92
  288. package/src/task/task.constant.ts +4 -0
  289. package/src/task/task.interface.ts +6 -7
  290. package/src/trigger/trigger-manager.ts +287 -0
  291. package/src/trigger/trigger-node.ts +80 -0
  292. package/src/trigger/trigger.api.ts +166 -0
  293. package/src/trigger/trigger.constant.ts +10 -0
  294. package/src/trigger/trigger.interface.ts +100 -0
  295. package/src/trigger/trigger.utils.ts +56 -0
  296. package/src/word/word.api.ts +28 -30
  297. package/src/word/word.interface.ts +3 -4
  298. package/dist/auth/auth.api.d.ts +0 -28
  299. package/dist/auth/auth.api.d.ts.map +0 -1
  300. package/dist/auth/auth.api.js +0 -51
  301. package/dist/auth/auth.api.js.map +0 -1
  302. package/dist/command/command.api.js +0 -58
  303. package/dist/command/command.api.js.map +0 -1
  304. package/dist/command/command.interface.js +0 -9
  305. package/dist/command/command.interface.js.map +0 -1
  306. package/dist/core.api.js +0 -412
  307. package/dist/core.api.js.map +0 -1
  308. package/dist/core.interface.js +0 -46
  309. package/dist/core.interface.js.map +0 -1
  310. package/dist/core.utils.js +0 -81
  311. package/dist/core.utils.js.map +0 -1
  312. package/dist/feed/feed.interface.d.ts +0 -27
  313. package/dist/feed/feed.interface.d.ts.map +0 -1
  314. package/dist/feed/feed.interface.js +0 -17
  315. package/dist/feed/feed.interface.js.map +0 -1
  316. package/dist/file/file-manager.d.ts +0 -24
  317. package/dist/file/file-manager.d.ts.map +0 -1
  318. package/dist/file/file-manager.js +0 -109
  319. package/dist/file/file-manager.js.map +0 -1
  320. package/dist/file/file.api.d.ts +0 -15
  321. package/dist/file/file.api.d.ts.map +0 -1
  322. package/dist/file/file.api.js +0 -30
  323. package/dist/file/file.api.js.map +0 -1
  324. package/dist/file/file.interface.d.ts +0 -25
  325. package/dist/file/file.interface.d.ts.map +0 -1
  326. package/dist/file/file.interface.js +0 -9
  327. package/dist/file/file.interface.js.map +0 -1
  328. package/dist/file-list/file-list.api.d.ts +0 -15
  329. package/dist/file-list/file-list.api.d.ts.map +0 -1
  330. package/dist/file-list/file-list.api.js +0 -54
  331. package/dist/file-list/file-list.api.js.map +0 -1
  332. package/dist/file-list/file-list.interface.d.ts +0 -22
  333. package/dist/file-list/file-list.interface.d.ts.map +0 -1
  334. package/dist/file-list/file-list.interface.js +0 -5
  335. package/dist/file-list/file-list.interface.js.map +0 -1
  336. package/dist/idea/idea.interface.js +0 -15
  337. package/dist/idea/idea.interface.js.map +0 -1
  338. package/dist/index.js +0 -42
  339. package/dist/index.js.map +0 -1
  340. package/dist/link/link.api.js +0 -30
  341. package/dist/link/link.api.js.map +0 -1
  342. package/dist/link/link.interface.js +0 -7
  343. package/dist/link/link.interface.js.map +0 -1
  344. package/dist/list/list.api.js +0 -30
  345. package/dist/list/list.api.js.map +0 -1
  346. package/dist/list/list.interface.js +0 -6
  347. package/dist/list/list.interface.js.map +0 -1
  348. package/dist/node/node-manager.d.ts +0 -48
  349. package/dist/node/node-manager.d.ts.map +0 -1
  350. package/dist/node/node-manager.js +0 -619
  351. package/dist/node/node-manager.js.map +0 -1
  352. package/dist/node/node-task.preset.d.ts +0 -1
  353. package/dist/node/node-task.preset.d.ts.map +0 -1
  354. package/dist/node/node-task.preset.js +0 -14
  355. package/dist/node/node-task.preset.js.map +0 -1
  356. package/dist/node/node.api.js +0 -100
  357. package/dist/node/node.api.js.map +0 -1
  358. package/dist/node/node.interface.js +0 -19
  359. package/dist/node/node.interface.js.map +0 -1
  360. package/dist/node/node.utils.js +0 -36
  361. package/dist/node/node.utils.js.map +0 -1
  362. package/dist/parcel/parcel-manager.js +0 -156
  363. package/dist/parcel/parcel-manager.js.map +0 -1
  364. package/dist/parcel/parcel.interface.js +0 -11
  365. package/dist/parcel/parcel.interface.js.map +0 -1
  366. package/dist/question-list/question-list.api.d.ts +0 -13
  367. package/dist/question-list/question-list.api.d.ts.map +0 -1
  368. package/dist/question-list/question-list.api.js +0 -35
  369. package/dist/question-list/question-list.api.js.map +0 -1
  370. package/dist/question-list/question-list.interface.d.ts +0 -18
  371. package/dist/question-list/question-list.interface.d.ts.map +0 -1
  372. package/dist/question-list/question-list.interface.js +0 -5
  373. package/dist/question-list/question-list.interface.js.map +0 -1
  374. package/dist/repo/repo-context.utils.js +0 -81
  375. package/dist/repo/repo-context.utils.js.map +0 -1
  376. package/dist/repo/repo-manager.js +0 -156
  377. package/dist/repo/repo-manager.js.map +0 -1
  378. package/dist/repo/repo.api.js +0 -40
  379. package/dist/repo/repo.api.js.map +0 -1
  380. package/dist/repo/repo.interface.js +0 -8
  381. package/dist/repo/repo.interface.js.map +0 -1
  382. package/dist/repo/repo.script-loader.js +0 -108
  383. package/dist/repo/repo.script-loader.js.map +0 -1
  384. package/dist/review/review.api.d.ts +0 -14
  385. package/dist/review/review.api.d.ts.map +0 -1
  386. package/dist/review/review.api.js +0 -133
  387. package/dist/review/review.api.js.map +0 -1
  388. package/dist/review/review.interface.d.ts +0 -24
  389. package/dist/review/review.interface.d.ts.map +0 -1
  390. package/dist/review/review.interface.js +0 -10
  391. package/dist/review/review.interface.js.map +0 -1
  392. package/dist/review-v2/apis/post-review-setting.api.d.ts +0 -12
  393. package/dist/review-v2/apis/post-review-setting.api.d.ts.map +0 -1
  394. package/dist/review-v2/apis/post-review-setting.api.js +0 -27
  395. package/dist/review-v2/apis/post-review-setting.api.js.map +0 -1
  396. package/dist/review-v2/apis/post-review.api.d.ts +0 -13
  397. package/dist/review-v2/apis/post-review.api.d.ts.map +0 -1
  398. package/dist/review-v2/apis/post-review.api.js +0 -46
  399. package/dist/review-v2/apis/post-review.api.js.map +0 -1
  400. package/dist/review-v2/review-setting.interface.d.ts +0 -23
  401. package/dist/review-v2/review-setting.interface.d.ts.map +0 -1
  402. package/dist/review-v2/review-setting.interface.js +0 -5
  403. package/dist/review-v2/review-setting.interface.js.map +0 -1
  404. package/dist/review-v2/review.interface.d.ts +0 -20
  405. package/dist/review-v2/review.interface.d.ts.map +0 -1
  406. package/dist/review-v2/review.interface.js +0 -5
  407. package/dist/review-v2/review.interface.js.map +0 -1
  408. package/dist/service/api.interface.d.ts +0 -35
  409. package/dist/service/api.interface.d.ts.map +0 -1
  410. package/dist/service/api.interface.js +0 -12
  411. package/dist/service/api.interface.js.map +0 -1
  412. package/dist/service/base.interface.js +0 -7
  413. package/dist/service/base.interface.js.map +0 -1
  414. package/dist/service/service.interface.js +0 -11
  415. package/dist/service/service.interface.js.map +0 -1
  416. package/dist/shared/log/create-api-logger.d.ts +0 -17
  417. package/dist/shared/log/create-api-logger.d.ts.map +0 -1
  418. package/dist/shared/log/create-api-logger.js +0 -15
  419. package/dist/shared/log/create-api-logger.js.map +0 -1
  420. package/dist/shared/log/log-manager.js +0 -218
  421. package/dist/shared/log/log-manager.js.map +0 -1
  422. package/dist/shared/utils/config-path.utils.js +0 -85
  423. package/dist/shared/utils/config-path.utils.js.map +0 -1
  424. package/dist/shared/utils/error.utils.js +0 -15
  425. package/dist/shared/utils/error.utils.js.map +0 -1
  426. package/dist/shared/utils/id.utils.js +0 -5
  427. package/dist/shared/utils/id.utils.js.map +0 -1
  428. package/dist/supabase.js +0 -100
  429. package/dist/supabase.js.map +0 -1
  430. package/dist/task/local-task-registry.js +0 -153
  431. package/dist/task/local-task-registry.js.map +0 -1
  432. package/dist/task/task-manager.js +0 -217
  433. package/dist/task/task-manager.js.map +0 -1
  434. package/dist/task/task-repo-context.js +0 -12
  435. package/dist/task/task-repo-context.js.map +0 -1
  436. package/dist/task/task.api.js +0 -351
  437. package/dist/task/task.api.js.map +0 -1
  438. package/dist/task/task.interface.js +0 -36
  439. package/dist/task/task.interface.js.map +0 -1
  440. package/dist/task/task.utils.js +0 -2
  441. package/dist/task/task.utils.js.map +0 -1
  442. package/dist/word/word.api.js +0 -30
  443. package/dist/word/word.api.js.map +0 -1
  444. package/dist/word/word.interface.js +0 -6
  445. package/dist/word/word.interface.js.map +0 -1
  446. package/src/auth/auth.api.ts +0 -87
  447. package/src/feed/feed.interface.ts +0 -33
  448. package/src/file/file-manager.ts +0 -145
  449. package/src/file/file.api.ts +0 -43
  450. package/src/file/file.interface.ts +0 -30
  451. package/src/file-list/file-list.api.ts +0 -64
  452. package/src/file-list/file-list.interface.ts +0 -24
  453. package/src/node/node-manager.ts +0 -673
  454. package/src/node/node-task.preset.ts +0 -13
  455. package/src/question-list/question-list.api.ts +0 -42
  456. package/src/question-list/question-list.interface.ts +0 -21
  457. package/src/review/review.api.ts +0 -145
  458. package/src/review/review.interface.ts +0 -26
  459. package/src/review-v2/apis/post-review-setting.api.ts +0 -35
  460. package/src/review-v2/apis/post-review.api.ts +0 -59
  461. package/src/review-v2/review-setting.interface.ts +0 -26
  462. package/src/review-v2/review.interface.ts +0 -23
  463. package/src/service/api.interface.ts +0 -47
  464. package/src/shared/log/create-api-logger.ts +0 -25
@@ -0,0 +1,123 @@
1
+ import { generateUniqueId } from "../utils/id.utils";
2
+
3
+ /** Logger-bound scope: module + trace chain + optional labels. */
4
+ export interface LogScope {
5
+ module: string;
6
+ traceId: string;
7
+ traceParentId: string | null;
8
+ labels?: Readonly<Record<string, string>>;
9
+ }
10
+
11
+ /** Partial update for {@link patchScope}. */
12
+ export type LogScopePatch = Partial<Omit<LogScope, "labels">> & {
13
+ labels?: Record<string, string>;
14
+ };
15
+
16
+ /** Fields allowed on {@link LoggerWithScope.resetScope} — no trace identity changes. */
17
+ export type LoggerResetScopePatch = {
18
+ module?: string;
19
+ labels?: Record<string, string>;
20
+ };
21
+
22
+ export type LogScopeInput = LogScopePatch & Pick<LogScope, "module">;
23
+
24
+ interface NormalizeScopeOptions {
25
+ /** When true and traceId is missing, generate a new id. */
26
+ generateTraceId?: boolean;
27
+ }
28
+
29
+ /** Input for {@link patchScope}. */
30
+ export type PatchScopeInput = {
31
+ scope: LogScope;
32
+ patch: LogScopePatch;
33
+ /**
34
+ * When `false` (default), `patch.traceId` / `patch.traceParentId` are ignored.
35
+ * New spans: use {@link createScope}.
36
+ */
37
+ allowTraceMutation?: boolean;
38
+ };
39
+
40
+ function mergeLabels(
41
+ base?: Readonly<Record<string, string>>,
42
+ patch?: Record<string, string>,
43
+ ): Record<string, string> | undefined {
44
+ const merged: Record<string, string> = { ...base, ...patch };
45
+ return Object.keys(merged).length > 0 ? merged : undefined;
46
+ }
47
+
48
+ /** Coerce partial input into a {@link LogScope}. */
49
+ export function normalizeScope(input: LogScopeInput, options?: NormalizeScopeOptions): LogScope {
50
+ const generateTraceId = options?.generateTraceId ?? false;
51
+ const traceId = input.traceId?.trim() || (generateTraceId ? generateUniqueId() : "");
52
+ if (!traceId) {
53
+ throw new Error("[LogScope] traceId is required (or enable generateTraceId)");
54
+ }
55
+
56
+ return {
57
+ module: input.module,
58
+ traceId,
59
+ traceParentId: input.traceParentId ?? null,
60
+ labels: mergeLabels(undefined, input.labels),
61
+ };
62
+ }
63
+
64
+ /** Input for {@link createScope}. */
65
+ export type CreateScopeInput = {
66
+ module: string;
67
+ traceId: string;
68
+ traceParentId?: string | null;
69
+ labels?: Record<string, string>;
70
+ /** When set, default traceParentId to parent.traceId and merge labels. */
71
+ parent?: LogScope;
72
+ };
73
+
74
+ /** Build a scope; optional parent links trace chain and merges labels. */
75
+ export function createScope(input: CreateScopeInput): LogScope {
76
+ const { module, parent, traceId, traceParentId, labels } = input;
77
+ return normalizeScope({
78
+ module,
79
+ traceId,
80
+ traceParentId: traceParentId ?? (parent != null ? parent.traceId : null),
81
+ labels: parent != null ? mergeLabels(parent.labels, labels) : mergeLabels(undefined, labels),
82
+ });
83
+ }
84
+
85
+ /** Merge patch into scope (labels deep-merge). Returns a new scope. */
86
+ export function patchScope(input: PatchScopeInput): LogScope {
87
+ const { scope, patch, allowTraceMutation = false } = input;
88
+ const traceId = allowTraceMutation && patch.traceId != null && patch.traceId !== "" ? patch.traceId : scope.traceId;
89
+ const traceParentId =
90
+ allowTraceMutation && patch.traceParentId !== undefined ? patch.traceParentId : scope.traceParentId;
91
+
92
+ return normalizeScope({
93
+ module: patch.module ?? scope.module,
94
+ traceId,
95
+ traceParentId,
96
+ labels: mergeLabels(scope.labels, patch.labels),
97
+ });
98
+ }
99
+
100
+ /** Same trace chain, different module (e.g. prepareTask vs executeTask). */
101
+ export function withModule(scope: LogScope, module: string): LogScope {
102
+ return patchScope({ scope, patch: { module } });
103
+ }
104
+
105
+ export function formatScopeLabels(labels?: Readonly<Record<string, string>>): string {
106
+ if (labels == null || Object.keys(labels).length === 0) {
107
+ return "--";
108
+ }
109
+ return Object.entries(labels)
110
+ .map(([key, value]) => `${key}:${value}`)
111
+ .join(",");
112
+ }
113
+
114
+ /** Prefer `data`; fall back to deprecated `context` on log rest params. */
115
+ export function resolveLogData(rest?: { data?: unknown; context?: unknown }): unknown | undefined {
116
+ if (rest?.data !== undefined) {
117
+ return rest.data;
118
+ }
119
+ if (rest?.context !== undefined) {
120
+ return rest.context;
121
+ }
122
+ return undefined;
123
+ }
@@ -69,7 +69,7 @@ export interface ResolveFirstExistingPathOptions {
69
69
  */
70
70
  export async function resolveFirstExistingPath(
71
71
  cwd: string,
72
- options: ResolveFirstExistingPathOptions
72
+ options: ResolveFirstExistingPathOptions,
73
73
  ): Promise<string | null> {
74
74
  const { explicitPath, candidatePaths } = options;
75
75
 
@@ -0,0 +1,13 @@
1
+ export function resolveFetchUrl(input: string | URL | Request): string {
2
+ if (typeof input === "string") {
3
+ return input;
4
+ }
5
+ if (input instanceof URL) {
6
+ return input.href;
7
+ }
8
+ return input.url;
9
+ }
10
+
11
+ export function isHttpUrl(url: string): boolean {
12
+ return url.startsWith("http://") || url.startsWith("https://");
13
+ }
@@ -0,0 +1,152 @@
1
+ export type NetworkErrorKind =
2
+ | "connect_timeout"
3
+ | "tls_disconnect"
4
+ | "connection_refused"
5
+ | "dns_error"
6
+ | "socket_closed"
7
+ | "timeout"
8
+ | "proxy_error"
9
+ | "unknown";
10
+
11
+ export interface ClassifiedNetworkError {
12
+ kind: NetworkErrorKind;
13
+ retryable: boolean;
14
+ code: string;
15
+ detail: string;
16
+ }
17
+
18
+ const RETRYABLE_CAUSE_CODES = new Set([
19
+ "UND_ERR_CONNECT_TIMEOUT",
20
+ "UND_ERR_HEADERS_TIMEOUT",
21
+ "UND_ERR_BODY_TIMEOUT",
22
+ "UND_ERR_SOCKET",
23
+ "ECONNRESET",
24
+ "ECONNREFUSED",
25
+ "ENOTFOUND",
26
+ "ETIMEDOUT",
27
+ "EPIPE",
28
+ "EAI_AGAIN",
29
+ ]);
30
+
31
+ function errorCause(error: unknown): { code?: string; message?: string } | undefined {
32
+ if (error instanceof Error) {
33
+ return error.cause as { code?: string; message?: string } | undefined;
34
+ }
35
+ return undefined;
36
+ }
37
+
38
+ export function classifyNetworkError(error: unknown): ClassifiedNetworkError {
39
+ if (!(error instanceof Error)) {
40
+ return { kind: "unknown", retryable: false, code: "", detail: String(error) };
41
+ }
42
+
43
+ const cause = errorCause(error);
44
+ const code = cause?.code ?? "";
45
+ const causeMessage = cause?.message ?? "";
46
+ const message = error.message;
47
+
48
+ const tlsDisconnect =
49
+ /TLS connection was established/i.test(causeMessage) ||
50
+ /secure TLS connection/i.test(causeMessage) ||
51
+ /socket disconnected before secure TLS/i.test(message) ||
52
+ /socket disconnected before secure TLS/i.test(causeMessage);
53
+
54
+ if (tlsDisconnect) {
55
+ return {
56
+ kind: "tls_disconnect",
57
+ retryable: true,
58
+ code,
59
+ detail: causeMessage || message,
60
+ };
61
+ }
62
+
63
+ if (code === "UND_ERR_CONNECT_TIMEOUT" || error.name === "TimeoutError" || error.name === "AbortError") {
64
+ return {
65
+ kind: error.name === "AbortError" ? "timeout" : "connect_timeout",
66
+ retryable: true,
67
+ code,
68
+ detail: causeMessage || message,
69
+ };
70
+ }
71
+
72
+ if (code === "ECONNREFUSED") {
73
+ return {
74
+ kind: "connection_refused",
75
+ retryable: true,
76
+ code,
77
+ detail: causeMessage || message,
78
+ };
79
+ }
80
+
81
+ if (code === "ENOTFOUND" || code === "EAI_AGAIN") {
82
+ return {
83
+ kind: "dns_error",
84
+ retryable: code === "EAI_AGAIN",
85
+ code,
86
+ detail: causeMessage || message,
87
+ };
88
+ }
89
+
90
+ if (
91
+ code === "UND_ERR_SOCKET" ||
92
+ code === "ECONNRESET" ||
93
+ code === "EPIPE" ||
94
+ /socket disconnected/i.test(causeMessage) ||
95
+ /other side closed/i.test(causeMessage)
96
+ ) {
97
+ return {
98
+ kind: "socket_closed",
99
+ retryable: true,
100
+ code,
101
+ detail: causeMessage || message,
102
+ };
103
+ }
104
+
105
+ if (RETRYABLE_CAUSE_CODES.has(code)) {
106
+ return {
107
+ kind: "proxy_error",
108
+ retryable: true,
109
+ code,
110
+ detail: causeMessage || message,
111
+ };
112
+ }
113
+
114
+ return {
115
+ kind: "unknown",
116
+ retryable: false,
117
+ code,
118
+ detail: causeMessage ? `${message}: ${causeMessage}` : message,
119
+ };
120
+ }
121
+
122
+ export interface FormatNetworkErrorOptions {
123
+ /** Extra hint appended (proxy URL, env var name, etc.). */
124
+ hint?: string;
125
+ }
126
+
127
+ export function formatNetworkError(error: unknown, label: string, options: FormatNetworkErrorOptions = {}): string {
128
+ const classified = classifyNetworkError(error);
129
+ const hint = options.hint ?? "";
130
+
131
+ switch (classified.kind) {
132
+ case "connect_timeout":
133
+ return `${label}: connect timeout${hint}`;
134
+ case "tls_disconnect":
135
+ return `${label}: TLS handshake dropped${hint}. Often transient through proxies — retries may succeed.`;
136
+ case "connection_refused":
137
+ return `${label}: connection refused — ${classified.detail}${hint}`;
138
+ case "dns_error":
139
+ return `${label}: DNS lookup failed (${classified.code}) — ${classified.detail}`;
140
+ case "socket_closed":
141
+ return (
142
+ `${label}: connection closed mid-request (${classified.code || "socket"}) — ` +
143
+ `${classified.detail}${hint}`
144
+ );
145
+ case "timeout":
146
+ return `${label}: request timeout — ${classified.detail}${hint}`;
147
+ case "proxy_error":
148
+ return `${label}: network/proxy error (${classified.code}) — ${classified.detail}${hint}`;
149
+ default:
150
+ return `${label}: ${classified.detail}${hint}`;
151
+ }
152
+ }
@@ -0,0 +1,37 @@
1
+ export interface SanitizeFileNameOptions {
2
+ /** Max length after sanitization (default 200). */
3
+ maxLength?: number;
4
+ /** When set, used instead of throwing on invalid names. */
5
+ fallback?: string;
6
+ }
7
+
8
+ function fileBaseName(raw: string): string {
9
+ const normalized = raw.replace(/\\/g, "/");
10
+ const parts = normalized.split("/");
11
+ return parts.at(-1) ?? normalized;
12
+ }
13
+
14
+ /**
15
+ * Safe display / storage file name from a browser or filesystem path string.
16
+ * Strips directory segments and forbidden characters.
17
+ */
18
+ export function sanitizeFileName(raw: string, options: SanitizeFileNameOptions = {}): string {
19
+ const maxLength = options.maxLength ?? 200;
20
+ const base = fileBaseName(raw);
21
+ // biome-ignore lint/suspicious/noControlCharactersInRegex: intentionally strip ASCII control chars (0x00–0x1f)
22
+ const cleaned = base.replace(/[\x00-\x1f<>:"/\\|?*]+/g, "_").trim();
23
+
24
+ if (cleaned === "" || cleaned === "." || cleaned === "..") {
25
+ if (options.fallback != null) {
26
+ return options.fallback.slice(0, maxLength);
27
+ }
28
+ throw new Error("Invalid file name");
29
+ }
30
+
31
+ return cleaned.slice(0, maxLength);
32
+ }
33
+
34
+ /** Parcel.name / value default — 200 char cap. */
35
+ export function sanitizeParcelFileName(raw: string): string {
36
+ return sanitizeFileName(raw, { maxLength: 200 });
37
+ }
@@ -0,0 +1,15 @@
1
+ function getCrypto(): Crypto {
2
+ if (typeof globalThis !== "undefined" && globalThis.crypto) {
3
+ return globalThis.crypto;
4
+ }
5
+ throw new Error("sha256Hex: crypto.subtle not available");
6
+ }
7
+
8
+ /** SHA-256 digest as lowercase hex (browser + Node Web Crypto). */
9
+ export async function sha256Hex(buffer: ArrayBuffer): Promise<string> {
10
+ const crypto = getCrypto();
11
+ const hash = await crypto.subtle.digest("SHA-256", buffer);
12
+ return Array.from(new Uint8Array(hash))
13
+ .map((byte) => byte.toString(16).padStart(2, "0"))
14
+ .join("");
15
+ }
package/src/supabase.ts CHANGED
@@ -1,143 +1,149 @@
1
- import { createClient, SupabaseClient } from "@supabase/supabase-js";
1
+ import { createClient, type SupabaseClient } from "@supabase/supabase-js";
2
2
  import { logDev, logDevGroup } from "./core.utils";
3
3
 
4
4
  interface SupabaseConfig {
5
- main: {
6
- url: string;
7
- anonKey: string;
8
- };
9
- auth: {
10
- url: string;
11
- anonKey: string;
12
- } | null;
5
+ main: {
6
+ url: string;
7
+ anonKey: string;
8
+ };
9
+ auth: {
10
+ url: string;
11
+ anonKey: string;
12
+ } | null;
13
13
  }
14
14
 
15
15
  export interface SupabaseInitializerParams {
16
- supabaseUrl: string;
17
- supabaseAnonKey: string;
18
- supabaseNeedAuthUrl?: string;
19
- supabaseNeedAuthAnonKey?: string;
16
+ supabaseUrl: string;
17
+ supabaseAnonKey: string;
18
+ supabaseNeedAuthUrl?: string;
19
+ supabaseNeedAuthAnonKey?: string;
20
20
  }
21
21
 
22
- export class SupabaseInitializer {
23
- private static instance: SupabaseInitializer;
24
- private isInitialized = false;
25
- private _mainClient: SupabaseClient | null = null;
26
- private _authClient: SupabaseClient | null = null;
22
+ class SupabaseInitializer {
23
+ private static instance: SupabaseInitializer;
24
+ private isInitialized = false;
25
+ private _mainClient: SupabaseClient | null = null;
26
+ private _authClient: SupabaseClient | null = null;
27
27
 
28
- private constructor() {}
28
+ private constructor() {}
29
29
 
30
- static getInstance(): SupabaseInitializer {
31
- if (!SupabaseInitializer.instance) {
32
- SupabaseInitializer.instance = new SupabaseInitializer();
33
- }
34
- return SupabaseInitializer.instance;
35
- }
36
-
37
- /**
38
- * Initialize Supabase clients
39
- */
40
- async initialize(
41
- params: SupabaseInitializerParams
42
- ): Promise<{ supabase: SupabaseClient; supabaseAuth: SupabaseClient | null }> {
43
- if (this.isInitialized) {
44
- logDev("🚫 Supabase already initialized");
45
- return { supabase: this._mainClient!, supabaseAuth: this._authClient };
30
+ static getInstance(): SupabaseInitializer {
31
+ if (!SupabaseInitializer.instance) {
32
+ SupabaseInitializer.instance = new SupabaseInitializer();
33
+ }
34
+ return SupabaseInitializer.instance;
46
35
  }
47
36
 
48
- logDev("🔧 Initializing Supabase...");
49
-
50
- // Validate and get environment variables
51
- const config = this.validateEnvironmentVariables(params);
52
-
53
- // Create main client
54
- this._mainClient = createClient(config.main.url, config.main.anonKey, {
55
- // TODO
56
- // auth: {
57
- // persistSession: true,
58
- // autoRefreshToken: true,
59
- // },
60
- });
61
-
62
- // Create auth client if configured
63
- if (config.auth) {
64
- this._authClient = createClient(config.auth.url, config.auth.anonKey, {
65
- // TODO
66
- // auth: {
67
- // persistSession: true,
68
- // autoRefreshToken: true,
69
- // },
70
- });
37
+ /**
38
+ * Initialize Supabase clients
39
+ */
40
+ async initialize(
41
+ params: SupabaseInitializerParams,
42
+ ): Promise<{ supabase: SupabaseClient; supabaseAuth: SupabaseClient | null }> {
43
+ if (this.isInitialized) {
44
+ logDev("🚫 Supabase already initialized");
45
+ return { supabase: this._mainClient!, supabaseAuth: this._authClient };
46
+ }
47
+
48
+ logDev("🔧 Initializing Supabase...");
49
+
50
+ // Validate and get environment variables
51
+ const config = this.validateEnvironmentVariables(params);
52
+
53
+ // Create main client
54
+ this._mainClient = createClient(config.main.url, config.main.anonKey, {
55
+ // TODO
56
+ // auth: {
57
+ // persistSession: true,
58
+ // autoRefreshToken: true,
59
+ // },
60
+ });
61
+
62
+ // Create auth client if configured
63
+ if (config.auth) {
64
+ this._authClient = createClient(config.auth.url, config.auth.anonKey, {
65
+ // TODO
66
+ // auth: {
67
+ // persistSession: true,
68
+ // autoRefreshToken: true,
69
+ // },
70
+ });
71
+ }
72
+
73
+ // Log configuration
74
+ this.logConfiguration(config);
75
+
76
+ this.isInitialized = true;
77
+ logDev("✅ Supabase initialization completed");
78
+
79
+ return { supabase: this._mainClient, supabaseAuth: this._authClient };
71
80
  }
72
81
 
73
- // Log configuration
74
- this.logConfiguration(config);
75
-
76
- this.isInitialized = true;
77
- logDev("✅ Supabase initialization completed");
78
-
79
- return { supabase: this._mainClient, supabaseAuth: this._authClient };
80
- }
81
-
82
- private validateEnvironmentVariables({
83
- supabaseUrl,
84
- supabaseAnonKey,
85
- supabaseNeedAuthUrl,
86
- supabaseNeedAuthAnonKey,
87
- }: SupabaseInitializerParams): SupabaseConfig {
88
- const mainUrl = supabaseUrl;
89
- const mainAnonKey = supabaseAnonKey;
90
- const authUrl = supabaseNeedAuthUrl;
91
- const authAnonKey = supabaseNeedAuthAnonKey;
82
+ private validateEnvironmentVariables({
83
+ supabaseUrl,
84
+ supabaseAnonKey,
85
+ supabaseNeedAuthUrl,
86
+ supabaseNeedAuthAnonKey,
87
+ }: SupabaseInitializerParams): SupabaseConfig {
88
+ const mainUrl = supabaseUrl;
89
+ const mainAnonKey = supabaseAnonKey;
90
+ const authUrl = supabaseNeedAuthUrl;
91
+ const authAnonKey = supabaseNeedAuthAnonKey;
92
+
93
+ if (!mainUrl || !mainAnonKey) {
94
+ throw new Error("Missing required Supabase environment variables: SUPABASE_URL, SUPABASE_ANON_KEY");
95
+ }
96
+
97
+ return {
98
+ main: { url: mainUrl, anonKey: mainAnonKey },
99
+ auth: authUrl && authAnonKey ? { url: authUrl, anonKey: authAnonKey } : null,
100
+ };
101
+ }
92
102
 
93
- if (!mainUrl || !mainAnonKey) {
94
- throw new Error("Missing required Supabase environment variables: SUPABASE_URL, SUPABASE_ANON_KEY");
103
+ private logConfiguration(config: SupabaseConfig) {
104
+ logDevGroup("🔧 Supabase Configuration", () => {
105
+ console.log("Main URL:", config.main.url);
106
+ console.log("Auth URL:", config.auth?.url || "Not configured");
107
+ console.log("Clients:", {
108
+ main: !!this._mainClient,
109
+ auth: !!this._authClient,
110
+ });
111
+ });
95
112
  }
96
113
 
97
- return {
98
- main: { url: mainUrl, anonKey: mainAnonKey },
99
- auth: authUrl && authAnonKey ? { url: authUrl, anonKey: authAnonKey } : null,
100
- };
101
- }
102
-
103
- private logConfiguration(config: SupabaseConfig) {
104
- logDevGroup("🔧 Supabase Configuration", () => {
105
- console.log("Main URL:", config.main.url);
106
- console.log("Auth URL:", config.auth?.url || "Not configured");
107
- console.log("Clients:", {
108
- main: !!this._mainClient,
109
- auth: !!this._authClient,
110
- });
111
- });
112
- }
113
-
114
- getClients() {
115
- if (!this.isInitialized) {
116
- throw new Error("Supabase not initialized. Call initialize() first.");
114
+ getClients() {
115
+ if (!this.isInitialized) {
116
+ throw new Error("Supabase not initialized. Call initialize() first.");
117
+ }
118
+ return { supabase: this._mainClient!, supabaseAuth: this._authClient };
117
119
  }
118
- return { supabase: this._mainClient!, supabaseAuth: this._authClient };
119
- }
120
120
 
121
- get client(): SupabaseClient {
122
- if (!this.isInitialized) {
123
- throw new Error("Supabase not initialized. Call initialize() first.");
121
+ get client(): SupabaseClient {
122
+ if (!this.isInitialized) {
123
+ throw new Error("Supabase not initialized. Call initialize() first.");
124
+ }
125
+ if (!this._mainClient) {
126
+ throw new Error("Main Supabase client is null. Initialization may have failed.");
127
+ }
128
+ return this._mainClient;
124
129
  }
125
- if (!this._mainClient) {
126
- throw new Error("Main Supabase client is null. Initialization may have failed.");
130
+
131
+ get authClient(): SupabaseClient | null {
132
+ if (!this.isInitialized) {
133
+ throw new Error("Supabase not initialized. Call initialize() first.");
134
+ }
135
+ return this._authClient;
127
136
  }
128
- return this._mainClient;
129
- }
130
137
 
131
- get authClient(): SupabaseClient | null {
132
- if (!this.isInitialized) {
133
- throw new Error("Supabase not initialized. Call initialize() first.");
138
+ reset() {
139
+ this.isInitialized = false;
140
+ this._mainClient = null;
141
+ this._authClient = null;
134
142
  }
135
- return this._authClient;
136
- }
137
-
138
- reset() {
139
- this.isInitialized = false;
140
- this._mainClient = null;
141
- this._authClient = null;
142
- }
143
143
  }
144
+
145
+ /** Process-wide holder — import this; class is module-private. */
146
+ export const supabase = SupabaseInitializer.getInstance();
147
+
148
+ /** Public type for the `supabase` holder instance. */
149
+ export type SupabaseHolder = typeof supabase;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Task domain public API — curated re-exports only.
3
+ * Internal modules (local-task-registry, task-repo-context, task.utils) stay private.
4
+ */
5
+
6
+ export type {
7
+ PatchChangeTaskStatusPayload,
8
+ PatchClaimTaskPayload,
9
+ PatchTaskProgressPayload,
10
+ } from "./task.api";
11
+ // task.api
12
+ export {
13
+ patchChangeTaskStatus,
14
+ patchChangeTaskStatusSchema,
15
+ patchClaimTask,
16
+ patchClaimTaskSchema,
17
+ patchTaskProgress,
18
+ patchTaskProgressSchema,
19
+ } from "./task.api";
20
+ export type { Task, TaskDetails, TaskFlow } from "./task.interface";
21
+ // task.interface
22
+ export {
23
+ CategoryTask,
24
+ ResultCode,
25
+ TaskStatus,
26
+ TaskStatusAction,
27
+ } from "./task.interface";
28
+ export type {
29
+ PrepareTaskParams,
30
+ PrepareTaskResponse,
31
+ RegisterTasksOptions,
32
+ RegisterTasksResult,
33
+ } from "./task-manager";
34
+ // task-manager
35
+ export { TaskManager } from "./task-manager";
36
+ export type { PostTaskPayload } from "./task-post.api";
37
+ export { postTask, postTaskSchema } from "./task-post.api";
38
+ export { postTaskWithValidation } from "./task-post-validated.api";
39
+ export type {
40
+ TaskRepoValidationFailureReason,
41
+ ValidateTaskRepoAndParamsInput,
42
+ ValidateTaskRepoAndParamsResult,
43
+ } from "./task-repo-validation";
44
+ // task-repo-validation
45
+ export { TaskRepoValidation } from "./task-repo-validation";