@process.co/element-types 0.0.1-validation-1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -13,6 +13,11 @@ export type ElementNumber = {
13
13
  label?: string;
14
14
  description?: string;
15
15
  };
16
+ export type ElementInteger = {
17
+ type: "integer";
18
+ label?: string;
19
+ description?: string;
20
+ };
16
21
  export type ElementBoolean = {
17
22
  type: "boolean";
18
23
  label?: string;
@@ -22,24 +27,289 @@ export type ElementApp<T> = {
22
27
  type: "app";
23
28
  app: T;
24
29
  };
30
+ export type ElementAction<T> = {
31
+ type: "action";
32
+ icon?: ElementIcon;
33
+ label?: string;
34
+ description?: string;
35
+ } & T;
36
+ export type ElementSource<T> = {
37
+ type: "source";
38
+ icon?: ElementIcon;
39
+ label?: string;
40
+ description?: string;
41
+ } & T;
42
+ export type ElementTrigger<T> = {
43
+ type: "trigger";
44
+ icon?: ElementIcon;
45
+ label?: string;
46
+ description?: string;
47
+ } & T;
48
+ export type ElementSignal<T> = {
49
+ type: "signal";
50
+ icon?: ElementIcon;
51
+ label?: string;
52
+ description?: string;
53
+ } & T;
54
+ export type ElementIcon = {
55
+ type: "FontAwesome" | "MaterialIcons" | "ProcessIcons" | "RemoteImage";
56
+ icon: string | ['far' | 'fas' | 'fab' | 'fal' | 'fad', string];
57
+ } | string;
58
+ export type ISlotDefinition = {
59
+ dynamic: {
60
+ id: string | "{{DYNAMIC_GUID}}";
61
+ path: string;
62
+ idPath: string;
63
+ labelPath: string;
64
+ enabledPath: string;
65
+ };
66
+ static: {
67
+ id: string;
68
+ label: string;
69
+ enabled: boolean;
70
+ }[];
71
+ };
25
72
  export type ModuleDefinition = {
26
73
  type: string;
27
74
  app: string;
28
75
  propDefinitions: Record<string, unknown>;
29
76
  methods: Record<string, (params: any) => Promise<unknown>>;
30
77
  };
78
+ export type ProcessTicket = {
79
+ requestId: string;
80
+ timestamp: string;
81
+ executionId: string;
82
+ flowId: string;
83
+ source: 'webhook' | 'smtp' | 'manual' | 'scheduled';
84
+ verified: boolean;
85
+ buildId: string;
86
+ };
87
+ export type SignalEventShape = {
88
+ $$process: ProcessTicket;
89
+ method: string;
90
+ path: string;
91
+ query: {
92
+ [key: string]: string;
93
+ };
94
+ hostname: string;
95
+ headers: {
96
+ [key: string]: string;
97
+ };
98
+ bodyRaw: string | Buffer | NodeJS.ReadableStream | undefined;
99
+ body: {
100
+ [key: string]: JSONValue;
101
+ } | string | Buffer | NodeJS.ReadableStream;
102
+ };
103
+ export interface FileMetadata {
104
+ size: number;
105
+ contentType?: string;
106
+ lastModified?: Date;
107
+ name?: string;
108
+ etag?: string;
109
+ }
110
+ /**
111
+ * Http Response.
112
+ */
113
+ export interface HTTPResponse {
114
+ /**
115
+ * HTTP Status
116
+ */
117
+ status: number;
118
+ /**
119
+ * Http Body
120
+ */
121
+ body: string | Buffer | NodeJS.ReadableStream;
122
+ /**
123
+ * If true, issue the response when the promise returned is resolved, otherwise issue
124
+ * the response at the end of the workflow execution
125
+ */
126
+ immediate?: boolean;
127
+ headers?: SendConfigHTTPKv;
128
+ }
129
+ export interface FlowFunctions {
130
+ exit: (reason: string) => void;
131
+ delay: (ms: number, context: object) => {
132
+ resume_url: string;
133
+ cancel_url: string;
134
+ };
135
+ rerun: (ms: number, context: object) => {
136
+ resume_url: string;
137
+ cancel_url: string;
138
+ };
139
+ suspend: (ms: number, context: object) => {
140
+ resume_url: string;
141
+ cancel_url: string;
142
+ };
143
+ refreshTimeout: () => string;
144
+ }
145
+ export type SendPayload = any;
146
+ export interface SendConfigHTTPKv {
147
+ [key: string]: string;
148
+ }
149
+ export interface SendConfigHTTPAuth {
150
+ username: string;
151
+ password: string;
152
+ }
153
+ export type UppercaseHTTPMethod = "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "CONNECT" | "OPTIONS" | "TRACE" | "PATCH";
154
+ export type HTTPAuthenticationType = "none" | "simple" | "platform" | "external";
155
+ export type JSONValue = string | number | boolean | null | JSONValue[] | {
156
+ [key: string]: JSONValue;
157
+ };
158
+ export interface SendConfigHTTP {
159
+ method?: UppercaseHTTPMethod;
160
+ url: string;
161
+ headers?: SendConfigHTTPKv;
162
+ params?: SendConfigHTTPKv;
163
+ auth?: SendConfigHTTPAuth;
164
+ data?: SendPayload;
165
+ }
166
+ export interface SendConfigS3 {
167
+ bucket: string;
168
+ prefix: string;
169
+ payload: SendPayload;
170
+ }
171
+ export interface SendConfigEmail {
172
+ subject: string;
173
+ text?: string;
174
+ html?: string;
175
+ }
176
+ export interface SendConfigEmit {
177
+ raw_event: SendPayload;
178
+ }
179
+ export interface SendConfigSSE {
180
+ channel: string;
181
+ payload: SendPayload;
182
+ }
183
+ export interface SendFunctionsWrapper {
184
+ http: (config: SendConfigHTTP) => void;
185
+ email: (config: SendConfigEmail) => void;
186
+ emit: (config: SendConfigEmit) => void;
187
+ s3: (config: SendConfigS3) => void;
188
+ sse: (config: SendConfigSSE) => void;
189
+ }
190
+ export interface IFile {
191
+ delete(): Promise<void>;
192
+ createReadStream(): Promise<NodeJS.ReadableStream>;
193
+ createWriteStream(contentType?: string, contentLength?: number): Promise<NodeJS.WritableStream>;
194
+ toEncodedString(encoding?: string, start?: number, end?: number): Promise<string>;
195
+ toUrl(): Promise<string>;
196
+ toFile(localFilePath: string): Promise<void>;
197
+ toBuffer(): Promise<Buffer>;
198
+ fromReadableStream(readableStream: NodeJS.ReadableStream, contentType?: string, contentSize?: number): Promise<IFile>;
199
+ fromFile(localFilePath: string, contentType?: string): Promise<IFile>;
200
+ fromUrl(url: string, options?: any): Promise<IFile>;
201
+ toJSON(): any;
202
+ }
203
+ export interface IApi {
204
+ open(path: string): IFile;
205
+ openDescriptor(descriptor: any): IFile;
206
+ dir(path?: string): AsyncGenerator<{
207
+ isDirectory: () => boolean;
208
+ isFile: () => boolean;
209
+ path: string;
210
+ name: string;
211
+ size?: number;
212
+ modifiedAt?: Date;
213
+ file?: IFile;
214
+ }>;
215
+ }
216
+ export interface SlotDefinition {
217
+ id: string;
218
+ label: string;
219
+ }
220
+ export interface ProcessInternalFunctions extends ProcessFunctions {
221
+ $transitionToSlot(SlotDefinition: SlotDefinition): void;
222
+ }
223
+ export interface FlowControlExtensions {
224
+ $$innerSlots?: Record<string, string>;
225
+ $$event?: 'slotCompletionEvent' | 'slotIterationEvent';
226
+ $$iteration?: number;
227
+ $$slotId?: string;
228
+ }
229
+ export interface ProcessFunctions {
230
+ export: (key: string, value: JSONValue) => void;
231
+ send: SendFunctionsWrapper;
232
+ /**
233
+ * Respond to an HTTP interface.
234
+ * @param response Define the status and body of the request.
235
+ * @returns A promise that is fulfilled when the body is read or an immediate response is issued
236
+ */
237
+ respond: (response: HTTPResponse) => Promise<any> | void;
238
+ flow: FlowFunctions;
239
+ files: IApi;
240
+ }
241
+ export interface ActionRunOptions<T extends ProcessFunctions = ProcessFunctions> {
242
+ $: T;
243
+ steps: JSONValue;
244
+ }
245
+ export interface EmitMetadata {
246
+ id?: string | number;
247
+ name?: string;
248
+ summary?: string;
249
+ ts?: number;
250
+ }
251
+ export interface IdEmitMetadata extends EmitMetadata {
252
+ id: string | number;
253
+ }
254
+ type EmitFunction = {
255
+ $emit: (event: SignalEventShape | SignalEventShape["body"] | SignalEventShape["bodyRaw"] | JSONValue, metadata?: EmitMetadata) => Promise<void>;
256
+ };
257
+ type StringToType<S extends string> = S extends "string" ? string : S extends "number" ? number : S extends "boolean" ? boolean : S extends "null" ? null : S extends "undefined" ? undefined : S extends "object" ? object : S extends "any" ? any : S extends "unknown" ? unknown : S extends "never" ? never : S extends "void" ? void : never;
258
+ type TrimSpaces<S extends string> = S extends ` ${infer R}` ? TrimSpaces<R> : S extends `${infer R} ` ? TrimSpaces<R> : S;
259
+ type ParseUnion<S extends string> = S extends `${infer A}|${infer B}` ? StringToType<TrimSpaces<A>> | ParseUnion<B> : StringToType<TrimSpaces<S>>;
260
+ type InferType<T extends string> = T extends `$infer<${infer Inner}>` ? ParseUnion<Inner> : any;
31
261
  export type PropType<T> = T extends {
32
262
  props: Record<string, any>;
33
263
  methods: Record<string, any>;
34
264
  } ? DeriveAppInstance<T> : T extends {
265
+ propDefinition: readonly [infer App, infer PropName];
266
+ } ? App extends {
267
+ propDefinitions: Record<string, any>;
268
+ } ? PropName extends keyof App["propDefinitions"] ? PropType<App["propDefinitions"][PropName]> : App extends {
269
+ props: Record<string, any>;
270
+ } ? PropName extends keyof App["props"] ? PropType<App["props"][PropName]> : unknown : unknown : App extends {
271
+ props: Record<string, any>;
272
+ } ? PropName extends keyof App["props"] ? PropType<App["props"][PropName]> : unknown : unknown : T extends {
273
+ props: Record<string, any>;
274
+ } ? {
275
+ [K in keyof T["props"]]: PropType<T["props"][K]>;
276
+ } : T extends {
277
+ type: "http_request";
278
+ } ? {
279
+ execute: () => Promise<{
280
+ headers?: Record<string, string>;
281
+ [key: string]: any;
282
+ }>;
283
+ } : T extends {
35
284
  type: "string";
36
285
  } ? string : T extends {
286
+ type: `$infer<${string}>`;
287
+ } ? T extends {
288
+ type: infer S extends string;
289
+ } ? InferType<S> : any : T extends {
290
+ type: "$infer";
291
+ } ? any : T extends {
37
292
  type: "object";
38
293
  } ? Record<string, unknown> : T extends {
39
294
  type: "number";
40
295
  } ? number : T extends {
41
296
  type: "boolean";
42
- } ? boolean : unknown;
297
+ } ? boolean : T extends {
298
+ type: "integer";
299
+ } ? number : T extends {
300
+ type: "$.interface.http";
301
+ } ? {
302
+ respond: (response: HTTPResponse) => Promise<any> | void;
303
+ authenticate: (authType: HTTPAuthenticationType, options?: {
304
+ token?: string;
305
+ }) => Promise<any> | void;
306
+ flow: FlowFunctions;
307
+ end: () => void;
308
+ execute: () => Promise<{
309
+ headers?: Record<string, string>;
310
+ [key: string]: any;
311
+ }>;
312
+ } : unknown;
43
313
  export type ModuleShape = {
44
314
  type: string;
45
315
  props: Record<string, any>;
@@ -48,32 +318,52 @@ export type ModuleShape = {
48
318
  export type Spread<T> = {
49
319
  [K in keyof T]: T[K];
50
320
  };
51
- export type DeriveAppInstance<T> = T extends {
52
- methods: Record<string, any>;
321
+ export type DeriveAppInstance<T> = Spread<Omit<T, "props" | "propDefinitions" | "methods"> & (T extends {
53
322
  props: Record<string, any>;
54
- } ? Spread<Omit<T, "props" | "methods"> & {
323
+ } ? {
55
324
  [K in keyof T["props"]]: PropType<T["props"][K]>;
56
- } & {
325
+ } : {}) & (T extends {
326
+ propDefinitions: Record<string, any>;
327
+ } ? {
328
+ [K in keyof T["propDefinitions"]]: PropType<T["propDefinitions"][K]>;
329
+ } : {}) & EmitFunction & (T extends {
330
+ methods: Record<string, any>;
331
+ } ? {
57
332
  [K in keyof T["methods"]]: T["methods"][K];
58
- }> : never;
59
- export type DeriveActionInstance<T> = T extends {
333
+ } : {}) & {
334
+ [K in keyof T as K extends "props" | "propDefinitions" | "methods" ? never : K]: T[K];
335
+ }>;
336
+ export type DeriveSignalInstance<T> = Spread<Omit<T, "props" | "propDefinitions" | "methods"> & (T extends {
337
+ props: Record<string, any>;
338
+ } ? {
339
+ [K in keyof T["props"]]: PropType<T["props"][K]>;
340
+ } : {}) & (T extends {
341
+ propDefinitions: Record<string, any>;
342
+ } ? {
343
+ [K in keyof T["propDefinitions"]]: PropType<T["propDefinitions"][K]>;
344
+ } : {}) & EmitFunction & (T extends {
60
345
  methods: Record<string, any>;
346
+ } ? {
347
+ [K in keyof T["methods"]]: T["methods"][K];
348
+ } : {}) & {
349
+ [K in keyof T as K extends "props" | "propDefinitions" | "methods" ? never : K]: T[K];
350
+ }>;
351
+ export type PropDefinitionType<App, PropName extends string> = App extends {
352
+ propDefinitions: Record<string, any>;
353
+ } ? PropName extends keyof App['propDefinitions'] ? PropType<App['propDefinitions'][PropName]> : unknown : unknown;
354
+ export type DeriveActionInstance<T> = Spread<Omit<T, "props" | "propDefinitions" | "methods"> & (T extends {
61
355
  props: Record<string, any>;
62
- } ? Spread<Omit<T, "props" | "methods"> & {
63
- [K in keyof T["props"]]: T["props"][K] extends {
64
- type: string;
65
- } ? PropType<T["props"][K]> : T["props"][K] extends {
66
- type: "app";
67
- methods: Record<string, any>;
68
- } ? {
69
- [M in keyof T["props"][K]["methods"]]: T["props"][K]["methods"][M];
70
- } : T["props"][K] extends {
71
- methods: Record<string, any>;
72
- props: Record<string, any>;
73
- } ? DeriveActionInstance<T["props"][K]> : T["props"][K];
74
- } & {
356
+ } ? {
357
+ [K in keyof T["props"]]: PropType<T["props"][K]>;
358
+ } : {}) & (T extends {
359
+ propDefinitions: Record<string, any>;
360
+ } ? {
361
+ [K in keyof T["propDefinitions"]]: PropType<T["propDefinitions"][K]>;
362
+ } : {}) & (T extends {
363
+ methods: Record<string, any>;
364
+ } ? {
75
365
  [K in keyof T["methods"]]: T["methods"][K];
76
- }> : never;
366
+ } : {})>;
77
367
  export type ModuleWithThis<T> = T & ThisType<DeriveActionInstance<T>>;
78
368
  export interface Action<P extends Record<string, any> = Record<string, any>> extends ModuleDefinition {
79
369
  type: "action";
@@ -82,7 +372,16 @@ export interface Action<P extends Record<string, any> = Record<string, any>> ext
82
372
  $: any;
83
373
  }) => Promise<unknown>;
84
374
  }
