@absurd-sqlite/sdk 0.3.0-alpha.0 → 0.3.0-alpha.1

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/dist/absurd.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { Temporal } from "temporal-polyfill";
1
2
  /**
2
3
  * Minimal query interface compatible with Absurd's database operations.
3
4
  */
@@ -19,8 +20,8 @@ export interface RetryStrategy {
19
20
  maxSeconds?: number;
20
21
  }
21
22
  export interface CancellationPolicy {
22
- maxDuration?: number;
23
- maxDelay?: number;
23
+ maxDuration?: Temporal.Duration;
24
+ maxDelay?: Temporal.Duration;
24
25
  }
25
26
  export interface SpawnOptions {
26
27
  maxAttempts?: number;
@@ -162,31 +163,31 @@ export declare class TaskContext {
162
163
  */
163
164
  step<T extends JsonValue>(name: string, fn: () => Promise<T>): Promise<T>;
164
165
  /**
165
- * Suspends the task until the given duration (seconds) elapses.
166
+ * Suspends the task until the given duration elapses.
166
167
  * @param stepName Checkpoint name for this wait.
167
- * @param duration Duration to wait in seconds.
168
+ * @param duration Duration to wait.
168
169
  */
169
- sleepFor(stepName: string, duration: number): Promise<void>;
170
+ sleepFor(stepName: string, duration: Temporal.Duration): Promise<void>;
170
171
  /**
171
172
  * Suspends the task until the specified time.
172
173
  * @param stepName Checkpoint name for this wait.
173
174
  * @param wakeAt Absolute time when the task should resume.
174
175
  */
175
- sleepUntil(stepName: string, wakeAt: Date): Promise<void>;
176
+ sleepUntil(stepName: string, wakeAt: Temporal.Instant): Promise<void>;
176
177
  private getCheckpointName;
177
178
  private lookupCheckpoint;
178
179
  private persistCheckpoint;
179
180
  private scheduleRun;
180
181
  /**
181
- * Waits for an event by name and returns its payload; optionally sets a custom step name and timeout (seconds).
182
+ * Waits for an event by name and returns its payload; optionally sets a custom step name and timeout.
182
183
  * @param eventName Event identifier to wait for.
183
184
  * @param options.stepName Optional checkpoint name (defaults to $awaitEvent:<eventName>).
184
- * @param options.timeout Optional timeout in seconds.
185
+ * @param options.timeout Optional timeout duration.
185
186
  * @throws TimeoutError If the event is not received before the timeout.
186
187
  */
187
188
  awaitEvent(eventName: string, options?: {
188
189
  stepName?: string;
189
- timeout?: number;
190
+ timeout?: Temporal.Duration;
190
191
  }): Promise<JsonValue>;
191
192
  /**
192
193
  * Extends the current run's lease by the given seconds (defaults to the original claim timeout).
@@ -1 +1 @@
1
- {"version":3,"file":"absurd.d.ts","sourceRoot":"","sources":["../src/absurd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"absurd.d.ts","sourceRoot":"","sources":["../src/absurd.ts"],"names":[],"mappings":"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"}
package/dist/absurd.js CHANGED
@@ -8,6 +8,7 @@
8
8
  * Modifications Copyright (c) absurd-sqlite contributors.
9
9
  */
10
10
  import * as os from "node:os";
11
+ import { Temporal } from "temporal-polyfill";
11
12
  /**
12
13
  * Internal exception that is thrown to suspend a run.
13
14
  */
@@ -130,12 +131,14 @@ export class TaskContext {
130
131
  return rv;
131
132
  }
132
133
  /**
133
- * Suspends the task until the given duration (seconds) elapses.
134
+ * Suspends the task until the given duration elapses.
134
135
  * @param stepName Checkpoint name for this wait.
135
- * @param duration Duration to wait in seconds.
136
+ * @param duration Duration to wait.
136
137
  */
137
138
  async sleepFor(stepName, duration) {
138
- return await this.sleepUntil(stepName, new Date(Date.now() + duration * 1000));
139
+ const now = Temporal.Now.instant();
140
+ const wakeAt = now.add(duration);
141
+ return await this.sleepUntil(stepName, wakeAt);
139
142
  }
140
143
  /**
141
144
  * Suspends the task until the specified time.
@@ -145,11 +148,11 @@ export class TaskContext {
145
148
  async sleepUntil(stepName, wakeAt) {
146
149
  const checkpointName = this.getCheckpointName(stepName);
147
150
  const state = await this.lookupCheckpoint(checkpointName);
148
- const actualWakeAt = typeof state === "string" ? new Date(state) : wakeAt;
151
+ const actualWakeAt = typeof state === "string" ? Temporal.Instant.from(state) : wakeAt;
149
152
  if (!state) {
150
- await this.persistCheckpoint(checkpointName, wakeAt.toISOString());
153
+ await this.persistCheckpoint(checkpointName, wakeAt.toString());
151
154
  }
152
- if (Date.now() < actualWakeAt.getTime()) {
155
+ if (Temporal.Instant.compare(Temporal.Now.instant(), actualWakeAt) < 0) {
153
156
  await this.scheduleRun(actualWakeAt);
154
157
  throw new SuspendTask();
155
158
  }
@@ -193,19 +196,17 @@ export class TaskContext {
193
196
  ]);
194
197
  }
195
198
  /**
196
- * Waits for an event by name and returns its payload; optionally sets a custom step name and timeout (seconds).
199
+ * Waits for an event by name and returns its payload; optionally sets a custom step name and timeout.
197
200
  * @param eventName Event identifier to wait for.
198
201
  * @param options.stepName Optional checkpoint name (defaults to $awaitEvent:<eventName>).
199
- * @param options.timeout Optional timeout in seconds.
202
+ * @param options.timeout Optional timeout duration.
200
203
  * @throws TimeoutError If the event is not received before the timeout.
201
204
  */
202
205
  async awaitEvent(eventName, options) {
203
206
  const stepName = options?.stepName || `$awaitEvent:${eventName}`;
204
207
  let timeout = null;
205
- if (options?.timeout !== undefined &&
206
- Number.isFinite(options?.timeout) &&
207
- options?.timeout >= 0) {
208
- timeout = Math.floor(options?.timeout);
208
+ if (options?.timeout !== undefined) {
209
+ timeout = Math.floor(options.timeout.total("seconds"));
209
210
  }
210
211
  const checkpointName = this.getCheckpointName(stepName);
211
212
  const cached = await this.lookupCheckpoint(checkpointName);
@@ -700,10 +701,10 @@ function normalizeCancellation(policy) {
700
701
  }
701
702
  const normalized = {};
702
703
  if (policy.maxDuration !== undefined) {
703
- normalized.max_duration = policy.maxDuration;
704
+ normalized.max_duration = Math.floor(policy.maxDuration.total("seconds"));
704
705
  }
705
706
  if (policy.maxDelay !== undefined) {
706
- normalized.max_delay = policy.maxDelay;
707
+ normalized.max_delay = Math.floor(policy.maxDelay.total("seconds"));
707
708
  }
708
709
  return Object.keys(normalized).length > 0 ? normalized : undefined;
709
710
  }
@@ -1 +1 @@
1
- {"version":3,"file":"absurd.js","sourceRoot":"","sources":["../src/absurd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"absurd.js","sourceRoot":"","sources":["../src/absurd.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,7 @@ exports.AbsurdImpl = exports.TaskContext = exports.TimeoutError = exports.Cancel
44
44
  * Modifications Copyright (c) absurd-sqlite contributors.
45
45
  */
46
46
  const os = __importStar(require("node:os"));
47
+ const temporal_polyfill_1 = require("temporal-polyfill");
47
48
  /**
48
49
  * Internal exception that is thrown to suspend a run.
49
50
  */
@@ -169,12 +170,14 @@ class TaskContext {
169
170
  return rv;
170
171
  }
171
172
  /**
172
- * Suspends the task until the given duration (seconds) elapses.
173
+ * Suspends the task until the given duration elapses.
173
174
  * @param stepName Checkpoint name for this wait.
174
- * @param duration Duration to wait in seconds.
175
+ * @param duration Duration to wait.
175
176
  */
176
177
  async sleepFor(stepName, duration) {
177
- return await this.sleepUntil(stepName, new Date(Date.now() + duration * 1000));
178
+ const now = temporal_polyfill_1.Temporal.Now.instant();
179
+ const wakeAt = now.add(duration);
180
+ return await this.sleepUntil(stepName, wakeAt);
178
181
  }
179
182
  /**
180
183
  * Suspends the task until the specified time.
@@ -184,11 +187,11 @@ class TaskContext {
184
187
  async sleepUntil(stepName, wakeAt) {
185
188
  const checkpointName = this.getCheckpointName(stepName);
186
189
  const state = await this.lookupCheckpoint(checkpointName);
187
- const actualWakeAt = typeof state === "string" ? new Date(state) : wakeAt;
190
+ const actualWakeAt = typeof state === "string" ? temporal_polyfill_1.Temporal.Instant.from(state) : wakeAt;
188
191
  if (!state) {
189
- await this.persistCheckpoint(checkpointName, wakeAt.toISOString());
192
+ await this.persistCheckpoint(checkpointName, wakeAt.toString());
190
193
  }
191
- if (Date.now() < actualWakeAt.getTime()) {
194
+ if (temporal_polyfill_1.Temporal.Instant.compare(temporal_polyfill_1.Temporal.Now.instant(), actualWakeAt) < 0) {
192
195
  await this.scheduleRun(actualWakeAt);
193
196
  throw new SuspendTask();
194
197
  }
@@ -232,19 +235,17 @@ class TaskContext {
232
235
  ]);
233
236
  }
234
237
  /**
235
- * Waits for an event by name and returns its payload; optionally sets a custom step name and timeout (seconds).
238
+ * Waits for an event by name and returns its payload; optionally sets a custom step name and timeout.
236
239
  * @param eventName Event identifier to wait for.
237
240
  * @param options.stepName Optional checkpoint name (defaults to $awaitEvent:<eventName>).
238
- * @param options.timeout Optional timeout in seconds.
241
+ * @param options.timeout Optional timeout duration.
239
242
  * @throws TimeoutError If the event is not received before the timeout.
240
243
  */
241
244
  async awaitEvent(eventName, options) {
242
245
  const stepName = options?.stepName || `$awaitEvent:${eventName}`;
243
246
  let timeout = null;
244
- if (options?.timeout !== undefined &&
245
- Number.isFinite(options?.timeout) &&
246
- options?.timeout >= 0) {
247
- timeout = Math.floor(options?.timeout);
247
+ if (options?.timeout !== undefined) {
248
+ timeout = Math.floor(options.timeout.total("seconds"));
248
249
  }
249
250
  const checkpointName = this.getCheckpointName(stepName);
250
251
  const cached = await this.lookupCheckpoint(checkpointName);
@@ -741,10 +742,10 @@ function normalizeCancellation(policy) {
741
742
  }
742
743
  const normalized = {};
743
744
  if (policy.maxDuration !== undefined) {
744
- normalized.max_duration = policy.maxDuration;
745
+ normalized.max_duration = Math.floor(policy.maxDuration.total("seconds"));
745
746
  }
746
747
  if (policy.maxDelay !== undefined) {
747
- normalized.max_delay = policy.maxDelay;
748
+ normalized.max_delay = Math.floor(policy.maxDelay.total("seconds"));
748
749
  }
749
750
  return Object.keys(normalized).length > 0 ? normalized : undefined;
750
751
  }
package/dist/cjs/index.js CHANGED
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Absurd = exports.SQLiteConnection = exports.resolveExtensionPath = exports.downloadExtension = exports.TaskContext = exports.TimeoutError = exports.SuspendTask = exports.CancelledTask = void 0;
3
+ exports.Absurd = exports.SQLiteConnection = exports.resolveExtensionPath = exports.downloadExtension = exports.TaskContext = exports.TimeoutError = exports.SuspendTask = exports.CancelledTask = exports.Temporal = void 0;
4
4
  const absurd_1 = require("./absurd");
5
+ // Re-export Temporal from temporal-polyfill
6
+ var temporal_polyfill_1 = require("temporal-polyfill");
7
+ Object.defineProperty(exports, "Temporal", { enumerable: true, get: function () { return temporal_polyfill_1.Temporal; } });
5
8
  var absurd_2 = require("./absurd");
6
9
  Object.defineProperty(exports, "CancelledTask", { enumerable: true, get: function () { return absurd_2.CancelledTask; } });
7
10
  Object.defineProperty(exports, "SuspendTask", { enumerable: true, get: function () { return absurd_2.SuspendTask; } });
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SQLiteConnection = void 0;
4
+ const temporal_polyfill_1 = require("temporal-polyfill");
4
5
  /**
5
6
  * SQLite adapter that rewrites Absurd's SQL to SQLite syntax and handles retries.
6
7
  */
@@ -151,15 +152,32 @@ function decodeColumnValue(args) {
151
152
  }
152
153
  }
153
154
  if (columnTypeName === "datetime") {
154
- if (typeof value !== "number") {
155
- throw new Error(`Expected datetime column ${columnName} to be a number, got ${typeof value}`);
155
+ // SQLite stores datetimes as strings but may return them in different formats
156
+ // depending on how they were inserted. Support both ISO strings (from
157
+ // Temporal.Instant.toString() or Date.toISOString()) and epoch milliseconds
158
+ // (from numeric timestamps).
159
+ if (typeof value === "string") {
160
+ // Handle ISO string format (e.g., "2024-01-01T00:00:00Z")
161
+ return temporal_polyfill_1.Temporal.Instant.from(value);
162
+ }
163
+ if (typeof value === "number") {
164
+ // Handle epoch milliseconds format
165
+ return temporal_polyfill_1.Temporal.Instant.fromEpochMilliseconds(value);
156
166
  }
157
- return new Date(value);
167
+ throw new Error(`Expected datetime column ${columnName} to be a string or number, got ${typeof value}`);
158
168
  }
159
169
  // For other types, return as is
160
170
  return value;
161
171
  }
162
172
  function encodeColumnValue(value) {
173
+ // Encode Temporal types to ISO string format for SQLite storage
174
+ if (value instanceof temporal_polyfill_1.Temporal.Instant) {
175
+ return value.toString();
176
+ }
177
+ if (value instanceof temporal_polyfill_1.Temporal.Duration) {
178
+ return value.toString();
179
+ }
180
+ // Legacy support for Date objects
163
181
  if (value instanceof Date) {
164
182
  return value.toISOString();
165
183
  }
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { AbsurdImpl, type AbsurdOptions as AbsurdImplOptions, type ClaimedTask, type JsonValue, type SpawnOptions, type SpawnResult, type TaskHandler, type TaskRegistrationOptions, type WorkerOptions } from "./absurd";
2
2
  import { SQLiteConnection } from "./sqlite-connection";
3
+ export { Temporal } from "temporal-polyfill";
3
4
  export type { Queryable } from "./absurd";
4
5
  export { CancelledTask, SuspendTask, TimeoutError, TaskContext, type AbsurdHooks, type CancellationPolicy, type ClaimedTask, type JsonObject, type JsonValue, type RetryStrategy, type SpawnOptions, type SpawnResult, type TaskHandler, type TaskRegistrationOptions, type WorkerOptions, } from "./absurd";
5
6
  export { downloadExtension, resolveExtensionPath, type DownloadExtensionOptions, } from "./extension-downloader";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,4 +1,6 @@
1
1
  import { AbsurdImpl, } from "./absurd";
2
+ // Re-export Temporal from temporal-polyfill
3
+ export { Temporal } from "temporal-polyfill";
2
4
  export { CancelledTask, SuspendTask, TimeoutError, TaskContext, } from "./absurd";
3
5
  export { downloadExtension, resolveExtensionPath, } from "./extension-downloader";
4
6
  export { SQLiteConnection } from "./sqlite-connection";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,GASX,MAAM,UAAU,CAAC;AAIlB,OAAO,EACL,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW,GAYZ,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GAErB,MAAM,wBAAwB,CAAC;AAUhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AA4HvD,MAAM,OAAO,MAAO,SAAQ,UAAU;IACpC,YAAY,UAA4B,EAAE,OAAuB;QAC/D,KAAK,CAAC;YACJ,EAAE,EAAE,UAAU;YACd,SAAS,EAAE,OAAO,EAAE,SAAS;YAC7B,kBAAkB,EAAE,OAAO,EAAE,kBAAkB;YAC/C,GAAG,EAAE,OAAO,EAAE,GAAG;YACjB,KAAK,EAAE,OAAO,EAAE,KAAK;YACrB,eAAe,EAAE,KAAK;SACvB,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,GASX,MAAM,UAAU,CAAC;AAGlB,4CAA4C;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EACL,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW,GAYZ,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GAErB,MAAM,wBAAwB,CAAC;AAUhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AA4HvD,MAAM,OAAO,MAAO,SAAQ,UAAU;IACpC,YAAY,UAA4B,EAAE,OAAuB;QAC/D,KAAK,CAAC;YACJ,EAAE,EAAE,UAAU;YACd,SAAS,EAAE,OAAO,EAAE,SAAS;YAC7B,kBAAkB,EAAE,OAAO,EAAE,kBAAkB;YAC/C,GAAG,EAAE,OAAO,EAAE,GAAG;YACjB,KAAK,EAAE,OAAO,EAAE,KAAK;YACrB,eAAe,EAAE,KAAK;SACvB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-connection.d.ts","sourceRoot":"","sources":["../src/sqlite-connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EACV,sBAAsB,EACtB,cAAc,EAEd,gBAAgB,EAChB,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAExB;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,eAAe,CAAC;IAC1D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QACpB,KAAK,EAAE,OAAO,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,OAAO,CAAC,EAAE,gBAAgB,CAAC;KAC5B,KAAK,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QACjB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7B,OAAO,EAAE,sBAAsB,EAAE,CAAC;QAClC,YAAY,EAAE,WAAW,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,EAAE,gBAAgB,CAAC;KAC5B,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAK;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CACgB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAmB;gBAEhC,EAAE,EAAE,cAAc,EAAE,OAAO,GAAE,uBAA4B;IAU/D,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAChD,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3C,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,EAAE,CAAA;KAAE,CAAC;IAqBnB,IAAI,CACR,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC;IAQhB,KAAK,IAAI,IAAI;YAIC,YAAY;CAc3B"}
1
+ {"version":3,"file":"sqlite-connection.d.ts","sourceRoot":"","sources":["../src/sqlite-connection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EACV,sBAAsB,EACtB,cAAc,EAEd,gBAAgB,EAChB,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAExB;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,eAAe,CAAC;IAC1D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QACpB,KAAK,EAAE,OAAO,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,OAAO,CAAC,EAAE,gBAAgB,CAAC;KAC5B,KAAK,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QACjB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7B,OAAO,EAAE,sBAAsB,EAAE,CAAC;QAClC,YAAY,EAAE,WAAW,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,EAAE,gBAAgB,CAAC;KAC5B,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAK;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CACgB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAmB;gBAEhC,EAAE,EAAE,cAAc,EAAE,OAAO,GAAE,uBAA4B;IAU/D,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAChD,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3C,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,EAAE,CAAA;KAAE,CAAC;IAqBnB,IAAI,CACR,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC;IAQhB,KAAK,IAAI,IAAI;YAIC,YAAY;CAc3B"}
@@ -1,3 +1,4 @@
1
+ import { Temporal } from "temporal-polyfill";
1
2
  /**
2
3
  * SQLite adapter that rewrites Absurd's SQL to SQLite syntax and handles retries.
3
4
  */
@@ -147,15 +148,32 @@ function decodeColumnValue(args) {
147
148
  }
148
149
  }
149
150
  if (columnTypeName === "datetime") {
150
- if (typeof value !== "number") {
151
- throw new Error(`Expected datetime column ${columnName} to be a number, got ${typeof value}`);
151
+ // SQLite stores datetimes as strings but may return them in different formats
152
+ // depending on how they were inserted. Support both ISO strings (from
153
+ // Temporal.Instant.toString() or Date.toISOString()) and epoch milliseconds
154
+ // (from numeric timestamps).
155
+ if (typeof value === "string") {
156
+ // Handle ISO string format (e.g., "2024-01-01T00:00:00Z")
157
+ return Temporal.Instant.from(value);
158
+ }
159
+ if (typeof value === "number") {
160
+ // Handle epoch milliseconds format
161
+ return Temporal.Instant.fromEpochMilliseconds(value);
152
162
  }
153
- return new Date(value);
163
+ throw new Error(`Expected datetime column ${columnName} to be a string or number, got ${typeof value}`);
154
164
  }
155
165
  // For other types, return as is
156
166
  return value;
157
167
  }
158
168
  function encodeColumnValue(value) {
169
+ // Encode Temporal types to ISO string format for SQLite storage
170
+ if (value instanceof Temporal.Instant) {
171
+ return value.toString();
172
+ }
173
+ if (value instanceof Temporal.Duration) {
174
+ return value.toString();
175
+ }
176
+ // Legacy support for Date objects
159
177
  if (value instanceof Date) {
160
178
  return value.toISOString();
161
179
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-connection.js","sourceRoot":"","sources":["../src/sqlite-connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite-connection.js","sourceRoot":"","sources":["../src/sqlite-connection.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@absurd-sqlite/sdk",
3
- "version": "0.3.0-alpha.0",
3
+ "version": "0.3.0-alpha.1",
4
4
  "description": "TypeScript SDK for Absurd-SQLite - SQLite-based durable task execution",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -36,6 +36,9 @@
36
36
  "peerDependencies": {
37
37
  "better-sqlite3": "^12.5.0"
38
38
  },
39
+ "dependencies": {
40
+ "temporal-polyfill": "^0.3.0"
41
+ },
39
42
  "devDependencies": {
40
43
  "@types/better-sqlite3": "^7.6.13",
41
44
  "@types/node": "^22.18.0",
package/src/absurd.ts CHANGED
@@ -8,6 +8,7 @@
8
8
  * Modifications Copyright (c) absurd-sqlite contributors.
9
9
  */
10
10
  import * as os from "node:os";
11
+ import { Temporal } from "temporal-polyfill";
11
12
 
12
13
  /**
13
14
  * Minimal query interface compatible with Absurd's database operations.
@@ -39,8 +40,8 @@ export interface RetryStrategy {
39
40
  }
40
41
 
41
42
  export interface CancellationPolicy {
42
- maxDuration?: number;
43
- maxDelay?: number;
43
+ maxDuration?: Temporal.Duration;
44
+ maxDelay?: Temporal.Duration;
44
45
  }
45
46
 
46
47
  export interface SpawnOptions {
@@ -315,12 +316,14 @@ export class TaskContext {
315
316
  }
316
317
 
317
318
  /**
318
- * Suspends the task until the given duration (seconds) elapses.
319
+ * Suspends the task until the given duration elapses.
319
320
  * @param stepName Checkpoint name for this wait.
320
- * @param duration Duration to wait in seconds.
321
+ * @param duration Duration to wait.
321
322
  */
322
- async sleepFor(stepName: string, duration: number): Promise<void> {
323
- return await this.sleepUntil(stepName, new Date(Date.now() + duration * 1000));
323
+ async sleepFor(stepName: string, duration: Temporal.Duration): Promise<void> {
324
+ const now = Temporal.Now.instant();
325
+ const wakeAt = now.add(duration);
326
+ return await this.sleepUntil(stepName, wakeAt);
324
327
  }
325
328
 
326
329
  /**
@@ -328,14 +331,14 @@ export class TaskContext {
328
331
  * @param stepName Checkpoint name for this wait.
329
332
  * @param wakeAt Absolute time when the task should resume.
330
333
  */
331
- async sleepUntil(stepName: string, wakeAt: Date): Promise<void> {
334
+ async sleepUntil(stepName: string, wakeAt: Temporal.Instant): Promise<void> {
332
335
  const checkpointName = this.getCheckpointName(stepName);
333
336
  const state = await this.lookupCheckpoint(checkpointName);
334
- const actualWakeAt = typeof state === "string" ? new Date(state) : wakeAt;
337
+ const actualWakeAt = typeof state === "string" ? Temporal.Instant.from(state) : wakeAt;
335
338
  if (!state) {
336
- await this.persistCheckpoint(checkpointName, wakeAt.toISOString());
339
+ await this.persistCheckpoint(checkpointName, wakeAt.toString());
337
340
  }
338
- if (Date.now() < actualWakeAt.getTime()) {
341
+ if (Temporal.Instant.compare(Temporal.Now.instant(), actualWakeAt) < 0) {
339
342
  await this.scheduleRun(actualWakeAt);
340
343
  throw new SuspendTask();
341
344
  }
@@ -389,7 +392,7 @@ export class TaskContext {
389
392
  this.recordLeaseExtension(this.claimTimeout);
390
393
  }
391
394
 
392
- private async scheduleRun(wakeAt: Date): Promise<void> {
395
+ private async scheduleRun(wakeAt: Temporal.Instant): Promise<void> {
393
396
  await this.con.query(`SELECT absurd.schedule_run($1, $2, $3)`, [
394
397
  this.queueName,
395
398
  this.task.run_id,
@@ -398,24 +401,20 @@ export class TaskContext {
398
401
  }
399
402
 
400
403
  /**
401
- * Waits for an event by name and returns its payload; optionally sets a custom step name and timeout (seconds).
404
+ * Waits for an event by name and returns its payload; optionally sets a custom step name and timeout.
402
405
  * @param eventName Event identifier to wait for.
403
406
  * @param options.stepName Optional checkpoint name (defaults to $awaitEvent:<eventName>).
404
- * @param options.timeout Optional timeout in seconds.
407
+ * @param options.timeout Optional timeout duration.
405
408
  * @throws TimeoutError If the event is not received before the timeout.
406
409
  */
407
410
  async awaitEvent(
408
411
  eventName: string,
409
- options?: { stepName?: string; timeout?: number }
412
+ options?: { stepName?: string; timeout?: Temporal.Duration }
410
413
  ): Promise<JsonValue> {
411
414
  const stepName = options?.stepName || `$awaitEvent:${eventName}`;
412
415
  let timeout: number | null = null;
413
- if (
414
- options?.timeout !== undefined &&
415
- Number.isFinite(options?.timeout) &&
416
- options?.timeout >= 0
417
- ) {
418
- timeout = Math.floor(options?.timeout);
416
+ if (options?.timeout !== undefined) {
417
+ timeout = Math.floor(options.timeout.total("seconds"));
419
418
  }
420
419
  const checkpointName = this.getCheckpointName(stepName);
421
420
  const cached = await this.lookupCheckpoint(checkpointName);
@@ -1022,10 +1021,10 @@ function normalizeCancellation(
1022
1021
  }
1023
1022
  const normalized: JsonObject = {};
1024
1023
  if (policy.maxDuration !== undefined) {
1025
- normalized.max_duration = policy.maxDuration;
1024
+ normalized.max_duration = Math.floor(policy.maxDuration.total("seconds"));
1026
1025
  }
1027
1026
  if (policy.maxDelay !== undefined) {
1028
- normalized.max_delay = policy.maxDelay;
1027
+ normalized.max_delay = Math.floor(policy.maxDelay.total("seconds"));
1029
1028
  }
1030
1029
  return Object.keys(normalized).length > 0 ? normalized : undefined;
1031
1030
  }
package/src/index.ts CHANGED
@@ -11,6 +11,9 @@ import {
11
11
  } from "./absurd";
12
12
  import { SQLiteConnection } from "./sqlite-connection";
13
13
 
14
+ // Re-export Temporal from temporal-polyfill
15
+ export { Temporal } from "temporal-polyfill";
16
+
14
17
  export type { Queryable } from "./absurd";
15
18
  export {
16
19
  CancelledTask,
@@ -1,3 +1,4 @@
1
+ import { Temporal } from "temporal-polyfill";
1
2
  import type { Queryable } from "./absurd";
2
3
  import type {
3
4
  SQLiteColumnDefinition,
@@ -228,12 +229,21 @@ function decodeColumnValue<V = any>(args: {
228
229
  }
229
230
 
230
231
  if (columnTypeName === "datetime") {
231
- if (typeof value !== "number") {
232
- throw new Error(
233
- `Expected datetime column ${columnName} to be a number, got ${typeof value}`
234
- );
232
+ // SQLite stores datetimes as strings but may return them in different formats
233
+ // depending on how they were inserted. Support both ISO strings (from
234
+ // Temporal.Instant.toString() or Date.toISOString()) and epoch milliseconds
235
+ // (from numeric timestamps).
236
+ if (typeof value === "string") {
237
+ // Handle ISO string format (e.g., "2024-01-01T00:00:00Z")
238
+ return Temporal.Instant.from(value) as V;
235
239
  }
236
- return new Date(value) as V;
240
+ if (typeof value === "number") {
241
+ // Handle epoch milliseconds format
242
+ return Temporal.Instant.fromEpochMilliseconds(value) as V;
243
+ }
244
+ throw new Error(
245
+ `Expected datetime column ${columnName} to be a string or number, got ${typeof value}`
246
+ );
237
247
  }
238
248
 
239
249
  // For other types, return as is
@@ -241,6 +251,14 @@ function decodeColumnValue<V = any>(args: {
241
251
  }
242
252
 
243
253
  function encodeColumnValue(value: any): any {
254
+ // Encode Temporal types to ISO string format for SQLite storage
255
+ if (value instanceof Temporal.Instant) {
256
+ return value.toString();
257
+ }
258
+ if (value instanceof Temporal.Duration) {
259
+ return value.toString();
260
+ }
261
+ // Legacy support for Date objects
244
262
  if (value instanceof Date) {
245
263
  return value.toISOString();
246
264
  }
@@ -8,7 +8,7 @@ import {
8
8
  vi,
9
9
  } from "vitest";
10
10
  import { createTestAbsurd, randomName, type TestContext } from "./setup.js";
11
- import type { Absurd } from "../src/index.js";
11
+ import { Temporal, type Absurd } from "../src/index.js";
12
12
  import { EventEmitter, once } from "events";
13
13
 
14
14
  describe("Basic SDK Operations", () => {
@@ -170,7 +170,7 @@ describe("Basic SDK Operations", () => {
170
170
  const scheduledRun = await ctx.getRun(runID);
171
171
  expect(scheduledRun).toMatchObject({
172
172
  state: "sleeping",
173
- available_at: wakeAt,
173
+ available_at: Temporal.Instant.fromEpochMilliseconds(wakeAt.getTime()),
174
174
  wake_event: null,
175
175
  });
176
176
 
@@ -188,7 +188,7 @@ describe("Basic SDK Operations", () => {
188
188
  const resumedRun = await ctx.getRun(runID);
189
189
  expect(resumedRun).toMatchObject({
190
190
  state: "running",
191
- started_at: wakeAt,
191
+ started_at: Temporal.Instant.fromEpochMilliseconds(wakeAt.getTime()),
192
192
  });
193
193
  });
194
194
 
@@ -215,7 +215,7 @@ describe("Basic SDK Operations", () => {
215
215
  expect(running).toMatchObject({
216
216
  state: "running",
217
217
  claimed_by: "worker-a",
218
- claim_expires_at: new Date(baseTime.getTime() + 30 * 1000),
218
+ claim_expires_at: Temporal.Instant.fromEpochMilliseconds(baseTime.getTime() + 30 * 1000),
219
219
  });
220
220
 
221
221
  await ctx.setFakeNow(new Date(baseTime.getTime() + 5 * 60 * 1000));
@@ -274,7 +274,7 @@ describe("Basic SDK Operations", () => {
274
274
  const runRow = await ctx.getRun(runID);
275
275
  expect(runRow).toMatchObject({
276
276
  claimed_by: "worker-clean",
277
- claim_expires_at: new Date(base.getTime() + 60 * 1000),
277
+ claim_expires_at: Temporal.Instant.fromEpochMilliseconds(base.getTime() + 60 * 1000),
278
278
  });
279
279
 
280
280
  const beforeTTL = new Date(finishTime.getTime() + 30 * 60 * 1000);
@@ -481,7 +481,7 @@ describe("Basic SDK Operations", () => {
481
481
 
482
482
  const getExpiresAt = async (runID: string) => {
483
483
  const run = await ctx.getRun(runID);
484
- return run?.claim_expires_at ? run.claim_expires_at.getTime() : 0;
484
+ return run?.claim_expires_at ? run.claim_expires_at.epochMilliseconds : 0;
485
485
  };
486
486
 
487
487
  absurd.workBatch("test-worker", claimTimeout);
@@ -1,7 +1,7 @@
1
1
  import { describe, test, expect, beforeAll, afterEach } from "vitest";
2
2
  import { createTestAbsurd, randomName, type TestContext } from "./setup.js";
3
3
  import type { Absurd } from "../src/index.js";
4
- import { TimeoutError } from "../src/index.js";
4
+ import { TimeoutError, Temporal } from "../src/index.js";
5
5
 
6
6
  describe("Event system", () => {
7
7
  let ctx: TestContext;
@@ -21,7 +21,7 @@ describe("Event system", () => {
21
21
  const eventName = randomName("test_event");
22
22
 
23
23
  absurd.registerTask({ name: "waiter" }, async (params, ctx) => {
24
- const payload = await ctx.awaitEvent(eventName, { timeout: 60 });
24
+ const payload = await ctx.awaitEvent(eventName, { timeout: Temporal.Duration.from({ seconds: 60 }) });
25
25
  return { received: payload };
26
26
  });
27
27
 
@@ -86,7 +86,7 @@ describe("Event system", () => {
86
86
  absurd.registerTask({ name: "timeout-waiter" }, async (_params, ctx) => {
87
87
  try {
88
88
  const payload = await ctx.awaitEvent(eventName, {
89
- timeout: timeoutSeconds,
89
+ timeout: Temporal.Duration.from({ seconds: timeoutSeconds }),
90
90
  });
91
91
  return { timedOut: false, result: payload };
92
92
  } catch (err) {
@@ -109,7 +109,7 @@ describe("Event system", () => {
109
109
  wake_event: eventName,
110
110
  });
111
111
  const expectedWake = new Date(baseTime.getTime() + timeoutSeconds * 1000);
112
- expect(sleepingRun?.available_at?.getTime()).toBe(expectedWake.getTime());
112
+ expect(sleepingRun?.available_at?.epochMilliseconds).toBe(expectedWake.getTime());
113
113
 
114
114
  await ctx.setFakeNow(new Date(expectedWake.getTime() + 1000));
115
115
  await absurd.workBatch("worker1", 120, 1);
@@ -170,13 +170,13 @@ describe("Event system", () => {
170
170
 
171
171
  absurd.registerTask({ name: "timeout-no-loop" }, async (_params, ctx) => {
172
172
  try {
173
- await ctx.awaitEvent(eventName, { stepName: "wait", timeout: 10 });
173
+ await ctx.awaitEvent(eventName, { stepName: "wait", timeout: Temporal.Duration.from({ seconds: 10 }) });
174
174
  return { stage: "unexpected" };
175
175
  } catch (err) {
176
176
  if (err instanceof TimeoutError) {
177
177
  const payload = await ctx.awaitEvent(eventName, {
178
178
  stepName: "wait",
179
- timeout: 10,
179
+ timeout: Temporal.Duration.from({ seconds: 10 }),
180
180
  });
181
181
  return { stage: "resumed", payload };
182
182
  }
@@ -1,6 +1,6 @@
1
1
  import { describe, test, expect, beforeAll, afterEach } from "vitest";
2
2
  import { createTestAbsurd, randomName, type TestContext } from "./setup.js";
3
- import type { Absurd } from "../src/index.js";
3
+ import { Temporal, type Absurd } from "../src/index.js";
4
4
 
5
5
  describe("Retry and cancellation", () => {
6
6
  let ctx: TestContext;
@@ -159,7 +159,7 @@ describe("Retry and cancellation", () => {
159
159
  const { taskID } = await absurd.spawn("duration-cancel", undefined, {
160
160
  maxAttempts: 4,
161
161
  retryStrategy: { kind: "fixed", baseSeconds: 30 },
162
- cancellation: { maxDuration: 90 },
162
+ cancellation: { maxDuration: Temporal.Duration.from({ seconds: 90 }) },
163
163
  });
164
164
 
165
165
  await absurd.workBatch("worker1", 60, 1);
@@ -185,7 +185,7 @@ describe("Retry and cancellation", () => {
185
185
  });
186
186
 
187
187
  const { taskID } = await absurd.spawn("delay-cancel", undefined, {
188
- cancellation: { maxDelay: 60 },
188
+ cancellation: { maxDelay: Temporal.Duration.from({ seconds: 60 }) },
189
189
  });
190
190
 
191
191
  await ctx.setFakeNow(new Date(baseTime.getTime() + 61 * 1000));
@@ -312,8 +312,8 @@ describe("Retry and cancellation", () => {
312
312
 
313
313
  await absurd.cancelTask(taskID);
314
314
  const second = await ctx.getTask(taskID);
315
- expect(second?.cancelled_at?.getTime()).toBe(
316
- first?.cancelled_at?.getTime(),
315
+ expect(second?.cancelled_at?.epochMilliseconds).toBe(
316
+ first?.cancelled_at?.epochMilliseconds,
317
317
  );
318
318
  });
319
319
 
package/test/setup.ts CHANGED
@@ -6,6 +6,7 @@ import { join } from "node:path";
6
6
  import { fileURLToPath } from "node:url";
7
7
  import {
8
8
  Absurd,
9
+ Temporal,
9
10
  type AbsurdHooks,
10
11
  type JsonValue,
11
12
  type SQLiteDatabase,
@@ -22,8 +23,8 @@ export interface TaskRow {
22
23
  retry_strategy: JsonValue | null;
23
24
  max_attempts: number | null;
24
25
  cancellation: JsonValue | null;
25
- enqueue_at: Date;
26
- first_started_at: Date | null;
26
+ enqueue_at: Temporal.Instant;
27
+ first_started_at: Temporal.Instant | null;
27
28
  state:
28
29
  | "pending"
29
30
  | "running"
@@ -34,7 +35,7 @@ export interface TaskRow {
34
35
  attempts: number;
35
36
  last_attempt_run: string | null;
36
37
  completed_payload: JsonValue | null;
37
- cancelled_at: Date | null;
38
+ cancelled_at: Temporal.Instant | null;
38
39
  }
39
40
 
40
41
  export interface RunRow {
@@ -49,16 +50,16 @@ export interface RunRow {
49
50
  | "failed"
50
51
  | "cancelled";
51
52
  claimed_by: string | null;
52
- claim_expires_at: Date | null;
53
- available_at: Date;
53
+ claim_expires_at: Temporal.Instant | null;
54
+ available_at: Temporal.Instant;
54
55
  wake_event: string | null;
55
56
  event_payload: JsonValue | null;
56
- started_at: Date | null;
57
- completed_at: Date | null;
58
- failed_at: Date | null;
57
+ started_at: Temporal.Instant | null;
58
+ completed_at: Temporal.Instant | null;
59
+ failed_at: Temporal.Instant | null;
59
60
  result: JsonValue | null;
60
61
  failure_reason: JsonValue | null;
61
- created_at: Date;
62
+ created_at: Temporal.Instant;
62
63
  }
63
64
 
64
65
  interface SqliteFixture {
@@ -6,6 +6,7 @@ import { tmpdir } from "node:os";
6
6
 
7
7
  import { SQLiteConnection } from "../src/sqlite-connection";
8
8
  import type { SQLiteDatabase } from "../src/sqlite-types";
9
+ import { Temporal } from "../src/index";
9
10
 
10
11
  describe("SQLiteConnection", () => {
11
12
  it("rewrites postgres-style params and absurd schema names", async () => {
@@ -69,7 +70,7 @@ describe("SQLiteConnection", () => {
69
70
  db.close();
70
71
  });
71
72
 
72
- it("decodes datetime columns into Date objects", async () => {
73
+ it("decodes datetime columns into Temporal.Instant objects", async () => {
73
74
  const db = new sqlite(":memory:") as SQLiteDatabase;
74
75
  const conn = new SQLiteConnection(db);
75
76
  const now = Date.now();
@@ -77,12 +78,12 @@ describe("SQLiteConnection", () => {
77
78
  await conn.exec("CREATE TABLE t_date (created_at DATETIME)");
78
79
  await conn.exec("INSERT INTO t_date (created_at) VALUES ($1)", [now]);
79
80
 
80
- const { rows } = await conn.query<{ created_at: Date }>(
81
+ const { rows } = await conn.query<{ created_at: Temporal.Instant }>(
81
82
  "SELECT created_at FROM t_date"
82
83
  );
83
84
 
84
- expect(rows[0]?.created_at).toBeInstanceOf(Date);
85
- expect(rows[0]?.created_at.getTime()).toBe(now);
85
+ expect(rows[0]?.created_at).toBeInstanceOf(Temporal.Instant);
86
+ expect(rows[0]?.created_at.epochMilliseconds).toBe(now);
86
87
  db.close();
87
88
  });
88
89
 
package/test/step.test.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { describe, test, expect, beforeAll, afterEach, vi } from "vitest";
2
2
  import { createTestAbsurd, randomName, type TestContext } from "./setup.js";
3
- import type { Absurd } from "../src/index.js";
3
+ import { Temporal, type Absurd } from "../src/index.js";
4
4
 
5
5
  describe("Step functionality", () => {
6
6
  let ctx: TestContext;
@@ -193,7 +193,7 @@ describe("Step functionality", () => {
193
193
 
194
194
  const durationSeconds = 60;
195
195
  absurd.registerTask({ name: "sleep-for" }, async (_params, ctx) => {
196
- await ctx.sleepFor("wait-for", durationSeconds);
196
+ await ctx.sleepFor("wait-for", Temporal.Duration.from({ seconds: durationSeconds }));
197
197
  return { resumed: true };
198
198
  });
199
199
 
@@ -205,7 +205,7 @@ describe("Step functionality", () => {
205
205
  state: "sleeping",
206
206
  });
207
207
  const wakeTime = new Date(base.getTime() + durationSeconds * 1000);
208
- expect(sleepingRun?.available_at?.getTime()).toBe(wakeTime.getTime());
208
+ expect(sleepingRun?.available_at?.epochMilliseconds).toBe(wakeTime.getTime());
209
209
 
210
210
  const resumeTime = new Date(wakeTime.getTime() + 5 * 1000);
211
211
  vi.setSystemTime(resumeTime);
@@ -225,11 +225,12 @@ describe("Step functionality", () => {
225
225
  await ctx.setFakeNow(base);
226
226
 
227
227
  const wakeTime = new Date(base.getTime() + 5 * 60 * 1000);
228
+ const wakeInstant = Temporal.Instant.fromEpochMilliseconds(wakeTime.getTime());
228
229
  let executions = 0;
229
230
 
230
231
  absurd.registerTask({ name: "sleep-until" }, async (_params, ctx) => {
231
232
  executions++;
232
- await ctx.sleepUntil("sleep-step", wakeTime);
233
+ await ctx.sleepUntil("sleep-step", wakeInstant);
233
234
  return { executions };
234
235
  });
235
236
 
@@ -240,7 +241,7 @@ describe("Step functionality", () => {
240
241
  expect(checkpointRow).toMatchObject({
241
242
  checkpoint_name: "sleep-step",
242
243
  owner_run_id: runID,
243
- state: wakeTime.toISOString(),
244
+ state: wakeInstant.toString(),
244
245
  });
245
246
 
246
247
  const sleepingRun = await ctx.getRun(runID);