@xylabs/creatable 5.0.65 → 5.0.67

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.
Files changed (48) hide show
  1. package/dist/neutral/AbstractCreatable.d.ts +3 -1
  2. package/dist/neutral/AbstractCreatable.d.ts.map +1 -1
  3. package/dist/neutral/AbstractCreatableV2.d.ts +62 -0
  4. package/dist/neutral/AbstractCreatableV2.d.ts.map +1 -0
  5. package/dist/neutral/Creatable.d.ts +5 -0
  6. package/dist/neutral/Creatable.d.ts.map +1 -1
  7. package/dist/neutral/CreatableV2.d.ts +31 -0
  8. package/dist/neutral/CreatableV2.d.ts.map +1 -0
  9. package/dist/neutral/FactoryV2.d.ts +11 -0
  10. package/dist/neutral/FactoryV2.d.ts.map +1 -0
  11. package/dist/neutral/index.d.ts +3 -0
  12. package/dist/neutral/index.d.ts.map +1 -1
  13. package/dist/neutral/index.mjs +294 -0
  14. package/dist/neutral/index.mjs.map +1 -1
  15. package/dist/neutral/model/CreatableInstance.d.ts +2 -1
  16. package/dist/neutral/model/CreatableInstance.d.ts.map +1 -1
  17. package/dist/neutral/model/CreatableInstanceV2.d.ts +14 -0
  18. package/dist/neutral/model/CreatableInstanceV2.d.ts.map +1 -0
  19. package/dist/neutral/model/CreatableName.d.ts +5 -0
  20. package/dist/neutral/model/CreatableName.d.ts.map +1 -0
  21. package/dist/neutral/model/CreatableParams.d.ts +1 -2
  22. package/dist/neutral/model/CreatableParams.d.ts.map +1 -1
  23. package/dist/neutral/model/CreatableParamsV2.d.ts +68 -0
  24. package/dist/neutral/model/CreatableParamsV2.d.ts.map +1 -0
  25. package/dist/neutral/model/CreatableStatusReporter.d.ts +7 -4
  26. package/dist/neutral/model/CreatableStatusReporter.d.ts.map +1 -1
  27. package/dist/neutral/model/CreatableStatusReporter.zod.d.ts +44 -0
  28. package/dist/neutral/model/CreatableStatusReporter.zod.d.ts.map +1 -0
  29. package/dist/neutral/model/CreatableStatusReporterV2.d.ts +7 -0
  30. package/dist/neutral/model/CreatableStatusReporterV2.d.ts.map +1 -0
  31. package/dist/neutral/model/index.d.ts +5 -0
  32. package/dist/neutral/model/index.d.ts.map +1 -1
  33. package/package.json +15 -9
  34. package/src/AbstractCreatable.ts +3 -1
  35. package/src/AbstractCreatableV2.ts +270 -0
  36. package/src/Creatable.ts +5 -0
  37. package/src/CreatableV2.ts +67 -0
  38. package/src/FactoryV2.ts +38 -0
  39. package/src/index.ts +3 -0
  40. package/src/model/CreatableInstance.ts +2 -1
  41. package/src/model/CreatableInstanceV2.ts +16 -0
  42. package/src/model/CreatableName.ts +3 -0
  43. package/src/model/CreatableParams.ts +1 -3
  44. package/src/model/CreatableParamsV2.ts +11 -0
  45. package/src/model/CreatableStatusReporter.ts +8 -4
  46. package/src/model/CreatableStatusReporter.zod.ts +31 -0
  47. package/src/model/CreatableStatusReporterV2.ts +11 -0
  48. package/src/model/index.ts +5 -0
@@ -4,7 +4,9 @@ import { type Logger } from '@xylabs/logger';
4
4
  import type { Promisable } from '@xylabs/promise';
5
5
  import { SpanConfig } from '@xylabs/telemetry';
6
6
  import { type Creatable, CreatableFactory } from './Creatable.ts';
