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.
Files changed (71) hide show
  1. package/README.md +11 -0
  2. package/dist/browser.d.ts +5 -2
  3. package/dist/browser.d.ts.map +1 -1
  4. package/dist/browser.js +1 -1
  5. package/dist/chunks/{task-queue-qSnsfiIg.js → task-queue-Gi4DSq74.js} +162 -121
  6. package/dist/chunks/task-queue-Gi4DSq74.js.map +1 -0
  7. package/dist/config/config.api.d.ts +61 -0
  8. package/dist/config/config.api.d.ts.map +1 -0
  9. package/dist/{service → config}/config.interface.d.ts +1 -3
  10. package/dist/config/config.interface.d.ts.map +1 -0
  11. package/dist/config/index.d.ts +9 -0
  12. package/dist/config/index.d.ts.map +1 -0
  13. package/dist/node/runtime-state/service-runtime-state.types.d.ts +1 -1
  14. package/dist/node/runtime-state/service-runtime-state.types.d.ts.map +1 -1
  15. package/dist/node/service-guard/registry-slot-guard-step.d.ts +1 -1
  16. package/dist/node/service-guard/registry-slot-guard-step.d.ts.map +1 -1
  17. package/dist/node/service-guard/service-guard.interface.d.ts +1 -1
  18. package/dist/node/service-guard/service-guard.interface.d.ts.map +1 -1
  19. package/dist/node/service-host/claim-registry-slot.d.ts +1 -1
  20. package/dist/node/service-host/claim-registry-slot.d.ts.map +1 -1
  21. package/dist/node/service-host/service-host.d.ts +1 -1
  22. package/dist/node/service-host/service-host.d.ts.map +1 -1
  23. package/dist/node/service-host/single-process-service.d.ts +1 -1
  24. package/dist/node/service-host/single-process-service.d.ts.map +1 -1
  25. package/dist/node.js +2 -2
  26. package/dist/node.js.map +1 -1
  27. package/dist/service/index.d.ts +5 -10
  28. package/dist/service/index.d.ts.map +1 -1
  29. package/dist/service/registry/index.d.ts +14 -0
  30. package/dist/service/registry/index.d.ts.map +1 -0
  31. package/dist/service/{registry-lifecycle.d.ts → registry/registry-lifecycle.d.ts} +1 -1
  32. package/dist/service/registry/registry-lifecycle.d.ts.map +1 -0
  33. package/dist/service/{config.api.d.ts → registry/registry.api.d.ts} +5 -65
  34. package/dist/service/registry/registry.api.d.ts.map +1 -0
  35. package/dist/service/registry/registry.constant.d.ts +23 -0
  36. package/dist/service/registry/registry.constant.d.ts.map +1 -0
  37. package/dist/service/registry/registry.interface.d.ts +15 -0
  38. package/dist/service/registry/registry.interface.d.ts.map +1 -0
  39. package/dist/service/{registry.service.d.ts → registry/registry.service.d.ts} +23 -15
  40. package/dist/service/registry/registry.service.d.ts.map +1 -0
  41. package/dist/service/service.interface.d.ts +0 -10
  42. package/dist/service/service.interface.d.ts.map +1 -1
  43. package/dist/shared/utils/postgrest.utils.d.ts +23 -0
  44. package/dist/shared/utils/postgrest.utils.d.ts.map +1 -0
  45. package/package.json +1 -1
  46. package/src/browser.ts +11 -9
  47. package/src/config/config.api.ts +72 -0
  48. package/src/{service → config}/config.interface.ts +1 -4
  49. package/src/config/index.ts +9 -0
  50. package/src/node/runtime-state/create-service-runtime-state-store.ts +1 -1
  51. package/src/node/runtime-state/service-runtime-state.types.ts +1 -1
  52. package/src/node/service-guard/registry-slot-guard-step.ts +4 -1
  53. package/src/node/service-guard/run-service-guard-tick.ts +1 -1
  54. package/src/node/service-guard/service-guard.interface.ts +1 -1
  55. package/src/node/service-host/claim-registry-slot.ts +2 -2
  56. package/src/node/service-host/service-host.ts +2 -2
  57. package/src/node/service-host/single-process-service.ts +1 -1
  58. package/src/service/index.ts +30 -40
  59. package/src/service/registry/index.ts +65 -0
  60. package/src/service/{registry-lifecycle.ts → registry/registry-lifecycle.ts} +3 -3
  61. package/src/service/{config.api.ts → registry/registry.api.ts} +6 -80
  62. package/src/service/registry/registry.constant.ts +17 -0
  63. package/src/service/registry/registry.interface.ts +16 -0
  64. package/src/service/{registry.service.ts → registry/registry.service.ts} +66 -65
  65. package/src/service/service.interface.ts +0 -12
  66. package/src/shared/utils/postgrest.utils.ts +28 -0
  67. package/dist/chunks/task-queue-qSnsfiIg.js.map +0 -1
  68. package/dist/service/config.api.d.ts.map +0 -1
  69. package/dist/service/config.interface.d.ts.map +0 -1
  70. package/dist/service/registry-lifecycle.d.ts.map +0 -1
  71. package/dist/service/registry.service.d.ts.map +0 -1
@@ -1,20 +1,15 @@
1
1
  /**
2
2
  * Service domain public API — curated re-exports only.
3
+ * System registry: `./registry/` (seed, claim, slot views).
3
4
  */
4
5
  export type { EnumMembers, FieldDefinition, SchemaDefinition, ServiceLifecycle, } from "./base.interface";
5
6
  export { ServiceLifecycleStatus } from "./base.interface";
