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,294 @@
1
+ import { z } from "zod";
2
+ import { createTarget, getPossibleTarget, getTarget, type QueryFilter, validateWithSchema } from "../core.api";
3
+ import { type FieldDefinition, type SchemaDefinition, ServiceLifecycleStatus } from "./base.interface";
4
+ import {
5
+ type Api,
6
+ type ApiDetails,
7
+ ApiMethod,
8
+ CategoryApi,
9
+ CategoryService,
10
+ type Service,
11
+ type ServiceDetails,
12
+ } from "./service.interface";
13
+
14
+ const targetIdSchema = z.string().trim().min(1);
15
+
16
+ const enumMemberSchema = z.object({
17
+ key: z.string().trim().min(1),
18
+ value: z.string(),
19
+ });
20
+
21
+ const fieldPresenceSchema = z.object({
22
+ nullable: z.boolean(),
23
+ optional: z.boolean(),
24
+ });
25
+
26
+ const schemaDefinitionSchema: z.ZodType<SchemaDefinition> = z.lazy(() =>
27
+ z.discriminatedUnion("type", [
28
+ fieldPresenceSchema.extend({
29
+ type: z.literal("string"),
30
+ min: z.number().optional(),
31
+ max: z.number().optional(),
32
+ regex: z.string().optional(),
33
+ default: z.string().optional(),
34
+ }),
35
+ fieldPresenceSchema.extend({
36
+ type: z.literal("number"),
37
+ min: z.number().optional(),
38
+ max: z.number().optional(),
39
+ default: z.number().optional(),
40
+ }),
41
+ fieldPresenceSchema.extend({
42
+ type: z.literal("boolean"),
43
+ default: z.boolean().optional(),
44
+ }),
45
+ fieldPresenceSchema.extend({
46
+ type: z.literal("unknown"),
47
+ default: z.unknown().optional(),
48
+ }),
49
+ fieldPresenceSchema.extend({
50
+ type: z.literal("enum"),
51
+ members: z.array(enumMemberSchema).min(1),
52
+ defaultKey: z.string().trim().min(1).optional(),
53
+ }),
54
+ fieldPresenceSchema.extend({
55
+ type: z.literal("object"),
56
+ fields: z.array(fieldDefinitionSchema),
57
+ default: z.record(z.unknown()).optional(),
58
+ }),
59
+ fieldPresenceSchema.extend({
60
+ type: z.literal("array"),
61
+ items: schemaDefinitionSchema,
62
+ min: z.number().int().nonnegative().optional(),
63
+ max: z.number().int().nonnegative().optional(),
64
+ default: z.unknown().optional(),
65
+ }),
66
+ ]),
67
+ );
68
+
69
+ const fieldDefinitionSchema: z.ZodType<FieldDefinition> = z.intersection(
70
+ z.object({ fieldName: z.string().trim().min(1) }),
71
+ schemaDefinitionSchema,
72
+ );
73
+
74
+ export { fieldDefinitionSchema, schemaDefinitionSchema };
75
+
76
+ export const serviceLifecycleSchema = z.object({
77
+ status: z.nativeEnum(ServiceLifecycleStatus),
78
+ activeSince: z.string().trim().min(1),
79
+ deprecatedAt: z.string().nullable(),
80
+ sunsetAt: z.string().nullable(),
81
+ });
82
+
83
+ export const apiDetailsSchema = z.object({
84
+ method: z.nativeEnum(ApiMethod),
85
+ path: z.string().trim().min(1),
86
+ endpoint: z.string().trim().min(1),
87
+ request: z.object({
88
+ query: z.array(fieldDefinitionSchema),
89
+ }),
90
+ response: z.object({
91
+ "200": z.array(fieldDefinitionSchema),
92
+ }),
93
+ manifestVersion: z.number().int().nonnegative(),
94
+ lifecycle: serviceLifecycleSchema,
95
+ });
96
+
97
+ export const serviceDetailsSchema = z.object({
98
+ manifestVersion: z.number().int().nonnegative(),
99
+ apiKeys: z.array(z.string().trim().min(1)),
100
+ dependencies: z.array(z.string().trim().min(1)).default([]),
101
+ lifecycle: serviceLifecycleSchema,
102
+ });
103
+
104
+ export const postApiSchema = z.object({
105
+ name: z.string().trim().min(1),
106
+ value: z.string().trim().min(1),
107
+ details: apiDetailsSchema,
108
+ tagList: z.array(z.string()).optional().default([]),
109
+ extra: z.string().optional(),
110
+ });
111
+
112
+ export type PostApiPayload = z.infer<typeof postApiSchema>;
113
+
114
+ export const getApiSchema = z
115
+ .object({
116
+ id: targetIdSchema.optional(),
117
+ value: z.string().trim().min(1).optional(),
118
+ })
119
+ .refine(
120
+ (payload) => {
121
+ const hasId = payload.id != null && payload.id !== "";
122
+ const hasValue = payload.value != null && payload.value !== "";
123
+ return hasId !== hasValue;
124
+ },
125
+ { message: "Provide exactly one of id or value" },
126
+ );
127
+
128
+ export type GetApiPayload = z.infer<typeof getApiSchema>;
129
+
130
+ export const getServiceSchema = z
131
+ .object({
132
+ id: targetIdSchema.optional(),
133
+ value: z.string().trim().min(1).optional(),
134
+ /** When set, filters `details.lifecycle.status` at query time. */
135
+ lifecycleStatus: z.nativeEnum(ServiceLifecycleStatus).optional(),
136
+ })
137
+ .refine(
138
+ (payload) => {
139
+ const hasId = payload.id != null && payload.id !== "";
140
+ const hasValue = payload.value != null && payload.value !== "";
141
+ return hasId !== hasValue;
142
+ },
143
+ { message: "Provide exactly one of id or value" },
144
+ );
145
+
146
+ export type GetServicePayload = z.infer<typeof getServiceSchema>;
147
+
148
+ export const postServiceSchema = z.object({
149
+ name: z.string().trim().min(1),
150
+ value: z.string().trim().min(1),
151
+ details: serviceDetailsSchema,
152
+ tagList: z.array(z.string()).optional().default([]),
153
+ extra: z.string().optional(),
154
+ });
155
+
156
+ export type PostServicePayload = z.infer<typeof postServiceSchema>;
157
+
158
+ const apiCategoryFilter = {
159
+ field: "category",
160
+ operator: "eq" as const,
161
+ value: CategoryApi.API,
162
+ };
163
+
164
+ const serviceCategoryFilter = {
165
+ field: "category",
166
+ operator: "eq" as const,
167
+ value: CategoryService.SERVICE,
168
+ };
169
+
170
+ const SERVICE_LIFECYCLE_STATUS_FIELD = "details->lifecycle->>status" as const;
171
+
172
+ function buildServiceLookupFilters(payload: GetServicePayload): QueryFilter[] {
173
+ const filters: QueryFilter[] = [serviceCategoryFilter];
174
+
175
+ if (payload.id != null && payload.id !== "") {
176
+ // id path: caller adds .eq("id", id) separately
177
+ } else {
178
+ filters.push({ field: "value", operator: "eq", value: payload.value! });
179
+ }
180
+
181
+ if (payload.lifecycleStatus != null) {
182
+ filters.push({
183
+ field: SERVICE_LIFECYCLE_STATUS_FIELD,
184
+ operator: "eq",
185
+ value: payload.lifecycleStatus,
186
+ });
187
+ }
188
+
189
+ return filters;
190
+ }
191
+
192
+ /** Register an Api contract row (`category=api`). */
193
+ export const postApi = validateWithSchema(
194
+ postApiSchema,
195
+ "postApiSchema",
196
+ )(async ({ name, value, details, tagList, extra }) => {
197
+ return createTarget<Api, PostApiPayload>({
198
+ payload: { name, value, details, tagList, extra },
199
+ createFn: () => ({
200
+ name,
201
+ value,
202
+ category: CategoryApi.API,
203
+ tagList,
204
+ extra,
205
+ details: details as ApiDetails,
206
+ }),
207
+ });
208
+ });
209
+
210
+ /** Fetch an Api by id or by {@link Api.value} key (`category=api`). */
211
+ export const getApi = validateWithSchema(
212
+ getApiSchema,
213
+ "getApiSchema",
214
+ )(async (payload) => {
215
+ if (payload.id != null && payload.id !== "") {
216
+ const result = await getTarget({
217
+ id: payload.id,
218
+ filterList: [apiCategoryFilter],
219
+ });
220
+ return {
221
+ ...result,
222
+ data: result.data as Api,
223
+ };
224
+ }
225
+
226
+ const result = await getPossibleTarget({
227
+ filterList: [apiCategoryFilter, { field: "value", operator: "eq", value: payload.value! }],
228
+ });
229
+
230
+ if (result.data == null) {
231
+ return {
232
+ ...result,
233
+ data: undefined,
234
+ };
235
+ }
236
+
237
+ return {
238
+ ...result,
239
+ data: result.data as Api,
240
+ };
241
+ });
242
+
243
+ /** Fetch a Service by id or by {@link Service.value} key (`category=service`). */
244
+ export const getService = validateWithSchema(
245
+ getServiceSchema,
246
+ "getServiceSchema",
247
+ )(async (payload) => {
248
+ const filterList = buildServiceLookupFilters(payload);
249
+
250
+ if (payload.id != null && payload.id !== "") {
251
+ const result = await getTarget({
252
+ id: payload.id,
253
+ filterList,
254
+ });
255
+ return {
256
+ ...result,
257
+ data: result.data as Service,
258
+ };
259
+ }
260
+
261
+ const result = await getPossibleTarget({
262
+ filterList,
263
+ });
264
+
265
+ if (result.data == null) {
266
+ return {
267
+ ...result,
268
+ data: undefined,
269
+ };
270
+ }
271
+
272
+ return {
273
+ ...result,
274
+ data: result.data as Service,
275
+ };
276
+ });
277
+
278
+ /** Register a Service catalog row (`category=service`). */
279
+ export const postService = validateWithSchema(
280
+ postServiceSchema,
281
+ "postServiceSchema",
282
+ )(async ({ name, value, details, tagList, extra }) => {
283
+ return createTarget<Service, PostServicePayload>({
284
+ payload: { name, value, details, tagList, extra },
285
+ createFn: () => ({
286
+ name,
287
+ value,
288
+ category: CategoryService.SERVICE,
289
+ tagList,
290
+ extra,
291
+ details: details as ServiceDetails,
292
+ }),
293
+ });
294
+ });
@@ -1,27 +1,59 @@
1
- import { Target } from "../core.interface";
2
- import { Lifecycle } from "./base.interface";
1
+ import type { Target } from "../core.interface";
2
+ import type { FieldDefinition, ServiceLifecycle } from "./base.interface";
3
3
 
