@notionhq/workers 0.1.0 → 0.3.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.
Files changed (67) hide show
  1. package/dist/ajv-formats.d.js +0 -0
  2. package/dist/capabilities/ai_connector.d.ts +97 -0
  3. package/dist/capabilities/ai_connector.d.ts.map +1 -0
  4. package/dist/capabilities/ai_connector.js +54 -0
  5. package/dist/capabilities/ai_connector.test.d.ts +2 -0
  6. package/dist/capabilities/ai_connector.test.d.ts.map +1 -0
  7. package/dist/capabilities/automation.d.ts.map +1 -1
  8. package/dist/capabilities/automation.js +10 -10
  9. package/dist/capabilities/output.d.ts +5 -0
  10. package/dist/capabilities/output.d.ts.map +1 -0
  11. package/dist/capabilities/output.js +10 -0
  12. package/dist/capabilities/stateful-capability.d.ts +30 -0
  13. package/dist/capabilities/stateful-capability.d.ts.map +1 -0
  14. package/dist/capabilities/stateful-capability.js +50 -0
  15. package/dist/capabilities/stateful-capability.test.d.ts +2 -0
  16. package/dist/capabilities/stateful-capability.test.d.ts.map +1 -0
  17. package/dist/capabilities/sync.d.ts +77 -30
  18. package/dist/capabilities/sync.d.ts.map +1 -1
  19. package/dist/capabilities/sync.js +26 -64
  20. package/dist/capabilities/tool.d.ts.map +1 -1
  21. package/dist/capabilities/tool.js +7 -14
  22. package/dist/capabilities/webhook.d.ts +101 -0
  23. package/dist/capabilities/webhook.d.ts.map +1 -0
  24. package/dist/capabilities/webhook.js +47 -0
  25. package/dist/index.d.ts +4 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +2 -0
  28. package/dist/pacer.d.ts +24 -0
  29. package/dist/pacer.d.ts.map +1 -0
  30. package/dist/pacer.js +14 -0
  31. package/dist/pacer.test.d.ts +2 -0
  32. package/dist/pacer.test.d.ts.map +1 -0
  33. package/dist/pacer_internal.d.ts +13 -0
  34. package/dist/pacer_internal.d.ts.map +1 -0
  35. package/dist/pacer_internal.js +49 -0
  36. package/dist/schema.d.ts +28 -18
  37. package/dist/schema.d.ts.map +1 -1
  38. package/dist/schema.js +2 -2
  39. package/dist/types.d.ts +5 -2
  40. package/dist/types.d.ts.map +1 -1
  41. package/dist/worker.d.ts +222 -7
  42. package/dist/worker.d.ts.map +1 -1
  43. package/dist/worker.js +184 -8
  44. package/dist/worker.test.d.ts +2 -0
  45. package/dist/worker.test.d.ts.map +1 -0
  46. package/package.json +7 -2
  47. package/src/ajv-formats.d.ts +7 -0
  48. package/src/capabilities/ai_connector.test.ts +341 -0
  49. package/src/capabilities/ai_connector.ts +194 -0
  50. package/src/capabilities/automation.test.ts +2 -2
  51. package/src/capabilities/automation.ts +10 -6
  52. package/src/capabilities/output.ts +8 -0
  53. package/src/capabilities/stateful-capability.test.ts +25 -0
  54. package/src/capabilities/stateful-capability.ts +87 -0
  55. package/src/capabilities/sync.test.ts +178 -35
  56. package/src/capabilities/sync.ts +63 -100
  57. package/src/capabilities/tool.test.ts +47 -3
  58. package/src/capabilities/tool.ts +7 -6
  59. package/src/capabilities/webhook.ts +148 -0
  60. package/src/index.ts +31 -0
  61. package/src/pacer.test.ts +110 -0
  62. package/src/pacer.ts +25 -0
  63. package/src/pacer_internal.ts +94 -0
  64. package/src/schema.ts +29 -19
  65. package/src/types.ts +4 -2
  66. package/src/worker.test.ts +167 -0
  67. package/src/worker.ts +335 -10
@@ -1,6 +1,8 @@
1
1
  import { Ajv } from "ajv";
2
+ import addFormats from "ajv-formats";
2
3
  import { getSchema } from "../schema-builder.js";
