@xylabs/creatable 5.0.75 → 5.0.78

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 +1 -3
  2. package/dist/neutral/AbstractCreatable.d.ts.map +1 -1
  3. package/dist/neutral/Creatable.d.ts +0 -5
  4. package/dist/neutral/Creatable.d.ts.map +1 -1
  5. package/dist/neutral/index.d.ts +0 -3
  6. package/dist/neutral/index.d.ts.map +1 -1
  7. package/dist/neutral/index.mjs +0 -294
  8. package/dist/neutral/index.mjs.map +1 -1
  9. package/dist/neutral/model/CreatableInstance.d.ts +1 -2
  10. package/dist/neutral/model/CreatableInstance.d.ts.map +1 -1
  11. package/dist/neutral/model/CreatableParams.d.ts +2 -1
  12. package/dist/neutral/model/CreatableParams.d.ts.map +1 -1
  13. package/dist/neutral/model/CreatableStatusReporter.d.ts +4 -7
  14. package/dist/neutral/model/CreatableStatusReporter.d.ts.map +1 -1
  15. package/dist/neutral/model/index.d.ts +0 -5
  16. package/dist/neutral/model/index.d.ts.map +1 -1
  17. package/package.json +9 -15
  18. package/src/AbstractCreatable.ts +1 -3
  19. package/src/Creatable.ts +0 -5
  20. package/src/index.ts +0 -3
  21. package/src/model/CreatableInstance.ts +1 -2
  22. package/src/model/CreatableParams.ts +3 -1
  23. package/src/model/CreatableStatusReporter.ts +4 -8
  24. package/src/model/index.ts +0 -5
  25. package/dist/neutral/AbstractCreatableV2.d.ts +0 -62
  26. package/dist/neutral/AbstractCreatableV2.d.ts.map +0 -1
  27. package/dist/neutral/CreatableV2.d.ts +0 -31
  28. package/dist/neutral/CreatableV2.d.ts.map +0 -1
  29. package/dist/neutral/FactoryV2.d.ts +0 -11
  30. package/dist/neutral/FactoryV2.d.ts.map +0 -1
  31. package/dist/neutral/model/CreatableInstanceV2.d.ts +0 -13
  32. package/dist/neutral/model/CreatableInstanceV2.d.ts.map +0 -1
  33. package/dist/neutral/model/CreatableName.d.ts +0 -5
  34. package/dist/neutral/model/CreatableName.d.ts.map +0 -1
  35. package/dist/neutral/model/CreatableParamsV2.d.ts +0 -62
  36. package/dist/neutral/model/CreatableParamsV2.d.ts.map +0 -1
  37. package/dist/neutral/model/CreatableStatusReporter.zod.d.ts +0 -44
  38. package/dist/neutral/model/CreatableStatusReporter.zod.d.ts.map +0 -1
  39. package/dist/neutral/model/CreatableStatusReporterV2.d.ts +0 -7
  40. package/dist/neutral/model/CreatableStatusReporterV2.d.ts.map +0 -1
  41. package/src/AbstractCreatableV2.ts +0 -270
  42. package/src/CreatableV2.ts +0 -67
  43. package/src/FactoryV2.ts +0 -38
  44. package/src/model/CreatableInstanceV2.ts +0 -15
  45. package/src/model/CreatableName.ts +0 -3
  46. package/src/model/CreatableParamsV2.ts +0 -11
  47. package/src/model/CreatableStatusReporter.zod.ts +0 -31
  48. package/src/model/CreatableStatusReporterV2.ts +0 -11
@@ -4,9 +4,7 @@ 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 { CreatableName } from './model/CreatableName.ts';
8
- import type { CreatableInstance, CreatableParams, CreatableStatus, Labels, RequiredCreatableParams } from './model/index.ts';
9
- /** @deprecated use AbstractCreatableV2 instead */
7
+ import type { CreatableInstance, CreatableName, CreatableParams, CreatableStatus, Labels, RequiredCreatableParams } from './model/index.ts';
10
8
  export declare class AbstractCreatable<TParams extends CreatableParams = CreatableParams, TEventData extends EventData = EventData> extends BaseEmitter<Partial<TParams & RequiredCreatableParams>, TEventData> {
11
9
  defaultLogger?: Logger;
12
10
  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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"}
@@ -2,11 +2,9 @@ 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 */
6
5
  export interface CreatableFactory<T extends CreatableInstance = CreatableInstance> extends Omit<Creatable<T>, 'create' | 'createHandler' | 'paramsHandler' | 'defaultLogger' | 'factory'> {
7
6
  create(this: CreatableFactory<T>, params?: Partial<T['params']>): Promise<T>;
8
7
  }
9
- /** @deprecated use CreatableV2 instead */
10
8
  export interface Creatable<T extends CreatableInstance = CreatableInstance> {
11
9
  defaultLogger?: Logger;
12
10
  new (key: unknown, params: Partial<CreatableParams>): T & AbstractCreatable<T['params']>;
@@ -14,7 +12,6 @@ export interface Creatable<T extends CreatableInstance = CreatableInstance> {
14
12
  createHandler<T extends CreatableInstance>(this: Creatable<T>, instance: T): Promisable<T>;
15
13
  paramsHandler<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>): Promisable<T['params'] & RequiredCreatableParams>;
16
14
  }
17
- /** @deprecated use CreatableWithFactoryV2 instead */
18
15
  export interface CreatableWithFactory<T extends CreatableInstance = CreatableInstance> extends Creatable<T> {
19
16
  factory<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>, labels?: Labels): CreatableFactory<T>;
20
17
  }
@@ -24,7 +21,6 @@ export interface CreatableWithFactory<T extends CreatableInstance = CreatableIns
24
21
  * @returns The decorated Module requiring it implement the members
25
22
  * of the CreatableModule as statics properties/methods
26
23
  */
27
- /** @deprecated use creatableV2 instead */
28
24
  export declare function creatable<T extends CreatableInstance>(): <U extends Creatable<T>>(constructor: U) => void;
29
25
  /**
30
26
  * Class annotation to be used to decorate Modules which support
@@ -32,6 +28,5 @@ export declare function creatable<T extends CreatableInstance>(): <U extends Cre
32
28
  * @returns The decorated Module requiring it implement the members
33
29
  * of the CreatableModule as statics properties/methods
34
30
  */
35
- /** @deprecated use creatableFactoryV2 instead */
36
31
  export declare function creatableFactory(): <U extends CreatableFactory>(constructor: U) => void;
37
32
  //# 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,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"}
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,8 +1,5 @@
1
1
  export * from './AbstractCreatable.ts';
2
- export * from './AbstractCreatableV2.ts';
3
2
  export * from './Creatable.ts';
4
- export * from './CreatableV2.ts';
5
3
  export * from './Factory.ts';
6
- export * from './FactoryV2.ts';
7
4
  export * from './model/index.ts';
