@photon-grove/evt 0.1.1 → 0.1.2
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/README.md +39 -4
- package/dist/aggregate.d.ts +26 -0
- package/dist/aggregate.d.ts.map +1 -1
- package/dist/aggregate.js.map +1 -1
- package/dist/dynamodb/index.d.ts +1 -0
- package/dist/dynamodb/index.d.ts.map +1 -1
- package/dist/dynamodb/index.js +1 -0
- package/dist/dynamodb/index.js.map +1 -1
- package/dist/dynamodb/repository.d.ts.map +1 -1
- package/dist/dynamodb/repository.js +24 -7
- package/dist/dynamodb/repository.js.map +1 -1
- package/dist/dynamodb/requests.d.ts +5 -2
- package/dist/dynamodb/requests.d.ts.map +1 -1
- package/dist/dynamodb/requests.js +19 -4
- package/dist/dynamodb/requests.js.map +1 -1
- package/dist/dynamodb/views.d.ts +18 -0
- package/dist/dynamodb/views.d.ts.map +1 -0
- package/dist/dynamodb/views.js +56 -0
- package/dist/dynamodb/views.js.map +1 -0
- package/dist/errors.d.ts +14 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +15 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/postgres/client.d.ts +32 -0
- package/dist/postgres/client.d.ts.map +1 -0
- package/dist/postgres/client.js +4 -0
- package/dist/postgres/client.js.map +1 -0
- package/dist/postgres/index.d.ts +4 -0
- package/dist/postgres/index.d.ts.map +1 -0
- package/dist/postgres/index.js +6 -0
- package/dist/postgres/index.js.map +1 -0
- package/dist/postgres/repository.d.ts +55 -0
- package/dist/postgres/repository.d.ts.map +1 -0
- package/dist/postgres/repository.js +527 -0
- package/dist/postgres/repository.js.map +1 -0
- package/dist/postgres/schema.d.ts +81 -0
- package/dist/postgres/schema.d.ts.map +1 -0
- package/dist/postgres/schema.js +233 -0
- package/dist/postgres/schema.js.map +1 -0
- package/dist/repository.d.ts +26 -6
- package/dist/repository.d.ts.map +1 -1
- package/dist/repository.js +21 -5
- package/dist/repository.js.map +1 -1
- package/dist/store.d.ts +4 -2
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +31 -6
- package/dist/store.js.map +1 -1
- package/package.json +5 -1
- package/src/aggregate.ts +28 -0
- package/src/dynamodb/index.ts +1 -0
- package/src/dynamodb/repository.ts +29 -6
- package/src/dynamodb/requests.ts +24 -4
- package/src/dynamodb/views.ts +67 -0
- package/src/errors.ts +23 -0
- package/src/index.ts +4 -0
- package/src/postgres/client.ts +37 -0
- package/src/postgres/index.ts +23 -0
- package/src/postgres/repository.ts +773 -0
- package/src/postgres/schema.ts +286 -0
- package/src/repository.ts +52 -7
- package/src/store.ts +58 -8
package/dist/errors.d.ts
CHANGED
|
@@ -26,10 +26,12 @@
|
|
|
26
26
|
* - `transient`: the backend throttled the write. Retryable. Nothing was written.
|
|
27
27
|
* - `rebuildInProgress`: a projection rebuild holds the store, so commits wait. Retryable.
|
|
28
28
|
* - `historyDependentProjection`: compaction was refused for a history-dependent entity type.
|
|
29
|
+
* - `projectorOnlyCommit`: a commit carries projector operations but no events. Nothing was
|
|
30
|
+
* written.
|
|
29
31
|
* - `replay`: a stored event failed to upcast or decode while an aggregate loaded.
|
|
30
32
|
* - `snapshot`: a stored snapshot failed to decode while an aggregate loaded.
|
|
31
33
|
*/
|
|
32
|
-
export type EvtErrorCode = 'invalidJson' | 'invalidRecord' | 'invalidArgument' | 'invalidCommit' | 'conflict' | 'sequenceGap' | 'streamHeadDrift' | 'commitTooLarge' | 'compactionUncovered' | 'reservedEntityId' | 'unsupportedFeature' | 'streamHeadsNotMigrated' | 'storeNotInitialized' | 'featureManifestChanged' | 'transient' | 'rebuildInProgress' | 'historyDependentProjection' | 'replay' | 'snapshot';
|
|
34
|
+
export type EvtErrorCode = 'invalidJson' | 'invalidRecord' | 'invalidArgument' | 'invalidCommit' | 'conflict' | 'sequenceGap' | 'streamHeadDrift' | 'commitTooLarge' | 'compactionUncovered' | 'reservedEntityId' | 'unsupportedFeature' | 'streamHeadsNotMigrated' | 'storeNotInitialized' | 'featureManifestChanged' | 'transient' | 'rebuildInProgress' | 'historyDependentProjection' | 'projectorOnlyCommit' | 'replay' | 'snapshot';
|
|
33
35
|
export declare class EvtError extends Error {
|
|
34
36
|
readonly name: string;
|
|
35
37
|
readonly code: EvtErrorCode;
|
|
@@ -176,6 +178,17 @@ export declare class HistoryDependentProjectionError extends EvtError {
|
|
|
176
178
|
readonly entityId: string;
|
|
177
179
|
constructor(entityType: string, entityId: string);
|
|
178
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* A commit carried projector operations but no events. Views are projections of committed events,
|
|
183
|
+
* so operations with no event behind them are refused on every backend. Nothing was written.
|
|
184
|
+
*/
|
|
185
|
+
export declare class ProjectorOnlyCommitError extends EvtError {
|
|
186
|
+
readonly name = "ProjectorOnlyCommitError";
|
|
187
|
+
readonly code = "projectorOnlyCommit";
|
|
188
|
+
/** How many projector operations the commit carried. */
|
|
189
|
+
readonly operations: number;
|
|
190
|
+
constructor(operations: number);
|
|
191
|
+
}
|
|
179
192
|
/** A load failed closed on a stored event: an upcaster threw, or the payload didn't decode. */
|
|
180
193
|
export declare class ReplayError extends EvtError {
|
|
181
194
|
readonly name = "ReplayError";
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.js
CHANGED
|
@@ -190,6 +190,21 @@ export class HistoryDependentProjectionError extends EvtError {
|
|
|
190
190
|
this.entityId = entityId;
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* A commit carried projector operations but no events. Views are projections of committed events,
|
|
195
|
+
* so operations with no event behind them are refused on every backend. Nothing was written.
|
|
196
|
+
*/
|
|
197
|
+
export class ProjectorOnlyCommitError extends EvtError {
|
|
198
|
+
name = 'ProjectorOnlyCommitError';
|
|
199
|
+
code = 'projectorOnlyCommit';
|
|
200
|
+
/** How many projector operations the commit carried. */
|
|
201
|
+
operations;
|
|
202
|
+
constructor(operations) {
|
|
203
|
+
super('projectorOnlyCommit', `a commit carries ${operations} projector operations but no events; views need a ` +
|
|
204
|
+
'backing event in the same commit');
|
|
205
|
+
this.operations = operations;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
193
208
|
/** A load failed closed on a stored event: an upcaster threw, or the payload didn't decode. */
|
|
194
209
|
export class ReplayError extends EvtError {
|
|
195
210
|
name = 'ReplayError';
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,6FAA6F;AAC7F,uEAAuE;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export { type Aggregate, type AggregateDefinition, type Decision, type EventDefinition, type EventDefinitions, type EventOf, type Rejection, type Upcaster, defineAggregate, defineEvents, jsonUpcaster, } from './aggregate.js';
|
|
1
|
+
export { type Aggregate, type AggregateDefinition, type Decision, type EventDefinition, type EventDefinitions, type EventOf, type Projection, type Projector, type Rejection, type Upcaster, defineAggregate, defineEvents, jsonUpcaster, } from './aggregate.js';
|
|
2
2
|
export { base64Decode, base64Encode } from './base64.js';
|
|
3
3
|
export { type Codec, type JsonOptions, type StandardResult, type StandardSchemaV1, json, } from './codec.js';
|
|
4
4
|
export { encodeEnvelope, decodeEnvelope, messageAttributes } from './envelope.js';
|
|
5
|
-
export { CommitTooLargeError, CompactionUncoveredError, ConflictError, EvtError, type EvtErrorCode, FeatureManifestChangedError, HistoryDependentProjectionError, RebuildInProgressError, ReplayError, ReservedEntityIdError, SequenceGapError, SnapshotError, StoreNotInitializedError, StreamHeadDriftError, StreamHeadsNotMigratedError, TransientError, UnsupportedFeatureError, type FeaturePair, isConflict, isRetryable, } from './errors.js';
|
|
5
|
+
export { CommitTooLargeError, CompactionUncoveredError, ConflictError, EvtError, type EvtErrorCode, FeatureManifestChangedError, HistoryDependentProjectionError, ProjectorOnlyCommitError, RebuildInProgressError, ReplayError, ReservedEntityIdError, SequenceGapError, SnapshotError, StoreNotInitializedError, StreamHeadDriftError, StreamHeadsNotMigratedError, TransientError, UnsupportedFeatureError, type FeaturePair, isConflict, isRetryable, } from './errors.js';
|
|
6
6
|
export { type SerializedEvent, type SerializedSnapshot, decodeEvent, decodeSnapshot, encodeEvent, encodeSnapshot, eventId, } from './event.js';
|
|
7
7
|
export { type FeatureManifest, type ManifestTexts, STREAM_HEADS_FEATURE, STREAM_HEADS_VERSION, SUPPORTED_FEATURES, decodeManifest, encodeManifest, } from './features.js';
|
|
8
8
|
export { JsonNumber, type JsonValue, parseJson, stringifyJson } from './json.js';
|
|
9
9
|
export { type Metadata, type Origin, decodeMetadata, effectiveCausationId, emptyMetadata, encodeMetadata, } from './metadata.js';
|
|
10
|
-
export type { CallOptions, Commit, NewSnapshot, Repository, StoreInitializer, } from './repository.js';
|
|
10
|
+
export type { CallOptions, Commit, NewSnapshot, ProjectorGroup, Repository, StoreInitializer, } from './repository.js';
|
|
11
11
|
export { DEFAULT_RETRY_POLICY, type RetryPolicy, retryDelay, } from './retry.js';
|
|
12
12
|
export { MAX_COMMIT_ITEM_BYTES, snapshotCommitSize, snapshotEventsDue } from './snapshots.js';
|
|
13
13
|
export { compareUtf8, utf8Length } from './utf8.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,eAAe,EACf,YAAY,EACZ,YAAY,GACb,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,aAAa,CAAA;AACtD,OAAO,EACL,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,IAAI,GACL,MAAM,YAAY,CAAA;AACnB,OAAO,EAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAA;AAC/E,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,aAAa,EACb,QAAQ,EACR,KAAK,YAAY,EACjB,2BAA2B,EAC3B,+BAA+B,EAC/B,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,wBAAwB,EACxB,oBAAoB,EACpB,2BAA2B,EAC3B,cAAc,EACd,uBAAuB,EACvB,KAAK,WAAW,EAChB,UAAU,EACV,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,WAAW,EACX,cAAc,EACd,WAAW,EACX,cAAc,EACd,OAAO,GACR,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,eAAe,CAAA;AACtB,OAAO,EAAC,UAAU,EAAE,KAAK,SAAS,EAAE,SAAS,EAAE,aAAa,EAAC,MAAM,WAAW,CAAA;AAC9E,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,cAAc,GACf,MAAM,eAAe,CAAA;AACtB,YAAY,EACV,WAAW,EACX,MAAM,EACN,WAAW,EACX,UAAU,EACV,gBAAgB,GACjB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,oBAAoB,EACpB,KAAK,WAAW,EAChB,UAAU,GACX,MAAM,YAAY,CAAA;AACnB,OAAO,EAAC,qBAAqB,EAAE,kBAAkB,EAAE,iBAAiB,EAAC,MAAM,gBAAgB,CAAA;AAC3F,OAAO,EAAC,WAAW,EAAE,UAAU,EAAC,MAAM,WAAW,CAAA;AACjD,OAAO,EACL,yBAAyB,EACzB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,EACL,KAAK,YAAY,GAClB,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,eAAe,EACf,YAAY,EACZ,YAAY,GACb,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,aAAa,CAAA;AACtD,OAAO,EACL,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,IAAI,GACL,MAAM,YAAY,CAAA;AACnB,OAAO,EAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAA;AAC/E,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,aAAa,EACb,QAAQ,EACR,KAAK,YAAY,EACjB,2BAA2B,EAC3B,+BAA+B,EAC/B,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,wBAAwB,EACxB,oBAAoB,EACpB,2BAA2B,EAC3B,cAAc,EACd,uBAAuB,EACvB,KAAK,WAAW,EAChB,UAAU,EACV,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,WAAW,EACX,cAAc,EACd,WAAW,EACX,cAAc,EACd,OAAO,GACR,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,eAAe,CAAA;AACtB,OAAO,EAAC,UAAU,EAAE,KAAK,SAAS,EAAE,SAAS,EAAE,aAAa,EAAC,MAAM,WAAW,CAAA;AAC9E,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,cAAc,GACf,MAAM,eAAe,CAAA;AACtB,YAAY,EACV,WAAW,EACX,MAAM,EACN,WAAW,EACX,cAAc,EACd,UAAU,EACV,gBAAgB,GACjB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,oBAAoB,EACpB,KAAK,WAAW,EAChB,UAAU,GACX,MAAM,YAAY,CAAA;AACnB,OAAO,EAAC,qBAAqB,EAAE,kBAAkB,EAAE,iBAAiB,EAAC,MAAM,gBAAgB,CAAA;AAC3F,OAAO,EAAC,WAAW,EAAE,UAAU,EAAC,MAAM,WAAW,CAAA;AACjD,OAAO,EACL,yBAAyB,EACzB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,EACL,KAAK,YAAY,GAClB,MAAM,YAAY,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ export { defineAggregate, defineEvents, jsonUpcaster, } from './aggregate.js';
|
|
|
5
5
|
export { base64Decode, base64Encode } from './base64.js';
|
|
6
6
|
export { json, } from './codec.js';
|
|
7
7
|
export { encodeEnvelope, decodeEnvelope, messageAttributes } from './envelope.js';
|
|
8
|
-
export { CommitTooLargeError, CompactionUncoveredError, ConflictError, EvtError, FeatureManifestChangedError, HistoryDependentProjectionError, RebuildInProgressError, ReplayError, ReservedEntityIdError, SequenceGapError, SnapshotError, StoreNotInitializedError, StreamHeadDriftError, StreamHeadsNotMigratedError, TransientError, UnsupportedFeatureError, isConflict, isRetryable, } from './errors.js';
|
|
8
|
+
export { CommitTooLargeError, CompactionUncoveredError, ConflictError, EvtError, FeatureManifestChangedError, HistoryDependentProjectionError, ProjectorOnlyCommitError, RebuildInProgressError, ReplayError, ReservedEntityIdError, SequenceGapError, SnapshotError, StoreNotInitializedError, StreamHeadDriftError, StreamHeadsNotMigratedError, TransientError, UnsupportedFeatureError, isConflict, isRetryable, } from './errors.js';
|
|
9
9
|
export { decodeEvent, decodeSnapshot, encodeEvent, encodeSnapshot, eventId, } from './event.js';
|
|
10
10
|
export { STREAM_HEADS_FEATURE, STREAM_HEADS_VERSION, SUPPORTED_FEATURES, decodeManifest, encodeManifest, } from './features.js';
|
|
11
11
|
export { JsonNumber, parseJson, stringifyJson } from './json.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,wFAAwF;AACxF,mFAAmF;AAEnF,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,wFAAwF;AACxF,mFAAmF;AAEnF,OAAO,EAWL,eAAe,EACf,YAAY,EACZ,YAAY,GACb,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,aAAa,CAAA;AACtD,OAAO,EAKL,IAAI,GACL,MAAM,YAAY,CAAA;AACnB,OAAO,EAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAA;AAC/E,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,aAAa,EACb,QAAQ,EAER,2BAA2B,EAC3B,+BAA+B,EAC/B,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,wBAAwB,EACxB,oBAAoB,EACpB,2BAA2B,EAC3B,cAAc,EACd,uBAAuB,EAEvB,UAAU,EACV,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,OAAO,EAGL,WAAW,EACX,cAAc,EACd,WAAW,EACX,cAAc,EACd,OAAO,GACR,MAAM,YAAY,CAAA;AACnB,OAAO,EAGL,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,eAAe,CAAA;AACtB,OAAO,EAAC,UAAU,EAAkB,SAAS,EAAE,aAAa,EAAC,MAAM,WAAW,CAAA;AAC9E,OAAO,EAGL,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,cAAc,GACf,MAAM,eAAe,CAAA;AAStB,OAAO,EACL,oBAAoB,EAEpB,UAAU,GACX,MAAM,YAAY,CAAA;AACnB,OAAO,EAAC,qBAAqB,EAAE,kBAAkB,EAAE,iBAAiB,EAAC,MAAM,gBAAgB,CAAA;AAC3F,OAAO,EAAC,WAAW,EAAE,UAAU,EAAC,MAAM,WAAW,CAAA;AACjD,OAAO,EACL,yBAAyB,EAKzB,KAAK,GAEN,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** The result of one statement: its rows, as the driver returns them. */
|
|
2
|
+
export interface PgResult {
|
|
3
|
+
readonly rows: readonly unknown[];
|
|
4
|
+
}
|
|
5
|
+
/** Something that runs one statement: `$1`, `$2` and so on in `text` take `values` in order. */
|
|
6
|
+
export interface PgQueryable {
|
|
7
|
+
query(text: string, values?: unknown[]): Promise<PgResult>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* A connection held for one transaction, as a pool lends it. `release` returns it to the pool, and
|
|
11
|
+
* gets the error when the connection may be unusable, so the pool can discard it.
|
|
12
|
+
*/
|
|
13
|
+
export interface PgConnection extends PgQueryable {
|
|
14
|
+
release(error?: Error): void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The client a {@link PgRepository} runs on.
|
|
18
|
+
*
|
|
19
|
+
* - A pool, such as `pg`'s `Pool` or Neon's serverless `Pool`, has `connect`, which lends one
|
|
20
|
+
* connection for each transaction. Single statements outside a transaction go to `query`.
|
|
21
|
+
* - A single connection without `connect`, such as PGlite, runs everything itself, so every
|
|
22
|
+
* repository on it runs one operation at a time on it. Nothing else may use the connection
|
|
23
|
+
* meanwhile: a statement sent inside a repository's transaction would join it.
|
|
24
|
+
*
|
|
25
|
+
* Every value the repository sends is a string or null, with casts in the SQL, and every column it
|
|
26
|
+
* reads is text, so no driver's type parsing touches a stored value. A `pg` `Client` has a
|
|
27
|
+
* `connect` that opens the client rather than lending a connection, so pass a `Pool` instead.
|
|
28
|
+
*/
|
|
29
|
+
export interface PgClient extends PgQueryable {
|
|
30
|
+
connect?(): Promise<PgConnection>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/postgres/client.ts"],"names":[],"mappings":"AAGA,yEAAyE;AACzE,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAA;CAClC;AAED,gGAAgG;AAChG,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CAC3D;AAED;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAA;CAC7B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,QAAS,SAAQ,WAAW;IAC3C,OAAO,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,CAAA;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/postgres/client.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,4FAA4F"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { type PgClient, type PgConnection, type PgQueryable, type PgResult } from './client.js';
|
|
2
|
+
export { POSTGRES_BACKEND, PgRepository, type PgRepositoryOptions } from './repository.js';
|
|
3
|
+
export { DEFAULT_EVENTS_TABLE, DEFAULT_SNAPSHOTS_TABLE, MAX_EVENTS_TABLE_NAME_BYTES, MAX_SNAPSHOTS_TABLE_NAME_BYTES, type PgTables, RESERVED_INFIX, SCHEMA_LOCK, entityTypeIndex, featuresTable, outcomesTable, pgTables, rebuildGenerationTable, rebuildLockTable, schemaDdl, streamHeadsTable, } from './schema.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/postgres/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAC,MAAM,aAAa,CAAA;AAC7F,OAAO,EAAC,gBAAgB,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAC,MAAM,iBAAiB,CAAA;AAExF,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,8BAA8B,EAC9B,KAAK,QAAQ,EACb,cAAc,EACd,WAAW,EACX,eAAe,EACf,aAAa,EACb,aAAa,EACb,QAAQ,EACR,sBAAsB,EACtB,gBAAgB,EAChB,SAAS,EACT,gBAAgB,GACjB,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// @photon-grove/evt/postgres: the PostgreSQL backend. It imports no driver: the repository takes
|
|
2
|
+
// `pg`'s Pool, or anything shaped like it, as a PgClient.
|
|
3
|
+
export {} from './client.js';
|
|
4
|
+
export { POSTGRES_BACKEND, PgRepository } from './repository.js';
|
|
5
|
+
export { DEFAULT_EVENTS_TABLE, DEFAULT_SNAPSHOTS_TABLE, MAX_EVENTS_TABLE_NAME_BYTES, MAX_SNAPSHOTS_TABLE_NAME_BYTES, RESERVED_INFIX, SCHEMA_LOCK, entityTypeIndex, featuresTable, outcomesTable, pgTables, rebuildGenerationTable, rebuildLockTable, schemaDdl, streamHeadsTable, } from './schema.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/postgres/index.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,0DAA0D;AAE1D,OAAO,EAAmE,MAAM,aAAa,CAAA;AAC7F,OAAO,EAAC,gBAAgB,EAAE,YAAY,EAA2B,MAAM,iBAAiB,CAAA;AAExF,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,8BAA8B,EAE9B,cAAc,EACd,WAAW,EACX,eAAe,EACf,aAAa,EACb,aAAa,EACb,QAAQ,EACR,sBAAsB,EACtB,gBAAgB,EAChB,SAAS,EACT,gBAAgB,GACjB,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { SerializedEvent, SerializedSnapshot } from '../event.js';
|
|
2
|
+
import { type CallOptions, type Commit, type Repository, type StoreInitializer } from '../repository.js';
|
|
3
|
+
import type { PgClient } from './client.js';
|
|
4
|
+
import { type PgTables } from './schema.js';
|
|
5
|
+
/** The tables a {@link PgRepository} stores its event log in. */
|
|
6
|
+
export interface PgRepositoryOptions {
|
|
7
|
+
/** The events table, `evt_events` by default. The engine tables derive their names from it. */
|
|
8
|
+
eventsTable?: string;
|
|
9
|
+
/** The snapshots table, `evt_snapshots` by default. */
|
|
10
|
+
snapshotsTable?: string;
|
|
11
|
+
}
|
|
12
|
+
/** The backend name a projector group for the PostgreSQL repository would carry. */
|
|
13
|
+
export declare const POSTGRES_BACKEND = "postgres";
|
|
14
|
+
/**
|
|
15
|
+
* A {@link Repository} on PostgreSQL, through any client shaped like `pg`'s `Pool`
|
|
16
|
+
* ({@link PgClient}).
|
|
17
|
+
*
|
|
18
|
+
* Run {@link PgRepository.ensureSchema} once before the first write. A writer initializes a fresh
|
|
19
|
+
* store itself on its first write, as Go's and Rust's do: the check is two `EXISTS` probes under
|
|
20
|
+
* the lock it takes anyway. {@link PgRepository.initialize} is for a deploy step that treats every
|
|
21
|
+
* backend alike.
|
|
22
|
+
*
|
|
23
|
+
* The repository validates the store's feature manifest at its first write and caches the version
|
|
24
|
+
* it validated. Every commit and snapshot write reads the manifest again under a shared lock that
|
|
25
|
+
* no declaration can take while the write is open, and validates it again when it changed.
|
|
26
|
+
*/
|
|
27
|
+
export declare class PgRepository implements Repository, StoreInitializer {
|
|
28
|
+
#private;
|
|
29
|
+
/**
|
|
30
|
+
* Takes the client and the table names, which must be plain identifiers that fit their limits
|
|
31
|
+
* ({@link pgTables}), or the constructor fails with `invalidArgument`.
|
|
32
|
+
*/
|
|
33
|
+
constructor(client: PgClient, options?: PgRepositoryOptions);
|
|
34
|
+
/** The tables this repository reads and writes, folded to lower case. */
|
|
35
|
+
get tables(): PgTables;
|
|
36
|
+
/**
|
|
37
|
+
* Creates the event log's tables if they don't exist, with the DDL Go and Rust run
|
|
38
|
+
* ({@link schemaDdl}), under the schema lock they take. Safe to call on every start.
|
|
39
|
+
*/
|
|
40
|
+
ensureSchema(options?: CallOptions): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Declares stream-heads on a store whose events and snapshots tables are empty, under the
|
|
43
|
+
* manifest's exclusive lock, and resolves `true` when this call declared it. A store that
|
|
44
|
+
* already declares it is left alone. Run {@link PgRepository.ensureSchema} first.
|
|
45
|
+
*/
|
|
46
|
+
initialize(options?: CallOptions): Promise<boolean>;
|
|
47
|
+
commit(commit: Commit, options?: CallOptions): Promise<void>;
|
|
48
|
+
events(entityId: string, options?: CallOptions): Promise<SerializedEvent[]>;
|
|
49
|
+
eventsAfter(entityId: string, after: bigint, options?: CallOptions): Promise<SerializedEvent[]>;
|
|
50
|
+
latest(entityId: string, n: number, options?: CallOptions): Promise<SerializedEvent[]>;
|
|
51
|
+
snapshot(entityId: string, options?: CallOptions): Promise<SerializedSnapshot | null>;
|
|
52
|
+
putSnapshot(snapshot: SerializedSnapshot, options?: CallOptions): Promise<boolean>;
|
|
53
|
+
compactBelow(entityId: string, through: bigint, options?: CallOptions): Promise<number>;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/postgres/repository.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,aAAa,CAAA;AAYpE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,gBAAgB,EAKtB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAC,QAAQ,EAA4B,MAAM,aAAa,CAAA;AACpE,OAAO,EAIL,KAAK,QAAQ,EAUd,MAAM,aAAa,CAAA;AAEpB,iEAAiE;AACjE,MAAM,WAAW,mBAAmB;IAClC,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,oFAAoF;AACpF,eAAO,MAAM,gBAAgB,aAAa,CAAA;AAgB1C;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAa,YAAW,UAAU,EAAE,gBAAgB;;IAS/D;;;OAGG;IACH,YAAY,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAE,mBAAwB,EAG9D;IAED,yEAAyE;IACzE,IAAI,MAAM,IAAI,QAAQ,CAErB;IAED;;;OAGG;IACG,YAAY,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAOvD;IAED;;;;OAIG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CA0BxD;IAEK,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgEjE;IAEK,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAShF;IAEK,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,EAAE,CAAC,CAU5B;IAEK,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAgB3F;IAEK,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAU1F;IAEK,WAAW,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBvF;IAEK,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAuC5F;CAkRF"}
|