6
- export type { GetConfigPayload, PostSystemRegistryConfigPayload, ResetSystemRegistryConfigPayload, SystemRegistrySeedSlot, } from "./config.api";
7
- export { buildEmptyServiceSlots, buildSystemRegistryConfigDetails, DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS, getConfig, getConfigSchema, postSystemRegistryConfig, postSystemRegistryConfigSchema, resetSystemRegistryConfig, resetSystemRegistryConfigSchema, systemRegistrySeedSlotSchema, } from "./config.api";
8
- export type { Config, ConfigDetails } from "./config.interface";
9
- export { CategoryConfig, TARGET_SYSTEM_REGISTRY_KEY } from "./config.interface";
10
- export type { AppendSystemRegistrySlotsInput, AppendSystemRegistrySlotsOutcome, PatchServiceRuntimeInput, RegisterServiceInput, ReleasedRegistrySlot, ReleaseSystemRegistrySlotsByServiceIdInput, ReleaseSystemRegistrySlotsByServiceIdOutcome, ReleaseSystemRegistrySlotsInput, ReleaseSystemRegistrySlotsOutcome, TargetSystemRegistrySlotView, TargetSystemRegistryView, } from "./registry.service";
11
- export { appendSystemRegistrySlots, assertRegistrySlotAvailable, assertRegistrySlotOwner, getTargetSystemRegistry, parseServiceSlot, parseServiceSlots, patchServiceRuntime, registerService, registerServiceAtStartup, releaseSystemRegistrySlots, releaseSystemRegistrySlotsByServiceId, resolveActiveRegistryServiceId, ServiceRegistryError, unregisterService, unregisterServiceAtShutdown, } from "./registry.service";
12
- export type { ClaimRegistrySlotInput, RegistrySlotGuardResult, RegistrySlotRuntimeState, ServiceRegistrySession, } from "./registry-lifecycle";
13
- export { claimServiceRegistrySlot, createClaimedRegistrySlotRuntimeState, EMPTY_REGISTRY_SLOT_RUNTIME_STATE, registrySlotRuntimePatchFromGuardResult, runRegistrySlotGuardCheck, } from "./registry-lifecycle";
7
+ export type { AppendSystemRegistryEmptySlotsInput, AppendSystemRegistryEmptySlotsOutcome, ClaimRegistrySlotInput, PatchServiceRuntimeInput, PostSystemRegistryConfigPayload, RegisterServiceInput, RegistrySlotGuardResult, RegistrySlotRuntimeState, ReleasedRegistrySlot, ReleaseSystemRegistrySlotsByServiceIdInput, ReleaseSystemRegistrySlotsByServiceIdOutcome, ReleaseSystemRegistrySlotsInput, ReleaseSystemRegistrySlotsOutcome, ResetSystemRegistryConfigPayload, ServiceRegistrySession, ServiceSlot, SystemRegistrySeedSlot, TargetSystemRegistrySlotView, TargetSystemRegistryView, } from "./registry/index";
8
+ export { appendSystemRegistryEmptySlots, assertRegistrySlotAvailable, assertRegistrySlotOwner, buildEmptyServiceSlots, buildSystemRegistryConfigDetails, claimServiceRegistrySlot, createClaimedRegistrySlotRuntimeState, DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS, EMPTY_REGISTRY_SLOT_RUNTIME_STATE, getTargetSystemRegistry, parseServiceSlot, parseServiceSlots, patchServiceRuntime, postSystemRegistryConfig, postSystemRegistryConfigSchema, registerService, registerServiceAtStartup, registrySlotRuntimePatchFromGuardResult, releaseSystemRegistrySlots, releaseSystemRegistrySlotsByServiceId, resetSystemRegistryConfig, resetSystemRegistryConfigSchema, resolveActiveRegistryServiceId, runRegistrySlotGuardCheck, ServiceRegistryError, ServiceSlotStatus, systemRegistrySeedSlotSchema, TARGET_SYSTEM_REGISTRY_KEY, unregisterService, unregisterServiceAtShutdown, } from "./registry/index";
14
9
  export type { GetApiPayload, GetServicePayload, PostApiPayload, PostServicePayload } from "./service.api";
15
10
  export { apiDetailsSchema, fieldDefinitionSchema, getApi, getApiSchema, getService, getServiceSchema, postApi, postApiSchema, postService, postServiceSchema, schemaDefinitionSchema, serviceDetailsSchema, serviceLifecycleSchema, serviceNodeSnapshotSchema, serviceRuntimeSchema, } from "./service.api";
16
- export type { Api, ApiDetails, Service, ServiceDetails, ServiceNodeSnapshot, ServiceRuntime, ServiceSlot, } from "./service.interface";
17
- export { ApiMethod, CategoryApi, CategoryService, ServiceSlotStatus } from "./service.interface";
11
+ export type { Api, ApiDetails, Service, ServiceDetails, ServiceNodeSnapshot, ServiceRuntime, } from "./service.interface";
12
+ export { ApiMethod, CategoryApi, CategoryService } from "./service.interface";
18
13
  export type { PostServiceInstanceOptions, ServiceBootstrapResult } from "./service-bootstrap";
19
14
  export { createActiveServiceLifecycle, defaultL3ServiceDetails, postServiceInstance, } from "./service-bootstrap";
