@fedify/postgres 2.3.0-dev.994 → 2.3.0-pr.809.36

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/kv.d.cts CHANGED
@@ -1,3 +1,4 @@
1
+ /// <reference lib="esnext.temporal" />
1
2
  import { KvKey, KvStore, KvStoreListEntry, KvStoreSetOptions } from "@fedify/fedify";
2
3
  import { Sql } from "postgres";
3
4
 
package/dist/kv.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ /// <reference lib="esnext.temporal" />
2
2
  import { Sql } from "postgres";
3
3
  import { KvKey, KvStore, KvStoreListEntry, KvStoreSetOptions } from "@fedify/fedify";
4
4
 
package/dist/kv.js CHANGED
@@ -1,4 +1,4 @@
1
- import "@js-temporal/polyfill";
1
+ import { Temporal } from "@js-temporal/polyfill";
2
2
  import { driverSerializesJson } from "./utils.js";
3
3
  import { getLogger } from "@logtape/logtape";
4
4
  //#region src/kv.ts
package/dist/mod.d.cts CHANGED
@@ -1,3 +1,4 @@
1
+ /// <reference lib="esnext.temporal" />
1
2
  import { PostgresKvStore, PostgresKvStoreOptions } from "./kv.cjs";
2
3
  import { PostgresMessageQueue, PostgresMessageQueueOptions } from "./mq.cjs";
3
4
  export { PostgresKvStore, PostgresKvStoreOptions, PostgresMessageQueue, PostgresMessageQueueOptions };
package/dist/mod.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ /// <reference lib="esnext.temporal" />
2
2
  import { PostgresKvStore, PostgresKvStoreOptions } from "./kv.js";
3
3
  import { PostgresMessageQueue, PostgresMessageQueueOptions } from "./mq.js";
4
4
  export { PostgresKvStore, PostgresKvStoreOptions, PostgresMessageQueue, PostgresMessageQueueOptions };
package/dist/mod.js CHANGED
@@ -1,4 +1,4 @@
1
- import "@js-temporal/polyfill";
1
+ import { Temporal } from "@js-temporal/polyfill";
2
2
  import { PostgresKvStore } from "./kv.js";
3
3
  import { PostgresMessageQueue } from "./mq.js";
4
4
  export { PostgresKvStore, PostgresMessageQueue };
package/dist/mq.cjs CHANGED
@@ -4,7 +4,7 @@ const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
4
4
  const require_utils = require("./utils.cjs");
5
5
  let _logtape_logtape = require("@logtape/logtape");
6
6
  let postgres = require("postgres");
7
- postgres = require_runtime.__toESM(postgres);
7
+ postgres = require_runtime.__toESM(postgres, 1);
8
8
  //#region src/mq.ts
9
9
  const logger = (0, _logtape_logtape.getLogger)([
10
10
  "fedify",
@@ -136,6 +136,24 @@ var PostgresMessageQueue = class {
136
136
  orderingKey
137
137
  });
138
138
  }
