@adaas/a-utils 0.3.5 → 0.3.6

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 (39) hide show
  1. package/dist/browser/a-service.mjs +12 -12
  2. package/dist/browser/a-service.mjs.map +1 -1
  3. package/dist/browser/a-signal.d.mts +34 -9
  4. package/dist/browser/a-signal.mjs +66 -7
  5. package/dist/browser/a-signal.mjs.map +1 -1
  6. package/dist/node/{A-Signal.types-P5VKMKMs.d.mts → A-Signal.types-C0Ta5Unp.d.mts} +6 -6
  7. package/dist/node/{A-Signal.types-P5VKMKMs.d.ts → A-Signal.types-C0Ta5Unp.d.ts} +6 -6
  8. package/dist/node/lib/A-Service/A-Service.container.js +12 -12
  9. package/dist/node/lib/A-Service/A-Service.container.js.map +1 -1
  10. package/dist/node/lib/A-Service/A-Service.container.mjs +12 -12
  11. package/dist/node/lib/A-Service/A-Service.container.mjs.map +1 -1
  12. package/dist/node/lib/A-Signal/A-Signal.types.d.mts +1 -1
  13. package/dist/node/lib/A-Signal/A-Signal.types.d.ts +1 -1
  14. package/dist/node/lib/A-Signal/components/A-SignalBus.component.d.mts +1 -1
  15. package/dist/node/lib/A-Signal/components/A-SignalBus.component.d.ts +1 -1
  16. package/dist/node/lib/A-Signal/context/A-SignalConfig.context.d.mts +1 -1
  17. package/dist/node/lib/A-Signal/context/A-SignalConfig.context.d.ts +1 -1
  18. package/dist/node/lib/A-Signal/context/A-SignalState.context.d.mts +1 -1
  19. package/dist/node/lib/A-Signal/context/A-SignalState.context.d.ts +1 -1
  20. package/dist/node/lib/A-Signal/entities/A-Signal.entity.d.mts +1 -1
  21. package/dist/node/lib/A-Signal/entities/A-Signal.entity.d.ts +1 -1
  22. package/dist/node/lib/A-Signal/entities/A-Signal.entity.js +1 -1
  23. package/dist/node/lib/A-Signal/entities/A-Signal.entity.js.map +1 -1
  24. package/dist/node/lib/A-Signal/entities/A-Signal.entity.mjs +1 -1
  25. package/dist/node/lib/A-Signal/entities/A-Signal.entity.mjs.map +1 -1
  26. package/dist/node/lib/A-Signal/entities/A-SignalVector.entity.d.mts +29 -4
  27. package/dist/node/lib/A-Signal/entities/A-SignalVector.entity.d.ts +29 -4
  28. package/dist/node/lib/A-Signal/entities/A-SignalVector.entity.js +64 -5
  29. package/dist/node/lib/A-Signal/entities/A-SignalVector.entity.js.map +1 -1
  30. package/dist/node/lib/A-Signal/entities/A-SignalVector.entity.mjs +65 -6
  31. package/dist/node/lib/A-Signal/entities/A-SignalVector.entity.mjs.map +1 -1
  32. package/dist/node/lib/A-Signal/index.d.mts +1 -1
  33. package/dist/node/lib/A-Signal/index.d.ts +1 -1
  34. package/package.json +3 -3
  35. package/src/lib/A-Service/A-Service.container.ts +12 -12
  36. package/src/lib/A-Signal/A-Signal.types.ts +2 -2
  37. package/src/lib/A-Signal/entities/A-Signal.entity.ts +9 -8
  38. package/src/lib/A-Signal/entities/A-SignalVector.entity.ts +80 -11
  39. package/tests/A-Signal.test.ts +11 -11
@@ -13,7 +13,7 @@ import { A_Entity, A_TYPES__Entity_Serialized, A_TYPES__Entity_Constructor } fro
13
13
  * Signals are typically used in scenarios where the current state is more important than individual events,
14
14
  * such as monitoring systems, real-time dashboards, or stateful applications.
15
15
  */
