target-supabase-sdk 0.2.3 → 0.2.5

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 (163) hide show
  1. package/README.md +24 -18
  2. package/dist/browser.d.ts +11 -4
  3. package/dist/browser.d.ts.map +1 -1
  4. package/dist/browser.js +3 -3
  5. package/dist/chunks/{enable-log-persist-C7GJo_Nc.js → enable-log-persist-BL2FaGQp.js} +10 -8
  6. package/dist/chunks/enable-log-persist-BL2FaGQp.js.map +1 -0
  7. package/dist/chunks/{create-logger-DyH3mZ8p.js → list.api-Ab9v8yOg.js} +66 -57
  8. package/dist/chunks/list.api-Ab9v8yOg.js.map +1 -0
  9. package/dist/chunks/{word.interface-DLgRobKV.js → word.interface-Mw7bTSqs.js} +1191 -97
  10. package/dist/chunks/word.interface-Mw7bTSqs.js.map +1 -0
  11. package/dist/extraction/extraction.api.d.ts +117 -0
  12. package/dist/extraction/extraction.api.d.ts.map +1 -0
  13. package/dist/extraction/extraction.interface.d.ts +43 -0
  14. package/dist/extraction/extraction.interface.d.ts.map +1 -0
  15. package/dist/list/list.interface.d.ts +2 -2
  16. package/dist/list/list.interface.d.ts.map +1 -1
  17. package/dist/node/fs/json-state-store.d.ts.map +1 -1
  18. package/dist/node/fs/runtime-state-path.d.ts +17 -0
  19. package/dist/node/fs/runtime-state-path.d.ts.map +1 -0
  20. package/dist/node/fs/sharded-json-state-store.d.ts +19 -0
  21. package/dist/node/fs/sharded-json-state-store.d.ts.map +1 -0
  22. package/dist/node/node-runtime.base.d.ts +13 -1
  23. package/dist/node/node-runtime.base.d.ts.map +1 -1
  24. package/dist/node/process/create-managed-child-processes.d.ts +12 -0
  25. package/dist/node/process/create-managed-child-processes.d.ts.map +1 -0
  26. package/dist/node/process/index.d.ts +3 -1
  27. package/dist/node/process/index.d.ts.map +1 -1
  28. package/dist/node/process/managed-child-processes.d.ts +15 -2
  29. package/dist/node/process/managed-child-processes.d.ts.map +1 -1
  30. package/dist/node/runtime-state/create-service-runtime-state-store.d.ts +27 -0
  31. package/dist/node/runtime-state/create-service-runtime-state-store.d.ts.map +1 -0
  32. package/dist/node/runtime-state/index.d.ts +4 -0
  33. package/dist/node/runtime-state/index.d.ts.map +1 -0
  34. package/dist/node/runtime-state/service-runtime-state.types.d.ts +57 -0
  35. package/dist/node/runtime-state/service-runtime-state.types.d.ts.map +1 -0
  36. package/dist/node/service-guard/index.d.ts +9 -0
  37. package/dist/node/service-guard/index.d.ts.map +1 -0
  38. package/dist/node/service-guard/register-service-guard-runner.d.ts +9 -0
  39. package/dist/node/service-guard/register-service-guard-runner.d.ts.map +1 -0
  40. package/dist/node/service-guard/run-readiness-gate.d.ts +11 -0
  41. package/dist/node/service-guard/run-readiness-gate.d.ts.map +1 -0
  42. package/dist/node/service-guard/run-service-guard-tick.d.ts +7 -0
  43. package/dist/node/service-guard/run-service-guard-tick.d.ts.map +1 -0
  44. package/dist/node/service-guard/service-guard-node.d.ts +18 -0
  45. package/dist/node/service-guard/service-guard-node.d.ts.map +1 -0
  46. package/dist/node/service-guard/service-guard.interface.d.ts +58 -0
  47. package/dist/node/service-guard/service-guard.interface.d.ts.map +1 -0
  48. package/dist/node/service-guard/worker-spawn-cooldown.d.ts +4 -0
  49. package/dist/node/service-guard/worker-spawn-cooldown.d.ts.map +1 -0
  50. package/dist/node/service-host/index.d.ts +9 -0
  51. package/dist/node/service-host/index.d.ts.map +1 -0
  52. package/dist/node/service-host/registry-slot-guard-step.d.ts +21 -0
  53. package/dist/node/service-host/registry-slot-guard-step.d.ts.map +1 -0
  54. package/dist/node/service-host/service-host.d.ts +36 -0
  55. package/dist/node/service-host/service-host.d.ts.map +1 -0
  56. package/dist/node/service-host/single-process-service.d.ts +21 -0
  57. package/dist/node/service-host/single-process-service.d.ts.map +1 -0
  58. package/dist/node.d.ts +15 -2
  59. package/dist/node.d.ts.map +1 -1
  60. package/dist/node.js +2221 -1485
  61. package/dist/node.js.map +1 -1
  62. package/dist/preload.js +3 -3
  63. package/dist/service/config.api.d.ts +143 -0
  64. package/dist/service/config.api.d.ts.map +1 -0
  65. package/dist/service/config.interface.d.ts +22 -0
  66. package/dist/service/config.interface.d.ts.map +1 -0
  67. package/dist/service/index.d.ts +16 -17
  68. package/dist/service/index.d.ts.map +1 -1
  69. package/dist/service/registry-lifecycle.d.ts +43 -0
  70. package/dist/service/registry-lifecycle.d.ts.map +1 -0
  71. package/dist/service/registry.service.d.ts +117 -0
  72. package/dist/service/registry.service.d.ts.map +1 -0
  73. package/dist/service/service-bootstrap.d.ts +28 -0
  74. package/dist/service/service-bootstrap.d.ts.map +1 -0
  75. package/dist/service/service.api.d.ts +160 -0
  76. package/dist/service/service.api.d.ts.map +1 -1
  77. package/dist/service/service.interface.d.ts +32 -1
  78. package/dist/service/service.interface.d.ts.map +1 -1
  79. package/dist/shared/log/index.d.ts +4 -0
  80. package/dist/shared/log/index.d.ts.map +1 -1
  81. package/dist/shared/log/log-batch.d.ts +44 -0
  82. package/dist/shared/log/log-batch.d.ts.map +1 -0
  83. package/dist/shared/log/log-persist-coordinator.d.ts +37 -0
  84. package/dist/shared/log/log-persist-coordinator.d.ts.map +1 -0
  85. package/dist/shared/log/log-persist-flush.d.ts.map +1 -1
  86. package/dist/shared/log/log-persist.config.d.ts +0 -1
  87. package/dist/shared/log/log-persist.config.d.ts.map +1 -1
  88. package/dist/shared/log/log-persist.interface.d.ts +8 -0
  89. package/dist/shared/log/log-persist.interface.d.ts.map +1 -1
  90. package/dist/shared/utils/config-path.utils.d.ts +21 -0
  91. package/dist/shared/utils/config-path.utils.d.ts.map +1 -1
  92. package/dist/shared/utils/get-value-at-path.d.ts +3 -0
  93. package/dist/shared/utils/get-value-at-path.d.ts.map +1 -0
  94. package/dist/task/index.d.ts +2 -0
  95. package/dist/task/index.d.ts.map +1 -1
  96. package/dist/task/task-manager.d.ts +1 -1
  97. package/dist/task/task-manager.d.ts.map +1 -1
  98. package/dist/task/task-post-retry.api.d.ts +24 -0
  99. package/dist/task/task-post-retry.api.d.ts.map +1 -0
  100. package/dist/task/task-repo-context.d.ts +7 -1
  101. package/dist/task/task-repo-context.d.ts.map +1 -1
  102. package/dist/trigger/trigger-manager.d.ts +1 -1
  103. package/dist/trigger/trigger-manager.d.ts.map +1 -1
  104. package/dist/trigger/trigger-node.d.ts +1 -0
  105. package/dist/trigger/trigger-node.d.ts.map +1 -1
  106. package/dist/trigger/trigger.constant.d.ts +1 -1
  107. package/dist/trigger/trigger.constant.d.ts.map +1 -1
  108. package/dist/trigger/trigger.interface.d.ts +10 -0
  109. package/dist/trigger/trigger.interface.d.ts.map +1 -1
  110. package/package.json +4 -2
  111. package/src/browser.ts +102 -4
  112. package/src/extraction/extraction.api.ts +232 -0
  113. package/src/extraction/extraction.interface.ts +45 -0
  114. package/src/list/list.interface.ts +2 -2
  115. package/src/node/fs/json-state-store.ts +5 -2
  116. package/src/node/fs/runtime-state-path.ts +35 -0
  117. package/src/node/fs/sharded-json-state-store.ts +157 -0
  118. package/src/node/node-runtime.base.ts +37 -6
  119. package/src/node/process/create-managed-child-processes.ts +27 -0
  120. package/src/node/process/index.ts +4 -0
  121. package/src/node/process/managed-child-processes.ts +48 -15
  122. package/src/node/runtime-state/create-service-runtime-state-store.ts +125 -0
  123. package/src/node/runtime-state/index.ts +17 -0
  124. package/src/node/runtime-state/service-runtime-state.types.ts +64 -0
  125. package/src/node/service-guard/index.ts +17 -0
  126. package/src/node/service-guard/register-service-guard-runner.ts +64 -0
  127. package/src/node/service-guard/run-readiness-gate.ts +34 -0
  128. package/src/node/service-guard/run-service-guard-tick.ts +106 -0
  129. package/src/node/service-guard/service-guard-node.ts +52 -0
  130. package/src/node/service-guard/service-guard.interface.ts +64 -0
  131. package/src/node/service-guard/worker-spawn-cooldown.ts +13 -0
  132. package/src/node/service-host/index.ts +30 -0
  133. package/src/node/service-host/registry-slot-guard-step.ts +57 -0
  134. package/src/node/service-host/service-host.ts +168 -0
  135. package/src/node/service-host/single-process-service.ts +58 -0
  136. package/src/node.ts +69 -0
  137. package/src/service/config.api.ts +224 -0
  138. package/src/service/config.interface.ts +25 -0
  139. package/src/service/index.ts +78 -149
  140. package/src/service/registry-lifecycle.ts +144 -0
  141. package/src/service/registry.service.ts +726 -0
  142. package/src/service/service-bootstrap.ts +74 -0
  143. package/src/service/service.api.ts +13 -0
  144. package/src/service/service.interface.ts +36 -1
  145. package/src/shared/log/index.ts +13 -0
  146. package/src/shared/log/log-batch.ts +156 -0
  147. package/src/shared/log/log-persist-coordinator.ts +107 -0
  148. package/src/shared/log/log-persist-flush.ts +3 -3
  149. package/src/shared/log/log-persist.config.ts +0 -2
  150. package/src/shared/log/log-persist.interface.ts +10 -0
  151. package/src/shared/utils/config-path.utils.ts +35 -0
  152. package/src/shared/utils/get-value-at-path.ts +17 -0
  153. package/src/task/index.ts +2 -0
  154. package/src/task/task-manager.ts +10 -4
  155. package/src/task/task-post-retry.api.ts +61 -0
  156. package/src/task/task-repo-context.ts +8 -1
  157. package/src/trigger/trigger-manager.ts +4 -2
  158. package/src/trigger/trigger-node.ts +10 -4
  159. package/src/trigger/trigger.constant.ts +1 -1
  160. package/src/trigger/trigger.interface.ts +10 -0
  161. package/dist/chunks/create-logger-DyH3mZ8p.js.map +0 -1
  162. package/dist/chunks/enable-log-persist-C7GJo_Nc.js.map +0 -1
  163. package/dist/chunks/word.interface-DLgRobKV.js.map +0 -1
