@shivaedev/work-fleet 0.1.1 → 0.2.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 +16 -0
- package/README.md +2 -2
- package/dist/admit.d.ts +54 -0
- package/dist/admit.d.ts.map +1 -1
- package/dist/engine/abandonStalled.d.ts +9807 -0
- package/dist/engine/abandonStalled.d.ts.map +1 -0
- package/dist/engine/abandonStalled.js +55 -0
- package/dist/engine/abandonStalled.js.map +1 -0
- package/dist/engine/applyResolution.d.ts +108 -0
- package/dist/engine/applyResolution.d.ts.map +1 -1
- package/dist/engine/applyResolution.js +3 -0
- package/dist/engine/applyResolution.js.map +1 -1
- package/dist/engine/approveBrief.d.ts +164 -2
- package/dist/engine/approveBrief.d.ts.map +1 -1
- package/dist/engine/approveBrief.js +7 -5
- package/dist/engine/approveBrief.js.map +1 -1
- package/dist/engine/authorizeResolution.d.ts +942 -24
- package/dist/engine/authorizeResolution.d.ts.map +1 -1
- package/dist/engine/boardBrief.d.ts +162 -0
- package/dist/engine/boardBrief.d.ts.map +1 -1
- package/dist/engine/capacityRetry.d.ts +2883 -75
- package/dist/engine/capacityRetry.d.ts.map +1 -1
- package/dist/engine/closeDecisions.d.ts +108 -0
- package/dist/engine/closeDecisions.d.ts.map +1 -1
- package/dist/engine/completeBoardWork.d.ts +108 -0
- package/dist/engine/completeBoardWork.d.ts.map +1 -1
- package/dist/engine/completeReport.d.ts +108 -0
- package/dist/engine/completeReport.d.ts.map +1 -1
- package/dist/engine/continueCommand.d.ts +54 -0
- package/dist/engine/continueCommand.d.ts.map +1 -1
- package/dist/engine/continueWorker.d.ts +108 -0
- package/dist/engine/continueWorker.d.ts.map +1 -1
- package/dist/engine/deliverPendingAnswers.d.ts +1104 -24
- package/dist/engine/deliverPendingAnswers.d.ts.map +1 -1
- package/dist/engine/dispatchCommand.d.ts +54 -0
- package/dist/engine/dispatchCommand.d.ts.map +1 -1
- package/dist/engine/ensureDecisionOwner.d.ts +108 -0
- package/dist/engine/ensureDecisionOwner.d.ts.map +1 -1
- package/dist/engine/ensurePublication.d.ts +108 -0
- package/dist/engine/ensurePublication.d.ts.map +1 -1
- package/dist/engine/inspectRenewal.d.ts +108 -0
- package/dist/engine/inspectRenewal.d.ts.map +1 -1
- package/dist/engine/launchInput.d.ts +54 -0
- package/dist/engine/launchInput.d.ts.map +1 -1
- package/dist/engine/launchReceipt.d.ts +54 -0
- package/dist/engine/launchReceipt.d.ts.map +1 -1
- package/dist/engine/makeAdopt.d.ts +108 -0
- package/dist/engine/makeAdopt.d.ts.map +1 -1
- package/dist/engine/makeAdvance.d.ts +54 -0
- package/dist/engine/makeAdvance.d.ts.map +1 -1
- package/dist/engine/makeDeliver.d.ts +108 -0
- package/dist/engine/makeDeliver.d.ts.map +1 -1
- package/dist/engine/makeHuman.d.ts +108 -0
- package/dist/engine/makeHuman.d.ts.map +1 -1
- package/dist/engine/makeLaunch.d.ts +108 -0
- package/dist/engine/makeLaunch.d.ts.map +1 -1
- package/dist/engine/makeObserve.d.ts +108 -0
- package/dist/engine/makeObserve.d.ts.map +1 -1
- package/dist/engine/makeReview.d.ts +108 -0
- package/dist/engine/makeReview.d.ts.map +1 -1
- package/dist/engine/makeState.d.ts +888 -24
- package/dist/engine/makeState.d.ts.map +1 -1
- package/dist/engine/makeValidate.d.ts +108 -0
- package/dist/engine/makeValidate.d.ts.map +1 -1
- package/dist/engine/mergeReadiness.d.ts +1212 -24
- package/dist/engine/mergeReadiness.d.ts.map +1 -1
- package/dist/engine/observeDeliveryFailure.d.ts +996 -24
- package/dist/engine/observeDeliveryFailure.d.ts.map +1 -1
- package/dist/engine/observeRenewal.d.ts +189 -0
- package/dist/engine/observeRenewal.d.ts.map +1 -1
- package/dist/engine/observedAttempt.d.ts.map +1 -1
- package/dist/engine/observedAttempt.js +3 -0
- package/dist/engine/observedAttempt.js.map +1 -1
- package/dist/engine/obtainReview.d.ts +54 -0
- package/dist/engine/obtainReview.d.ts.map +1 -1
- package/dist/engine/operationRecord.d.ts +726 -24
- package/dist/engine/operationRecord.d.ts.map +1 -1
- package/dist/engine/persistTerminalReceipts.d.ts +108 -0
- package/dist/engine/persistTerminalReceipts.d.ts.map +1 -1
- package/dist/engine/prepareCommand.d.ts +54 -0
- package/dist/engine/prepareCommand.d.ts.map +1 -1
- package/dist/engine/prepareCommand.js +19 -0
- package/dist/engine/prepareCommand.js.map +1 -1
- package/dist/engine/queueAnswerCommand.d.ts +54 -0
- package/dist/engine/queueAnswerCommand.d.ts.map +1 -1
- package/dist/engine/readOrContinueReview.d.ts +54 -0
- package/dist/engine/readOrContinueReview.d.ts.map +1 -1
- package/dist/engine/readRetry.d.ts +1995 -51
- package/dist/engine/readRetry.d.ts.map +1 -1
- package/dist/engine/reassignCommand.d.ts +54 -0
- package/dist/engine/reassignCommand.d.ts.map +1 -1
- package/dist/engine/reconcileAttempt.d.ts +81 -0
- package/dist/engine/reconcileAttempt.d.ts.map +1 -1
- package/dist/engine/reconcileCommand.d.ts +54 -0
- package/dist/engine/reconcileCommand.d.ts.map +1 -1
- package/dist/engine/recoverStall.d.ts +1023 -24
- package/dist/engine/recoverStall.d.ts.map +1 -1
- package/dist/engine/recoverStall.js +5 -1
- package/dist/engine/recoverStall.js.map +1 -1
- package/dist/engine/recoverUnobservable.d.ts +1023 -24
- package/dist/engine/recoverUnobservable.d.ts.map +1 -1
- package/dist/engine/refreshBrief.d.ts +1997 -53
- package/dist/engine/refreshBrief.d.ts.map +1 -1
- package/dist/engine/refreshReviewResult.d.ts +108 -0
- package/dist/engine/refreshReviewResult.d.ts.map +1 -1
- package/dist/engine/releaseClosedPreparation.d.ts +996 -24
- package/dist/engine/releaseClosedPreparation.d.ts.map +1 -1
- package/dist/engine/releaseExecution.d.ts +996 -24
- package/dist/engine/releaseExecution.d.ts.map +1 -1
- package/dist/engine/releaseFinishedWork.d.ts +54 -0
- package/dist/engine/releaseFinishedWork.d.ts.map +1 -1
- package/dist/engine/repository.d.ts +672 -24
- package/dist/engine/repository.d.ts.map +1 -1
- package/dist/engine/repository.js +1 -0
- package/dist/engine/repository.js.map +1 -1
- package/dist/engine/requestConflictRepair.d.ts +996 -24
- package/dist/engine/requestConflictRepair.d.ts.map +1 -1
- package/dist/engine/requestRework.d.ts +108 -0
- package/dist/engine/requestRework.d.ts.map +1 -1
- package/dist/engine/resolveCommand.d.ts +54 -0
- package/dist/engine/resolveCommand.d.ts.map +1 -1
- package/dist/engine/resolveExecution.d.ts +996 -24
- package/dist/engine/resolveExecution.d.ts.map +1 -1
- package/dist/engine/resolveExecution.js +3 -1
- package/dist/engine/resolveExecution.js.map +1 -1
- package/dist/engine/resumeAttempt.d.ts +1023 -24
- package/dist/engine/resumeAttempt.d.ts.map +1 -1
- package/dist/engine/retireUnacknowledged.d.ts +108 -0
- package/dist/engine/retireUnacknowledged.d.ts.map +1 -1
- package/dist/engine/retryTerminal.d.ts +942 -24
- package/dist/engine/retryTerminal.d.ts.map +1 -1
- package/dist/engine/scheduler.d.ts +108 -0
- package/dist/engine/scheduler.d.ts.map +1 -1
- package/dist/engine/sessionCleanup.d.ts +108 -0
- package/dist/engine/sessionCleanup.d.ts.map +1 -1
- package/dist/engine/sessionCleanup.js +3 -1
- package/dist/engine/sessionCleanup.js.map +1 -1
- package/dist/engine/sessionStatus.d.ts.map +1 -1
- package/dist/engine/sessionStatus.js +3 -0
- package/dist/engine/sessionStatus.js.map +1 -1
- package/dist/engine/settleMergedDelivery.d.ts +996 -24
- package/dist/engine/settleMergedDelivery.d.ts.map +1 -1
- package/dist/engine/steerBrief.d.ts +10340 -0
- package/dist/engine/steerBrief.d.ts.map +1 -0
- package/dist/engine/steerBrief.js +42 -0
- package/dist/engine/steerBrief.js.map +1 -0
- package/dist/engine/submissionFailure.d.ts +888 -24
- package/dist/engine/submissionFailure.d.ts.map +1 -1
- package/dist/engine/submitLaunch.d.ts +942 -24
- package/dist/engine/submitLaunch.d.ts.map +1 -1
- package/dist/engine/views.js +1 -0
- package/dist/engine/views.js.map +1 -1
- package/dist/engine/workerReport.d.ts +162 -0
- package/dist/engine/workerReport.d.ts.map +1 -1
- package/dist/fleet.d.ts +540 -0
- package/dist/fleet.d.ts.map +1 -1
- package/dist/host/admission.d.ts +108 -0
- package/dist/host/admission.d.ts.map +1 -1
- package/dist/host/admission.js +2 -1
- package/dist/host/admission.js.map +1 -1
- package/dist/host/answerWork.d.ts +54 -0
- package/dist/host/answerWork.d.ts.map +1 -1
- package/dist/host/commands.d.ts +108 -0
- package/dist/host/commands.d.ts.map +1 -1
- package/dist/host/daemon.d.ts +1465 -865
- package/dist/host/daemon.d.ts.map +1 -1
- package/dist/host/daemonClient.d.ts +691 -91
- package/dist/host/daemonClient.d.ts.map +1 -1
- package/dist/host/daemonContract.d.ts +984 -0
- package/dist/host/daemonContract.d.ts.map +1 -1
- package/dist/host/readWaitStates.d.ts.map +1 -1
- package/dist/host/readWaitStates.js +13 -4
- package/dist/host/readWaitStates.js.map +1 -1
- package/dist/host/reassignWork.d.ts +54 -0
- package/dist/host/reassignWork.d.ts.map +1 -1
- package/dist/host/recordPayloads.d.ts.map +1 -1
- package/dist/host/recordPayloads.js +8 -3
- package/dist/host/recordPayloads.js.map +1 -1
- package/dist/host/releaseWork.d.ts +108 -0
- package/dist/host/releaseWork.d.ts.map +1 -1
- package/dist/host/status.d.ts +30 -0
- package/dist/host/status.d.ts.map +1 -1
- package/dist/model.d.ts +144 -0
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +14 -1
- package/dist/model.js.map +1 -1
- package/dist/operations.d.ts +1224 -0
- package/dist/operations.d.ts.map +1 -1
- package/dist/packageInfo.d.ts +1 -1
- package/dist/packageInfo.js +1 -1
- package/dist/prompt/briefEdit.d.ts +2 -0
- package/dist/prompt/briefEdit.d.ts.map +1 -0
- package/dist/prompt/briefEdit.js +41 -0
- package/dist/prompt/briefEdit.js.map +1 -0
- package/dist/prompt/worker.d.ts.map +1 -1
- package/dist/prompt/worker.js +11 -2
- package/dist/prompt/worker.js.map +1 -1
- package/dist/qualifyDependencies.d.ts +54 -0
- package/dist/qualifyDependencies.d.ts.map +1 -1
- package/dist/scheduling/areas.d.ts +162 -0
- package/dist/scheduling/areas.d.ts.map +1 -1
- package/dist/storage/attemptV12.d.ts +108 -0
- package/dist/storage/attemptV12.d.ts.map +1 -0
- package/dist/storage/attemptV12.js +94 -0
- package/dist/storage/attemptV12.js.map +1 -0
- package/dist/storage/createCollections.d.ts +5 -0
- package/dist/storage/createCollections.d.ts.map +1 -0
- package/dist/storage/createCollections.js +21 -0
- package/dist/storage/createCollections.js.map +1 -0
- package/dist/storage/cycleV12.d.ts +287 -0
- package/dist/storage/cycleV12.d.ts.map +1 -0
- package/dist/storage/cycleV12.js +124 -0
- package/dist/storage/cycleV12.js.map +1 -0
- package/dist/storage/fleetMigrations.d.ts +0 -39
- package/dist/storage/fleetMigrations.d.ts.map +1 -1
- package/dist/storage/fleetMigrations.js +3 -9
- package/dist/storage/fleetMigrations.js.map +1 -1
- package/dist/storage/legacyColumns.d.ts +40 -0
- package/dist/storage/legacyColumns.d.ts.map +1 -0
- package/dist/storage/legacyColumns.js +12 -0
- package/dist/storage/legacyColumns.js.map +1 -0
- package/dist/storage/makeForeignReservations.d.ts +15 -0
- package/dist/storage/makeForeignReservations.d.ts.map +1 -0
- package/dist/storage/makeForeignReservations.js +34 -0
- package/dist/storage/makeForeignReservations.js.map +1 -0
- package/dist/storage/makePostgresFleetStore.d.ts +36 -16
- package/dist/storage/makePostgresFleetStore.d.ts.map +1 -1
- package/dist/storage/makePostgresFleetStore.js +24 -32
- package/dist/storage/makePostgresFleetStore.js.map +1 -1
- package/dist/storage/model.d.ts +53 -59
- package/dist/storage/model.d.ts.map +1 -1
- package/dist/storage/model.js +18 -60
- package/dist/storage/model.js.map +1 -1
- package/dist/storage/operationEntries.d.ts +6 -5
- package/dist/storage/operationEntries.d.ts.map +1 -1
- package/dist/storage/operationEntries.js +12 -15
- package/dist/storage/operationEntries.js.map +1 -1
- package/dist/storage/preparationV12.d.ts +44 -0
- package/dist/storage/preparationV12.d.ts.map +1 -0
- package/dist/storage/preparationV12.js +30 -0
- package/dist/storage/preparationV12.js.map +1 -0
- package/dist/storage/readRecords.d.ts +4 -0
- package/dist/storage/readRecords.d.ts.map +1 -0
- package/dist/storage/readRecords.js +10 -0
- package/dist/storage/readRecords.js.map +1 -0
- package/dist/storage/recordChildren.d.ts +11 -0
- package/dist/storage/recordChildren.d.ts.map +1 -0
- package/dist/storage/recordChildren.js +105 -0
- package/dist/storage/recordChildren.js.map +1 -0
- package/dist/storage/recordShape.d.ts +23 -0
- package/dist/storage/recordShape.d.ts.map +1 -0
- package/dist/storage/recordShape.js +112 -0
- package/dist/storage/recordShape.js.map +1 -0
- package/dist/storage/recordValue.d.ts +9 -6
- package/dist/storage/recordValue.d.ts.map +1 -1
- package/dist/storage/recordValue.js +42 -32
- package/dist/storage/recordValue.js.map +1 -1
- package/dist/storage/shapeV12.d.ts +794 -0
- package/dist/storage/shapeV12.d.ts.map +1 -0
- package/dist/storage/shapeV12.js +10 -0
- package/dist/storage/shapeV12.js.map +1 -0
- package/dist/storage/textRecordValue.d.ts +3 -0
- package/dist/storage/textRecordValue.d.ts.map +1 -0
- package/dist/storage/textRecordValue.js +13 -0
- package/dist/storage/textRecordValue.js.map +1 -0
- package/dist/storage/typedDecisionsV12.d.ts +103 -0
- package/dist/storage/typedDecisionsV12.d.ts.map +1 -0
- package/dist/storage/typedDecisionsV12.js +97 -0
- package/dist/storage/typedDecisionsV12.js.map +1 -0
- package/dist/storage/typedTables.d.ts +4 -0
- package/dist/storage/typedTables.d.ts.map +1 -0
- package/dist/storage/typedTables.js +39 -0
- package/dist/storage/typedTables.js.map +1 -0
- package/package.json +8 -8
- package/src/engine/abandonStalled.ts +63 -0
- package/src/engine/applyResolution.ts +3 -0
- package/src/engine/approveBrief.ts +34 -32
- package/src/engine/observedAttempt.ts +3 -0
- package/src/engine/prepareCommand.ts +21 -0
- package/src/engine/recoverStall.ts +6 -2
- package/src/engine/repository.ts +1 -0
- package/src/engine/resolveExecution.ts +3 -1
- package/src/engine/sessionCleanup.ts +3 -1
- package/src/engine/sessionStatus.ts +5 -0
- package/src/engine/steerBrief.ts +54 -0
- package/src/engine/views.ts +1 -0
- package/src/host/admission.ts +2 -1
- package/src/host/readWaitStates.ts +12 -11
- package/src/host/recordPayloads.ts +11 -3
- package/src/model.ts +20 -1
- package/src/packageInfo.ts +1 -1
- package/src/prompt/briefEdit.ts +44 -0
- package/src/prompt/worker.ts +11 -2
- package/src/storage/attemptV12.ts +95 -0
- package/src/storage/createCollections.ts +21 -0
- package/src/storage/cycleV12.ts +125 -0
- package/src/storage/fleetMigrations.ts +3 -10
- package/src/storage/legacyColumns.ts +12 -0
- package/src/storage/makeForeignReservations.ts +41 -0
- package/src/storage/makePostgresFleetStore.ts +30 -43
- package/src/storage/model.ts +19 -69
- package/src/storage/operationEntries.ts +12 -22
- package/src/storage/preparationV12.ts +31 -0
- package/src/storage/readRecords.ts +12 -0
- package/src/storage/recordChildren.ts +131 -0
- package/src/storage/recordShape.ts +137 -0
- package/src/storage/recordValue.ts +47 -34
- package/src/storage/shapeV12.ts +11 -0
- package/src/storage/textRecordValue.ts +16 -0
- package/src/storage/typedDecisionsV12.ts +100 -0
- package/src/storage/typedTables.ts +39 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export declare const legacyColumns: {
|
|
2
|
+
readonly admissionReady: "boolean";
|
|
3
|
+
readonly areas: "json";
|
|
4
|
+
readonly attempts: "json";
|
|
5
|
+
readonly attentionOwner: "string";
|
|
6
|
+
readonly blocker: "string";
|
|
7
|
+
readonly boardContext: "string";
|
|
8
|
+
readonly boardRevision: "string";
|
|
9
|
+
readonly boardSourcePath: "string";
|
|
10
|
+
readonly checks: "json";
|
|
11
|
+
readonly conflictRepairs: "json";
|
|
12
|
+
readonly cwd: "string";
|
|
13
|
+
readonly decision: "json";
|
|
14
|
+
readonly decisionAcknowledged: "boolean";
|
|
15
|
+
readonly decisionPublished: "boolean";
|
|
16
|
+
readonly deliverable: "string";
|
|
17
|
+
readonly history: "json";
|
|
18
|
+
readonly launch: "json";
|
|
19
|
+
readonly launchRetry: "json";
|
|
20
|
+
readonly mergeAreasReleased: "boolean";
|
|
21
|
+
readonly mergeReadyAt: "number";
|
|
22
|
+
readonly mergeReadyHead: "string";
|
|
23
|
+
readonly outcome: "json";
|
|
24
|
+
readonly preparation: "json";
|
|
25
|
+
readonly prompt: "string";
|
|
26
|
+
readonly report: "json";
|
|
27
|
+
readonly responses: "json";
|
|
28
|
+
readonly result: "json";
|
|
29
|
+
readonly resultObservations: "json";
|
|
30
|
+
readonly review: "json";
|
|
31
|
+
readonly stage: "string";
|
|
32
|
+
readonly supersededDecisions: "json";
|
|
33
|
+
readonly completedAt: "number";
|
|
34
|
+
readonly integrationRetry: "json";
|
|
35
|
+
readonly pendingAnswers: "json";
|
|
36
|
+
readonly releaseReason: "string";
|
|
37
|
+
readonly stageEnteredAt: "number";
|
|
38
|
+
readonly updatedAt: "number";
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=legacyColumns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacyColumns.d.ts","sourceRoot":"","sources":["../../src/storage/legacyColumns.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAEZ,QAAQ;+BACH,MAAM;6BACR,MAAM;4BACP,QAAQ;6BACP,QAAQ;wBACb,QAAQ;CACV,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { modelTableColumns } from "#storage/modelTables.ts";
|
|
2
|
+
// PostgreSQL text cannot distinguish scalar strings from serialized JSON.
|
|
3
|
+
export const legacyColumns = {
|
|
4
|
+
...modelTableColumns,
|
|
5
|
+
completedAt: "number",
|
|
6
|
+
integrationRetry: "json",
|
|
7
|
+
pendingAnswers: "json",
|
|
8
|
+
releaseReason: "string",
|
|
9
|
+
stageEnteredAt: "number",
|
|
10
|
+
updatedAt: "number",
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=legacyColumns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacyColumns.js","sourceRoot":"","sources":["../../src/storage/legacyColumns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,0EAA0E;AAC1E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B,GAAG,iBAAiB;IACpB,WAAW,EAAE,QAAQ;IACrB,gBAAgB,EAAE,MAAM;IACxB,cAAc,EAAE,MAAM;IACtB,aAAa,EAAE,QAAQ;IACvB,cAAc,EAAE,QAAQ;IACxB,SAAS,EAAE,QAAQ;CACV,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { SqlClient } from "effect/sql";
|
|
3
|
+
export declare const makeForeignReservations: (namespace: string) => Effect.Effect<{
|
|
4
|
+
foreignReservations: () => Effect.Effect<Pick<{
|
|
5
|
+
readonly backlog: boolean;
|
|
6
|
+
readonly executing: boolean;
|
|
7
|
+
readonly owner: string;
|
|
8
|
+
}, "backlog" | "executing" | "owner">[], import("effect/Schema").SchemaError | import("effect/sql/SqlError").SqlError, never>;
|
|
9
|
+
releaseForeign: (owner: string) => Effect.Effect<void, import("effect/Schema").SchemaError | import("effect/sql/SqlError").SqlError, never>;
|
|
10
|
+
reserveForeign: (owner: string, occupancy?: {
|
|
11
|
+
readonly executing: boolean;
|
|
12
|
+
readonly backlog: boolean;
|
|
13
|
+
}) => Effect.Effect<void, import("effect/Schema").SchemaError | import("effect/sql/SqlError").SqlError, never>;
|
|
14
|
+
}, never, SqlClient.SqlClient>;
|
|
15
|
+
//# sourceMappingURL=makeForeignReservations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeForeignReservations.d.ts","sourceRoot":"","sources":["../../src/storage/makeForeignReservations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAMvC,eAAO,MAAM,uBAAuB;;;;;;4BAWV,MAAM;4BAQN,MAAM,cAAa;QAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE;8BAcrG,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { SqlClient } from "effect/sql";
|
|
3
|
+
import { makeRepository } from "@shivaedev/effect-sql/repository.ts";
|
|
4
|
+
import { fleetRecords } from "#fleetRecords.ts";
|
|
5
|
+
import { makeFleetTransaction } from "#storage/makeFleetTransaction.ts";
|
|
6
|
+
import { ForeignReservationRow } from "#storage/model.ts";
|
|
7
|
+
export const makeForeignReservations = Effect.fn("FleetStore.makeForeignReservations")(function* (namespace) {
|
|
8
|
+
const sql = yield* SqlClient.SqlClient;
|
|
9
|
+
const commit = yield* makeFleetTransaction;
|
|
10
|
+
const reservations = yield* makeRepository(ForeignReservationRow, {
|
|
11
|
+
idColumn: "owner",
|
|
12
|
+
spanPrefix: "FleetForeign",
|
|
13
|
+
tableName: `${namespace}_foreign_reservations`,
|
|
14
|
+
});
|
|
15
|
+
const lock = sql `select pg_advisory_xact_lock(hashtextextended(${`work_fleet_admission:${namespace}`}, 0))`;
|
|
16
|
+
return {
|
|
17
|
+
foreignReservations: () => reservations.findMany({ orderBy: { direction: "asc", field: "owner" } }),
|
|
18
|
+
releaseForeign: (owner) => commit([fleetRecords.list], Effect.gen(function* () {
|
|
19
|
+
yield* lock;
|
|
20
|
+
yield* reservations.delete(owner);
|
|
21
|
+
})),
|
|
22
|
+
reserveForeign: (owner, occupancy = { backlog: true, executing: true }) => commit([fleetRecords.list], Effect.gen(function* () {
|
|
23
|
+
yield* lock;
|
|
24
|
+
const existing = yield* reservations.findMany({ where: { owner } });
|
|
25
|
+
if (existing.length === 0) {
|
|
26
|
+
yield* reservations.insertVoid({ owner, ...occupancy });
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
yield* reservations.updateVoid({ owner, ...occupancy });
|
|
30
|
+
}
|
|
31
|
+
})),
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=makeForeignReservations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeForeignReservations.js","sourceRoot":"","sources":["../../src/storage/makeForeignReservations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,EAAE,CAAC,oCAAoC,CAAC,CAAC,QAAQ,CAAC,EAAE,SAAiB;IAClH,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,oBAAoB,CAAC;IAC3C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,qBAAqB,EAAE;QACjE,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,cAAc;QAC1B,SAAS,EAAE,GAAG,SAAS,uBAAuB;KAC9C,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,GAAG,CAAA,iDAAiD,wBAAwB,SAAS,EAAE,OAAO,CAAC;IAC5G,OAAO;QACN,mBAAmB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;QACnG,cAAc,EAAE,CAAC,KAAa,EAAE,EAAE,CACjC,MAAM,CACL,CAAC,YAAY,CAAC,IAAI,CAAC,EACnB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACnB,KAAK,CAAC,CAAC,IAAI,CAAC;YACZ,KAAK,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CACF;QACF,cAAc,EAAE,CAAC,KAAa,EAAE,SAAS,GAA+D,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAC7I,MAAM,CACL,CAAC,YAAY,CAAC,IAAI,CAAC,EACnB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACnB,KAAK,CAAC,CAAC,IAAI,CAAC;YACZ,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACpE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACP,KAAK,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;YACzD,CAAC;QACF,CAAC,CAAC,CACF;KACF,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -10,37 +10,57 @@ export declare const makePostgresFleetStore: <TSchema extends Schema.Top & {
|
|
|
10
10
|
readonly DecodingServices: never;
|
|
11
11
|
readonly EncodingServices: never;
|
|
12
12
|
}>(schema: TSchema, options: FleetStoreOptions<TSchema["Type"]>) => Effect.Effect<{
|
|
13
|
-
compareAndSet: (workId: string, expectedVersion: number, record: TSchema["Type"], limits?: AdmissionLimits) => Effect.Effect<{
|
|
14
|
-
value: TSchema["Type"];
|
|
15
|
-
version: number;
|
|
16
|
-
}, Schema.SchemaError | import("effect/sql/SqlError").SqlError | import("#storage/errors.ts").StorageAdmission | import("#storage/errors.ts").StorageCapacity | StorageConflict | import("#storage/errors.ts").StorageQuota, TSchema["DecodingServices"] | TSchema["EncodingServices"]>;
|
|
17
13
|
foreignReservations: () => Effect.Effect<Pick<{
|
|
18
14
|
readonly backlog: boolean;
|
|
19
15
|
readonly executing: boolean;
|
|
20
16
|
readonly owner: string;
|
|
21
17
|
}, "backlog" | "executing" | "owner">[], Schema.SchemaError | import("effect/sql/SqlError").SqlError, never>;
|
|
18
|
+
releaseForeign: (owner: string) => Effect.Effect<void, Schema.SchemaError | import("effect/sql/SqlError").SqlError, never>;
|
|
19
|
+
reserveForeign: (owner: string, occupancy?: {
|
|
20
|
+
readonly executing: boolean;
|
|
21
|
+
readonly backlog: boolean;
|
|
22
|
+
}) => Effect.Effect<void, Schema.SchemaError | import("effect/sql/SqlError").SqlError, never>;
|
|
23
|
+
compareAndSet: (workId: string, expectedVersion: number, record: TSchema["Type"], limits?: AdmissionLimits) => Effect.Effect<{
|
|
24
|
+
value: TSchema["Type"];
|
|
25
|
+
version: number;
|
|
26
|
+
}, [Effect.Effect<{
|
|
27
|
+
readonly [x: string]: unknown;
|
|
28
|
+
}, Schema.SchemaError, never> | Effect.Effect<{
|
|
29
|
+
value: TSchema["Type"];
|
|
30
|
+
version: number;
|
|
31
|
+
}, Schema.SchemaError | import("effect/sql/SqlError").SqlError | import("#storage/errors.ts").StorageAdmission | import("#storage/errors.ts").StorageCapacity | StorageConflict | import("#storage/errors.ts").StorageQuota, Exclude<Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>, import("effect/reactivity/Reactivity").Reactivity> | Exclude<Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>, SqlClient.SqlClient> | Exclude<Exclude<TSchema["EncodingServices"], SqlClient.SqlClient>, import("effect/reactivity/Reactivity").Reactivity>> | Effect.Effect<TSchema["Encoded"], Schema.SchemaError, TSchema["EncodingServices"]>] extends [Effect.Effect<infer _A, infer E, infer _R>] ? E : never, [Effect.Effect<{
|
|
32
|
+
readonly [x: string]: unknown;
|
|
33
|
+
}, Schema.SchemaError, never> | Effect.Effect<{
|
|
34
|
+
value: TSchema["Type"];
|
|
35
|
+
version: number;
|
|
36
|
+
}, Schema.SchemaError | import("effect/sql/SqlError").SqlError | import("#storage/errors.ts").StorageAdmission | import("#storage/errors.ts").StorageCapacity | StorageConflict | import("#storage/errors.ts").StorageQuota, Exclude<Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>, import("effect/reactivity/Reactivity").Reactivity> | Exclude<Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>, SqlClient.SqlClient> | Exclude<Exclude<TSchema["EncodingServices"], SqlClient.SqlClient>, import("effect/reactivity/Reactivity").Reactivity>> | Effect.Effect<TSchema["Encoded"], Schema.SchemaError, TSchema["EncodingServices"]>] extends [Effect.Effect<infer _A_1, infer _E, infer R>] ? R : never>;
|
|
22
37
|
hasLaunchRetry: () => Effect.Effect<boolean, Schema.SchemaError | import("effect/sql/SqlError").SqlError, never>;
|
|
23
38
|
initialize: () => Effect.Effect<readonly (readonly [id: number, name: string])[], import("effect/sql/Migrator").MigrationError | import("effect/sql/SqlError").SqlError, never>;
|
|
24
39
|
insert: (record: TSchema["Type"], limits?: AdmissionLimits) => Effect.Effect<{
|
|
25
40
|
value: TSchema["Type"];
|
|
26
41
|
version: number;
|
|
27
|
-
},
|
|
42
|
+
}, [Effect.Effect<{
|
|
43
|
+
readonly [x: string]: unknown;
|
|
44
|
+
}, Schema.SchemaError, never> | Effect.Effect<{
|
|
45
|
+
value: TSchema["Type"];
|
|
46
|
+
version: number;
|
|
47
|
+
}, Schema.SchemaError | import("effect/sql/SqlError").SqlError | import("#storage/errors.ts").StorageAdmission | import("#storage/errors.ts").StorageCapacity | StorageConflict | import("#storage/errors.ts").StorageQuota, Exclude<Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>, import("effect/reactivity/Reactivity").Reactivity> | Exclude<Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>, SqlClient.SqlClient> | Exclude<Exclude<TSchema["EncodingServices"], SqlClient.SqlClient>, import("effect/reactivity/Reactivity").Reactivity>> | Effect.Effect<TSchema["Encoded"], Schema.SchemaError, TSchema["EncodingServices"]>] extends [Effect.Effect<infer _A, infer E, infer _R>] ? E : never, [Effect.Effect<{
|
|
48
|
+
readonly [x: string]: unknown;
|
|
49
|
+
}, Schema.SchemaError, never> | Effect.Effect<{
|
|
50
|
+
value: TSchema["Type"];
|
|
51
|
+
version: number;
|
|
52
|
+
}, Schema.SchemaError | import("effect/sql/SqlError").SqlError | import("#storage/errors.ts").StorageAdmission | import("#storage/errors.ts").StorageCapacity | StorageConflict | import("#storage/errors.ts").StorageQuota, Exclude<Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>, import("effect/reactivity/Reactivity").Reactivity> | Exclude<Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>, SqlClient.SqlClient> | Exclude<Exclude<TSchema["EncodingServices"], SqlClient.SqlClient>, import("effect/reactivity/Reactivity").Reactivity>> | Effect.Effect<TSchema["Encoded"], Schema.SchemaError, TSchema["EncodingServices"]>] extends [Effect.Effect<infer _A_1, infer _E, infer R>] ? R : never>;
|
|
28
53
|
list: () => Effect.Effect<{
|
|
29
54
|
value: TSchema["Type"];
|
|
30
55
|
version: number;
|
|
31
|
-
}[], Schema.SchemaError | import("effect/sql/SqlError").SqlError, TSchema["DecodingServices"]
|
|
56
|
+
}[], Schema.SchemaError | import("effect/sql/SqlError").SqlError, Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>>;
|
|
32
57
|
load: (workId: string) => Effect.Effect<{
|
|
33
58
|
value: TSchema["Type"];
|
|
34
59
|
version: number;
|
|
35
|
-
} | undefined, Schema.SchemaError | import("effect/sql/SqlError").SqlError, TSchema["DecodingServices"]
|
|
36
|
-
operationEntries: (operationId: string) => Effect.Effect<{
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}[],
|
|
40
|
-
releaseForeign: (owner: string) => Effect.Effect<void, Schema.SchemaError | import("effect/sql/SqlError").SqlError, never>;
|
|
41
|
-
reserveForeign: (owner: string, occupancy?: {
|
|
42
|
-
readonly executing: boolean;
|
|
43
|
-
readonly backlog: boolean;
|
|
44
|
-
}) => Effect.Effect<void, Schema.SchemaError | import("effect/sql/SqlError").SqlError, never>;
|
|
60
|
+
} | undefined, Schema.SchemaError | import("effect/sql/SqlError").SqlError, Exclude<Exclude<TSchema["DecodingServices"], SqlClient.SqlClient>, SqlClient.SqlClient>>;
|
|
61
|
+
operationEntries: (operationId: string) => Effect.Effect<readonly {
|
|
62
|
+
readonly workId: string;
|
|
63
|
+
readonly version: number;
|
|
64
|
+
}[], import("effect/sql/SqlError").SqlError, never>;
|
|
45
65
|
}, never, SqlClient.SqlClient>;
|
|
46
66
|
//# sourceMappingURL=makePostgresFleetStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makePostgresFleetStore.d.ts","sourceRoot":"","sources":["../../src/storage/makePostgresFleetStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAwB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAKvC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"makePostgresFleetStore.d.ts","sourceRoot":"","sources":["../../src/storage/makePostgresFleetStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAwB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAKvC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAIvE,OAAO,EAAE,KAAK,eAAe,EAA+B,MAAM,mBAAmB,CAAC;AAStF,eAAO,MAAM,sBAAsB,GAClC,OAAO,SAAS,MAAM,CAAC,GAAG,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC;CACjC;;;;;;;;;;;4BAkGwB,MAAM,mBAAmB,MAAM,UAAU,OAAO,CAAC,MAAM,CAAC,WAAW,eAAe;;;;;;;;;;;;;;;;qBAKzF,OAAO,CAAC,MAAM,CAAC,WAAW,eAAe;;;;;;;;;;;;;;;;;;mBAzErC,MAAM;;;;oCA4EK,MAAM;;;;8BAEtC,CAAC"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { Effect, Array as EffectArray, Schema } from "effect";
|
|
2
2
|
import { SqlClient } from "effect/sql";
|
|
3
|
-
import { makeRepository } from "@shivaedev/effect-sql/repository.ts";
|
|
3
|
+
import { makeRepository, OptimisticConcurrencyError } from "@shivaedev/effect-sql/repository.ts";
|
|
4
4
|
import { fleetRecords } from "#fleetRecords.ts";
|
|
5
5
|
import { checkRecordAdmission } from "#storage/admission.ts";
|
|
6
6
|
import { admissionReads } from "#storage/admissionReads.ts";
|
|
7
7
|
import { StorageConflict } from "#storage/errors.ts";
|
|
8
8
|
import { makeFleetTransaction } from "#storage/makeFleetTransaction.ts";
|
|
9
|
+
import { makeForeignReservations } from "#storage/makeForeignReservations.ts";
|
|
9
10
|
import { migrateFleet } from "#storage/migrateFleet.ts";
|
|
10
|
-
import {
|
|
11
|
+
import { recordModel } from "#storage/model.ts";
|
|
11
12
|
import { nextAdmissionOrder } from "#storage/nextAdmissionOrder.ts";
|
|
12
13
|
import { operationEntries } from "#storage/operationEntries.ts";
|
|
14
|
+
import { readRecords } from "#storage/readRecords.ts";
|
|
15
|
+
import { inputColumns, makeRecordChildren } from "#storage/recordChildren.ts";
|
|
16
|
+
import { recordShape } from "#storage/recordShape.ts";
|
|
13
17
|
import { withRecordTimes } from "#storage/recordTimes.ts";
|
|
14
18
|
import { recordValue, recordValues } from "#storage/recordValue.ts";
|
|
15
19
|
export const makePostgresFleetStore = Effect.fn("FleetStore.makePostgresFleetStore")(function* (schema, options) {
|
|
@@ -17,38 +21,41 @@ export const makePostgresFleetStore = Effect.fn("FleetStore.makePostgresFleetSto
|
|
|
17
21
|
const namespace = options.namespace ?? "work_fleet";
|
|
18
22
|
const commit = yield* makeFleetTransaction;
|
|
19
23
|
const records = `${namespace}_records`;
|
|
20
|
-
const
|
|
21
|
-
const columns = recordColumns(schema);
|
|
24
|
+
const shape = recordShape(schema);
|
|
22
25
|
const model = recordModel(schema);
|
|
26
|
+
const saveChildren = yield* makeRecordChildren(namespace, shape);
|
|
23
27
|
const rows = yield* makeRepository(model, { idColumn: "work_id", spanPrefix: "FleetRow", tableName: records, versionColumn: "version" });
|
|
24
|
-
const
|
|
28
|
+
const foreign = yield* makeForeignReservations(namespace);
|
|
25
29
|
const encodeRecord = Schema.encodeEffect(schema);
|
|
26
30
|
const decodeObject = Schema.decodeUnknownEffect(Schema.Record(Schema.String, Schema.Unknown));
|
|
27
31
|
const decodeInsert = Schema.decodeUnknownEffect(model.insert);
|
|
28
32
|
const decodeRecord = Schema.decodeUnknownEffect(schema);
|
|
29
33
|
const decodeRecords = Schema.decodeUnknownEffect(Schema.Array(schema));
|
|
30
34
|
function decode(row) {
|
|
31
|
-
return recordValue(row,
|
|
35
|
+
return recordValue(row, shape, namespace).pipe(Effect.flatMap(decodeRecord), Effect.provideService(SqlClient.SqlClient, sql), Effect.map((value) => ({ value, version: row.version + 1 })));
|
|
32
36
|
}
|
|
33
|
-
const
|
|
37
|
+
const readEntry = Effect.fn("FleetStore.readEntry")(function* (workId) {
|
|
34
38
|
const found = yield* rows.findById(workId).pipe(Effect.catchTag("NoSuchElementError", () => Effect.succeed(undefined)));
|
|
35
39
|
return found === undefined ? undefined : { order: found.admission_order, stored: yield* decode(found) };
|
|
36
40
|
});
|
|
41
|
+
function loadEntry(workId) {
|
|
42
|
+
return readRecords(namespace, readEntry(workId)).pipe(Effect.provideService(SqlClient.SqlClient, sql));
|
|
43
|
+
}
|
|
37
44
|
function load(workId) {
|
|
38
45
|
return loadEntry(workId).pipe(Effect.map((entry) => entry?.stored));
|
|
39
46
|
}
|
|
40
|
-
const
|
|
47
|
+
const readList = Effect.fn("FleetStore.readList")(function* () {
|
|
41
48
|
const found = yield* rows.findMany({ orderBy: { direction: "asc", field: "admission_order" } });
|
|
42
|
-
const values = yield* decodeRecords(yield* recordValues(found,
|
|
49
|
+
const values = yield* decodeRecords(yield* recordValues(found, shape, namespace).pipe(Effect.provideService(SqlClient.SqlClient, sql)));
|
|
43
50
|
return EffectArray.zipWith(values, found, (value, row) => ({ value, version: row.version + 1 }));
|
|
44
51
|
});
|
|
45
|
-
function
|
|
46
|
-
return
|
|
52
|
+
function list() {
|
|
53
|
+
return readRecords(namespace, readList()).pipe(Effect.provideService(SqlClient.SqlClient, sql));
|
|
47
54
|
}
|
|
48
55
|
const lock = sql `select pg_advisory_xact_lock(hashtextextended(${`work_fleet_admission:${namespace}`}, 0))`.pipe(Effect.asVoid);
|
|
49
56
|
const persist = Effect.fn("FleetStore.persist")(function* (workId, expectedVersion, record, encoded, entry) {
|
|
50
57
|
const requeue = entry !== undefined && options.requeue?.(record, entry.stored.value) === true;
|
|
51
|
-
const input = yield* decodeInsert({ ...
|
|
58
|
+
const input = yield* decodeInsert({ ...inputColumns(encoded, shape), "work_id": workId });
|
|
52
59
|
if (entry === undefined) {
|
|
53
60
|
yield* rows.insertVoid(input);
|
|
54
61
|
}
|
|
@@ -56,6 +63,7 @@ export const makePostgresFleetStore = Effect.fn("FleetStore.makePostgresFleetSto
|
|
|
56
63
|
const order = requeue ? yield* nextAdmissionOrder(sql, records) : entry.order;
|
|
57
64
|
yield* rows.updateVoid({ ...input, "admission_order": order, version: expectedVersion === null ? 0 : expectedVersion - 1 });
|
|
58
65
|
}
|
|
66
|
+
yield* saveChildren(workId, encoded, entry !== undefined);
|
|
59
67
|
return { value: record, version: (expectedVersion ?? 0) + 1 };
|
|
60
68
|
});
|
|
61
69
|
const write = Effect.fn("FleetStore.write")(function* (workId, expectedVersion, record, limits = {}) {
|
|
@@ -73,37 +81,21 @@ export const makePostgresFleetStore = Effect.fn("FleetStore.makePostgresFleetSto
|
|
|
73
81
|
}
|
|
74
82
|
const reads = admissionReads(options, record, previous?.value, limits);
|
|
75
83
|
const entries = reads.records ? yield* list() : [];
|
|
76
|
-
const external = reads.foreign ? yield* foreignReservations() : [];
|
|
84
|
+
const external = reads.foreign ? yield* foreign.foreignReservations() : [];
|
|
77
85
|
yield* checkRecordAdmission(options, record, previous?.value, entries, external, limits);
|
|
78
86
|
const timed = yield* withRecordTimes(schema, encoded, previous?.value);
|
|
79
87
|
return yield* persist(workId, expectedVersion, timed.value, timed.encoded, entry);
|
|
80
|
-
})).pipe(Effect.
|
|
88
|
+
})).pipe(Effect.catchIf((error) => error instanceof OptimisticConcurrencyError, () => Effect.flatMap(load(workId), (actual) => Effect.fail(new StorageConflict({ actualVersion: actual?.version ?? null, expectedVersion, workId })))));
|
|
81
89
|
});
|
|
82
90
|
return {
|
|
83
91
|
compareAndSet: (workId, expectedVersion, record, limits) => write(workId, expectedVersion, record, limits),
|
|
84
|
-
|
|
92
|
+
...foreign,
|
|
85
93
|
hasLaunchRetry: () => rows.findMany({ select: ["launchRetry"] }).pipe(Effect.map((entries) => entries.some((row) => row.launchRetry !== null))),
|
|
86
94
|
initialize: () => commit([fleetRecords.list], migrateFleet(namespace)),
|
|
87
95
|
insert: (record, limits) => write(record.workId, null, record, limits),
|
|
88
96
|
list,
|
|
89
97
|
load,
|
|
90
|
-
operationEntries: (operationId) =>
|
|
91
|
-
.findMany({ select: ["work_id", "version", "attempts", "history"] })
|
|
92
|
-
.pipe(Effect.flatMap((entries) => operationEntries(entries, operationId))),
|
|
93
|
-
releaseForeign: (owner) => commit([fleetRecords.list], Effect.gen(function* () {
|
|
94
|
-
yield* lock;
|
|
95
|
-
yield* reservations.delete(owner);
|
|
96
|
-
})),
|
|
97
|
-
reserveForeign: (owner, occupancy = { backlog: true, executing: true }) => commit([fleetRecords.list], Effect.gen(function* () {
|
|
98
|
-
yield* lock;
|
|
99
|
-
const existing = yield* reservations.findMany({ where: { owner } });
|
|
100
|
-
if (existing.length === 0) {
|
|
101
|
-
yield* reservations.insertVoid({ owner, ...occupancy });
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
yield* reservations.updateVoid({ owner, ...occupancy });
|
|
105
|
-
}
|
|
106
|
-
})),
|
|
98
|
+
operationEntries: (operationId) => operationEntries(namespace, operationId).pipe(Effect.provideService(SqlClient.SqlClient, sql)),
|
|
107
99
|
};
|
|
108
100
|
});
|
|
109
101
|
//# sourceMappingURL=makePostgresFleetStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makePostgresFleetStore.js","sourceRoot":"","sources":["../../src/storage/makePostgresFleetStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"makePostgresFleetStore.js","sourceRoot":"","sources":["../../src/storage/makePostgresFleetStore.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/model.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Effect, Schema } from "effect";
|
|
2
|
+
import { type ColumnKind } from "#storage/recordShape.ts";
|
|
2
3
|
export interface Versioned<A> {
|
|
3
4
|
readonly value: A;
|
|
4
5
|
readonly version: number;
|
|
@@ -15,22 +16,20 @@ export interface AdmissionLimits {
|
|
|
15
16
|
readonly areaMergeWaitMs: number;
|
|
16
17
|
};
|
|
17
18
|
}
|
|
18
|
-
export declare function recordColumns(schema?: Schema.Top):
|
|
19
|
-
[k: string]: "boolean" | "json" | "number" | "string";
|
|
20
|
-
};
|
|
19
|
+
export declare function recordColumns(schema?: Schema.Top): Record<string, ColumnKind>;
|
|
21
20
|
declare const FleetRow_base: import("effect/schema/VariantSchema").Class<FleetRow, {
|
|
22
21
|
admission_order: import("effect/schema/VariantSchema").Field<{
|
|
23
22
|
readonly select: Schema.BigInt;
|
|
24
23
|
readonly update: Schema.BigInt;
|
|
25
24
|
}>;
|
|
26
|
-
attempts: Schema.NullOr<Schema.
|
|
25
|
+
attempts: Schema.NullOr<Schema.Boolean>;
|
|
27
26
|
attentionOwner: Schema.NullOr<Schema.String>;
|
|
28
27
|
blocker: Schema.NullOr<Schema.String>;
|
|
29
|
-
checks: Schema.NullOr<Schema.
|
|
30
|
-
decision: Schema.NullOr<Schema.
|
|
31
|
-
history: Schema.NullOr<Schema.
|
|
32
|
-
launchRetry: Schema.NullOr<Schema.
|
|
33
|
-
outcome: Schema.NullOr<Schema.
|
|
28
|
+
checks: Schema.NullOr<Schema.Boolean>;
|
|
29
|
+
decision: Schema.NullOr<Schema.Boolean>;
|
|
30
|
+
history: Schema.NullOr<Schema.Boolean>;
|
|
31
|
+
launchRetry: Schema.NullOr<Schema.Boolean>;
|
|
32
|
+
outcome: Schema.NullOr<Schema.Boolean>;
|
|
34
33
|
stage: Schema.NullOr<Schema.String>;
|
|
35
34
|
version: import("effect/schema/VariantSchema").Field<{
|
|
36
35
|
readonly select: Schema.Number;
|
|
@@ -42,14 +41,14 @@ declare const FleetRow_base: import("effect/schema/VariantSchema").Class<FleetRo
|
|
|
42
41
|
readonly select: Schema.BigInt;
|
|
43
42
|
readonly update: Schema.BigInt;
|
|
44
43
|
}>;
|
|
45
|
-
attempts: Schema.NullOr<Schema.
|
|
44
|
+
attempts: Schema.NullOr<Schema.Boolean>;
|
|
46
45
|
attentionOwner: Schema.NullOr<Schema.String>;
|
|
47
46
|
blocker: Schema.NullOr<Schema.String>;
|
|
48
|
-
checks: Schema.NullOr<Schema.
|
|
49
|
-
decision: Schema.NullOr<Schema.
|
|
50
|
-
history: Schema.NullOr<Schema.
|
|
51
|
-
launchRetry: Schema.NullOr<Schema.
|
|
52
|
-
outcome: Schema.NullOr<Schema.
|
|
47
|
+
checks: Schema.NullOr<Schema.Boolean>;
|
|
48
|
+
decision: Schema.NullOr<Schema.Boolean>;
|
|
49
|
+
history: Schema.NullOr<Schema.Boolean>;
|
|
50
|
+
launchRetry: Schema.NullOr<Schema.Boolean>;
|
|
51
|
+
outcome: Schema.NullOr<Schema.Boolean>;
|
|
53
52
|
stage: Schema.NullOr<Schema.String>;
|
|
54
53
|
version: import("effect/schema/VariantSchema").Field<{
|
|
55
54
|
readonly select: Schema.Number;
|
|
@@ -58,77 +57,77 @@ declare const FleetRow_base: import("effect/schema/VariantSchema").Class<FleetRo
|
|
|
58
57
|
work_id: Schema.String;
|
|
59
58
|
}, true>>> & {
|
|
60
59
|
readonly insert: Schema.Struct<{
|
|
61
|
-
readonly attempts: Schema.NullOr<Schema.
|
|
60
|
+
readonly attempts: Schema.NullOr<Schema.Boolean>;
|
|
62
61
|
readonly attentionOwner: Schema.NullOr<Schema.String>;
|
|
63
62
|
readonly blocker: Schema.NullOr<Schema.String>;
|
|
64
|
-
readonly checks: Schema.NullOr<Schema.
|
|
65
|
-
readonly decision: Schema.NullOr<Schema.
|
|
66
|
-
readonly history: Schema.NullOr<Schema.
|
|
67
|
-
readonly launchRetry: Schema.NullOr<Schema.
|
|
68
|
-
readonly outcome: Schema.NullOr<Schema.
|
|
63
|
+
readonly checks: Schema.NullOr<Schema.Boolean>;
|
|
64
|
+
readonly decision: Schema.NullOr<Schema.Boolean>;
|
|
65
|
+
readonly history: Schema.NullOr<Schema.Boolean>;
|
|
66
|
+
readonly launchRetry: Schema.NullOr<Schema.Boolean>;
|
|
67
|
+
readonly outcome: Schema.NullOr<Schema.Boolean>;
|
|
69
68
|
readonly stage: Schema.NullOr<Schema.String>;
|
|
70
69
|
readonly work_id: Schema.String;
|
|
71
70
|
}>;
|
|
72
71
|
readonly json: Schema.Struct<{
|
|
73
|
-
readonly attempts: Schema.NullOr<Schema.
|
|
72
|
+
readonly attempts: Schema.NullOr<Schema.Boolean>;
|
|
74
73
|
readonly attentionOwner: Schema.NullOr<Schema.String>;
|
|
75
74
|
readonly blocker: Schema.NullOr<Schema.String>;
|
|
76
|
-
readonly checks: Schema.NullOr<Schema.
|
|
77
|
-
readonly decision: Schema.NullOr<Schema.
|
|
78
|
-
readonly history: Schema.NullOr<Schema.
|
|
79
|
-
readonly launchRetry: Schema.NullOr<Schema.
|
|
80
|
-
readonly outcome: Schema.NullOr<Schema.
|
|
75
|
+
readonly checks: Schema.NullOr<Schema.Boolean>;
|
|
76
|
+
readonly decision: Schema.NullOr<Schema.Boolean>;
|
|
77
|
+
readonly history: Schema.NullOr<Schema.Boolean>;
|
|
78
|
+
readonly launchRetry: Schema.NullOr<Schema.Boolean>;
|
|
79
|
+
readonly outcome: Schema.NullOr<Schema.Boolean>;
|
|
81
80
|
readonly stage: Schema.NullOr<Schema.String>;
|
|
82
81
|
readonly work_id: Schema.String;
|
|
83
82
|
}>;
|
|
84
83
|
readonly jsonCreate: Schema.Struct<{
|
|
85
|
-
readonly attempts: Schema.NullOr<Schema.
|
|
84
|
+
readonly attempts: Schema.NullOr<Schema.Boolean>;
|
|
86
85
|
readonly attentionOwner: Schema.NullOr<Schema.String>;
|
|
87
86
|
readonly blocker: Schema.NullOr<Schema.String>;
|
|
88
|
-
readonly checks: Schema.NullOr<Schema.
|
|
89
|
-
readonly decision: Schema.NullOr<Schema.
|
|
90
|
-
readonly history: Schema.NullOr<Schema.
|
|
91
|
-
readonly launchRetry: Schema.NullOr<Schema.
|
|
92
|
-
readonly outcome: Schema.NullOr<Schema.
|
|
87
|
+
readonly checks: Schema.NullOr<Schema.Boolean>;
|
|
88
|
+
readonly decision: Schema.NullOr<Schema.Boolean>;
|
|
89
|
+
readonly history: Schema.NullOr<Schema.Boolean>;
|
|
90
|
+
readonly launchRetry: Schema.NullOr<Schema.Boolean>;
|
|
91
|
+
readonly outcome: Schema.NullOr<Schema.Boolean>;
|
|
93
92
|
readonly stage: Schema.NullOr<Schema.String>;
|
|
94
93
|
readonly work_id: Schema.String;
|
|
95
94
|
}>;
|
|
96
95
|
readonly jsonUpdate: Schema.Struct<{
|
|
97
|
-
readonly attempts: Schema.NullOr<Schema.
|
|
96
|
+
readonly attempts: Schema.NullOr<Schema.Boolean>;
|
|
98
97
|
readonly attentionOwner: Schema.NullOr<Schema.String>;
|
|
99
98
|
readonly blocker: Schema.NullOr<Schema.String>;
|
|
100
|
-
readonly checks: Schema.NullOr<Schema.
|
|
101
|
-
readonly decision: Schema.NullOr<Schema.
|
|
102
|
-
readonly history: Schema.NullOr<Schema.
|
|
103
|
-
readonly launchRetry: Schema.NullOr<Schema.
|
|
104
|
-
readonly outcome: Schema.NullOr<Schema.
|
|
99
|
+
readonly checks: Schema.NullOr<Schema.Boolean>;
|
|
100
|
+
readonly decision: Schema.NullOr<Schema.Boolean>;
|
|
101
|
+
readonly history: Schema.NullOr<Schema.Boolean>;
|
|
102
|
+
readonly launchRetry: Schema.NullOr<Schema.Boolean>;
|
|
103
|
+
readonly outcome: Schema.NullOr<Schema.Boolean>;
|
|
105
104
|
readonly stage: Schema.NullOr<Schema.String>;
|
|
106
105
|
readonly work_id: Schema.String;
|
|
107
106
|
}>;
|
|
108
107
|
readonly select: Schema.Struct<{
|
|
109
108
|
readonly admission_order: Schema.BigInt;
|
|
110
|
-
readonly attempts: Schema.NullOr<Schema.
|
|
109
|
+
readonly attempts: Schema.NullOr<Schema.Boolean>;
|
|
111
110
|
readonly attentionOwner: Schema.NullOr<Schema.String>;
|
|
112
111
|
readonly blocker: Schema.NullOr<Schema.String>;
|
|
113
|
-
readonly checks: Schema.NullOr<Schema.
|
|
114
|
-
readonly decision: Schema.NullOr<Schema.
|
|
115
|
-
readonly history: Schema.NullOr<Schema.
|
|
116
|
-
readonly launchRetry: Schema.NullOr<Schema.
|
|
117
|
-
readonly outcome: Schema.NullOr<Schema.
|
|
112
|
+
readonly checks: Schema.NullOr<Schema.Boolean>;
|
|
113
|
+
readonly decision: Schema.NullOr<Schema.Boolean>;
|
|
114
|
+
readonly history: Schema.NullOr<Schema.Boolean>;
|
|
115
|
+
readonly launchRetry: Schema.NullOr<Schema.Boolean>;
|
|
116
|
+
readonly outcome: Schema.NullOr<Schema.Boolean>;
|
|
118
117
|
readonly stage: Schema.NullOr<Schema.String>;
|
|
119
118
|
readonly version: Schema.Number;
|
|
120
119
|
readonly work_id: Schema.String;
|
|
121
120
|
}>;
|
|
122
121
|
readonly update: Schema.Struct<{
|
|
123
122
|
readonly admission_order: Schema.BigInt;
|
|
124
|
-
readonly attempts: Schema.NullOr<Schema.
|
|
123
|
+
readonly attempts: Schema.NullOr<Schema.Boolean>;
|
|
125
124
|
readonly attentionOwner: Schema.NullOr<Schema.String>;
|
|
126
125
|
readonly blocker: Schema.NullOr<Schema.String>;
|
|
127
|
-
readonly checks: Schema.NullOr<Schema.
|
|
128
|
-
readonly decision: Schema.NullOr<Schema.
|
|
129
|
-
readonly history: Schema.NullOr<Schema.
|
|
130
|
-
readonly launchRetry: Schema.NullOr<Schema.
|
|
131
|
-
readonly outcome: Schema.NullOr<Schema.
|
|
126
|
+
readonly checks: Schema.NullOr<Schema.Boolean>;
|
|
127
|
+
readonly decision: Schema.NullOr<Schema.Boolean>;
|
|
128
|
+
readonly history: Schema.NullOr<Schema.Boolean>;
|
|
129
|
+
readonly launchRetry: Schema.NullOr<Schema.Boolean>;
|
|
130
|
+
readonly outcome: Schema.NullOr<Schema.Boolean>;
|
|
132
131
|
readonly stage: Schema.NullOr<Schema.String>;
|
|
133
132
|
readonly version: Schema.Number;
|
|
134
133
|
readonly work_id: Schema.String;
|
|
@@ -137,6 +136,7 @@ declare const FleetRow_base: import("effect/schema/VariantSchema").Class<FleetRo
|
|
|
137
136
|
declare class FleetRow extends FleetRow_base {
|
|
138
137
|
}
|
|
139
138
|
export declare function recordModel(schema?: Schema.Top): typeof FleetRow;
|
|
139
|
+
export declare function modelFromColumns(columns: Readonly<Record<string, ColumnKind>>): typeof FleetRow;
|
|
140
140
|
export declare const ForeignReservation: Schema.Struct<{
|
|
141
141
|
readonly backlog: Schema.Boolean;
|
|
142
142
|
readonly executing: Schema.Boolean;
|
|
@@ -185,13 +185,7 @@ declare const ForeignReservationRow_base: import("effect/schema/VariantSchema").
|
|
|
185
185
|
};
|
|
186
186
|
export declare class ForeignReservationRow extends ForeignReservationRow_base {
|
|
187
187
|
}
|
|
188
|
-
export declare function recordInput(value:
|
|
189
|
-
|
|
190
|
-
};
|
|
191
|
-
export declare function recordJson(row: object, columns: ReturnType<typeof recordColumns>): Effect.Effect<string, Schema.SchemaError, never>;
|
|
192
|
-
export interface StoredRow {
|
|
193
|
-
readonly value: string;
|
|
194
|
-
readonly version: number;
|
|
195
|
-
}
|
|
188
|
+
export declare function recordInput(value: object, schema?: Schema.Top): Record<string, unknown>;
|
|
189
|
+
export declare function recordJson(row: object, namespace: string): Effect.Effect<string, import("effect/sql/SqlError").SqlError, import("effect/sql/SqlClient").SqlClient>;
|
|
196
190
|
export {};
|
|
197
191
|
//# sourceMappingURL=model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/storage/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/storage/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIxC,OAAO,EAAE,KAAK,UAAU,EAA2C,MAAM,yBAAyB,CAAC;AAEnG,MAAM,WAAW,SAAS,CAAC,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7E,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;CACjF;AAED,wBAAgB,aAAa,CAAC,MAAM,GAAE,MAAM,CAAC,GAAiB,8BAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBD,cAAM,QAAS,SAAQ,aAA4C;CAAG;AAEtE,wBAAgB,WAAW,CAAC,MAAM,GAAE,MAAM,CAAC,GAAiB,GAAG,OAAO,QAAQ,CAE7E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,OAAO,QAAQ,CAK/F;AAED,eAAO,MAAM,kBAAkB;;;;EAI7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEhE,qBAAa,qBAAsB,SAAQ,0BAAsF;CAAG;AAEpI,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,GAAiB,2BAE1E;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,2GAExD"}
|