3
4
  import { createCapabilityContext } from "./context.js";
5
+ import { writeOutput } from "./output.js";
4
6
  function validateRequiredProperties(schema, path = "") {
5
7
  if ("type" in schema && schema.type === "object" && "properties" in schema) {
6
8
  const propKeys = Object.keys(schema.properties).sort();
@@ -88,6 +90,7 @@ function createToolCapability(key, config) {
88
90
  validateRequiredProperties(outputSchema);
89
91
  }
90
92
  const ajv = new Ajv();
93
+ addFormats(ajv);
91
94
  const validateInput = ajv.compile(inputSchema);
92
95
  const validateOutput = outputSchema ? ajv.compile(outputSchema) : null;
93
96
  async function handler(input, options) {
@@ -107,9 +110,7 @@ function createToolCapability(key, config) {
107
110
  _tag: "error",
108
111
  error: { name: error.name, message: error.message, trace: error.stack }
109
112
  };
110
- process.stdout.write(`
111
- <output>${JSON.stringify(result)}</output>
112
- `);
113
+ writeOutput(result);
113
114
  return result;
114
115
  }
115
116
  try {
@@ -130,19 +131,13 @@ function createToolCapability(key, config) {
130
131
  trace: error.stack
131
132
  }
132
133
  };
133
- process.stdout.write(`
134
- <output>${JSON.stringify(result2)}</output>
135
- `);
134
+ writeOutput(result2);
136
135
  return result2;
137
136
  }
138
137
  if (options?.concreteOutput) {
139
138
  return result;
140
139
  }
141
- process.stdout.write(
142
- `
143
- <output>${JSON.stringify({ _tag: "success", value: result })}</output>
144
- `
145
- );
140
+ writeOutput({ _tag: "success", value: result });
146
141
  return {
147
142
  _tag: "success",
148
143
  value: result
@@ -158,9 +153,7 @@ function createToolCapability(key, config) {
158
153
  _tag: "error",
159
154
  error: { name: error.name, message: error.message, trace: error.stack }
160
155
  };
161
- process.stdout.write(`
162
- <output>${JSON.stringify(result)}</output>
163
- `);
156
+ writeOutput(result);
164
157
  return result;
165
158
  }
166
159
  }
