target-supabase-sdk 0.1.8 → 0.1.9

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 (144) hide show
  1. package/README.md +8 -6
  2. package/dist/auth/auth.api.d.ts.map +1 -1
  3. package/dist/auth/auth.api.js +2 -1
  4. package/dist/auth/auth.api.js.map +1 -1
  5. package/dist/command/command.api.d.ts +43 -0
  6. package/dist/command/command.api.d.ts.map +1 -0
  7. package/dist/command/command.api.js +58 -0
  8. package/dist/command/command.api.js.map +1 -0
  9. package/dist/command/command.interface.d.ts +14 -0
  10. package/dist/command/command.interface.d.ts.map +1 -0
  11. package/dist/command/command.interface.js +9 -0
  12. package/dist/command/command.interface.js.map +1 -0
  13. package/dist/core.api.d.ts +70 -6
  14. package/dist/core.api.d.ts.map +1 -1
  15. package/dist/core.api.js +191 -13
  16. package/dist/core.api.js.map +1 -1
  17. package/dist/file/file-manager.d.ts +1 -1
  18. package/dist/file/file-manager.d.ts.map +1 -1
  19. package/dist/file/file-manager.js +1 -1
  20. package/dist/file/file-manager.js.map +1 -1
  21. package/dist/index.d.ts +9 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +8 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/node/node-manager.d.ts +48 -0
  26. package/dist/node/node-manager.d.ts.map +1 -0
  27. package/dist/node/node-manager.js +619 -0
  28. package/dist/node/node-manager.js.map +1 -0
  29. package/dist/node/node-task.preset.d.ts +1 -0
  30. package/dist/node/node-task.preset.d.ts.map +1 -0
  31. package/dist/node/node-task.preset.js +14 -0
  32. package/dist/node/node-task.preset.js.map +1 -0
  33. package/dist/node/node.api.d.ts +67 -31
  34. package/dist/node/node.api.d.ts.map +1 -1
  35. package/dist/node/node.api.js +65 -102
  36. package/dist/node/node.api.js.map +1 -1
  37. package/dist/node/node.interface.d.ts +7 -0
  38. package/dist/node/node.interface.d.ts.map +1 -1
  39. package/dist/node/node.interface.js +2 -0
  40. package/dist/node/node.interface.js.map +1 -1
  41. package/dist/node/node.utils.d.ts +5 -0
  42. package/dist/node/node.utils.d.ts.map +1 -0
  43. package/dist/node/node.utils.js +36 -0
  44. package/dist/node/node.utils.js.map +1 -0
  45. package/dist/parcel/parcel-manager.d.ts +1 -1
  46. package/dist/parcel/parcel-manager.d.ts.map +1 -1
  47. package/dist/parcel/parcel-manager.js +1 -1
  48. package/dist/parcel/parcel-manager.js.map +1 -1
  49. package/dist/repo/repo-context.utils.d.ts +24 -0
  50. package/dist/repo/repo-context.utils.d.ts.map +1 -0
  51. package/dist/repo/repo-context.utils.js +81 -0
  52. package/dist/repo/repo-context.utils.js.map +1 -0
  53. package/dist/repo/repo-manager.d.ts +31 -0
  54. package/dist/repo/repo-manager.d.ts.map +1 -0
  55. package/dist/repo/repo-manager.js +156 -0
  56. package/dist/repo/repo-manager.js.map +1 -0
  57. package/dist/repo/repo.api.d.ts +16 -0
  58. package/dist/repo/repo.api.d.ts.map +1 -0
  59. package/dist/repo/repo.api.js +40 -0
  60. package/dist/repo/repo.api.js.map +1 -0
  61. package/dist/repo/repo.interface.d.ts +12 -5
  62. package/dist/repo/repo.interface.d.ts.map +1 -1
  63. package/dist/repo/repo.interface.js +2 -2
  64. package/dist/repo/repo.interface.js.map +1 -1
  65. package/dist/repo/repo.script-loader.d.ts +19 -0
  66. package/dist/repo/repo.script-loader.d.ts.map +1 -0
  67. package/dist/repo/repo.script-loader.js +108 -0
  68. package/dist/repo/repo.script-loader.js.map +1 -0
  69. package/dist/shared/log/create-api-logger.d.ts +17 -0
  70. package/dist/shared/log/create-api-logger.d.ts.map +1 -0
  71. package/dist/shared/log/create-api-logger.js +15 -0
  72. package/dist/shared/log/create-api-logger.js.map +1 -0
  73. package/dist/shared/log/log-manager.d.ts +114 -0
  74. package/dist/shared/log/log-manager.d.ts.map +1 -0
  75. package/dist/shared/log/log-manager.js +218 -0
  76. package/dist/shared/log/log-manager.js.map +1 -0
  77. package/dist/shared/utils/config-path.utils.d.ts +38 -0
  78. package/dist/shared/utils/config-path.utils.d.ts.map +1 -0
  79. package/dist/shared/utils/config-path.utils.js +85 -0
  80. package/dist/shared/utils/config-path.utils.js.map +1 -0
  81. package/dist/shared/utils/error.utils.d.ts +11 -0
  82. package/dist/shared/utils/error.utils.d.ts.map +1 -0
  83. package/dist/shared/utils/error.utils.js +15 -0
  84. package/dist/shared/utils/error.utils.js.map +1 -0
  85. package/dist/shared/utils/id.utils.d.ts +3 -0
  86. package/dist/shared/utils/id.utils.d.ts.map +1 -0
  87. package/dist/shared/utils/id.utils.js +5 -0
  88. package/dist/shared/utils/id.utils.js.map +1 -0
  89. package/dist/supabase.js +1 -1
  90. package/dist/supabase.js.map +1 -1
  91. package/dist/task/local-task-registry.d.ts +27 -0
  92. package/dist/task/local-task-registry.d.ts.map +1 -0
  93. package/dist/task/local-task-registry.js +153 -0
  94. package/dist/task/local-task-registry.js.map +1 -0
  95. package/dist/task/task-manager.d.ts +52 -0
  96. package/dist/task/task-manager.d.ts.map +1 -0
  97. package/dist/task/task-manager.js +217 -0
  98. package/dist/task/task-manager.js.map +1 -0
  99. package/dist/task/task-repo-context.d.ts +95 -0
  100. package/dist/task/task-repo-context.d.ts.map +1 -0
  101. package/dist/task/task-repo-context.js +12 -0
  102. package/dist/task/task-repo-context.js.map +1 -0
  103. package/dist/task/task.api.d.ts +240 -0
  104. package/dist/task/task.api.d.ts.map +1 -1
  105. package/dist/task/task.api.js +350 -1
  106. package/dist/task/task.api.js.map +1 -1
  107. package/dist/task/task.interface.d.ts +9 -2
  108. package/dist/task/task.interface.d.ts.map +1 -1
  109. package/dist/task/task.interface.js +10 -0
  110. package/dist/task/task.interface.js.map +1 -1
  111. package/package.json +10 -3
  112. package/src/auth/auth.api.ts +3 -1
  113. package/src/command/command.api.ts +88 -0
  114. package/src/command/command.interface.ts +17 -0
  115. package/src/core.api.ts +305 -26
  116. package/src/file/file-manager.ts +1 -1
  117. package/src/index.ts +18 -3
  118. package/src/node/node-manager.ts +673 -0
  119. package/src/node/node-task.preset.ts +13 -0
  120. package/src/node/node.api.ts +95 -117
  121. package/src/node/node.interface.ts +8 -0
  122. package/src/node/node.utils.ts +36 -0
  123. package/src/parcel/parcel-manager.ts +1 -1
  124. package/src/repo/repo-context.utils.ts +111 -0
  125. package/src/repo/repo-manager.ts +217 -0
  126. package/src/repo/repo.api.ts +50 -0
  127. package/src/repo/repo.interface.ts +13 -5
  128. package/src/repo/repo.script-loader.ts +140 -0
  129. package/src/shared/log/create-api-logger.ts +25 -0
  130. package/src/shared/log/log-manager.ts +340 -0
  131. package/src/shared/utils/config-path.utils.ts +104 -0
  132. package/src/shared/utils/error.utils.ts +15 -0
  133. package/src/shared/utils/id.utils.ts +4 -0
  134. package/src/supabase.ts +1 -1
  135. package/src/task/local-task-registry.ts +195 -0
  136. package/src/task/task-manager.ts +312 -0
  137. package/src/task/task-repo-context.ts +103 -0
  138. package/src/task/task.api.ts +429 -0
  139. package/src/task/task.interface.ts +10 -2
  140. package/dist/task/task-node-manager.d.ts +0 -1
  141. package/dist/task/task-node-manager.d.ts.map +0 -1
  142. package/dist/task/task-node-manager.js +0 -2
  143. package/dist/task/task-node-manager.js.map +0 -1
  144. package/src/task/task-node-manager.ts +0 -0
