@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
@@ -378,9 +378,15 @@ type ActionTypeUserDefinition = {
378
378
  submissionMetadata?: SubmissionMetadata;
379
379
  primaryKeyOption?: "autoGenerated" | "userInput";
380
380
  };
381
- declare function defineCreateInterfaceObjectAction(interfaceType: InterfaceType, objectType?: ObjectTypeDefinition, validation?: ActionLevelValidationDefinition): ActionType;
381
+ type InterfaceActionTypeUserDefinition = {
382
+ interfaceType: InterfaceType;
383
+ objectType?: ObjectTypeDefinition;
384
+ validation?: ActionLevelValidationDefinition;
385
+ excludedProperties?: Array<string>;
386
+ };
387
+ declare function defineCreateInterfaceObjectAction(def: InterfaceActionTypeUserDefinition): ActionType;
382
388
  declare function defineCreateObjectAction(def: ActionTypeUserDefinition): ActionType;
383
- declare function defineModifyInterfaceObjectAction(interfaceType: InterfaceType, objectType?: ObjectTypeDefinition, validation?: ActionLevelValidationDefinition): ActionType;
389
+ declare function defineModifyInterfaceObjectAction(def: InterfaceActionTypeUserDefinition): ActionType;
384
390
  declare function defineModifyObjectAction(def: ActionTypeUserDefinition): ActionType;
385
391
  declare function defineDeleteObjectAction(def: ActionTypeUserDefinition): ActionType;
386
392
  declare function defineCreateOrModifyObjectAction(def: ActionTypeUserDefinition): ActionType;
@@ -440,11 +446,15 @@ type LinkType = (OntologyEntityBase & OneToManyLinkTypeDefinition & {
440
446
  __type: OntologyEntityTypeEnum.LINK_TYPE;
441
447
  }) | (OntologyEntityBase & ManyToManyLinkTypeDefinition & {
442
448
  __type: OntologyEntityTypeEnum.LINK_TYPE;
449
+ }) | (OntologyEntityBase & IntermediaryLinkTypeDefinition & {
450
+ __type: OntologyEntityTypeEnum.LINK_TYPE;
443
451
  });
444
452
  type LinkTypeDefinition = Omit<OntologyEntityBase & OneToManyLinkTypeUserDefinition & {
445
453
  __type: OntologyEntityTypeEnum.LINK_TYPE;
446
454
  }, "__type"> | Omit<OntologyEntityBase & ManyToManyLinkTypeUserDefinition & {
447
455
  __type: OntologyEntityTypeEnum.LINK_TYPE;
456
+ }, "__type"> | Omit<OntologyEntityBase & IntermediaryLinkTypeUserDefinition & {
457
+ __type: OntologyEntityTypeEnum.LINK_TYPE;
448
458
  }, "__type">;
449
459
  type ObjectTypePropertyApiName = string;
450
460
  interface OneToManyLinkTypeDefinition {
@@ -493,6 +503,31 @@ interface ManyToManyObjectLinkReferenceUserDefinition {
493
503
  object: ObjectTypeDefinition;
494
504
  metadata: LinkTypeMetadataUserDefinition;
495
505
  }
506
+ interface IntermediaryLinkTypeDefinition {
507
+ apiName: string;
508
+ many: IntermediaryObjectLinkReference;
509
+ toMany: IntermediaryObjectLinkReference;
510
+ intermediaryObjectType: ObjectTypeDefinition;
511
+ editsEnabled?: boolean;
512
+ status?: OntologyIrLinkTypeStatus;
513
+ redacted?: boolean;
514
+ }
515
+ interface IntermediaryObjectLinkReference {
516
+ object: ObjectTypeDefinition;
517
+ metadata: LinkTypeMetadata;
518
+ linkToIntermediary: LinkType;
519
+ }
520
+ interface IntermediaryLinkTypeUserDefinition {
521
+ apiName: string;
522
+ many: IntermediaryObjectLinkReferenceUserDefinition;
523
+ toMany: IntermediaryObjectLinkReferenceUserDefinition;
524
+ intermediaryObjectType: ObjectTypeDefinition;
525
+ }
526
+ interface IntermediaryObjectLinkReferenceUserDefinition {
527
+ object: ObjectTypeDefinition;
528
+ metadata: LinkTypeMetadataUserDefinition;
529
+ linkToIntermediary: LinkType;
530
+ }
496
531
  interface LinkTypeMetadataUserDefinition {
497
532
  apiName: string;
498
533
  displayName?: string;
@@ -528,7 +563,7 @@ interface ObjectTypeInner extends Omit<OntologyIrObjectType, "titlePropertyTypeR
528
563
  status?: ObjectTypeStatus;
529
564
  }
530
565
 
531
- declare function defineOntology(ns: string, body: () => void | Promise<void>, outputDir: string | undefined, dependencyFile?: string): Promise<OntologyIr>;
566
+ declare function defineOntology(ns: string, body: () => void | Promise<void>, outputDir: string | undefined, dependencyFile?: string, uniquenessKey?: string): Promise<OntologyIr>;
532
567
  declare function dumpOntologyFullMetadata(): OntologyIr;
533
568
  declare function addNamespaceIfNone(apiName: string): string;
534
569
 
@@ -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
  }