7
- import type { CreatableInstance, CreatableName, CreatableParams, CreatableStatus, Labels, RequiredCreatableParams } from './model/index.ts';
7
+ import { CreatableName } from './model/CreatableName.ts';
8
+ import type { CreatableInstance, CreatableParams, CreatableStatus, Labels, RequiredCreatableParams } from './model/index.ts';
9
+ /** @deprecated use AbstractCreatableV2 instead */
8
10
  export declare class AbstractCreatable<TParams extends CreatableParams = CreatableParams, TEventData extends EventData = EventData> extends BaseEmitter<Partial<TParams & RequiredCreatableParams>, TEventData> {
9
11
  defaultLogger?: Logger;
10
12
  protected _startPromise: Promisable<boolean> | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractCreatable.d.ts","sourceRoot":"","sources":["../../src/AbstractCreatable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractCreatable.d.ts","sourceRoot":"","sources":["../../src/AbstractCreatable.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import type { BaseEmitterParamsV2, EventData } from '@xylabs/events';
2
+ import { BaseEmitterV2 } from '@xylabs/events';
3
+ import { type Logger } from '@xylabs/logger';
4
+ import type { Promisable } from '@xylabs/promise';
5
+ import type { SpanConfig } from '@xylabs/telemetry';
6
+ import type { CreatableFactoryV2, CreatableV2 } from './CreatableV2.ts';
7
+ import type { CreatableInstanceV2, CreatableName, CreatableParamsV2, CreatableStatusV2, Labels } from './model/index.ts';
8
+ export declare abstract class AbstractCreatableV2<TParams extends CreatableParamsV2 = CreatableParamsV2, TEventData extends EventData = EventData> extends BaseEmitterV2<TParams, TEventData> {
9
+ defaultLogger?: Logger;
10
+ protected _startPromise: Promisable<boolean> | undefined;
11
+ private _status;
12
+ private _statusMutex;
13
+ private _validatedParams?;
14
+ constructor(key: unknown, params: TParams);
15
+ get context(): TParams['context'] & BaseEmitterParamsV2['context'];
16
+ get name(): CreatableName;
17
+ get params(): TParams & BaseEmitterParamsV2;
18
+ get startable(): boolean;
19
+ get status(): CreatableStatusV2 | null;
20
+ get statusReporter(): {
21
+ report: import("zod/v4/core").$InferOuterFunctionType<import("zod").ZodUnion<readonly [import("zod").ZodTuple<[import("zod").ZodString, import("zod").ZodEnum<{
22
+ creating: "creating";
23
+ created: "created";
24
+ starting: "starting";
25
+ started: "started";
26
+ stopping: "stopping";
27
+ stopped: "stopped";
28
+ }>, import("zod").ZodOptional<import("zod").ZodNumber>], null>, import("zod").ZodTuple<[import("zod").ZodString, import("zod").ZodEnum<{
29
+ error: "error";
30
+ }>, import("zod").ZodCustom<Error, Error>], null>, import("zod").ZodTuple<[import("zod").ZodString, import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
31
+ creating: "creating";
32
+ created: "created";
33
+ starting: "starting";
34
+ started: "started";
35
+ stopping: "stopping";
36
+ stopped: "stopped";
37
+ }>, import("zod").ZodEnum<{
38
+ error: "error";
39
+ }>]>], null>]>, import("zod").ZodVoid>;
40
+ } | undefined;
41
+ abstract get className(): CreatableName;
42
+ static create<T extends CreatableInstanceV2>(this: CreatableV2<T>, inParams?: Partial<T['params']>): Promise<T>;
43
+ static createHandler<T extends CreatableInstanceV2>(this: CreatableV2<T>, instance: T): Promisable<T>;
44
+ static paramsHandler<T extends CreatableInstanceV2>(this: CreatableV2<T>, params?: Partial<T['params']>): Promisable<T['params']>;
45
+ createHandler(): Promisable<void>;
46
+ paramsValidator(params: Partial<TParams>): TParams;
47
+ span<T>(name: string, fn: () => T): T;
48
+ spanAsync<T>(name: string, fn: () => Promise<T>, config?: SpanConfig): Promise<T>;
49
+ start(): Promise<boolean>;
50
+ started(notStartedAction?: 'error' | 'throw' | 'warn' | 'log' | 'none'): boolean;
51
+ startedAsync(notStartedAction?: 'error' | 'throw' | 'warn' | 'log' | 'none', tryStart?: boolean): Promise<boolean>;
52
+ stop(): Promise<boolean>;
53
+ protected _noOverride(functionName?: string): void;
54
+ protected setStatus(value: Exclude<CreatableStatusV2, 'error'>, progress?: number): void;
55
+ protected setStatus(value: Extract<CreatableStatusV2, 'error'>, error?: Error): void;
56
+ protected startHandler(): Promisable<void>;
57
+ protected stopHandler(): Promisable<void>;
58
+ }
59
+ export declare abstract class AbstractCreatableWithFactoryV2<TParams extends CreatableParamsV2 = CreatableParamsV2, TEventData extends EventData = EventData> extends AbstractCreatableV2<TParams, TEventData> {
60
+ static factory<T extends CreatableInstanceV2>(this: CreatableV2<T>, params?: Partial<T['params']>, labels?: Labels): CreatableFactoryV2<T>;
61
+ }
62
+ //# sourceMappingURL=AbstractCreatableV2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractCreatableV2.d.ts","sourceRoot":"","sources":["../../src/AbstractCreatableV2.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAQnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAGvE,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EAAE,iBAAiB,EAChC,iBAAiB,EACjB,MAAM,EACP,MAAM,kBAAkB,CAAA;AAKzB,8BAAsB,mBAAmB,CAAC,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,EAC7F,UAAU,SAAS,SAAS,GAAG,SAAS,CAAE,SAAQ,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC;IACpF,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;IACxD,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,gBAAgB,CAAC,CAA+B;gBAE5C,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IAKzC,IAAa,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAE1E;IAED,IAAI,IAAI,IAAI,aAAa,CAExB;IAED,IAAa,MAAM,IAAI,OAAO,GAAG,mBAAmB,CAGnD;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,MAAM,IAAI,iBAAiB,GAAG,IAAI,CAErC;IAED,IAAI,cAAc;;;;;;;;;;;;;;;;;;;;kBAEjB;IAED,aAAsB,SAAS,IAAI,aAAa,CAAA;WAEnC,MAAM,CAAC,CAAC,SAAS,mBAAmB,EAC/C,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,QAAQ,GAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAM,GAClC,OAAO,CAAC,CAAC,CAAC;IAiBb,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,mBAAmB,EAChD,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,QAAQ,EAAE,CAAC,GACV,UAAU,CAAC,CAAC,CAAC;IAIhB,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,mBAAmB,EAChD,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,MAAM,GAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAM,GAChC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAI1B,aAAa,IAAI,UAAU,CAAC,IAAI,CAAC;IAIjC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;IAIlD,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAI/B,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,GAAE,UAAe,GAAG,OAAO,CAAC,CAAC,CAAC;IAMrF,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAwB/B,OAAO,CAAC,gBAAgB,GAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,MAAc,GAAG,OAAO;IA+BjF,YAAY,CAAC,gBAAgB,GAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,MAAc,EAAE,QAAQ,UAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BtH,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAuB9B,SAAS,CAAC,WAAW,CAAC,YAAY,SAAqB;IAQvD,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IACxF,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAmBpF,SAAS,CAAC,YAAY,IAAI,UAAU,CAAC,IAAI,CAAC;IAI1C,SAAS,CAAC,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC;CAG1C;AAED,8BAAsB,8BAA8B,CAAC,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,EACxG,UAAU,SAAS,SAAS,GAAG,SAAS,CAAE,SAAQ,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC;IAC1F,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,mBAAmB,EAC1C,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,GACd,kBAAkB,CAAC,CAAC,CAAC;CAGzB"}
@@ -2,9 +2,11 @@ import type { Logger } from '@xylabs/logger';
2
2
  import type { Promisable } from '@xylabs/promise';