16
- declare class A_Signal<_TSignalDataType extends Record<string, any> = Record<string, any>> extends A_Entity<A_Signal_Init<_TSignalDataType>, A_Signal_Serialized<_TSignalDataType>> {
16
+ declare class A_Signal<_TSignalDataType extends any = any, _TSignalSerializedDataType extends any = _TSignalDataType> extends A_Entity<A_Signal_Init<_TSignalDataType>, A_Signal_Serialized<_TSignalSerializedDataType>> {
17
17
  /**
18
18
  * Allows to define default data for the signal.
19
19
  *
@@ -21,7 +21,7 @@ declare class A_Signal<_TSignalDataType extends Record<string, any> = Record<str
21
21
  *
22
22
  * @returns
23
23
  */
24
- static default(): Promise<A_Signal | undefined>;
24
+ static default(): A_Signal | undefined;
25
25
  /**
26
26
  * The actual data carried by the signal.
27
27
  */
@@ -54,9 +54,9 @@ declare class A_Signal<_TSignalDataType extends Record<string, any> = Record<str
54
54
  * @returns
55
55
  */
56
56
  compare(other: A_Signal<_TSignalDataType>): boolean;
57
- fromJSON(serializedEntity: A_Signal_Serialized<_TSignalDataType>): void;
57
+ fromJSON(serializedEntity: A_Signal_Serialized<_TSignalSerializedDataType>): void;
58
58
  fromNew(newEntity: A_Signal_Init<_TSignalDataType>): void;
59
- toJSON(): A_Signal_Serialized<_TSignalDataType>;
59
+ toJSON(): A_Signal_Serialized<_TSignalSerializedDataType>;
60
60
  }
61
61
 
62
62
  type A_SignalConfig_Init<TSignals extends Array<A_Signal> = Array<A_Signal>> = {
@@ -88,7 +88,7 @@ type A_SignalVector_Serialized = A_TYPES__Entity_Serialized & {
88
88
  structure: string[];
89
89
  values: Array<Record<string, any>>;
90
90
  } & A_TYPES__Entity_Serialized;
91
- type A_Signal_Init<T extends Record<string, any> = Record<string, any>> = {
91
+ type A_Signal_Init<T extends any = any> = {
92
92
  /**
93
93
  * Possible signal id
94
94
  *
@@ -104,7 +104,7 @@ type A_Signal_Init<T extends Record<string, any> = Record<string, any>> = {
104
104
  */
105
105
  data: T;
106
106
  };
107
- type A_Signal_Serialized<T extends Record<string, any> = Record<string, any>> = {
107
+ type A_Signal_Serialized<T extends any = any> = {
108
108
  /**
109
109
  * The signal data
110
110
  */
@@ -13,7 +13,7 @@ import { A_Entity, A_TYPES__Entity_Serialized, A_TYPES__Entity_Constructor } fro
13
13
  * Signals are typically used in scenarios where the current state is more important than individual events,
14
14
  * such as monitoring systems, real-time dashboards, or stateful applications.
15
15
  */
16
- declare class A_Signal<_TSignalDataType extends Record<string, any> = Record<string, any>> extends A_Entity<A_Signal_Init<_TSignalDataType>, A_Signal_Serialized<_TSignalDataType>> {
16
+ declare class A_Signal<_TSignalDataType extends any = any, _TSignalSerializedDataType extends any = _TSignalDataType> extends A_Entity<A_Signal_Init<_TSignalDataType>, A_Signal_Serialized<_TSignalSerializedDataType>> {
17
17
  /**
18
18
  * Allows to define default data for the signal.
19
19
  *
@@ -21,7 +21,7 @@ declare class A_Signal<_TSignalDataType extends Record<string, any> = Record<str
21
21
  *
22
22
  * @returns
23
23
  */
24
- static default(): Promise<A_Signal | undefined>;
24
+ static default(): A_Signal | undefined;
25
25
  /**
26
26
  * The actual data carried by the signal.
27
27
  */
@@ -54,9 +54,9 @@ declare class A_Signal<_TSignalDataType extends Record<string, any> = Record<str
54
54
  * @returns
55
55
  */
56
56
  compare(other: A_Signal<_TSignalDataType>): boolean;
57
- fromJSON(serializedEntity: A_Signal_Serialized<_TSignalDataType>): void;
57
+ fromJSON(serializedEntity: A_Signal_Serialized<_TSignalSerializedDataType>): void;
58
58
  fromNew(newEntity: A_Signal_Init<_TSignalDataType>): void;
59
- toJSON(): A_Signal_Serialized<_TSignalDataType>;
59
+ toJSON(): A_Signal_Serialized<_TSignalSerializedDataType>;
60
60
  }
61
61
 
62
62
  type A_SignalConfig_Init<TSignals extends Array<A_Signal> = Array<A_Signal>> = {
@@ -88,7 +88,7 @@ type A_SignalVector_Serialized = A_TYPES__Entity_Serialized & {
88
88
  structure: string[];
89
89
  values: Array<Record<string, any>>;
90
90
  } & A_TYPES__Entity_Serialized;
91
- type A_Signal_Init<T extends Record<string, any> = Record<string, any>> = {
91
+ type A_Signal_Init<T extends any = any> = {
92
92
  /**
93
93
  * Possible signal id
94
94
  *
@@ -104,7 +104,7 @@ type A_Signal_Init<T extends Record<string, any> = Record<string, any>> = {
104
104
  */
105
105
  data: T;
106
106
  };
107
- type A_Signal_Serialized<T extends Record<string, any> = Record<string, any>> = {
107
+ type A_Signal_Serialized<T extends any = any> = {
108
108
  /**
109
109
  * The signal data
110
110
  */
@@ -25,9 +25,9 @@ exports.A_Service = class A_Service extends aConcept.A_Container {
25
25
  */
26
26
  async load() {
27
27
  try {
28
- await this.call(AService_constants.A_ServiceFeatures.onBeforeLoad);
29
- await this.call(AService_constants.A_ServiceFeatures.onLoad);
30
- await this.call(AService_constants.A_ServiceFeatures.onAfterLoad);
28
+ await this.call(AService_constants.A_ServiceFeatures.onBeforeLoad, this.scope);
29
+ await this.call(AService_constants.A_ServiceFeatures.onLoad, this.scope);
30
+ await this.call(AService_constants.A_ServiceFeatures.onAfterLoad, this.scope);
31
31
  } catch (error) {
32
32
  let wrappedError;
33
33
  switch (true) {
@@ -46,7 +46,7 @@ exports.A_Service = class A_Service extends aConcept.A_Container {
46
46
  break;
47
47
  }
48
48
  this.scope.register(wrappedError);
49
- await this.call(AService_constants.A_ServiceFeatures.onError);
49
+ await this.call(AService_constants.A_ServiceFeatures.onError, this.scope);
50
50
  }
51
51
  }
52
52
  /**
@@ -54,9 +54,9 @@ exports.A_Service = class A_Service extends aConcept.A_Container {
54
54
  */
55
55
  async start() {
56
56
  try {
57
- await this.call(AService_constants.A_ServiceFeatures.onBeforeStart);
58
- await this.call(AService_constants.A_ServiceFeatures.onStart);
59
- await this.call(AService_constants.A_ServiceFeatures.onAfterStart);
57
+ await this.call(AService_constants.A_ServiceFeatures.onBeforeStart, this.scope);
58
+ await this.call(AService_constants.A_ServiceFeatures.onStart, this.scope);
59
+ await this.call(AService_constants.A_ServiceFeatures.onAfterStart, this.scope);
60
60
  } catch (error) {
61
61
  let wrappedError;
62
62
  switch (true) {
@@ -75,7 +75,7 @@ exports.A_Service = class A_Service extends aConcept.A_Container {
75
75
  break;
76
76
  }
77
77
  this.scope.register(wrappedError);
78
- await this.call(AService_constants.A_ServiceFeatures.onError);
78
+ await this.call(AService_constants.A_ServiceFeatures.onError, this.scope);
79
79
  }
80
80
  }
81
81
  /**
@@ -83,9 +83,9 @@ exports.A_Service = class A_Service extends aConcept.A_Container {
83
83
  */
84
84
  async stop() {
85
85
  try {
86
- await this.call(AService_constants.A_ServiceFeatures.onBeforeStop);
87
- await this.call(AService_constants.A_ServiceFeatures.onStop);
88
- await this.call(AService_constants.A_ServiceFeatures.onAfterStop);
86
+ await this.call(AService_constants.A_ServiceFeatures.onBeforeStop, this.scope);
87
+ await this.call(AService_constants.A_ServiceFeatures.onStop, this.scope);
88
+ await this.call(AService_constants.A_ServiceFeatures.onAfterStop, this.scope);
89
89
  } catch (error) {
90
90
  let wrappedError;
91
91
  switch (true) {
@@ -104,7 +104,7 @@ exports.A_Service = class A_Service extends aConcept.A_Container {
104
104
  break;
105
105
  }
106
106
  this.scope.register(wrappedError);
107
- await this.call(AService_constants.A_ServiceFeatures.onError);
107
+ await this.call(AService_constants.A_ServiceFeatures.onError, this.scope);
108
108
  }
109
109
  }
110
110
  async [_j = AService_constants.A_ServiceFeatures.onBeforeLoad](polyfill, ...args) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/A-Service/A-Service.container.ts"],"names":["A_Service","A_Container","A_ServiceFeatures","A_Service_Error","A_Error","A_Polyfill","A_Concept","A_Feature","A_Logger","A_Frame"],"mappings":"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","file":"A-Service.container.js","sourcesContent":["import { A_Concept, A_Container, A_Error, A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { A_ServiceFeatures } from \"./A-Service.constants\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { A_Service_Error } from \"./A-Service.error\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport { A_Polyfill } from '@adaas/a-utils/a-polyfill';\n\n\n\n/**\n * A-Service is a container that can run different types of services, such as HTTP servers, workers, etc.\n * Depending on the provided config and configuration, it will load the necessary components and start the service.\n * \n */\n@A_Frame.Container({\n namespace: 'A-Utils',\n name: 'A-Service',\n description: 'Service container that manages the lifecycle of various types of services, such as HTTP servers and workers or UI loader. It dynamically loads necessary components based on the provided configuration and orchestrates the start and stop processes, ensuring proper error handling and extensibility through feature hooks.'\n})\nexport class A_Service extends A_Container {\n\n\n @A_Concept.Load()\n /**\n * Load the service\n */\n async load() {\n try {\n await this.call(A_ServiceFeatures.onBeforeLoad);\n\n await this.call(A_ServiceFeatures.onLoad);\n\n await this.call(A_ServiceFeatures.onAfterLoad);\n\n } catch (error) {\n\n let wrappedError;\n\n switch (true) {\n case error instanceof A_Service_Error:\n wrappedError = error;\n break;\n\n case error instanceof A_Error && error.originalError instanceof A_Service_Error:\n wrappedError = error.originalError;\n break;\n\n default:\n wrappedError = new A_Service_Error({\n title: A_Service_Error.ServiceLoadError,\n description: 'An error occurred while processing the request.',\n originalError: error\n })\n break;\n }\n\n this.scope.register(wrappedError);\n\n await this.call(A_ServiceFeatures.onError);\n }\n\n }\n\n\n @A_Concept.Start()\n /**\n * Start the server\n */\n async start() {\n try {\n await this.call(A_ServiceFeatures.onBeforeStart);\n\n await this.call(A_ServiceFeatures.onStart);\n\n await this.call(A_ServiceFeatures.onAfterStart);\n\n } catch (error) {\n\n let wrappedError;\n\n switch (true) {\n case error instanceof A_Service_Error:\n wrappedError = error;\n break;\n\n case error instanceof A_Error && error.originalError instanceof A_Service_Error:\n wrappedError = error.originalError;\n break;\n\n default:\n wrappedError = new A_Service_Error({\n title: A_Service_Error.ServiceStartError,\n description: 'An error occurred while processing the request.',\n originalError: error\n })\n break;\n }\n\n this.scope.register(wrappedError);\n\n await this.call(A_ServiceFeatures.onError);\n }\n\n }\n\n @A_Concept.Stop()\n /**\n * Stop the server\n */\n async stop() {\n try {\n await this.call(A_ServiceFeatures.onBeforeStop);\n\n await this.call(A_ServiceFeatures.onStop);\n\n await this.call(A_ServiceFeatures.onAfterStop);\n\n } catch (error) {\n\n let wrappedError;\n\n switch (true) {\n case error instanceof A_Service_Error:\n wrappedError = error;\n break;\n\n case error instanceof A_Error && error.originalError instanceof A_Service_Error:\n wrappedError = error.originalError;\n break;\n\n default:\n wrappedError = new A_Service_Error({\n title: A_Service_Error.ServiceStopError,\n description: 'An error occurred while processing the request.',\n originalError: error\n })\n break;\n }\n\n this.scope.register(wrappedError);\n\n await this.call(A_ServiceFeatures.onError);\n }\n }\n\n\n\n\n // ======================================================================================\n // ============================= A-Service Lifecycle =================================\n // ======================================================================================\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onBeforeLoad](\n @A_Inject(A_Polyfill) polyfill: A_Polyfill,\n ...args: any[]\n ): Promise<void> {\n // Initialize Polyfill\n if (!polyfill) {\n this.scope.register(A_Polyfill);\n polyfill = this.scope.resolve(A_Polyfill)!\n }\n }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onLoad](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterLoad](...args: any[]) { }\n\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onBeforeStart](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onStart](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterStart](...args: any[]) { }\n\n\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onBeforeStop](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onStop](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterStop](...args: any[]) { }\n\n\n\n @A_Feature.Extend({\n before: /.*/\n })\n protected async [A_ServiceFeatures.onError](\n @A_Inject(A_Error) error: A_Error,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ) {\n logger?.error(error);\n }\n\n}\n\n\n\n\n\n\n\n\n"]}
1
+ {"version":3,"sources":["../../../../src/lib/A-Service/A-Service.container.ts"],"names":["A_Service","A_Container","A_ServiceFeatures","A_Service_Error","A_Error","A_Polyfill","A_Concept","A_Feature","A_Logger","A_Frame"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAmBaA,iBAAA,GAAN,wBAAwBC,oBAAA,CAAY;AAAA;AAAA;AAAA;AAAA,EAOvC,MAAM,IAAA,GAAO;AACT,IAAA,IAAI;AACA,MAAA,MAAM,IAAA,CAAK,IAAA,CAAKC,oCAAA,CAAkB,YAAA,EAAc,KAAK,KAAK,CAAA;AAE1D,MAAA,MAAM,IAAA,CAAK,IAAA,CAAKA,oCAAA,CAAkB,MAAA,EAAQ,KAAK,KAAK,CAAA;AAEpD,MAAA,MAAM,IAAA,CAAK,IAAA,CAAKA,oCAAA,CAAkB,WAAA,EAAa,KAAK,KAAK,CAAA;AAAA,IAE7D,SAAS,KAAA,EAAO;AAEZ,MAAA,IAAI,YAAA;AAEJ,MAAA,QAAQ,IAAA;AAAM,QACV,KAAK,KAAA,YAAiBC,8BAAA;AAClB,UAAA,YAAA,GAAe,KAAA;AACf,UAAA;AAAA,QAEJ,MAAK,KAAA,YAAiBC,gBAAA,IAAW,KAAA,CAAM,aAAA,YAAyBD,8BAAA;AAC5D,UAAA,YAAA,GAAe,KAAA,CAAM,aAAA;AACrB,UAAA;AAAA,QAEJ;AACI,UAAA,YAAA,GAAe,IAAIA,8BAAA,CAAgB;AAAA,YAC/B,OAAOA,8BAAA,CAAgB,gBAAA;AAAA,YACvB,WAAA,EAAa,iDAAA;AAAA,YACb,aAAA,EAAe;AAAA,WAClB,CAAA;AACD,UAAA;AAAA;AAGR,MAAA,IAAA,CAAK,KAAA,CAAM,SAAS,YAAY,CAAA;AAEhC,MAAA,MAAM,IAAA,CAAK,IAAA,CAAKD,oCAAA,CAAkB,OAAA,EAAS,KAAK,KAAK,CAAA;AAAA,IACzD;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,KAAA,GAAQ;AACV,IAAA,IAAI;AACA,MAAA,MAAM,IAAA,CAAK,IAAA,CAAKA,oCAAA,CAAkB,aAAA,EAAe,KAAK,KAAK,CAAA;AAE3D,MAAA,MAAM,IAAA,CAAK,IAAA,CAAKA,oCAAA,CAAkB,OAAA,EAAS,KAAK,KAAK,CAAA;AAErD,MAAA,MAAM,IAAA,CAAK,IAAA,CAAKA,oCAAA,CAAkB,YAAA,EAAc,KAAK,KAAK,CAAA;AAAA,IAE9D,SAAS,KAAA,EAAO;AAEZ,MAAA,IAAI,YAAA;AAEJ,MAAA,QAAQ,IAAA;AAAM,QACV,KAAK,KAAA,YAAiBC,8BAAA;AAClB,UAAA,YAAA,GAAe,KAAA;AACf,UAAA;AAAA,QAEJ,MAAK,KAAA,YAAiBC,gBAAA,IAAW,KAAA,CAAM,aAAA,YAAyBD,8BAAA;AAC5D,UAAA,YAAA,GAAe,KAAA,CAAM,aAAA;AACrB,UAAA;AAAA,QAEJ;AACI,UAAA,YAAA,GAAe,IAAIA,8BAAA,CAAgB;AAAA,YAC/B,OAAOA,8BAAA,CAAgB,iBAAA;AAAA,YACvB,WAAA,EAAa,iDAAA;AAAA,YACb,aAAA,EAAe;AAAA,WAClB,CAAA;AACD,UAAA;AAAA;AAGR,MAAA,IAAA,CAAK,KAAA,CAAM,SAAS,YAAY,CAAA;AAEhC,MAAA,MAAM,IAAA,CAAK,IAAA,CAAKD,oCAAA,CAAkB,OAAA,EAAS,KAAK,KAAK,CAAA;AAAA,IACzD;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,IAAA,GAAO;AACT,IAAA,IAAI;AACA,MAAA,MAAM,IAAA,CAAK,IAAA,CAAKA,oCAAA,CAAkB,YAAA,EAAc,KAAK,KAAK,CAAA;AAE1D,MAAA,MAAM,IAAA,CAAK,IAAA,CAAKA,oCAAA,CAAkB,MAAA,EAAQ,KAAK,KAAK,CAAA;AAEpD,MAAA,MAAM,IAAA,CAAK,IAAA,CAAKA,oCAAA,CAAkB,WAAA,EAAa,KAAK,KAAK,CAAA;AAAA,IAE7D,SAAS,KAAA,EAAO;AAEZ,MAAA,IAAI,YAAA;AAEJ,MAAA,QAAQ,IAAA;AAAM,QACV,KAAK,KAAA,YAAiBC,8BAAA;AAClB,UAAA,YAAA,GAAe,KAAA;AACf,UAAA;AAAA,QAEJ,MAAK,KAAA,YAAiBC,gBAAA,IAAW,KAAA,CAAM,aAAA,YAAyBD,8BAAA;AAC5D,UAAA,YAAA,GAAe,KAAA,CAAM,aAAA;AACrB,UAAA;AAAA,QAEJ;AACI,UAAA,YAAA,GAAe,IAAIA,8BAAA,CAAgB;AAAA,YAC/B,OAAOA,8BAAA,CAAgB,gBAAA;AAAA,YACvB,WAAA,EAAa,iDAAA;AAAA,YACb,aAAA,EAAe;AAAA,WAClB,CAAA;AACD,UAAA;AAAA;AAGR,MAAA,IAAA,CAAK,KAAA,CAAM,SAAS,YAAY,CAAA;AAEhC,MAAA,MAAM,IAAA,CAAK,IAAA,CAAKD,oCAAA,CAAkB,OAAA,EAAS,KAAK,KAAK,CAAA;AAAA,IACzD;AAAA,EACJ;AAAA,EAUA,OAAiB,EAAA,GAAAA,oCAAA,CAAkB,YAAY,CAAA,CACrB,aACnB,IAAA,EACU;AAEb,IAAA,IAAI,CAAC,QAAA,EAAU;AACX,MAAA,IAAA,CAAK,KAAA,CAAM,SAASG,oBAAU,CAAA;AAC9B,MAAA,QAAA,GAAW,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQA,oBAAU,CAAA;AAAA,IAC5C;AAAA,EACJ;AAAA,EAGA,OAAiB,EAAA,GAAAH,oCAAA,CAAkB,MAAM,CAAA,CAAA,GAAK,IAAA,EAAa;AAAA,EAAE;AAAA,EAG7D,OAAiB,EAAA,GAAAA,oCAAA,CAAkB,WAAW,CAAA,CAAA,GAAK,IAAA,EAAa;AAAA,EAAE;AAAA,EAIlE,OAAiB,EAAA,GAAAA,oCAAA,CAAkB,aAAa,CAAA,CAAA,GAAK,IAAA,EAAa;AAAA,EAAE;AAAA,EAGpE,OAAiB,EAAA,GAAAA,oCAAA,CAAkB,OAAO,CAAA,CAAA,GAAK,IAAA,EAAa;AAAA,EAAE;AAAA,EAG9D,OAAkB,EAAA,GAAAA,oCAAA,CAAkB,YAAY,CAAA,CAAA,GAAK,IAAA,EAAa;AAAA,EAAE;AAAA,EAKpE,OAAiB,EAAA,GAAAA,oCAAA,CAAkB,YAAY,CAAA,CAAA,GAAK,IAAA,EAAa;AAAA,EAAE;AAAA,EAGnE,OAAiB,EAAA,GAAAA,oCAAA,CAAkB,MAAM,CAAA,CAAA,GAAK,IAAA,EAAa;AAAA,EAAE;AAAA,EAG7D,OAAiB,EAAA,GAAAA,oCAAA,CAAkB,WAAW,CAAA,CAAA,GAAK,IAAA,EAAa;AAAA,EAAE;AAAA,EAOlE,OAAiB,EAAA,GAAAA,oCAAA,CAAkB,OAAO,CAAA,CACnB,KAAA,EACC,WACjB,IAAA,EACL;AACE,IAAA,MAAA,EAAQ,MAAM,KAAK,CAAA;AAAA,EACvB;AAEJ;AAlLU,eAAA,CAAA;AAAA,EAJLI,mBAAU,IAAA;AAAK,CAAA,EAHPN,iBAAA,CAOH,SAAA,EAAA,MAAA,EAAA,CAAA,CAAA;AA0CA,eAAA,CAAA;AAAA,EAJLM,mBAAU,KAAA;AAAM,CAAA,EA7CRN,iBAAA,CAiDH,SAAA,EAAA,OAAA,EAAA,CAAA,CAAA;AAyCA,eAAA,CAAA;AAAA,EAJLM,mBAAU,IAAA;AAAK,CAAA,EAtFPN,iBAAA,CA0FH,SAAA,EAAA,MAAA,EAAA,CAAA,CAAA;AA4CW,eAAA,CAAA;AAAA,EADhBO,mBAAU,MAAA,EAAO;AAAA,EAEb,qCAASF,oBAAU,CAAA;AAAA,CAAA,EAvIfL,iBAAA,CAsIQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAYA,eAAA,CAAA;AAAA,EADhBO,mBAAU,MAAA;AAAO,CAAA,EAjJTP,iBAAA,CAkJQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADhBO,mBAAU,MAAA;AAAO,CAAA,EApJTP,iBAAA,CAqJQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EADhBO,mBAAU,MAAA;AAAO,CAAA,EAxJTP,iBAAA,CAyJQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADhBO,mBAAU,MAAA;AAAO,CAAA,EA3JTP,iBAAA,CA4JQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAGC,eAAA,CAAA;AAAA,EADjBO,mBAAU,MAAA;AAAO,CAAA,EA9JTP,iBAAA,CA+JS,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAKD,eAAA,CAAA;AAAA,EADhBO,mBAAU,MAAA;AAAO,CAAA,EAnKTP,iBAAA,CAoKQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADhBO,mBAAU,MAAA;AAAO,CAAA,EAtKTP,iBAAA,CAuKQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADhBO,mBAAU,MAAA;AAAO,CAAA,EAzKTP,iBAAA,CA0KQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAOA,eAAA,CAAA;AAAA,EAHhBO,mBAAU,MAAA,CAAO;AAAA,IACd,MAAA,EAAQ;AAAA,GACX,CAAA;AAAA,EAEI,qCAASH,gBAAO,CAAA,CAAA;AAAA,EAChB,qCAASI,gBAAQ,CAAA;AAAA,CAAA,EAnLbR,iBAAA,CAiLQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAjLRA,iBAAA,GAAN,eAAA,CAAA;AAAA,EALNS,eAAQ,SAAA,CAAU;AAAA,IACf,SAAA,EAAW,SAAA;AAAA,IACX,IAAA,EAAM,WAAA;AAAA,IACN,WAAA,EAAa;AAAA,GAChB;AAAA,CAAA,EACYT,iBAAA,CAAA","file":"A-Service.container.js","sourcesContent":["import { A_Concept, A_Container, A_Error, A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { A_ServiceFeatures } from \"./A-Service.constants\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { A_Service_Error } from \"./A-Service.error\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport { A_Polyfill } from '@adaas/a-utils/a-polyfill';\n\n\n\n/**\n * A-Service is a container that can run different types of services, such as HTTP servers, workers, etc.\n * Depending on the provided config and configuration, it will load the necessary components and start the service.\n * \n */\n@A_Frame.Container({\n namespace: 'A-Utils',\n name: 'A-Service',\n description: 'Service container that manages the lifecycle of various types of services, such as HTTP servers and workers or UI loader. It dynamically loads necessary components based on the provided configuration and orchestrates the start and stop processes, ensuring proper error handling and extensibility through feature hooks.'\n})\nexport class A_Service extends A_Container {\n\n\n @A_Concept.Load()\n /**\n * Load the service\n */\n async load() {\n try {\n await this.call(A_ServiceFeatures.onBeforeLoad, this.scope);\n\n await this.call(A_ServiceFeatures.onLoad, this.scope);\n\n await this.call(A_ServiceFeatures.onAfterLoad, this.scope);\n\n } catch (error) {\n\n let wrappedError;\n\n switch (true) {\n case error instanceof A_Service_Error:\n wrappedError = error;\n break;\n\n case error instanceof A_Error && error.originalError instanceof A_Service_Error:\n wrappedError = error.originalError;\n break;\n\n default:\n wrappedError = new A_Service_Error({\n title: A_Service_Error.ServiceLoadError,\n description: 'An error occurred while processing the request.',\n originalError: error\n })\n break;\n }\n\n this.scope.register(wrappedError);\n\n await this.call(A_ServiceFeatures.onError, this.scope);\n }\n\n }\n\n\n @A_Concept.Start()\n /**\n * Start the server\n */\n async start() {\n try {\n await this.call(A_ServiceFeatures.onBeforeStart, this.scope);\n\n await this.call(A_ServiceFeatures.onStart, this.scope);\n\n await this.call(A_ServiceFeatures.onAfterStart, this.scope);\n\n } catch (error) {\n\n let wrappedError;\n\n switch (true) {\n case error instanceof A_Service_Error:\n wrappedError = error;\n break;\n\n case error instanceof A_Error && error.originalError instanceof A_Service_Error:\n wrappedError = error.originalError;\n break;\n\n default:\n wrappedError = new A_Service_Error({\n title: A_Service_Error.ServiceStartError,\n description: 'An error occurred while processing the request.',\n originalError: error\n })\n break;\n }\n\n this.scope.register(wrappedError);\n\n await this.call(A_ServiceFeatures.onError, this.scope);\n }\n\n }\n\n @A_Concept.Stop()\n /**\n * Stop the server\n */\n async stop() {\n try {\n await this.call(A_ServiceFeatures.onBeforeStop, this.scope);\n\n await this.call(A_ServiceFeatures.onStop, this.scope);\n\n await this.call(A_ServiceFeatures.onAfterStop, this.scope);\n\n } catch (error) {\n\n let wrappedError;\n\n switch (true) {\n case error instanceof A_Service_Error:\n wrappedError = error;\n break;\n\n case error instanceof A_Error && error.originalError instanceof A_Service_Error:\n wrappedError = error.originalError;\n break;\n\n default:\n wrappedError = new A_Service_Error({\n title: A_Service_Error.ServiceStopError,\n description: 'An error occurred while processing the request.',\n originalError: error\n })\n break;\n }\n\n this.scope.register(wrappedError);\n\n await this.call(A_ServiceFeatures.onError, this.scope);\n }\n }\n\n\n\n\n // ======================================================================================\n // ============================= A-Service Lifecycle =================================\n // ======================================================================================\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onBeforeLoad](\n @A_Inject(A_Polyfill) polyfill: A_Polyfill,\n ...args: any[]\n ): Promise<void> {\n // Initialize Polyfill\n if (!polyfill) {\n this.scope.register(A_Polyfill);\n polyfill = this.scope.resolve(A_Polyfill)!\n }\n }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onLoad](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterLoad](...args: any[]) { }\n\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onBeforeStart](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onStart](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterStart](...args: any[]) { }\n\n\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onBeforeStop](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onStop](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterStop](...args: any[]) { }\n\n\n\n @A_Feature.Extend({\n before: /.*/\n })\n protected async [A_ServiceFeatures.onError](\n @A_Inject(A_Error) error: A_Error,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ) {\n logger?.error(error);\n }\n\n}\n\n\n\n\n\n\n\n\n"]}
@@ -13,9 +13,9 @@ let A_Service = class extends A_Container {
13
13
  */
14
14
  async load() {
15
15
  try {
16
- await this.call(A_ServiceFeatures.onBeforeLoad);
17
- await this.call(A_ServiceFeatures.onLoad);
18
- await this.call(A_ServiceFeatures.onAfterLoad);
16
+ await this.call(A_ServiceFeatures.onBeforeLoad, this.scope);
17
+ await this.call(A_ServiceFeatures.onLoad, this.scope);
18
+ await this.call(A_ServiceFeatures.onAfterLoad, this.scope);
19
19
  } catch (error) {
20
20
  let wrappedError;
21
21
  switch (true) {
@@ -34,7 +34,7 @@ let A_Service = class extends A_Container {
34
34
  break;
35
35
  }
36
36
  this.scope.register(wrappedError);
37
- await this.call(A_ServiceFeatures.onError);
37
+ await this.call(A_ServiceFeatures.onError, this.scope);
38
38
  }
39
39
  }
40
40
  /**
@@ -42,9 +42,9 @@ let A_Service = class extends A_Container {
42
42
  */
43
43
  async start() {
44
44
  try {
45
- await this.call(A_ServiceFeatures.onBeforeStart);
46
- await this.call(A_ServiceFeatures.onStart);
47
- await this.call(A_ServiceFeatures.onAfterStart);
45
+ await this.call(A_ServiceFeatures.onBeforeStart, this.scope);
46
+ await this.call(A_ServiceFeatures.onStart, this.scope);
47
+ await this.call(A_ServiceFeatures.onAfterStart, this.scope);
48
48
  } catch (error) {
49
49
  let wrappedError;
50
50
  switch (true) {
@@ -63,7 +63,7 @@ let A_Service = class extends A_Container {
63
63
  break;
64
64
  }
65
65
  this.scope.register(wrappedError);
66
- await this.call(A_ServiceFeatures.onError);
66
+ await this.call(A_ServiceFeatures.onError, this.scope);
67
67
  }
68
68
  }
69
69
  /**
@@ -71,9 +71,9 @@ let A_Service = class extends A_Container {
71
71
  */
72
72
  async stop() {
73
73
  try {
74
- await this.call(A_ServiceFeatures.onBeforeStop);
75
- await this.call(A_ServiceFeatures.onStop);
76
- await this.call(A_ServiceFeatures.onAfterStop);
74
+ await this.call(A_ServiceFeatures.onBeforeStop, this.scope);
75
+ await this.call(A_ServiceFeatures.onStop, this.scope);
76
+ await this.call(A_ServiceFeatures.onAfterStop, this.scope);
77
77
  } catch (error) {
78
78
  let wrappedError;
79
79
  switch (true) {
@@ -92,7 +92,7 @@ let A_Service = class extends A_Container {
92
92
  break;
93
93
  }
94
94
  this.scope.register(wrappedError);
95
- await this.call(A_ServiceFeatures.onError);
95
+ await this.call(A_ServiceFeatures.onError, this.scope);
96
96
  }
97
97
  }
98
98
  async [_j = A_ServiceFeatures.onBeforeLoad](polyfill, ...args) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/A-Service/A-Service.container.ts"],"names":[],"mappings":"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","file":"A-Service.container.mjs","sourcesContent":["import { A_Concept, A_Container, A_Error, A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { A_ServiceFeatures } from \"./A-Service.constants\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { A_Service_Error } from \"./A-Service.error\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport { A_Polyfill } from '@adaas/a-utils/a-polyfill';\n\n\n\n/**\n * A-Service is a container that can run different types of services, such as HTTP servers, workers, etc.\n * Depending on the provided config and configuration, it will load the necessary components and start the service.\n * \n */\n@A_Frame.Container({\n namespace: 'A-Utils',\n name: 'A-Service',\n description: 'Service container that manages the lifecycle of various types of services, such as HTTP servers and workers or UI loader. It dynamically loads necessary components based on the provided configuration and orchestrates the start and stop processes, ensuring proper error handling and extensibility through feature hooks.'\n})\nexport class A_Service extends A_Container {\n\n\n @A_Concept.Load()\n /**\n * Load the service\n */\n async load() {\n try {\n await this.call(A_ServiceFeatures.onBeforeLoad);\n\n await this.call(A_ServiceFeatures.onLoad);\n\n await this.call(A_ServiceFeatures.onAfterLoad);\n\n } catch (error) {\n\n let wrappedError;\n\n switch (true) {\n case error instanceof A_Service_Error:\n wrappedError = error;\n break;\n\n case error instanceof A_Error && error.originalError instanceof A_Service_Error:\n wrappedError = error.originalError;\n break;\n\n default:\n wrappedError = new A_Service_Error({\n title: A_Service_Error.ServiceLoadError,\n description: 'An error occurred while processing the request.',\n originalError: error\n })\n break;\n }\n\n this.scope.register(wrappedError);\n\n await this.call(A_ServiceFeatures.onError);\n }\n\n }\n\n\n @A_Concept.Start()\n /**\n * Start the server\n */\n async start() {\n try {\n await this.call(A_ServiceFeatures.onBeforeStart);\n\n await this.call(A_ServiceFeatures.onStart);\n\n await this.call(A_ServiceFeatures.onAfterStart);\n\n } catch (error) {\n\n let wrappedError;\n\n switch (true) {\n case error instanceof A_Service_Error:\n wrappedError = error;\n break;\n\n case error instanceof A_Error && error.originalError instanceof A_Service_Error:\n wrappedError = error.originalError;\n break;\n\n default:\n wrappedError = new A_Service_Error({\n title: A_Service_Error.ServiceStartError,\n description: 'An error occurred while processing the request.',\n originalError: error\n })\n break;\n }\n\n this.scope.register(wrappedError);\n\n await this.call(A_ServiceFeatures.onError);\n }\n\n }\n\n @A_Concept.Stop()\n /**\n * Stop the server\n */\n async stop() {\n try {\n await this.call(A_ServiceFeatures.onBeforeStop);\n\n await this.call(A_ServiceFeatures.onStop);\n\n await this.call(A_ServiceFeatures.onAfterStop);\n\n } catch (error) {\n\n let wrappedError;\n\n switch (true) {\n case error instanceof A_Service_Error:\n wrappedError = error;\n break;\n\n case error instanceof A_Error && error.originalError instanceof A_Service_Error:\n wrappedError = error.originalError;\n break;\n\n default:\n wrappedError = new A_Service_Error({\n title: A_Service_Error.ServiceStopError,\n description: 'An error occurred while processing the request.',\n originalError: error\n })\n break;\n }\n\n this.scope.register(wrappedError);\n\n await this.call(A_ServiceFeatures.onError);\n }\n }\n\n\n\n\n // ======================================================================================\n // ============================= A-Service Lifecycle =================================\n // ======================================================================================\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onBeforeLoad](\n @A_Inject(A_Polyfill) polyfill: A_Polyfill,\n ...args: any[]\n ): Promise<void> {\n // Initialize Polyfill\n if (!polyfill) {\n this.scope.register(A_Polyfill);\n polyfill = this.scope.resolve(A_Polyfill)!\n }\n }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onLoad](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterLoad](...args: any[]) { }\n\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onBeforeStart](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onStart](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterStart](...args: any[]) { }\n\n\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onBeforeStop](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onStop](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterStop](...args: any[]) { }\n\n\n\n @A_Feature.Extend({\n before: /.*/\n })\n protected async [A_ServiceFeatures.onError](\n @A_Inject(A_Error) error: A_Error,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ) {\n logger?.error(error);\n }\n\n}\n\n\n\n\n\n\n\n\n"]}
1
+ {"version":3,"sources":["../../../../src/lib/A-Service/A-Service.container.ts"],"names":[],"mappings":"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","file":"A-Service.container.mjs","sourcesContent":["import { A_Concept, A_Container, A_Error, A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { A_ServiceFeatures } from \"./A-Service.constants\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { A_Service_Error } from \"./A-Service.error\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport { A_Polyfill } from '@adaas/a-utils/a-polyfill';\n\n\n\n/**\n * A-Service is a container that can run different types of services, such as HTTP servers, workers, etc.\n * Depending on the provided config and configuration, it will load the necessary components and start the service.\n * \n */\n@A_Frame.Container({\n namespace: 'A-Utils',\n name: 'A-Service',\n description: 'Service container that manages the lifecycle of various types of services, such as HTTP servers and workers or UI loader. It dynamically loads necessary components based on the provided configuration and orchestrates the start and stop processes, ensuring proper error handling and extensibility through feature hooks.'\n})\nexport class A_Service extends A_Container {\n\n\n @A_Concept.Load()\n /**\n * Load the service\n */\n async load() {\n try {\n await this.call(A_ServiceFeatures.onBeforeLoad, this.scope);\n\n await this.call(A_ServiceFeatures.onLoad, this.scope);\n\n await this.call(A_ServiceFeatures.onAfterLoad, this.scope);\n\n } catch (error) {\n\n let wrappedError;\n\n switch (true) {\n case error instanceof A_Service_Error:\n wrappedError = error;\n break;\n\n case error instanceof A_Error && error.originalError instanceof A_Service_Error:\n wrappedError = error.originalError;\n break;\n\n default:\n wrappedError = new A_Service_Error({\n title: A_Service_Error.ServiceLoadError,\n description: 'An error occurred while processing the request.',\n originalError: error\n })\n break;\n }\n\n this.scope.register(wrappedError);\n\n await this.call(A_ServiceFeatures.onError, this.scope);\n }\n\n }\n\n\n @A_Concept.Start()\n /**\n * Start the server\n */\n async start() {\n try {\n await this.call(A_ServiceFeatures.onBeforeStart, this.scope);\n\n await this.call(A_ServiceFeatures.onStart, this.scope);\n\n await this.call(A_ServiceFeatures.onAfterStart, this.scope);\n\n } catch (error) {\n\n let wrappedError;\n\n switch (true) {\n case error instanceof A_Service_Error:\n wrappedError = error;\n break;\n\n case error instanceof A_Error && error.originalError instanceof A_Service_Error:\n wrappedError = error.originalError;\n break;\n\n default:\n wrappedError = new A_Service_Error({\n title: A_Service_Error.ServiceStartError,\n description: 'An error occurred while processing the request.',\n originalError: error\n })\n break;\n }\n\n this.scope.register(wrappedError);\n\n await this.call(A_ServiceFeatures.onError, this.scope);\n }\n\n }\n\n @A_Concept.Stop()\n /**\n * Stop the server\n */\n async stop() {\n try {\n await this.call(A_ServiceFeatures.onBeforeStop, this.scope);\n\n await this.call(A_ServiceFeatures.onStop, this.scope);\n\n await this.call(A_ServiceFeatures.onAfterStop, this.scope);\n\n } catch (error) {\n\n let wrappedError;\n\n switch (true) {\n case error instanceof A_Service_Error:\n wrappedError = error;\n break;\n\n case error instanceof A_Error && error.originalError instanceof A_Service_Error:\n wrappedError = error.originalError;\n break;\n\n default:\n wrappedError = new A_Service_Error({\n title: A_Service_Error.ServiceStopError,\n description: 'An error occurred while processing the request.',\n originalError: error\n })\n break;\n }\n\n this.scope.register(wrappedError);\n\n await this.call(A_ServiceFeatures.onError, this.scope);\n }\n }\n\n\n\n\n // ======================================================================================\n // ============================= A-Service Lifecycle =================================\n // ======================================================================================\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onBeforeLoad](\n @A_Inject(A_Polyfill) polyfill: A_Polyfill,\n ...args: any[]\n ): Promise<void> {\n // Initialize Polyfill\n if (!polyfill) {\n this.scope.register(A_Polyfill);\n polyfill = this.scope.resolve(A_Polyfill)!\n }\n }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onLoad](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterLoad](...args: any[]) { }\n\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onBeforeStart](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onStart](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterStart](...args: any[]) { }\n\n\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onBeforeStop](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onStop](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterStop](...args: any[]) { }\n\n\n\n @A_Feature.Extend({\n before: /.*/\n })\n protected async [A_ServiceFeatures.onError](\n @A_Inject(A_Error) error: A_Error,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ) {\n logger?.error(error);\n }\n\n}\n\n\n\n\n\n\n\n\n"]}
@@ -1,2 +1,2 @@
1
1
  import '@adaas/a-concept';
2
- export { a as A_SignalConfig_Init, b as A_SignalTValue, c as A_SignalTValueArray, d as A_SignalVector_Init, e as A_SignalVector_Serialized, f as A_Signal_Init, g as A_Signal_Serialized, h as A_Signal_TSignalsConstructors } from '../../A-Signal.types-P5VKMKMs.mjs';
2
+ export { a as A_SignalConfig_Init, b as A_SignalTValue, c as A_SignalTValueArray, d as A_SignalVector_Init, e as A_SignalVector_Serialized, f as A_Signal_Init, g as A_Signal_Serialized, h as A_Signal_TSignalsConstructors } from '../../A-Signal.types-C0Ta5Unp.mjs';
@@ -1,2 +1,2 @@
1
1
  import '@adaas/a-concept';
2
- export { a as A_SignalConfig_Init, b as A_SignalTValue, c as A_SignalTValueArray, d as A_SignalVector_Init, e as A_SignalVector_Serialized, f as A_Signal_Init, g as A_Signal_Serialized, h as A_Signal_TSignalsConstructors } from '../../A-Signal.types-P5VKMKMs.js';
2
+ export { a as A_SignalConfig_Init, b as A_SignalTValue, c as A_SignalTValueArray, d as A_SignalVector_Init, e as A_SignalVector_Serialized, f as A_Signal_Init, g as A_Signal_Serialized, h as A_Signal_TSignalsConstructors } from '../../A-Signal.types-C0Ta5Unp.js';
@@ -1,7 +1,7 @@
1
1
  import { A_Component, A_Error, A_Scope } from '@adaas/a-concept';
2
2
  import { A_SignalState } from '../context/A-SignalState.context.mjs';
3
3
  import { A_SignalConfig } from '../context/A-SignalConfig.context.mjs';
4
- import { A as A_Signal } from '../../../A-Signal.types-P5VKMKMs.mjs';
4
+ import { A as A_Signal } from '../../../A-Signal.types-C0Ta5Unp.mjs';
5
5
  import { A_Logger } from '../../A-Logger/A-Logger.component.mjs';
6
6
  import { A_Config } from '../../A-Config/A-Config.context.mjs';
7
7
  import { A_SignalBusFeatures } from './A-SignalBus.constants.mjs';
@@ -1,7 +1,7 @@
1
1
  import { A_Component, A_Error, A_Scope } from '@adaas/a-concept';
2
2
  import { A_SignalState } from '../context/A-SignalState.context.js';
3
3
  import { A_SignalConfig } from '../context/A-SignalConfig.context.js';
4
- import { A as A_Signal } from '../../../A-Signal.types-P5VKMKMs.js';
4
+ import { A as A_Signal } from '../../../A-Signal.types-C0Ta5Unp.js';
5
5
  import { A_Logger } from '../../A-Logger/A-Logger.component.js';
6
6
  import { A_Config } from '../../A-Config/A-Config.context.js';
7
7
  import { A_SignalBusFeatures } from './A-SignalBus.constants.js';
@@ -1,5 +1,5 @@
1
1
  import { A_Fragment, A_TYPES__Entity_Constructor } from '@adaas/a-concept';
2
- import { A as A_Signal, a as A_SignalConfig_Init } from '../../../A-Signal.types-P5VKMKMs.mjs';
2
+ import { A as A_Signal, a as A_SignalConfig_Init } from '../../../A-Signal.types-C0Ta5Unp.mjs';
3
3
 
4
4
  /**
5
5
  * This component should dictate a structure of the vector for all signals within a given scope.
@@ -1,5 +1,5 @@
1
1
  import { A_Fragment, A_TYPES__Entity_Constructor } from '@adaas/a-concept';
2
- import { A as A_Signal, a as A_SignalConfig_Init } from '../../../A-Signal.types-P5VKMKMs.js';
2
+ import { A as A_Signal, a as A_SignalConfig_Init } from '../../../A-Signal.types-C0Ta5Unp.js';
3
3
 
4
4
  /**
5
5
  * This component should dictate a structure of the vector for all signals within a given scope.
@@ -1,5 +1,5 @@
1
1
  import { A_Fragment, A_TYPES__Component_Constructor } from '@adaas/a-concept';
2
- import { A as A_Signal } from '../../../A-Signal.types-P5VKMKMs.mjs';
2
+ import { A as A_Signal } from '../../../A-Signal.types-C0Ta5Unp.mjs';
3
3
  import { A_SignalVector } from '../entities/A-SignalVector.entity.mjs';
4
4
 
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  import { A_Fragment, A_TYPES__Component_Constructor } from '@adaas/a-concept';
2
- import { A as A_Signal } from '../../../A-Signal.types-P5VKMKMs.js';
2
+ import { A as A_Signal } from '../../../A-Signal.types-C0Ta5Unp.js';
3
3
  import { A_SignalVector } from '../entities/A-SignalVector.entity.js';
4
4
 
5
5
  /**
@@ -1,2 +1,2 @@
1
1
  import '@adaas/a-concept';
2
- export { A as A_Signal } from '../../../A-Signal.types-P5VKMKMs.mjs';
2
+ export { A as A_Signal } from '../../../A-Signal.types-C0Ta5Unp.mjs';
@@ -1,2 +1,2 @@
1
1
  import '@adaas/a-concept';
2
- export { A as A_Signal } from '../../../A-Signal.types-P5VKMKMs.js';
2
+ export { A as A_Signal } from '../../../A-Signal.types-C0Ta5Unp.js';
@@ -22,7 +22,7 @@ exports.A_Signal = class A_Signal extends aConcept.A_Entity {
22
22
  *
23
23
  * @returns
24
24
  */
25
- static async default() {
25
+ static default() {
26
26
  return void 0;
27
27
  }
28
28
  createHash(str) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/lib/A-Signal/entities/A-Signal.entity.ts"],"names":["A_Signal","A_Entity","A_Frame"],"mappings":"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","file":"A-Signal.entity.js","sourcesContent":["import { A_Entity, A_Scope } from \"@adaas/a-concept\";\nimport { A_Signal_Init, A_Signal_Serialized } from \"../A-Signal.types\";\nimport { A_Frame } from \"@adaas/a-frame\";\n\n/**\n * A Signal Entity is an individual signal instance that carries data.\n * Signals is a event types that uses for vectors of signals to be used for further processing. \n * \n * Comparing to standard events, signals should be used in case when the event impacts some \"state\" \n * and the state should be used instead of the event itself.\n * \n * For example, a signal can represent the current status of a user (online/offline/away), \n * while an event would represent a single action (user logged in/logged out).\n * \n * Signals are typically used in scenarios where the current state is more important than individual events, \n * such as monitoring systems, real-time dashboards, or stateful applications.\n */\n@A_Frame.Entity({\n namespace: 'A-Utils',\n name: 'A-Signal',\n description: 'A Signal Entity represents an individual signal instance that carries data, used for managing state within an application context. Signals are designed to reflect the current state rather than individual events, making them suitable for scenarios where state monitoring and real-time updates are essential.'\n})\nexport class A_Signal<\n _TSignalDataType extends Record<string, any> = Record<string, any>\n> extends A_Entity<A_Signal_Init<_TSignalDataType>, A_Signal_Serialized<_TSignalDataType>> {\n\n\n // ========================================================================\n // ========================== Static Methods ==============================\n // ========================================================================\n /**\n * Allows to define default data for the signal.\n * \n * If no data is provided during initialization, the default data will be used.\n * \n * @returns \n */\n static async default(): Promise<A_Signal | undefined> {\n return undefined;\n }\n\n // ========================================================================\n // ========================== Instance Properties ========================\n // ========================================================================\n\n /**\n * The actual data carried by the signal.\n */\n data!: _TSignalDataType;\n\n /**\n * Generates signal hash uses for comparison\n * \n * @param str \n */\n protected createHash(str?: string): string\n protected createHash(str?: undefined): string\n protected createHash(str?: Record<string, any>): string\n protected createHash(str?: Array<any>): string\n protected createHash(str?: number): string\n protected createHash(str?: boolean): string\n protected createHash(str?: null): string\n protected createHash(map?: Map<any, any>): string\n protected createHash(set?: Set<any>): string\n protected createHash(str?: any): string {\n let hashSource: string;\n\n if (str instanceof Map) {\n hashSource = JSON.stringify(Array.from(str.entries()));\n } else if (str instanceof Set) {\n hashSource = JSON.stringify(Array.from(str.values()));\n } else {\n switch (typeof str) {\n case 'string':\n hashSource = str;\n break;\n case 'undefined':\n hashSource = 'undefined';\n break;\n\n case 'object':\n if ('toJSON' in str)\n hashSource = JSON.stringify(str.toJSON());\n\n else\n hashSource = JSON.stringify(str);\n break;\n case 'number':\n hashSource = str.toString();\n break;\n case 'boolean':\n hashSource = str ? 'true' : 'false';\n break;\n case 'function':\n hashSource = str.toString();\n break;\n default:\n hashSource = String(str);\n }\n }\n\n let hash = 0, i, chr;\n for (i = 0; i < hashSource.length; i++) {\n chr = hashSource.charCodeAt(i);\n hash = ((hash << 5) - hash) + chr;\n hash |= 0; // Convert to 32bit integer\n }\n\n const hashString = hash.toString();\n\n return hashString;\n }\n\n /**\n * This method compares the current signal with another signal instance by deduplication ID\n * this id can be configured during initialization with the \"id\" property.\n * \n * example: \n * * const signalA = new A_Signal({ id: ['user-status', 'user123'], data: { status: 'online' } });\n * * const signalB = new A_Signal({ id: ['user-status', 'user123'], data: { status: 'offline' } });\n * \n * signalA.compare(signalB) // true because both signals have the same deduplication ID\n * \n * @param other \n * @returns \n */\n compare(other: A_Signal<_TSignalDataType>): boolean {\n if (this.aseid.id !== other.aseid.id) {\n return false;\n }\n\n return true;\n }\n \n\n\n fromJSON(serializedEntity: A_Signal_Serialized<_TSignalDataType>): void {\n super.fromJSON(serializedEntity);\n this.data = serializedEntity.data;\n }\n\n\n fromNew(newEntity: A_Signal_Init<_TSignalDataType>): void {\n this.data = newEntity.data;\n\n const identity = newEntity.id || {\n name: newEntity.name,\n data: this.data\n };\n\n const id = this.createHash(identity);\n\n this.aseid = this.generateASEID({\n entity: newEntity.name,\n id: id,\n });\n }\n\n\n toJSON(): A_Signal_Serialized<_TSignalDataType> {\n return {\n ...super.toJSON(),\n data: this.data\n };\n }\n\n}"]}
1
+ {"version":3,"sources":["../../../../../src/lib/A-Signal/entities/A-Signal.entity.ts"],"names":["A_Signal","A_Entity","A_Frame"],"mappings":"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","file":"A-Signal.entity.js","sourcesContent":["import { A_Entity, A_Scope } from \"@adaas/a-concept\";\nimport { A_Signal_Init, A_Signal_Serialized } from \"../A-Signal.types\";\nimport { A_Frame } from \"@adaas/a-frame\";\n\n/**\n * A Signal Entity is an individual signal instance that carries data.\n * Signals is a event types that uses for vectors of signals to be used for further processing. \n * \n * Comparing to standard events, signals should be used in case when the event impacts some \"state\" \n * and the state should be used instead of the event itself.\n * \n * For example, a signal can represent the current status of a user (online/offline/away), \n * while an event would represent a single action (user logged in/logged out).\n * \n * Signals are typically used in scenarios where the current state is more important than individual events, \n * such as monitoring systems, real-time dashboards, or stateful applications.\n */\n@A_Frame.Entity({\n namespace: 'A-Utils',\n name: 'A-Signal',\n description: 'A Signal Entity represents an individual signal instance that carries data, used for managing state within an application context. Signals are designed to reflect the current state rather than individual events, making them suitable for scenarios where state monitoring and real-time updates are essential.'\n})\nexport class A_Signal<\n _TSignalDataType extends any = any,\n _TSignalSerializedDataType extends any = _TSignalDataType,\n> extends A_Entity<A_Signal_Init<_TSignalDataType>, A_Signal_Serialized<_TSignalSerializedDataType>> {\n\n\n // ========================================================================\n // ========================== Static Methods ==============================\n // ========================================================================\n /**\n * Allows to define default data for the signal.\n * \n * If no data is provided during initialization, the default data will be used.\n * \n * @returns \n */\n static default(): A_Signal | undefined {\n return undefined;\n }\n\n // ========================================================================\n // ========================== Instance Properties ========================\n // ========================================================================\n\n /**\n * The actual data carried by the signal.\n */\n data!: _TSignalDataType;\n\n /**\n * Generates signal hash uses for comparison\n * \n * @param str \n */\n protected createHash(str?: string): string\n protected createHash(str?: undefined): string\n protected createHash(str?: Record<string, any>): string\n protected createHash(str?: Array<any>): string\n protected createHash(str?: number): string\n protected createHash(str?: boolean): string\n protected createHash(str?: null): string\n protected createHash(map?: Map<any, any>): string\n protected createHash(set?: Set<any>): string\n protected createHash(str?: any): string {\n let hashSource: string;\n\n if (str instanceof Map) {\n hashSource = JSON.stringify(Array.from(str.entries()));\n } else if (str instanceof Set) {\n hashSource = JSON.stringify(Array.from(str.values()));\n } else {\n switch (typeof str) {\n case 'string':\n hashSource = str;\n break;\n case 'undefined':\n hashSource = 'undefined';\n break;\n\n case 'object':\n if ('toJSON' in str)\n hashSource = JSON.stringify(str.toJSON());\n\n else\n hashSource = JSON.stringify(str);\n break;\n case 'number':\n hashSource = str.toString();\n break;\n case 'boolean':\n hashSource = str ? 'true' : 'false';\n break;\n case 'function':\n hashSource = str.toString();\n break;\n default:\n hashSource = String(str);\n }\n }\n\n let hash = 0, i, chr;\n for (i = 0; i < hashSource.length; i++) {\n chr = hashSource.charCodeAt(i);\n hash = ((hash << 5) - hash) + chr;\n hash |= 0; // Convert to 32bit integer\n }\n\n const hashString = hash.toString();\n\n return hashString;\n }\n\n /**\n * This method compares the current signal with another signal instance by deduplication ID\n * this id can be configured during initialization with the \"id\" property.\n * \n * example: \n * * const signalA = new A_Signal({ id: ['user-status', 'user123'], data: { status: 'online' } });\n * * const signalB = new A_Signal({ id: ['user-status', 'user123'], data: { status: 'offline' } });\n * \n * signalA.compare(signalB) // true because both signals have the same deduplication ID\n * \n * @param other \n * @returns \n */\n compare(other: A_Signal<_TSignalDataType>): boolean {\n if (this.aseid.id !== other.aseid.id) {\n return false;\n }\n\n return true;\n }\n\n\n\n fromJSON(serializedEntity: A_Signal_Serialized<_TSignalSerializedDataType>): void {\n super.fromJSON(serializedEntity);\n this.data = serializedEntity.data as unknown as _TSignalDataType;\n }\n\n\n fromNew(newEntity: A_Signal_Init<_TSignalDataType>): void {\n this.data = newEntity.data;\n\n const identity = newEntity.id || {\n name: newEntity.name,\n data: this.data\n };\n\n const id = this.createHash(identity);\n\n this.aseid = this.generateASEID({\n entity: newEntity.name,\n id: id,\n });\n }\n\n\n toJSON(): A_Signal_Serialized<_TSignalSerializedDataType> {\n return {\n ...super.toJSON(),\n data: this.data as unknown as _TSignalSerializedDataType\n };\n }\n\n}"]}
@@ -13,7 +13,7 @@ let A_Signal = class extends A_Entity {
13
13
  *
14
14
  * @returns
15
15
  */
16
- static async default() {
16
+ static default() {
17
17
  return void 0;
18
18
  }
19
19
  createHash(str) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/lib/A-Signal/entities/A-Signal.entity.ts"],"names":[],"mappings":"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","file":"A-Signal.entity.mjs","sourcesContent":["import { A_Entity, A_Scope } from \"@adaas/a-concept\";\nimport { A_Signal_Init, A_Signal_Serialized } from \"../A-Signal.types\";\nimport { A_Frame } from \"@adaas/a-frame\";\n\n/**\n * A Signal Entity is an individual signal instance that carries data.\n * Signals is a event types that uses for vectors of signals to be used for further processing. \n * \n * Comparing to standard events, signals should be used in case when the event impacts some \"state\" \n * and the state should be used instead of the event itself.\n * \n * For example, a signal can represent the current status of a user (online/offline/away), \n * while an event would represent a single action (user logged in/logged out).\n * \n * Signals are typically used in scenarios where the current state is more important than individual events, \n * such as monitoring systems, real-time dashboards, or stateful applications.\n */\n@A_Frame.Entity({\n namespace: 'A-Utils',\n name: 'A-Signal',\n description: 'A Signal Entity represents an individual signal instance that carries data, used for managing state within an application context. Signals are designed to reflect the current state rather than individual events, making them suitable for scenarios where state monitoring and real-time updates are essential.'\n})\nexport class A_Signal<\n _TSignalDataType extends Record<string, any> = Record<string, any>\n> extends A_Entity<A_Signal_Init<_TSignalDataType>, A_Signal_Serialized<_TSignalDataType>> {\n\n\n // ========================================================================\n // ========================== Static Methods ==============================\n // ========================================================================\n /**\n * Allows to define default data for the signal.\n * \n * If no data is provided during initialization, the default data will be used.\n * \n * @returns \n */\n static async default(): Promise<A_Signal | undefined> {\n return undefined;\n }\n\n // ========================================================================\n // ========================== Instance Properties ========================\n // ========================================================================\n\n /**\n * The actual data carried by the signal.\n */\n data!: _TSignalDataType;\n\n /**\n * Generates signal hash uses for comparison\n * \n * @param str \n */\n protected createHash(str?: string): string\n protected createHash(str?: undefined): string\n protected createHash(str?: Record<string, any>): string\n protected createHash(str?: Array<any>): string\n protected createHash(str?: number): string\n protected createHash(str?: boolean): string\n protected createHash(str?: null): string\n protected createHash(map?: Map<any, any>): string\n protected createHash(set?: Set<any>): string\n protected createHash(str?: any): string {\n let hashSource: string;\n\n if (str instanceof Map) {\n hashSource = JSON.stringify(Array.from(str.entries()));\n } else if (str instanceof Set) {\n hashSource = JSON.stringify(Array.from(str.values()));\n } else {\n switch (typeof str) {\n case 'string':\n hashSource = str;\n break;\n case 'undefined':\n hashSource = 'undefined';\n break;\n\n case 'object':\n if ('toJSON' in str)\n hashSource = JSON.stringify(str.toJSON());\n\n else\n hashSource = JSON.stringify(str);\n break;\n case 'number':\n hashSource = str.toString();\n break;\n case 'boolean':\n hashSource = str ? 'true' : 'false';\n break;\n case 'function':\n hashSource = str.toString();\n break;\n default:\n hashSource = String(str);\n }\n }\n\n let hash = 0, i, chr;\n for (i = 0; i < hashSource.length; i++) {\n chr = hashSource.charCodeAt(i);\n hash = ((hash << 5) - hash) + chr;\n hash |= 0; // Convert to 32bit integer\n }\n\n const hashString = hash.toString();\n\n return hashString;\n }\n\n /**\n * This method compares the current signal with another signal instance by deduplication ID\n * this id can be configured during initialization with the \"id\" property.\n * \n * example: \n * * const signalA = new A_Signal({ id: ['user-status', 'user123'], data: { status: 'online' } });\n * * const signalB = new A_Signal({ id: ['user-status', 'user123'], data: { status: 'offline' } });\n * \n * signalA.compare(signalB) // true because both signals have the same deduplication ID\n * \n * @param other \n * @returns \n */\n compare(other: A_Signal<_TSignalDataType>): boolean {\n if (this.aseid.id !== other.aseid.id) {\n return false;\n }\n\n return true;\n }\n \n\n\n fromJSON(serializedEntity: A_Signal_Serialized<_TSignalDataType>): void {\n super.fromJSON(serializedEntity);\n this.data = serializedEntity.data;\n }\n\n\n fromNew(newEntity: A_Signal_Init<_TSignalDataType>): void {\n this.data = newEntity.data;\n\n const identity = newEntity.id || {\n name: newEntity.name,\n data: this.data\n };\n\n const id = this.createHash(identity);\n\n this.aseid = this.generateASEID({\n entity: newEntity.name,\n id: id,\n });\n }\n\n\n toJSON(): A_Signal_Serialized<_TSignalDataType> {\n return {\n ...super.toJSON(),\n data: this.data\n };\n }\n\n}"]}
1
+ {"version":3,"sources":["../../../../../src/lib/A-Signal/entities/A-Signal.entity.ts"],"names":[],"mappings":"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","file":"A-Signal.entity.mjs","sourcesContent":["import { A_Entity, A_Scope } from \"@adaas/a-concept\";\nimport { A_Signal_Init, A_Signal_Serialized } from \"../A-Signal.types\";\nimport { A_Frame } from \"@adaas/a-frame\";\n\n/**\n * A Signal Entity is an individual signal instance that carries data.\n * Signals is a event types that uses for vectors of signals to be used for further processing. \n * \n * Comparing to standard events, signals should be used in case when the event impacts some \"state\" \n * and the state should be used instead of the event itself.\n * \n * For example, a signal can represent the current status of a user (online/offline/away), \n * while an event would represent a single action (user logged in/logged out).\n * \n * Signals are typically used in scenarios where the current state is more important than individual events, \n * such as monitoring systems, real-time dashboards, or stateful applications.\n */\n@A_Frame.Entity({\n namespace: 'A-Utils',\n name: 'A-Signal',\n description: 'A Signal Entity represents an individual signal instance that carries data, used for managing state within an application context. Signals are designed to reflect the current state rather than individual events, making them suitable for scenarios where state monitoring and real-time updates are essential.'\n})\nexport class A_Signal<\n _TSignalDataType extends any = any,\n _TSignalSerializedDataType extends any = _TSignalDataType,\n> extends A_Entity<A_Signal_Init<_TSignalDataType>, A_Signal_Serialized<_TSignalSerializedDataType>> {\n\n\n // ========================================================================\n // ========================== Static Methods ==============================\n // ========================================================================\n /**\n * Allows to define default data for the signal.\n * \n * If no data is provided during initialization, the default data will be used.\n * \n * @returns \n */\n static default(): A_Signal | undefined {\n return undefined;\n }\n\n // ========================================================================\n // ========================== Instance Properties ========================\n // ========================================================================\n\n /**\n * The actual data carried by the signal.\n */\n data!: _TSignalDataType;\n\n /**\n * Generates signal hash uses for comparison\n * \n * @param str \n */\n protected createHash(str?: string): string\n protected createHash(str?: undefined): string\n protected createHash(str?: Record<string, any>): string\n protected createHash(str?: Array<any>): string\n protected createHash(str?: number): string\n protected createHash(str?: boolean): string\n protected createHash(str?: null): string\n protected createHash(map?: Map<any, any>): string\n protected createHash(set?: Set<any>): string\n protected createHash(str?: any): string {\n let hashSource: string;\n\n if (str instanceof Map) {\n hashSource = JSON.stringify(Array.from(str.entries()));\n } else if (str instanceof Set) {\n hashSource = JSON.stringify(Array.from(str.values()));\n } else {\n switch (typeof str) {\n case 'string':\n hashSource = str;\n break;\n case 'undefined':\n hashSource = 'undefined';\n break;\n\n case 'object':\n if ('toJSON' in str)\n hashSource = JSON.stringify(str.toJSON());\n\n else\n hashSource = JSON.stringify(str);\n break;\n case 'number':\n hashSource = str.toString();\n break;\n case 'boolean':\n hashSource = str ? 'true' : 'false';\n break;\n case 'function':\n hashSource = str.toString();\n break;\n default:\n hashSource = String(str);\n }\n }\n\n let hash = 0, i, chr;\n for (i = 0; i < hashSource.length; i++) {\n chr = hashSource.charCodeAt(i);\n hash = ((hash << 5) - hash) + chr;\n hash |= 0; // Convert to 32bit integer\n }\n\n const hashString = hash.toString();\n\n return hashString;\n }\n\n /**\n * This method compares the current signal with another signal instance by deduplication ID\n * this id can be configured during initialization with the \"id\" property.\n * \n * example: \n * * const signalA = new A_Signal({ id: ['user-status', 'user123'], data: { status: 'online' } });\n * * const signalB = new A_Signal({ id: ['user-status', 'user123'], data: { status: 'offline' } });\n * \n * signalA.compare(signalB) // true because both signals have the same deduplication ID\n * \n * @param other \n * @returns \n */\n compare(other: A_Signal<_TSignalDataType>): boolean {\n if (this.aseid.id !== other.aseid.id) {\n return false;\n }\n\n return true;\n }\n\n\n\n fromJSON(serializedEntity: A_Signal_Serialized<_TSignalSerializedDataType>): void {\n super.fromJSON(serializedEntity);\n this.data = serializedEntity.data as unknown as _TSignalDataType;\n }\n\n\n fromNew(newEntity: A_Signal_Init<_TSignalDataType>): void {\n this.data = newEntity.data;\n\n const identity = newEntity.id || {\n name: newEntity.name,\n data: this.data\n };\n\n const id = this.createHash(identity);\n\n this.aseid = this.generateASEID({\n entity: newEntity.name,\n id: id,\n });\n }\n\n\n toJSON(): A_Signal_Serialized<_TSignalSerializedDataType> {\n return {\n ...super.toJSON(),\n data: this.data as unknown as _TSignalSerializedDataType\n };\n }\n\n}"]}
@@ -1,5 +1,5 @@
1
1
  import { A_Entity, A_TYPES__Entity_Constructor } from '@adaas/a-concept';
2
- import { A as A_Signal, d as A_SignalVector_Init, h as A_Signal_TSignalsConstructors, e as A_SignalVector_Serialized, c as A_SignalTValueArray } from '../../../A-Signal.types-P5VKMKMs.mjs';
2
+ import { A as A_Signal, d as A_SignalVector_Init, h as A_Signal_TSignalsConstructors, e as A_SignalVector_Serialized, c as A_SignalTValueArray } from '../../../A-Signal.types-C0Ta5Unp.mjs';
3
3
 
4
4
  /**
5
5
  * A Signal Vector Entity is a collection of signals structured in a specific way.
@@ -46,14 +46,39 @@ declare class A_SignalVector<TSignals extends A_Signal[] = A_Signal[]> extends A
46
46
  * @returns
47
47
  */
48
48
  [Symbol.iterator](): Iterator<TSignals[number]>;
49
+ /**
50
+ * Checks that 2 vectors are identical by types and data
51
+ *
52
+ * e.g. [UserSignInSignal, UserStatusSignal] is equal to [UserSignInSignal, UserStatusSignal] with the same data,
53
+ * but not equal to [UserStatusSignal, UserSignInSignal] or [UserSignInSignal, UserStatusSignal] with different data.
54
+ *
55
+ * @param other
56
+ * @returns
57
+ */
58
+ equals(other: A_SignalVector<TSignals>): boolean;
49
59
  /**
50
60
  * Allows to match the current Signal Vector with another Signal Vector by comparing each signal in the structure.
51
- * This method returns true if all signals in the vector match the corresponding signals in the other vector.
61
+ * This method returns true if all signals in the vector A match the corresponding signals in vector B, and false otherwise.
62
+ *
63
+ *
64
+ * e.g. [UserSignInSignal, UserStatusSignal] matches [UserStatusSignal, UserSignInSignal] with the same data,
65
+ *
66
+ * but not matches [UserSignInSignal, UserStatusSignal] with different data or [UserSignInSignal] or [UserSignInSignal, UserStatusSignal, UserActivitySignal].
67
+ *
52
68
  *
53
69
  * @param other
54
70
  * @returns
55
71
  */
56
72
  match(other: A_SignalVector<TSignals>): boolean;
73
+ /**
74
+ * Checks if the current Signal Vector includes all signals from another Signal Vector, regardless of order.
75
+ *
76
+ * e.g. [UserSignInSignal, UserStatusSignal] includes [UserStatusSignal] with the same data,
77
+ * but not includes [UserStatusSignal] with different data or [UserActivitySignal].
78
+ *
79
+ * @param other
80
+ */
81
+ includes(other: A_SignalVector<TSignals>): boolean;
57
82
  /**
58
83
  * This method should ensure that the current Signal Vector contains all signals from the provided Signal Vector.
59
84
  *
@@ -81,7 +106,7 @@ declare class A_SignalVector<TSignals extends A_Signal[] = A_Signal[]> extends A
81
106
  * @param structure - Optional structure to override the default ordering
82
107
  * @returns Array of signal instances in the specified order
83
108
  */
84
- toVector<T extends Array<A_Signal> = TSignals>(structure?: A_Signal_TSignalsConstructors<T>): Promise<T>;
109
+ toVector<T extends Array<A_Signal> = TSignals>(structure?: A_Signal_TSignalsConstructors<T>): T;
85
110
  /**
86
111
  * Converts to Array of data of signals in the vector
87
112
  * Maintains the order specified in the structure/generic type
@@ -89,7 +114,7 @@ declare class A_SignalVector<TSignals extends A_Signal[] = A_Signal[]> extends A
89
114
  * @param structure - Optional structure to override the default ordering
90
115
  * @returns Array of serialized signal data in the specified order
91
116
  */
92
- toDataVector<T extends A_Signal[] = TSignals>(structure?: A_Signal_TSignalsConstructors<T>): Promise<A_SignalTValueArray<T>>;
117
+ toDataVector<T extends A_Signal[] = TSignals>(structure?: A_Signal_TSignalsConstructors<T>): A_SignalTValueArray<T>;
93
118
  /**
94
119
  * Converts to Object with signal constructor names as keys and their corresponding data values
95
120
  * Uses the structure ordering to ensure consistent key ordering