• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

aas-core-works / aas-core3.1-typescript / 21288789964

23 Jan 2026 02:02PM UTC coverage: 82.09%. First build
21288789964

push

github

web-flow
Release 1.0.0-rc1 (#1)

Initial release candidate of the SDK targeting v3.1 of the AAS specification.

The code is generated with:
* [aas-core-meta 02040d2] and
* [aas-core-codegen 754e167].

[aas-core-meta 02040d2]: https://github.com/aas-core-works/aas-core-meta/commit/02040d2
[aas-core-codegen 754e167]: https://github.com/aas-core-works/aas-core-codegen/commit/754e167

2565 of 3763 branches covered (68.16%)

Branch coverage included in aggregate %.

11089 of 12870 new or added lines in 8 files covered. (86.16%)

11089 of 12870 relevant lines covered (86.16%)

340.48 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

68.2
/src/stringification.ts
1
/**
2
 * De/serialize enumerations from and to string representations.
3
 */
4

5
// This code has been automatically generated by aas-core-codegen.
6
// Do NOT edit or append.
7

8
import * as AasTypes from "./types";
11✔
9

10
const MODEL_TYPE_FROM_STRING = new Map<string, AasTypes.ModelType>([
11✔
11
  ["Extension", AasTypes.ModelType.Extension],
12
  ["AdministrativeInformation", AasTypes.ModelType.AdministrativeInformation],
13
  ["Qualifier", AasTypes.ModelType.Qualifier],
14
  ["AssetAdministrationShell", AasTypes.ModelType.AssetAdministrationShell],
15
  ["AssetInformation", AasTypes.ModelType.AssetInformation],
16
  ["Resource", AasTypes.ModelType.Resource],
17
  ["SpecificAssetId", AasTypes.ModelType.SpecificAssetId],
18
  ["Submodel", AasTypes.ModelType.Submodel],
19
  ["RelationshipElement", AasTypes.ModelType.RelationshipElement],
20
  ["SubmodelElementList", AasTypes.ModelType.SubmodelElementList],
21
  ["SubmodelElementCollection", AasTypes.ModelType.SubmodelElementCollection],
22
  ["Property", AasTypes.ModelType.Property],
23
  ["MultiLanguageProperty", AasTypes.ModelType.MultiLanguageProperty],
24
  ["Range", AasTypes.ModelType.Range],
25
  ["ReferenceElement", AasTypes.ModelType.ReferenceElement],
26
  ["Blob", AasTypes.ModelType.Blob],
27
  ["File", AasTypes.ModelType.File],
28
  ["AnnotatedRelationshipElement", AasTypes.ModelType.AnnotatedRelationshipElement],
29
  ["Entity", AasTypes.ModelType.Entity],
30
  ["EventPayload", AasTypes.ModelType.EventPayload],
31
  ["BasicEventElement", AasTypes.ModelType.BasicEventElement],
32
  ["Operation", AasTypes.ModelType.Operation],
33
  ["OperationVariable", AasTypes.ModelType.OperationVariable],
34
  ["Capability", AasTypes.ModelType.Capability],
35
  ["ConceptDescription", AasTypes.ModelType.ConceptDescription],
36
  ["Reference", AasTypes.ModelType.Reference],
37
  ["Key", AasTypes.ModelType.Key],
38
  ["LangStringNameType", AasTypes.ModelType.LangStringNameType],
39
  ["LangStringTextType", AasTypes.ModelType.LangStringTextType],
40
  ["Environment", AasTypes.ModelType.Environment],
41
  ["EmbeddedDataSpecification", AasTypes.ModelType.EmbeddedDataSpecification],
42
  ["LevelType", AasTypes.ModelType.LevelType],
43
  ["ValueReferencePair", AasTypes.ModelType.ValueReferencePair],
44
  ["ValueList", AasTypes.ModelType.ValueList],
45
  [
46
    "LangStringPreferredNameTypeIec61360",
47
    AasTypes.ModelType.LangStringPreferredNameTypeIec61360
48
  ],
49
  [
50
    "LangStringShortNameTypeIec61360",
51
    AasTypes.ModelType.LangStringShortNameTypeIec61360
52
  ],
53
  [
54
    "LangStringDefinitionTypeIec61360",
55
    AasTypes.ModelType.LangStringDefinitionTypeIec61360
56
  ],
57
  ["DataSpecificationIec61360", AasTypes.ModelType.DataSpecificationIec61360]
58
]);
59

60
/**
61
 * Parse `text` as a string representation of {@link types!ModelType}.
62
 *
63
 * @param text - string representation of {@link types!ModelType}
64
 * @returns literal of {@link types!ModelType}, if valid, and `null` otherwise
65
 */
66
export function modelTypeFromString(text: string): AasTypes.ModelType | null {
11✔
67
  const result = MODEL_TYPE_FROM_STRING.get(text);
39✔
68
  return result !== undefined ? result : null;
39✔
69
}
70

71
const MODEL_TYPE_TO_STRING = new Map<AasTypes.ModelType, string>([
11✔
72
  [AasTypes.ModelType.Extension, "Extension"],
73
  [AasTypes.ModelType.AdministrativeInformation, "AdministrativeInformation"],
74
  [AasTypes.ModelType.Qualifier, "Qualifier"],
75
  [AasTypes.ModelType.AssetAdministrationShell, "AssetAdministrationShell"],
76
  [AasTypes.ModelType.AssetInformation, "AssetInformation"],
77
  [AasTypes.ModelType.Resource, "Resource"],
78
  [AasTypes.ModelType.SpecificAssetId, "SpecificAssetId"],
79
  [AasTypes.ModelType.Submodel, "Submodel"],
80
  [AasTypes.ModelType.RelationshipElement, "RelationshipElement"],
81
  [AasTypes.ModelType.SubmodelElementList, "SubmodelElementList"],
82
  [AasTypes.ModelType.SubmodelElementCollection, "SubmodelElementCollection"],
83
  [AasTypes.ModelType.Property, "Property"],
84
  [AasTypes.ModelType.MultiLanguageProperty, "MultiLanguageProperty"],
85
  [AasTypes.ModelType.Range, "Range"],
86
  [AasTypes.ModelType.ReferenceElement, "ReferenceElement"],
87
  [AasTypes.ModelType.Blob, "Blob"],
88
  [AasTypes.ModelType.File, "File"],
89
  [AasTypes.ModelType.AnnotatedRelationshipElement, "AnnotatedRelationshipElement"],
90
  [AasTypes.ModelType.Entity, "Entity"],
91
  [AasTypes.ModelType.EventPayload, "EventPayload"],
92
  [AasTypes.ModelType.BasicEventElement, "BasicEventElement"],
93
  [AasTypes.ModelType.Operation, "Operation"],
94
  [AasTypes.ModelType.OperationVariable, "OperationVariable"],
95
  [AasTypes.ModelType.Capability, "Capability"],
96
  [AasTypes.ModelType.ConceptDescription, "ConceptDescription"],
97
  [AasTypes.ModelType.Reference, "Reference"],
98
  [AasTypes.ModelType.Key, "Key"],
99
  [AasTypes.ModelType.LangStringNameType, "LangStringNameType"],
100
  [AasTypes.ModelType.LangStringTextType, "LangStringTextType"],
101
  [AasTypes.ModelType.Environment, "Environment"],
102
  [AasTypes.ModelType.EmbeddedDataSpecification, "EmbeddedDataSpecification"],
103
  [AasTypes.ModelType.LevelType, "LevelType"],
104
  [AasTypes.ModelType.ValueReferencePair, "ValueReferencePair"],
105
  [AasTypes.ModelType.ValueList, "ValueList"],
106
  [
107
    AasTypes.ModelType.LangStringPreferredNameTypeIec61360,
108
    "LangStringPreferredNameTypeIec61360"
109
  ],
110
  [
111
    AasTypes.ModelType.LangStringShortNameTypeIec61360,
112
    "LangStringShortNameTypeIec61360"
113
  ],
114
  [
115
    AasTypes.ModelType.LangStringDefinitionTypeIec61360,
116
    "LangStringDefinitionTypeIec61360"
117
  ],
118
  [AasTypes.ModelType.DataSpecificationIec61360, "DataSpecificationIec61360"]
119
]);
120

121
/**
122
 * Translate {@link types!ModelType} to a string.
123
 *
124
 * @param value - to be stringified
125
 * @returns string representation of {@link types!ModelType},
126
 * if `value` valid, and `null` otherwise
127
 */
128
export function modelTypeToString(value: AasTypes.ModelType): string | null {
11✔
129
  const result = MODEL_TYPE_TO_STRING.get(value);
1✔
130
  return result !== undefined ? result : null;
1!
131
}
132

133
/**
134
 * Translate {@link types!ModelType} to a string.
135
 *
136
 * @param value - to be stringified
137
 * @returns string representation of {@link types!ModelType}
138
 * @throws
139
 * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error|Error}
140
 * if the `value` is invalid
141
 */
142
export function mustModelTypeToString(value: AasTypes.ModelType): string {
11✔
143
  const result = MODEL_TYPE_TO_STRING.get(value);
38✔
144
  if (result === undefined) {
38!
NEW
145
    throw new Error(`Invalid literal of ModelType: ${value}`);
×
146
  }
147
  return result;
38✔
148
}
149

150
const MODELLING_KIND_FROM_STRING = new Map<string, AasTypes.ModellingKind>([
11✔
151
  ["Template", AasTypes.ModellingKind.Template],
152
  ["Instance", AasTypes.ModellingKind.Instance]
153
]);
154

155
/**
156
 * Parse `text` as a string representation of {@link types!ModellingKind}.
157
 *
158
 * @param text - string representation of {@link types!ModellingKind}
159
 * @returns literal of {@link types!ModellingKind}, if valid, and `null` otherwise
160
 */
161
export function modellingKindFromString(text: string): AasTypes.ModellingKind | null {
11✔
162
  const result = MODELLING_KIND_FROM_STRING.get(text);
73✔
163
  return result !== undefined ? result : null;
73✔
164
}
165

166
const MODELLING_KIND_TO_STRING = new Map<AasTypes.ModellingKind, string>([
11✔
167
  [AasTypes.ModellingKind.Template, "Template"],
168
  [AasTypes.ModellingKind.Instance, "Instance"]
169
]);
170

171
/**
172
 * Translate {@link types!ModellingKind} to a string.
173
 *
174
 * @param value - to be stringified
175
 * @returns string representation of {@link types!ModellingKind}, if `value` valid, and `null` otherwise
176
 */
177
export function modellingKindToString(value: AasTypes.ModellingKind): string | null {
11✔
NEW
178
  const result = MODELLING_KIND_TO_STRING.get(value);
×
NEW
179
  return result !== undefined ? result : null;
×
180
}
181

182
/**
183
 * Translate {@link types!ModellingKind} to a string.
184
 *
185
 * @param value - to be stringified
186
 * @returns string representation of {@link types!ModellingKind}
187
 * @throws
188
 * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error|Error}
189
 * if the `value` is invalid
190
 */
191
export function mustModellingKindToString(value: AasTypes.ModellingKind): string {
11✔
192
  const result = MODELLING_KIND_TO_STRING.get(value);
16✔
193
  if (result === undefined) {
16!
NEW
194
    throw new Error(`Invalid literal of ModellingKind: ${value}`);
×
195
  }
196
  return result;
16✔
197
}
198

199
const QUALIFIER_KIND_FROM_STRING = new Map<string, AasTypes.QualifierKind>([
11✔
200
  ["ValueQualifier", AasTypes.QualifierKind.ValueQualifier],
201
  ["ConceptQualifier", AasTypes.QualifierKind.ConceptQualifier],
202
  ["TemplateQualifier", AasTypes.QualifierKind.TemplateQualifier]
203
]);
204

205
/**
206
 * Parse `text` as a string representation of {@link types!QualifierKind}.
207
 *
208
 * @param text - string representation of {@link types!QualifierKind}
209
 * @returns literal of {@link types!QualifierKind}, if valid, and `null` otherwise
210
 */
211
export function qualifierKindFromString(text: string): AasTypes.QualifierKind | null {
11✔
212
  const result = QUALIFIER_KIND_FROM_STRING.get(text);
21✔
213
  return result !== undefined ? result : null;
21✔
214
}
215

216
const QUALIFIER_KIND_TO_STRING = new Map<AasTypes.QualifierKind, string>([
11✔
217
  [AasTypes.QualifierKind.ValueQualifier, "ValueQualifier"],
218
  [AasTypes.QualifierKind.ConceptQualifier, "ConceptQualifier"],
219
  [AasTypes.QualifierKind.TemplateQualifier, "TemplateQualifier"]
220
]);
221

222
/**
223
 * Translate {@link types!QualifierKind} to a string.
224
 *
225
 * @param value - to be stringified
226
 * @returns string representation of {@link types!QualifierKind}, if `value` valid, and `null` otherwise
227
 */
228
export function qualifierKindToString(value: AasTypes.QualifierKind): string | null {
11✔
NEW
229
  const result = QUALIFIER_KIND_TO_STRING.get(value);
×
NEW
230
  return result !== undefined ? result : null;
×
231
}
232

233
/**
234
 * Translate {@link types!QualifierKind} to a string.
235
 *
236
 * @param value - to be stringified
237
 * @returns string representation of {@link types!QualifierKind}
238
 * @throws
239
 * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error|Error}
240
 * if the `value` is invalid
241
 */
242
export function mustQualifierKindToString(value: AasTypes.QualifierKind): string {
11✔
243
  const result = QUALIFIER_KIND_TO_STRING.get(value);
5✔
244
  if (result === undefined) {
5!
NEW
245
    throw new Error(`Invalid literal of QualifierKind: ${value}`);
×
246
  }
247
  return result;
5✔
248
}
249

250
const ASSET_KIND_FROM_STRING = new Map<string, AasTypes.AssetKind>([
11✔
251
  ["Type", AasTypes.AssetKind.Type],
252
  ["Instance", AasTypes.AssetKind.Instance],
253
  ["Role", AasTypes.AssetKind.Role],
254
  ["NotApplicable", AasTypes.AssetKind.NotApplicable]
255
]);
256

257
/**
258
 * Parse `text` as a string representation of {@link types!AssetKind}.
259
 *
260
 * @param text - string representation of {@link types!AssetKind}
261
 * @returns literal of {@link types!AssetKind}, if valid, and `null` otherwise
262
 */
263
export function assetKindFromString(text: string): AasTypes.AssetKind | null {
11✔
264
  const result = ASSET_KIND_FROM_STRING.get(text);
1,471✔
265
  return result !== undefined ? result : null;
1,471✔
266
}
267

268
const ASSET_KIND_TO_STRING = new Map<AasTypes.AssetKind, string>([
11✔
269
  [AasTypes.AssetKind.Type, "Type"],
270
  [AasTypes.AssetKind.Instance, "Instance"],
271
  [AasTypes.AssetKind.Role, "Role"],
272
  [AasTypes.AssetKind.NotApplicable, "NotApplicable"]
273
]);
274

275
/**
276
 * Translate {@link types!AssetKind} to a string.
277
 *
278
 * @param value - to be stringified
279
 * @returns string representation of {@link types!AssetKind}, if `value` valid, and `null` otherwise
280
 */
281
export function assetKindToString(value: AasTypes.AssetKind): string | null {
11✔
NEW
282
  const result = ASSET_KIND_TO_STRING.get(value);
×
NEW
283
  return result !== undefined ? result : null;
×
284
}
285

286
/**
287
 * Translate {@link types!AssetKind} to a string.
288
 *
289
 * @param value - to be stringified
290
 * @returns string representation of {@link types!AssetKind}
291
 * @throws
292
 * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error|Error}
293
 * if the `value` is invalid
294
 */
295
export function mustAssetKindToString(value: AasTypes.AssetKind): string {
11✔
296
  const result = ASSET_KIND_TO_STRING.get(value);
772✔
297
  if (result === undefined) {
772!
NEW
298
    throw new Error(`Invalid literal of AssetKind: ${value}`);
×
299
  }
300
  return result;
772✔
301
}
302

303
const AAS_SUBMODEL_ELEMENTS_FROM_STRING = new Map<string, AasTypes.AasSubmodelElements>(
11✔
304
  [
305
    [
306
      "AnnotatedRelationshipElement",
307
      AasTypes.AasSubmodelElements.AnnotatedRelationshipElement
308
    ],
309
    ["BasicEventElement", AasTypes.AasSubmodelElements.BasicEventElement],
310
    ["Blob", AasTypes.AasSubmodelElements.Blob],
311
    ["Capability", AasTypes.AasSubmodelElements.Capability],
312
    ["DataElement", AasTypes.AasSubmodelElements.DataElement],
313
    ["Entity", AasTypes.AasSubmodelElements.Entity],
314
    ["EventElement", AasTypes.AasSubmodelElements.EventElement],
315
    ["File", AasTypes.AasSubmodelElements.File],
316
    ["MultiLanguageProperty", AasTypes.AasSubmodelElements.MultiLanguageProperty],
317
    ["Operation", AasTypes.AasSubmodelElements.Operation],
318
    ["Property", AasTypes.AasSubmodelElements.Property],
319
    ["Range", AasTypes.AasSubmodelElements.Range],
320
    ["ReferenceElement", AasTypes.AasSubmodelElements.ReferenceElement],
321
    ["RelationshipElement", AasTypes.AasSubmodelElements.RelationshipElement],
322
    ["SubmodelElement", AasTypes.AasSubmodelElements.SubmodelElement],
323
    ["SubmodelElementList", AasTypes.AasSubmodelElements.SubmodelElementList],
324
    [
325
      "SubmodelElementCollection",
326
      AasTypes.AasSubmodelElements.SubmodelElementCollection
327
    ]
328
  ]
329
);
330

331
/**
332
 * Parse `text` as a string representation of {@link types!AasSubmodelElements}.
333
 *
334
 * @param text - string representation of {@link types!AasSubmodelElements}
335
 * @returns literal of {@link types!AasSubmodelElements}, if valid, and `null` otherwise
336
 */
337
export function aasSubmodelElementsFromString(
11✔
338
  text: string
339
): AasTypes.AasSubmodelElements | null {
340
  const result = AAS_SUBMODEL_ELEMENTS_FROM_STRING.get(text);
81✔
341
  return result !== undefined ? result : null;
81✔
342
}
343

344
const AAS_SUBMODEL_ELEMENTS_TO_STRING = new Map<AasTypes.AasSubmodelElements, string>([
11✔
345
  [
346
    AasTypes.AasSubmodelElements.AnnotatedRelationshipElement,
347
    "AnnotatedRelationshipElement"
348
  ],
349
  [AasTypes.AasSubmodelElements.BasicEventElement, "BasicEventElement"],
350
  [AasTypes.AasSubmodelElements.Blob, "Blob"],
351
  [AasTypes.AasSubmodelElements.Capability, "Capability"],
352
  [AasTypes.AasSubmodelElements.DataElement, "DataElement"],
353
  [AasTypes.AasSubmodelElements.Entity, "Entity"],
354
  [AasTypes.AasSubmodelElements.EventElement, "EventElement"],
355
  [AasTypes.AasSubmodelElements.File, "File"],
356
  [AasTypes.AasSubmodelElements.MultiLanguageProperty, "MultiLanguageProperty"],
357
  [AasTypes.AasSubmodelElements.Operation, "Operation"],
358
  [AasTypes.AasSubmodelElements.Property, "Property"],
359
  [AasTypes.AasSubmodelElements.Range, "Range"],
360
  [AasTypes.AasSubmodelElements.ReferenceElement, "ReferenceElement"],
361
  [AasTypes.AasSubmodelElements.RelationshipElement, "RelationshipElement"],
362
  [AasTypes.AasSubmodelElements.SubmodelElement, "SubmodelElement"],
363
  [AasTypes.AasSubmodelElements.SubmodelElementList, "SubmodelElementList"],
364
  [AasTypes.AasSubmodelElements.SubmodelElementCollection, "SubmodelElementCollection"]
365
]);
366

367
/**
368
 * Translate {@link types!AasSubmodelElements} to a string.
369
 *
370
 * @param value - to be stringified
371
 * @returns string representation of {@link types!AasSubmodelElements}, if `value` valid, and `null` otherwise
372
 */
373
export function aasSubmodelElementsToString(
11✔
374
  value: AasTypes.AasSubmodelElements
375
): string | null {
NEW
376
  const result = AAS_SUBMODEL_ELEMENTS_TO_STRING.get(value);
×
NEW
377
  return result !== undefined ? result : null;
×
378
}
379

380
/**
381
 * Translate {@link types!AasSubmodelElements} to a string.
382
 *
383
 * @param value - to be stringified
384
 * @returns string representation of {@link types!AasSubmodelElements}
385
 * @throws
386
 * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error|Error}
387
 * if the `value` is invalid
388
 */
389
export function mustAasSubmodelElementsToString(
11✔
390
  value: AasTypes.AasSubmodelElements
391
): string {
392
  const result = AAS_SUBMODEL_ELEMENTS_TO_STRING.get(value);
28✔
393
  if (result === undefined) {
28!
NEW
394
    throw new Error(`Invalid literal of AasSubmodelElements: ${value}`);
×
395
  }
396
  return result;
28✔
397
}
398

399
const ENTITY_TYPE_FROM_STRING = new Map<string, AasTypes.EntityType>([
11✔
400
  ["CoManagedEntity", AasTypes.EntityType.CoManagedEntity],
401
  ["SelfManagedEntity", AasTypes.EntityType.SelfManagedEntity]
402
]);
403

404
/**
405
 * Parse `text` as a string representation of {@link types!EntityType}.
406
 *
407
 * @param text - string representation of {@link types!EntityType}
408
 * @returns literal of {@link types!EntityType}, if valid, and `null` otherwise
409
 */
410
export function entityTypeFromString(text: string): AasTypes.EntityType | null {
11✔
411
  const result = ENTITY_TYPE_FROM_STRING.get(text);
53✔
412
  return result !== undefined ? result : null;
53✔
413
}
414

415
const ENTITY_TYPE_TO_STRING = new Map<AasTypes.EntityType, string>([
11✔
416
  [AasTypes.EntityType.CoManagedEntity, "CoManagedEntity"],
417
  [AasTypes.EntityType.SelfManagedEntity, "SelfManagedEntity"]
418
]);
419

420
/**
421
 * Translate {@link types!EntityType} to a string.
422
 *
423
 * @param value - to be stringified
424
 * @returns string representation of {@link types!EntityType}, if `value` valid, and `null` otherwise
425
 */
426
export function entityTypeToString(value: AasTypes.EntityType): string | null {
11✔
NEW
427
  const result = ENTITY_TYPE_TO_STRING.get(value);
×
NEW
428
  return result !== undefined ? result : null;
×
429
}
430

431
/**
432
 * Translate {@link types!EntityType} to a string.
433
 *
434
 * @param value - to be stringified
435
 * @returns string representation of {@link types!EntityType}
436
 * @throws
437
 * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error|Error}
438
 * if the `value` is invalid
439
 */
440
export function mustEntityTypeToString(value: AasTypes.EntityType): string {
11✔
441
  const result = ENTITY_TYPE_TO_STRING.get(value);
13✔
442
  if (result === undefined) {
13!
NEW
443
    throw new Error(`Invalid literal of EntityType: ${value}`);
×
444
  }
445
  return result;
13✔
446
}
447

448
const DIRECTION_FROM_STRING = new Map<string, AasTypes.Direction>([
11✔
449
  ["input", AasTypes.Direction.Input],
450
  ["output", AasTypes.Direction.Output]
451
]);
452

453
/**
454
 * Parse `text` as a string representation of {@link types!Direction}.
455
 *
456
 * @param text - string representation of {@link types!Direction}
457
 * @returns literal of {@link types!Direction}, if valid, and `null` otherwise
458
 */
459
export function directionFromString(text: string): AasTypes.Direction | null {
11✔
460
  const result = DIRECTION_FROM_STRING.get(text);
171✔
461
  return result !== undefined ? result : null;
171✔
462
}
463

464
const DIRECTION_TO_STRING = new Map<AasTypes.Direction, string>([
11✔
465
  [AasTypes.Direction.Input, "input"],
466
  [AasTypes.Direction.Output, "output"]
467
]);
468

469
/**
470
 * Translate {@link types!Direction} to a string.
471
 *
472
 * @param value - to be stringified
473
 * @returns string representation of {@link types!Direction}, if `value` valid, and `null` otherwise
474
 */
475
export function directionToString(value: AasTypes.Direction): string | null {
11✔
NEW
476
  const result = DIRECTION_TO_STRING.get(value);
×
NEW
477
  return result !== undefined ? result : null;
×
478
}
479

480
/**
481
 * Translate {@link types!Direction} to a string.
482
 *
483
 * @param value - to be stringified
484
 * @returns string representation of {@link types!Direction}
485
 * @throws
486
 * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error|Error}
487
 * if the `value` is invalid
488
 */
489
export function mustDirectionToString(value: AasTypes.Direction): string {
11✔
490
  const result = DIRECTION_TO_STRING.get(value);
74✔
491
  if (result === undefined) {
74!
NEW
492
    throw new Error(`Invalid literal of Direction: ${value}`);
×
493
  }
494
  return result;
74✔
495
}
496

497
const STATE_OF_EVENT_FROM_STRING = new Map<string, AasTypes.StateOfEvent>([
11✔
498
  ["on", AasTypes.StateOfEvent.On],
499
  ["off", AasTypes.StateOfEvent.Off]
500
]);
501

502
/**
503
 * Parse `text` as a string representation of {@link types!StateOfEvent}.
504
 *
505
 * @param text - string representation of {@link types!StateOfEvent}
506
 * @returns literal of {@link types!StateOfEvent}, if valid, and `null` otherwise
507
 */
508
export function stateOfEventFromString(text: string): AasTypes.StateOfEvent | null {
11✔
509
  const result = STATE_OF_EVENT_FROM_STRING.get(text);
155✔
510
  return result !== undefined ? result : null;
155✔
511
}
512

513
const STATE_OF_EVENT_TO_STRING = new Map<AasTypes.StateOfEvent, string>([
11✔
514
  [AasTypes.StateOfEvent.On, "on"],
515
  [AasTypes.StateOfEvent.Off, "off"]
516
]);
517

518
/**
519
 * Translate {@link types!StateOfEvent} to a string.
520
 *
521
 * @param value - to be stringified
522
 * @returns string representation of {@link types!StateOfEvent}, if `value` valid, and `null` otherwise
523
 */
524
export function stateOfEventToString(value: AasTypes.StateOfEvent): string | null {
11✔
NEW
525
  const result = STATE_OF_EVENT_TO_STRING.get(value);
×
NEW
526
  return result !== undefined ? result : null;
×
527
}
528

529
/**
530
 * Translate {@link types!StateOfEvent} to a string.
531
 *
532
 * @param value - to be stringified
533
 * @returns string representation of {@link types!StateOfEvent}
534
 * @throws
535
 * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error|Error}
536
 * if the `value` is invalid
537
 */
538
export function mustStateOfEventToString(value: AasTypes.StateOfEvent): string {
11✔
539
  const result = STATE_OF_EVENT_TO_STRING.get(value);
74✔
540
  if (result === undefined) {
74!
NEW
541
    throw new Error(`Invalid literal of StateOfEvent: ${value}`);
×
542
  }
543
  return result;
74✔
544
}
545

546
const REFERENCE_TYPES_FROM_STRING = new Map<string, AasTypes.ReferenceTypes>([
11✔
547
  ["ExternalReference", AasTypes.ReferenceTypes.ExternalReference],
548
  ["ModelReference", AasTypes.ReferenceTypes.ModelReference]
549
]);
550

551
/**
552
 * Parse `text` as a string representation of {@link types!ReferenceTypes}.
553
 *
554
 * @param text - string representation of {@link types!ReferenceTypes}
555
 * @returns literal of {@link types!ReferenceTypes}, if valid, and `null` otherwise
556
 */
557
export function referenceTypesFromString(text: string): AasTypes.ReferenceTypes | null {
11✔
558
  const result = REFERENCE_TYPES_FROM_STRING.get(text);
4,260✔
559
  return result !== undefined ? result : null;
4,260✔
560
}
561

562
const REFERENCE_TYPES_TO_STRING = new Map<AasTypes.ReferenceTypes, string>([
11✔
563
  [AasTypes.ReferenceTypes.ExternalReference, "ExternalReference"],
564
  [AasTypes.ReferenceTypes.ModelReference, "ModelReference"]
565
]);
566

567
/**
568
 * Translate {@link types!ReferenceTypes} to a string.
569
 *
570
 * @param value - to be stringified
571
 * @returns string representation of {@link types!ReferenceTypes}, if `value` valid, and `null` otherwise
572
 */
573
export function referenceTypesToString(value: AasTypes.ReferenceTypes): string | null {
11✔
NEW
574
  const result = REFERENCE_TYPES_TO_STRING.get(value);
×
NEW
575
  return result !== undefined ? result : null;
×
576
}
577

578
/**
579
 * Translate {@link types!ReferenceTypes} to a string.
580
 *
581
 * @param value - to be stringified
582
 * @returns string representation of {@link types!ReferenceTypes}
583
 * @throws
584
 * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error|Error}
585
 * if the `value` is invalid
586
 */
587
export function mustReferenceTypesToString(value: AasTypes.ReferenceTypes): string {
11✔
588
  const result = REFERENCE_TYPES_TO_STRING.get(value);
1,402✔
589
  if (result === undefined) {
1,402!
NEW
590
    throw new Error(`Invalid literal of ReferenceTypes: ${value}`);
×
591
  }
592
  return result;
1,402✔
593
}
594

595
const KEY_TYPES_FROM_STRING = new Map<string, AasTypes.KeyTypes>([
11✔
596
  ["AnnotatedRelationshipElement", AasTypes.KeyTypes.AnnotatedRelationshipElement],
597
  ["AssetAdministrationShell", AasTypes.KeyTypes.AssetAdministrationShell],
598
  ["BasicEventElement", AasTypes.KeyTypes.BasicEventElement],
599
  ["Blob", AasTypes.KeyTypes.Blob],
600
  ["Capability", AasTypes.KeyTypes.Capability],
601
  ["ConceptDescription", AasTypes.KeyTypes.ConceptDescription],
602
  ["DataElement", AasTypes.KeyTypes.DataElement],
603
  ["Entity", AasTypes.KeyTypes.Entity],
604
  ["EventElement", AasTypes.KeyTypes.EventElement],
605
  ["File", AasTypes.KeyTypes.File],
606
  ["FragmentReference", AasTypes.KeyTypes.FragmentReference],
607
  ["GlobalReference", AasTypes.KeyTypes.GlobalReference],
608
  ["Identifiable", AasTypes.KeyTypes.Identifiable],
609
  ["MultiLanguageProperty", AasTypes.KeyTypes.MultiLanguageProperty],
610
  ["Operation", AasTypes.KeyTypes.Operation],
611
  ["Property", AasTypes.KeyTypes.Property],
612
  ["Range", AasTypes.KeyTypes.Range],
613
  ["Referable", AasTypes.KeyTypes.Referable],
614
  ["ReferenceElement", AasTypes.KeyTypes.ReferenceElement],
615
  ["RelationshipElement", AasTypes.KeyTypes.RelationshipElement],
616
  ["Submodel", AasTypes.KeyTypes.Submodel],
617
  ["SubmodelElement", AasTypes.KeyTypes.SubmodelElement],
618
  ["SubmodelElementCollection", AasTypes.KeyTypes.SubmodelElementCollection],
619
  ["SubmodelElementList", AasTypes.KeyTypes.SubmodelElementList]
620
]);
621

622
/**
623
 * Parse `text` as a string representation of {@link types!KeyTypes}.
624
 *
625
 * @param text - string representation of {@link types!KeyTypes}
626
 * @returns literal of {@link types!KeyTypes}, if valid, and `null` otherwise
627
 */
628
export function keyTypesFromString(text: string): AasTypes.KeyTypes | null {
11✔
629
  const result = KEY_TYPES_FROM_STRING.get(text);
4,329✔
630
  return result !== undefined ? result : null;
4,329✔
631
}
632

633
const KEY_TYPES_TO_STRING = new Map<AasTypes.KeyTypes, string>([
11✔
634
  [AasTypes.KeyTypes.AnnotatedRelationshipElement, "AnnotatedRelationshipElement"],
635
  [AasTypes.KeyTypes.AssetAdministrationShell, "AssetAdministrationShell"],
636
  [AasTypes.KeyTypes.BasicEventElement, "BasicEventElement"],
637
  [AasTypes.KeyTypes.Blob, "Blob"],
638
  [AasTypes.KeyTypes.Capability, "Capability"],
639
  [AasTypes.KeyTypes.ConceptDescription, "ConceptDescription"],
640
  [AasTypes.KeyTypes.DataElement, "DataElement"],
641
  [AasTypes.KeyTypes.Entity, "Entity"],
642
  [AasTypes.KeyTypes.EventElement, "EventElement"],
643
  [AasTypes.KeyTypes.File, "File"],
644
  [AasTypes.KeyTypes.FragmentReference, "FragmentReference"],
645
  [AasTypes.KeyTypes.GlobalReference, "GlobalReference"],
646
  [AasTypes.KeyTypes.Identifiable, "Identifiable"],
647
  [AasTypes.KeyTypes.MultiLanguageProperty, "MultiLanguageProperty"],
648
  [AasTypes.KeyTypes.Operation, "Operation"],
649
  [AasTypes.KeyTypes.Property, "Property"],
650
  [AasTypes.KeyTypes.Range, "Range"],
651
  [AasTypes.KeyTypes.Referable, "Referable"],
652
  [AasTypes.KeyTypes.ReferenceElement, "ReferenceElement"],
653
  [AasTypes.KeyTypes.RelationshipElement, "RelationshipElement"],
654
  [AasTypes.KeyTypes.Submodel, "Submodel"],
655
  [AasTypes.KeyTypes.SubmodelElement, "SubmodelElement"],
656
  [AasTypes.KeyTypes.SubmodelElementCollection, "SubmodelElementCollection"],
657
  [AasTypes.KeyTypes.SubmodelElementList, "SubmodelElementList"]
658
]);
659

660
/**
661
 * Translate {@link types!KeyTypes} to a string.
662
 *
663
 * @param value - to be stringified
664
 * @returns string representation of {@link types!KeyTypes}, if `value` valid, and `null` otherwise
665
 */
666
export function keyTypesToString(value: AasTypes.KeyTypes): string | null {
11✔
NEW
667
  const result = KEY_TYPES_TO_STRING.get(value);
×
NEW
668
  return result !== undefined ? result : null;
×
669
}
670

671
/**
672
 * Translate {@link types!KeyTypes} to a string.
673
 *
674
 * @param value - to be stringified
675
 * @returns string representation of {@link types!KeyTypes}
676
 * @throws
677
 * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error|Error}
678
 * if the `value` is invalid
679
 */
680
export function mustKeyTypesToString(value: AasTypes.KeyTypes): string {
11✔
681
  const result = KEY_TYPES_TO_STRING.get(value);
1,424✔
682
  if (result === undefined) {
1,424!
NEW
683
    throw new Error(`Invalid literal of KeyTypes: ${value}`);
×
684
  }
685
  return result;
1,424✔
686
}
687

688
const DATA_TYPE_DEF_XSD_FROM_STRING = new Map<string, AasTypes.DataTypeDefXsd>([
11✔
689
  ["xs:anyURI", AasTypes.DataTypeDefXsd.AnyUri],
690
  ["xs:base64Binary", AasTypes.DataTypeDefXsd.Base64Binary],
691
  ["xs:boolean", AasTypes.DataTypeDefXsd.Boolean],
692
  ["xs:byte", AasTypes.DataTypeDefXsd.Byte],
693
  ["xs:date", AasTypes.DataTypeDefXsd.Date],
694
  ["xs:dateTime", AasTypes.DataTypeDefXsd.DateTime],
695
  ["xs:decimal", AasTypes.DataTypeDefXsd.Decimal],
696
  ["xs:double", AasTypes.DataTypeDefXsd.Double],
697
  ["xs:duration", AasTypes.DataTypeDefXsd.Duration],
698
  ["xs:float", AasTypes.DataTypeDefXsd.Float],
699
  ["xs:gDay", AasTypes.DataTypeDefXsd.GDay],
700
  ["xs:gMonth", AasTypes.DataTypeDefXsd.GMonth],
701
  ["xs:gMonthDay", AasTypes.DataTypeDefXsd.GMonthDay],
702
  ["xs:gYear", AasTypes.DataTypeDefXsd.GYear],
703
  ["xs:gYearMonth", AasTypes.DataTypeDefXsd.GYearMonth],
704
  ["xs:hexBinary", AasTypes.DataTypeDefXsd.HexBinary],
705
  ["xs:int", AasTypes.DataTypeDefXsd.Int],
706
  ["xs:integer", AasTypes.DataTypeDefXsd.Integer],
707
  ["xs:long", AasTypes.DataTypeDefXsd.Long],
708
  ["xs:negativeInteger", AasTypes.DataTypeDefXsd.NegativeInteger],
709
  ["xs:nonNegativeInteger", AasTypes.DataTypeDefXsd.NonNegativeInteger],
710
  ["xs:nonPositiveInteger", AasTypes.DataTypeDefXsd.NonPositiveInteger],
711
  ["xs:positiveInteger", AasTypes.DataTypeDefXsd.PositiveInteger],
712
  ["xs:short", AasTypes.DataTypeDefXsd.Short],
713
  ["xs:string", AasTypes.DataTypeDefXsd.String],
714
  ["xs:time", AasTypes.DataTypeDefXsd.Time],
715
  ["xs:unsignedByte", AasTypes.DataTypeDefXsd.UnsignedByte],
716
  ["xs:unsignedInt", AasTypes.DataTypeDefXsd.UnsignedInt],
717
  ["xs:unsignedLong", AasTypes.DataTypeDefXsd.UnsignedLong],
718
  ["xs:unsignedShort", AasTypes.DataTypeDefXsd.UnsignedShort]
719
]);
720

721
/**
722
 * Parse `text` as a string representation of {@link types!DataTypeDefXsd}.
723
 *
724
 * @param text - string representation of {@link types!DataTypeDefXsd}
725
 * @returns literal of {@link types!DataTypeDefXsd}, if valid, and `null` otherwise
726
 */
727
export function dataTypeDefXsdFromString(text: string): AasTypes.DataTypeDefXsd | null {
11✔
728
  const result = DATA_TYPE_DEF_XSD_FROM_STRING.get(text);
4,151✔
729
  return result !== undefined ? result : null;
4,151✔
730
}
731

732
const DATA_TYPE_DEF_XSD_TO_STRING = new Map<AasTypes.DataTypeDefXsd, string>([
11✔
733
  [AasTypes.DataTypeDefXsd.AnyUri, "xs:anyURI"],
734
  [AasTypes.DataTypeDefXsd.Base64Binary, "xs:base64Binary"],
735
  [AasTypes.DataTypeDefXsd.Boolean, "xs:boolean"],
736
  [AasTypes.DataTypeDefXsd.Byte, "xs:byte"],
737
  [AasTypes.DataTypeDefXsd.Date, "xs:date"],
738
  [AasTypes.DataTypeDefXsd.DateTime, "xs:dateTime"],
739
  [AasTypes.DataTypeDefXsd.Decimal, "xs:decimal"],
740
  [AasTypes.DataTypeDefXsd.Double, "xs:double"],
741
  [AasTypes.DataTypeDefXsd.Duration, "xs:duration"],
742
  [AasTypes.DataTypeDefXsd.Float, "xs:float"],
743
  [AasTypes.DataTypeDefXsd.GDay, "xs:gDay"],
744
  [AasTypes.DataTypeDefXsd.GMonth, "xs:gMonth"],
745
  [AasTypes.DataTypeDefXsd.GMonthDay, "xs:gMonthDay"],
746
  [AasTypes.DataTypeDefXsd.GYear, "xs:gYear"],
747
  [AasTypes.DataTypeDefXsd.GYearMonth, "xs:gYearMonth"],
748
  [AasTypes.DataTypeDefXsd.HexBinary, "xs:hexBinary"],
749
  [AasTypes.DataTypeDefXsd.Int, "xs:int"],
750
  [AasTypes.DataTypeDefXsd.Integer, "xs:integer"],
751
  [AasTypes.DataTypeDefXsd.Long, "xs:long"],
752
  [AasTypes.DataTypeDefXsd.NegativeInteger, "xs:negativeInteger"],
753
  [AasTypes.DataTypeDefXsd.NonNegativeInteger, "xs:nonNegativeInteger"],
754
  [AasTypes.DataTypeDefXsd.NonPositiveInteger, "xs:nonPositiveInteger"],
755
  [AasTypes.DataTypeDefXsd.PositiveInteger, "xs:positiveInteger"],
756
  [AasTypes.DataTypeDefXsd.Short, "xs:short"],
757
  [AasTypes.DataTypeDefXsd.String, "xs:string"],
758
  [AasTypes.DataTypeDefXsd.Time, "xs:time"],
759
  [AasTypes.DataTypeDefXsd.UnsignedByte, "xs:unsignedByte"],
760
  [AasTypes.DataTypeDefXsd.UnsignedInt, "xs:unsignedInt"],
761
  [AasTypes.DataTypeDefXsd.UnsignedLong, "xs:unsignedLong"],
762
  [AasTypes.DataTypeDefXsd.UnsignedShort, "xs:unsignedShort"]
763
]);
764

765
/**
766
 * Translate {@link types!DataTypeDefXsd} to a string.
767
 *
768
 * @param value - to be stringified
769
 * @returns string representation of {@link types!DataTypeDefXsd}, if `value` valid, and `null` otherwise
770
 */
771
export function dataTypeDefXsdToString(value: AasTypes.DataTypeDefXsd): string | null {
11✔
NEW
772
  const result = DATA_TYPE_DEF_XSD_TO_STRING.get(value);
×
NEW
773
  return result !== undefined ? result : null;
×
774
}
775

776
/**
777
 * Translate {@link types!DataTypeDefXsd} to a string.
778
 *
779
 * @param value - to be stringified
780
 * @returns string representation of {@link types!DataTypeDefXsd}
781
 * @throws
782
 * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error|Error}
783
 * if the `value` is invalid
784
 */
785
export function mustDataTypeDefXsdToString(value: AasTypes.DataTypeDefXsd): string {
11✔
786
  const result = DATA_TYPE_DEF_XSD_TO_STRING.get(value);
2,395✔
787
  if (result === undefined) {
2,395!
NEW
788
    throw new Error(`Invalid literal of DataTypeDefXsd: ${value}`);
×
789
  }
790
  return result;
2,395✔
791
}
792

793
const DATA_TYPE_IEC_61360_FROM_STRING = new Map<string, AasTypes.DataTypeIec61360>([
11✔
794
  ["DATE", AasTypes.DataTypeIec61360.Date],
795
  ["STRING", AasTypes.DataTypeIec61360.String],
796
  ["STRING_TRANSLATABLE", AasTypes.DataTypeIec61360.StringTranslatable],
797
  ["INTEGER_MEASURE", AasTypes.DataTypeIec61360.IntegerMeasure],
798
  ["INTEGER_COUNT", AasTypes.DataTypeIec61360.IntegerCount],
799
  ["INTEGER_CURRENCY", AasTypes.DataTypeIec61360.IntegerCurrency],
800
  ["REAL_MEASURE", AasTypes.DataTypeIec61360.RealMeasure],
801
  ["REAL_COUNT", AasTypes.DataTypeIec61360.RealCount],
802
  ["REAL_CURRENCY", AasTypes.DataTypeIec61360.RealCurrency],
803
  ["BOOLEAN", AasTypes.DataTypeIec61360.Boolean],
804
  ["IRI", AasTypes.DataTypeIec61360.Iri],
805
  ["IRDI", AasTypes.DataTypeIec61360.Irdi],
806
  ["RATIONAL", AasTypes.DataTypeIec61360.Rational],
807
  ["RATIONAL_MEASURE", AasTypes.DataTypeIec61360.RationalMeasure],
808
  ["TIME", AasTypes.DataTypeIec61360.Time],
809
  ["TIMESTAMP", AasTypes.DataTypeIec61360.Timestamp],
810
  ["FILE", AasTypes.DataTypeIec61360.File],
811
  ["HTML", AasTypes.DataTypeIec61360.Html],
812
  ["BLOB", AasTypes.DataTypeIec61360.Blob]
813
]);
814

815
/**
816
 * Parse `text` as a string representation of {@link types!DataTypeIec61360}.
817
 *
818
 * @param text - string representation of {@link types!DataTypeIec61360}
819
 * @returns literal of {@link types!DataTypeIec61360}, if valid, and `null` otherwise
820
 */
821
export function dataTypeIec61360FromString(
11✔
822
  text: string
823
): AasTypes.DataTypeIec61360 | null {
824
  const result = DATA_TYPE_IEC_61360_FROM_STRING.get(text);
30✔
825
  return result !== undefined ? result : null;
30✔
826
}
827

828
const DATA_TYPE_IEC_61360_TO_STRING = new Map<AasTypes.DataTypeIec61360, string>([
11✔
829
  [AasTypes.DataTypeIec61360.Date, "DATE"],
830
  [AasTypes.DataTypeIec61360.String, "STRING"],
831
  [AasTypes.DataTypeIec61360.StringTranslatable, "STRING_TRANSLATABLE"],
832
  [AasTypes.DataTypeIec61360.IntegerMeasure, "INTEGER_MEASURE"],
833
  [AasTypes.DataTypeIec61360.IntegerCount, "INTEGER_COUNT"],
834
  [AasTypes.DataTypeIec61360.IntegerCurrency, "INTEGER_CURRENCY"],
835
  [AasTypes.DataTypeIec61360.RealMeasure, "REAL_MEASURE"],
836
  [AasTypes.DataTypeIec61360.RealCount, "REAL_COUNT"],
837
  [AasTypes.DataTypeIec61360.RealCurrency, "REAL_CURRENCY"],
838
  [AasTypes.DataTypeIec61360.Boolean, "BOOLEAN"],
839
  [AasTypes.DataTypeIec61360.Iri, "IRI"],
840
  [AasTypes.DataTypeIec61360.Irdi, "IRDI"],
841
  [AasTypes.DataTypeIec61360.Rational, "RATIONAL"],
842
  [AasTypes.DataTypeIec61360.RationalMeasure, "RATIONAL_MEASURE"],
843
  [AasTypes.DataTypeIec61360.Time, "TIME"],
844
  [AasTypes.DataTypeIec61360.Timestamp, "TIMESTAMP"],
845
  [AasTypes.DataTypeIec61360.File, "FILE"],
846
  [AasTypes.DataTypeIec61360.Html, "HTML"],
847
  [AasTypes.DataTypeIec61360.Blob, "BLOB"]
848
]);
849

850
/**
851
 * Translate {@link types!DataTypeIec61360} to a string.
852
 *
853
 * @param value - to be stringified
854
 * @returns string representation of {@link types!DataTypeIec61360}, if `value` valid, and `null` otherwise
855
 */
856
export function dataTypeIec61360ToString(
11✔
857
  value: AasTypes.DataTypeIec61360
858
): string | null {
NEW
859
  const result = DATA_TYPE_IEC_61360_TO_STRING.get(value);
×
NEW
860
  return result !== undefined ? result : null;
×
861
}
862

863
/**
864
 * Translate {@link types!DataTypeIec61360} to a string.
865
 *
866
 * @param value - to be stringified
867
 * @returns string representation of {@link types!DataTypeIec61360}
868
 * @throws
869
 * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error|Error}
870
 * if the `value` is invalid
871
 */
872
export function mustDataTypeIec61360ToString(value: AasTypes.DataTypeIec61360): string {
11✔
873
  const result = DATA_TYPE_IEC_61360_TO_STRING.get(value);
3✔
874
  if (result === undefined) {
3!
NEW
875
    throw new Error(`Invalid literal of DataTypeIec61360: ${value}`);
×
876
  }
877
  return result;
3✔
878
}
879

880
// This code has been automatically generated by aas-core-codegen.
881
// Do NOT edit or append.
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc