@substrat-run/engine-metering 0.5.0 → 0.5.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.
@@ -38,6 +38,7 @@ export declare const meteringEntities: {
38
38
  active: z.ZodNumber;
39
39
  created_at: z.ZodString;
40
40
  }, z.core.$strip>;
41
+ readonly primaryKey: readonly ["key"];
41
42
  };
42
43
  readonly 'metering-entry': {
43
44
  readonly table: "metering_entries";
@@ -53,6 +54,7 @@ export declare const meteringEntities: {
53
54
  created_by: z.ZodString;
54
55
  created_at: z.ZodString;
55
56
  }, z.core.$strip>;
57
+ readonly key: readonly ["meter_key", "dedupe_key"];
56
58
  };
57
59
  readonly 'metering-period': {
58
60
  readonly table: "metering_periods";
@@ -1 +1 @@
1
- {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../src/entities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqC3B,CAAC;AAEH,2EAA2E;AAC3E,eAAO,MAAM,QAAQ;;;;;;;;;;iBAA4C,CAAC;AAClE,gDAAgD;AAChD,eAAO,MAAM,QAAQ;;;;;;;;;;;iBAA4C,CAAC;AAClE,4BAA4B;AAC5B,eAAO,MAAM,SAAS;;;;;;iBAA6C,CAAC"}
1
+ {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../src/entities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2C3B,CAAC;AAEH,2EAA2E;AAC3E,eAAO,MAAM,QAAQ;;;;;;;;;;iBAA4C,CAAC;AAClE,gDAAgD;AAChD,eAAO,MAAM,QAAQ;;;;;;;;;;;iBAA4C,CAAC;AAClE,4BAA4B;AAC5B,eAAO,MAAM,SAAS;;;;;;iBAA6C,CAAC"}
package/dist/entities.js CHANGED
@@ -36,6 +36,9 @@ export const meteringEntities = defineEntities({
36
36
  active: z.number(),
37
37
  created_at: z.string(),
38
38
  }),
39
+ // The shipped DDL is `key TEXT PRIMARY KEY` — this row has no `id`, so the
40
+ // fact has to be declared or `emitModel` cannot state it (#976).
41
+ primaryKey: ['key'],
39
42
  },
40
43
  'metering-entry': {
41
44
  table: 'metering_entries',
@@ -51,6 +54,9 @@ export const meteringEntities = defineEntities({
51
54
  created_by: z.string(),
52
55
  created_at: z.string(),
53
56
  }),
57
+ // `UNIQUE (meter_key, dedupe_key)` in the shipped DDL — the constraint the
58
+ // dedupe replay relies on, and the artifact of record should carry it (#976).
59
+ key: ['meter_key', 'dedupe_key'],
54
60
  },
55
61
  'metering-period': {
56
62
  table: 'metering_periods',
@@ -1 +1 @@
1
- {"version":3,"file":"entities.js","sourceRoot":"","sources":["../src/entities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;IAC7C,gBAAgB,EAAE;QAChB,KAAK,EAAE,iBAAiB;QACxB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;YACf,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;SACvB,CAAC;KACH;IACD,gBAAgB,EAAE;QAChB,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;YACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;YACf,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;YACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;SACvB,CAAC;KACH;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;YACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;SACtB,CAAC;KACH;CACF,CAAC,CAAC;AAEH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;AAClE,gDAAgD;AAChD,MAAM,CAAC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;AAClE,4BAA4B;AAC5B,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC"}
1
+ {"version":3,"file":"entities.js","sourceRoot":"","sources":["../src/entities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;IAC7C,gBAAgB,EAAE;QAChB,KAAK,EAAE,iBAAiB;QACxB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;YACf,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;SACvB,CAAC;QACF,2EAA2E;QAC3E,iEAAiE;QACjE,UAAU,EAAE,CAAC,KAAK,CAAC;KACpB;IACD,gBAAgB,EAAE;QAChB,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;YACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;YACf,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;YACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;SACvB,CAAC;QACF,2EAA2E;QAC3E,8EAA8E;QAC9E,GAAG,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;KACjC;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;YACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;SACtB,CAAC;KACH;CACF,CAAC,CAAC;AAEH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;AAClE,gDAAgD;AAChD,MAAM,CAAC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;AAClE,4BAA4B;AAC5B,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC"}
package/dist/index.d.ts CHANGED
@@ -144,41 +144,59 @@ export declare const meteringMigrations: {
144
144
  version: string;
145
145
  sql: string;
146
146
  }[];
147
- export type MeterKind = 'counter' | 'gauge';
148
- export interface Meter {
149
- key: string;
150
- kind: MeterKind;
151
- unit: string;
152
- description: string | null;
153
- active: boolean;
154
- createdAt: string;
155
- }
156
- export interface UsageEntry {
157
- id: string;
158
- meterKey: string;
159
- qty: string;
160
- subject: EntityRef | null;
161
- occurredAt: string;
162
- dedupeKey: string;
163
- note: string | null;
164
- createdBy: string;
165
- createdAt: string;
166
- }
167
- export interface MeteringPeriod {
168
- id: string;
169
- from: string;
170
- to: string;
171
- closedBy: string;
172
- closedAt: string;
173
- }
147
+ declare const meterKind: z.ZodEnum<{
148
+ counter: "counter";
149
+ gauge: "gauge";
150
+ }>;
151
+ export type MeterKind = z.infer<typeof meterKind>;
152
+ /** The PUBLISHED shapes — what a composing vertical declares its `output` with. */
153
+ declare const meterShape: z.ZodObject<{
154
+ key: z.ZodString;
155
+ kind: z.ZodEnum<{
156
+ counter: "counter";
157
+ gauge: "gauge";
158
+ }>;
159
+ unit: z.ZodString;
160
+ description: z.ZodNullable<z.ZodString>;
161
+ active: z.ZodBoolean;
162
+ createdAt: z.ZodString;
163
+ }, z.core.$strip>;
164
+ export type Meter = z.infer<typeof meterShape>;
165
+ declare const usageEntryShape: z.ZodObject<{
166
+ id: z.ZodString;
167
+ meterKey: z.ZodString;
168
+ qty: z.ZodString;
169
+ subject: z.ZodNullable<z.ZodObject<{
170
+ entityType: z.ZodString;
171
+ entityId: z.ZodString;
172
+ }, z.core.$strip>>;
173
+ occurredAt: z.ZodString;
174
+ dedupeKey: z.ZodString;
175
+ note: z.ZodNullable<z.ZodString>;
176
+ createdBy: z.ZodString;
177
+ createdAt: z.ZodString;
178
+ }, z.core.$strip>;
179
+ export type UsageEntry = z.infer<typeof usageEntryShape>;
180
+ declare const meteringPeriodShape: z.ZodObject<{
181
+ id: z.ZodString;
182
+ from: z.ZodString;
183
+ to: z.ZodString;
184
+ closedBy: z.ZodString;
185
+ closedAt: z.ZodString;
186
+ }, z.core.$strip>;
187
+ export type MeteringPeriod = z.infer<typeof meteringPeriodShape>;
174
188
  /** One meter's frozen aggregate for a closed period. Unpriced, by design (D-E). */
175
- export interface PeriodLine {
176
- meterKey: string;
177
- kind: MeterKind;
178
- unit: string;
179
- qty: string;
180
- entryCount: number;
181
- }
189
+ declare const periodLineShape: z.ZodObject<{
190
+ meterKey: z.ZodString;
191
+ kind: z.ZodEnum<{
192
+ counter: "counter";
193
+ gauge: "gauge";
194
+ }>;
195
+ unit: z.ZodString;
196
+ qty: z.ZodString;
197
+ entryCount: z.ZodNumber;
198
+ }, z.core.$strip>;
199
+ export type PeriodLine = z.infer<typeof periodLineShape>;
182
200
  export declare const configureMeterInput: z.ZodObject<{
183
201
  key: z.ZodString;
184
202
  kind: z.ZodEnum<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EASL,KAAK,SAAS,EAIf,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,YACpC,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,CACR,CAAC;AACX,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAKhF,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAEtB,MAAM,sBAAsB,CAAC;AAkB9B,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,EACL,UAAU,EACV,cAAc,EACd,UAAU,GACX,MAAM,iBAAiB,CAAC;AAQzB,eAAO,MAAM,IAAI;IACf,IAAI;IACJ,MAAM;IACN,SAAS;IACT,KAAK;CACN,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyB3B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;GA6C9B,CAAC;AAUF,QAAA,MAAM,SAAS;;;EAA+B,CAAC;AAC/C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAsClD,mFAAmF;AACnF,QAAA,MAAM,UAAU;;;;;;;;;;iBAOd,CAAC;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE/C,QAAA,MAAM,eAAe;;;;;;;;;;;;;iBAUnB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAEzD,QAAA,MAAM,mBAAmB;;;;;;iBAMvB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEjE,mFAAmF;AACnF,QAAA,MAAM,eAAe;;;;;;;;;iBAMnB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AA0KzD,eAAO,MAAM,mBAAmB;;;;;;;;;iBAM9B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,mBAAmB,GAAG,KAAK,CA+C1F;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,gBAAgB,GAAG,KAAK,EAAE,CAIzD;AAwBD,eAAO,MAAM,gBAAgB;;;;;;;;;;iBAgB3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,gBAAgB,GACzB;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAgFzC;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAM5C;AAED,wBAAgB,WAAW,CACzB,GAAG,EAAE,gBAAgB,EACrB,KAAK,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1E,UAAU,EAAE,CAqBd;AAED,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,gBAAgB,GACzB;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,UAAU,EAAE,CAAA;CAAE,CAyDjD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,gBAAgB,GAAG,cAAc,EAAE,CAInE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,EAAE,CAY5F;AAkFD,eAAO,MAAM,cAAc,EAAE,kBAe5B,CAAC"}
package/dist/index.js CHANGED
@@ -57,7 +57,9 @@ export { meteringOperations, METERING_PERMISSIONS, meter, usageEntry, meteringPe
57
57
  import { meteringOperations } from './operations.js';
58
58
  // The value formats, shared with the declared surface above so a caller cannot be
59
59
  // told a value is acceptable and then have the handler refuse it.
60
- import { isoInstant, nonNegDecimal, signedDecimal } from './formats.js';
60
+ import { isoInstant, isoInstantIn, nonNegDecimal, signedDecimal } from './formats.js';
61
+ import { entryRow, meterRow, periodRow } from './entities.js';
62
+ import { columnsOf, returns } from './seam.js';
61
63
  export const PERM = {
62
64
  read: permissionKey.parse('metering:read'),
63
65
  record: permissionKey.parse('metering:record'),
@@ -136,46 +138,169 @@ export const meteringMigrations = [
136
138
  `,
137
139
  },
138
140
  ];
139
- const toMeter = (r) => ({
140
- key: r.key,
141
- kind: r.kind,
142
- unit: r.unit,
143
- description: r.description,
144
- active: r.active === 1,
145
- createdAt: r.created_at,
141
+ // ---------------------------------------------------------------------------
142
+ // Schemas & shapes
143
+ // ---------------------------------------------------------------------------
144
+ // `isoInstant`, `nonNegDecimal` and `signedDecimal` are imported from `formats.ts`
145
+ // above — the same rules the declared inputs enforce, so a value the operation
146
+ // contract accepts is one these handlers can also parse.
147
+ const meterKind = z.enum(['counter', 'gauge']);
148
+ /**
149
+ * The STORED rows (#771/#970).
150
+ *
151
+ * `entities.ts` describes what the journal comparison checks against, so its
152
+ * quantities and instants are bare strings. Here they are narrowed to the formats
153
+ * this engine actually depends on — `signedDecimal` because a `qty` is folded
154
+ * into a billed line, `isoInstantIn` because every window in this engine is a
155
+ * string comparison over instants at one precision. Validating rather than
156
+ * transforming: normalising is the WRITE's decision (`isoInstant`), and a read
157
+ * that quietly rewrote a stored value would hide the drift it is here to catch.
158
+ */
159
+ const meterRowShape = meterRow;
160
+ const entryRowShape = entryRow.extend({ qty: signedDecimal, occurred_at: isoInstantIn });
161
+ const periodRowShape = periodRow.extend({ from_at: isoInstantIn, to_at: isoInstantIn });
162
+ /**
163
+ * A period's frozen line, as stored. NOT in the entity registry, deliberately —
164
+ * a line has no identity outside the close that made it (`entities.ts`) — so its
165
+ * row shape is declared here, where the reads of it are.
166
+ */
167
+ const periodLineRow = z.object({
168
+ id: z.string(),
169
+ period_id: z.string(),
170
+ meter_key: z.string(),
171
+ kind: meterKind,
172
+ unit: z.string(),
173
+ qty: signedDecimal,
174
+ entry_count: z.number(),
146
175
  });
147
- const toEntry = (r) => ({
148
- id: r.id,
149
- meterKey: r.meter_key,
150
- qty: r.qty,
151
- subject: r.subject_type !== null && r.subject_id !== null
152
- ? { entityType: r.subject_type, entityId: r.subject_id }
153
- : null,
154
- occurredAt: r.occurred_at,
155
- dedupeKey: r.dedupe_key,
156
- note: r.note,
157
- createdBy: r.created_by,
158
- createdAt: r.created_at,
176
+ /** The PUBLISHED shapes what a composing vertical declares its `output` with. */
177
+ const meterShape = z.object({
178
+ key: z.string(),
179
+ kind: meterKind,
180
+ unit: z.string(),
181
+ description: z.string().nullable(),
182
+ active: z.boolean(),
183
+ createdAt: z.string(),
159
184
  });
160
- const toPeriod = (r) => ({
161
- id: r.id,
162
- from: r.from_at,
163
- to: r.to_at,
164
- closedBy: r.closed_by,
165
- closedAt: r.closed_at,
185
+ const usageEntryShape = z.object({
186
+ id: z.string(),
187
+ meterKey: z.string(),
188
+ qty: signedDecimal,
189
+ subject: entityRef.nullable(),
190
+ occurredAt: isoInstantIn,
191
+ dedupeKey: z.string(),
192
+ note: z.string().nullable(),
193
+ createdBy: z.string(),
194
+ createdAt: z.string(),
195
+ });
196
+ const meteringPeriodShape = z.object({
197
+ id: z.string(),
198
+ from: isoInstantIn,
199
+ to: isoInstantIn,
200
+ closedBy: z.string(),
201
+ closedAt: z.string(),
166
202
  });
167
- const toLine = (r) => ({
168
- meterKey: r.meter_key,
169
- kind: r.kind,
170
- unit: r.unit,
171
- qty: r.qty,
172
- entryCount: r.entry_count,
203
+ /** One meter's frozen aggregate for a closed period. Unpriced, by design (D-E). */
204
+ const periodLineShape = z.object({
205
+ meterKey: z.string(),
206
+ kind: meterKind,
207
+ unit: z.string(),
208
+ qty: signedDecimal,
209
+ entryCount: z.number(),
173
210
  });
211
+ /** A window aggregate — the shape `usageTotal` publishes and a close freezes. */
212
+ const usageAggregate = z.object({ qty: signedDecimal, entryCount: z.number() });
213
+ /**
214
+ * The SELECT lists, derived from the row schemas (#771).
215
+ *
216
+ * Never `SELECT *`: that pins the shape a read returns to whatever the physical
217
+ * table currently holds, which is the same trust-TypeScript hole `returns` closes
218
+ * from the other side. A column dropped from the table is then a SQL error naming
219
+ * it; a column added to the table is simply never read.
220
+ */
221
+ const METER_COLUMNS = columnsOf(meterRowShape);
222
+ const ENTRY_COLUMNS = columnsOf(entryRowShape);
223
+ const PERIOD_COLUMNS = columnsOf(periodRowShape);
224
+ const PERIOD_LINE_COLUMNS = columnsOf(periodLineRow);
225
+ /**
226
+ * What both aggregates read — a projection of `entryRowShape`, not a table.
227
+ *
228
+ * `occurred_at` is in it even though the fold never sums it, because it is what
229
+ * DECIDES the fold: the window is a string comparison, and an instant in a shape
230
+ * this engine never promised sorts into or out of it silently. Leaving it out
231
+ * would have parsed the summand and trusted the thing that chose which summands
232
+ * there were — and a close freezes that choice into an immutable line.
233
+ */
234
+ const entryFold = entryRowShape.pick({ qty: true, occurred_at: true });
235
+ /** A stored row, parsed BEFORE anything is made of it. */
236
+ const storedMeter = (r) => returns(meterRowShape, `meter row ${r.key}`, r);
237
+ const storedEntry = (r) => returns(entryRowShape, `usage entry row ${r.id}`, r);
238
+ const storedPeriod = (r) => returns(periodRowShape, `period row ${r.id}`, r);
239
+ const storedLine = (r) => returns(periodLineRow, `period line row ${r.id}`, r);
240
+ /**
241
+ * A stored row, published (#771) — the projection AND the parse in one place,
242
+ * because every path out of this engine goes through one of these four.
243
+ */
244
+ const toMeter = (raw) => {
245
+ const r = storedMeter(raw);
246
+ return returns(meterShape, `meter ${r.key}`, {
247
+ key: r.key,
248
+ kind: r.kind,
249
+ unit: r.unit,
250
+ description: r.description,
251
+ // Parsed BEFORE this normalisation: `active` is 0/1 and read with `=== 1`,
252
+ // so a retyped one would not throw — it would publish every meter as
253
+ // inactive and refuse every `recordUsage` against it as `meter_inactive`.
254
+ active: r.active === 1,
255
+ createdAt: r.created_at,
256
+ });
257
+ };
258
+ const toEntry = (raw) => {
259
+ const r = storedEntry(raw);
260
+ return returns(usageEntryShape, `usage entry ${r.id}`, {
261
+ id: r.id,
262
+ meterKey: r.meter_key,
263
+ qty: r.qty,
264
+ subject: r.subject_type !== null && r.subject_id !== null
265
+ ? { entityType: r.subject_type, entityId: r.subject_id }
266
+ : null,
267
+ occurredAt: r.occurred_at,
268
+ dedupeKey: r.dedupe_key,
269
+ note: r.note,
270
+ createdBy: r.created_by,
271
+ createdAt: r.created_at,
272
+ });
273
+ };
274
+ const toPeriod = (raw) => {
275
+ const r = storedPeriod(raw);
276
+ return returns(meteringPeriodShape, `metering period ${r.id}`, {
277
+ id: r.id,
278
+ from: r.from_at,
279
+ to: r.to_at,
280
+ closedBy: r.closed_by,
281
+ closedAt: r.closed_at,
282
+ });
283
+ };
284
+ const toLine = (raw) => {
285
+ const r = storedLine(raw);
286
+ return returns(periodLineShape, `period line ${r.id}`, {
287
+ meterKey: r.meter_key,
288
+ kind: r.kind,
289
+ unit: r.unit,
290
+ qty: r.qty,
291
+ entryCount: r.entry_count,
292
+ });
293
+ };
174
294
  function getMeterRow(ctx, key) {
175
- const row = ctx.sql.query('SELECT * FROM metering_meters WHERE key = ?', [key])[0];
295
+ const row = ctx.sql.query(`SELECT ${METER_COLUMNS} FROM metering_meters WHERE key = ?`, [
296
+ key,
297
+ ])[0];
176
298
  if (!row)
177
299
  throw substratError('not_found', `meter not found: ${key}`);
178
- return row;
300
+ // Parsed here rather than at each caller: `kind` decides counter-versus-gauge
301
+ // aggregation and `active` decides whether usage may be recorded at all, so
302
+ // every path through this engine reads a meter row it has already checked.
303
+ return storedMeter(row);
179
304
  }
180
305
  /** The latest closed `to` — nothing may be recorded behind it (D-D). */
181
306
  function closeHorizon(ctx) {
@@ -190,9 +315,14 @@ function closeHorizon(ctx) {
190
315
  * sample forward with entryCount 0 — a level persists between observations.
191
316
  */
192
317
  function aggregateMeter(ctx, meter, from, to) {
193
- const rows = ctx.sql.query(`SELECT qty FROM metering_entries
318
+ // Parsed on the way into the fold, the way absence parses a ledger delta: a
319
+ // summand that drifted crosses as a NUMBER nobody questions, and this one is
320
+ // frozen into a period line and billed.
321
+ const rows = ctx.sql
322
+ .query(`SELECT ${columnsOf(entryFold)} FROM metering_entries
194
323
  WHERE meter_key = ? AND occurred_at >= ? AND occurred_at < ?
195
- ORDER BY occurred_at, id`, [meter.key, from, to]);
324
+ ORDER BY occurred_at, id`, [meter.key, from, to])
325
+ .map((r) => returns(entryFold, `usage entry on meter '${meter.key}'`, r));
196
326
  if (meter.kind === 'counter') {
197
327
  if (rows.length === 0)
198
328
  return null;
@@ -202,10 +332,17 @@ function aggregateMeter(ctx, meter, from, to) {
202
332
  const max = rows.reduce((m, r) => (compareDecimal(r.qty, m) > 0 ? r.qty : m), rows[0].qty);
203
333
  return { qty: max, entryCount: rows.length };
204
334
  }
205
- const carried = ctx.sql.query(`SELECT qty FROM metering_entries
335
+ const carried = ctx.sql.query(`SELECT ${columnsOf(entryFold)} FROM metering_entries
206
336
  WHERE meter_key = ? AND occurred_at < ?
207
337
  ORDER BY occurred_at DESC, id DESC LIMIT 1`, [meter.key, from])[0];
208
- return carried ? { qty: carried.qty, entryCount: 0 } : null;
338
+ // The carry-forward is chosen by `occurred_at` too it is the LATEST earlier
339
+ // sample — so the same parse decides it.
340
+ return carried
341
+ ? {
342
+ qty: returns(entryFold, `carried entry on meter '${meter.key}'`, carried).qty,
343
+ entryCount: 0,
344
+ }
345
+ : null;
209
346
  }
210
347
  // ---------------------------------------------------------------------------
211
348
  // In-scope functions (K-16) — composable from vertical operations, same
@@ -226,9 +363,11 @@ export const configureMeterInput = z.object({
226
363
  */
227
364
  export function configureMeter(ctx, rawInput) {
228
365
  const input = configureMeterInput.parse(rawInput);
229
- const existing = ctx.sql.query('SELECT * FROM metering_meters WHERE key = ?', [
230
- input.key,
231
- ])[0];
366
+ const stored = ctx.sql.query(`SELECT ${METER_COLUMNS} FROM metering_meters WHERE key = ?`, [input.key])[0];
367
+ // `kind` and `unit` are FROZEN, and this is the read that judges them — a
368
+ // drifted one would either wave through a change the invariant forbids or
369
+ // refuse a legitimate one with a message naming a value nothing declared.
370
+ const existing = stored ? storedMeter(stored) : undefined;
232
371
  if (existing) {
233
372
  if (existing.kind !== input.kind || existing.unit !== input.unit) {
234
373
  throw conflict('definition_frozen', `meter '${input.key}' is ${existing.kind}/${existing.unit} — kind and unit are frozen after creation; a new unit is a new meter key`);
@@ -261,7 +400,9 @@ export function configureMeter(ctx, rawInput) {
261
400
  return toMeter(row);
262
401
  }
263
402
  export function listMeters(ctx) {
264
- return ctx.sql.query('SELECT * FROM metering_meters ORDER BY key').map(toMeter);
403
+ return ctx.sql
404
+ .query(`SELECT ${METER_COLUMNS} FROM metering_meters ORDER BY key`)
405
+ .map(toMeter);
265
406
  }
266
407
  /**
267
408
  * How far AHEAD of the operation's own instant an `occurredAt` may sit (#1066).
@@ -314,7 +455,12 @@ export function recordUsage(ctx, rawInput) {
314
455
  throw conflict('meter_inactive', `meter '${meter.key}' is inactive`);
315
456
  if (meter.kind === 'gauge')
316
457
  nonNegDecimal.parse(input.qty);
317
- const existing = ctx.sql.query('SELECT * FROM metering_entries WHERE meter_key = ? AND dedupe_key = ?', [meter.key, input.dedupeKey])[0];
458
+ const priorRow = ctx.sql.query(`SELECT ${ENTRY_COLUMNS} FROM metering_entries WHERE meter_key = ? AND dedupe_key = ?`, [meter.key, input.dedupeKey])[0];
459
+ // Parsed before the dedupe comparison: `existing.qty` is compared as a decimal
460
+ // to decide replay-versus-upstream-bug, so a drifted one would answer the
461
+ // wrong question — a silent second bill, or a `dedupe_mismatch` naming a
462
+ // quantity that is not one.
463
+ const existing = priorRow ? storedEntry(priorRow) : undefined;
318
464
  if (existing) {
319
465
  if (compareDecimal(existing.qty, input.qty) !== 0) {
320
466
  throw conflict('dedupe_mismatch', `dedupe key '${input.dedupeKey}' on meter '${meter.key}' was recorded with qty ${existing.qty}, now ${input.qty} — a dedupe key must name one observation`);
@@ -349,7 +495,7 @@ export function recordUsage(ctx, rawInput) {
349
495
  ctx.principal,
350
496
  now,
351
497
  ]);
352
- const entry = toEntry(ctx.sql.query('SELECT * FROM metering_entries WHERE id = ?', [id])[0]);
498
+ const entry = toEntry(ctx.sql.query(`SELECT ${ENTRY_COLUMNS} FROM metering_entries WHERE id = ?`, [id])[0]);
353
499
  ctx.emit({
354
500
  type: 'metering.usage-recorded',
355
501
  schemaVersion: 1,
@@ -378,7 +524,8 @@ export function usageTotal(ctx, input) {
378
524
  const to = isoInstant.parse(input.to);
379
525
  if (to <= from)
380
526
  throw substratError('validation_failed', `to ${to} must be after from ${from}`);
381
- return aggregateMeter(ctx, getMeterRow(ctx, input.meter), from, to);
527
+ const agg = aggregateMeter(ctx, getMeterRow(ctx, input.meter), from, to);
528
+ return agg && returns(usageAggregate, `usage total for '${input.meter}'`, agg);
382
529
  }
383
530
  export function listEntries(ctx, input) {
384
531
  const where = [];
@@ -399,7 +546,7 @@ export function listEntries(ctx, input) {
399
546
  where.push('occurred_at < ?');
400
547
  params.push(isoInstant.parse(input.to));
401
548
  }
402
- const sql = `SELECT * FROM metering_entries${where.length ? ` WHERE ${where.join(' AND ')}` : ''} ORDER BY occurred_at, id`;
549
+ const sql = `SELECT ${ENTRY_COLUMNS} FROM metering_entries${where.length ? ` WHERE ${where.join(' AND ')}` : ''} ORDER BY occurred_at, id`;
403
550
  return ctx.sql.query(sql, params).map(toEntry);
404
551
  }
405
552
  export const closePeriodInput = z.object({
@@ -427,19 +574,20 @@ export function closePeriod(ctx, rawInput) {
427
574
  const now = ctx.now();
428
575
  ctx.sql.exec(`INSERT INTO metering_periods (id, from_at, to_at, closed_by, closed_at) VALUES (?, ?, ?, ?, ?)`, [id, input.from, input.to, ctx.principal, now]);
429
576
  const lines = [];
430
- for (const meter of ctx.sql.query('SELECT * FROM metering_meters ORDER BY key')) {
577
+ for (const raw of ctx.sql.query(`SELECT ${METER_COLUMNS} FROM metering_meters ORDER BY key`)) {
578
+ const meter = storedMeter(raw);
431
579
  const agg = aggregateMeter(ctx, meter, input.from, input.to);
432
580
  if (!agg)
433
581
  continue;
434
582
  ctx.sql.exec(`INSERT INTO metering_period_lines (id, period_id, meter_key, kind, unit, qty, entry_count)
435
583
  VALUES (?, ?, ?, ?, ?, ?, ?)`, [ulid(), id, meter.key, meter.kind, meter.unit, agg.qty, agg.entryCount]);
436
- lines.push({
584
+ lines.push(returns(periodLineShape, `period line for '${meter.key}'`, {
437
585
  meterKey: meter.key,
438
586
  kind: meter.kind,
439
587
  unit: meter.unit,
440
588
  qty: agg.qty,
441
589
  entryCount: agg.entryCount,
442
- });
590
+ }));
443
591
  }
444
592
  ctx.emit({
445
593
  type: 'metering.period-closed',
@@ -449,23 +597,27 @@ export function closePeriod(ctx, rawInput) {
449
597
  payload: { periodId: id, from: input.from, to: input.to, lines },
450
598
  });
451
599
  return {
452
- period: { id, from: input.from, to: input.to, closedBy: String(ctx.principal), closedAt: now },
600
+ period: returns(meteringPeriodShape, `metering period ${id}`, {
601
+ id,
602
+ from: input.from,
603
+ to: input.to,
604
+ closedBy: String(ctx.principal),
605
+ closedAt: now,
606
+ }),
453
607
  lines,
454
608
  };
455
609
  }
456
610
  export function listPeriods(ctx) {
457
611
  return ctx.sql
458
- .query('SELECT * FROM metering_periods ORDER BY from_at, id')
612
+ .query(`SELECT ${PERIOD_COLUMNS} FROM metering_periods ORDER BY from_at, id`)
459
613
  .map(toPeriod);
460
614
  }
461
615
  export function periodLines(ctx, input) {
462
- const period = ctx.sql.query('SELECT * FROM metering_periods WHERE id = ?', [
463
- input.periodId,
464
- ])[0];
616
+ const period = ctx.sql.query(`SELECT ${PERIOD_COLUMNS} FROM metering_periods WHERE id = ?`, [input.periodId])[0];
465
617
  if (!period)
466
618
  throw substratError('not_found', `metering period not found: ${input.periodId}`);
467
619
  return ctx.sql
468
- .query('SELECT * FROM metering_period_lines WHERE period_id = ? ORDER BY meter_key', [input.periodId])
620
+ .query(`SELECT ${PERIOD_LINE_COLUMNS} FROM metering_period_lines WHERE period_id = ? ORDER BY meter_key`, [input.periodId])
469
621
  .map(toLine);
470
622
  }
471
623
  // ---------------------------------------------------------------------------
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The artifact of record for this engine (#697/#844, #976).
3
+ *
4
+ * `pnpm lint:model --check` re-emits this into `engines/metering/model.json`, so a
5
+ * changed table, a renamed field or a moved parent edge has to appear in a PR
6
+ * diff. No `lifecycles` option: this engine declares no state machine, and an
7
+ * empty one would claim otherwise.
8
+ *
9
+ * Imported by nothing, so the direction stays acyclic.
10
+ */
11
+ export declare const meteringModel: import("@substrat-run/contracts").EmittedModel;
12
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,gDAA8B,CAAC"}
package/dist/model.js ADDED
@@ -0,0 +1,14 @@
1
+ import { emitModel } from '@substrat-run/contracts';
2
+ import { meteringEntities } from './entities.js';
3
+ /**
4
+ * The artifact of record for this engine (#697/#844, #976).
5
+ *
6
+ * `pnpm lint:model --check` re-emits this into `engines/metering/model.json`, so a
7
+ * changed table, a renamed field or a moved parent edge has to appear in a PR
8
+ * diff. No `lifecycles` option: this engine declares no state machine, and an
9
+ * empty one would claim otherwise.
10
+ *
11
+ * Imported by nothing, so the direction stays acyclic.
12
+ */
13
+ export const meteringModel = emitModel(meteringEntities);
14
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC"}
package/dist/seam.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /** How this engine names itself in a seam failure. */
2
+ export declare const columnsOf: (schema: {
3
+ readonly shape: Readonly<Record<string, unknown>>;
4
+ }) => string, returns: <T>(schema: import("zod").ZodType<T>, surface: string, value: unknown) => T;
5
+ //# sourceMappingURL=seam.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seam.d.ts","sourceRoot":"","sources":["../src/seam.ts"],"names":[],"mappings":"AAkBA,sDAAsD;AACtD,eAAO,MAAQ,SAAS;;cAAE,OAAO,6EAAkC,CAAC"}
package/dist/seam.js ADDED
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The engine seam (#771) for engine-metering — the NAME, and nothing else.
3
+ *
4
+ * `returns(schema, surface, value)` and `columnsOf(schema)` live in
5
+ * `@substrat-run/contracts` (#970), where the prose explaining what they are for
6
+ * lives with them; an engine supplies only the name it answers under.
7
+ *
8
+ * What is specific to this engine is that almost everything it publishes is a
9
+ * number a bill is computed from. `qty` is summed by `aggregateMeter` into a
10
+ * period line, and a line is what the vertical prices and hands to invoicing — so
11
+ * a drifted summand is not a rendering bug, it is a wrong invoice with no throw
12
+ * anywhere. `occurred_at` is the other one: every window here is a string
13
+ * comparison over ISO instants, so an instant in a shape the engine never
14
+ * promised sorts into or out of a window silently, and the close that freezes it
15
+ * is immutable afterwards.
16
+ */
17
+ import { engineSeam } from '@substrat-run/contracts';
18
+ /** How this engine names itself in a seam failure. */
19
+ export const { columnsOf, returns } = engineSeam('engine-metering');
20
+ //# sourceMappingURL=seam.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seam.js","sourceRoot":"","sources":["../src/seam.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,sDAAsD;AACtD,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@substrat-run/engine-metering",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "Substrat engine: billable usage — an append-only, idempotent meter ledger (counters and gauges) whose closed periods are frozen billing evidence",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {
@@ -25,15 +25,15 @@
25
25
  "access": "public"
26
26
  },
27
27
  "dependencies": {
28
- "@substrat-run/kernel": "^0.94.0",
29
- "@substrat-run/contracts": "^0.94.0"
28
+ "@substrat-run/kernel": "^0.96.0",
29
+ "@substrat-run/contracts": "^0.96.0"
30
30
  },
31
31
  "devDependencies": {
32
32
  "typescript": "^7.0.0",
33
33
  "vitest": "^3.2.7",
34
34
  "zod": "^4.4.3",
35
- "@substrat-run/contract-tests": "^0.94.0",
36
- "@substrat-run/engine-test-kit": "^0.3.21"
35
+ "@substrat-run/contract-tests": "^0.96.0",
36
+ "@substrat-run/engine-test-kit": "^0.3.23"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "zod": "^4.4.0"