@@ -0,0 +1,101 @@
1
+ import { ExecutionError } from "../error.js";
2
+ import type { HandlerOptions } from "../types.js";
3
+ import type { CapabilityContext } from "./context.js";
4
+ /**
5
+ * A single incoming webhook request.
6
+ */
7
+ export interface WebhookEvent {
8
+ /**
9
+ * Unique ID for this webhook delivery, stable across retries.
10
+ * Best-effort idempotency key — prefer using the webhook provider's
11
+ * own delivery/event ID when available, since providers may redeliver
12
+ * the same event with a new deliveryId.
13
+ */
14
+ deliveryId: string;
15
+ /**
16
+ * The parsed JSON body of the incoming request, or an empty object if
17
+ * the body is not valid JSON.
18
+ */
19
+ body: Record<string, unknown>;
20
+ /**
21
+ * The raw request body as a string, useful for signature verification.
22
+ */
23
+ rawBody: string;
24
+ /**
25
+ * The HTTP headers from the incoming request
26
+ */
27
+ headers: Record<string, string>;
28
+ /**
29
+ * The HTTP method of the incoming request (e.g. "POST")
30
+ */
31
+ method: string;
32
+ }
33
+ /**
34
+ * Throw this error from your webhook execute handler to signal that
35
+ * signature verification failed. After 5 consecutive verification
36
+ * failures, the platform will short-circuit and reject all incoming
37
+ * requests for this webhook without executing the handler.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * worker.webhook("onGithubPush", {
42
+ * title: "GitHub Push",
43
+ * description: "Handles GitHub push events",
44
+ * execute: async (events) => {
45
+ * const secret = process.env.GITHUB_WEBHOOK_SECRET;
46
+ * if (!secret) {
47
+ * throw new WebhookVerificationError("GITHUB_WEBHOOK_SECRET not set");
48
+ * }
49
+ * for (const event of events) {
50
+ * if (!verifyGitHubSignature(event.rawBody, event.headers, secret)) {
51
+ * throw new WebhookVerificationError("Invalid GitHub signature");
52
+ * }
53
+ * // ... handle verified event
54
+ * }
55
+ * },
56
+ * });
57
+ * ```
58
+ */
59
+ export declare class WebhookVerificationError extends ExecutionError {
60
+ constructor(cause?: unknown);
61
+ }
62
+ /**
63
+ * Configuration for a webhook capability
64
+ */
65
+ export interface WebhookConfiguration {
66
+ /**
67
+ * Title of the webhook - shown in the UI when viewing webhooks
68
+ */
69
+ title: string;
70
+ /**
71
+ * Description of what this webhook does - shown in the UI
72
+ */
73
+ description: string;
74
+ /**
75
+ * The function that executes when the webhook is triggered.
76
+ * Receives an array of events (currently always a single event,
77
+ * but may be batched in the future).
78
+ *
79
+ * To signal a verification failure, throw a `WebhookVerificationError`.
80
+ * After 5 consecutive verification failures, the platform will
81
+ * short-circuit and stop executing the handler.
82
+ *
83
+ * @param events - The incoming webhook events
84
+ * @param context - The capability execution context (Notion client, etc.)
85
+ * @returns A promise that resolves when the webhook processing completes
86
+ */
87
+ execute: (events: WebhookEvent[], context: CapabilityContext) => Promise<void> | void;
88
+ }
89
+ export type WebhookCapability = ReturnType<typeof createWebhookCapability>;
90
+ export declare function createWebhookCapability(key: string, config: WebhookConfiguration): {
91
+ _tag: "webhook";
92
+ key: string;
93
+ config: {
94
+ title: string;
95
+ description: string;
96
+ };
97
+ handler(events: WebhookEvent[], options?: HandlerOptions): Promise<{
98
+ status: "success";
99
+ } | undefined>;
100
+ };
101
+ //# sourceMappingURL=webhook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../src/capabilities/webhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAItD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,wBAAyB,SAAQ,cAAc;gBAC/C,KAAK,CAAC,EAAE,OAAO;CAI3B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;;;;;;;OAYG;IACH,OAAO,EAAE,CACR,MAAM,EAAE,YAAY,EAAE,EACtB,OAAO,EAAE,iBAAiB,KACtB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE3E,wBAAgB,uBAAuB,CACtC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,oBAAoB;;;;;;;oBAUlB,YAAY,EAAE,YACZ,cAAc,GACtB,OAAO,CAAC;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,GAAG,SAAS,CAAC;EA6B9C"}
@@ -0,0 +1,47 @@
1
+ import { ExecutionError } from "../error.js";
2
+ import { createCapabilityContext } from "./context.js";
3
+ import { writeOutput } from "./output.js";
4
+ class WebhookVerificationError extends ExecutionError {
5
+ constructor(cause) {
6
+ super(cause ?? "Webhook signature verification failed");
7
+ this.name = "WebhookVerificationError";
8
+ }
9
+ }
10
+ function createWebhookCapability(key, config) {
11
+ return {
12
+ _tag: "webhook",
13
+ key,
14
+ config: {
15
+ title: config.title,
16
+ description: config.description
17
+ },
18
+ async handler(events, options) {
19
+ try {
20
+ const capabilityContext = createCapabilityContext();
21
+ await config.execute(events, capabilityContext);
22
+ if (options?.concreteOutput) {
23
+ return { status: "success" };
24
+ } else {
25
+ writeOutput({ _tag: "success", value: { status: "success" } });
26
+ }
27
+ } catch (err) {
28
+ const error = err instanceof ExecutionError ? err : new ExecutionError(err);
29
+ if (!options?.concreteOutput) {
30
+ writeOutput({
31
+ _tag: "error",
32
+ error: {
33
+ name: error.name,
34
+ message: error.message,
35
+ trace: error.stack
36
+ }
37
+ });
38
+ }
39
+ throw error;
40
+ }
41
+ }
42
+ };
43
+ }
44
+ export {
45
+ WebhookVerificationError,
46
+ createWebhookCapability
47
+ };
package/dist/index.d.ts CHANGED
@@ -1,12 +1,16 @@
1
1
  export { emojiIcon, imageIcon, notionIcon, place } from "./builder.js";
