@osdk/maker 0.14.0-beta.6 → 0.14.0-beta.8

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 (77) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +86 -22
  3. package/build/browser/api/defineCreateObjectAction.js +3 -1
  4. package/build/browser/api/defineCreateObjectAction.js.map +1 -1
  5. package/build/browser/api/defineCreateOrModifyObjectAction.js +2 -1
  6. package/build/browser/api/defineCreateOrModifyObjectAction.js.map +1 -1
  7. package/build/browser/api/defineDeleteInterfaceObjectAction.js +53 -0
  8. package/build/browser/api/defineDeleteInterfaceObjectAction.js.map +1 -0
  9. package/build/browser/api/defineLink.js +5 -13
  10. package/build/browser/api/defineLink.js.map +1 -1
  11. package/build/browser/api/defineObject.js +94 -3
  12. package/build/browser/api/defineObject.js.map +1 -1
  13. package/build/browser/api/links/LinkType.js.map +1 -1
  14. package/build/browser/api/object/ObjectType.js.map +1 -1
  15. package/build/browser/api/object/ObjectTypeDatasourceDefinition.js.map +1 -1
  16. package/build/browser/api/object/ObjectTypeDefinition.js.map +1 -1
  17. package/build/browser/api/test/actions.test.js +788 -2
  18. package/build/browser/api/test/actions.test.js.map +1 -1
  19. package/build/browser/api/test/objects.test.js +1109 -12
  20. package/build/browser/api/test/objects.test.js.map +1 -1
  21. package/build/browser/cli/main.js +1 -1
  22. package/build/browser/conversion/toMarketplace/convertDatasourceDefinition.js +3 -2
  23. package/build/browser/conversion/toMarketplace/convertDatasourceDefinition.js.map +1 -1
  24. package/build/browser/conversion/toMarketplace/convertLink.js +109 -24
  25. package/build/browser/conversion/toMarketplace/convertLink.js.map +1 -1
  26. package/build/browser/conversion/toMarketplace/convertObject.js +81 -4
  27. package/build/browser/conversion/toMarketplace/convertObject.js.map +1 -1
  28. package/build/browser/index.js +1 -0
  29. package/build/browser/index.js.map +1 -1
  30. package/build/cjs/index.cjs +442 -194
  31. package/build/cjs/index.cjs.map +1 -1
  32. package/build/cjs/index.d.cts +139 -99
  33. package/build/esm/api/defineCreateObjectAction.js +3 -1
  34. package/build/esm/api/defineCreateObjectAction.js.map +1 -1
  35. package/build/esm/api/defineCreateOrModifyObjectAction.js +2 -1
  36. package/build/esm/api/defineCreateOrModifyObjectAction.js.map +1 -1
  37. package/build/esm/api/defineDeleteInterfaceObjectAction.js +53 -0
  38. package/build/esm/api/defineDeleteInterfaceObjectAction.js.map +1 -0
  39. package/build/esm/api/defineLink.js +5 -13
  40. package/build/esm/api/defineLink.js.map +1 -1
  41. package/build/esm/api/defineObject.js +94 -3
  42. package/build/esm/api/defineObject.js.map +1 -1
  43. package/build/esm/api/links/LinkType.js.map +1 -1
  44. package/build/esm/api/object/ObjectType.js.map +1 -1
  45. package/build/esm/api/object/ObjectTypeDatasourceDefinition.js.map +1 -1
  46. package/build/esm/api/object/ObjectTypeDefinition.js.map +1 -1
  47. package/build/esm/api/test/actions.test.js +788 -2
  48. package/build/esm/api/test/actions.test.js.map +1 -1
  49. package/build/esm/api/test/objects.test.js +1109 -12
  50. package/build/esm/api/test/objects.test.js.map +1 -1
  51. package/build/esm/cli/main.js +1 -1
  52. package/build/esm/conversion/toMarketplace/convertDatasourceDefinition.js +3 -2
  53. package/build/esm/conversion/toMarketplace/convertDatasourceDefinition.js.map +1 -1
  54. package/build/esm/conversion/toMarketplace/convertLink.js +109 -24
  55. package/build/esm/conversion/toMarketplace/convertLink.js.map +1 -1
  56. package/build/esm/conversion/toMarketplace/convertObject.js +81 -4
  57. package/build/esm/conversion/toMarketplace/convertObject.js.map +1 -1
  58. package/build/esm/index.js +1 -0
  59. package/build/esm/index.js.map +1 -1
  60. package/build/types/api/defineCreateObjectAction.d.ts.map +1 -1
  61. package/build/types/api/defineDeleteInterfaceObjectAction.d.ts +3 -0
  62. package/build/types/api/defineDeleteInterfaceObjectAction.d.ts.map +1 -0
  63. package/build/types/api/defineLink.d.ts.map +1 -1
  64. package/build/types/api/defineObject.d.ts.map +1 -1
  65. package/build/types/api/links/LinkType.d.ts +7 -7
  66. package/build/types/api/object/ObjectType.d.ts +1 -1
  67. package/build/types/api/object/ObjectType.d.ts.map +1 -1
  68. package/build/types/api/object/ObjectTypeDatasourceDefinition.d.ts +41 -1
  69. package/build/types/api/object/ObjectTypeDatasourceDefinition.d.ts.map +1 -1
  70. package/build/types/api/object/ObjectTypeDefinition.d.ts +1 -1
  71. package/build/types/api/object/ObjectTypeDefinition.d.ts.map +1 -1
  72. package/build/types/conversion/toMarketplace/convertLink.d.ts +6 -0
  73. package/build/types/conversion/toMarketplace/convertLink.d.ts.map +1 -1
  74. package/build/types/conversion/toMarketplace/convertObject.d.ts.map +1 -1
  75. package/build/types/index.d.ts +1 -0
  76. package/build/types/index.d.ts.map +1 -1
  77. package/package.json +3 -3
@@ -1,4 +1,4 @@
1
- import { OntologyIrLabelledValue, OntologyIrConditionValue, OntologyIrParameterDateRangeValue, InterfaceTypeApiName, OntologyIrCondition, OntologyIrParameterPrefill, OntologyIrBaseParameterType_decimal, OntologyIrBaseParameterType_decimalList, OntologyIrBaseParameterType_timestamp, OntologyIrBaseParameterType_timestampList, OntologyIrBaseParameterType_objectReference, OntologyIrBaseParameterType_objectReferenceList, OntologyIrBaseParameterType_objectSetRid, OntologyIrBaseParameterType_objectTypeReference, OntologyIrBaseParameterType_interfaceReference, OntologyIrBaseParameterType_interfaceReferenceList, OntologyIrBaseParameterType_struct, OntologyIrBaseParameterType_structList, ParameterId, ActionTypeStatus_deprecated, ButtonDisplayMetadata, ActionTypeApiName, OntologyIrLogicRule, SectionId, OntologyIrActionTypeEntities, OntologyIrFormContent, OntologyIrValidationRule, DisplayMetadataConfigurationDefaultLayout, DisplayMetadataConfigurationDisplayAndFormat, OntologyIrLogicRuleValue_parameterId, OntologyIrLogicRuleValue_staticValue, OntologyIrLogicRuleValue_objectParameterPropertyValue, OntologyIrLogicRuleValue_interfaceParameterPropertyValue, OntologyIrLogicRuleValue_synchronousWebhookOutput, ValidationRuleDisplayMetadata, ParameterRid, StructFieldType, OntologyIrValueTypeReferenceWithMetadata, Visibility, SharedPropertyTypeGothamMapping, OntologyIrMarketplaceInterfaceType, InterfaceTypeStatus, ValueTypeApiName, ValueTypeDisplayMetadata, ValueTypeStatus, ValueTypeVersion, BaseType, ValueTypeDataConstraint, ExampleValue, OntologyIrBaseFormatter, LinkTypeMetadata, OntologyIrLinkTypeStatus, OntologyIrObjectType, OntologyIr, DataConstraint, FailureMessage, OntologyIrType } from '@osdk/client.unstable';
1
+ import { OntologyIrLabelledValue, OntologyIrConditionValue, OntologyIrParameterDateRangeValue, InterfaceTypeApiName, OntologyIrCondition, OntologyIrParameterPrefill, OntologyIrBaseParameterType_decimal, OntologyIrBaseParameterType_decimalList, OntologyIrBaseParameterType_timestamp, OntologyIrBaseParameterType_timestampList, OntologyIrBaseParameterType_objectReference, OntologyIrBaseParameterType_objectReferenceList, OntologyIrBaseParameterType_objectSetRid, OntologyIrBaseParameterType_objectTypeReference, OntologyIrBaseParameterType_interfaceReference, OntologyIrBaseParameterType_interfaceReferenceList, OntologyIrBaseParameterType_struct, OntologyIrBaseParameterType_structList, ParameterId, ActionTypeStatus_deprecated, ButtonDisplayMetadata, ActionTypeApiName, OntologyIrLogicRule, SectionId, OntologyIrActionTypeEntities, OntologyIrFormContent, OntologyIrValidationRule, DisplayMetadataConfigurationDefaultLayout, DisplayMetadataConfigurationDisplayAndFormat, OntologyIrLogicRuleValue_parameterId, OntologyIrLogicRuleValue_staticValue, OntologyIrLogicRuleValue_objectParameterPropertyValue, OntologyIrLogicRuleValue_interfaceParameterPropertyValue, OntologyIrLogicRuleValue_synchronousWebhookOutput, ValidationRuleDisplayMetadata, ParameterRid, StructFieldType, OntologyIrValueTypeReferenceWithMetadata, Visibility, SharedPropertyTypeGothamMapping, OntologyIrMarketplaceInterfaceType, InterfaceTypeStatus, ValueTypeApiName, ValueTypeDisplayMetadata, ValueTypeStatus, ValueTypeVersion, BaseType, ValueTypeDataConstraint, ExampleValue, OntologyIrBaseFormatter, LinkTypeMetadata, OntologyIrLinkTypeStatus, DerivedPropertyLinkTypeSide, ObjectTypeFieldApiName, OntologyIrObjectType, OntologyIr, DataConstraint, FailureMessage, OntologyIrType } from '@osdk/client.unstable';
2
2
 