375
+ export interface Signal<P extends Record<string, any> = Record<string, any>> extends ModuleDefinition {
376
+ type: "signal";
377
+ props: P;
378
+ run: (this: DeriveSignalInstance<Signal<P>>, params: {
379
+ event: SignalEventShape;
380
+ }) => Promise<unknown>;
381
+ }
85
382
  export type ActionInstance<A extends Action> = DeriveActionInstance<A>;
383
+ export type SignalInstance<S extends Signal> = DeriveSignalInstance<S>;
384
+ export type SignalMethod<S extends Signal> = (this: SignalInstance<S>, params: SignalEventShape) => Promise<unknown>;
86
385
  export type ActionMethod<A extends Action> = (this: ActionInstance<A>, params: {
87
386
  $: any;
88
387
  }) => Promise<unknown>;
@@ -94,6 +393,9 @@ export type PropDefinition = {
94
393
  };
95
394
  export declare function defineApp<T extends object>(app: T & ThisType<DeriveAppInstance<T>>): T;
96
395
  export declare function defineAction<T extends object>(action: T & ThisType<DeriveActionInstance<T>>): T;
396
+ export declare function defineSignal<T extends {
397
+ run: (event: SignalEventShape) => Promise<void>;
398
+ }>(signal: T & ThisType<DeriveSignalInstance<T>>): T;
97
399
  export type OnChangeOpts = {
98
400
  layoutShift?: boolean;
99
401
  };
