@pattern-stack/codegen 0.17.1 → 0.18.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/CHANGELOG.md +36 -0
- package/README.md +106 -2
- package/dist/{chunk-SFQRETXJ.js → chunk-2VGVSL2D.js} +6 -6
- package/dist/{chunk-VNBC3VXM.js → chunk-3A34R6CI.js} +7 -7
- package/dist/{chunk-FVNAU7VO.js → chunk-7MMS36AN.js} +6 -6
- package/dist/{chunk-FWRL7BZ5.js → chunk-C5E7H553.js} +25 -15
- package/dist/chunk-C5E7H553.js.map +1 -0
- package/dist/{chunk-IOQMMH6C.js → chunk-CFFTPWHM.js} +79 -4
- package/dist/chunk-CFFTPWHM.js.map +1 -0
- package/dist/{chunk-HOIRY5XP.js → chunk-EWYI5GGJ.js} +10 -10
- package/dist/{chunk-BHZP6LOV.js → chunk-IN3EWFB4.js} +4 -4
- package/dist/{chunk-CZQUOIDY.js → chunk-J7JMVS2B.js} +4 -4
- package/dist/{chunk-KSTZIULO.js → chunk-K2I6XIK5.js} +4 -4
- package/dist/{chunk-T6SCOJF4.js → chunk-NXHL5YII.js} +4 -4
- package/dist/{chunk-JA7GJDNI.js → chunk-PKDS6QIJ.js} +4 -4
- package/dist/{chunk-MYQIQ27N.js → chunk-Q6LRJ4VI.js} +51 -2
- package/dist/chunk-Q6LRJ4VI.js.map +1 -0
- package/dist/{chunk-EJBK7I4F.js → chunk-R4BPUUB5.js} +3 -3
- package/dist/{chunk-4PFF3ED4.js → chunk-RKNW56RU.js} +5 -5
- package/dist/{chunk-SGSWVNNB.js → chunk-TBGTMALE.js} +4 -4
- package/dist/{chunk-GM3RMJIJ.js → chunk-VHAR2BGH.js} +4 -4
- package/dist/{chunk-DUMI2J5M.js → chunk-VQOAATIG.js} +4 -4
- package/dist/{chunk-HPS554L4.js → chunk-X6BP6LI5.js} +6 -6
- package/dist/{chunk-PSDVGPQR.js → chunk-YZLBU6O2.js} +9 -9
- package/dist/runtime/shared/openapi/index.js +3 -3
- package/dist/runtime/subsystems/analytics/analytics.module.js +2 -2
- package/dist/runtime/subsystems/analytics/index.js +4 -4
- package/dist/runtime/subsystems/auth/auth.module.js +3 -3
- package/dist/runtime/subsystems/auth/index.js +10 -10
- package/dist/runtime/subsystems/bridge/bridge-delivery-handler.js +2 -2
- package/dist/runtime/subsystems/bridge/bridge-delivery.drizzle-backend.js +2 -2
- package/dist/runtime/subsystems/bridge/bridge-outbox-drain-hook.js +6 -6
- package/dist/runtime/subsystems/bridge/bridge.module.js +17 -17
- package/dist/runtime/subsystems/bridge/index.js +24 -24
- package/dist/runtime/subsystems/cache/cache.module.js +1 -1
- package/dist/runtime/subsystems/cache/index.js +3 -3
- package/dist/runtime/subsystems/events/event-bus.drizzle-backend.js +3 -3
- package/dist/runtime/subsystems/events/events.module.js +6 -6
- package/dist/runtime/subsystems/events/generated/bus.js +2 -2
- package/dist/runtime/subsystems/events/generated/index.js +2 -2
- package/dist/runtime/subsystems/events/index.js +10 -10
- package/dist/runtime/subsystems/index.js +64 -64
- package/dist/runtime/subsystems/integration/index.js +10 -10
- package/dist/runtime/subsystems/integration/integration.module.js +2 -2
- package/dist/runtime/subsystems/jobs/index.js +21 -21
- package/dist/runtime/subsystems/jobs/job-orchestrator.bullmq-backend.js +5 -5
- package/dist/runtime/subsystems/jobs/job-orchestrator.drizzle-backend.js +3 -3
- package/dist/runtime/subsystems/jobs/job-orchestrator.memory-backend.js +2 -2
- package/dist/runtime/subsystems/jobs/job-run-service.drizzle-backend.js +3 -3
- package/dist/runtime/subsystems/jobs/job-run-service.memory-backend.js +2 -2
- package/dist/runtime/subsystems/jobs/job-worker.d.ts +8 -0
- package/dist/runtime/subsystems/jobs/job-worker.js +3 -3
- package/dist/runtime/subsystems/jobs/job-worker.module.js +11 -11
- package/dist/runtime/subsystems/jobs/jobs-domain.module.js +9 -9
- package/dist/runtime/subsystems/jobs/pg-notify.d.ts +25 -1
- package/dist/runtime/subsystems/jobs/pg-notify.js +1 -1
- package/dist/src/cli/index.js +1408 -245
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/index.d.ts +18 -0
- package/dist/src/index.js +5 -5
- package/package.json +1 -1
- package/runtime/subsystems/jobs/job-worker.ts +29 -11
- package/runtime/subsystems/jobs/pg-notify.ts +63 -3
- package/src/config/locations.mjs +0 -6
- package/src/config/paths.mjs +0 -13
- package/templates/entity/new/prompt.js +12 -88
- package/dist/chunk-FWRL7BZ5.js.map +0 -1
- package/dist/chunk-IOQMMH6C.js.map +0 -1
- package/dist/chunk-MYQIQ27N.js.map +0 -1
- package/templates/entity/new/frontend/_inject-entities-entry.ejs.t +0 -7
- package/templates/entity/new/frontend/_inject-entities-import.ejs.t +0 -7
- package/templates/entity/new/frontend/collections/_ensure-anchor-collections.ejs.t +0 -10
- package/templates/entity/new/frontend/collections/_inject-index.ejs.t +0 -9
- package/templates/entity/new/frontend/collections/_inject-schema-import.ejs.t +0 -9
- package/templates/entity/new/frontend/collections/collection.ejs.t +0 -86
- package/templates/entity/new/frontend/collections/collections-base.ejs.t +0 -35
- package/templates/entity/new/frontend/entity/collection.ejs.t +0 -173
- package/templates/entity/new/frontend/entity/combined.ejs.t +0 -505
- package/templates/entity/new/frontend/entity/fields.ejs.t +0 -105
- package/templates/entity/new/frontend/entity/hooks.ejs.t +0 -74
- package/templates/entity/new/frontend/entity/index.ejs.t +0 -22
- package/templates/entity/new/frontend/entity/mutation-hooks.ejs.t +0 -85
- package/templates/entity/new/frontend/entity/mutations.ejs.t +0 -39
- package/templates/entity/new/frontend/entity/types.ejs.t +0 -60
- package/templates/entity/new/frontend/generated/_inject-index-export.ejs.t +0 -7
- package/templates/entity/new/frontend/generated/_inject-index-import.ejs.t +0 -7
- package/templates/entity/new/frontend/generated/_inject-index-registry.ejs.t +0 -7
- package/templates/entity/new/frontend/store/_inject-collection-import.ejs.t +0 -9
- package/templates/entity/new/frontend/store/_inject-collections.ejs.t +0 -9
- package/templates/entity/new/frontend/store/_inject-entity.ejs.t +0 -9
- package/templates/entity/new/frontend/store/_inject-import.ejs.t +0 -9
- package/templates/entity/new/frontend/store/_inject-lookups.ejs.t +0 -9
- package/templates/entity/new/frontend/store/_inject-resolve.ejs.t +0 -10
- package/templates/entity/new/frontend/store/hooks.ejs.t +0 -73
- package/templates/entity/new/frontend/unified-entity.ejs.t +0 -29
- /package/dist/{chunk-SFQRETXJ.js.map → chunk-2VGVSL2D.js.map} +0 -0
- /package/dist/{chunk-VNBC3VXM.js.map → chunk-3A34R6CI.js.map} +0 -0
- /package/dist/{chunk-FVNAU7VO.js.map → chunk-7MMS36AN.js.map} +0 -0
- /package/dist/{chunk-HOIRY5XP.js.map → chunk-EWYI5GGJ.js.map} +0 -0
- /package/dist/{chunk-BHZP6LOV.js.map → chunk-IN3EWFB4.js.map} +0 -0
- /package/dist/{chunk-CZQUOIDY.js.map → chunk-J7JMVS2B.js.map} +0 -0
- /package/dist/{chunk-KSTZIULO.js.map → chunk-K2I6XIK5.js.map} +0 -0
- /package/dist/{chunk-T6SCOJF4.js.map → chunk-NXHL5YII.js.map} +0 -0
- /package/dist/{chunk-JA7GJDNI.js.map → chunk-PKDS6QIJ.js.map} +0 -0
- /package/dist/{chunk-EJBK7I4F.js.map → chunk-R4BPUUB5.js.map} +0 -0
- /package/dist/{chunk-4PFF3ED4.js.map → chunk-RKNW56RU.js.map} +0 -0
- /package/dist/{chunk-SGSWVNNB.js.map → chunk-TBGTMALE.js.map} +0 -0
- /package/dist/{chunk-GM3RMJIJ.js.map → chunk-VHAR2BGH.js.map} +0 -0
- /package/dist/{chunk-DUMI2J5M.js.map → chunk-VQOAATIG.js.map} +0 -0
- /package/dist/{chunk-HPS554L4.js.map → chunk-X6BP6LI5.js.map} +0 -0
- /package/dist/{chunk-PSDVGPQR.js.map → chunk-YZLBU6O2.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DrizzleJobOrchestrator
|
|
3
|
-
} from "../../../chunk-
|
|
3
|
+
} from "../../../chunk-7MMS36AN.js";
|
|
4
4
|
import "../../../chunk-T4BIIU5E.js";
|
|
5
5
|
import {
|
|
6
6
|
BULLMQ_CONNECTION,
|
|
@@ -8,15 +8,15 @@ import {
|
|
|
8
8
|
resolvePoolQueueName
|
|
9
9
|
} from "../../../chunk-I6MVCB5A.js";
|
|
10
10
|
import "../../../chunk-RHVN6NA7.js";
|
|
11
|
-
import {
|
|
12
|
-
JOBS_MULTI_TENANT
|
|
13
|
-
} from "../../../chunk-ZPL74UQN.js";
|
|
14
11
|
import "../../../chunk-7P5ODGLA.js";
|
|
15
12
|
import {
|
|
16
13
|
jobRuns,
|
|
17
14
|
jobs
|
|
18
15
|
} from "../../../chunk-OKXZ63IA.js";
|
|
19
|
-
import
|
|
16
|
+
import {
|
|
17
|
+
JOBS_MULTI_TENANT
|
|
18
|
+
} from "../../../chunk-ZPL74UQN.js";
|
|
19
|
+
import "../../../chunk-Q6LRJ4VI.js";
|
|
20
20
|
import "../../../chunk-GYGNEQSC.js";
|
|
21
21
|
import {
|
|
22
22
|
DRIZZLE
|
|
@@ -2,12 +2,12 @@ import {
|
|
|
2
2
|
DrizzleJobOrchestrator,
|
|
3
3
|
TERMINAL_STATUSES,
|
|
4
4
|
evaluateKeyTemplate
|
|
5
|
-
} from "../../../chunk-
|
|
5
|
+
} from "../../../chunk-7MMS36AN.js";
|
|
6
6
|
import "../../../chunk-T4BIIU5E.js";
|
|
7
|
-
import "../../../chunk-ZPL74UQN.js";
|
|
8
7
|
import "../../../chunk-7P5ODGLA.js";
|
|
9
8
|
import "../../../chunk-OKXZ63IA.js";
|
|
10
|
-
import "../../../chunk-
|
|
9
|
+
import "../../../chunk-ZPL74UQN.js";
|
|
10
|
+
import "../../../chunk-Q6LRJ4VI.js";
|
|
11
11
|
import "../../../chunk-GYGNEQSC.js";
|
|
12
12
|
import "../../../chunk-U64T4YZE.js";
|
|
13
13
|
import "../../../chunk-2E224ZSN.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MemoryJobOrchestrator
|
|
3
|
-
} from "../../../chunk-
|
|
3
|
+
} from "../../../chunk-VQOAATIG.js";
|
|
4
4
|
import "../../../chunk-PNZSGAB2.js";
|
|
5
5
|
import "../../../chunk-SNQ3TOWP.js";
|
|
6
6
|
import "../../../chunk-T4BIIU5E.js";
|
|
7
|
-
import "../../../chunk-ZPL74UQN.js";
|
|
8
7
|
import "../../../chunk-7P5ODGLA.js";
|
|
8
|
+
import "../../../chunk-ZPL74UQN.js";
|
|
9
9
|
import "../../../chunk-GYGNEQSC.js";
|
|
10
10
|
import "../../../chunk-2E224ZSN.js";
|
|
11
11
|
export {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DrizzleJobRunService
|
|
3
|
-
} from "../../../chunk-
|
|
4
|
-
import "../../../chunk-T4BIIU5E.js";
|
|
3
|
+
} from "../../../chunk-3A34R6CI.js";
|
|
5
4
|
import "../../../chunk-L3LZWWSX.js";
|
|
6
|
-
import "../../../chunk-
|
|
5
|
+
import "../../../chunk-T4BIIU5E.js";
|
|
7
6
|
import "../../../chunk-OKXZ63IA.js";
|
|
7
|
+
import "../../../chunk-ZPL74UQN.js";
|
|
8
8
|
import "../../../chunk-GYGNEQSC.js";
|
|
9
9
|
import "../../../chunk-U64T4YZE.js";
|
|
10
10
|
import "../../../chunk-2E224ZSN.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MemoryJobRunService
|
|
3
|
-
} from "../../../chunk-
|
|
3
|
+
} from "../../../chunk-IN3EWFB4.js";
|
|
4
4
|
import "../../../chunk-SNQ3TOWP.js";
|
|
5
|
-
import "../../../chunk-T4BIIU5E.js";
|
|
6
5
|
import "../../../chunk-L3LZWWSX.js";
|
|
6
|
+
import "../../../chunk-T4BIIU5E.js";
|
|
7
7
|
import "../../../chunk-ZPL74UQN.js";
|
|
8
8
|
import "../../../chunk-GYGNEQSC.js";
|
|
9
9
|
import "../../../chunk-2E224ZSN.js";
|
|
@@ -186,6 +186,14 @@ declare class JobWorker implements OnModuleInit, OnModuleDestroy {
|
|
|
186
186
|
private drainOnWake;
|
|
187
187
|
onModuleDestroy(): Promise<void>;
|
|
188
188
|
private drainInFlight;
|
|
189
|
+
/**
|
|
190
|
+
* LISTEN-NOTIFY-2 — stop + drop the wake listener. Idempotent: a second call
|
|
191
|
+
* (SIGTERM + Nest destroy) finds `notifyListener` already null and no-ops.
|
|
192
|
+
* `PgNotifyListener.stop()` is itself race-safe against an in-flight
|
|
193
|
+
* `connect()`, so even a destroy that arrives microseconds after `start()`
|
|
194
|
+
* releases the listener socket rather than leaking it.
|
|
195
|
+
*/
|
|
196
|
+
private stopNotifyListener;
|
|
189
197
|
pollAndProcess(): Promise<void>;
|
|
190
198
|
/**
|
|
191
199
|
* Claim the next runnable row from the pool. Transaction ensures the
|
|
@@ -6,11 +6,11 @@ import {
|
|
|
6
6
|
buildStaleSweepQuery,
|
|
7
7
|
classifyError,
|
|
8
8
|
computeBackoff
|
|
9
|
-
} from "../../../chunk-
|
|
10
|
-
import "../../../chunk-ZPL74UQN.js";
|
|
9
|
+
} from "../../../chunk-C5E7H553.js";
|
|
11
10
|
import "../../../chunk-7P5ODGLA.js";
|
|
12
11
|
import "../../../chunk-OKXZ63IA.js";
|
|
13
|
-
import "../../../chunk-
|
|
12
|
+
import "../../../chunk-ZPL74UQN.js";
|
|
13
|
+
import "../../../chunk-Q6LRJ4VI.js";
|
|
14
14
|
import "../../../chunk-GYGNEQSC.js";
|
|
15
15
|
import "../../../chunk-U64T4YZE.js";
|
|
16
16
|
import "../../../chunk-2E224ZSN.js";
|
|
@@ -2,24 +2,24 @@ import {
|
|
|
2
2
|
JOB_WORKER_MODULE_OPTIONS,
|
|
3
3
|
JobWorkerModule,
|
|
4
4
|
JobWorkerOrchestrator
|
|
5
|
-
} from "../../../chunk-
|
|
6
|
-
import "../../../chunk-
|
|
7
|
-
import "../../../chunk-
|
|
8
|
-
import "../../../chunk-
|
|
9
|
-
import "../../../chunk-FVNAU7VO.js";
|
|
10
|
-
import "../../../chunk-DUMI2J5M.js";
|
|
5
|
+
} from "../../../chunk-X6BP6LI5.js";
|
|
6
|
+
import "../../../chunk-C5E7H553.js";
|
|
7
|
+
import "../../../chunk-EWYI5GGJ.js";
|
|
8
|
+
import "../../../chunk-VQOAATIG.js";
|
|
11
9
|
import "../../../chunk-PNZSGAB2.js";
|
|
12
|
-
import "../../../chunk-
|
|
13
|
-
import "../../../chunk-
|
|
10
|
+
import "../../../chunk-3A34R6CI.js";
|
|
11
|
+
import "../../../chunk-IN3EWFB4.js";
|
|
14
12
|
import "../../../chunk-SNQ3TOWP.js";
|
|
15
|
-
import "../../../chunk-T4BIIU5E.js";
|
|
16
13
|
import "../../../chunk-L3LZWWSX.js";
|
|
14
|
+
import "../../../chunk-DV4RV2DC.js";
|
|
15
|
+
import "../../../chunk-7MMS36AN.js";
|
|
16
|
+
import "../../../chunk-T4BIIU5E.js";
|
|
17
17
|
import "../../../chunk-I6MVCB5A.js";
|
|
18
18
|
import "../../../chunk-RHVN6NA7.js";
|
|
19
|
-
import "../../../chunk-ZPL74UQN.js";
|
|
20
19
|
import "../../../chunk-7P5ODGLA.js";
|
|
21
20
|
import "../../../chunk-OKXZ63IA.js";
|
|
22
|
-
import "../../../chunk-
|
|
21
|
+
import "../../../chunk-ZPL74UQN.js";
|
|
22
|
+
import "../../../chunk-Q6LRJ4VI.js";
|
|
23
23
|
import "../../../chunk-GYGNEQSC.js";
|
|
24
24
|
import "../../../chunk-U64T4YZE.js";
|
|
25
25
|
import "../../../chunk-2E224ZSN.js";
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import {
|
|
2
2
|
JobsDomainModule
|
|
3
|
-
} from "../../../chunk-
|
|
4
|
-
import "../../../chunk-
|
|
5
|
-
import "../../../chunk-FVNAU7VO.js";
|
|
6
|
-
import "../../../chunk-DUMI2J5M.js";
|
|
3
|
+
} from "../../../chunk-EWYI5GGJ.js";
|
|
4
|
+
import "../../../chunk-VQOAATIG.js";
|
|
7
5
|
import "../../../chunk-PNZSGAB2.js";
|
|
8
|
-
import "../../../chunk-
|
|
9
|
-
import "../../../chunk-
|
|
6
|
+
import "../../../chunk-3A34R6CI.js";
|
|
7
|
+
import "../../../chunk-IN3EWFB4.js";
|
|
10
8
|
import "../../../chunk-SNQ3TOWP.js";
|
|
11
|
-
import "../../../chunk-T4BIIU5E.js";
|
|
12
9
|
import "../../../chunk-L3LZWWSX.js";
|
|
10
|
+
import "../../../chunk-DV4RV2DC.js";
|
|
11
|
+
import "../../../chunk-7MMS36AN.js";
|
|
12
|
+
import "../../../chunk-T4BIIU5E.js";
|
|
13
13
|
import "../../../chunk-I6MVCB5A.js";
|
|
14
14
|
import "../../../chunk-RHVN6NA7.js";
|
|
15
|
-
import "../../../chunk-ZPL74UQN.js";
|
|
16
15
|
import "../../../chunk-7P5ODGLA.js";
|
|
17
16
|
import "../../../chunk-OKXZ63IA.js";
|
|
18
|
-
import "../../../chunk-
|
|
17
|
+
import "../../../chunk-ZPL74UQN.js";
|
|
18
|
+
import "../../../chunk-Q6LRJ4VI.js";
|
|
19
19
|
import "../../../chunk-GYGNEQSC.js";
|
|
20
20
|
import "../../../chunk-U64T4YZE.js";
|
|
21
21
|
import "../../../chunk-2E224ZSN.js";
|
|
@@ -68,18 +68,42 @@ declare class PgNotifyListener {
|
|
|
68
68
|
private readonly backoffMaxMs;
|
|
69
69
|
/** WARN-once gate so a flapping listener doesn't spam the log. */
|
|
70
70
|
private warnedDown;
|
|
71
|
+
/**
|
|
72
|
+
* LISTEN-NOTIFY-2 — the in-flight `connect()` promise, set while a checkout is
|
|
73
|
+
* mid-`await`. `stop()` awaits it so a `stop()` that races a still-resolving
|
|
74
|
+
* `connect()` can't return before the connect either assigns `this.client`
|
|
75
|
+
* (then released by `releaseClient`) or self-releases the checked-out client.
|
|
76
|
+
* Without this, a `stop()` arriving during `pool.connect()`'s await saw
|
|
77
|
+
* `this.client === null` (nothing to release), then `connect()` resumed,
|
|
78
|
+
* assigned the client, and issued `LISTEN` — leaking an ESTABLISHED socket
|
|
79
|
+
* holding `LISTEN <channel>` forever past `app.close()`.
|
|
80
|
+
*/
|
|
81
|
+
private connecting;
|
|
71
82
|
constructor(opts: PgNotifyListenerOptions);
|
|
72
83
|
/** Begin listening. Idempotent-ish: a second call while connected is a no-op. */
|
|
73
84
|
start(): Promise<void>;
|
|
74
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* Stop listening + release the connection. Safe to call repeatedly and
|
|
87
|
+
* race-safe against an in-flight `connect()` (LISTEN-NOTIFY-2): it sets
|
|
88
|
+
* `stopped` first (so a resuming `connect()` self-releases its checkout),
|
|
89
|
+
* then awaits any in-flight connect, then releases whatever client landed.
|
|
90
|
+
*/
|
|
75
91
|
stop(): Promise<void>;
|
|
76
92
|
private connect;
|
|
93
|
+
private doConnect;
|
|
77
94
|
/** Connection dropped after being established → reconnect. */
|
|
78
95
|
private handleDrop;
|
|
79
96
|
/** Initial / reconnect `connect()` threw. */
|
|
80
97
|
private handleConnectFailure;
|
|
81
98
|
private scheduleReconnect;
|
|
82
99
|
private releaseClient;
|
|
100
|
+
/**
|
|
101
|
+
* Tear down a raw checked-out client (LISTEN-NOTIFY-2). Used both by the
|
|
102
|
+
* normal `releaseClient()` path and by the connect-vs-stop race bail-outs,
|
|
103
|
+
* where the client was checked out but never assigned to `this.client`.
|
|
104
|
+
* Destroys (`release(true)`) so a half-listening socket is never reused.
|
|
105
|
+
*/
|
|
106
|
+
private releaseRawClient;
|
|
83
107
|
}
|
|
84
108
|
|
|
85
109
|
export { EVENTS_WAKE_CHANNEL, JOBS_WAKE_CHANNEL, PgNotifyListener, type PgNotifyListenerOptions, pgNotify };
|