3
3
  declare function main(args?: string[]): Promise<void>;
4
4
 
@@ -335,7 +335,101 @@ type InterfaceImplementation = {
335
335
  }[];
336
336
  };
337
337
 
338
- type ObjectTypeDatasourceDefinition = ObjectTypeDatasourceDefinition_stream | ObjectTypeDatasourceDefinition_dataset | ObjectTypeDatasourceDefinition_restrictedView;
338
+ type LinkType = (OntologyEntityBase & OneToManyLinkTypeDefinition & {
339
+ __type: OntologyEntityTypeEnum.LINK_TYPE;
340
+ }) | (OntologyEntityBase & ManyToManyLinkTypeDefinition & {
341
+ __type: OntologyEntityTypeEnum.LINK_TYPE;
342
+ }) | (OntologyEntityBase & IntermediaryLinkTypeDefinition & {
343
+ __type: OntologyEntityTypeEnum.LINK_TYPE;
344
+ });
345
+ type LinkTypeDefinition = Omit<OntologyEntityBase & OneToManyLinkTypeUserDefinition & {
346
+ __type: OntologyEntityTypeEnum.LINK_TYPE;
347
+ }, "__type"> | Omit<OntologyEntityBase & ManyToManyLinkTypeUserDefinition & {
348
+ __type: OntologyEntityTypeEnum.LINK_TYPE;
349
+ }, "__type"> | Omit<OntologyEntityBase & IntermediaryLinkTypeUserDefinition & {
350
+ __type: OntologyEntityTypeEnum.LINK_TYPE;
351
+ }, "__type">;
352
+ type ObjectTypePropertyApiName = string;
353
+ interface OneToManyLinkTypeDefinition {
354
+ apiName: string;
355
+ one: OneToManyObjectLinkReference;
356
+ toMany: OneToManyObjectLinkReference;
357
+ manyForeignKeyProperty: ObjectTypePropertyApiName;
358
+ cardinality: "OneToMany" | "OneToOne" | undefined;
359
+ editsEnabled?: boolean;
360
+ status?: OntologyIrLinkTypeStatus;
361
+ redacted?: boolean;
362
+ }
363
+ interface OneToManyObjectLinkReference {
364
+ object: ObjectTypeDefinition | string;
365
+ metadata: LinkTypeMetadata;
366
+ }
367
+ interface OneToManyLinkTypeUserDefinition {
368
+ apiName: string;
369
+ one: OneToManyObjectLinkReferenceUserDefinition;
370
+ toMany: OneToManyObjectLinkReferenceUserDefinition;
371
+ manyForeignKeyProperty: ObjectTypePropertyApiName;
372
+ cardinality?: "OneToMany" | "OneToOne" | undefined;
373
+ }
374
+ interface OneToManyObjectLinkReferenceUserDefinition {
375
+ object: ObjectTypeDefinition | string;
376
+ metadata: LinkTypeMetadataUserDefinition;
377
+ }
378
+ interface ManyToManyLinkTypeDefinition {
379
+ apiName: string;
380
+ many: ManyToManyObjectLinkReference;
381
+ toMany: ManyToManyObjectLinkReference;
382
+ editsEnabled?: boolean;
383
+ status?: OntologyIrLinkTypeStatus;
384
+ redacted?: boolean;
385
+ }
386
+ interface ManyToManyObjectLinkReference {
387
+ object: ObjectTypeDefinition | string;
388
+ metadata: LinkTypeMetadata;
389
+ }
390
+ interface ManyToManyLinkTypeUserDefinition {
391
+ apiName: string;
392
+ many: ManyToManyObjectLinkReferenceUserDefinition;
393
+ toMany: ManyToManyObjectLinkReferenceUserDefinition;
394
+ }
395
+ interface ManyToManyObjectLinkReferenceUserDefinition {
396
+ object: ObjectTypeDefinition | string;
397
+ metadata: LinkTypeMetadataUserDefinition;
398
+ }
399
+ interface IntermediaryLinkTypeDefinition {
400
+ apiName: string;
401
+ many: IntermediaryObjectLinkReference;
402
+ toMany: IntermediaryObjectLinkReference;
403
+ intermediaryObjectType: ObjectTypeDefinition;
404
+ editsEnabled?: boolean;
405
+ status?: OntologyIrLinkTypeStatus;
406
+ redacted?: boolean;
407
+ }
408
+ interface IntermediaryObjectLinkReference {
409
+ object: ObjectTypeDefinition | string;
410
+ metadata: LinkTypeMetadata;
411
+ linkToIntermediary: LinkType;
412
+ }
413
+ interface IntermediaryLinkTypeUserDefinition {
414
+ apiName: string;
415
+ many: IntermediaryObjectLinkReferenceUserDefinition;
416
+ toMany: IntermediaryObjectLinkReferenceUserDefinition;
417
+ intermediaryObjectType: ObjectTypeDefinition | string;
418
+ }
419
+ interface IntermediaryObjectLinkReferenceUserDefinition {
420
+ object: ObjectTypeDefinition | string;
421
+ metadata: LinkTypeMetadataUserDefinition;
422
+ linkToIntermediary: LinkType;
423
+ }
424
+ interface LinkTypeMetadataUserDefinition {
425
+ apiName: string;
426
+ displayName?: string;
427
+ pluralDisplayName?: string;
428
+ visibility?: Visibility;
429
+ groupDisplayName?: string;
430
+ }
431
+
432
+ type ObjectTypeDatasourceDefinition = ObjectTypeDatasourceDefinition_stream | ObjectTypeDatasourceDefinition_dataset | ObjectTypeDatasourceDefinition_restrictedView | ObjectTypeDatasourceDefinition_derived;
339
433
  interface ObjectTypeDatasourceDefinition_dataset {
340
434
  type: "dataset";
341
435
  }