4
4
  export interface Service extends Target {
5
- /** "storage-service" 唯一键 */
6
- value: string;
7
- category: CategoryService;
8
- details: ServiceDetails;
5
+ name: string;
6
+ /** "storage-service" 唯一键 */
7
+ value: string;
8
+ category: CategoryService;
9
+ details: ServiceDetails;
9
10
  }
10
11
 
11
12
  export enum CategoryService {
12
- SERVICE = "service",
13
+ SERVICE = "service",
13
14
  }
14
15
 
15
- export enum ServiceStatus {
16
- ACTIVE = "ACTIVE",
17
- DEPRECATED = "DEPRECATED",
18
- SUNSET = "SUNSET",
16
+ export interface ServiceDetails {
17
+ manifestVersion: number;
18
+ /** 能力 Api keys */
19
+ apiKeys: string[];
20
+ /** 依赖的服务 Service keys */
21
+ dependencies: string[];
22
+ lifecycle: ServiceLifecycle;
19
23
  }
20
24
 
21
- export interface ServiceDetails {
22
- /** 能力 Api keys */
23
- apis: string[];
24
- /** 依赖的服务 Service keys */
25
- dependencies: string[];
26
- lifecycle: Lifecycle;
25
+ export interface Api extends Target {
26
+ /** "core.post.target.0" 唯一键 领域 + METHOD + content + VERSION */
27
+ value: string;
28
+ category: CategoryApi;
29
+ details: ApiDetails;
30
+ }
31
+
32
+ export enum CategoryApi {
33
+ API = "api",
34
+ }
35
+
36
+ export enum ApiMethod {
37
+ POST = "POST",
38
+ GET = "GET",
39
+ PUT = "PUT",
40
+ DELETE = "DELETE",
41
+ }
42
+
43
+ export interface ApiDetails {
44
+ method: ApiMethod;
45
+ /** /v0/core/target */
46
+ path: string;
47
+ /** out-of-box url like https://api.example.com/v0/core/target */
48
+ endpoint: string;
49
+ request: {
50
+ query: FieldDefinition[];
51
+ };
52
+ response: {
53
+ "200": FieldDefinition[];
54
+ };
55
+ manifestVersion: number;
56
+ lifecycle: ServiceLifecycle;
57
+ /** TODO contentType: e.g. application/json | application/octet-stream */
58
+ /** TODO auth / rate_limit / observability */
27
59
  }
@@ -0,0 +1,145 @@
1
+ import type { LoggerWithScope } from "../log/index";
2
+ import { classifyNetworkError, formatNetworkError } from "../utils/network-error";
3
+
4
+ function sleep(ms: number): Promise<void> {
5
+ return new Promise((resolve) => setTimeout(resolve, ms));
6
+ }
7
+
8
+ /** Default HTTP statuses that trigger retry (429, 5xx). */
9
+ export function isRetryableHttpStatus(status: number): boolean {
10
+ return status === 429 || status >= 500;
11
+ }
12
+
13
+ export type FetchInitFactory = () => RequestInit;
14
+
15
+ export function requestHasBody(init: RequestInit): boolean {
16
+ return init.body != null;
17
+ }
18
+
19
+ export interface FetchRetryOptions {
20
+ label: string;
21
+ timeoutMs: number;
22
+ maxAttempts?: number;
23
+ retryBaseMs?: number;
24
+ maxBackoffMs?: number;
25
+ /** undici ProxyAgent or other fetch extension — typed loosely to avoid undici dependency. */
26
+ dispatcher?: unknown;
27
+ isRetryableStatus?: (status: number) => boolean;
28
+ /** When set, retry/success lines are logged via SDK logger. */
29
+ logger?: LoggerWithScope;
30
+ hint?: string;
31
+ }
32
+
33
+ function backoffMs(retryBaseMs: number, attempt: number, response?: Response, maxBackoffMs?: number): number {
34
+ const retryAfter = response?.headers.get("Retry-After");
35
+ if (retryAfter != null) {
36
+ const seconds = Number(retryAfter);
37
+ if (Number.isFinite(seconds) && seconds > 0) {
38
+ const delayMs = seconds * 1000;
39
+ return maxBackoffMs != null ? Math.min(delayMs, maxBackoffMs) : delayMs;
40
+ }
41
+ }
42
+
43
+ let delayMs = retryBaseMs * 2 ** (attempt - 1);
44
+ if (maxBackoffMs != null) {
45
+ delayMs = Math.min(delayMs, maxBackoffMs);
46
+ }
47
+ return delayMs;
48
+ }
49
+
50
+ async function fetchOnce(url: string, init: RequestInit, timeoutMs: number, dispatcher?: unknown): Promise<Response> {
51
+ const options: RequestInit & { dispatcher?: unknown } = {
52
+ ...init,
53
+ signal: AbortSignal.timeout(timeoutMs),
54
+ };
55
+ if (dispatcher != null) {
56
+ options.dispatcher = dispatcher;
57
+ }
58
+ return fetch(url, options);
59
+ }
60
+
61
+ export async function fetchWithRetry(
62
+ url: string,
63
+ initOrFactory: RequestInit | FetchInitFactory,
64
+ options: FetchRetryOptions,
65
+ ): Promise<Response> {
66
+ const maxAttempts = options.maxAttempts ?? 1;
67
+ const retryBaseMs = options.retryBaseMs ?? 2_000;
68
+ const isRetryableStatus = options.isRetryableStatus ?? isRetryableHttpStatus;
69
+ const buildInit = typeof initOrFactory === "function" ? initOrFactory : () => initOrFactory;
70
+
71
+ if (maxAttempts > 1 && typeof initOrFactory !== "function" && requestHasBody(initOrFactory)) {
72
+ throw new Error(`${options.label}: retry requires an init factory when request body may be consumed`);
73
+ }
74
+
75
+ let lastError: Error | null = null;
76
+
77
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
78
+ try {
79
+ const response = await fetchOnce(url, buildInit(), options.timeoutMs, options.dispatcher);
80
+
81
+ if (!response.ok && isRetryableStatus(response.status) && attempt < maxAttempts) {
82
+ const delayMs = backoffMs(retryBaseMs, attempt, response, options.maxBackoffMs);
83
+ if (options.logger != null) {
84
+ options.logger.warn("retrying after HTTP error", {
85
+ topic: "fetch",
86
+ data: {
87
+ label: options.label,
88
+ attempt,
89
+ status: response.status,
90
+ delayMs,
91
+ },
92
+ });
93
+ }
94
+ await sleep(delayMs);
95
+ continue;
96
+ }
97
+
98
+ if (attempt > 1 && options.logger != null) {
99
+ options.logger.info("request succeeded after retry", {
100
+ topic: "fetch",
101
+ data: { label: options.label, attempt },
102
+ });
103
+ }
104
+
105
+ return response;
106
+ } catch (error) {
107
+ const classified = classifyNetworkError(error);
108
+ lastError = new Error(formatNetworkError(error, options.label, { hint: options.hint }));
109
+
110
+ if (classified.retryable && attempt < maxAttempts) {
111
+ const delayMs = backoffMs(retryBaseMs, attempt, undefined, options.maxBackoffMs);
112
+ if (options.logger != null) {
113
+ options.logger.warn("retrying after network error", {
114
+ topic: "fetch",
115
+ data: {
116
+ label: options.label,
117
+ attempt,
118
+ maxAttempts,
119
+ kind: classified.kind,
120
+ code: classified.code,
121
+ delayMs,
122
+ },
123
+ });
124
+ }
125
+ await sleep(delayMs);
126
+ continue;
127
+ }
128
+ throw lastError;
129
+ }
130
+ }
131
+
132
+ throw lastError ?? new Error(`${options.label}: request failed`);
133
+ }
134
+
135
+ export async function fetchBinaryWithRetry(
136
+ url: string,
137
+ init: RequestInit,
138
+ options: FetchRetryOptions,
139
+ ): Promise<ArrayBuffer> {
140
+ const response = await fetchWithRetry(url, init, options);
141
+ if (!response.ok) {
142
+ throw new Error(`${options.label}: HTTP ${response.status}`);
143
+ }
144
+ return response.arrayBuffer();
145
+ }
@@ -0,0 +1,51 @@
1
+ import { type LoggerWithScope, type LogLevel, logManager } from "./log-manager";
2
+ import { createScope, type LogScope, type LogScopePatch } from "./log-scope";
3
+
4
+ type CreateLoggerLevelOption = {
5
+ /** Overrides global minimum level for this logger only. */
6
+ minLevel?: LogLevel;
7
+ };
8
+
9
+ /** Build scope from fields, then bind a logger. */
10
+ export type CreateLoggerFromModuleInput = {
11
+ module: string;
12
+ traceId?: string;
13
+ traceParentId?: string | null;
14
+ labels?: Record<string, string>;
15
+ } & CreateLoggerLevelOption;
16
+
17
+ /** Bind a logger to an existing {@link LogScope}. */
18
+ export type CreateLoggerFromScopeInput = {
19
+ scope: LogScope;
20
+ } & CreateLoggerLevelOption;
21
+
22
+ export type CreateLoggerInput = CreateLoggerFromModuleInput | CreateLoggerFromScopeInput;
23
+
24
+ function isScopeInput(input: CreateLoggerInput): input is CreateLoggerFromScopeInput {
25
+ return "scope" in input;
26
+ }
27
+
28
+ /**
29
+ * Returns a scoped logger — one entry for all call sites.
30
+ *
31
+ * - `{ module, traceId?, labels?, … }` — creates a scope (API handlers, one-shot calls)
32
+ * - `{ scope, minLevel? }` — binds an existing scope (`createScope`, `patchScope`, …)
33
+ */
34
+ export function createLogger(input: CreateLoggerInput): LoggerWithScope {
35
+ const { minLevel } = input;
36
+ const scopeOptions = minLevel != null ? { minLevel } : undefined;
37
+
38
+ if (isScopeInput(input)) {
39
+ return logManager.withScope(input.scope, scopeOptions).logger;
40
+ }
41
+
42
+ const scope = createScope({
43
+ module: input.module,
44
+ traceId: input.traceId?.trim() || logManager.generateTraceId(),
45
+ traceParentId: input.traceParentId,
46
+ labels: input.labels,
47
+ });
48
+ return logManager.withScope(scope, scopeOptions).logger;
49
+ }
50
+
51
+ export type { LogScopePatch };