@cratis/chronicle 6.42.0 → 6.42.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/Metrics.ts +4 -0
- package/WellKnownTelemetryNames.ts +23 -5
- package/dist/Metrics.d.ts +4 -0
- package/dist/Metrics.d.ts.map +1 -1
- package/dist/Metrics.js +4 -0
- package/dist/Metrics.js.map +1 -1
- package/dist/WellKnownTelemetryNames.d.ts +23 -5
- package/dist/WellKnownTelemetryNames.d.ts.map +1 -1
- package/dist/WellKnownTelemetryNames.js +23 -5
- package/dist/WellKnownTelemetryNames.js.map +1 -1
- package/dist/events/tagDecorator.d.ts +2 -2
- package/dist/events/tagDecorator.js +2 -2
- package/dist/projections/ProjectionDefinitionCompiler.d.ts.map +1 -1
- package/dist/projections/ProjectionDefinitionCompiler.js +3 -1
- package/dist/projections/ProjectionDefinitionCompiler.js.map +1 -1
- package/dist/telemetry/ChronicleTelemetryOptions.d.ts +6 -1
- package/dist/telemetry/ChronicleTelemetryOptions.d.ts.map +1 -1
- package/events/tagDecorator.ts +2 -2
- package/package.json +2 -2
- package/projections/ProjectionDefinitionCompiler.ts +3 -1
- package/projections/for_ProjectionDefinitionCompiler/when_compiling_tags/with_legacy_decorators.legacy.spec.ts +87 -0
- package/projections/for_ProjectionDefinitionCompiler/when_compiling_tags/with_standard_decorators.standard.spec.ts +77 -0
- package/reactors/for_Reactors/against_a_kernel/when_replaying_once_only_reactors.integration.spec.ts +22 -3
- package/telemetry/ChronicleTelemetryOptions.ts +6 -1
package/Metrics.ts
CHANGED
|
@@ -66,6 +66,10 @@ function bridgeDuration(legacy: Histogram, shared: Histogram): Histogram {
|
|
|
66
66
|
/**
|
|
67
67
|
* Compatibility instruments: existing callers still record milliseconds and legacy attributes.
|
|
68
68
|
* Each measurement also records its shared-convention equivalent, without adding sensitive dimensions.
|
|
69
|
+
* This API and its dual recording remain available.
|
|
70
|
+
* Replacing the earlier "next major" plan, built-in legacy metric emission ends in an upcoming minor after
|
|
71
|
+
* ADR 0001's one-minor overlap. Compatibility APIs have no removal deadline.
|
|
72
|
+
* See https://github.com/Cratis/Chronicle.TypeScript/issues/171.
|
|
69
73
|
*/
|
|
70
74
|
export const ChronicleMetrics = {
|
|
71
75
|
eventsAppended: bridgeCounter(counter(names.legacyMetrics.eventsAppended,
|
|
@@ -1,10 +1,14 @@
|
|
|
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
3
|
|
|
4
|
-
/** Public telemetry names
|
|
4
|
+
/** Public telemetry names, including retained TypeScript compatibility constants. */
|
|
5
5
|
export const WellKnownTelemetryNames = {
|
|
6
6
|
scope: 'Cratis.Chronicle.Client',
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated Use scope. This historical scope is no longer emitted; the constant remains available.
|
|
9
|
+
* The revised timetable replaces the earlier "next major" plan: built-in legacy emission ends in an
|
|
10
|
+
* upcoming minor after ADR 0001's one-minor overlap. See https://github.com/Cratis/Chronicle.TypeScript/issues/171.
|
|
11
|
+
*/
|
|
8
12
|
legacyScope: '@cratis/chronicle',
|
|
9
13
|
attributes: {
|
|
10
14
|
correlationId: 'cratis.correlation_id',
|
|
@@ -23,7 +27,12 @@ export const WellKnownTelemetryNames = {
|
|
|
23
27
|
errorType: 'error.type',
|
|
24
28
|
exceptionType: 'exception.type'
|
|
25
29
|
},
|
|
26
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* @deprecated Use attributes. These constants remain available without a removal deadline.
|
|
32
|
+
* Replacing the earlier "next major" plan, built-in legacy attribute emission ends in an upcoming minor
|
|
33
|
+
* after ADR 0001's one-minor overlap, except the exact-string sequenceNumber attribute.
|
|
34
|
+
* See https://github.com/Cratis/Chronicle.TypeScript/issues/171.
|
|
35
|
+
*/
|
|
27
36
|
legacyAttributes: {
|
|
28
37
|
eventStore: 'chronicle.event_store',
|
|
29
38
|
namespace: 'chronicle.namespace',
|
|
@@ -37,7 +46,11 @@ export const WellKnownTelemetryNames = {
|
|
|
37
46
|
eventStreamType: 'chronicle.event_stream_type',
|
|
38
47
|
eventStreamId: 'chronicle.event_stream_id'
|
|
39
48
|
},
|
|
40
|
-
/**
|
|
49
|
+
/**
|
|
50
|
+
* @deprecated Use conventionSpans. These legacy constants remain available without a removal deadline.
|
|
51
|
+
* Replacing the earlier "next major" plan, built-in legacy span emission ends in an upcoming minor
|
|
52
|
+
* after ADR 0001's one-minor overlap. See https://github.com/Cratis/Chronicle.TypeScript/issues/171.
|
|
53
|
+
*/
|
|
41
54
|
spans: {
|
|
42
55
|
append: 'chronicle.event_sequences.append',
|
|
43
56
|
appendMany: 'chronicle.event_sequences.append_many',
|
|
@@ -75,7 +88,12 @@ export const WellKnownTelemetryNames = {
|
|
|
75
88
|
constraintViolations: 'cratis.chronicle.event_sequence.constraint_violations',
|
|
76
89
|
appendErrors: 'cratis.chronicle.event_sequence.append_errors'
|
|
77
90
|
},
|
|
78
|
-
/**
|
|
91
|
+
/**
|
|
92
|
+
* @deprecated Use metrics (duration units are seconds). These constants remain available without a removal deadline.
|
|
93
|
+
* Replacing the earlier "next major" plan, built-in legacy metric emission ends in an upcoming minor
|
|
94
|
+
* after ADR 0001's one-minor overlap. ChronicleMetrics retains compatibility recording.
|
|
95
|
+
* See https://github.com/Cratis/Chronicle.TypeScript/issues/171.
|
|
96
|
+
*/
|
|
79
97
|
legacyMetrics: {
|
|
80
98
|
eventsAppended: 'chronicle.events.appended',
|
|
81
99
|
batchAppendsPerformed: 'chronicle.events.batch_appends',
|
package/dist/Metrics.d.ts
CHANGED
|
@@ -16,6 +16,10 @@ export declare const ChronicleConventionMetrics: {
|
|
|
16
16
|
/**
|
|
17
17
|
* Compatibility instruments: existing callers still record milliseconds and legacy attributes.
|
|
18
18
|
* Each measurement also records its shared-convention equivalent, without adding sensitive dimensions.
|
|
19
|
+
* This API and its dual recording remain available.
|
|
20
|
+
* Replacing the earlier "next major" plan, built-in legacy metric emission ends in an upcoming minor after
|
|
21
|
+
* ADR 0001's one-minor overlap. Compatibility APIs have no removal deadline.
|
|
22
|
+
* See https://github.com/Cratis/Chronicle.TypeScript/issues/171.
|
|
19
23
|
*/
|
|
20
24
|
export declare const ChronicleMetrics: {
|
|
21
25
|
eventsAppended: Counter<Attributes>;
|
package/dist/Metrics.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Metrics.d.ts","sourceRoot":"","sources":["../Metrics.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,KAAK,UAAU,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI5F,yFAAyF;AACzF,eAAO,MAAM,kBAAkB,2BAAc,CAAC;AAE9C,0EAA0E;AAC1E,eAAO,MAAM,cAAc,oCAAsD,CAAC;AAmBlF,2FAA2F;AAC3F,eAAO,MAAM,0BAA0B;IACnC,cAAc;IACd,qBAAqB;IACrB,oBAAoB;IACpB,cAAc;IACd,kBAAkB;IAClB,oBAAoB;IACpB,YAAY;CACf,CAAC;AA0BF
|
|
1
|
+
{"version":3,"file":"Metrics.d.ts","sourceRoot":"","sources":["../Metrics.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,KAAK,UAAU,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI5F,yFAAyF;AACzF,eAAO,MAAM,kBAAkB,2BAAc,CAAC;AAE9C,0EAA0E;AAC1E,eAAO,MAAM,cAAc,oCAAsD,CAAC;AAmBlF,2FAA2F;AAC3F,eAAO,MAAM,0BAA0B;IACnC,cAAc;IACd,qBAAqB;IACrB,oBAAoB;IACpB,cAAc;IACd,kBAAkB;IAClB,oBAAoB;IACpB,YAAY;CACf,CAAC;AA0BF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB;IACzB,cAAc;IAEd,qBAAqB;IAErB,oBAAoB;IAEpB,cAAc;IACd,kBAAkB;IAClB,oBAAoB;IAEpB,YAAY;CAEf,CAAC"}
|
package/dist/Metrics.js
CHANGED
|
@@ -57,6 +57,10 @@ function bridgeDuration(legacy, shared) {
|
|
|
57
57
|
/**
|
|
58
58
|
* Compatibility instruments: existing callers still record milliseconds and legacy attributes.
|
|
59
59
|
* Each measurement also records its shared-convention equivalent, without adding sensitive dimensions.
|
|
60
|
+
* This API and its dual recording remain available.
|
|
61
|
+
* Replacing the earlier "next major" plan, built-in legacy metric emission ends in an upcoming minor after
|
|
62
|
+
* ADR 0001's one-minor overlap. Compatibility APIs have no removal deadline.
|
|
63
|
+
* See https://github.com/Cratis/Chronicle.TypeScript/issues/171.
|
|
60
64
|
*/
|
|
61
65
|
export const ChronicleMetrics = {
|
|
62
66
|
eventsAppended: bridgeCounter(counter(names.legacyMetrics.eventsAppended, 'Number of individual events appended to an event sequence.', '{event}'), ChronicleConventionMetrics.eventsAppended),
|
package/dist/Metrics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Metrics.js","sourceRoot":"","sources":["../Metrics.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Metrics.js","sourceRoot":"","sources":["../Metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
/** Public telemetry names
|
|
1
|
+
/** Public telemetry names, including retained TypeScript compatibility constants. */
|
|
2
2
|
export declare const WellKnownTelemetryNames: {
|
|
3
3
|
readonly scope: 'Cratis.Chronicle.Client';
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated Use scope. This historical scope is no longer emitted; the constant remains available.
|
|
6
|
+
* The revised timetable replaces the earlier "next major" plan: built-in legacy emission ends in an
|
|
7
|
+
* upcoming minor after ADR 0001's one-minor overlap. See https://github.com/Cratis/Chronicle.TypeScript/issues/171.
|
|
8
|
+
*/
|
|
5
9
|
readonly legacyScope: '@cratis/chronicle';
|
|
6
10
|
readonly attributes: {
|
|
7
11
|
readonly correlationId: 'cratis.correlation_id';
|
|
@@ -20,7 +24,12 @@ export declare const WellKnownTelemetryNames: {
|
|
|
20
24
|
readonly errorType: 'error.type';
|
|
21
25
|
readonly exceptionType: 'exception.type';
|
|
22
26
|
};
|
|
23
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* @deprecated Use attributes. These constants remain available without a removal deadline.
|
|
29
|
+
* Replacing the earlier "next major" plan, built-in legacy attribute emission ends in an upcoming minor
|
|
30
|
+
* after ADR 0001's one-minor overlap, except the exact-string sequenceNumber attribute.
|
|
31
|
+
* See https://github.com/Cratis/Chronicle.TypeScript/issues/171.
|
|
32
|
+
*/
|
|
24
33
|
readonly legacyAttributes: {
|
|
25
34
|
readonly eventStore: 'chronicle.event_store';
|
|
26
35
|
readonly namespace: 'chronicle.namespace';
|
|
@@ -34,7 +43,11 @@ export declare const WellKnownTelemetryNames: {
|
|
|
34
43
|
readonly eventStreamType: 'chronicle.event_stream_type';
|
|
35
44
|
readonly eventStreamId: 'chronicle.event_stream_id';
|
|
36
45
|
};
|
|
37
|
-
/**
|
|
46
|
+
/**
|
|
47
|
+
* @deprecated Use conventionSpans. These legacy constants remain available without a removal deadline.
|
|
48
|
+
* Replacing the earlier "next major" plan, built-in legacy span emission ends in an upcoming minor
|
|
49
|
+
* after ADR 0001's one-minor overlap. See https://github.com/Cratis/Chronicle.TypeScript/issues/171.
|
|
50
|
+
*/
|
|
38
51
|
readonly spans: {
|
|
39
52
|
readonly append: 'chronicle.event_sequences.append';
|
|
40
53
|
readonly appendMany: 'chronicle.event_sequences.append_many';
|
|
@@ -72,7 +85,12 @@ export declare const WellKnownTelemetryNames: {
|
|
|
72
85
|
readonly constraintViolations: 'cratis.chronicle.event_sequence.constraint_violations';
|
|
73
86
|
readonly appendErrors: 'cratis.chronicle.event_sequence.append_errors';
|
|
74
87
|
};
|
|
75
|
-
/**
|
|
88
|
+
/**
|
|
89
|
+
* @deprecated Use metrics (duration units are seconds). These constants remain available without a removal deadline.
|
|
90
|
+
* Replacing the earlier "next major" plan, built-in legacy metric emission ends in an upcoming minor
|
|
91
|
+
* after ADR 0001's one-minor overlap. ChronicleMetrics retains compatibility recording.
|
|
92
|
+
* See https://github.com/Cratis/Chronicle.TypeScript/issues/171.
|
|
93
|
+
*/
|
|
76
94
|
readonly legacyMetrics: {
|
|
77
95
|
readonly eventsAppended: 'chronicle.events.appended';
|
|
78
96
|
readonly batchAppendsPerformed: 'chronicle.events.batch_appends';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WellKnownTelemetryNames.d.ts","sourceRoot":"","sources":["../WellKnownTelemetryNames.ts"],"names":[],"mappings":"AAGA,
|
|
1
|
+
{"version":3,"file":"WellKnownTelemetryNames.d.ts","sourceRoot":"","sources":["../WellKnownTelemetryNames.ts"],"names":[],"mappings":"AAGA,qFAAqF;AACrF,eAAO,MAAM,uBAAuB;aAChC,KAAK,EAAE,yBAAyB;IAChC;;;;OAIG;aACH,WAAW,EAAE,mBAAmB;aAChC,UAAU;iBACN,aAAa,EAAE,uBAAuB;iBACtC,UAAU,EAAE,yBAAyB;iBACrC,SAAS,EAAE,8BAA8B;iBACzC,eAAe,EAAE,0BAA0B;iBAC3C,cAAc,EAAE,8BAA8B;iBAC9C,WAAW,EAAE,sBAAsB;iBACnC,mBAAmB,EAAE,8BAA8B;iBACnD,eAAe,EAAE,0BAA0B;iBAC3C,aAAa,EAAE,wBAAwB;iBACvC,UAAU,EAAE,oBAAoB;iBAChC,SAAS,EAAE,4CAA4C;iBACvD,eAAe,EAAE,oCAAoC;iBACrD,aAAa,EAAE,kCAAkC;iBACjD,SAAS,EAAE,YAAY;iBACvB,aAAa,EAAE,gBAAgB;;IAEnC;;;;;OAKG;aACH,gBAAgB;iBACZ,UAAU,EAAE,uBAAuB;iBACnC,SAAS,EAAE,qBAAqB;iBAChC,eAAe,EAAE,6BAA6B;iBAC9C,cAAc,EAAE,2BAA2B;iBAC3C,WAAW,EAAE,yBAAyB;iBACtC,mBAAmB,EAAE,iCAAiC;iBACtD,aAAa,EAAE,2BAA2B;iBAC1C,UAAU,EAAE,wBAAwB;iBACpC,SAAS,EAAE,sBAAsB;iBACjC,eAAe,EAAE,6BAA6B;iBAC9C,aAAa,EAAE,2BAA2B;;IAE9C;;;;OAIG;aACH,KAAK;iBACD,MAAM,EAAE,kCAAkC;iBAC1C,UAAU,EAAE,uCAAuC;iBACnD,qBAAqB,EAAE,oDAAoD;iBAC3E,YAAY,EAAE,0CAA0C;iBACxD,gCAAgC,EAAE,mEAAmE;iBACrG,qBAAqB,EAAE,oDAAoD;iBAC3E,MAAM,EAAE,kCAAkC;iBAC1C,oBAAoB,EAAE,mDAAmD;iBACzE,cAAc,EAAE,2CAA2C;iBAC3D,aAAa,EAAE,kCAAkC;iBACjD,cAAc,EAAE,mCAAmC;iBACnD,aAAa,EAAE,sCAAsC;;aAEzD,eAAe;iBACX,MAAM,EAAE,+CAA+C;iBACvD,UAAU,EAAE,oDAAoD;iBAChE,qBAAqB,EAAE,iEAAiE;iBACxF,YAAY,EAAE,uDAAuD;iBACrE,gCAAgC,EAAE,gFAAgF;iBAClH,qBAAqB,EAAE,iEAAiE;iBACxF,MAAM,EAAE,+CAA+C;iBACvD,oBAAoB,EAAE,gEAAgE;iBACtF,cAAc,EAAE,wDAAwD;iBACxE,aAAa,EAAE,yCAAyC;iBACxD,cAAc,EAAE,0CAA0C;iBAC1D,aAAa,EAAE,oDAAoD;;aAEvE,OAAO;iBACH,cAAc,EAAE,0CAA0C;iBAC1D,qBAAqB,EAAE,+CAA+C;iBACtE,oBAAoB,EAAE,yCAAyC;iBAC/D,cAAc,EAAE,iDAAiD;iBACjE,kBAAkB,EAAE,sDAAsD;iBAC1E,oBAAoB,EAAE,uDAAuD;iBAC7E,YAAY,EAAE,+CAA+C;;IAEjE;;;;;OAKG;aACH,aAAa;iBACT,cAAc,EAAE,2BAA2B;iBAC3C,qBAAqB,EAAE,gCAAgC;iBACvD,oBAAoB,EAAE,yCAAyC;iBAC/D,cAAc,EAAE,kCAAkC;iBAClD,kBAAkB,EAAE,uCAAuC;iBAC3D,oBAAoB,EAAE,wCAAwC;iBAC9D,YAAY,EAAE,gCAAgC;;CAE5C,CAAC"}
|
|
@@ -1,9 +1,13 @@
|
|
|
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
|
-
/** Public telemetry names
|
|
3
|
+
/** Public telemetry names, including retained TypeScript compatibility constants. */
|
|
4
4
|
export const WellKnownTelemetryNames = {
|
|
5
5
|
scope: 'Cratis.Chronicle.Client',
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated Use scope. This historical scope is no longer emitted; the constant remains available.
|
|
8
|
+
* The revised timetable replaces the earlier "next major" plan: built-in legacy emission ends in an
|
|
9
|
+
* upcoming minor after ADR 0001's one-minor overlap. See https://github.com/Cratis/Chronicle.TypeScript/issues/171.
|
|
10
|
+
*/
|
|
7
11
|
legacyScope: '@cratis/chronicle',
|
|
8
12
|
attributes: {
|
|
9
13
|
correlationId: 'cratis.correlation_id',
|
|
@@ -22,7 +26,12 @@ export const WellKnownTelemetryNames = {
|
|
|
22
26
|
errorType: 'error.type',
|
|
23
27
|
exceptionType: 'exception.type'
|
|
24
28
|
},
|
|
25
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* @deprecated Use attributes. These constants remain available without a removal deadline.
|
|
31
|
+
* Replacing the earlier "next major" plan, built-in legacy attribute emission ends in an upcoming minor
|
|
32
|
+
* after ADR 0001's one-minor overlap, except the exact-string sequenceNumber attribute.
|
|
33
|
+
* See https://github.com/Cratis/Chronicle.TypeScript/issues/171.
|
|
34
|
+
*/
|
|
26
35
|
legacyAttributes: {
|
|
27
36
|
eventStore: 'chronicle.event_store',
|
|
28
37
|
namespace: 'chronicle.namespace',
|
|
@@ -36,7 +45,11 @@ export const WellKnownTelemetryNames = {
|
|
|
36
45
|
eventStreamType: 'chronicle.event_stream_type',
|
|
37
46
|
eventStreamId: 'chronicle.event_stream_id'
|
|
38
47
|
},
|
|
39
|
-
/**
|
|
48
|
+
/**
|
|
49
|
+
* @deprecated Use conventionSpans. These legacy constants remain available without a removal deadline.
|
|
50
|
+
* Replacing the earlier "next major" plan, built-in legacy span emission ends in an upcoming minor
|
|
51
|
+
* after ADR 0001's one-minor overlap. See https://github.com/Cratis/Chronicle.TypeScript/issues/171.
|
|
52
|
+
*/
|
|
40
53
|
spans: {
|
|
41
54
|
append: 'chronicle.event_sequences.append',
|
|
42
55
|
appendMany: 'chronicle.event_sequences.append_many',
|
|
@@ -74,7 +87,12 @@ export const WellKnownTelemetryNames = {
|
|
|
74
87
|
constraintViolations: 'cratis.chronicle.event_sequence.constraint_violations',
|
|
75
88
|
appendErrors: 'cratis.chronicle.event_sequence.append_errors'
|
|
76
89
|
},
|
|
77
|
-
/**
|
|
90
|
+
/**
|
|
91
|
+
* @deprecated Use metrics (duration units are seconds). These constants remain available without a removal deadline.
|
|
92
|
+
* Replacing the earlier "next major" plan, built-in legacy metric emission ends in an upcoming minor
|
|
93
|
+
* after ADR 0001's one-minor overlap. ChronicleMetrics retains compatibility recording.
|
|
94
|
+
* See https://github.com/Cratis/Chronicle.TypeScript/issues/171.
|
|
95
|
+
*/
|
|
78
96
|
legacyMetrics: {
|
|
79
97
|
eventsAppended: 'chronicle.events.appended',
|
|
80
98
|
batchAppendsPerformed: 'chronicle.events.batch_appends',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WellKnownTelemetryNames.js","sourceRoot":"","sources":["../WellKnownTelemetryNames.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,
|
|
1
|
+
{"version":3,"file":"WellKnownTelemetryNames.js","sourceRoot":"","sources":["../WellKnownTelemetryNames.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,qFAAqF;AACrF,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACnC,KAAK,EAAE,yBAAyB;IAChC;;;;OAIG;IACH,WAAW,EAAE,mBAAmB;IAChC,UAAU,EAAE;QACR,aAAa,EAAE,uBAAuB;QACtC,UAAU,EAAE,yBAAyB;QACrC,SAAS,EAAE,8BAA8B;QACzC,eAAe,EAAE,0BAA0B;QAC3C,cAAc,EAAE,8BAA8B;QAC9C,WAAW,EAAE,sBAAsB;QACnC,mBAAmB,EAAE,8BAA8B;QACnD,eAAe,EAAE,0BAA0B;QAC3C,aAAa,EAAE,wBAAwB;QACvC,UAAU,EAAE,oBAAoB;QAChC,SAAS,EAAE,4CAA4C;QACvD,eAAe,EAAE,oCAAoC;QACrD,aAAa,EAAE,kCAAkC;QACjD,SAAS,EAAE,YAAY;QACvB,aAAa,EAAE,gBAAgB;KAClC;IACD;;;;;OAKG;IACH,gBAAgB,EAAE;QACd,UAAU,EAAE,uBAAuB;QACnC,SAAS,EAAE,qBAAqB;QAChC,eAAe,EAAE,6BAA6B;QAC9C,cAAc,EAAE,2BAA2B;QAC3C,WAAW,EAAE,yBAAyB;QACtC,mBAAmB,EAAE,iCAAiC;QACtD,aAAa,EAAE,2BAA2B;QAC1C,UAAU,EAAE,wBAAwB;QACpC,SAAS,EAAE,sBAAsB;QACjC,eAAe,EAAE,6BAA6B;QAC9C,aAAa,EAAE,2BAA2B;KAC7C;IACD;;;;OAIG;IACH,KAAK,EAAE;QACH,MAAM,EAAE,kCAAkC;QAC1C,UAAU,EAAE,uCAAuC;QACnD,qBAAqB,EAAE,oDAAoD;QAC3E,YAAY,EAAE,0CAA0C;QACxD,gCAAgC,EAAE,mEAAmE;QACrG,qBAAqB,EAAE,oDAAoD;QAC3E,MAAM,EAAE,kCAAkC;QAC1C,oBAAoB,EAAE,mDAAmD;QACzE,cAAc,EAAE,2CAA2C;QAC3D,aAAa,EAAE,kCAAkC;QACjD,cAAc,EAAE,mCAAmC;QACnD,aAAa,EAAE,sCAAsC;KACxD;IACD,eAAe,EAAE;QACb,MAAM,EAAE,+CAA+C;QACvD,UAAU,EAAE,oDAAoD;QAChE,qBAAqB,EAAE,iEAAiE;QACxF,YAAY,EAAE,uDAAuD;QACrE,gCAAgC,EAAE,gFAAgF;QAClH,qBAAqB,EAAE,iEAAiE;QACxF,MAAM,EAAE,+CAA+C;QACvD,oBAAoB,EAAE,gEAAgE;QACtF,cAAc,EAAE,wDAAwD;QACxE,aAAa,EAAE,yCAAyC;QACxD,cAAc,EAAE,0CAA0C;QAC1D,aAAa,EAAE,oDAAoD;KACtE;IACD,OAAO,EAAE;QACL,cAAc,EAAE,0CAA0C;QAC1D,qBAAqB,EAAE,+CAA+C;QACtE,oBAAoB,EAAE,yCAAyC;QAC/D,cAAc,EAAE,iDAAiD;QACjE,kBAAkB,EAAE,sDAAsD;QAC1E,oBAAoB,EAAE,uDAAuD;QAC7E,YAAY,EAAE,+CAA+C;KAChE;IACD;;;;;OAKG;IACH,aAAa,EAAE;QACX,cAAc,EAAE,2BAA2B;QAC3C,qBAAqB,EAAE,gCAAgC;QACvD,oBAAoB,EAAE,yCAAyC;QAC/D,cAAc,EAAE,kCAAkC;QAClD,kBAAkB,EAAE,uCAAuC;QAC3D,oBAAoB,EAAE,wCAAwC;QAC9D,YAAY,EAAE,gCAAgC;KACjD;CACK,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
2
|
import { Tag } from './Tag.js';
|
|
3
3
|
/**
|
|
4
|
-
* TypeScript decorator that labels an event type, reactor, or
|
|
4
|
+
* TypeScript decorator that labels an event type, reactor, reducer, projection class, or model-bound read model with one or more tags.
|
|
5
5
|
* This is the TypeScript equivalent of the C# `[Tag]` attribute.
|
|
6
6
|
*
|
|
7
7
|
* Applying the decorator more than once accumulates tags rather than replacing them, so
|
|
@@ -21,7 +21,7 @@ import { Tag } from './Tag.js';
|
|
|
21
21
|
*/
|
|
22
22
|
export declare function tag(...values: string[]): ClassDecorator;
|
|
23
23
|
/**
|
|
24
|
-
* TypeScript decorator that labels an event type, reactor, or
|
|
24
|
+
* TypeScript decorator that labels an event type, reactor, reducer, projection class, or model-bound read model with one or more tags.
|
|
25
25
|
* This is the TypeScript equivalent of the C# `[Tags]` attribute, and behaves identically to
|
|
26
26
|
* {@link tag} - use whichever reads more naturally at the call site.
|
|
27
27
|
*
|
|
@@ -6,7 +6,7 @@ import { mergeTags } from './mergeTags.js';
|
|
|
6
6
|
/** Metadata key used to store the tags labeling a class. */
|
|
7
7
|
const TAGS_METADATA_KEY = 'chronicle:tags';
|
|
8
8
|
/**
|
|
9
|
-
* TypeScript decorator that labels an event type, reactor, or
|
|
9
|
+
* TypeScript decorator that labels an event type, reactor, reducer, projection class, or model-bound read model with one or more tags.
|
|
10
10
|
* This is the TypeScript equivalent of the C# `[Tag]` attribute.
|
|
11
11
|
*
|
|
12
12
|
* Applying the decorator more than once accumulates tags rather than replacing them, so
|
|
@@ -28,7 +28,7 @@ export function tag(...values) {
|
|
|
28
28
|
return (target) => addTags(target, values);
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
|
-
* TypeScript decorator that labels an event type, reactor, or
|
|
31
|
+
* TypeScript decorator that labels an event type, reactor, reducer, projection class, or model-bound read model with one or more tags.
|
|
32
32
|
* This is the TypeScript equivalent of the C# `[Tags]` attribute, and behaves identically to
|
|
33
33
|
* {@link tag} - use whichever reads more naturally at the call site.
|
|
34
34
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectionDefinitionCompiler.d.ts","sourceRoot":"","sources":["../../projections/ProjectionDefinitionCompiler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ProjectionDefinitionCompiler.d.ts","sourceRoot":"","sources":["../../projections/ProjectionDefinitionCompiler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAOjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAMpF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AA6CnF,wGAAwG;AACxG,qBAAa,4BAA4B;IAOjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAR5C;;;;OAIG;IACH,YACqB,gBAAgB,EAAE,wBAAwB,EAC1C,kBAAkB,EAAE,MAAM,EAC1B,sBAAsB,CAAC,EAAE,qBAAqB,YAAA,EAC/D;IAEJ;;;;;OAKG;IACH,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,6BAA6B,CAiC5G;IAED,OAAO,CAAC,uBAAuB;IA6B/B,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,yBAAyB;IAiCjC,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,0BAA0B;IA8ClC,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,yBAAyB;IAqNjC;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,eAAe;IAevB,yFAAyF;IACzF,OAAO,CAAC,wBAAwB;CASnC"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { AutoMap, ReadModelObserverType } from '@cratis/chronicle.contracts';
|
|
4
4
|
import { EventSequenceId } from '../eventSequences/EventSequenceId.js';
|
|
5
5
|
import { getEventTypeFor, getEventTypeJsonSchemaFor } from '../events/eventTypeDecorator.js';
|
|
6
|
+
import { getTagsFor } from '../events/tagDecorator.js';
|
|
6
7
|
import { getReadModelMetadata } from '../readModels/index.js';
|
|
7
8
|
import { getReadModelId } from '../readModels/readModel.js';
|
|
8
9
|
import { buildReadModelDefinition } from '../readModels/buildReadModelDefinition.js';
|
|
@@ -196,6 +197,7 @@ export class ProjectionDefinitionCompiler {
|
|
|
196
197
|
const instance = new type();
|
|
197
198
|
instance.define(builder);
|
|
198
199
|
const definition = builder.build(metadata.id.value, type.name);
|
|
200
|
+
definition.Tags = getTagsFor(type).map(tag => tag.value).sort();
|
|
199
201
|
const explicitReadModelIdentifier = definition.ReadModel;
|
|
200
202
|
if (explicitReadModelIdentifier === type.name) {
|
|
201
203
|
if (metadata.readModelType) {
|
|
@@ -424,7 +426,7 @@ export class ProjectionDefinitionCompiler {
|
|
|
424
426
|
RemovedWith: Array.from(removedWithByEventType.values()),
|
|
425
427
|
RemovedWithJoin: Array.from(removedWithJoinByEventType.values()),
|
|
426
428
|
LastUpdated: { Value: '' },
|
|
427
|
-
Tags:
|
|
429
|
+
Tags: getTagsFor(type).map(tag => tag.value).sort(),
|
|
428
430
|
AutoMap: isNoAutoMap(type) ? AutoMap.Disabled : AutoMap.Enabled,
|
|
429
431
|
NoAutoMapProperties: properties.filter(property => isPropertyNoAutoMap(prototype, property)),
|
|
430
432
|
Nested: nestedByProperty
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectionDefinitionCompiler.js","sourceRoot":"","sources":["../../projections/ProjectionDefinitionCompiler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProjectionDefinitionCompiler.js","sourceRoot":"","sources":["../../projections/ProjectionDefinitionCompiler.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAA6B,MAAM,6BAA6B,CAAC;AAGxG,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAErF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAG9F,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,uCAAuC,EAAE,MAAM,8CAA8C,CAAC;AACvG,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,OAAO,EACH,qBAAqB,EAAE,kBAAkB,EAAE,gBAAgB,EACxC,eAAe,EAAc,kBAAkB,EAAE,mBAAmB,EAC1F,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC1G,OAAO,EAAE,+BAA+B,EAAE,kCAAkC,EAAE,MAAM,iCAAiC,CAAC;AACtH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAmB,eAAe,EAAE,mBAAmB,EAAE,UAAU,EAAsB,MAAM,0BAA0B,CAAC;AAEjI,wGAAwG;AACxG,MAAM,OAAO,4BAA4B;IAOhB,gBAAgB;IAChB,kBAAkB;IAClB,sBAAsB;IAR3C;;;;OAIG;IACH,YACqB,gBAA0C,EAC1C,kBAA0B,EAC1B,sBAA8C;gCAF9C,gBAAgB;kCAChB,kBAAkB;sCAClB,sBAAsB;IACxC,CAAC;IAEJ;;;;;OAKG;IACH,OAAO,CAAC,WAAkC,EAAE,UAAiC;QACzE,MAAM,gBAAgB,GAAsB;YACxC,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAChH,qBAAqB,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;YAChD,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;SAC7H,CAAC;QACF,+EAA+E;QAC/E,+EAA+E;QAC/E,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;YACnC,KAAK,CAAC,UAAU,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9F,CAAC;QAED,wFAAwF;QACxF,6FAA6F;QAC7F,8FAA8F;QAC9F,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAA6C,CAAC,CAAC;QACvG,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmE,CAAC;QAC9F,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoE,CAAC;QACjG,MAAM,eAAe,GAAG,IAAI,GAAG,CAAsB,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC7F,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAU,CAAC;QAC1E,CAAC,CAAC,CAAC,CAAC;QACJ,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACtD,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;YAC7E,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;QAC5G,CAAC;QACD,OAAO;YACH,WAAW;YACX,UAAU,EAAE,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC;YACvD,UAAU;YACV,YAAY;SACf,CAAC;IACN,CAAC;IAEO,uBAAuB,CAAC,UAAgC,EAAE,eAAiD;QAC/G,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiC,CAAC;QACzD,MAAM,OAAO,GAAG,CAAC,IAA6B,EAAE,EAAE;YAC9C,KAAK,MAAM,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,iBAAiB,CAAU,EAAE,CAAC;gBAChF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAsC,IAAI,EAAE,EAAE,CAAC;oBAC3E,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC;oBAC5B,MAAM,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;oBAC1C,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,EAAE,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;oBAC5E,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC5B,8EAA8E;wBAC9E,uDAAuD;wBACvD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAChH,CAAC;gBACL,CAAC;YACL,CAAC;YACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAA8D,CAAC;YAC9F,IAAI,iBAAiB,EAAE,KAAK,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBACxD,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,EAAE,IAAI,iBAAiB,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;gBACxG,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,iBAAiB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7J,CAAC;YACD,KAAK,MAAM,OAAO,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAU,EAAE,CAAC;gBACpD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAA4C,IAAI,EAAE,CAAC;oBAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACtH,CAAC;QACL,CAAC,CAAC;QACF,OAAO,CAAC,UAAgD,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,0BAA0B,CAAC,IAAiB,EAAE,KAA4B,EAAE,aAA2B;QAC3G,IAAI,CAAC;YACD,OAAO,KAAK,EAAE,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,gCAAgC,EAAE,CAAC;gBACpD,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC5E,MAAM,uCAAuC,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC/E,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAEO,yBAAyB,CAAC,WAAmC;QACjE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuD,CAAC;QACnF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACnC,MAAM,mBAAmB,GAAG,UAAU,CAAC,SAAS,CAAC;YACjD,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACvB,SAAS;YACb,CAAC;YACD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACtD,IAAI,QAAQ,EAAE,CAAC;gBACX,IAAI,QAAQ,CAAC,kBAAkB,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;oBACxD,MAAM,IAAI,KAAK,CAAC,kBAAkB,mBAAmB,6BAA6B,CAAC,CAAC;gBACxF,CAAC;gBACD,SAAS;YACb,CAAC;YACD,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YACjE,WAAW,CAAC,GAAG,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;gBAC1D,UAAU,EAAE,mBAAmB;gBAC/B,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,aAAa;oBACjB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;oBAC5G,CAAC,CAAC,IAAI;gBACV,gFAAgF;gBAChF,gFAAgF;gBAChF,qFAAqF;gBACrF,UAAU,EAAE,UAAU,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB;gBACzF,YAAY,EAAE,qBAAqB,CAAC,UAAU;gBAC9C,kBAAkB,EAAE,UAAU,CAAC,UAAU;gBACzC,YAAY,EAAE,IAAI,CAAC,sBAAsB;aAC5C,CAAC,CAAC,CAAC;QACR,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAEO,gBAAgB,CAAC,mBAA2B;QAChD,MAAM,KAAK,GAAG;YACV,GAAG,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC5C,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW;iBAC/B,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,qBAAqB,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;iBAC3E,MAAM,CAAC,CAAC,IAAI,EAAuB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;SACjE,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,mBAAmB;gBAAE,OAAO,IAAI,CAAC;QAClE,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,0BAA0B,CAAC,IAAiB;QAChD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,+CAA+C,CAAC,CAAC;QACvF,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,oBAAoB,EAAW,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,IAAI,EAA6B,CAAC;QACvD,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAA4B,CAAC;QAC1F,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAEhE,MAAM,2BAA2B,GAAG,UAAU,CAAC,SAAmB,CAAC;QACnE,IAAI,2BAA2B,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;gBACzB,UAAU,CAAC,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACJ,MAAM,2BAA2B,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,4BAA4B,EAAE,CAAC,CAAC;gBAC1G,IAAI,2BAA2B,EAAE,CAAC;oBAC9B,UAAU,CAAC,SAAS,GAAG,2BAA2B,CAAC;gBACvD,CAAC;YACL,CAAC;QACL,CAAC;QAED,MAAM,YAAY,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,2BAA2B,CAAC,UAAU,EAAE,KAAK,EAC5D,IAAI,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,YAAY,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,EAAE,CAAC;YACpF,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,OAAuC,CAAC;QAC5C,MAAM,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAC3D,IAAI,kBAAkB,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,UAAU,CAC3B,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,IAAoB,EAAE,UAAU,CAAC,IAAoB,EAC3E,kBAAkB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACnE,UAAU,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YACpC,UAAU,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YACpC,OAAO,GAAG,kBAAkB,CAAC;YAC7B,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;YACxE,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;YAC5E,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,kBAAkB;gBAAE,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;QAC5J,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IACpE,CAAC;IAEO,wBAAwB,CAAC,gBAA0B;QACvD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC;aAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAC7D,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC;aACvC,MAAM,CAAC,SAAS,CAAC,EAAE;YAChB,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3E,OAAO,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QACP,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAS,CAAC,EAAE,CAAC,KAAK,CAAC;IACpD,CAAC;IAEO,yBAAyB,CAAC,IAAiB;QAC/C,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,+CAA+C,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,mBAAmB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,eAAe,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAChI,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,QAAwC,EAAE,WAAmB,EAAE,EAAE;YACvG,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC7B,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACzD,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAClD,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,eAAe,QAAQ,EAAE,EAAE,WAAW,CAAC,CAAC;gBAC7D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACnH,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAsB,CAAC;QACtD,MAAM,eAAe,GAAG,IAAI,GAAG,EAA8G,CAAC;QAC9I,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAiF,CAAC;QACxH,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAA8D,CAAC;QACzG,MAAM,kBAAkB,GAA2C,EAAE,CAAC;QACtE,MAAM,gBAAgB,GAA2C,EAAE,CAAC;QAEpE,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC9C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,mBAAmB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAC/C,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAC1B,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE;oBACH,UAAU,EAAE,EAAE;oBACd,GAAG,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,uBAAuB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,gBAAgB,CAAC;oBACjH,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,EAAE;iBACvC;aACJ,CAAC,CAAC;QACP,CAAC;QAED,MAAM,gBAAgB,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;QAC3D,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzD,sBAAsB,CAAC,GAAG,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;gBACtD,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE,EAAE;aACtF,CAAC,CAAC;QACP,CAAC;QAED,MAAM,oBAAoB,GAAG,+BAA+B,CAAC,IAAI,CAAC,CAAC;QACnE,KAAK,MAAM,OAAO,IAAI,oBAAoB,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzD,0BAA0B,CAAC,GAAG,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;gBAC1D,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,gBAAgB,EAAE;aAClD,CAAC,CAAC;QACP,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;YAChC,cAAc,CAAC,QAAQ,EAAE,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;YAC9E,cAAc,CAAC,QAAQ,EAAE,yBAAyB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,iBAAiB,CAAC,CAAC;YAC5F,cAAc,CAAC,QAAQ,EAAE,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC;YAChF,cAAc,CAAC,QAAQ,EAAE,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;YAC9E,cAAc,CAAC,QAAQ,EAAE,uBAAuB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC;YACxF,cAAc,CAAC,QAAQ,EAAE,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC;YAClF,cAAc,CAAC,QAAQ,EAAE,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC;YAClF,cAAc,CAAC,QAAQ,EAAE,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC1E,KAAK,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI;gBAClC,CAAC,YAAY,EAAE,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACzD,CAAC,YAAY,EAAE,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACzD,CAAC,QAAQ,EAAE,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;aAC3C,EAAE,CAAC;gBACT,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC7B,IAAI,OAAO,CAAC,WAAW;wBAAE,SAAS,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBACpI,CAAC;YACL,CAAC;YACD,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;YAC5D,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACzD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBACvE,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,CAAC;gBAC5D,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,iBAAiB,IAAI,QAAQ,CAAC;YAC7E,CAAC;YACD,KAAK,MAAM,OAAO,IAAI,8BAA8B,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACxE,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACzD,sBAAsB,CAAC,GAAG,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;oBACtD,GAAG,EAAE,SAAS;oBACd,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE,EAAE;iBACtF,CAAC,CAAC;YACP,CAAC;YACD,KAAK,MAAM,OAAO,IAAI,kCAAkC,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC5E,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACzD,0BAA0B,CAAC,GAAG,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;oBAC1D,GAAG,EAAE,SAAS;oBACd,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,gBAAgB,EAAE;iBAClD,CAAC,CAAC;YACP,CAAC;YACD,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACtE,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,kBAAkB,CAAC,QAAQ,CAAC,GAAG,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YACxF,CAAC;YACD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACvD,IAAI,gBAAgB,EAAE,CAAC;gBACnB,gBAAgB,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAClE,CAAC;YACD,mFAAmF;YACnF,yEAAyE;YACzE,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACrD,KAAK,MAAM,SAAS,IAAI,4BAA4B,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;oBACxE,MAAM,KAAK,GAAG,eAAe,CAAC,eAAe,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;oBACpE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;oBAC3C,SAAS,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,eAAe,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;gBACjI,CAAC;YACL,CAAC;QACL,CAAC;QAED,MAAM,aAAa,GAA2B,EAAE,CAAC;QACjD,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACvG,IAAI,SAAS,EAAE,CAAC;gBACZ,aAAa,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,eAAe;oBAC/C,CAAC,CAAC,8BAA8B,CAAC,SAAS,CAAC,eAAe,CAAC;oBAC3D,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;QAED,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;QAChD,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;QAChD,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,OAAuC,CAAC;QAC5C,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,eAAe,EAAE,CAAC;YAClB,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,kBAAkB,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBACnD,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC7D,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;oBACf,MAAM,KAAK,GAAG,eAAe,CAAC,eAAe,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACnE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;oBAC/B,SAAS,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBACjF,CAAC;gBACD,OAAO,YAAY,CAAC;YACxB,CAAC,CAAC,CAAC;YACH,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5C,MAAM,cAAc,GAAG,IAAI,GAAG,EAAwB,CAAC;YACvD,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;gBAChE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;gBAC5D,IAAI,iBAAiB,EAAE,QAAQ,KAAK,eAAe,CAAC,QAAQ,EAAE,CAAC;oBAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;oBAC1D,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAC9C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;wBAC3B,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;wBACnD,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;wBACvD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;4BAC1D,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,eAAe,QAAQ,EAAE,EAAE,cAAc,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;wBACvF,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACpH,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;YACjF,eAAe,GAAG,MAAM,CAAC;YACzB,eAAe,GAAG,IAAI,CAAC;YACvB,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;YAClG,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YACzB,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YACzB,OAAO,GAAG,EAAE,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE,kBAAkB,EAAE,CAAC;QACnG,CAAC;QAED,MAAM,UAAU,GAA4B;YACxC,eAAe,EAAE,eAAe,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAK;YAClE,UAAU,EAAE,mBAAmB;YAC/B,SAAS,EAAE,mBAAmB;YAC9B,QAAQ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,YAAY,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;YACpC,iBAAiB,EAAE,IAAI;YACvB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,kBAAkB;YAC5B,SAAS,EAAE,EAAE;YACb,GAAG,EAAE;gBACD,UAAU,EAAE,aAAa;gBACzB,eAAe,EAAE,KAAK;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;aAC3B;YACD,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC;YACxD,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,CAAC;YAChE,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YAC1B,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;YACnD,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;YAC/D,mBAAmB,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC5F,MAAM,EAAE,gBAAgB;SAC3B,CAAC;QACF,MAAM,UAAU,GAAG,2BAA2B,CAAC,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACjI,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CACjF,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;YACzF,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC;YAC1E,IAAI,KAAK,IAAI,CAAC;gBAAE,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;QACzF,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAChD,IAAI,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACxF,MAAM,IAAI,GAAG,kBAAkB,QAAQ,EAAE,CAAC;gBAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC;gBACzE,IAAI,KAAK,IAAI,CAAC;oBAAE,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;YACxF,CAAC;QACL,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACV,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;YACxE,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;YAC5E,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,kBAAkB;gBAAE,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;QAC5J,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACK,uBAAuB,CAAC,IAAiB;QAC7C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAsB,CAAC;QACtD,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC9C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,mBAAmB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC3D,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;gBAC/C,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE;oBACH,UAAU,EAAE,EAAE;oBACd,GAAG,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,uBAAuB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,gBAAgB,CAAC;oBACjH,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,EAAE;iBACvC;aACJ,CAAC,CAAC;QACP,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,KAAK,MAAM,QAAQ,IAAI,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjE,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAEO,eAAe,CACnB,eAAgI,EAChI,oBAA8B;QAE9B,MAAM,SAAS,GAAG,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,QAAQ,CAAC;QACpB,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,CAAC;QAC7F,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,yFAAyF;IACjF,wBAAwB,CAAC,UAAmC;QAChE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC;QACnD,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/C,CAAC;CACJ"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/** Per-client naming and privacy settings; instrumentation itself is always available. */
|
|
2
2
|
export interface ChronicleTelemetryOptions {
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Span naming convention. Defaults to legacy; both modes use the same scope and attribute families.
|
|
5
|
+
* Replacing the earlier "next major" plan, built-in legacy span emission ends in an upcoming
|
|
6
|
+
* minor after ADR 0001's one-minor overlap. Both values will remain accepted as no-ops, without a removal deadline.
|
|
7
|
+
* See https://github.com/Cratis/Chronicle.TypeScript/issues/171.
|
|
8
|
+
*/
|
|
4
9
|
spanNames?: 'legacy' | 'convention';
|
|
5
10
|
/** Absent means no event source identifiers. HMAC uses SHA-256 and a deployment-owned key. */
|
|
6
11
|
eventSourceId?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChronicleTelemetryOptions.d.ts","sourceRoot":"","sources":["../../telemetry/ChronicleTelemetryOptions.ts"],"names":[],"mappings":"AAGA,0FAA0F;AAC1F,MAAM,WAAW,yBAAyB;IACtC
|
|
1
|
+
{"version":3,"file":"ChronicleTelemetryOptions.d.ts","sourceRoot":"","sources":["../../telemetry/ChronicleTelemetryOptions.ts"],"names":[],"mappings":"AAGA,0FAA0F;AAC1F,MAAM,WAAW,yBAAyB;IACtC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IAEpC,8FAA8F;IAC9F,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,UAAU,CAAA;KAAE,CAAC;CACvE"}
|
package/events/tagDecorator.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { mergeTags } from './mergeTags.js';
|
|
|
9
9
|
const TAGS_METADATA_KEY = 'chronicle:tags';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* TypeScript decorator that labels an event type, reactor, or
|
|
12
|
+
* TypeScript decorator that labels an event type, reactor, reducer, projection class, or model-bound read model with one or more tags.
|
|
13
13
|
* This is the TypeScript equivalent of the C# `[Tag]` attribute.
|
|
14
14
|
*
|
|
15
15
|
* Applying the decorator more than once accumulates tags rather than replacing them, so
|
|
@@ -32,7 +32,7 @@ export function tag(...values: string[]): ClassDecorator {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
|
-
* TypeScript decorator that labels an event type, reactor, or
|
|
35
|
+
* TypeScript decorator that labels an event type, reactor, reducer, projection class, or model-bound read model with one or more tags.
|
|
36
36
|
* This is the TypeScript equivalent of the C# `[Tags]` attribute, and behaves identically to
|
|
37
37
|
* {@link tag} - use whichever reads more naturally at the call site.
|
|
38
38
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cratis/chronicle",
|
|
3
|
-
"version": "6.42.
|
|
3
|
+
"version": "6.42.2",
|
|
4
4
|
"description": "Event sourcing for TypeScript and Node.js — the idiomatic client for Cratis Chronicle, the open-source event-sourcing database",
|
|
5
5
|
"author": "Cratis",
|
|
6
6
|
"license": "MIT",
|
|
@@ -173,7 +173,7 @@
|
|
|
173
173
|
"clean": "rm -rf dist",
|
|
174
174
|
"test": "vitest run",
|
|
175
175
|
"test:integration": "vitest run --config vitest.integration.config.ts",
|
|
176
|
-
"test:standard-types": "tsc --ignoreConfig --noEmit --target es2022 --module es2022 --moduleResolution bundler --lib es2022,esnext.decorators --types node --skipLibCheck --strict schemas/decorators.standard.spec.ts projections/declarative/addChildCompatibility.standard.spec.ts projections/modelBound/decorators.standard.spec.ts events/classDecorators.standard.spec.ts reactors/decorators.standard.spec.ts readModels/standardFallbacks.standard.spec.ts readModels/registration.standard.spec.ts for_ChronicleClient/when_registering_artifacts/with_standard_property_mappings.standard.spec.ts artifacts/validateArtifactSchemas.spec.ts testing/for_EventScenario/when_appending_concept_fields/with_standard_decorators.standard.spec.ts testing/for_EventScenario/when_appending_scoped_constraints/with_standard_decorators.standard.spec.ts schemas/for_JsonSchemaGenerator/when_generating_children/with_standard_decorators.standard.spec.ts events/for_handles/when_decorating_a_method.standard.spec.ts testing/for_ReadModelScenario/when_evaluating_arithmetic/with_standard_decorators.standard.spec.ts testing/for_ReadModelScenario/when_evaluating_joins/with_standard_decorators.standard.spec.ts testing/for_EventScenario/when_appending_field_types/with_standard_decorators.standard.spec.ts eventSequences/for_EventSequence/when_appending/with_subject_annotations.standard.spec.ts projections/for_ProjectionDefinitionCompiler/when_compiling_from_all.standard.spec.ts",
|
|
176
|
+
"test:standard-types": "tsc --ignoreConfig --noEmit --target es2022 --module es2022 --moduleResolution bundler --lib es2022,esnext.decorators --types node --skipLibCheck --strict schemas/decorators.standard.spec.ts projections/declarative/addChildCompatibility.standard.spec.ts projections/modelBound/decorators.standard.spec.ts events/classDecorators.standard.spec.ts reactors/decorators.standard.spec.ts readModels/standardFallbacks.standard.spec.ts readModels/registration.standard.spec.ts for_ChronicleClient/when_registering_artifacts/with_standard_property_mappings.standard.spec.ts artifacts/validateArtifactSchemas.spec.ts testing/for_EventScenario/when_appending_concept_fields/with_standard_decorators.standard.spec.ts testing/for_EventScenario/when_appending_scoped_constraints/with_standard_decorators.standard.spec.ts schemas/for_JsonSchemaGenerator/when_generating_children/with_standard_decorators.standard.spec.ts events/for_handles/when_decorating_a_method.standard.spec.ts testing/for_ReadModelScenario/when_evaluating_arithmetic/with_standard_decorators.standard.spec.ts testing/for_ReadModelScenario/when_evaluating_joins/with_standard_decorators.standard.spec.ts testing/for_EventScenario/when_appending_field_types/with_standard_decorators.standard.spec.ts eventSequences/for_EventSequence/when_appending/with_subject_annotations.standard.spec.ts projections/for_ProjectionDefinitionCompiler/when_compiling_from_all.standard.spec.ts projections/for_ProjectionDefinitionCompiler/when_compiling_tags/with_standard_decorators.standard.spec.ts",
|
|
177
177
|
"test:native": "node ./scripts/check-native-esm.mjs"
|
|
178
178
|
},
|
|
179
179
|
"dependencies": {
|
|
@@ -6,6 +6,7 @@ import { Constructor } from '@cratis/fundamentals';
|
|
|
6
6
|
import { IClientArtifactsProvider } from '../artifacts/index.js';
|
|
7
7
|
import { EventSequenceId } from '../eventSequences/EventSequenceId.js';
|
|
8
8
|
import { getEventTypeFor, getEventTypeJsonSchemaFor } from '../events/eventTypeDecorator.js';
|
|
9
|
+
import { getTagsFor } from '../events/tagDecorator.js';
|
|
9
10
|
import { getReadModelMetadata } from '../readModels/index.js';
|
|
10
11
|
import { getReadModelId } from '../readModels/readModel.js';
|
|
11
12
|
import { buildReadModelDefinition } from '../readModels/buildReadModelDefinition.js';
|
|
@@ -211,6 +212,7 @@ export class ProjectionDefinitionCompiler {
|
|
|
211
212
|
const instance = new type() as IProjectionFor<unknown>;
|
|
212
213
|
instance.define(builder);
|
|
213
214
|
const definition = builder.build(metadata.id.value, type.name) as Record<string, unknown>;
|
|
215
|
+
definition.Tags = getTagsFor(type).map(tag => tag.value).sort();
|
|
214
216
|
|
|
215
217
|
const explicitReadModelIdentifier = definition.ReadModel as string;
|
|
216
218
|
if (explicitReadModelIdentifier === type.name) {
|
|
@@ -450,7 +452,7 @@ export class ProjectionDefinitionCompiler {
|
|
|
450
452
|
RemovedWith: Array.from(removedWithByEventType.values()),
|
|
451
453
|
RemovedWithJoin: Array.from(removedWithJoinByEventType.values()),
|
|
452
454
|
LastUpdated: { Value: '' },
|
|
453
|
-
Tags:
|
|
455
|
+
Tags: getTagsFor(type).map(tag => tag.value).sort(),
|
|
454
456
|
AutoMap: isNoAutoMap(type) ? AutoMap.Disabled : AutoMap.Enabled,
|
|
455
457
|
NoAutoMapProperties: properties.filter(property => isPropertyNoAutoMap(prototype, property)),
|
|
456
458
|
Nested: nestedByProperty
|
|
@@ -0,0 +1,87 @@
|
|
|
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
|
+
import { chai, describe, it, vi } from 'vitest';
|
|
5
|
+
import type { IClientArtifactsProvider } from '../../../artifacts/index.js';
|
|
6
|
+
import type { ChronicleConnection } from '../../../connection/index.js';
|
|
7
|
+
import { eventType } from '../../../events/eventTypeDecorator.js';
|
|
8
|
+
import { getTagsFor, tag, tags } from '../../../events/tagDecorator.js';
|
|
9
|
+
import { ReadModelScenario } from '../../../testing/ReadModelScenario.js';
|
|
10
|
+
import type { IProjectionBuilderFor } from '../../declarative/IProjectionBuilderFor.js';
|
|
11
|
+
import { projection } from '../../declarative/projection.js';
|
|
12
|
+
import { fromEvent } from '../../modelBound/fromEvent.js';
|
|
13
|
+
import { ProjectionDefinitionCompiler } from '../../ProjectionDefinitionCompiler.js';
|
|
14
|
+
import { Projections } from '../../Projections.js';
|
|
15
|
+
|
|
16
|
+
chai.should();
|
|
17
|
+
|
|
18
|
+
@eventType('legacy-projection-tags-renamed')
|
|
19
|
+
class Renamed {
|
|
20
|
+
name = 'updated';
|
|
21
|
+
}
|
|
22
|
+
function createArtifacts(modelBound: boolean, values: string[] = []) {
|
|
23
|
+
@tag(...(modelBound ? values : ['read-model-only']))
|
|
24
|
+
class Model {
|
|
25
|
+
static readonly readModelId = 'legacy-projection-tags-model';
|
|
26
|
+
id = '';
|
|
27
|
+
name = '';
|
|
28
|
+
}
|
|
29
|
+
@projection('legacy-projection-tags-projection', Model)
|
|
30
|
+
@tag(...(modelBound ? [] : values))
|
|
31
|
+
class ModelProjection {
|
|
32
|
+
define(builder: IProjectionBuilderFor<Model>): void {
|
|
33
|
+
builder.from(Renamed);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (modelBound) fromEvent(Renamed)(Model);
|
|
37
|
+
const observer = modelBound ? Model : ModelProjection;
|
|
38
|
+
const artifacts: IClientArtifactsProvider = {
|
|
39
|
+
eventTypes: [Renamed], readModels: [Model], projections: modelBound ? [] : [ModelProjection],
|
|
40
|
+
reducers: [], reactors: [], globalForHandlers: [], seeders: [], constraints: [], webhooks: [], eventTypeMigrations: []
|
|
41
|
+
};
|
|
42
|
+
const compile = () => new ProjectionDefinitionCompiler(artifacts, 'test-sink')
|
|
43
|
+
.compile(artifacts.projections, modelBound ? [Model] : []).definitions[0];
|
|
44
|
+
return { artifacts, observer, Model, compile };
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
for (const modelBound of [false, true]) {
|
|
48
|
+
describe(`when compiling tags on a legacy ${modelBound ? 'model-bound read model' : 'declarative projection class'}`, () => {
|
|
49
|
+
it('should send accumulated distinct observer labels to the kernel in stable order', async () => {
|
|
50
|
+
const { artifacts, observer } = createArtifacts(modelBound, ['reporting', 'analytics']);
|
|
51
|
+
tags('reporting', 'audit')(observer);
|
|
52
|
+
tag('analytics')(observer);
|
|
53
|
+
const register = vi.fn().mockResolvedValue({});
|
|
54
|
+
const connection = { projections: { register }, readModels: { registerMany: vi.fn().mockResolvedValue({}) } } as unknown as ChronicleConnection;
|
|
55
|
+
await new Projections('store', 'namespace', connection, artifacts, 'test-sink').register();
|
|
56
|
+
const request = register.mock.calls[0][0] as { Projections: { Tags: string[] }[] };
|
|
57
|
+
request.Projections[0].Tags.should.deep.equal(['analytics', 'audit', 'reporting']);
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it('should keep an untagged observer empty without borrowing declarative read-model labels', () => {
|
|
61
|
+
createArtifacts(modelBound).compile().Tags.should.deep.equal([]);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it('should hash the same tag set identically regardless of declaration order and duplicates', () => {
|
|
65
|
+
const first = createArtifacts(modelBound, ['reporting', 'analytics']);
|
|
66
|
+
tags('reporting')(first.observer);
|
|
67
|
+
const second = createArtifacts(modelBound, ['analytics', 'reporting', 'analytics']);
|
|
68
|
+
first.compile().LastUpdated!.Value.should.equal(second.compile().LastUpdated!.Value);
|
|
69
|
+
first.compile().LastUpdated!.Value.should.equal(first.compile().LastUpdated!.Value);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
it('should include tag changes in the definition hash without reordering metadata', () => {
|
|
73
|
+
const { compile, observer } = createArtifacts(modelBound, ['reporting', 'analytics']);
|
|
74
|
+
const previous = compile().LastUpdated!.Value;
|
|
75
|
+
getTagsFor(observer).map(value => value.value).should.deep.equal(['reporting', 'analytics']);
|
|
76
|
+
tag('audit')(observer);
|
|
77
|
+
compile().LastUpdated!.Value.should.not.equal(previous);
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
it('should not filter untagged events in the in-process read-model scenario', async () => {
|
|
81
|
+
const { Model, artifacts } = createArtifacts(modelBound, ['analytics']);
|
|
82
|
+
const scenario = new ReadModelScenario(Model, artifacts);
|
|
83
|
+
scenario.given.forEventSource('source').events(new Renamed());
|
|
84
|
+
(await scenario.instance)!.name.should.equal('updated');
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
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
|
+
import { field } from '@cratis/fundamentals';
|
|
5
|
+
import { chai, describe, it, vi } from 'vitest';
|
|
6
|
+
import type { IClientArtifactsProvider } from '../../../artifacts/index.js';
|
|
7
|
+
import type { ChronicleConnection } from '../../../connection/index.js';
|
|
8
|
+
import { eventType } from '../../../events/eventTypeDecorator.js';
|
|
9
|
+
import { getTagsFor, tag, tags } from '../../../events/tagDecorator.js';
|
|
10
|
+
import { ReadModelScenario } from '../../../testing/ReadModelScenario.js';
|
|
11
|
+
import type { IProjectionBuilderFor } from '../../declarative/IProjectionBuilderFor.js';
|
|
12
|
+
import { projection } from '../../declarative/projection.js';
|
|
13
|
+
import { fromEvent } from '../../modelBound/fromEvent.js';
|
|
14
|
+
import { ProjectionDefinitionCompiler } from '../../ProjectionDefinitionCompiler.js';
|
|
15
|
+
import { Projections } from '../../Projections.js';
|
|
16
|
+
|
|
17
|
+
chai.should();
|
|
18
|
+
|
|
19
|
+
@eventType('standard-projection-tags-renamed')
|
|
20
|
+
class Renamed {
|
|
21
|
+
@field(String) name = 'updated';
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@tag('read-model-only')
|
|
25
|
+
class DeclarativeModel {
|
|
26
|
+
@field(String) id = '';
|
|
27
|
+
@field(String) name = '';
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@projection('standard-projection-tags-projection', DeclarativeModel)
|
|
31
|
+
@tag('analytics', 'reporting')
|
|
32
|
+
@tags('reporting', 'audit')
|
|
33
|
+
class ModelProjection {
|
|
34
|
+
define(builder: IProjectionBuilderFor<DeclarativeModel>): void {
|
|
35
|
+
builder.from(Renamed);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@fromEvent(Renamed)
|
|
40
|
+
@tags('analytics', 'reporting')
|
|
41
|
+
@tag('reporting', 'audit')
|
|
42
|
+
class ModelBound {
|
|
43
|
+
@field(String) id = '';
|
|
44
|
+
@field(String) name = '';
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
for (const modelBound of [false, true]) {
|
|
48
|
+
describe(`when compiling tags on a standard ${modelBound ? 'model-bound read model' : 'declarative projection class'}`, () => {
|
|
49
|
+
const model = modelBound ? ModelBound : DeclarativeModel;
|
|
50
|
+
const observer = modelBound ? ModelBound : ModelProjection;
|
|
51
|
+
const artifacts: IClientArtifactsProvider = {
|
|
52
|
+
eventTypes: [Renamed], readModels: [model], projections: modelBound ? [] : [ModelProjection],
|
|
53
|
+
reactors: [], reducers: [], globalForHandlers: [], seeders: [], constraints: [], webhooks: [], eventTypeMigrations: []
|
|
54
|
+
};
|
|
55
|
+
const compile = () => new ProjectionDefinitionCompiler(artifacts, 'test-sink')
|
|
56
|
+
.compile(artifacts.projections, modelBound ? [ModelBound] : []).definitions[0];
|
|
57
|
+
|
|
58
|
+
it('should register sorted distinct tags using both class decorator spellings', async () => {
|
|
59
|
+
const register = vi.fn().mockResolvedValue({});
|
|
60
|
+
const connection = { projections: { register }, readModels: { registerMany: vi.fn().mockResolvedValue({}) } } as unknown as ChronicleConnection;
|
|
61
|
+
await new Projections('store', 'namespace', connection, artifacts, 'test-sink').register();
|
|
62
|
+
const request = register.mock.calls[0][0] as { Projections: { Tags: string[] }[] };
|
|
63
|
+
request.Projections[0].Tags.should.deep.equal(['analytics', 'audit', 'reporting']);
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('should retain a deterministic hash and leave decorator metadata untouched', () => {
|
|
67
|
+
compile().LastUpdated!.Value.should.equal(compile().LastUpdated!.Value);
|
|
68
|
+
getTagsFor(observer).map(value => value.value).should.deep.equal(['reporting', 'audit', 'analytics']);
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
it('should still evaluate untagged events through the shared compiler', async () => {
|
|
72
|
+
const scenario = new ReadModelScenario(model, artifacts);
|
|
73
|
+
scenario.given.forEventSource('source').events(new Renamed());
|
|
74
|
+
(await scenario.instance)!.name.should.equal('updated');
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}
|
package/reactors/for_Reactors/against_a_kernel/when_replaying_once_only_reactors.integration.spec.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
import { randomUUID } from 'node:crypto';
|
|
5
5
|
import { afterAll, beforeAll, chai, describe, it } from 'vitest';
|
|
6
|
+
import { ObserverRunningState } from '@cratis/chronicle.contracts';
|
|
6
7
|
import { field } from '@cratis/fundamentals';
|
|
7
8
|
import { ChronicleClient } from '../../../ChronicleClient.js';
|
|
8
9
|
import { ChronicleOptions } from '../../../ChronicleOptions.js';
|
|
@@ -52,9 +53,9 @@ const artifacts: IClientArtifactsProvider = {
|
|
|
52
53
|
globalForHandlers: []
|
|
53
54
|
};
|
|
54
55
|
|
|
55
|
-
async function eventually(accept: () => boolean
|
|
56
|
+
async function eventually(accept: () => boolean | Promise<boolean>, timeoutMs = 30_000): Promise<void> {
|
|
56
57
|
const deadline = Date.now() + timeoutMs;
|
|
57
|
-
while (!accept()) {
|
|
58
|
+
while (!await accept()) {
|
|
58
59
|
if (Date.now() > deadline) throw new Error('Timed out waiting for the kernel');
|
|
59
60
|
await new Promise(resolve => setTimeout(resolve, 250));
|
|
60
61
|
}
|
|
@@ -77,6 +78,18 @@ describe.skipIf(!connectionString && !process.env.CI)('when replaying reactors a
|
|
|
77
78
|
EventSequenceId: 'event-log'
|
|
78
79
|
});
|
|
79
80
|
|
|
81
|
+
const waitForActiveObservers = (lastHandledSequenceNumber?: bigint) => eventually(async () => {
|
|
82
|
+
const observers = await Promise.all(['OnceOnlyReactor', 'ReplayableReactor'].map(observerId =>
|
|
83
|
+
connection.observers.getObserverInformation({
|
|
84
|
+
EventStore: storeName,
|
|
85
|
+
Namespace: 'Default',
|
|
86
|
+
ObserverId: observerId,
|
|
87
|
+
EventSequenceId: 'event-log'
|
|
88
|
+
})));
|
|
89
|
+
return observers.every(observer => observer.IsSubscribed && observer.RunningState === ObserverRunningState.Active &&
|
|
90
|
+
(lastHandledSequenceNumber === undefined || observer.LastHandledEventSequenceNumber === lastHandledSequenceNumber));
|
|
91
|
+
}, 15_000);
|
|
92
|
+
|
|
80
93
|
beforeAll(async () => {
|
|
81
94
|
client = new ChronicleClient(ChronicleOptions.fromConnectionString(connectionString!, {
|
|
82
95
|
discoveryPatterns: [],
|
|
@@ -85,8 +98,14 @@ describe.skipIf(!connectionString && !process.env.CI)('when replaying reactors a
|
|
|
85
98
|
store = await client.getEventStore(storeName);
|
|
86
99
|
connection = (store as unknown as { _connection: ChronicleConnection })._connection;
|
|
87
100
|
|
|
88
|
-
|
|
101
|
+
// Registration starts observation in the background. Append only after both subscriptions
|
|
102
|
+
// are active, so initial catch-up cannot race the explicit replay's state transition.
|
|
103
|
+
await waitForActiveObservers();
|
|
104
|
+
const appended = await store.eventLog.append(randomUUID(), Object.assign(new ThingHappened(), { name: 'first' }));
|
|
105
|
+
appended.isSuccess.should.be.true;
|
|
89
106
|
await eventually(() => onceOnlyInvocations.length === 1 && replayableInvocations.length === 1);
|
|
107
|
+
// The handlers update their sinks before the kernel acknowledges delivery and records progress.
|
|
108
|
+
await waitForActiveObservers(appended.sequenceNumber.value);
|
|
90
109
|
|
|
91
110
|
onceOnlyJobId = (await replay('OnceOnlyReactor')).JobId;
|
|
92
111
|
replayableJobId = (await replay('ReplayableReactor')).JobId;
|
|
@@ -3,7 +3,12 @@
|
|
|
3
3
|
|
|
4
4
|
/** Per-client naming and privacy settings; instrumentation itself is always available. */
|
|
5
5
|
export interface ChronicleTelemetryOptions {
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Span naming convention. Defaults to legacy; both modes use the same scope and attribute families.
|
|
8
|
+
* Replacing the earlier "next major" plan, built-in legacy span emission ends in an upcoming
|
|
9
|
+
* minor after ADR 0001's one-minor overlap. Both values will remain accepted as no-ops, without a removal deadline.
|
|
10
|
+
* See https://github.com/Cratis/Chronicle.TypeScript/issues/171.
|
|
11
|
+
*/
|
|
7
12
|
spanNames?: 'legacy' | 'convention';
|
|
8
13
|
|
|
9
14
|
/** Absent means no event source identifiers. HMAC uses SHA-256 and a deployment-owned key. */
|