@cratis/chronicle 0.0.1 → 0.1.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/Auditing/Causation.ts +29 -0
- package/Auditing/CausationManager.ts +51 -0
- package/Auditing/CausationType.ts +38 -0
- package/Auditing/ICausationManager.ts +29 -0
- package/Auditing/index.ts +15 -0
- package/Correlation/CorrelationId.ts +33 -0
- package/Correlation/CorrelationIdManager.ts +30 -0
- package/Correlation/ICorrelationIdAccessor.ts +15 -0
- package/Correlation/ICorrelationIdSetter.ts +21 -0
- package/Correlation/index.ts +15 -0
- package/EventSequences/EventSequence.ts +48 -50
- package/Identity/IIdentityProvider.ts +26 -0
- package/Identity/Identity.ts +61 -0
- package/Identity/IdentityProvider.ts +28 -0
- package/Identity/index.ts +14 -0
- package/Projections/Projections.ts +75 -20
- package/Projections/declarative/ProjectionBuilderFor.ts +19 -2
- package/Projections/declarative/projection.ts +6 -2
- package/Projections/modelBound/index.ts +0 -2
- package/Projections/modelBound/setFromContext.ts +20 -2
- package/README.md +1 -1
- package/Reactors/Reactors.ts +1 -0
- package/Reducers/Reducers.ts +66 -2
- package/Schemas/JsonSchemaGenerator.ts +20 -3
- package/artifacts/DefaultClientArtifactsProvider.ts +0 -5
- package/artifacts/IClientArtifactsProvider.ts +0 -3
- package/connection/Guid.ts +29 -1
- package/dist/Auditing/Causation.d.ts +22 -0
- package/dist/Auditing/Causation.d.ts.map +1 -0
- package/dist/Auditing/Causation.js +30 -0
- package/dist/Auditing/Causation.js.map +1 -0
- package/dist/Auditing/CausationManager.d.ts +23 -0
- package/dist/Auditing/CausationManager.d.ts.map +1 -0
- package/dist/Auditing/CausationManager.js +45 -0
- package/dist/Auditing/CausationManager.js.map +1 -0
- package/dist/Auditing/CausationType.d.ts +30 -0
- package/dist/Auditing/CausationType.d.ts.map +1 -0
- package/dist/Auditing/CausationType.js +36 -0
- package/dist/Auditing/CausationType.js.map +1 -0
- package/dist/Auditing/ICausationManager.d.ts +24 -0
- package/dist/Auditing/ICausationManager.d.ts.map +1 -0
- package/dist/Auditing/ICausationManager.js +4 -0
- package/dist/Auditing/ICausationManager.js.map +1 -0
- package/dist/Auditing/index.d.ts +11 -0
- package/dist/Auditing/index.d.ts.map +1 -0
- package/dist/Auditing/index.js +12 -0
- package/dist/Auditing/index.js.map +1 -0
- package/dist/Correlation/CorrelationId.d.ts +23 -0
- package/dist/Correlation/CorrelationId.d.ts.map +1 -0
- package/dist/Correlation/CorrelationId.js +32 -0
- package/dist/Correlation/CorrelationId.js.map +1 -0
- package/dist/Correlation/CorrelationIdManager.d.ts +17 -0
- package/dist/Correlation/CorrelationIdManager.d.ts.map +1 -0
- package/dist/Correlation/CorrelationIdManager.js +24 -0
- package/dist/Correlation/CorrelationIdManager.js.map +1 -0
- package/dist/Correlation/ICorrelationIdAccessor.d.ts +12 -0
- package/dist/Correlation/ICorrelationIdAccessor.d.ts.map +1 -0
- package/dist/Correlation/ICorrelationIdAccessor.js +4 -0
- package/dist/Correlation/ICorrelationIdAccessor.js.map +1 -0
- package/dist/Correlation/ICorrelationIdSetter.d.ts +17 -0
- package/dist/Correlation/ICorrelationIdSetter.d.ts.map +1 -0
- package/dist/Correlation/ICorrelationIdSetter.js +4 -0
- package/dist/Correlation/ICorrelationIdSetter.js.map +1 -0
- package/dist/Correlation/index.d.ts +11 -0
- package/dist/Correlation/index.d.ts.map +1 -0
- package/dist/Correlation/index.js +11 -0
- package/dist/Correlation/index.js.map +1 -0
- package/dist/EventSequences/EventSequence.d.ts.map +1 -1
- package/dist/EventSequences/EventSequence.js +45 -46
- package/dist/EventSequences/EventSequence.js.map +1 -1
- package/dist/Identity/IIdentityProvider.d.ts +21 -0
- package/dist/Identity/IIdentityProvider.d.ts.map +1 -0
- package/dist/Identity/IIdentityProvider.js +4 -0
- package/dist/Identity/IIdentityProvider.js.map +1 -0
- package/dist/Identity/Identity.d.ts +37 -0
- package/dist/Identity/Identity.d.ts.map +1 -0
- package/dist/Identity/Identity.js +60 -0
- package/dist/Identity/Identity.js.map +1 -0
- package/dist/Identity/IdentityProvider.d.ts +15 -0
- package/dist/Identity/IdentityProvider.d.ts.map +1 -0
- package/dist/Identity/IdentityProvider.js +23 -0
- package/dist/Identity/IdentityProvider.js.map +1 -0
- package/dist/Identity/index.d.ts +10 -0
- package/dist/Identity/index.d.ts.map +1 -0
- package/dist/Identity/index.js +11 -0
- package/dist/Identity/index.js.map +1 -0
- package/dist/Projections/Projections.d.ts +9 -1
- package/dist/Projections/Projections.d.ts.map +1 -1
- package/dist/Projections/Projections.js +70 -19
- package/dist/Projections/Projections.js.map +1 -1
- package/dist/Projections/declarative/ProjectionBuilderFor.d.ts +6 -0
- package/dist/Projections/declarative/ProjectionBuilderFor.d.ts.map +1 -1
- package/dist/Projections/declarative/ProjectionBuilderFor.js +18 -2
- package/dist/Projections/declarative/ProjectionBuilderFor.js.map +1 -1
- package/dist/Projections/declarative/projection.d.ts +5 -1
- package/dist/Projections/declarative/projection.d.ts.map +1 -1
- package/dist/Projections/declarative/projection.js +3 -2
- package/dist/Projections/declarative/projection.js.map +1 -1
- package/dist/Projections/modelBound/index.d.ts +0 -2
- package/dist/Projections/modelBound/index.d.ts.map +1 -1
- package/dist/Projections/modelBound/index.js +0 -1
- package/dist/Projections/modelBound/index.js.map +1 -1
- package/dist/Projections/modelBound/setFromContext.d.ts +4 -1
- package/dist/Projections/modelBound/setFromContext.d.ts.map +1 -1
- package/dist/Projections/modelBound/setFromContext.js +12 -7
- package/dist/Projections/modelBound/setFromContext.js.map +1 -1
- package/dist/Reactors/Reactors.d.ts.map +1 -1
- package/dist/Reactors/Reactors.js +1 -0
- package/dist/Reactors/Reactors.js.map +1 -1
- package/dist/Reducers/Reducers.d.ts +2 -0
- package/dist/Reducers/Reducers.d.ts.map +1 -1
- package/dist/Reducers/Reducers.js +60 -2
- package/dist/Reducers/Reducers.js.map +1 -1
- package/dist/Schemas/JsonSchemaGenerator.d.ts.map +1 -1
- package/dist/Schemas/JsonSchemaGenerator.js +17 -3
- package/dist/Schemas/JsonSchemaGenerator.js.map +1 -1
- package/dist/artifacts/DefaultClientArtifactsProvider.d.ts +0 -2
- package/dist/artifacts/DefaultClientArtifactsProvider.d.ts.map +1 -1
- package/dist/artifacts/DefaultClientArtifactsProvider.js +0 -4
- package/dist/artifacts/DefaultClientArtifactsProvider.js.map +1 -1
- package/dist/artifacts/IClientArtifactsProvider.d.ts +0 -2
- package/dist/artifacts/IClientArtifactsProvider.d.ts.map +1 -1
- package/dist/connection/Guid.d.ts +8 -1
- package/dist/connection/Guid.d.ts.map +1 -1
- package/dist/connection/Guid.js +24 -1
- package/dist/connection/Guid.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/sinks/WellKnownSinks.d.ts +15 -0
- package/dist/sinks/WellKnownSinks.d.ts.map +1 -0
- package/dist/sinks/WellKnownSinks.js +17 -0
- package/dist/sinks/WellKnownSinks.js.map +1 -0
- package/dist/sinks/index.d.ts +2 -0
- package/dist/sinks/index.d.ts.map +1 -0
- package/dist/sinks/index.js +4 -0
- package/dist/sinks/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/DecoratorType.d.ts +1 -3
- package/dist/types/DecoratorType.d.ts.map +1 -1
- package/dist/types/DecoratorType.js +0 -2
- package/dist/types/DecoratorType.js.map +1 -1
- package/index.ts +4 -0
- package/package.json +2 -2
- package/sinks/WellKnownSinks.ts +21 -0
- package/sinks/index.ts +4 -0
- package/types/DecoratorType.ts +1 -4
- package/Projections/modelBound/modelBound.ts +0 -59
- package/dist/Grpc.d.ts +0 -19
- package/dist/Grpc.d.ts.map +0 -1
- package/dist/Grpc.js +0 -33
- package/dist/Grpc.js.map +0 -1
- package/dist/Projections/modelBound/modelBound.d.ts +0 -31
- package/dist/Projections/modelBound/modelBound.d.ts.map +0 -1
- package/dist/Projections/modelBound/modelBound.js +0 -39
- package/dist/Projections/modelBound/modelBound.js.map +0 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Identity } from './Identity';
|
|
2
|
+
/**
|
|
3
|
+
* Defines a system that can provide and manage the current {@link Identity} for the active call context.
|
|
4
|
+
*/
|
|
5
|
+
export interface IIdentityProvider {
|
|
6
|
+
/**
|
|
7
|
+
* Gets the current identity for the active call context.
|
|
8
|
+
* @returns The current {@link Identity}, or {@link Identity.system} if none has been set.
|
|
9
|
+
*/
|
|
10
|
+
getCurrent(): Identity;
|
|
11
|
+
/**
|
|
12
|
+
* Sets the current identity for the active call context.
|
|
13
|
+
* @param identity - The {@link Identity} to set.
|
|
14
|
+
*/
|
|
15
|
+
setCurrentIdentity(identity: Identity): void;
|
|
16
|
+
/**
|
|
17
|
+
* Clears the current identity for the active call context, resetting it to {@link Identity.system}.
|
|
18
|
+
*/
|
|
19
|
+
clearCurrentIdentity(): void;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=IIdentityProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IIdentityProvider.d.ts","sourceRoot":"","sources":["../../Identity/IIdentityProvider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B;;;OAGG;IACH,UAAU,IAAI,QAAQ,CAAC;IAEvB;;;OAGG;IACH,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAE7C;;OAEG;IACH,oBAAoB,IAAI,IAAI,CAAC;CAChC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IIdentityProvider.js","sourceRoot":"","sources":["../../Identity/IIdentityProvider.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents an identity of something that is responsible for causing a state change.
|
|
3
|
+
* An identity can be a user, a system, a service or anything else that can be identified.
|
|
4
|
+
*/
|
|
5
|
+
export declare class Identity {
|
|
6
|
+
readonly subject: string;
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly userName: string;
|
|
9
|
+
readonly onBehalfOf?: Identity | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* The identity used when not set.
|
|
12
|
+
*/
|
|
13
|
+
static readonly notSet: Identity;
|
|
14
|
+
/**
|
|
15
|
+
* The identity used when the identity is not known.
|
|
16
|
+
*/
|
|
17
|
+
static readonly unknown: Identity;
|
|
18
|
+
/**
|
|
19
|
+
* The identity used when the system is the cause.
|
|
20
|
+
*/
|
|
21
|
+
static readonly system: Identity;
|
|
22
|
+
/**
|
|
23
|
+
* Initializes a new instance of the {@link Identity} class.
|
|
24
|
+
* @param subject - The identifier of the identity, referred to as subject.
|
|
25
|
+
* @param name - Name of the identity.
|
|
26
|
+
* @param userName - Optional username, defaults to empty string.
|
|
27
|
+
* @param onBehalfOf - Optional behalf of {@link Identity}.
|
|
28
|
+
*/
|
|
29
|
+
constructor(subject: string, name: string, userName?: string, onBehalfOf?: Identity | undefined);
|
|
30
|
+
/**
|
|
31
|
+
* Returns a new {@link Identity} chain with duplicate subjects removed.
|
|
32
|
+
* The first occurrence of each subject is kept.
|
|
33
|
+
* @returns A new {@link Identity} with duplicates removed from the chain.
|
|
34
|
+
*/
|
|
35
|
+
withoutDuplicates(): Identity;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=Identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Identity.d.ts","sourceRoot":"","sources":["../../Identity/Identity.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,qBAAa,QAAQ;IAwBb,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ;IA1BlC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,WAAkF;IAExG;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAO,WAAkF;IAEzG;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,WAAgF;IAEtG;;;;;;OAMG;gBAEU,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,MAAW,EACrB,UAAU,CAAC,EAAE,QAAQ,YAAA;IAGlC;;;;OAIG;IACH,iBAAiB,IAAI,QAAQ;CAkBhC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
/**
|
|
4
|
+
* Represents an identity of something that is responsible for causing a state change.
|
|
5
|
+
* An identity can be a user, a system, a service or anything else that can be identified.
|
|
6
|
+
*/
|
|
7
|
+
export class Identity {
|
|
8
|
+
subject;
|
|
9
|
+
name;
|
|
10
|
+
userName;
|
|
11
|
+
onBehalfOf;
|
|
12
|
+
/**
|
|
13
|
+
* The identity used when not set.
|
|
14
|
+
*/
|
|
15
|
+
static notSet = new Identity('1efc9b81-0612-4466-962c-86acc4e9a028', '[Not Set]', '[Not Set]');
|
|
16
|
+
/**
|
|
17
|
+
* The identity used when the identity is not known.
|
|
18
|
+
*/
|
|
19
|
+
static unknown = new Identity('3321cf62-db16-425e-8173-99fcfefe11dd', '[Unknown]', '[Unknown]');
|
|
20
|
+
/**
|
|
21
|
+
* The identity used when the system is the cause.
|
|
22
|
+
*/
|
|
23
|
+
static system = new Identity('5d032c92-9d5e-41eb-947a-ee5314ed0032', '[System]', '[System]');
|
|
24
|
+
/**
|
|
25
|
+
* Initializes a new instance of the {@link Identity} class.
|
|
26
|
+
* @param subject - The identifier of the identity, referred to as subject.
|
|
27
|
+
* @param name - Name of the identity.
|
|
28
|
+
* @param userName - Optional username, defaults to empty string.
|
|
29
|
+
* @param onBehalfOf - Optional behalf of {@link Identity}.
|
|
30
|
+
*/
|
|
31
|
+
constructor(subject, name, userName = '', onBehalfOf) {
|
|
32
|
+
this.subject = subject;
|
|
33
|
+
this.name = name;
|
|
34
|
+
this.userName = userName;
|
|
35
|
+
this.onBehalfOf = onBehalfOf;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Returns a new {@link Identity} chain with duplicate subjects removed.
|
|
39
|
+
* The first occurrence of each subject is kept.
|
|
40
|
+
* @returns A new {@link Identity} with duplicates removed from the chain.
|
|
41
|
+
*/
|
|
42
|
+
withoutDuplicates() {
|
|
43
|
+
const seen = new Set();
|
|
44
|
+
const chain = [];
|
|
45
|
+
let current = this;
|
|
46
|
+
while (current !== undefined) {
|
|
47
|
+
if (!seen.has(current.subject)) {
|
|
48
|
+
seen.add(current.subject);
|
|
49
|
+
chain.push(current);
|
|
50
|
+
}
|
|
51
|
+
current = current.onBehalfOf;
|
|
52
|
+
}
|
|
53
|
+
let result;
|
|
54
|
+
for (let i = chain.length - 1; i >= 0; i--) {
|
|
55
|
+
result = new Identity(chain[i].subject, chain[i].name, chain[i].userName, result);
|
|
56
|
+
}
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=Identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Identity.js","sourceRoot":"","sources":["../../Identity/Identity.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG;;;GAGG;AACH,MAAM,OAAO,QAAQ;IAwBJ;IACA;IACA;IACA;IA1Bb;;OAEG;IACH,MAAM,CAAU,MAAM,GAAG,IAAI,QAAQ,CAAC,sCAAsC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAExG;;OAEG;IACH,MAAM,CAAU,OAAO,GAAG,IAAI,QAAQ,CAAC,sCAAsC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAEzG;;OAEG;IACH,MAAM,CAAU,MAAM,GAAG,IAAI,QAAQ,CAAC,sCAAsC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEtG;;;;;;OAMG;IACH,YACa,OAAe,EACf,IAAY,EACZ,WAAmB,EAAE,EACrB,UAAqB;QAHrB,YAAO,GAAP,OAAO,CAAQ;QACf,SAAI,GAAJ,IAAI,CAAQ;QACZ,aAAQ,GAAR,QAAQ,CAAa;QACrB,eAAU,GAAV,UAAU,CAAW;IAC/B,CAAC;IAEJ;;;;OAIG;IACH,iBAAiB;QACb,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,KAAK,GAAe,EAAE,CAAC;QAC7B,IAAI,OAAO,GAAyB,IAAI,CAAC;QACzC,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;QACjC,CAAC;QAED,IAAI,MAA4B,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,MAAO,CAAC;IACnB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Identity } from './Identity';
|
|
2
|
+
import { IIdentityProvider } from './IIdentityProvider';
|
|
3
|
+
/**
|
|
4
|
+
* Implements {@link IIdentityProvider} using {@link AsyncLocalStorage} to scope the identity to the active async call context.
|
|
5
|
+
*/
|
|
6
|
+
export declare class IdentityProvider implements IIdentityProvider {
|
|
7
|
+
private readonly _storage;
|
|
8
|
+
/** @inheritdoc */
|
|
9
|
+
getCurrent(): Identity;
|
|
10
|
+
/** @inheritdoc */
|
|
11
|
+
setCurrentIdentity(identity: Identity): void;
|
|
12
|
+
/** @inheritdoc */
|
|
13
|
+
clearCurrentIdentity(): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=IdentityProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentityProvider.d.ts","sourceRoot":"","sources":["../../Identity/IdentityProvider.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;GAEG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAE9D,kBAAkB;IAClB,UAAU,IAAI,QAAQ;IAItB,kBAAkB;IAClB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAI5C,kBAAkB;IAClB,oBAAoB,IAAI,IAAI;CAG/B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
import { AsyncLocalStorage } from 'async_hooks';
|
|
4
|
+
import { Identity } from './Identity';
|
|
5
|
+
/**
|
|
6
|
+
* Implements {@link IIdentityProvider} using {@link AsyncLocalStorage} to scope the identity to the active async call context.
|
|
7
|
+
*/
|
|
8
|
+
export class IdentityProvider {
|
|
9
|
+
_storage = new AsyncLocalStorage();
|
|
10
|
+
/** @inheritdoc */
|
|
11
|
+
getCurrent() {
|
|
12
|
+
return this._storage.getStore() ?? Identity.system;
|
|
13
|
+
}
|
|
14
|
+
/** @inheritdoc */
|
|
15
|
+
setCurrentIdentity(identity) {
|
|
16
|
+
this._storage.enterWith(identity);
|
|
17
|
+
}
|
|
18
|
+
/** @inheritdoc */
|
|
19
|
+
clearCurrentIdentity() {
|
|
20
|
+
this._storage.enterWith(Identity.system);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=IdentityProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentityProvider.js","sourceRoot":"","sources":["../../Identity/IdentityProvider.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACR,QAAQ,GAAG,IAAI,iBAAiB,EAAY,CAAC;IAE9D,kBAAkB;IAClB,UAAU;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC;IACvD,CAAC;IAED,kBAAkB;IAClB,kBAAkB,CAAC,QAAkB;QACjC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,kBAAkB;IAClB,oBAAoB;QAChB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;CACJ"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { Identity } from './Identity';
|
|
2
|
+
export type { IIdentityProvider } from './IIdentityProvider';
|
|
3
|
+
export { IdentityProvider } from './IdentityProvider';
|
|
4
|
+
import { IdentityProvider } from './IdentityProvider';
|
|
5
|
+
/**
|
|
6
|
+
* The default singleton {@link IdentityProvider} for the process.
|
|
7
|
+
* Use this to get and set the identity for the current async call context.
|
|
8
|
+
*/
|
|
9
|
+
export declare const identityProvider: IdentityProvider;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../Identity/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
export { Identity } from './Identity';
|
|
4
|
+
export { IdentityProvider } from './IdentityProvider';
|
|
5
|
+
import { IdentityProvider } from './IdentityProvider';
|
|
6
|
+
/**
|
|
7
|
+
* The default singleton {@link IdentityProvider} for the process.
|
|
8
|
+
* Use this to get and set the identity for the current async call context.
|
|
9
|
+
*/
|
|
10
|
+
export const identityProvider = new IdentityProvider();
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../Identity/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
|
|
@@ -11,6 +11,7 @@ export declare class Projections implements IProjections {
|
|
|
11
11
|
private readonly _clientArtifacts;
|
|
12
12
|
private readonly _declarative;
|
|
13
13
|
private readonly _modelBound;
|
|
14
|
+
private readonly _logger;
|
|
14
15
|
/**
|
|
15
16
|
* Creates a new {@link Projections} instance.
|
|
16
17
|
* @param _clientArtifacts - Provider for discovered client artifact types.
|
|
@@ -20,6 +21,7 @@ export declare class Projections implements IProjections {
|
|
|
20
21
|
discover(): Promise<void>;
|
|
21
22
|
/** @inheritdoc */
|
|
22
23
|
register(): Promise<void>;
|
|
24
|
+
private registerWithRetry;
|
|
23
25
|
private buildReadModelDefinitions;
|
|
24
26
|
private getReadModelSchema;
|
|
25
27
|
private buildDeclarativeDefinition;
|
|
@@ -31,6 +33,12 @@ export declare class Projections implements IProjections {
|
|
|
31
33
|
private ensureJoinEntry;
|
|
32
34
|
private toContractEventType;
|
|
33
35
|
private getEventTypeMapKey;
|
|
34
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Computes a stable, deterministic ISO timestamp from the projection definition content,
|
|
38
|
+
* excluding the LastUpdated field itself. This ensures the server does not interpret
|
|
39
|
+
* a repeated registration of an unchanged definition as a definition change, which
|
|
40
|
+
* would otherwise trigger an unnecessary auto-replay.
|
|
41
|
+
*/
|
|
42
|
+
private computeStableLastUpdated;
|
|
35
43
|
}
|
|
36
44
|
//# sourceMappingURL=Projections.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Projections.d.ts","sourceRoot":"","sources":["../../Projections/Projections.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Projections.d.ts","sourceRoot":"","sources":["../../Projections/Projections.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAOpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA+B9C;;;GAGG;AACH,qBAAa,WAAY,YAAW,YAAY;IAWxC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAZrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAE9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8E;IAEtG;;;OAGG;gBAEkB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,mBAAmB,EAChC,gBAAgB,EAAE,wBAAwB;IAG/D,kBAAkB;IACZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAoC/B,kBAAkB;IACZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAiCjB,iBAAiB;IA8B/B,OAAO,CAAC,yBAAyB;IAgCjC,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,0BAA0B;IA6BlC,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,yBAAyB;IAsIjC,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,sCAAsC;IA2B9C,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,kBAAkB;IAI1B;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;CASnC"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
// Copyright (c) Cratis. All rights reserved.
|
|
2
2
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
import { diag } from '@opentelemetry/api';
|
|
3
4
|
import { AutoMap, ProjectionOwner } from '@cratis/chronicle.contracts';
|
|
5
|
+
import { toContractsGuid } from '../connection/Guid';
|
|
4
6
|
import { EventSequenceId } from '../EventSequences/EventSequenceId';
|
|
5
7
|
import { getEventTypeFor } from '../Events/eventTypeDecorator';
|
|
6
8
|
import { getReadModelMetadata } from '../ReadModels';
|
|
9
|
+
import { WellKnownSinks } from '../sinks';
|
|
7
10
|
import { TypeIntrospector } from '../types';
|
|
8
11
|
import { getProjectionMetadata } from './declarative/projection';
|
|
9
12
|
import { ProjectionBuilderFor } from './declarative/ProjectionBuilderFor';
|
|
@@ -35,6 +38,7 @@ export class Projections {
|
|
|
35
38
|
_clientArtifacts;
|
|
36
39
|
_declarative = new Map();
|
|
37
40
|
_modelBound = new Map();
|
|
41
|
+
_logger = diag.createComponentLogger({ namespace: '@cratis/chronicle/Projections' });
|
|
38
42
|
/**
|
|
39
43
|
* Creates a new {@link Projections} instance.
|
|
40
44
|
* @param _clientArtifacts - Provider for discovered client artifact types.
|
|
@@ -48,35 +52,44 @@ export class Projections {
|
|
|
48
52
|
async discover() {
|
|
49
53
|
this._declarative.clear();
|
|
50
54
|
this._modelBound.clear();
|
|
51
|
-
|
|
55
|
+
const declarativeTypes = this._clientArtifacts.projections;
|
|
56
|
+
const readModelTypes = this._clientArtifacts.readModels;
|
|
57
|
+
this._logger.debug('Discovering projections', { declarativeCount: declarativeTypes.length, readModelCount: readModelTypes.length });
|
|
58
|
+
for (const type of declarativeTypes) {
|
|
52
59
|
const metadata = getProjectionMetadata(type);
|
|
53
60
|
if (metadata) {
|
|
61
|
+
this._logger.debug('Discovered declarative projection', { projectionId: metadata.id.value, type: type.name });
|
|
54
62
|
this._declarative.set(metadata.id.value, type);
|
|
55
63
|
}
|
|
56
64
|
}
|
|
57
|
-
for (const type of
|
|
65
|
+
for (const type of readModelTypes) {
|
|
58
66
|
if (!hasFromEventMetadata(type)) {
|
|
59
67
|
continue;
|
|
60
68
|
}
|
|
61
69
|
const metadata = this.resolveModelBoundMetadata(type);
|
|
62
70
|
if (!metadata) {
|
|
71
|
+
this._logger.debug('Read model has @fromEvent but no model-bound metadata resolved', { type: type.name });
|
|
63
72
|
continue;
|
|
64
73
|
}
|
|
74
|
+
this._logger.debug('Discovered model-bound projection', { projectionId: metadata.id.value, type: type.name });
|
|
65
75
|
if (!this._modelBound.has(metadata.id.value)) {
|
|
66
76
|
this._modelBound.set(metadata.id.value, type);
|
|
67
77
|
}
|
|
68
78
|
}
|
|
79
|
+
this._logger.debug('Projection discovery complete', { declarativeCount: this._declarative.size, modelBoundCount: this._modelBound.size });
|
|
69
80
|
}
|
|
70
81
|
/** @inheritdoc */
|
|
71
82
|
async register() {
|
|
72
83
|
if (this._declarative.size === 0 && this._modelBound.size === 0) {
|
|
73
84
|
await this.discover();
|
|
74
85
|
}
|
|
86
|
+
this._logger.info('Registering projections', { declarativeCount: this._declarative.size, modelBoundCount: this._modelBound.size });
|
|
75
87
|
const projections = [
|
|
76
88
|
...Array.from(this._declarative.values()).map(type => this.buildDeclarativeDefinition(type)),
|
|
77
89
|
...Array.from(this._modelBound.values()).map(type => this.buildModelBoundDefinition(type))
|
|
78
90
|
];
|
|
79
91
|
if (projections.length === 0) {
|
|
92
|
+
this._logger.info('No projections to register');
|
|
80
93
|
return;
|
|
81
94
|
}
|
|
82
95
|
const readModels = this.buildReadModelDefinitions(projections);
|
|
@@ -89,16 +102,37 @@ export class Projections {
|
|
|
89
102
|
});
|
|
90
103
|
}
|
|
91
104
|
for (const projection of projections) {
|
|
105
|
+
const identifier = String(projection.Identifier ?? '<unknown>');
|
|
106
|
+
await this.registerWithRetry(projection, identifier);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
async registerWithRetry(projection, identifier, maxAttempts = 5) {
|
|
110
|
+
let delay = 2000;
|
|
111
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
92
112
|
try {
|
|
113
|
+
this._logger.info('Registering projection', { identifier, readModel: projection.ReadModel, attempt });
|
|
93
114
|
await this._connection.projections.register({
|
|
94
115
|
EventStore: this._eventStore,
|
|
95
116
|
Owner: ProjectionOwner.PROJECTION_OWNER_Client,
|
|
96
117
|
Projections: [projection]
|
|
97
118
|
});
|
|
119
|
+
this._logger.info('Projection registered successfully', { identifier });
|
|
120
|
+
return;
|
|
98
121
|
}
|
|
99
122
|
catch (error) {
|
|
100
|
-
const
|
|
101
|
-
|
|
123
|
+
const msg = String(error);
|
|
124
|
+
const isTransient = msg.includes('UNKNOWN') || msg.includes('UNAVAILABLE') || msg.includes('INTERNAL');
|
|
125
|
+
if (!isTransient || attempt === maxAttempts) {
|
|
126
|
+
throw new Error(`Failed to register projection '${identifier}' after ${attempt} attempt(s): ${msg}`);
|
|
127
|
+
}
|
|
128
|
+
this._logger.warn('Projection registration failed with transient error, retrying', {
|
|
129
|
+
identifier,
|
|
130
|
+
attempt,
|
|
131
|
+
nextAttemptInMs: delay,
|
|
132
|
+
error: msg
|
|
133
|
+
});
|
|
134
|
+
await new Promise(resolve => setTimeout(resolve, delay));
|
|
135
|
+
delay = Math.min(delay * 2, 15000);
|
|
102
136
|
}
|
|
103
137
|
}
|
|
104
138
|
}
|
|
@@ -117,8 +151,8 @@ export class Projections {
|
|
|
117
151
|
ContainerName: readModelIdentifier,
|
|
118
152
|
DisplayName: readModelIdentifier,
|
|
119
153
|
Sink: {
|
|
120
|
-
ConfigurationId:
|
|
121
|
-
TypeId:
|
|
154
|
+
ConfigurationId: toContractsGuid(WellKnownSinks.Null),
|
|
155
|
+
TypeId: toContractsGuid(WellKnownSinks.MongoDB)
|
|
122
156
|
},
|
|
123
157
|
Schema: this.getReadModelSchema(readModelIdentifier),
|
|
124
158
|
Indexes: [],
|
|
@@ -153,11 +187,19 @@ export class Projections {
|
|
|
153
187
|
const definition = builder.build(metadata.id.value, type.name);
|
|
154
188
|
const explicitReadModelIdentifier = definition.ReadModel;
|
|
155
189
|
if (explicitReadModelIdentifier === type.name) {
|
|
156
|
-
|
|
157
|
-
if (
|
|
158
|
-
|
|
190
|
+
// Use explicit readModelType from decorator if provided
|
|
191
|
+
if (metadata.readModelType) {
|
|
192
|
+
const rm = getReadModelMetadata(metadata.readModelType);
|
|
193
|
+
definition.ReadModel = rm?.id.value ?? metadata.readModelType.name;
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
const inferredReadModelIdentifier = this.inferReadModelIdentifier(builder.getMappedReadModelProperties());
|
|
197
|
+
if (inferredReadModelIdentifier) {
|
|
198
|
+
definition.ReadModel = inferredReadModelIdentifier;
|
|
199
|
+
}
|
|
159
200
|
}
|
|
160
201
|
}
|
|
202
|
+
definition.LastUpdated = { Value: this.computeStableLastUpdated(definition) };
|
|
161
203
|
return definition;
|
|
162
204
|
}
|
|
163
205
|
inferReadModelIdentifier(mappedProperties) {
|
|
@@ -267,7 +309,7 @@ export class Projections {
|
|
|
267
309
|
: (fromEvery.property ?? property);
|
|
268
310
|
}
|
|
269
311
|
}
|
|
270
|
-
|
|
312
|
+
const definition = {
|
|
271
313
|
EventSequenceId: metadata.eventSequenceId ?? EventSequenceId.eventLog.value,
|
|
272
314
|
Identifier: metadata.id.value,
|
|
273
315
|
ReadModel: metadata.readModelIdentifier,
|
|
@@ -283,14 +325,15 @@ export class Projections {
|
|
|
283
325
|
IncludeChildren: false,
|
|
284
326
|
AutoMap: AutoMap.Inherit
|
|
285
327
|
},
|
|
286
|
-
FromEventProperty: undefined,
|
|
287
328
|
RemovedWith: Array.from(removedWithByEventType.values()),
|
|
288
329
|
RemovedWithJoin: Array.from(removedWithJoinByEventType.values()),
|
|
289
|
-
LastUpdated: { Value:
|
|
330
|
+
LastUpdated: { Value: '' },
|
|
290
331
|
Tags: [],
|
|
291
|
-
AutoMap: AutoMap.
|
|
332
|
+
AutoMap: AutoMap.Enabled,
|
|
292
333
|
Nested: {}
|
|
293
334
|
};
|
|
335
|
+
definition.LastUpdated = { Value: this.computeStableLastUpdated(definition) };
|
|
336
|
+
return definition;
|
|
294
337
|
}
|
|
295
338
|
resolveModelBoundMetadata(type) {
|
|
296
339
|
const readModelMetadata = getReadModelMetadata(type);
|
|
@@ -379,12 +422,20 @@ export class Projections {
|
|
|
379
422
|
getEventTypeMapKey(eventType) {
|
|
380
423
|
return `${eventType.Id}:${eventType.Generation}:${eventType.Tombstone ? '1' : '0'}`;
|
|
381
424
|
}
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
425
|
+
/**
|
|
426
|
+
* Computes a stable, deterministic ISO timestamp from the projection definition content,
|
|
427
|
+
* excluding the LastUpdated field itself. This ensures the server does not interpret
|
|
428
|
+
* a repeated registration of an unchanged definition as a definition change, which
|
|
429
|
+
* would otherwise trigger an unnecessary auto-replay.
|
|
430
|
+
*/
|
|
431
|
+
computeStableLastUpdated(definition) {
|
|
432
|
+
const { LastUpdated: _omit, ...rest } = definition;
|
|
433
|
+
const content = JSON.stringify(rest, Object.keys(rest).sort());
|
|
434
|
+
let hash = 5381;
|
|
435
|
+
for (let i = 0; i < content.length; i++) {
|
|
436
|
+
hash = ((hash << 5) + hash + content.charCodeAt(i)) >>> 0;
|
|
437
|
+
}
|
|
438
|
+
return new Date(hash * 1000).toISOString();
|
|
388
439
|
}
|
|
389
440
|
}
|
|
390
441
|
//# sourceMappingURL=Projections.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Projections.js","sourceRoot":"","sources":["../../Projections/Projections.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Projections.js","sourceRoot":"","sources":["../../Projections/Projections.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,5 +64,11 @@ export declare class ProjectionBuilderFor<TReadModel> implements IProjectionBuil
|
|
|
64
64
|
*/
|
|
65
65
|
getMappedReadModelProperties(): string[];
|
|
66
66
|
private toContractEventType;
|
|
67
|
+
/**
|
|
68
|
+
* Computes a stable, deterministic ISO timestamp from the projection definition content,
|
|
69
|
+
* excluding the LastUpdated field itself. This ensures the server does not interpret
|
|
70
|
+
* a repeated registration of an unchanged definition as a definition change.
|
|
71
|
+
*/
|
|
72
|
+
private computeStableLastUpdated;
|
|
67
73
|
}
|
|
68
74
|
//# sourceMappingURL=ProjectionBuilderFor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectionBuilderFor.d.ts","sourceRoot":"","sources":["../../../Projections/declarative/ProjectionBuilderFor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ProjectionBuilderFor.d.ts","sourceRoot":"","sources":["../../../Projections/declarative/ProjectionBuilderFor.ts"],"names":[],"mappings":"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"}
|
|
@@ -150,7 +150,7 @@ export class ProjectionBuilderFor {
|
|
|
150
150
|
* @returns The projection definition object ready to send to the kernel.
|
|
151
151
|
*/
|
|
152
152
|
build(identifier, readModelName) {
|
|
153
|
-
|
|
153
|
+
const definition = {
|
|
154
154
|
EventSequenceId: this._eventSequenceId,
|
|
155
155
|
Identifier: identifier,
|
|
156
156
|
ReadModel: this._containerName ?? readModelName,
|
|
@@ -165,11 +165,13 @@ export class ProjectionBuilderFor {
|
|
|
165
165
|
FromEventProperty: undefined,
|
|
166
166
|
RemovedWith: this._removedWith,
|
|
167
167
|
RemovedWithJoin: this._removedWithJoin,
|
|
168
|
-
LastUpdated: { Value:
|
|
168
|
+
LastUpdated: { Value: '' },
|
|
169
169
|
Tags: [],
|
|
170
170
|
AutoMap: this._autoMap,
|
|
171
171
|
Nested: {}
|
|
172
172
|
};
|
|
173
|
+
definition.LastUpdated = { Value: this.computeStableLastUpdated(definition) };
|
|
174
|
+
return definition;
|
|
173
175
|
}
|
|
174
176
|
/**
|
|
175
177
|
* Gets the set of read model properties referenced by configured mappings.
|
|
@@ -203,5 +205,19 @@ export class ProjectionBuilderFor {
|
|
|
203
205
|
Tombstone: false
|
|
204
206
|
};
|
|
205
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* Computes a stable, deterministic ISO timestamp from the projection definition content,
|
|
210
|
+
* excluding the LastUpdated field itself. This ensures the server does not interpret
|
|
211
|
+
* a repeated registration of an unchanged definition as a definition change.
|
|
212
|
+
*/
|
|
213
|
+
computeStableLastUpdated(definition) {
|
|
214
|
+
const { LastUpdated: _omit, ...rest } = definition;
|
|
215
|
+
const content = JSON.stringify(rest, Object.keys(rest).sort());
|
|
216
|
+
let hash = 5381;
|
|
217
|
+
for (let i = 0; i < content.length; i++) {
|
|
218
|
+
hash = ((hash << 5) + hash + content.charCodeAt(i)) >>> 0;
|
|
219
|
+
}
|
|
220
|
+
return new Date(hash * 1000).toISOString();
|
|
221
|
+
}
|
|
206
222
|
}
|
|
207
223
|
//# sourceMappingURL=ProjectionBuilderFor.js.map
|