2
+ export type { AiConnectorArchetype, AiConnectorCapability, AiConnectorChange, AiConnectorChangeUpsert, AiConnectorChatAuthor, AiConnectorChatChannel, AiConnectorChatMessage, AiConnectorChatRecord, AiConnectorConfiguration, AiConnectorExecutionResult, AiConnectorMode, AiConnectorProjectBlock, AiConnectorProjectRecord, AiConnectorRecordByArchetype, } from "./capabilities/ai_connector.js";
2
3
  export type { AutomationCapability, AutomationConfiguration, AutomationEvent, PageObjectResponse, } from "./capabilities/automation.js";
3
4
  export type { CapabilityContext } from "./capabilities/context.js";
4
5
  export type { NotionManagedOAuthConfiguration, OAuthCapability, OAuthConfiguration, UserManagedOAuthConfiguration, } from "./capabilities/oauth.js";
5
6
  export type { SyncCapability, SyncChange, SyncChangeDelete, SyncChangeUpsert, SyncConfiguration, SyncExecutionResult, SyncMode, } from "./capabilities/sync.js";
6
7
  export type { ToolCapability, ToolConfiguration } from "./capabilities/tool.js";
8
+ export type { WebhookCapability, WebhookConfiguration, WebhookEvent, } from "./capabilities/webhook.js";
9
+ export { WebhookVerificationError } from "./capabilities/webhook.js";
7
10
  export type { AnyJSONSchema, JSONSchema } from "./json-schema.js";
8
11
  export type { Infer, SchemaBuilder } from "./schema-builder.js";
9
12
  export { getSchema, j } from "./schema-builder.js";
10
13
  export type { Icon, ImageIcon, NoticonColor, NoticonName, PlaceValue, Schedule, } from "./types.js";
14
+ export type { DatabaseConfig, DatabaseHandle, ManagedDatabaseConfig, PacerConfig, PacerDeclaration, PacerHandle, WorkerManifest, } from "./worker.js";
11
15
  export { Worker } from "./worker.js";
12
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACvE,YAAY,EACX,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,EACf,kBAAkB,GAClB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,YAAY,EACX,+BAA+B,EAC/B,eAAe,EACf,kBAAkB,EAClB,6BAA6B,GAC7B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACX,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,QAAQ,GACR,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChF,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAClE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EACX,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,WAAW,EACX,UAAU,EACV,QAAQ,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACvE,YAAY,EACX,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,GAC5B,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACX,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,EACf,kBAAkB,GAClB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,YAAY,EACX,+BAA+B,EAC/B,eAAe,EACf,kBAAkB,EAClB,6BAA6B,GAC7B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACX,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,QAAQ,GACR,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChF,YAAY,EACX,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,GACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAClE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EACX,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,WAAW,EACX,UAAU,EACV,QAAQ,GACR,MAAM,YAAY,CAAC;AACpB,YAAY,EACX,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,cAAc,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,9 @@
1
1
  import { emojiIcon, imageIcon, notionIcon, place } from "./builder.js";
2
+ import { WebhookVerificationError } from "./capabilities/webhook.js";
2
3
  import { getSchema, j } from "./schema-builder.js";
3
4
  import { Worker } from "./worker.js";