3
3
  import type { AbstractCreatable } from './AbstractCreatable.ts';
4
4
  import type { CreatableInstance, CreatableParams, Labels, RequiredCreatableParams } from './model/index.ts';
5
+ /** @deprecated use CreatableFactoryV2 instead */
5
6
  export interface CreatableFactory<T extends CreatableInstance = CreatableInstance> extends Omit<Creatable<T>, 'create' | 'createHandler' | 'paramsHandler' | 'defaultLogger' | 'factory'> {
6
7
  create(this: CreatableFactory<T>, params?: Partial<T['params']>): Promise<T>;
7
8
  }
9
+ /** @deprecated use CreatableV2 instead */
8
10
  export interface Creatable<T extends CreatableInstance = CreatableInstance> {
9
11
  defaultLogger?: Logger;
10
12
  new (key: unknown, params: Partial<CreatableParams>): T & AbstractCreatable<T['params']>;
@@ -12,6 +14,7 @@ export interface Creatable<T extends CreatableInstance = CreatableInstance> {
12
14
  createHandler<T extends CreatableInstance>(this: Creatable<T>, instance: T): Promisable<T>;
13
15
  paramsHandler<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>): Promisable<T['params'] & RequiredCreatableParams>;
14
16
  }
17
+ /** @deprecated use CreatableWithFactoryV2 instead */
15
18
  export interface CreatableWithFactory<T extends CreatableInstance = CreatableInstance> extends Creatable<T> {
16
19
  factory<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>, labels?: Labels): CreatableFactory<T>;
