@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 +325 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/package.json +1 -1
- package/src/index.ts +454 -57
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 :
|
|
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
|
-
} ?
|
|
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
|
-
}
|
|
59
|
-
|
|
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
|
-
} ?
|
|
63
|
-
[K in keyof T["props"]]: T["props"][K]
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
}
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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":"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"}
|
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
|
-
|
|
14
|
+
function defineSignal(signal) {
|
|
15
|
+
return signal;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUE4ZEEsOEJBRUM7QUFHRCxvQ0FFQztBQUVELG9DQUVDO0FBWkQseURBQXlEO0FBQ3pELFNBQWdCLFNBQVMsQ0FBbUIsR0FBdUM7SUFDL0UsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDO0FBRUQsNERBQTREO0FBQzVELFNBQWdCLFlBQVksQ0FBbUIsTUFBNkM7SUFDeEYsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQUVELFNBQWdCLFlBQVksQ0FBZ0UsTUFBNkM7SUFDckksT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyJ9
|
package/package.json
CHANGED
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
//
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
99
|
-
|
|
100
|
-
|
|
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
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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;
|