8
5
  //# 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,0BAA0B,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA"}
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"}
@@ -286,289 +286,6 @@ 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
- this.setStatus("creating");
336
- }
337
- get context() {
338
- return this.params.context;
339
- }
340
- get name() {
341
- return this.params.name;
342
- }
343
- get params() {
344
- this._validatedParams = this._validatedParams ?? this.paramsValidator(super.params);
345
- return assertEx2(this._validatedParams);
346
- }
347
- get startable() {
348
- return this.status === "created" || this.status === "stopped";
349
- }
350
- get status() {
351
- return this._status;
352
- }
353
- get statusReporter() {
354
- return this.context.statusReporter;
355
- }
356
- static async create(inParams) {
357
- const params = await this.paramsHandler(inParams);
358
- const name = params.name ?? this.name;
359
- try {
360
- const instance = new this(AbstractCreatableConstructorKey2, params);
361
- const initializedInstance = await this.createHandler(instance);
362
- await instance.createHandler();
363
- return initializedInstance;
364
- } catch (ex) {
365
- params.context.statusReporter?.report(name, "error", isError2(ex) ? ex : new Error(`Error creating: ${name}`));
366
- params.context.logger?.error(`Error creating creatable [${name}]: ${isError2(ex) ? `${ex.message} ${ex.stack}` : ex}`);
367
- throw isError2(ex) ? ex : new Error(`Error creating: ${name}`);
368
- }
369
- }
370
- static createHandler(instance) {
371
- return instance;
372
- }
373
- static paramsHandler(params = {}) {
374
- return { ...params };
375
- }
376
- createHandler() {
377
- assertEx2(this._status === "creating", () => `createHandler can not be called [status = ${this.status}]`);
378
- this.setStatus("created");
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 CreatableContextZod = BaseContextZod.extend({ statusReporter: CreatableStatusReporterV2Zod.optional() });
570
- var CreatableParamsV2Zod = BaseEmitterParamsV2Zod.extend({ context: CreatableContextZod, name: z2.string() });
571
-
572
289
  // src/model/Labels.ts
573
290
  var hasAllLabels = (source, required) => {
574
291
  if (!required) return true;
@@ -578,21 +295,10 @@ var hasAllLabels = (source, required) => {
578
295
  };
579
296
  export {
580
297
  AbstractCreatable,
581
- AbstractCreatableV2,
582
298
  AbstractCreatableWithFactory,
583
- AbstractCreatableWithFactoryV2,
584
- CreatableContextZod,
585
- CreatableParamsV2Zod,
586
- CreatableStatusErrorZod,
587
- CreatableStatusReporterV2Zod,
588
- CreatableStatusSuccessZod,
589
- CreatableStatusZod,
590
299
  Factory,
591
- FactoryV2,
592
300
  creatable,
593
301
  creatableFactory,
594
- creatableFactoryV2,
595
- creatableV2,
596
302
  hasAllLabels
597
303
  };
598
304
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/AbstractCreatable.ts","../../src/Creatable.ts","../../src/Factory.ts","../../src/lib/getFunctionName.ts","../../src/lib/getRootFunction.ts","../../src/AbstractCreatableV2.ts","../../src/FactoryV2.ts","../../src/CreatableV2.ts","../../src/model/CreatableParamsV2.ts","../../src/model/CreatableStatusReporter.zod.ts","../../src/model/Labels.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport type { EventData } from '@xylabs/events'\nimport { BaseEmitter } from '@xylabs/events'\nimport { type Logger } from '@xylabs/logger'\nimport type { Promisable } from '@xylabs/promise'\nimport {\n SpanConfig, spanRoot, spanRootAsync,\n} from '@xylabs/telemetry'\nimport {\n isError, isNumber, isString,\n isUndefined,\n} from '@xylabs/typeof'\nimport { Mutex } from 'async-mutex'\n\nimport {\n type Creatable, creatable, CreatableFactory,\n} from './Creatable.ts'\nimport { Factory } from './Factory.ts'\nimport { getFunctionName, getRootFunction } from './lib/index.ts'\nimport { CreatableName } from './model/CreatableName.ts'\nimport type {\n CreatableInstance, CreatableParams,\n CreatableStatus,\n Labels,\n RequiredCreatableParams,\n} from './model/index.ts'\n\nconst AbstractCreatableConstructorKey = Symbol.for('AbstractCreatableConstructor')\nconst CREATABLE_NOT_STARTED = 'Creatable not Started' as const\n\n/** @deprecated use AbstractCreatableV2 instead */\n@creatable()\nexport class AbstractCreatable<TParams extends CreatableParams = CreatableParams,\n TEventData extends EventData = EventData> extends BaseEmitter<Partial<TParams & RequiredCreatableParams>, TEventData> {\n defaultLogger?: Logger\n\n protected _startPromise: Promisable<boolean> | undefined\n private _status: CreatableStatus | null = null\n private _statusMutex = new Mutex()\n private _validatedParams?: TParams & RequiredCreatableParams\n\n constructor(key: unknown, params: Partial<TParams & RequiredCreatableParams>) {\n assertEx(key === AbstractCreatableConstructorKey, () => 'AbstractCreatable should not be instantiated directly, use the static create method instead')\n super(params)\n }\n\n get name(): CreatableName {\n return this.params.name as CreatableName\n }\n\n override get params(): TParams & RequiredCreatableParams {\n this._validatedParams = this._validatedParams ?? this.paramsValidator(super.params)\n return this._validatedParams\n }\n\n get startable() {\n return this.status === 'created' || this.status === 'stopped'\n }\n\n get status(): CreatableStatus | null {\n return this._status\n }\n\n get statusReporter() {\n return this.params.statusReporter\n }\n\n static async create<T extends CreatableInstance>(\n this: Creatable<T>,\n inParams: Partial<T['params']> = {},\n ): Promise<T> {\n const params = await this.paramsHandler(inParams)\n const name: CreatableName = params.name ?? this.name as CreatableName\n try {\n const instance = new this(AbstractCreatableConstructorKey, params)\n instance.setStatus('creating')\n const initializedInstance = await this.createHandler(instance)\n await instance.createHandler()\n instance.setStatus('created')\n return initializedInstance\n } catch (ex) {\n params.statusReporter?.report(name, 'error', isError(ex) ? ex : new Error(`Error creating: ${name}`))\n params.logger?.error(`Error creating creatable [${name}]: ${(isError(ex) ? `${ex.message} ${ex.stack}` : ex)}`)\n throw isError(ex) ? ex : new Error(`Error creating: ${name}`)\n }\n }\n\n static createHandler<T extends CreatableInstance>(\n this: Creatable<T>,\n instance: T,\n ): Promisable<T> {\n return instance\n }\n\n static paramsHandler<T extends CreatableInstance>(\n this: Creatable<T>,\n params: Partial<T['params']> = {},\n ): Promisable<T['params']> {\n return { ...params }\n }\n\n createHandler(): Promisable<void> {\n assertEx(this._status === 'creating', () => `createHandler can not be called [status = ${this.status}]`)\n }\n\n paramsValidator(params: Partial<TParams & RequiredCreatableParams>): TParams & RequiredCreatableParams {\n return { ...params, name: params.name } as TParams & RequiredCreatableParams\n }\n\n span<T>(name: string, fn: () => T): T {\n return spanRoot(name, fn, this.tracer)\n }\n\n async spanAsync<T>(name: string, fn: () => Promise<T>, config: SpanConfig = {}): Promise<T> {\n return await spanRootAsync(name, fn, {\n ...config, tracer: config.tracer ?? this.tracer, logger: config.logger ?? this.defaultLogger,\n })\n }\n\n async start(): Promise<boolean> {\n this._noOverride('start')\n if (this.status === 'started') {\n return true\n }\n return await this._statusMutex.runExclusive(async () => {\n try {\n // check again in case it changed\n if (this.status === 'started') {\n return true\n }\n assertEx(this.startable, () => `Creatable [${this.name}] is not startable in status [${this.status}]`)\n this.setStatus('starting')\n await this.startHandler()\n this.setStatus('started')\n return true\n } catch (ex) {\n this.setStatus('error', isError(ex) ? ex : new Error(`Error starting: ${ex}`))\n this.logger?.error(`Error starting creatable [${this.name}]: ${(isError(ex) ? `${ex.message} ${ex.stack}` : ex)}`)\n return false\n }\n })\n }\n\n started(notStartedAction: 'error' | 'throw' | 'warn' | 'log' | 'none' = 'log'): boolean {\n if (isString(this.status) && this.status === 'started') {\n return true\n } else {\n const message = () => `${CREATABLE_NOT_STARTED} [${this.name}] current state: ${this.status}`\n switch (notStartedAction) {\n case 'error': {\n throw new Error(message())\n }\n case 'throw': {\n throw new Error(message())\n }\n case 'warn': {\n this.logger?.warn(message())\n break\n }\n case 'log': {\n this.logger?.log(message())\n break\n }\n case 'none': {\n break\n }\n default: {\n throw new Error(`Unknown notStartedAction: ${notStartedAction}`)\n }\n }\n return false\n }\n }\n\n async startedAsync(notStartedAction: 'error' | 'throw' | 'warn' | 'log' | 'none' = 'log', tryStart = true): Promise<boolean> {\n if (isString(this.status) && this.status === 'started') {\n return true\n } else if (this.status === 'created' || this.status === 'stopped' || this.status === 'starting') {\n // using promise as mutex\n this._startPromise = this._startPromise ?? (async () => {\n if (tryStart) {\n try {\n return await this.start()\n } finally {\n this._startPromise = undefined\n }\n }\n return this.started(notStartedAction)\n })()\n } else {\n const message = `${CREATABLE_NOT_STARTED} [${this.name}] current state: ${this.status}`\n throw new Error(message)\n }\n\n if (isUndefined(this._startPromise)) {\n throw new Error(`Failed to create start promise: ${this.status}`)\n }\n return await this._startPromise\n }\n\n async stop(): Promise<boolean> {\n this._noOverride('stop')\n if (this.status === 'stopped') {\n return true\n }\n return await this._statusMutex.runExclusive(async () => {\n try {\n // check again in case it changed\n if (this.status === 'stopped') {\n return true\n }\n assertEx(this.status === 'started', () => `Creatable [${this.name}] is not stoppable in status [${this.status}]`)\n this.setStatus('stopping')\n await this.stopHandler()\n this.setStatus('stopped')\n return true\n } catch (ex) {\n this.setStatus('error', isError(ex) ? ex : new Error(`Error stopping: ${ex}`))\n return false\n }\n })\n }\n\n protected _noOverride(functionName = getFunctionName(3)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const thisFunc = (this as any)[functionName]\n\n const rootFunc = getRootFunction(this, functionName)\n assertEx(thisFunc === rootFunc, () => `Override not allowed for [${functionName}] - override ${functionName}Handler instead`)\n }\n\n protected setStatus(value: Exclude<CreatableStatus, 'error'>, progress?: number): void\n protected setStatus(value: Extract<CreatableStatus, 'error'>, error?: Error): void\n protected setStatus(value: CreatableStatus, progressOrError?: number | Error): void {\n this._status = value\n if (value !== null) {\n if (value === 'error') {\n if (isError(progressOrError)) {\n this.statusReporter?.report(this.name, value, progressOrError)\n return\n }\n } else {\n if (isNumber(progressOrError)) {\n this.statusReporter?.report(this.name, value, progressOrError)\n return\n }\n }\n this.statusReporter?.report(this.name, value)\n }\n }\n\n protected startHandler(): Promisable<void> {\n // when overriding this, throw an error on failure\n }\n\n protected stopHandler(): Promisable<void> {\n // when overriding this, throw an error on failure\n }\n}\n\n@creatable()\nexport class AbstractCreatableWithFactory<TParams extends CreatableParams = CreatableParams,\n TEventData extends EventData = EventData> extends AbstractCreatable<TParams, TEventData> {\n static factory<T extends CreatableInstance>(\n this: Creatable<T>,\n params?: Partial<T['params']>,\n labels?: Labels,\n ): CreatableFactory<T> {\n return Factory.withParams<T>(this, params, labels)\n }\n}\n","import type { Logger } from '@xylabs/logger'\nimport type { Promisable } from '@xylabs/promise'\n\nimport type { AbstractCreatable } from './AbstractCreatable.ts'\nimport type {\n CreatableInstance, CreatableParams, Labels,\n RequiredCreatableParams,\n} from './model/index.ts'\n\n/** @deprecated use CreatableFactoryV2 instead */\nexport interface CreatableFactory<T extends CreatableInstance = CreatableInstance>\n extends Omit<Creatable<T>, 'create' | 'createHandler' | 'paramsHandler' | 'defaultLogger' | 'factory'> {\n\n create(\n this: CreatableFactory<T>,\n params?: Partial<T['params']>): Promise<T>\n}\n\n/** @deprecated use CreatableV2 instead */\nexport interface Creatable<T extends CreatableInstance = CreatableInstance> {\n\n defaultLogger?: Logger\n\n new(key: unknown, params: Partial<CreatableParams>): T & AbstractCreatable<T['params']>\n\n create<T extends CreatableInstance>(\n this: Creatable<T>,\n params?: Partial<T['params']>): Promise<T>\n\n createHandler<T extends CreatableInstance>(\n this: Creatable<T>,\n instance: T\n ): Promisable<T>\n\n paramsHandler<T extends CreatableInstance>(\n this: Creatable<T>, params?: Partial<T['params']>): Promisable<T['params'] & RequiredCreatableParams>\n}\n\n/** @deprecated use CreatableWithFactoryV2 instead */\nexport interface CreatableWithFactory<T extends CreatableInstance = CreatableInstance> extends Creatable<T> {\n factory<T extends CreatableInstance>(\n this: Creatable<T>,\n params?: Partial<T['params']>,\n labels?: Labels): CreatableFactory<T>\n}\n\n/**\n * Class annotation to be used to decorate Modules which support\n * an asynchronous creation pattern\n * @returns The decorated Module requiring it implement the members\n * of the CreatableModule as statics properties/methods\n */\n/** @deprecated use creatableV2 instead */\nexport function creatable<T extends CreatableInstance>() {\n return <U extends Creatable<T>>(constructor: U) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n constructor\n }\n}\n\n/**\n * Class annotation to be used to decorate Modules which support\n * an asynchronous creation factory pattern\n * @returns The decorated Module requiring it implement the members\n * of the CreatableModule as statics properties/methods\n */\n\n/** @deprecated use creatableFactoryV2 instead */\nexport function creatableFactory() {\n return <U extends CreatableFactory>(constructor: U) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n constructor\n }\n}\n","import { type Creatable, type CreatableFactory } from './Creatable.ts'\nimport type {\n CreatableInstance, Labels, WithOptionalLabels,\n} from './model/index.ts'\n\nexport class Factory<T extends CreatableInstance = CreatableInstance> implements CreatableFactory<T> {\n creatable: Creatable<T>\n\n defaultParams?: Partial<T['params']>\n\n labels?: Labels\n\n constructor(\n creatable: Creatable<T>,\n params?: Partial<T['params']>,\n labels: Labels = {},\n ) {\n this.creatable = creatable\n this.defaultParams = params\n this.labels = Object.assign({}, (creatable as WithOptionalLabels).labels ?? {}, labels ?? {})\n }\n\n static withParams<T extends CreatableInstance>(\n creatableModule: Creatable<T>,\n params?: Partial<T['params']>,\n labels: Labels = {},\n ) {\n return new Factory<T>(creatableModule, params, labels)\n }\n\n create(params?: Partial<T['params']>): Promise<T> {\n const mergedParams: T['params'] = {\n ...this.defaultParams,\n ...params,\n } as T['params']\n return this.creatable.create<T>(mergedParams)\n }\n}\n","import { isNumber } from '@xylabs/typeof'\n\nexport function getFunctionName(depth = 2) {\n const error = new Error('Stack')\n let newIndex: number | undefined\n const stackParts = error.stack?.split('\\n')[depth]?.split(' ')\n const funcName\n = stackParts?.find((item, index) => {\n if (item.length > 0 && item !== 'at') {\n // check if constructor\n if (item === 'new') {\n newIndex = index\n }\n return true\n }\n }) ?? '<unknown>'\n return isNumber(newIndex) ? `${funcName} ${stackParts?.[newIndex + 1]}` : funcName\n}\n","export function getRootFunction(obj: unknown, funcName: string) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let anyObj = obj as any\n while (anyObj.__proto__?.[funcName]) {\n anyObj = anyObj.__proto__\n }\n return anyObj[funcName]\n}\n","import { assertEx } from '@xylabs/assert'\nimport type { EventData } from '@xylabs/events'\nimport { BaseEmitterV2 } from '@xylabs/events'\nimport { type Logger } from '@xylabs/logger'\nimport type { Promisable } from '@xylabs/promise'\nimport type { SpanConfig } from '@xylabs/telemetry'\nimport { spanRoot, spanRootAsync } from '@xylabs/telemetry'\nimport {\n isError, isNumber, isString,\n isUndefined,\n} from '@xylabs/typeof'\nimport { Mutex } from 'async-mutex'\n\nimport type { CreatableFactoryV2, CreatableV2 } from './CreatableV2.ts'\nimport { FactoryV2 } from './FactoryV2.ts'\nimport { getFunctionName, getRootFunction } from './lib/index.ts'\nimport type {\n CreatableInstanceV2,\n CreatableName, CreatableParamsV2,\n CreatableStatusV2,\n Labels,\n} from './model/index.ts'\n\nconst AbstractCreatableConstructorKey = Symbol.for('AbstractCreatableConstructor')\nconst CREATABLE_NOT_STARTED = 'Creatable not Started' as const\n\nexport abstract class AbstractCreatableV2<TParams extends CreatableParamsV2 = CreatableParamsV2,\n TEventData extends EventData = EventData> extends BaseEmitterV2<TParams, TEventData> implements CreatableInstanceV2<TParams, TEventData> {\n defaultLogger?: Logger\n\n protected _startPromise: Promisable<boolean> | undefined\n private _status: CreatableStatusV2 | null = null\n private _statusMutex = new Mutex()\n private _validatedParams?: TParams\n\n constructor(key: unknown, params: TParams) {\n assertEx(key === AbstractCreatableConstructorKey, () => 'AbstractCreatable should not be instantiated directly, use the static create method instead')\n super(params)\n this.setStatus('creating')\n }\n\n override get context(): TParams['context'] {\n return this.params.context\n }\n\n get name(): CreatableName {\n return this.params.name as CreatableName\n }\n\n override get params(): TParams {\n this._validatedParams = this._validatedParams ?? this.paramsValidator(super.params)\n return assertEx(this._validatedParams)\n }\n\n get startable() {\n return this.status === 'created' || this.status === 'stopped'\n }\n\n get status(): CreatableStatusV2 | null {\n return this._status\n }\n\n get statusReporter() {\n return this.context.statusReporter\n }\n\n abstract override get className(): CreatableName\n\n static async create<T extends CreatableInstanceV2>(\n this: CreatableV2<T>,\n inParams: T['params'],\n ): Promise<T> {\n const params = await this.paramsHandler(inParams)\n const name = (params.name ?? this.name) as CreatableName\n try {\n const instance = new this(AbstractCreatableConstructorKey, params)\n const initializedInstance = await this.createHandler(instance)\n await instance.createHandler()\n return initializedInstance\n } catch (ex) {\n params.context.statusReporter?.report(name, 'error', isError(ex) ? ex : new Error(`Error creating: ${name}`))\n params.context.logger?.error(`Error creating creatable [${name}]: ${(isError(ex) ? `${ex.message} ${ex.stack}` : ex)}`)\n throw isError(ex) ? ex : new Error(`Error creating: ${name}`)\n }\n }\n\n static createHandler<T extends CreatableInstanceV2>(\n this: CreatableV2<T>,\n instance: T,\n ): Promisable<T> {\n return instance\n }\n\n static paramsHandler<T extends CreatableInstanceV2>(\n this: CreatableV2<T>,\n params: Partial<T['params']> = {},\n ): Promisable<T['params']> {\n return { ...params } as T['params']\n }\n\n createHandler(): Promisable<void> {\n assertEx(this._status === 'creating', () => `createHandler can not be called [status = ${this.status}]`)\n this.setStatus('created')\n }\n\n paramsValidator(params: Partial<TParams>): TParams {\n return { ...params, name: params.name } as TParams\n }\n\n span<T>(name: string, fn: () => T): T {\n return spanRoot(name, fn, this.tracer)\n }\n\n async spanAsync<T>(name: string, fn: () => Promise<T>, config: SpanConfig = {}): Promise<T> {\n return await spanRootAsync(name, fn, {\n ...config, tracer: config.tracer ?? this.tracer, logger: config.logger ?? this.defaultLogger,\n })\n }\n\n async start(): Promise<boolean> {\n this._noOverride('start')\n if (this.status === 'started') {\n return true\n }\n return await this._statusMutex.runExclusive(async () => {\n try {\n // check again in case it changed\n if (this.status === 'started') {\n return true\n }\n assertEx(this.startable, () => `Creatable [${this.name}] is not startable in status [${this.status}]`)\n this.setStatus('starting')\n await this.startHandler()\n this.setStatus('started')\n return true\n } catch (ex) {\n this.setStatus('error', isError(ex) ? ex : new Error(`Error starting: ${ex}`))\n this.logger?.error(`Error starting creatable [${this.name}]: ${(isError(ex) ? `${ex.message} ${ex.stack}` : ex)}`)\n return false\n }\n })\n }\n\n started(notStartedAction: 'error' | 'throw' | 'warn' | 'log' | 'none' = 'log'): boolean {\n if (isString(this.status) && this.status === 'started') {\n return true\n } else {\n const message = () => `${CREATABLE_NOT_STARTED} [${this.name}] current state: ${this.status}`\n switch (notStartedAction) {\n case 'error': {\n throw new Error(message())\n }\n case 'throw': {\n throw new Error(message())\n }\n case 'warn': {\n this.logger?.warn(message())\n break\n }\n case 'log': {\n this.logger?.log(message())\n break\n }\n case 'none': {\n break\n }\n default: {\n throw new Error(`Unknown notStartedAction: ${notStartedAction}`)\n }\n }\n return false\n }\n }\n\n async startedAsync(notStartedAction: 'error' | 'throw' | 'warn' | 'log' | 'none' = 'log', tryStart = true): Promise<boolean> {\n if (isString(this.status) && this.status === 'started') {\n return true\n } else if (this.status === 'created' || this.status === 'stopped' || this.status === 'starting') {\n // using promise as mutex\n this._startPromise = this._startPromise ?? (async () => {\n if (tryStart) {\n try {\n return await this.start()\n } finally {\n this._startPromise = undefined\n }\n }\n return this.started(notStartedAction)\n })()\n } else {\n const message = `${CREATABLE_NOT_STARTED} [${this.name}] current state: ${this.status}`\n throw new Error(message)\n }\n\n if (isUndefined(this._startPromise)) {\n throw new Error(`Failed to create start promise: ${this.status}`)\n }\n return await this._startPromise\n }\n\n async stop(): Promise<boolean> {\n this._noOverride('stop')\n if (this.status === 'stopped') {\n return true\n }\n return await this._statusMutex.runExclusive(async () => {\n try {\n // check again in case it changed\n if (this.status === 'stopped') {\n return true\n }\n assertEx(this.status === 'started', () => `Creatable [${this.name}] is not stoppable in status [${this.status}]`)\n this.setStatus('stopping')\n await this.stopHandler()\n this.setStatus('stopped')\n return true\n } catch (ex) {\n this.setStatus('error', isError(ex) ? ex : new Error(`Error stopping: ${ex}`))\n return false\n }\n })\n }\n\n protected _noOverride(functionName = getFunctionName(3)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const thisFunc = (this as any)[functionName]\n\n const rootFunc = getRootFunction(this, functionName)\n assertEx(thisFunc === rootFunc, () => `Override not allowed for [${functionName}] - override ${functionName}Handler instead`)\n }\n\n protected setStatus(value: Exclude<CreatableStatusV2, 'error'>, progress?: number): void\n protected setStatus(value: Extract<CreatableStatusV2, 'error'>, error?: Error): void\n protected setStatus(value: CreatableStatusV2, progressOrError?: number | Error): void {\n this._status = value\n if (value !== null) {\n if (value === 'error') {\n if (isError(progressOrError)) {\n this.statusReporter?.report(this.name, value, progressOrError)\n return\n }\n } else {\n if (isNumber(progressOrError)) {\n this.statusReporter?.report(this.name, value, progressOrError)\n return\n }\n }\n this.statusReporter?.report(this.name, value)\n }\n }\n\n protected startHandler(): Promisable<void> {\n // when overriding this, throw an error on failure\n }\n\n protected stopHandler(): Promisable<void> {\n // when overriding this, throw an error on failure\n }\n}\n\nexport abstract class AbstractCreatableWithFactoryV2<TParams extends CreatableParamsV2 = CreatableParamsV2,\n TEventData extends EventData = EventData> extends AbstractCreatableV2<TParams, TEventData> {\n static factory<T extends CreatableInstanceV2>(\n this: CreatableV2<T>,\n params: T['params'],\n labels?: Labels,\n ): CreatableFactoryV2<T> {\n return FactoryV2.withParams<T>(this, params, labels)\n }\n}\n","import type { CreatableFactoryV2, CreatableV2 } from './CreatableV2.ts'\nimport type {\n CreatableInstanceV2, Labels, WithOptionalLabels,\n} from './model/index.ts'\n\nexport class FactoryV2<T extends CreatableInstanceV2 = CreatableInstanceV2> implements CreatableFactoryV2<T> {\n creatable: CreatableV2<T>\n\n defaultParams?: Partial<T['params']>\n\n labels?: Labels\n\n constructor(\n creatable: CreatableV2<T>,\n params: T['params'],\n labels: Labels = {},\n ) {\n this.creatable = creatable\n this.defaultParams = params\n this.labels = Object.assign({}, (creatable as WithOptionalLabels).labels ?? {}, labels ?? {})\n }\n\n static withParams<T extends CreatableInstanceV2>(\n creatableModule: CreatableV2<T>,\n params: T['params'],\n labels: Labels = {},\n ) {\n return new FactoryV2<T>(creatableModule, params, labels)\n }\n\n create(params: Partial<T['params']>): Promise<T> {\n const mergedParams: T['params'] = {\n ...this.defaultParams,\n ...params,\n } as T['params']\n return this.creatable.create<T>(mergedParams)\n }\n}\n","import type { Logger } from '@xylabs/logger'\nimport type { Promisable } from '@xylabs/promise'\n\nimport type {\n CreatableInstanceV2, CreatableParamsV2, Labels,\n} from './model/index.ts'\n\nexport interface CreatableFactoryV2<T extends CreatableInstanceV2 = CreatableInstanceV2>\n extends Omit<CreatableV2<T>, 'create' | 'createHandler' | 'paramsHandler' | 'defaultLogger' | 'factory'> {\n\n create(\n this: CreatableFactoryV2<T>,\n params: T['params']): Promise<T>\n}\n\nexport interface CreatableV2<T extends CreatableInstanceV2 = CreatableInstanceV2> {\n\n defaultLogger?: Logger\n\n new(key: unknown, params: CreatableParamsV2): T\n\n create<T extends CreatableInstanceV2>(\n this: CreatableV2<T>,\n params: T['params']): Promise<T>\n\n createHandler<T extends CreatableInstanceV2>(\n this: CreatableV2<T>,\n instance: T\n ): Promisable<T>\n\n paramsHandler<T extends CreatableInstanceV2>(\n this: CreatableV2<T>, params: Partial<T['params']>): Promisable<T['params']>\n}\n\nexport interface CreatableWithFactoryV2<T extends CreatableInstanceV2 = CreatableInstanceV2> extends CreatableV2<T> {\n factory<T extends CreatableInstanceV2>(\n this: CreatableV2<T>,\n params: T['params'],\n labels?: Labels): CreatableFactoryV2<T>\n}\n\n/**\n * Class annotation to be used to decorate Modules which support\n * an asynchronous creation pattern\n * @returns The decorated Module requiring it implement the members\n * of the CreatableModule as statics properties/methods\n */\nexport function creatableV2<T extends CreatableInstanceV2>() {\n return <U extends CreatableV2<T>>(constructor: U) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n constructor\n }\n}\n\n/**\n * Class annotation to be used to decorate Modules which support\n * an asynchronous creation factory pattern\n * @returns The decorated Module requiring it implement the members\n * of the CreatableModule as statics properties/methods\n */\n\nexport function creatableFactoryV2() {\n return <U extends CreatableFactoryV2>(constructor: U) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n constructor\n }\n}\n","import { BaseContextZod } from '@xylabs/base'\nimport { BaseEmitterParamsV2Zod } from '@xylabs/events'\nimport z from 'zod'\n\nimport { CreatableStatusReporterV2Zod } from './CreatableStatusReporter.zod.ts'\n\nexport const CreatableContextZod = BaseContextZod.extend({ statusReporter: CreatableStatusReporterV2Zod.optional() })\n\nexport const CreatableParamsV2Zod = BaseEmitterParamsV2Zod.extend({ context: CreatableContextZod, name: z.string() })\n\nexport type CreatableParamsV2 = z.infer<typeof CreatableParamsV2Zod>\n","import { z } from 'zod'\n\nexport const CreatableStatusSuccessZod = z.enum(['creating', 'created', 'starting', 'started', 'stopping', 'stopped'])\n\nexport const CreatableStatusErrorZod = z.enum(['error'])\n\nexport const CreatableStatusZod = z.union([CreatableStatusSuccessZod, CreatableStatusErrorZod])\n\nexport const CreatableStatusReporterV2Zod = z.object({\n report: z.union([\n z.function({\n input: z.union([\n z.tuple([\n z.string(),\n CreatableStatusSuccessZod,\n z.number().optional(),\n ]),\n z.tuple([\n z.string(),\n CreatableStatusErrorZod,\n z.instanceof(Error),\n ]),\n z.tuple([\n z.string(),\n CreatableStatusZod,\n ]),\n ]),\n output: z.void(),\n }),\n ]),\n})\n","/**\n * Object used to represent labels identifying a resource.\n */\nexport interface Labels {\n [key: string]: string | undefined\n}\n\n/**\n * Interface for objects that have labels.\n */\nexport interface WithLabels<T extends Labels = Labels> {\n labels: T\n}\n\n/**\n * Interface for objects that have labels.\n */\nexport interface WithOptionalLabels<T extends Labels = Labels> {\n labels?: T\n}\n\n/**\n * Returns true if the source object has all the labels from the required set\n * @param source Source object to check against\n * @param required Set of labels to check for in source\n * @returns True of the source object has all the labels from the required set\n */\nexport const hasAllLabels = (source?: Labels, required?: Labels): boolean => {\n if (!required) return true\n return Object.entries(required).every(([key, value]) => {\n return source?.hasOwnProperty(key as keyof typeof source) && source?.[key as keyof typeof source] === value\n })\n}\n"],"mappings":";;;;;;;;;;;;AAAA,SAAS,gBAAgB;AAEzB,SAAS,mBAAmB;AAG5B;AAAA,EACc;AAAA,EAAU;AAAA,OACjB;AACP;AAAA,EACE;AAAA,EAAS,YAAAA;AAAA,EAAU;AAAA,EACnB;AAAA,OACK;AACP,SAAS,aAAa;;;ACyCf,SAAS,YAAyC;AACvD,SAAO,CAAyB,gBAAmB;AAEjD;AAAA,EACF;AACF;AAUO,SAAS,mBAAmB;AACjC,SAAO,CAA6B,gBAAmB;AAErD;AAAA,EACF;AACF;;;ACpEO,IAAM,UAAN,MAAM,SAAwF;AAAA,EACnG;AAAA,EAEA;AAAA,EAEA;AAAA,EAEA,YACEC,YACA,QACA,SAAiB,CAAC,GAClB;AACA,SAAK,YAAYA;AACjB,SAAK,gBAAgB;AACrB,SAAK,SAAS,OAAO,OAAO,CAAC,GAAIA,WAAiC,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC;AAAA,EAC9F;AAAA,EAEA,OAAO,WACL,iBACA,QACA,SAAiB,CAAC,GAClB;AACA,WAAO,IAAI,SAAW,iBAAiB,QAAQ,MAAM;AAAA,EACvD;AAAA,EAEA,OAAO,QAA2C;AAChD,UAAM,eAA4B;AAAA,MAChC,GAAG,KAAK;AAAA,MACR,GAAG;AAAA,IACL;AACA,WAAO,KAAK,UAAU,OAAU,YAAY;AAAA,EAC9C;AACF;;;ACrCA,SAAS,gBAAgB;AAElB,SAAS,gBAAgB,QAAQ,GAAG;AACzC,QAAM,QAAQ,IAAI,MAAM,OAAO;AAC/B,MAAI;AACJ,QAAM,aAAa,MAAM,OAAO,MAAM,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG;AAC7D,QAAM,WACF,YAAY,KAAK,CAAC,MAAM,UAAU;AAClC,QAAI,KAAK,SAAS,KAAK,SAAS,MAAM;AAEpC,UAAI,SAAS,OAAO;AAClB,mBAAW;AAAA,MACb;AACA,aAAO;AAAA,IACT;AAAA,EACF,CAAC,KAAK;AACR,SAAO,SAAS,QAAQ,IAAI,GAAG,QAAQ,IAAI,aAAa,WAAW,CAAC,CAAC,KAAK;AAC5E;;;ACjBO,SAAS,gBAAgB,KAAc,UAAkB;AAE9D,MAAI,SAAS;AACb,SAAO,OAAO,YAAY,QAAQ,GAAG;AACnC,aAAS,OAAO;AAAA,EAClB;AACA,SAAO,OAAO,QAAQ;AACxB;;;AJoBA,IAAM,kCAAkC,uBAAO,IAAI,8BAA8B;AACjF,IAAM,wBAAwB;AAIvB,IAAM,oBAAN,cAC6C,YAAoE;AAAA,EACtH;AAAA,EAEU;AAAA,EACF,UAAkC;AAAA,EAClC,eAAe,IAAI,MAAM;AAAA,EACzB;AAAA,EAER,YAAY,KAAc,QAAoD;AAC5E,aAAS,QAAQ,iCAAiC,MAAM,6FAA6F;AACrJ,UAAM,MAAM;AAAA,EACd;AAAA,EAEA,IAAI,OAAsB;AACxB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,IAAa,SAA4C;AACvD,SAAK,mBAAmB,KAAK,oBAAoB,KAAK,gBAAgB,MAAM,MAAM;AAClF,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,YAAY;AACd,WAAO,KAAK,WAAW,aAAa,KAAK,WAAW;AAAA,EACtD;AAAA,EAEA,IAAI,SAAiC;AACnC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,iBAAiB;AACnB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,aAAa,OAEX,WAAiC,CAAC,GACtB;AACZ,UAAM,SAAS,MAAM,KAAK,cAAc,QAAQ;AAChD,UAAM,OAAsB,OAAO,QAAQ,KAAK;AAChD,QAAI;AACF,YAAM,WAAW,IAAI,KAAK,iCAAiC,MAAM;AACjE,eAAS,UAAU,UAAU;AAC7B,YAAM,sBAAsB,MAAM,KAAK,cAAc,QAAQ;AAC7D,YAAM,SAAS,cAAc;AAC7B,eAAS,UAAU,SAAS;AAC5B,aAAO;AAAA,IACT,SAAS,IAAI;AACX,aAAO,gBAAgB,OAAO,MAAM,SAAS,QAAQ,EAAE,IAAI,KAAK,IAAI,MAAM,mBAAmB,IAAI,EAAE,CAAC;AACpG,aAAO,QAAQ,MAAM,6BAA6B,IAAI,MAAO,QAAQ,EAAE,IAAI,GAAG,GAAG,OAAO,IAAI,GAAG,KAAK,KAAK,EAAG,EAAE;AAC9G,YAAM,QAAQ,EAAE,IAAI,KAAK,IAAI,MAAM,mBAAmB,IAAI,EAAE;AAAA,IAC9D;AAAA,EACF;AAAA,EAEA,OAAO,cAEL,UACe;AACf,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,cAEL,SAA+B,CAAC,GACP;AACzB,WAAO,EAAE,GAAG,OAAO;AAAA,EACrB;AAAA,EAEA,gBAAkC;AAChC,aAAS,KAAK,YAAY,YAAY,MAAM,6CAA6C,KAAK,MAAM,GAAG;AAAA,EACzG;AAAA,EAEA,gBAAgB,QAAuF;AACrG,WAAO,EAAE,GAAG,QAAQ,MAAM,OAAO,KAAK;AAAA,EACxC;AAAA,EAEA,KAAQ,MAAc,IAAgB;AACpC,WAAO,SAAS,MAAM,IAAI,KAAK,MAAM;AAAA,EACvC;AAAA,EAEA,MAAM,UAAa,MAAc,IAAsB,SAAqB,CAAC,GAAe;AAC1F,WAAO,MAAM,cAAc,MAAM,IAAI;AAAA,MACnC,GAAG;AAAA,MAAQ,QAAQ,OAAO,UAAU,KAAK;AAAA,MAAQ,QAAQ,OAAO,UAAU,KAAK;AAAA,IACjF,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,QAA0B;AAC9B,SAAK,YAAY,OAAO;AACxB,QAAI,KAAK,WAAW,WAAW;AAC7B,aAAO;AAAA,IACT;AACA,WAAO,MAAM,KAAK,aAAa,aAAa,YAAY;AACtD,UAAI;AAEF,YAAI,KAAK,WAAW,WAAW;AAC7B,iBAAO;AAAA,QACT;AACA,iBAAS,KAAK,WAAW,MAAM,cAAc,KAAK,IAAI,iCAAiC,KAAK,MAAM,GAAG;AACrG,aAAK,UAAU,UAAU;AACzB,cAAM,KAAK,aAAa;AACxB,aAAK,UAAU,SAAS;AACxB,eAAO;AAAA,MACT,SAAS,IAAI;AACX,aAAK,UAAU,SAAS,QAAQ,EAAE,IAAI,KAAK,IAAI,MAAM,mBAAmB,EAAE,EAAE,CAAC;AAC7E,aAAK,QAAQ,MAAM,6BAA6B,KAAK,IAAI,MAAO,QAAQ,EAAE,IAAI,GAAG,GAAG,OAAO,IAAI,GAAG,KAAK,KAAK,EAAG,EAAE;AACjH,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,QAAQ,mBAAgE,OAAgB;AACtF,QAAI,SAAS,KAAK,MAAM,KAAK,KAAK,WAAW,WAAW;AACtD,aAAO;AAAA,IACT,OAAO;AACL,YAAM,UAAU,MAAM,GAAG,qBAAqB,KAAK,KAAK,IAAI,oBAAoB,KAAK,MAAM;AAC3F,cAAQ,kBAAkB;AAAA,QACxB,KAAK,SAAS;AACZ,gBAAM,IAAI,MAAM,QAAQ,CAAC;AAAA,QAC3B;AAAA,QACA,KAAK,SAAS;AACZ,gBAAM,IAAI,MAAM,QAAQ,CAAC;AAAA,QAC3B;AAAA,QACA,KAAK,QAAQ;AACX,eAAK,QAAQ,KAAK,QAAQ,CAAC;AAC3B;AAAA,QACF;AAAA,QACA,KAAK,OAAO;AACV,eAAK,QAAQ,IAAI,QAAQ,CAAC;AAC1B;AAAA,QACF;AAAA,QACA,KAAK,QAAQ;AACX;AAAA,QACF;AAAA,QACA,SAAS;AACP,gBAAM,IAAI,MAAM,6BAA6B,gBAAgB,EAAE;AAAA,QACjE;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,MAAM,aAAa,mBAAgE,OAAO,WAAW,MAAwB;AAC3H,QAAI,SAAS,KAAK,MAAM,KAAK,KAAK,WAAW,WAAW;AACtD,aAAO;AAAA,IACT,WAAW,KAAK,WAAW,aAAa,KAAK,WAAW,aAAa,KAAK,WAAW,YAAY;AAE/F,WAAK,gBAAgB,KAAK,kBAAkB,YAAY;AACtD,YAAI,UAAU;AACZ,cAAI;AACF,mBAAO,MAAM,KAAK,MAAM;AAAA,UAC1B,UAAE;AACA,iBAAK,gBAAgB;AAAA,UACvB;AAAA,QACF;AACA,eAAO,KAAK,QAAQ,gBAAgB;AAAA,MACtC,GAAG;AAAA,IACL,OAAO;AACL,YAAM,UAAU,GAAG,qBAAqB,KAAK,KAAK,IAAI,oBAAoB,KAAK,MAAM;AACrF,YAAM,IAAI,MAAM,OAAO;AAAA,IACzB;AAEA,QAAI,YAAY,KAAK,aAAa,GAAG;AACnC,YAAM,IAAI,MAAM,mCAAmC,KAAK,MAAM,EAAE;AAAA,IAClE;AACA,WAAO,MAAM,KAAK;AAAA,EACpB;AAAA,EAEA,MAAM,OAAyB;AAC7B,SAAK,YAAY,MAAM;AACvB,QAAI,KAAK,WAAW,WAAW;AAC7B,aAAO;AAAA,IACT;AACA,WAAO,MAAM,KAAK,aAAa,aAAa,YAAY;AACtD,UAAI;AAEF,YAAI,KAAK,WAAW,WAAW;AAC7B,iBAAO;AAAA,QACT;AACA,iBAAS,KAAK,WAAW,WAAW,MAAM,cAAc,KAAK,IAAI,iCAAiC,KAAK,MAAM,GAAG;AAChH,aAAK,UAAU,UAAU;AACzB,cAAM,KAAK,YAAY;AACvB,aAAK,UAAU,SAAS;AACxB,eAAO;AAAA,MACT,SAAS,IAAI;AACX,aAAK,UAAU,SAAS,QAAQ,EAAE,IAAI,KAAK,IAAI,MAAM,mBAAmB,EAAE,EAAE,CAAC;AAC7E,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEU,YAAY,eAAe,gBAAgB,CAAC,GAAG;AAEvD,UAAM,WAAY,KAAa,YAAY;AAE3C,UAAM,WAAW,gBAAgB,MAAM,YAAY;AACnD,aAAS,aAAa,UAAU,MAAM,6BAA6B,YAAY,gBAAgB,YAAY,iBAAiB;AAAA,EAC9H;AAAA,EAIU,UAAU,OAAwB,iBAAwC;AAClF,SAAK,UAAU;AACf,QAAI,UAAU,MAAM;AAClB,UAAI,UAAU,SAAS;AACrB,YAAI,QAAQ,eAAe,GAAG;AAC5B,eAAK,gBAAgB,OAAO,KAAK,MAAM,OAAO,eAAe;AAC7D;AAAA,QACF;AAAA,MACF,OAAO;AACL,YAAIC,UAAS,eAAe,GAAG;AAC7B,eAAK,gBAAgB,OAAO,KAAK,MAAM,OAAO,eAAe;AAC7D;AAAA,QACF;AAAA,MACF;AACA,WAAK,gBAAgB,OAAO,KAAK,MAAM,KAAK;AAAA,IAC9C;AAAA,EACF;AAAA,EAEU,eAAiC;AAAA,EAE3C;AAAA,EAEU,cAAgC;AAAA,EAE1C;AACF;AAlOa,oBAAN;AAAA,EADN,UAAU;AAAA,GACE;AAqON,IAAM,+BAAN,cAC6C,kBAAuC;AAAA,EACzF,OAAO,QAEL,QACA,QACqB;AACrB,WAAO,QAAQ,WAAc,MAAM,QAAQ,MAAM;AAAA,EACnD;AACF;AATa,+BAAN;AAAA,EADN,UAAU;AAAA,GACE;;;AKrQb,SAAS,YAAAC,iBAAgB;AAEzB,SAAS,qBAAqB;AAI9B,SAAS,YAAAC,WAAU,iBAAAC,sBAAqB;AACxC;AAAA,EACE,WAAAC;AAAA,EAAS,YAAAC;AAAA,EAAU,YAAAC;AAAA,EACnB,eAAAC;AAAA,OACK;AACP,SAAS,SAAAC,cAAa;;;ACNf,IAAM,YAAN,MAAM,WAAgG;AAAA,EAC3G;AAAA,EAEA;AAAA,EAEA;AAAA,EAEA,YACEC,YACA,QACA,SAAiB,CAAC,GAClB;AACA,SAAK,YAAYA;AACjB,SAAK,gBAAgB;AACrB,SAAK,SAAS,OAAO,OAAO,CAAC,GAAIA,WAAiC,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC;AAAA,EAC9F;AAAA,EAEA,OAAO,WACL,iBACA,QACA,SAAiB,CAAC,GAClB;AACA,WAAO,IAAI,WAAa,iBAAiB,QAAQ,MAAM;AAAA,EACzD;AAAA,EAEA,OAAO,QAA0C;AAC/C,UAAM,eAA4B;AAAA,MAChC,GAAG,KAAK;AAAA,MACR,GAAG;AAAA,IACL;AACA,WAAO,KAAK,UAAU,OAAU,YAAY;AAAA,EAC9C;AACF;;;ADdA,IAAMC,mCAAkC,uBAAO,IAAI,8BAA8B;AACjF,IAAMC,yBAAwB;AAEvB,IAAe,sBAAf,cAC6C,cAAuF;AAAA,EACzI;AAAA,EAEU;AAAA,EACF,UAAoC;AAAA,EACpC,eAAe,IAAIC,OAAM;AAAA,EACzB;AAAA,EAER,YAAY,KAAc,QAAiB;AACzC,IAAAC,UAAS,QAAQH,kCAAiC,MAAM,6FAA6F;AACrJ,UAAM,MAAM;AACZ,SAAK,UAAU,UAAU;AAAA,EAC3B;AAAA,EAEA,IAAa,UAA8B;AACzC,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,IAAI,OAAsB;AACxB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,IAAa,SAAkB;AAC7B,SAAK,mBAAmB,KAAK,oBAAoB,KAAK,gBAAgB,MAAM,MAAM;AAClF,WAAOG,UAAS,KAAK,gBAAgB;AAAA,EACvC;AAAA,EAEA,IAAI,YAAY;AACd,WAAO,KAAK,WAAW,aAAa,KAAK,WAAW;AAAA,EACtD;AAAA,EAEA,IAAI,SAAmC;AACrC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,iBAAiB;AACnB,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAIA,aAAa,OAEX,UACY;AACZ,UAAM,SAAS,MAAM,KAAK,cAAc,QAAQ;AAChD,UAAM,OAAQ,OAAO,QAAQ,KAAK;AAClC,QAAI;AACF,YAAM,WAAW,IAAI,KAAKH,kCAAiC,MAAM;AACjE,YAAM,sBAAsB,MAAM,KAAK,cAAc,QAAQ;AAC7D,YAAM,SAAS,cAAc;AAC7B,aAAO;AAAA,IACT,SAAS,IAAI;AACX,aAAO,QAAQ,gBAAgB,OAAO,MAAM,SAASI,SAAQ,EAAE,IAAI,KAAK,IAAI,MAAM,mBAAmB,IAAI,EAAE,CAAC;AAC5G,aAAO,QAAQ,QAAQ,MAAM,6BAA6B,IAAI,MAAOA,SAAQ,EAAE,IAAI,GAAG,GAAG,OAAO,IAAI,GAAG,KAAK,KAAK,EAAG,EAAE;AACtH,YAAMA,SAAQ,EAAE,IAAI,KAAK,IAAI,MAAM,mBAAmB,IAAI,EAAE;AAAA,IAC9D;AAAA,EACF;AAAA,EAEA,OAAO,cAEL,UACe;AACf,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,cAEL,SAA+B,CAAC,GACP;AACzB,WAAO,EAAE,GAAG,OAAO;AAAA,EACrB;AAAA,EAEA,gBAAkC;AAChC,IAAAD,UAAS,KAAK,YAAY,YAAY,MAAM,6CAA6C,KAAK,MAAM,GAAG;AACvG,SAAK,UAAU,SAAS;AAAA,EAC1B;AAAA,EAEA,gBAAgB,QAAmC;AACjD,WAAO,EAAE,GAAG,QAAQ,MAAM,OAAO,KAAK;AAAA,EACxC;AAAA,EAEA,KAAQ,MAAc,IAAgB;AACpC,WAAOE,UAAS,MAAM,IAAI,KAAK,MAAM;AAAA,EACvC;AAAA,EAEA,MAAM,UAAa,MAAc,IAAsB,SAAqB,CAAC,GAAe;AAC1F,WAAO,MAAMC,eAAc,MAAM,IAAI;AAAA,MACnC,GAAG;AAAA,MAAQ,QAAQ,OAAO,UAAU,KAAK;AAAA,MAAQ,QAAQ,OAAO,UAAU,KAAK;AAAA,IACjF,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,QAA0B;AAC9B,SAAK,YAAY,OAAO;AACxB,QAAI,KAAK,WAAW,WAAW;AAC7B,aAAO;AAAA,IACT;AACA,WAAO,MAAM,KAAK,aAAa,aAAa,YAAY;AACtD,UAAI;AAEF,YAAI,KAAK,WAAW,WAAW;AAC7B,iBAAO;AAAA,QACT;AACA,QAAAH,UAAS,KAAK,WAAW,MAAM,cAAc,KAAK,IAAI,iCAAiC,KAAK,MAAM,GAAG;AACrG,aAAK,UAAU,UAAU;AACzB,cAAM,KAAK,aAAa;AACxB,aAAK,UAAU,SAAS;AACxB,eAAO;AAAA,MACT,SAAS,IAAI;AACX,aAAK,UAAU,SAASC,SAAQ,EAAE,IAAI,KAAK,IAAI,MAAM,mBAAmB,EAAE,EAAE,CAAC;AAC7E,aAAK,QAAQ,MAAM,6BAA6B,KAAK,IAAI,MAAOA,SAAQ,EAAE,IAAI,GAAG,GAAG,OAAO,IAAI,GAAG,KAAK,KAAK,EAAG,EAAE;AACjH,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,QAAQ,mBAAgE,OAAgB;AACtF,QAAIG,UAAS,KAAK,MAAM,KAAK,KAAK,WAAW,WAAW;AACtD,aAAO;AAAA,IACT,OAAO;AACL,YAAM,UAAU,MAAM,GAAGN,sBAAqB,KAAK,KAAK,IAAI,oBAAoB,KAAK,MAAM;AAC3F,cAAQ,kBAAkB;AAAA,QACxB,KAAK,SAAS;AACZ,gBAAM,IAAI,MAAM,QAAQ,CAAC;AAAA,QAC3B;AAAA,QACA,KAAK,SAAS;AACZ,gBAAM,IAAI,MAAM,QAAQ,CAAC;AAAA,QAC3B;AAAA,QACA,KAAK,QAAQ;AACX,eAAK,QAAQ,KAAK,QAAQ,CAAC;AAC3B;AAAA,QACF;AAAA,QACA,KAAK,OAAO;AACV,eAAK,QAAQ,IAAI,QAAQ,CAAC;AAC1B;AAAA,QACF;AAAA,QACA,KAAK,QAAQ;AACX;AAAA,QACF;AAAA,QACA,SAAS;AACP,gBAAM,IAAI,MAAM,6BAA6B,gBAAgB,EAAE;AAAA,QACjE;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,MAAM,aAAa,mBAAgE,OAAO,WAAW,MAAwB;AAC3H,QAAIM,UAAS,KAAK,MAAM,KAAK,KAAK,WAAW,WAAW;AACtD,aAAO;AAAA,IACT,WAAW,KAAK,WAAW,aAAa,KAAK,WAAW,aAAa,KAAK,WAAW,YAAY;AAE/F,WAAK,gBAAgB,KAAK,kBAAkB,YAAY;AACtD,YAAI,UAAU;AACZ,cAAI;AACF,mBAAO,MAAM,KAAK,MAAM;AAAA,UAC1B,UAAE;AACA,iBAAK,gBAAgB;AAAA,UACvB;AAAA,QACF;AACA,eAAO,KAAK,QAAQ,gBAAgB;AAAA,MACtC,GAAG;AAAA,IACL,OAAO;AACL,YAAM,UAAU,GAAGN,sBAAqB,KAAK,KAAK,IAAI,oBAAoB,KAAK,MAAM;AACrF,YAAM,IAAI,MAAM,OAAO;AAAA,IACzB;AAEA,QAAIO,aAAY,KAAK,aAAa,GAAG;AACnC,YAAM,IAAI,MAAM,mCAAmC,KAAK,MAAM,EAAE;AAAA,IAClE;AACA,WAAO,MAAM,KAAK;AAAA,EACpB;AAAA,EAEA,MAAM,OAAyB;AAC7B,SAAK,YAAY,MAAM;AACvB,QAAI,KAAK,WAAW,WAAW;AAC7B,aAAO;AAAA,IACT;AACA,WAAO,MAAM,KAAK,aAAa,aAAa,YAAY;AACtD,UAAI;AAEF,YAAI,KAAK,WAAW,WAAW;AAC7B,iBAAO;AAAA,QACT;AACA,QAAAL,UAAS,KAAK,WAAW,WAAW,MAAM,cAAc,KAAK,IAAI,iCAAiC,KAAK,MAAM,GAAG;AAChH,aAAK,UAAU,UAAU;AACzB,cAAM,KAAK,YAAY;AACvB,aAAK,UAAU,SAAS;AACxB,eAAO;AAAA,MACT,SAAS,IAAI;AACX,aAAK,UAAU,SAASC,SAAQ,EAAE,IAAI,KAAK,IAAI,MAAM,mBAAmB,EAAE,EAAE,CAAC;AAC7E,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEU,YAAY,eAAe,gBAAgB,CAAC,GAAG;AAEvD,UAAM,WAAY,KAAa,YAAY;AAE3C,UAAM,WAAW,gBAAgB,MAAM,YAAY;AACnD,IAAAD,UAAS,aAAa,UAAU,MAAM,6BAA6B,YAAY,gBAAgB,YAAY,iBAAiB;AAAA,EAC9H;AAAA,EAIU,UAAU,OAA0B,iBAAwC;AACpF,SAAK,UAAU;AACf,QAAI,UAAU,MAAM;AAClB,UAAI,UAAU,SAAS;AACrB,YAAIC,SAAQ,eAAe,GAAG;AAC5B,eAAK,gBAAgB,OAAO,KAAK,MAAM,OAAO,eAAe;AAC7D;AAAA,QACF;AAAA,MACF,OAAO;AACL,YAAIK,UAAS,eAAe,GAAG;AAC7B,eAAK,gBAAgB,OAAO,KAAK,MAAM,OAAO,eAAe;AAC7D;AAAA,QACF;AAAA,MACF;AACA,WAAK,gBAAgB,OAAO,KAAK,MAAM,KAAK;AAAA,IAC9C;AAAA,EACF;AAAA,EAEU,eAAiC;AAAA,EAE3C;AAAA,EAEU,cAAgC;AAAA,EAE1C;AACF;AAEO,IAAe,iCAAf,cAC6C,oBAAyC;AAAA,EAC3F,OAAO,QAEL,QACA,QACuB;AACvB,WAAO,UAAU,WAAc,MAAM,QAAQ,MAAM;AAAA,EACrD;AACF;;;AE9NO,SAAS,cAA6C;AAC3D,SAAO,CAA2B,gBAAmB;AAEnD;AAAA,EACF;AACF;AASO,SAAS,qBAAqB;AACnC,SAAO,CAA+B,gBAAmB;AAEvD;AAAA,EACF;AACF;;;AClEA,SAAS,sBAAsB;AAC/B,SAAS,8BAA8B;AACvC,OAAOC,QAAO;;;ACFd,SAAS,SAAS;AAEX,IAAM,4BAA4B,EAAE,KAAK,CAAC,YAAY,WAAW,YAAY,WAAW,YAAY,SAAS,CAAC;AAE9G,IAAM,0BAA0B,EAAE,KAAK,CAAC,OAAO,CAAC;AAEhD,IAAM,qBAAqB,EAAE,MAAM,CAAC,2BAA2B,uBAAuB,CAAC;AAEvF,IAAM,+BAA+B,EAAE,OAAO;AAAA,EACnD,QAAQ,EAAE,MAAM;AAAA,IACd,EAAE,SAAS;AAAA,MACT,OAAO,EAAE,MAAM;AAAA,QACb,EAAE,MAAM;AAAA,UACN,EAAE,OAAO;AAAA,UACT;AAAA,UACA,EAAE,OAAO,EAAE,SAAS;AAAA,QACtB,CAAC;AAAA,QACD,EAAE,MAAM;AAAA,UACN,EAAE,OAAO;AAAA,UACT;AAAA,UACA,EAAE,WAAW,KAAK;AAAA,QACpB,CAAC;AAAA,QACD,EAAE,MAAM;AAAA,UACN,EAAE,OAAO;AAAA,UACT;AAAA,QACF,CAAC;AAAA,MACH,CAAC;AAAA,MACD,QAAQ,EAAE,KAAK;AAAA,IACjB,CAAC;AAAA,EACH,CAAC;AACH,CAAC;;;ADxBM,IAAM,sBAAsB,eAAe,OAAO,EAAE,gBAAgB,6BAA6B,SAAS,EAAE,CAAC;AAE7G,IAAM,uBAAuB,uBAAuB,OAAO,EAAE,SAAS,qBAAqB,MAAMC,GAAE,OAAO,EAAE,CAAC;;;AEmB7G,IAAM,eAAe,CAAC,QAAiB,aAA+B;AAC3E,MAAI,CAAC,SAAU,QAAO;AACtB,SAAO,OAAO,QAAQ,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM;AACtD,WAAO,QAAQ,eAAe,GAA0B,KAAK,SAAS,GAA0B,MAAM;AAAA,EACxG,CAAC;AACH;","names":["isNumber","creatable","isNumber","assertEx","spanRoot","spanRootAsync","isError","isNumber","isString","isUndefined","Mutex","creatable","AbstractCreatableConstructorKey","CREATABLE_NOT_STARTED","Mutex","assertEx","isError","spanRoot","spanRootAsync","isString","isUndefined","isNumber","z","z"]}
1
+ {"version":3,"sources":["../../src/AbstractCreatable.ts","../../src/Creatable.ts","../../src/Factory.ts","../../src/lib/getFunctionName.ts","../../src/lib/getRootFunction.ts","../../src/model/Labels.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport type { EventData } from '@xylabs/events'\nimport { BaseEmitter } from '@xylabs/events'\nimport { type Logger } from '@xylabs/logger'\nimport type { Promisable } from '@xylabs/promise'\nimport {\n SpanConfig, spanRoot, spanRootAsync,\n} from '@xylabs/telemetry'\nimport {\n isError, isNumber, isString,\n isUndefined,\n} from '@xylabs/typeof'\nimport { Mutex } from 'async-mutex'\n\nimport {\n type Creatable, creatable, CreatableFactory,\n} from './Creatable.ts'\nimport { Factory } from './Factory.ts'\nimport { getFunctionName, getRootFunction } from './lib/index.ts'\nimport type {\n CreatableInstance, CreatableName, CreatableParams,\n CreatableStatus,\n Labels,\n RequiredCreatableParams,\n} from './model/index.ts'\n\nconst AbstractCreatableConstructorKey = Symbol.for('AbstractCreatableConstructor')\nconst CREATABLE_NOT_STARTED = 'Creatable not Started' as const\n\n@creatable()\nexport class AbstractCreatable<TParams extends CreatableParams = CreatableParams,\n TEventData extends EventData = EventData> extends BaseEmitter<Partial<TParams & RequiredCreatableParams>, TEventData> {\n defaultLogger?: Logger\n\n protected _startPromise: Promisable<boolean> | undefined\n private _status: CreatableStatus | null = null\n private _statusMutex = new Mutex()\n private _validatedParams?: TParams & RequiredCreatableParams\n\n constructor(key: unknown, params: Partial<TParams & RequiredCreatableParams>) {\n assertEx(key === AbstractCreatableConstructorKey, () => 'AbstractCreatable should not be instantiated directly, use the static create method instead')\n super(params)\n }\n\n get name(): CreatableName {\n return this.params.name as CreatableName\n }\n\n override get params(): TParams & RequiredCreatableParams {\n this._validatedParams = this._validatedParams ?? this.paramsValidator(super.params)\n return this._validatedParams\n }\n\n get startable() {\n return this.status === 'created' || this.status === 'stopped'\n }\n\n get status(): CreatableStatus | null {\n return this._status\n }\n\n get statusReporter() {\n return this.params.statusReporter\n }\n\n static async create<T extends CreatableInstance>(\n this: Creatable<T>,\n inParams: Partial<T['params']> = {},\n ): Promise<T> {\n const params = await this.paramsHandler(inParams)\n const name: CreatableName = params.name ?? this.name as CreatableName\n try {\n const instance = new this(AbstractCreatableConstructorKey, params)\n instance.setStatus('creating')\n const initializedInstance = await this.createHandler(instance)\n await instance.createHandler()\n instance.setStatus('created')\n return initializedInstance\n } catch (ex) {\n params.statusReporter?.report(name, 'error', isError(ex) ? ex : new Error(`Error creating: ${name}`))\n params.logger?.error(`Error creating creatable [${name}]: ${(isError(ex) ? `${ex.message} ${ex.stack}` : ex)}`)\n throw isError(ex) ? ex : new Error(`Error creating: ${name}`)\n }\n }\n\n static createHandler<T extends CreatableInstance>(\n this: Creatable<T>,\n instance: T,\n ): Promisable<T> {\n return instance\n }\n\n static paramsHandler<T extends CreatableInstance>(\n this: Creatable<T>,\n params: Partial<T['params']> = {},\n ): Promisable<T['params']> {\n return { ...params }\n }\n\n createHandler(): Promisable<void> {\n assertEx(this._status === 'creating', () => `createHandler can not be called [status = ${this.status}]`)\n }\n\n paramsValidator(params: Partial<TParams & RequiredCreatableParams>): TParams & RequiredCreatableParams {\n return { ...params, name: params.name } as TParams & RequiredCreatableParams\n }\n\n span<T>(name: string, fn: () => T): T {\n return spanRoot(name, fn, this.tracer)\n }\n\n async spanAsync<T>(name: string, fn: () => Promise<T>, config: SpanConfig = {}): Promise<T> {\n return await spanRootAsync(name, fn, {\n ...config, tracer: config.tracer ?? this.tracer, logger: config.logger ?? this.defaultLogger,\n })\n }\n\n async start(): Promise<boolean> {\n this._noOverride('start')\n if (this.status === 'started') {\n return true\n }\n return await this._statusMutex.runExclusive(async () => {\n try {\n // check again in case it changed\n if (this.status === 'started') {\n return true\n }\n assertEx(this.startable, () => `Creatable [${this.name}] is not startable in status [${this.status}]`)\n this.setStatus('starting')\n await this.startHandler()\n this.setStatus('started')\n return true\n } catch (ex) {\n this.setStatus('error', isError(ex) ? ex : new Error(`Error starting: ${ex}`))\n this.logger?.error(`Error starting creatable [${this.name}]: ${(isError(ex) ? `${ex.message} ${ex.stack}` : ex)}`)\n return false\n }\n })\n }\n\n started(notStartedAction: 'error' | 'throw' | 'warn' | 'log' | 'none' = 'log'): boolean {\n if (isString(this.status) && this.status === 'started') {\n return true\n } else {\n const message = () => `${CREATABLE_NOT_STARTED} [${this.name}] current state: ${this.status}`\n switch (notStartedAction) {\n case 'error': {\n throw new Error(message())\n }\n case 'throw': {\n throw new Error(message())\n }\n case 'warn': {\n this.logger?.warn(message())\n break\n }\n case 'log': {\n this.logger?.log(message())\n break\n }\n case 'none': {\n break\n }\n default: {\n throw new Error(`Unknown notStartedAction: ${notStartedAction}`)\n }\n }\n return false\n }\n }\n\n async startedAsync(notStartedAction: 'error' | 'throw' | 'warn' | 'log' | 'none' = 'log', tryStart = true): Promise<boolean> {\n if (isString(this.status) && this.status === 'started') {\n return true\n } else if (this.status === 'created' || this.status === 'stopped' || this.status === 'starting') {\n // using promise as mutex\n this._startPromise = this._startPromise ?? (async () => {\n if (tryStart) {\n try {\n return await this.start()\n } finally {\n this._startPromise = undefined\n }\n }\n return this.started(notStartedAction)\n })()\n } else {\n const message = `${CREATABLE_NOT_STARTED} [${this.name}] current state: ${this.status}`\n throw new Error(message)\n }\n\n if (isUndefined(this._startPromise)) {\n throw new Error(`Failed to create start promise: ${this.status}`)\n }\n return await this._startPromise\n }\n\n async stop(): Promise<boolean> {\n this._noOverride('stop')\n if (this.status === 'stopped') {\n return true\n }\n return await this._statusMutex.runExclusive(async () => {\n try {\n // check again in case it changed\n if (this.status === 'stopped') {\n return true\n }\n assertEx(this.status === 'started', () => `Creatable [${this.name}] is not stoppable in status [${this.status}]`)\n this.setStatus('stopping')\n await this.stopHandler()\n this.setStatus('stopped')\n return true\n } catch (ex) {\n this.setStatus('error', isError(ex) ? ex : new Error(`Error stopping: ${ex}`))\n return false\n }\n })\n }\n\n protected _noOverride(functionName = getFunctionName(3)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const thisFunc = (this as any)[functionName]\n\n const rootFunc = getRootFunction(this, functionName)\n assertEx(thisFunc === rootFunc, () => `Override not allowed for [${functionName}] - override ${functionName}Handler instead`)\n }\n\n protected setStatus(value: Exclude<CreatableStatus, 'error'>, progress?: number): void\n protected setStatus(value: Extract<CreatableStatus, 'error'>, error?: Error): void\n protected setStatus(value: CreatableStatus, progressOrError?: number | Error): void {\n this._status = value\n if (value !== null) {\n if (value === 'error') {\n if (isError(progressOrError)) {\n this.statusReporter?.report(this.name, value, progressOrError)\n return\n }\n } else {\n if (isNumber(progressOrError)) {\n this.statusReporter?.report(this.name, value, progressOrError)\n return\n }\n }\n this.statusReporter?.report(this.name, value)\n }\n }\n\n protected startHandler(): Promisable<void> {\n // when overriding this, throw an error on failure\n }\n\n protected stopHandler(): Promisable<void> {\n // when overriding this, throw an error on failure\n }\n}\n\n@creatable()\nexport class AbstractCreatableWithFactory<TParams extends CreatableParams = CreatableParams,\n TEventData extends EventData = EventData> extends AbstractCreatable<TParams, TEventData> {\n static factory<T extends CreatableInstance>(\n this: Creatable<T>,\n params?: Partial<T['params']>,\n labels?: Labels,\n ): CreatableFactory<T> {\n return Factory.withParams<T>(this, params, labels)\n }\n}\n","import type { Logger } from '@xylabs/logger'\nimport type { Promisable } from '@xylabs/promise'\n\nimport type { AbstractCreatable } from './AbstractCreatable.ts'\nimport type {\n CreatableInstance, CreatableParams, Labels,\n RequiredCreatableParams,\n} from './model/index.ts'\n\nexport interface CreatableFactory<T extends CreatableInstance = CreatableInstance>\n extends Omit<Creatable<T>, 'create' | 'createHandler' | 'paramsHandler' | 'defaultLogger' | 'factory'> {\n\n create(\n this: CreatableFactory<T>,\n params?: Partial<T['params']>): Promise<T>\n}\n\nexport interface Creatable<T extends CreatableInstance = CreatableInstance> {\n\n defaultLogger?: Logger\n\n new(key: unknown, params: Partial<CreatableParams>): T & AbstractCreatable<T['params']>\n\n create<T extends CreatableInstance>(\n this: Creatable<T>,\n params?: Partial<T['params']>): Promise<T>\n\n createHandler<T extends CreatableInstance>(\n this: Creatable<T>,\n instance: T\n ): Promisable<T>\n\n paramsHandler<T extends CreatableInstance>(\n this: Creatable<T>, params?: Partial<T['params']>): Promisable<T['params'] & RequiredCreatableParams>\n}\n\nexport interface CreatableWithFactory<T extends CreatableInstance = CreatableInstance> extends Creatable<T> {\n factory<T extends CreatableInstance>(\n this: Creatable<T>,\n params?: Partial<T['params']>,\n labels?: Labels): CreatableFactory<T>\n}\n\n/**\n * Class annotation to be used to decorate Modules which support\n * an asynchronous creation pattern\n * @returns The decorated Module requiring it implement the members\n * of the CreatableModule as statics properties/methods\n */\nexport function creatable<T extends CreatableInstance>() {\n return <U extends Creatable<T>>(constructor: U) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n constructor\n }\n}\n\n/**\n * Class annotation to be used to decorate Modules which support\n * an asynchronous creation factory pattern\n * @returns The decorated Module requiring it implement the members\n * of the CreatableModule as statics properties/methods\n */\n\nexport function creatableFactory() {\n return <U extends CreatableFactory>(constructor: U) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n constructor\n }\n}\n","import { type Creatable, type CreatableFactory } from './Creatable.ts'\nimport type {\n CreatableInstance, Labels, WithOptionalLabels,\n} from './model/index.ts'\n\nexport class Factory<T extends CreatableInstance = CreatableInstance> implements CreatableFactory<T> {\n creatable: Creatable<T>\n\n defaultParams?: Partial<T['params']>\n\n labels?: Labels\n\n constructor(\n creatable: Creatable<T>,\n params?: Partial<T['params']>,\n labels: Labels = {},\n ) {\n this.creatable = creatable\n this.defaultParams = params\n this.labels = Object.assign({}, (creatable as WithOptionalLabels).labels ?? {}, labels ?? {})\n }\n\n static withParams<T extends CreatableInstance>(\n creatableModule: Creatable<T>,\n params?: Partial<T['params']>,\n labels: Labels = {},\n ) {\n return new Factory<T>(creatableModule, params, labels)\n }\n\n create(params?: Partial<T['params']>): Promise<T> {\n const mergedParams: T['params'] = {\n ...this.defaultParams,\n ...params,\n } as T['params']\n return this.creatable.create<T>(mergedParams)\n }\n}\n","import { isNumber } from '@xylabs/typeof'\n\nexport function getFunctionName(depth = 2) {\n const error = new Error('Stack')\n let newIndex: number | undefined\n const stackParts = error.stack?.split('\\n')[depth]?.split(' ')\n const funcName\n = stackParts?.find((item, index) => {\n if (item.length > 0 && item !== 'at') {\n // check if constructor\n if (item === 'new') {\n newIndex = index\n }\n return true\n }\n }) ?? '<unknown>'\n return isNumber(newIndex) ? `${funcName} ${stackParts?.[newIndex + 1]}` : funcName\n}\n","export function getRootFunction(obj: unknown, funcName: string) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let anyObj = obj as any\n while (anyObj.__proto__?.[funcName]) {\n anyObj = anyObj.__proto__\n }\n return anyObj[funcName]\n}\n","/**\n * Object used to represent labels identifying a resource.\n */\nexport interface Labels {\n [key: string]: string | undefined\n}\n\n/**\n * Interface for objects that have labels.\n */\nexport interface WithLabels<T extends Labels = Labels> {\n labels: T\n}\n\n/**\n * Interface for objects that have labels.\n */\nexport interface WithOptionalLabels<T extends Labels = Labels> {\n labels?: T\n}\n\n/**\n * Returns true if the source object has all the labels from the required set\n * @param source Source object to check against\n * @param required Set of labels to check for in source\n * @returns True of the source object has all the labels from the required set\n */\nexport const hasAllLabels = (source?: Labels, required?: Labels): boolean => {\n if (!required) return true\n return Object.entries(required).every(([key, value]) => {\n return source?.hasOwnProperty(key as keyof typeof source) && source?.[key as keyof typeof source] === value\n })\n}\n"],"mappings":"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","names":["isNumber","creatable","isNumber"]}
@@ -1,6 +1,5 @@
1
1
  import type { EventData, EventEmitter } from '@xylabs/events';
2
- import type { CreatableName } from './CreatableName.ts';
3
- import type { CreatableParams } from './CreatableParams.ts';
2
+ import type { CreatableName, CreatableParams } from './CreatableParams.ts';
4
3
  export interface CreatableInstance<TParams extends CreatableParams = CreatableParams, TEventData extends EventData = EventData> extends EventEmitter<TEventData> {
5
4
  eventData: TEventData;
6
5
  name: CreatableName;
@@ -1 +1 @@
1
- {"version":3,"file":"CreatableInstance.d.ts","sourceRoot":"","sources":["../../../src/model/CreatableInstance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE3D,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,eAAe,GAAG,eAAe,EAClF,UAAU,SAAS,SAAS,GAAG,SAAS,CAAE,SAAQ,YAAY,CAAC,UAAU,CAAC;IAC1E,SAAS,EAAE,UAAU,CAAA;IACrB,IAAI,EAAE,aAAa,CAAA;IACnB,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7B,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;CAC7B"}
1
+ {"version":3,"file":"CreatableInstance.d.ts","sourceRoot":"","sources":["../../../src/model/CreatableInstance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE1E,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,eAAe,GAAG,eAAe,EAClF,UAAU,SAAS,SAAS,GAAG,SAAS,CAAE,SAAQ,YAAY,CAAC,UAAU,CAAC;IAC1E,SAAS,EAAE,UAAU,CAAA;IACrB,IAAI,EAAE,aAAa,CAAA;IACnB,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7B,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;CAC7B"}
@@ -1,6 +1,7 @@
1
+ import type { BaseClassName } from '@xylabs/base';
1
2
  import type { BaseEmitterParams } from '@xylabs/events';
2
- import type { CreatableName } from './CreatableName.ts';
3
3
  import type { CreatableStatus, CreatableStatusReporter } from './CreatableStatusReporter.ts';
4
+ export type CreatableName = Exclude<string, 'creatable-name-reserved-32546239486'> & BaseClassName;
4
5
  export interface RequiredCreatableParams<TAdditionalStatus extends CreatableStatus | void = void> extends BaseEmitterParams {
5
6
  name?: CreatableName;
6
7
  statusReporter?: CreatableStatusReporter<TAdditionalStatus>;
@@ -1 +1 @@
1
- {"version":3,"file":"CreatableParams.d.ts","sourceRoot":"","sources":["../../../src/model/CreatableParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAE5F,MAAM,WAAW,uBAAuB,CAAC,iBAAiB,SAAS,eAAe,GAAG,IAAI,GAAG,IAAI,CAAE,SAAQ,iBAAiB;IACzH,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,cAAc,CAAC,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,CAAA;CAC5D;AAED,MAAM,WAAW,eAAgB,SAAQ,uBAAuB,EAAE,iBAAiB;CAAG"}
1
+ {"version":3,"file":"CreatableParams.d.ts","sourceRoot":"","sources":["../../../src/model/CreatableParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAE5F,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,qCAAqC,CAAC,GAAG,aAAa,CAAA;AAElG,MAAM,WAAW,uBAAuB,CAAC,iBAAiB,SAAS,eAAe,GAAG,IAAI,GAAG,IAAI,CAAE,SAAQ,iBAAiB;IACzH,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,cAAc,CAAC,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,CAAA;CAC5D;AAED,MAAM,WAAW,eAAgB,SAAQ,uBAAuB,EAAE,iBAAiB;CAAG"}
@@ -1,12 +1,9 @@
1
- import type { CreatableName } from './CreatableName.ts';
2
- /** @deprecated use CreatableStatusReporterV2 instead */
1
+ import type { BaseClassName } from '@xylabs/base';
3
2
  export type StandardCreatableStatus = 'creating' | 'created' | 'starting' | 'started' | 'stopping' | 'stopped' | 'error';
4
- /** @deprecated use CreatableStatusReporterV2 instead */
5
3
  export type CreatableStatus<TAdditionalStatus extends void | string = void> = StandardCreatableStatus | (TAdditionalStatus extends void ? StandardCreatableStatus : TAdditionalStatus);
6
- /** @deprecated use CreatableStatusReporterV2 instead */
7
4
  export interface CreatableStatusReporter<TAdditionalStatus extends void | string = void> {
8
- report(name: CreatableName, status: Exclude<CreatableStatus<TAdditionalStatus>, 'error'>, progress: number): void;
9
- report(name: CreatableName, status: Extract<CreatableStatus<TAdditionalStatus>, 'error'>, error: Error): void;
10
- report(name: CreatableName, status: CreatableStatus<TAdditionalStatus>): void;
5
+ report(name: BaseClassName, status: Exclude<CreatableStatus<TAdditionalStatus>, 'error'>, progress: number): void;
6
+ report(name: BaseClassName, status: Extract<CreatableStatus<TAdditionalStatus>, 'error'>, error: Error): void;
7
+ report(name: BaseClassName, status: CreatableStatus<TAdditionalStatus>): void;
11
8
  }
12
9
  //# sourceMappingURL=CreatableStatusReporter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreatableStatusReporter.d.ts","sourceRoot":"","sources":["../../../src/model/CreatableStatusReporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,wDAAwD;AACxD,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAA;AAExH,wDAAwD;AACxD,MAAM,MAAM,eAAe,CAAC,iBAAiB,SAAS,IAAI,GAAG,MAAM,GAAG,IAAI,IACtE,uBAAuB,GAAG,CAAC,iBAAiB,SAAS,IAAI,GAAG,uBAAuB,GAAG,iBAAiB,CAAC,CAAA;AAE5G,wDAAwD;AACxD,MAAM,WAAW,uBAAuB,CAAC,iBAAiB,SAAS,IAAI,GAAG,MAAM,GAAG,IAAI;IACrF,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACjH,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IAC7G,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAA;CAC9E"}
1
+ {"version":3,"file":"CreatableStatusReporter.d.ts","sourceRoot":"","sources":["../../../src/model/CreatableStatusReporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjD,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAA;AACxH,MAAM,MAAM,eAAe,CAAC,iBAAiB,SAAS,IAAI,GAAG,MAAM,GAAG,IAAI,IACtE,uBAAuB,GAAG,CAAC,iBAAiB,SAAS,IAAI,GAAG,uBAAuB,GAAG,iBAAiB,CAAC,CAAA;AAE5G,MAAM,WAAW,uBAAuB,CAAC,iBAAiB,SAAS,IAAI,GAAG,MAAM,GAAG,IAAI;IACrF,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACjH,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IAC7G,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAA;CAC9E"}
@@ -1,10 +1,5 @@
1
1
  export * from './CreatableInstance.ts';
2
- export * from './CreatableInstanceV2.ts';
3
- export * from './CreatableName.ts';
4
2
  export * from './CreatableParams.ts';
5
- export * from './CreatableParamsV2.ts';
6
3
  export * from './CreatableStatusReporter.ts';
7
- export * from './CreatableStatusReporter.zod.ts';
8
- export * from './CreatableStatusReporterV2.ts';
9
4
  export * from './Labels.ts';
10
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,kCAAkC,CAAA;AAChD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,aAAa,CAAA"}