4
5
  export {
6
+ WebhookVerificationError,
5
7
  Worker,
6
8
  emojiIcon,
7
9
  getSchema,
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Pacer module for rate limiting API requests.
3
+ *
4
+ * The preferred API is the handle returned by `worker.pacer()`:
5
+ *
6
+ * ```ts
7
+ * const apiPacer = worker.pacer("myApi", { allowedRequests: 10, intervalMs: 1000 });
8
+ * await apiPacer.wait();
9
+ * ```
10
+ *
11
+ * @module
12
+ */
13
+ import { pacerWait } from "./pacer_internal.js";
14
+ export declare const Pacer: {
15
+ /**
16
+ * Wait until a request can proceed under the named pacer's rate limit.
17
+ *
18
+ * Prefer using the handle-based API instead: `await myPacer.wait()`.
19
+ *
20
+ * @param key - The pacer key, matching the key used in `worker.pacer()`.
21
+ */
22
+ wait: typeof pacerWait;
23
+ };
24
+ //# sourceMappingURL=pacer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pacer.d.ts","sourceRoot":"","sources":["../src/pacer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,eAAO,MAAM,KAAK;IACjB;;;;;;OAMG;;CAEH,CAAC"}
package/dist/pacer.js ADDED
@@ -0,0 +1,14 @@
1
+ import { pacerWait } from "./pacer_internal.js";
2
+ const Pacer = {
3
+ /**
4
+ * Wait until a request can proceed under the named pacer's rate limit.
5
+ *
6
+ * Prefer using the handle-based API instead: `await myPacer.wait()`.
7
+ *
8
+ * @param key - The pacer key, matching the key used in `worker.pacer()`.
9
+ */
10
+ wait: pacerWait
11
+ };
12
+ export {
13
+ Pacer
14
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pacer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pacer.test.d.ts","sourceRoot":"","sources":["../src/pacer.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ export type PacerState = {
2
+ pacers: Record<string, PacerEntry>;
3
+ };
4
+ export type PacerDeclaration = {
5
+ readonly key: string;
6
+ readonly config: {
7
+ allowedRequests: number;
8
+ intervalMs: number;
9
+ };
10
+ };
11
+ export declare function setPacerState(state: PacerState): void;
12
+ export declare function getPacerState(): PacerState;
13
+ //# sourceMappingURL=pacer_internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pacer_internal.d.ts","sourceRoot":"","sources":["../src/pacer_internal.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACjE,CAAC;AAIF,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAErD;AAED,wBAAgB,aAAa,IAAI,UAAU,CAE1C"}
@@ -0,0 +1,49 @@
1
+ let pacerState = { pacers: {} };
2
+ function setPacerState(state) {
3
+ pacerState = state;
4
+ }
5
+ function getPacerState() {
6
+ return pacerState;
7
+ }
8
+ function initPacerState(runtimePacers, declarations) {
9
+ const pacers = runtimePacers ?? {};
10
+ if (Object.keys(pacers).length === 0 && declarations && declarations.length > 0) {
11
+ const localPacers = {};
12
+ for (const decl of declarations) {
13
+ localPacers[decl.key] = {
14
+ lastScheduledAtMs: 0,
15
+ allowedRequests: decl.config.allowedRequests,
16
+ intervalMs: decl.config.intervalMs
17
+ };
18
+ }
19
+ setPacerState({ pacers: localPacers });
20
+ } else {
21
+ setPacerState({ pacers });
22
+ }
23
+ }
24
+ async function pacerWait(key) {
25
+ const state = getPacerState();
26
+ const entry = state.pacers[key];
27
+ if (!entry) {
28
+ throw new Error(
29
+ `Pacer "${key}" not found. Make sure you declared it with worker.pacer("${key}", ...) and are running inside the worker runtime.`
30
+ );
31
+ }
32
+ const { allowedRequests, intervalMs } = entry;
33
+ const paceMs = Math.ceil(intervalMs / allowedRequests);
34
+ const now = Date.now();
35
+ const lastScheduledAtMs = entry.lastScheduledAtMs;
36
+ const scheduledAtMs = Math.max(lastScheduledAtMs + paceMs, now);
37
+ const delayMs = scheduledAtMs - now;
38
+ state.pacers[key] = { ...entry, lastScheduledAtMs: scheduledAtMs };
39
+ setPacerState(state);
40
+ if (delayMs > 0) {
41
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
42
+ }
43
+ }
44
+ export {
45
+ getPacerState,
46
+ initPacerState,
47
+ pacerWait,
48
+ setPacerState
49
+ };
package/dist/schema.d.ts CHANGED
@@ -48,10 +48,10 @@ export type PropertyConfiguration = {
48
48
  } | {
49
49
  type: "relation";
50
50
  /**
51
- * The export name of the sync capability that defines the related collection.
52
- * This must match the export name used when defining the related sync capability.
51
+ * The key of the related database declaration.
52
+ * This must match the key passed to `worker.database()`.
53
53
  */
54
- relatedSyncKey: string;
54
+ relatedDatabaseKey: string;
55
55
  config: {
56
56
  twoWay: false;
57
57
  } | {
@@ -60,13 +60,6 @@ export type PropertyConfiguration = {
60
60
  };
61
61
  };
62
62
  export type Schema<PK extends string> = {
63
- /**
64
- * The default name for the database when it is first created.
65
- *
66
- * Updating this after the database has been created will not change the
67
- * name of the database.
68
- */
69
- defaultName: string;
70
63
  /**
71
64
  * Optional icon to use as the icon for the database page.
72
65
  * If not provided, defaults to 📋.
@@ -150,26 +143,43 @@ export declare function people(): PropertyConfiguration;
150
143
  */
151
144
  export declare function place(): PropertyConfiguration;
152
145
  /**
153
- * Creates a relation property definition that references another sync capability.
154
- * The related collection must be defined by a sync capability in the same worker.
146
+ * Creates a relation property definition that references another database.
147
+ * The related database must be declared in the same worker.
155
148
  *
156
- * @param relatedSyncKey - The export name of the sync capability that defines the related collection.
149
+ * @param relatedDatabaseKey - The key of the related database declaration.
157
150
  * @example
158
151
  * ```typescript
159
- * export const projectsSync = sync({...});
152
+ * const projects = worker.database("projects", {
153
+ * type: "managed",
154
+ * initialTitle: "Projects",
155
+ * primaryKeyProperty: "Project ID",
156
+ * schema: {
157
+ * properties: {
158
+ * "Project Name": Schema.title(),
159
+ * "Project ID": Schema.richText(),
160
+ * },
161
+ * },
162
+ * });
160
163
  *
161
- * export const tasksSync = sync({
164
+ * const tasks = worker.database("tasks", {
165
+ * type: "managed",
166
+ * initialTitle: "Tasks",
167
+ * primaryKeyProperty: "Task ID",
162
168
  * schema: {
163
169
  * properties: {
164
170
  * "Task Title": Schema.title(),
165
- * "Project": Schema.relation("projectsSync"),
171
+ * "Project": Schema.relation("projects"),
166
172
  * },
167
173
  * },
168
- * ...
174
+ * });
175
+ *
176
+ * export const tasksSync = worker.sync("tasksSync", {
177
+ * database: tasks,
178
+ * execute: async () => ({ changes: [], hasMore: false }),
169
179
  * });
170
180
  * ```
171
181
  */
172
- export declare function relation(relatedSyncKey: string, config?: {
182
+ export declare function relation(relatedDatabaseKey: string, config?: {
173
183
  twoWay: false;
174
184
  } | {
175
185
  twoWay: true;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/dist/schema.js CHANGED
@@ -40,10 +40,10 @@ function people() {
40
40
  function place() {
41
41
  return { type: "place" };
42
42
  }
43
- function relation(relatedSyncKey, config) {
43
+ function relation(relatedDatabaseKey, config) {
44
44
  return {
45
45
  type: "relation",
46
- relatedSyncKey,
46
+ relatedDatabaseKey,
47
47
  config: config ?? { twoWay: false }
48
48
  };
49
49
  }
package/dist/types.d.ts CHANGED
@@ -171,7 +171,7 @@ export type RelationReference = {
171
171
  };
172
172
  /**
173
173
  * Relation value representing references to related records.
174
- * Each reference identifies a record in the target collection.
174
+ * Each reference identifies a record in the target database.
175
175
  */
176
176
  export type RelationValue = RelationReference[];
177
177
  /**
@@ -188,14 +188,17 @@ export type IntervalString = `${number}${TimeUnit}`;
188
188
  /**
189
189
  * Schedule configuration for sync capabilities.
190
190
  * - "continuous": Run as frequently as the system allows
191
+ * - "manual": Only run when explicitly triggered
191
192
  * - IntervalString: Run at specified intervals, e.g. "30m", "1h", "1d"
192
193
  */
193
- export type Schedule = "continuous" | IntervalString;
194
+ export type Schedule = "continuous" | "manual" | IntervalString;
194
195
  /**
195
196
  * Normalized schedule representation stored in the backend.
196
197
  */
197
198
  export type SyncSchedule = {
198
199
  type: "continuous";
200
+ } | {
201
+ type: "manual";
199
202
  } | {
200
203
  type: "interval";
201
204
  intervalMs: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}