@osdk/maker 0.13.0-beta.12 → 0.13.0-beta.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +49 -13
  3. package/build/browser/api/defineAction.js +30 -30
  4. package/build/browser/api/defineAction.js.map +1 -1
  5. package/build/browser/api/defineLink.js +30 -9
  6. package/build/browser/api/defineLink.js.map +1 -1
  7. package/build/browser/api/defineOntology.js +1 -1
  8. package/build/browser/api/defineOntology.js.map +1 -1
  9. package/build/browser/api/links/LinkType.js.map +1 -1
  10. package/build/browser/api/overall.test.js +1798 -695
  11. package/build/browser/api/overall.test.js.map +1 -1
  12. package/build/browser/cli/main.js +10 -1
  13. package/build/browser/cli/main.js.map +1 -1
  14. package/build/browser/conversion/toMarketplace/convertLink.js +14 -1
  15. package/build/browser/conversion/toMarketplace/convertLink.js.map +1 -1
  16. package/build/browser/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js +2 -2
  17. package/build/browser/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js.map +1 -1
  18. package/build/cjs/index.cjs +87 -44
  19. package/build/cjs/index.cjs.map +1 -1
  20. package/build/cjs/index.d.cts +38 -3
  21. package/build/esm/api/defineAction.js +30 -30
  22. package/build/esm/api/defineAction.js.map +1 -1
  23. package/build/esm/api/defineLink.js +30 -9
  24. package/build/esm/api/defineLink.js.map +1 -1
  25. package/build/esm/api/defineOntology.js +1 -1
  26. package/build/esm/api/defineOntology.js.map +1 -1
  27. package/build/esm/api/links/LinkType.js.map +1 -1
  28. package/build/esm/api/overall.test.js +1798 -695
  29. package/build/esm/api/overall.test.js.map +1 -1
  30. package/build/esm/cli/main.js +10 -1
  31. package/build/esm/cli/main.js.map +1 -1
  32. package/build/esm/conversion/toMarketplace/convertLink.js +14 -1
  33. package/build/esm/conversion/toMarketplace/convertLink.js.map +1 -1
  34. package/build/esm/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js +2 -2
  35. package/build/esm/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js.map +1 -1
  36. package/build/types/api/defineAction.d.ts +8 -2
  37. package/build/types/api/defineAction.d.ts.map +1 -1
  38. package/build/types/api/defineLink.d.ts.map +1 -1
  39. package/build/types/api/defineOntology.d.ts +1 -1
  40. package/build/types/api/defineOntology.d.ts.map +1 -1
  41. package/build/types/api/links/LinkType.d.ts +29 -0
  42. package/build/types/api/links/LinkType.d.ts.map +1 -1
  43. package/build/types/cli/main.d.ts.map +1 -1
  44. package/build/types/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.d.ts.map +1 -1
  45. package/package.json +6 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @osdk/maker
2
2
 
3
+ ## 0.13.0-beta.14
4
+
5
+ ### Minor Changes
6
+
7
+ - 9dd5a63: Intermediary links in oac
8
+ - e62408b: Fix Maker Rid Generation
9
+
10
+ ### Patch Changes
11
+
12
+ - Updated dependencies [b7edfb5]
13
+ - @osdk/api@2.5.0-beta.14
14
+
15
+ ## 0.13.0-beta.13
16
+
17
+ ### Minor Changes
18
+
19
+ - d815339: Allow interface props to be excluded from actions
20
+
21
+ ### Patch Changes
22
+
23
+ - @osdk/api@2.5.0-beta.13
24
+
3
25
  ## 0.13.0-beta.12
4
26
 
5
27
  ### Minor Changes
