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.
- package/README.md +184 -1
- package/dist/browser.d.ts +60 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +6 -0
- package/dist/browser.js.map +1 -0
- package/dist/chunks/create-logger-DyH3mZ8p.js +1028 -0
- package/dist/chunks/create-logger-DyH3mZ8p.js.map +1 -0
- package/dist/chunks/enable-log-persist-C_bSw6Kx.js +1362 -0
- package/dist/chunks/enable-log-persist-C_bSw6Kx.js.map +1 -0
- package/dist/chunks/word.interface-DLgRobKV.js +1973 -0
- package/dist/chunks/word.interface-DLgRobKV.js.map +1 -0
- package/dist/command/command.api.d.ts +1 -1
- package/dist/command/command.api.d.ts.map +1 -1
- package/dist/command/command.interface.d.ts +1 -1
- package/dist/command/command.interface.d.ts.map +1 -1
- package/dist/core.api.d.ts +10 -6
- package/dist/core.api.d.ts.map +1 -1
- package/dist/core.interface.d.ts +3 -2
- package/dist/core.interface.d.ts.map +1 -1
- package/dist/core.utils.d.ts +1 -1
- package/dist/core.utils.d.ts.map +1 -1
- package/dist/idea/idea.interface.d.ts +1 -1
- package/dist/idea/idea.interface.d.ts.map +1 -1
- package/dist/index.d.ts +2 -48
- package/dist/index.d.ts.map +1 -1
- package/dist/link/link.api.d.ts +1 -1
- package/dist/link/link.api.d.ts.map +1 -1
- package/dist/link/link.interface.d.ts +3 -3
- package/dist/link/link.interface.d.ts.map +1 -1
- package/dist/list/list.api.d.ts +3 -1
- package/dist/list/list.api.d.ts.map +1 -1
- package/dist/list/list.interface.d.ts +2 -2
- package/dist/list/list.interface.d.ts.map +1 -1
- package/dist/node/env/env-parsers.d.ts +19 -0
- package/dist/node/env/env-parsers.d.ts.map +1 -0
- package/dist/node/env/index.d.ts +11 -0
- package/dist/node/env/index.d.ts.map +1 -0
- package/dist/node/env/init-supabase-from-env.d.ts +17 -0
- package/dist/node/env/init-supabase-from-env.d.ts.map +1 -0
- package/dist/node/env/load-env.d.ts +20 -0
- package/dist/node/env/load-env.d.ts.map +1 -0
- package/dist/node/env/project-root.d.ts +11 -0
- package/dist/node/env/project-root.d.ts.map +1 -0
- package/dist/node/env/public-base-url.d.ts +10 -0
- package/dist/node/env/public-base-url.d.ts.map +1 -0
- package/dist/node/env/require-env.d.ts +3 -0
- package/dist/node/env/require-env.d.ts.map +1 -0
- package/dist/node/fs/json-state-store.d.ts +19 -0
- package/dist/node/fs/json-state-store.d.ts.map +1 -0
- package/dist/node/fs/read-source-file.d.ts +19 -0
- package/dist/node/fs/read-source-file.d.ts.map +1 -0
- package/dist/node/node-liveness.d.ts +30 -0
- package/dist/node/node-liveness.d.ts.map +1 -0
- package/dist/node/node-runtime.base.d.ts +60 -0
- package/dist/node/node-runtime.base.d.ts.map +1 -0
- package/dist/node/node.api.d.ts +4 -4
- package/dist/node/node.api.d.ts.map +1 -1
- package/dist/node/node.interface.d.ts +1 -6
- package/dist/node/node.interface.d.ts.map +1 -1
- package/dist/node/preload/run-service-preload.d.ts +14 -0
- package/dist/node/preload/run-service-preload.d.ts.map +1 -0
- package/dist/node/preload/service-preload.interface.d.ts +15 -0
- package/dist/node/preload/service-preload.interface.d.ts.map +1 -0
- package/dist/node/process/index.d.ts +5 -0
- package/dist/node/process/index.d.ts.map +1 -0
- package/dist/node/process/managed-child-processes.d.ts +37 -0
- package/dist/node/process/managed-child-processes.d.ts.map +1 -0
- package/dist/node/process/process-spawn.d.ts +27 -0
- package/dist/node/process/process-spawn.d.ts.map +1 -0
- package/dist/node/readiness/index.d.ts +9 -0
- package/dist/node/readiness/index.d.ts.map +1 -0
- package/dist/node/readiness/poll-until.d.ts +11 -0
- package/dist/node/readiness/poll-until.d.ts.map +1 -0
- package/dist/node/readiness/readiness-checks.d.ts +22 -0
- package/dist/node/readiness/readiness-checks.d.ts.map +1 -0
- package/dist/node/readiness/readiness.types.d.ts +12 -0
- package/dist/node/readiness/readiness.types.d.ts.map +1 -0
- package/dist/node/readiness/run-readiness-checks.d.ts +4 -0
- package/dist/node/readiness/run-readiness-checks.d.ts.map +1 -0
- package/dist/node/readiness/service-ready-gate.d.ts +26 -0
- package/dist/node/readiness/service-ready-gate.d.ts.map +1 -0
- package/dist/node.d.ts +36 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +2483 -0
- package/dist/node.js.map +1 -0
- package/dist/parcel/chunk-fetch-registry.d.ts +14 -0
- package/dist/parcel/chunk-fetch-registry.d.ts.map +1 -0
- package/dist/parcel/chunk-url.utils.d.ts +9 -0
- package/dist/parcel/chunk-url.utils.d.ts.map +1 -0
- package/dist/parcel/parcel-manager.d.ts +44 -20
- package/dist/parcel/parcel-manager.d.ts.map +1 -1
- package/dist/parcel/parcel.api.d.ts +306 -0
- package/dist/parcel/parcel.api.d.ts.map +1 -0
- package/dist/parcel/parcel.interface.d.ts +26 -5
- package/dist/parcel/parcel.interface.d.ts.map +1 -1
- package/dist/parcel/parcel.service.d.ts +38 -0
- package/dist/parcel/parcel.service.d.ts.map +1 -0
- package/dist/parcel/storage-provider-registry.d.ts +17 -0
- package/dist/parcel/storage-provider-registry.d.ts.map +1 -0
- package/dist/parcel/storage-provider.types.d.ts +31 -0
- package/dist/parcel/storage-provider.types.d.ts.map +1 -0
- package/dist/preload.d.ts +7 -0
- package/dist/preload.d.ts.map +1 -0
- package/dist/preload.js +47 -0
- package/dist/preload.js.map +1 -0
- package/dist/repo/repo-context.utils.d.ts.map +1 -1
- package/dist/repo/repo-manager.d.ts +14 -3
- package/dist/repo/repo-manager.d.ts.map +1 -1
- package/dist/repo/repo.api.d.ts +1 -1
- package/dist/repo/repo.api.d.ts.map +1 -1
- package/dist/repo/repo.interface.d.ts +1 -1
- package/dist/repo/repo.interface.d.ts.map +1 -1
- package/dist/repo/repo.script-loader.d.ts +5 -5
- package/dist/repo/repo.script-loader.d.ts.map +1 -1
- package/dist/service/base.interface.d.ts +54 -57
- package/dist/service/base.interface.d.ts.map +1 -1
- package/dist/service/index.d.ts +21 -0
- package/dist/service/index.d.ts.map +1 -0
- package/dist/service/service.api.d.ts +503 -0
- package/dist/service/service.api.d.ts.map +1 -0
- package/dist/service/service.interface.d.ts +36 -9
- package/dist/service/service.interface.d.ts.map +1 -1
- package/dist/shared/http/fetch-retry.d.ts +21 -0
- package/dist/shared/http/fetch-retry.d.ts.map +1 -0
- package/dist/shared/log/create-logger.d.ts +27 -0
- package/dist/shared/log/create-logger.d.ts.map +1 -0
- package/dist/shared/log/enable-log-persist.d.ts +28 -0
- package/dist/shared/log/enable-log-persist.d.ts.map +1 -0
- package/dist/shared/log/index.d.ts +10 -0
- package/dist/shared/log/index.d.ts.map +1 -0
- package/dist/shared/log/log-manager.d.ts +37 -60
- package/dist/shared/log/log-manager.d.ts.map +1 -1
- package/dist/shared/log/log-persist-batch-id.d.ts +13 -0
- package/dist/shared/log/log-persist-batch-id.d.ts.map +1 -0
- package/dist/shared/log/log-persist-flush.d.ts +8 -0
- package/dist/shared/log/log-persist-flush.d.ts.map +1 -0
- package/dist/shared/log/log-persist-hook.d.ts +6 -0
- package/dist/shared/log/log-persist-hook.d.ts.map +1 -0
- package/dist/shared/log/log-persist-logger.d.ts +15 -0
- package/dist/shared/log/log-persist-logger.d.ts.map +1 -0
- package/dist/shared/log/log-persist-registry.d.ts +17 -0
- package/dist/shared/log/log-persist-registry.d.ts.map +1 -0
- package/dist/shared/log/log-persist.config.d.ts +10 -0
- package/dist/shared/log/log-persist.config.d.ts.map +1 -0
- package/dist/shared/log/log-persist.d.ts +55 -0
- package/dist/shared/log/log-persist.d.ts.map +1 -0
- package/dist/shared/log/log-persist.interface.d.ts +116 -0
- package/dist/shared/log/log-persist.interface.d.ts.map +1 -0
- package/dist/shared/log/log-scope.d.ts +56 -0
- package/dist/shared/log/log-scope.d.ts.map +1 -0
- package/dist/shared/utils/fetch-url.d.ts +3 -0
- package/dist/shared/utils/fetch-url.d.ts.map +1 -0
- package/dist/shared/utils/network-error.d.ts +14 -0
- package/dist/shared/utils/network-error.d.ts.map +1 -0
- package/dist/shared/utils/safe-file-name.d.ts +14 -0
- package/dist/shared/utils/safe-file-name.d.ts.map +1 -0
- package/dist/shared/utils/sha256.d.ts +3 -0
- package/dist/shared/utils/sha256.d.ts.map +1 -0
- package/dist/supabase.d.ts +7 -2
- package/dist/supabase.d.ts.map +1 -1
- package/dist/task/index.d.ts +16 -0
- package/dist/task/index.d.ts.map +1 -0
- package/dist/task/local-task-registry.d.ts +11 -1
- package/dist/task/local-task-registry.d.ts.map +1 -1
- package/dist/task/task-manager.d.ts +21 -11
- package/dist/task/task-manager.d.ts.map +1 -1
- package/dist/task/task-node.d.ts +19 -0
- package/dist/task/task-node.d.ts.map +1 -0
- package/dist/task/task-post-validated.api.d.ts +19 -0
- package/dist/task/task-post-validated.api.d.ts.map +1 -0
- package/dist/task/task-post.api.d.ts +54 -0
- package/dist/task/task-post.api.d.ts.map +1 -0
- package/dist/task/task-queue.d.ts +7 -0
- package/dist/task/task-queue.d.ts.map +1 -0
- package/dist/task/task-repo-context.d.ts +2 -0
- package/dist/task/task-repo-context.d.ts.map +1 -1
- package/dist/task/task-repo-validation.d.ts +46 -0
- package/dist/task/task-repo-validation.d.ts.map +1 -0
- package/dist/task/task.api.d.ts +5 -47
- package/dist/task/task.api.d.ts.map +1 -1
- package/dist/task/task.constant.d.ts +4 -0
- package/dist/task/task.constant.d.ts.map +1 -0
- package/dist/task/task.interface.d.ts +3 -1
- package/dist/task/task.interface.d.ts.map +1 -1
- package/dist/trigger/trigger-manager.d.ts +25 -0
- package/dist/trigger/trigger-manager.d.ts.map +1 -0
- package/dist/trigger/trigger-node.d.ts +23 -0
- package/dist/trigger/trigger-node.d.ts.map +1 -0
- package/dist/trigger/trigger.api.d.ts +140 -0
- package/dist/trigger/trigger.api.d.ts.map +1 -0
- package/dist/trigger/trigger.constant.d.ts +8 -0
- package/dist/trigger/trigger.constant.d.ts.map +1 -0
- package/dist/trigger/trigger.interface.d.ts +87 -0
- package/dist/trigger/trigger.interface.d.ts.map +1 -0
- package/dist/trigger/trigger.utils.d.ts +6 -0
- package/dist/trigger/trigger.utils.d.ts.map +1 -0
- package/dist/word/word.api.d.ts +1 -1
- package/dist/word/word.api.d.ts.map +1 -1
- package/dist/word/word.interface.d.ts +2 -2
- package/dist/word/word.interface.d.ts.map +1 -1
- package/package.json +91 -61
- package/src/browser.ts +165 -0
- package/src/command/command.api.ts +20 -18
- package/src/command/command.interface.ts +2 -3
- package/src/core.api.ts +466 -477
- package/src/core.interface.ts +63 -62
- package/src/core.utils.ts +64 -64
- package/src/idea/idea.interface.ts +3 -3
- package/src/index.ts +2 -79
- package/src/link/link.api.ts +28 -30
- package/src/link/link.interface.ts +4 -5
- package/src/list/list.api.ts +50 -29
- package/src/list/list.interface.ts +3 -4
- package/src/node/env/env-parsers.ts +77 -0
- package/src/node/env/index.ts +10 -0
- package/src/node/env/init-supabase-from-env.ts +38 -0
- package/src/node/env/load-env.ts +67 -0
- package/src/node/env/project-root.ts +34 -0
- package/src/node/env/public-base-url.ts +18 -0
- package/src/node/env/require-env.ts +15 -0
- package/src/node/fs/json-state-store.ts +97 -0
- package/src/node/fs/read-source-file.ts +75 -0
- package/src/node/node-liveness.ts +80 -0
- package/src/node/node-runtime.base.ts +481 -0
- package/src/node/node.api.ts +12 -11
- package/src/node/node.interface.ts +1 -8
- package/src/node/node.utils.ts +1 -1
- package/src/node/preload/run-service-preload.ts +48 -0
- package/src/node/preload/service-preload.interface.ts +14 -0
- package/src/node/process/index.ts +8 -0
- package/src/node/process/managed-child-processes.ts +121 -0
- package/src/node/process/process-spawn.ts +61 -0
- package/src/node/readiness/index.ts +20 -0
- package/src/node/readiness/poll-until.ts +27 -0
- package/src/node/readiness/readiness-checks.ts +79 -0
- package/src/node/readiness/readiness.types.ts +13 -0
- package/src/node/readiness/run-readiness-checks.ts +20 -0
- package/src/node/readiness/service-ready-gate.ts +65 -0
- package/src/node.ts +153 -0
- package/src/parcel/chunk-fetch-registry.ts +96 -0
- package/src/parcel/chunk-url.utils.ts +30 -0
- package/src/parcel/parcel-manager.ts +431 -173
- package/src/parcel/parcel.api.ts +103 -0
- package/src/parcel/parcel.interface.ts +44 -23
- package/src/parcel/parcel.service.ts +79 -0
- package/src/parcel/storage-provider-registry.ts +49 -0
- package/src/parcel/storage-provider.types.ts +45 -0
- package/src/preload.ts +7 -0
- package/src/repo/repo-context.utils.ts +3 -4
- package/src/repo/repo-manager.ts +54 -39
- package/src/repo/repo.api.ts +5 -5
- package/src/repo/repo.interface.ts +1 -2
- package/src/repo/repo.script-loader.ts +16 -20
- package/src/service/base.interface.ts +81 -90
- package/src/service/index.ts +173 -0
- package/src/service/service.api.ts +294 -0
- package/src/service/service.interface.ts +49 -17
- package/src/shared/http/fetch-retry.ts +145 -0
- package/src/shared/log/create-logger.ts +51 -0
- package/src/shared/log/enable-log-persist.ts +225 -0
- package/src/shared/log/index.ts +31 -0
- package/src/shared/log/log-manager.ts +112 -121
- package/src/shared/log/log-persist-batch-id.ts +43 -0
- package/src/shared/log/log-persist-flush.ts +128 -0
- package/src/shared/log/log-persist-hook.ts +13 -0
- package/src/shared/log/log-persist-logger.ts +33 -0
- package/src/shared/log/log-persist-registry.ts +109 -0
- package/src/shared/log/log-persist.config.ts +97 -0
- package/src/shared/log/log-persist.interface.ts +132 -0
- package/src/shared/log/log-persist.ts +704 -0
- package/src/shared/log/log-scope.ts +123 -0
- package/src/shared/utils/config-path.utils.ts +1 -1
- package/src/shared/utils/fetch-url.ts +13 -0
- package/src/shared/utils/network-error.ts +152 -0
- package/src/shared/utils/safe-file-name.ts +37 -0
- package/src/shared/utils/sha256.ts +15 -0
- package/src/supabase.ts +125 -119
- package/src/task/index.ts +45 -0
- package/src/task/local-task-registry.ts +115 -36
- package/src/task/task-manager.ts +101 -113
- package/src/task/task-node.ts +302 -0
- package/src/task/task-post-validated.api.ts +47 -0
- package/src/task/task-post.api.ts +99 -0
- package/src/task/task-queue.ts +18 -0
- package/src/task/task-repo-context.ts +4 -1
- package/src/task/task-repo-validation.ts +169 -0
- package/src/task/task.api.ts +68 -92
- package/src/task/task.constant.ts +4 -0
- package/src/task/task.interface.ts +6 -7
- package/src/trigger/trigger-manager.ts +287 -0
- package/src/trigger/trigger-node.ts +80 -0
- package/src/trigger/trigger.api.ts +166 -0
- package/src/trigger/trigger.constant.ts +10 -0
- package/src/trigger/trigger.interface.ts +100 -0
- package/src/trigger/trigger.utils.ts +56 -0
- package/src/word/word.api.ts +28 -30
- package/src/word/word.interface.ts +3 -4
- package/dist/auth/auth.api.d.ts +0 -28
- package/dist/auth/auth.api.d.ts.map +0 -1
- package/dist/auth/auth.api.js +0 -51
- package/dist/auth/auth.api.js.map +0 -1
- package/dist/command/command.api.js +0 -58
- package/dist/command/command.api.js.map +0 -1
- package/dist/command/command.interface.js +0 -9
- package/dist/command/command.interface.js.map +0 -1
- package/dist/core.api.js +0 -412
- package/dist/core.api.js.map +0 -1
- package/dist/core.interface.js +0 -46
- package/dist/core.interface.js.map +0 -1
- package/dist/core.utils.js +0 -81
- package/dist/core.utils.js.map +0 -1
- package/dist/feed/feed.interface.d.ts +0 -27
- package/dist/feed/feed.interface.d.ts.map +0 -1
- package/dist/feed/feed.interface.js +0 -17
- package/dist/feed/feed.interface.js.map +0 -1
- package/dist/file/file-manager.d.ts +0 -24
- package/dist/file/file-manager.d.ts.map +0 -1
- package/dist/file/file-manager.js +0 -109
- package/dist/file/file-manager.js.map +0 -1
- package/dist/file/file.api.d.ts +0 -15
- package/dist/file/file.api.d.ts.map +0 -1
- package/dist/file/file.api.js +0 -30
- package/dist/file/file.api.js.map +0 -1
- package/dist/file/file.interface.d.ts +0 -25
- package/dist/file/file.interface.d.ts.map +0 -1
- package/dist/file/file.interface.js +0 -9
- package/dist/file/file.interface.js.map +0 -1
- package/dist/file-list/file-list.api.d.ts +0 -15
- package/dist/file-list/file-list.api.d.ts.map +0 -1
- package/dist/file-list/file-list.api.js +0 -54
- package/dist/file-list/file-list.api.js.map +0 -1
- package/dist/file-list/file-list.interface.d.ts +0 -22
- package/dist/file-list/file-list.interface.d.ts.map +0 -1
- package/dist/file-list/file-list.interface.js +0 -5
- package/dist/file-list/file-list.interface.js.map +0 -1
- package/dist/idea/idea.interface.js +0 -15
- package/dist/idea/idea.interface.js.map +0 -1
- package/dist/index.js +0 -42
- package/dist/index.js.map +0 -1
- package/dist/link/link.api.js +0 -30
- package/dist/link/link.api.js.map +0 -1
- package/dist/link/link.interface.js +0 -7
- package/dist/link/link.interface.js.map +0 -1
- package/dist/list/list.api.js +0 -30
- package/dist/list/list.api.js.map +0 -1
- package/dist/list/list.interface.js +0 -6
- package/dist/list/list.interface.js.map +0 -1
- package/dist/node/node-manager.d.ts +0 -48
- package/dist/node/node-manager.d.ts.map +0 -1
- package/dist/node/node-manager.js +0 -619
- package/dist/node/node-manager.js.map +0 -1
- package/dist/node/node-task.preset.d.ts +0 -1
- package/dist/node/node-task.preset.d.ts.map +0 -1
- package/dist/node/node-task.preset.js +0 -14
- package/dist/node/node-task.preset.js.map +0 -1
- package/dist/node/node.api.js +0 -100
- package/dist/node/node.api.js.map +0 -1
- package/dist/node/node.interface.js +0 -19
- package/dist/node/node.interface.js.map +0 -1
- package/dist/node/node.utils.js +0 -36
- package/dist/node/node.utils.js.map +0 -1
- package/dist/parcel/parcel-manager.js +0 -156
- package/dist/parcel/parcel-manager.js.map +0 -1
- package/dist/parcel/parcel.interface.js +0 -11
- package/dist/parcel/parcel.interface.js.map +0 -1
- package/dist/question-list/question-list.api.d.ts +0 -13
- package/dist/question-list/question-list.api.d.ts.map +0 -1
- package/dist/question-list/question-list.api.js +0 -35
- package/dist/question-list/question-list.api.js.map +0 -1
- package/dist/question-list/question-list.interface.d.ts +0 -18
- package/dist/question-list/question-list.interface.d.ts.map +0 -1
- package/dist/question-list/question-list.interface.js +0 -5
- package/dist/question-list/question-list.interface.js.map +0 -1
- package/dist/repo/repo-context.utils.js +0 -81
- package/dist/repo/repo-context.utils.js.map +0 -1
- package/dist/repo/repo-manager.js +0 -156
- package/dist/repo/repo-manager.js.map +0 -1
- package/dist/repo/repo.api.js +0 -40
- package/dist/repo/repo.api.js.map +0 -1
- package/dist/repo/repo.interface.js +0 -8
- package/dist/repo/repo.interface.js.map +0 -1
- package/dist/repo/repo.script-loader.js +0 -108
- package/dist/repo/repo.script-loader.js.map +0 -1
- package/dist/review/review.api.d.ts +0 -14
- package/dist/review/review.api.d.ts.map +0 -1
- package/dist/review/review.api.js +0 -133
- package/dist/review/review.api.js.map +0 -1
- package/dist/review/review.interface.d.ts +0 -24
- package/dist/review/review.interface.d.ts.map +0 -1
- package/dist/review/review.interface.js +0 -10
- package/dist/review/review.interface.js.map +0 -1
- package/dist/review-v2/apis/post-review-setting.api.d.ts +0 -12
- package/dist/review-v2/apis/post-review-setting.api.d.ts.map +0 -1
- package/dist/review-v2/apis/post-review-setting.api.js +0 -27
- package/dist/review-v2/apis/post-review-setting.api.js.map +0 -1
- package/dist/review-v2/apis/post-review.api.d.ts +0 -13
- package/dist/review-v2/apis/post-review.api.d.ts.map +0 -1
- package/dist/review-v2/apis/post-review.api.js +0 -46
- package/dist/review-v2/apis/post-review.api.js.map +0 -1
- package/dist/review-v2/review-setting.interface.d.ts +0 -23
- package/dist/review-v2/review-setting.interface.d.ts.map +0 -1
- package/dist/review-v2/review-setting.interface.js +0 -5
- package/dist/review-v2/review-setting.interface.js.map +0 -1
- package/dist/review-v2/review.interface.d.ts +0 -20
- package/dist/review-v2/review.interface.d.ts.map +0 -1
- package/dist/review-v2/review.interface.js +0 -5
- package/dist/review-v2/review.interface.js.map +0 -1
- package/dist/service/api.interface.d.ts +0 -35
- package/dist/service/api.interface.d.ts.map +0 -1
- package/dist/service/api.interface.js +0 -12
- package/dist/service/api.interface.js.map +0 -1
- package/dist/service/base.interface.js +0 -7
- package/dist/service/base.interface.js.map +0 -1
- package/dist/service/service.interface.js +0 -11
- package/dist/service/service.interface.js.map +0 -1
- package/dist/shared/log/create-api-logger.d.ts +0 -17
- package/dist/shared/log/create-api-logger.d.ts.map +0 -1
- package/dist/shared/log/create-api-logger.js +0 -15
- package/dist/shared/log/create-api-logger.js.map +0 -1
- package/dist/shared/log/log-manager.js +0 -218
- package/dist/shared/log/log-manager.js.map +0 -1
- package/dist/shared/utils/config-path.utils.js +0 -85
- package/dist/shared/utils/config-path.utils.js.map +0 -1
- package/dist/shared/utils/error.utils.js +0 -15
- package/dist/shared/utils/error.utils.js.map +0 -1
- package/dist/shared/utils/id.utils.js +0 -5
- package/dist/shared/utils/id.utils.js.map +0 -1
- package/dist/supabase.js +0 -100
- package/dist/supabase.js.map +0 -1
- package/dist/task/local-task-registry.js +0 -153
- package/dist/task/local-task-registry.js.map +0 -1
- package/dist/task/task-manager.js +0 -217
- package/dist/task/task-manager.js.map +0 -1
- package/dist/task/task-repo-context.js +0 -12
- package/dist/task/task-repo-context.js.map +0 -1
- package/dist/task/task.api.js +0 -351
- package/dist/task/task.api.js.map +0 -1
- package/dist/task/task.interface.js +0 -36
- package/dist/task/task.interface.js.map +0 -1
- package/dist/task/task.utils.js +0 -2
- package/dist/task/task.utils.js.map +0 -1
- package/dist/word/word.api.js +0 -30
- package/dist/word/word.api.js.map +0 -1
- package/dist/word/word.interface.js +0 -6
- package/dist/word/word.interface.js.map +0 -1
- package/src/auth/auth.api.ts +0 -87
- package/src/feed/feed.interface.ts +0 -33
- package/src/file/file-manager.ts +0 -145
- package/src/file/file.api.ts +0 -43
- package/src/file/file.interface.ts +0 -30
- package/src/file-list/file-list.api.ts +0 -64
- package/src/file-list/file-list.interface.ts +0 -24
- package/src/node/node-manager.ts +0 -673
- package/src/node/node-task.preset.ts +0 -13
- package/src/question-list/question-list.api.ts +0 -42
- package/src/question-list/question-list.interface.ts +0 -21
- package/src/review/review.api.ts +0 -145
- package/src/review/review.interface.ts +0 -26
- package/src/review-v2/apis/post-review-setting.api.ts +0 -35
- package/src/review-v2/apis/post-review.api.ts +0 -59
- package/src/review-v2/review-setting.interface.ts +0 -26
- package/src/review-v2/review.interface.ts +0 -23
- package/src/service/api.interface.ts +0 -47
- package/src/shared/log/create-api-logger.ts +0 -25
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { createTarget, scanTargetList, updateTargetDetails, validateWithSchema } from "../core.api";
|
|
3
|
+
import { generateResponse, type SupabaseResponse } from "../core.interface";
|
|
4
|
+
import { createLogger } from "../shared/log";
|
|
5
|
+
import { TaskStatus } from "../task/task.interface";
|
|
6
|
+
import {
|
|
7
|
+
CategoryTrigger,
|
|
8
|
+
type Trigger,
|
|
9
|
+
type TriggerAction,
|
|
10
|
+
type TriggerSchedule,
|
|
11
|
+
TriggerStatus,
|
|
12
|
+
} from "./trigger.interface";
|
|
13
|
+
|
|
14
|
+
const TRIGGER_STATUS_FIELD = "details->>status" as const;
|
|
15
|
+
|
|
16
|
+
const traceIdSchema = z.string().trim().min(1).optional();
|
|
17
|
+
|
|
18
|
+
const dailyScheduleSchema = z.object({
|
|
19
|
+
kind: z.literal("daily"),
|
|
20
|
+
hour: z.number().int().min(0).max(23),
|
|
21
|
+
minute: z.number().int().min(0).max(59),
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
const postTaskActionSchema = z.object({
|
|
25
|
+
kind: z.literal("post_task"),
|
|
26
|
+
taskTypeKey: z.string().trim().min(1),
|
|
27
|
+
taskParams: z.unknown(),
|
|
28
|
+
taskName: z.string().trim().min(1).optional(),
|
|
29
|
+
taskStatus: z.enum([TaskStatus.OPEN, TaskStatus.TODO]).optional(),
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
export const postTriggerSchema = z.object({
|
|
33
|
+
name: z.string().trim().min(1),
|
|
34
|
+
value: z.string().trim().min(1),
|
|
35
|
+
status: z.nativeEnum(TriggerStatus).optional().default(TriggerStatus.ENABLED),
|
|
36
|
+
schedule: dailyScheduleSchema,
|
|
37
|
+
action: postTaskActionSchema,
|
|
38
|
+
tagList: z.array(z.string()).optional().default([]),
|
|
39
|
+
traceId: traceIdSchema,
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
export type PostTriggerPayload = z.infer<typeof postTriggerSchema>;
|
|
43
|
+
|
|
44
|
+
export const scanEnabledTriggersSchema = z.object({
|
|
45
|
+
traceId: traceIdSchema,
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
export type ScanEnabledTriggersPayload = z.infer<typeof scanEnabledTriggersSchema>;
|
|
49
|
+
|
|
50
|
+
export const patchTriggerFiredSchema = z.object({
|
|
51
|
+
triggerId: z.string().trim().min(1),
|
|
52
|
+
fireKey: z.string().trim().min(1),
|
|
53
|
+
expectedLastFireKey: z.string().nullable().optional(),
|
|
54
|
+
traceId: traceIdSchema,
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
export type PatchTriggerFiredPayload = z.infer<typeof patchTriggerFiredSchema>;
|
|
58
|
+
|
|
59
|
+
function enabledTriggerFilter() {
|
|
60
|
+
return [{ field: TRIGGER_STATUS_FIELD, operator: "eq" as const, value: TriggerStatus.ENABLED }];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/** List all ENABLED triggers (Phase 1: in-memory due check). */
|
|
64
|
+
export const scanEnabledTriggers = validateWithSchema(
|
|
65
|
+
scanEnabledTriggersSchema,
|
|
66
|
+
"scanEnabledTriggersSchema",
|
|
67
|
+
)(async ({ traceId }) => {
|
|
68
|
+
const logger = createLogger({ module: "scanEnabledTriggers", traceId });
|
|
69
|
+
|
|
70
|
+
try {
|
|
71
|
+
const { data: triggerList } = await scanTargetList<Trigger>({
|
|
72
|
+
category: CategoryTrigger.TRIGGER,
|
|
73
|
+
filterList: enabledTriggerFilter(),
|
|
74
|
+
orderBy: { field: "created_at", ascending: true },
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
const rows = triggerList ?? [];
|
|
78
|
+
logger.debug("已掃描 ENABLED Trigger", {
|
|
79
|
+
topic: "trigger",
|
|
80
|
+
data: { count: rows.length },
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
return generateResponse.success(rows);
|
|
84
|
+
} catch (error) {
|
|
85
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
86
|
+
return generateResponse.error(message) as SupabaseResponse<Trigger[]>;
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
/** Create a trigger row (scheduler / admin). */
|
|
91
|
+
export const postTrigger = validateWithSchema(
|
|
92
|
+
postTriggerSchema,
|
|
93
|
+
"postTriggerSchema",
|
|
94
|
+
)(async ({ name, value, status, schedule, action, tagList, traceId }) => {
|
|
95
|
+
const logger = createLogger({ module: "postTrigger", traceId });
|
|
96
|
+
|
|
97
|
+
const details = {
|
|
98
|
+
manifestVersion: 0,
|
|
99
|
+
status,
|
|
100
|
+
schedule: schedule as TriggerSchedule,
|
|
101
|
+
action: action as TriggerAction,
|
|
102
|
+
lastFiredAt: null,
|
|
103
|
+
lastFireKey: null,
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
const result = await createTarget<Trigger, PostTriggerPayload>({
|
|
107
|
+
payload: { name, value, status, schedule, action, tagList, traceId },
|
|
108
|
+
createFn: () => ({
|
|
109
|
+
name,
|
|
110
|
+
value,
|
|
111
|
+
category: CategoryTrigger.TRIGGER,
|
|
112
|
+
tagList,
|
|
113
|
+
details,
|
|
114
|
+
}),
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
logger.info("Trigger 已創建", {
|
|
118
|
+
topic: "trigger",
|
|
119
|
+
data: { triggerId: result.data?.id, triggerKey: value, status },
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
return result;
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Mark trigger as fired for `fireKey`.
|
|
127
|
+
* When `expectedLastFireKey` is set, uses optimistic lock on that field.
|
|
128
|
+
*/
|
|
129
|
+
export const patchTriggerFired = validateWithSchema(
|
|
130
|
+
patchTriggerFiredSchema,
|
|
131
|
+
"patchTriggerFiredSchema",
|
|
132
|
+
)(async ({ triggerId, fireKey, expectedLastFireKey, traceId }) => {
|
|
133
|
+
const logger = createLogger({ module: "patchTriggerFired", traceId });
|
|
134
|
+
const now = Date.now();
|
|
135
|
+
|
|
136
|
+
try {
|
|
137
|
+
const optimisticLockFilterList =
|
|
138
|
+
expectedLastFireKey != null && expectedLastFireKey !== ""
|
|
139
|
+
? [{ field: "details->>lastFireKey" as const, operator: "eq" as const, value: expectedLastFireKey }]
|
|
140
|
+
: [];
|
|
141
|
+
|
|
142
|
+
const data = await updateTargetDetails<Trigger, Trigger["details"]>({
|
|
143
|
+
id: triggerId,
|
|
144
|
+
optimisticLockFilterList,
|
|
145
|
+
updateFn: (current) => ({
|
|
146
|
+
...current,
|
|
147
|
+
lastFireKey: fireKey,
|
|
148
|
+
lastFiredAt: now,
|
|
149
|
+
}),
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
logger.success("Trigger 觸發記錄已更新", {
|
|
153
|
+
topic: "trigger",
|
|
154
|
+
data: { triggerId, fireKey },
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
return generateResponse.success(data);
|
|
158
|
+
} catch (error) {
|
|
159
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
160
|
+
logger.warn("Trigger 觸發記錄更新失敗", {
|
|
161
|
+
topic: "trigger",
|
|
162
|
+
data: { triggerId, fireKey, error: message },
|
|
163
|
+
});
|
|
164
|
+
return generateResponse.error(message);
|
|
165
|
+
}
|
|
166
|
+
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const LOG_TOPIC_TRIGGER = "trigger";
|
|
2
|
+
|
|
3
|
+
/** Fixed main-loop interval for {@link TriggerNode} (ms). */
|
|
4
|
+
export const TRIGGER_LOOP_INTERVAL_MS = 60_000;
|
|
5
|
+
|
|
6
|
+
/** Default extra retries after first failure within one runner tick. */
|
|
7
|
+
export const TRIGGER_RUNNER_DEFAULT_RETRY_COUNT = 3;
|
|
8
|
+
|
|
9
|
+
/** Default delay between retry attempts within the same tick (ms). */
|
|
10
|
+
export const TRIGGER_RUNNER_DEFAULT_RETRY_DELAY_MS = 0;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { Target } from "../core.interface";
|
|
2
|
+
import type { LoggerWithScope } from "../shared/log";
|
|
3
|
+
import type { TaskStatus } from "../task/task.interface";
|
|
4
|
+
|
|
5
|
+
export enum CategoryTrigger {
|
|
6
|
+
TRIGGER = "trigger",
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export enum TriggerStatus {
|
|
10
|
+
ENABLED = "ENABLED",
|
|
11
|
+
DISABLED = "DISABLED",
|
|
12
|
+
PAUSED = "PAUSED",
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/** Phase 1: daily fire at `hour`:`minute` UTC. */
|
|
16
|
+
export interface TriggerDailySchedule {
|
|
17
|
+
kind: "daily";
|
|
18
|
+
hour: number;
|
|
19
|
+
minute: number;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export type TriggerSchedule = TriggerDailySchedule;
|
|
23
|
+
|
|
24
|
+
export interface TriggerPostTaskAction {
|
|
25
|
+
kind: "post_task";
|
|
26
|
+
taskTypeKey: string;
|
|
27
|
+
taskParams: unknown;
|
|
28
|
+
taskName?: string;
|
|
29
|
+
taskStatus?: TaskStatus.OPEN | TaskStatus.TODO;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export type TriggerAction = TriggerPostTaskAction;
|
|
33
|
+
|
|
34
|
+
export interface Trigger extends Target {
|
|
35
|
+
/** Human readable */
|
|
36
|
+
name: string;
|
|
37
|
+
/** Unique trigger key */
|
|
38
|
+
value: string;
|
|
39
|
+
details: TriggerDetails;
|
|
40
|
+
category: CategoryTrigger;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface TriggerDetails {
|
|
44
|
+
manifestVersion: number;
|
|
45
|
+
status: TriggerStatus;
|
|
46
|
+
schedule: TriggerSchedule;
|
|
47
|
+
action: TriggerAction;
|
|
48
|
+
lastFiredAt?: number | null;
|
|
49
|
+
/** Idempotency key for the last successful fire, e.g. `daily:2026-06-18` (UTC date). */
|
|
50
|
+
lastFireKey?: string | null;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// ─── TriggerNode local runners ───────────────────────────────────────────────
|
|
54
|
+
|
|
55
|
+
/** Context passed to each runner invocation. */
|
|
56
|
+
export interface TriggerRunnerContext {
|
|
57
|
+
loopTraceId: string;
|
|
58
|
+
nodeId: string;
|
|
59
|
+
runnerKey: string;
|
|
60
|
+
logger: LoggerWithScope;
|
|
61
|
+
/** 1-based attempt index within this tick (includes retries). */
|
|
62
|
+
attempt: number;
|
|
63
|
+
maxAttempts: number;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export type TriggerRunnerFn = (ctx: TriggerRunnerContext) => void | Promise<void>;
|
|
67
|
+
|
|
68
|
+
export interface RegisterTriggerRunnerOptions {
|
|
69
|
+
/** Unique runner key within this process (trimmed; must be non-empty). */
|
|
70
|
+
key: string;
|
|
71
|
+
/** Minimum ms between tick starts for this runner. */
|
|
72
|
+
intervalMs: number;
|
|
73
|
+
fn: TriggerRunnerFn;
|
|
74
|
+
/** Delay first run after registration. Default `0`. */
|
|
75
|
+
initialDelayMs?: number;
|
|
76
|
+
/**
|
|
77
|
+
* Extra attempts after the first failure within the same tick.
|
|
78
|
+
* Default {@link TRIGGER_RUNNER_DEFAULT_RETRY_COUNT} from `./trigger.constant`.
|
|
79
|
+
*/
|
|
80
|
+
retryCount?: number;
|
|
81
|
+
/**
|
|
82
|
+
* Delay between retry attempts within the same tick (ms).
|
|
83
|
+
* Default {@link TRIGGER_RUNNER_DEFAULT_RETRY_DELAY_MS} (`0` = immediate).
|
|
84
|
+
*/
|
|
85
|
+
retryDelayMs?: number;
|
|
86
|
+
/**
|
|
87
|
+
* Max ms per fn invocation; rejects when exceeded.
|
|
88
|
+
* Does not cancel in-flight work — fn may still run after timeout. Omit for no limit.
|
|
89
|
+
*/
|
|
90
|
+
timeoutMs?: number;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/** Options for {@link TriggerNode}. */
|
|
94
|
+
export interface TriggerNodeOptions {
|
|
95
|
+
/**
|
|
96
|
+
* When true, bootstrap aborts if no runners were registered before `start()`.
|
|
97
|
+
* Default `false` (warn and idle loop).
|
|
98
|
+
*/
|
|
99
|
+
requireRunners?: boolean;
|
|
100
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { Trigger, TriggerDailySchedule } from "./trigger.interface";
|
|
2
|
+
|
|
3
|
+
interface UtcDateParts {
|
|
4
|
+
year: number;
|
|
5
|
+
month: number;
|
|
6
|
+
day: number;
|
|
7
|
+
hour: number;
|
|
8
|
+
minute: number;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function parseUtcDateParts(now: Date): UtcDateParts {
|
|
12
|
+
return {
|
|
13
|
+
year: now.getUTCFullYear(),
|
|
14
|
+
month: now.getUTCMonth() + 1,
|
|
15
|
+
day: now.getUTCDate(),
|
|
16
|
+
hour: now.getUTCHours(),
|
|
17
|
+
minute: now.getUTCMinutes(),
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function buildDailyFireKey(_schedule: TriggerDailySchedule, now: Date): string {
|
|
22
|
+
const { year, month, day } = parseUtcDateParts(now);
|
|
23
|
+
const yyyy = String(year).padStart(4, "0");
|
|
24
|
+
const mm = String(month).padStart(2, "0");
|
|
25
|
+
const dd = String(day).padStart(2, "0");
|
|
26
|
+
return `daily:${yyyy}-${mm}-${dd}`;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function isDailyScheduleDue(
|
|
30
|
+
schedule: TriggerDailySchedule,
|
|
31
|
+
now: Date,
|
|
32
|
+
lastFireKey: string | null | undefined,
|
|
33
|
+
): boolean {
|
|
34
|
+
const parts = parseUtcDateParts(now);
|
|
35
|
+
if (parts.hour !== schedule.hour || parts.minute !== schedule.minute) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
const fireKey = buildDailyFireKey(schedule, now);
|
|
39
|
+
return lastFireKey !== fireKey;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function isTriggerDue(trigger: Trigger, now: Date = new Date()): boolean {
|
|
43
|
+
const { schedule, lastFireKey } = trigger.details;
|
|
44
|
+
if (schedule.kind !== "daily") {
|
|
45
|
+
throw new Error(`Unsupported trigger schedule kind: ${String((schedule as { kind?: string }).kind)}`);
|
|
46
|
+
}
|
|
47
|
+
return isDailyScheduleDue(schedule, now, lastFireKey);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function buildFireKey(trigger: Trigger, now: Date = new Date()): string {
|
|
51
|
+
const { schedule } = trigger.details;
|
|
52
|
+
if (schedule.kind !== "daily") {
|
|
53
|
+
throw new Error(`Unsupported trigger schedule kind: ${String((schedule as { kind?: string }).kind)}`);
|
|
54
|
+
}
|
|
55
|
+
return buildDailyFireKey(schedule, now);
|
|
56
|
+
}
|
package/src/word/word.api.ts
CHANGED
|
@@ -1,43 +1,41 @@
|
|
|
1
1
|
import { createTarget } from "../core.api";
|
|
2
2
|
import { BaseValidator } from "../core.utils";
|
|
3
|
-
import { Word, WordDetails } from "./word.interface";
|
|
3
|
+
import type { Word, WordDetails } from "./word.interface";
|
|
4
4
|
|
|
5
5
|
export interface PostWordPayload {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
name: Word["name"];
|
|
7
|
+
value: Word["value"];
|
|
8
|
+
category: Word["category"];
|
|
9
|
+
details: WordDetails;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export class PostWordValidator extends BaseValidator<PostWordPayload> {
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
protected requiredFields: (keyof PostWordPayload)[] = ["name", "value", "category", "details"];
|
|
14
|
+
protected optionalFields: (keyof PostWordPayload)[] = [];
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
constructor() {
|
|
17
|
+
super();
|
|
18
|
+
// Add custom
|
|
19
|
+
this.addCustomValidator((_val) => {
|
|
20
|
+
return true;
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
25
|
export const postWord = async (payload: PostWordPayload) => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
return createTarget<Word, PostWordPayload>({
|
|
27
|
+
payload: payload,
|
|
28
|
+
validator: PostWordValidator,
|
|
29
|
+
createFn: (validPayload) => {
|
|
30
|
+
const { name, value, category, details } = validPayload;
|
|
33
31
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
32
|
+
return {
|
|
33
|
+
name,
|
|
34
|
+
category,
|
|
35
|
+
value,
|
|
36
|
+
tagList: [],
|
|
37
|
+
details,
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
});
|
|
43
41
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Target } from "../core.interface";
|
|
2
|
-
import { Link } from "../link/link.interface";
|
|
1
|
+
import type { Target } from "../core.interface";
|
|
2
|
+
import type { Link } from "../link/link.interface";
|
|
3
3
|
|
|
4
4
|
export enum CategoryWord {
|
|
5
5
|
WORD = "word",
|
|
@@ -19,5 +19,4 @@ export interface WordDetails {
|
|
|
19
19
|
extensions: string[];
|
|
20
20
|
scope: string;
|
|
21
21
|
reviewList: Array<string | Link>;
|
|
22
|
-
}
|
|
23
|
-
|
|
22
|
+
}
|
package/dist/auth/auth.api.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export interface LoginPayload {
|
|
2
|
-
email: string;
|
|
3
|
-
password: string;
|
|
4
|
-
}
|
|
5
|
-
export interface RegisterPayload {
|
|
6
|
-
email: string;
|
|
7
|
-
password: string;
|
|
8
|
-
confirmPassword?: string;
|
|
9
|
-
}
|
|
10
|
-
export interface User {
|
|
11
|
-
id: string;
|
|
12
|
-
email: string;
|
|
13
|
-
created_at: string;
|
|
14
|
-
last_sign_in_at?: string;
|
|
15
|
-
}
|
|
16
|
-
export declare const registerUser: ({ email, password }: RegisterPayload) => Promise<import("..").SupabaseResponse<{
|
|
17
|
-
user: import("@supabase/supabase-js").AuthUser | null;
|
|
18
|
-
session: import("@supabase/supabase-js").AuthSession | null;
|
|
19
|
-
}>>;
|
|
20
|
-
export declare const loginUser: ({ email, password }: LoginPayload) => Promise<import("..").SupabaseResponse<{
|
|
21
|
-
user: import("@supabase/supabase-js").AuthUser;
|
|
22
|
-
session: import("@supabase/supabase-js").AuthSession;
|
|
23
|
-
weakPassword?: import("@supabase/supabase-js").WeakPassword;
|
|
24
|
-
}>>;
|
|
25
|
-
export declare const logoutUser: () => Promise<import("..").SupabaseResponse<unknown>>;
|
|
26
|
-
export declare const getCurrentUser: () => Promise<import("..").SupabaseResponse<User | null>>;
|
|
27
|
-
export declare const resetPassword: (email: string) => Promise<import("..").SupabaseResponse<unknown>>;
|
|
28
|
-
//# sourceMappingURL=auth.api.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.api.d.ts","sourceRoot":"","sources":["../../src/auth/auth.api.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAGD,eAAO,MAAM,YAAY,wBAA+B,eAAe;;;GAWtE,CAAC;AAGF,eAAO,MAAM,SAAS,wBAA+B,YAAY;;;;GAWhE,CAAC;AAGF,eAAO,MAAM,UAAU,uDAQtB,CAAC;AAGF,eAAO,MAAM,cAAc,2DAW1B,CAAC;AAGF,eAAO,MAAM,aAAa,UAAiB,MAAM,oDAQhD,CAAC"}
|
package/dist/auth/auth.api.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { SupabaseInitializer } from "../supabase";
|
|
2
|
-
import { generateResponse } from "../core.interface";
|
|
3
|
-
import { handleSupabaseError } from "../core.utils";
|
|
4
|
-
const supabase = SupabaseInitializer.getInstance();
|
|
5
|
-
// 用户注册
|
|
6
|
-
export const registerUser = async ({ email, password }) => {
|
|
7
|
-
const { data, error } = await supabase.authClient.auth.signUp({
|
|
8
|
-
email,
|
|
9
|
-
password,
|
|
10
|
-
});
|
|
11
|
-
if (error) {
|
|
12
|
-
handleSupabaseError("registerUser", error, "Registration failed. Please try again.");
|
|
13
|
-
}
|
|
14
|
-
return generateResponse.success(data);
|
|
15
|
-
};
|
|
16
|
-
// 用户登录
|
|
17
|
-
export const loginUser = async ({ email, password }) => {
|
|
18
|
-
const { data, error } = await supabase.authClient.auth.signInWithPassword({
|
|
19
|
-
email,
|
|
20
|
-
password,
|
|
21
|
-
});
|
|
22
|
-
if (error) {
|
|
23
|
-
handleSupabaseError("loginUser", error, "Login failed. Please check your credentials.");
|
|
24
|
-
}
|
|
25
|
-
return generateResponse.success(data);
|
|
26
|
-
};
|
|
27
|
-
// 用户登出
|
|
28
|
-
export const logoutUser = async () => {
|
|
29
|
-
const { error } = await supabase.authClient.auth.signOut();
|
|
30
|
-
if (error) {
|
|
31
|
-
handleSupabaseError("logoutUser", error, "Logout failed.");
|
|
32
|
-
}
|
|
33
|
-
return generateResponse.success();
|
|
34
|
-
};
|
|
35
|
-
// 获取当前用户
|
|
36
|
-
export const getCurrentUser = async () => {
|
|
37
|
-
const { data: { user }, error, } = await supabase.authClient.auth.getUser();
|
|
38
|
-
if (error) {
|
|
39
|
-
handleSupabaseError("getCurrentUser", error, "Failed to get current user.");
|
|
40
|
-
}
|
|
41
|
-
return generateResponse.success(user);
|
|
42
|
-
};
|
|
43
|
-
// 重置密码
|
|
44
|
-
export const resetPassword = async (email) => {
|
|
45
|
-
const { error } = await supabase.authClient.auth.resetPasswordForEmail(email);
|
|
46
|
-
if (error) {
|
|
47
|
-
handleSupabaseError("resetPassword", error, "Password reset request failed.");
|
|
48
|
-
}
|
|
49
|
-
return generateResponse.success();
|
|
50
|
-
};
|
|
51
|
-
//# sourceMappingURL=auth.api.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.api.js","sourceRoot":"","sources":["../../src/auth/auth.api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,WAAW,EAAE,CAAC;AAoBnD,OAAO;AACP,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAmB,EAAE,EAAE;IACzE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,UAAW,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7D,KAAK;QACL,QAAQ;KACT,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,CAAC;QACV,mBAAmB,CAAC,cAAc,EAAE,KAAK,EAAE,wCAAwC,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,OAAO;AACP,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAgB,EAAE,EAAE;IACnE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,UAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACzE,KAAK;QACL,QAAQ;KACT,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,CAAC;QACV,mBAAmB,CAAC,WAAW,EAAE,KAAK,EAAE,8CAA8C,CAAC,CAAC;IAC1F,CAAC;IAED,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,OAAO;AACP,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;IACnC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,UAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAE5D,IAAI,KAAK,EAAE,CAAC;QACV,mBAAmB,CAAC,YAAY,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,gBAAgB,CAAC,OAAO,EAAE,CAAC;AACpC,CAAC,CAAC;AAEF,SAAS;AACT,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;IACvC,MAAM,EACJ,IAAI,EAAE,EAAE,IAAI,EAAE,EACd,KAAK,GACN,GAAG,MAAM,QAAQ,CAAC,UAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAE9C,IAAI,KAAK,EAAE,CAAC;QACV,mBAAmB,CAAC,gBAAgB,EAAE,KAAK,EAAE,6BAA6B,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,gBAAgB,CAAC,OAAO,CAAc,IAAmB,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,OAAO;AACP,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IACnD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,UAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAE/E,IAAI,KAAK,EAAE,CAAC;QACV,mBAAmB,CAAC,eAAe,EAAE,KAAK,EAAE,gCAAgC,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,gBAAgB,CAAC,OAAO,EAAE,CAAC;AACpC,CAAC,CAAC"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { createTarget, MAX_POLL_TARGET_LIST_SIZE, pollTargetList, validateWithSchema, } from "../core.api";
|
|
2
|
-
import { generateResponse } from "../core.interface";
|
|
3
|
-
import { createApiLogger } from "../shared/log/log-manager";
|
|
4
|
-
import { z } from "zod";
|
|
5
|
-
import { CategoryCommand, CommandType } from "./command.interface";
|
|
6
|
-
const nodeIdSchema = z.string().trim().min(1);
|
|
7
|
-
const traceIdSchema = z.string().trim().min(1).optional();
|
|
8
|
-
// ─── Zod schemas ─────────────────────────────────────────────────────────────
|
|
9
|
-
export const postCommandSchema = z.object({
|
|
10
|
-
nodeId: nodeIdSchema,
|
|
11
|
-
command: z.nativeEnum(CommandType),
|
|
12
|
-
traceId: traceIdSchema,
|
|
13
|
-
});
|
|
14
|
-
export const getPollCommandListSchema = z.object({
|
|
15
|
-
nodeId: nodeIdSchema,
|
|
16
|
-
size: z.number().int().min(1).max(MAX_POLL_TARGET_LIST_SIZE).optional(),
|
|
17
|
-
traceId: traceIdSchema,
|
|
18
|
-
});
|
|
19
|
-
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
20
|
-
function commandNodeFilter(nodeId) {
|
|
21
|
-
return [{ field: "value", operator: "eq", value: nodeId }];
|
|
22
|
-
}
|
|
23
|
-
// ─── postCommand ─────────────────────────────────────────────────────────────
|
|
24
|
-
/** Enqueue a control command for `nodeId` (scheduler / admin). */
|
|
25
|
-
export const postCommand = validateWithSchema(postCommandSchema, "postCommandSchema")(async ({ nodeId, command, traceId }) => {
|
|
26
|
-
const logger = createApiLogger("postCommand", { traceId, nodeId });
|
|
27
|
-
const result = await createTarget({
|
|
28
|
-
payload: { nodeId, command, traceId },
|
|
29
|
-
createFn: () => ({
|
|
30
|
-
name: command,
|
|
31
|
-
value: nodeId,
|
|
32
|
-
category: CategoryCommand.COMMAND,
|
|
33
|
-
tagList: [],
|
|
34
|
-
}),
|
|
35
|
-
});
|
|
36
|
-
logger.info("Command已入隊", {
|
|
37
|
-
topic: "command",
|
|
38
|
-
context: { nodeId, command },
|
|
39
|
-
});
|
|
40
|
-
return result;
|
|
41
|
-
});
|
|
42
|
-
// ─── getPollCommandList ──────────────────────────────────────────────────────
|
|
43
|
-
/** Dequeue control commands for `nodeId` (oldest first). */
|
|
44
|
-
export const getPollCommandList = validateWithSchema(getPollCommandListSchema, "getPollCommandListSchema")(async ({ nodeId, size, traceId }) => {
|
|
45
|
-
const logger = createApiLogger("getPollCommandList", { traceId, nodeId });
|
|
46
|
-
const { data: dequeuedList = [] } = await pollTargetList({
|
|
47
|
-
category: CategoryCommand.COMMAND,
|
|
48
|
-
size: size ?? 50,
|
|
49
|
-
filterList: commandNodeFilter(nodeId),
|
|
50
|
-
ascending: true,
|
|
51
|
-
});
|
|
52
|
-
logger.info("Command", {
|
|
53
|
-
topic: "command",
|
|
54
|
-
context: { nodeId, dequeued: dequeuedList.length },
|
|
55
|
-
});
|
|
56
|
-
return generateResponse.success(dequeuedList);
|
|
57
|
-
});
|
|
58
|
-
//# sourceMappingURL=command.api.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command.api.js","sourceRoot":"","sources":["../../src/command/command.api.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,yBAAyB,EACzB,cAAc,EACd,kBAAkB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAW,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE5E,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9C,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAE1D,gFAAgF;AAEhF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC;IAClC,OAAO,EAAE,aAAa;CACzB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,QAAQ,EAAE;IACvE,OAAO,EAAE,aAAa;CACzB,CAAC,CAAC;AAIH,gFAAgF;AAEhF,SAAS,iBAAiB,CAAC,MAAc;IACrC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAa,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,gFAAgF;AAEhF,kEAAkE;AAClE,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CACzC,iBAAiB,EACjB,mBAAmB,CACtB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IACrC,MAAM,MAAM,GAAG,eAAe,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnE,MAAM,MAAM,GAAG,MAAM,YAAY,CAA8B;QAC3D,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;QACrC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YACb,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,eAAe,CAAC,OAAO;YACjC,OAAO,EAAE,EAAE;SACd,CAAC;KACL,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE;QACtB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;KAC/B,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAEhF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,kBAAkB,CAChD,wBAAwB,EACxB,0BAA0B,CAC7B,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;IAClC,MAAM,MAAM,GAAG,eAAe,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAE1E,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,MAAM,cAAc,CAAU;QAC9D,QAAQ,EAAE,eAAe,CAAC,OAAO;QACjC,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC;QACrC,SAAS,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE;QACnB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,MAAM,EAAE;KACrD,CAAC,CAAC;IAEH,OAAO,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export var CategoryCommand;
|
|
2
|
-
(function (CategoryCommand) {
|
|
3
|
-
CategoryCommand["COMMAND"] = "command";
|
|
4
|
-
})(CategoryCommand || (CategoryCommand = {}));
|
|
5
|
-
export var CommandType;
|
|
6
|
-
(function (CommandType) {
|
|
7
|
-
CommandType["STOP_NODE"] = "stop-node";
|
|
8
|
-
})(CommandType || (CommandType = {}));
|
|
9
|
-
//# sourceMappingURL=command.interface.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command.interface.js","sourceRoot":"","sources":["../../src/command/command.interface.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,eAEX;AAFD,WAAY,eAAe;IACvB,sCAAmB,CAAA;AACvB,CAAC,EAFW,eAAe,KAAf,eAAe,QAE1B;AAED,MAAM,CAAN,IAAY,WAEX;AAFD,WAAY,WAAW;IACnB,sCAAuB,CAAA;AAC3B,CAAC,EAFW,WAAW,KAAX,WAAW,QAEtB"}
|