@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 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. Legacy names remain available during the minor-release overlap. */
4
+ /** Public telemetry names, including retained TypeScript compatibility constants. */
5
5
  export const WellKnownTelemetryNames = {
6
6
  scope: 'Cratis.Chronicle.Client',
7
- /** @deprecated Use scope. This historical scope is no longer emitted and will be removed in the next major. */
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
- /** @deprecated Use attributes. Legacy attribute names will be removed in the next major. */
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
- /** @deprecated Use conventionSpans and telemetry.spanNames: 'convention'. Legacy span names will be removed in the next major. */
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
- /** @deprecated Use metrics (duration units are seconds). Legacy metric names will be removed in the next major. */
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>;
@@ -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;;;GAGG;AACH,eAAO,MAAM,gBAAgB;IACzB,cAAc;IAEd,qBAAqB;IAErB,oBAAoB;IAEpB,cAAc;IACd,kBAAkB;IAClB,oBAAoB;IAEpB,YAAY;CAEf,CAAC"}
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),
@@ -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. Legacy names remain available during the minor-release overlap. */
1
+ /** Public telemetry names, including retained TypeScript compatibility constants. */
2
2
  export declare const WellKnownTelemetryNames: {
3
3
  readonly scope: 'Cratis.Chronicle.Client';
4
- /** @deprecated Use scope. This historical scope is no longer emitted and will be removed in the next major. */
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
- /** @deprecated Use attributes. Legacy attribute names will be removed in the next major. */
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
- /** @deprecated Use conventionSpans and telemetry.spanNames: 'convention'. Legacy span names will be removed in the next major. */
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
- /** @deprecated Use metrics (duration units are seconds). Legacy metric names will be removed in the next major. */
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,8FAA8F;AAC9F,eAAO,MAAM,uBAAuB;aAChC,KAAK,EAAE,yBAAyB;IAChC,+GAA+G;aAC/G,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,4FAA4F;aAC5F,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,kIAAkI;aAClI,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,mHAAmH;aACnH,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
+ {"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. Legacy names remain available during the minor-release overlap. */
3
+ /** Public telemetry names, including retained TypeScript compatibility constants. */
4
4
  export const WellKnownTelemetryNames = {
5
5
  scope: 'Cratis.Chronicle.Client',
6
- /** @deprecated Use scope. This historical scope is no longer emitted and will be removed in the next major. */
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
- /** @deprecated Use attributes. Legacy attribute names will be removed in the next major. */
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
- /** @deprecated Use conventionSpans and telemetry.spanNames: 'convention'. Legacy span names will be removed in the next major. */
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
- /** @deprecated Use metrics (duration units are seconds). Legacy metric names will be removed in the next major. */
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,8FAA8F;AAC9F,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACnC,KAAK,EAAE,yBAAyB;IAChC,+GAA+G;IAC/G,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,4FAA4F;IAC5F,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,kIAAkI;IAClI,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,mHAAmH;IACnH,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
+ {"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 reducer with one or more tags.
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 reducer with one or more tags.
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 reducer with one or more tags.
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 reducer with one or more tags.
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;AAMjE,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;IA6ClC,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"}
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":"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"}
@@ -1,6 +1,11 @@
1
1
  /** Per-client naming and privacy settings; instrumentation itself is always available. */
2
2
  export interface ChronicleTelemetryOptions {
3
- /** Span naming convention. Defaults to legacy; both modes use the same scope and attribute families. */
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,wGAAwG;IACxG,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"}
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"}
@@ -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 reducer with one or more tags.
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 reducer with one or more tags.
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.0",
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
+ }
@@ -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, timeoutMs = 30_000): Promise<void> {
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
- (await store.eventLog.append(randomUUID(), Object.assign(new ThingHappened(), { name: 'first' }))).isSuccess.should.be.true;
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
- /** Span naming convention. Defaults to legacy; both modes use the same scope and attribute families. */
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. */