20
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EACR,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EACR,gBAAgB,EAChB,+BAA+B,EAC/B,gCAAgC,EAChC,sBAAsB,GACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EACH,sBAAsB,EACtB,gCAAgC,EAChC,kCAAkC,EAClC,SAAS,EACT,eAAe,EACf,wBAAwB,EACxB,8BAA8B,EAC9B,yBAAyB,EACzB,+BAA+B,EAC/B,4BAA4B,GAC/B,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChF,YAAY,EACR,8BAA8B,EAC9B,gCAAgC,EAChC,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,0CAA0C,EAC1C,4CAA4C,EAC5C,+BAA+B,EAC/B,iCAAiC,EACjC,4BAA4B,EAC5B,wBAAwB,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACH,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,0BAA0B,EAC1B,qCAAqC,EACrC,8BAA8B,EAC9B,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,GAC9B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACR,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,wBAAwB,EACxB,qCAAqC,EACrC,iCAAiC,EACjC,uCAAuC,EACvC,yBAAyB,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC1G,OAAO,EACH,gBAAgB,EAChB,qBAAqB,EACrB,MAAM,EACN,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,GACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EACR,GAAG,EACH,UAAU,EACV,OAAO,EACP,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,WAAW,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACjG,YAAY,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EACH,4BAA4B,EAC5B,uBAAuB,EACvB,mBAAmB,GACtB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACR,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EACR,mCAAmC,EACnC,qCAAqC,EACrC,sBAAsB,EACtB,wBAAwB,EACxB,+BAA+B,EAC/B,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,0CAA0C,EAC1C,4CAA4C,EAC5C,+BAA+B,EAC/B,iCAAiC,EACjC,gCAAgC,EAChC,sBAAsB,EACtB,WAAW,EACX,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,GAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,8BAA8B,EAC9B,2BAA2B,EAC3B,uBAAuB,EACvB,sBAAsB,EACtB,gCAAgC,EAChC,wBAAwB,EACxB,qCAAqC,EACrC,kCAAkC,EAClC,iCAAiC,EACjC,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,8BAA8B,EAC9B,eAAe,EACf,wBAAwB,EACxB,uCAAuC,EACvC,0BAA0B,EAC1B,qCAAqC,EACrC,yBAAyB,EACzB,+BAA+B,EAC/B,8BAA8B,EAC9B,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EACjB,4BAA4B,EAC5B,0BAA0B,EAC1B,iBAAiB,EACjB,2BAA2B,GAC9B,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC1G,OAAO,EACH,gBAAgB,EAChB,qBAAqB,EACrB,MAAM,EACN,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,GACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EACR,GAAG,EACH,UAAU,EACV,OAAO,EACP,cAAc,EACd,mBAAmB,EACnB,cAAc,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC9E,YAAY,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EACH,4BAA4B,EAC5B,uBAAuB,EACvB,mBAAmB,GACtB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * System service registry — curated re-exports only.
3
+ * Generic Config CRUD lives in `src/config/`.
4
+ */
5
+ export type { PostSystemRegistryConfigPayload, ResetSystemRegistryConfigPayload, SystemRegistrySeedSlot, } from "./registry.api";
6
+ export { buildEmptyServiceSlots, buildSystemRegistryConfigDetails, postSystemRegistryConfig, postSystemRegistryConfigSchema, resetSystemRegistryConfig, resetSystemRegistryConfigSchema, systemRegistrySeedSlotSchema, } from "./registry.api";
7
+ export { DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS, TARGET_SYSTEM_REGISTRY_KEY } from "./registry.constant";
8
+ export type { ServiceSlot } from "./registry.interface";
9
+ export { ServiceSlotStatus } from "./registry.interface";
10
+ export type { AppendSystemRegistryEmptySlotsInput, AppendSystemRegistryEmptySlotsOutcome, PatchServiceRuntimeInput, RegisterServiceInput, ReleasedRegistrySlot, ReleaseSystemRegistrySlotsByServiceIdInput, ReleaseSystemRegistrySlotsByServiceIdOutcome, ReleaseSystemRegistrySlotsInput, ReleaseSystemRegistrySlotsOutcome, TargetSystemRegistrySlotView, TargetSystemRegistryView, } from "./registry.service";
11
+ export { appendSystemRegistryEmptySlots, assertRegistrySlotAvailable, assertRegistrySlotOwner, getTargetSystemRegistry, parseServiceSlot, parseServiceSlots, patchServiceRuntime, registerService, registerServiceAtStartup, releaseSystemRegistrySlots, releaseSystemRegistrySlotsByServiceId, resolveActiveRegistryServiceId, ServiceRegistryError, unregisterService, unregisterServiceAtShutdown, } from "./registry.service";
12
+ export type { ClaimRegistrySlotInput, RegistrySlotGuardResult, RegistrySlotRuntimeState, ServiceRegistrySession, } from "./registry-lifecycle";
13
+ export { claimServiceRegistrySlot, createClaimedRegistrySlotRuntimeState, EMPTY_REGISTRY_SLOT_RUNTIME_STATE, registrySlotRuntimePatchFromGuardResult, runRegistrySlotGuardCheck, } from "./registry-lifecycle";
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/registry/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACR,+BAA+B,EAC/B,gCAAgC,EAChC,sBAAsB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,sBAAsB,EACtB,gCAAgC,EAChC,wBAAwB,EACxB,8BAA8B,EAC9B,yBAAyB,EACzB,+BAA+B,EAC/B,4BAA4B,GAC/B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kCAAkC,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACrG,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EACR,mCAAmC,EACnC,qCAAqC,EACrC,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,0CAA0C,EAC1C,4CAA4C,EAC5C,+BAA+B,EAC/B,iCAAiC,EACjC,4BAA4B,EAC5B,wBAAwB,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACH,8BAA8B,EAC9B,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,0BAA0B,EAC1B,qCAAqC,EACrC,8BAA8B,EAC9B,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,GAC9B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACR,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,wBAAwB,EACxB,qCAAqC,EACrC,iCAAiC,EACjC,uCAAuC,EACvC,yBAAyB,GAC5B,MAAM,sBAAsB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Service } from "./service.interface";
1
+ import type { Service } from "../service.interface";
2
2
  /** Shared registry slice for L3 runtime state files (`state.json`). */
