target-supabase-sdk 0.2.14 → 0.2.16
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 +11 -0
- package/dist/browser.d.ts +5 -2
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +1 -1
- package/dist/chunks/{task-queue-qSnsfiIg.js → task-queue-Gi4DSq74.js} +162 -121
- package/dist/chunks/task-queue-Gi4DSq74.js.map +1 -0
- package/dist/config/config.api.d.ts +61 -0
- package/dist/config/config.api.d.ts.map +1 -0
- package/dist/{service → config}/config.interface.d.ts +1 -3
- package/dist/config/config.interface.d.ts.map +1 -0
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/node/runtime-state/service-runtime-state.types.d.ts +1 -1
- package/dist/node/runtime-state/service-runtime-state.types.d.ts.map +1 -1
- package/dist/node/service-guard/registry-slot-guard-step.d.ts +1 -1
- package/dist/node/service-guard/registry-slot-guard-step.d.ts.map +1 -1
- package/dist/node/service-guard/service-guard.interface.d.ts +1 -1
- package/dist/node/service-guard/service-guard.interface.d.ts.map +1 -1
- package/dist/node/service-host/claim-registry-slot.d.ts +1 -1
- package/dist/node/service-host/claim-registry-slot.d.ts.map +1 -1
- package/dist/node/service-host/service-host.d.ts +1 -1
- package/dist/node/service-host/service-host.d.ts.map +1 -1
- package/dist/node/service-host/single-process-service.d.ts +1 -1
- package/dist/node/service-host/single-process-service.d.ts.map +1 -1
- package/dist/node.js +2 -2
- package/dist/node.js.map +1 -1
- package/dist/service/index.d.ts +5 -10
- package/dist/service/index.d.ts.map +1 -1
- package/dist/service/registry/index.d.ts +14 -0
- package/dist/service/registry/index.d.ts.map +1 -0
- package/dist/service/{registry-lifecycle.d.ts → registry/registry-lifecycle.d.ts} +1 -1
- package/dist/service/registry/registry-lifecycle.d.ts.map +1 -0
- package/dist/service/{config.api.d.ts → registry/registry.api.d.ts} +5 -65
- package/dist/service/registry/registry.api.d.ts.map +1 -0
- package/dist/service/registry/registry.constant.d.ts +23 -0
- package/dist/service/registry/registry.constant.d.ts.map +1 -0
- package/dist/service/registry/registry.interface.d.ts +15 -0
- package/dist/service/registry/registry.interface.d.ts.map +1 -0
- package/dist/service/{registry.service.d.ts → registry/registry.service.d.ts} +23 -15
- package/dist/service/registry/registry.service.d.ts.map +1 -0
- package/dist/service/service.interface.d.ts +0 -10
- package/dist/service/service.interface.d.ts.map +1 -1
- package/dist/shared/utils/postgrest.utils.d.ts +23 -0
- package/dist/shared/utils/postgrest.utils.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/browser.ts +11 -9
- package/src/config/config.api.ts +72 -0
- package/src/{service → config}/config.interface.ts +1 -4
- package/src/config/index.ts +9 -0
- package/src/node/runtime-state/create-service-runtime-state-store.ts +1 -1
- package/src/node/runtime-state/service-runtime-state.types.ts +1 -1
- package/src/node/service-guard/registry-slot-guard-step.ts +4 -1
- package/src/node/service-guard/run-service-guard-tick.ts +1 -1
- package/src/node/service-guard/service-guard.interface.ts +1 -1
- package/src/node/service-host/claim-registry-slot.ts +2 -2
- package/src/node/service-host/service-host.ts +2 -2
- package/src/node/service-host/single-process-service.ts +1 -1
- package/src/service/index.ts +30 -40
- package/src/service/registry/index.ts +65 -0
- package/src/service/{registry-lifecycle.ts → registry/registry-lifecycle.ts} +3 -3
- package/src/service/{config.api.ts → registry/registry.api.ts} +6 -80
- package/src/service/registry/registry.constant.ts +17 -0
- package/src/service/registry/registry.interface.ts +16 -0
- package/src/service/{registry.service.ts → registry/registry.service.ts} +66 -65
- package/src/service/service.interface.ts +0 -12
- package/src/shared/utils/postgrest.utils.ts +28 -0
- package/dist/chunks/task-queue-qSnsfiIg.js.map +0 -1
- package/dist/service/config.api.d.ts.map +0 -1
- package/dist/service/config.interface.d.ts.map +0 -1
- package/dist/service/registry-lifecycle.d.ts.map +0 -1
- package/dist/service/registry.service.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -246,6 +246,17 @@ Node entry (`/node`) is bundled by the same Rollup build (peers and `node:*` sta
|
|
|
246
246
|
|
|
247
247
|
Detailed conventions: `.cursor/skills/browser-node-exports/SKILL.md` and `.cursor/skills/library-exports/SKILL.md`.
|
|
248
248
|
|
|
249
|
+
### PostgREST filter helpers (0.2.15+)
|
|
250
|
+
|
|
251
|
+
When using `supabase.client` directly (e.g. `ilike` search or `text[]` tag filters):
|
|
252
|
+
|
|
253
|
+
| Export | Use |
|
|
254
|
+
|--------|-----|
|
|
255
|
+
| `escapeIlikePattern` | User input for `.ilike()` / `.or("col.ilike.%…%")` — escapes `%` `_` `\` and strips `,` |
|
|
256
|
+
| `toPostgrestTextArrayLiteral` | `.overlaps("tagList", …)` and `.filter("tagList", "not.ov", …)` — **never** `.not("tagList", "ov", jsArray)` |
|
|
257
|
+
|
|
258
|
+
Pitfalls and examples: `.cursor/skills/postgrest-query-filters/SKILL.md`.
|
|
259
|
+
|
|
249
260
|
## Development
|
|
250
261
|
|
|
251
262
|
```bash
|
package/dist/browser.d.ts
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
* For TaskManager, RepoManager, TaskNode, use `target-supabase-sdk/node`.
|
|
6
6
|
*/
|
|
7
7
|
export type { SupabaseClient } from "@supabase/supabase-js";
|
|
8
|
+
export type { Config, ConfigDetails, GetConfigPayload, } from "./config/index";
|
|
9
|
+
export { CategoryConfig, getConfig, getConfigSchema } from "./config/index";
|
|
8
10
|
export * from "./core.api";
|
|
9
11
|
export * from "./core.interface";
|
|
10
12
|
export * from "./core.schema";
|
|
@@ -36,8 +38,8 @@ export type { ProviderProbeMap, StorageProviderRegistry } from "./parcel/storage
|
|
|
36
38
|
export { createStorageProviderRegistry } from "./parcel/storage-provider-registry";
|
|
37
39
|
export * from "./repo/repo.api";
|
|
38
40
|
export * from "./repo/repo.interface";
|
|
39
|
-
export type { Api, ApiDetails,
|
|
40
|
-
export { ApiMethod, apiDetailsSchema,
|
|
41
|
+
export type { Api, ApiDetails, AppendSystemRegistryEmptySlotsInput, AppendSystemRegistryEmptySlotsOutcome, ClaimRegistrySlotInput, GetApiPayload, GetServicePayload, PatchServiceRuntimeInput, PostApiPayload, PostServiceInstanceOptions, PostServicePayload, PostSystemRegistryConfigPayload, RegisterServiceInput, RegistrySlotGuardResult, RegistrySlotRuntimeState, ReleasedRegistrySlot, ReleaseSystemRegistrySlotsInput, ReleaseSystemRegistrySlotsOutcome, ResetSystemRegistryConfigPayload, Service, ServiceBootstrapResult, ServiceDetails, ServiceNodeSnapshot, ServiceRegistrySession, ServiceRuntime, ServiceSlot, SystemRegistrySeedSlot, TargetSystemRegistrySlotView, TargetSystemRegistryView, } from "./service/index";
|
|
42
|
+
export { ApiMethod, apiDetailsSchema, appendSystemRegistryEmptySlots, assertRegistrySlotAvailable, assertRegistrySlotOwner, buildEmptyServiceSlots, buildSystemRegistryConfigDetails, CategoryService, claimServiceRegistrySlot, createActiveServiceLifecycle, createClaimedRegistrySlotRuntimeState, DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS, defaultL3ServiceDetails, EMPTY_REGISTRY_SLOT_RUNTIME_STATE, fieldDefinitionSchema, getApi, getApiSchema, getService, getServiceSchema, getTargetSystemRegistry, parseServiceSlot, parseServiceSlots, patchServiceRuntime, postApi, postApiSchema, postService, postServiceInstance, postServiceSchema, postSystemRegistryConfig, postSystemRegistryConfigSchema, registerService, registerServiceAtStartup, registrySlotRuntimePatchFromGuardResult, releaseSystemRegistrySlots, releaseSystemRegistrySlotsByServiceId, resetSystemRegistryConfig, resetSystemRegistryConfigSchema, resolveActiveRegistryServiceId, runRegistrySlotGuardCheck, ServiceLifecycleStatus, ServiceRegistryError, ServiceSlotStatus, schemaDefinitionSchema, serviceDetailsSchema, serviceLifecycleSchema, serviceNodeSnapshotSchema, serviceRuntimeSchema, systemRegistrySeedSlotSchema, TARGET_SYSTEM_REGISTRY_KEY, unregisterService, unregisterServiceAtShutdown, } from "./service/index";
|
|
41
43
|
export type { FetchInitFactory, FetchRetryOptions } from "./shared/http/fetch-retry";
|
|
42
44
|
export { fetchBinaryWithRetry, fetchWithRetry, isRetryableHttpStatus, requestHasBody, } from "./shared/http/fetch-retry";
|
|
43
45
|
export type { CreateLoggerInput, DecodedLogBatch, FlatLogEntry, LogEntry, LoggerWithScope, LogScope, LogScopePatch, } from "./shared/log";
|
|
@@ -46,6 +48,7 @@ export { isHttpUrl, resolveFetchUrl } from "./shared/utils/fetch-url";
|
|
|
46
48
|
export { getValueAtPath } from "./shared/utils/get-value-at-path";
|
|
47
49
|
export type { ClassifiedNetworkError, FormatNetworkErrorOptions, NetworkErrorKind, } from "./shared/utils/network-error";
|
|
48
50
|
export { classifyNetworkError, formatNetworkError, } from "./shared/utils/network-error";
|
|
51
|
+
export { escapeIlikePattern, toPostgrestTextArrayLiteral } from "./shared/utils/postgrest.utils";
|
|
49
52
|
export type { SanitizeFileNameOptions } from "./shared/utils/safe-file-name";
|
|
50
53
|
export { sanitizeFileName, sanitizeParcelFileName } from "./shared/utils/safe-file-name";
|
|
51
54
|
export { sha256Hex } from "./shared/utils/sha256";
|
package/dist/browser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,YAAY,EACR,oBAAoB,EACpB,6BAA6B,EAC7B,qBAAqB,EACrB,yBAAyB,GAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACH,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,4BAA4B,EAC5B,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,GAC3B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,YAAY,EACR,+BAA+B,EAC/B,wBAAwB,EACxB,sBAAsB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,YAAY,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EACH,yBAAyB,EACzB,6BAA6B,GAChC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACH,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,GAC3B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,gBAAgB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACR,KAAK,EACL,SAAS,IAAI,eAAe,EAC5B,eAAe,IAAI,qBAAqB,EACxC,MAAM,EACN,YAAY,EACZ,aAAa,GAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EACR,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACH,aAAa,EACb,aAAa,EACb,iBAAiB,GACpB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACR,aAAa,EACb,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,cAAc,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,YAAY,EACR,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,GAChB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,YAAY,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AACpG,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,YAAY,EACR,GAAG,EACH,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
package/dist/browser.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
export { A as ApiMethod, C as CategoryConfig, a as CategoryExtraction, b as CategoryLink, c as CategoryNode, d as CategoryParcel, e as CategoryRepo, f as CategoryService, g as CategoryTask, D as DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS, E as EMPTY_REGISTRY_SLOT_RUNTIME_STATE, L as LINK_MANIFEST_VERSION, h as LIST_MANIFEST_VERSION, N as NodeStatus, P as POST_TASK_DEFAULT_MAX_ATTEMPTS, i as ParcelManager, j as PostLinkValidator, R as ResultCode, S as ServiceLifecycleStatus, k as ServiceRegistryError, l as ServiceSlotStatus, T as TARGET_SYSTEM_REGISTRY_KEY, m as TASK_REPO_USAGE, n as TaskStatus, o as TaskStatusAction, p as apiDetailsSchema, q as appendSystemRegistryEmptySlots, r as assertRegistrySlotAvailable, s as assertRegistrySlotOwner, t as buildEmptyServiceSlots, u as buildLinkTargetDraft, v as buildListTargetDraft, w as buildSystemRegistryConfigDetails, x as claimServiceRegistrySlot, y as classifyNetworkError, z as countTasksByType, B as createActiveServiceLifecycle, F as createClaimedRegistrySlotRuntimeState, G as createStorageProviderRegistry, H as createUploadTracker, I as decodeLogBatch, J as decodeLogBatchList, K as defaultL3ServiceDetails, M as deleteParcel, O as deleteParcelSchema, Q as escapeIlikePattern, U as evaluateBusyNodeLiveness, V as fetchBinaryWithRetry, W as fetchWithRetry, X as fieldDefinitionSchema, Y as flattenLogBatch, Z as flattenLogBatches, _ as formatNetworkError, $ as getApi, a0 as getApiSchema, a1 as getConfig, a2 as getConfigSchema, a3 as getExtraction, a4 as getExtractionSchema, a5 as getParcel, a6 as getParcelSchema, a7 as getScanRemoteRepoValues, a8 as getScanRemoteRepoValuesSchema, a9 as getService, aa as getServiceSchema, ab as getTargetSystemRegistry, ac as getValueAtPath, ad as installChunkFetchRegistry, ae as isHttpUrl, af as isLocalFilesystemPath, ag as isLogBatchList, ah as isLogEntry, ai as isOpaqueChunkUrl, aj as isRetryableHttpStatus, ak as linkTargetDraftBuildInputSchema, al as parcelDetailsSchema, am as parseLogBatchMeta, an as parseProviderPrefixedUrl, ao as parseServiceSlot, ap as parseServiceSlots, aq as patchChangeNodeStatus, ar as patchChangeNodeStatusSchema, as as patchChangeTaskStatus, at as patchChangeTaskStatusSchema, au as patchClaimTask, av as patchClaimTaskSchema, aw as patchExtractionObjects, ax as patchExtractionObjectsSchema, ay as patchNodeHeartBeat, az as patchNodeHeartBeatSchema, aA as patchServiceRuntime, aB as patchStopNode, aC as patchStopNodeSchema, aD as patchTaskProgress, aE as patchTaskProgressSchema, aF as postApi, aG as postApiSchema, aH as postExtraction, aI as postExtractionSchema, aJ as postLinkCreate, aK as postParcel, aL as postParcelSchema, aM as postRegisterNode, aN as postRegisterNodeSchema, aO as postService, aP as postServiceInstance, aQ as postServiceSchema, aR as postSystemRegistryConfig, aS as postSystemRegistryConfigSchema, aT as postTask, aU as postTaskSchema, aV as postTaskWithRetry, aW as publishParcel, aX as registerProviderChunkResolver, aY as registerService, aZ as registerServiceAtStartup, a_ as registrySlotRuntimePatchFromGuardResult, a$ as releaseSystemRegistrySlots, b0 as releaseSystemRegistrySlotsByServiceId, b1 as requestHasBody, b2 as resetSystemRegistryConfig, b3 as resetSystemRegistryConfigSchema, b4 as resolveActiveRegistryServiceId, b5 as resolveFetchUrl, b6 as restoreParcel, b7 as restoreParcelById, b8 as runRegistrySlotGuardCheck, b9 as sanitizeFileName, ba as sanitizeParcelFileName, bb as scanExtractionList, bc as scanExtractionListSchema, bd as schemaDefinitionSchema, be as serviceDetailsSchema, bf as serviceLifecycleSchema, bg as serviceNodeSnapshotSchema, bh as serviceRuntimeSchema, bi as sha256Hex, bj as summarizeTaskQueue, bk as systemRegistrySeedSlotSchema, bl as toPostgrestTextArrayLiteral, bm as unregisterService, bn as unregisterServiceAtShutdown } from './chunks/task-queue-Gi4DSq74.js';
|
|
1
2
|
export { B as BaseValidator, C as CREATE_TARGET_ALREADY_EXISTS_MESSAGE, a as CategoryList, L as LOG_BATCH_LOADER_KEY, b as LOG_MIN_LEVEL_ENV_KEY, c as LOG_PERSIST_LOADER_KEY, d as LogLevel, M as MAX_POLL_TARGET_LIST_SIZE, e as MAX_TARGET_LIST_PAGE_SIZE, O as OPTIMISTIC_LOCK_ERROR_CODE, f as OPTIMISTIC_LOCK_FAILED_MESSAGE, P as PostListValidator, S as StatusCode, U as UPDATE_TARGET_NOT_FOUND_MESSAGE, g as createLogger, h as createTarget, i as deleteTarget, j as formatZodError, k as generateResponse, l as getPossibleTarget, m as getTarget, n as getTargetList, o as getTargetTotalCount, p as handleSupabaseError, q as isCreateTargetAlreadyExistsError, r as isDevEnvironment, s as isOptimisticLockError, t as isOptimisticLockResponse, u as logDev, v as logDevGroup, w as logManager, x as logMinLevelFromEnv, y as patchTarget, z as pollTargetList, A as postListCreate, D as postLogListCreate, E as postTarget, F as postTargetPayloadSchema, G as queryFilterSchema, H as resolveLogMinLevel, I as safeParseWithSchema, J as scanTargetList, K as supabase, N as targetDraftSchema, Q as updateTarget, R as updateTargetDetails, T as validateWith, V as validateWithSchema } from './chunks/list.api-BzbTJBsM.js';
|
|
2
|
-
export { A as ApiMethod, C as CategoryConfig, a as CategoryExtraction, b as CategoryLink, c as CategoryNode, d as CategoryParcel, e as CategoryRepo, f as CategoryService, g as CategoryTask, D as DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS, E as EMPTY_REGISTRY_SLOT_RUNTIME_STATE, L as LINK_MANIFEST_VERSION, h as LIST_MANIFEST_VERSION, N as NodeStatus, P as POST_TASK_DEFAULT_MAX_ATTEMPTS, i as ParcelManager, j as PostLinkValidator, R as ResultCode, S as ServiceLifecycleStatus, k as ServiceRegistryError, l as ServiceSlotStatus, T as TARGET_SYSTEM_REGISTRY_KEY, m as TASK_REPO_USAGE, n as TaskStatus, o as TaskStatusAction, p as apiDetailsSchema, q as appendSystemRegistrySlots, r as assertRegistrySlotAvailable, s as assertRegistrySlotOwner, t as buildEmptyServiceSlots, u as buildLinkTargetDraft, v as buildListTargetDraft, w as buildSystemRegistryConfigDetails, x as claimServiceRegistrySlot, y as classifyNetworkError, z as countTasksByType, B as createActiveServiceLifecycle, F as createClaimedRegistrySlotRuntimeState, G as createStorageProviderRegistry, H as createUploadTracker, I as decodeLogBatch, J as decodeLogBatchList, K as defaultL3ServiceDetails, M as deleteParcel, O as deleteParcelSchema, Q as evaluateBusyNodeLiveness, U as fetchBinaryWithRetry, V as fetchWithRetry, W as fieldDefinitionSchema, X as flattenLogBatch, Y as flattenLogBatches, Z as formatNetworkError, _ as getApi, $ as getApiSchema, a0 as getConfig, a1 as getConfigSchema, a2 as getExtraction, a3 as getExtractionSchema, a4 as getParcel, a5 as getParcelSchema, a6 as getScanRemoteRepoValues, a7 as getScanRemoteRepoValuesSchema, a8 as getService, a9 as getServiceSchema, aa as getTargetSystemRegistry, ab as getValueAtPath, ac as installChunkFetchRegistry, ad as isHttpUrl, ae as isLocalFilesystemPath, af as isLogBatchList, ag as isLogEntry, ah as isOpaqueChunkUrl, ai as isRetryableHttpStatus, aj as linkTargetDraftBuildInputSchema, ak as parcelDetailsSchema, al as parseLogBatchMeta, am as parseProviderPrefixedUrl, an as parseServiceSlot, ao as parseServiceSlots, ap as patchChangeNodeStatus, aq as patchChangeNodeStatusSchema, ar as patchChangeTaskStatus, as as patchChangeTaskStatusSchema, at as patchClaimTask, au as patchClaimTaskSchema, av as patchExtractionObjects, aw as patchExtractionObjectsSchema, ax as patchNodeHeartBeat, ay as patchNodeHeartBeatSchema, az as patchServiceRuntime, aA as patchStopNode, aB as patchStopNodeSchema, aC as patchTaskProgress, aD as patchTaskProgressSchema, aE as postApi, aF as postApiSchema, aG as postExtraction, aH as postExtractionSchema, aI as postLinkCreate, aJ as postParcel, aK as postParcelSchema, aL as postRegisterNode, aM as postRegisterNodeSchema, aN as postService, aO as postServiceInstance, aP as postServiceSchema, aQ as postSystemRegistryConfig, aR as postSystemRegistryConfigSchema, aS as postTask, aT as postTaskSchema, aU as postTaskWithRetry, aV as publishParcel, aW as registerProviderChunkResolver, aX as registerService, aY as registerServiceAtStartup, aZ as registrySlotRuntimePatchFromGuardResult, a_ as releaseSystemRegistrySlots, a$ as releaseSystemRegistrySlotsByServiceId, b0 as requestHasBody, b1 as resetSystemRegistryConfig, b2 as resetSystemRegistryConfigSchema, b3 as resolveActiveRegistryServiceId, b4 as resolveFetchUrl, b5 as restoreParcel, b6 as restoreParcelById, b7 as runRegistrySlotGuardCheck, b8 as sanitizeFileName, b9 as sanitizeParcelFileName, ba as scanExtractionList, bb as scanExtractionListSchema, bc as schemaDefinitionSchema, bd as serviceDetailsSchema, be as serviceLifecycleSchema, bf as serviceNodeSnapshotSchema, bg as serviceRuntimeSchema, bh as sha256Hex, bi as summarizeTaskQueue, bj as systemRegistrySeedSlotSchema, bk as unregisterService, bl as unregisterServiceAtShutdown } from './chunks/task-queue-qSnsfiIg.js';
|
|
3
3
|
import 'zod';
|
|
4
4
|
import 'lodash-es';
|
|
5
5
|
import '@supabase/supabase-js';
|
|
@@ -1,6 +1,62 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { V as validateWithSchema, m as getTarget, l as getPossibleTarget, c as LOG_PERSIST_LOADER_KEY, k as generateResponse, R as updateTargetDetails, g as createLogger, h as createTarget, q as isCreateTargetAlreadyExistsError, J as scanTargetList, B as BaseValidator, a as CategoryList, i as deleteTarget, s as isOptimisticLockError, n as getTargetList, f as OPTIMISTIC_LOCK_FAILED_MESSAGE, O as OPTIMISTIC_LOCK_ERROR_CODE, w as logManager } from './list.api-BzbTJBsM.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
|
|
4
|
+
var CategoryConfig;
|
|
5
|
+
(function (CategoryConfig) {
|
|
6
|
+
CategoryConfig["CONFIG"] = "config";
|
|
7
|
+
})(CategoryConfig || (CategoryConfig = {}));
|
|
8
|
+
|
|
9
|
+
const targetIdSchema$2 = z.string().trim().min(1);
|
|
10
|
+
const getConfigSchema = z
|
|
11
|
+
.object({
|
|
12
|
+
id: targetIdSchema$2.optional(),
|
|
13
|
+
value: z.string().trim().min(1).optional(),
|
|
14
|
+
})
|
|
15
|
+
.refine((payload) => {
|
|
16
|
+
const hasId = payload.id != null && payload.id !== "";
|
|
17
|
+
const hasValue = payload.value != null && payload.value !== "";
|
|
18
|
+
return hasId !== hasValue;
|
|
19
|
+
}, { message: "Provide exactly one of id or value" });
|
|
20
|
+
const configCategoryFilter$1 = {
|
|
21
|
+
field: "category",
|
|
22
|
+
operator: "eq",
|
|
23
|
+
value: CategoryConfig.CONFIG,
|
|
24
|
+
};
|
|
25
|
+
function buildConfigLookupFilters(payload) {
|
|
26
|
+
const filters = [configCategoryFilter$1];
|
|
27
|
+
if (payload.id == null || payload.id === "") {
|
|
28
|
+
filters.push({ field: "value", operator: "eq", value: payload.value });
|
|
29
|
+
}
|
|
30
|
+
return filters;
|
|
31
|
+
}
|
|
32
|
+
/** Fetch a Config by id or by {@link Config.value} key (`category=config`). */
|
|
33
|
+
const getConfig = validateWithSchema(getConfigSchema, "getConfigSchema")(async (payload) => {
|
|
34
|
+
const filterList = buildConfigLookupFilters(payload);
|
|
35
|
+
if (payload.id != null && payload.id !== "") {
|
|
36
|
+
const result = await getTarget({
|
|
37
|
+
id: payload.id,
|
|
38
|
+
filterList,
|
|
39
|
+
});
|
|
40
|
+
return {
|
|
41
|
+
...result,
|
|
42
|
+
data: result.data,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
const result = await getPossibleTarget({
|
|
46
|
+
filterList,
|
|
47
|
+
});
|
|
48
|
+
if (result.data == null) {
|
|
49
|
+
return {
|
|
50
|
+
...result,
|
|
51
|
+
data: undefined,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
...result,
|
|
56
|
+
data: result.data,
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
|
|
4
60
|
/**
|
|
5
61
|
* Read side of the log-persist pipeline: decode persisted `LogBatch` Lists into
|
|
6
62
|
* structured batches and flat entries. Pure and defensive — malformed rows are
|
|
@@ -124,12 +180,12 @@ var CategoryExtraction;
|
|
|
124
180
|
CategoryExtraction["EXTRACTION"] = "extraction";
|
|
125
181
|
})(CategoryExtraction || (CategoryExtraction = {}));
|
|
126
182
|
|
|
127
|
-
const targetIdSchema$
|
|
183
|
+
const targetIdSchema$1 = z.string().trim().min(1);
|
|
128
184
|
const loaderKeySchema = z.string().trim().min(1);
|
|
129
185
|
const postExtractionSchema = z.object({
|
|
130
186
|
name: z.string().trim().min(1),
|
|
131
187
|
/** Source Target id — for log analysis this is the producing Task id. */
|
|
132
|
-
sourceId: targetIdSchema$
|
|
188
|
+
sourceId: targetIdSchema$1,
|
|
133
189
|
loaderKey: loaderKeySchema,
|
|
134
190
|
meta: z.unknown().optional(),
|
|
135
191
|
objects: z.array(z.unknown()).min(1),
|
|
@@ -138,8 +194,8 @@ const postExtractionSchema = z.object({
|
|
|
138
194
|
});
|
|
139
195
|
const getExtractionSchema = z
|
|
140
196
|
.object({
|
|
141
|
-
id: targetIdSchema$
|
|
142
|
-
sourceId: targetIdSchema$
|
|
197
|
+
id: targetIdSchema$1.optional(),
|
|
198
|
+
sourceId: targetIdSchema$1.optional(),
|
|
143
199
|
loaderKey: loaderKeySchema.optional(),
|
|
144
200
|
})
|
|
145
201
|
.refine((payload) => {
|
|
@@ -152,12 +208,12 @@ const getExtractionSchema = z
|
|
|
152
208
|
}, { message: "Provide id, or both sourceId and loaderKey" });
|
|
153
209
|
const scanExtractionListSchema = z.object({
|
|
154
210
|
loaderKey: loaderKeySchema.optional(),
|
|
155
|
-
sourceId: targetIdSchema$
|
|
211
|
+
sourceId: targetIdSchema$1.optional(),
|
|
156
212
|
maxRows: z.number().int().min(1).max(500).optional(),
|
|
157
213
|
ascending: z.boolean().optional(),
|
|
158
214
|
});
|
|
159
215
|
const patchExtractionObjectsSchema = z.object({
|
|
160
|
-
id: targetIdSchema$
|
|
216
|
+
id: targetIdSchema$1,
|
|
161
217
|
objects: z.array(z.unknown()).min(1),
|
|
162
218
|
meta: z.unknown().optional(),
|
|
163
219
|
expectedRevision: z.number().int().min(0).optional(),
|
|
@@ -1241,45 +1297,33 @@ var ServiceLifecycleStatus;
|
|
|
1241
1297
|
ServiceLifecycleStatus["SUNSET"] = "SUNSET";
|
|
1242
1298
|
})(ServiceLifecycleStatus || (ServiceLifecycleStatus = {}));
|
|
1243
1299
|
|
|
1244
|
-
var CategoryConfig;
|
|
1245
|
-
(function (CategoryConfig) {
|
|
1246
|
-
CategoryConfig["CONFIG"] = "config";
|
|
1247
|
-
})(CategoryConfig || (CategoryConfig = {}));
|
|
1248
1300
|
/** Globally unique Config key for the declarative system service registry. */
|
|
1249
1301
|
const TARGET_SYSTEM_REGISTRY_KEY = "target-system-registry";
|
|
1302
|
+
/**
|
|
1303
|
+
* Default one EMPTY slot per known L3 service.
|
|
1304
|
+
* Override via `postSystemRegistryConfig` / `resetSystemRegistryConfig` payload or gc-service seed file.
|
|
1305
|
+
* Replica count = how many times the same `serviceValue` appears (not a separate maxInstances field).
|
|
1306
|
+
*/
|
|
1307
|
+
const DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS = [
|
|
1308
|
+
{ serviceValue: "log-service" },
|
|
1309
|
+
{ serviceValue: "watch-service" },
|
|
1310
|
+
{ serviceValue: "download-service" },
|
|
1311
|
+
{ serviceValue: "storage-service" },
|
|
1312
|
+
{ serviceValue: "gc-service" },
|
|
1313
|
+
{ serviceValue: "upload-service" },
|
|
1314
|
+
{ serviceValue: "cv-service" },
|
|
1315
|
+
];
|
|
1250
1316
|
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1317
|
+
/**
|
|
1318
|
+
* Capacity slots on the system registry Config (`details.objects`).
|
|
1319
|
+
* Not fields on a Service Target row — see {@link Service} in `service.interface.ts`.
|
|
1320
|
+
*/
|
|
1255
1321
|
var ServiceSlotStatus;
|
|
1256
1322
|
(function (ServiceSlotStatus) {
|
|
1257
1323
|
ServiceSlotStatus["EMPTY"] = "EMPTY";
|
|
1258
1324
|
ServiceSlotStatus["ACTIVE"] = "ACTIVE";
|
|
1259
1325
|
})(ServiceSlotStatus || (ServiceSlotStatus = {}));
|
|
1260
|
-
var CategoryApi;
|
|
1261
|
-
(function (CategoryApi) {
|
|
1262
|
-
CategoryApi["API"] = "api";
|
|
1263
|
-
})(CategoryApi || (CategoryApi = {}));
|
|
1264
|
-
var ApiMethod;
|
|
1265
|
-
(function (ApiMethod) {
|
|
1266
|
-
ApiMethod["POST"] = "POST";
|
|
1267
|
-
ApiMethod["GET"] = "GET";
|
|
1268
|
-
ApiMethod["PUT"] = "PUT";
|
|
1269
|
-
ApiMethod["DELETE"] = "DELETE";
|
|
1270
|
-
})(ApiMethod || (ApiMethod = {}));
|
|
1271
1326
|
|
|
1272
|
-
const targetIdSchema$1 = z.string().trim().min(1);
|
|
1273
|
-
const getConfigSchema = z
|
|
1274
|
-
.object({
|
|
1275
|
-
id: targetIdSchema$1.optional(),
|
|
1276
|
-
value: z.string().trim().min(1).optional(),
|
|
1277
|
-
})
|
|
1278
|
-
.refine((payload) => {
|
|
1279
|
-
const hasId = payload.id != null && payload.id !== "";
|
|
1280
|
-
const hasValue = payload.value != null && payload.value !== "";
|
|
1281
|
-
return hasId !== hasValue;
|
|
1282
|
-
}, { message: "Provide exactly one of id or value" });
|
|
1283
1327
|
/** One declarative EMPTY slot entry for seeding the system registry. */
|
|
1284
1328
|
const systemRegistrySeedSlotSchema = z.object({
|
|
1285
1329
|
serviceValue: z.string().trim().min(1),
|
|
@@ -1293,28 +1337,11 @@ const postSystemRegistryConfigSchema = z.object({
|
|
|
1293
1337
|
const resetSystemRegistryConfigSchema = postSystemRegistryConfigSchema;
|
|
1294
1338
|
const DEFAULT_RESET_RETRY_ATTEMPTS = 5;
|
|
1295
1339
|
const RESET_RETRY_DELAY_MS = 50;
|
|
1296
|
-
/** Default one EMPTY slot per known L3 service (override via payload or seed file). */
|
|
1297
|
-
const DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS = [
|
|
1298
|
-
{ serviceValue: "log-service" },
|
|
1299
|
-
{ serviceValue: "watch-service" },
|
|
1300
|
-
{ serviceValue: "download-service" },
|
|
1301
|
-
{ serviceValue: "storage-service" },
|
|
1302
|
-
{ serviceValue: "gc-service" },
|
|
1303
|
-
{ serviceValue: "upload-service" },
|
|
1304
|
-
{ serviceValue: "cv-service" },
|
|
1305
|
-
];
|
|
1306
1340
|
const configCategoryFilter = {
|
|
1307
1341
|
field: "category",
|
|
1308
1342
|
operator: "eq",
|
|
1309
1343
|
value: CategoryConfig.CONFIG,
|
|
1310
1344
|
};
|
|
1311
|
-
function buildConfigLookupFilters(payload) {
|
|
1312
|
-
const filters = [configCategoryFilter];
|
|
1313
|
-
if (payload.id == null || payload.id === "") {
|
|
1314
|
-
filters.push({ field: "value", operator: "eq", value: payload.value });
|
|
1315
|
-
}
|
|
1316
|
-
return filters;
|
|
1317
|
-
}
|
|
1318
1345
|
/** Build EMPTY {@link ServiceSlot} rows from seed entries (one slot per array item). */
|
|
1319
1346
|
function buildEmptyServiceSlots(seedSlots) {
|
|
1320
1347
|
return seedSlots.map(({ serviceValue }) => ({
|
|
@@ -1343,33 +1370,6 @@ function buildSystemRegistryConfigDetails(slots) {
|
|
|
1343
1370
|
objects: [...slots],
|
|
1344
1371
|
};
|
|
1345
1372
|
}
|
|
1346
|
-
/** Fetch a Config by id or by {@link Config.value} key (`category=config`). */
|
|
1347
|
-
const getConfig = validateWithSchema(getConfigSchema, "getConfigSchema")(async (payload) => {
|
|
1348
|
-
const filterList = buildConfigLookupFilters(payload);
|
|
1349
|
-
if (payload.id != null && payload.id !== "") {
|
|
1350
|
-
const result = await getTarget({
|
|
1351
|
-
id: payload.id,
|
|
1352
|
-
filterList,
|
|
1353
|
-
});
|
|
1354
|
-
return {
|
|
1355
|
-
...result,
|
|
1356
|
-
data: result.data,
|
|
1357
|
-
};
|
|
1358
|
-
}
|
|
1359
|
-
const result = await getPossibleTarget({
|
|
1360
|
-
filterList,
|
|
1361
|
-
});
|
|
1362
|
-
if (result.data == null) {
|
|
1363
|
-
return {
|
|
1364
|
-
...result,
|
|
1365
|
-
data: undefined,
|
|
1366
|
-
};
|
|
1367
|
-
}
|
|
1368
|
-
return {
|
|
1369
|
-
...result,
|
|
1370
|
-
data: result.data,
|
|
1371
|
-
};
|
|
1372
|
-
});
|
|
1373
1373
|
/**
|
|
1374
1374
|
* Insert the globally unique system registry Config (`category=config`,
|
|
1375
1375
|
* `value=target-system-registry`). Rejects duplicates via `checkRedundancyFilterList`.
|
|
@@ -1435,6 +1435,22 @@ const resetSystemRegistryConfig = validateWithSchema(resetSystemRegistryConfigSc
|
|
|
1435
1435
|
throw new Error("[resetSystemRegistryConfig] Optimistic lock retries exhausted");
|
|
1436
1436
|
});
|
|
1437
1437
|
|
|
1438
|
+
var CategoryService;
|
|
1439
|
+
(function (CategoryService) {
|
|
1440
|
+
CategoryService["SERVICE"] = "service";
|
|
1441
|
+
})(CategoryService || (CategoryService = {}));
|
|
1442
|
+
var CategoryApi;
|
|
1443
|
+
(function (CategoryApi) {
|
|
1444
|
+
CategoryApi["API"] = "api";
|
|
1445
|
+
})(CategoryApi || (CategoryApi = {}));
|
|
1446
|
+
var ApiMethod;
|
|
1447
|
+
(function (ApiMethod) {
|
|
1448
|
+
ApiMethod["POST"] = "POST";
|
|
1449
|
+
ApiMethod["GET"] = "GET";
|
|
1450
|
+
ApiMethod["PUT"] = "PUT";
|
|
1451
|
+
ApiMethod["DELETE"] = "DELETE";
|
|
1452
|
+
})(ApiMethod || (ApiMethod = {}));
|
|
1453
|
+
|
|
1438
1454
|
const targetIdSchema = z.string().trim().min(1);
|
|
1439
1455
|
const enumMemberSchema = z.object({
|
|
1440
1456
|
key: z.string().trim().min(1),
|
|
@@ -2082,84 +2098,82 @@ async function releaseSystemRegistrySlotsByServiceId(input) {
|
|
|
2082
2098
|
throw new ServiceRegistryError("[releaseSystemRegistrySlotsByServiceId] Optimistic lock retries exhausted", "REGISTRY_UPDATE_FAILED");
|
|
2083
2099
|
}
|
|
2084
2100
|
/**
|
|
2085
|
-
* Append EMPTY {@link ServiceSlot} rows for
|
|
2086
|
-
*
|
|
2101
|
+
* Append one or more EMPTY {@link ServiceSlot} rows for a given `serviceValue`.
|
|
2102
|
+
*
|
|
2103
|
+
* Always grows capacity (does not skip when the key is already declared).
|
|
2104
|
+
* Use for replica scale-out (e.g. second `download-service` instance).
|
|
2087
2105
|
* Does not modify existing slots or release ACTIVE bindings.
|
|
2088
2106
|
*/
|
|
2089
|
-
async function
|
|
2090
|
-
const
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2107
|
+
async function appendSystemRegistryEmptySlots(input) {
|
|
2108
|
+
const serviceValue = input.serviceValue.trim();
|
|
2109
|
+
if (serviceValue === "") {
|
|
2110
|
+
throw new Error("[appendSystemRegistryEmptySlots] serviceValue must not be empty");
|
|
2111
|
+
}
|
|
2112
|
+
const count = input.count ?? 1;
|
|
2113
|
+
if (!Number.isInteger(count) || count < 1) {
|
|
2114
|
+
throw new Error("[appendSystemRegistryEmptySlots] count must be an integer >= 1");
|
|
2095
2115
|
}
|
|
2096
2116
|
const maxAttempts = input.maxAttempts ?? DEFAULT_REGISTER_RETRY_ATTEMPTS;
|
|
2097
2117
|
const logger = createLogger({
|
|
2098
|
-
module: "
|
|
2118
|
+
module: "appendSystemRegistryEmptySlots",
|
|
2099
2119
|
traceId: input.traceId,
|
|
2100
|
-
labels: {
|
|
2120
|
+
labels: { serviceValue, count: String(count) },
|
|
2101
2121
|
});
|
|
2102
|
-
logger.info("开始追加 registry
|
|
2122
|
+
logger.info("开始追加 EMPTY registry 槽位", {
|
|
2103
2123
|
topic: LOG_TOPIC_REGISTRY,
|
|
2104
|
-
data: {
|
|
2124
|
+
data: { serviceValue, count },
|
|
2105
2125
|
});
|
|
2106
2126
|
for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {
|
|
2107
2127
|
try {
|
|
2108
2128
|
const config = await loadSystemRegistryConfig();
|
|
2109
2129
|
const revision = parseRegistryRevision(config.details.meta);
|
|
2110
2130
|
const slots = parseServiceSlots(config);
|
|
2111
|
-
const
|
|
2112
|
-
const
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
if (isServiceValueDeclared(nextSlots, serviceValue)) {
|
|
2116
|
-
skipped.push(serviceValue);
|
|
2117
|
-
continue;
|
|
2118
|
-
}
|
|
2119
|
-
nextSlots.push({
|
|
2131
|
+
const capacityBefore = slots.filter((slot) => slot.serviceValue === serviceValue).length;
|
|
2132
|
+
const nextSlots = [
|
|
2133
|
+
...slots,
|
|
2134
|
+
...Array.from({ length: count }, () => ({
|
|
2120
2135
|
serviceValue,
|
|
2121
2136
|
serviceId: null,
|
|
2122
2137
|
status: ServiceSlotStatus.EMPTY,
|
|
2123
|
-
})
|
|
2124
|
-
|
|
2125
|
-
}
|
|
2126
|
-
if (added.length === 0) {
|
|
2127
|
-
logger.info("所有 service 已声明 — 无需追加", {
|
|
2128
|
-
topic: LOG_TOPIC_REGISTRY,
|
|
2129
|
-
data: { serviceValues, skipped },
|
|
2130
|
-
});
|
|
2131
|
-
return { config, added, skipped: serviceValues };
|
|
2132
|
-
}
|
|
2138
|
+
})),
|
|
2139
|
+
];
|
|
2133
2140
|
await persistSlotClaim({
|
|
2134
2141
|
configId: config.id,
|
|
2135
2142
|
revision,
|
|
2136
2143
|
slots: nextSlots,
|
|
2137
2144
|
});
|
|
2138
2145
|
const updated = await loadSystemRegistryConfig();
|
|
2139
|
-
|
|
2146
|
+
const capacityAfter = parseServiceSlots(updated).filter((slot) => slot.serviceValue === serviceValue).length;
|
|
2147
|
+
logger.info("EMPTY registry 槽位追加成功", {
|
|
2140
2148
|
topic: LOG_TOPIC_REGISTRY,
|
|
2141
|
-
data: {
|
|
2149
|
+
data: { serviceValue, appended: count, capacityBefore, capacityAfter, attempt },
|
|
2142
2150
|
});
|
|
2143
|
-
return {
|
|
2151
|
+
return {
|
|
2152
|
+
config: updated,
|
|
2153
|
+
serviceValue,
|
|
2154
|
+
appended: count,
|
|
2155
|
+
capacityBefore,
|
|
2156
|
+
capacityAfter,
|
|
2157
|
+
};
|
|
2144
2158
|
}
|
|
2145
2159
|
catch (error) {
|
|
2146
2160
|
if (isOptimisticLockError(error) && attempt < maxAttempts) {
|
|
2147
2161
|
logger.warn("registry 乐观锁冲突,重试", {
|
|
2148
2162
|
topic: LOG_TOPIC_REGISTRY,
|
|
2149
|
-
data: {
|
|
2163
|
+
data: { serviceValue, count, attempt, maxAttempts },
|
|
2150
2164
|
});
|
|
2151
2165
|
await sleep$1(50 * attempt);
|
|
2152
2166
|
continue;
|
|
2153
2167
|
}
|
|
2154
2168
|
const message = error instanceof Error ? error.message : String(error);
|
|
2155
|
-
logger.error("registry 槽位追加失败", {
|
|
2169
|
+
logger.error("EMPTY registry 槽位追加失败", {
|
|
2156
2170
|
topic: LOG_TOPIC_REGISTRY,
|
|
2157
|
-
data: {
|
|
2171
|
+
data: { serviceValue, count, attempt, message },
|
|
2158
2172
|
});
|
|
2159
2173
|
throw new ServiceRegistryError(message, "REGISTRY_UPDATE_FAILED");
|
|
2160
2174
|
}
|
|
2161
2175
|
}
|
|
2162
|
-
throw new ServiceRegistryError("[
|
|
2176
|
+
throw new ServiceRegistryError("[appendSystemRegistryEmptySlots] Optimistic lock retries exhausted", "REGISTRY_UPDATE_FAILED");
|
|
2163
2177
|
}
|
|
2164
2178
|
/**
|
|
2165
2179
|
* Claim one EMPTY slot for a running Service instance (`EMPTY → ACTIVE` only).
|
|
@@ -2757,6 +2771,33 @@ function getValueAtPath(value, path) {
|
|
|
2757
2771
|
return current;
|
|
2758
2772
|
}
|
|
2759
2773
|
|
|
2774
|
+
/**
|
|
2775
|
+
* PostgREST / Supabase JS client helpers for `target` table filters.
|
|
2776
|
+
*
|
|
2777
|
+
* @see `.cursor/skills/postgrest-query-filters/SKILL.md`
|
|
2778
|
+
*/
|
|
2779
|
+
/**
|
|
2780
|
+
* Escape `%`, `_`, and `\` for PostgREST `ilike` patterns.
|
|
2781
|
+
* Also strips commas — they break `.or()` filter strings when multiple columns are searched.
|
|
2782
|
+
*/
|
|
2783
|
+
function escapeIlikePattern(raw) {
|
|
2784
|
+
return raw.replace(/\\/g, "\\\\").replace(/%/g, "\\%").replace(/_/g, "\\_").replace(/,/g, "");
|
|
2785
|
+
}
|
|
2786
|
+
/**
|
|
2787
|
+
* Format a JS string array as a PostgreSQL `text[]` literal for PostgREST filter values.
|
|
2788
|
+
*
|
|
2789
|
+
* Required when tag values contain `:` or other special characters, and when using
|
|
2790
|
+
* `.filter(column, "not.ov", literal)` — `.not("column", "ov", jsArray)` stringifies
|
|
2791
|
+
* with `Array#toString()` and produces an invalid array literal.
|
|
2792
|
+
*
|
|
2793
|
+
* @example
|
|
2794
|
+
* toPostgrestTextArrayLiteral(["stop-word:base", "small-word"])
|
|
2795
|
+
* // → '{"stop-word:base","small-word"}'
|
|
2796
|
+
*/
|
|
2797
|
+
function toPostgrestTextArrayLiteral(values) {
|
|
2798
|
+
return `{${values.map((v) => `"${v.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`).join(",")}}`;
|
|
2799
|
+
}
|
|
2800
|
+
|
|
2760
2801
|
function fileBaseName(raw) {
|
|
2761
2802
|
const normalized = raw.replace(/\\/g, "/");
|
|
2762
2803
|
const parts = normalized.split("/");
|
|
@@ -3286,5 +3327,5 @@ function summarizeTaskQueue(tasks, taskType, statuses) {
|
|
|
3286
3327
|
return tasks.filter((task) => task.value === taskType && statuses.includes(task.details.status)).length;
|
|
3287
3328
|
}
|
|
3288
3329
|
|
|
3289
|
-
export {
|
|
3290
|
-
//# sourceMappingURL=task-queue-
|
|
3330
|
+
export { getApi as $, ApiMethod as A, createActiveServiceLifecycle as B, CategoryConfig as C, DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS as D, EMPTY_REGISTRY_SLOT_RUNTIME_STATE as E, createClaimedRegistrySlotRuntimeState as F, createStorageProviderRegistry as G, createUploadTracker as H, decodeLogBatch as I, decodeLogBatchList as J, defaultL3ServiceDetails as K, LINK_MANIFEST_VERSION as L, deleteParcel as M, NodeStatus as N, deleteParcelSchema as O, POST_TASK_DEFAULT_MAX_ATTEMPTS as P, escapeIlikePattern as Q, ResultCode as R, ServiceLifecycleStatus as S, TARGET_SYSTEM_REGISTRY_KEY as T, evaluateBusyNodeLiveness as U, fetchBinaryWithRetry as V, fetchWithRetry as W, fieldDefinitionSchema as X, flattenLogBatch as Y, flattenLogBatches as Z, formatNetworkError as _, CategoryExtraction as a, releaseSystemRegistrySlots as a$, getApiSchema as a0, getConfig as a1, getConfigSchema as a2, getExtraction as a3, getExtractionSchema as a4, getParcel as a5, getParcelSchema as a6, getScanRemoteRepoValues as a7, getScanRemoteRepoValuesSchema as a8, getService as a9, patchServiceRuntime as aA, patchStopNode as aB, patchStopNodeSchema as aC, patchTaskProgress as aD, patchTaskProgressSchema as aE, postApi as aF, postApiSchema as aG, postExtraction as aH, postExtractionSchema as aI, postLinkCreate as aJ, postParcel as aK, postParcelSchema as aL, postRegisterNode as aM, postRegisterNodeSchema as aN, postService as aO, postServiceInstance as aP, postServiceSchema as aQ, postSystemRegistryConfig as aR, postSystemRegistryConfigSchema as aS, postTask as aT, postTaskSchema as aU, postTaskWithRetry as aV, publishParcel as aW, registerProviderChunkResolver as aX, registerService as aY, registerServiceAtStartup as aZ, registrySlotRuntimePatchFromGuardResult as a_, getServiceSchema as aa, getTargetSystemRegistry as ab, getValueAtPath as ac, installChunkFetchRegistry as ad, isHttpUrl as ae, isLocalFilesystemPath as af, isLogBatchList as ag, isLogEntry as ah, isOpaqueChunkUrl as ai, isRetryableHttpStatus as aj, linkTargetDraftBuildInputSchema as ak, parcelDetailsSchema as al, parseLogBatchMeta as am, parseProviderPrefixedUrl as an, parseServiceSlot as ao, parseServiceSlots as ap, patchChangeNodeStatus as aq, patchChangeNodeStatusSchema as ar, patchChangeTaskStatus as as, patchChangeTaskStatusSchema as at, patchClaimTask as au, patchClaimTaskSchema as av, patchExtractionObjects as aw, patchExtractionObjectsSchema as ax, patchNodeHeartBeat as ay, patchNodeHeartBeatSchema as az, CategoryLink as b, releaseSystemRegistrySlotsByServiceId as b0, requestHasBody as b1, resetSystemRegistryConfig as b2, resetSystemRegistryConfigSchema as b3, resolveActiveRegistryServiceId as b4, resolveFetchUrl as b5, restoreParcel as b6, restoreParcelById as b7, runRegistrySlotGuardCheck as b8, sanitizeFileName as b9, sanitizeParcelFileName as ba, scanExtractionList as bb, scanExtractionListSchema as bc, schemaDefinitionSchema as bd, serviceDetailsSchema as be, serviceLifecycleSchema as bf, serviceNodeSnapshotSchema as bg, serviceRuntimeSchema as bh, sha256Hex as bi, summarizeTaskQueue as bj, systemRegistrySeedSlotSchema as bk, toPostgrestTextArrayLiteral as bl, unregisterService as bm, unregisterServiceAtShutdown as bn, getErrorMessage as bo, LOG_TOPIC_NODE as bp, LOG_TOPIC_TASK as bq, CRITICAL_UNKNOWN_TASK_TRACE_ID as br, toError as bs, createTaskRow as bt, CategoryNode as c, CategoryParcel as d, CategoryRepo as e, CategoryService as f, CategoryTask as g, LIST_MANIFEST_VERSION as h, ParcelManager as i, PostLinkValidator as j, ServiceRegistryError as k, ServiceSlotStatus as l, TASK_REPO_USAGE as m, TaskStatus as n, TaskStatusAction as o, apiDetailsSchema as p, appendSystemRegistryEmptySlots as q, assertRegistrySlotAvailable as r, assertRegistrySlotOwner as s, buildEmptyServiceSlots as t, buildLinkTargetDraft as u, buildListTargetDraft as v, buildSystemRegistryConfigDetails as w, claimServiceRegistrySlot as x, classifyNetworkError as y, countTasksByType as z };
|
|
3331
|
+
//# sourceMappingURL=task-queue-Gi4DSq74.js.map
|