17
20
  }
@@ -21,6 +24,7 @@ export interface CreatableWithFactory<T extends CreatableInstance = CreatableIns
21
24
  * @returns The decorated Module requiring it implement the members
22
25
  * of the CreatableModule as statics properties/methods
23
26
  */
27
+ /** @deprecated use creatableV2 instead */
24
28
  export declare function creatable<T extends CreatableInstance>(): <U extends Creatable<T>>(constructor: U) => void;
25
29
  /**
26
30
  * Class annotation to be used to decorate Modules which support
@@ -28,5 +32,6 @@ export declare function creatable<T extends CreatableInstance>(): <U extends Cre
28
32
  * @returns The decorated Module requiring it implement the members
29
33
  * of the CreatableModule as statics properties/methods
30
34
  */
35
+ /** @deprecated use creatableFactoryV2 instead */
31
36
  export declare function creatableFactory(): <U extends CreatableFactory>(constructor: U) => void;
32
37
  //# sourceMappingURL=Creatable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Creatable.d.ts","sourceRoot":"","sources":["../../src/Creatable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EACV,iBAAiB,EAAE,eAAe,EAAE,MAAM,EAC1C,uBAAuB,EACxB,MAAM,kBAAkB,CAAA;AAEzB,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,CAC/E,SAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,GAAG,SAAS,CAAC;IAEtG,MAAM,CACJ,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACzB,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CAC7C;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB;IAExE,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,KAAI,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEvF,MAAM,CAAC,CAAC,SAAS,iBAAiB,EAChC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAClB,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAE5C,aAAa,CAAC,CAAC,SAAS,iBAAiB,EACvC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAClB,QAAQ,EAAE,CAAC,GACV,UAAU,CAAC,CAAC,CAAC,CAAA;IAEhB,aAAa,CAAC,CAAC,SAAS,iBAAiB,EACvC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,uBAAuB,CAAC,CAAA;CACxG;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IACzG,OAAO,CAAC,CAAC,SAAS,iBAAiB,EACjC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAClB,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;CACxC;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,iBAAiB,MAC3C,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,UAI/C;AAED;;;;;GAKG;AAEH,wBAAgB,gBAAgB,KACtB,CAAC,SAAS,gBAAgB,EAAE,aAAa,CAAC,UAInD"}