@@ -0,0 +1,218 @@
1
+ import { isDevEnvironment } from "../../core.utils";
2
+ import { generateUniqueId } from "../utils/id.utils";
3
+ /**
4
+ * Log severity and semantics (low → high). `minLevel` filters by {@link LOG_LEVEL_RANK}.
5
+ *
6
+ * | Level | Rank | When to use |
7
+ * |----------|------|-------------|
8
+ * | DEBUG | 0 | Diagnostic detail for dev/troubleshooting; noisy, safe to drop in prod. |
9
+ * | INFO | 1 | Normal operational flow (startup, polling, state transitions). |
10
+ * | SUCCESS | 2 | Positive milestone within a flow (not a separate severity axis — same band as INFO). |
11
+ * | WARN | 3 | Recoverable anomaly or degradation; work continues but worth watching. |
12
+ * | ERROR | 4 | A concrete operation failed (API, task step, I/O); investigate and retry/fix locally. |
13
+ * | CRITICAL | 5 | Invariant violated — design flaw, data-integrity risk, or business rule broken; escalate and fix urgently. |
14
+ */
15
+ var LogLevel;
16
+ (function (LogLevel) {
17
+ LogLevel["DEBUG"] = "DEBUG";
18
+ LogLevel["INFO"] = "INFO";
19
+ LogLevel["SUCCESS"] = "SUCCESS";
20
+ LogLevel["WARN"] = "WARN";
21
+ LogLevel["ERROR"] = "ERROR";
22
+ LogLevel["CRITICAL"] = "CRITICAL";
23
+ })(LogLevel || (LogLevel = {}));
24
+ const LOG_LEVEL_RANK = {
25
+ [LogLevel.DEBUG]: 0,
26
+ [LogLevel.INFO]: 1,
27
+ [LogLevel.SUCCESS]: 2,
28
+ [LogLevel.WARN]: 3,
29
+ [LogLevel.ERROR]: 4,
30
+ [LogLevel.CRITICAL]: 5,
31
+ };
32
+ const DEFAULT_OPTIONS = {
33
+ defaultTopic: null,
34
+ formatTimestamp: true,
35
+ formatEmoji: true,
36
+ formatPrefix: "",
37
+ maxHistoryLength: 4096,
38
+ minLevel: isDevEnvironment() ? LogLevel.DEBUG : LogLevel.INFO,
39
+ };
40
+ function mergeLogOptions(options) {
41
+ return { ...DEFAULT_OPTIONS, ...options };
42
+ }
43
+ function formatContextValue(value) {
44
+ if (value === undefined) {
45
+ return "";
46
+ }
47
+ if (typeof value === "string") {
48
+ return value;
49
+ }
50
+ try {
51
+ return JSON.stringify(value);
52
+ }
53
+ catch {
54
+ return String(value);
55
+ }
56
+ }
57
+ function validateLogContext(logContext) {
58
+ const missing = [];
59
+ if (!logContext.module?.trim()) {
60
+ missing.push("module");
61
+ }
62
+ if (!logContext.traceId?.trim()) {
63
+ missing.push("traceId");
64
+ }
65
+ if (missing.length > 0) {
66
+ console.warn(`[LogManager] LogContext missing or empty: ${missing.join(", ")}`, logContext);
67
+ }
68
+ }
69
+ class LogManager {
70
+ static instance;
71
+ options;
72
+ history = [];
73
+ levelEmojis = {
74
+ [LogLevel.DEBUG]: "🔍",
75
+ [LogLevel.INFO]: "ℹ️",
76
+ [LogLevel.SUCCESS]: "✅",
77
+ [LogLevel.WARN]: "⚠️",
78
+ [LogLevel.ERROR]: "❌",
79
+ [LogLevel.CRITICAL]: "💀",
80
+ };
81
+ constructor(options) {
82
+ this.options = mergeLogOptions(options);
83
+ }
84
+ static getInstance(options) {
85
+ if (!LogManager.instance) {
86
+ LogManager.instance = new LogManager(options);
87
+ }
88
+ else if (options != null && Object.keys(options).length > 0) {
89
+ console.warn("[LogManager] getInstance(options) ignored — singleton already created. Use setOptions() instead.");
90
+ }
91
+ return LogManager.instance;
92
+ }
93
+ setOptions(options) {
94
+ this.options = mergeLogOptions({ ...this.options, ...options });
95
+ }
96
+ getHistory() {
97
+ return [...this.history];
98
+ }
99
+ clearHistory() {
100
+ this.history = [];
101
+ }
102
+ getMinLevel() {
103
+ return this.options.minLevel ?? DEFAULT_OPTIONS.minLevel ?? LogLevel.INFO;
104
+ }
105
+ shouldLog(level) {
106
+ return LOG_LEVEL_RANK[level] >= LOG_LEVEL_RANK[this.getMinLevel()];
107
+ }
108
+ createLogEntry({ level, message, topic, module, traceId, nodeId, extra, context, }) {
109
+ return {
110
+ timestamp: Date.now(),
111
+ level,
112
+ message,
113
+ topic: topic === undefined ? this.options.defaultTopic : topic,
114
+ module,
115
+ traceId,
116
+ nodeId,
117
+ extra,
118
+ context,
119
+ };
120
+ }
121
+ formatLevelTag(entry) {
122
+ const emoji = this.options.formatEmoji ? `${this.levelEmojis[entry.level]} ` : "";
123
+ if (entry.level === LogLevel.CRITICAL) {
124
+ return `[${emoji}*** ${entry.level} ***]`;
125
+ }
126
+ return `[${emoji}${entry.level}]`;
127
+ }
128
+ formatLog(entry) {
129
+ const parts = [];
130
+ if (this.options.formatTimestamp) {
131
+ parts.push(`[${new Date(entry.timestamp).toISOString()}]`);
132
+ }
133
+ parts.push(this.formatLevelTag(entry));
134
+ parts.push(`traceId=${entry.traceId} nodeId=${entry.nodeId ?? "--"} module=${entry.module} topic=${entry.topic ?? "--"}`);
135
+ if (this.options.formatPrefix) {
136
+ parts.push(`prefix=${this.options.formatPrefix}`);
137
+ }
138
+ const message = entry.level === LogLevel.CRITICAL ? `>>> ${entry.message} <<<` : entry.message;
139
+ parts.push(`| ${message}`);
140
+ if (entry.extra) {
141
+ parts.push(`| extra=${entry.extra}`);
142
+ }
143
+ const contextText = formatContextValue(entry.context);
144
+ if (contextText) {
145
+ parts.push(`| context=${contextText}`);
146
+ }
147
+ return parts.join(" ");
148
+ }
149
+ emitLog(entry, formatted) {
150
+ switch (entry.level) {
151
+ case LogLevel.WARN:
152
+ console.warn(formatted);
153
+ break;
154
+ case LogLevel.ERROR:
155
+ case LogLevel.CRITICAL:
156
+ console.error(formatted);
157
+ break;
158
+ default:
159
+ console.log(formatted);
160
+ }
161
+ }
162
+ log(level, message, logContext, restParams) {
163
+ if (!this.shouldLog(level)) {
164
+ return;
165
+ }
166
+ validateLogContext(logContext);
167
+ const { topic, extra, context } = restParams ?? {};
168
+ const { module, traceId, nodeId } = logContext;
169
+ const entry = this.createLogEntry({ level, message, topic, extra, context, module, traceId, nodeId });
170
+ this.history.push(entry);
171
+ if (this.history.length > this.options.maxHistoryLength) {
172
+ this.history.shift();
173
+ }
174
+ const formatted = this.formatLog(entry);
175
+ this.emitLog(entry, formatted);
176
+ this.options.onLog?.(entry);
177
+ }
178
+ generateTraceId() {
179
+ return generateUniqueId();
180
+ }
181
+ debug(message, logContext, restParams) {
182
+ this.log(LogLevel.DEBUG, message, logContext, restParams);
183
+ }
184
+ info(message, logContext, restParams) {
185
+ this.log(LogLevel.INFO, message, logContext, restParams);
186
+ }
187
+ success(message, logContext, restParams) {
188
+ this.log(LogLevel.SUCCESS, message, logContext, restParams);
189
+ }
190
+ warn(message, logContext, restParams) {
191
+ this.log(LogLevel.WARN, message, logContext, restParams);
192
+ }
193
+ error(message, logContext, restParams) {
194
+ this.log(LogLevel.ERROR, message, logContext, restParams);
195
+ }
196
+ critical(message, logContext, restParams) {
197
+ this.log(LogLevel.CRITICAL, message, logContext, restParams);
198
+ }
199
+ withContext(context) {
200
+ const boundContext = { ...context };
201
+ const logger = {
202
+ debug: (message, restParams) => this.debug(message, boundContext, restParams),
203
+ info: (message, restParams) => this.info(message, boundContext, restParams),
204
+ success: (message, restParams) => this.success(message, boundContext, restParams),
205
+ warn: (message, restParams) => this.warn(message, boundContext, restParams),
206
+ error: (message, restParams) => this.error(message, boundContext, restParams),
207
+ critical: (message, restParams) => this.critical(message, boundContext, restParams),
208
+ resetContext: (fields) => {
209
+ Object.assign(boundContext, fields);
210
+ },
211
+ };
212
+ return { logger, context: boundContext };
213
+ }
214
+ }
215
+ export const logManager = LogManager.getInstance();
216
+ export { LogManager, LogLevel };
217
+ export { createApiLogger } from "./create-api-logger";
218
+ //# sourceMappingURL=log-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-manager.js","sourceRoot":"","sources":["../../../src/shared/log/log-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Directory containing a config file — anchor for paths declared **inside** that file.
3
+ */
4
+ export declare function getConfigFileDir(configFilePath: string): string;
5
+ /**
6
+ * Resolve a path from a config file's directory.
7
+ *
8
+ * - Absolute `pathInConfig` → returned as-is
9
+ * - Relative `pathInConfig` → `resolve(dirname(configFilePath), pathInConfig)`
10
+ *
11
+ * **Not** relative to `process.cwd()`. See `.cursor/skills/config-file-relative-paths/SKILL.md`.
12
+ */
13
+ export declare function resolvePathFromConfigFile(configFilePath: string, pathInConfig: string): string;
14
+ /**
15
+ * Resolve a path from an explicit base directory (e.g. task package dir for `entry`).
16
+ * Same rules as {@link resolvePathFromConfigFile}, but base is already known.
17
+ */
18
+ export declare function resolvePathFromBaseDir(baseDir: string, path: string): string;
19
+ /**
20
+ * Resolve a path from `cwd` — for **discovering** config files, not for fields inside them.
21
+ */
22
+ export declare function resolvePathFromCwd(cwd: string, path: string): string;
23
+ export declare function pathExists(path: string): Promise<boolean>;
24
+ export interface ResolveFirstExistingPathOptions {
25
+ /** When set, only this path is tried (resolved from `cwd` if relative). */
26
+ explicitPath?: string;
27
+ /** Relative to `cwd`, tried in order when `explicitPath` is omitted. */
28
+ candidatePaths: string[];
29
+ }
30
+ /**
31
+ * Find the first existing file path: optional explicit path, else scan `candidatePaths` under `cwd`.
32
+ */
33
+ export declare function resolveFirstExistingPath(cwd: string, options: ResolveFirstExistingPathOptions): Promise<string | null>;
34
+ /** `file://` href for Node dynamic `import()` of a local module. */
35
+ export declare function toFileImportHref(filePath: string): string;
36
+ /** Native ESM import of a `.js` / `.mjs` config; supports `export default` or named export object. */
37
+ export declare function importJsConfigModule(configPath: string): Promise<unknown>;
38
+ //# sourceMappingURL=config-path.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-path.utils.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/config-path.utils.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAM9F;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAM5E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMpE;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO/D;AAED,MAAM,WAAW,+BAA+B;IAC5C,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,cAAc,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC1C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,+BAA+B,GACzC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBxB;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED,sGAAsG;AACtG,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG/E"}
@@ -0,0 +1,85 @@
1
+ import { access } from "node:fs/promises";
2
+ import { dirname, isAbsolute, join, resolve } from "node:path";
3
+ import { pathToFileURL } from "node:url";
4
+ /**
5
+ * Directory containing a config file — anchor for paths declared **inside** that file.
6
+ */
7
+ export function getConfigFileDir(configFilePath) {
8
+ return dirname(configFilePath);
9
+ }
10
+ /**
11
+ * Resolve a path from a config file's directory.
12
+ *
13
+ * - Absolute `pathInConfig` → returned as-is
14
+ * - Relative `pathInConfig` → `resolve(dirname(configFilePath), pathInConfig)`
15
+ *
16
+ * **Not** relative to `process.cwd()`. See `.cursor/skills/config-file-relative-paths/SKILL.md`.
17
+ */
18
+ export function resolvePathFromConfigFile(configFilePath, pathInConfig) {
19
+ const trimmed = pathInConfig.trim();
20
+ if (isAbsolute(trimmed)) {
21
+ return trimmed;
22
+ }
23
+ return resolve(getConfigFileDir(configFilePath), trimmed);
24
+ }
25
+ /**
26
+ * Resolve a path from an explicit base directory (e.g. task package dir for `entry`).
27
+ * Same rules as {@link resolvePathFromConfigFile}, but base is already known.
28
+ */
29
+ export function resolvePathFromBaseDir(baseDir, path) {
30
+ const trimmed = path.trim();
31
+ if (isAbsolute(trimmed)) {
32
+ return trimmed;
33
+ }
34
+ return resolve(baseDir, trimmed);
35
+ }
36
+ /**
37
+ * Resolve a path from `cwd` — for **discovering** config files, not for fields inside them.
38
+ */
39
+ export function resolvePathFromCwd(cwd, path) {
40
+ const trimmed = path.trim();
41
+ if (isAbsolute(trimmed)) {
42
+ return trimmed;
43
+ }
44
+ return resolve(cwd, trimmed);
45
+ }
46
+ export async function pathExists(path) {
47
+ try {
48
+ await access(path);
49
+ return true;
50
+ }
51
+ catch {
52
+ return false;
53
+ }
54
+ }
55
+ /**
56
+ * Find the first existing file path: optional explicit path, else scan `candidatePaths` under `cwd`.
57
+ */
58
+ export async function resolveFirstExistingPath(cwd, options) {
59
+ const { explicitPath, candidatePaths } = options;
60
+ if (explicitPath != null && explicitPath.trim() !== "") {
61
+ const resolved = resolvePathFromCwd(cwd, explicitPath);
62
+ return (await pathExists(resolved)) ? resolved : null;
63
+ }
64
+ for (const candidate of candidatePaths) {
65
+ const resolved = join(cwd, candidate);
66
+ if (await pathExists(resolved)) {
67
+ return resolved;
68
+ }
69
+ }
70
+ return null;
71
+ }
72
+ /** `file://` href for Node dynamic `import()` of a local module. */
73
+ export function toFileImportHref(filePath) {
74
+ const trimmed = filePath.trim();
75
+ if (trimmed.includes("://")) {
76
+ return trimmed;
77
+ }
78
+ return pathToFileURL(trimmed).href;
79
+ }
80
+ /** Native ESM import of a `.js` / `.mjs` config; supports `export default` or named export object. */
81
+ export async function importJsConfigModule(configPath) {
82
+ const mod = await import(toFileImportHref(configPath));
83
+ return mod.default ?? mod;
84
+ }
85
+ //# sourceMappingURL=config-path.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-path.utils.js","sourceRoot":"","sources":["../../../src/shared/utils/config-path.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,cAAsB;IACnD,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,cAAsB,EAAE,YAAoB;IAClF,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,IAAY;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,IAAY;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IACzC,IAAI,CAAC;QACD,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AASD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC1C,GAAW,EACX,OAAwC;IAExC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAEjD,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACvD,OAAO,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACtC,IAAI,MAAM,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,QAAQ,CAAC;QACpB,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED,sGAAsG;AACtG,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,UAAkB;IACzD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;IACvD,OAAO,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Normalize unknown catch / rejection values to {@link Error}.
3
+ *
4
+ * `catch` and Promise rejections are typed `unknown` because `throw` can be
5
+ * anything (string, number, plain object). Call sites that need `.message`,
6
+ * re-throw, or `instanceof Error` checks should normalize first.
7
+ */
8
+ export declare function toError(value: unknown): Error;
9
+ /** Error message safe for log `context` fields (JSON-serializable). */
10
+ export declare function getErrorMessage(value: unknown): string;
11
+ //# sourceMappingURL=error.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.utils.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/error.utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAE7C;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEtD"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Normalize unknown catch / rejection values to {@link Error}.
3
+ *
4
+ * `catch` and Promise rejections are typed `unknown` because `throw` can be
5
+ * anything (string, number, plain object). Call sites that need `.message`,
6
+ * re-throw, or `instanceof Error` checks should normalize first.
7
+ */
8
+ export function toError(value) {
9
+ return value instanceof Error ? value : new Error(String(value));
10
+ }
11
+ /** Error message safe for log `context` fields (JSON-serializable). */
12
+ export function getErrorMessage(value) {
13
+ return toError(value).message;
14
+ }
15
+ //# sourceMappingURL=error.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.utils.js","sourceRoot":"","sources":["../../../src/shared/utils/error.utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,eAAe,CAAC,KAAc;IAC1C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AAClC,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** RFC 4122 v4 UUID for trace / correlation ids. Requires Node 18+ (`engines` in package.json). */
2
+ export declare function generateUniqueId(): string;
3
+ //# sourceMappingURL=id.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.utils.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/id.utils.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
@@ -0,0 +1,5 @@
1
+ /** RFC 4122 v4 UUID for trace / correlation ids. Requires Node 18+ (`engines` in package.json). */
2
+ export function generateUniqueId() {
3
+ return globalThis.crypto.randomUUID();
4
+ }
5
+ //# sourceMappingURL=id.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.utils.js","sourceRoot":"","sources":["../../../src/shared/utils/id.utils.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,MAAM,UAAU,gBAAgB;IAC5B,OAAO,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;AAC1C,CAAC"}
package/dist/supabase.js CHANGED
@@ -53,7 +53,7 @@ export class SupabaseInitializer {
53
53
  const authUrl = supabaseNeedAuthUrl;
54
54
  const authAnonKey = supabaseNeedAuthAnonKey;
55
55
  if (!mainUrl || !mainAnonKey) {
56
- throw new Error("Missing required Supabase environment variables: VITE_SUPABASE_URL, VITE_SUPABASE_ANON_KEY");
56
+ throw new Error("Missing required Supabase environment variables: SUPABASE_URL, SUPABASE_ANON_KEY");
57
57
  }
58
58
  return {
59
59
  main: { url: mainUrl, anonKey: mainAnonKey },
@@ -1 +1 @@
1
- {"version":3,"file":"supabase.js","sourceRoot":"","sources":["../src/supabase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"supabase.js","sourceRoot":"","sources":["../src/supabase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { BootstrapLocalTasksResult, TASK_RUNNER_ROOT_CONFIG_RELATIVE_PATH } from "./task-repo-context";
2
+ export interface BootstrapLocalTasksOptions {
3
+ /** Absolute or cwd-relative path to root config; if omitted, tries default paths under `cwd` */
4
+ rootConfigPath?: string;
5
+ /** Base directory for resolving root config (default `process.cwd()`) */
6
+ cwd?: string;
7
+ }
8
+ /**
9
+ * Discover local task packages from config files and register them with {@link RepoManager}.
10
+ *
11
+ * **Never throws** for missing root config — returns `{ status: "not_configured" }`.
12
+ *
13
+ * Host app layout (recommended):
14
+ * ```
15
+ * ./config/task.config.js → { taskDir: "../tasks" }
16
+ * ./tasks/my-task/task.config.js
17
+ * ./tasks/my-task/index.mjs
18
+ * ```
19
+ *
20
+ * `taskDir` / `entry` paths are relative to **their config file's directory** (see config-file-relative-paths skill).
21
+ *
22
+ * Legacy fallback: `./task.config.js` at project root (`taskDir: "./tasks"`).
23
+ */
24
+ export declare function bootstrapLocalTasks(options?: BootstrapLocalTasksOptions): Promise<BootstrapLocalTasksResult>;
25
+ export declare function getRegisteredLocalTaskTypeKeys(): string[];
26
+ export { TASK_RUNNER_ROOT_CONFIG_RELATIVE_PATH };
27
+ //# sourceMappingURL=local-task-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-task-registry.d.ts","sourceRoot":"","sources":["../../src/task/local-task-registry.ts"],"names":[],"mappings":"AAWA,OAAO,EACH,yBAAyB,EAGzB,qCAAqC,EAGxC,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,0BAA0B;IACvC,gGAAgG;IAChG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAuDD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,mBAAmB,CACrC,OAAO,GAAE,0BAA+B,GACzC,OAAO,CAAC,yBAAyB,CAAC,CA0FpC;AAED,wBAAgB,8BAA8B,IAAI,MAAM,EAAE,CAEzD;AAED,OAAO,EAAE,qCAAqC,EAAE,CAAC"}
@@ -0,0 +1,153 @@
1
+ import { readdir } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { RepoManager } from "../repo/repo-manager";
4
+ import { importJsConfigModule, pathExists, resolveFirstExistingPath, resolvePathFromBaseDir, resolvePathFromConfigFile, } from "../shared/utils/config-path.utils";
5
+ import { TASK_LOCAL_PACKAGE_CONFIG_FILENAME, TASK_RUNNER_ROOT_CONFIG_LEGACY_RELATIVE_PATH, TASK_RUNNER_ROOT_CONFIG_RELATIVE_PATH, } from "./task-repo-context";
6
+ const EMPTY_RESULT = {
7
+ status: "not_configured",
8
+ registered: [],
9
+ skipped: [],
10
+ errors: [],
11
+ };
12
+ function parseRootConfig(raw, configPath) {
13
+ if (raw == null || typeof raw !== "object") {
14
+ throw new Error(`Root config must export an object: ${configPath}`);
15
+ }
16
+ const record = raw;
17
+ const taskDir = record.taskDir;
18
+ if (typeof taskDir !== "string" || taskDir.trim() === "") {
19
+ throw new Error(`Root config.taskDir must be a non-empty string: ${configPath}`);
20
+ }
21
+ return { taskDir: taskDir.trim() };
22
+ }
23
+ function parseTaskPackageConfig(raw, configPath) {
24
+ if (raw == null || typeof raw !== "object") {
25
+ throw new Error(`Task config must export an object: ${configPath}`);
26
+ }
27
+ const record = raw;
28
+ const taskTypeKey = record.taskTypeKey;
29
+ const entry = record.entry;
30
+ if (typeof taskTypeKey !== "string" || taskTypeKey.trim() === "") {
31
+ throw new Error(`taskTypeKey must be a non-empty string: ${configPath}`);
32
+ }
33
+ if (typeof entry !== "string" || entry.trim() === "") {
34
+ throw new Error(`entry must be a non-empty string: ${configPath}`);
35
+ }
36
+ return {
37
+ taskTypeKey: taskTypeKey.trim(),
38
+ entry: entry.trim(),
39
+ exportName: typeof record.exportName === "string" ? record.exportName : undefined,
40
+ displayName: typeof record.displayName === "string" ? record.displayName : undefined,
41
+ enabled: record.enabled === false ? false : true,
42
+ };
43
+ }
44
+ function finalizeStatus(result) {
45
+ if (result.errors.length > 0 && result.registered.length === 0) {
46
+ return "failed";
47
+ }
48
+ if (result.registered.length === 0) {
49
+ return "empty";
50
+ }
51
+ return "loaded";
52
+ }
53
+ /**
54
+ * Discover local task packages from config files and register them with {@link RepoManager}.
55
+ *
56
+ * **Never throws** for missing root config — returns `{ status: "not_configured" }`.
57
+ *
58
+ * Host app layout (recommended):
59
+ * ```
60
+ * ./config/task.config.js → { taskDir: "../tasks" }
61
+ * ./tasks/my-task/task.config.js
62
+ * ./tasks/my-task/index.mjs
63
+ * ```
64
+ *
65
+ * `taskDir` / `entry` paths are relative to **their config file's directory** (see config-file-relative-paths skill).
66
+ *
67
+ * Legacy fallback: `./task.config.js` at project root (`taskDir: "./tasks"`).
68
+ */
69
+ export async function bootstrapLocalTasks(options = {}) {
70
+ const cwd = options.cwd ?? process.cwd();
71
+ const rootConfigPath = await resolveFirstExistingPath(cwd, {
72
+ explicitPath: options.rootConfigPath,
73
+ candidatePaths: [
74
+ TASK_RUNNER_ROOT_CONFIG_RELATIVE_PATH,
75
+ TASK_RUNNER_ROOT_CONFIG_LEGACY_RELATIVE_PATH,
76
+ ],
77
+ });
78
+ if (rootConfigPath == null) {
79
+ return {
80
+ ...EMPTY_RESULT,
81
+ message: `No root config (tried ${TASK_RUNNER_ROOT_CONFIG_RELATIVE_PATH}, ${TASK_RUNNER_ROOT_CONFIG_LEGACY_RELATIVE_PATH})`,
82
+ };
83
+ }
84
+ const result = {
85
+ registered: [],
86
+ skipped: [],
87
+ errors: [],
88
+ };
89
+ try {
90
+ const rootRaw = await importJsConfigModule(rootConfigPath);
91
+ const { taskDir } = parseRootConfig(rootRaw, rootConfigPath);
92
+ const tasksRoot = resolvePathFromConfigFile(rootConfigPath, taskDir);
93
+ if (!(await pathExists(tasksRoot))) {
94
+ return {
95
+ status: "failed",
96
+ message: `taskDir does not exist: ${tasksRoot}`,
97
+ ...result,
98
+ };
99
+ }
100
+ const entries = await readdir(tasksRoot, { withFileTypes: true });
101
+ for (const entry of entries) {
102
+ if (!entry.isDirectory()) {
103
+ continue;
104
+ }
105
+ const taskPackageDir = join(tasksRoot, entry.name);
106
+ const taskConfigPath = join(taskPackageDir, TASK_LOCAL_PACKAGE_CONFIG_FILENAME);
107
+ if (!(await pathExists(taskConfigPath))) {
108
+ result.skipped.push({ taskDir: taskPackageDir, reason: "missing task.config.js" });
109
+ continue;
110
+ }
111
+ try {
112
+ const taskRaw = await importJsConfigModule(taskConfigPath);
113
+ const taskConfig = parseTaskPackageConfig(taskRaw, taskConfigPath);
114
+ if (taskConfig.enabled === false) {
115
+ result.skipped.push({ taskDir: taskPackageDir, reason: "disabled in task.config.js" });
116
+ continue;
117
+ }
118
+ const entryPath = resolvePathFromBaseDir(taskPackageDir, taskConfig.entry);
119
+ if (!(await pathExists(entryPath))) {
120
+ throw new Error(`entry module not found: ${entryPath}`);
121
+ }
122
+ RepoManager.registerLocalModule(taskConfig.taskTypeKey, entryPath, taskConfig.exportName);
123
+ result.registered.push(taskConfig.taskTypeKey);
124
+ }
125
+ catch (error) {
126
+ result.errors.push({
127
+ taskDir: taskPackageDir,
128
+ error: error instanceof Error ? error.message : String(error),
129
+ });
130
+ }
131
+ }
132
+ const status = finalizeStatus(result);
133
+ return {
134
+ status,
135
+ message: status === "empty"
136
+ ? `Root config loaded but no tasks registered under ${tasksRoot}`
137
+ : undefined,
138
+ ...result,
139
+ };
140
+ }
141
+ catch (error) {
142
+ return {
143
+ status: "failed",
144
+ message: error instanceof Error ? error.message : String(error),
145
+ ...result,
146
+ };
147
+ }
148
+ }
149
+ export function getRegisteredLocalTaskTypeKeys() {
150
+ return RepoManager.getRegisteredLocalTaskTypeKeys();
151
+ }
152
+ export { TASK_RUNNER_ROOT_CONFIG_RELATIVE_PATH };
153
+ //# sourceMappingURL=local-task-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-task-registry.js","sourceRoot":"","sources":["../../src/task/local-task-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACH,oBAAoB,EACpB,UAAU,EACV,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,GAC5B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAEH,kCAAkC,EAClC,4CAA4C,EAC5C,qCAAqC,GAGxC,MAAM,qBAAqB,CAAC;AAS7B,MAAM,YAAY,GAA8B;IAC5C,MAAM,EAAE,gBAAgB;IACxB,UAAU,EAAE,EAAE;IACd,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;CACb,CAAC;AAEF,SAAS,eAAe,CAAC,GAAY,EAAE,UAAkB;IACrD,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,sCAAsC,UAAU,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,mDAAmD,UAAU,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAY,EAAE,UAAkB;IAC5D,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,sCAAsC,UAAU,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAE3B,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,2CAA2C,UAAU,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,qCAAqC,UAAU,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,OAAO;QACH,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE;QAC/B,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;QACnB,UAAU,EAAE,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACjF,WAAW,EAAE,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QACpF,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;KACnD,CAAC;AACN,CAAC;AAED,SAAS,cAAc,CAAC,MAAiD;IACrE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,UAAsC,EAAE;IAExC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEzC,MAAM,cAAc,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE;QACvD,YAAY,EAAE,OAAO,CAAC,cAAc;QACpC,cAAc,EAAE;YACZ,qCAAqC;YACrC,4CAA4C;SAC/C;KACJ,CAAC,CAAC;IACH,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;QACzB,OAAO;YACH,GAAG,YAAY;YACf,OAAO,EAAE,yBAAyB,qCAAqC,KAAK,4CAA4C,GAAG;SAC9H,CAAC;IACN,CAAC;IAED,MAAM,MAAM,GAA8C;QACtD,UAAU,EAAE,EAAE;QACd,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;KACb,CAAC;IAEF,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC3D,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAE7D,MAAM,SAAS,GAAG,yBAAyB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACjC,OAAO;gBACH,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,2BAA2B,SAAS,EAAE;gBAC/C,GAAG,MAAM;aACZ,CAAC;QACN,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,SAAS;YACb,CAAC;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,kCAAkC,CAAC,CAAC;YAEhF,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;gBACnF,SAAS;YACb,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,cAAc,CAAC,CAAC;gBAC3D,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBAEnE,IAAI,UAAU,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;oBAC/B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAC;oBACvF,SAAS;gBACb,CAAC;gBAED,MAAM,SAAS,GAAG,sBAAsB,CAAC,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC3E,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;gBAC5D,CAAC;gBAED,WAAW,CAAC,mBAAmB,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;gBAC1F,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACf,OAAO,EAAE,cAAc;oBACvB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAChE,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO;YACH,MAAM;YACN,OAAO,EACH,MAAM,KAAK,OAAO;gBACd,CAAC,CAAC,oDAAoD,SAAS,EAAE;gBACjE,CAAC,CAAC,SAAS;YACnB,GAAG,MAAM;SACZ,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO;YACH,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC/D,GAAG,MAAM;SACZ,CAAC;IACN,CAAC;AACL,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC1C,OAAO,WAAW,CAAC,8BAA8B,EAAE,CAAC;AACxD,CAAC;AAED,OAAO,EAAE,qCAAqC,EAAE,CAAC"}