139
+ async getDepth() {
140
+ await this.initialize();
141
+ const result = await this.#sql`
142
+ SELECT
143
+ COUNT(*) AS queued,
144
+ COUNT(*) FILTER (
145
+ WHERE created + delay <= CURRENT_TIMESTAMP
146
+ ) AS ready
147
+ FROM ${this.#sql(this.#tableName)}
148
+ `;
149
+ const queued = Number(result[0].queued);
150
+ const ready = Number(result[0].ready);
151
+ return {
152
+ queued,
153
+ ready,
154
+ delayed: Math.max(0, queued - ready)
155
+ };
156
+ }
139
157
  async listen(handler, options = {}) {
140
158
  await this.initialize();
141
159
  const { signal } = options;
package/dist/mq.d.cts CHANGED
@@ -1,4 +1,5 @@
1
- import { MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions } from "@fedify/fedify";
1
+ /// <reference lib="esnext.temporal" />
2
+ import { MessageQueue, MessageQueueDepth, MessageQueueEnqueueOptions, MessageQueueListenOptions } from "@fedify/fedify";
2
3
  import { Sql } from "postgres";
3
4
 
4
5
  //#region src/mq.d.ts
@@ -64,6 +65,7 @@ declare class PostgresMessageQueue implements MessageQueue {
64
65
  constructor(sql: Sql<{}>, options?: PostgresMessageQueueOptions);
65
66
  enqueue(message: any, options?: MessageQueueEnqueueOptions): Promise<void>;
66
67
  enqueueMany(messages: readonly any[], options?: MessageQueueEnqueueOptions): Promise<void>;
68
+ getDepth(): Promise<MessageQueueDepth>;
67
69
  listen(handler: (message: any) => void | Promise<void>, options?: MessageQueueListenOptions): Promise<void>;
68
70
  /**
69
71
  * Initializes the message queue table if it does not already exist.
package/dist/mq.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ /// <reference lib="esnext.temporal" />
2
2
  import { Sql } from "postgres";
3
- import { MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions } from "@fedify/fedify";
3
+ import { MessageQueue, MessageQueueDepth, MessageQueueEnqueueOptions, MessageQueueListenOptions } from "@fedify/fedify";
4
4
 
5
5
  //#region src/mq.d.ts
6
6
  /**
@@ -65,6 +65,7 @@ declare class PostgresMessageQueue implements MessageQueue {
65
65
  constructor(sql: Sql<{}>, options?: PostgresMessageQueueOptions);
66
66
  enqueue(message: any, options?: MessageQueueEnqueueOptions): Promise<void>;
67
67
  enqueueMany(messages: readonly any[], options?: MessageQueueEnqueueOptions): Promise<void>;
68
+ getDepth(): Promise<MessageQueueDepth>;
68
69
  listen(handler: (message: any) => void | Promise<void>, options?: MessageQueueListenOptions): Promise<void>;
69
70
  /**
70
71
  * Initializes the message queue table if it does not already exist.
package/dist/mq.js CHANGED
@@ -133,6 +133,24 @@ var PostgresMessageQueue = class {
133
133
  orderingKey
134
134
  });
135
135
  }
136
+ async getDepth() {
137
+ await this.initialize();
138
+ const result = await this.#sql`
139
+ SELECT
140
+ COUNT(*) AS queued,
141
+ COUNT(*) FILTER (
142
+ WHERE created + delay <= CURRENT_TIMESTAMP
143
+ ) AS ready
144
+ FROM ${this.#sql(this.#tableName)}
145
+ `;
146
+ const queued = Number(result[0].queued);
147
+ const ready = Number(result[0].ready);
148
+ return {
149
+ queued,
150
+ ready,
151
+ delayed: Math.max(0, queued - ready)
152
+ };
153
+ }
136
154
  async listen(handler, options = {}) {
137
155
  await this.initialize();
138
156
  const { signal } = options;
package/dist/utils.js CHANGED
@@ -1,4 +1,4 @@
1
- import "@js-temporal/polyfill";
1
+ import { Temporal } from "@js-temporal/polyfill";
2
2
  //#region src/utils.ts
3
3
  async function driverSerializesJson(sql) {
4
4
  return (await sql`SELECT ${sql.json("{\"foo\":1}")}::jsonb AS test;`)[0].test === "{\"foo\":1}";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fedify/postgres",
3
- "version": "2.3.0-dev.994+9071ca0a",
3
+ "version": "2.3.0-pr.809.36+c592d116",
4
4
  "description": "PostgreSQL drivers for Fedify",
5
5
  "keywords": [
6
6
  "fedify",
@@ -70,18 +70,18 @@
70
70
  ],
71
71
  "dependencies": {
72
72
  "@js-temporal/polyfill": "^0.5.1",
73
- "@logtape/logtape": "^2.0.5"
73
+ "@logtape/logtape": "^2.1.0"
74
74
  },
75
75
  "peerDependencies": {
76
76
  "postgres": "^3.4.7",
77
- "@fedify/fedify": "^2.3.0-dev.994+9071ca0a"
77
+ "@fedify/fedify": "^2.3.0-pr.809.36+c592d116"
78
78
  },
79
79
  "devDependencies": {
80
80
  "@std/async": "npm:@jsr/std__async@^1.0.13",
81
- "tsdown": "^0.21.6",
82
- "typescript": "^5.9.2",
81
+ "tsdown": "^0.22.0",
82
+ "typescript": "^6.0.0",
83
83
  "@fedify/fixture": "^2.0.0",
84
- "@fedify/testing": "^2.3.0-dev.994+9071ca0a"
84
+ "@fedify/testing": "^2.3.0-pr.809.36+c592d116"
85
85
  },
86
86
  "scripts": {
87
87
  "build:self": "tsdown",