3
3
  export interface RegistrySlotRuntimeState {
4
4
  serviceId: string | null;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/service/registry/registry-lifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAWpD,uEAAuE;AACvE,MAAM,WAAW,wBAAwB;IACrC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,eAAO,MAAM,iCAAiC,EAAE,wBAM/C,CAAC;AAEF,wBAAgB,qCAAqC,CAAC,OAAO,EAAE,OAAO,GAAG,wBAAwB,CAQhG;AAED,MAAM,WAAW,sBAAsB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,iEAAiE;IACjE,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAwC7G;AAED,MAAM,WAAW,uBAAuB;IACpC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAAC,KAAK,EAAE;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAmBnC;AAED,wBAAgB,uCAAuC,CACnD,MAAM,EAAE,uBAAuB,EAC/B,SAAS,EAAE,MAAM,GAClB,IAAI,CAAC,wBAAwB,EAAE,WAAW,GAAG,iBAAiB,GAAG,oBAAoB,CAAC,CAMxF"}
@@ -1,23 +1,6 @@
1
1
  import { z } from "zod";
2
- import { type Config, type ConfigDetails } from "./config.interface";
3
- import { type ServiceSlot } from "./service.interface";
4
- export declare const getConfigSchema: z.ZodEffects<z.ZodObject<{
5
- id: z.ZodOptional<z.ZodString>;
6
- value: z.ZodOptional<z.ZodString>;
7
- }, "strip", z.ZodTypeAny, {
8
- id?: string | undefined;
9
- value?: string | undefined;
10
- }, {
11
- id?: string | undefined;
12
- value?: string | undefined;
13
- }>, {
14
- id?: string | undefined;
15
- value?: string | undefined;
16
- }, {
17
- id?: string | undefined;
18
- value?: string | undefined;
19
- }>;
20
- export type GetConfigPayload = z.infer<typeof getConfigSchema>;
2
+ import { type Config, type ConfigDetails } from "../../config/config.interface";
3
+ import { type ServiceSlot } from "./registry.interface";
21
4
  /** One declarative EMPTY slot entry for seeding the system registry. */
22
5
  export declare const systemRegistrySeedSlotSchema: z.ZodObject<{
23
6
  serviceValue: z.ZodString;
@@ -72,53 +55,10 @@ export declare const resetSystemRegistryConfigSchema: z.ZodObject<{
72
55
  }[] | undefined;
73
56
  }>;
74
57
  export type ResetSystemRegistryConfigPayload = PostSystemRegistryConfigPayload;
75
- /** Default one EMPTY slot per known L3 service (override via payload or seed file). */
76
- export declare const DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS: readonly SystemRegistrySeedSlot[];
77
58
  /** Build EMPTY {@link ServiceSlot} rows from seed entries (one slot per array item). */
78
59
  export declare function buildEmptyServiceSlots(seedSlots: readonly SystemRegistrySeedSlot[]): ServiceSlot[];
79
60
  /** Build `ConfigDetails` for the globally unique system registry row. */
80
61
  export declare function buildSystemRegistryConfigDetails(slots: readonly ServiceSlot[]): ConfigDetails;
81
- /** Fetch a Config by id or by {@link Config.value} key (`category=config`). */
82
- export declare const getConfig: (payload: {
83
- id?: string | undefined;
84
- value?: string | undefined;
85
- }) => {
86
- data: Config;
87
- status_code: import("..").StatusCode;
88
- success: boolean;
89
- message?: string;
90
- error?: {
91
- message: string;
92
- code?: string;
93
- };
94
- } | {
95
- data: undefined;
96
- status_code: import("..").StatusCode;
97
- success: boolean;
98
- message?: string;
99
- error?: {
100
- message: string;
101
- code?: string;
102
- };
103
- } | Promise<{
104
- data: Config;
105
- status_code: import("..").StatusCode;
106
- success: boolean;
107
- message?: string;
108
- error?: {
109
- message: string;
110
- code?: string;
111
- };
112
- } | {
113
- data: undefined;
114
- status_code: import("..").StatusCode;
115
- success: boolean;
116
- message?: string;
117
- error?: {
118
- message: string;
119
- code?: string;
120
- };
121
- }>;
122
62
  /**
123
63
  * Insert the globally unique system registry Config (`category=config`,
124
64
  * `value=target-system-registry`). Rejects duplicates via `checkRedundancyFilterList`.
@@ -128,7 +68,7 @@ export declare const postSystemRegistryConfig: (payload: {
128
68
  slots?: {
129
69
  serviceValue: string;
130
70
  }[] | undefined;
131
- }) => import("..").SupabaseResponse<Config> | Promise<import("..").SupabaseResponse<Config>>;
71
+ }) => import("../..").SupabaseResponse<Config> | Promise<import("../..").SupabaseResponse<Config>>;
132
72
  /**
133
73
  * Replace the system registry slot layout with fresh EMPTY rows.
134
74
  * Creates the row when missing (same as {@link postSystemRegistryConfig}).
@@ -139,5 +79,5 @@ export declare const resetSystemRegistryConfig: (payload: {
139
79
  slots?: {
140
80
  serviceValue: string;
141
81
  }[] | undefined;
142
- }) => import("..").SupabaseResponse<Config> | Promise<import("..").SupabaseResponse<Config>>;
143
- //# sourceMappingURL=config.api.d.ts.map
82
+ }) => import("../..").SupabaseResponse<Config> | Promise<import("../..").SupabaseResponse<Config>>;
83
+ //# sourceMappingURL=registry.api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.api.d.ts","sourceRoot":"","sources":["../../../src/service/registry/registry.api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAkB,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAUhG,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,sBAAsB,CAAC;AAE3E,wEAAwE;AACxE,eAAO,MAAM,4BAA4B;;;;;;EAEvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,8BAA8B;IACvC,wEAAwE;;;;;;;;;;;;;;;;;;;EAG1E,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAE7F,qGAAqG;AACrG,eAAO,MAAM,+BAA+B;IARxC,wEAAwE;;;;;;;;;;;;;;;;;;;EAQC,CAAC;AAE9E,MAAM,MAAM,gCAAgC,GAAG,+BAA+B,CAAC;AAW/E,wFAAwF;AACxF,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,SAAS,sBAAsB,EAAE,GAAG,WAAW,EAAE,CAMlG;AAgBD,yEAAyE;AACzE,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,aAAa,CAO7F;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;kGAsBnC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;;;;;kGA2CpC,CAAC"}
@@ -0,0 +1,23 @@
1
+ /** Globally unique Config key for the declarative system service registry. */
2
+ export declare const TARGET_SYSTEM_REGISTRY_KEY = "target-system-registry";
3
+ /**
4
+ * Default one EMPTY slot per known L3 service.
5
+ * Override via `postSystemRegistryConfig` / `resetSystemRegistryConfig` payload or gc-service seed file.
6
+ * Replica count = how many times the same `serviceValue` appears (not a separate maxInstances field).
7
+ */
8
+ export declare const DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS: readonly [{
9
+ readonly serviceValue: "log-service";
10
+ }, {
11
+ readonly serviceValue: "watch-service";
12
+ }, {
13
+ readonly serviceValue: "download-service";
14
+ }, {
15
+ readonly serviceValue: "storage-service";
16
+ }, {
17
+ readonly serviceValue: "gc-service";
18
+ }, {
19
+ readonly serviceValue: "upload-service";
20
+ }, {
21
+ readonly serviceValue: "cv-service";
22
+ }];
23
+ //# sourceMappingURL=registry.constant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.constant.d.ts","sourceRoot":"","sources":["../../../src/service/registry/registry.constant.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AAEnE;;;;GAIG;AACH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;EAQrC,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Capacity slots on the system registry Config (`details.objects`).
3
+ * Not fields on a Service Target row — see {@link Service} in `service.interface.ts`.
4
+ */
5
+ export declare enum ServiceSlotStatus {
6
+ EMPTY = "EMPTY",
7
+ ACTIVE = "ACTIVE"
8
+ }
9
+ export interface ServiceSlot {
10
+ serviceValue: string;
11
+ /** Bound Service.id when {@link ServiceSlotStatus.ACTIVE}; null when EMPTY. */
12
+ serviceId: string | null;
13
+ status: ServiceSlotStatus;
14
+ }
15
+ //# sourceMappingURL=registry.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.interface.d.ts","sourceRoot":"","sources":["../../../src/service/registry/registry.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oBAAY,iBAAiB;IACzB,KAAK,UAAU;IACf,MAAM,WAAW;CACpB;AAED,MAAM,WAAW,WAAW;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,iBAAiB,CAAC;CAC7B"}
@@ -8,10 +8,11 @@
8
8
  * - Slot release: graceful shutdown via {@link unregisterService}; monitor (later)
9
9
  * for crashed / ungraceful exits (stale `Service.details.runtime`)
10
10
  */
11
- import type { Node } from "../node/node.interface";
12
- import { type Config } from "./config.interface";
13
- import { type Service, type ServiceSlot } from "./service.interface";
14
- export { TARGET_SYSTEM_REGISTRY_KEY } from "./config.interface";
11
+ import type { Config } from "../../config/config.interface";
12
+ import type { Node } from "../../node/node.interface";
13
+ import type { Service } from "../service.interface";
14
+ import { type ServiceSlot } from "./registry.interface";
15
+ export { TARGET_SYSTEM_REGISTRY_KEY } from "./registry.constant";
15
16
  export interface TargetSystemRegistrySlotView {
16
17
  slot: ServiceSlot;
17
18
  /** Resolved when `slot.serviceId` is set; null for EMPTY slots. */
@@ -56,18 +57,23 @@ export interface ReleaseSystemRegistrySlotsByServiceIdOutcome {
56
57
  /** Requested `serviceIds` with no ACTIVE slot released (unknown id, already EMPTY, or never bound). */
57
58
  unchangedServiceIds: string[];
58
59
  }
59
- export interface AppendSystemRegistrySlotsInput {
60
- /** Logical service keys to declare with one new EMPTY slot each when missing. */
61
- serviceValues: string[];
60
+ export interface AppendSystemRegistryEmptySlotsInput {
61
+ /** Logical service key (e.g. `download-service`). */
62
+ serviceValue: string;
63
+ /** How many EMPTY slots to append. Default `1`. */
64
+ count?: number;
62
65
  traceId?: string;
63
66
  maxAttempts?: number;
64
67
  }
65
- export interface AppendSystemRegistrySlotsOutcome {
68
+ export interface AppendSystemRegistryEmptySlotsOutcome {
66
69
  config: Config;
67
- /** Service keys that received a new EMPTY slot this run. */
68
- added: string[];
69
- /** Requested keys that already had at least one declared slot — no change. */
70
- skipped: string[];
70
+ serviceValue: string;
71
+ /** EMPTY slots appended this run. */
72
+ appended: number;
73
+ /** Declared slot count for `serviceValue` before this run. */
74
+ capacityBefore: number;
75
+ /** Declared slot count for `serviceValue` after this run. */
76
+ capacityAfter: number;
71
77
  }
72
78
  export declare class ServiceRegistryError extends Error {
73
79
  readonly code: "REGISTRY_CONFIG_NOT_FOUND" | "SERVICE_NOT_DECLARED" | "SERVICE_SLOTS_FULL" | "REGISTRY_SLOT_LOST" | "REGISTRY_UPDATE_FAILED";
@@ -109,11 +115,13 @@ export declare function releaseSystemRegistrySlots(input: ReleaseSystemRegistryS
109
115
  */
110
116
  export declare function releaseSystemRegistrySlotsByServiceId(input: ReleaseSystemRegistrySlotsByServiceIdInput): Promise<ReleaseSystemRegistrySlotsByServiceIdOutcome>;
111
117
  /**
112
- * Append EMPTY {@link ServiceSlot} rows for logical service keys not yet declared.
113
- * Idempotent — skips keys that already appear in `details.objects`.
118
+ * Append one or more EMPTY {@link ServiceSlot} rows for a given `serviceValue`.
119
+ *
120
+ * Always grows capacity (does not skip when the key is already declared).
121
+ * Use for replica scale-out (e.g. second `download-service` instance).
114
122
  * Does not modify existing slots or release ACTIVE bindings.
115
123
  */
116
- export declare function appendSystemRegistrySlots(input: AppendSystemRegistrySlotsInput): Promise<AppendSystemRegistrySlotsOutcome>;
124
+ export declare function appendSystemRegistryEmptySlots(input: AppendSystemRegistryEmptySlotsInput): Promise<AppendSystemRegistryEmptySlotsOutcome>;
117
125
  /**
118
126
  * Claim one EMPTY slot for a running Service instance (`EMPTY → ACTIVE` only).
119
127
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.service.d.ts","sourceRoot":"","sources":["../../../src/service/registry/registry.service.ts"],"names":[],"mappings":"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"}
@@ -39,16 +39,6 @@ export interface ServiceRuntime {
39
39
  lastHeartBeat: number;
40
40
  nodes: ServiceNodeSnapshot[];
41
41
  }
42
- export declare enum ServiceSlotStatus {
43
- EMPTY = "EMPTY",
44
- ACTIVE = "ACTIVE"
45
- }
46
- export interface ServiceSlot {
47
- serviceValue: string;
48
- /** Bound {@link Service.id} when {@link ServiceSlotStatus.ACTIVE}; null when EMPTY. */
49
- serviceId: string | null;
50
- status: ServiceSlotStatus;
51
- }
52
42
  export interface Api extends Target {
53
43
  /** "core.post.target.0" 唯一键 领域 + METHOD + content + VERSION */
54
44
  value: string;
@@ -1 +1 @@
1
- {"version":3,"file":"service.interface.d.ts","sourceRoot":"","sources":["../../src/service/service.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE1E,MAAM,WAAW,OAAQ,SAAQ,MAAM;IACnC,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;CAC3B;AAED,oBAAY,eAAe;IACvB,OAAO,YAAY;CACtB;AAED,MAAM,WAAW,cAAc;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,qFAAqF;IACrF,OAAO,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,oBAAY,iBAAiB;IACzB,KAAK,UAAU;IACf,MAAM,WAAW;CACpB;AAED,MAAM,WAAW,WAAW;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,uFAAuF;IACvF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,iBAAiB,CAAC;CAC7B;AAED,MAAM,WAAW,GAAI,SAAQ,MAAM;IAC/B,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,EAAE,UAAU,CAAC;CACvB;AAED,oBAAY,WAAW;IACnB,GAAG,QAAQ;CACd;AAED,oBAAY,SAAS;IACjB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,MAAM,WAAW;CACpB;AAED,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,SAAS,CAAC;IAClB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACL,KAAK,EAAE,eAAe,EAAE,CAAC;KAC5B,CAAC;IACF,QAAQ,EAAE;QACN,KAAK,EAAE,eAAe,EAAE,CAAC;KAC5B,CAAC;IACF,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,gBAAgB,CAAC;CAG/B"}
1
+ {"version":3,"file":"service.interface.d.ts","sourceRoot":"","sources":["../../src/service/service.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE1E,MAAM,WAAW,OAAQ,SAAQ,MAAM;IACnC,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;CAC3B;AAED,oBAAY,eAAe;IACvB,OAAO,YAAY;CACtB;AAED,MAAM,WAAW,cAAc;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,qFAAqF;IACrF,OAAO,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,GAAI,SAAQ,MAAM;IAC/B,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,EAAE,UAAU,CAAC;CACvB;AAED,oBAAY,WAAW;IACnB,GAAG,QAAQ;CACd;AAED,oBAAY,SAAS;IACjB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,MAAM,WAAW;CACpB;AAED,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,SAAS,CAAC;IAClB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACL,KAAK,EAAE,eAAe,EAAE,CAAC;KAC5B,CAAC;IACF,QAAQ,EAAE;QACN,KAAK,EAAE,eAAe,EAAE,CAAC;KAC5B,CAAC;IACF,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,gBAAgB,CAAC;CAG/B"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * PostgREST / Supabase JS client helpers for `target` table filters.
3
+ *
4
+ * @see `.cursor/skills/postgrest-query-filters/SKILL.md`
5
+ */
6
+ /**
7
+ * Escape `%`, `_`, and `\` for PostgREST `ilike` patterns.
8
+ * Also strips commas — they break `.or()` filter strings when multiple columns are searched.
9
+ */
10
+ export declare function escapeIlikePattern(raw: string): string;
11
+ /**
12
+ * Format a JS string array as a PostgreSQL `text[]` literal for PostgREST filter values.
13
+ *
14
+ * Required when tag values contain `:` or other special characters, and when using
15
+ * `.filter(column, "not.ov", literal)` — `.not("column", "ov", jsArray)` stringifies
16
+ * with `Array#toString()` and produces an invalid array literal.
17
+ *
18
+ * @example
19
+ * toPostgrestTextArrayLiteral(["stop-word:base", "small-word"])
20
+ * // → '{"stop-word:base","small-word"}'
21
+ */
22
+ export declare function toPostgrestTextArrayLiteral(values: readonly string[]): string;
23
+ //# sourceMappingURL=postgrest.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgrest.utils.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/postgrest.utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAE7E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "target-supabase-sdk",
3
- "version": "0.2.14",
3
+ "version": "0.2.16",
4
4
  "description": "Supabase client initializer and data access APIs",
5
5
  "license": "MIT",
6
6
  "author": "KyLoc20",
package/src/browser.ts CHANGED
@@ -6,6 +6,12 @@
6
6
  */
7
7
 
8
8
  export type { SupabaseClient } from "@supabase/supabase-js";
9
+ export type {
10
+ Config,
11
+ ConfigDetails,
12
+ GetConfigPayload,
13
+ } from "./config/index";
14
+ export { CategoryConfig, getConfig, getConfigSchema } from "./config/index";
9
15
  export * from "./core.api";
10
16
  export * from "./core.interface";
11
17
  export * from "./core.schema";
@@ -102,13 +108,10 @@ export * from "./repo/repo.interface";
102
108
  export type {
103
109
  Api,
104
110
  ApiDetails,
105
- AppendSystemRegistrySlotsInput,
106
- AppendSystemRegistrySlotsOutcome,
111
+ AppendSystemRegistryEmptySlotsInput,
112
+ AppendSystemRegistryEmptySlotsOutcome,
107
113
  ClaimRegistrySlotInput,
108
- Config,
109
- ConfigDetails,
110
114
  GetApiPayload,
111
- GetConfigPayload,
112
115
  GetServicePayload,
113
116
  PatchServiceRuntimeInput,
114
117
  PostApiPayload,
@@ -136,12 +139,11 @@ export type {
136
139
  export {
137
140
  ApiMethod,
138
141
  apiDetailsSchema,
139
- appendSystemRegistrySlots,
142
+ appendSystemRegistryEmptySlots,
140
143
  assertRegistrySlotAvailable,
141
144
  assertRegistrySlotOwner,
142
145
  buildEmptyServiceSlots,
143
146
  buildSystemRegistryConfigDetails,
144
- CategoryConfig,
145
147
  CategoryService,
146
148
  claimServiceRegistrySlot,
147
149
  createActiveServiceLifecycle,
@@ -152,8 +154,6 @@ export {
152
154
  fieldDefinitionSchema,
153
155
  getApi,
154
156
  getApiSchema,
155
- getConfig,
156
- getConfigSchema,
157
157
  getService,
158
158
  getServiceSchema,
159
159
  getTargetSystemRegistry,
@@ -189,6 +189,7 @@ export {
189
189
  unregisterService,
190
190
  unregisterServiceAtShutdown,
191
191
  } from "./service/index";
192
+
192
193
  export type { FetchInitFactory, FetchRetryOptions } from "./shared/http/fetch-retry";
193
194
  export {
194
195
  fetchBinaryWithRetry,
@@ -233,6 +234,7 @@ export {
233
234
  classifyNetworkError,
234
235
  formatNetworkError,
235
236
  } from "./shared/utils/network-error";
237
+ export { escapeIlikePattern, toPostgrestTextArrayLiteral } from "./shared/utils/postgrest.utils";
236
238
  export type { SanitizeFileNameOptions } from "./shared/utils/safe-file-name";
237
239
  export { sanitizeFileName, sanitizeParcelFileName } from "./shared/utils/safe-file-name";
238
240
  export { sha256Hex } from "./shared/utils/sha256";
@@ -0,0 +1,72 @@
1
+ import { z } from "zod";
2
+ import { getPossibleTarget, getTarget, type QueryFilter, validateWithSchema } from "../core.api";
3
+ import { CategoryConfig, type Config } from "./config.interface";
4
+
5
+ const targetIdSchema = z.string().trim().min(1);
6
+
7
+ export const getConfigSchema = z
8
+ .object({
9
+ id: targetIdSchema.optional(),
10
+ value: z.string().trim().min(1).optional(),
11
+ })
12
+ .refine(
13
+ (payload) => {
14
+ const hasId = payload.id != null && payload.id !== "";
15
+ const hasValue = payload.value != null && payload.value !== "";
16
+ return hasId !== hasValue;
17
+ },
18
+ { message: "Provide exactly one of id or value" },
19
+ );
20
+
21
+ export type GetConfigPayload = z.infer<typeof getConfigSchema>;
22
+
23
+ const configCategoryFilter: QueryFilter = {
24
+ field: "category",
25
+ operator: "eq",
26
+ value: CategoryConfig.CONFIG,
27
+ };
28
+
29
+ function buildConfigLookupFilters(payload: GetConfigPayload): QueryFilter[] {
30
+ const filters: QueryFilter[] = [configCategoryFilter];
31
+
32
+ if (payload.id == null || payload.id === "") {
33
+ filters.push({ field: "value", operator: "eq", value: payload.value! });
34
+ }
35
+
36
+ return filters;
37
+ }
38
+
39
+ /** Fetch a Config by id or by {@link Config.value} key (`category=config`). */
40
+ export const getConfig = validateWithSchema(
41
+ getConfigSchema,
42
+ "getConfigSchema",
43
+ )(async (payload) => {
44
+ const filterList = buildConfigLookupFilters(payload);
45
+
46
+ if (payload.id != null && payload.id !== "") {
47
+ const result = await getTarget({
48
+ id: payload.id,
49
+ filterList,
50
+ });
51
+ return {
52
+ ...result,
53
+ data: result.data as Config,
54
+ };
55
+ }
56
+
57
+ const result = await getPossibleTarget({
58
+ filterList,
59
+ });
60
+
61
+ if (result.data == null) {
62
+ return {
63
+ ...result,
64
+ data: undefined,
65
+ };
66
+ }
67
+
68
+ return {
69
+ ...result,
70
+ data: result.data as Config,
71
+ };
72
+ });
@@ -3,7 +3,7 @@ import type { Target } from "../core.interface";
3
3
  export interface Config extends Target {
4
4
  /** Human readable name */
5
5
  name: string;
6
- /** Unique key, like TARGET_SYSTEM_REGISTRY_KEY */
6
+ /** Unique key (e.g. system registry Config value) */
7
7
  value: string;
8
8
  category: CategoryConfig;
9
9
  details: ConfigDetails;
@@ -13,9 +13,6 @@ export enum CategoryConfig {
13
13
  CONFIG = "config",
14
14
  }
15
15
 
16
- /** Globally unique Config key for the declarative system service registry. */
17
- export const TARGET_SYSTEM_REGISTRY_KEY = "target-system-registry";
18
-
19
16
  export interface ConfigDetails {
20
17
  manifestVersion: number;
21
18
  /** How to resolve the Config */
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Config domain public API — curated re-exports only.
3
+ * System registry seed / claim APIs live in `src/service/registry/`.
4
+ */
5
+
6
+ export type { GetConfigPayload } from "./config.api";
7
+ export { getConfig, getConfigSchema } from "./config.api";
8
+ export type { Config, ConfigDetails } from "./config.interface";
9
+ export { CategoryConfig } from "./config.interface";
@@ -1,4 +1,4 @@
1
- import { EMPTY_REGISTRY_SLOT_RUNTIME_STATE } from "../../service/registry-lifecycle";
1
+ import { EMPTY_REGISTRY_SLOT_RUNTIME_STATE } from "../../service/registry/registry-lifecycle";
2
2
  import type { JsonStatePatch } from "../fs/json-state-store";
3
3
  import { createShardedJsonFileStateStore } from "../fs/sharded-json-state-store";
4
4
  import type {
@@ -1,4 +1,4 @@
1
- import type { RegistrySlotRuntimeState } from "../../service/registry-lifecycle";
1
+ import type { RegistrySlotRuntimeState } from "../../service/registry/registry-lifecycle";
2
2
 
3
3
  export type ReadinessStatus = "pending" | "passed" | "failed";
4
4
 
@@ -1,4 +1,7 @@
1
- import { registrySlotRuntimePatchFromGuardResult, runRegistrySlotGuardCheck } from "../../service/registry-lifecycle";
1
+ import {
2
+ registrySlotRuntimePatchFromGuardResult,
3
+ runRegistrySlotGuardCheck,
4
+ } from "../../service/registry/registry-lifecycle";
2
5
  import type { LoggerWithScope } from "../../shared/log";
3
6
 
4
7
  export interface ApplyRegistrySlotGuardInput {
@@ -1,5 +1,5 @@
1
1
  import { scanTargetList } from "../../core.api";
2
- import { patchServiceRuntime } from "../../service/registry.service";
2
+ import { patchServiceRuntime } from "../../service/registry/registry.service";
3
3
  import { CategoryNode, type Node } from "../node.interface";
4
4
  import { evaluateBusyNodeLiveness } from "../node-liveness";
5
5
  import { applyRegistrySlotGuardStep } from "./registry-slot-guard-step";
@@ -1,4 +1,4 @@
1
- import type { RegistrySlotRuntimeState } from "../../service/registry-lifecycle";
1
+ import type { RegistrySlotRuntimeState } from "../../service/registry/registry-lifecycle";
2
2
  import type { LoggerWithScope } from "../../shared/log";
3
3
  import type { Node } from "../node.interface";
4
4
  import type { ReadinessCheck, ReadinessReport } from "../readiness/readiness.types";
@@ -1,5 +1,5 @@
1
- import { ServiceRegistryError } from "../../service/registry.service";
2
- import { claimServiceRegistrySlot, type ServiceRegistrySession } from "../../service/registry-lifecycle";
1
+ import { ServiceRegistryError } from "../../service/registry/registry.service";
2
+ import { claimServiceRegistrySlot, type ServiceRegistrySession } from "../../service/registry/registry-lifecycle";
3
3
  import type { Service } from "../../service/service.interface";
4
4
  import type { LoggerWithScope } from "../../shared/log";
5
5
 
@@ -1,5 +1,5 @@
1
- import { ServiceRegistryError } from "../../service/registry.service";
2
- import type { ServiceRegistrySession } from "../../service/registry-lifecycle";
1
+ import { ServiceRegistryError } from "../../service/registry/registry.service";
2
+ import type { ServiceRegistrySession } from "../../service/registry/registry-lifecycle";
3
3
  import type { Service } from "../../service/service.interface";
4
4
  import { createLogger, type LoggerWithScope } from "../../shared/log";
5
5
  import { LOG_SPOOL_SERVICE_ID_ENV } from "../../shared/log/spool/config";
@@ -1,4 +1,4 @@
1
- import type { ServiceRegistrySession } from "../../service/registry-lifecycle";
1
+ import type { ServiceRegistrySession } from "../../service/registry/registry-lifecycle";
2
2
  import type { Service } from "../../service/service.interface";
3
3
  import { createLogger, type LoggerWithScope } from "../../shared/log";
4
4
  import { claimRegistrySlotOrExit } from "./claim-registry-slot";