@resonatehq/dev 0.1.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.
@@ -0,0 +1,74 @@
1
+ export type PromiseState = "pending" | "resolved" | "rejected" | "rejected_canceled" | "rejected_timedout";
2
+ export type Promise = {
3
+ id: string;
4
+ state: PromiseState;
5
+ param: {
6
+ headers: {
7
+ [key: string]: string;
8
+ };
9
+ data: string;
10
+ };
11
+ value: {
12
+ headers: {
13
+ [key: string]: string;
14
+ };
15
+ data: string;
16
+ };
17
+ tags: {
18
+ [key: string]: string;
19
+ };
20
+ timeoutAt: number;
21
+ createdAt: number;
22
+ settledAt?: number;
23
+ };
24
+ export type Task = {
25
+ id: string;
26
+ version: number;
27
+ };
28
+ export type InvokeMessage = {
29
+ kind: "invoke";
30
+ head: {
31
+ [key: string]: string;
32
+ };
33
+ data: {
34
+ task: Task;
35
+ };
36
+ };
37
+ export type ResumeMessage = {
38
+ kind: "resume";
39
+ head: {
40
+ [key: string]: string;
41
+ };
42
+ data: {
43
+ task: Task;
44
+ };
45
+ };
46
+ export type NotifyMessage = {
47
+ kind: "notify";
48
+ head: {
49
+ [key: string]: string;
50
+ };
51
+ data: {
52
+ promise: Promise;
53
+ };
54
+ };
55
+ export type Message = InvokeMessage | ResumeMessage | NotifyMessage;
56
+ export type Schedule = {
57
+ id: string;
58
+ cron: string;
59
+ promiseId: string;
60
+ promiseTimeout: number;
61
+ promiseParam: {
62
+ headers: {
63
+ [key: string]: string;
64
+ };
65
+ data: string;
66
+ };
67
+ promiseTags: {
68
+ [key: string]: string;
69
+ };
70
+ createdAt: number;
71
+ nextRunAt: number;
72
+ lastRunAt?: number;
73
+ };
74
+ //# sourceMappingURL=entities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../src/entities.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,UAAU,GACV,UAAU,GACV,mBAAmB,GACnB,mBAAmB,CAAC;AAExB,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE;QAAE,OAAO,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,KAAK,EAAE;QAAE,OAAO,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAChC,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,CAAC;KACZ,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAChC,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,CAAC;KACZ,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAChC,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,CAAC;AAEpE,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE;QAAE,OAAO,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,WAAW,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=entities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entities.js","sourceRoot":"","sources":["../src/entities.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export type { ErrorCode, ErrorRes, PromiseCreateReq, PromiseCreateRes, PromiseGetReq, PromiseGetRes, PromiseRegisterReq, PromiseRegisterRes, PromiseSettleReq, PromiseSettleRes, PromiseSubscribeReq, PromiseSubscribeRes, Req, Res, ScheduleCreateReq, ScheduleCreateRes, ScheduleDeleteReq, ScheduleDeleteRes, ScheduleGetReq, ScheduleGetRes, TaskAcquireReq, TaskAcquireRes, TaskCreateReq, TaskCreateRes, TaskFenceReq, TaskFenceRes, TaskFulfillReq, TaskFulfillRes, TaskGetReq, TaskGetRes, TaskHeartbeatReq, TaskHeartbeatRes, TaskReleaseReq, TaskReleaseRes, TaskSuspendReq, TaskSuspendRes, } from "./api";
2
+ export type { InvokeMessage, Message, NotifyMessage, Promise, PromiseState, ResumeMessage, Schedule, Task, } from "./entities";
3
+ export { Server } from "./server";
4
+ export { assert, assertDefined } from "./utils";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,GAAG,EACH,GAAG,EACH,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,OAAO,CAAC;AACf,YAAY,EACV,aAAa,EACb,OAAO,EACP,aAAa,EACb,OAAO,EACP,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,IAAI,GACL,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { Server } from "./server";
2
+ export { assert, assertDefined } from "./utils";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgDA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,107 @@
1
+ import type { Req, Res } from "./api";
2
+ import type { Message, Promise, Schedule, Task } from "./entities";
3
+ type PromiseRecord = Promise & {
4
+ callbacks: {
5
+ [key: string]: {
6
+ id: string;
7
+ type: "resume" | "notify";
8
+ awaited: string;
9
+ awaiter: string;
10
+ recv: string;
11
+ timeoutAt: number;
12
+ createdAt: number;
13
+ };
14
+ };
15
+ };
16
+ type TaskState = "init" | "enqueued" | "claimed" | "completed";
17
+ type TaskRecord = Task & {
18
+ state: TaskState;
19
+ type: "invoke" | "resume" | "notify";
20
+ recv: string;
21
+ awaiter: string;
22
+ awaited: string;
23
+ timeoutAt: number;
24
+ pid?: string;
25
+ ttl?: number;
26
+ expiry: number;
27
+ createdAt: number;
28
+ completedAt?: number;
29
+ };
30
+ type ScheduleRecord = Schedule;
31
+ export declare class Server {
32
+ private taskExpiryMs;
33
+ readonly version = "2025-01-15";
34
+ private promises;
35
+ private tasks;
36
+ private schedules;
37
+ private router;
38
+ private targets;
39
+ constructor(taskExpiryMs?: number);
40
+ getState(): {
41
+ promises: {
42
+ [key: string]: PromiseRecord;
43
+ };
44
+ tasks: {
45
+ [key: string]: TaskRecord;
46
+ };
47
+ schedules: {
48
+ [key: string]: ScheduleRecord;
49
+ };
50
+ stats: {
51
+ promiseCount: number;
52
+ taskCount: number;
53
+ scheduleCount: number;
54
+ pendingPromises: number;
55
+ resolvedPromises: number;
56
+ rejectedPromises: number;
57
+ canceledPromises: number;
58
+ timedoutPromises: number;
59
+ initTasks: number;
60
+ enqueuedTasks: number;
61
+ claimedTasks: number;
62
+ completedTasks: number;
63
+ };
64
+ };
65
+ next({ at }: {
66
+ at: number;
67
+ }): number | undefined;
68
+ step({ at }: {
69
+ at: number;
70
+ }): {
71
+ mesg: Message;
72
+ recv: string;
73
+ }[];
74
+ process({ at, req }: {
75
+ at: number;
76
+ req: Req;
77
+ }): Res;
78
+ private processFence;
79
+ private processRequest;
80
+ private promiseCreate;
81
+ private promiseGet;
82
+ private promiseRegister;
83
+ private promiseSettle;
84
+ private promiseSubscribe;
85
+ private scheduleCreate;
86
+ private scheduleDelete;
87
+ private scheduleGet;
88
+ private taskAcquire;
89
+ private taskCreate;
90
+ private taskFulfill;
91
+ private taskGet;
92
+ private taskHeartbeat;
93
+ private taskRelease;
94
+ private taskSuspend;
95
+ private transitionPromise;
96
+ private transitionTask;
97
+ private transitionPromiseAndTask;
98
+ private transitionSchedule;
99
+ private getPromiseRecord;
100
+ private getTaskRecord;
101
+ private getScheduleRecord;
102
+ private buildOkRes;
103
+ private buildErrorRes;
104
+ private ensureVersion;
105
+ }
106
+ export {};
107
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}