@pogodisco/zephyr 1.5.17 → 1.5.18

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/utils.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Module } from "./workflow-module.js";
2
2
  export declare function generateWorkflowId(name: string): string;
3
- export declare function exposeAll<Name extends string, M extends Module<any, any, any, any, any>>(name: Name, mod: M): Record<`${Name}.${keyof M["workflows"] & string}`, `${Name}.${keyof M["workflows"] & string}`>;
4
- export declare function exposeAllAs<Name extends string, M extends Module<any, any, any, any, any>>(name: Name, mod: M): Record<keyof M["workflows"] & string, `${Name}.${keyof M["workflows"] & string}`>;
3
+ export declare function exposeAll<Name extends string, M extends Module<any, any, any, any>>(name: Name, mod: M): Record<`${Name}.${keyof M["workflows"] & string}`, `${Name}.${keyof M["workflows"] & string}`>;
4
+ export declare function exposeAllAs<Name extends string, M extends Module<any, any, any, any>>(name: Name, mod: M): Record<keyof M["workflows"] & string, `${Name}.${keyof M["workflows"] & string}`>;
5
5
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,UAI9C;AAED,wBAAgB,SAAS,CACvB,IAAI,SAAS,MAAM,EACnB,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACzC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,kGAWnB;AAED,wBAAgB,WAAW,CACzB,IAAI,SAAS,MAAM,EACnB,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACzC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,qFAUnB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,UAI9C;AAED,wBAAgB,SAAS,CACvB,IAAI,SAAS,MAAM,EACnB,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACpC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,kGAWnB;AAED,wBAAgB,WAAW,CACzB,IAAI,SAAS,MAAM,EACnB,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACpC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,qFAUnB"}
@@ -1,53 +1,51 @@
1
1
  import { ActionRegistry, ServiceRegistry, Executor, Simplify, WorkflowObserver } from "./types.js";
2
2
  import { createWorkflow, WorkflowDef } from "./workflow-composer.js";
3
3
  type UnionToIntersection<U> = (U extends any ? (x: U) => any : never) extends (x: infer I) => any ? I : never;
