target-supabase-sdk 0.1.8 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +74 -6
- package/dist/auth/auth.api.d.ts.map +1 -1
- package/dist/auth/auth.api.js +2 -1
- package/dist/auth/auth.api.js.map +1 -1
- package/dist/browser.d.ts +52 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +45 -0
- package/dist/browser.js.map +1 -0
- package/dist/command/command.api.d.ts +43 -0
- package/dist/command/command.api.d.ts.map +1 -0
- package/dist/command/command.api.js +58 -0
- package/dist/command/command.api.js.map +1 -0
- package/dist/command/command.interface.d.ts +14 -0
- package/dist/command/command.interface.d.ts.map +1 -0
- package/dist/command/command.interface.js +9 -0
- package/dist/command/command.interface.js.map +1 -0
- package/dist/core.api.d.ts +70 -6
- package/dist/core.api.d.ts.map +1 -1
- package/dist/core.api.js +191 -13
- package/dist/core.api.js.map +1 -1
- package/dist/file/file-manager.d.ts +1 -1
- package/dist/file/file-manager.d.ts.map +1 -1
- package/dist/file/file-manager.js +1 -1
- package/dist/file/file-manager.js.map +1 -1
- package/dist/index.d.ts +2 -40
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -34
- package/dist/index.js.map +1 -1
- package/dist/link/link.interface.d.ts +1 -1
- package/dist/link/link.interface.d.ts.map +1 -1
- package/dist/node/node-log-scope.d.ts +11 -0
- package/dist/node/node-log-scope.d.ts.map +1 -0
- package/dist/node/node-log-scope.js +7 -0
- package/dist/node/node-log-scope.js.map +1 -0
- package/dist/node/node-runtime.base.d.ts +42 -0
- package/dist/node/node-runtime.base.d.ts.map +1 -0
- package/dist/node/node-runtime.base.js +397 -0
- package/dist/node/node-runtime.base.js.map +1 -0
- package/dist/node/node-task.preset.d.ts +1 -0
- package/dist/node/node-task.preset.d.ts.map +1 -0
- package/dist/node/node-task.preset.js +14 -0
- package/dist/node/node-task.preset.js.map +1 -0
- package/dist/node/node.api.d.ts +67 -31
- package/dist/node/node.api.d.ts.map +1 -1
- package/dist/node/node.api.js +65 -102
- package/dist/node/node.api.js.map +1 -1
- package/dist/node/node.interface.d.ts +7 -0
- package/dist/node/node.interface.d.ts.map +1 -1
- package/dist/node/node.interface.js +2 -0
- package/dist/node/node.interface.js.map +1 -1
- package/dist/node/node.utils.d.ts +5 -0
- package/dist/node/node.utils.d.ts.map +1 -0
- package/dist/node/node.utils.js +36 -0
- package/dist/node/node.utils.js.map +1 -0
- package/dist/node/task-node.d.ts +20 -0
- package/dist/node/task-node.d.ts.map +1 -0
- package/dist/node/task-node.js +245 -0
- package/dist/node/task-node.js.map +1 -0
- package/dist/node/trigger-node.d.ts +18 -0
- package/dist/node/trigger-node.d.ts.map +1 -0
- package/dist/node/trigger-node.js +150 -0
- package/dist/node/trigger-node.js.map +1 -0
- package/dist/node.d.ts +22 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +19 -0
- package/dist/node.js.map +1 -0
- package/dist/parcel/parcel-manager.d.ts +1 -1
- package/dist/parcel/parcel-manager.d.ts.map +1 -1
- package/dist/parcel/parcel-manager.js +1 -1
- package/dist/parcel/parcel-manager.js.map +1 -1
- package/dist/repo/repo-context.utils.d.ts +24 -0
- package/dist/repo/repo-context.utils.d.ts.map +1 -0
- package/dist/repo/repo-context.utils.js +81 -0
- package/dist/repo/repo-context.utils.js.map +1 -0
- package/dist/repo/repo-manager.d.ts +42 -0
- package/dist/repo/repo-manager.d.ts.map +1 -0
- package/dist/repo/repo-manager.js +166 -0
- package/dist/repo/repo-manager.js.map +1 -0
- package/dist/repo/repo.api.d.ts +16 -0
- package/dist/repo/repo.api.d.ts.map +1 -0
- package/dist/repo/repo.api.js +40 -0
- package/dist/repo/repo.api.js.map +1 -0
- package/dist/repo/repo.interface.d.ts +12 -5
- package/dist/repo/repo.interface.d.ts.map +1 -1
- package/dist/repo/repo.interface.js +2 -2
- package/dist/repo/repo.interface.js.map +1 -1
- package/dist/repo/repo.script-loader.d.ts +19 -0
- package/dist/repo/repo.script-loader.d.ts.map +1 -0
- package/dist/repo/repo.script-loader.js +108 -0
- package/dist/repo/repo.script-loader.js.map +1 -0
- package/dist/shared/log/create-api-logger.d.ts +21 -0
- package/dist/shared/log/create-api-logger.d.ts.map +1 -0
- package/dist/shared/log/create-api-logger.js +19 -0
- package/dist/shared/log/create-api-logger.js.map +1 -0
- package/dist/shared/log/index.d.ts +10 -0
- package/dist/shared/log/index.d.ts.map +1 -0
- package/dist/shared/log/index.js +10 -0
- package/dist/shared/log/index.js.map +1 -0
- package/dist/shared/log/log-manager.d.ts +93 -0
- package/dist/shared/log/log-manager.d.ts.map +1 -0
- package/dist/shared/log/log-manager.js +237 -0
- package/dist/shared/log/log-manager.js.map +1 -0
- package/dist/shared/log/log-scope.d.ts +49 -0
- package/dist/shared/log/log-scope.d.ts.map +1 -0
- package/dist/shared/log/log-scope.js +70 -0
- package/dist/shared/log/log-scope.js.map +1 -0
- package/dist/shared/utils/config-path.utils.d.ts +38 -0
- package/dist/shared/utils/config-path.utils.d.ts.map +1 -0
- package/dist/shared/utils/config-path.utils.js +85 -0
- package/dist/shared/utils/config-path.utils.js.map +1 -0
- package/dist/shared/utils/error.utils.d.ts +11 -0
- package/dist/shared/utils/error.utils.d.ts.map +1 -0
- package/dist/shared/utils/error.utils.js +15 -0
- package/dist/shared/utils/error.utils.js.map +1 -0
- package/dist/shared/utils/id.utils.d.ts +3 -0
- package/dist/shared/utils/id.utils.d.ts.map +1 -0
- package/dist/shared/utils/id.utils.js +5 -0
- package/dist/shared/utils/id.utils.js.map +1 -0
- package/dist/supabase.js +1 -1
- package/dist/supabase.js.map +1 -1
- package/dist/task/index.d.ts +15 -0
- package/dist/task/index.d.ts.map +1 -0
- package/dist/task/index.js +14 -0
- package/dist/task/index.js.map +1 -0
- package/dist/task/local-task-registry.d.ts +37 -0
- package/dist/task/local-task-registry.d.ts.map +1 -0
- package/dist/task/local-task-registry.js +214 -0
- package/dist/task/local-task-registry.js.map +1 -0
- package/dist/task/task-manager.d.ts +64 -0
- package/dist/task/task-manager.d.ts.map +1 -0
- package/dist/task/task-manager.js +196 -0
- package/dist/task/task-manager.js.map +1 -0
- package/dist/task/task-post.api.d.ts +49 -0
- package/dist/task/task-post.api.d.ts.map +1 -0
- package/dist/task/task-post.api.js +91 -0
- package/dist/task/task-post.api.js.map +1 -0
- package/dist/task/task-repo-context.d.ts +97 -0
- package/dist/task/task-repo-context.d.ts.map +1 -0
- package/dist/task/task-repo-context.js +12 -0
- package/dist/task/task-repo-context.js.map +1 -0
- package/dist/task/task-repo-validation.d.ts +46 -0
- package/dist/task/task-repo-validation.d.ts.map +1 -0
- package/dist/task/task-repo-validation.js +96 -0
- package/dist/task/task-repo-validation.js.map +1 -0
- package/dist/task/task.api.d.ts +198 -0
- package/dist/task/task.api.d.ts.map +1 -1
- package/dist/task/task.api.js +302 -1
- package/dist/task/task.api.js.map +1 -1
- package/dist/task/task.interface.d.ts +11 -2
- package/dist/task/task.interface.d.ts.map +1 -1
- package/dist/task/task.interface.js +10 -0
- package/dist/task/task.interface.js.map +1 -1
- package/dist/trigger/trigger.api.d.ts +140 -0
- package/dist/trigger/trigger.api.d.ts.map +1 -0
- package/dist/trigger/trigger.api.js +125 -0
- package/dist/trigger/trigger.api.js.map +1 -0
- package/dist/trigger/trigger.interface.d.ts +43 -0
- package/dist/trigger/trigger.interface.d.ts.map +1 -0
- package/dist/trigger/trigger.interface.js +11 -0
- package/dist/trigger/trigger.interface.js.map +1 -0
- package/dist/trigger/trigger.utils.d.ts +6 -0
- package/dist/trigger/trigger.utils.d.ts.map +1 -0
- package/dist/trigger/trigger.utils.js +39 -0
- package/dist/trigger/trigger.utils.js.map +1 -0
- package/package.json +30 -8
- package/src/auth/auth.api.ts +3 -1
- package/src/browser.ts +100 -0
- package/src/command/command.api.ts +88 -0
- package/src/command/command.interface.ts +17 -0
- package/src/core.api.ts +305 -26
- package/src/file/file-manager.ts +1 -1
- package/src/index.ts +2 -64
- package/src/link/link.interface.ts +1 -1
- package/src/node/node-log-scope.ts +15 -0
- package/src/node/node-runtime.base.ts +450 -0
- package/src/node/node-task.preset.ts +13 -0
- package/src/node/node.api.ts +95 -117
- package/src/node/node.interface.ts +8 -0
- package/src/node/node.utils.ts +36 -0
- package/src/node/task-node.ts +284 -0
- package/src/node/trigger-node.ts +180 -0
- package/src/node.ts +62 -0
- package/src/parcel/parcel-manager.ts +1 -1
- package/src/repo/repo-context.utils.ts +111 -0
- package/src/repo/repo-manager.ts +245 -0
- package/src/repo/repo.api.ts +50 -0
- package/src/repo/repo.interface.ts +13 -5
- package/src/repo/repo.script-loader.ts +140 -0
- package/src/shared/log/create-api-logger.ts +36 -0
- package/src/shared/log/index.ts +23 -0
- package/src/shared/log/log-manager.ts +335 -0
- package/src/shared/log/log-scope.ts +123 -0
- package/src/shared/utils/config-path.utils.ts +104 -0
- package/src/shared/utils/error.utils.ts +15 -0
- package/src/shared/utils/id.utils.ts +4 -0
- package/src/supabase.ts +1 -1
- package/src/task/index.ts +48 -0
- package/src/task/local-task-registry.ts +282 -0
- package/src/task/task-manager.ts +301 -0
- package/src/task/task-post.api.ts +116 -0
- package/src/task/task-repo-context.ts +105 -0
- package/src/task/task-repo-validation.ts +171 -0
- package/src/task/task.api.ts +369 -0
- package/src/task/task.interface.ts +12 -2
- package/src/trigger/trigger.api.ts +166 -0
- package/src/trigger/trigger.interface.ts +50 -0
- package/src/trigger/trigger.utils.ts +56 -0
- package/dist/task/task-node-manager.d.ts +0 -1
- package/dist/task/task-node-manager.d.ts.map +0 -1
- package/dist/task/task-node-manager.js +0 -2
- package/dist/task/task-node-manager.js.map +0 -1
- package/src/task/task-node-manager.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger.api.js","sourceRoot":"","sources":["../../src/trigger/trigger.api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Target } from "../core.interface";
|
|
2
|
+
import { TaskStatus } from "../task/task.interface";
|
|
3
|
+
export declare enum CategoryTrigger {
|
|
4
|
+
TRIGGER = "trigger"
|
|
5
|
+
}
|
|
6
|
+
export declare enum TriggerStatus {
|
|
7
|
+
ENABLED = "ENABLED",
|
|
8
|
+
DISABLED = "DISABLED",
|
|
9
|
+
PAUSED = "PAUSED"
|
|
10
|
+
}
|
|
11
|
+
/** Phase 1: daily fire at `hour`:`minute` UTC. */
|
|
12
|
+
export interface TriggerDailySchedule {
|
|
13
|
+
kind: "daily";
|
|
14
|
+
hour: number;
|
|
15
|
+
minute: number;
|
|
16
|
+
}
|
|
17
|
+
export type TriggerSchedule = TriggerDailySchedule;
|
|
18
|
+
export interface TriggerPostTaskAction {
|
|
19
|
+
kind: "post_task";
|
|
20
|
+
taskTypeKey: string;
|
|
21
|
+
taskParams: unknown;
|
|
22
|
+
taskName?: string;
|
|
23
|
+
taskStatus?: TaskStatus.OPEN | TaskStatus.TODO;
|
|
24
|
+
}
|
|
25
|
+
export type TriggerAction = TriggerPostTaskAction;
|
|
26
|
+
export interface Trigger extends Target {
|
|
27
|
+
/** Human readable */
|
|
28
|
+
name: string;
|
|
29
|
+
/** Unique trigger key */
|
|
30
|
+
value: string;
|
|
31
|
+
details: TriggerDetails;
|
|
32
|
+
category: CategoryTrigger;
|
|
33
|
+
}
|
|
34
|
+
export interface TriggerDetails {
|
|
35
|
+
manifestVersion: number;
|
|
36
|
+
status: TriggerStatus;
|
|
37
|
+
schedule: TriggerSchedule;
|
|
38
|
+
action: TriggerAction;
|
|
39
|
+
lastFiredAt?: number | null;
|
|
40
|
+
/** Idempotency key for the last successful fire, e.g. `daily:2026-06-18` (UTC date). */
|
|
41
|
+
lastFireKey?: string | null;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=trigger.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger.interface.d.ts","sourceRoot":"","sources":["../../src/trigger/trigger.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,oBAAY,eAAe;IACvB,OAAO,YAAY;CACtB;AAED,oBAAY,aAAa;IACrB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,MAAM,WAAW;CACpB;AAED,kDAAkD;AAClD,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAEnD,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;CAClD;AAED,MAAM,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAElD,MAAM,WAAW,OAAQ,SAAQ,MAAM;IACnC,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,EAAE,eAAe,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,wFAAwF;IACxF,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export var CategoryTrigger;
|
|
2
|
+
(function (CategoryTrigger) {
|
|
3
|
+
CategoryTrigger["TRIGGER"] = "trigger";
|
|
4
|
+
})(CategoryTrigger || (CategoryTrigger = {}));
|
|
5
|
+
export var TriggerStatus;
|
|
6
|
+
(function (TriggerStatus) {
|
|
7
|
+
TriggerStatus["ENABLED"] = "ENABLED";
|
|
8
|
+
TriggerStatus["DISABLED"] = "DISABLED";
|
|
9
|
+
TriggerStatus["PAUSED"] = "PAUSED";
|
|
10
|
+
})(TriggerStatus || (TriggerStatus = {}));
|
|
11
|
+
//# sourceMappingURL=trigger.interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger.interface.js","sourceRoot":"","sources":["../../src/trigger/trigger.interface.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,eAEX;AAFD,WAAY,eAAe;IACvB,sCAAmB,CAAA;AACvB,CAAC,EAFW,eAAe,KAAf,eAAe,QAE1B;AAED,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,kCAAiB,CAAA;AACrB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Trigger, TriggerDailySchedule } from "./trigger.interface";
|
|
2
|
+
export declare function buildDailyFireKey(_schedule: TriggerDailySchedule, now: Date): string;
|
|
3
|
+
export declare function isDailyScheduleDue(schedule: TriggerDailySchedule, now: Date, lastFireKey: string | null | undefined): boolean;
|
|
4
|
+
export declare function isTriggerDue(trigger: Trigger, now?: Date): boolean;
|
|
5
|
+
export declare function buildFireKey(trigger: Trigger, now?: Date): string;
|
|
6
|
+
//# sourceMappingURL=trigger.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger.utils.d.ts","sourceRoot":"","sources":["../../src/trigger/trigger.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAoBzE,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,oBAAoB,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,CAMpF;AAED,wBAAgB,kBAAkB,CAC9B,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,EAAE,IAAI,EACT,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACvC,OAAO,CAOT;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAM9E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CAM7E"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
function parseUtcDateParts(now) {
|
|
2
|
+
return {
|
|
3
|
+
year: now.getUTCFullYear(),
|
|
4
|
+
month: now.getUTCMonth() + 1,
|
|
5
|
+
day: now.getUTCDate(),
|
|
6
|
+
hour: now.getUTCHours(),
|
|
7
|
+
minute: now.getUTCMinutes(),
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export function buildDailyFireKey(_schedule, now) {
|
|
11
|
+
const { year, month, day } = parseUtcDateParts(now);
|
|
12
|
+
const yyyy = String(year).padStart(4, "0");
|
|
13
|
+
const mm = String(month).padStart(2, "0");
|
|
14
|
+
const dd = String(day).padStart(2, "0");
|
|
15
|
+
return `daily:${yyyy}-${mm}-${dd}`;
|
|
16
|
+
}
|
|
17
|
+
export function isDailyScheduleDue(schedule, now, lastFireKey) {
|
|
18
|
+
const parts = parseUtcDateParts(now);
|
|
19
|
+
if (parts.hour !== schedule.hour || parts.minute !== schedule.minute) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
const fireKey = buildDailyFireKey(schedule, now);
|
|
23
|
+
return lastFireKey !== fireKey;
|
|
24
|
+
}
|
|
25
|
+
export function isTriggerDue(trigger, now = new Date()) {
|
|
26
|
+
const { schedule, lastFireKey } = trigger.details;
|
|
27
|
+
if (schedule.kind !== "daily") {
|
|
28
|
+
throw new Error(`Unsupported trigger schedule kind: ${String(schedule.kind)}`);
|
|
29
|
+
}
|
|
30
|
+
return isDailyScheduleDue(schedule, now, lastFireKey);
|
|
31
|
+
}
|
|
32
|
+
export function buildFireKey(trigger, now = new Date()) {
|
|
33
|
+
const { schedule } = trigger.details;
|
|
34
|
+
if (schedule.kind !== "daily") {
|
|
35
|
+
throw new Error(`Unsupported trigger schedule kind: ${String(schedule.kind)}`);
|
|
36
|
+
}
|
|
37
|
+
return buildDailyFireKey(schedule, now);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=trigger.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger.utils.js","sourceRoot":"","sources":["../../src/trigger/trigger.utils.ts"],"names":[],"mappings":"AAUA,SAAS,iBAAiB,CAAC,GAAS;IAChC,OAAO;QACH,IAAI,EAAE,GAAG,CAAC,cAAc,EAAE;QAC1B,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC;QAC5B,GAAG,EAAE,GAAG,CAAC,UAAU,EAAE;QACrB,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE;QACvB,MAAM,EAAE,GAAG,CAAC,aAAa,EAAE;KAC9B,CAAC;AACN,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAA+B,EAAE,GAAS;IACxE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3C,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACxC,OAAO,SAAS,IAAI,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAC9B,QAA8B,EAC9B,GAAS,EACT,WAAsC;IAEtC,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACjD,OAAO,WAAW,KAAK,OAAO,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,MAAY,IAAI,IAAI,EAAE;IACjE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAClD,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,CAAE,QAA8B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1G,CAAC;IACD,OAAO,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,MAAY,IAAI,IAAI,EAAE;IACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IACrC,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,CAAE,QAA8B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1G,CAAC;IACD,OAAO,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "target-supabase-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Supabase client initializer and data access APIs",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "KyLoc20",
|
|
@@ -18,12 +18,22 @@
|
|
|
18
18
|
"node": ">=18"
|
|
19
19
|
},
|
|
20
20
|
"packageManager": "pnpm@9.15.0",
|
|
21
|
-
"types": "./dist/
|
|
21
|
+
"types": "./dist/browser.d.ts",
|
|
22
22
|
"exports": {
|
|
23
23
|
".": {
|
|
24
|
-
"types": "./dist/
|
|
25
|
-
"import": "./dist/
|
|
26
|
-
"default": "./dist/
|
|
24
|
+
"types": "./dist/browser.d.ts",
|
|
25
|
+
"import": "./dist/browser.js",
|
|
26
|
+
"default": "./dist/browser.js"
|
|
27
|
+
},
|
|
28
|
+
"./browser": {
|
|
29
|
+
"types": "./dist/browser.d.ts",
|
|
30
|
+
"import": "./dist/browser.js",
|
|
31
|
+
"default": "./dist/browser.js"
|
|
32
|
+
},
|
|
33
|
+
"./node": {
|
|
34
|
+
"types": "./dist/node.d.ts",
|
|
35
|
+
"import": "./dist/node.js",
|
|
36
|
+
"default": "./dist/node.js"
|
|
27
37
|
}
|
|
28
38
|
},
|
|
29
39
|
"files": [
|
|
@@ -32,8 +42,15 @@
|
|
|
32
42
|
],
|
|
33
43
|
"scripts": {
|
|
34
44
|
"clean": "node --input-type=module -e \"import fs from 'node:fs'; fs.rmSync('dist', { recursive: true, force: true })\"",
|
|
35
|
-
"build": "pnpm clean && tsc -p tsconfig.build.json",
|
|
45
|
+
"build": "pnpm clean && tsc -p tsconfig.build.json && node scripts/verify-browser-entry.mjs",
|
|
36
46
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
47
|
+
"typecheck:scripts": "tsc -p tsconfig.scripts.json",
|
|
48
|
+
"worker": "tsx scripts/run-node-worker.ts",
|
|
49
|
+
"worker:trigger": "tsx scripts/run-trigger-node.ts",
|
|
50
|
+
"chrome-sidecar": "tsx scripts/chrome-sidecar-hub.ts",
|
|
51
|
+
"post-task": "tsx scripts/post-task.ts",
|
|
52
|
+
"post-command": "tsx scripts/post-command.ts",
|
|
53
|
+
"post-trigger": "tsx scripts/post-trigger.ts",
|
|
37
54
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
38
55
|
"pack:check": "npm pack --dry-run",
|
|
39
56
|
"prepack": "pnpm build"
|
|
@@ -41,15 +58,20 @@
|
|
|
41
58
|
"peerDependencies": {
|
|
42
59
|
"@supabase/postgrest-js": "^1.19.0",
|
|
43
60
|
"@supabase/supabase-js": "^2.50.0",
|
|
44
|
-
"lodash-es": "^4.17.21"
|
|
61
|
+
"lodash-es": "^4.17.21",
|
|
62
|
+
"zod": "^3.23.0"
|
|
45
63
|
},
|
|
46
64
|
"devDependencies": {
|
|
47
65
|
"@supabase/postgrest-js": "1.19.4",
|
|
48
66
|
"@supabase/supabase-js": "2.50.3",
|
|
49
67
|
"@types/lodash-es": "^4.17.12",
|
|
68
|
+
"@types/ws": "^8.18.1",
|
|
50
69
|
"@types/wicg-file-system-access": "^2023.10.7",
|
|
51
70
|
"lodash-es": "^4.17.21",
|
|
52
|
-
"typescript": "~5.7.2"
|
|
71
|
+
"typescript": "~5.7.2",
|
|
72
|
+
"tsx": "^4.19.4",
|
|
73
|
+
"ws": "^8.18.0",
|
|
74
|
+
"zod": "^3.24.0"
|
|
53
75
|
},
|
|
54
76
|
"publishConfig": {
|
|
55
77
|
"access": "public"
|
package/src/auth/auth.api.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SupabaseInitializer } from "../supabase";
|
|
2
2
|
import { generateResponse } from "../core.interface";
|
|
3
3
|
import { handleSupabaseError } from "../core.utils";
|
|
4
4
|
|
|
5
|
+
const supabase = SupabaseInitializer.getInstance();
|
|
6
|
+
|
|
5
7
|
export interface LoginPayload {
|
|
6
8
|
email: string;
|
|
7
9
|
password: string;
|
package/src/browser.ts
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe public API — no Node.js built-ins (node:fs, node:crypto, …).
|
|
3
|
+
* Default package entry (`target-supabase-sdk`).
|
|
4
|
+
*
|
|
5
|
+
* For TaskManager, RepoManager, TaskNode, use `target-supabase-sdk/node`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export { SupabaseInitializer } from "./supabase";
|
|
9
|
+
export type { SupabaseInitializerParams } from "./supabase";
|
|
10
|
+
export type { SupabaseClient } from "@supabase/supabase-js";
|
|
11
|
+
|
|
12
|
+
import { SupabaseInitializer } from "./supabase";
|
|
13
|
+
|
|
14
|
+
export const supabase = SupabaseInitializer.getInstance();
|
|
15
|
+
|
|
16
|
+
export * from "./core.api";
|
|
17
|
+
export * from "./core.interface";
|
|
18
|
+
export * from "./core.utils";
|
|
19
|
+
|
|
20
|
+
export * from "./auth/auth.api";
|
|
21
|
+
|
|
22
|
+
export * from "./feed/feed.interface";
|
|
23
|
+
export * from "./idea/idea.interface";
|
|
24
|
+
|
|
25
|
+
export { CategoryParcel } from "./parcel/parcel.interface";
|
|
26
|
+
export type {
|
|
27
|
+
Parcel,
|
|
28
|
+
ParcelDetails,
|
|
29
|
+
Chunk,
|
|
30
|
+
LifecycleStatus as ParcelLifecycleStatus,
|
|
31
|
+
Lifecycle as ParcelLifecycle,
|
|
32
|
+
} from "./parcel/parcel.interface";
|
|
33
|
+
export { ParcelManager } from "./parcel/parcel-manager";
|
|
34
|
+
export type { StorageAdapter, ParcelTargetBase } from "./parcel/parcel-manager";
|
|
35
|
+
|
|
36
|
+
export * from "./file/file.interface";
|
|
37
|
+
export * from "./file/file.api";
|
|
38
|
+
export * from "./file/file-manager";
|
|
39
|
+
|
|
40
|
+
export * from "./file-list/file-list.interface";
|
|
41
|
+
export * from "./file-list/file-list.api";
|
|
42
|
+
|
|
43
|
+
export * from "./question-list/question-list.interface";
|
|
44
|
+
export * from "./question-list/question-list.api";
|
|
45
|
+
|
|
46
|
+
export * from "./review/review.interface";
|
|
47
|
+
export * from "./review/review.api";
|
|
48
|
+
|
|
49
|
+
export type {
|
|
50
|
+
ReviewV2,
|
|
51
|
+
ReviewV2Details,
|
|
52
|
+
ReviewResult,
|
|
53
|
+
} from "./review-v2/review.interface";
|
|
54
|
+
export * from "./review-v2/review-setting.interface";
|
|
55
|
+
export {
|
|
56
|
+
postReview as postReviewV2,
|
|
57
|
+
PostReviewValidator as PostReviewV2Validator,
|
|
58
|
+
} from "./review-v2/apis/post-review.api";
|
|
59
|
+
export type { PostReviewPayload as PostReviewV2Payload } from "./review-v2/apis/post-review.api";
|
|
60
|
+
export * from "./review-v2/apis/post-review-setting.api";
|
|
61
|
+
|
|
62
|
+
export * from "./service/base.interface";
|
|
63
|
+
export * from "./service/service.interface";
|
|
64
|
+
export * from "./service/api.interface";
|
|
65
|
+
|
|
66
|
+
export * from "./link/link.interface";
|
|
67
|
+
export * from "./link/link.api";
|
|
68
|
+
|
|
69
|
+
export * from "./list/list.interface";
|
|
70
|
+
export * from "./list/list.api";
|
|
71
|
+
|
|
72
|
+
export * from "./word/word.interface";
|
|
73
|
+
|
|
74
|
+
// task — api + validation only (TaskManager is Node-only → node entry)
|
|
75
|
+
export {
|
|
76
|
+
CategoryTask,
|
|
77
|
+
ResultCode,
|
|
78
|
+
TaskStatus,
|
|
79
|
+
TaskStatusAction,
|
|
80
|
+
} from "./task/task.interface";
|
|
81
|
+
export type { Task, TaskDetails, TaskFlow } from "./task/task.interface";
|
|
82
|
+
export {
|
|
83
|
+
patchChangeTaskStatus,
|
|
84
|
+
patchChangeTaskStatusSchema,
|
|
85
|
+
patchClaimTask,
|
|
86
|
+
patchClaimTaskSchema,
|
|
87
|
+
patchTaskProgress,
|
|
88
|
+
patchTaskProgressSchema,
|
|
89
|
+
} from "./task/task.api";
|
|
90
|
+
export type {
|
|
91
|
+
PatchChangeTaskStatusPayload,
|
|
92
|
+
PatchClaimTaskPayload,
|
|
93
|
+
PatchTaskProgressPayload,
|
|
94
|
+
} from "./task/task.api";
|
|
95
|
+
|
|
96
|
+
export * from "./node/node.interface";
|
|
97
|
+
export * from "./node/node.api";
|
|
98
|
+
|
|
99
|
+
export * from "./repo/repo.interface";
|
|
100
|
+
export * from "./repo/repo.api";
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createTarget,
|
|
3
|
+
MAX_POLL_TARGET_LIST_SIZE,
|
|
4
|
+
pollTargetList,
|
|
5
|
+
validateWithSchema,
|
|
6
|
+
} from "../core.api";
|
|
7
|
+
import { generateResponse } from "../core.interface";
|
|
8
|
+
import { createApiLogger } from "../shared/log";
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
import { CategoryCommand, Command, CommandType } from "./command.interface";
|
|
11
|
+
|
|
12
|
+
const nodeIdSchema = z.string().trim().min(1);
|
|
13
|
+
const traceIdSchema = z.string().trim().min(1).optional();
|
|
14
|
+
|
|
15
|
+
// ─── Zod schemas ─────────────────────────────────────────────────────────────
|
|
16
|
+
|
|
17
|
+
export const postCommandSchema = z.object({
|
|
18
|
+
nodeId: nodeIdSchema,
|
|
19
|
+
command: z.nativeEnum(CommandType),
|
|
20
|
+
traceId: traceIdSchema,
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
export type PostCommandPayload = z.infer<typeof postCommandSchema>;
|
|
24
|
+
|
|
25
|
+
export const getPollCommandListSchema = z.object({
|
|
26
|
+
nodeId: nodeIdSchema,
|
|
27
|
+
size: z.number().int().min(1).max(MAX_POLL_TARGET_LIST_SIZE).optional(),
|
|
28
|
+
traceId: traceIdSchema,
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
export type GetPollCommandListPayload = z.infer<typeof getPollCommandListSchema>;
|
|
32
|
+
|
|
33
|
+
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
34
|
+
|
|
35
|
+
function commandNodeFilter(nodeId: string) {
|
|
36
|
+
return [{ field: "value", operator: "eq" as const, value: nodeId }];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// ─── postCommand ─────────────────────────────────────────────────────────────
|
|
40
|
+
|
|
41
|
+
/** Enqueue a control command for `nodeId` (scheduler / admin). */
|
|
42
|
+
export const postCommand = validateWithSchema(
|
|
43
|
+
postCommandSchema,
|
|
44
|
+
"postCommandSchema"
|
|
45
|
+
)(async ({ nodeId, command, traceId }) => {
|
|
46
|
+
const logger = createApiLogger("postCommand", { traceId, labels: { nodeId } });
|
|
47
|
+
|
|
48
|
+
const result = await createTarget<Command, PostCommandPayload>({
|
|
49
|
+
payload: { nodeId, command, traceId },
|
|
50
|
+
createFn: () => ({
|
|
51
|
+
name: command,
|
|
52
|
+
value: nodeId,
|
|
53
|
+
category: CategoryCommand.COMMAND,
|
|
54
|
+
tagList: [],
|
|
55
|
+
}),
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
logger.info("Command已入隊", {
|
|
59
|
+
topic: "command",
|
|
60
|
+
data: { nodeId, command },
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
return result;
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
// ─── getPollCommandList ──────────────────────────────────────────────────────
|
|
67
|
+
|
|
68
|
+
/** Dequeue control commands for `nodeId` (oldest first). */
|
|
69
|
+
export const getPollCommandList = validateWithSchema(
|
|
70
|
+
getPollCommandListSchema,
|
|
71
|
+
"getPollCommandListSchema"
|
|
72
|
+
)(async ({ nodeId, size, traceId }) => {
|
|
73
|
+
const logger = createApiLogger("getPollCommandList", { traceId, labels: { nodeId } });
|
|
74
|
+
|
|
75
|
+
const { data: dequeuedList = [] } = await pollTargetList<Command>({
|
|
76
|
+
category: CategoryCommand.COMMAND,
|
|
77
|
+
size: size ?? 50,
|
|
78
|
+
filterList: commandNodeFilter(nodeId),
|
|
79
|
+
ascending: true,
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
logger.info("Command", {
|
|
83
|
+
topic: "command",
|
|
84
|
+
data: { nodeId, dequeued: dequeuedList.length },
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
return generateResponse.success(dequeuedList);
|
|
88
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Target } from "../core.interface";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
export enum CategoryCommand {
|
|
5
|
+
COMMAND = "command",
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export enum CommandType {
|
|
9
|
+
STOP_NODE = "stop-node",
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface Command extends Target {
|
|
13
|
+
name: CommandType;
|
|
14
|
+
/** Node.id */
|
|
15
|
+
value: string;
|
|
16
|
+
category: CategoryCommand;
|
|
17
|
+
}
|