@@ -101,6 +403,7 @@ export type ElementUIProps<T> = {
101
403
  onChange: (value: T, opts?: OnChangeOpts) => void;
102
404
  onBlur: () => void;
103
405
  value: T;
406
+ readonly?: boolean;
104
407
  };
105
408
  export type WithThis<T> = T extends {
106
409
  methods: Record<string, any>;
@@ -110,4 +413,5 @@ export type WithThis<T> = T extends {
110
413
  [K in keyof T['methods']]: T['methods'][K] extends (...args: infer A) => infer R ? (this: DeriveActionInstance<T>, ...args: A) => R : T['methods'][K];
111
414
  };
112
415
  } : T;
416
+ export {};
113
417
  //# sourceMappingURL=index.d.ts.map
@@ -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":"AACA,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACrF,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACrF,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACrF,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvF,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,CAAC,CAAA;CAAE,CAAC;AAEpD,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,CAAC,CAAC;AAChH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,CAAC,CAAC;AAChH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,CAAC,CAAC;AAClH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,CAAC,CAAC;AAEhH,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,aAAa,GAAG,eAAe,GAAG,cAAc,GAAG,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,MAAM,CAAC;AAE9K,MAAM,MAAM,eAAe,GAAG;IAC1B,OAAO,EAAE;QACL,EAAE,EAAE,MAAM,GAAG,kBAAkB,CAAC;QAChC,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,MAAM,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,OAAO,CAAC;KACpB,EAAE,CAAC;CACP,CAAA;AAGD,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;IACpD,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACnB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAE3B,SAAS,EAAE,aAAa,CAAC;IAEzB,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE;QACH,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACzB,CAAC;IAEF,QAAQ,EAAE,MAAM,CAAC;IAEjB,OAAO,EAAE;QACL,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACzB,CAAC;IAEF,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,cAAc,GAAG,SAAS,CAAC;IAE7D,IAAI,EAAE;QACF,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;KAC5B,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;CAE/C,CAAC;AAEF,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;IAC9C;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK;QACpC,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK;QACpC,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK;QACtC,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,cAAc,EAAE,MAAM,MAAM,CAAC;CAChC;AAED,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC;AAE9B,MAAM,WAAW,gBAAgB;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,MAAM,mBAAmB,GACzB,KAAK,GACL,MAAM,GACN,MAAM,GACN,KAAK,GACL,QAAQ,GACR,SAAS,GACT,SAAS,GACT,OAAO,GACP,OAAO,CAAC;AAEd,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;AAEjF,MAAM,MAAM,SAAS,GACf,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CAAE,CAAC;AAEpC,MAAM,WAAW,cAAc;IAC3B,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,IAAI,CAAC,EAAE,WAAW,CAAC;CACtB;AACD,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;CACxB;AACD,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,WAAW,CAAC;CAC1B;AACD,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,WAAW,CAAC;CACxB;AACD,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IACvC,KAAK,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACzC,IAAI,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IACvC,EAAE,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACnC,GAAG,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,KAAK;IAClB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACnD,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAChG,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClF,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,kBAAkB,CAAC,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACtH,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,CAAC;CACjB;AAED,MAAM,WAAW,IAAI;IACjB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAC1B,cAAc,CAAC,UAAU,EAAE,GAAG,GAAG,KAAK,CAAC;IACvC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;QAC/B,WAAW,EAAE,MAAM,OAAO,CAAC;QAC3B,MAAM,EAAE,MAAM,OAAO,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,IAAI,CAAC;QAClB,IAAI,CAAC,EAAE,KAAK,CAAC;KAChB,CAAC,CAAC;CACN;AAED,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAC9D,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;CAC3D;AAED,MAAM,WAAW,qBAAqB;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,qBAAqB,GAAG,oBAAoB,CAAC;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAErB;AAED,MAAM,WAAW,gBAAgB;IAE7B,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAEhD,IAAI,EAAE,oBAAoB,CAAC;IAE3B;;;;OAIG;IACH,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAEzD,IAAI,EAAE,aAAa,CAAC;IAMpB,KAAK,EAAE,IAAI,CAAC;CAEf;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB;IAE3E,CAAC,EAAE,CAAC,CAAC;IAEL,KAAK,EAAE,SAAS,CAAC;CAEpB;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAChD,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,KAAK,YAAY,GAAG;IAChB,KAAK,EAAE,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnJ,CAAC;AAWF,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,IAChC,CAAC,SAAS,QAAQ,GAAG,MAAM,GAC3B,CAAC,SAAS,QAAQ,GAAG,MAAM,GAC3B,CAAC,SAAS,SAAS,GAAG,OAAO,GAC7B,CAAC,SAAS,MAAM,GAAG,IAAI,GACvB,CAAC,SAAS,WAAW,GAAG,SAAS,GACjC,CAAC,SAAS,QAAQ,GAAG,MAAM,GAC3B,CAAC,SAAS,KAAK,GAAG,GAAG,GACrB,CAAC,SAAS,SAAS,GAAG,OAAO,GAC7B,CAAC,SAAS,OAAO,GAAG,KAAK,GACzB,CAAC,SAAS,MAAM,GAAG,IAAI,GACvB,KAAK,CAAC;AAGR,KAAK,UAAU,CAAC,CAAC,SAAS,MAAM,IAC9B,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,GACvC,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GACvC,CAAC,CAAC;AAGJ,KAAK,UAAU,CAAC,CAAC,SAAS,MAAM,IAC9B,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAC7B,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAC3C,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAGlC,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,IAC7B,CAAC,SAAS,UAAU,MAAM,KAAK,GAAG,GAC9B,UAAU,CAAC,KAAK,CAAC,GACjB,GAAG,CAAC;AAGV,MAAM,MAAM,QAAQ,CAAC,CAAC,IAElB,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GACpE,iBAAiB,CAAC,CAAC,CAAC,GAEpB,CAAC,SAAS;IAAE,cAAc,EAAE,SAAS,CAAC,MAAM,GAAG,EAAE,MAAM,QAAQ,CAAC,CAAA;CAAE,GAClE,GAAG,SAAS;IAAE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GACpD,QAAQ,SAAS,MAAM,GAAG,CAAC,iBAAiB,CAAC,GAC7C,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,GAC1C,GAAG,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GAC1C,QAAQ,SAAS,MAAM,GAAG,CAAC,OAAO,CAAC,GACnC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,GAChC,OAAO,GACP,OAAO,GACP,GAAG,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GAC1C,QAAQ,SAAS,MAAM,GAAG,CAAC,OAAO,CAAC,GACnC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,GAChC,OAAO,GACP,OAAO,GAEP,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GACxC;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAEpD,CAAC,SAAS;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GAClC;IAAE,OAAO,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAA,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAA;CAAE,GACnF,CAAC,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG,MAAM,GAErC,CAAC,SAAS;IAAE,IAAI,EAAE,UAAU,MAAM,GAAG,CAAA;CAAE,GACrC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC,SAAS,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAEjE,CAAC,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG,GAAG,GAClC,CAAC,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACtD,CAAC,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG,MAAM,GACrC,CAAC,SAAS;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG,OAAO,GACvC,CAAC,SAAS;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG,MAAM,GACtC,CAAC,SAAS;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,GAAG;IACvC,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACzD,YAAY,EAAE,CAAC,QAAQ,EAAE,sBAAsB,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACtG,IAAI,EAAE,aAAa,CAAC;IACpB,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,OAAO,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAA,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAA;CAClF,GAEC,OAAO,CAAC;AAGd,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC,CAAC;AAGF,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAajD,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAC3B,MAAM,CACF,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAAC,GAChD,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GACnC;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACpD,EAAE,CAAC,GACT,CAAC,CAAC,SAAS;IAAE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GAC7C;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,iBAAiB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACxE,EAAE,CAAC,GAET,YAAY,GAEZ,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GACrC;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAAE,GAC9C,EAAE,CAAC,GAGT;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,iBAAiB,GAAG,SAAS,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAC5F,CAAC;AAEN,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAC9B,MAAM,CACF,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAAC,GAChD,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GACnC;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACpD,EAAE,CAAC,GACT,CAAC,CAAC,SAAS;IAAE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GAC7C;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,iBAAiB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACxE,EAAE,CAAC,GAET,YAAY,GACZ,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GACrC;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAAE,GAC9C,EAAE,CAAC,GAET;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,iBAAiB,GAAG,SAAS,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAC5F,CAAC;AAGN,MAAM,MAAM,kBAAkB,CAAC,GAAG,EAAE,QAAQ,SAAS,MAAM,IACvD,GAAG,SAAS;IAAE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GAClD,QAAQ,SAAS,MAAM,GAAG,CAAC,iBAAiB,CAAC,GAC7C,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,GAC1C,OAAO,GACP,OAAO,CAAC;AAKd,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAC9B,MAAM,CACF,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAAC,GAChD,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GACnC;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACpD,EAAE,CAAC,GACT,CAAC,CAAC,SAAS;IAAE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GAC7C;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,iBAAiB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACxE,EAAE,CAAC,GACT,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GACrC;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAAE,GAC9C,EAAE,CAAC,CACZ,CAAC;AAGN,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;AAGtE,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,SAAQ,gBAAgB;IACjG,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,CAAC,CAAC;IACT,GAAG,EAAE,CAAC,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE;QAAE,CAAC,EAAE,GAAG,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACxF;AAED,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,SAAQ,gBAAgB;IACjG,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,CAAC,CAAC;IACT,GAAG,EAAE,CAAC,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE;QAAE,KAAK,EAAE,gBAAgB,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACzG;AAKD,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC;AACvE,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAEvE,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AACrH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE;IAAE,CAAC,EAAE,GAAG,CAAA;CAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAG/G,MAAM,MAAM,cAAc,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,GAAG,CAAC;CACZ,CAAC;AAGF,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAEtF;AAGD,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAE/F;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS;IAAE,GAAG,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAE5I;AACD,MAAM,MAAM,YAAY,GAAG;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAErD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAA;AAGD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GAC1F,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG;IACnB,OAAO,EAAE;SACJ,CAAC,IAAI,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GAC9E,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAChD,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KACpB,CAAC;CACL,GACC,CAAC,CAAC"}
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defineApp = defineApp;
4
4
  exports.defineAction = defineAction;