4
- export type EnsureWorkflowShape<T> = {
4
+ type EnsureWorkflowShape<T> = {
5
5
  [K in keyof T]: T[K] extends WorkflowDef<any, any, any, any, any> ? T[K] : never;
6
6
  };
7
- export type DepWorkflows<Deps extends ModuleMap> = keyof Deps extends never ? {} : Simplify<EnsureWorkflowShape<UnionToIntersection<{
7
+ type DepWorkflows<Deps extends ModuleMap> = keyof Deps extends never ? {} : Simplify<EnsureWorkflowShape<UnionToIntersection<{
8
8
  [D in keyof Deps & string]: {
9
- [K in keyof Deps[D]["__public"] & string as `${D}.${K}`]: Deps[D]["__public"][K];
9
+ [K in keyof Deps[D]["workflows"] & string as `${D}.${K}`]: Deps[D]["workflows"][K];
10
10
  };
11
11
  }[keyof Deps & string]>>>;
12
- export type WorkflowRegistry<Own extends ModuleShape, Deps extends ModuleMap> = Own & DepWorkflows<Deps>;
13
- export type AnyWorkflow = WorkflowDef<any, any, any, any, any>;
14
- export type ModuleShape = Record<string, AnyWorkflow>;
15
- export type ModuleMap = Record<string, Module<any, any, any, any, any>>;
16
- export type FinalServices<S extends ServiceRegistry, Deps extends ModuleMap> = S & ServicesFromDepsRecursive<Deps>;
17
- export type ServicesFromDepsRecursive<Deps extends ModuleMap> = [
18
- keyof Deps
19
- ] extends [never] ? {} : UnionToIntersection<{
20
- [K in keyof Deps]: Deps[K] extends Module<any, infer S, any, infer SubDeps, any> ? S & ServicesFromDepsRecursive<SubDeps> : never;
12
+ type AnyWorkflow = WorkflowDef<any, any, any, any, any>;
13
+ type ModuleShape = Record<string, AnyWorkflow>;
14
+ type ModuleMap = Record<string, Module<any, any, any, any>>;
15
+ type FinalServices<S extends ServiceRegistry, Deps extends ModuleMap> = S & ServicesFromDepsRecursive<Deps>;
16
+ type ServicesFromDepsRecursive<Deps extends ModuleMap> = [keyof Deps] extends [
17
+ never
18
+ ] ? {} : UnionToIntersection<{
19
+ [K in keyof Deps]: Deps[K] extends Module<any, infer S, any, infer SubDeps> ? S & ServicesFromDepsRecursive<SubDeps> : never;
21
20
  }[keyof Deps]>;
22
21
  export type WorkflowInput<W> = W extends WorkflowDef<any, infer I, any, any, any> ? I : never;
23
22
  export type WorkflowResults<W> = W extends WorkflowDef<any, any, infer R, any, any> ? R : never;
24
23
  export type WorkflowOutput<W> = W extends WorkflowDef<any, any, any, any, infer O> ? O : never;
25
- export type Module<Reg extends ActionRegistry, S extends ServiceRegistry, Own extends ModuleShape, Deps extends ModuleMap, Public extends ModuleShape> = {
24
+ export type Module<Reg extends ActionRegistry, S extends ServiceRegistry, Own extends ModuleShape, Deps extends ModuleMap> = {
26
25
  workflows: Own;
27
- __public: Public;
28
26
  __getExecutor: () => Executor;
29
27
  createRuntime: (config: {
30
28
  services: FinalServices<S, Deps>;
31
29
  }) => {
32
- run: <K extends keyof Public>(workflow: K, input: WorkflowInput<Public[K]>, observers?: WorkflowObserver<Reg>[]) => Promise<{
33
- output: WorkflowOutput<Public[K]>;
30
+ run: <K extends keyof Own>(workflow: K, input: WorkflowInput<Own[K]>, observers?: WorkflowObserver<Reg>[]) => Promise<{
31
+ output: WorkflowOutput<Own[K]>;
34
32
  extras: Record<string, any>;
35
33
  }>;
36
34
  getServices: () => FinalServices<S, Deps>;
37
35
  };
38
36
  };
39
- export type ModuleContext<Reg extends ActionRegistry, WFReg extends Record<string, WorkflowDef<any, any, any, any, any>>, S extends ServiceRegistry> = {
37
+ type ModuleContext<Reg extends ActionRegistry, WFReg extends Record<string, WorkflowDef<any, any, any, any, any>>, S extends ServiceRegistry> = {
40
38
  wf: ReturnType<typeof createWorkflow<Reg, WFReg, S>>;
41
39
  services: S;
42
40
  };
43
- export type ExposedWorkflows<Own extends ModuleShape, Use extends ModuleMap, Expose extends Record<string, keyof DepWorkflows<Use>> | undefined> = Own & (Expose extends Record<string, keyof DepWorkflows<Use>> ? {
41
+ type ExposedWorkflows<Own extends ModuleShape, Use extends ModuleMap, Expose extends Record<string, keyof DepWorkflows<Use>> | undefined> = Own & (Expose extends Record<string, keyof DepWorkflows<Use>> ? {
44
42
  [K in keyof Expose]: DepWorkflows<Use>[Expose[K]];
45
43
  } : {});
46
- export declare function createModuleFactory<S extends ServiceRegistry>(): <Reg extends ActionRegistry, Use extends ModuleMap, Own extends ModuleShape, Expose extends Record<string, keyof DepWorkflows<Use>> | undefined = undefined>(config: {
44
+ export declare function createModuleFactory<S extends ServiceRegistry>(): <Reg extends ActionRegistry = Record<string, any>, Use extends ModuleMap = {}, Own extends ModuleShape = {}, Expose extends Record<string, keyof DepWorkflows<Use>> | undefined = undefined>(config: {
47
45
  actionRegistry: Reg;
48
46
  use?: Use;
49
47
  expose?: Expose;
50
48
  define: (ctx: ModuleContext<typeof config.actionRegistry, DepWorkflows<Use>, S>) => Own;
51
- }) => Module<Reg, S, Own, Use, ExposedWorkflows<Own, Use, Expose>>;
49
+ }) => Module<Reg, S, ExposedWorkflows<Own, Use, Expose>, Use>;
52
50
  export {};
53
51
  //# sourceMappingURL=workflow-module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-module.d.ts","sourceRoot":"","sources":["../src/workflow-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-module.d.ts","sourceRoot":"","sources":["../src/workflow-module.ts"],"names":[],"mappings":"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"}
@@ -306,6 +306,365 @@
306
306
  // };
307
307
  // }
308
308
  //
309
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
310
+ // import {
311
+ // ActionRegistry,
312
+ // ServiceRegistry,
313
+ // Executor,
314
+ // Simplify,
315
+ // WorkflowObserver,
316
+ // } from "./types.js";
317
+ // import {
318
+ // createWorkflow,
319
+ // StepDef,
320
+ // WorkflowBuilder,
321
+ // WorkflowDef,
322
+ // } from "./workflow-composer.js";
323
+ // import { executeWorkflow } from "./workflow-executor.js";
324
+ // type UnionToIntersection<U> = (U extends any ? (x: U) => any : never) extends (
325
+ // x: infer I,
326
+ // ) => any
327
+ // ? I
328
+ // : never;
329
+ // /* ------------------------------------------------ */
330
+ // /* WORKFLOW REGISTRY TYPES */
331
+ // /* ------------------------------------------------ */
332
+ //
333
+ // export type EnsureWorkflowShape<T> = {
334
+ // [K in keyof T]: T[K] extends WorkflowDef<any, any, any, any, any>
335
+ // ? T[K]
336
+ // : never;
337
+ // };
338
+ //
339
+ // // export type DepWorkflows<Deps extends ModuleMap> = keyof Deps extends never
340
+ // // ? {}
341
+ // // : Simplify<
342
+ // // EnsureWorkflowShape<
343
+ // // UnionToIntersection<
344
+ // // {
345
+ // // [D in keyof Deps & string]: {
346
+ // // [K in keyof Deps[D]["__public"] &
347
+ // // string as `${D}.${K}`]: Deps[D]["__public"][K];
348
+ // // };
349
+ // // }[keyof Deps & string]
350
+ // // >
351
+ // // >
352
+ // // >;
353
+ //
354
+ // // export type DepWorkflows<Deps extends ModuleMap> = keyof Deps extends never
355
+ // // ? {}
356
+ // // : Simplify<
357
+ // // EnsureWorkflowShape<
358
+ // // UnionToIntersection<
359
+ // // {
360
+ // // [D in keyof Deps & string]: {
361
+ // // [K in keyof Deps[D]["__public"] &
362
+ // // string as `${D}.${K}`]: Deps[D]["__public"][K];
363
+ // // };
364
+ // // }[keyof Deps & string]
365
+ // // >
366
+ // // >
367
+ // // >;
368
+ // // export type DepWorkflows<Deps extends ModuleMap> = keyof Deps extends never
369
+ // // ? {}
370
+ // // : Simplify<{
371
+ // // [D in keyof Deps as `${D & string}.${keyof Deps[D]["__public"] & string}`]: Deps[D]["__public"][keyof Deps[D]["__public"]];
372
+ // // }>;
373
+ // //
374
+ //
375
+ // // export type DepWorkflows<Deps extends ModuleMap> = keyof Deps extends never
376
+ // // ? {}
377
+ // // : Simplify<
378
+ // // // Just create the object directly without intersection
379
+ // // Omit<
380
+ // // {
381
+ // // [D in keyof Deps & string]: {
382
+ // // [K in keyof Deps[D]["__public"] &
383
+ // // string as `${D}.${K}`]: Deps[D]["__public"][K];
384
+ // // };
385
+ // // }[keyof Deps & string],
386
+ // // never
387
+ // // >
388
+ // // >;
389
+ //
390
+ // // export type DepWorkflows<Deps extends ModuleMap> = keyof Deps extends never
391
+ // // ? {}
392
+ // // : Simplify<
393
+ // // EnsureWorkflowShape<
394
+ // // {
395
+ // // [D in keyof Deps & string]: {
396
+ // // [K in keyof Deps[D]["__public"] &
397
+ // // string as `${D}.${K}`]: Deps[D]["__public"][K];
398
+ // // };
399
+ // // }[keyof Deps & string]
400
+ // // >
401
+ // // >;
402
+ //
403
+ // export type DepWorkflows<Deps extends ModuleMap> = keyof Deps extends never
404
+ // ? {}
405
+ // : Simplify<
406
+ // EnsureWorkflowShape<
407
+ // // Just use Omit + intersection - it's the same as UnionToIntersection but TypeScript handles it better
408
+ // {
409
+ // [D in keyof Deps & string]: {
410
+ // [K in keyof Deps[D]["__public"] &
411
+ // string as `${D}.${K}`]: Deps[D]["__public"][K];
412
+ // };
413
+ // }[keyof Deps & string] extends infer U
414
+ // ? Omit<U, never>
415
+ // : never
416
+ // >
417
+ // >;
418
+ // export type WorkflowRegistry<
419
+ // Own extends ModuleShape,
420
+ // Deps extends ModuleMap,
421
+ // > = Own & DepWorkflows<Deps>;
422
+ //
423
+ // /* ------------------------------------------------ */
424
+ // /* MODULE TYPES */
425
+ // /* ------------------------------------------------ */
426
+ //
427
+ // export type AnyWorkflow = WorkflowDef<any, any, any, any, any>;
428
+ // export type ModuleShape = Record<string, AnyWorkflow>;
429
+ // export type ModuleMap = Record<string, Module<any, any, any, any, any>>;
430
+ //
431
+ // export type FinalServices<
432
+ // S extends ServiceRegistry,
433
+ // Deps extends ModuleMap,
434
+ // > = S & ServicesFromDepsRecursive<Deps>;
435
+ //
436
+ // export type ServicesFromDepsRecursive<Deps extends ModuleMap> = [
437
+ // keyof Deps,
438
+ // ] extends [never]
439
+ // ? {} // no deps
440
+ // : UnionToIntersection<
441
+ // {
442
+ // [K in keyof Deps]: Deps[K] extends Module<
443
+ // any,
444
+ // infer S,
445
+ // any,
446
+ // infer SubDeps,
447
+ // any
448
+ // >
449
+ // ? S & ServicesFromDepsRecursive<SubDeps>
450
+ // : never;
451
+ // }[keyof Deps]
452
+ // >;
453
+ //
454
+ // /* ------------------------------------------------ */
455
+ // /* WORKFLOW IO TYPES */
456
+ // /* ------------------------------------------------ */
457
+ //
458
+ // export type WorkflowInput<W> =
459
+ // W extends WorkflowDef<any, infer I, any, any, any> ? I : never;
460
+ //
461
+ // export type WorkflowResults<W> =
462
+ // W extends WorkflowDef<any, any, infer R, any, any> ? R : never;
463
+ //
464
+ // export type WorkflowOutput<W> =
465
+ // W extends WorkflowDef<any, any, any, any, infer O> ? O : never;
466
+ //
467
+ // /* ------------------------------------------------ */
468
+ // /* MODULE RUNTIME */
469
+ // /* ------------------------------------------------ */
470
+ //
471
+ // export type Module<
472
+ // Reg extends ActionRegistry,
473
+ // S extends ServiceRegistry,
474
+ // Own extends ModuleShape,
475
+ // Deps extends ModuleMap,
476
+ // Public extends ModuleShape,
477
+ // > = {
478
+ // workflows: Own;
479
+ //
480
+ // __public: Public;
481
+ // __getExecutor: () => Executor;
482
+ //
483
+ // createRuntime: (config: { services: FinalServices<S, Deps> }) => {
484
+ // run: <K extends keyof Public>(
485
+ // workflow: K,
486
+ // input: WorkflowInput<Public[K]>,
487
+ // observers?: WorkflowObserver<Reg>[],
488
+ // ) => Promise<{
489
+ // output: WorkflowOutput<Public[K]>;
490
+ // extras: Record<string, any>;
491
+ // }>;
492
+ //
493
+ // getServices: () => FinalServices<S, Deps>;
494
+ // };
495
+ // };
496
+ //
497
+ // /* ------------------------------------------------ */
498
+ // /* MODULE CONTEXT (FIXED) */
499
+ // /* ------------------------------------------------ */
500
+ //
501
+ // export type ModuleContext<
502
+ // Reg extends ActionRegistry,
503
+ // WFReg extends Record<string, WorkflowDef<any, any, any, any, any>>,
504
+ // S extends ServiceRegistry,
505
+ // > = {
506
+ // wf: ReturnType<typeof createWorkflow<Reg, WFReg, S>>;
507
+ // services: S;
508
+ // };
509
+ //
510
+ // export type ExposedWorkflows<
511
+ // Own extends ModuleShape,
512
+ // Use extends ModuleMap,
513
+ // Expose extends Record<string, keyof DepWorkflows<Use>> | undefined,
514
+ // > = Own &
515
+ // (Expose extends Record<string, keyof DepWorkflows<Use>>
516
+ // ? {
517
+ // [K in keyof Expose]: DepWorkflows<Use>[Expose[K]];
518
+ // }
519
+ // : {});
520
+ // function createModule<
521
+ // Reg extends ActionRegistry,
522
+ // S extends ServiceRegistry,
523
+ // Use extends ModuleMap,
524
+ // Own extends ModuleShape,
525
+ // Expose extends Record<string, keyof DepWorkflows<Use>> | undefined,
526
+ // >(config: {
527
+ // actionRegistry: Reg;
528
+ // use?: Use;
529
+ // expose?: Expose;
530
+ // define: (ctx: ModuleContext<Reg, DepWorkflows<Use>, S>) => Own;
531
+ // }): Module<Reg, S, Own, Use, ExposedWorkflows<Own, Use, Expose> & ModuleShape> {
532
+ // const deps = (config.use ?? {}) as Use;
533
+ //
534
+ // type WFReg = DepWorkflows<Use>;
535
+ //
536
+ // const wf = createWorkflow<Reg, WFReg, S>();
537
+ //
538
+ // const own = config.define({
539
+ // wf,
540
+ // services: {} as S,
541
+ // });
542
+ //
543
+ // function mergePublic<
544
+ // Own extends ModuleShape,
545
+ // Use extends ModuleMap,
546
+ // Expose extends Record<string, keyof DepWorkflows<Use>> | undefined,
547
+ // >(
548
+ // own: Own,
549
+ // exposed: Record<string, AnyWorkflow>,
550
+ // ): ExposedWorkflows<Own, Use, Expose> {
551
+ // return { ...own, ...exposed } as any;
552
+ // }
553
+ //
554
+ // function buildWorkflowMap() {
555
+ // const depWFs = Object.fromEntries(
556
+ // Object.entries(deps).flatMap(([name, mod]) =>
557
+ // Object.entries(mod.__public).map(([k, wf]) => [`${name}.${k}`, wf]),
558
+ // ),
559
+ // );
560
+ //
561
+ // const internalBase = { ...own, ...depWFs } as WorkflowRegistry<Own, Use>;
562
+ //
563
+ // const exposed = {} as Record<string, AnyWorkflow>;
564
+ //
565
+ // if (config.expose) {
566
+ // for (const alias in config.expose) {
567
+ // const key = config.expose[alias];
568
+ // exposed[alias] = internalBase[key];
569
+ // }
570
+ // }
571
+ // const internal = {
572
+ // ...internalBase,
573
+ // ...exposed,
574
+ // } as WorkflowRegistry<Own, Use> & typeof exposed;
575
+ //
576
+ // // const publicMap = { ...own, ...exposed } as ExposedWorkflows<
577
+ // // Own,
578
+ // // Use,
579
+ // // Expose
580
+ // // >;
581
+ //
582
+ // const publicMap = mergePublic<Own, Use, Expose>(own, exposed);
583
+ // return { internal, publicMap };
584
+ // }
585
+ //
586
+ // const { internal, publicMap } = buildWorkflowMap();
587
+ //
588
+ // const depsExecutors = Object.fromEntries(
589
+ // Object.entries(deps).map(([name, mod]) => [name, mod.__getExecutor()]),
590
+ // );
591
+ //
592
+ // const executor: Executor = {
593
+ // run(wfId, input, services, observers = []) {
594
+ // if (!(wfId in publicMap)) {
595
+ // throw new Error(`Workflow not in public: ${wfId}`);
596
+ // }
597
+ //
598
+ // const workflow = internal[wfId];
599
+ //
600
+ // if (!workflow) {
601
+ // throw new Error(`Workflow not found: ${String(wfId)}`);
602
+ // }
603
+ //
604
+ // return executeWorkflow({
605
+ // workflow,
606
+ // actionRegistry: config.actionRegistry,
607
+ // depsExecutors,
608
+ // input,
609
+ // services,
610
+ // observers,
611
+ // });
612
+ // },
613
+ // };
614
+ //
615
+ // return {
616
+ // workflows: own,
617
+ // __public: publicMap,
618
+ // __getExecutor: () => executor,
619
+ //
620
+ // createRuntime({ services }) {
621
+ // let runtimeActions = config.actionRegistry;
622
+ //
623
+ // return {
624
+ // run: async <K extends keyof typeof publicMap>(
625
+ // workflowId: K,
626
+ // input: WorkflowInput<(typeof publicMap)[K]>,
627
+ //
628
+ // observers: WorkflowObserver<Reg>[] = [],
629
+ // ) => {
630
+ // return executor.run(workflowId as string, input, services, observers);
631
+ // },
632
+ //
633
+ // getServices: () => ({ ...services }) as FinalServices<S, Use>,
634
+ //
635
+ // setActionRegistry(reg: Reg) {
636
+ // runtimeActions = reg;
637
+ // },
638
+ // };
639
+ // },
640
+ // };
641
+ // }
642
+ //
643
+ // /* ------------------------------------------------ */
644
+ // /* FACTORY (FIXED) */
645
+ // /* ------------------------------------------------ */
646
+ //
647
+ // export function createModuleFactory<S extends ServiceRegistry>() {
648
+ // return function <
649
+ // Reg extends ActionRegistry,
650
+ // Use extends ModuleMap,
651
+ // Own extends ModuleShape,
652
+ // Expose extends Record<string, keyof DepWorkflows<Use>> | undefined =
653
+ // undefined,
654
+ // >(config: {
655
+ // actionRegistry: Reg;
656
+ // use?: Use;
657
+ // expose?: Expose;
658
+ // define: (
659
+ // ctx: ModuleContext<typeof config.actionRegistry, DepWorkflows<Use>, S>,
660
+ // ) => Own;
661
+ // }): Module<Reg, S, Own, Use, ExposedWorkflows<Own, Use, Expose>> {
662
+ // return createModule<Reg, S, Use, Own, Expose>(config);
663
+ // };
664
+ // }
665
+ // ////////////////////////////////////////////////////////////////////////////////////////////////////
666
+ //
667
+ //
309
668
  import { createWorkflow, } from "./workflow-composer.js";
310
669
  import { executeWorkflow } from "./workflow-executor.js";
311
670
  function createModule(config) {
@@ -315,12 +674,11 @@ function createModule(config) {
315
674
  wf,
316
675
  services: {},
317
676
  });
318
- function mergePublic(own, exposed) {
319
- return { ...own, ...exposed };
320
- }
321
677
  function buildWorkflowMap() {
322
- const depWFs = Object.fromEntries(Object.entries(deps).flatMap(([name, mod]) => Object.entries(mod.__public).map(([k, wf]) => [`${name}.${k}`, wf])));
678
+ // Get all workflows from dependencies (prefixed)
679
+ const depWFs = Object.fromEntries(Object.entries(deps).flatMap(([name, mod]) => Object.entries(mod.workflows).map(([k, wf]) => [`${name}.${k}`, wf])));
323
680
  const internalBase = { ...own, ...depWFs };
681
+ // Build exposed workflows by looking up from internalBase
324
682
  const exposed = {};
325
683
  if (config.expose) {
326
684
  for (const alias in config.expose) {
@@ -328,16 +686,12 @@ function createModule(config) {
328
686
  exposed[alias] = internalBase[key];
329
687
  }
330
688
  }
689
+ // Merge exposed into public workflows
690
+ const publicMap = { ...own, ...exposed };
331
691
  const internal = {
332
692
  ...internalBase,
333
693
  ...exposed,
334
694
  };
335
- // const publicMap = { ...own, ...exposed } as ExposedWorkflows<
336
- // Own,
337
- // Use,
338
- // Expose
339
- // >;
340
- const publicMap = mergePublic(own, exposed);
341
695
  return { internal, publicMap };
342
696
  }
343
697
  const { internal, publicMap } = buildWorkflowMap();
@@ -362,19 +716,14 @@ function createModule(config) {
362
716
  },
363
717
  };
364
718
  return {
365
- workflows: own,
366
- __public: publicMap,
719
+ workflows: publicMap, // ← KEY CHANGE: return publicMap (with exposed merged) as workflows
367
720
  __getExecutor: () => executor,
368
721
  createRuntime({ services }) {
369
- let runtimeActions = config.actionRegistry;
370
722
  return {
371
723
  run: async (workflowId, input, observers = []) => {
372
724
  return executor.run(workflowId, input, services, observers);
373
725
  },
374
726
  getServices: () => ({ ...services }),
375
- setActionRegistry(reg) {
376
- runtimeActions = reg;
377
- },
378
727
  };
379
728
  },
380
729
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pogodisco/zephyr",
3
- "version": "1.5.17",
3
+ "version": "1.5.18",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },