@substrat-run/engine-workorder 0.4.3 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  import { z } from 'zod';
2
2
  import { type Money } from '@substrat-run/contracts';
3
+ import { type BillableLine, type WorkOrder, type TimeEntry, type MaterialLine } from './schemas.js';
3
4
  export { workorderEntities, workorderRow } from './entities.js';
5
+ export { billableLine, decimal, workOrder, timeEntry, materialLine, type BillableLine, type WorkOrder, type TimeEntry, type MaterialLine, } from './schemas.js';
6
+ export { workorderOperations, WORKORDER_PERMISSIONS } from './operations.js';
4
7
  import { type ModuleRegistration, type OperationContext } from '@substrat-run/kernel';
5
8
  export declare const PERM: {
6
9
  create: string & z.$brand<"PermissionKey">;
@@ -107,26 +110,6 @@ export declare const workorderMigrations: {
107
110
  version: string;
108
111
  sql: string;
109
112
  }[];
110
- export declare const billableLine: z.ZodObject<{
111
- article: z.ZodString;
112
- description: z.ZodString;
113
- qty: z.ZodString;
114
- unit: z.ZodString;
115
- unitPrice: z.ZodObject<{
116
- amount: z.core.$ZodBranded<z.ZodString, "MoneyAmount", "out">;
117
- currency: z.core.$ZodBranded<z.ZodString, "CurrencyCode", "out">;
118
- }, z.core.$strip>;
119
- lineTotal: z.ZodObject<{
120
- amount: z.core.$ZodBranded<z.ZodString, "MoneyAmount", "out">;
121
- currency: z.core.$ZodBranded<z.ZodString, "CurrencyCode", "out">;
122
- }, z.core.$strip>;
123
- sourceType: z.ZodEnum<{
124
- material: "material";
125
- time: "time";
126
- }>;
127
- sourceId: z.ZodString;
128
- }, z.core.$strip>;
129
- export type BillableLine = z.infer<typeof billableLine>;
130
113
  export declare const createWorkOrderInput: z.ZodObject<{
131
114
  facility: z.ZodObject<{
132
115
  entityType: z.ZodString;
@@ -141,63 +124,6 @@ export declare const createWorkOrderInput: z.ZodObject<{
141
124
  description: z.ZodOptional<z.ZodString>;
142
125
  }, z.core.$strip>;
143
126
  export type CreateWorkOrderInput = z.infer<typeof createWorkOrderInput>;
144
- /**
145
- * A work order as this engine PUBLISHES it — not as it stores it.
146
- *
147
- * Schema first, interface derived, matching `billableLine` and
148
- * `createWorkOrderInput` above. A vertical declaring an operation that returns a
149
- * work order uses this schema for its `output`; without it the vertical would
150
- * have to transcribe this shape into Zod, which is a description held in
151
- * agreement by nothing.
152
- *
153
- * Deliberately NOT the row (`workorderRow`). The stored row carries
154
- * `facility_type` / `facility_id` as two snake_case columns; the published type
155
- * carries one `EntityRef` and camelCase names. `status` is taken from the
156
- * registry so storage and domain cannot disagree about the state set.
157
- */
158
- export declare const workOrder: z.ZodObject<{
159
- id: z.ZodString;
160
- number: z.ZodNumber;
161
- facility: z.ZodObject<{
162
- entityType: z.ZodString;
163
- entityId: z.ZodString;
164
- }, z.core.$strip>;
165
- customer: z.ZodObject<{
166
- entityType: z.ZodString;
167
- entityId: z.ZodString;
168
- }, z.core.$strip>;
169
- kind: z.ZodString;
170
- title: z.ZodString;
171
- description: z.ZodNullable<z.ZodString>;
172
- status: z.ZodEnum<{
173
- closed: "closed";
174
- completed: "completed";
175
- in_progress: "in_progress";
176
- planned: "planned";
177
- }>;
178
- assignedTo: z.ZodNullable<z.ZodString>;
179
- createdBy: z.ZodString;
180
- createdAt: z.ZodString;
181
- completedAt: z.ZodNullable<z.ZodString>;
182
- }, z.core.$strip>;
183
- export type WorkOrder = z.infer<typeof workOrder>;
184
- export interface TimeEntry {
185
- id: string;
186
- order_id: string;
187
- technician: string;
188
- hours: string;
189
- note: string | null;
190
- reported_at: string;
191
- }
192
- export interface MaterialLine {
193
- id: string;
194
- order_id: string;
195
- article: string;
196
- qty: string;
197
- note: string | null;
198
- reported_by: string;
199
- reported_at: string;
200
- }
201
127
  export declare function createWorkOrder(ctx: OperationContext, rawInput: CreateWorkOrderInput): WorkOrder;
202
128
  export declare function getReportedLines(ctx: OperationContext, orderId: string): {
203
129
  time: TimeEntry[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAUL,KAAK,KAAK,EACX,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAEtB,MAAM,sBAAsB,CAAC;AAQ9B,eAAO,MAAM,IAAI;IACf,MAAM;IACN,IAAI;IACJ,MAAM;IACN,MAAM;IACN,QAAQ;IACR,KAAK;CACN,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC5B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;GAuC/B,CAAC;AAQF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;iBASvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;iBAM/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AASxE;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;iBAapB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAyCD,wBAAgB,eAAe,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,GAAG,SAAS,CA0ChG;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,GACd;IAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,CAWjD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAQ9E;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,GACnD;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CA4BpC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAY3F;AA4HD,eAAO,MAAM,eAAe,EAAE,kBAa7B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAUL,KAAK,KAAK,EACX,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAML,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AAMtB,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EACL,YAAY,EACZ,OAAO,EACP,SAAS,EACT,SAAS,EACT,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAEtB,MAAM,sBAAsB,CAAC;AAQ9B,eAAO,MAAM,IAAI;IACf,MAAM;IACN,IAAI;IACJ,MAAM;IACN,MAAM;IACN,QAAQ;IACR,KAAK;CACN,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC5B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;GAuC/B,CAAC;AAQF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;iBAM/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAiExE,wBAAgB,eAAe,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,GAAG,SAAS,CA0ChG;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,GACd;IAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,CAWjD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAQ9E;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,GACnD;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CA4BpC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAY3F;AA4HD,eAAO,MAAM,eAAe,EAAE,kBAa7B,CAAC"}
package/dist/index.js CHANGED
@@ -1,10 +1,13 @@
1
1
  import { z } from 'zod';
2
2
  import { addMoney, dataSubjectId, entityRef, money, moduleManifest, moneyOf, permissionKey, } from '@substrat-run/contracts';
3
+ import { billableLine, decimal, workOrder, timeEntry, materialLine, } from './schemas.js';
3
4
  import { workorderEntities } from './entities.js';
4
5
  // The entity registry is PUBLIC: a composing vertical imports it to check
5
6
  // relation edges naming this engine's entities, and to declare an operation's
6
7
  // output without transcribing this engine's shape.
7
8
  export { workorderEntities, workorderRow } from './entities.js';
9
+ export { billableLine, decimal, workOrder, timeEntry, materialLine, } from './schemas.js';
10
+ export { workorderOperations, WORKORDER_PERMISSIONS } from './operations.js';
8
11
  import { assertAllowed, ulid, } from '@substrat-run/kernel';
9
12
  // ============================================================================
10
13
  // The work-order engine (demos/callout/spec/testrun.md §4.2/§5.2). Owns the state
@@ -99,17 +102,6 @@ export const workorderMigrations = [
99
102
  // ---------------------------------------------------------------------------
100
103
  // Schemas & shapes
101
104
  // ---------------------------------------------------------------------------
102
- const decimal = z.string().regex(/^\d+(\.\d{1,6})?$/);
103
- export const billableLine = z.object({
104
- article: z.string().min(1),
105
- description: z.string().min(1),
106
- qty: decimal,
107
- unit: z.string().min(1),
108
- unitPrice: money,
109
- lineTotal: money,
110
- sourceType: z.enum(['time', 'material']),
111
- sourceId: z.string().min(1),
112
- });
113
105
  export const createWorkOrderInput = z.object({
114
106
  facility: entityRef,
115
107
  customer: entityRef,
@@ -131,20 +123,6 @@ export const createWorkOrderInput = z.object({
131
123
  * carries one `EntityRef` and camelCase names. `status` is taken from the
132
124
  * registry so storage and domain cannot disagree about the state set.
133
125
  */
134
- export const workOrder = z.object({
135
- id: z.string(),
136
- number: z.number(),
137
- facility: entityRef,
138
- customer: entityRef,
139
- kind: z.string(),
140
- title: z.string(),
141
- description: z.string().nullable(),
142
- status: workorderEntities.workorder.fields.shape.status,
143
- assignedTo: z.string().nullable(),
144
- createdBy: z.string(),
145
- createdAt: z.string(),
146
- completedAt: z.string().nullable(),
147
- });
148
126
  const toWorkOrder = (r) => ({
149
127
  id: r.id,
150
128
  number: r.number,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,QAAQ,EACR,aAAa,EACb,SAAS,EACT,KAAK,EACL,cAAc,EACd,OAAO,EACP,aAAa,GAId,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,0EAA0E;AAC1E,8EAA8E;AAC9E,mDAAmD;AACnD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EACL,aAAa,EACb,IAAI,GAIL,MAAM,sBAAsB,CAAC;AAE9B,+EAA+E;AAC/E,kFAAkF;AAClF,2EAA2E;AAC3E,4EAA4E;AAC5E,+EAA+E;AAE/E,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC;IAC/C,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAC3C,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC;IAC/C,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC;IAC/C,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,oBAAoB,CAAC;IACnD,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC;CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC,KAAK,CAAC;IACpD,EAAE,EAAE,gCAAgC;IACpC,OAAO,EAAE,OAAO;IAChB,cAAc,EAAE,QAAQ;IACxB,WAAW,EAAE;QACX,EAAE,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE,oBAAoB,EAAE;QAC9D,EAAE,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,qCAAqC,EAAE;QAC7E,EAAE,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE,qBAAqB,EAAE;QAC/D,EAAE,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE,sCAAsC,EAAE;QAChF,EAAE,GAAG,EAAE,oBAAoB,EAAE,WAAW,EAAE,6CAA6C,EAAE;QACzF,EAAE,GAAG,EAAE,iBAAiB,EAAE,WAAW,EAAE,8BAA8B,EAAE;KACxE;IACD,MAAM,EAAE;QACN,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE,CAAC,EAAE;YAC/C,EAAE,IAAI,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC,EAAE;YAChD,EAAE,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE,CAAC,EAAE;YAC/C,EAAE,IAAI,EAAE,yBAAyB,EAAE,aAAa,EAAE,CAAC,EAAE;YACrD,EAAE,IAAI,EAAE,6BAA6B,EAAE,aAAa,EAAE,CAAC,EAAE;YACzD,EAAE,IAAI,EAAE,qBAAqB,EAAE,aAAa,EAAE,CAAC,EAAE;YACjD,EAAE,IAAI,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC,EAAE;SAC/C;QACD,QAAQ,EAAE,EAAE;KACb;IACD,UAAU,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE;IACnE,iBAAiB,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;IAClF,eAAe,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IACtE,cAAc,EAAE,WAAW;IAC3B,EAAE,EAAE;QACF,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,gBAAgB,EAAE;YAClF,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,sBAAsB,EAAE,UAAU,EAAE,gBAAgB,EAAE;SACzF;QACD,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;QACjG,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;KACvE;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC;QACE,OAAO,EAAE,WAAW;QACpB,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkCJ;KACF;CACF,CAAC;AAEF,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,GAAG,EAAE,OAAO;IACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAUH;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;IACvD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAsBH,MAAM,WAAW,GAAG,CAAC,CAAW,EAAa,EAAE,CAAC,CAAC;IAC/C,EAAE,EAAE,CAAC,CAAC,EAAE;IACR,MAAM,EAAE,CAAC,CAAC,MAAM;IAChB,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE;IAClE,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE;IAClE,IAAI,EAAE,CAAC,CAAC,IAAI;IACZ,KAAK,EAAE,CAAC,CAAC,KAAK;IACd,WAAW,EAAE,CAAC,CAAC,WAAW;IAC1B,MAAM,EAAE,CAAC,CAAC,MAAM;IAChB,UAAU,EAAE,CAAC,CAAC,WAAW;IACzB,SAAS,EAAE,CAAC,CAAC,UAAU;IACvB,SAAS,EAAE,CAAC,CAAC,UAAU;IACvB,WAAW,EAAE,CAAC,CAAC,YAAY;CAC5B,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAa,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAExF,SAAS,MAAM,CAAC,GAAqB,EAAE,OAAe;IACpD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAW,6CAA6C,EAAE;QACjF,OAAO;KACR,CAAC,CAAC,CAAC,CAAC,CAAC;IACN,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;IAC9D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,GAAa,EAAE,GAAG,OAA6B;IACpE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,kCAAkC,GAAG,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAM,eAAe,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACjG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,wEAAwE;AACxE,2EAA2E;AAC3E,sDAAsD;AACtD,8EAA8E;AAE9E,MAAM,UAAU,eAAe,CAAC,GAAqB,EAAE,QAA8B;IACnF,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,MAAM,GACT,GAAG,CAAC,GAAG,CAAC,KAAK,CAAgB,gEAAgE,CAAC,CAAC,CAAC,CAAC;QAChG,EAAE,CAAY,IAAI,CAAC,CAAC;IACxB,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAClB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,GAAG,CAAC,GAAG,CAAC,IAAI,CACV;;;yDAGqD,EACrD;QACE,EAAE;QACF,MAAM;QACN,KAAK,CAAC,QAAQ,CAAC,UAAU;QACzB,KAAK,CAAC,QAAQ,CAAC,QAAQ;QACvB,KAAK,CAAC,QAAQ,CAAC,UAAU;QACzB,KAAK,CAAC,QAAQ,CAAC,QAAQ;QACvB,KAAK,CAAC,IAAI;QACV,KAAK,CAAC,KAAK;QACX,KAAK,CAAC,WAAW,IAAI,IAAI;QACzB,GAAG,CAAC,SAAS;QACb,SAAS;KACV,CACF,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvC,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,mBAAmB;QACzB,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;QACpB,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE;YACP,OAAO,EAAE,EAAE;YACX,MAAM;YACN,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB;KACF,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,GAAqB,EACrB,OAAe;IAEf,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CACjB,qEAAqE,EACrE,CAAC,OAAO,CAAC,CACV;QACD,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CACrB,uEAAuE,EACvE,CAAC,OAAO,CAAC,CACV;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAqB,EAAE,MAAe;IAC/D,MAAM,IAAI,GAAG,MAAM;QACjB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CACX,sEAAsE,EACtE,CAAC,MAAM,CAAC,CACT;QACH,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAW,qDAAqD,CAAC,CAAC;IACnF,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,GAAqB,EACrB,KAAoD;IAEpD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAC3B,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAC5C,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,IAAI,KAAK,CAAC,CACvD,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7C,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,iFAAiF,EAAE;QAC9F,WAAW;QACX,GAAG,CAAC,EAAE;KACP,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,qBAAqB;QAC3B,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE;YACP,OAAO,EAAE,GAAG,CAAC,EAAE;YACf,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,QAAQ,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE;YACtE,QAAQ,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE;YACtE,QAAQ;YACR,KAAK;SACN;KACF,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAqB,EAAE,KAA0B;IAC9E,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAChC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,4DAA4D,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACrF,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,kBAAkB;QACxB,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE;KAC7B,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,8EAA8E;AAC9E,sEAAsE;AACtE,8EAA8E;AAE9E,MAAM,KAAK,GAGP,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACvB,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,OAAO,EAAE,KAAK,EAAE,GAAG,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,MAAM,GAAmE,KAAK,EAClF,GAAG,EACH,KAAK,EACL,EAAE;IACF,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,OAAO,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAyE,KAAK,EAC1F,GAAG,EACH,KAAK,EACL,EAAE;IACF,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,0DAA0D,EAAE;QACvE,KAAK,CAAC,UAAU;QAChB,GAAG,CAAC,EAAE;KACP,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,oBAAoB;QAC1B,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;QAChD,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE;KAC3D,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,OAAO,GAAqD,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACrF,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,iEAAiE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1F,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,mBAAmB;QACzB,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE;KAC7B,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,YAAY,GAGd,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACvB,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC7C,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAClB,GAAG,CAAC,GAAG,CAAC,IAAI,CACV;+BAC2B,EAC3B,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CACjF,CAAC;IACF,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,yBAAyB;QAC/B,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;QAC7C,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE;KACjD,CAAC,CAAC;IACH,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAY,mDAAmD,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC;AACjG,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAGlB,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACvB,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC7C,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAClB,GAAG,CAAC,GAAG,CAAC,IAAI,CACV;kCAC8B,EAC9B,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAC9F,CAAC;IACF,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,6BAA6B;QACnC,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE;KACtE,CAAC,CAAC;IACH,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAe,qDAAqD,EAAE;QACxF,EAAE;KACH,CAAC,CAAC,CAAC,CAAE,CAAC;AACT,CAAC,CAAC;AAEF,MAAM,UAAU,GAGZ,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACvB,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9C,OAAO,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,OAAO,GAAqD,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACrF,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,OAAO,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAuB;IACjD,QAAQ,EAAE,iBAAiB;IAC3B,UAAU,EAAE,mBAAmB;IAC/B,UAAU,EAAE;QACV,eAAe,EAAE,KAAyC;QAC1D,gBAAgB,EAAE,MAA0C;QAC5D,kBAAkB,EAAE,QAA4C;QAChE,iBAAiB,EAAE,OAA2C;QAC9D,uBAAuB,EAAE,YAAgD;QACzE,2BAA2B,EAAE,gBAAoD;QACjF,oBAAoB,EAAE,UAA8C;QACpE,iBAAiB,EAAE,OAA2C;KAC/D;CACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,QAAQ,EACR,aAAa,EACb,SAAS,EACT,KAAK,EACL,cAAc,EACd,OAAO,EACP,aAAa,GAId,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,YAAY,EACZ,OAAO,EACP,SAAS,EACT,SAAS,EACT,YAAY,GAKb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,0EAA0E;AAC1E,8EAA8E;AAC9E,mDAAmD;AACnD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EACL,YAAY,EACZ,OAAO,EACP,SAAS,EACT,SAAS,EACT,YAAY,GAKb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,aAAa,EACb,IAAI,GAIL,MAAM,sBAAsB,CAAC;AAE9B,+EAA+E;AAC/E,kFAAkF;AAClF,2EAA2E;AAC3E,4EAA4E;AAC5E,+EAA+E;AAE/E,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC;IAC/C,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAC3C,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC;IAC/C,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC;IAC/C,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,oBAAoB,CAAC;IACnD,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC;CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC,KAAK,CAAC;IACpD,EAAE,EAAE,gCAAgC;IACpC,OAAO,EAAE,OAAO;IAChB,cAAc,EAAE,QAAQ;IACxB,WAAW,EAAE;QACX,EAAE,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE,oBAAoB,EAAE;QAC9D,EAAE,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,qCAAqC,EAAE;QAC7E,EAAE,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE,qBAAqB,EAAE;QAC/D,EAAE,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE,sCAAsC,EAAE;QAChF,EAAE,GAAG,EAAE,oBAAoB,EAAE,WAAW,EAAE,6CAA6C,EAAE;QACzF,EAAE,GAAG,EAAE,iBAAiB,EAAE,WAAW,EAAE,8BAA8B,EAAE;KACxE;IACD,MAAM,EAAE;QACN,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE,CAAC,EAAE;YAC/C,EAAE,IAAI,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC,EAAE;YAChD,EAAE,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE,CAAC,EAAE;YAC/C,EAAE,IAAI,EAAE,yBAAyB,EAAE,aAAa,EAAE,CAAC,EAAE;YACrD,EAAE,IAAI,EAAE,6BAA6B,EAAE,aAAa,EAAE,CAAC,EAAE;YACzD,EAAE,IAAI,EAAE,qBAAqB,EAAE,aAAa,EAAE,CAAC,EAAE;YACjD,EAAE,IAAI,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC,EAAE;SAC/C;QACD,QAAQ,EAAE,EAAE;KACb;IACD,UAAU,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE;IACnE,iBAAiB,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;IAClF,eAAe,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IACtE,cAAc,EAAE,WAAW;IAC3B,EAAE,EAAE;QACF,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,gBAAgB,EAAE;YAClF,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,sBAAsB,EAAE,UAAU,EAAE,gBAAgB,EAAE;SACzF;QACD,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;QACjG,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;KACvE;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC;QACE,OAAO,EAAE,WAAW;QACpB,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkCJ;KACF;CACF,CAAC;AAEF,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAI9E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAUH;;;;;;;;;;;;;GAaG;AAIH,MAAM,WAAW,GAAG,CAAC,CAAW,EAAa,EAAE,CAAC,CAAC;IAC/C,EAAE,EAAE,CAAC,CAAC,EAAE;IACR,MAAM,EAAE,CAAC,CAAC,MAAM;IAChB,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE;IAClE,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE;IAClE,IAAI,EAAE,CAAC,CAAC,IAAI;IACZ,KAAK,EAAE,CAAC,CAAC,KAAK;IACd,WAAW,EAAE,CAAC,CAAC,WAAW;IAC1B,MAAM,EAAE,CAAC,CAAC,MAAM;IAChB,UAAU,EAAE,CAAC,CAAC,WAAW;IACzB,SAAS,EAAE,CAAC,CAAC,UAAU;IACvB,SAAS,EAAE,CAAC,CAAC,UAAU;IACvB,WAAW,EAAE,CAAC,CAAC,YAAY;CAC5B,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAa,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAExF,SAAS,MAAM,CAAC,GAAqB,EAAE,OAAe;IACpD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAW,6CAA6C,EAAE;QACjF,OAAO;KACR,CAAC,CAAC,CAAC,CAAC,CAAC;IACN,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;IAC9D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,GAAa,EAAE,GAAG,OAA6B;IACpE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,kCAAkC,GAAG,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAM,eAAe,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACjG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,wEAAwE;AACxE,2EAA2E;AAC3E,sDAAsD;AACtD,8EAA8E;AAE9E,MAAM,UAAU,eAAe,CAAC,GAAqB,EAAE,QAA8B;IACnF,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,MAAM,GACT,GAAG,CAAC,GAAG,CAAC,KAAK,CAAgB,gEAAgE,CAAC,CAAC,CAAC,CAAC;QAChG,EAAE,CAAY,IAAI,CAAC,CAAC;IACxB,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAClB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,GAAG,CAAC,GAAG,CAAC,IAAI,CACV;;;yDAGqD,EACrD;QACE,EAAE;QACF,MAAM;QACN,KAAK,CAAC,QAAQ,CAAC,UAAU;QACzB,KAAK,CAAC,QAAQ,CAAC,QAAQ;QACvB,KAAK,CAAC,QAAQ,CAAC,UAAU;QACzB,KAAK,CAAC,QAAQ,CAAC,QAAQ;QACvB,KAAK,CAAC,IAAI;QACV,KAAK,CAAC,KAAK;QACX,KAAK,CAAC,WAAW,IAAI,IAAI;QACzB,GAAG,CAAC,SAAS;QACb,SAAS;KACV,CACF,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvC,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,mBAAmB;QACzB,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;QACpB,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE;YACP,OAAO,EAAE,EAAE;YACX,MAAM;YACN,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB;KACF,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,GAAqB,EACrB,OAAe;IAEf,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CACjB,qEAAqE,EACrE,CAAC,OAAO,CAAC,CACV;QACD,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CACrB,uEAAuE,EACvE,CAAC,OAAO,CAAC,CACV;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAqB,EAAE,MAAe;IAC/D,MAAM,IAAI,GAAG,MAAM;QACjB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CACX,sEAAsE,EACtE,CAAC,MAAM,CAAC,CACT;QACH,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAW,qDAAqD,CAAC,CAAC;IACnF,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,GAAqB,EACrB,KAAoD;IAEpD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAC3B,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAC5C,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,IAAI,KAAK,CAAC,CACvD,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7C,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,iFAAiF,EAAE;QAC9F,WAAW;QACX,GAAG,CAAC,EAAE;KACP,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,qBAAqB;QAC3B,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE;YACP,OAAO,EAAE,GAAG,CAAC,EAAE;YACf,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,QAAQ,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE;YACtE,QAAQ,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE;YACtE,QAAQ;YACR,KAAK;SACN;KACF,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAqB,EAAE,KAA0B;IAC9E,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAChC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,4DAA4D,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACrF,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,kBAAkB;QACxB,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE;KAC7B,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,8EAA8E;AAC9E,sEAAsE;AACtE,8EAA8E;AAE9E,MAAM,KAAK,GAGP,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACvB,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,OAAO,EAAE,KAAK,EAAE,GAAG,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,MAAM,GAAmE,KAAK,EAClF,GAAG,EACH,KAAK,EACL,EAAE;IACF,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,OAAO,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAyE,KAAK,EAC1F,GAAG,EACH,KAAK,EACL,EAAE;IACF,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,0DAA0D,EAAE;QACvE,KAAK,CAAC,UAAU;QAChB,GAAG,CAAC,EAAE;KACP,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,oBAAoB;QAC1B,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;QAChD,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE;KAC3D,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,OAAO,GAAqD,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACrF,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,iEAAiE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1F,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,mBAAmB;QACzB,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE;KAC7B,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,YAAY,GAGd,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACvB,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC7C,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAClB,GAAG,CAAC,GAAG,CAAC,IAAI,CACV;+BAC2B,EAC3B,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CACjF,CAAC;IACF,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,yBAAyB;QAC/B,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;QAC7C,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE;KACjD,CAAC,CAAC;IACH,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAY,mDAAmD,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC;AACjG,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAGlB,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACvB,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC7C,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAClB,GAAG,CAAC,GAAG,CAAC,IAAI,CACV;kCAC8B,EAC9B,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAC9F,CAAC;IACF,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,6BAA6B;QACnC,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE;KACtE,CAAC,CAAC;IACH,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAe,qDAAqD,EAAE;QACxF,EAAE;KACH,CAAC,CAAC,CAAC,CAAE,CAAC;AACT,CAAC,CAAC;AAEF,MAAM,UAAU,GAGZ,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACvB,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9C,OAAO,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,OAAO,GAAqD,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACrF,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,OAAO,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAuB;IACjD,QAAQ,EAAE,iBAAiB;IAC3B,UAAU,EAAE,mBAAmB;IAC/B,UAAU,EAAE;QACV,eAAe,EAAE,KAAyC;QAC1D,gBAAgB,EAAE,MAA0C;QAC5D,kBAAkB,EAAE,QAA4C;QAChE,iBAAiB,EAAE,OAA2C;QAC9D,uBAAuB,EAAE,YAAgD;QACzE,2BAA2B,EAAE,gBAAoD;QACjF,oBAAoB,EAAE,UAA8C;QACpE,iBAAiB,EAAE,OAA2C;KAC/D;CACF,CAAC"}
@@ -0,0 +1,301 @@
1
+ /**
2
+ * The work order engine's declared operation surface (#707/#738).
3
+ *
4
+ * An engine declaring its operations is what lets a VERTICAL bind them to its
5
+ * own URLs without restating them. Before this, `defineEngineRoutes` had to
6
+ * carry an input schema the vertical wrote itself — a local `z.object({ orderId
7
+ * })` standing in for a shape the engine only expressed as a TypeScript type —
8
+ * and the operation NAME was an unchecked string, because `ModuleRegistration`
9
+ * erases its keys.
10
+ *
11
+ * What is deliberately NOT here is `http`. An engine is entity-agnostic and owns
12
+ * no URL shape: a bike shop calls the same work order a repair, and both are
13
+ * right. The path is the composing vertical's decision, declared with
14
+ * `defineEngineRoutes` against these names.
15
+ *
16
+ * `createWorkOrder` is absent for a different reason — it is an in-scope
17
+ * function, not an operation. A vertical calls it inside its own transaction so
18
+ * it can price, label and link in one go; exposing it as an invocable operation
19
+ * would offer a second way in that skips all of that.
20
+ */
21
+ import { z } from '@substrat-run/contracts';
22
+ /** The keys these operations check. Mirrors `PERM` in index.ts. */
23
+ export declare const WORKORDER_PERMISSIONS: readonly ['workorder:create', 'workorder:read', 'workorder:assign', 'workorder:report', 'workorder:complete', 'workorder:close'];
24
+ export declare const workorderOperations: {
25
+ readonly 'workorder/get': {
26
+ readonly summary: "One work order with everything reported against it";
27
+ readonly permission: {
28
+ readonly key: "workorder:read";
29
+ readonly entity: "workorder";
30
+ readonly idFrom: "orderId";
31
+ };
32
+ readonly input: z.ZodObject<{
33
+ orderId: z.ZodString;
34
+ }, z.core.$strip>;
35
+ readonly output: z.ZodObject<{
36
+ order: z.ZodObject<{
37
+ id: z.ZodString;
38
+ number: z.ZodNumber;
39
+ facility: z.ZodObject<{
40
+ entityType: z.ZodString;
41
+ entityId: z.ZodString;
42
+ }, z.core.$strip>;
43
+ customer: z.ZodObject<{
44
+ entityType: z.ZodString;
45
+ entityId: z.ZodString;
46
+ }, z.core.$strip>;
47
+ kind: z.ZodString;
48
+ title: z.ZodString;
49
+ description: z.ZodNullable<z.ZodString>;
50
+ status: z.ZodEnum<{
51
+ closed: "closed";
52
+ completed: "completed";
53
+ in_progress: "in_progress";
54
+ planned: "planned";
55
+ }>;
56
+ assignedTo: z.ZodNullable<z.ZodString>;
57
+ createdBy: z.ZodString;
58
+ createdAt: z.ZodString;
59
+ completedAt: z.ZodNullable<z.ZodString>;
60
+ }, z.core.$strip>;
61
+ time: z.ZodArray<z.ZodObject<{
62
+ id: z.ZodString;
63
+ order_id: z.ZodString;
64
+ technician: z.ZodString;
65
+ hours: z.ZodString;
66
+ note: z.ZodNullable<z.ZodString>;
67
+ reported_at: z.ZodString;
68
+ }, z.core.$strip>>;
69
+ material: z.ZodArray<z.ZodObject<{
70
+ id: z.ZodString;
71
+ order_id: z.ZodString;
72
+ article: z.ZodString;
73
+ qty: z.ZodString;
74
+ note: z.ZodNullable<z.ZodString>;
75
+ reported_by: z.ZodString;
76
+ reported_at: z.ZodString;
77
+ }, z.core.$strip>>;
78
+ }, z.core.$strip>;
79
+ };
80
+ readonly 'workorder/list': {
81
+ readonly summary: "Work orders, optionally filtered by status";
82
+ readonly permission: "workorder:read";
83
+ readonly input: z.ZodObject<{
84
+ status: z.ZodOptional<z.ZodString>;
85
+ }, z.core.$strip>;
86
+ readonly inputOptional: true;
87
+ readonly output: z.ZodArray<z.ZodObject<{
88
+ id: z.ZodString;
89
+ number: z.ZodNumber;
90
+ facility: z.ZodObject<{
91
+ entityType: z.ZodString;
92
+ entityId: z.ZodString;
93
+ }, z.core.$strip>;
94
+ customer: z.ZodObject<{
95
+ entityType: z.ZodString;
96
+ entityId: z.ZodString;
97
+ }, z.core.$strip>;
98
+ kind: z.ZodString;
99
+ title: z.ZodString;
100
+ description: z.ZodNullable<z.ZodString>;
101
+ status: z.ZodEnum<{
102
+ closed: "closed";
103
+ completed: "completed";
104
+ in_progress: "in_progress";
105
+ planned: "planned";
106
+ }>;
107
+ assignedTo: z.ZodNullable<z.ZodString>;
108
+ createdBy: z.ZodString;
109
+ createdAt: z.ZodString;
110
+ completedAt: z.ZodNullable<z.ZodString>;
111
+ }, z.core.$strip>>;
112
+ };
113
+ readonly 'workorder/assign': {
114
+ readonly summary: "Assign a technician";
115
+ readonly permission: "workorder:assign";
116
+ readonly input: z.ZodObject<{
117
+ orderId: z.ZodString;
118
+ technician: z.ZodString;
119
+ }, z.core.$strip>;
120
+ readonly output: z.ZodObject<{
121
+ id: z.ZodString;
122
+ number: z.ZodNumber;
123
+ facility: z.ZodObject<{
124
+ entityType: z.ZodString;
125
+ entityId: z.ZodString;
126
+ }, z.core.$strip>;
127
+ customer: z.ZodObject<{
128
+ entityType: z.ZodString;
129
+ entityId: z.ZodString;
130
+ }, z.core.$strip>;
131
+ kind: z.ZodString;
132
+ title: z.ZodString;
133
+ description: z.ZodNullable<z.ZodString>;
134
+ status: z.ZodEnum<{
135
+ closed: "closed";
136
+ completed: "completed";
137
+ in_progress: "in_progress";
138
+ planned: "planned";
139
+ }>;
140
+ assignedTo: z.ZodNullable<z.ZodString>;
141
+ createdBy: z.ZodString;
142
+ createdAt: z.ZodString;
143
+ completedAt: z.ZodNullable<z.ZodString>;
144
+ }, z.core.$strip>;
145
+ };
146
+ readonly 'workorder/start': {
147
+ readonly summary: "Start the work";
148
+ readonly permission: "workorder:assign";
149
+ readonly input: z.ZodObject<{
150
+ orderId: z.ZodString;
151
+ }, z.core.$strip>;
152
+ readonly output: z.ZodObject<{
153
+ id: z.ZodString;
154
+ number: z.ZodNumber;
155
+ facility: z.ZodObject<{
156
+ entityType: z.ZodString;
157
+ entityId: z.ZodString;
158
+ }, z.core.$strip>;
159
+ customer: z.ZodObject<{
160
+ entityType: z.ZodString;
161
+ entityId: z.ZodString;
162
+ }, z.core.$strip>;
163
+ kind: z.ZodString;
164
+ title: z.ZodString;
165
+ description: z.ZodNullable<z.ZodString>;
166
+ status: z.ZodEnum<{
167
+ closed: "closed";
168
+ completed: "completed";
169
+ in_progress: "in_progress";
170
+ planned: "planned";
171
+ }>;
172
+ assignedTo: z.ZodNullable<z.ZodString>;
173
+ createdBy: z.ZodString;
174
+ createdAt: z.ZodString;
175
+ completedAt: z.ZodNullable<z.ZodString>;
176
+ }, z.core.$strip>;
177
+ };
178
+ readonly 'workorder/report-time': {
179
+ readonly summary: "Report time against the order";
180
+ readonly permission: "workorder:report";
181
+ readonly input: z.ZodObject<{
182
+ orderId: z.ZodString;
183
+ hours: z.ZodString;
184
+ note: z.ZodOptional<z.ZodString>;
185
+ }, z.core.$strip>;
186
+ readonly output: z.ZodObject<{
187
+ id: z.ZodString;
188
+ order_id: z.ZodString;
189
+ technician: z.ZodString;
190
+ hours: z.ZodString;
191
+ note: z.ZodNullable<z.ZodString>;
192
+ reported_at: z.ZodString;
193
+ }, z.core.$strip>;
194
+ };
195
+ readonly 'workorder/report-material': {
196
+ readonly summary: "Report material against the order";
197
+ readonly permission: "workorder:report";
198
+ readonly input: z.ZodObject<{
199
+ orderId: z.ZodString;
200
+ article: z.ZodString;
201
+ qty: z.ZodString;
202
+ note: z.ZodOptional<z.ZodString>;
203
+ }, z.core.$strip>;
204
+ readonly output: z.ZodObject<{
205
+ id: z.ZodString;
206
+ order_id: z.ZodString;
207
+ article: z.ZodString;
208
+ qty: z.ZodString;
209
+ note: z.ZodNullable<z.ZodString>;
210
+ reported_by: z.ZodString;
211
+ reported_at: z.ZodString;
212
+ }, z.core.$strip>;
213
+ };
214
+ readonly 'workorder/complete': {
215
+ readonly summary: "Complete the order with its billable lines";
216
+ readonly permission: "workorder:complete";
217
+ readonly input: z.ZodObject<{
218
+ orderId: z.ZodString;
219
+ billable: z.ZodArray<z.ZodObject<{
220
+ article: z.ZodString;
221
+ description: z.ZodString;
222
+ qty: z.ZodString;
223
+ unit: z.ZodString;
224
+ unitPrice: z.ZodObject<{
225
+ amount: z.core.$ZodBranded<z.ZodString, "MoneyAmount", "out">;
226
+ currency: z.core.$ZodBranded<z.ZodString, "CurrencyCode", "out">;
227
+ }, z.core.$strip>;
228
+ lineTotal: z.ZodObject<{
229
+ amount: z.core.$ZodBranded<z.ZodString, "MoneyAmount", "out">;
230
+ currency: z.core.$ZodBranded<z.ZodString, "CurrencyCode", "out">;
231
+ }, z.core.$strip>;
232
+ sourceType: z.ZodEnum<{
233
+ material: "material";
234
+ time: "time";
235
+ }>;
236
+ sourceId: z.ZodString;
237
+ }, z.core.$strip>>;
238
+ }, z.core.$strip>;
239
+ readonly output: z.ZodObject<{
240
+ order: z.ZodObject<{
241
+ id: z.ZodString;
242
+ number: z.ZodNumber;
243
+ facility: z.ZodObject<{
244
+ entityType: z.ZodString;
245
+ entityId: z.ZodString;
246
+ }, z.core.$strip>;
247
+ customer: z.ZodObject<{
248
+ entityType: z.ZodString;
249
+ entityId: z.ZodString;
250
+ }, z.core.$strip>;
251
+ kind: z.ZodString;
252
+ title: z.ZodString;
253
+ description: z.ZodNullable<z.ZodString>;
254
+ status: z.ZodEnum<{
255
+ closed: "closed";
256
+ completed: "completed";
257
+ in_progress: "in_progress";
258
+ planned: "planned";
259
+ }>;
260
+ assignedTo: z.ZodNullable<z.ZodString>;
261
+ createdBy: z.ZodString;
262
+ createdAt: z.ZodString;
263
+ completedAt: z.ZodNullable<z.ZodString>;
264
+ }, z.core.$strip>;
265
+ total: z.ZodString;
266
+ }, z.core.$strip>;
267
+ };
268
+ readonly 'workorder/close': {
269
+ readonly summary: "Close the order at hand-over";
270
+ readonly permission: "workorder:close";
271
+ readonly input: z.ZodObject<{
272
+ orderId: z.ZodString;
273
+ }, z.core.$strip>;
274
+ readonly output: z.ZodObject<{
275
+ id: z.ZodString;
276
+ number: z.ZodNumber;
277
+ facility: z.ZodObject<{
278
+ entityType: z.ZodString;
279
+ entityId: z.ZodString;
280
+ }, z.core.$strip>;
281
+ customer: z.ZodObject<{
282
+ entityType: z.ZodString;
283
+ entityId: z.ZodString;
284
+ }, z.core.$strip>;
285
+ kind: z.ZodString;
286
+ title: z.ZodString;
287
+ description: z.ZodNullable<z.ZodString>;
288
+ status: z.ZodEnum<{
289
+ closed: "closed";
290
+ completed: "completed";
291
+ in_progress: "in_progress";
292
+ planned: "planned";
293
+ }>;
294
+ assignedTo: z.ZodNullable<z.ZodString>;
295
+ createdBy: z.ZodString;
296
+ createdAt: z.ZodString;
297
+ completedAt: z.ZodNullable<z.ZodString>;
298
+ }, z.core.$strip>;
299
+ };
300
+ };
301
+ //# sourceMappingURL=operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAoB,CAAC,EAAE,MAAM,yBAAyB,CAAC;AAI9D,mEAAmE;AACnE,eAAO,MAAM,qBAAqB,YAChC,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,CACT,CAAC;AAIX,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6D9B,CAAC"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * The work order engine's declared operation surface (#707/#738).
3
+ *
4
+ * An engine declaring its operations is what lets a VERTICAL bind them to its
5
+ * own URLs without restating them. Before this, `defineEngineRoutes` had to
6
+ * carry an input schema the vertical wrote itself — a local `z.object({ orderId
7
+ * })` standing in for a shape the engine only expressed as a TypeScript type —
8
+ * and the operation NAME was an unchecked string, because `ModuleRegistration`
9
+ * erases its keys.
10
+ *
11
+ * What is deliberately NOT here is `http`. An engine is entity-agnostic and owns
12
+ * no URL shape: a bike shop calls the same work order a repair, and both are
13
+ * right. The path is the composing vertical's decision, declared with
14
+ * `defineEngineRoutes` against these names.
15
+ *
16
+ * `createWorkOrder` is absent for a different reason — it is an in-scope
17
+ * function, not an operation. A vertical calls it inside its own transaction so
18
+ * it can price, label and link in one go; exposing it as an invocable operation
19
+ * would offer a second way in that skips all of that.
20
+ */
21
+ import { defineOperations, z } from '@substrat-run/contracts';
22
+ import { workorderEntities } from './entities.js';
23
+ import { billableLine, materialLine, timeEntry, workOrder } from './schemas.js';
24
+ /** The keys these operations check. Mirrors `PERM` in index.ts. */
25
+ export const WORKORDER_PERMISSIONS = [
26
+ 'workorder:create',
27
+ 'workorder:read',
28
+ 'workorder:assign',
29
+ 'workorder:report',
30
+ 'workorder:complete',
31
+ 'workorder:close',
32
+ ];
33
+ const orderId = z.object({ orderId: z.string().min(1) });
34
+ export const workorderOperations = defineOperations(workorderEntities, WORKORDER_PERMISSIONS)({
35
+ 'workorder/get': {
36
+ summary: 'One work order with everything reported against it',
37
+ permission: { key: 'workorder:read', entity: 'workorder', idFrom: 'orderId' },
38
+ input: orderId,
39
+ output: z.object({
40
+ order: workOrder,
41
+ time: z.array(timeEntry),
42
+ material: z.array(materialLine),
43
+ }),
44
+ },
45
+ 'workorder/list': {
46
+ summary: 'Work orders, optionally filtered by status',
47
+ permission: 'workorder:read',
48
+ input: z.object({ status: z.string().optional() }),
49
+ inputOptional: true,
50
+ output: z.array(workOrder),
51
+ },
52
+ 'workorder/assign': {
53
+ summary: 'Assign a technician',
54
+ permission: 'workorder:assign',
55
+ input: orderId.extend({ technician: z.string().min(1) }),
56
+ output: workOrder,
57
+ },
58
+ 'workorder/start': {
59
+ summary: 'Start the work',
60
+ permission: 'workorder:assign',
61
+ input: orderId,
62
+ output: workOrder,
63
+ },
64
+ 'workorder/report-time': {
65
+ summary: 'Report time against the order',
66
+ permission: 'workorder:report',
67
+ input: orderId.extend({ hours: z.string(), note: z.string().optional() }),
68
+ output: timeEntry,
69
+ },
70
+ 'workorder/report-material': {
71
+ summary: 'Report material against the order',
72
+ permission: 'workorder:report',
73
+ input: orderId.extend({ article: z.string(), qty: z.string(), note: z.string().optional() }),
74
+ output: materialLine,
75
+ },
76
+ 'workorder/complete': {
77
+ summary: 'Complete the order with its billable lines',
78
+ permission: 'workorder:complete',
79
+ input: orderId.extend({ billable: z.array(billableLine) }),
80
+ output: z.object({ order: workOrder, total: z.string() }),
81
+ },
82
+ 'workorder/close': {
83
+ summary: 'Close the order at hand-over',
84
+ permission: 'workorder:close',
85
+ input: orderId,
86
+ output: workOrder,
87
+ },
88
+ });
89
+ //# sourceMappingURL=operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * The shapes this engine PUBLISHES — what a composing vertical returns, stores
3
+ * against, and declares operations over.
4
+ *
5
+ * A file of their own because both `index.ts` (which implements against them)
6
+ * and `operations.ts` (which declares against them) need them. With the schemas
7
+ * living in `index.ts` and `index.ts` re-exporting `operations.ts`, importing
8
+ * the engine ran `operations.ts` before `workOrder` was initialised — a cycle
9
+ * that a warm `dist` hides and a tool importing the module finds immediately.
10
+ */
11
+ import { z } from '@substrat-run/contracts';
12
+ /** Exact decimals as strings — six places, never a float. */
13
+ export declare const decimal: z.ZodString;
14
+ export declare const billableLine: z.ZodObject<{
15
+ article: z.ZodString;
16
+ description: z.ZodString;
17
+ qty: z.ZodString;
18
+ unit: z.ZodString;
19
+ unitPrice: z.ZodObject<{
20
+ amount: z.core.$ZodBranded<z.ZodString, "MoneyAmount", "out">;
21
+ currency: z.core.$ZodBranded<z.ZodString, "CurrencyCode", "out">;
22
+ }, z.core.$strip>;
23
+ lineTotal: z.ZodObject<{
24
+ amount: z.core.$ZodBranded<z.ZodString, "MoneyAmount", "out">;
25
+ currency: z.core.$ZodBranded<z.ZodString, "CurrencyCode", "out">;
26
+ }, z.core.$strip>;
27
+ sourceType: z.ZodEnum<{
28
+ material: "material";
29
+ time: "time";
30
+ }>;
31
+ sourceId: z.ZodString;
32
+ }, z.core.$strip>;
33
+ export type BillableLine = z.infer<typeof billableLine>;
34
+ export declare const workOrder: z.ZodObject<{
35
+ id: z.ZodString;
36
+ number: z.ZodNumber;
37
+ facility: z.ZodObject<{
38
+ entityType: z.ZodString;
39
+ entityId: z.ZodString;
40
+ }, z.core.$strip>;
41
+ customer: z.ZodObject<{
42
+ entityType: z.ZodString;
43
+ entityId: z.ZodString;
44
+ }, z.core.$strip>;
45
+ kind: z.ZodString;
46
+ title: z.ZodString;
47
+ description: z.ZodNullable<z.ZodString>;
48
+ status: z.ZodEnum<{
49
+ closed: "closed";
50
+ completed: "completed";
51
+ in_progress: "in_progress";
52
+ planned: "planned";
53
+ }>;
54
+ assignedTo: z.ZodNullable<z.ZodString>;
55
+ createdBy: z.ZodString;
56
+ createdAt: z.ZodString;
57
+ completedAt: z.ZodNullable<z.ZodString>;
58
+ }, z.core.$strip>;
59
+ export type WorkOrder = z.infer<typeof workOrder>;
60
+ /**
61
+ * A reported time entry, as the engine publishes it.
62
+ *
63
+ * A Zod schema rather than an interface because a vertical declaring an
64
+ * operation that RETURNS this needs something to point at — `output` takes a
65
+ * schema, and the alternative is every composer retyping the shape, which is a
66
+ * description held in agreement by nothing.
67
+ */
68
+ export declare const timeEntry: z.ZodObject<{
69
+ id: z.ZodString;
70
+ order_id: z.ZodString;
71
+ technician: z.ZodString;
72
+ hours: z.ZodString;
73
+ note: z.ZodNullable<z.ZodString>;
74
+ reported_at: z.ZodString;
75
+ }, z.core.$strip>;
76
+ export type TimeEntry = z.infer<typeof timeEntry>;
77
+ /** A reported material line, as the engine publishes it. */
78
+ export declare const materialLine: z.ZodObject<{
79
+ id: z.ZodString;
80
+ order_id: z.ZodString;
81
+ article: z.ZodString;
82
+ qty: z.ZodString;
83
+ note: z.ZodNullable<z.ZodString>;
84
+ reported_by: z.ZodString;
85
+ reported_at: z.ZodString;
86
+ }, z.core.$strip>;
87
+ export type MaterialLine = z.infer<typeof materialLine>;
88
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAoB,CAAC,EAAE,MAAM,yBAAyB,CAAC;AAG9D,6DAA6D;AAC7D,eAAO,MAAM,OAAO,aAAwC,CAAC;AAE7D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;iBASvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;iBAapB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS;;;;;;;iBAOpB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD,4DAA4D;AAC5D,eAAO,MAAM,YAAY;;;;;;;;iBAQvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * The shapes this engine PUBLISHES — what a composing vertical returns, stores
3
+ * against, and declares operations over.
4
+ *
5
+ * A file of their own because both `index.ts` (which implements against them)
6
+ * and `operations.ts` (which declares against them) need them. With the schemas
7
+ * living in `index.ts` and `index.ts` re-exporting `operations.ts`, importing
8
+ * the engine ran `operations.ts` before `workOrder` was initialised — a cycle
9
+ * that a warm `dist` hides and a tool importing the module finds immediately.
10
+ */
11
+ import { entityRef, money, z } from '@substrat-run/contracts';
12
+ import { workorderEntities } from './entities.js';
13
+ /** Exact decimals as strings — six places, never a float. */
14
+ export const decimal = z.string().regex(/^\d+(\.\d{1,6})?$/);
15
+ export const billableLine = z.object({
16
+ article: z.string().min(1),
17
+ description: z.string().min(1),
18
+ qty: decimal,
19
+ unit: z.string().min(1),
20
+ unitPrice: money,
21
+ lineTotal: money,
22
+ sourceType: z.enum(['time', 'material']),
23
+ sourceId: z.string().min(1),
24
+ });
25
+ export const workOrder = z.object({
26
+ id: z.string(),
27
+ number: z.number(),
28
+ facility: entityRef,
29
+ customer: entityRef,
30
+ kind: z.string(),
31
+ title: z.string(),
32
+ description: z.string().nullable(),
33
+ status: workorderEntities.workorder.fields.shape.status,
34
+ assignedTo: z.string().nullable(),
35
+ createdBy: z.string(),
36
+ createdAt: z.string(),
37
+ completedAt: z.string().nullable(),
38
+ });
39
+ /**
40
+ * A reported time entry, as the engine publishes it.
41
+ *
42
+ * A Zod schema rather than an interface because a vertical declaring an
43
+ * operation that RETURNS this needs something to point at — `output` takes a
44
+ * schema, and the alternative is every composer retyping the shape, which is a
45
+ * description held in agreement by nothing.
46
+ */
47
+ export const timeEntry = z.object({
48
+ id: z.string(),
49
+ order_id: z.string(),
50
+ technician: z.string(),
51
+ hours: z.string(),
52
+ note: z.string().nullable(),
53
+ reported_at: z.string(),
54
+ });
55
+ /** A reported material line, as the engine publishes it. */
56
+ export const materialLine = z.object({
57
+ id: z.string(),
58
+ order_id: z.string(),
59
+ article: z.string(),
60
+ qty: z.string(),
61
+ note: z.string().nullable(),
62
+ reported_by: z.string(),
63
+ reported_at: z.string(),
64
+ });
65
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,6DAA6D;AAC7D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,GAAG,EAAE,OAAO;IACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;IACvD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAGH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC;AAGH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@substrat-run/engine-workorder",
3
- "version": "0.4.3",
3
+ "version": "0.6.0",
4
4
  "description": "Substrat engine: work orders + time + material — one engine, one state machine, append-only reporting",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {
@@ -25,15 +25,19 @@
25
25
  "access": "public"
26
26
  },
27
27
  "dependencies": {
28
- "zod": "^4.4.3",
29
- "@substrat-run/contracts": "^0.71.0",
30
- "@substrat-run/kernel": "^0.71.0"
28
+ "@substrat-run/contracts": "^0.73.0",
29
+ "@substrat-run/kernel": "^0.73.0"
31
30
  },
32
31
  "devDependencies": {
33
32
  "typescript": "^7.0.0",
34
- "vitest": "^3.0.0",
35
- "@substrat-run/model-emit": "0.1.0",
36
- "@substrat-run/engine-test-kit": "^0.1.3"
33
+ "vitest": "^3.2.7",
34
+ "zod": "^4.4.3",
35
+ "@substrat-run/engine-test-kit": "^0.3.0",
36
+ "@substrat-run/model-emit": "0.3.0",
37
+ "@substrat-run/contract-tests": "^0.73.0"
38
+ },
39
+ "peerDependencies": {
40
+ "zod": "^4.4.0"
37
41
  },
38
42
  "scripts": {
39
43
  "build": "tsc -p tsconfig.json",