@fractal_cloud/sdk 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +196 -2
- package/dist/index.cjs +1493 -0
- package/dist/index.d.cts +1176 -0
- package/dist/index.d.mts +1176 -0
- package/dist/index.mjs +1454 -0
- package/package.json +7 -6
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,1176 @@
|
|
|
1
|
+
//#region src/values/kebab_case_string.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Represents a string formatted in kebab-case.
|
|
4
|
+
* Kebab-case is a naming convention where words are
|
|
5
|
+
* concatenated together, separated by hyphens, and all
|
|
6
|
+
* characters are in lowercase.
|
|
7
|
+
*
|
|
8
|
+
* This type enforces the structure of a string that adheres
|
|
9
|
+
* to the kebab-case standard. It is typically used in contexts
|
|
10
|
+
* where consistent, hyphen-delimited identifiers are required.
|
|
11
|
+
*/
|
|
12
|
+
type KebabCaseString$1 = {
|
|
13
|
+
kebabValue: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Builder interface for constructing KebabCaseString objects.
|
|
17
|
+
* Provides a fluent API for setting and validating Kebab case strings.
|
|
18
|
+
*/
|
|
19
|
+
type KebabCaseStringBuilder = {
|
|
20
|
+
/**
|
|
21
|
+
* Sets the value of the KebabCaseString.
|
|
22
|
+
* @param value - The string value in Kebab case format
|
|
23
|
+
* @returns The builder instance for method chaining
|
|
24
|
+
* @throws {RangeError} If the input is not in Kebab case format
|
|
25
|
+
*/
|
|
26
|
+
withValue: (value: string) => KebabCaseStringBuilder;
|
|
27
|
+
/**
|
|
28
|
+
* Resets the builder to its default state, clearing the current value.
|
|
29
|
+
* @returns The builder instance for method chaining
|
|
30
|
+
*/
|
|
31
|
+
reset: () => KebabCaseStringBuilder;
|
|
32
|
+
/**
|
|
33
|
+
* Constructs and returns the final KebabCaseString object.
|
|
34
|
+
* @returns The constructed KebabCaseString object
|
|
35
|
+
* @throws {SyntaxError} If no value has been set before building
|
|
36
|
+
*/
|
|
37
|
+
build: () => KebabCaseString$1;
|
|
38
|
+
};
|
|
39
|
+
declare namespace KebabCaseString$1 {
|
|
40
|
+
const getBuilder: () => KebabCaseStringBuilder;
|
|
41
|
+
}
|
|
42
|
+
//#endregion
|
|
43
|
+
//#region src/component/id.d.ts
|
|
44
|
+
/**
|
|
45
|
+
* Represents a unique identifier for a component, adhering to a kebab-case format.
|
|
46
|
+
* Provides functionality to compare two ComponentId instances for equality.
|
|
47
|
+
*
|
|
48
|
+
* @typedef {Object} ComponentId
|
|
49
|
+
* @property {KebabCaseString} value - The string representation of the component identifier in kebab-case format.
|
|
50
|
+
* @property {function(ComponentId): boolean} equals - A method to check if the given ComponentId is equal to the current instance.
|
|
51
|
+
*/
|
|
52
|
+
type ComponentId = {
|
|
53
|
+
value: KebabCaseString$1;
|
|
54
|
+
equals: (other: ComponentId) => boolean;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Builder interface for constructing ComponentId instances.
|
|
58
|
+
*
|
|
59
|
+
* The builder follows a fluent API pattern, allowing method chaining to configure
|
|
60
|
+
* the component identifier before building the final instance. It validates the
|
|
61
|
+
* component ID upon build and throws a SyntaxError if validation fails.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* const componentId = getComponentIdBuilder()
|
|
66
|
+
* .withValue(someKebabCaseString)
|
|
67
|
+
* .build();
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
type ComponentIdBuilder = {
|
|
71
|
+
/**
|
|
72
|
+
* Sets the kebab-case string value for the component identifier.
|
|
73
|
+
*
|
|
74
|
+
* @param {KebabCaseString} value - The kebab-case string value to use for the component ID.
|
|
75
|
+
* @returns {ComponentIdBuilder} The builder instance for method chaining.
|
|
76
|
+
*/
|
|
77
|
+
withValue: (value: KebabCaseString$1) => ComponentIdBuilder;
|
|
78
|
+
/**
|
|
79
|
+
* Resets the builder to its default state, clearing all configured values.
|
|
80
|
+
*
|
|
81
|
+
* @returns {ComponentIdBuilder} The builder instance for method chaining.
|
|
82
|
+
*/
|
|
83
|
+
reset: () => ComponentIdBuilder;
|
|
84
|
+
/**
|
|
85
|
+
* Constructs and validates the ComponentId instance.
|
|
86
|
+
*
|
|
87
|
+
* @returns {ComponentId} The constructed and validated component identifier.
|
|
88
|
+
* @throws {SyntaxError} If the component ID fails validation.
|
|
89
|
+
*/
|
|
90
|
+
build: () => ComponentId;
|
|
91
|
+
};
|
|
92
|
+
//#endregion
|
|
93
|
+
//#region src/values/owner_type.d.ts
|
|
94
|
+
/**
|
|
95
|
+
* Enum representing the type of ownership for an entity.
|
|
96
|
+
*
|
|
97
|
+
* This enumeration can be used to differentiate between entities owned by individuals
|
|
98
|
+
* and those owned by organizations.
|
|
99
|
+
*
|
|
100
|
+
* @enum {string}
|
|
101
|
+
* @readonly
|
|
102
|
+
* @property {string} Personal - Represents ownership by an individual person.
|
|
103
|
+
* @property {string} Organizational - Represents ownership by an organization or group.
|
|
104
|
+
*/
|
|
105
|
+
declare enum OwnerType$1 {
|
|
106
|
+
Personal = "Personal",
|
|
107
|
+
Organizational = "Organizational"
|
|
108
|
+
}
|
|
109
|
+
//#endregion
|
|
110
|
+
//#region src/values/owner_id.d.ts
|
|
111
|
+
/**
|
|
112
|
+
* Represents a string that adheres to the OwnerId naming convention.
|
|
113
|
+
* This convention capitalizes the first letter of each concatenated word without any spaces, dashes, or underscores.
|
|
114
|
+
*/
|
|
115
|
+
type OwnerId$1 = {
|
|
116
|
+
ownerIdValue: string;
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* Builder interface for constructing OwnerId objects.
|
|
120
|
+
* Provides a fluent API for setting and validating uuid strings.
|
|
121
|
+
*/
|
|
122
|
+
type OwnerIdBuilder = {
|
|
123
|
+
/**
|
|
124
|
+
* Sets the value of the OwnerId.
|
|
125
|
+
* @param value - The string value in uuid format
|
|
126
|
+
* @returns The builder instance for method chaining
|
|
127
|
+
* @throws {RangeError} If the input is not in uuid case format
|
|
128
|
+
*/
|
|
129
|
+
withValue: (value: string) => OwnerIdBuilder;
|
|
130
|
+
/**
|
|
131
|
+
* Resets the builder to its default state, clearing the current value.
|
|
132
|
+
* @returns The builder instance for method chaining
|
|
133
|
+
*/
|
|
134
|
+
reset: () => OwnerIdBuilder;
|
|
135
|
+
/**
|
|
136
|
+
* Constructs and returns the final OwnerId object.
|
|
137
|
+
* @returns The constructed OwnerId object
|
|
138
|
+
* @throws {SyntaxError} If no value has been set before building
|
|
139
|
+
*/
|
|
140
|
+
build: () => OwnerId$1;
|
|
141
|
+
};
|
|
142
|
+
declare namespace OwnerId$1 {
|
|
143
|
+
const getBuilder: () => OwnerIdBuilder;
|
|
144
|
+
}
|
|
145
|
+
//#endregion
|
|
146
|
+
//#region src/bounded_context/id.d.ts
|
|
147
|
+
/**
|
|
148
|
+
* Represents the unique identifier for a bounded context.
|
|
149
|
+
*
|
|
150
|
+
* A bounded context is a distinct and cohesive domain of responsibility
|
|
151
|
+
* within a larger distributed system or domain, and this type
|
|
152
|
+
* provides the necessary information to identify it.
|
|
153
|
+
*
|
|
154
|
+
* @typedef {Object} BoundedContextId
|
|
155
|
+
*
|
|
156
|
+
* @property {OwnerType} ownerType - The type of the owner associated with the bounded context.
|
|
157
|
+
* @property {OwnerId} ownerId - The unique identifier of the owner.
|
|
158
|
+
* @property {KebabCaseString} name - The name of the bounded context, formatted as a kebab-case string.
|
|
159
|
+
*/
|
|
160
|
+
type BoundedContextId = {
|
|
161
|
+
ownerType: OwnerType$1;
|
|
162
|
+
ownerId: OwnerId$1;
|
|
163
|
+
name: KebabCaseString$1;
|
|
164
|
+
equals: (other: BoundedContextId) => boolean;
|
|
165
|
+
toString: () => string;
|
|
166
|
+
};
|
|
167
|
+
/**
|
|
168
|
+
* Builder interface for constructing Id objects.
|
|
169
|
+
* Provides a fluent API for setting and validating bounded context identifiers.
|
|
170
|
+
*/
|
|
171
|
+
type BoundedContextIdBuilder = {
|
|
172
|
+
/**
|
|
173
|
+
* Sets the owner type of the Id.
|
|
174
|
+
* @param ownerType - The type of the owner (e.g., Personal, Organization)
|
|
175
|
+
* @returns The builder instance for method chaining
|
|
176
|
+
*/
|
|
177
|
+
withOwnerType: (ownerType: OwnerType$1) => BoundedContextIdBuilder;
|
|
178
|
+
/**
|
|
179
|
+
* Sets the owner ID of the Id.
|
|
180
|
+
* @param ownerId - The unique identifier of the owner
|
|
181
|
+
* @returns The builder instance for method chaining
|
|
182
|
+
*/
|
|
183
|
+
withOwnerId: (ownerId: OwnerId$1) => BoundedContextIdBuilder;
|
|
184
|
+
/**
|
|
185
|
+
* Sets the name of the Id.
|
|
186
|
+
* @param name - The name in kebab-case format
|
|
187
|
+
* @returns The builder instance for method chaining
|
|
188
|
+
*/
|
|
189
|
+
withName: (name: KebabCaseString$1) => BoundedContextIdBuilder;
|
|
190
|
+
/**
|
|
191
|
+
* Resets the builder to its default state, restoring all default values.
|
|
192
|
+
* @returns The builder instance for method chaining
|
|
193
|
+
*/
|
|
194
|
+
reset: () => BoundedContextIdBuilder;
|
|
195
|
+
/**
|
|
196
|
+
* Constructs and returns the final Id object.
|
|
197
|
+
* @returns The constructed Id object
|
|
198
|
+
* @throws {SyntaxError} If the resulting Id is invalid
|
|
199
|
+
*/
|
|
200
|
+
build: () => BoundedContextId;
|
|
201
|
+
};
|
|
202
|
+
//#endregion
|
|
203
|
+
//#region src/bounded_context/entity.d.ts
|
|
204
|
+
/**
|
|
205
|
+
* Creates a builder for constructing a BoundedContext object with a fluid API.
|
|
206
|
+
*
|
|
207
|
+
* The `getBoundedContextBuilder` function returns an object with methods that allow incremental construction
|
|
208
|
+
* of a `BoundedContext` instance. It ensures validation at the `build()` step and supports resets
|
|
209
|
+
* to default values.
|
|
210
|
+
*
|
|
211
|
+
* @function
|
|
212
|
+
* @returns {BoundedContextBuilder} A builder object for creating a `BoundedContext` instance.
|
|
213
|
+
*
|
|
214
|
+
* @throws {SyntaxError} Thrown when attempting to build a `BoundedContext` instance
|
|
215
|
+
* that is invalid, such as when required fields are not initialized.
|
|
216
|
+
*/
|
|
217
|
+
/**
|
|
218
|
+
* Builder interface for constructing BoundedContext objects.
|
|
219
|
+
* Provides a fluent API for setting and validating bounded context properties.
|
|
220
|
+
*/
|
|
221
|
+
type BoundedContextBuilder = {
|
|
222
|
+
/**
|
|
223
|
+
* Sets the ID of the BoundedContext.
|
|
224
|
+
* @param id - The unique identifier for the bounded context
|
|
225
|
+
* @returns The builder instance for method chaining
|
|
226
|
+
*/
|
|
227
|
+
withId: (id: BoundedContextId) => BoundedContextBuilder;
|
|
228
|
+
/**
|
|
229
|
+
* Sets the display name of the BoundedContext.
|
|
230
|
+
* @param displayName - The human-readable name for the bounded context
|
|
231
|
+
* @returns The builder instance for method chaining
|
|
232
|
+
*/
|
|
233
|
+
withDisplayName: (displayName: string) => BoundedContextBuilder;
|
|
234
|
+
/**
|
|
235
|
+
* Sets the description of the BoundedContext.
|
|
236
|
+
* @param description - An optional description providing additional details about the bounded context's purpose or scope
|
|
237
|
+
* @returns The builder instance for method chaining
|
|
238
|
+
*/
|
|
239
|
+
withDescription: (description: string) => BoundedContextBuilder;
|
|
240
|
+
/**
|
|
241
|
+
* Resets the builder to its default state, clearing all current values.
|
|
242
|
+
* @returns The builder instance for method chaining
|
|
243
|
+
*/
|
|
244
|
+
reset: () => BoundedContextBuilder;
|
|
245
|
+
/**
|
|
246
|
+
* Constructs and returns the final BoundedContext object.
|
|
247
|
+
* @returns The constructed BoundedContext object
|
|
248
|
+
* @throws {SyntaxError} If the bounded context is invalid (e.g., missing required fields)
|
|
249
|
+
*/
|
|
250
|
+
build: () => BoundedContext$1;
|
|
251
|
+
};
|
|
252
|
+
//#endregion
|
|
253
|
+
//#region src/bounded_context/index.d.ts
|
|
254
|
+
declare namespace BoundedContext$1 {
|
|
255
|
+
type Id = BoundedContextId;
|
|
256
|
+
namespace Id {
|
|
257
|
+
type Builder = BoundedContextIdBuilder;
|
|
258
|
+
const getBuilder: () => BoundedContextIdBuilder;
|
|
259
|
+
}
|
|
260
|
+
type Builder = BoundedContextBuilder;
|
|
261
|
+
const getBuilder: () => BoundedContextBuilder;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* A Bounded Context in Fractal Cloud is the mechanism that:
|
|
265
|
+
* - Maps infrastructure to business domains
|
|
266
|
+
* - Defines ownership and access boundaries
|
|
267
|
+
* - Enables self-service without sacrificing control
|
|
268
|
+
* - Allows large organizations to scale Fractal usage safely
|
|
269
|
+
*
|
|
270
|
+
* @typedef {Object} BoundedContext
|
|
271
|
+
* @property {BoundedContext.Id} id - A unique identifier for the bounded context.
|
|
272
|
+
* @property {string} displayName - A human-readable name for the bounded context.
|
|
273
|
+
* @property {string} [description] - An optional description providing additional details about the bounded context's purpose or scope.
|
|
274
|
+
*/
|
|
275
|
+
type BoundedContext$1 = {
|
|
276
|
+
id: BoundedContext$1.Id;
|
|
277
|
+
displayName: string;
|
|
278
|
+
description?: string;
|
|
279
|
+
};
|
|
280
|
+
//#endregion
|
|
281
|
+
//#region src/values/version.d.ts
|
|
282
|
+
/**
|
|
283
|
+
* Represents a semantic version following the major.minor.patch format.
|
|
284
|
+
*
|
|
285
|
+
* This type is used to define a version number, where:
|
|
286
|
+
* - `major` indicates the major version, typically incremented for incompatible API changes.
|
|
287
|
+
* - `minor` indicates the minor version, incremented for backwards-compatible enhancements or features.
|
|
288
|
+
* - `patch` indicates the patch version, incremented for backwards-compatible bug fixes.
|
|
289
|
+
*/
|
|
290
|
+
type Version$1 = {
|
|
291
|
+
major: number;
|
|
292
|
+
minor: number;
|
|
293
|
+
patch: number;
|
|
294
|
+
equals: (other: Version$1) => boolean;
|
|
295
|
+
toString: () => string;
|
|
296
|
+
};
|
|
297
|
+
/**
|
|
298
|
+
* Builder interface for constructing version objects.
|
|
299
|
+
* Provides a fluent API for setting version components.
|
|
300
|
+
*/
|
|
301
|
+
type VersionBuilder = {
|
|
302
|
+
/**
|
|
303
|
+
* Sets the major version number.
|
|
304
|
+
* @param major - The major version number
|
|
305
|
+
* @returns The builder instance for method chaining
|
|
306
|
+
*/
|
|
307
|
+
withMajor: (major: number) => VersionBuilder;
|
|
308
|
+
/**
|
|
309
|
+
* Sets the minor version number.
|
|
310
|
+
* @param minor - The minor version number
|
|
311
|
+
* @returns The builder instance for method chaining
|
|
312
|
+
*/
|
|
313
|
+
withMinor: (minor: number) => VersionBuilder;
|
|
314
|
+
/**
|
|
315
|
+
* Sets the patch version number.
|
|
316
|
+
* @param patch - The patch version number
|
|
317
|
+
* @returns The builder instance for method chaining
|
|
318
|
+
*/
|
|
319
|
+
withPatch: (patch: number) => VersionBuilder;
|
|
320
|
+
/**
|
|
321
|
+
* Resets the version to default values (0.0.0).
|
|
322
|
+
* @returns The builder instance for method chaining
|
|
323
|
+
*/
|
|
324
|
+
reset: () => VersionBuilder;
|
|
325
|
+
/**
|
|
326
|
+
* Constructs and returns the final version object.
|
|
327
|
+
* @returns The constructed Version object
|
|
328
|
+
* @throws {SyntaxError} If the version is not initialized
|
|
329
|
+
*/
|
|
330
|
+
build: () => Version$1;
|
|
331
|
+
};
|
|
332
|
+
declare namespace Version$1 {
|
|
333
|
+
const getBuilder: () => VersionBuilder;
|
|
334
|
+
}
|
|
335
|
+
//#endregion
|
|
336
|
+
//#region src/fractal/id.d.ts
|
|
337
|
+
/**
|
|
338
|
+
* Represents a unique identifier for a fractal within a system.
|
|
339
|
+
* The FractalId consists of a bounded context identifier, a name in kebab case,
|
|
340
|
+
* a version, and a string representation method.
|
|
341
|
+
*
|
|
342
|
+
* @typedef {Object} FractalId
|
|
343
|
+
* @property {BoundedContext.Id} boundedContextId - The identifier for the bounded context to which the fractal belongs.
|
|
344
|
+
* @property {KebabCaseString} name - The name of the fractal represented in kebab-case format.
|
|
345
|
+
* @property {Version} version - The version of the fractal.
|
|
346
|
+
* @property {function(): string} toString - Returns a string representation of the FractalId.
|
|
347
|
+
*/
|
|
348
|
+
type FractalId = {
|
|
349
|
+
boundedContextId: BoundedContext$1.Id;
|
|
350
|
+
name: KebabCaseString$1;
|
|
351
|
+
version: Version$1;
|
|
352
|
+
toString: () => string;
|
|
353
|
+
};
|
|
354
|
+
/**
|
|
355
|
+
* Represents a builder for creating and configuring instances of a FractalId.
|
|
356
|
+
* This builder follows a fluent API design, enabling chaining of methods
|
|
357
|
+
* for greater flexibility and readability.
|
|
358
|
+
*/
|
|
359
|
+
type FractalIdBuilder = {
|
|
360
|
+
/**
|
|
361
|
+
* Assigns a bounded context identifier to the FractalIdBuilder.
|
|
362
|
+
*
|
|
363
|
+
* @param {BoundedContext.Id} value - The unique identifier for the bounded context to be associated.
|
|
364
|
+
* @returns {FractalIdBuilder} The updated instance of FractalIdBuilder with the specified bounded context ID applied.
|
|
365
|
+
*/
|
|
366
|
+
withBoundedContextId: (value: BoundedContext$1.Id) => FractalIdBuilder;
|
|
367
|
+
/**
|
|
368
|
+
* Assigns a name, in kebab-case format, to the current Fractal ID being constructed.
|
|
369
|
+
*
|
|
370
|
+
* @param {KebabCaseString} name - The name to associate with the Fractal ID. Must follow kebab-case formatting.
|
|
371
|
+
* @returns {FractalIdBuilder} The updated builder instance, allowing for method chaining.
|
|
372
|
+
*/
|
|
373
|
+
withName: (name: KebabCaseString$1) => FractalIdBuilder;
|
|
374
|
+
/**
|
|
375
|
+
* Sets the version information for the FractalIdBuilder instance.
|
|
376
|
+
*
|
|
377
|
+
* @param {Version} version - The version to be associated with the Fractal ID.
|
|
378
|
+
* @returns {FractalIdBuilder} The updated instance of FractalIdBuilder with the specified version.
|
|
379
|
+
*/
|
|
380
|
+
withVersion: (version: Version$1) => FractalIdBuilder;
|
|
381
|
+
/**
|
|
382
|
+
* Resets the state of the current FractalIdBuilder instance to its initial default configuration.
|
|
383
|
+
* This method is typically used to clear any modifications made and start fresh.
|
|
384
|
+
*
|
|
385
|
+
* @returns {FractalIdBuilder} The current instance of FractalIdBuilder for method chaining.
|
|
386
|
+
*/
|
|
387
|
+
reset: () => FractalIdBuilder;
|
|
388
|
+
/**
|
|
389
|
+
* Generates a FractalId object based on the current state or configuration.
|
|
390
|
+
*
|
|
391
|
+
* The `build` function serves to construct and return a fully initialized
|
|
392
|
+
* instance of a FractalId. This function encapsulates the logic needed
|
|
393
|
+
* to assemble the FractalId, ensuring all necessary components are properly
|
|
394
|
+
* configured and validated before being returned.
|
|
395
|
+
*
|
|
396
|
+
* @returns {FractalId} A fully constructed FractalId object.
|
|
397
|
+
*/
|
|
398
|
+
build: () => FractalId;
|
|
399
|
+
};
|
|
400
|
+
//#endregion
|
|
401
|
+
//#region src/values/pascal_case_string.d.ts
|
|
402
|
+
/**
|
|
403
|
+
* Represents a string that adheres to the PascalCase naming convention.
|
|
404
|
+
* This convention capitalizes the first letter of each concatenated word without any spaces, dashes, or underscores.
|
|
405
|
+
* Commonly used in naming conventions for programming constructs such as types, classes, or enums.
|
|
406
|
+
*/
|
|
407
|
+
type PascalCaseString$1 = {
|
|
408
|
+
pascalValue: string;
|
|
409
|
+
};
|
|
410
|
+
/**
|
|
411
|
+
* Builder interface for constructing PascalCaseString objects.
|
|
412
|
+
* Provides a fluent API for setting and validating Pascal case strings.
|
|
413
|
+
*/
|
|
414
|
+
type PascalCaseStringBuilder = {
|
|
415
|
+
/**
|
|
416
|
+
* Sets the value of the PascalCaseString.
|
|
417
|
+
* @param value - The string value in Pascal case format
|
|
418
|
+
* @returns The builder instance for method chaining
|
|
419
|
+
* @throws {RangeError} If the input is not in Pascal case format
|
|
420
|
+
*/
|
|
421
|
+
withValue: (value: string) => PascalCaseStringBuilder;
|
|
422
|
+
/**
|
|
423
|
+
* Resets the builder to its default state, clearing the current value.
|
|
424
|
+
* @returns The builder instance for method chaining
|
|
425
|
+
*/
|
|
426
|
+
reset: () => PascalCaseStringBuilder;
|
|
427
|
+
/**
|
|
428
|
+
* Constructs and returns the final PascalCaseString object.
|
|
429
|
+
* @returns The constructed PascalCaseString object
|
|
430
|
+
* @throws {SyntaxError} If no value has been set before building
|
|
431
|
+
*/
|
|
432
|
+
build: () => PascalCaseString$1;
|
|
433
|
+
};
|
|
434
|
+
declare namespace PascalCaseString$1 {
|
|
435
|
+
const getBuilder: () => PascalCaseStringBuilder;
|
|
436
|
+
}
|
|
437
|
+
//#endregion
|
|
438
|
+
//#region src/values/infrastructure_domain.d.ts
|
|
439
|
+
/**
|
|
440
|
+
* Enumeration representing various infrastructure domains.
|
|
441
|
+
* These domains categorize components or services
|
|
442
|
+
* within an infrastructure system.
|
|
443
|
+
*
|
|
444
|
+
* @enum {string}
|
|
445
|
+
* @property {string} ApiManagement - Represents API management-related components.
|
|
446
|
+
* @property {string} NetworkAndCompute - Represents network and compute components.
|
|
447
|
+
* @property {string} CustomWorkloads - Represents custom workload components.
|
|
448
|
+
* @property {string} Messaging - Represents messaging and communication components.
|
|
449
|
+
* @property {string} Storage - Represents data storage components.
|
|
450
|
+
* @property {string} Observability - Represents observability tools and monitoring components.
|
|
451
|
+
* @property {string} Security - Represents security-focused components.
|
|
452
|
+
*/
|
|
453
|
+
declare enum InfrastructureDomain$1 {
|
|
454
|
+
ApiManagement = "APIManagement",
|
|
455
|
+
NetworkAndCompute = "NetworkAndCompute",
|
|
456
|
+
CustomWorkloads = "CustomWorkloads",
|
|
457
|
+
Messaging = "Messaging",
|
|
458
|
+
Storage = "Storage",
|
|
459
|
+
Observability = "Observability",
|
|
460
|
+
Security = "Security"
|
|
461
|
+
}
|
|
462
|
+
//#endregion
|
|
463
|
+
//#region src/component/type.d.ts
|
|
464
|
+
/**
|
|
465
|
+
* Describes a component type within a specific infrastructure domain.
|
|
466
|
+
*
|
|
467
|
+
* This type represents a blueprint for defining components by associating
|
|
468
|
+
* a domain category and a specific name in PascalCase format.
|
|
469
|
+
*
|
|
470
|
+
* @typedef {Object} ComponentType
|
|
471
|
+
* @property {InfrastructureDomain} domain - The domain category to which the component belongs.
|
|
472
|
+
* @property {PascalCaseString} name - The name of the component, formatted using PascalCase.
|
|
473
|
+
*/
|
|
474
|
+
type ComponentType = {
|
|
475
|
+
domain: InfrastructureDomain$1;
|
|
476
|
+
name: PascalCaseString$1;
|
|
477
|
+
};
|
|
478
|
+
/**
|
|
479
|
+
* A builder interface for constructing Type objects in a fluent and type-safe manner.
|
|
480
|
+
*
|
|
481
|
+
* The TypeBuilder provides methods to configure a Type's properties step-by-step,
|
|
482
|
+
* validate the configuration, and produce an immutable Type instance. It follows
|
|
483
|
+
* the builder pattern, allowing method chaining for a more readable API.
|
|
484
|
+
*
|
|
485
|
+
* @typedef {Object} ComponentTypeBuilder
|
|
486
|
+
*/
|
|
487
|
+
type ComponentTypeBuilder = {
|
|
488
|
+
/**
|
|
489
|
+
* Sets the infrastructure domain for the type being built.
|
|
490
|
+
*
|
|
491
|
+
* @param {InfrastructureDomain} domain - The infrastructure domain to associate with the type.
|
|
492
|
+
* @returns {ComponentTypeBuilder} The builder instance for method chaining.
|
|
493
|
+
*/
|
|
494
|
+
withInfrastructureDomain: (domain: InfrastructureDomain$1) => ComponentTypeBuilder;
|
|
495
|
+
/**
|
|
496
|
+
* Sets the PascalCase name for the type being built.
|
|
497
|
+
*
|
|
498
|
+
* @param {PascalCaseString} name - The PascalCase formatted name for the type.
|
|
499
|
+
* @returns {ComponentTypeBuilder} The builder instance for method chaining.
|
|
500
|
+
*/
|
|
501
|
+
withName: (name: PascalCaseString$1) => ComponentTypeBuilder;
|
|
502
|
+
/**
|
|
503
|
+
* Resets the builder's internal state to default values.
|
|
504
|
+
*
|
|
505
|
+
* This method clears all previously configured properties and returns
|
|
506
|
+
* the builder to its initial state, allowing it to be reused for
|
|
507
|
+
* constructing a new Type instance.
|
|
508
|
+
*
|
|
509
|
+
* @returns {ComponentTypeBuilder} The builder instance for method chaining.
|
|
510
|
+
*/
|
|
511
|
+
reset: () => ComponentTypeBuilder;
|
|
512
|
+
/**
|
|
513
|
+
* Validates and constructs the final Type object.
|
|
514
|
+
*
|
|
515
|
+
* This method performs validation on the configured properties to ensure
|
|
516
|
+
* the Type is valid (domain must be initialized and name must be in PascalCase).
|
|
517
|
+
* If validation fails, a SyntaxError is thrown.
|
|
518
|
+
*
|
|
519
|
+
* @returns {ComponentType} An immutable Type instance with the configured properties.
|
|
520
|
+
* @throws {SyntaxError} If the type configuration is invalid.
|
|
521
|
+
*/
|
|
522
|
+
build: () => ComponentType;
|
|
523
|
+
};
|
|
524
|
+
//#endregion
|
|
525
|
+
//#region src/values/generic_parameters.d.ts
|
|
526
|
+
/**
|
|
527
|
+
* Represents a type definition for Parameters, which provides methods to retrieve required
|
|
528
|
+
* and optional fields by their corresponding names.
|
|
529
|
+
*
|
|
530
|
+
* @typedef {Object} GenericParameters
|
|
531
|
+
*
|
|
532
|
+
* @property {Function} getRequiredFieldByName - Retrieves a required field by its name.
|
|
533
|
+
* Expects a string as input representing the field name and returns a record where keys
|
|
534
|
+
* are of type string and values are objects.
|
|
535
|
+
*
|
|
536
|
+
* @property {Function} getOptionalFieldByName - Retrieves an optional field by its name.
|
|
537
|
+
* Expects a string as input representing the field name and returns a record where keys
|
|
538
|
+
* are of type string and values are objects.
|
|
539
|
+
*/
|
|
540
|
+
type GenericParameters = {
|
|
541
|
+
getRequiredFieldByName: (name: string) => Record<string, object>;
|
|
542
|
+
getOptionalFieldByName: (name: string) => Record<string, object>;
|
|
543
|
+
getAllFieldNames: () => string[];
|
|
544
|
+
push: (key: string, value: Record<string, object>) => void;
|
|
545
|
+
remove: (key: string) => void;
|
|
546
|
+
toMap: () => Record<string, object>;
|
|
547
|
+
};
|
|
548
|
+
//#endregion
|
|
549
|
+
//#region src/component/link.d.ts
|
|
550
|
+
/**
|
|
551
|
+
* Represents a link object with an identifier, type, and associated parameters.
|
|
552
|
+
*
|
|
553
|
+
* @typedef {Object} ComponentLink
|
|
554
|
+
* @property {ComponentId} id - The unique identifier for the link.
|
|
555
|
+
* @property {ComponentType} type - The type of the link, indicating its category or purpose.
|
|
556
|
+
* @property {GenericParameters} parameters - A dictionary of configuration parameters,
|
|
557
|
+
* where keys are setting names and values are their corresponding configuration objects.
|
|
558
|
+
*/
|
|
559
|
+
type ComponentLink = {
|
|
560
|
+
id: ComponentId;
|
|
561
|
+
type: ComponentType;
|
|
562
|
+
parameters: GenericParameters;
|
|
563
|
+
};
|
|
564
|
+
/**
|
|
565
|
+
* A builder interface for constructing ComponentLink objects in a fluent and type-safe manner.
|
|
566
|
+
*
|
|
567
|
+
* The LinkBuilder provides methods to configure a ComponentLink's properties step-by-step,
|
|
568
|
+
* validate the configuration, and produce an immutable ComponentLink instance. It follows
|
|
569
|
+
* the builder pattern, allowing method chaining for a more readable API.
|
|
570
|
+
*
|
|
571
|
+
* @typedef {Object} LinkBuilder
|
|
572
|
+
*/
|
|
573
|
+
type LinkBuilder = {
|
|
574
|
+
/**
|
|
575
|
+
* Sets the identifier for the link being built.
|
|
576
|
+
*
|
|
577
|
+
* @param {ComponentId} id - The unique identifier to associate with the link.
|
|
578
|
+
* @returns {LinkBuilder} The builder instance for method chaining.
|
|
579
|
+
*/
|
|
580
|
+
withId: (id: ComponentId) => LinkBuilder;
|
|
581
|
+
/**
|
|
582
|
+
* Sets the type for the link being built.
|
|
583
|
+
*
|
|
584
|
+
* @param {ComponentType} type - The type to associate with the link.
|
|
585
|
+
* @returns {LinkBuilder} The builder instance for method chaining.
|
|
586
|
+
*/
|
|
587
|
+
withType: (type: ComponentType) => LinkBuilder;
|
|
588
|
+
/**
|
|
589
|
+
* Sets the parameters for the link being built.
|
|
590
|
+
*
|
|
591
|
+
* @param {GenericParameters} parameters - The configuration parameters to associate with the link.
|
|
592
|
+
* @returns {LinkBuilder} The builder instance for method chaining.
|
|
593
|
+
*/
|
|
594
|
+
withParameters: (parameters: GenericParameters) => LinkBuilder;
|
|
595
|
+
/**
|
|
596
|
+
* Resets the builder's internal state to default values.
|
|
597
|
+
*
|
|
598
|
+
* This method clears all previously configured properties and returns
|
|
599
|
+
* the builder to its initial state, allowing it to be reused for
|
|
600
|
+
* constructing a new ComponentLink instance.
|
|
601
|
+
*
|
|
602
|
+
* @returns {LinkBuilder} The builder instance for method chaining.
|
|
603
|
+
*/
|
|
604
|
+
reset: () => LinkBuilder;
|
|
605
|
+
/**
|
|
606
|
+
* Validates and constructs the final ComponentLink object.
|
|
607
|
+
*
|
|
608
|
+
* This method performs validation on the configured properties to ensure
|
|
609
|
+
* the ComponentLink is valid (id must be initialized and type must be valid).
|
|
610
|
+
* If validation fails, a SyntaxError is thrown.
|
|
611
|
+
*
|
|
612
|
+
* @returns {ComponentLink} An immutable ComponentLink instance with the configured properties.
|
|
613
|
+
* @throws {SyntaxError} If the link configuration is invalid.
|
|
614
|
+
*/
|
|
615
|
+
build: () => ComponentLink;
|
|
616
|
+
};
|
|
617
|
+
//#endregion
|
|
618
|
+
//#region src/component/dependency.d.ts
|
|
619
|
+
/**
|
|
620
|
+
* Represents a dependency with a specified type.
|
|
621
|
+
*
|
|
622
|
+
* This type can be used to define a specific dependency structure
|
|
623
|
+
* where the `type` property indicates the category or classification
|
|
624
|
+
* of the dependency.
|
|
625
|
+
*
|
|
626
|
+
* @typedef {Object} ComponentDependency
|
|
627
|
+
* @property {Type} type - Specifies the type of the dependency.
|
|
628
|
+
*/
|
|
629
|
+
type ComponentDependency = {
|
|
630
|
+
type: ComponentType;
|
|
631
|
+
};
|
|
632
|
+
//#endregion
|
|
633
|
+
//#region src/component/entity.d.ts
|
|
634
|
+
/**
|
|
635
|
+
* Represents an object structure where the `value` field contains
|
|
636
|
+
* a record of key-value pairs. The keys are strings, and the values
|
|
637
|
+
* are objects.
|
|
638
|
+
*
|
|
639
|
+
* This type is typically used to structure output data and ensure
|
|
640
|
+
* a consistent schema in which string keys map to object values.
|
|
641
|
+
*
|
|
642
|
+
* Example usage of this type might involve representing data returned
|
|
643
|
+
* from a service or API, where the output follows a defined format.
|
|
644
|
+
*/
|
|
645
|
+
type ComponentOutputFields = {
|
|
646
|
+
value: Record<string, object>;
|
|
647
|
+
};
|
|
648
|
+
/**
|
|
649
|
+
* A builder interface for constructing Component objects in a fluent and type-safe manner.
|
|
650
|
+
*
|
|
651
|
+
* The ComponentBuilder provides methods to configure a Component's properties step-by-step,
|
|
652
|
+
* validate the configuration, and produce an immutable Component instance. It follows
|
|
653
|
+
* the builder pattern, allowing method chaining for a more readable API.
|
|
654
|
+
*
|
|
655
|
+
* @typedef {Object} ComponentBuilder
|
|
656
|
+
*/
|
|
657
|
+
type ComponentBuilder = {
|
|
658
|
+
/**
|
|
659
|
+
* Sets the type for the component being built.
|
|
660
|
+
*
|
|
661
|
+
* @param {ComponentType} type - The type to associate with the component.
|
|
662
|
+
* @returns {ComponentBuilder} The builder instance for method chaining.
|
|
663
|
+
*/
|
|
664
|
+
withType: (type: ComponentType) => ComponentBuilder;
|
|
665
|
+
/**
|
|
666
|
+
* Sets the identifier for the component being built.
|
|
667
|
+
*
|
|
668
|
+
* @param {ComponentId} id - The unique identifier to associate with the component.
|
|
669
|
+
* @returns {ComponentBuilder} The builder instance for method chaining.
|
|
670
|
+
*/
|
|
671
|
+
withId: (id: ComponentId) => ComponentBuilder;
|
|
672
|
+
/**
|
|
673
|
+
* Sets the version for the component being built.
|
|
674
|
+
*
|
|
675
|
+
* @param {Version} version - The version to associate with the component.
|
|
676
|
+
* @returns {ComponentBuilder} The builder instance for method chaining.
|
|
677
|
+
*/
|
|
678
|
+
withVersion: (version: Version$1) => ComponentBuilder;
|
|
679
|
+
/**
|
|
680
|
+
* Sets the display name for the component being built.
|
|
681
|
+
*
|
|
682
|
+
* @param {string} displayName - The display name to associate with the component.
|
|
683
|
+
* @returns {ComponentBuilder} The builder instance for method chaining.
|
|
684
|
+
*/
|
|
685
|
+
withDisplayName: (displayName: string) => ComponentBuilder;
|
|
686
|
+
/**
|
|
687
|
+
* Sets the description for the component being built.
|
|
688
|
+
*
|
|
689
|
+
* @param {string} description - The description to associate with the component.
|
|
690
|
+
* @returns {ComponentBuilder} The builder instance for method chaining.
|
|
691
|
+
*/
|
|
692
|
+
withDescription: (description: string) => ComponentBuilder;
|
|
693
|
+
/**
|
|
694
|
+
* Sets the parameters for the component being built.
|
|
695
|
+
*
|
|
696
|
+
* @param {GenericParameters} parameters - The parameters to associate with the component.
|
|
697
|
+
* @returns {ComponentBuilder} The builder instance for method chaining.
|
|
698
|
+
*/
|
|
699
|
+
withParameters: (parameters: GenericParameters) => ComponentBuilder;
|
|
700
|
+
/**
|
|
701
|
+
* Sets the links for the component being built.
|
|
702
|
+
*
|
|
703
|
+
* @param {ComponentLink[]} links - The links to associate with the component.
|
|
704
|
+
* @returns {ComponentBuilder} The builder instance for method chaining.
|
|
705
|
+
*/
|
|
706
|
+
withLinks: (links: ComponentLink[]) => ComponentBuilder;
|
|
707
|
+
/**
|
|
708
|
+
* Sets the dependencies for the component being built.
|
|
709
|
+
*
|
|
710
|
+
* @param {Dependency[]} dependencies - The dependencies to associate with the component.
|
|
711
|
+
* @returns {ComponentBuilder} The builder instance for method chaining.
|
|
712
|
+
*/
|
|
713
|
+
withDependencies: (dependencies: ComponentDependency[]) => ComponentBuilder;
|
|
714
|
+
/**
|
|
715
|
+
* Resets the builder's internal state to default values.
|
|
716
|
+
*
|
|
717
|
+
* This method clears all previously configured properties and returns
|
|
718
|
+
* the builder to its initial state, allowing it to be reused for
|
|
719
|
+
* constructing a new Component instance.
|
|
720
|
+
*
|
|
721
|
+
* @returns {ComponentBuilder} The builder instance for method chaining.
|
|
722
|
+
*/
|
|
723
|
+
reset: () => ComponentBuilder;
|
|
724
|
+
/**
|
|
725
|
+
* Validates and constructs the final Component object.
|
|
726
|
+
*
|
|
727
|
+
* This method performs validation on the configured properties to ensure
|
|
728
|
+
* the Component is valid (id, type, version, and display name must be valid).
|
|
729
|
+
* If validation fails, a SyntaxError is thrown.
|
|
730
|
+
*
|
|
731
|
+
* @returns {Component} An immutable Component instance with the configured properties.
|
|
732
|
+
* @throws {SyntaxError} If the component configuration is invalid.
|
|
733
|
+
*/
|
|
734
|
+
build: () => Component;
|
|
735
|
+
};
|
|
736
|
+
//#endregion
|
|
737
|
+
//#region src/component/index.d.ts
|
|
738
|
+
declare namespace Component {
|
|
739
|
+
type Type = ComponentType;
|
|
740
|
+
namespace Type {
|
|
741
|
+
type Builder = ComponentTypeBuilder;
|
|
742
|
+
const getBuilder: () => ComponentTypeBuilder;
|
|
743
|
+
}
|
|
744
|
+
type Parameters = GenericParameters;
|
|
745
|
+
namespace Parameters {
|
|
746
|
+
const getInstance: () => GenericParameters;
|
|
747
|
+
}
|
|
748
|
+
type Link = ComponentLink;
|
|
749
|
+
namespace Link {
|
|
750
|
+
type Builder = LinkBuilder;
|
|
751
|
+
type Parameters = GenericParameters;
|
|
752
|
+
namespace Parameters {
|
|
753
|
+
const getInstance: () => GenericParameters;
|
|
754
|
+
}
|
|
755
|
+
const getBuilder: () => LinkBuilder;
|
|
756
|
+
}
|
|
757
|
+
type Id = ComponentId;
|
|
758
|
+
namespace Id {
|
|
759
|
+
type Builder = ComponentIdBuilder;
|
|
760
|
+
const getBuilder: () => ComponentIdBuilder;
|
|
761
|
+
}
|
|
762
|
+
type OutputFields = ComponentOutputFields;
|
|
763
|
+
type Builder = ComponentBuilder;
|
|
764
|
+
type Dependency = ComponentDependency;
|
|
765
|
+
const getBuilder: () => ComponentBuilder;
|
|
766
|
+
}
|
|
767
|
+
type Component = {
|
|
768
|
+
type: Component.Type;
|
|
769
|
+
id: Component.Id;
|
|
770
|
+
version: Version$1;
|
|
771
|
+
displayName: string;
|
|
772
|
+
description: string;
|
|
773
|
+
parameters: Component.Parameters;
|
|
774
|
+
outputFields: Component.OutputFields;
|
|
775
|
+
links: Component.Link[];
|
|
776
|
+
dependencies: Component.Dependency[];
|
|
777
|
+
};
|
|
778
|
+
//#endregion
|
|
779
|
+
//#region src/values/service_delivery_model.d.ts
|
|
780
|
+
/**
|
|
781
|
+
* Enum representing the different types of service delivery models in cloud computing.
|
|
782
|
+
*
|
|
783
|
+
* @enum {string}
|
|
784
|
+
* @readonly
|
|
785
|
+
* @property {string} IaaS Infrastructure as a Service - A model that provides virtualized computing infrastructure over the internet.
|
|
786
|
+
* @property {string} CaaS Container as a Service - A model focused on deploying and managing containers as a service.
|
|
787
|
+
* @property {string} PaaS Platform as a Service - A cloud model that provides a platform allowing users to develop, run, and manage applications without dealing with the underlying infrastructure.
|
|
788
|
+
* @property {string} FaaS Function as a Service - A serverless model where cloud functions are executed in response to events.
|
|
789
|
+
* @property {string} SaaS Software as a Service - A model in which software applications are delivered over the internet on a subscription basis.
|
|
790
|
+
*/
|
|
791
|
+
declare enum ServiceDeliveryModel$1 {
|
|
792
|
+
IaaS = "IaaS",
|
|
793
|
+
CaaS = "CaaS",
|
|
794
|
+
PaaS = "PaaS",
|
|
795
|
+
FaaS = "FaaS",
|
|
796
|
+
SaaS = "SaaS"
|
|
797
|
+
}
|
|
798
|
+
//#endregion
|
|
799
|
+
//#region src/fractal/component/type.d.ts
|
|
800
|
+
/**
|
|
801
|
+
* Represents a blueprint component type that extends the base `Component.Type`
|
|
802
|
+
* with additional properties and modifications. This type omits the `equals`
|
|
803
|
+
* method from `Component.Type` and introduces its own implementation, along
|
|
804
|
+
* with a custom `serviceDeliveryModel` property.
|
|
805
|
+
*
|
|
806
|
+
* BlueprintComponentType provides a way to define a component's blueprint with
|
|
807
|
+
* a specific service delivery model while also enabling object equality
|
|
808
|
+
* comparisons customized to the requirements of blueprint components.
|
|
809
|
+
*
|
|
810
|
+
* Properties:
|
|
811
|
+
* - Inherits all properties from `Component.Type` except for the `equals` method.
|
|
812
|
+
* - Adds a `serviceDeliveryModel` property to specify how the service is delivered.
|
|
813
|
+
* - Reimplements the `equals` method for comparing two blueprint component types.
|
|
814
|
+
*/
|
|
815
|
+
type BlueprintComponentType = Omit<Component.Type, 'equals'> & {
|
|
816
|
+
serviceDeliveryModel: ServiceDeliveryModel$1;
|
|
817
|
+
};
|
|
818
|
+
/**
|
|
819
|
+
* A builder interface for constructing Type objects in a fluent and type-safe manner.
|
|
820
|
+
*
|
|
821
|
+
* The TypeBuilder provides methods to configure a Type's properties step-by-step,
|
|
822
|
+
* validate the configuration, and produce an immutable Type instance. It follows
|
|
823
|
+
* the builder pattern, allowing method chaining for a more readable API.
|
|
824
|
+
*
|
|
825
|
+
* @typedef {Object} BlueprintComponentTypeBuilder
|
|
826
|
+
*/
|
|
827
|
+
type BlueprintComponentTypeBuilder = {
|
|
828
|
+
/**
|
|
829
|
+
* Sets the infrastructure domain for the type being built.
|
|
830
|
+
*
|
|
831
|
+
* @param {InfrastructureDomain} domain - The infrastructure domain to associate with the type.
|
|
832
|
+
* @returns {BlueprintComponentTypeBuilder} The builder instance for method chaining.
|
|
833
|
+
*/
|
|
834
|
+
withInfrastructureDomain: (domain: InfrastructureDomain$1) => BlueprintComponentTypeBuilder;
|
|
835
|
+
/**
|
|
836
|
+
* Configures the builder to use the specified service delivery model.
|
|
837
|
+
*
|
|
838
|
+
* @param {ServiceDeliveryModel} serviceDeliveryModel - The service delivery model to be applied during the building process.
|
|
839
|
+
* @returns {BlueprintComponentTypeBuilder} The builder instance for chaining additional configurations.
|
|
840
|
+
*/
|
|
841
|
+
withServiceDeliveryModel: (serviceDeliveryModel: ServiceDeliveryModel$1) => BlueprintComponentTypeBuilder;
|
|
842
|
+
/**
|
|
843
|
+
* Sets the PascalCase name for the type being built.
|
|
844
|
+
*
|
|
845
|
+
* @param {PascalCaseString} name - The PascalCase formatted name for the type.
|
|
846
|
+
* @returns {BlueprintComponentTypeBuilder} The builder instance for method chaining.
|
|
847
|
+
*/
|
|
848
|
+
withName: (name: PascalCaseString$1) => BlueprintComponentTypeBuilder;
|
|
849
|
+
/**
|
|
850
|
+
* Resets the builder's internal state to default values.
|
|
851
|
+
*
|
|
852
|
+
* This method clears all previously configured properties and returns
|
|
853
|
+
* the builder to its initial state, allowing it to be reused for
|
|
854
|
+
* constructing a new Type instance.
|
|
855
|
+
*
|
|
856
|
+
* @returns {BlueprintComponentTypeBuilder} The builder instance for method chaining.
|
|
857
|
+
*/
|
|
858
|
+
reset: () => BlueprintComponentTypeBuilder;
|
|
859
|
+
/**
|
|
860
|
+
* Validates and constructs the final Type object.
|
|
861
|
+
*
|
|
862
|
+
* This method performs validation on the configured properties to ensure
|
|
863
|
+
* the Type is valid (domain must be initialized and name must be in PascalCase).
|
|
864
|
+
* If validation fails, a SyntaxError is thrown.
|
|
865
|
+
*
|
|
866
|
+
* @returns {BlueprintComponentType} An immutable Type instance with the configured properties.
|
|
867
|
+
* @throws {SyntaxError} If the type configuration is invalid.
|
|
868
|
+
*/
|
|
869
|
+
build: () => BlueprintComponentType;
|
|
870
|
+
};
|
|
871
|
+
//#endregion
|
|
872
|
+
//#region src/fractal/component/dependency.d.ts
|
|
873
|
+
/**
|
|
874
|
+
* Represents a dependency for a blueprint component.
|
|
875
|
+
*
|
|
876
|
+
* This type defines the structure to describe a single dependency within a blueprint system for component-based architectures.
|
|
877
|
+
*
|
|
878
|
+
* Properties:
|
|
879
|
+
* - `id`: The unique identifier of the component that is required as a dependency.
|
|
880
|
+
*/
|
|
881
|
+
type BlueprintComponentDependency = {
|
|
882
|
+
id: Component.Id;
|
|
883
|
+
};
|
|
884
|
+
//#endregion
|
|
885
|
+
//#region src/fractal/component/entity.d.ts
|
|
886
|
+
/**
|
|
887
|
+
*/
|
|
888
|
+
type BlueprintComponentBuilder = {
|
|
889
|
+
/**
|
|
890
|
+
* Sets the type for the component being built.
|
|
891
|
+
*
|
|
892
|
+
* @param {BlueprintComponentType} type - The type to associate with the component.
|
|
893
|
+
* @returns {BlueprintComponentBuilder} The builder instance for method chaining.
|
|
894
|
+
*/
|
|
895
|
+
withType: (type: BlueprintComponentType) => BlueprintComponentBuilder;
|
|
896
|
+
/**
|
|
897
|
+
* Sets the identifier for the component being built.
|
|
898
|
+
*
|
|
899
|
+
* @param {Component.Id} id - The unique identifier to associate with the component.
|
|
900
|
+
* @returns {BlueprintComponentBuilder} The builder instance for method chaining.
|
|
901
|
+
*/
|
|
902
|
+
withId: (id: Component.Id) => BlueprintComponentBuilder;
|
|
903
|
+
/**
|
|
904
|
+
* Sets the version for the component being built.
|
|
905
|
+
*
|
|
906
|
+
* @param {Version} version - The version to associate with the component.
|
|
907
|
+
* @returns {BlueprintComponentBuilder} The builder instance for method chaining.
|
|
908
|
+
*/
|
|
909
|
+
withVersion: (version: Version$1) => BlueprintComponentBuilder;
|
|
910
|
+
/**
|
|
911
|
+
* Sets the display name for the component being built.
|
|
912
|
+
*
|
|
913
|
+
* @param {string} displayName - The display name to associate with the component.
|
|
914
|
+
* @returns {BlueprintComponentBuilder} The builder instance for method chaining.
|
|
915
|
+
*/
|
|
916
|
+
withDisplayName: (displayName: string) => BlueprintComponentBuilder;
|
|
917
|
+
/**
|
|
918
|
+
* Sets the description for the component being built.
|
|
919
|
+
*
|
|
920
|
+
* @param {string} description - The description to associate with the component.
|
|
921
|
+
* @returns {BlueprintComponentBuilder} The builder instance for method chaining.
|
|
922
|
+
*/
|
|
923
|
+
withDescription: (description: string) => BlueprintComponentBuilder;
|
|
924
|
+
/**
|
|
925
|
+
* Sets the parameters for the component being built.
|
|
926
|
+
*
|
|
927
|
+
* @param {GenericParameters} parameters - The parameters to associate with the component.
|
|
928
|
+
* @returns {BlueprintComponentBuilder} The builder instance for method chaining.
|
|
929
|
+
*/
|
|
930
|
+
withParameters: (parameters: GenericParameters) => BlueprintComponentBuilder;
|
|
931
|
+
/**
|
|
932
|
+
* Sets the links for the component being built.
|
|
933
|
+
*
|
|
934
|
+
* @param {Component.Link[]} links - The links to associate with the component.
|
|
935
|
+
* @returns {BlueprintComponentBuilder} The builder instance for method chaining.
|
|
936
|
+
*/
|
|
937
|
+
withLinks: (links: Component.Link[]) => BlueprintComponentBuilder;
|
|
938
|
+
/**
|
|
939
|
+
* Adds a list of dependencies to the BlueprintComponentBuilder.
|
|
940
|
+
*
|
|
941
|
+
* This function allows specifying dependencies that the component requires
|
|
942
|
+
* to function correctly. Each dependency is passed as a
|
|
943
|
+
* BlueprintComponentDependency object, which provides the necessary
|
|
944
|
+
* details of the dependency.
|
|
945
|
+
*
|
|
946
|
+
* @param {BlueprintComponentDependency[]} dependencies - An array of objects
|
|
947
|
+
* representing the component's dependencies.
|
|
948
|
+
* @returns {BlueprintComponentBuilder} The updated instance of the
|
|
949
|
+
* BlueprintComponentBuilder with the specified dependencies included.
|
|
950
|
+
*/
|
|
951
|
+
withDependencies: (dependencies: BlueprintComponentDependency[]) => BlueprintComponentBuilder;
|
|
952
|
+
/**
|
|
953
|
+
* Adds or updates the `isLocked` attribute for the blueprint component.
|
|
954
|
+
*
|
|
955
|
+
* @param {boolean} value - Determines whether the component should be marked as locked.
|
|
956
|
+
* Pass `true` to lock the component or `false` to unlock it.
|
|
957
|
+
* @returns {BlueprintComponentBuilder} The instance of the blueprint component builder for method chaining.
|
|
958
|
+
*/
|
|
959
|
+
withIsLocked: (value: boolean) => BlueprintComponentBuilder;
|
|
960
|
+
/**
|
|
961
|
+
* Configures the builder to recreate the component upon encountering a failure.
|
|
962
|
+
*
|
|
963
|
+
* @param {boolean} value - A boolean flag indicating whether the component should be recreated on failure.
|
|
964
|
+
* If true, the builder will regenerate the component when a failure occurs.
|
|
965
|
+
* @returns {BlueprintComponentBuilder} The builder instance for method chaining.
|
|
966
|
+
*/
|
|
967
|
+
withRecreateOnFailure: (value: boolean) => BlueprintComponentBuilder;
|
|
968
|
+
/**
|
|
969
|
+
* Resets the builder's internal state to default values.
|
|
970
|
+
*
|
|
971
|
+
* This method clears all previously configured properties and returns
|
|
972
|
+
* the builder to its initial state, allowing it to be reused for
|
|
973
|
+
* constructing a new Component instance.
|
|
974
|
+
*
|
|
975
|
+
* @returns {BlueprintComponentBuilder} The builder instance for method chaining.
|
|
976
|
+
*/
|
|
977
|
+
reset: () => BlueprintComponentBuilder;
|
|
978
|
+
/**
|
|
979
|
+
* Validates and constructs the final Component object.
|
|
980
|
+
*
|
|
981
|
+
* This method performs validation on the configured properties to ensure
|
|
982
|
+
* the Component is valid (id, type, version, and display name must be valid).
|
|
983
|
+
* If validation fails, a SyntaxError is thrown.
|
|
984
|
+
*
|
|
985
|
+
* @returns {BlueprintComponent} An immutable Component instance with the configured properties.
|
|
986
|
+
* @throws {SyntaxError} If the component configuration is invalid.
|
|
987
|
+
*/
|
|
988
|
+
build: () => BlueprintComponent;
|
|
989
|
+
};
|
|
990
|
+
//#endregion
|
|
991
|
+
//#region src/fractal/component/index.d.ts
|
|
992
|
+
declare namespace BlueprintComponent {
|
|
993
|
+
type Type = BlueprintComponentType;
|
|
994
|
+
namespace Type {
|
|
995
|
+
type Builder = BlueprintComponentTypeBuilder;
|
|
996
|
+
const getBuilder: () => BlueprintComponentTypeBuilder;
|
|
997
|
+
}
|
|
998
|
+
type Id = Component.Id;
|
|
999
|
+
namespace Id {
|
|
1000
|
+
type Builder = Component.Id.Builder;
|
|
1001
|
+
const getBuilder: () => ComponentIdBuilder;
|
|
1002
|
+
}
|
|
1003
|
+
type Builder = BlueprintComponentBuilder;
|
|
1004
|
+
type Dependency = BlueprintComponentDependency;
|
|
1005
|
+
const getBuilder: () => BlueprintComponentBuilder;
|
|
1006
|
+
}
|
|
1007
|
+
type BlueprintComponent = Omit<Component, 'type' | 'dependencies'> & {
|
|
1008
|
+
type: BlueprintComponent.Type;
|
|
1009
|
+
dependencies: BlueprintComponent.Dependency[];
|
|
1010
|
+
isLocked: boolean;
|
|
1011
|
+
recreateOnFailure: boolean;
|
|
1012
|
+
};
|
|
1013
|
+
//#endregion
|
|
1014
|
+
//#region src/values/service_account_id.d.ts
|
|
1015
|
+
/**
|
|
1016
|
+
* Represents a unique identifier for a service account.
|
|
1017
|
+
*
|
|
1018
|
+
* This type is used to encapsulate the value of a service account's unique ID as a string.
|
|
1019
|
+
*/
|
|
1020
|
+
type ServiceAccountId$1 = {
|
|
1021
|
+
serviceAccountIdValue: string;
|
|
1022
|
+
};
|
|
1023
|
+
/**
|
|
1024
|
+
* A builder type to facilitate the construction of a `ServiceAccountId` object.
|
|
1025
|
+
* Provides methods for setting values, resetting the builder's state, and creating the final `ServiceAccountId`.
|
|
1026
|
+
*/
|
|
1027
|
+
type ServiceAccountIdBuilder = {
|
|
1028
|
+
/**
|
|
1029
|
+
* Sets a value to the builder for constructing a ServiceAccountId.
|
|
1030
|
+
*
|
|
1031
|
+
* @param {string} value - The value to be assigned to the builder.
|
|
1032
|
+
* @returns {ServiceAccountIdBuilder} The instance of the builder with the specified value set.
|
|
1033
|
+
*/
|
|
1034
|
+
withValue: (value: string) => ServiceAccountIdBuilder;
|
|
1035
|
+
/**
|
|
1036
|
+
* Resets the current state of the ServiceAccountIdBuilder instance, clearing any previously set values
|
|
1037
|
+
* and returning the builder to its initial state.
|
|
1038
|
+
*
|
|
1039
|
+
* @returns {ServiceAccountIdBuilder} The current instance of the ServiceAccountIdBuilder for method chaining.
|
|
1040
|
+
*/
|
|
1041
|
+
reset: () => ServiceAccountIdBuilder;
|
|
1042
|
+
/**
|
|
1043
|
+
* A method that initiates the creation or retrieval of a `ServiceAccountId`.
|
|
1044
|
+
*
|
|
1045
|
+
* @function
|
|
1046
|
+
* @returns {ServiceAccountId} - The generated or fetched service account identifier.
|
|
1047
|
+
*/
|
|
1048
|
+
build: () => ServiceAccountId$1;
|
|
1049
|
+
};
|
|
1050
|
+
declare namespace ServiceAccountId$1 {
|
|
1051
|
+
const getBuilder: () => ServiceAccountIdBuilder;
|
|
1052
|
+
}
|
|
1053
|
+
//#endregion
|
|
1054
|
+
//#region src/values/service_account_credentials.d.ts
|
|
1055
|
+
/**
|
|
1056
|
+
* Represents the credentials used for a service account.
|
|
1057
|
+
* This includes the service account's unique identifier and secret key.
|
|
1058
|
+
* The credentials are typically used for authenticating and authorizing
|
|
1059
|
+
* access to services or APIs on behalf of the service account.
|
|
1060
|
+
*/
|
|
1061
|
+
type ServiceAccountCredentials$1 = {
|
|
1062
|
+
id: ServiceAccountId$1;
|
|
1063
|
+
secret: string;
|
|
1064
|
+
};
|
|
1065
|
+
/**
|
|
1066
|
+
* Represents a builder for creating service account credentials.
|
|
1067
|
+
*/
|
|
1068
|
+
type ServiceAccountCredentialsBuilder = {
|
|
1069
|
+
/**
|
|
1070
|
+
* Assigns a specific `ServiceAccountId` to the builder object.
|
|
1071
|
+
*
|
|
1072
|
+
* @param {ServiceAccountId} value - The unique identifier for the service account.
|
|
1073
|
+
* @returns {ServiceAccountCredentialsBuilder} The updated builder instance for chaining.
|
|
1074
|
+
*/
|
|
1075
|
+
withId: (value: ServiceAccountId$1) => ServiceAccountCredentialsBuilder;
|
|
1076
|
+
/**
|
|
1077
|
+
* Attaches a secret to the service account credentials builder.
|
|
1078
|
+
*
|
|
1079
|
+
* This method allows you to provide a secret value that will be associated with the
|
|
1080
|
+
* service account credentials being constructed. The secret is typically used
|
|
1081
|
+
* for authentication purposes or secure communication with external services.
|
|
1082
|
+
*
|
|
1083
|
+
* @param {string} value - The secret value to be attached.
|
|
1084
|
+
* @returns {ServiceAccountCredentialsBuilder} The updated instance of the service account credentials builder.
|
|
1085
|
+
*/
|
|
1086
|
+
withSecret: (value: string) => ServiceAccountCredentialsBuilder;
|
|
1087
|
+
/**
|
|
1088
|
+
* Resets the current state of the ServiceAccountCredentialsBuilder instance,
|
|
1089
|
+
* clearing any previously set data and restoring it to its initial default state.
|
|
1090
|
+
*
|
|
1091
|
+
* @returns {ServiceAccountCredentialsBuilder} The current instance of the builder for method chaining.
|
|
1092
|
+
*/
|
|
1093
|
+
reset: () => ServiceAccountCredentialsBuilder;
|
|
1094
|
+
/**
|
|
1095
|
+
* A function that constructs and returns an instance of ServiceAccountCredentials.
|
|
1096
|
+
* Typically used to build credentials required for authenticating or authorizing
|
|
1097
|
+
* service account interactions.
|
|
1098
|
+
*
|
|
1099
|
+
* @function
|
|
1100
|
+
* @returns {ServiceAccountCredentials} The generated service account credentials.
|
|
1101
|
+
*/
|
|
1102
|
+
build: () => ServiceAccountCredentials$1;
|
|
1103
|
+
};
|
|
1104
|
+
declare namespace ServiceAccountCredentials$1 {
|
|
1105
|
+
const getBuilder: () => ServiceAccountCredentialsBuilder;
|
|
1106
|
+
}
|
|
1107
|
+
//#endregion
|
|
1108
|
+
//#region src/fractal/entity.d.ts
|
|
1109
|
+
type FractalBuilder = {
|
|
1110
|
+
withId: (value: FractalId) => FractalBuilder;
|
|
1111
|
+
withIsPrivate: (value: boolean) => FractalBuilder;
|
|
1112
|
+
withDescription: (value: string) => FractalBuilder;
|
|
1113
|
+
withComponents: (value: BlueprintComponent[]) => FractalBuilder;
|
|
1114
|
+
withComponent: (value: BlueprintComponent) => FractalBuilder;
|
|
1115
|
+
reset: () => FractalBuilder;
|
|
1116
|
+
build: () => Fractal$1;
|
|
1117
|
+
};
|
|
1118
|
+
//#endregion
|
|
1119
|
+
//#region src/fractal/index.d.ts
|
|
1120
|
+
declare namespace Fractal$1 {
|
|
1121
|
+
type Id = FractalId;
|
|
1122
|
+
namespace Id {
|
|
1123
|
+
type Builder = FractalIdBuilder;
|
|
1124
|
+
const getBuilder: () => FractalIdBuilder;
|
|
1125
|
+
}
|
|
1126
|
+
type Component = BlueprintComponent;
|
|
1127
|
+
namespace Component {
|
|
1128
|
+
type Builder = BlueprintComponentBuilder;
|
|
1129
|
+
const getBuilder: () => BlueprintComponentBuilder;
|
|
1130
|
+
namespace Type {
|
|
1131
|
+
type Builder = BlueprintComponentTypeBuilder;
|
|
1132
|
+
const getBuilder: () => BlueprintComponentTypeBuilder;
|
|
1133
|
+
}
|
|
1134
|
+
type Id = BlueprintComponent.Id;
|
|
1135
|
+
namespace Id {
|
|
1136
|
+
type Builder = BlueprintComponent.Id.Builder;
|
|
1137
|
+
const getBuilder: () => ComponentIdBuilder;
|
|
1138
|
+
}
|
|
1139
|
+
}
|
|
1140
|
+
type Builder = FractalBuilder;
|
|
1141
|
+
const getBuilder: () => FractalBuilder;
|
|
1142
|
+
}
|
|
1143
|
+
type Fractal$1 = {
|
|
1144
|
+
id: Fractal$1.Id;
|
|
1145
|
+
isPrivate: boolean;
|
|
1146
|
+
description: string;
|
|
1147
|
+
components: Fractal$1.Component[];
|
|
1148
|
+
deploy: (credentials: ServiceAccountCredentials$1) => Promise<void>;
|
|
1149
|
+
destroy: (credentials: ServiceAccountCredentials$1) => Promise<void>;
|
|
1150
|
+
};
|
|
1151
|
+
//#endregion
|
|
1152
|
+
//#region src/index.d.ts
|
|
1153
|
+
declare const BoundedContext: typeof BoundedContext$1;
|
|
1154
|
+
type BoundedContext = BoundedContext$1;
|
|
1155
|
+
declare const Fractal: typeof Fractal$1;
|
|
1156
|
+
type Fractal = Fractal$1;
|
|
1157
|
+
declare const InfrastructureDomain: typeof InfrastructureDomain$1;
|
|
1158
|
+
type InfrastructureDomain = InfrastructureDomain$1;
|
|
1159
|
+
declare const KebabCaseString: typeof KebabCaseString$1;
|
|
1160
|
+
type KebabCaseString = KebabCaseString$1;
|
|
1161
|
+
declare const OwnerId: typeof OwnerId$1;
|
|
1162
|
+
type OwnerId = OwnerId$1;
|
|
1163
|
+
declare const OwnerType: typeof OwnerType$1;
|
|
1164
|
+
type OwnerType = OwnerType$1;
|
|
1165
|
+
declare const PascalCaseString: typeof PascalCaseString$1;
|
|
1166
|
+
type PascalCaseString = PascalCaseString$1;
|
|
1167
|
+
declare const ServiceAccountCredentials: typeof ServiceAccountCredentials$1;
|
|
1168
|
+
type ServiceAccountCredentials = ServiceAccountCredentials$1;
|
|
1169
|
+
declare const ServiceAccountId: typeof ServiceAccountId$1;
|
|
1170
|
+
type ServiceAccountId = ServiceAccountId$1;
|
|
1171
|
+
declare const ServiceDeliveryModel: typeof ServiceDeliveryModel$1;
|
|
1172
|
+
type ServiceDeliveryModel = ServiceDeliveryModel$1;
|
|
1173
|
+
declare const Version: typeof Version$1;
|
|
1174
|
+
type Version = Version$1;
|
|
1175
|
+
//#endregion
|
|
1176
|
+
export { BoundedContext, Fractal, InfrastructureDomain, KebabCaseString, OwnerId, OwnerType, PascalCaseString, ServiceAccountCredentials, ServiceAccountId, ServiceDeliveryModel, Version };
|