@osdk/maker 0.12.0-beta.16 → 0.12.0-beta.18
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/CHANGELOG.md +19 -0
- package/build/browser/api/defineAction.js +132 -32
- package/build/browser/api/defineAction.js.map +1 -1
- package/build/browser/api/defineOntology.js +9 -2
- package/build/browser/api/defineOntology.js.map +1 -1
- package/build/browser/api/defineSpt.js.map +1 -1
- package/build/browser/api/overall.test.js +845 -1805
- package/build/browser/api/overall.test.js.map +1 -1
- package/build/browser/api/types.js.map +1 -1
- package/build/browser/cli/main.js +1 -1
- package/build/cjs/index.cjs +140 -35
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +5 -4
- package/build/esm/api/defineAction.js +132 -32
- package/build/esm/api/defineAction.js.map +1 -1
- package/build/esm/api/defineOntology.js +9 -2
- package/build/esm/api/defineOntology.js.map +1 -1
- package/build/esm/api/defineSpt.js.map +1 -1
- package/build/esm/api/overall.test.js +845 -1805
- package/build/esm/api/overall.test.js.map +1 -1
- package/build/esm/api/types.js.map +1 -1
- package/build/esm/cli/main.js +1 -1
- package/build/types/api/defineAction.d.ts.map +1 -1
- package/build/types/api/defineOntology.d.ts.map +1 -1
- package/build/types/api/defineSpt.d.ts +2 -2
- package/build/types/api/defineSpt.d.ts.map +1 -1
- package/build/types/api/types.d.ts +4 -3
- package/build/types/api/types.d.ts.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @osdk/maker
|
|
2
2
|
|
|
3
|
+
## 0.12.0-beta.18
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- @osdk/api@2.4.0-beta.15
|
|
8
|
+
|
|
9
|
+
## 0.12.0-beta.17
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- f1f587b: Support custom parameters in OAC actions
|
|
14
|
+
- 641bc0c: Fix create-or-modify non parameter mapped property bug
|
|
15
|
+
- 25bae67: OAC modify object actions set parameter defaults to match the selected object
|
|
16
|
+
- 5c76e33: Trim value type before putting it in SPT IR
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- @osdk/api@2.4.0-beta.14
|
|
21
|
+
|
|
3
22
|
## 0.12.0-beta.16
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
|
@@ -64,7 +64,7 @@ export function defineCreateInterfaceObjectAction(interfaceType, objectType, val
|
|
|
64
64
|
required: prop.sharedPropertyType.array ?? false ? {
|
|
65
65
|
listLength: {}
|
|
66
66
|
} : prop.required,
|
|
67
|
-
allowedValues:
|
|
67
|
+
allowedValues: extractAllowedValuesFromPropertyType(prop.sharedPropertyType.type)
|
|
68
68
|
}
|
|
69
69
|
}))],
|
|
70
70
|
status: interfaceType.status.type !== "deprecated" ? interfaceType.status.type : interfaceType.status,
|
|
@@ -91,10 +91,10 @@ export function defineCreateInterfaceObjectAction(interfaceType, objectType, val
|
|
|
91
91
|
});
|
|
92
92
|
}
|
|
93
93
|
export function defineCreateObjectAction(def) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
94
|
+
validateActionParameters(def);
|
|
95
|
+
const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter(id => !Object.keys(def.nonParameterMappings ?? {}).includes(id) && !def.excludedProperties?.includes(id) && !isStruct(def.objectType.properties?.[id].type));
|
|
96
|
+
const parameterNames = new Set(propertyParameters);
|
|
97
|
+
Object.keys(def.parameterConfiguration ?? {}).forEach(param => parameterNames.add(param));
|
|
98
98
|
if (def.parameterOrdering) {
|
|
99
99
|
const sortedOrdering = [...def.parameterOrdering].sort();
|
|
100
100
|
const sortedParameterNames = [...parameterNames].sort();
|
|
@@ -118,9 +118,9 @@ export function defineCreateObjectAction(def) {
|
|
|
118
118
|
addObjectRule: {
|
|
119
119
|
objectTypeId: def.objectType.apiName,
|
|
120
120
|
propertyValues: {
|
|
121
|
-
...Object.fromEntries(
|
|
121
|
+
...Object.fromEntries(propertyParameters.map(p => [p, {
|
|
122
122
|
type: "parameterId",
|
|
123
|
-
parameterId: p
|
|
123
|
+
parameterId: p
|
|
124
124
|
}])),
|
|
125
125
|
...mappings
|
|
126
126
|
},
|
|
@@ -190,7 +190,7 @@ export function defineModifyInterfaceObjectAction(interfaceType, objectType, val
|
|
|
190
190
|
required: prop.sharedPropertyType.array ?? false ? {
|
|
191
191
|
listLength: {}
|
|
192
192
|
} : prop.required,
|
|
193
|
-
allowedValues:
|
|
193
|
+
allowedValues: extractAllowedValuesFromPropertyType(prop.sharedPropertyType.type)
|
|
194
194
|
}
|
|
195
195
|
}))],
|
|
196
196
|
status: interfaceType.status.type !== "deprecated" ? interfaceType.status.type : interfaceType.status,
|
|
@@ -216,16 +216,27 @@ export function defineModifyInterfaceObjectAction(interfaceType, objectType, val
|
|
|
216
216
|
});
|
|
217
217
|
}
|
|
218
218
|
export function defineModifyObjectAction(def) {
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
219
|
+
validateActionParameters(def);
|
|
220
|
+
const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter(id => !Object.keys(def.nonParameterMappings ?? {}).includes(id) && !def.excludedProperties?.includes(id) && !isStruct(def.objectType.properties?.[id].type) && id !== def.objectType.primaryKeyPropertyApiName);
|
|
221
|
+
const parameterNames = new Set(propertyParameters);
|
|
222
|
+
Object.keys(def.parameterConfiguration ?? {}).forEach(param => parameterNames.add(param));
|
|
223
223
|
if (def.parameterOrdering) {
|
|
224
224
|
const sortedOrdering = [...def.parameterOrdering].sort();
|
|
225
225
|
const sortedParameterNames = [...parameterNames].sort();
|
|
226
226
|
!(sortedOrdering.length === sortedParameterNames.length && sortedOrdering.every((name, index) => name === sortedParameterNames[index])) ? process.env.NODE_ENV !== "production" ? invariant(false, `Action parameter ordering for ${def.objectType.apiName} does not match non-excluded properties`) : invariant(false) : void 0;
|
|
227
227
|
}
|
|
228
228
|
const parameters = createParameters(def, parameterNames, false);
|
|
229
|
+
parameters.forEach(p => {
|
|
230
|
+
if (p.defaultValue === undefined) {
|
|
231
|
+
p.defaultValue = {
|
|
232
|
+
type: "objectParameterPropertyValue",
|
|
233
|
+
objectParameterPropertyValue: {
|
|
234
|
+
parameterId: "objectToModifyParameter",
|
|
235
|
+
propertyTypeId: p.id
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
});
|
|
229
240
|
const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));
|
|
230
241
|
return defineAction({
|
|
231
242
|
apiName: def.apiName ?? `modify-object-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`,
|
|
@@ -252,9 +263,9 @@ export function defineModifyObjectAction(def) {
|
|
|
252
263
|
modifyObjectRule: {
|
|
253
264
|
objectToModify: "objectToModifyParameter",
|
|
254
265
|
propertyValues: {
|
|
255
|
-
...Object.fromEntries(
|
|
266
|
+
...Object.fromEntries(propertyParameters.map(p => [p, {
|
|
256
267
|
type: "parameterId",
|
|
257
|
-
parameterId: p
|
|
268
|
+
parameterId: p
|
|
258
269
|
}])),
|
|
259
270
|
...mappings
|
|
260
271
|
},
|
|
@@ -326,13 +337,10 @@ export function defineDeleteObjectAction(def) {
|
|
|
326
337
|
});
|
|
327
338
|
}
|
|
328
339
|
export function defineCreateOrModifyObjectAction(def) {
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
(def.
|
|
333
|
-
!(def.objectType.properties?.[id] !== undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Property ${id} does not exist on ${def.objectType.apiName}`) : invariant(false) : void 0;
|
|
334
|
-
});
|
|
335
|
-
const parameterNames = Object.keys(def.objectType.properties ?? {}).filter(id => !def.excludedProperties?.includes(id) && !isStruct(def.objectType.properties?.[id].type) && id !== def.objectType.primaryKeyPropertyApiName);
|
|
340
|
+
validateActionParameters(def);
|
|
341
|
+
const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter(id => !def.excludedProperties?.includes(id) && !isStruct(def.objectType.properties?.[id].type) && id !== def.objectType.primaryKeyPropertyApiName);
|
|
342
|
+
const parameterNames = new Set(propertyParameters);
|
|
343
|
+
Object.keys(def.parameterConfiguration ?? {}).forEach(param => parameterNames.add(param));
|
|
336
344
|
if (def.parameterOrdering) {
|
|
337
345
|
const sortedOrdering = [...def.parameterOrdering].sort();
|
|
338
346
|
const sortedParameterNames = [...parameterNames].sort();
|
|
@@ -350,7 +358,7 @@ export function defineCreateOrModifyObjectAction(def) {
|
|
|
350
358
|
};
|
|
351
359
|
}
|
|
352
360
|
});
|
|
353
|
-
Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));
|
|
361
|
+
const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));
|
|
354
362
|
return defineAction({
|
|
355
363
|
apiName: def.apiName ?? `create-or-modify-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`,
|
|
356
364
|
displayName: def.displayName ?? `Create or Modify ${def.objectType.displayName}`,
|
|
@@ -382,10 +390,13 @@ export function defineCreateOrModifyObjectAction(def) {
|
|
|
382
390
|
type: "addOrModifyObjectRuleV2",
|
|
383
391
|
addOrModifyObjectRuleV2: {
|
|
384
392
|
objectToModify: "objectToCreateOrModifyParameter",
|
|
385
|
-
propertyValues:
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
393
|
+
propertyValues: {
|
|
394
|
+
...Object.fromEntries(propertyParameters.map(p => [p, {
|
|
395
|
+
type: "parameterId",
|
|
396
|
+
parameterId: p
|
|
397
|
+
}])),
|
|
398
|
+
...mappings
|
|
399
|
+
},
|
|
389
400
|
structFieldValues: {}
|
|
390
401
|
}
|
|
391
402
|
}],
|
|
@@ -453,14 +464,21 @@ export function defineAction(actionDef) {
|
|
|
453
464
|
updateOntology(fullAction);
|
|
454
465
|
return fullAction;
|
|
455
466
|
}
|
|
456
|
-
function createParameters(def,
|
|
467
|
+
function createParameters(def, parameterSet, defaultRequired) {
|
|
468
|
+
const parameterNames = Array.from(parameterSet);
|
|
469
|
+
// prefix objectReference parameters with the namespace
|
|
470
|
+
parameterNames.forEach(name => {
|
|
471
|
+
if (typeof def.parameterConfiguration?.[name]?.customParameterType === "object" && def.parameterConfiguration?.[name]?.customParameterType.type === "objectReference") {
|
|
472
|
+
def.parameterConfiguration[name].customParameterType.objectReference.objectTypeId = sanitize(def.parameterConfiguration[name].customParameterType.objectReference.objectTypeId);
|
|
473
|
+
}
|
|
474
|
+
});
|
|
457
475
|
return Array.from(parameterNames).map(id => ({
|
|
458
476
|
id,
|
|
459
|
-
displayName: def.parameterConfiguration?.[id]?.displayName ?? def.objectType.properties?.[id]
|
|
460
|
-
type: extractActionParameterType(def.objectType.properties?.[id]),
|
|
477
|
+
displayName: def.parameterConfiguration?.[id]?.displayName ?? def.objectType.properties?.[id]?.displayName ?? convertToDisplayName(id),
|
|
478
|
+
type: def.parameterConfiguration?.[id]?.customParameterType ?? extractActionParameterType(def.objectType.properties?.[id]),
|
|
461
479
|
validation: def.parameterConfiguration?.[id] !== undefined ? {
|
|
462
480
|
...def.parameterConfiguration?.[id],
|
|
463
|
-
allowedValues: def.parameterConfiguration?.[id].allowedValues ??
|
|
481
|
+
allowedValues: def.parameterConfiguration?.[id].allowedValues ?? (def.parameterConfiguration?.[id].customParameterType ? extractAllowedValuesFromActionParameterType(def.parameterConfiguration?.[id].customParameterType) : extractAllowedValuesFromPropertyType(def.objectType.properties?.[id].type)),
|
|
464
482
|
required: def.parameterConfiguration?.[id].required ?? defaultRequired
|
|
465
483
|
} : {
|
|
466
484
|
required: def.objectType.properties?.[id].array ?? false ? {
|
|
@@ -468,7 +486,7 @@ function createParameters(def, parameterNames, defaultRequired) {
|
|
|
468
486
|
min: 1
|
|
469
487
|
} : {}
|
|
470
488
|
} : def.objectType.properties?.[id].nullability?.noNulls ?? defaultRequired,
|
|
471
|
-
allowedValues:
|
|
489
|
+
allowedValues: extractAllowedValuesFromPropertyType(def.objectType.properties?.[id].type)
|
|
472
490
|
},
|
|
473
491
|
defaultValue: def.parameterConfiguration?.[id]?.defaultValue,
|
|
474
492
|
description: def.parameterConfiguration?.[id]?.description
|
|
@@ -537,7 +555,80 @@ function referencedParameterIds(actionDef) {
|
|
|
537
555
|
});
|
|
538
556
|
return parameterIds;
|
|
539
557
|
}
|
|
540
|
-
function
|
|
558
|
+
function extractAllowedValuesFromActionParameterType(type) {
|
|
559
|
+
if (typeof type === "object") {
|
|
560
|
+
switch (type.type) {
|
|
561
|
+
case "objectReference":
|
|
562
|
+
case "objectReferenceList":
|
|
563
|
+
return {
|
|
564
|
+
type: "objectQuery"
|
|
565
|
+
};
|
|
566
|
+
case "struct":
|
|
567
|
+
case "structList":
|
|
568
|
+
throw new Error("Structs are not supported yet");
|
|
569
|
+
default:
|
|
570
|
+
throw new Error(`Inferred allowed values for ${type.type} not yet supported. Please explicitly provide allowed values.`);
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
switch (type) {
|
|
574
|
+
case "boolean":
|
|
575
|
+
case "booleanList":
|
|
576
|
+
return {
|
|
577
|
+
type: "boolean"
|
|
578
|
+
};
|
|
579
|
+
case "integer":
|
|
580
|
+
case "integerList":
|
|
581
|
+
case "decimal":
|
|
582
|
+
case "decimalList":
|
|
583
|
+
case "double":
|
|
584
|
+
case "doubleList":
|
|
585
|
+
case "long":
|
|
586
|
+
case "longList":
|
|
587
|
+
return {
|
|
588
|
+
type: "range"
|
|
589
|
+
};
|
|
590
|
+
case "timestamp":
|
|
591
|
+
case "timestampList":
|
|
592
|
+
case "date":
|
|
593
|
+
case "dateList":
|
|
594
|
+
return {
|
|
595
|
+
type: "datetime"
|
|
596
|
+
};
|
|
597
|
+
case "string":
|
|
598
|
+
case "stringList":
|
|
599
|
+
return {
|
|
600
|
+
type: "text"
|
|
601
|
+
};
|
|
602
|
+
case "geohash":
|
|
603
|
+
case "geohashList":
|
|
604
|
+
return {
|
|
605
|
+
type: "geohash"
|
|
606
|
+
};
|
|
607
|
+
case "geoshape":
|
|
608
|
+
case "geoshapeList":
|
|
609
|
+
return {
|
|
610
|
+
type: "geoshape"
|
|
611
|
+
};
|
|
612
|
+
case "mediaReference":
|
|
613
|
+
case "mediaReferenceList":
|
|
614
|
+
return {
|
|
615
|
+
type: "mediaReference"
|
|
616
|
+
};
|
|
617
|
+
case "geotimeSeriesReference":
|
|
618
|
+
case "geotimeSeriesReferenceList":
|
|
619
|
+
return {
|
|
620
|
+
type: "geotimeSeriesReference"
|
|
621
|
+
};
|
|
622
|
+
case "attachment":
|
|
623
|
+
case "attachmentList":
|
|
624
|
+
return {
|
|
625
|
+
type: "attachment"
|
|
626
|
+
};
|
|
627
|
+
default:
|
|
628
|
+
throw new Error(`Inferred allowed values for ${type} not yet supported. Please explicitly provide allowed values.`);
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
function extractAllowedValuesFromPropertyType(type) {
|
|
541
632
|
switch (type) {
|
|
542
633
|
case "boolean":
|
|
543
634
|
return {
|
|
@@ -735,4 +826,13 @@ function validateActionCondition(condition, currentParameterId, seenParameterIds
|
|
|
735
826
|
throw new Error(`Unknown condition type on parameter ${currentParameterId}`);
|
|
736
827
|
}
|
|
737
828
|
}
|
|
829
|
+
function validateActionParameters(def) {
|
|
830
|
+
// validates that parameters either exist as object properties or have a type defined
|
|
831
|
+
[...Object.keys(def.parameterConfiguration ?? {})].forEach(id => {
|
|
832
|
+
!(def.objectType.properties?.[id] !== undefined || def.parameterConfiguration?.[id].customParameterType !== undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Parameter ${id} does not exist as a property on ${def.objectType.apiName} and its type is not explicitly defined`) : invariant(false) : void 0;
|
|
833
|
+
});
|
|
834
|
+
[...Object.keys(def.nonParameterMappings ?? {}), ...(def.excludedProperties ?? [])].forEach(id => {
|
|
835
|
+
!(def.objectType.properties?.[id] !== undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Property ${id} does not exist as a property on ${def.objectType.apiName}`) : invariant(false) : void 0;
|
|
836
|
+
});
|
|
837
|
+
}
|
|
738
838
|
//# sourceMappingURL=defineAction.js.map
|