1
+ {"version":3,"file":"Creatable.d.ts","sourceRoot":"","sources":["../../src/Creatable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EACV,iBAAiB,EAAE,eAAe,EAAE,MAAM,EAC1C,uBAAuB,EACxB,MAAM,kBAAkB,CAAA;AAEzB,iDAAiD;AACjD,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,CAC/E,SAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,GAAG,SAAS,CAAC;IAEtG,MAAM,CACJ,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACzB,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CAC7C;AAED,0CAA0C;AAC1C,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB;IAExE,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,KAAI,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEvF,MAAM,CAAC,CAAC,SAAS,iBAAiB,EAChC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAClB,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAE5C,aAAa,CAAC,CAAC,SAAS,iBAAiB,EACvC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAClB,QAAQ,EAAE,CAAC,GACV,UAAU,CAAC,CAAC,CAAC,CAAA;IAEhB,aAAa,CAAC,CAAC,SAAS,iBAAiB,EACvC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,uBAAuB,CAAC,CAAA;CACxG;AAED,qDAAqD;AACrD,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IACzG,OAAO,CAAC,CAAC,SAAS,iBAAiB,EACjC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAClB,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;CACxC;AAED;;;;;GAKG;AACH,0CAA0C;AAC1C,wBAAgB,SAAS,CAAC,CAAC,SAAS,iBAAiB,MAC3C,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,UAI/C;AAED;;;;;GAKG;AAEH,iDAAiD;AACjD,wBAAgB,gBAAgB,KACtB,CAAC,SAAS,gBAAgB,EAAE,aAAa,CAAC,UAInD"}
@@ -0,0 +1,31 @@
1
+ import type { Logger } from '@xylabs/logger';
2
+ import type { Promisable } from '@xylabs/promise';
3
+ import type { CreatableInstanceV2, CreatableParamsV2, Labels } from './model/index.ts';
4
+ export interface CreatableFactoryV2<T extends CreatableInstanceV2 = CreatableInstanceV2> extends Omit<CreatableV2<T>, 'create' | 'createHandler' | 'paramsHandler' | 'defaultLogger' | 'factory'> {
5
+ create(this: CreatableFactoryV2<T>, params?: Partial<T['params']>): Promise<T>;
6
+ }
7
+ export interface CreatableV2<T extends CreatableInstanceV2 = CreatableInstanceV2> {
8
+ defaultLogger?: Logger;
9
+ new (key: unknown, params: Partial<CreatableParamsV2>): T;
10
+ create<T extends CreatableInstanceV2>(this: CreatableV2<T>, params?: Partial<T['params']>): Promise<T>;
11
+ createHandler<T extends CreatableInstanceV2>(this: CreatableV2<T>, instance: T): Promisable<T>;
12
+ paramsHandler<T extends CreatableInstanceV2>(this: CreatableV2<T>, params?: Partial<T['params']>): Promisable<T['params']>;
13
+ }
14
+ export interface CreatableWithFactoryV2<T extends CreatableInstanceV2 = CreatableInstanceV2> extends CreatableV2<T> {
15
+ factory<T extends CreatableInstanceV2>(this: CreatableV2<T>, params?: Partial<T['params']>, labels?: Labels): CreatableFactoryV2<T>;
16
+ }
17
+ /**
18
+ * Class annotation to be used to decorate Modules which support
19
+ * an asynchronous creation pattern
20
+ * @returns The decorated Module requiring it implement the members
21
+ * of the CreatableModule as statics properties/methods
22
+ */
23
+ export declare function creatableV2<T extends CreatableInstanceV2>(): <U extends CreatableV2<T>>(constructor: U) => void;
24
+ /**
25
+ * Class annotation to be used to decorate Modules which support
26
+ * an asynchronous creation factory pattern
27
+ * @returns The decorated Module requiring it implement the members
28
+ * of the CreatableModule as statics properties/methods
29
+ */
30
+ export declare function creatableFactoryV2(): <U extends CreatableFactoryV2>(constructor: U) => void;
31
+ //# sourceMappingURL=CreatableV2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreatableV2.d.ts","sourceRoot":"","sources":["../../src/CreatableV2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EACV,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,EAC/C,MAAM,kBAAkB,CAAA;AAEzB,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,CACrF,SAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,GAAG,SAAS,CAAC;IAExG,MAAM,CACJ,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC3B,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CAC7C;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB;IAE9E,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,KAAI,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAExD,MAAM,CAAC,CAAC,SAAS,mBAAmB,EAClC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAE5C,aAAa,CAAC,CAAC,SAAS,mBAAmB,EACzC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,QAAQ,EAAE,CAAC,GACV,UAAU,CAAC,CAAC,CAAC,CAAA;IAEhB,aAAa,CAAC,CAAC,SAAS,mBAAmB,EACzC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;CAChF;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IACjH,OAAO,CAAC,CAAC,SAAS,mBAAmB,EACnC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAA;CAC1C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,mBAAmB,MAC/C,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,UAIjD;AAED;;;;;GAKG;AAEH,wBAAgB,kBAAkB,KACxB,CAAC,SAAS,kBAAkB,EAAE,aAAa,CAAC,UAIrD"}
@@ -0,0 +1,11 @@
1
+ import type { CreatableFactoryV2, CreatableV2 } from './CreatableV2.ts';
2
+ import type { CreatableInstanceV2, Labels } from './model/index.ts';
3
+ export declare class FactoryV2<T extends CreatableInstanceV2 = CreatableInstanceV2> implements CreatableFactoryV2<T> {
4
+ creatable: CreatableV2<T>;
5
+ defaultParams?: Partial<T['params']>;
6
+ labels?: Labels;
7
+ constructor(creatable: CreatableV2<T>, params?: Partial<T['params']>, labels?: Labels);
8
+ static withParams<T extends CreatableInstanceV2>(creatableModule: CreatableV2<T>, params?: Partial<T['params']>, labels?: Labels): FactoryV2<T>;
9
+ create(params?: Partial<T['params']>): Promise<T>;
10
+ }
11
+ //# sourceMappingURL=FactoryV2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FactoryV2.d.ts","sourceRoot":"","sources":["../../src/FactoryV2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACvE,OAAO,KAAK,EACV,mBAAmB,EAAE,MAAM,EAC5B,MAAM,kBAAkB,CAAA;AAEzB,qBAAa,SAAS,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,YAAW,kBAAkB,CAAC,CAAC,CAAC;IAC1G,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;IAEzB,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEpC,MAAM,CAAC,EAAE,MAAM,CAAA;gBAGb,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,EACzB,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAC7B,MAAM,GAAE,MAAW;IAOrB,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,mBAAmB,EAC7C,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC,EAC/B,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAC7B,MAAM,GAAE,MAAW;IAKrB,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAOlD"}
@@ -1,5 +1,8 @@
1
1
  export * from './AbstractCreatable.ts';
2
+ export * from './AbstractCreatableV2.ts';
2
3
  export * from './Creatable.ts';
4
+ export * from './CreatableV2.ts';
3
5
  export * from './Factory.ts';
6
+ export * from './FactoryV2.ts';
4
7
  export * from './model/index.ts';
5
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA"}
@@ -286,6 +286,289 @@ AbstractCreatableWithFactory = __decorateClass([
286
286
  creatable()
287
287
  ], AbstractCreatableWithFactory);
288
288
 
289
+ // src/AbstractCreatableV2.ts
290
+ import { assertEx as assertEx2 } from "@xylabs/assert";
291
+ import { BaseEmitterV2 } from "@xylabs/events";
292
+ import { spanRoot as spanRoot2, spanRootAsync as spanRootAsync2 } from "@xylabs/telemetry";
293
+ import {
294
+ isError as isError2,
295
+ isNumber as isNumber3,
296
+ isString as isString2,
297
+ isUndefined as isUndefined2
298
+ } from "@xylabs/typeof";
299
+ import { Mutex as Mutex2 } from "async-mutex";
300
+
301
+ // src/FactoryV2.ts
302
+ var FactoryV2 = class _FactoryV2 {
303
+ creatable;
304
+ defaultParams;
305
+ labels;
306
+ constructor(creatable2, params, labels = {}) {
307
+ this.creatable = creatable2;
308
+ this.defaultParams = params;
309
+ this.labels = Object.assign({}, creatable2.labels ?? {}, labels ?? {});
310
+ }
311
+ static withParams(creatableModule, params, labels = {}) {
312
+ return new _FactoryV2(creatableModule, params, labels);
313
+ }
314
+ create(params) {
315
+ const mergedParams = {
316
+ ...this.defaultParams,
317
+ ...params
318
+ };
319
+ return this.creatable.create(mergedParams);
320
+ }
321
+ };
322
+
323
+ // src/AbstractCreatableV2.ts
324
+ var AbstractCreatableConstructorKey2 = /* @__PURE__ */ Symbol.for("AbstractCreatableConstructor");
325
+ var CREATABLE_NOT_STARTED2 = "Creatable not Started";
326
+ var AbstractCreatableV2 = class extends BaseEmitterV2 {
327
+ defaultLogger;
328
+ _startPromise;
329
+ _status = null;
330
+ _statusMutex = new Mutex2();
331
+ _validatedParams;
332
+ constructor(key, params) {
333
+ assertEx2(key === AbstractCreatableConstructorKey2, () => "AbstractCreatable should not be instantiated directly, use the static create method instead");
334
+ super(params);
335
+ }
336
+ get context() {
337
+ return this.params.context;
338
+ }
339
+ get name() {
340
+ return this.params.name;
341
+ }
342
+ get params() {
343
+ this._validatedParams = this._validatedParams ?? this.paramsValidator(super.params);
344
+ return assertEx2(this._validatedParams);
345
+ }
346
+ get startable() {
347
+ return this.status === "created" || this.status === "stopped";
348
+ }
349
+ get status() {
350
+ return this._status;
351
+ }
352
+ get statusReporter() {
353
+ return this.context.statusReporter;
354
+ }
355
+ static async create(inParams = {}) {
356
+ const params = await this.paramsHandler(inParams);
357
+ const name = params.name ?? this.name;
358
+ try {
359
+ const instance = new this(AbstractCreatableConstructorKey2, params);
360
+ instance.setStatus("creating");
361
+ const initializedInstance = await this.createHandler(instance);
362
+ await instance.createHandler();
363
+ instance.setStatus("created");
364
+ return initializedInstance;
365
+ } catch (ex) {
366
+ params.context.statusReporter?.report(name, "error", isError2(ex) ? ex : new Error(`Error creating: ${name}`));
367
+ params.context.logger?.error(`Error creating creatable [${name}]: ${isError2(ex) ? `${ex.message} ${ex.stack}` : ex}`);
368
+ throw isError2(ex) ? ex : new Error(`Error creating: ${name}`);
369
+ }
370
+ }
371
+ static createHandler(instance) {
372
+ return instance;
373
+ }
374
+ static paramsHandler(params = {}) {
375
+ return { ...params };
376
+ }
377
+ createHandler() {
378
+ assertEx2(this._status === "creating", () => `createHandler can not be called [status = ${this.status}]`);
379
+ }
380
+ paramsValidator(params) {
381
+ return { ...params, name: params.name };
382
+ }
383
+ span(name, fn) {
384
+ return spanRoot2(name, fn, this.tracer);
385
+ }
386
+ async spanAsync(name, fn, config = {}) {
387
+ return await spanRootAsync2(name, fn, {
388
+ ...config,
389
+ tracer: config.tracer ?? this.tracer,
390
+ logger: config.logger ?? this.defaultLogger
391
+ });
392
+ }
393
+ async start() {
394
+ this._noOverride("start");
395
+ if (this.status === "started") {
396
+ return true;
397
+ }
398
+ return await this._statusMutex.runExclusive(async () => {
399
+ try {
400
+ if (this.status === "started") {
401
+ return true;
402
+ }
403
+ assertEx2(this.startable, () => `Creatable [${this.name}] is not startable in status [${this.status}]`);
404
+ this.setStatus("starting");
405
+ await this.startHandler();
406
+ this.setStatus("started");
407
+ return true;
408
+ } catch (ex) {
409
+ this.setStatus("error", isError2(ex) ? ex : new Error(`Error starting: ${ex}`));
410
+ this.logger?.error(`Error starting creatable [${this.name}]: ${isError2(ex) ? `${ex.message} ${ex.stack}` : ex}`);
411
+ return false;
412
+ }
413
+ });
414
+ }
415
+ started(notStartedAction = "log") {
416
+ if (isString2(this.status) && this.status === "started") {
417
+ return true;
418
+ } else {
419
+ const message = () => `${CREATABLE_NOT_STARTED2} [${this.name}] current state: ${this.status}`;
420
+ switch (notStartedAction) {
421
+ case "error": {
422
+ throw new Error(message());
423
+ }
424
+ case "throw": {
425
+ throw new Error(message());
426
+ }
427
+ case "warn": {
428
+ this.logger?.warn(message());
429
+ break;
430
+ }
431
+ case "log": {
432
+ this.logger?.log(message());
433
+ break;
434
+ }
435
+ case "none": {
436
+ break;
437
+ }
438
+ default: {
439
+ throw new Error(`Unknown notStartedAction: ${notStartedAction}`);
440
+ }
441
+ }
442
+ return false;
443
+ }
444
+ }
445
+ async startedAsync(notStartedAction = "log", tryStart = true) {
446
+ if (isString2(this.status) && this.status === "started") {
447
+ return true;
448
+ } else if (this.status === "created" || this.status === "stopped" || this.status === "starting") {
449
+ this._startPromise = this._startPromise ?? (async () => {
450
+ if (tryStart) {
451
+ try {
452
+ return await this.start();
453
+ } finally {
454
+ this._startPromise = void 0;
455
+ }
456
+ }
457
+ return this.started(notStartedAction);
458
+ })();
459
+ } else {
460
+ const message = `${CREATABLE_NOT_STARTED2} [${this.name}] current state: ${this.status}`;
461
+ throw new Error(message);
462
+ }
463
+ if (isUndefined2(this._startPromise)) {
464
+ throw new Error(`Failed to create start promise: ${this.status}`);
465
+ }
466
+ return await this._startPromise;
467
+ }
468
+ async stop() {
469
+ this._noOverride("stop");
470
+ if (this.status === "stopped") {
471
+ return true;
472
+ }
473
+ return await this._statusMutex.runExclusive(async () => {
474
+ try {
475
+ if (this.status === "stopped") {
476
+ return true;
477
+ }
478
+ assertEx2(this.status === "started", () => `Creatable [${this.name}] is not stoppable in status [${this.status}]`);
479
+ this.setStatus("stopping");
480
+ await this.stopHandler();
481
+ this.setStatus("stopped");
482
+ return true;
483
+ } catch (ex) {
484
+ this.setStatus("error", isError2(ex) ? ex : new Error(`Error stopping: ${ex}`));
485
+ return false;
486
+ }
487
+ });
488
+ }
489
+ _noOverride(functionName = getFunctionName(3)) {
490
+ const thisFunc = this[functionName];
491
+ const rootFunc = getRootFunction(this, functionName);
492
+ assertEx2(thisFunc === rootFunc, () => `Override not allowed for [${functionName}] - override ${functionName}Handler instead`);
493
+ }
494
+ setStatus(value, progressOrError) {
495
+ this._status = value;
496
+ if (value !== null) {
497
+ if (value === "error") {
498
+ if (isError2(progressOrError)) {
499
+ this.statusReporter?.report(this.name, value, progressOrError);
500
+ return;
501
+ }
502
+ } else {
503
+ if (isNumber3(progressOrError)) {
504
+ this.statusReporter?.report(this.name, value, progressOrError);
505
+ return;
506
+ }
507
+ }
508
+ this.statusReporter?.report(this.name, value);
509
+ }
510
+ }
511
+ startHandler() {
512
+ }
513
+ stopHandler() {
514
+ }
515
+ };
516
+ var AbstractCreatableWithFactoryV2 = class extends AbstractCreatableV2 {
517
+ static factory(params, labels) {
518
+ return FactoryV2.withParams(this, params, labels);
519
+ }
520
+ };
521
+
522
+ // src/CreatableV2.ts
523
+ function creatableV2() {
524
+ return (constructor) => {
525
+ constructor;
526
+ };
527
+ }
528
+ function creatableFactoryV2() {
529
+ return (constructor) => {
530
+ constructor;
531
+ };
532
+ }
533
+
534
+ // src/model/CreatableParamsV2.ts
535
+ import { BaseContextZod } from "@xylabs/base";
536
+ import { BaseEmitterParamsV2Zod } from "@xylabs/events";
537
+ import z2 from "zod";
538
+
539
+ // src/model/CreatableStatusReporter.zod.ts
540
+ import { z } from "zod";
541
+ var CreatableStatusSuccessZod = z.enum(["creating", "created", "starting", "started", "stopping", "stopped"]);
542
+ var CreatableStatusErrorZod = z.enum(["error"]);
543
+ var CreatableStatusZod = z.union([CreatableStatusSuccessZod, CreatableStatusErrorZod]);
544
+ var CreatableStatusReporterV2Zod = z.object({
545
+ report: z.union([
546
+ z.function({
547
+ input: z.union([
548
+ z.tuple([
549
+ z.string(),
550
+ CreatableStatusSuccessZod,
551
+ z.number().optional()
552
+ ]),
553
+ z.tuple([
554
+ z.string(),
555
+ CreatableStatusErrorZod,
556
+ z.instanceof(Error)
557
+ ]),
558
+ z.tuple([
559
+ z.string(),
560
+ CreatableStatusZod
561
+ ])
562
+ ]),
563
+ output: z.void()
564
+ })
565
+ ])
566
+ });
567
+
568
+ // src/model/CreatableParamsV2.ts
569
+ var CreatableContext = z2.intersection(BaseContextZod, z2.object({ name: z2.string(), statusReporter: CreatableStatusReporterV2Zod.optional() }));
570
+ var CreatableParamsV2Zod = BaseEmitterParamsV2Zod.extend(z2.object({ context: CreatableContext, name: z2.string() }).shape);
571
+
289
572
  // src/model/Labels.ts
290
573
  var hasAllLabels = (source, required) => {
291
574
  if (!required) return true;
@@ -295,10 +578,21 @@ var hasAllLabels = (source, required) => {
295
578
  };
296
579
  export {
297
580
  AbstractCreatable,
581
+ AbstractCreatableV2,
298
582
  AbstractCreatableWithFactory,
583
+ AbstractCreatableWithFactoryV2,
584
+ CreatableContext,
585
+ CreatableParamsV2Zod,
586
+ CreatableStatusErrorZod,
587
+ CreatableStatusReporterV2Zod,
588
+ CreatableStatusSuccessZod,
589
+ CreatableStatusZod,
299
590
  Factory,
591
+ FactoryV2,
300
592
  creatable,
301
593
  creatableFactory,
594
+ creatableFactoryV2,
595
+ creatableV2,
302
596
  hasAllLabels
303
597
  };
304
598
  //# sourceMappingURL=index.mjs.map