@adaas/a-utils 0.1.10 → 0.1.12

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 (125) hide show
  1. package/README.md +87 -32
  2. package/dist/index.d.mts +933 -0
  3. package/dist/index.d.ts +933 -27
  4. package/dist/index.js +1786 -90
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +1764 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/examples/command-examples.ts +268 -0
  9. package/package.json +5 -3
  10. package/src/index.ts +70 -0
  11. package/src/lib/A-Command/A-Command.constants.ts +4 -0
  12. package/src/lib/A-Command/A-Command.entity.ts +31 -13
  13. package/src/lib/A-Command/A-Command.types.ts +6 -1
  14. package/src/lib/A-Command/README.md +645 -0
  15. package/src/lib/A-Logger/A-Logger.component.ts +10 -3
  16. package/src/lib/A-Memory/A-Memory.context.ts +15 -0
  17. package/src/lib/A-Polyfill/A-Polyfill.component.ts +153 -15
  18. package/src/lib/A-Polyfill/A-Polyfill.types.ts +54 -0
  19. package/src/lib/A-Polyfill/classes/A-Buffer-Polyfill.class.ts +85 -0
  20. package/src/lib/A-Polyfill/classes/A-Crypto-Polyfill.class.ts +87 -0
  21. package/src/lib/A-Polyfill/classes/A-FS-Polyfill.class.ts +61 -0
  22. package/src/lib/A-Polyfill/classes/A-Http-Polyfill.class.ts +100 -0
  23. package/src/lib/A-Polyfill/classes/A-Https-Polyfill.class.ts +100 -0
  24. package/src/lib/A-Polyfill/classes/A-Path-Polyfill.class.ts +97 -0
  25. package/src/lib/A-Polyfill/classes/A-Process-Polyfill.class.ts +73 -0
  26. package/src/lib/A-Polyfill/classes/A-Url-Polyfill.class.ts +88 -0
  27. package/tests/A-Command.test.ts +447 -2
  28. package/tests/A-Config.test.ts +5 -5
  29. package/tests/A-Memory.test.ts +189 -0
  30. package/tests/A-Polyfill.test.ts +446 -29
  31. package/tsconfig.json +1 -1
  32. package/tsup.config.ts +15 -0
  33. package/dist/src/constants/errors.constants.d.ts +0 -0
  34. package/dist/src/constants/errors.constants.js +0 -2
  35. package/dist/src/constants/errors.constants.js.map +0 -1
  36. package/dist/src/lib/A-Channel/A-Channel.component.d.ts +0 -22
  37. package/dist/src/lib/A-Channel/A-Channel.component.js +0 -84
  38. package/dist/src/lib/A-Channel/A-Channel.component.js.map +0 -1
  39. package/dist/src/lib/A-Channel/A-Channel.error.d.ts +0 -4
  40. package/dist/src/lib/A-Channel/A-Channel.error.js +0 -9
  41. package/dist/src/lib/A-Channel/A-Channel.error.js.map +0 -1
  42. package/dist/src/lib/A-Channel/A-Channel.types.d.ts +0 -0
  43. package/dist/src/lib/A-Channel/A-Channel.types.js +0 -2
  44. package/dist/src/lib/A-Channel/A-Channel.types.js.map +0 -1
  45. package/dist/src/lib/A-Command/A-Command.constants.d.ts +0 -22
  46. package/dist/src/lib/A-Command/A-Command.constants.js +0 -28
  47. package/dist/src/lib/A-Command/A-Command.constants.js.map +0 -1
  48. package/dist/src/lib/A-Command/A-Command.entity.d.ts +0 -133
  49. package/dist/src/lib/A-Command/A-Command.entity.js +0 -273
  50. package/dist/src/lib/A-Command/A-Command.entity.js.map +0 -1
  51. package/dist/src/lib/A-Command/A-Command.error.d.ts +0 -3
  52. package/dist/src/lib/A-Command/A-Command.error.js +0 -8
  53. package/dist/src/lib/A-Command/A-Command.error.js.map +0 -1
  54. package/dist/src/lib/A-Command/A-Command.types.d.ts +0 -73
  55. package/dist/src/lib/A-Command/A-Command.types.js +0 -4
  56. package/dist/src/lib/A-Command/A-Command.types.js.map +0 -1
  57. package/dist/src/lib/A-Config/A-Config.constants.d.ts +0 -3
  58. package/dist/src/lib/A-Config/A-Config.constants.js +0 -6
  59. package/dist/src/lib/A-Config/A-Config.constants.js.map +0 -1
  60. package/dist/src/lib/A-Config/A-Config.container.d.ts +0 -6
  61. package/dist/src/lib/A-Config/A-Config.container.js +0 -77
  62. package/dist/src/lib/A-Config/A-Config.container.js.map +0 -1
  63. package/dist/src/lib/A-Config/A-Config.context.d.ts +0 -29
  64. package/dist/src/lib/A-Config/A-Config.context.js +0 -63
  65. package/dist/src/lib/A-Config/A-Config.context.js.map +0 -1
  66. package/dist/src/lib/A-Config/A-Config.error.d.ts +0 -4
  67. package/dist/src/lib/A-Config/A-Config.error.js +0 -9
  68. package/dist/src/lib/A-Config/A-Config.error.js.map +0 -1
  69. package/dist/src/lib/A-Config/A-Config.types.d.ts +0 -19
  70. package/dist/src/lib/A-Config/A-Config.types.js +0 -7
  71. package/dist/src/lib/A-Config/A-Config.types.js.map +0 -1
  72. package/dist/src/lib/A-Config/components/ConfigReader.component.d.ts +0 -30
  73. package/dist/src/lib/A-Config/components/ConfigReader.component.js +0 -103
  74. package/dist/src/lib/A-Config/components/ConfigReader.component.js.map +0 -1
  75. package/dist/src/lib/A-Config/components/ENVConfigReader.component.d.ts +0 -14
  76. package/dist/src/lib/A-Config/components/ENVConfigReader.component.js +0 -72
  77. package/dist/src/lib/A-Config/components/ENVConfigReader.component.js.map +0 -1
  78. package/dist/src/lib/A-Config/components/FileConfigReader.component.d.ts +0 -11
  79. package/dist/src/lib/A-Config/components/FileConfigReader.component.js +0 -47
  80. package/dist/src/lib/A-Config/components/FileConfigReader.component.js.map +0 -1
  81. package/dist/src/lib/A-Logger/A-Logger.component.d.ts +0 -29
  82. package/dist/src/lib/A-Logger/A-Logger.component.js +0 -152
  83. package/dist/src/lib/A-Logger/A-Logger.component.js.map +0 -1
  84. package/dist/src/lib/A-Logger/A-Logger.types.d.ts +0 -0
  85. package/dist/src/lib/A-Logger/A-Logger.types.js +0 -2
  86. package/dist/src/lib/A-Logger/A-Logger.types.js.map +0 -1
  87. package/dist/src/lib/A-Manifest/A-Manifest.context.d.ts +0 -52
  88. package/dist/src/lib/A-Manifest/A-Manifest.context.js +0 -154
  89. package/dist/src/lib/A-Manifest/A-Manifest.context.js.map +0 -1
  90. package/dist/src/lib/A-Manifest/A-Manifest.error.d.ts +0 -4
  91. package/dist/src/lib/A-Manifest/A-Manifest.error.js +0 -9
  92. package/dist/src/lib/A-Manifest/A-Manifest.error.js.map +0 -1
  93. package/dist/src/lib/A-Manifest/A-Manifest.types.d.ts +0 -43
  94. package/dist/src/lib/A-Manifest/A-Manifest.types.js +0 -3
  95. package/dist/src/lib/A-Manifest/A-Manifest.types.js.map +0 -1
  96. package/dist/src/lib/A-Manifest/classes/A-ManifestChecker.class.d.ts +0 -14
  97. package/dist/src/lib/A-Manifest/classes/A-ManifestChecker.class.js +0 -24
  98. package/dist/src/lib/A-Manifest/classes/A-ManifestChecker.class.js.map +0 -1
  99. package/dist/src/lib/A-Memory/A-Memory.context.d.ts +0 -64
  100. package/dist/src/lib/A-Memory/A-Memory.context.js +0 -105
  101. package/dist/src/lib/A-Memory/A-Memory.context.js.map +0 -1
  102. package/dist/src/lib/A-Polyfill/A-Polyfill.component.d.ts +0 -20
  103. package/dist/src/lib/A-Polyfill/A-Polyfill.component.js +0 -53
  104. package/dist/src/lib/A-Polyfill/A-Polyfill.component.js.map +0 -1
  105. package/dist/src/lib/A-Polyfill/A-Polyfill.types.d.ts +0 -9
  106. package/dist/src/lib/A-Polyfill/A-Polyfill.types.js +0 -3
  107. package/dist/src/lib/A-Polyfill/A-Polyfill.types.js.map +0 -1
  108. package/dist/src/lib/A-Polyfill/A-Polyfills.class.d.ts +0 -11
  109. package/dist/src/lib/A-Polyfill/A-Polyfills.class.js +0 -123
  110. package/dist/src/lib/A-Polyfill/A-Polyfills.class.js.map +0 -1
  111. package/dist/src/lib/A-Schedule/A-Deferred.class.d.ts +0 -12
  112. package/dist/src/lib/A-Schedule/A-Deferred.class.js +0 -23
  113. package/dist/src/lib/A-Schedule/A-Deferred.class.js.map +0 -1
  114. package/dist/src/lib/A-Schedule/A-Schedule.component.d.ts +0 -57
  115. package/dist/src/lib/A-Schedule/A-Schedule.component.js +0 -49
  116. package/dist/src/lib/A-Schedule/A-Schedule.component.js.map +0 -1
  117. package/dist/src/lib/A-Schedule/A-Schedule.types.d.ts +0 -10
  118. package/dist/src/lib/A-Schedule/A-Schedule.types.js +0 -3
  119. package/dist/src/lib/A-Schedule/A-Schedule.types.js.map +0 -1
  120. package/dist/src/lib/A-Schedule/A-ScheduleObject.class.d.ts +0 -29
  121. package/dist/src/lib/A-Schedule/A-ScheduleObject.class.js +0 -58
  122. package/dist/src/lib/A-Schedule/A-ScheduleObject.class.js.map +0 -1
  123. package/index.ts +0 -71
  124. package/src/lib/A-Polyfill/A-Polyfills.class.ts +0 -99
  125. package/tsconfig.build.json +0 -56