@@ -346,6 +440,44 @@ interface ObjectTypeDatasourceDefinition_stream {
346
440
  interface ObjectTypeDatasourceDefinition_restrictedView {
347
441
  type: "restrictedView";
348
442
  }
443
+ interface ObjectTypeDatasourceDefinition_derived {
444
+ type: "derived";
445
+ linkDefinition: Array<DerivedPropertiesLinkDefinition>;
446
+ propertyMapping: Record<ObjectTypeFieldApiName, ObjectTypeFieldApiName> | Record<ObjectTypeFieldApiName, DerivedPropertyAggregation>;
447
+ }
448
+ interface DerivedPropertiesLinkDefinition {
449
+ linkType: LinkType;
450
+ side?: DerivedPropertyLinkTypeSide;
451
+ }
452
+ type DerivedPropertyAggregation = {
453
+ type: "count";
454
+ } | {
455
+ type: "avg";
456
+ property: ObjectTypeFieldApiName;
457
+ } | {
458
+ type: "sum";
459
+ property: ObjectTypeFieldApiName;
460
+ } | {
461
+ type: "min";
462
+ property: ObjectTypeFieldApiName;
463
+ } | {
464
+ type: "max";
465
+ property: ObjectTypeFieldApiName;
466
+ } | {
467
+ type: "approximateCardinality";
468
+ property: ObjectTypeFieldApiName;
469
+ } | {
470
+ type: "exactCardinality";
471
+ property: ObjectTypeFieldApiName;
472
+ } | {
473
+ type: "collectList";
474
+ property: ObjectTypeFieldApiName;
475
+ limit: number;
476
+ } | {
477
+ type: "collectSet";
478
+ property: ObjectTypeFieldApiName;
479
+ limit: number;
480
+ };
349
481
 
350
482
  type ObjectTypeDefinition = {
351
483
  apiName: string;
@@ -365,7 +497,7 @@ type ObjectTypeDefinition = {
365
497
  visibility?: Visibility;
366
498
  editsEnabled?: boolean;
367
499
  status?: ObjectTypeStatus;
368
- datasource?: ObjectTypeDatasourceDefinition;
500
+ datasources?: Array<ObjectTypeDatasourceDefinition>;
369
501
  };
370
502
 
371
503
  declare const MODIFY_OBJECT_PARAMETER: string;
@@ -415,6 +547,8 @@ declare function defineCreateObjectAction(def: ActionTypeUserDefinition): Action
415
547
 
416
548
  declare function defineCreateOrModifyObjectAction(def: ActionTypeUserDefinition): ActionType;
417
549
 
550
+ declare function defineDeleteInterfaceObjectAction(def: InterfaceActionTypeUserDefinition): ActionType;
551
+
418
552
  declare function defineDeleteObjectAction(def: ActionTypeUserDefinition): ActionType;
419
553
 
420
554
  type SimplifiedInterfaceTypeStatus = {
@@ -467,100 +601,6 @@ type One = {
467
601
  };
468
602
  declare function defineInterfaceLinkConstraint(linkDef: One | Many): void;
469
603
 
470
- type LinkType = (OntologyEntityBase & OneToManyLinkTypeDefinition & {
471
- __type: OntologyEntityTypeEnum.LINK_TYPE;
472
- }) | (OntologyEntityBase & ManyToManyLinkTypeDefinition & {
473
- __type: OntologyEntityTypeEnum.LINK_TYPE;
474
- }) | (OntologyEntityBase & IntermediaryLinkTypeDefinition & {
475
- __type: OntologyEntityTypeEnum.LINK_TYPE;
476
- });
477
- type LinkTypeDefinition = Omit<OntologyEntityBase & OneToManyLinkTypeUserDefinition & {
478
- __type: OntologyEntityTypeEnum.LINK_TYPE;
479
- }, "__type"> | Omit<OntologyEntityBase & ManyToManyLinkTypeUserDefinition & {
480
- __type: OntologyEntityTypeEnum.LINK_TYPE;
481
- }, "__type"> | Omit<OntologyEntityBase & IntermediaryLinkTypeUserDefinition & {
482
- __type: OntologyEntityTypeEnum.LINK_TYPE;
483
- }, "__type">;
484
- type ObjectTypePropertyApiName = string;
485
- interface OneToManyLinkTypeDefinition {
486
- apiName: string;
487
- one: OneToManyObjectLinkReference;
488
- toMany: OneToManyObjectLinkReference;
489
- manyForeignKeyProperty: ObjectTypePropertyApiName;
490
- cardinality: "OneToMany" | "OneToOne" | undefined;
491
- editsEnabled?: boolean;
492
- status?: OntologyIrLinkTypeStatus;
493
- redacted?: boolean;
494
- }
495
- interface OneToManyObjectLinkReference {
496
- object: ObjectTypeDefinition;
497
- metadata: LinkTypeMetadata;
498
- }
499
- interface OneToManyLinkTypeUserDefinition {
500
- apiName: string;
501
- one: OneToManyObjectLinkReferenceUserDefinition;
502
- toMany: OneToManyObjectLinkReferenceUserDefinition;
503
- manyForeignKeyProperty: ObjectTypePropertyApiName;
504
- cardinality?: "OneToMany" | "OneToOne" | undefined;
505
- }
506
- interface OneToManyObjectLinkReferenceUserDefinition {
507
- object: ObjectTypeDefinition;
508
- metadata: LinkTypeMetadataUserDefinition;
509
- }
510
- interface ManyToManyLinkTypeDefinition {
511
- apiName: string;
512
- many: ManyToManyObjectLinkReference;
513
- toMany: ManyToManyObjectLinkReference;
514
- editsEnabled?: boolean;
515
- status?: OntologyIrLinkTypeStatus;
516
- redacted?: boolean;
517
- }
518
- interface ManyToManyObjectLinkReference {
519
- object: ObjectTypeDefinition;
520
- metadata: LinkTypeMetadata;
521
- }
522
- interface ManyToManyLinkTypeUserDefinition {
523
- apiName: string;
524
- many: ManyToManyObjectLinkReferenceUserDefinition;
525
- toMany: ManyToManyObjectLinkReferenceUserDefinition;
526
- }
527
- interface ManyToManyObjectLinkReferenceUserDefinition {
528
- object: ObjectTypeDefinition;
529
- metadata: LinkTypeMetadataUserDefinition;
530
- }
531
- interface IntermediaryLinkTypeDefinition {
532
- apiName: string;
533
- many: IntermediaryObjectLinkReference;
534
- toMany: IntermediaryObjectLinkReference;
535
- intermediaryObjectType: ObjectTypeDefinition;
536
- editsEnabled?: boolean;
537
- status?: OntologyIrLinkTypeStatus;
538
- redacted?: boolean;
539
- }
540
- interface IntermediaryObjectLinkReference {
541
- object: ObjectTypeDefinition;
542
- metadata: LinkTypeMetadata;
543
- linkToIntermediary: LinkType;
544
- }
545
- interface IntermediaryLinkTypeUserDefinition {
546
- apiName: string;
547
- many: IntermediaryObjectLinkReferenceUserDefinition;
548
- toMany: IntermediaryObjectLinkReferenceUserDefinition;
549
- intermediaryObjectType: ObjectTypeDefinition;
550
- }
551
- interface IntermediaryObjectLinkReferenceUserDefinition {
552
- object: ObjectTypeDefinition;
553
- metadata: LinkTypeMetadataUserDefinition;
554
- linkToIntermediary: LinkType;
555
- }
556
- interface LinkTypeMetadataUserDefinition {
557
- apiName: string;
558
- displayName?: string;
559
- pluralDisplayName?: string;
560
- visibility?: Visibility;
561
- groupDisplayName?: string;
562
- }
563
-
564
604
  declare function defineLink(linkDefinition: LinkTypeDefinition): LinkType;
565
605
 
566
606
  declare function defineModifyInterfaceObjectAction(def: InterfaceActionTypeUserDefinition): ActionType;
@@ -572,7 +612,7 @@ declare function uppercaseFirstLetter(s: string | undefined | null): string;
572
612
  declare function convertToPluralDisplayName(s: string | undefined | null): string;
573
613
 
574
614
  type ObjectType = OntologyEntityBase & RequiredFields<Partial<ObjectTypeInner>, "apiName" | "primaryKeyPropertyApiName" | "displayName" | "pluralDisplayName" | "titlePropertyApiName"> & {
575
- datasource?: ObjectTypeDatasourceDefinition;
615
+ datasources?: Array<ObjectTypeDatasourceDefinition>;
576
616
  __type: OntologyEntityTypeEnum.OBJECT_TYPE;
577
617
  };
578
618
  interface ObjectTypeInner extends Omit<OntologyIrObjectType, "titlePropertyTypeRid" | "propertyTypes" | "allImplementsInterfaces" | "implementsInterfaces2" | "displayMetadata" | "primaryKeys" | "status"> {
@@ -825,4 +865,4 @@ declare function wrapWithProxy<T extends OntologyEntityBase>(entity: T): T;
825
865
 
826
866
  declare function propertyTypeTypeToOntologyIrType(type: PropertyTypeType): OntologyIrType;
827
867
 
828
- export { type ActionParameterAllowedValues, type ActionParameterConditionalOverride, type ActionParameterConfiguration, type ActionParameterValidation, type ActionSection, type ActionType, CREATE_INTERFACE_OBJECT_PARAMETER, CREATE_OR_MODIFY_OBJECT_PARAMETER, type ConditionDefinition, type CurrentTimeMappingValue, type CurrentUserMappingValue, type CustomMapping, type InterfaceType, type LinkType, MODIFY_INTERFACE_OBJECT_PARAMETER, MODIFY_OBJECT_PARAMETER, type MappingValue, type ObjectPropertyType, type ObjectType, OntologyEntityTypeEnum, type PropertyTypeType, type SectionConditionalOverride, type SharedPropertyType, type SubmissionMetadata, type UuidMappingValue, type ValueTypeDefinitionVersion, addDependency, addNamespaceIfNone, uppercaseFirstLetter as convertToDisplayName, convertToPluralDisplayName, propertyTypeTypeToOntologyIrType as convertType, main as default, defineAction, defineCreateInterfaceObjectAction, defineCreateObjectAction, defineCreateOrModifyObjectAction, defineDeleteObjectAction, defineInterface, defineInterfaceLinkConstraint, defineLink, defineModifyInterfaceObjectAction, defineModifyObjectAction, defineObject, defineOntology, defineSharedPropertyType, defineValueType, dumpOntologyFullMetadata, importOntologyEntity, importSharedPropertyType, wrapWithProxy };
868
+ export { type ActionParameterAllowedValues, type ActionParameterConditionalOverride, type ActionParameterConfiguration, type ActionParameterValidation, type ActionSection, type ActionType, CREATE_INTERFACE_OBJECT_PARAMETER, CREATE_OR_MODIFY_OBJECT_PARAMETER, type ConditionDefinition, type CurrentTimeMappingValue, type CurrentUserMappingValue, type CustomMapping, type InterfaceType, type LinkType, MODIFY_INTERFACE_OBJECT_PARAMETER, MODIFY_OBJECT_PARAMETER, type MappingValue, type ObjectPropertyType, type ObjectType, OntologyEntityTypeEnum, type PropertyTypeType, type SectionConditionalOverride, type SharedPropertyType, type SubmissionMetadata, type UuidMappingValue, type ValueTypeDefinitionVersion, addDependency, addNamespaceIfNone, uppercaseFirstLetter as convertToDisplayName, convertToPluralDisplayName, propertyTypeTypeToOntologyIrType as convertType, main as default, defineAction, defineCreateInterfaceObjectAction, defineCreateObjectAction, defineCreateOrModifyObjectAction, defineDeleteInterfaceObjectAction, defineDeleteObjectAction, defineInterface, defineInterfaceLinkConstraint, defineLink, defineModifyInterfaceObjectAction, defineModifyObjectAction, defineObject, defineOntology, defineSharedPropertyType, defineValueType, dumpOntologyFullMetadata, importOntologyEntity, importSharedPropertyType, wrapWithProxy };
@@ -16,9 +16,11 @@
16
16
 
17
17
  import { convertMappingValue } from "../conversion/toMarketplace/convertMappingValue.js";
18
18
  import { convertValidationRule, createDefaultParameterOrdering, createParameters, defineAction, isPropertyParameter, kebab, validateActionParameters, validateParameterOrdering } from "./defineAction.js";
19
+ import { isStruct } from "./properties/PropertyTypeType.js";
19
20
  export function defineCreateObjectAction(def) {
20
21
  validateActionParameters(def, Object.keys(def.objectType.properties ?? {}), def.objectType.apiName);
21
- const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter(id => isPropertyParameter(def, id, def.objectType.properties?.[id].type));
22
+ const propertiesWithDerivedDatasources = (def.objectType.datasources ?? []).filter(ds => ds.type === "derived").flatMap(ds => Object.keys(ds.propertyMapping));
23
+ const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter(id => isPropertyParameter(def, id, def.objectType.properties?.[id].type) && !isStruct(def.objectType.properties?.[id].type) && !propertiesWithDerivedDatasources.includes(id));
22
24
  const parameterNames = new Set(propertyParameters);
23
25
  Object.keys(def.parameterConfiguration ?? {}).forEach(param => parameterNames.add(param));
24
26
  const actionApiName = def.apiName ?? `create-object-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`;
@@ -1 +1 @@
1
- {"version":3,"file":"defineCreateObjectAction.js","names":["convertMappingValue","convertValidationRule","createDefaultParameterOrdering","createParameters","defineAction","isPropertyParameter","kebab","validateActionParameters","validateParameterOrdering","defineCreateObjectAction","def","Object","keys","objectType","properties","apiName","propertyParameters","filter","id","type","parameterNames","Set","parameterConfiguration","forEach","param","add","actionApiName","split","pop","parameterOrdering","parameters","mappings","fromEntries","entries","nonParameterMappings","map","value","displayName","status","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","rules","addObjectRule","objectTypeId","propertyValues","p","parameterId","structFieldValues","actionLevelValidation","validation","defaultFormat","enableLayoutSwitch","tableConfiguration","displayAndFormat","table","sections","section","submissionMetadata"],"sources":["defineCreateObjectAction.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { convertMappingValue } from \"../conversion/toMarketplace/convertMappingValue.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport type { ActionTypeUserDefinition } from \"./defineAction.js\";\nimport {\n convertValidationRule,\n createDefaultParameterOrdering,\n createParameters,\n defineAction,\n isPropertyParameter,\n kebab,\n validateActionParameters,\n validateParameterOrdering,\n} from \"./defineAction.js\";\n\nexport function defineCreateObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(\n def,\n Object.keys(def.objectType.properties ?? {}),\n def.objectType.apiName,\n );\n const propertyParameters = Object.keys(def.objectType.properties ?? {})\n .filter(\n id => isPropertyParameter(def, id, def.objectType.properties?.[id].type!),\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(param)\n );\n const actionApiName = def.apiName\n ?? `create-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`;\n if (def.parameterOrdering) {\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(\n def,\n def.objectType.properties ?? {},\n parameterNames,\n );\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName ?? `Create ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [{\n type: \"addObjectRule\",\n addObjectRule: {\n objectTypeId: def.objectType.apiName,\n propertyValues: {\n ...Object.fromEntries(\n propertyParameters.map(\n p => [p, { type: \"parameterId\", parameterId: p }],\n ),\n ),\n ...mappings,\n },\n structFieldValues: {},\n },\n }],\n parameterOrdering: def.parameterOrdering\n ?? createDefaultParameterOrdering(\n def,\n Object.keys(def.objectType.properties ?? {}),\n parameters,\n ),\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(\n def.actionLevelValidation,\n parameters,\n ),\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.tableConfiguration && {\n displayAndFormat: {\n table: def.tableConfiguration,\n },\n }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,mBAAmB,QAAQ,oDAAoD;AAGxF,SACEC,qBAAqB,EACrBC,8BAA8B,EAC9BC,gBAAgB,EAChBC,YAAY,EACZC,mBAAmB,EACnBC,KAAK,EACLC,wBAAwB,EACxBC,yBAAyB,QACpB,mBAAmB;AAE1B,OAAO,SAASC,wBAAwBA,CACtCC,GAA6B,EACjB;EACZH,wBAAwB,CACtBG,GAAG,EACHC,MAAM,CAACC,IAAI,CAACF,GAAG,CAACG,UAAU,CAACC,UAAU,IAAI,CAAC,CAAC,CAAC,EAC5CJ,GAAG,CAACG,UAAU,CAACE,OACjB,CAAC;EACD,MAAMC,kBAAkB,GAAGL,MAAM,CAACC,IAAI,CAACF,GAAG,CAACG,UAAU,CAACC,UAAU,IAAI,CAAC,CAAC,CAAC,CACpEG,MAAM,CACLC,EAAE,IAAIb,mBAAmB,CAACK,GAAG,EAAEQ,EAAE,EAAER,GAAG,CAACG,UAAU,CAACC,UAAU,GAAGI,EAAE,CAAC,CAACC,IAAK,CAC1E,CAAC;EACH,MAAMC,cAAc,GAAG,IAAIC,GAAG,CAACL,kBAAkB,CAAC;EAClDL,MAAM,CAACC,IAAI,CAACF,GAAG,CAACY,sBAAsB,IAAI,CAAC,CAAC,CAAC,CAACC,OAAO,CAACC,KAAK,IACzDJ,cAAc,CAACK,GAAG,CAACD,KAAK,CAC1B,CAAC;EACD,MAAME,aAAa,GAAGhB,GAAG,CAACK,OAAO,IAC5B,iBACDT,KAAK,CAACI,GAAG,CAACG,UAAU,CAACE,OAAO,CAACY,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAIlB,GAAG,CAACG,UAAU,CAACE,OAAO,CAAC,EACxE;EACJ,IAAIL,GAAG,CAACmB,iBAAiB,EAAE;IACzBrB,yBAAyB,CACvBE,GAAG,CAACmB,iBAAiB,EACrBT,cAAc,EACdM,aACF,CAAC;EACH;EACA,MAAMI,UAAU,GAAG3B,gBAAgB,CACjCO,GAAG,EACHA,GAAG,CAACG,UAAU,CAACC,UAAU,IAAI,CAAC,CAAC,EAC/BM,cACF,CAAC;EACD,MAAMW,QAAQ,GAAGpB,MAAM,CAACqB,WAAW,CACjCrB,MAAM,CAACsB,OAAO,CAACvB,GAAG,CAACwB,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAAC,CACjD,CAACjB,EAAE,EAAEkB,KAAK,CAAC,KACR,CAAClB,EAAE,EAAElB,mBAAmB,CAACoC,KAAK,CAAC,CAAC,CACvC,CAAC;EAED,OAAOhC,YAAY,CAAC;IAClBW,OAAO,EAAEW,aAAa;IACtBW,WAAW,EAAE3B,GAAG,CAAC2B,WAAW,IAAI,UAAU3B,GAAG,CAACG,UAAU,CAACwB,WAAW,EAAE;IACtEP,UAAU,EAAEA,UAAU;IACtBQ,MAAM,EAAE5B,GAAG,CAAC4B,MAAM,IAAI,QAAQ;IAC9BC,QAAQ,EAAE;MACRC,sBAAsB,EAAE,EAAE;MAC1BC,mBAAmB,EAAE,CAAC/B,GAAG,CAACG,UAAU,CAACE,OAAO,CAAC;MAC7C2B,iBAAiB,EAAE,EAAE;MACrBC,UAAU,EAAE;IACd,CAAC;IACDC,KAAK,EAAE,CAAC;MACNzB,IAAI,EAAE,eAAe;MACrB0B,aAAa,EAAE;QACbC,YAAY,EAAEpC,GAAG,CAACG,UAAU,CAACE,OAAO;QACpCgC,cAAc,EAAE;UACd,GAAGpC,MAAM,CAACqB,WAAW,CACnBhB,kBAAkB,CAACmB,GAAG,CACpBa,CAAC,IAAI,CAACA,CAAC,EAAE;YAAE7B,IAAI,EAAE,aAAa;YAAE8B,WAAW,EAAED;UAAE,CAAC,CAClD,CACF,CAAC;UACD,GAAGjB;QACL,CAAC;QACDmB,iBAAiB,EAAE,CAAC;MACtB;IACF,CAAC,CAAC;IACFrB,iBAAiB,EAAEnB,GAAG,CAACmB,iBAAiB,IACnC3B,8BAA8B,CAC/BQ,GAAG,EACHC,MAAM,CAACC,IAAI,CAACF,GAAG,CAACG,UAAU,CAACC,UAAU,IAAI,CAAC,CAAC,CAAC,EAC5CgB,UACF,CAAC;IACH,IAAIpB,GAAG,CAACyC,qBAAqB,GACzB;MACAC,UAAU,EAAEnD,qBAAqB,CAC/BS,GAAG,CAACyC,qBAAqB,EACzBrB,UACF;IACF,CAAC,GACC,CAAC,CAAC,CAAC;IACP,IAAIpB,GAAG,CAAC2C,aAAa,IAAI;MAAEA,aAAa,EAAE3C,GAAG,CAAC2C;IAAc,CAAC,CAAC;IAC9D,IAAI3C,GAAG,CAAC4C,kBAAkB,IACrB;MAAEA,kBAAkB,EAAE5C,GAAG,CAAC4C;IAAmB,CAAC,CAAC;IACpD,IAAI5C,GAAG,CAAC6C,kBAAkB,IAAI;MAC5BC,gBAAgB,EAAE;QAChBC,KAAK,EAAE/C,GAAG,CAAC6C;MACb;IACF,CAAC,CAAC;IACF,IAAI7C,GAAG,CAACgD,QAAQ,IACX;MACDA,QAAQ,EAAE/C,MAAM,CAACqB,WAAW,CAC1BtB,GAAG,CAACgD,QAAQ,CAACvB,GAAG,CAACwB,OAAO,IAAI,CAACA,OAAO,CAACzC,EAAE,EAAEyC,OAAO,CAAC,CACnD;IACF,CAAC,CAAC;IACJ,IAAIjD,GAAG,CAACkD,kBAAkB,IACrB;MAAEA,kBAAkB,EAAElD,GAAG,CAACkD;IAAmB,CAAC;EACrD,CAAC,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"defineCreateObjectAction.js","names":["convertMappingValue","convertValidationRule","createDefaultParameterOrdering","createParameters","defineAction","isPropertyParameter","kebab","validateActionParameters","validateParameterOrdering","isStruct","defineCreateObjectAction","def","Object","keys","objectType","properties","apiName","propertiesWithDerivedDatasources","datasources","filter","ds","type","flatMap","propertyMapping","propertyParameters","id","includes","parameterNames","Set","parameterConfiguration","forEach","param","add","actionApiName","split","pop","parameterOrdering","parameters","mappings","fromEntries","entries","nonParameterMappings","map","value","displayName","status","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","rules","addObjectRule","objectTypeId","propertyValues","p","parameterId","structFieldValues","actionLevelValidation","validation","defaultFormat","enableLayoutSwitch","tableConfiguration","displayAndFormat","table","sections","section","submissionMetadata"],"sources":["defineCreateObjectAction.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { convertMappingValue } from \"../conversion/toMarketplace/convertMappingValue.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport type { ActionTypeUserDefinition } from \"./defineAction.js\";\nimport {\n convertValidationRule,\n createDefaultParameterOrdering,\n createParameters,\n defineAction,\n isPropertyParameter,\n kebab,\n validateActionParameters,\n validateParameterOrdering,\n} from \"./defineAction.js\";\nimport { isStruct } from \"./properties/PropertyTypeType.js\";\n\nexport function defineCreateObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(\n def,\n Object.keys(def.objectType.properties ?? {}),\n def.objectType.apiName,\n );\n const propertiesWithDerivedDatasources = (def.objectType.datasources ?? [])\n .filter(ds => ds.type === \"derived\").flatMap(ds =>\n Object.keys(ds.propertyMapping)\n );\n const propertyParameters = Object.keys(def.objectType.properties ?? {})\n .filter(\n id =>\n isPropertyParameter(def, id, def.objectType.properties?.[id].type!)\n && !isStruct(def.objectType.properties?.[id].type!)\n && !propertiesWithDerivedDatasources.includes(id),\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(param)\n );\n const actionApiName = def.apiName\n ?? `create-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`;\n if (def.parameterOrdering) {\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(\n def,\n def.objectType.properties ?? {},\n parameterNames,\n );\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName ?? `Create ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [{\n type: \"addObjectRule\",\n addObjectRule: {\n objectTypeId: def.objectType.apiName,\n propertyValues: {\n ...Object.fromEntries(\n propertyParameters.map(\n p => [p, { type: \"parameterId\", parameterId: p }],\n ),\n ),\n ...mappings,\n },\n structFieldValues: {},\n },\n }],\n parameterOrdering: def.parameterOrdering\n ?? createDefaultParameterOrdering(\n def,\n Object.keys(def.objectType.properties ?? {}),\n parameters,\n ),\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(\n def.actionLevelValidation,\n parameters,\n ),\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.tableConfiguration && {\n displayAndFormat: {\n table: def.tableConfiguration,\n },\n }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n"],"mappings":"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","ignoreList":[]}
@@ -19,7 +19,8 @@ import { convertValidationRule, CREATE_OR_MODIFY_OBJECT_PARAMETER, createDefault
19
19
  import { isStruct } from "./properties/PropertyTypeType.js";
20
20
  export function defineCreateOrModifyObjectAction(def) {
21
21
  validateActionParameters(def, Object.keys(def.objectType.properties ?? {}), def.objectType.apiName);
22
- 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);
22
+ const propertiesWithDerivedDatasources = (def.objectType.datasources ?? []).filter(ds => ds.type === "derived").flatMap(ds => Object.keys(ds.propertyMapping));
23
+ 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 && !propertiesWithDerivedDatasources.includes(id));
23
24
  const parameterNames = new Set(propertyParameters);
24
25
  Object.keys(def.parameterConfiguration ?? {}).forEach(param => parameterNames.add(param));
25
26
  parameterNames.add(CREATE_OR_MODIFY_OBJECT_PARAMETER);
@@ -1 +1 @@
1
- {"version":3,"file":"defineCreateOrModifyObjectAction.js","names":["convertMappingValue","convertValidationRule","CREATE_OR_MODIFY_OBJECT_PARAMETER","createDefaultParameterOrdering","createParameters","defineAction","kebab","validateActionParameters","validateParameterOrdering","isStruct","defineCreateOrModifyObjectAction","def","Object","keys","objectType","properties","apiName","propertyParameters","filter","id","nonParameterMappings","includes","excludedProperties","type","primaryKeyPropertyApiName","parameterNames","Set","parameterConfiguration","forEach","param","add","actionApiName","split","pop","parameterOrdering","unshift","parameters","p","defaultValue","undefined","objectParameterPropertyValue","parameterId","propertyTypeId","mappings","fromEntries","entries","map","value","displayName","status","rules","addOrModifyObjectRuleV2","objectToModify","propertyValues","structFieldValues","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","actionLevelValidation","validation","defaultFormat","enableLayoutSwitch","tableConfiguration","displayAndFormat","table","sections","section","submissionMetadata"],"sources":["defineCreateOrModifyObjectAction.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { convertMappingValue } from \"../conversion/toMarketplace/convertMappingValue.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport type { ActionTypeUserDefinition } from \"./defineAction.js\";\nimport {\n convertValidationRule,\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n createDefaultParameterOrdering,\n createParameters,\n defineAction,\n kebab,\n validateActionParameters,\n validateParameterOrdering,\n} from \"./defineAction.js\";\nimport { isStruct } from \"./properties/PropertyTypeType.js\";\n\nexport function defineCreateOrModifyObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(\n def,\n Object.keys(def.objectType.properties ?? {}),\n def.objectType.apiName,\n );\n const propertyParameters = Object.keys(def.objectType.properties ?? {})\n .filter(\n id =>\n !Object.keys(def.nonParameterMappings ?? {}).includes(id)\n && !def.excludedProperties?.includes(id)\n && !isStruct(def.objectType.properties?.[id].type!)\n && id !== def.objectType.primaryKeyPropertyApiName,\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(param)\n );\n parameterNames.add(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n const actionApiName = def.apiName\n ?? `create-or-modify-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(CREATE_OR_MODIFY_OBJECT_PARAMETER)) {\n def.parameterOrdering.unshift(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n }\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(\n def,\n def.objectType.properties ?? {},\n parameterNames,\n );\n parameters.forEach(\n p => {\n if (\n p.id !== CREATE_OR_MODIFY_OBJECT_PARAMETER\n && p.defaultValue === undefined\n ) {\n p.defaultValue = {\n type: \"objectParameterPropertyValue\",\n objectParameterPropertyValue: {\n parameterId: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n propertyTypeId: p.id,\n },\n };\n }\n },\n );\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName\n ?? `Create or Modify ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n rules: [{\n type: \"addOrModifyObjectRuleV2\",\n addOrModifyObjectRuleV2: {\n objectToModify: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n propertyValues: {\n ...Object.fromEntries(\n propertyParameters.map(\n p => [p, { type: \"parameterId\", parameterId: p }],\n ),\n ),\n ...mappings,\n },\n structFieldValues: {},\n },\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n parameterOrdering: def.parameterOrdering\n ?? createDefaultParameterOrdering(\n def,\n Object.keys(def.objectType.properties ?? {}),\n parameters,\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n ),\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(\n def.actionLevelValidation,\n parameters,\n ),\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.tableConfiguration && {\n displayAndFormat: {\n table: def.tableConfiguration,\n },\n }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineCreateOrModifyObjectAction.js","names":["convertMappingValue","convertValidationRule","CREATE_OR_MODIFY_OBJECT_PARAMETER","createDefaultParameterOrdering","createParameters","defineAction","kebab","validateActionParameters","validateParameterOrdering","isStruct","defineCreateOrModifyObjectAction","def","Object","keys","objectType","properties","apiName","propertiesWithDerivedDatasources","datasources","filter","ds","type","flatMap","propertyMapping","propertyParameters","id","nonParameterMappings","includes","excludedProperties","primaryKeyPropertyApiName","parameterNames","Set","parameterConfiguration","forEach","param","add","actionApiName","split","pop","parameterOrdering","unshift","parameters","p","defaultValue","undefined","objectParameterPropertyValue","parameterId","propertyTypeId","mappings","fromEntries","entries","map","value","displayName","status","rules","addOrModifyObjectRuleV2","objectToModify","propertyValues","structFieldValues","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","actionLevelValidation","validation","defaultFormat","enableLayoutSwitch","tableConfiguration","displayAndFormat","table","sections","section","submissionMetadata"],"sources":["defineCreateOrModifyObjectAction.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { convertMappingValue } from \"../conversion/toMarketplace/convertMappingValue.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport type { ActionTypeUserDefinition } from \"./defineAction.js\";\nimport {\n convertValidationRule,\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n createDefaultParameterOrdering,\n createParameters,\n defineAction,\n kebab,\n validateActionParameters,\n validateParameterOrdering,\n} from \"./defineAction.js\";\nimport { isStruct } from \"./properties/PropertyTypeType.js\";\n\nexport function defineCreateOrModifyObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(\n def,\n Object.keys(def.objectType.properties ?? {}),\n def.objectType.apiName,\n );\n const propertiesWithDerivedDatasources = (def.objectType.datasources ?? [])\n .filter(ds => ds.type === \"derived\").flatMap(ds =>\n Object.keys(ds.propertyMapping)\n );\n const propertyParameters = Object.keys(def.objectType.properties ?? {})\n .filter(\n id =>\n !Object.keys(def.nonParameterMappings ?? {}).includes(id)\n && !def.excludedProperties?.includes(id)\n && !isStruct(def.objectType.properties?.[id].type!)\n && id !== def.objectType.primaryKeyPropertyApiName\n && !propertiesWithDerivedDatasources.includes(id),\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(param)\n );\n parameterNames.add(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n const actionApiName = def.apiName\n ?? `create-or-modify-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(CREATE_OR_MODIFY_OBJECT_PARAMETER)) {\n def.parameterOrdering.unshift(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n }\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(\n def,\n def.objectType.properties ?? {},\n parameterNames,\n );\n parameters.forEach(\n p => {\n if (\n p.id !== CREATE_OR_MODIFY_OBJECT_PARAMETER\n && p.defaultValue === undefined\n ) {\n p.defaultValue = {\n type: \"objectParameterPropertyValue\",\n objectParameterPropertyValue: {\n parameterId: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n propertyTypeId: p.id,\n },\n };\n }\n },\n );\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName\n ?? `Create or Modify ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n rules: [{\n type: \"addOrModifyObjectRuleV2\",\n addOrModifyObjectRuleV2: {\n objectToModify: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n propertyValues: {\n ...Object.fromEntries(\n propertyParameters.map(\n p => [p, { type: \"parameterId\", parameterId: p }],\n ),\n ),\n ...mappings,\n },\n structFieldValues: {},\n },\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n parameterOrdering: def.parameterOrdering\n ?? createDefaultParameterOrdering(\n def,\n Object.keys(def.objectType.properties ?? {}),\n parameters,\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n ),\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(\n def.actionLevelValidation,\n parameters,\n ),\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.tableConfiguration && {\n displayAndFormat: {\n table: def.tableConfiguration,\n },\n }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,mBAAmB,QAAQ,oDAAoD;AAGxF,SACEC,qBAAqB,EACrBC,iCAAiC,EACjCC,8BAA8B,EAC9BC,gBAAgB,EAChBC,YAAY,EACZC,KAAK,EACLC,wBAAwB,EACxBC,yBAAyB,QACpB,mBAAmB;AAC1B,SAASC,QAAQ,QAAQ,kCAAkC;AAE3D,OAAO,SAASC,gCAAgCA,CAC9CC,GAA6B,EACjB;EACZJ,wBAAwB,CACtBI,GAAG,EACHC,MAAM,CAACC,IAAI,CAACF,GAAG,CAACG,UAAU,CAACC,UAAU,IAAI,CAAC,CAAC,CAAC,EAC5CJ,GAAG,CAACG,UAAU,CAACE,OACjB,CAAC;EACD,MAAMC,gCAAgC,GAAG,CAACN,GAAG,CAACG,UAAU,CAACI,WAAW,IAAI,EAAE,EACvEC,MAAM,CAACC,EAAE,IAAIA,EAAE,CAACC,IAAI,KAAK,SAAS,CAAC,CAACC,OAAO,CAACF,EAAE,IAC7CR,MAAM,CAACC,IAAI,CAACO,EAAE,CAACG,eAAe,CAChC,CAAC;EACH,MAAMC,kBAAkB,GAAGZ,MAAM,CAACC,IAAI,CAACF,GAAG,CAACG,UAAU,CAACC,UAAU,IAAI,CAAC,CAAC,CAAC,CACpEI,MAAM,CACLM,EAAE,IACA,CAACb,MAAM,CAACC,IAAI,CAACF,GAAG,CAACe,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAACC,QAAQ,CAACF,EAAE,CAAC,IACtD,CAACd,GAAG,CAACiB,kBAAkB,EAAED,QAAQ,CAACF,EAAE,CAAC,IACrC,CAAChB,QAAQ,CAACE,GAAG,CAACG,UAAU,CAACC,UAAU,GAAGU,EAAE,CAAC,CAACJ,IAAK,CAAC,IAChDI,EAAE,KAAKd,GAAG,CAACG,UAAU,CAACe,yBAAyB,IAC/C,CAACZ,gCAAgC,CAACU,QAAQ,CAACF,EAAE,CACpD,CAAC;EACH,MAAMK,cAAc,GAAG,IAAIC,GAAG,CAACP,kBAAkB,CAAC;EAClDZ,MAAM,CAACC,IAAI,CAACF,GAAG,CAACqB,sBAAsB,IAAI,CAAC,CAAC,CAAC,CAACC,OAAO,CAACC,KAAK,IACzDJ,cAAc,CAACK,GAAG,CAACD,KAAK,CAC1B,CAAC;EACDJ,cAAc,CAACK,GAAG,CAACjC,iCAAiC,CAAC;EACrD,MAAMkC,aAAa,GAAGzB,GAAG,CAACK,OAAO,IAC5B,oBACDV,KAAK,CAACK,GAAG,CAACG,UAAU,CAACE,OAAO,CAACqB,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAI3B,GAAG,CAACG,UAAU,CAACE,OAAO,CAAC,EACxE;EACJ,IAAIL,GAAG,CAAC4B,iBAAiB,EAAE;IACzB,IAAI,CAAC5B,GAAG,CAAC4B,iBAAiB,CAACZ,QAAQ,CAACzB,iCAAiC,CAAC,EAAE;MACtES,GAAG,CAAC4B,iBAAiB,CAACC,OAAO,CAACtC,iCAAiC,CAAC;IAClE;IACAM,yBAAyB,CACvBG,GAAG,CAAC4B,iBAAiB,EACrBT,cAAc,EACdM,aACF,CAAC;EACH;EACA,MAAMK,UAAU,GAAGrC,gBAAgB,CACjCO,GAAG,EACHA,GAAG,CAACG,UAAU,CAACC,UAAU,IAAI,CAAC,CAAC,EAC/Be,cACF,CAAC;EACDW,UAAU,CAACR,OAAO,CAChBS,CAAC,IAAI;IACH,IACEA,CAAC,CAACjB,EAAE,KAAKvB,iCAAiC,IACvCwC,CAAC,CAACC,YAAY,KAAKC,SAAS,EAC/B;MACAF,CAAC,CAACC,YAAY,GAAG;QACftB,IAAI,EAAE,8BAA8B;QACpCwB,4BAA4B,EAAE;UAC5BC,WAAW,EAAE5C,iCAAiC;UAC9C6C,cAAc,EAAEL,CAAC,CAACjB;QACpB;MACF,CAAC;IACH;EACF,CACF,CAAC;EACD,MAAMuB,QAAQ,GAAGpC,MAAM,CAACqC,WAAW,CACjCrC,MAAM,CAACsC,OAAO,CAACvC,GAAG,CAACe,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAACyB,GAAG,CAAC,CACjD,CAAC1B,EAAE,EAAE2B,KAAK,CAAC,KACR,CAAC3B,EAAE,EAAEzB,mBAAmB,CAACoD,KAAK,CAAC,CAAC,CACvC,CAAC;EAED,OAAO/C,YAAY,CAAC;IAClBW,OAAO,EAAEoB,aAAa;IACtBiB,WAAW,EAAE1C,GAAG,CAAC0C,WAAW,IACvB,oBAAoB1C,GAAG,CAACG,UAAU,CAACuC,WAAW,EAAE;IACrDZ,UAAU,EAAEA,UAAU;IACtBa,MAAM,EAAE3C,GAAG,CAAC2C,MAAM,IAAI,QAAQ;IAC9BC,KAAK,EAAE,CAAC;MACNlC,IAAI,EAAE,yBAAyB;MAC/BmC,uBAAuB,EAAE;QACvBC,cAAc,EAAEvD,iCAAiC;QACjDwD,cAAc,EAAE;UACd,GAAG9C,MAAM,CAACqC,WAAW,CACnBzB,kBAAkB,CAAC2B,GAAG,CACpBT,CAAC,IAAI,CAACA,CAAC,EAAE;YAAErB,IAAI,EAAE,aAAa;YAAEyB,WAAW,EAAEJ;UAAE,CAAC,CAClD,CACF,CAAC;UACD,GAAGM;QACL,CAAC;QACDW,iBAAiB,EAAE,CAAC;MACtB;IACF,CAAC,CAAC;IACFC,QAAQ,EAAE;MACRC,sBAAsB,EAAE,EAAE;MAC1BC,mBAAmB,EAAE,CAACnD,GAAG,CAACG,UAAU,CAACE,OAAO,CAAC;MAC7C+C,iBAAiB,EAAE,EAAE;MACrBC,UAAU,EAAE;IACd,CAAC;IACDzB,iBAAiB,EAAE5B,GAAG,CAAC4B,iBAAiB,IACnCpC,8BAA8B,CAC/BQ,GAAG,EACHC,MAAM,CAACC,IAAI,CAACF,GAAG,CAACG,UAAU,CAACC,UAAU,IAAI,CAAC,CAAC,CAAC,EAC5C0B,UAAU,EACVvC,iCACF,CAAC;IACH,IAAIS,GAAG,CAACsD,qBAAqB,GACzB;MACAC,UAAU,EAAEjE,qBAAqB,CAC/BU,GAAG,CAACsD,qBAAqB,EACzBxB,UACF;IACF,CAAC,GACC,CAAC,CAAC,CAAC;IACP,IAAI9B,GAAG,CAACwD,aAAa,IAAI;MAAEA,aAAa,EAAExD,GAAG,CAACwD;IAAc,CAAC,CAAC;IAC9D,IAAIxD,GAAG,CAACyD,kBAAkB,IACrB;MAAEA,kBAAkB,EAAEzD,GAAG,CAACyD;IAAmB,CAAC,CAAC;IACpD,IAAIzD,GAAG,CAAC0D,kBAAkB,IAAI;MAC5BC,gBAAgB,EAAE;QAChBC,KAAK,EAAE5D,GAAG,CAAC0D;MACb;IACF,CAAC,CAAC;IACF,IAAI1D,GAAG,CAAC6D,QAAQ,IACX;MACDA,QAAQ,EAAE5D,MAAM,CAACqC,WAAW,CAC1BtC,GAAG,CAAC6D,QAAQ,CAACrB,GAAG,CAACsB,OAAO,IAAI,CAACA,OAAO,CAAChD,EAAE,EAAEgD,OAAO,CAAC,CACnD;IACF,CAAC,CAAC;IACJ,IAAI9D,GAAG,CAAC+D,kBAAkB,IACrB;MAAEA,kBAAkB,EAAE/D,GAAG,CAAC+D;IAAmB,CAAC;EACrD,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -0,0 +1,53 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { defineAction, kebab } from "./defineAction.js";
18
+ export function defineDeleteInterfaceObjectAction(def) {
19
+ return defineAction({
20
+ apiName: def.apiName ?? `delete-interface-object-${kebab(def.interfaceType.apiName.split(".").pop() ?? def.interfaceType.apiName)}`,
21
+ displayName: def.displayName ?? `Delete ${def.interfaceType.displayMetadata.displayName}`,
22
+ parameters: [{
23
+ id: "objectToDeleteParameter",
24
+ displayName: "Delete object",
25
+ type: {
26
+ type: "interfaceReference",
27
+ interfaceReference: {
28
+ interfaceTypeRid: def.interfaceType.apiName
29
+ }
30
+ },
31
+ validation: {
32
+ required: true,
33
+ allowedValues: {
34
+ type: "interfaceObjectQuery"
35
+ }
36
+ }
37
+ }],
38
+ status: def.status ?? "active",
39
+ rules: [{
40
+ type: "deleteObjectRule",
41
+ deleteObjectRule: {
42
+ objectToDelete: "objectToDeleteParameter"
43
+ }
44
+ }],
45
+ entities: {
46
+ affectedInterfaceTypes: [],
47
+ affectedObjectTypes: [def.interfaceType.apiName],
48
+ affectedLinkTypes: [],
49
+ typeGroups: []
50
+ }
51
+ });
52
+ }
53
+ //# sourceMappingURL=defineDeleteInterfaceObjectAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineDeleteInterfaceObjectAction.js","names":["defineAction","kebab","defineDeleteInterfaceObjectAction","def","apiName","interfaceType","split","pop","displayName","displayMetadata","parameters","id","type","interfaceReference","interfaceTypeRid","validation","required","allowedValues","status","rules","deleteObjectRule","objectToDelete","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups"],"sources":["defineDeleteInterfaceObjectAction.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ActionType } from \"./action/ActionType.js\";\nimport type { InterfaceActionTypeUserDefinition } from \"./defineAction.js\";\nimport { defineAction, kebab } from \"./defineAction.js\";\n\nexport function defineDeleteInterfaceObjectAction(\n def: InterfaceActionTypeUserDefinition,\n): ActionType {\n return defineAction({\n apiName: def.apiName\n ?? `delete-interface-object-${\n kebab(\n def.interfaceType.apiName.split(\".\").pop()\n ?? def.interfaceType.apiName,\n )\n }`,\n displayName: def.displayName\n ?? `Delete ${def.interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"objectToDeleteParameter\",\n displayName: \"Delete object\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: { interfaceTypeRid: def.interfaceType.apiName },\n },\n validation: {\n required: true,\n allowedValues: { type: \"interfaceObjectQuery\" },\n },\n },\n ],\n status: def.status ?? \"active\",\n rules: [{\n type: \"deleteObjectRule\",\n deleteObjectRule: {\n objectToDelete: \"objectToDeleteParameter\",\n },\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.interfaceType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n });\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,YAAY,EAAEC,KAAK,QAAQ,mBAAmB;AAEvD,OAAO,SAASC,iCAAiCA,CAC/CC,GAAsC,EAC1B;EACZ,OAAOH,YAAY,CAAC;IAClBI,OAAO,EAAED,GAAG,CAACC,OAAO,IACf,2BACDH,KAAK,CACHE,GAAG,CAACE,aAAa,CAACD,OAAO,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IACrCJ,GAAG,CAACE,aAAa,CAACD,OACzB,CAAC,EACD;IACJI,WAAW,EAAEL,GAAG,CAACK,WAAW,IACvB,UAAUL,GAAG,CAACE,aAAa,CAACI,eAAe,CAACD,WAAW,EAAE;IAC9DE,UAAU,EAAE,CACV;MACEC,EAAE,EAAE,yBAAyB;MAC7BH,WAAW,EAAE,eAAe;MAC5BI,IAAI,EAAE;QACJA,IAAI,EAAE,oBAAoB;QAC1BC,kBAAkB,EAAE;UAAEC,gBAAgB,EAAEX,GAAG,CAACE,aAAa,CAACD;QAAQ;MACpE,CAAC;MACDW,UAAU,EAAE;QACVC,QAAQ,EAAE,IAAI;QACdC,aAAa,EAAE;UAAEL,IAAI,EAAE;QAAuB;MAChD;IACF,CAAC,CACF;IACDM,MAAM,EAAEf,GAAG,CAACe,MAAM,IAAI,QAAQ;IAC9BC,KAAK,EAAE,CAAC;MACNP,IAAI,EAAE,kBAAkB;MACxBQ,gBAAgB,EAAE;QAChBC,cAAc,EAAE;MAClB;IACF,CAAC,CAAC;IACFC,QAAQ,EAAE;MACRC,sBAAsB,EAAE,EAAE;MAC1BC,mBAAmB,EAAE,CAACrB,GAAG,CAACE,aAAa,CAACD,OAAO,CAAC;MAChDqB,iBAAiB,EAAE,EAAE;MACrBC,UAAU,EAAE;IACd;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -14,23 +14,14 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import invariant from "tiny-invariant";
18
17
  import { OntologyEntityTypeEnum } from "./common/OntologyEntityTypeEnum.js";
19
18
  import { convertToPluralDisplayName, uppercaseFirstLetter } from "./defineObject.js";
20
19
  import { updateOntology } from "./defineOntology.js";
21
- const typeIdPattern = /([a-z][a-z0-9\\-]*)/;
22
20
  export function defineLink(linkDefinition) {
23
- if ("one" in linkDefinition) {
24
- const foreignKey = linkDefinition.toMany.object.properties?.[linkDefinition.manyForeignKeyProperty];
25
- !(foreignKey !== undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${linkDefinition.toMany.object.apiName}}`) : invariant(false) : void 0;
26
- !typeIdPattern.test(linkDefinition.apiName) ? process.env.NODE_ENV !== "production" ? invariant(false, `Top level link api names are expected to match the regex pattern ([a-z][a-z0-9\\-]*) ${linkDefinition.apiName} does not match`) : invariant(false) : void 0;
27
- const typesMatch = foreignKey.type === linkDefinition.one.object.properties?.[linkDefinition.one.object.primaryKeyPropertyApiName].type;
28
- !typesMatch ? process.env.NODE_ENV !== "production" ? invariant(false, `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`) : invariant(false) : void 0;
29
- }
30
- if ("intermediaryObjectType" in linkDefinition) {
31
- !("one" in linkDefinition.many.linkToIntermediary && linkDefinition.many.linkToIntermediary.one.object.apiName === linkDefinition.many.object.apiName && linkDefinition.many.linkToIntermediary.toMany.object.apiName === linkDefinition.intermediaryObjectType.apiName) ? process.env.NODE_ENV !== "production" ? invariant(false, `LinkTypeA ${linkDefinition.many.linkToIntermediary.apiName} must be a many to one link from intermediary object ${linkDefinition.intermediaryObjectType.apiName} to objectA ${linkDefinition.many.object.apiName}`) : invariant(false) : void 0;
32
- !("one" in linkDefinition.toMany.linkToIntermediary && linkDefinition.toMany.linkToIntermediary.one.object.apiName === linkDefinition.toMany.object.apiName && linkDefinition.toMany.linkToIntermediary.toMany.object.apiName === linkDefinition.intermediaryObjectType.apiName) ? process.env.NODE_ENV !== "production" ? invariant(false, `LinkTypeB ${linkDefinition.toMany.linkToIntermediary.apiName} must be a many to one link from intermediary object ${linkDefinition.intermediaryObjectType.apiName} to objectB ${linkDefinition.toMany.object.apiName}`) : invariant(false) : void 0;
33
- }
21
+ // NOTE: we would normally do validation here, but because of circular dependencies
22
+ // we have to wait to validate until everything has been defined. The code for validation
23
+ // was moved to convertLink.ts.
24
+
34
25
  let fullLinkDefinition;
35
26
  if ("one" in linkDefinition) {
36
27
  fullLinkDefinition = {
@@ -54,6 +45,7 @@ export function defineLink(linkDefinition) {
54
45
  const linkType = {
55
46
  cardinality: "one" in linkDefinition ? linkDefinition.cardinality : undefined,
56
47
  ...fullLinkDefinition,
48
+ apiName: linkDefinition.apiName,
57
49
  __type: OntologyEntityTypeEnum.LINK_TYPE
58
50
  };
59
51
  updateOntology(linkType);
@@ -1 +1 @@
1
- {"version":3,"file":"defineLink.js","names":["invariant","OntologyEntityTypeEnum","convertToPluralDisplayName","uppercaseFirstLetter","updateOntology","typeIdPattern","defineLink","linkDefinition","foreignKey","toMany","object","properties","manyForeignKeyProperty","undefined","process","env","NODE_ENV","apiName","test","typesMatch","type","one","primaryKeyPropertyApiName","many","linkToIntermediary","intermediaryObjectType","fullLinkDefinition","convertUserOneToManyLinkDefinition","convertUserIntermediaryLinkDefinition","convertUserManyToManyLinkDefinition","linkType","cardinality","__type","LINK_TYPE","oneToMany","metadata","convertLinkTypeMetadata","manyToMany","intermediary","displayMetadata","displayName","pluralDisplayName","visibility","groupDisplayName","typeClasses"],"sources":["defineLink.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { LinkTypeMetadata } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport {\n convertToPluralDisplayName,\n uppercaseFirstLetter,\n} from \"./defineObject.js\";\nimport { updateOntology } from \"./defineOntology.js\";\nimport type {\n IntermediaryObjectLinkReference,\n IntermediaryObjectLinkReferenceUserDefinition,\n LinkType,\n LinkTypeDefinition,\n LinkTypeMetadataUserDefinition,\n ManyToManyObjectLinkReference,\n ManyToManyObjectLinkReferenceUserDefinition,\n OneToManyObjectLinkReference,\n OneToManyObjectLinkReferenceUserDefinition,\n} from \"./links/LinkType.js\";\n\nconst typeIdPattern = /([a-z][a-z0-9\\\\-]*)/;\n\nexport function defineLink(\n linkDefinition: LinkTypeDefinition,\n): LinkType {\n if (\"one\" in linkDefinition) {\n const foreignKey = linkDefinition.toMany.object.properties\n ?.[linkDefinition.manyForeignKeyProperty];\n invariant(\n foreignKey !== undefined,\n `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${linkDefinition.toMany.object.apiName}}`,\n );\n\n invariant(\n typeIdPattern.test(linkDefinition.apiName),\n `Top level link api names are expected to match the regex pattern ([a-z][a-z0-9\\\\-]*) ${linkDefinition.apiName} does not match`,\n );\n\n const typesMatch = foreignKey.type\n === linkDefinition.one.object.properties\n ?.[linkDefinition.one.object.primaryKeyPropertyApiName].type;\n invariant(\n typesMatch,\n `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`,\n );\n }\n if (\"intermediaryObjectType\" in linkDefinition) {\n invariant(\n \"one\" in linkDefinition.many.linkToIntermediary\n && linkDefinition.many.linkToIntermediary.one.object.apiName\n === linkDefinition.many.object.apiName\n && linkDefinition.many.linkToIntermediary.toMany.object.apiName\n === linkDefinition.intermediaryObjectType.apiName,\n `LinkTypeA ${linkDefinition.many.linkToIntermediary.apiName} must be a many to one link from intermediary object ${linkDefinition.intermediaryObjectType.apiName} to objectA ${linkDefinition.many.object.apiName}`,\n );\n invariant(\n \"one\" in linkDefinition.toMany.linkToIntermediary\n && linkDefinition.toMany.linkToIntermediary.one.object.apiName\n === linkDefinition.toMany.object.apiName\n && linkDefinition.toMany.linkToIntermediary.toMany.object.apiName\n === linkDefinition.intermediaryObjectType.apiName,\n `LinkTypeB ${linkDefinition.toMany.linkToIntermediary.apiName} must be a many to one link from intermediary object ${linkDefinition.intermediaryObjectType.apiName} to objectB ${linkDefinition.toMany.object.apiName}`,\n );\n }\n let fullLinkDefinition;\n if (\"one\" in linkDefinition) {\n fullLinkDefinition = {\n ...linkDefinition,\n one: convertUserOneToManyLinkDefinition(linkDefinition.one),\n toMany: convertUserOneToManyLinkDefinition(linkDefinition.toMany),\n };\n } else if (\"intermediaryObjectType\" in linkDefinition) {\n fullLinkDefinition = {\n ...linkDefinition,\n many: convertUserIntermediaryLinkDefinition(\n linkDefinition.many,\n ),\n toMany: convertUserIntermediaryLinkDefinition(\n linkDefinition.toMany,\n ),\n };\n } else {\n fullLinkDefinition = {\n ...linkDefinition,\n many: convertUserManyToManyLinkDefinition(linkDefinition.many),\n toMany: convertUserManyToManyLinkDefinition(linkDefinition.toMany),\n };\n }\n const linkType: LinkType = {\n cardinality: \"one\" in linkDefinition\n ? linkDefinition.cardinality\n : undefined,\n ...fullLinkDefinition,\n __type: OntologyEntityTypeEnum.LINK_TYPE,\n };\n updateOntology(linkType);\n return linkType;\n}\n\nfunction convertUserOneToManyLinkDefinition(\n oneToMany: OneToManyObjectLinkReferenceUserDefinition,\n): OneToManyObjectLinkReference {\n return {\n ...oneToMany,\n metadata: convertLinkTypeMetadata(oneToMany.metadata),\n };\n}\n\nfunction convertUserManyToManyLinkDefinition(\n manyToMany: ManyToManyObjectLinkReferenceUserDefinition,\n): ManyToManyObjectLinkReference {\n return {\n ...manyToMany,\n metadata: convertLinkTypeMetadata(manyToMany.metadata),\n };\n}\n\nfunction convertUserIntermediaryLinkDefinition(\n intermediary: IntermediaryObjectLinkReferenceUserDefinition,\n): IntermediaryObjectLinkReference {\n return {\n ...intermediary,\n metadata: convertLinkTypeMetadata(intermediary.metadata),\n };\n}\n\nfunction convertLinkTypeMetadata(\n metadata: LinkTypeMetadataUserDefinition,\n): LinkTypeMetadata {\n return {\n apiName: metadata.apiName,\n displayMetadata: {\n displayName: metadata.displayName\n ?? uppercaseFirstLetter(metadata.apiName),\n pluralDisplayName: metadata.pluralDisplayName\n ?? convertToPluralDisplayName(metadata.apiName),\n visibility: metadata.visibility ?? \"NORMAL\",\n groupDisplayName: metadata.groupDisplayName ?? \"\",\n },\n typeClasses: [],\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineLink.js","names":["OntologyEntityTypeEnum","convertToPluralDisplayName","uppercaseFirstLetter","updateOntology","defineLink","linkDefinition","fullLinkDefinition","one","convertUserOneToManyLinkDefinition","toMany","many","convertUserIntermediaryLinkDefinition","convertUserManyToManyLinkDefinition","linkType","cardinality","undefined","apiName","__type","LINK_TYPE","oneToMany","metadata","convertLinkTypeMetadata","manyToMany","intermediary","displayMetadata","displayName","pluralDisplayName","visibility","groupDisplayName","typeClasses"],"sources":["defineLink.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { LinkTypeMetadata } from \"@osdk/client.unstable\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport {\n convertToPluralDisplayName,\n uppercaseFirstLetter,\n} from \"./defineObject.js\";\nimport { updateOntology } from \"./defineOntology.js\";\nimport type {\n IntermediaryObjectLinkReference,\n IntermediaryObjectLinkReferenceUserDefinition,\n LinkType,\n LinkTypeDefinition,\n LinkTypeMetadataUserDefinition,\n ManyToManyObjectLinkReference,\n ManyToManyObjectLinkReferenceUserDefinition,\n OneToManyObjectLinkReference,\n OneToManyObjectLinkReferenceUserDefinition,\n} from \"./links/LinkType.js\";\n\nexport function defineLink(\n linkDefinition: LinkTypeDefinition,\n): LinkType {\n // NOTE: we would normally do validation here, but because of circular dependencies\n // we have to wait to validate until everything has been defined. The code for validation\n // was moved to convertLink.ts.\n\n let fullLinkDefinition;\n if (\"one\" in linkDefinition) {\n fullLinkDefinition = {\n ...linkDefinition,\n one: convertUserOneToManyLinkDefinition(linkDefinition.one),\n toMany: convertUserOneToManyLinkDefinition(linkDefinition.toMany),\n };\n } else if (\"intermediaryObjectType\" in linkDefinition) {\n fullLinkDefinition = {\n ...linkDefinition,\n many: convertUserIntermediaryLinkDefinition(\n linkDefinition.many,\n ),\n toMany: convertUserIntermediaryLinkDefinition(\n linkDefinition.toMany,\n ),\n };\n } else {\n fullLinkDefinition = {\n ...linkDefinition,\n many: convertUserManyToManyLinkDefinition(linkDefinition.many),\n toMany: convertUserManyToManyLinkDefinition(linkDefinition.toMany),\n };\n }\n const linkType: LinkType = {\n cardinality: \"one\" in linkDefinition\n ? linkDefinition.cardinality\n : undefined,\n ...fullLinkDefinition,\n apiName: linkDefinition.apiName,\n __type: OntologyEntityTypeEnum.LINK_TYPE,\n };\n updateOntology(linkType);\n return linkType;\n}\n\nfunction convertUserOneToManyLinkDefinition(\n oneToMany: OneToManyObjectLinkReferenceUserDefinition,\n): OneToManyObjectLinkReference {\n return {\n ...oneToMany,\n metadata: convertLinkTypeMetadata(oneToMany.metadata),\n };\n}\n\nfunction convertUserManyToManyLinkDefinition(\n manyToMany: ManyToManyObjectLinkReferenceUserDefinition,\n): ManyToManyObjectLinkReference {\n return {\n ...manyToMany,\n metadata: convertLinkTypeMetadata(manyToMany.metadata),\n };\n}\n\nfunction convertUserIntermediaryLinkDefinition(\n intermediary: IntermediaryObjectLinkReferenceUserDefinition,\n): IntermediaryObjectLinkReference {\n return {\n ...intermediary,\n metadata: convertLinkTypeMetadata(intermediary.metadata),\n };\n}\n\nfunction convertLinkTypeMetadata(\n metadata: LinkTypeMetadataUserDefinition,\n): LinkTypeMetadata {\n return {\n apiName: metadata.apiName,\n displayMetadata: {\n displayName: metadata.displayName\n ?? uppercaseFirstLetter(metadata.apiName),\n pluralDisplayName: metadata.pluralDisplayName\n ?? convertToPluralDisplayName(metadata.apiName),\n visibility: metadata.visibility ?? \"NORMAL\",\n groupDisplayName: metadata.groupDisplayName ?? \"\",\n },\n typeClasses: [],\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,sBAAsB,QAAQ,oCAAoC;AAC3E,SACEC,0BAA0B,EAC1BC,oBAAoB,QACf,mBAAmB;AAC1B,SAASC,cAAc,QAAQ,qBAAqB;AAapD,OAAO,SAASC,UAAUA,CACxBC,cAAkC,EACxB;EACV;EACA;EACA;;EAEA,IAAIC,kBAAkB;EACtB,IAAI,KAAK,IAAID,cAAc,EAAE;IAC3BC,kBAAkB,GAAG;MACnB,GAAGD,cAAc;MACjBE,GAAG,EAAEC,kCAAkC,CAACH,cAAc,CAACE,GAAG,CAAC;MAC3DE,MAAM,EAAED,kCAAkC,CAACH,cAAc,CAACI,MAAM;IAClE,CAAC;EACH,CAAC,MAAM,IAAI,wBAAwB,IAAIJ,cAAc,EAAE;IACrDC,kBAAkB,GAAG;MACnB,GAAGD,cAAc;MACjBK,IAAI,EAAEC,qCAAqC,CACzCN,cAAc,CAACK,IACjB,CAAC;MACDD,MAAM,EAAEE,qCAAqC,CAC3CN,cAAc,CAACI,MACjB;IACF,CAAC;EACH,CAAC,MAAM;IACLH,kBAAkB,GAAG;MACnB,GAAGD,cAAc;MACjBK,IAAI,EAAEE,mCAAmC,CAACP,cAAc,CAACK,IAAI,CAAC;MAC9DD,MAAM,EAAEG,mCAAmC,CAACP,cAAc,CAACI,MAAM;IACnE,CAAC;EACH;EACA,MAAMI,QAAkB,GAAG;IACzBC,WAAW,EAAE,KAAK,IAAIT,cAAc,GAChCA,cAAc,CAACS,WAAW,GAC1BC,SAAS;IACb,GAAGT,kBAAkB;IACrBU,OAAO,EAAEX,cAAc,CAACW,OAAO;IAC/BC,MAAM,EAAEjB,sBAAsB,CAACkB;EACjC,CAAC;EACDf,cAAc,CAACU,QAAQ,CAAC;EACxB,OAAOA,QAAQ;AACjB;AAEA,SAASL,kCAAkCA,CACzCW,SAAqD,EACvB;EAC9B,OAAO;IACL,GAAGA,SAAS;IACZC,QAAQ,EAAEC,uBAAuB,CAACF,SAAS,CAACC,QAAQ;EACtD,CAAC;AACH;AAEA,SAASR,mCAAmCA,CAC1CU,UAAuD,EACxB;EAC/B,OAAO;IACL,GAAGA,UAAU;IACbF,QAAQ,EAAEC,uBAAuB,CAACC,UAAU,CAACF,QAAQ;EACvD,CAAC;AACH;AAEA,SAAST,qCAAqCA,CAC5CY,YAA2D,EAC1B;EACjC,OAAO;IACL,GAAGA,YAAY;IACfH,QAAQ,EAAEC,uBAAuB,CAACE,YAAY,CAACH,QAAQ;EACzD,CAAC;AACH;AAEA,SAASC,uBAAuBA,CAC9BD,QAAwC,EACtB;EAClB,OAAO;IACLJ,OAAO,EAAEI,QAAQ,CAACJ,OAAO;IACzBQ,eAAe,EAAE;MACfC,WAAW,EAAEL,QAAQ,CAACK,WAAW,IAC5BvB,oBAAoB,CAACkB,QAAQ,CAACJ,OAAO,CAAC;MAC3CU,iBAAiB,EAAEN,QAAQ,CAACM,iBAAiB,IACxCzB,0BAA0B,CAACmB,QAAQ,CAACJ,OAAO,CAAC;MACjDW,UAAU,EAAEP,QAAQ,CAACO,UAAU,IAAI,QAAQ;MAC3CC,gBAAgB,EAAER,QAAQ,CAACQ,gBAAgB,IAAI;IACjD,CAAC;IACDC,WAAW,EAAE;EACf,CAAC;AACH","ignoreList":[]}