package/README.md CHANGED
@@ -495,18 +495,18 @@ const departmentToEmployeesLink = defineLink({
495
495
  one: {
496
496
  object: departmentObject, // The "one" side of the relationship
497
497
  metadata: {
498
- apiName: "department",
499
- displayName: "Department",
500
- pluralDisplayName: "Departments",
498
+ apiName: "employees",
499
+ displayName: "Employee",
500
+ pluralDisplayName: "Employees",
501
501
  visibility: "NORMAL",
502
502
  },
503
503
  },
504
504
  toMany: {
505
505
  object: employeeObject, // The "many" side of the relationship
506
506
  metadata: {
507
- apiName: "employees",
508
- displayName: "Employee",
509
- pluralDisplayName: "Employees",
507
+ apiName: "department",
508
+ displayName: "Department",
509
+ pluralDisplayName: "Departments",
510
510
  visibility: "NORMAL",
511
511
  },
512
512
  },
@@ -522,6 +522,15 @@ const productToCategoriesLink = defineLink({
522
522
  apiName: "productToCategories",
523
523
  many: {
524
524
  object: productObject, // One side of the many-to-many relationship
525
+ metadata: {
526
+ apiName: "categories",
527
+ displayName: "Category",
528
+ pluralDisplayName: "Categories",
529
+ visibility: "NORMAL",
530
+ },
531
+ },
532
+ toMany: {
533
+ object: categoryObject, // Other side of the many-to-many relationship
525
534
  metadata: {
526
535
  apiName: "products",
527
536
  displayName: "Product",
@@ -529,15 +538,38 @@ const productToCategoriesLink = defineLink({
529
538
  visibility: "NORMAL",
530
539
  },
531
540
  },
541
+ });
542
+ ```
543
+
544
+ ### Intermediary Link
545
+
546
+ ```typescript
547
+ // Define an object-backed link type between aircraft and flights using a manifest
548
+ const manifest = defineObject(...); // define an intermediary object
549
+ const aircraftToManifestLink = defineLink(...); // define a one-to-many link between aircraft and intermediary object
550
+ const flightsToManifestLink = defineLink(...); // define a one-to-many link between flights and intermediary object
551
+
552
+ const aircraftToFlightsLink = defineLink({
553
+ apiName: "aircraftToFlights",
554
+ many: {
555
+ object: aircraft,
556
+ metadata: {
557
+ displayName: "Flight",
558
+ pluralDisplayName: "Flights",
559
+ apiName: "flights",
560
+ },
561
+ linkToIntermediary: aircraftToManifestLink,
562
+ },
532
563
  toMany: {
533
- object: categoryObject, // Other side of the many-to-many relationship
564
+ object: flight,
534
565
  metadata: {
535
- apiName: "categories",
536
- displayName: "Category",
537
- pluralDisplayName: "Categories",
538
- visibility: "NORMAL",
566
+ displayName: "Aircraft",
567
+ pluralDisplayName: "Aircraft",
568
+ apiName: "aircraft",
539
569
  },
570
+ linkToIntermediary: flightsToManifestLink,
540
571
  },
572
+ intermediaryObjectType: manifest,
541
573
  });
542
574
  ```
543
575
 
@@ -609,7 +641,9 @@ import {
609
641
  } from "@osdk/maker";
610
642
 
611
643
  // Define an action to create objects implementing an interface
612
- const createPersonAction = defineCreateInterfaceObjectAction(personInterface);
644
+ const createPersonAction = defineCreateInterfaceObjectAction({
645
+ interfaceType: personInterface,
646
+ });
613
647
 
614
648
  // Define an action for a specific object type that implements an interface
615
649
  const createEmployeePersonAction = defineCreateInterfaceObjectAction(
@@ -618,7 +652,9 @@ const createEmployeePersonAction = defineCreateInterfaceObjectAction(
618
652
  );
619
653
 
620
654
  // Define an action to modify objects implementing an interface
621
- const modifyPersonAction = defineModifyInterfaceObjectAction(personInterface);
655
+ const modifyPersonAction = defineModifyInterfaceObjectAction({
656
+ interfaceType: personInterface,
657
+ });
622
658
  ```
623
659
 
624
660
  ### Custom Action
@@ -26,36 +26,36 @@ import { getFlattenedInterfaceProperties } from "./interface/getFlattenedInterfa
26
26
  import { isStruct } from "./properties/PropertyTypeType.js";
27
27
  export const MODIFY_OBJECT_PARAMETER = "objectToModifyParameter";
28
28
  export const CREATE_OR_MODIFY_OBJECT_PARAMETER = "objectToCreateOrModifyParameter";
29
- export function defineCreateInterfaceObjectAction(interfaceType, objectType, validation) {
30
- const allProperties = Object.entries(getFlattenedInterfaceProperties(interfaceType)).filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type));
31
- if (allProperties.length !== Object.entries(getFlattenedInterfaceProperties(interfaceType)).length) {
32
- consola.info(`Some properties on ${interfaceType.apiName} were skipped in the create action because they are structs`);
29
+ export function defineCreateInterfaceObjectAction(def) {
30
+ const allProperties = Object.entries(getFlattenedInterfaceProperties(def.interfaceType)).filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type) && !(def.excludedProperties ?? []).includes(prop.sharedPropertyType.nonNameSpacedApiName));
31
+ if (allProperties.length !== Object.entries(getFlattenedInterfaceProperties(def.interfaceType)).length) {
32
+ consola.info(`Some properties on ${def.interfaceType.apiName} were skipped in the create action because they are structs`);
33
33
  }
34
34
  return defineAction({
35
- apiName: `create-${kebab(interfaceType.apiName.split(".").pop() ?? interfaceType.apiName)}${objectType === undefined ? "" : `-${kebab(objectType.apiName.split(".").pop() ?? objectType.apiName)}`}`,
36
- displayName: `Create ${interfaceType.displayMetadata.displayName}`,
35
+ apiName: `create-${kebab(def.interfaceType.apiName.split(".").pop() ?? def.interfaceType.apiName)}${def.objectType === undefined ? "" : `-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`}`,
36
+ displayName: `Create ${def.interfaceType.displayMetadata.displayName}`,
37
37
  parameters: [{
38
38
  id: "objectTypeParameter",
39
39
  displayName: "Object type to create",
40
40
  type: {
41
41
  type: "objectTypeReference",
42
42
  objectTypeReference: {
43
- interfaceTypeRids: [interfaceType.apiName]
43
+ interfaceTypeRids: [def.interfaceType.apiName]
44
44
  }
45
45
  },
46
46
  validation: {
47
47
  required: true,
48
- allowedValues: objectType === undefined ? {
48
+ allowedValues: def.objectType === undefined ? {
49
49
  type: "objectTypeReference",
50
- interfaceTypes: [interfaceType.apiName]
50
+ interfaceTypes: [def.interfaceType.apiName]
51
51
  } : {
52
52
  type: "oneOf",
53
53
  oneOf: [{
54
- label: objectType.displayName,
54
+ label: def.objectType.displayName,
55
55
  value: {
56
56
  type: "objectType",
57
57
  objectType: {
58
- objectTypeId: objectType.apiName
58
+ objectTypeId: def.objectType.apiName
59
59
  }
60
60
  }
61
61
  }]
@@ -73,9 +73,9 @@ export function defineCreateInterfaceObjectAction(interfaceType, objectType, val
73
73
  allowedValues: extractAllowedValuesFromPropertyType(prop.sharedPropertyType.type)
74
74
  }
75
75
  }))],
76
- status: interfaceType.status.type !== "deprecated" ? interfaceType.status.type : interfaceType.status,
76
+ status: def.interfaceType.status.type !== "deprecated" ? def.interfaceType.status.type : def.interfaceType.status,
77
77
  entities: {
78
- affectedInterfaceTypes: [interfaceType.apiName],
78
+ affectedInterfaceTypes: [def.interfaceType.apiName],
79
79
  affectedObjectTypes: [],
80
80
  affectedLinkTypes: [],
81
81
  typeGroups: []
@@ -83,7 +83,7 @@ export function defineCreateInterfaceObjectAction(interfaceType, objectType, val
83
83
  rules: [{
84
84
  type: "addInterfaceRule",
85
85
  addInterfaceRule: {
86
- interfaceApiName: interfaceType.apiName,
86
+ interfaceApiName: def.interfaceType.apiName,
87
87
  objectTypeParameter: "objectTypeParameter",
88
88
  sharedPropertyValues: Object.fromEntries(allProperties.map(([id, _prop]) => [id, {
89
89
  type: "parameterId",
@@ -91,8 +91,8 @@ export function defineCreateInterfaceObjectAction(interfaceType, objectType, val
91
91
  }]))
92
92
  }
93
93
  }],
94
- ...(validation ? {
95
- validation: convertValidationRule(validation)
94
+ ...(def.validation ? {
95
+ validation: convertValidationRule(def.validation)
96
96
  } : {})
97
97
  });
98
98
  }
@@ -153,35 +153,35 @@ export function defineCreateObjectAction(def) {
153
153
  })
154
154
  });
155
155
  }
156
- export function defineModifyInterfaceObjectAction(interfaceType, objectType, validation) {
157
- const allProperties = Object.entries(getFlattenedInterfaceProperties(interfaceType)).filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type));
158
- if (allProperties.length !== Object.entries(getFlattenedInterfaceProperties(interfaceType)).length) {
159
- consola.info(`Some properties on ${interfaceType.apiName} were skipped in the modify action because they are structs`);
156
+ export function defineModifyInterfaceObjectAction(def) {
157
+ const allProperties = Object.entries(getFlattenedInterfaceProperties(def.interfaceType)).filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type) && !(def.excludedProperties ?? []).includes(prop.sharedPropertyType.nonNameSpacedApiName));
158
+ if (allProperties.length !== Object.entries(getFlattenedInterfaceProperties(def.interfaceType)).length) {
159
+ consola.info(`Some properties on ${def.interfaceType.apiName} were skipped in the modify action because they are structs`);
160
160
  }
161
161
  return defineAction({
162
- apiName: `modify-${kebab(interfaceType.apiName.split(".").pop() ?? interfaceType.apiName)}${objectType === undefined ? "" : `-${kebab(objectType.apiName.split(".").pop() ?? objectType.apiName)}`}`,
163
- displayName: `Modify ${interfaceType.displayMetadata.displayName}`,
162
+ apiName: `modify-${kebab(def.interfaceType.apiName.split(".").pop() ?? def.interfaceType.apiName)}${def.objectType === undefined ? "" : `-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`}`,
163
+ displayName: `Modify ${def.interfaceType.displayMetadata.displayName}`,
164
164
  parameters: [{
165
165
  id: "interfaceObjectToModifyParameter",
166
166
  displayName: "Object type to modify",
167
167
  type: {
168
168
  type: "interfaceReference",
169
169
  interfaceReference: {
170
- interfaceTypeRid: interfaceType.apiName
170
+ interfaceTypeRid: def.interfaceType.apiName
171
171
  }
172
172
  },
173
173
  validation: {
174
174
  required: true,
175
- allowedValues: objectType === undefined ? {
175
+ allowedValues: def.objectType === undefined ? {
176
176
  type: "interfaceObjectQuery"
177
177
  } : {
178
178
  type: "oneOf",
179
179
  oneOf: [{
180
- label: objectType.displayName,
180
+ label: def.objectType.displayName,
181
181
  value: {
182
182
  type: "objectType",
183
183
  objectType: {
184
- objectTypeId: objectType.apiName
184
+ objectTypeId: def.objectType.apiName
185
185
  }
186
186
  }
187
187
  }]
@@ -199,9 +199,9 @@ export function defineModifyInterfaceObjectAction(interfaceType, objectType, val
199
199
  allowedValues: extractAllowedValuesFromPropertyType(prop.sharedPropertyType.type)
200
200
  }
201
201
  }))],
202
- status: interfaceType.status.type !== "deprecated" ? interfaceType.status.type : interfaceType.status,
202
+ status: def.interfaceType.status.type !== "deprecated" ? def.interfaceType.status.type : def.interfaceType.status,
203
203
  entities: {
204
- affectedInterfaceTypes: [interfaceType.apiName],
204
+ affectedInterfaceTypes: [def.interfaceType.apiName],
205
205
  affectedObjectTypes: [],
206
206
  affectedLinkTypes: [],
207
207
  typeGroups: []
@@ -216,8 +216,8 @@ export function defineModifyInterfaceObjectAction(interfaceType, objectType, val
216
216
  }]))
217
217
  }
218
218
  }],
219
- ...(validation ? {
220
- validation: convertValidationRule(validation)
219
+ ...(def.validation ? {
220
+ validation: convertValidationRule(def.validation)
221
221
  } : {})
222
222
  });
223
223
  }