package/dist/index.d.ts CHANGED
@@ -1,27 +1,933 @@
1
- export { A_Channel } from './src/lib/A-Channel/A-Channel.component';
2
- export { A_ChannelError } from './src/lib/A-Channel/A-Channel.error';
3
- export { A_Command } from './src/lib/A-Command/A-Command.entity';
4
- export { A_CommandError } from './src/lib/A-Command/A-Command.error';
5
- export * from './src/lib/A-Command/A-Command.types';
6
- export * from './src/lib/A-Command/A-Command.constants';
7
- export { A_ConfigLoader } from './src/lib/A-Config/A-Config.container';
8
- export { A_Config } from './src/lib/A-Config/A-Config.context';
9
- export { A_ConfigError } from './src/lib/A-Config/A-Config.error';
10
- export { ConfigReader } from './src/lib/A-Config/components/ConfigReader.component';
11
- export { ENVConfigReader } from './src/lib/A-Config/components/ENVConfigReader.component';
12
- export { FileConfigReader } from './src/lib/A-Config/components/FileConfigReader.component';
13
- export * from './src/lib/A-Config/A-Config.types';
14
- export * from './src/lib/A-Config/A-Config.constants';
15
- export { A_Logger } from './src/lib/A-Logger/A-Logger.component';
16
- export { A_Manifest } from './src/lib/A-Manifest/A-Manifest.context';
17
- export { A_ManifestError } from './src/lib/A-Manifest/A-Manifest.error';
18
- export { A_ManifestChecker } from './src/lib/A-Manifest/classes/A-ManifestChecker.class';
19
- export * from './src/lib/A-Manifest/A-Manifest.types';
20
- export { A_Memory } from './src/lib/A-Memory/A-Memory.context';
21
- export { A_Polyfill } from './src/lib/A-Polyfill/A-Polyfill.component';
22
- export { A_PolyfillClass } from './src/lib/A-Polyfill/A-Polyfills.class';
23
- export * from './src/lib/A-Polyfill/A-Polyfill.types';
24
- export { A_Schedule } from './src/lib/A-Schedule/A-Schedule.component';
25
- export { A_ScheduleObject } from './src/lib/A-Schedule/A-ScheduleObject.class';
26
- export { A_Deferred } from './src/lib/A-Schedule/A-Deferred.class';
27
- export * from './src/lib/A-Schedule/A-Schedule.types';
1
+ import { A_Component, A_Error, A_TYPES__Error_Serialized, A_TYPES__Entity_Serialized, A_Meta, A_TYPES__FeatureExtendDecoratorMeta, A_TYPES__FeatureDefineDecoratorMeta, A_Entity, A_Scope, A_TYPES__ConceptENVVariables, A_TYPES__Fragment_Constructor, A_Fragment, A_Container, A_Feature, A_TYPES__Component_Constructor, A_TYPES__Entity_Constructor } from '@adaas/a-concept';
2
+ import { A_TYPES__Container_Constructor } from '@adaas/a-concept/dist/src/global/A-Container/A-Container.types';
3
+
4
+ declare class A_Channel extends A_Component {
5
+ /**
6
+ * Indicates whether the channel is processing requests
7
+ */
8
+ protected _processing: boolean;
9
+ /**
10
+ * Indicates whether the channel is connected
11
+ */
12
+ protected _initialized?: Promise<void>;
13
+ /**
14
+ * Indicates whether the channel is processing requests
15
+ */
16
+ get processing(): boolean;
17
+ /**
18
+ * Indicates whether the channel is connected
19
+ */
20
+ get initialize(): Promise<void>;
21
+ connect(): Promise<void>;
22
+ request(params: any): Promise<any>;
23
+ send(message: any): Promise<void>;
24
+ }
25
+
26
+ declare class A_ChannelError extends A_Error {
27
+ static readonly MethodNotImplemented = "A-Channel Method Not Implemented";
28
+ }
29
+
30
+ declare enum A_TYPES__CommandMetaKey {
31
+ EXTENSIONS = "a-command-extensions",
32
+ FEATURES = "a-command-features",
33
+ ABSTRACTIONS = "a-command-abstractions"
34
+ }
35
+ declare enum A_CONSTANTS__A_Command_Status {
36
+ CREATED = "CREATED",
37
+ INITIALIZATION = "INITIALIZATION",
38
+ INITIALIZED = "INITIALIZED",
39
+ COMPILATION = "COMPILATION",
40
+ COMPILED = "COMPILED",
41
+ IN_PROGRESS = "IN_PROGRESS",
42
+ COMPLETED = "COMPLETED",
43
+ FAILED = "FAILED"
44
+ }
45
+ /**
46
+ * A-Command Lifecycle Features
47
+ */
48
+ declare enum A_CONSTANTS_A_Command_Features {
49
+ INIT = "init",
50
+ COMPLIED = "complied",
51
+ EXECUTE = "execute",
52
+ COMPLETE = "complete",
53
+ FAIL = "fail"
54
+ }
55
+ type A_CONSTANTS__A_Command_Event = 'init' | 'compile' | 'execute' | 'complete' | 'fail';
56
+
57
+ /**
58
+ * Command constructor type
59
+ * Uses the generic type T to specify the type of the entity
60
+ */
61
+ type A_TYPES__Command_Constructor<T = A_Command> = new (...args: any[]) => T;
62
+ /**
63
+ * Command initialization type
64
+ */
65
+ type A_TYPES__Command_Init = Record<string, any>;
66
+ /**
67
+ * Command serialized type
68
+ */
69
+ type A_TYPES__Command_Serialized<ParamsType extends Record<string, any> = Record<string, any>, ResultType extends Record<string, any> = Record<string, any>> = {
70
+ /**
71
+ * Unique code of the command
72
+ */
73
+ code: string;
74
+ /**
75
+ * Current status of the command
76
+ */
77
+ status: A_CONSTANTS__A_Command_Status;
78
+ /**
79
+ * Parameters used to invoke the command
80
+ */
81
+ params: ParamsType;
82
+ /**
83
+ * The time when the command was created
84
+ */
85
+ startedAt?: string;
86
+ /**
87
+ * The time when the command execution ended
88
+ */
89
+ endedAt?: string;
90
+ /**
91
+ * Duration of the command execution in milliseconds
92
+ */
93
+ duration?: number;
94
+ /**
95
+ * Result of the command execution
96
+ */
97
+ result?: ResultType;
98
+ /**
99
+ * List of errors occurred during the command execution
100
+ */
101
+ errors?: Array<A_TYPES__Error_Serialized>;
102
+ } & A_TYPES__Entity_Serialized;
103
+ /**
104
+ * Command listener type
105
+ */
106
+ type A_TYPES__Command_Listener<InvokeType extends A_TYPES__Command_Init = A_TYPES__Command_Init, ResultType extends Record<string, any> = Record<string, any>, LifecycleEvents extends string = A_CONSTANTS__A_Command_Event> = (command?: A_Command<InvokeType, ResultType, LifecycleEvents>) => void;
107
+ /**
108
+ * Command meta type
109
+ */
110
+ type A_TYPES__CommandMeta = {
111
+ [A_TYPES__CommandMetaKey.EXTENSIONS]: A_Meta<{
112
+ /**
113
+ * Where Key the regexp for what to apply the extension
114
+ * A set of container names or a wildcard, or a regexp
115
+ *
116
+ *
117
+ * Where value is the extension instructions
118
+ */
119
+ [Key: string]: A_TYPES__FeatureExtendDecoratorMeta[];
120
+ }>;
121
+ case: any;
122
+ [A_TYPES__CommandMetaKey.FEATURES]: A_Meta<{
123
+ /**
124
+ * Where Key is the name of the feature
125
+ *
126
+ * Where value is the list of features
127
+ */
128
+ [Key: string]: A_TYPES__FeatureDefineDecoratorMeta;
129
+ }>;
130
+ };
131
+
132
+ declare class A_Command<InvokeType extends A_TYPES__Command_Init = A_TYPES__Command_Init, ResultType extends Record<string, any> = Record<string, any>, LifecycleEvents extends string | A_CONSTANTS__A_Command_Event = A_CONSTANTS__A_Command_Event> extends A_Entity<InvokeType, A_TYPES__Command_Serialized<InvokeType, ResultType>> {
133
+ /**
134
+ * Command Identifier that corresponds to the class name
135
+ */
136
+ static get code(): string;
137
+ protected _result?: ResultType;
138
+ protected _executionScope: A_Scope;
139
+ protected _errors?: Set<A_Error>;
140
+ protected _params: InvokeType;
141
+ protected _status: A_CONSTANTS__A_Command_Status;
142
+ protected _listeners: Map<LifecycleEvents | A_CONSTANTS__A_Command_Event, Set<A_TYPES__Command_Listener<InvokeType, ResultType, LifecycleEvents>>>;
143
+ protected _startTime?: Date;
144
+ protected _endTime?: Date;
145
+ /**
146
+ * Execution Duration in milliseconds
147
+ */
148
+ get duration(): number | undefined;
149
+ /**
150
+ * A shared scope between all features of the command during its execution
151
+ */
152
+ get scope(): A_Scope;
153
+ /**
154
+ * Unique code identifying the command type
155
+ * Example: 'user.create', 'task.complete', etc.
156
+ *
157
+ */
158
+ get code(): string;
159
+ /**
160
+ * Current status of the command
161
+ */
162
+ get status(): A_CONSTANTS__A_Command_Status;
163
+ /**
164
+ * Start time of the command execution
165
+ */
166
+ get startedAt(): Date | undefined;
167
+ /**
168
+ * End time of the command execution
169
+ */
170
+ get endedAt(): Date | undefined;
171
+ /**
172
+ * Result of the command execution stored in the context
173
+ */
174
+ get result(): ResultType | undefined;
175
+ /**
176
+ * Errors encountered during the command execution stored in the context
177
+ */
178
+ get errors(): Set<A_Error> | undefined;
179
+ /**
180
+ * Parameters used to invoke the command
181
+ */
182
+ get params(): InvokeType;
183
+ /**
184
+ * Indicates if the command has failed
185
+ */
186
+ get isFailed(): boolean;
187
+ /**
188
+ * Indicates if the command has completed successfully
189
+ */
190
+ get isCompleted(): boolean;
191
+ /**
192
+ *
193
+ * A-Command represents an executable command with a specific code and parameters.
194
+ * It can be executed within a given scope and stores execution results and errors.
195
+ *
196
+ *
197
+ * A-Command should be context independent and execution logic should be based on attached components
198
+ *
199
+ * @param code
200
+ * @param params
201
+ */
202
+ constructor(
203
+ /**
204
+ * Command invocation parameters
205
+ */
206
+ params: InvokeType | A_TYPES__Command_Serialized<InvokeType, ResultType> | string);
207
+ init(): Promise<void>;
208
+ compile(): Promise<void>;
209
+ /**
210
+ * Executes the command logic.
211
+ */
212
+ execute(): Promise<any>;
213
+ /**
214
+ * Marks the command as completed
215
+ */
216
+ complete(): Promise<void>;
217
+ /**
218
+ * Marks the command as failed
219
+ */
220
+ fail(): Promise<void>;
221
+ /**
222
+ * Registers an event listener for a specific event
223
+ *
224
+ * @param event
225
+ * @param listener
226
+ */
227
+ on(event: LifecycleEvents | A_CONSTANTS__A_Command_Event, listener: A_TYPES__Command_Listener<InvokeType, ResultType, LifecycleEvents>): void;
228
+ /**
229
+ * Removes an event listener for a specific event
230
+ *
231
+ * @param event
232
+ * @param listener
233
+ */
234
+ off(event: LifecycleEvents | A_CONSTANTS__A_Command_Event, listener: A_TYPES__Command_Listener<InvokeType, ResultType, LifecycleEvents>): void;
235
+ /**
236
+ * Emits an event to all registered listeners
237
+ *
238
+ * @param event
239
+ */
240
+ emit(event: LifecycleEvents | A_CONSTANTS__A_Command_Event): void;
241
+ /**
242
+ * Allows to create a Command instance from new data
243
+ *
244
+ * @param newEntity
245
+ */
246
+ fromNew(newEntity: InvokeType): void;
247
+ /**
248
+ * Allows to convert serialized data to Command instance
249
+ *
250
+ * [!] By default it omits params as they are not stored in the serialized data
251
+ *
252
+ * @param serialized
253
+ */
254
+ fromJSON(serialized: A_TYPES__Command_Serialized<InvokeType, ResultType>): void;
255
+ /**
256
+ * Converts the Command instance to a plain object
257
+ *
258
+ * @returns
259
+ */
260
+ toJSON(): A_TYPES__Command_Serialized<InvokeType, ResultType>;
261
+ }
262
+
263
+ declare class A_CommandError extends A_Error {
264
+ }
265
+
266
+ interface Ifspolyfill {
267
+ readFileSync: (path: string, encoding: string) => string;
268
+ existsSync: (path: string) => boolean;
269
+ createReadStream: (path: string, options?: BufferEncoding) => any;
270
+ }
271
+ interface IcryptoInterface {
272
+ createTextHash(text: string, algorithm: string): Promise<string>;
273
+ createFileHash(filePath: string, algorithm: string): Promise<string>;
274
+ }
275
+ interface IhttpInterface {
276
+ request: (options: any, callback?: (res: any) => void) => any;
277
+ get: (url: string | any, callback?: (res: any) => void) => any;
278
+ createServer: (requestListener?: (req: any, res: any) => void) => any;
279
+ }
280
+ interface IhttpsInterface {
281
+ request: (options: any, callback?: (res: any) => void) => any;
282
+ get: (url: string | any, callback?: (res: any) => void) => any;
283
+ createServer: (options: any, requestListener?: (req: any, res: any) => void) => any;
284
+ }
285
+ interface IpathInterface {
286
+ join: (...paths: string[]) => string;
287
+ resolve: (...paths: string[]) => string;
288
+ dirname: (path: string) => string;
289
+ basename: (path: string, ext?: string) => string;
290
+ extname: (path: string) => string;
291
+ relative: (from: string, to: string) => string;
292
+ normalize: (path: string) => string;
293
+ isAbsolute: (path: string) => boolean;
294
+ parse: (path: string) => any;
295
+ format: (pathObject: any) => string;
296
+ sep: string;
297
+ delimiter: string;
298
+ }
299
+ interface IurlInterface {
300
+ parse: (urlString: string) => any;
301
+ format: (urlObject: any) => string;
302
+ resolve: (from: string, to: string) => string;
303
+ URL: typeof URL;
304
+ URLSearchParams: typeof URLSearchParams;
305
+ }
306
+ interface IbufferInterface {
307
+ from: (data: any, encoding?: string) => any;
308
+ alloc: (size: number, fill?: any) => any;
309
+ allocUnsafe: (size: number) => any;
310
+ isBuffer: (obj: any) => boolean;
311
+ concat: (list: any[], totalLength?: number) => any;
312
+ }
313
+ interface IprocessInterface {
314
+ env: Record<string, string | undefined>;
315
+ argv: string[];
316
+ platform: string;
317
+ version: string;
318
+ versions: Record<string, string>;
319
+ cwd: () => string;
320
+ exit: (code?: number) => never;
321
+ nextTick: (callback: Function, ...args: any[]) => void;
322
+ }
323
+
324
+ declare enum A_TYPES__ConfigFeature {
325
+ }
326
+ type A_TYPES__ConfigContainerConstructor<T extends Array<string | A_TYPES__ConceptENVVariables[number]>> = {
327
+ /**
328
+ * If set to true, the SDK will throw an error if the variable is not defined OR not presented in the defaults
329
+ */
330
+ strict: boolean;
331
+ /**
332
+ * Allows to define the names of variable to be loaded
333
+ */
334
+ variables: T;
335
+ /**
336
+ * Allows to set the default values for the variables
337
+ */
338
+ defaults: {
339
+ [key in T[number]]?: any;
340
+ };
341
+ } & A_TYPES__Fragment_Constructor;
342
+
343
+ declare class A_Config<T extends Array<string | A_TYPES__ConceptENVVariables[number]> = any[]> extends A_Fragment {
344
+ config: A_TYPES__ConfigContainerConstructor<T>;
345
+ private VARIABLES;
346
+ CONFIG_PROPERTIES: T;
347
+ protected DEFAULT_ALLOWED_TO_READ_PROPERTIES: ("A_CONCEPT_NAME" | "A_CONCEPT_ROOT_SCOPE" | "A_CONCEPT_ENVIRONMENT" | "A_CONCEPT_ROOT_FOLDER" | "A_ERROR_DEFAULT_DESCRIPTION")[];
348
+ constructor(config: Partial<A_TYPES__ConfigContainerConstructor<T>>);
349
+ /**
350
+ * This method is used to get the configuration property by name
351
+ *
352
+ * @param property
353
+ * @returns
354
+ */
355
+ get<_OutType = any>(property: T[number] | typeof this.DEFAULT_ALLOWED_TO_READ_PROPERTIES[number]): _OutType;
356
+ /**
357
+ *
358
+ * This method is used to set the configuration property by name
359
+ * OR set multiple properties at once by passing an array of objects
360
+ *
361
+ * @param variables
362
+ */
363
+ set(variables: Array<{
364
+ property: T[number] | A_TYPES__ConceptENVVariables[number];
365
+ value: any;
366
+ }>): any;
367
+ set(variables: Partial<Record<T[number] | A_TYPES__ConceptENVVariables[number], any>>): any;
368
+ set(property: T[number] | A_TYPES__ConceptENVVariables[number], value: any): any;
369
+ }
370
+
371
+ declare class A_Logger extends A_Component {
372
+ protected scope: A_Scope;
373
+ protected config?: A_Config<any>;
374
+ constructor(scope: A_Scope);
375
+ readonly colors: {
376
+ readonly green: "32";
377
+ readonly blue: "34";
378
+ readonly red: "31";
379
+ readonly yellow: "33";
380
+ readonly gray: "90";
381
+ readonly magenta: "35";
382
+ readonly cyan: "36";
383
+ readonly white: "37";
384
+ readonly pink: "95";
385
+ };
386
+ get scopeLength(): number;
387
+ compile(color: keyof typeof this.colors, ...args: any[]): Array<string>;
388
+ protected get allowedToLog(): boolean;
389
+ log(color: keyof typeof this.colors, ...args: any[]): any;
390
+ log(...args: any[]): any;
391
+ warning(...args: any[]): void;
392
+ error(...args: any[]): void;
393
+ protected log_A_Error(error: A_Error): void;
394
+ protected compile_A_Error(error: A_Error): string;
395
+ protected compile_Error(error: Error): string;
396
+ protected getTime(): string;
397
+ }
398
+
399
+ declare class A_FSPolyfillClass {
400
+ protected logger: A_Logger;
401
+ private _fs;
402
+ private _initialized;
403
+ constructor(logger: A_Logger);
404
+ get isInitialized(): boolean;
405
+ get(): Promise<Ifspolyfill>;
406
+ private init;
407
+ private initServer;
408
+ private initBrowser;
409
+ }
410
+
411
+ declare class A_CryptoPolyfillClass {
412
+ protected logger: A_Logger;
413
+ private _crypto;
414
+ private _initialized;
415
+ private _fsPolyfill?;
416
+ constructor(logger: A_Logger);
417
+ get isInitialized(): boolean;
418
+ get(fsPolyfill?: Ifspolyfill): Promise<IcryptoInterface>;
419
+ private init;
420
+ private initServer;
421
+ private initBrowser;
422
+ }
423
+
424
+ declare class A_HttpPolyfillClass {
425
+ protected logger: A_Logger;
426
+ private _http;
427
+ private _initialized;
428
+ constructor(logger: A_Logger);
429
+ get isInitialized(): boolean;
430
+ get(): Promise<IhttpInterface>;
431
+ private init;
432
+ private initServer;
433
+ private initBrowser;
434
+ private createMockRequest;
435
+ }
436
+
437
+ declare class A_HttpsPolyfillClass {
438
+ protected logger: A_Logger;
439
+ private _https;
440
+ private _initialized;
441
+ constructor(logger: A_Logger);
442
+ get isInitialized(): boolean;
443
+ get(): Promise<IhttpsInterface>;
444
+ private init;
445
+ private initServer;
446
+ private initBrowser;
447
+ private createMockRequest;
448
+ }
449
+
450
+ declare class A_PathPolyfillClass {
451
+ protected logger: A_Logger;
452
+ private _path;
453
+ private _initialized;
454
+ constructor(logger: A_Logger);
455
+ get isInitialized(): boolean;
456
+ get(): Promise<IpathInterface>;
457
+ private init;
458
+ private initServer;
459
+ private initBrowser;
460
+ }
461
+
462
+ declare class A_UrlPolyfillClass {
463
+ protected logger: A_Logger;
464
+ private _url;
465
+ private _initialized;
466
+ get isInitialized(): boolean;
467
+ constructor(logger: A_Logger);
468
+ get(): Promise<IurlInterface>;
469
+ private init;
470
+ private initServer;
471
+ private initBrowser;
472
+ }
473
+
474
+ declare class A_BufferPolyfillClass {
475
+ protected logger: A_Logger;
476
+ private _buffer;
477
+ private _initialized;
478
+ constructor(logger: A_Logger);
479
+ get isInitialized(): boolean;
480
+ get(): Promise<IbufferInterface>;
481
+ private init;
482
+ private initServer;
483
+ private initBrowser;
484
+ }
485
+
486
+ declare class A_ProcessPolyfillClass {
487
+ protected logger: A_Logger;
488
+ private _process;
489
+ private _initialized;
490
+ get isInitialized(): boolean;
491
+ constructor(logger: A_Logger);
492
+ get(): Promise<IprocessInterface>;
493
+ private init;
494
+ private initServer;
495
+ private initBrowser;
496
+ }
497
+
498
+ declare class A_Polyfill extends A_Component {
499
+ protected logger: A_Logger;
500
+ protected _fsPolyfill: A_FSPolyfillClass;
501
+ protected _cryptoPolyfill: A_CryptoPolyfillClass;
502
+ protected _httpPolyfill: A_HttpPolyfillClass;
503
+ protected _httpsPolyfill: A_HttpsPolyfillClass;
504
+ protected _pathPolyfill: A_PathPolyfillClass;
505
+ protected _urlPolyfill: A_UrlPolyfillClass;
506
+ protected _bufferPolyfill: A_BufferPolyfillClass;
507
+ protected _processPolyfill: A_ProcessPolyfillClass;
508
+ protected _initializing: Promise<void> | null;
509
+ /**
510
+ * Indicates whether the channel is connected
511
+ */
512
+ protected _initialized?: Promise<void>;
513
+ constructor(logger: A_Logger);
514
+ /**
515
+ * Indicates whether the channel is connected
516
+ */
517
+ get ready(): Promise<void>;
518
+ load(): Promise<void>;
519
+ attachToWindow(): Promise<void>;
520
+ protected _loadInternal(): Promise<void>;
521
+ /**
522
+ * Allows to use the 'fs' polyfill methods regardless of the environment
523
+ * This method loads the 'fs' polyfill and returns its instance
524
+ *
525
+ * @returns
526
+ */
527
+ fs(): Promise<Ifspolyfill>;
528
+ /**
529
+ * Allows to use the 'crypto' polyfill methods regardless of the environment
530
+ * This method loads the 'crypto' polyfill and returns its instance
531
+ *
532
+ * @returns
533
+ */
534
+ crypto(): Promise<IcryptoInterface>;
535
+ /**
536
+ * Allows to use the 'http' polyfill methods regardless of the environment
537
+ * This method loads the 'http' polyfill and returns its instance
538
+ *
539
+ * @returns
540
+ */
541
+ http(): Promise<IhttpInterface>;
542
+ /**
543
+ * Allows to use the 'https' polyfill methods regardless of the environment
544
+ * This method loads the 'https' polyfill and returns its instance
545
+ *
546
+ * @returns
547
+ */
548
+ https(): Promise<IhttpsInterface>;
549
+ /**
550
+ * Allows to use the 'path' polyfill methods regardless of the environment
551
+ * This method loads the 'path' polyfill and returns its instance
552
+ *
553
+ * @returns
554
+ */
555
+ path(): Promise<IpathInterface>;
556
+ /**
557
+ * Allows to use the 'url' polyfill methods regardless of the environment
558
+ * This method loads the 'url' polyfill and returns its instance
559
+ *
560
+ * @returns
561
+ */
562
+ url(): Promise<IurlInterface>;
563
+ /**
564
+ * Allows to use the 'buffer' polyfill methods regardless of the environment
565
+ * This method loads the 'buffer' polyfill and returns its instance
566
+ *
567
+ * @returns
568
+ */
569
+ buffer(): Promise<IbufferInterface>;
570
+ /**
571
+ * Allows to use the 'process' polyfill methods regardless of the environment
572
+ * This method loads the 'process' polyfill and returns its instance
573
+ *
574
+ * @returns
575
+ */
576
+ process(): Promise<IprocessInterface>;
577
+ }
578
+
579
+ declare class A_ConfigLoader extends A_Container {
580
+ private reader;
581
+ prepare(polyfill: A_Polyfill): Promise<void>;
582
+ }
583
+
584
+ declare class A_ConfigError extends A_Error {
585
+ static readonly InitializationError = "A-Config Initialization Error";
586
+ }
587
+
588
+ /**
589
+ * Config Reader
590
+ */
591
+ declare class ConfigReader extends A_Component {
592
+ protected polyfill: A_Polyfill;
593
+ constructor(polyfill: A_Polyfill);
594
+ attachContext(container: A_Container, feature: A_Feature): Promise<void>;
595
+ initialize(config: A_Config): Promise<void>;
596
+ /**
597
+ * Get the configuration property by Name
598
+ * @param property
599
+ */
600
+ resolve<_ReturnType = any>(property: string): _ReturnType;
601
+ /**
602
+ * This method reads the configuration and sets the values to the context
603
+ *
604
+ * @returns
605
+ */
606
+ read<T extends string>(variables?: Array<T>): Promise<Record<T, any>>;
607
+ /**
608
+ * Finds the root directory of the project by locating the folder containing package.json
609
+ *
610
+ * @param {string} startPath - The initial directory to start searching from (default is __dirname)
611
+ * @returns {string|null} - The path to the root directory or null if package.json is not found
612
+ */
613
+ protected getProjectRoot(startPath?: string): Promise<string>;
614
+ }
615
+
616
+ declare class ENVConfigReader extends ConfigReader {
617
+ readEnvFile(config: A_Config<A_TYPES__ConceptENVVariables>, polyfill: A_Polyfill, feature: A_Feature): Promise<void>;
618
+ /**
619
+ * Get the configuration property Name
620
+ * @param property
621
+ */
622
+ getConfigurationProperty_ENV_Alias(property: string): string;
623
+ resolve<_ReturnType = any>(property: string): _ReturnType;
624
+ read<T extends string>(variables?: Array<T>): Promise<Record<T, any>>;
625
+ }
626
+
627
+ declare class FileConfigReader extends ConfigReader {
628
+ private FileData;
629
+ /**
630
+ * Get the configuration property Name
631
+ * @param property
632
+ */
633
+ getConfigurationProperty_File_Alias(property: string): string;
634
+ resolve<_ReturnType = any>(property: string): _ReturnType;
635
+ read<T extends string>(variables?: Array<T>): Promise<Record<T, any>>;
636
+ }
637
+
638
+ declare const A_CONSTANTS__CONFIG_ENV_VARIABLES: {};
639
+ type A_TYPES__ConfigENVVariables = (typeof A_CONSTANTS__CONFIG_ENV_VARIABLES)[keyof typeof A_CONSTANTS__CONFIG_ENV_VARIABLES][];
640
+ declare const A_CONSTANTS__CONFIG_ENV_VARIABLES_ARRAY: readonly [];
641
+
642
+ type A_UTILS_TYPES__Manifest_Init = Array<A_UTILS_TYPES__Manifest_ComponentLevelConfig>;
643
+ type A_UTILS_TYPES__Manifest_ComponentLevelConfig<T extends A_Component = A_Component> = {
644
+ /**
645
+ * Component constructor
646
+ */
647
+ component: A_TYPES__Component_Constructor<T>;
648
+ /**
649
+ * Method level configurations for the component
650
+ */
651
+ methods?: Array<A_UTILS_TYPES__Manifest_MethodLevelConfig<T>>;
652
+ } & Partial<A_UTILS_TYPES__Manifest_Rules>;
653
+ type A_UTILS_TYPES__Manifest_MethodLevelConfig<T extends A_Component = A_Component> = {
654
+ /**
655
+ * Method name from the component provided
656
+ */
657
+ method: string | RegExp;
658
+ } & Partial<A_UTILS_TYPES__Manifest_Rules>;
659
+ type A_UTILS_TYPES__Manifest_Rules = {
660
+ /**
661
+ * A list of entities to which a component is applied
662
+ *
663
+ * By default is for all
664
+ */
665
+ apply: Array<A_UTILS_TYPES__Manifest_AllowedComponents> | RegExp;
666
+ /**
667
+ * A list of entities to which a component is excluded
668
+ */
669
+ exclude: Array<A_UTILS_TYPES__Manifest_AllowedComponents> | RegExp;
670
+ };
671
+ type A_UTILS_TYPES__Manifest_AllowedComponents = A_TYPES__Component_Constructor | A_TYPES__Entity_Constructor | A_TYPES__Fragment_Constructor | A_TYPES__Container_Constructor;
672
+ interface A_UTILS_TYPES__ManifestRule {
673
+ componentRegex: RegExp;
674
+ methodRegex: RegExp;
675
+ applyRegex?: RegExp;
676
+ excludeRegex?: RegExp;
677
+ }
678
+ interface A_UTILS_TYPES__ManifestQuery {
679
+ component: A_TYPES__Component_Constructor;
680
+ method: string;
681
+ target: A_UTILS_TYPES__Manifest_AllowedComponents;
682
+ }
683
+
684
+ /**
685
+ * Fluent API for checking manifest permissions
686
+ */
687
+ declare class A_ManifestChecker {
688
+ private manifest;
689
+ private component;
690
+ private method;
691
+ private checkExclusion;
692
+ constructor(manifest: A_Manifest, component: A_TYPES__Component_Constructor, method: string, checkExclusion?: boolean);
693
+ for(target: A_UTILS_TYPES__Manifest_AllowedComponents): boolean;
694
+ }
695
+
696
+ declare class A_Manifest extends A_Fragment {
697
+ private rules;
698
+ /**
699
+ * A-Manifest is a configuration set that allows to include or exclude component application for the particular methods.
700
+ *
701
+ * For example, if A-Scope provides polymorphic A-Component that applies for All A-Entities in it but you have another component that should be used for only One particular Entity, you can use A-Manifest to specify this behavior.
702
+ *
703
+ *
704
+ * By default if Component is provided in the scope - it applies for all entities in it. However, if you want to exclude some entities or include only some entities for the particular component - you can use A-Manifest to define this behavior.
705
+ *
706
+ * @param config - Array of component configurations
707
+ */
708
+ constructor(config?: A_UTILS_TYPES__Manifest_Init);
709
+ /**
710
+ * Should convert received configuration into internal Regexp applicable for internal storage
711
+ */
712
+ protected prepare(config: A_UTILS_TYPES__Manifest_Init): void;
713
+ /**
714
+ * Process a single configuration item and convert it to internal rules
715
+ */
716
+ private processConfigItem;
717
+ /**
718
+ * Convert a constructor to a regex pattern
719
+ */
720
+ private constructorToRegex;
721
+ /**
722
+ * Convert a method name or regex to a regex pattern
723
+ */
724
+ private methodToRegex;
725
+ /**
726
+ * Convert allowed components array or regex to a single regex
727
+ */
728
+ private allowedComponentsToRegex;
729
+ /**
730
+ * Escape special regex characters in a string
731
+ */
732
+ private escapeRegex;
733
+ protected configItemToRegexp(item: A_TYPES__Component_Constructor): RegExp;
734
+ protected ID(component: A_TYPES__Component_Constructor, method: string): string;
735
+ /**
736
+ * Check if a component and method combination is allowed for a target
737
+ */
738
+ isAllowed<T extends A_Component>(ctor: T | A_TYPES__Component_Constructor<T>, method: string): A_ManifestChecker;
739
+ /**
740
+ * Internal method to check if access is allowed
741
+ */
742
+ internal_checkAccess(query: A_UTILS_TYPES__ManifestQuery): boolean;
743
+ isExcluded<T extends A_Component>(ctor: T | A_TYPES__Component_Constructor<T>, method: string): A_ManifestChecker;
744
+ }
745
+
746
+ declare class A_ManifestError extends A_Error {
747
+ static readonly ManifestInitializationError = "A-Manifest Initialization Error";
748
+ }
749
+
750
+ declare class A_Memory<_MemoryType extends Record<string, any> = Record<string, any>, _SerializedType extends Record<string, any> = Record<string, any>> extends A_Fragment {
751
+ /**
752
+ * Internal storage of all intermediate values
753
+ */
754
+ protected _memory: Map<keyof _MemoryType, _MemoryType[keyof _MemoryType]>;
755
+ /**
756
+ * Errors encountered during the execution
757
+ */
758
+ protected _errors: Set<A_Error>;
759
+ /**
760
+ * Memory object that allows to store intermediate values and errors
761
+ *
762
+ * @param initialValues
763
+ */
764
+ constructor(initialValues?: _MemoryType);
765
+ get Errors(): Set<A_Error> | undefined;
766
+ /**
767
+ * Verifies that all required keys are present in the proxy values
768
+ *
769
+ * @param requiredKeys
770
+ * @returns
771
+ */
772
+ verifyPrerequisites(requiredKeys: Array<keyof _MemoryType>): Promise<boolean>;
773
+ /**
774
+ * Adds an error to the context
775
+ *
776
+ * @param error
777
+ */
778
+ error(error: A_Error): Promise<void>;
779
+ /**
780
+ * Retrieves a value from the context memory
781
+ *
782
+ * @param key
783
+ * @returns
784
+ */
785
+ get<K extends keyof _MemoryType>(
786
+ /**
787
+ * Key to retrieve the value for
788
+ */
789
+ key: K): _MemoryType[K] | undefined;
790
+ /**
791
+ * Saves a value in the context memory
792
+ *
793
+ * @param key
794
+ * @param value
795
+ */
796
+ set<K extends keyof _MemoryType>(
797
+ /**
798
+ * Key to save the value under
799
+ */
800
+ key: K,
801
+ /**
802
+ * Value to save
803
+ */
804
+ value: _MemoryType[K]): Promise<void>;
805
+ /**
806
+ * Removes a value from the context memory by key
807
+ *
808
+ * @param key
809
+ */
810
+ drop(key: keyof _MemoryType): Promise<void>;
811
+ /**
812
+ * Clears all stored values in the context memory
813
+ */
814
+ clear(): Promise<void>;
815
+ /**
816
+ * Converts all stored values to a plain object
817
+ *
818
+ * [!] By default uses all saved in memory values
819
+ *
820
+ * @returns
821
+ */
822
+ toJSON(): _SerializedType;
823
+ }
824
+
825
+ type A_UTILS_TYPES__ScheduleObjectConfig = {
826
+ /**
827
+ * If the timeout is cleared, should the promise resolve or reject?
828
+ * BY Default it rejects
829
+ *
830
+ * !!!NOTE: If the property is set to true, the promise will resolve with undefined
831
+ */
832
+ resolveOnClear: boolean;
833
+ };
834
+ type A_UTILS_TYPES__ScheduleObjectCallback<T> = () => Promise<T>;
835
+
836
+ declare class A_ScheduleObject<T extends any = any> {
837
+ private timeout;
838
+ private deferred;
839
+ private config;
840
+ /**
841
+ * Creates a scheduled object that will execute the action after specified milliseconds
842
+ *
843
+ *
844
+ * @param ms - milliseconds to wait before executing the action
845
+ * @param action - the action to execute
846
+ * @param config - configuration options for the schedule object
847
+ */
848
+ constructor(
849
+ /**
850
+ * Milliseconds to wait before executing the action
851
+ */
852
+ ms: number,
853
+ /**
854
+ * The action to execute after the specified milliseconds
855
+ */
856
+ action: A_UTILS_TYPES__ScheduleObjectCallback<T>,
857
+ /**
858
+ * Configuration options for the schedule object
859
+ */
860
+ config?: A_UTILS_TYPES__ScheduleObjectConfig);
861
+ get promise(): Promise<T>;
862
+ clear(): void;
863
+ }
864
+
865
+ declare class A_Schedule extends A_Component {
866
+ /**
867
+ * Allows to schedule a callback for particular time in the future
868
+ *
869
+ * @param timestamp - Unix timestamp in milliseconds
870
+ * @param callback - The callback to execute
871
+ * @returns A promise that resolves to the schedule object
872
+ */
873
+ schedule<T extends any = any>(
874
+ /**
875
+ * Unix timestamp in milliseconds
876
+ */
877
+ timestamp: number,
878
+ /**
879
+ * The callback to execute
880
+ */
881
+ callback: A_UTILS_TYPES__ScheduleObjectCallback<T>,
882
+ /**
883
+ * Configuration options for the schedule object
884
+ */
885
+ config?: A_UTILS_TYPES__ScheduleObjectConfig): Promise<A_ScheduleObject<T>>;
886
+ schedule<T extends any = any>(
887
+ /**
888
+ * ISO date string representing the date and time to schedule the callback for
889
+ */
890
+ date: string,
891
+ /**
892
+ * The callback to execute
893
+ */
894
+ callback: A_UTILS_TYPES__ScheduleObjectCallback<T>,
895
+ /**
896
+ * Configuration options for the schedule object
897
+ */
898
+ config?: A_UTILS_TYPES__ScheduleObjectConfig): Promise<A_ScheduleObject<T>>;
899
+ /**
900
+ * Allows to execute callback after particular delay in milliseconds
901
+ * So the callback will be executed after the specified delay
902
+ *
903
+ * @param ms
904
+ */
905
+ delay<T extends any = any>(
906
+ /**
907
+ * Delay in milliseconds
908
+ */
909
+ ms: number,
910
+ /**
911
+ * The callback to execute after the delay
912
+ */
913
+ callback: A_UTILS_TYPES__ScheduleObjectCallback<T>,
914
+ /**
915
+ * Configuration options for the schedule object
916
+ */
917
+ config?: A_UTILS_TYPES__ScheduleObjectConfig): Promise<A_ScheduleObject<T>>;
918
+ }
919
+
920
+ declare class A_Deferred<T> {
921
+ promise: Promise<T>;
922
+ private resolveFn;
923
+ private rejectFn;
924
+ /**
925
+ * Creates a deferred promise
926
+ * @returns A promise that can be resolved or rejected later
927
+ */
928
+ constructor();
929
+ resolve(value: T | PromiseLike<T>): void;
930
+ reject(reason?: any): void;
931
+ }
932
+
933
+ export { A_CONSTANTS_A_Command_Features, type A_CONSTANTS__A_Command_Event, A_CONSTANTS__A_Command_Status, A_CONSTANTS__CONFIG_ENV_VARIABLES, A_CONSTANTS__CONFIG_ENV_VARIABLES_ARRAY, A_Channel, A_ChannelError, A_Command, A_CommandError, A_Config, A_ConfigError, A_ConfigLoader, A_Deferred, A_Logger, A_Manifest, A_ManifestChecker, A_ManifestError, A_Memory, A_Polyfill, A_Schedule, A_ScheduleObject, type A_TYPES__CommandMeta, A_TYPES__CommandMetaKey, type A_TYPES__Command_Constructor, type A_TYPES__Command_Init, type A_TYPES__Command_Listener, type A_TYPES__Command_Serialized, type A_TYPES__ConfigContainerConstructor, type A_TYPES__ConfigENVVariables, A_TYPES__ConfigFeature, type A_UTILS_TYPES__ManifestQuery, type A_UTILS_TYPES__ManifestRule, type A_UTILS_TYPES__Manifest_AllowedComponents, type A_UTILS_TYPES__Manifest_ComponentLevelConfig, type A_UTILS_TYPES__Manifest_Init, type A_UTILS_TYPES__Manifest_MethodLevelConfig, type A_UTILS_TYPES__Manifest_Rules, type A_UTILS_TYPES__ScheduleObjectCallback, type A_UTILS_TYPES__ScheduleObjectConfig, ConfigReader, ENVConfigReader, FileConfigReader, type IbufferInterface, type IcryptoInterface, type Ifspolyfill, type IhttpInterface, type IhttpsInterface, type IpathInterface, type IprocessInterface, type IurlInterface };