5
+ exports.defineSignal = defineSignal;
5
6
  // Helper to provide ThisType context for app definitions
6
7
  function defineApp(app) {
7
8
  return app;
@@ -10,4 +11,7 @@ function defineApp(app) {
10
11
  function defineAction(action) {
11
12
  return action;
12
13
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFxRkEsOEJBRUM7QUFHRCxvQ0FFQztBQVJELHlEQUF5RDtBQUN6RCxTQUFnQixTQUFTLENBQW1CLEdBQXVDO0lBQ2pGLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELDREQUE0RDtBQUM1RCxTQUFnQixZQUFZLENBQW1CLE1BQTZDO0lBQzFGLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMifQ==
14
+ function defineSignal(signal) {
15
+ return signal;
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUE4ZEEsOEJBRUM7QUFHRCxvQ0FFQztBQUVELG9DQUVDO0FBWkQseURBQXlEO0FBQ3pELFNBQWdCLFNBQVMsQ0FBbUIsR0FBdUM7SUFDL0UsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDO0FBRUQsNERBQTREO0FBQzVELFNBQWdCLFlBQVksQ0FBbUIsTUFBNkM7SUFDeEYsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQUVELFNBQWdCLFlBQVksQ0FBZ0UsTUFBNkM7SUFDckksT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@process.co/element-types",
3
- "version": "0.0.1-validation-1",
3
+ "version": "0.0.2",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
package/src/index.ts CHANGED
@@ -2,111 +2,508 @@
2
2
  export type ElementString = { type: "string"; label?: string; description?: string };
3
3
  export type ElementObject = { type: "object"; label?: string; description?: string };
4
4
  export type ElementNumber = { type: "number"; label?: string; description?: string };
5
+ export type ElementInteger = { type: "integer"; label?: string; description?: string };
5
6
  export type ElementBoolean = { type: "boolean"; label?: string; description?: string };
6
7
  export type ElementApp<T> = { type: "app"; app: T };
7
8
 
9
+ export type ElementAction<T> = { type: "action"; icon?: ElementIcon; label?: string; description?: string } & T;
10
+ export type ElementSource<T> = { type: "source"; icon?: ElementIcon; label?: string; description?: string } & T;
11
+ export type ElementTrigger<T> = { type: "trigger"; icon?: ElementIcon; label?: string; description?: string } & T;
12
+ export type ElementSignal<T> = { type: "signal"; icon?: ElementIcon; label?: string; description?: string } & T;
13
+
14
+ export type ElementIcon = { type: "FontAwesome" | "MaterialIcons" | "ProcessIcons" | "RemoteImage"; icon: string | ['far' | 'fas' | 'fab' | 'fal' | 'fad', string] } | string;
15
+
16
+ export type ISlotDefinition = {
17
+ dynamic: {
18
+ id: string | "{{DYNAMIC_GUID}}";
19
+ path: string;
20
+ idPath: string;
21
+ labelPath: string;
22
+ enabledPath: string;
23
+ };
24
+ static: {
25
+ id: string;
26
+ label: string;
27
+ enabled: boolean;
28
+ }[];
29
+ }
30
+
8
31
  // Base types for module definitions
9
32
  export type ModuleDefinition = {
10
- type: string;
11
- app: string;
12
- propDefinitions: Record<string, unknown>;
13
- methods: Record<string, (params: any) => Promise<unknown>>;
33
+ type: string;
34
+ app: string;
35
+ propDefinitions: Record<string, unknown>;
36
+ methods: Record<string, (params: any) => Promise<unknown>>;
37
+ };
38
+
39
+ export type ProcessTicket = {
40
+ requestId: string;
41
+ timestamp: string;
42
+ executionId: string;
43
+ flowId: string;
44
+ source: 'webhook' | 'smtp' | 'manual' | 'scheduled';
45
+ verified: boolean;
46
+ buildId: string;
47
+ }
48
+
49
+ export type SignalEventShape = {
50
+
51
+ $$process: ProcessTicket;
52
+
53
+ method: string;
54
+
55
+ path: string;
56
+
57
+ query: {
58
+ [key: string]: string;
59
+ };
60
+
61
+ hostname: string;
62
+
63
+ headers: {
64
+ [key: string]: string;
65
+ };
66
+
67
+ bodyRaw: string | Buffer | NodeJS.ReadableStream | undefined;
68
+
69
+ body: {
70
+ [key: string]: JSONValue;
71
+ } | string | Buffer | NodeJS.ReadableStream;
72
+
73
+ };
74
+
75
+ export interface FileMetadata {
76
+ size: number;
77
+ contentType?: string;
78
+ lastModified?: Date;
79
+ name?: string;
80
+ etag?: string;
81
+ }
82
+
83
+ /**
84
+ * Http Response.
85
+ */
86
+ export interface HTTPResponse {
87
+ /**
88
+ * HTTP Status
89
+ */
90
+ status: number;
91
+ /**
92
+ * Http Body
93
+ */
94
+ body: string | Buffer | NodeJS.ReadableStream;
95
+ /**
96
+ * If true, issue the response when the promise returned is resolved, otherwise issue
97
+ * the response at the end of the workflow execution
98
+ */
99
+ immediate?: boolean;
100
+
101
+ headers?: SendConfigHTTPKv;
102
+ }
103
+
104
+ export interface FlowFunctions {
105
+ exit: (reason: string) => void;
106
+ delay: (ms: number, context: object) => {
107
+ resume_url: string;
108
+ cancel_url: string;
109
+ };
110
+ rerun: (ms: number, context: object) => {
111
+ resume_url: string;
112
+ cancel_url: string;
113
+ };
114
+ suspend: (ms: number, context: object) => {
115
+ resume_url: string;
116
+ cancel_url: string;
117
+ };
118
+ refreshTimeout: () => string;
119
+ }
120
+
121
+ export type SendPayload = any;
122
+
123
+ export interface SendConfigHTTPKv {
124
+ [key: string]: string;
125
+ }
126
+ export interface SendConfigHTTPAuth {
127
+ username: string;
128
+ password: string;
129
+ }
130
+ export type UppercaseHTTPMethod =
131
+ | "GET"
132
+ | "HEAD"
133
+ | "POST"
134
+ | "PUT"
135
+ | "DELETE"
136
+ | "CONNECT"
137
+ | "OPTIONS"
138
+ | "TRACE"
139
+ | "PATCH";
140
+
141
+ export type HTTPAuthenticationType = "none" | "simple" | "platform" | "external";
142
+
143
+ export type JSONValue =
144
+ | string
145
+ | number
146
+ | boolean
147
+ | null
148
+ | JSONValue[]
149
+ | { [key: string]: JSONValue; };
150
+
151
+ export interface SendConfigHTTP {
152
+ method?: UppercaseHTTPMethod;
153
+ url: string;
154
+ headers?: SendConfigHTTPKv;
155
+ params?: SendConfigHTTPKv;
156
+ auth?: SendConfigHTTPAuth;
157
+ data?: SendPayload;
158
+ }
159
+ export interface SendConfigS3 {
160
+ bucket: string;
161
+ prefix: string;
162
+ payload: SendPayload;
163
+ }
164
+ export interface SendConfigEmail {
165
+ subject: string;
166
+ text?: string;
167
+ html?: string;
168
+ }
169
+ export interface SendConfigEmit {
170
+ raw_event: SendPayload;
171
+ }
172
+ export interface SendConfigSSE {
173
+ channel: string;
174
+ payload: SendPayload;
175
+ }
176
+ export interface SendFunctionsWrapper {
177
+ http: (config: SendConfigHTTP) => void;
178
+ email: (config: SendConfigEmail) => void;
179
+ emit: (config: SendConfigEmit) => void;
180
+ s3: (config: SendConfigS3) => void;
181
+ sse: (config: SendConfigSSE) => void;
182
+ }
183
+
184
+ export interface IFile {
185
+ delete(): Promise<void>;
186
+ createReadStream(): Promise<NodeJS.ReadableStream>;
187
+ createWriteStream(contentType?: string, contentLength?: number): Promise<NodeJS.WritableStream>;
188
+ toEncodedString(encoding?: string, start?: number, end?: number): Promise<string>;
189
+ toUrl(): Promise<string>;
190
+ toFile(localFilePath: string): Promise<void>;
191
+ toBuffer(): Promise<Buffer>;
192
+ fromReadableStream(readableStream: NodeJS.ReadableStream, contentType?: string, contentSize?: number): Promise<IFile>;
193
+ fromFile(localFilePath: string, contentType?: string): Promise<IFile>;
194
+ fromUrl(url: string, options?: any): Promise<IFile>;
195
+ toJSON(): any;
196
+ }
197
+
198
+ export interface IApi {
199
+ open(path: string): IFile;
200
+ openDescriptor(descriptor: any): IFile;
201
+ dir(path?: string): AsyncGenerator<{
202
+ isDirectory: () => boolean;
203
+ isFile: () => boolean;
204
+ path: string;
205
+ name: string;
206
+ size?: number;
207
+ modifiedAt?: Date;
208
+ file?: IFile;
209
+ }>;
210
+ }
211
+
212
+ export interface SlotDefinition {
213
+ id: string;
214
+ label: string;
215
+ }
216
+
217
+ export interface ProcessInternalFunctions extends ProcessFunctions {
218
+ $transitionToSlot(SlotDefinition: SlotDefinition): void;
219
+ }
220
+
221
+ export interface FlowControlExtensions {
222
+ $$innerSlots?: Record<string, string>;
223
+ $$event?: 'slotCompletionEvent' | 'slotIterationEvent';
224
+ $$iteration?: number;
225
+ $$slotId?: string;
226
+ // /$transitionToSlot(slotId: string): void;
227
+ }
228
+
229
+ export interface ProcessFunctions {
230
+
231
+ export: (key: string, value: JSONValue) => void;
232
+
233
+ send: SendFunctionsWrapper;
234
+
235
+ /**
236
+ * Respond to an HTTP interface.
237
+ * @param response Define the status and body of the request.
238
+ * @returns A promise that is fulfilled when the body is read or an immediate response is issued
239
+ */
240
+ respond: (response: HTTPResponse) => Promise<any> | void;
241
+
242
+ flow: FlowFunctions;
243
+
244
+
245
+
246
+ // end: () => void;
247
+
248
+ files: IApi;
249
+
250
+ }
251
+
252
+ export interface ActionRunOptions<T extends ProcessFunctions = ProcessFunctions> {
253
+
254
+ $: T;
255
+
256
+ steps: JSONValue;
257
+
258
+ }
259
+
260
+ export interface EmitMetadata {
261
+ id?: string | number;
262
+ name?: string;
263
+ summary?: string;
264
+ ts?: number;
265
+ }
266
+
267
+ export interface IdEmitMetadata extends EmitMetadata {
268
+ id: string | number;
269
+ }
270
+
271
+ type EmitFunction = {
272
+ $emit: (event: SignalEventShape | SignalEventShape["body"] | SignalEventShape["bodyRaw"] | JSONValue, metadata?: EmitMetadata) => Promise<void>;
14
273
  };
15
274
 
275
+ type IdEmitFunction = {
276
+ $emit: (event: JSONValue, metadata: IdEmitMetadata) => Promise<void>;
277
+ };
278
+
279
+ // ============================================
280
+ // Template literal type parsing for $infer<T>
281
+ // ============================================
282
+
283
+ // Map string literals to actual types
284
+ type StringToType<S extends string> =
285
+ S extends "string" ? string :
286
+ S extends "number" ? number :
287
+ S extends "boolean" ? boolean :
288
+ S extends "null" ? null :
289
+ S extends "undefined" ? undefined :
290
+ S extends "object" ? object :
291
+ S extends "any" ? any :
292
+ S extends "unknown" ? unknown :
293
+ S extends "never" ? never :
294
+ S extends "void" ? void :
295
+ never;
296
+
297
+ // Trim leading/trailing spaces
298
+ type TrimSpaces<S extends string> =
299
+ S extends ` ${infer R}` ? TrimSpaces<R> :
300
+ S extends `${infer R} ` ? TrimSpaces<R> :
301
+ S;
302
+
303
+ // Parse union types separated by |
304
+ type ParseUnion<S extends string> =
305
+ S extends `${infer A}|${infer B}`
306
+ ? StringToType<TrimSpaces<A>> | ParseUnion<B>
307
+ : StringToType<TrimSpaces<S>>;
308
+
309
+ // Extract and parse the type parameter from $infer<...>
310
+ type InferType<T extends string> =
311
+ T extends `$infer<${infer Inner}>`
312
+ ? ParseUnion<Inner>
313
+ : any; // fallback to any if no generic specified
314
+
16
315
  // Utility type for transforming prop definitions to their runtime types
17
316
  export type PropType<T> =
18
- T extends { props: Record<string, any>; methods: Record<string, any> }
19
- ? DeriveAppInstance<T>
20
- : T extends { type: "string" } ? string
21
- : T extends { type: "object" } ? Record<string, unknown>
22
- : T extends { type: "number" } ? number
23
- : T extends { type: "boolean" } ? boolean
24
- : unknown;
317
+ // 1. If T is an app definition, derive its instance type
318
+ T extends { props: Record<string, any>; methods: Record<string, any> }
319
+ ? DeriveAppInstance<T>
320
+ // 2. If T is a propDefinition, resolve from propDefinitions or props
321
+ : T extends { propDefinition: readonly [infer App, infer PropName] }
322
+ ? App extends { propDefinitions: Record<string, any> }
323
+ ? PropName extends keyof App["propDefinitions"]
324
+ ? PropType<App["propDefinitions"][PropName]>
325
+ : App extends { props: Record<string, any> }
326
+ ? PropName extends keyof App["props"]
327
+ ? PropType<App["props"][PropName]>
328
+ : unknown
329
+ : unknown
330
+ : App extends { props: Record<string, any> }
331
+ ? PropName extends keyof App["props"]
332
+ ? PropType<App["props"][PropName]>
333
+ : unknown
334
+ : unknown
335
+ // 3. Nested objects (recursion) - handle objects with their own props
336
+ : T extends { props: Record<string, any> }
337
+ ? { [K in keyof T["props"]]: PropType<T["props"][K]> }
338
+ // 4. Built-in types
339
+ : T extends { type: "http_request" }
340
+ ? { execute: () => Promise<{ headers?: Record<string, string>;[key: string]: any }> }
341
+ : T extends { type: "string" } ? string
342
+ // Handle $infer<T> with generic parameter FIRST
343
+ : T extends { type: `$infer<${string}>` }
344
+ ? T extends { type: infer S extends string } ? InferType<S> : any
345
+ // Then handle plain $infer (no generic) - falls back to any
346
+ : T extends { type: "$infer" } ? any
347
+ : T extends { type: "object" } ? Record<string, unknown>
348
+ : T extends { type: "number" } ? number
349
+ : T extends { type: "boolean" } ? boolean
350
+ : T extends { type: "integer" } ? number
351
+ : T extends { type: "$.interface.http" } ? {
352
+ respond: (response: HTTPResponse) => Promise<any> | void;
353
+ authenticate: (authType: HTTPAuthenticationType, options?: { token?: string }) => Promise<any> | void;
354
+ flow: FlowFunctions;
355
+ end: () => void;
356
+ execute: () => Promise<{ headers?: Record<string, string>;[key: string]: any }>
357
+ }
358
+ // 5. Fallback
359
+ : unknown;
25
360
 
26
361
  // Base module shape type
27
362
  export type ModuleShape = {
28
- type: string;
29
- props: Record<string, any>;
30
- methods: Record<string, any>;
363
+ type: string;
364
+ props: Record<string, any>;
365
+ methods: Record<string, any>;
31
366
  };
32
367
 
33
368
  // Utility type to force flattening of intersections
34
369
  export type Spread<T> = { [K in keyof T]: T[K] };
35
370
 
36
371
  // Helper type to derive instance type from app definition, fully flattened
372
+ // export type DeriveAppInstance<T> =
373
+ // T extends { methods: Record<string, any>; props: Record<string, any> }
374
+ // ? Spread<
375
+ // Omit<T, "props" | "methods"> &
376
+ // { [K in keyof T["props"]]: PropType<T["props"][K]> } &
377
+ // { [K in keyof T["methods"]]: T["methods"][K] }
378
+ // >
379
+ // : never;
380
+
381
+
37
382
  export type DeriveAppInstance<T> =
38
- T extends { methods: Record<string, any>; props: Record<string, any> }
39
- ? Spread<
40
- Omit<T, "props" | "methods"> &
41
- { [K in keyof T["props"]]: PropType<T["props"][K]> } &
42
- { [K in keyof T["methods"]]: T["methods"][K] }
43
- >
44
- : never;
45
-
46
- // Helper type to derive instance type from action/source definition, fully flattened
383
+ Spread<
384
+ Omit<T, "props" | "propDefinitions" | "methods"> &
385
+ (T extends { props: Record<string, any> }
386
+ ? { [K in keyof T["props"]]: PropType<T["props"][K]> }
387
+ : {}) &
388
+ (T extends { propDefinitions: Record<string, any> }
389
+ ? { [K in keyof T["propDefinitions"]]: PropType<T["propDefinitions"][K]> }
390
+ : {}) &
391
+ // Add $emit to all signal instances
392
+ EmitFunction &
393
+
394
+ (T extends { methods: Record<string, any> }
395
+ ? { [K in keyof T["methods"]]: T["methods"][K] }
396
+ : {}) &
397
+
398
+ // Also include all direct methods on the object
399
+ { [K in keyof T as K extends "props" | "propDefinitions" | "methods" ? never : K]: T[K] }
400
+ >;
401
+
402
+ export type DeriveSignalInstance<T> =
403
+ Spread<
404
+ Omit<T, "props" | "propDefinitions" | "methods"> &
405
+ (T extends { props: Record<string, any> }
406
+ ? { [K in keyof T["props"]]: PropType<T["props"][K]> }
407
+ : {}) &
408
+ (T extends { propDefinitions: Record<string, any> }
409
+ ? { [K in keyof T["propDefinitions"]]: PropType<T["propDefinitions"][K]> }
410
+ : {}) &
411
+ // Add $emit to all signal instances
412
+ EmitFunction &
413
+ (T extends { methods: Record<string, any> }
414
+ ? { [K in keyof T["methods"]]: T["methods"][K] }
415
+ : {}) &
416
+ // Also include all direct methods on the object
417
+ { [K in keyof T as K extends "props" | "propDefinitions" | "methods" ? never : K]: T[K] }
418
+ >;
419
+
420
+ // In your element-types
421
+ export type PropDefinitionType<App, PropName extends string> =
422
+ App extends { propDefinitions: Record<string, any> }
423
+ ? PropName extends keyof App['propDefinitions']
424
+ ? PropType<App['propDefinitions'][PropName]>
425
+ : unknown
426
+ : unknown;
427
+
428
+ // --- Add this helper above DeriveActionInstance ---
429
+
430
+ // Enhanced action instance type
47
431
  export type DeriveActionInstance<T> =
48
- T extends { methods: Record<string, any>; props: Record<string, any> }
49
- ? Spread<
50
- Omit<T, "props" | "methods"> &
51
- { [K in keyof T["props"]]: T["props"][K] extends { type: string }
52
- ? PropType<T["props"][K]>
53
- : T["props"][K] extends { type: "app"; methods: Record<string, any> }
54
- ? { [M in keyof T["props"][K]["methods"]]: T["props"][K]["methods"][M] }
55
- : T["props"][K] extends { methods: Record<string, any>; props: Record<string, any> }
56
- ? DeriveActionInstance<T["props"][K]>
57
- : T["props"][K]
58
- } &
59
- { [K in keyof T["methods"]]: T["methods"][K] }
60
- >
61
- : never;
432
+ Spread<
433
+ Omit<T, "props" | "propDefinitions" | "methods"> &
434
+ (T extends { props: Record<string, any> }
435
+ ? { [K in keyof T["props"]]: PropType<T["props"][K]> }
436
+ : {}) &
437
+ (T extends { propDefinitions: Record<string, any> }
438
+ ? { [K in keyof T["propDefinitions"]]: PropType<T["propDefinitions"][K]> }
439
+ : {}) &
440
+ (T extends { methods: Record<string, any> }
441
+ ? { [K in keyof T["methods"]]: T["methods"][K] }
442
+ : {})
443
+ >;
62
444
 
63
445
  // Helper type to create a module with proper this context
64
446
  export type ModuleWithThis<T> = T & ThisType<DeriveActionInstance<T>>;
65
447
 
66
448
  // Action-specific types
67
449
  export interface Action<P extends Record<string, any> = Record<string, any>> extends ModuleDefinition {
68
- type: "action";
69
- props: P;
70
- run: (this: DeriveActionInstance<Action<P>>, params: { $: any }) => Promise<unknown>;
450
+ type: "action";
451
+ props: P;
452
+ run: (this: DeriveActionInstance<Action<P>>, params: { $: any }) => Promise<unknown>;
71
453
  }
72
454
 
455
+ export interface Signal<P extends Record<string, any> = Record<string, any>> extends ModuleDefinition {
456
+ type: "signal";
457
+ props: P;
458
+ run: (this: DeriveSignalInstance<Signal<P>>, params: { event: SignalEventShape }) => Promise<unknown>;
459
+ }
460
+
461
+ type SignalRun<T> = (this: DeriveSignalInstance<T>, event: SignalEventShape) => Promise<void>;
462
+
463
+
73
464
  export type ActionInstance<A extends Action> = DeriveActionInstance<A>;
465
+ export type SignalInstance<S extends Signal> = DeriveSignalInstance<S>;
74
466
 
467
+ export type SignalMethod<S extends Signal> = (this: SignalInstance<S>, params: SignalEventShape) => Promise<unknown>;
75
468
  export type ActionMethod<A extends Action> = (this: ActionInstance<A>, params: { $: any }) => Promise<unknown>;
76
469
 
77
470
  // Prop definition type
78
471
  export type PropDefinition = {
79
- label: string;
80
- description: string;
81
- type: string;
82
- ui?: any;
472
+ label: string;
473
+ description: string;
474
+ type: string;
475
+ ui?: any;
83
476
  };
84
477
 
85
478
  // Helper to provide ThisType context for app definitions
86
479
  export function defineApp<T extends object>(app: T & ThisType<DeriveAppInstance<T>>): T {
87
- return app;
480
+ return app;
88
481
  }
89
482
 
90
483
  // Helper to provide ThisType context for action definitions
91
484
  export function defineAction<T extends object>(action: T & ThisType<DeriveActionInstance<T>>): T {
92
- return action;
485
+ return action;
93
486
  }
94
487
 
488
+ export function defineSignal<T extends { run: (event: SignalEventShape) => Promise<void> }>(signal: T & ThisType<DeriveSignalInstance<T>>): T {
489
+ return signal;
490
+ }
95
491
  export type OnChangeOpts = { layoutShift?: boolean };
96
492
 
97
493
  export type ElementUIProps<T> = {
98
- onChange: (value: T, opts?: OnChangeOpts) => void;
99
- onBlur: () => void;
100
- value: T;
494
+ onChange: (value: T, opts?: OnChangeOpts) => void;
495
+ onBlur: () => void;
496
+ value: T;
497
+ readonly?: boolean;
101
498
  }
102
499
 
103
500
  // Utility type to automatically infer the correct this context for methods
104
501
  export type WithThis<T> = T extends { methods: Record<string, any>; props: Record<string, any> }
105
- ? Omit<T, 'methods'> & {
106
- methods: {
107
- [K in keyof T['methods']]: T['methods'][K] extends (...args: infer A) => infer R
108
- ? (this: DeriveActionInstance<T>, ...args: A) => R
109
- : T['methods'][K];
110
- };
111
- }
112
- : T;
502
+ ? Omit<T, 'methods'> & {
503
+ methods: {
504
+ [K in keyof T['methods']]: T['methods'][K] extends (...args: infer A) => infer R
505
+ ? (this: DeriveActionInstance<T>, ...args: A) => R
506
+ : T['methods'][K];
507
+ };
508
+ }
509
+ : T;