package/dist/preload.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import { resolve } from 'node:path';
2
- import { r as resolveProjectRootByPackageName, p as pinEnvProfileFromArgv, l as loadEnvFiles, v as validateLogPersistPreloadEnv, a as logPersistEnabledFromEnv } from './chunks/enable-log-persist-C7GJo_Nc.js';
2
+ import { r as resolveProjectRootByPackageName, p as pinEnvProfileFromArgv, l as loadEnvFiles, v as validateLogPersistPreloadEnv, a as logPersistEnabledFromEnv } from './chunks/enable-log-persist-BL2FaGQp.js';
3
3
  import 'node:fs';
4
4
  import 'node:url';
5
5
  import 'node:fs/promises';
6
- import './chunks/create-logger-DyH3mZ8p.js';
7
- import '@supabase/supabase-js';
6
+ import './chunks/list.api-Ab9v8yOg.js';
8
7
  import 'lodash-es';
8
+ import '@supabase/supabase-js';
9
9
  import 'node:crypto';
10
10
 
11
11
  function applyServiceEnvDefaults(projectRoot, options) {
@@ -0,0 +1,143 @@
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>;
21
+ /** One declarative EMPTY slot entry for seeding the system registry. */
22
+ export declare const systemRegistrySeedSlotSchema: z.ZodObject<{
23
+ serviceValue: z.ZodString;
24
+ }, "strip", z.ZodTypeAny, {
25
+ serviceValue: string;
26
+ }, {
27
+ serviceValue: string;
28
+ }>;
29
+ export type SystemRegistrySeedSlot = z.infer<typeof systemRegistrySeedSlotSchema>;
30
+ export declare const postSystemRegistryConfigSchema: z.ZodObject<{
31
+ /** When omitted, {@link DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS} is used. */
32
+ slots: z.ZodOptional<z.ZodArray<z.ZodObject<{
33
+ serviceValue: z.ZodString;
34
+ }, "strip", z.ZodTypeAny, {
35
+ serviceValue: string;
36
+ }, {
37
+ serviceValue: string;
38
+ }>, "many">>;
39
+ tagList: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
40
+ }, "strip", z.ZodTypeAny, {
41
+ tagList: string[];
42
+ slots?: {
43
+ serviceValue: string;
44
+ }[] | undefined;
45
+ }, {
46
+ tagList?: string[] | undefined;
47
+ slots?: {
48
+ serviceValue: string;
49
+ }[] | undefined;
50
+ }>;
51
+ export type PostSystemRegistryConfigPayload = z.infer<typeof postSystemRegistryConfigSchema>;
52
+ /** Same payload shape as {@link postSystemRegistryConfig} — replaces slots with fresh EMPTY rows. */
53
+ export declare const resetSystemRegistryConfigSchema: z.ZodObject<{
54
+ /** When omitted, {@link DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS} is used. */
55
+ slots: z.ZodOptional<z.ZodArray<z.ZodObject<{
56
+ serviceValue: z.ZodString;
57
+ }, "strip", z.ZodTypeAny, {
58
+ serviceValue: string;
59
+ }, {
60
+ serviceValue: string;
61
+ }>, "many">>;
62
+ tagList: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
63
+ }, "strip", z.ZodTypeAny, {
64
+ tagList: string[];
65
+ slots?: {
66
+ serviceValue: string;
67
+ }[] | undefined;
68
+ }, {
69
+ tagList?: string[] | undefined;
70
+ slots?: {
71
+ serviceValue: string;
72
+ }[] | undefined;
73
+ }>;
74
+ 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
+ /** Build EMPTY {@link ServiceSlot} rows from seed entries (one slot per array item). */
78
+ export declare function buildEmptyServiceSlots(seedSlots: readonly SystemRegistrySeedSlot[]): ServiceSlot[];
79
+ /** Build `ConfigDetails` for the globally unique system registry row. */
80
+ 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
+ /**
123
+ * Insert the globally unique system registry Config (`category=config`,
124
+ * `value=target-system-registry`). Rejects duplicates via `checkRedundancyFilterList`.
125
+ */
126
+ export declare const postSystemRegistryConfig: (payload: {
127
+ tagList: string[];
128
+ slots?: {
129
+ serviceValue: string;
130
+ }[] | undefined;
131
+ }) => import("..").SupabaseResponse<Config> | Promise<import("..").SupabaseResponse<Config>>;
132
+ /**
133
+ * Replace the system registry slot layout with fresh EMPTY rows.
134
+ * Creates the row when missing (same as {@link postSystemRegistryConfig}).
135
+ * Clears ACTIVE slot bindings — use for dev recovery after crashes or layout changes.
136
+ */
137
+ export declare const resetSystemRegistryConfig: (payload: {
138
+ tagList: string[];
139
+ slots?: {
140
+ serviceValue: string;
141
+ }[] | undefined;
142
+ }) => import("..").SupabaseResponse<Config> | Promise<import("..").SupabaseResponse<Config>>;
143
+ //# sourceMappingURL=config.api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.api.d.ts","sourceRoot":"","sources":["../../src/service/config.api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,OAAO,EAAkB,KAAK,MAAM,EAAE,KAAK,aAAa,EAA8B,MAAM,oBAAoB,CAAC;AACjH,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,qBAAqB,CAAC;AAI1E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAYvB,CAAC;AAEN,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE/D,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;AAK/E,uFAAuF;AACvF,eAAO,MAAM,kCAAkC,EAAE,SAAS,sBAAsB,EAKtE,CAAC;AAkBX,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,+EAA+E;AAC/E,eAAO,MAAM,SAAS;;;;UAaW,MAAM;;;;;;YA1GnC,CAAC;;;;;;;;;YAAD,CAAC;;;UA0G4B,MAAM;;;;;;YA1GnC,CAAC;;;;;;;;;YAAD,CAAC;;EA6HH,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;4FAsBnC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;;;;;4FA2CpC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { Target } from "../core.interface";
2
+ export interface Config extends Target {
3
+ /** Human readable name */
4
+ name: string;
5
+ /** Unique key, like TARGET_SYSTEM_REGISTRY_KEY */
6
+ value: string;
7
+ category: CategoryConfig;
8
+ details: ConfigDetails;
9
+ }
10
+ export declare enum CategoryConfig {
11
+ CONFIG = "config"
12
+ }
13
+ /** Globally unique Config key for the declarative system service registry. */
14
+ export declare const TARGET_SYSTEM_REGISTRY_KEY = "target-system-registry";
15
+ export interface ConfigDetails {
16
+ manifestVersion: number;
17
+ /** How to resolve the Config */
18
+ loaderKey: string;
19
+ meta: unknown;
20
+ objects: Array<unknown>;
21
+ }
22
+ //# sourceMappingURL=config.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.interface.d.ts","sourceRoot":"","sources":["../../src/service/config.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,MAAO,SAAQ,MAAM;IAClC,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,aAAa,CAAC;CAC1B;AAED,oBAAY,cAAc;IACtB,MAAM,WAAW;CACpB;AAED,8EAA8E;AAC9E,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CAC3B"}
@@ -1,21 +1,20 @@
1
- import { type SupabaseResponse } from "../core.interface";
2
- import { type Service } from "./service.interface";
1
+ /**
2
+ * Service domain public API — curated re-exports only.
3
+ */
3
4
  export type { EnumMembers, FieldDefinition, SchemaDefinition, ServiceLifecycle, } from "./base.interface";
4
5
  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 { PatchServiceRuntimeInput, RegisterServiceInput, ReleasedRegistrySlot, ReleaseSystemRegistrySlotsInput, ReleaseSystemRegistrySlotsOutcome, TargetSystemRegistrySlotView, TargetSystemRegistryView, } from "./registry.service";
11
+ export { assertRegistrySlotAvailable, assertRegistrySlotOwner, getTargetSystemRegistry, parseServiceSlot, parseServiceSlots, patchServiceRuntime, registerService, registerServiceAtStartup, releaseSystemRegistrySlots, 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";
5
14
  export type { GetApiPayload, GetServicePayload, PostApiPayload, PostServicePayload } from "./service.api";
6
- export { apiDetailsSchema, fieldDefinitionSchema, getApi, getApiSchema, getService, getServiceSchema, postApi, postApiSchema, postService, postServiceSchema, schemaDefinitionSchema, serviceDetailsSchema, serviceLifecycleSchema, } from "./service.api";
7
- export type { Api, ApiDetails, Service, ServiceDetails } from "./service.interface";
8
- export { ApiMethod, CategoryApi, CategoryService } from "./service.interface";
9
- export interface DiscoverServiceInput {
10
- /** {@link Service.value} */
11
- value: string;
12
- traceId?: string;
13
- }
14
- /**
15
- * Discover a single service by {@link Service.value}.
16
- * Only returns services with `lifecycle.status === ACTIVE` (filtered at query time).
17
- *
18
- * Lookup: primary `getService` → fallback `scanTargetList` by value.
19
- */
20
- export declare function discoverService(input: DiscoverServiceInput): Promise<SupabaseResponse<Service>>;
15
+ 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";
18
+ export type { PostServiceInstanceOptions, ServiceBootstrapResult } from "./service-bootstrap";
19
+ export { createActiveServiceLifecycle, defaultL3ServiceDetails, postServiceInstance, } from "./service-bootstrap";
21
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI5E,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEpE,YAAY,EACR,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,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,GACzB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE9E,MAAM,WAAW,oBAAoB;IACjC,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAoCD;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CA6FrG"}
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,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,+BAA+B,EAC/B,iCAAiC,EACjC,4BAA4B,EAC5B,wBAAwB,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACH,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,0BAA0B,EAC1B,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"}
@@ -0,0 +1,43 @@
1
+ import type { Service } from "./service.interface";
2
+ /** Shared registry slice for L3 runtime state files (`state.json`). */
3
+ export interface RegistrySlotRuntimeState {
4
+ serviceId: string | null;
5
+ serviceValue: string | null;
6
+ slotOwned: boolean | null;
7
+ lastSlotCheckAt: string | null;
8
+ lastSlotCheckError: string | null;
9
+ }
10
+ export declare const EMPTY_REGISTRY_SLOT_RUNTIME_STATE: RegistrySlotRuntimeState;
11
+ export declare function createClaimedRegistrySlotRuntimeState(service: Service): RegistrySlotRuntimeState;
12
+ export interface ClaimRegistrySlotInput {
13
+ serviceValue: string;
14
+ createInstance: () => Promise<Service>;
15
+ traceId?: string;
16
+ }
17
+ export interface ServiceRegistrySession {
18
+ service: Service;
19
+ /** Graceful shutdown — releases ACTIVE registry slot. */
20
+ release: () => Promise<void>;
21
+ /** Abandon orphan instance row when register never succeeded. */
22
+ abandon: () => Promise<void>;
23
+ }
24
+ /**
25
+ * Preflight → create Service instance → claim registry slot.
26
+ * On register failure after `createInstance`, deletes the orphan Service row.
27
+ */
28
+ export declare function claimServiceRegistrySlot(input: ClaimRegistrySlotInput): Promise<ServiceRegistrySession>;
29
+ export interface RegistrySlotGuardResult {
30
+ slotOwned: boolean | null;
31
+ shouldShutdown: boolean;
32
+ error?: string;
33
+ }
34
+ /**
35
+ * Runtime guard step for service supervisor loops.
36
+ * Transient read failures soft-fail; confirmed slot loss returns `shouldShutdown: true`.
37
+ */
38
+ export declare function runRegistrySlotGuardCheck(input: {
39
+ serviceValue: string;
40
+ serviceId: string;
41
+ }): Promise<RegistrySlotGuardResult>;
42
+ export declare function registrySlotRuntimePatchFromGuardResult(result: RegistrySlotGuardResult, checkedAt: string): Pick<RegistrySlotRuntimeState, "slotOwned" | "lastSlotCheckAt" | "lastSlotCheckError">;
43
+ //# sourceMappingURL=registry-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-lifecycle.d.ts","sourceRoot":"","sources":["../../src/service/registry-lifecycle.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAInD,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"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * System registry — declarative service capacity (`target-system-registry` Config)
3
+ * and startup/shutdown slot claims (`registerService` / `unregisterService`).
4
+ *
5
+ * Data planes:
6
+ * - Config `details.objects` — {@link ServiceSlot} desired layout (EMPTY / ACTIVE)
7
+ * - Service rows — runtime instances; guard maintains {@link ServiceDetails.runtime}
8
+ * - Slot release: graceful shutdown via {@link unregisterService}; monitor (later)
9
+ * for crashed / ungraceful exits (stale `Service.details.runtime`)
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";
15
+ export interface TargetSystemRegistrySlotView {
16
+ slot: ServiceSlot;
17
+ /** Resolved when `slot.serviceId` is set; null for EMPTY slots. */
18
+ service: Service | null;
19
+ }
20
+ export interface TargetSystemRegistryView {
21
+ config: Config;
22
+ slots: TargetSystemRegistrySlotView[];
23
+ }
24
+ export interface RegisterServiceInput {
25
+ /** Registered runtime Service row (`category=service`). */
26
+ service: Service;
27
+ traceId?: string;
28
+ maxAttempts?: number;
29
+ }
30
+ export interface ReleaseSystemRegistrySlotsInput {
31
+ /** Logical service keys whose ACTIVE slots should be forced to EMPTY (e.g. `watch-service`). */
32
+ serviceValues: string[];
33
+ traceId?: string;
34
+ maxAttempts?: number;
35
+ }
36
+ export interface ReleasedRegistrySlot {
37
+ serviceValue: string;
38
+ serviceId: string;
39
+ slotIndex: number;
40
+ }
41
+ export interface ReleaseSystemRegistrySlotsOutcome {
42
+ config: Config;
43
+ released: ReleasedRegistrySlot[];
44
+ /** Requested `serviceValues` with no ACTIVE slot released (already EMPTY or never bound). */
45
+ unchangedServiceValues: string[];
46
+ }
47
+ export declare class ServiceRegistryError extends Error {
48
+ readonly code: "REGISTRY_CONFIG_NOT_FOUND" | "SERVICE_NOT_DECLARED" | "SERVICE_SLOTS_FULL" | "REGISTRY_SLOT_LOST" | "REGISTRY_UPDATE_FAILED";
49
+ constructor(message: string, code: "REGISTRY_CONFIG_NOT_FOUND" | "SERVICE_NOT_DECLARED" | "SERVICE_SLOTS_FULL" | "REGISTRY_SLOT_LOST" | "REGISTRY_UPDATE_FAILED");
50
+ }
51
+ /** Defensive decode of one {@link ServiceSlot} from Config `details.objects`. */
52
+ export declare function parseServiceSlot(value: unknown): ServiceSlot | null;
53
+ export declare function parseServiceSlots(config: Config): ServiceSlot[];
54
+ /**
55
+ * Load the global system registry Config and resolve each ACTIVE slot's Service row.
56
+ * Read-only — does not mutate slots or heartbeats.
57
+ */
58
+ export declare function getTargetSystemRegistry(): Promise<TargetSystemRegistryView>;
59
+ /**
60
+ * Preflight before `postService` — fail fast when registry capacity is full.
61
+ * Prevents orphan Service rows and child process spawn when no slot is available.
62
+ */
63
+ export declare function assertRegistrySlotAvailable(serviceValue: string): Promise<void>;
64
+ /**
65
+ * Runtime guard: this process's Service instance must still own an ACTIVE registry slot.
66
+ * Supports N>1 replicas — checks whether `serviceId` appears in any ACTIVE slot for
67
+ * `serviceValue`, not merely the first ACTIVE slot.
68
+ */
69
+ export declare function assertRegistrySlotOwner(input: {
70
+ serviceValue: string;
71
+ serviceId: string;
72
+ }): Promise<void>;
73
+ /**
74
+ * Force-release ACTIVE registry slots for the given logical service keys (`ACTIVE → EMPTY`).
75
+ * Ops/dev recovery when a process crashed without {@link unregisterService}.
76
+ * Does not delete Service rows or mutate `details.runtime`.
77
+ */
78
+ export declare function releaseSystemRegistrySlots(input: ReleaseSystemRegistrySlotsInput): Promise<ReleaseSystemRegistrySlotsOutcome>;
79
+ /**
80
+ * Claim one EMPTY slot for a running Service instance (`EMPTY → ACTIVE` only).
81
+ *
82
+ * - Each startup should `postService` a **new** instance row; do not reuse prior Service ids.
83
+ * - Declared capacity = count of {@link ServiceSlot} rows sharing `service.value`
84
+ * - No idempotent skip — if all slots are ACTIVE (e.g. crashed prior instance), throws
85
+ * `SERVICE_SLOTS_FULL` until monitor/ops releases the slot
86
+ * - Does not write heartbeats; guard maintains {@link ServiceDetails.runtime}
87
+ * - Graceful release: {@link unregisterService}; crash recovery: future monitor
88
+ */
89
+ export declare function registerService(input: RegisterServiceInput): Promise<void>;
90
+ /** Resolve the ACTIVE registry slot id for a declared `serviceValue`. */
91
+ export declare function resolveActiveRegistryServiceId(serviceValue: string): Promise<string | null>;
92
+ export interface PatchServiceRuntimeInput {
93
+ serviceValue: string;
94
+ /** Prefer explicit id (N>1 replicas); falls back to first ACTIVE slot when omitted. */
95
+ serviceId?: string;
96
+ nodes: readonly Node[];
97
+ lastHeartBeat: number;
98
+ }
99
+ /** Roll up Node liveness into `Service.details.runtime` (service guard only). */
100
+ export declare function patchServiceRuntime(input: PatchServiceRuntimeInput): Promise<void>;
101
+ /**
102
+ * Claim a registry slot at L3 startup — propagates {@link ServiceRegistryError} (e.g. `SERVICE_SLOTS_FULL`).
103
+ */
104
+ export declare function registerServiceAtStartup(input: RegisterServiceInput): Promise<void>;
105
+ /**
106
+ * Release the ACTIVE slot owned by this Service instance (`ACTIVE → EMPTY` only).
107
+ *
108
+ * - Idempotent when no ACTIVE slot is bound to `service.id`
109
+ * - Does not mutate the Service row or `details.runtime`
110
+ * - Does not release slots owned by other instances
111
+ */
112
+ export declare function unregisterService(input: RegisterServiceInput): Promise<void>;
113
+ /**
114
+ * Best-effort slot release for process shutdown — never throws.
115
+ */
116
+ export declare function unregisterServiceAtShutdown(input: RegisterServiceInput): Promise<void>;
117
+ //# sourceMappingURL=registry.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.service.d.ts","sourceRoot":"","sources":["../../src/service/registry.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type LoggerWithScope } from "../shared/log";
2
+ import type { ServiceLifecycle } from "./base.interface";
3
+ import type { Service, ServiceDetails } from "./service.interface";
4
+ /** Default ACTIVE lifecycle for a newly posted Service instance row. */
5
+ export declare function createActiveServiceLifecycle(activeSince?: string): ServiceLifecycle;
6
+ /** Standard L3 Service `details` — empty apiKeys, manifest v0, ACTIVE lifecycle. */
7
+ export declare function defaultL3ServiceDetails(options?: {
8
+ dependencies?: string[];
9
+ }): ServiceDetails;
10
+ export interface PostServiceInstanceOptions {
11
+ name: string;
12
+ value: string;
13
+ tagList?: string[];
14
+ dependencies?: string[];
15
+ logger?: LoggerWithScope;
16
+ /** Log topic for instance-created message. Default `bootstrap`. */
17
+ logTopic?: string;
18
+ }
19
+ /**
20
+ * Post a new Service instance row (L3 blueprint).
21
+ * Same `value` may exist on many rows; registry slot claim selects the live instance.
22
+ */
23
+ export declare function postServiceInstance(options: PostServiceInstanceOptions): Promise<Service>;
24
+ export interface ServiceBootstrapResult {
25
+ service: Service;
26
+ baseUrl: string;
27
+ }
28
+ //# sourceMappingURL=service-bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-bootstrap.d.ts","sourceRoot":"","sources":["../../src/service/service-bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AASnE,wEAAwE;AACxE,wBAAgB,4BAA4B,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAOnF;AAED,oFAAoF;AACpF,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,cAAc,CAO7F;AAED,MAAM,WAAW,0BAA0B;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,OAAO,CAAC,CAqB/F;AAED,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACnB"}