@osdk/maker 0.15.0-beta.7 → 0.15.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/README.md +26 -22
- package/build/browser/api/action/ActionParameterConditionalOverride.js.map +1 -1
- package/build/browser/api/defineInterface.js.map +1 -1
- package/build/browser/api/defineOntology.js +6 -0
- package/build/browser/api/defineOntology.js.map +1 -1
- package/build/browser/api/defineValueType.js +25 -7
- package/build/browser/api/defineValueType.js.map +1 -1
- package/build/browser/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js +5 -0
- package/build/browser/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js.map +1 -1
- package/build/browser/api/links/LinkType.js.map +1 -1
- package/build/browser/api/object/ObjectTypeStatus.js.map +1 -1
- package/build/browser/api/test/actions.test.js +8 -5
- package/build/browser/api/test/actions.test.js.map +1 -1
- package/build/browser/api/test/interfaces.test.js +12 -0
- package/build/browser/api/test/interfaces.test.js.map +1 -1
- package/build/browser/api/test/misc.test.js +4 -2
- package/build/browser/api/test/misc.test.js.map +1 -1
- package/build/browser/api/test/objects.test.js +3 -2
- package/build/browser/api/test/objects.test.js.map +1 -1
- package/build/browser/api/test/valueTypes.test.js +151 -0
- package/build/browser/api/test/valueTypes.test.js.map +1 -1
- package/build/browser/cli/main.js +1 -1
- package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js +15 -7
- package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertLink.js +30 -4
- package/build/browser/conversion/toMarketplace/convertLink.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertObject.js +6 -5
- package/build/browser/conversion/toMarketplace/convertObject.js.map +1 -1
- package/build/cjs/index.cjs +86 -22
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +29 -5
- package/build/esm/api/action/ActionParameterConditionalOverride.js.map +1 -1
- package/build/esm/api/defineInterface.js.map +1 -1
- package/build/esm/api/defineOntology.js +6 -0
- package/build/esm/api/defineOntology.js.map +1 -1
- package/build/esm/api/defineValueType.js +25 -7
- package/build/esm/api/defineValueType.js.map +1 -1
- package/build/esm/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js +5 -0
- package/build/esm/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js.map +1 -1
- package/build/esm/api/links/LinkType.js.map +1 -1
- package/build/esm/api/object/ObjectTypeStatus.js.map +1 -1
- package/build/esm/api/test/actions.test.js +8 -5
- package/build/esm/api/test/actions.test.js.map +1 -1
- package/build/esm/api/test/interfaces.test.js +12 -0
- package/build/esm/api/test/interfaces.test.js.map +1 -1
- package/build/esm/api/test/misc.test.js +4 -2
- package/build/esm/api/test/misc.test.js.map +1 -1
- package/build/esm/api/test/objects.test.js +3 -2
- package/build/esm/api/test/objects.test.js.map +1 -1
- package/build/esm/api/test/valueTypes.test.js +151 -0
- package/build/esm/api/test/valueTypes.test.js.map +1 -1
- package/build/esm/cli/main.js +1 -1
- package/build/esm/conversion/toMarketplace/convertActionParameterConditionalOverride.js +15 -7
- package/build/esm/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertLink.js +30 -4
- package/build/esm/conversion/toMarketplace/convertLink.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertObject.js +6 -5
- package/build/esm/conversion/toMarketplace/convertObject.js.map +1 -1
- package/build/types/api/action/ActionParameterConditionalOverride.d.ts +2 -0
- package/build/types/api/action/ActionParameterConditionalOverride.d.ts.map +1 -1
- package/build/types/api/defineInterface.d.ts +2 -0
- package/build/types/api/defineInterface.d.ts.map +1 -1
- package/build/types/api/defineOntology.d.ts.map +1 -1
- package/build/types/api/defineValueType.d.ts +10 -0
- package/build/types/api/defineValueType.d.ts.map +1 -1
- package/build/types/api/links/LinkType.d.ts +16 -4
- package/build/types/api/links/LinkType.d.ts.map +1 -1
- package/build/types/api/object/ObjectTypeStatus.d.ts +1 -1
- package/build/types/api/object/ObjectTypeStatus.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertLink.d.ts +3 -2
- package/build/types/conversion/toMarketplace/convertLink.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertObject.d.ts.map +1 -1
- package/package.json +4 -4
package/build/cjs/index.d.cts
CHANGED
|
@@ -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, ParameterRenderHint, 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, OntologyIrBaseFormatter, OntologyIrMarketplaceInterfaceType, InterfaceTypeStatus, ValueTypeApiName, ValueTypeDisplayMetadata, ValueTypeStatus, ValueTypeVersion, BaseType, ValueTypeDataConstraint, ExampleValue, LinkTypeMetadata,
|
|
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, ParameterRenderHint, 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, OntologyIrBaseFormatter, OntologyIrMarketplaceInterfaceType, InterfaceTypeStatus, ValueTypeApiName, ValueTypeDisplayMetadata, ValueTypeStatus, ValueTypeVersion, BaseType, ValueTypeDataConstraint, ExampleValue, LinkTypeMetadata, LinkTypeId, DerivedPropertyLinkTypeSide, ObjectTypeFieldApiName, OntologyIrObjectType, OntologyIr, DataConstraint, FailureMessage, ValueTypeRid, OntologyIrType } from '@osdk/client.unstable';
|
|
2
2
|
|
|
3
3
|
declare function main(args?: string[]): Promise<void>;
|
|
4
4
|
|
|
@@ -90,10 +90,12 @@ type ActionParameterConditionalOverride = VisibilityOverride | DisabledOverride
|
|
|
90
90
|
type VisibilityOverride = {
|
|
91
91
|
type: "visibility";
|
|
92
92
|
condition: ConditionDefinition;
|
|
93
|
+
then?: "editable" | "disabled" | "hidden";
|
|
93
94
|
};
|
|
94
95
|
type DisabledOverride = {
|
|
95
96
|
type: "disabled";
|
|
96
97
|
condition: ConditionDefinition;
|
|
98
|
+
then?: "editable" | "disabled" | "hidden";
|
|
97
99
|
};
|
|
98
100
|
type RequiredOverride = {
|
|
99
101
|
type: "required";
|
|
@@ -331,7 +333,7 @@ type ValueTypeDefinitionVersion = OntologyEntityBase & {
|
|
|
331
333
|
__type: OntologyEntityTypeEnum.VALUE_TYPE;
|
|
332
334
|
};
|
|
333
335
|
|
|
334
|
-
type ObjectTypeStatus = "active" | "experimental" | {
|
|
336
|
+
type ObjectTypeStatus = "active" | "experimental" | "example" | {
|
|
335
337
|
type: "deprecated";
|
|
336
338
|
message: string;
|
|
337
339
|
deadline: string;
|
|
@@ -390,7 +392,7 @@ interface OneToManyLinkTypeDefinition {
|
|
|
390
392
|
manyForeignKeyProperty: ObjectTypePropertyApiName;
|
|
391
393
|
cardinality: "OneToMany" | "OneToOne" | undefined;
|
|
392
394
|
editsEnabled?: boolean;
|
|
393
|
-
status?:
|
|
395
|
+
status?: UserLinkTypeStatus;
|
|
394
396
|
redacted?: boolean;
|
|
395
397
|
}
|
|
396
398
|
interface OneToManyObjectLinkReference {
|
|
@@ -402,6 +404,8 @@ interface OneToManyLinkTypeUserDefinition {
|
|
|
402
404
|
one: OneToManyObjectLinkReferenceUserDefinition;
|
|
403
405
|
toMany: OneToManyObjectLinkReferenceUserDefinition;
|
|
404
406
|
manyForeignKeyProperty: ObjectTypePropertyApiName;
|
|
407
|
+
editsEnabled?: boolean;
|
|
408
|
+
status?: UserLinkTypeStatus;
|
|
405
409
|
cardinality?: "OneToMany" | "OneToOne" | undefined;
|
|
406
410
|
}
|
|
407
411
|
interface OneToManyObjectLinkReferenceUserDefinition {
|
|
@@ -413,7 +417,7 @@ interface ManyToManyLinkTypeDefinition {
|
|
|
413
417
|
many: ManyToManyObjectLinkReference;
|
|
414
418
|
toMany: ManyToManyObjectLinkReference;
|
|
415
419
|
editsEnabled?: boolean;
|
|
416
|
-
status?:
|
|
420
|
+
status?: UserLinkTypeStatus;
|
|
417
421
|
redacted?: boolean;
|
|
418
422
|
}
|
|
419
423
|
interface ManyToManyObjectLinkReference {
|
|
@@ -424,6 +428,8 @@ interface ManyToManyLinkTypeUserDefinition {
|
|
|
424
428
|
apiName: string;
|
|
425
429
|
many: ManyToManyObjectLinkReferenceUserDefinition;
|
|
426
430
|
toMany: ManyToManyObjectLinkReferenceUserDefinition;
|
|
431
|
+
editsEnabled?: boolean;
|
|
432
|
+
status?: UserLinkTypeStatus;
|
|
427
433
|
}
|
|
428
434
|
interface ManyToManyObjectLinkReferenceUserDefinition {
|
|
429
435
|
object: ObjectTypeDefinition | string;
|
|
@@ -435,7 +441,7 @@ interface IntermediaryLinkTypeDefinition {
|
|
|
435
441
|
toMany: IntermediaryObjectLinkReference;
|
|
436
442
|
intermediaryObjectType: ObjectTypeDefinition;
|
|
437
443
|
editsEnabled?: boolean;
|
|
438
|
-
status?:
|
|
444
|
+
status?: UserLinkTypeStatus;
|
|
439
445
|
redacted?: boolean;
|
|
440
446
|
}
|
|
441
447
|
interface IntermediaryObjectLinkReference {
|
|
@@ -448,6 +454,8 @@ interface IntermediaryLinkTypeUserDefinition {
|
|
|
448
454
|
many: IntermediaryObjectLinkReferenceUserDefinition;
|
|
449
455
|
toMany: IntermediaryObjectLinkReferenceUserDefinition;
|
|
450
456
|
intermediaryObjectType: ObjectTypeDefinition | string;
|
|
457
|
+
editsEnabled?: boolean;
|
|
458
|
+
status?: UserLinkTypeStatus;
|
|
451
459
|
}
|
|
452
460
|
interface IntermediaryObjectLinkReferenceUserDefinition {
|
|
453
461
|
object: ObjectTypeDefinition | string;
|
|
@@ -461,6 +469,12 @@ interface LinkTypeMetadataUserDefinition {
|
|
|
461
469
|
visibility?: Visibility;
|
|
462
470
|
groupDisplayName?: string;
|
|
463
471
|
}
|
|
472
|
+
type UserLinkTypeStatus = "active" | "experimental" | "example" | {
|
|
473
|
+
type: "deprecated";
|
|
474
|
+
message: string;
|
|
475
|
+
deadline: string;
|
|
476
|
+
replacedBy?: LinkTypeId;
|
|
477
|
+
};
|
|
464
478
|
|
|
465
479
|
type ObjectTypeDatasourceDefinition = ObjectTypeDatasourceDefinition_stream | ObjectTypeDatasourceDefinition_dataset | ObjectTypeDatasourceDefinition_restrictedView | ObjectTypeDatasourceDefinition_derived;
|
|
466
480
|
interface ObjectTypeDatasourceDefinition_dataset {
|
|
@@ -604,6 +618,8 @@ type SimplifiedInterfaceTypeStatus = {
|
|
|
604
618
|
type: "active";
|
|
605
619
|
} | {
|
|
606
620
|
type: "experimental";
|
|
621
|
+
} | {
|
|
622
|
+
type: "example";
|
|
607
623
|
};
|
|
608
624
|
type PropertyBase = SharedPropertyType | InterfaceDefinedProperty;
|
|
609
625
|
type SptWithOptional = {
|
|
@@ -889,6 +905,14 @@ type ValueTypeDefinition = {
|
|
|
889
905
|
description?: string;
|
|
890
906
|
type: NewValueTypeDefinition;
|
|
891
907
|
version: string;
|
|
908
|
+
status?: UserValueTypeStatus;
|
|
909
|
+
namespacePrefix?: boolean;
|
|
910
|
+
};
|
|
911
|
+
type UserValueTypeStatus = "active" | {
|
|
912
|
+
type: "deprecated";
|
|
913
|
+
message: string;
|
|
914
|
+
deadline: string;
|
|
915
|
+
replacedBy?: ValueTypeRid;
|
|
892
916
|
};
|
|
893
917
|
declare function defineValueType(valueTypeDef: ValueTypeDefinition): ValueTypeDefinitionVersion;
|
|
894
918
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionParameterConditionalOverride.js","names":[],"sources":["ActionParameterConditionalOverride.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 { OntologyIrParameterPrefill } from \"@osdk/client.unstable\";\nimport type { ActionParameterAllowedValues } from \"./ActionParameterAllowedValues.js\";\nimport type { ConditionDefinition } from \"./ConditionDefinition.js\";\n\nexport type ActionParameterConditionalOverride =\n | VisibilityOverride\n | DisabledOverride\n | RequiredOverride\n | DefaultValueOverride\n | ConstraintOverride;\n\nexport type VisibilityOverride = {\n type: \"visibility\";\n condition: ConditionDefinition;\n};\n\nexport type DisabledOverride = {\n type: \"disabled\";\n condition: ConditionDefinition;\n};\n\nexport type RequiredOverride = {\n type: \"required\";\n condition: ConditionDefinition;\n};\n\nexport type DefaultValueOverride = {\n type: \"defaultValue\";\n condition: ConditionDefinition;\n defaultValue: OntologyIrParameterPrefill;\n};\n\nexport type ConstraintOverride = {\n type: \"constraint\";\n condition: ConditionDefinition;\n constraint: ActionParameterAllowedValues;\n};\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ActionParameterConditionalOverride.js","names":[],"sources":["ActionParameterConditionalOverride.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 { OntologyIrParameterPrefill } from \"@osdk/client.unstable\";\nimport type { ActionParameterAllowedValues } from \"./ActionParameterAllowedValues.js\";\nimport type { ConditionDefinition } from \"./ConditionDefinition.js\";\n\nexport type ActionParameterConditionalOverride =\n | VisibilityOverride\n | DisabledOverride\n | RequiredOverride\n | DefaultValueOverride\n | ConstraintOverride;\n\nexport type VisibilityOverride = {\n type: \"visibility\";\n condition: ConditionDefinition;\n then?:\n | \"editable\"\n | \"disabled\"\n | \"hidden\";\n};\n\nexport type DisabledOverride = {\n type: \"disabled\";\n condition: ConditionDefinition;\n then?:\n | \"editable\"\n | \"disabled\"\n | \"hidden\";\n};\n\nexport type RequiredOverride = {\n type: \"required\";\n condition: ConditionDefinition;\n};\n\nexport type DefaultValueOverride = {\n type: \"defaultValue\";\n condition: ConditionDefinition;\n defaultValue: OntologyIrParameterPrefill;\n};\n\nexport type ConstraintOverride = {\n type: \"constraint\";\n condition: ConditionDefinition;\n constraint: ActionParameterAllowedValues;\n};\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineInterface.js","names":["invariant","OntologyEntityTypeEnum","namespace","ontologyDefinition","updateOntology","withoutNamespace","isInterfaceSharedPropertyType","mapSimplifiedStatusToInterfaceTypeStatus","combineApiNamespaceIfMissing","isExotic","isPropertyTypeType","defineInterface","interfaceDef","apiName","INTERFACE_TYPE","undefined","process","env","NODE_ENV","spts","Object","fromEntries","entries","properties","filter","_name","prop","map","s","spt","required","sharedPropertyType","propertiesV2","propName","type","sptApiName","verifyBasePropertyDefinition","propertiesV3","propertyBase","extendsInterfaces","extends","Array","isArray","status","deprecated","message","deadline","fullInterface","displayMetadata","displayName","description","icon","blueprint","color","locator","links","searchable","__type","unNamespacedTypeApiName","JSON","stringify","key"],"sources":["defineInterface.ts"],"sourcesContent":["/*\n * Copyright 2024 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 { InterfaceTypeStatus } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport type { BlueprintIcon } from \"./common/BlueprintIcons.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport {\n namespace,\n ontologyDefinition,\n updateOntology,\n withoutNamespace,\n} from \"./defineOntology.js\";\nimport {\n type InterfaceDefinedProperty,\n type InterfacePropertyType,\n isInterfaceSharedPropertyType,\n} from \"./interface/InterfacePropertyType.js\";\nimport { type InterfaceType } from \"./interface/InterfaceType.js\";\nimport { mapSimplifiedStatusToInterfaceTypeStatus } from \"./interface/mapSimplifiedStatusToInterfaceTypeStatus.js\";\nimport { combineApiNamespaceIfMissing } from \"./namespace/combineApiNamespaceIfMissing.js\";\nimport { isExotic, isPropertyTypeType } from \"./properties/PropertyTypeType.js\";\nimport { type SharedPropertyType } from \"./properties/SharedPropertyType.js\";\n\nexport type SimplifiedInterfaceTypeStatus =\n | { type: \"deprecated\"; message: string; deadline: string }\n | { type: \"active\" }\n | { type: \"experimental\" };\n\ntype PropertyBase =\n | SharedPropertyType\n | InterfaceDefinedProperty;\ntype SptWithOptional = {\n required: boolean;\n sharedPropertyType: SharedPropertyType;\n};\n\nexport type InterfaceTypeDefinition = {\n apiName: string;\n displayName?: string;\n description?: string;\n icon?: { locator: BlueprintIcon; color: string };\n status?: SimplifiedInterfaceTypeStatus;\n properties?: Record<\n string,\n PropertyBase | SptWithOptional\n >;\n extends?: InterfaceType | InterfaceType[];\n searchable?: boolean;\n};\n\nexport function defineInterface(\n interfaceDef: InterfaceTypeDefinition,\n): InterfaceType {\n const apiName = namespace + interfaceDef.apiName;\n invariant(\n ontologyDefinition[OntologyEntityTypeEnum.INTERFACE_TYPE][apiName]\n === undefined,\n `Interface ${apiName} already exists`,\n );\n\n // legacy support for propertiesV2 (only SPTs)\n const spts: Record<string, SptWithOptional> = Object.fromEntries(\n Object.entries(interfaceDef.properties ?? {}).filter(([_name, prop]) => {\n return isInterfaceSharedPropertyType(prop) || \"apiName\" in prop;\n }).map(([s, spt]) => {\n const required = isInterfaceSharedPropertyType(spt) ? spt.required : true;\n return [s, {\n sharedPropertyType: (isInterfaceSharedPropertyType(spt)\n ? spt.sharedPropertyType\n : spt) as SharedPropertyType,\n required: required,\n }];\n }),\n );\n const propertiesV2 = Object.fromEntries(\n Object.entries(spts).map<\n [string, { required: boolean; sharedPropertyType: SharedPropertyType }]\n >(\n ([propName, type]) => {\n const sptApiName = combineApiNamespaceIfMissing(\n namespace,\n type.sharedPropertyType.apiName,\n );\n return [sptApiName, {\n required: type.required,\n sharedPropertyType: verifyBasePropertyDefinition(\n namespace,\n propName,\n type.sharedPropertyType,\n ),\n }];\n },\n ),\n );\n\n const propertiesV3 = Object.fromEntries(\n Object.entries(interfaceDef.properties ?? {}).map<\n [string, InterfacePropertyType]\n >(([apiName, prop]) => {\n const required =\n (typeof prop === \"object\" && isInterfaceSharedPropertyType(prop))\n ? prop.required\n : true;\n const propertyBase: PropertyBase =\n (typeof prop === \"object\" && isInterfaceSharedPropertyType(prop))\n ? prop.sharedPropertyType\n : prop;\n if (\n typeof propertyBase === \"object\"\n && \"nonNameSpacedApiName\" in propertyBase\n ) {\n // SPT\n return [apiName, {\n required: required,\n sharedPropertyType: propertyBase,\n }];\n } else {\n // IDP\n return [apiName, propertyBase];\n }\n }),\n );\n\n const extendsInterfaces = interfaceDef.extends\n ? (Array.isArray(interfaceDef.extends)\n ? interfaceDef.extends\n : [interfaceDef.extends])\n : [];\n\n const status: InterfaceTypeStatus = mapSimplifiedStatusToInterfaceTypeStatus(\n interfaceDef.status ?? { type: \"active\" },\n );\n\n invariant(\n status.type !== \"deprecated\"\n || (status.deprecated.message && status.deprecated.deadline),\n `Deprecated status must include message and deadline properties.`,\n );\n\n const fullInterface: InterfaceType = {\n apiName,\n displayMetadata: {\n displayName: interfaceDef.displayName ?? interfaceDef.apiName,\n description: interfaceDef.description ?? interfaceDef.displayName\n ?? interfaceDef.apiName,\n icon: interfaceDef.icon !== undefined\n ? {\n type: \"blueprint\",\n blueprint: {\n color: interfaceDef.icon.color,\n locator: interfaceDef.icon.locator,\n },\n }\n : undefined,\n },\n extendsInterfaces,\n links: [],\n status,\n propertiesV2: propertiesV2,\n propertiesV3: propertiesV3,\n searchable: interfaceDef.searchable ?? true,\n __type: OntologyEntityTypeEnum.INTERFACE_TYPE,\n };\n\n updateOntology(fullInterface);\n return fullInterface;\n}\n\nfunction verifyBasePropertyDefinition(\n namespace: string,\n apiName: string,\n type: SharedPropertyType,\n): SharedPropertyType {\n const unNamespacedTypeApiName = withoutNamespace(type.apiName);\n invariant(\n isPropertyTypeType(type.type) || isExotic(type.type),\n `Invalid data type ${\n JSON.stringify(type)\n } for property ${apiName} on InterfaceType ${apiName}`,\n );\n invariant(\n namespace + apiName === type.apiName\n || apiName === unNamespacedTypeApiName,\n `property key and it's apiName must be identical. ${\n JSON.stringify({ key: apiName, apiName: type.apiName })\n }`,\n );\n return type;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"defineInterface.js","names":["invariant","OntologyEntityTypeEnum","namespace","ontologyDefinition","updateOntology","withoutNamespace","isInterfaceSharedPropertyType","mapSimplifiedStatusToInterfaceTypeStatus","combineApiNamespaceIfMissing","isExotic","isPropertyTypeType","defineInterface","interfaceDef","apiName","INTERFACE_TYPE","undefined","process","env","NODE_ENV","spts","Object","fromEntries","entries","properties","filter","_name","prop","map","s","spt","required","sharedPropertyType","propertiesV2","propName","type","sptApiName","verifyBasePropertyDefinition","propertiesV3","propertyBase","extendsInterfaces","extends","Array","isArray","status","deprecated","message","deadline","fullInterface","displayMetadata","displayName","description","icon","blueprint","color","locator","links","searchable","__type","unNamespacedTypeApiName","JSON","stringify","key"],"sources":["defineInterface.ts"],"sourcesContent":["/*\n * Copyright 2024 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 { InterfaceTypeStatus } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport type { BlueprintIcon } from \"./common/BlueprintIcons.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport {\n namespace,\n ontologyDefinition,\n updateOntology,\n withoutNamespace,\n} from \"./defineOntology.js\";\nimport {\n type InterfaceDefinedProperty,\n type InterfacePropertyType,\n isInterfaceSharedPropertyType,\n} from \"./interface/InterfacePropertyType.js\";\nimport { type InterfaceType } from \"./interface/InterfaceType.js\";\nimport { mapSimplifiedStatusToInterfaceTypeStatus } from \"./interface/mapSimplifiedStatusToInterfaceTypeStatus.js\";\nimport { combineApiNamespaceIfMissing } from \"./namespace/combineApiNamespaceIfMissing.js\";\nimport { isExotic, isPropertyTypeType } from \"./properties/PropertyTypeType.js\";\nimport { type SharedPropertyType } from \"./properties/SharedPropertyType.js\";\n\nexport type SimplifiedInterfaceTypeStatus =\n | { type: \"deprecated\"; message: string; deadline: string }\n | { type: \"active\" }\n | { type: \"experimental\" }\n | { type: \"example\" };\n\ntype PropertyBase =\n | SharedPropertyType\n | InterfaceDefinedProperty;\ntype SptWithOptional = {\n required: boolean;\n sharedPropertyType: SharedPropertyType;\n};\n\nexport type InterfaceTypeDefinition = {\n apiName: string;\n displayName?: string;\n description?: string;\n icon?: { locator: BlueprintIcon; color: string };\n status?: SimplifiedInterfaceTypeStatus;\n properties?: Record<\n string,\n PropertyBase | SptWithOptional\n >;\n extends?: InterfaceType | InterfaceType[];\n searchable?: boolean;\n};\n\nexport function defineInterface(\n interfaceDef: InterfaceTypeDefinition,\n): InterfaceType {\n const apiName = namespace + interfaceDef.apiName;\n invariant(\n ontologyDefinition[OntologyEntityTypeEnum.INTERFACE_TYPE][apiName]\n === undefined,\n `Interface ${apiName} already exists`,\n );\n\n // legacy support for propertiesV2 (only SPTs)\n const spts: Record<string, SptWithOptional> = Object.fromEntries(\n Object.entries(interfaceDef.properties ?? {}).filter(([_name, prop]) => {\n return isInterfaceSharedPropertyType(prop) || \"apiName\" in prop;\n }).map(([s, spt]) => {\n const required = isInterfaceSharedPropertyType(spt) ? spt.required : true;\n return [s, {\n sharedPropertyType: (isInterfaceSharedPropertyType(spt)\n ? spt.sharedPropertyType\n : spt) as SharedPropertyType,\n required: required,\n }];\n }),\n );\n const propertiesV2 = Object.fromEntries(\n Object.entries(spts).map<\n [string, { required: boolean; sharedPropertyType: SharedPropertyType }]\n >(\n ([propName, type]) => {\n const sptApiName = combineApiNamespaceIfMissing(\n namespace,\n type.sharedPropertyType.apiName,\n );\n return [sptApiName, {\n required: type.required,\n sharedPropertyType: verifyBasePropertyDefinition(\n namespace,\n propName,\n type.sharedPropertyType,\n ),\n }];\n },\n ),\n );\n\n const propertiesV3 = Object.fromEntries(\n Object.entries(interfaceDef.properties ?? {}).map<\n [string, InterfacePropertyType]\n >(([apiName, prop]) => {\n const required =\n (typeof prop === \"object\" && isInterfaceSharedPropertyType(prop))\n ? prop.required\n : true;\n const propertyBase: PropertyBase =\n (typeof prop === \"object\" && isInterfaceSharedPropertyType(prop))\n ? prop.sharedPropertyType\n : prop;\n if (\n typeof propertyBase === \"object\"\n && \"nonNameSpacedApiName\" in propertyBase\n ) {\n // SPT\n return [apiName, {\n required: required,\n sharedPropertyType: propertyBase,\n }];\n } else {\n // IDP\n return [apiName, propertyBase];\n }\n }),\n );\n\n const extendsInterfaces = interfaceDef.extends\n ? (Array.isArray(interfaceDef.extends)\n ? interfaceDef.extends\n : [interfaceDef.extends])\n : [];\n\n const status: InterfaceTypeStatus = mapSimplifiedStatusToInterfaceTypeStatus(\n interfaceDef.status ?? { type: \"active\" },\n );\n\n invariant(\n status.type !== \"deprecated\"\n || (status.deprecated.message && status.deprecated.deadline),\n `Deprecated status must include message and deadline properties.`,\n );\n\n const fullInterface: InterfaceType = {\n apiName,\n displayMetadata: {\n displayName: interfaceDef.displayName ?? interfaceDef.apiName,\n description: interfaceDef.description ?? interfaceDef.displayName\n ?? interfaceDef.apiName,\n icon: interfaceDef.icon !== undefined\n ? {\n type: \"blueprint\",\n blueprint: {\n color: interfaceDef.icon.color,\n locator: interfaceDef.icon.locator,\n },\n }\n : undefined,\n },\n extendsInterfaces,\n links: [],\n status,\n propertiesV2: propertiesV2,\n propertiesV3: propertiesV3,\n searchable: interfaceDef.searchable ?? true,\n __type: OntologyEntityTypeEnum.INTERFACE_TYPE,\n };\n\n updateOntology(fullInterface);\n return fullInterface;\n}\n\nfunction verifyBasePropertyDefinition(\n namespace: string,\n apiName: string,\n type: SharedPropertyType,\n): SharedPropertyType {\n const unNamespacedTypeApiName = withoutNamespace(type.apiName);\n invariant(\n isPropertyTypeType(type.type) || isExotic(type.type),\n `Invalid data type ${\n JSON.stringify(type)\n } for property ${apiName} on InterfaceType ${apiName}`,\n );\n invariant(\n namespace + apiName === type.apiName\n || apiName === unNamespacedTypeApiName,\n `property key and it's apiName must be identical. ${\n JSON.stringify({ key: apiName, apiName: type.apiName })\n }`,\n );\n return type;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -208,6 +208,12 @@ export function convertObjectStatus(status) {
|
|
|
208
208
|
experimental: {}
|
|
209
209
|
};
|
|
210
210
|
}
|
|
211
|
+
if (status === "example") {
|
|
212
|
+
return {
|
|
213
|
+
type: "example",
|
|
214
|
+
example: {}
|
|
215
|
+
};
|
|
216
|
+
}
|
|
211
217
|
if (typeof status === "object" && status.type === "deprecated") {
|
|
212
218
|
return {
|
|
213
219
|
type: "deprecated",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineOntology.js","names":["fs","path","convertActionParameters","convertActionSections","convertActionValidation","convertOntologyDefinition","convertOntologyToValueTypeIr","getFormContentOrdering","createCodeSnippets","OntologyEntityTypeEnum","ontologyDefinition","importedTypes","dependencies","namespace","updateOntology","entity","__type","VALUE_TYPE","apiName","undefined","push","defineOntology","ns","body","outputDir","dependencyFile","codeSnippetFiles","snippetPackageName","snippetFileOutputDir","randomnessKey","OBJECT_TYPE","ACTION_TYPE","LINK_TYPE","INTERFACE_TYPE","SHARED_PROPERTY_TYPE","e","console","error","writeStaticObjects","writeDependencyFile","codegenDir","resolve","typeDirs","existsSync","mkdirSync","recursive","Object","values","forEach","typeDirNameFromMap","currentTypeDirPath","join","rmSync","force","topLevelExportStatements","entries","ontologyTypeEnumKey","entities","typeDirName","typeDirPath","entityModuleNames","entityFileNameBase","camel","withoutNamespace","filePath","entityTypeName","getEntityTypeName","entityJSON","JSON","stringify","replace","_","prefix","value","content","slice","writeFileSync","flag","entityModuleName","length","mainIndexContent","dependencyInjectionString","mainIndexFilePath","buildDatasource","definition","classificationMarkingGroupName","mandatoryMarkingGroupName","needsSecurity","securityConfig","classificationConstraint","markingGroupName","markingConstraint","datasourceName","datasource","editsConfiguration","onlyAllowPrivilegedEdits","redacted","dataSecurity","cleanAndValidateLinkTypeId","step1","linkTypeId","toLowerCase","test","Error","dumpOntologyFullMetadata","dumpValueTypeWireType","convertObjectStatus","status","type","active","experimental","deprecated","message","deadline","replacedBy","convertAction","action","actionValidation","actionParameters","actionSections","parameterOrdering","parameters","map","p","id","actionType","actionTypeLogic","logic","rules","validation","metadata","displayMetadata","configuration","defaultLayout","defaultFormat","displayAndFormat","table","columnWidthByParameterRid","enableFileImport","fitHorizontally","frozenColumnCount","rowHeightInLines","enableLayoutUserSwitch","enableLayoutSwitch","description","displayName","icon","blueprint","locator","color","successMessage","submissionMetadata","typeClasses","submitButtonDisplayMetadata","undoButtonConfiguration","formContentOrdering","sections","extractAllowedValues","allowedValues","oneOf","labelledValues","otherValueAllowed","allowed","min","max","range","minimum","inclusive","maximum","minLength","maxLength","regex","text","failureMessage","datetime","objectTypeReference","interfaceTypeRids","interfaceTypes","geotimeSeriesReference","geotimeSeries","user","filter","fromGroups","group","groupFilter","groupId","staticValue","string","name","parameterId","parameter","multipassGroup","k","renderHintFromBaseType","checkbox","numericInput","userDropdown","textInput","dateTimePicker","filePicker","mandatoryMarkingPicker","cbacMarkingPicker","dropdown","extractNamespace","substring","lastIndexOf","lastDot","str","result","c","toUpperCase","charAt","namespaceNoDot","endsWith","addNamespaceIfNone","includes"],"sources":["defineOntology.ts"],"sourcesContent":["/*\n * Copyright 2024 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 {\n ActionTypeStatus,\n OntologyIr,\n OntologyIrActionTypeBlockDataV2,\n OntologyIrAllowedParameterValues,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrParameter,\n OntologyIrSection,\n OntologyIrValueTypeBlockData,\n ParameterId,\n ParameterRenderHint,\n SectionId,\n} from \"@osdk/client.unstable\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { convertActionParameters } from \"../conversion/toMarketplace/convertActionParameters.js\";\nimport { convertActionSections } from \"../conversion/toMarketplace/convertActionSections.js\";\nimport { convertActionValidation } from \"../conversion/toMarketplace/convertActionValidation.js\";\nimport { convertOntologyDefinition } from \"../conversion/toMarketplace/convertOntologyDefinition.js\";\nimport { convertOntologyToValueTypeIr } from \"../conversion/toMarketplace/convertOntologyToValueTypeIr.js\";\nimport { getFormContentOrdering } from \"../conversion/toMarketplace/getFormContentOrdering.js\";\nimport type {\n ActionParameter,\n ActionParameterValidation,\n} from \"./action/ActionParameter.js\";\nimport type { ActionParameterAllowedValues } from \"./action/ActionParameterAllowedValues.js\";\nimport type { ActionType } from \"./action/ActionType.js\";\nimport { createCodeSnippets } from \"./code-snippets/createCodeSnippets.js\";\nimport type { OntologyDefinition } from \"./common/OntologyDefinition.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport type { OntologyEntityType } from \"./common/OntologyEntityTypeMapping.js\";\n\n// type -> apiName -> entity\n/** @internal */\nexport let ontologyDefinition: OntologyDefinition;\n\n// type -> apiName -> entity\n/** @internal */\nexport let importedTypes: OntologyDefinition;\n\n// namespace -> version\n/** @internal */\nexport let dependencies: Record<string, string>;\n\n/** @internal */\nexport let namespace: string;\n\nexport function updateOntology<\n T extends OntologyEntityType,\n>(\n entity: T,\n): void {\n if (entity.__type !== OntologyEntityTypeEnum.VALUE_TYPE) {\n ontologyDefinition[entity.__type][entity.apiName] = entity;\n return;\n }\n // value types are a special case\n if (\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n === undefined\n ) {\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName] = [];\n }\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n .push(entity);\n}\n\nexport async function defineOntology(\n ns: string,\n body: () => void | Promise<void>,\n outputDir: string | undefined,\n dependencyFile?: string,\n codeSnippetFiles?: boolean,\n snippetPackageName?: string,\n snippetFileOutputDir?: string,\n randomnessKey?: string,\n): Promise<OntologyIr> {\n namespace = ns;\n dependencies = {};\n ontologyDefinition = {\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n SHARED_PROPERTY_TYPE: {},\n VALUE_TYPE: {},\n };\n importedTypes = {\n SHARED_PROPERTY_TYPE: {},\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n VALUE_TYPE: {},\n };\n try {\n await body();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\n \"Unexpected error while processing the body of the ontology\",\n e,\n );\n throw e;\n }\n if (outputDir) {\n writeStaticObjects(outputDir);\n }\n if (dependencyFile) {\n writeDependencyFile(dependencyFile);\n }\n if (codeSnippetFiles) {\n createCodeSnippets(\n ontologyDefinition,\n snippetPackageName,\n snippetFileOutputDir,\n );\n }\n\n return convertOntologyDefinition(ontologyDefinition, randomnessKey);\n}\n\nexport function writeStaticObjects(outputDir: string): void {\n const codegenDir = path.resolve(outputDir, \"codegen\");\n const typeDirs = {\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"shared-property-types\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"action-types\",\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"object-types\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"link-types\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"interface-types\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"value-types\",\n };\n\n if (!fs.existsSync(codegenDir)) {\n fs.mkdirSync(codegenDir, { recursive: true });\n }\n\n Object.values(typeDirs).forEach(typeDirNameFromMap => {\n const currentTypeDirPath = path.join(codegenDir, typeDirNameFromMap);\n if (fs.existsSync(currentTypeDirPath)) {\n fs.rmSync(currentTypeDirPath, { recursive: true, force: true });\n }\n fs.mkdirSync(currentTypeDirPath, { recursive: true });\n });\n\n const topLevelExportStatements: string[] = [];\n\n Object.entries(ontologyDefinition).forEach(\n ([ontologyTypeEnumKey, entities]) => {\n const typeDirName =\n typeDirs[ontologyTypeEnumKey as OntologyEntityTypeEnum];\n\n const typeDirPath = path.join(codegenDir, typeDirName);\n const entityModuleNames: string[] = [];\n\n Object.entries(entities).forEach(\n ([apiName, entity]: [string, OntologyEntityType]) => {\n const entityFileNameBase = camel(withoutNamespace(apiName))\n + (ontologyTypeEnumKey as OntologyEntityTypeEnum\n === OntologyEntityTypeEnum.VALUE_TYPE\n ? \"ValueType\"\n : \"\");\n const filePath = path.join(typeDirPath, `${entityFileNameBase}.ts`);\n const entityTypeName = getEntityTypeName(ontologyTypeEnumKey);\n const entityJSON = JSON.stringify(entity, null, 2).replace(\n /(\"__type\"\\s*:\\s*)\"([^\"]*)\"/g,\n (_, prefix, value) => `${prefix}OntologyEntityTypeEnum.${value}`,\n );\n const content = `\nimport { wrapWithProxy, OntologyEntityTypeEnum } from '@osdk/maker';\nimport type { ${entityTypeName} } from '@osdk/maker';\n\n/** @type {import('@osdk/maker').${entityTypeName}} */\nconst ${entityFileNameBase}_base: ${entityTypeName} = ${\n ontologyTypeEnumKey === \"VALUE_TYPE\"\n ? entityJSON.slice(1, -2)\n : entityJSON\n } as unknown as ${entityTypeName};\n \nexport const ${entityFileNameBase}: ${entityTypeName} = wrapWithProxy(${entityFileNameBase}_base);\n `;\n fs.writeFileSync(filePath, content, { flag: \"w\" });\n entityModuleNames.push(entityFileNameBase);\n },\n );\n\n for (const entityModuleName of entityModuleNames) {\n topLevelExportStatements.push(\n `export { ${entityModuleName} } from \"./codegen/${typeDirName}/${entityModuleName}.js\";`,\n );\n }\n },\n );\n\n if (topLevelExportStatements.length > 0) {\n const mainIndexContent = dependencyInjectionString()\n + topLevelExportStatements.join(\"\\n\") + \"\\n\";\n const mainIndexFilePath = path.join(outputDir, \"index.ts\");\n fs.writeFileSync(mainIndexFilePath, mainIndexContent, { flag: \"w\" });\n }\n}\n\nexport function buildDatasource(\n apiName: string,\n definition: OntologyIrObjectTypeDatasourceDefinition,\n classificationMarkingGroupName?: string,\n mandatoryMarkingGroupName?: string,\n): OntologyIrObjectTypeDatasource {\n const needsSecurity = classificationMarkingGroupName !== undefined\n || mandatoryMarkingGroupName !== undefined;\n\n const securityConfig = needsSecurity\n ? {\n classificationConstraint: classificationMarkingGroupName\n ? {\n markingGroupName: classificationMarkingGroupName,\n }\n : undefined,\n markingConstraint: mandatoryMarkingGroupName\n ? {\n markingGroupName: mandatoryMarkingGroupName,\n }\n : undefined,\n }\n : undefined;\n return ({\n datasourceName: apiName,\n datasource: definition,\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: false,\n ...((securityConfig !== undefined) && { dataSecurity: securityConfig }),\n });\n}\n\nexport function cleanAndValidateLinkTypeId(apiName: string): string {\n // Insert a dash before any uppercase letter that follows a lowercase letter or digit\n const step1 = apiName.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\");\n // Insert a dash after a sequence of uppercase letters when followed by a lowercase letter\n // then convert the whole string to lowercase\n // e.g., apiName, APIname, and apiNAME will all be converted to api-name\n const linkTypeId = step1.replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .toLowerCase();\n\n const VALIDATION_PATTERN = /^([a-z][a-z0-9\\-]*)$/;\n if (!VALIDATION_PATTERN.test(linkTypeId)) {\n throw new Error(\n `LinkType id '${linkTypeId}' must be lower case with dashes.`,\n );\n }\n return linkTypeId;\n}\n\nexport function dumpOntologyFullMetadata(): OntologyIr {\n return convertOntologyDefinition(ontologyDefinition);\n}\n\nexport function dumpValueTypeWireType(): OntologyIrValueTypeBlockData {\n return convertOntologyToValueTypeIr(ontologyDefinition);\n}\n\nexport function convertObjectStatus(status: any): any {\n if (status === undefined) {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"active\") {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"experimental\") {\n return {\n type: \"experimental\",\n experimental: {},\n };\n }\n\n if (typeof status === \"object\" && status.type === \"deprecated\") {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined,\n },\n };\n }\n\n return status;\n}\n\nexport function convertAction(\n action: ActionType,\n): OntologyIrActionTypeBlockDataV2 {\n const actionValidation = convertActionValidation(action);\n const actionParameters: Record<ParameterId, OntologyIrParameter> =\n convertActionParameters(action);\n const actionSections: Record<SectionId, OntologyIrSection> =\n convertActionSections(action);\n const parameterOrdering = action.parameterOrdering\n ?? (action.parameters ?? []).map(p => p.id);\n return {\n actionType: {\n actionTypeLogic: {\n logic: {\n rules: action.rules,\n },\n validation: actionValidation,\n },\n metadata: {\n apiName: action.apiName,\n displayMetadata: {\n configuration: {\n defaultLayout: action.defaultFormat ?? \"FORM\",\n displayAndFormat: action.displayAndFormat ?? {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1,\n },\n },\n enableLayoutUserSwitch: action.enableLayoutSwitch ?? false,\n },\n description: action.description ?? \"\",\n displayName: action.displayName,\n icon: {\n type: \"blueprint\",\n blueprint: action.icon ?? { locator: \"edit\", color: \"#000000\" },\n },\n successMessage: action.submissionMetadata?.successMessage\n ? [{\n type: \"message\",\n message: action.submissionMetadata.successMessage,\n }]\n : [],\n typeClasses: action.typeClasses ?? [],\n ...(action.submissionMetadata?.submitButtonDisplayMetadata\n && {\n submitButtonDisplayMetadata:\n action.submissionMetadata.submitButtonDisplayMetadata,\n }),\n ...(action.submissionMetadata?.undoButtonConfiguration\n && {\n undoButtonConfiguration:\n action.submissionMetadata.undoButtonConfiguration,\n }),\n },\n parameterOrdering: parameterOrdering,\n formContentOrdering: getFormContentOrdering(action, parameterOrdering),\n parameters: actionParameters,\n sections: actionSections,\n status: typeof action.status === \"string\"\n ? {\n type: action.status,\n [action.status]: {},\n } as unknown as ActionTypeStatus\n : action.status,\n entities: action.entities,\n },\n },\n };\n}\n\nexport function extractAllowedValues(\n allowedValues: ActionParameterAllowedValues,\n): OntologyIrAllowedParameterValues {\n switch (allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: allowedValues.oneOf,\n otherValueAllowed: {\n allowed: allowedValues.otherValueAllowed\n ?? false,\n },\n },\n },\n };\n case \"range\":\n const { min, max } = allowedValues;\n return {\n type: \"range\",\n range: {\n type: \"range\",\n range: {\n ...(min === undefined\n ? {}\n : { minimum: { inclusive: true, value: min } }),\n ...(max === undefined\n ? {}\n : { maximum: { inclusive: true, value: max } }),\n },\n },\n };\n case \"text\":\n const { minLength, maxLength, regex } = allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined\n ? {}\n : { minLength: minLength }),\n ...(maxLength === undefined\n ? {}\n : { maxLength: maxLength }),\n ...(regex === undefined\n ? {}\n : { regex: { regex: regex, failureMessage: \"Invalid input\" } }),\n },\n },\n };\n case \"datetime\":\n const { minimum, maximum } = allowedValues;\n return {\n type: \"datetime\",\n datetime: {\n type: \"datetime\",\n datetime: {\n minimum,\n maximum,\n },\n },\n };\n case \"objectTypeReference\":\n return {\n type: \"objectTypeReference\",\n objectTypeReference: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: allowedValues.interfaceTypes,\n },\n },\n };\n case \"redacted\":\n return {\n type: \"redacted\",\n redacted: {},\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {\n type: \"geotimeSeries\",\n geotimeSeries: {},\n },\n };\n case \"user\":\n return {\n type: \"user\",\n user: {\n type: \"user\",\n user: {\n filter: (allowedValues.fromGroups ?? []).map(group => {\n return {\n type: \"groupFilter\",\n groupFilter: {\n groupId: group.type === \"static\"\n ? {\n type: \"staticValue\",\n staticValue: {\n type: \"string\",\n string: group.name,\n },\n }\n : {\n type: \"parameterId\",\n parameterId: group.parameter,\n },\n },\n };\n }),\n },\n },\n };\n case \"multipassGroup\":\n return {\n type: \"multipassGroup\",\n multipassGroup: {\n type: \"group\",\n group: {},\n },\n };\n default:\n const k: Partial<OntologyIrAllowedParameterValues[\"type\"]> =\n allowedValues.type;\n return {\n type: k,\n [k]: {\n type: k,\n [k]: {},\n },\n } as unknown as OntologyIrAllowedParameterValues;\n // TODO(dpaquin): there's probably a TS clean way to do this\n }\n}\n\nexport function renderHintFromBaseType(\n parameter: ActionParameter,\n validation?: ActionParameterValidation,\n): ParameterRenderHint {\n // TODO(dpaquin): these are just guesses, we should find where they're actually defined\n const type = typeof parameter.type === \"string\"\n ? parameter.type\n : parameter.type.type;\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"checkbox\", checkbox: {} };\n case \"integer\":\n case \"integerList\":\n case \"long\":\n case \"longList\":\n case \"double\":\n case \"doubleList\":\n case \"decimal\":\n case \"decimalList\":\n return { type: \"numericInput\", numericInput: {} };\n case \"string\":\n if (\n validation?.allowedValues?.type === \"user\"\n || validation?.allowedValues?.type === \"multipassGroup\"\n ) {\n return { type: \"userDropdown\", userDropdown: {} };\n }\n case \"stringList\":\n case \"geohash\":\n case \"geohashList\":\n case \"geoshape\":\n case \"geoshapeList\":\n case \"objectSetRid\":\n return { type: \"textInput\", textInput: {} };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"dateTimePicker\", dateTimePicker: {} };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"filePicker\", filePicker: {} };\n case \"marking\":\n case \"markingList\":\n if (parameter.validation.allowedValues?.type === \"mandatoryMarking\") {\n return { type: \"mandatoryMarkingPicker\", mandatoryMarkingPicker: {} };\n } else if (parameter.validation.allowedValues?.type === \"cbacMarking\") {\n return { type: \"cbacMarkingPicker\", cbacMarkingPicker: {} };\n } else {\n throw new Error(\n `The allowed values for \"${parameter.displayName}\" are not compatible with the base parameter type`,\n );\n }\n case \"timeSeriesReference\":\n case \"objectReference\":\n case \"objectReferenceList\":\n case \"interfaceReference\":\n case \"interfaceReferenceList\":\n case \"objectTypeReference\":\n case \"mediaReference\":\n case \"mediaReferenceList\":\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"dropdown\", dropdown: {} };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type ${type}`);\n }\n}\n\nexport function extractNamespace(apiName: string): string {\n return apiName.substring(0, apiName.lastIndexOf(\".\") + 1);\n}\n\nexport function withoutNamespace(apiName: string): string {\n const lastDot = apiName.lastIndexOf(\".\");\n if (lastDot === -1) {\n return apiName;\n }\n return apiName.substring(lastDot + 1);\n}\n\nfunction camel(str: string): string {\n if (!str) {\n return str;\n }\n let result = str.replace(/[-_]+(.)?/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n result = result.charAt(0).toLowerCase() + result.slice(1);\n return result;\n}\n\n/**\n * Gets the TypeScript type name corresponding to an OntologyEntityTypeEnum value\n */\nfunction getEntityTypeName(type: string): string {\n return {\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"ObjectType\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"LinkType\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"InterfaceType\",\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"SharedPropertyType\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"ActionType\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"ValueTypeDefinitionVersion\",\n }[type]!;\n}\n\nfunction writeDependencyFile(dependencyFile: string): void {\n fs.writeFileSync(dependencyFile, JSON.stringify(dependencies, null, 2));\n}\n\nfunction dependencyInjectionString(): string {\n const namespaceNoDot: string = namespace.endsWith(\".\")\n ? namespace.slice(0, -1)\n : namespace;\n\n return `import { addDependency } from \"@osdk/maker\";\n// @ts-ignore\naddDependency(\"${namespaceNoDot}\", new URL(import.meta.url).pathname);\n`;\n}\n\nexport function addNamespaceIfNone(apiName: string): string {\n return apiName.includes(\".\") ? apiName : namespace + apiName;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"defineOntology.js","names":["fs","path","convertActionParameters","convertActionSections","convertActionValidation","convertOntologyDefinition","convertOntologyToValueTypeIr","getFormContentOrdering","createCodeSnippets","OntologyEntityTypeEnum","ontologyDefinition","importedTypes","dependencies","namespace","updateOntology","entity","__type","VALUE_TYPE","apiName","undefined","push","defineOntology","ns","body","outputDir","dependencyFile","codeSnippetFiles","snippetPackageName","snippetFileOutputDir","randomnessKey","OBJECT_TYPE","ACTION_TYPE","LINK_TYPE","INTERFACE_TYPE","SHARED_PROPERTY_TYPE","e","console","error","writeStaticObjects","writeDependencyFile","codegenDir","resolve","typeDirs","existsSync","mkdirSync","recursive","Object","values","forEach","typeDirNameFromMap","currentTypeDirPath","join","rmSync","force","topLevelExportStatements","entries","ontologyTypeEnumKey","entities","typeDirName","typeDirPath","entityModuleNames","entityFileNameBase","camel","withoutNamespace","filePath","entityTypeName","getEntityTypeName","entityJSON","JSON","stringify","replace","_","prefix","value","content","slice","writeFileSync","flag","entityModuleName","length","mainIndexContent","dependencyInjectionString","mainIndexFilePath","buildDatasource","definition","classificationMarkingGroupName","mandatoryMarkingGroupName","needsSecurity","securityConfig","classificationConstraint","markingGroupName","markingConstraint","datasourceName","datasource","editsConfiguration","onlyAllowPrivilegedEdits","redacted","dataSecurity","cleanAndValidateLinkTypeId","step1","linkTypeId","toLowerCase","test","Error","dumpOntologyFullMetadata","dumpValueTypeWireType","convertObjectStatus","status","type","active","experimental","example","deprecated","message","deadline","replacedBy","convertAction","action","actionValidation","actionParameters","actionSections","parameterOrdering","parameters","map","p","id","actionType","actionTypeLogic","logic","rules","validation","metadata","displayMetadata","configuration","defaultLayout","defaultFormat","displayAndFormat","table","columnWidthByParameterRid","enableFileImport","fitHorizontally","frozenColumnCount","rowHeightInLines","enableLayoutUserSwitch","enableLayoutSwitch","description","displayName","icon","blueprint","locator","color","successMessage","submissionMetadata","typeClasses","submitButtonDisplayMetadata","undoButtonConfiguration","formContentOrdering","sections","extractAllowedValues","allowedValues","oneOf","labelledValues","otherValueAllowed","allowed","min","max","range","minimum","inclusive","maximum","minLength","maxLength","regex","text","failureMessage","datetime","objectTypeReference","interfaceTypeRids","interfaceTypes","geotimeSeriesReference","geotimeSeries","user","filter","fromGroups","group","groupFilter","groupId","staticValue","string","name","parameterId","parameter","multipassGroup","k","renderHintFromBaseType","checkbox","numericInput","userDropdown","textInput","dateTimePicker","filePicker","mandatoryMarkingPicker","cbacMarkingPicker","dropdown","extractNamespace","substring","lastIndexOf","lastDot","str","result","c","toUpperCase","charAt","namespaceNoDot","endsWith","addNamespaceIfNone","includes"],"sources":["defineOntology.ts"],"sourcesContent":["/*\n * Copyright 2024 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 {\n ActionTypeStatus,\n OntologyIr,\n OntologyIrActionTypeBlockDataV2,\n OntologyIrAllowedParameterValues,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrParameter,\n OntologyIrSection,\n OntologyIrValueTypeBlockData,\n ParameterId,\n ParameterRenderHint,\n SectionId,\n} from \"@osdk/client.unstable\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { convertActionParameters } from \"../conversion/toMarketplace/convertActionParameters.js\";\nimport { convertActionSections } from \"../conversion/toMarketplace/convertActionSections.js\";\nimport { convertActionValidation } from \"../conversion/toMarketplace/convertActionValidation.js\";\nimport { convertOntologyDefinition } from \"../conversion/toMarketplace/convertOntologyDefinition.js\";\nimport { convertOntologyToValueTypeIr } from \"../conversion/toMarketplace/convertOntologyToValueTypeIr.js\";\nimport { getFormContentOrdering } from \"../conversion/toMarketplace/getFormContentOrdering.js\";\nimport type {\n ActionParameter,\n ActionParameterValidation,\n} from \"./action/ActionParameter.js\";\nimport type { ActionParameterAllowedValues } from \"./action/ActionParameterAllowedValues.js\";\nimport type { ActionType } from \"./action/ActionType.js\";\nimport { createCodeSnippets } from \"./code-snippets/createCodeSnippets.js\";\nimport type { OntologyDefinition } from \"./common/OntologyDefinition.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport type { OntologyEntityType } from \"./common/OntologyEntityTypeMapping.js\";\n\n// type -> apiName -> entity\n/** @internal */\nexport let ontologyDefinition: OntologyDefinition;\n\n// type -> apiName -> entity\n/** @internal */\nexport let importedTypes: OntologyDefinition;\n\n// namespace -> version\n/** @internal */\nexport let dependencies: Record<string, string>;\n\n/** @internal */\nexport let namespace: string;\n\nexport function updateOntology<\n T extends OntologyEntityType,\n>(\n entity: T,\n): void {\n if (entity.__type !== OntologyEntityTypeEnum.VALUE_TYPE) {\n ontologyDefinition[entity.__type][entity.apiName] = entity;\n return;\n }\n // value types are a special case\n if (\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n === undefined\n ) {\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName] = [];\n }\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n .push(entity);\n}\n\nexport async function defineOntology(\n ns: string,\n body: () => void | Promise<void>,\n outputDir: string | undefined,\n dependencyFile?: string,\n codeSnippetFiles?: boolean,\n snippetPackageName?: string,\n snippetFileOutputDir?: string,\n randomnessKey?: string,\n): Promise<OntologyIr> {\n namespace = ns;\n dependencies = {};\n ontologyDefinition = {\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n SHARED_PROPERTY_TYPE: {},\n VALUE_TYPE: {},\n };\n importedTypes = {\n SHARED_PROPERTY_TYPE: {},\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n VALUE_TYPE: {},\n };\n try {\n await body();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\n \"Unexpected error while processing the body of the ontology\",\n e,\n );\n throw e;\n }\n if (outputDir) {\n writeStaticObjects(outputDir);\n }\n if (dependencyFile) {\n writeDependencyFile(dependencyFile);\n }\n if (codeSnippetFiles) {\n createCodeSnippets(\n ontologyDefinition,\n snippetPackageName,\n snippetFileOutputDir,\n );\n }\n\n return convertOntologyDefinition(ontologyDefinition, randomnessKey);\n}\n\nexport function writeStaticObjects(outputDir: string): void {\n const codegenDir = path.resolve(outputDir, \"codegen\");\n const typeDirs = {\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"shared-property-types\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"action-types\",\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"object-types\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"link-types\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"interface-types\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"value-types\",\n };\n\n if (!fs.existsSync(codegenDir)) {\n fs.mkdirSync(codegenDir, { recursive: true });\n }\n\n Object.values(typeDirs).forEach(typeDirNameFromMap => {\n const currentTypeDirPath = path.join(codegenDir, typeDirNameFromMap);\n if (fs.existsSync(currentTypeDirPath)) {\n fs.rmSync(currentTypeDirPath, { recursive: true, force: true });\n }\n fs.mkdirSync(currentTypeDirPath, { recursive: true });\n });\n\n const topLevelExportStatements: string[] = [];\n\n Object.entries(ontologyDefinition).forEach(\n ([ontologyTypeEnumKey, entities]) => {\n const typeDirName =\n typeDirs[ontologyTypeEnumKey as OntologyEntityTypeEnum];\n\n const typeDirPath = path.join(codegenDir, typeDirName);\n const entityModuleNames: string[] = [];\n\n Object.entries(entities).forEach(\n ([apiName, entity]: [string, OntologyEntityType]) => {\n const entityFileNameBase = camel(withoutNamespace(apiName))\n + (ontologyTypeEnumKey as OntologyEntityTypeEnum\n === OntologyEntityTypeEnum.VALUE_TYPE\n ? \"ValueType\"\n : \"\");\n const filePath = path.join(typeDirPath, `${entityFileNameBase}.ts`);\n const entityTypeName = getEntityTypeName(ontologyTypeEnumKey);\n const entityJSON = JSON.stringify(entity, null, 2).replace(\n /(\"__type\"\\s*:\\s*)\"([^\"]*)\"/g,\n (_, prefix, value) => `${prefix}OntologyEntityTypeEnum.${value}`,\n );\n const content = `\nimport { wrapWithProxy, OntologyEntityTypeEnum } from '@osdk/maker';\nimport type { ${entityTypeName} } from '@osdk/maker';\n\n/** @type {import('@osdk/maker').${entityTypeName}} */\nconst ${entityFileNameBase}_base: ${entityTypeName} = ${\n ontologyTypeEnumKey === \"VALUE_TYPE\"\n ? entityJSON.slice(1, -2)\n : entityJSON\n } as unknown as ${entityTypeName};\n \nexport const ${entityFileNameBase}: ${entityTypeName} = wrapWithProxy(${entityFileNameBase}_base);\n `;\n fs.writeFileSync(filePath, content, { flag: \"w\" });\n entityModuleNames.push(entityFileNameBase);\n },\n );\n\n for (const entityModuleName of entityModuleNames) {\n topLevelExportStatements.push(\n `export { ${entityModuleName} } from \"./codegen/${typeDirName}/${entityModuleName}.js\";`,\n );\n }\n },\n );\n\n if (topLevelExportStatements.length > 0) {\n const mainIndexContent = dependencyInjectionString()\n + topLevelExportStatements.join(\"\\n\") + \"\\n\";\n const mainIndexFilePath = path.join(outputDir, \"index.ts\");\n fs.writeFileSync(mainIndexFilePath, mainIndexContent, { flag: \"w\" });\n }\n}\n\nexport function buildDatasource(\n apiName: string,\n definition: OntologyIrObjectTypeDatasourceDefinition,\n classificationMarkingGroupName?: string,\n mandatoryMarkingGroupName?: string,\n): OntologyIrObjectTypeDatasource {\n const needsSecurity = classificationMarkingGroupName !== undefined\n || mandatoryMarkingGroupName !== undefined;\n\n const securityConfig = needsSecurity\n ? {\n classificationConstraint: classificationMarkingGroupName\n ? {\n markingGroupName: classificationMarkingGroupName,\n }\n : undefined,\n markingConstraint: mandatoryMarkingGroupName\n ? {\n markingGroupName: mandatoryMarkingGroupName,\n }\n : undefined,\n }\n : undefined;\n return ({\n datasourceName: apiName,\n datasource: definition,\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: false,\n ...((securityConfig !== undefined) && { dataSecurity: securityConfig }),\n });\n}\n\nexport function cleanAndValidateLinkTypeId(apiName: string): string {\n // Insert a dash before any uppercase letter that follows a lowercase letter or digit\n const step1 = apiName.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\");\n // Insert a dash after a sequence of uppercase letters when followed by a lowercase letter\n // then convert the whole string to lowercase\n // e.g., apiName, APIname, and apiNAME will all be converted to api-name\n const linkTypeId = step1.replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .toLowerCase();\n\n const VALIDATION_PATTERN = /^([a-z][a-z0-9\\-]*)$/;\n if (!VALIDATION_PATTERN.test(linkTypeId)) {\n throw new Error(\n `LinkType id '${linkTypeId}' must be lower case with dashes.`,\n );\n }\n return linkTypeId;\n}\n\nexport function dumpOntologyFullMetadata(): OntologyIr {\n return convertOntologyDefinition(ontologyDefinition);\n}\n\nexport function dumpValueTypeWireType(): OntologyIrValueTypeBlockData {\n return convertOntologyToValueTypeIr(ontologyDefinition);\n}\n\nexport function convertObjectStatus(status: any): any {\n if (status === undefined) {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"active\") {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"experimental\") {\n return {\n type: \"experimental\",\n experimental: {},\n };\n }\n\n if (status === \"example\") {\n return {\n type: \"example\",\n example: {},\n };\n }\n\n if (typeof status === \"object\" && status.type === \"deprecated\") {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined,\n },\n };\n }\n\n return status;\n}\n\nexport function convertAction(\n action: ActionType,\n): OntologyIrActionTypeBlockDataV2 {\n const actionValidation = convertActionValidation(action);\n const actionParameters: Record<ParameterId, OntologyIrParameter> =\n convertActionParameters(action);\n const actionSections: Record<SectionId, OntologyIrSection> =\n convertActionSections(action);\n const parameterOrdering = action.parameterOrdering\n ?? (action.parameters ?? []).map(p => p.id);\n return {\n actionType: {\n actionTypeLogic: {\n logic: {\n rules: action.rules,\n },\n validation: actionValidation,\n },\n metadata: {\n apiName: action.apiName,\n displayMetadata: {\n configuration: {\n defaultLayout: action.defaultFormat ?? \"FORM\",\n displayAndFormat: action.displayAndFormat ?? {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1,\n },\n },\n enableLayoutUserSwitch: action.enableLayoutSwitch ?? false,\n },\n description: action.description ?? \"\",\n displayName: action.displayName,\n icon: {\n type: \"blueprint\",\n blueprint: action.icon ?? { locator: \"edit\", color: \"#000000\" },\n },\n successMessage: action.submissionMetadata?.successMessage\n ? [{\n type: \"message\",\n message: action.submissionMetadata.successMessage,\n }]\n : [],\n typeClasses: action.typeClasses ?? [],\n ...(action.submissionMetadata?.submitButtonDisplayMetadata\n && {\n submitButtonDisplayMetadata:\n action.submissionMetadata.submitButtonDisplayMetadata,\n }),\n ...(action.submissionMetadata?.undoButtonConfiguration\n && {\n undoButtonConfiguration:\n action.submissionMetadata.undoButtonConfiguration,\n }),\n },\n parameterOrdering: parameterOrdering,\n formContentOrdering: getFormContentOrdering(action, parameterOrdering),\n parameters: actionParameters,\n sections: actionSections,\n status: typeof action.status === \"string\"\n ? {\n type: action.status,\n [action.status]: {},\n } as unknown as ActionTypeStatus\n : action.status,\n entities: action.entities,\n },\n },\n };\n}\n\nexport function extractAllowedValues(\n allowedValues: ActionParameterAllowedValues,\n): OntologyIrAllowedParameterValues {\n switch (allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: allowedValues.oneOf,\n otherValueAllowed: {\n allowed: allowedValues.otherValueAllowed\n ?? false,\n },\n },\n },\n };\n case \"range\":\n const { min, max } = allowedValues;\n return {\n type: \"range\",\n range: {\n type: \"range\",\n range: {\n ...(min === undefined\n ? {}\n : { minimum: { inclusive: true, value: min } }),\n ...(max === undefined\n ? {}\n : { maximum: { inclusive: true, value: max } }),\n },\n },\n };\n case \"text\":\n const { minLength, maxLength, regex } = allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined\n ? {}\n : { minLength: minLength }),\n ...(maxLength === undefined\n ? {}\n : { maxLength: maxLength }),\n ...(regex === undefined\n ? {}\n : { regex: { regex: regex, failureMessage: \"Invalid input\" } }),\n },\n },\n };\n case \"datetime\":\n const { minimum, maximum } = allowedValues;\n return {\n type: \"datetime\",\n datetime: {\n type: \"datetime\",\n datetime: {\n minimum,\n maximum,\n },\n },\n };\n case \"objectTypeReference\":\n return {\n type: \"objectTypeReference\",\n objectTypeReference: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: allowedValues.interfaceTypes,\n },\n },\n };\n case \"redacted\":\n return {\n type: \"redacted\",\n redacted: {},\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {\n type: \"geotimeSeries\",\n geotimeSeries: {},\n },\n };\n case \"user\":\n return {\n type: \"user\",\n user: {\n type: \"user\",\n user: {\n filter: (allowedValues.fromGroups ?? []).map(group => {\n return {\n type: \"groupFilter\",\n groupFilter: {\n groupId: group.type === \"static\"\n ? {\n type: \"staticValue\",\n staticValue: {\n type: \"string\",\n string: group.name,\n },\n }\n : {\n type: \"parameterId\",\n parameterId: group.parameter,\n },\n },\n };\n }),\n },\n },\n };\n case \"multipassGroup\":\n return {\n type: \"multipassGroup\",\n multipassGroup: {\n type: \"group\",\n group: {},\n },\n };\n default:\n const k: Partial<OntologyIrAllowedParameterValues[\"type\"]> =\n allowedValues.type;\n return {\n type: k,\n [k]: {\n type: k,\n [k]: {},\n },\n } as unknown as OntologyIrAllowedParameterValues;\n // TODO(dpaquin): there's probably a TS clean way to do this\n }\n}\n\nexport function renderHintFromBaseType(\n parameter: ActionParameter,\n validation?: ActionParameterValidation,\n): ParameterRenderHint {\n // TODO(dpaquin): these are just guesses, we should find where they're actually defined\n const type = typeof parameter.type === \"string\"\n ? parameter.type\n : parameter.type.type;\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"checkbox\", checkbox: {} };\n case \"integer\":\n case \"integerList\":\n case \"long\":\n case \"longList\":\n case \"double\":\n case \"doubleList\":\n case \"decimal\":\n case \"decimalList\":\n return { type: \"numericInput\", numericInput: {} };\n case \"string\":\n if (\n validation?.allowedValues?.type === \"user\"\n || validation?.allowedValues?.type === \"multipassGroup\"\n ) {\n return { type: \"userDropdown\", userDropdown: {} };\n }\n case \"stringList\":\n case \"geohash\":\n case \"geohashList\":\n case \"geoshape\":\n case \"geoshapeList\":\n case \"objectSetRid\":\n return { type: \"textInput\", textInput: {} };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"dateTimePicker\", dateTimePicker: {} };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"filePicker\", filePicker: {} };\n case \"marking\":\n case \"markingList\":\n if (parameter.validation.allowedValues?.type === \"mandatoryMarking\") {\n return { type: \"mandatoryMarkingPicker\", mandatoryMarkingPicker: {} };\n } else if (parameter.validation.allowedValues?.type === \"cbacMarking\") {\n return { type: \"cbacMarkingPicker\", cbacMarkingPicker: {} };\n } else {\n throw new Error(\n `The allowed values for \"${parameter.displayName}\" are not compatible with the base parameter type`,\n );\n }\n case \"timeSeriesReference\":\n case \"objectReference\":\n case \"objectReferenceList\":\n case \"interfaceReference\":\n case \"interfaceReferenceList\":\n case \"objectTypeReference\":\n case \"mediaReference\":\n case \"mediaReferenceList\":\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"dropdown\", dropdown: {} };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type ${type}`);\n }\n}\n\nexport function extractNamespace(apiName: string): string {\n return apiName.substring(0, apiName.lastIndexOf(\".\") + 1);\n}\n\nexport function withoutNamespace(apiName: string): string {\n const lastDot = apiName.lastIndexOf(\".\");\n if (lastDot === -1) {\n return apiName;\n }\n return apiName.substring(lastDot + 1);\n}\n\nfunction camel(str: string): string {\n if (!str) {\n return str;\n }\n let result = str.replace(/[-_]+(.)?/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n result = result.charAt(0).toLowerCase() + result.slice(1);\n return result;\n}\n\n/**\n * Gets the TypeScript type name corresponding to an OntologyEntityTypeEnum value\n */\nfunction getEntityTypeName(type: string): string {\n return {\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"ObjectType\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"LinkType\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"InterfaceType\",\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"SharedPropertyType\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"ActionType\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"ValueTypeDefinitionVersion\",\n }[type]!;\n}\n\nfunction writeDependencyFile(dependencyFile: string): void {\n fs.writeFileSync(dependencyFile, JSON.stringify(dependencies, null, 2));\n}\n\nfunction dependencyInjectionString(): string {\n const namespaceNoDot: string = namespace.endsWith(\".\")\n ? namespace.slice(0, -1)\n : namespace;\n\n return `import { addDependency } from \"@osdk/maker\";\n// @ts-ignore\naddDependency(\"${namespaceNoDot}\", new URL(import.meta.url).pathname);\n`;\n}\n\nexport function addNamespaceIfNone(apiName: string): string {\n return apiName.includes(\".\") ? apiName : namespace + apiName;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import invariant from "tiny-invariant";
|
|
18
18
|
import { OntologyEntityTypeEnum } from "./common/OntologyEntityTypeEnum.js";
|
|
19
|
-
import { namespace, updateOntology } from "./defineOntology.js";
|
|
19
|
+
import { namespace, ontologyDefinition, updateOntology } from "./defineOntology.js";
|
|
20
20
|
function convertValueTypeTypeToBaseType(valueType) {
|
|
21
21
|
if (typeof valueType === "string") {}
|
|
22
22
|
switch (true) {
|
|
@@ -63,13 +63,18 @@ function convertValueTypeTypeToBaseType(valueType) {
|
|
|
63
63
|
}
|
|
64
64
|
export function defineValueType(valueTypeDef) {
|
|
65
65
|
const {
|
|
66
|
-
apiName,
|
|
66
|
+
apiName: inputApiName,
|
|
67
67
|
displayName,
|
|
68
68
|
description,
|
|
69
69
|
type,
|
|
70
|
-
version
|
|
70
|
+
version,
|
|
71
|
+
namespacePrefix
|
|
71
72
|
} = valueTypeDef;
|
|
73
|
+
const apiName = namespacePrefix ? namespace + inputApiName : inputApiName;
|
|
72
74
|
!/^((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)$/.test(version) ? process.env.NODE_ENV !== "production" ? invariant(false, "Version is not a valid semver") : invariant(false) : void 0;
|
|
75
|
+
const existingVersions = ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][apiName] ?? [];
|
|
76
|
+
const duplicateVersion = existingVersions.find(vt => vt.version === version);
|
|
77
|
+
!(duplicateVersion === undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Value type with apiName ${apiName} and version ${version} is already defined`) : invariant(false) : void 0;
|
|
73
78
|
const typeName = typeof type.type === "string" ? type.type : type.type.type === "struct" ? "structV2" : type.type.type;
|
|
74
79
|
// These suck but TS doesn't understand the relationship from the key of the base type to the type string
|
|
75
80
|
const constraints = type.constraints ? type.constraints.map(constraint => {
|
|
@@ -92,10 +97,7 @@ export function defineValueType(valueTypeDef) {
|
|
|
92
97
|
displayName: displayName,
|
|
93
98
|
description: description ?? ""
|
|
94
99
|
},
|
|
95
|
-
status:
|
|
96
|
-
type: "active",
|
|
97
|
-
active: {}
|
|
98
|
-
},
|
|
100
|
+
status: convertUserValueTypeStatusToValueTypeStatus(valueTypeDef.status),
|
|
99
101
|
version: version,
|
|
100
102
|
baseType: baseType,
|
|
101
103
|
constraints: constraints,
|
|
@@ -105,4 +107,20 @@ export function defineValueType(valueTypeDef) {
|
|
|
105
107
|
updateOntology(vt);
|
|
106
108
|
return vt;
|
|
107
109
|
}
|
|
110
|
+
export function convertUserValueTypeStatusToValueTypeStatus(status) {
|
|
111
|
+
if (typeof status === "object" && status.type === "deprecated") {
|
|
112
|
+
return {
|
|
113
|
+
type: "deprecated",
|
|
114
|
+
deprecated: {
|
|
115
|
+
message: status.message,
|
|
116
|
+
deadline: status.deadline,
|
|
117
|
+
replacedBy: status.replacedBy
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
return {
|
|
122
|
+
type: "active",
|
|
123
|
+
active: {}
|
|
124
|
+
};
|
|
125
|
+
}
|
|
108
126
|
//# sourceMappingURL=defineValueType.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineValueType.js","names":["invariant","OntologyEntityTypeEnum","namespace","updateOntology","convertValueTypeTypeToBaseType","valueType","type","array","elementType","structV2","fields","map","field","identifier","baseType","keyType","optional","wrappedType","Error","defineValueType","valueTypeDef","apiName","displayName","description","version","test","process","env","NODE_ENV","typeName","constraints","constraint","output","failureMessage","vt","packageNamespace","substring","length","displayMetadata","status","active","exampleValues","__type","VALUE_TYPE"],"sources":["defineValueType.ts"],"sourcesContent":["/*\n * Copyright 2024 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 {\n BaseType,\n DataConstraint,\n DataConstraintWrapper,\n FailureMessage,\n ValueTypeDataConstraint,\n} from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport { namespace, updateOntology } from \"./defineOntology.js\";\nimport { type ValueTypeDefinitionVersion } from \"./values/ValueTypeDefinitionVersion.js\";\nimport { type ValueTypeType } from \"./values/ValueTypeType.js\";\n\ntype ZipBaseAndConstraint<Base, Constraint> = {\n [PropertyType in (BaseType[\"type\"] & DataConstraint[\"type\"])]: Base extends\n { type: PropertyType } ? {\n baseType: Omit<Base, \"type\">;\n constraints?: Constraint extends { type: PropertyType } ? {\n constraint: Omit<Constraint, \"type\">;\n failureMessage?: FailureMessage;\n }[]\n : undefined;\n }\n : never;\n};\n\ntype MappedZip = ZipBaseAndConstraint<BaseType, DataConstraint>;\n\ntype TypeNames = ValueTypeType[\"type\"];\n\ntype ValueTypeDefinitionBacking = {\n [Type in ValueTypeType[\"type\"] & DataConstraint[\"type\"]]: {\n baseType: { \"type\": Extract<ValueTypeType, { type: Type }>[\"value\"] } & {\n constraints: {\n constraint: Extract<\n DataConstraint,\n { type: Type }\n >[keyof Omit<Extract<DataConstraint, { type: Type }>, \"type\">];\n failureMessage?: FailureMessage;\n }[];\n };\n };\n};\n\ntype NewValueTypeDefinitionBacking = {\n [Type in ValueTypeType as Type[\"type\"]]: {\n type: Type[\"value\"];\n constraints?: Type[\"constraints\"];\n };\n};\ntype NewValueTypeDefinition =\n NewValueTypeDefinitionBacking[keyof NewValueTypeDefinitionBacking];\n\nfunction convertValueTypeTypeToBaseType(\n valueType: ValueTypeType[\"value\"],\n): BaseType {\n if (typeof valueType === \"string\") {\n }\n switch (true) {\n case (typeof valueType === \"object\" && valueType.type === \"array\"):\n return {\n type: \"array\",\n array: {\n elementType: convertValueTypeTypeToBaseType(valueType.elementType),\n },\n };\n case (typeof valueType === \"object\" && valueType.type === \"struct\"):\n return {\n type: \"structV2\",\n structV2: {\n fields: valueType.fields.map(field => ({\n identifier: field.identifier,\n baseType: convertValueTypeTypeToBaseType(field.baseType),\n })),\n },\n };\n case (typeof valueType === \"object\" && valueType.type === \"map\"):\n return {\n type: \"map\",\n map: {\n keyType: convertValueTypeTypeToBaseType(valueType.keyType),\n valueType: convertValueTypeTypeToBaseType(valueType.valueType),\n },\n };\n case (typeof valueType === \"object\" && valueType.type === \"optional\"):\n return {\n type: \"optional\",\n optional: {\n wrappedType: convertValueTypeTypeToBaseType(valueType.wrappedType),\n },\n };\n case (typeof valueType === \"string\"):\n return { type: valueType, [valueType]: {} } as any;\n default:\n throw new Error(\"Invalid ValueTypeType\");\n }\n}\n\nexport type ValueTypeDefinition = {\n apiName: string;\n displayName: string;\n description?: string;\n type: NewValueTypeDefinition;\n version: string;\n};\n\nexport function defineValueType(\n valueTypeDef: ValueTypeDefinition,\n): ValueTypeDefinitionVersion {\n const { apiName, displayName, description, type, version } = valueTypeDef;\n const semverValidation =\n /^((([0-9]+)\\.([0-9]+)\\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)$/;\n invariant(semverValidation.test(version), \"Version is not a valid semver\");\n\n const typeName: TypeNames = typeof type.type === \"string\"\n ? type.type\n : type.type.type === \"struct\"\n ? \"structV2\"\n : type.type.type;\n // These suck but TS doesn't understand the relationship from the key of the base type to the type string\n const constraints = type.constraints\n ? type.constraints.map<ValueTypeDataConstraint>(constraint => {\n const output: any = {\n constraint: { type: typeName, [typeName]: constraint.constraint },\n failureMessage: constraint.failureMessage,\n };\n return { constraint: output as DataConstraintWrapper };\n })\n : [];\n\n const baseType: BaseType = convertValueTypeTypeToBaseType(type.type);\n\n const vt: ValueTypeDefinitionVersion = {\n apiName,\n packageNamespace: namespace.substring(0, namespace.length - 1),\n displayMetadata: {\n displayName: displayName,\n description: description ?? \"\",\n },\n status: { type: \"active\", active: {} },\n version: version,\n baseType: baseType,\n constraints: constraints,\n exampleValues: [],\n __type: OntologyEntityTypeEnum.VALUE_TYPE,\n };\n updateOntology(vt);\n return vt;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"defineValueType.js","names":["invariant","OntologyEntityTypeEnum","namespace","ontologyDefinition","updateOntology","convertValueTypeTypeToBaseType","valueType","type","array","elementType","structV2","fields","map","field","identifier","baseType","keyType","optional","wrappedType","Error","defineValueType","valueTypeDef","apiName","inputApiName","displayName","description","version","namespacePrefix","test","process","env","NODE_ENV","existingVersions","VALUE_TYPE","duplicateVersion","find","vt","undefined","typeName","constraints","constraint","output","failureMessage","packageNamespace","substring","length","displayMetadata","status","convertUserValueTypeStatusToValueTypeStatus","exampleValues","__type","deprecated","message","deadline","replacedBy","active"],"sources":["defineValueType.ts"],"sourcesContent":["/*\n * Copyright 2024 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 {\n BaseType,\n DataConstraint,\n DataConstraintWrapper,\n FailureMessage,\n ValueTypeDataConstraint,\n ValueTypeRid,\n ValueTypeStatus,\n} from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport {\n namespace,\n ontologyDefinition,\n updateOntology,\n} from \"./defineOntology.js\";\nimport { type ValueTypeDefinitionVersion } from \"./values/ValueTypeDefinitionVersion.js\";\nimport { type ValueTypeType } from \"./values/ValueTypeType.js\";\n\ntype ZipBaseAndConstraint<Base, Constraint> = {\n [PropertyType in (BaseType[\"type\"] & DataConstraint[\"type\"])]: Base extends\n { type: PropertyType } ? {\n baseType: Omit<Base, \"type\">;\n constraints?: Constraint extends { type: PropertyType } ? {\n constraint: Omit<Constraint, \"type\">;\n failureMessage?: FailureMessage;\n }[]\n : undefined;\n }\n : never;\n};\n\ntype MappedZip = ZipBaseAndConstraint<BaseType, DataConstraint>;\n\ntype TypeNames = ValueTypeType[\"type\"];\n\ntype ValueTypeDefinitionBacking = {\n [Type in ValueTypeType[\"type\"] & DataConstraint[\"type\"]]: {\n baseType: { \"type\": Extract<ValueTypeType, { type: Type }>[\"value\"] } & {\n constraints: {\n constraint: Extract<\n DataConstraint,\n { type: Type }\n >[keyof Omit<Extract<DataConstraint, { type: Type }>, \"type\">];\n failureMessage?: FailureMessage;\n }[];\n };\n };\n};\n\ntype NewValueTypeDefinitionBacking = {\n [Type in ValueTypeType as Type[\"type\"]]: {\n type: Type[\"value\"];\n constraints?: Type[\"constraints\"];\n };\n};\ntype NewValueTypeDefinition =\n NewValueTypeDefinitionBacking[keyof NewValueTypeDefinitionBacking];\n\nfunction convertValueTypeTypeToBaseType(\n valueType: ValueTypeType[\"value\"],\n): BaseType {\n if (typeof valueType === \"string\") {\n }\n switch (true) {\n case (typeof valueType === \"object\" && valueType.type === \"array\"):\n return {\n type: \"array\",\n array: {\n elementType: convertValueTypeTypeToBaseType(valueType.elementType),\n },\n };\n case (typeof valueType === \"object\" && valueType.type === \"struct\"):\n return {\n type: \"structV2\",\n structV2: {\n fields: valueType.fields.map(field => ({\n identifier: field.identifier,\n baseType: convertValueTypeTypeToBaseType(field.baseType),\n })),\n },\n };\n case (typeof valueType === \"object\" && valueType.type === \"map\"):\n return {\n type: \"map\",\n map: {\n keyType: convertValueTypeTypeToBaseType(valueType.keyType),\n valueType: convertValueTypeTypeToBaseType(valueType.valueType),\n },\n };\n case (typeof valueType === \"object\" && valueType.type === \"optional\"):\n return {\n type: \"optional\",\n optional: {\n wrappedType: convertValueTypeTypeToBaseType(valueType.wrappedType),\n },\n };\n case (typeof valueType === \"string\"):\n return { type: valueType, [valueType]: {} } as any;\n default:\n throw new Error(\"Invalid ValueTypeType\");\n }\n}\n\nexport type ValueTypeDefinition = {\n apiName: string;\n displayName: string;\n description?: string;\n type: NewValueTypeDefinition;\n version: string;\n status?: UserValueTypeStatus;\n namespacePrefix?: boolean;\n};\n\nexport type UserValueTypeStatus = \"active\" | {\n type: \"deprecated\";\n message: string;\n deadline: string;\n replacedBy?: ValueTypeRid;\n};\n\nexport function defineValueType(\n valueTypeDef: ValueTypeDefinition,\n): ValueTypeDefinitionVersion {\n const {\n apiName: inputApiName,\n displayName,\n description,\n type,\n version,\n namespacePrefix,\n } = valueTypeDef;\n const apiName = namespacePrefix ? namespace + inputApiName : inputApiName;\n const semverValidation =\n /^((([0-9]+)\\.([0-9]+)\\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)$/;\n invariant(semverValidation.test(version), \"Version is not a valid semver\");\n\n const existingVersions =\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][apiName] ?? [];\n const duplicateVersion = existingVersions.find(vt => vt.version === version);\n invariant(\n duplicateVersion === undefined,\n `Value type with apiName ${apiName} and version ${version} is already defined`,\n );\n\n const typeName: TypeNames = typeof type.type === \"string\"\n ? type.type\n : type.type.type === \"struct\"\n ? \"structV2\"\n : type.type.type;\n // These suck but TS doesn't understand the relationship from the key of the base type to the type string\n const constraints = type.constraints\n ? type.constraints.map<ValueTypeDataConstraint>(constraint => {\n const output: any = {\n constraint: { type: typeName, [typeName]: constraint.constraint },\n failureMessage: constraint.failureMessage,\n };\n return { constraint: output as DataConstraintWrapper };\n })\n : [];\n\n const baseType: BaseType = convertValueTypeTypeToBaseType(type.type);\n\n const vt: ValueTypeDefinitionVersion = {\n apiName,\n packageNamespace: namespace.substring(0, namespace.length - 1),\n displayMetadata: {\n displayName: displayName,\n description: description ?? \"\",\n },\n status: convertUserValueTypeStatusToValueTypeStatus(valueTypeDef.status),\n version: version,\n baseType: baseType,\n constraints: constraints,\n exampleValues: [],\n __type: OntologyEntityTypeEnum.VALUE_TYPE,\n };\n updateOntology(vt);\n return vt;\n}\n\nexport function convertUserValueTypeStatusToValueTypeStatus(\n status: UserValueTypeStatus | undefined,\n): ValueTypeStatus {\n if (typeof status === \"object\" && status.type === \"deprecated\") {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: status.replacedBy,\n },\n };\n }\n return { type: \"active\", active: {} };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -35,6 +35,11 @@ export function mapSimplifiedStatusToInterfaceTypeStatus(status) {
|
|
|
35
35
|
type: "experimental",
|
|
36
36
|
experimental: {}
|
|
37
37
|
};
|
|
38
|
+
case "example":
|
|
39
|
+
return {
|
|
40
|
+
type: "example",
|
|
41
|
+
example: {}
|
|
42
|
+
};
|
|
38
43
|
default:
|
|
39
44
|
throw new Error(`Invalid status type: ${status.type}`);
|
|
40
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapSimplifiedStatusToInterfaceTypeStatus.js","names":["mapSimplifiedStatusToInterfaceTypeStatus","status","type","deprecated","message","deadline","replacedBy","undefined","active","experimental","Error"],"sources":["mapSimplifiedStatusToInterfaceTypeStatus.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 { InterfaceTypeStatus } from \"@osdk/client.unstable\";\nimport type { SimplifiedInterfaceTypeStatus } from \"../defineInterface.js\";\n\nexport function mapSimplifiedStatusToInterfaceTypeStatus(\n status: SimplifiedInterfaceTypeStatus,\n): InterfaceTypeStatus {\n switch (status.type) {\n case \"deprecated\":\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined,\n },\n };\n case \"active\":\n return {\n type: \"active\",\n active: {},\n };\n case \"experimental\":\n return {\n type: \"experimental\",\n experimental: {},\n };\n default:\n throw new Error(`Invalid status type: ${(status as any).type}`);\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,SAASA,wCAAwCA,CACtDC,MAAqC,EAChB;EACrB,QAAQA,MAAM,CAACC,IAAI;IACjB,KAAK,YAAY;MACf,OAAO;QACLA,IAAI,EAAE,YAAY;QAClBC,UAAU,EAAE;UACVC,OAAO,EAAEH,MAAM,CAACG,OAAO;UACvBC,QAAQ,EAAEJ,MAAM,CAACI,QAAQ;UACzBC,UAAU,EAAEC;QACd;MACF,CAAC;IACH,KAAK,QAAQ;MACX,OAAO;QACLL,IAAI,EAAE,QAAQ;QACdM,MAAM,EAAE,CAAC;MACX,CAAC;IACH,KAAK,cAAc;MACjB,OAAO;QACLN,IAAI,EAAE,cAAc;QACpBO,YAAY,EAAE,CAAC;MACjB,CAAC;IACH;MACE,MAAM,IAAIC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"mapSimplifiedStatusToInterfaceTypeStatus.js","names":["mapSimplifiedStatusToInterfaceTypeStatus","status","type","deprecated","message","deadline","replacedBy","undefined","active","experimental","example","Error"],"sources":["mapSimplifiedStatusToInterfaceTypeStatus.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 { InterfaceTypeStatus } from \"@osdk/client.unstable\";\nimport type { SimplifiedInterfaceTypeStatus } from \"../defineInterface.js\";\n\nexport function mapSimplifiedStatusToInterfaceTypeStatus(\n status: SimplifiedInterfaceTypeStatus,\n): InterfaceTypeStatus {\n switch (status.type) {\n case \"deprecated\":\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined,\n },\n };\n case \"active\":\n return {\n type: \"active\",\n active: {},\n };\n case \"experimental\":\n return {\n type: \"experimental\",\n experimental: {},\n };\n case \"example\":\n return {\n type: \"example\",\n example: {},\n };\n default:\n throw new Error(`Invalid status type: ${(status as any).type}`);\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,SAASA,wCAAwCA,CACtDC,MAAqC,EAChB;EACrB,QAAQA,MAAM,CAACC,IAAI;IACjB,KAAK,YAAY;MACf,OAAO;QACLA,IAAI,EAAE,YAAY;QAClBC,UAAU,EAAE;UACVC,OAAO,EAAEH,MAAM,CAACG,OAAO;UACvBC,QAAQ,EAAEJ,MAAM,CAACI,QAAQ;UACzBC,UAAU,EAAEC;QACd;MACF,CAAC;IACH,KAAK,QAAQ;MACX,OAAO;QACLL,IAAI,EAAE,QAAQ;QACdM,MAAM,EAAE,CAAC;MACX,CAAC;IACH,KAAK,cAAc;MACjB,OAAO;QACLN,IAAI,EAAE,cAAc;QACpBO,YAAY,EAAE,CAAC;MACjB,CAAC;IACH,KAAK,SAAS;MACZ,OAAO;QACLP,IAAI,EAAE,SAAS;QACfQ,OAAO,EAAE,CAAC;MACZ,CAAC;IACH;MACE,MAAM,IAAIC,KAAK,CAAC,wBAAyBV,MAAM,CAASC,IAAI,EAAE,CAAC;EACnE;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkType.js","names":[],"sources":["LinkType.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 {\n LinkTypeDisplayMetadata,\n
|
|
1
|
+
{"version":3,"file":"LinkType.js","names":[],"sources":["LinkType.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 {\n LinkTypeDisplayMetadata,\n LinkTypeId,\n LinkTypeMetadata,\n Visibility,\n} from \"@osdk/client.unstable\";\nimport type { OptionalFields } from \"../../util/OptionalFields.js\";\nimport type { RequiredFields } from \"../../util/RequiredFields.js\";\nimport type { OntologyEntityBase } from \"../common/OntologyEntityBase.js\";\nimport type { OntologyEntityTypeEnum } from \"../common/OntologyEntityTypeEnum.js\";\nimport type { ObjectTypeDefinition } from \"../object/ObjectTypeDefinition.js\";\n\nexport type LinkType =\n | (OntologyEntityBase & OneToManyLinkTypeDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n })\n | (OntologyEntityBase & ManyToManyLinkTypeDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n })\n | (OntologyEntityBase & IntermediaryLinkTypeDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n });\n\nexport type LinkTypeDefinition =\n | Omit<\n OntologyEntityBase & OneToManyLinkTypeUserDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n },\n \"__type\"\n >\n | Omit<\n OntologyEntityBase & ManyToManyLinkTypeUserDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n },\n \"__type\"\n >\n | Omit<\n OntologyEntityBase & IntermediaryLinkTypeUserDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n },\n \"__type\"\n >;\n\nexport type ObjectTypePropertyApiName = string;\n\nexport interface OneToManyLinkTypeDefinition {\n apiName: string;\n one: OneToManyObjectLinkReference;\n toMany: OneToManyObjectLinkReference;\n manyForeignKeyProperty: ObjectTypePropertyApiName;\n cardinality: \"OneToMany\" | \"OneToOne\" | undefined;\n editsEnabled?: boolean;\n status?: UserLinkTypeStatus;\n redacted?: boolean;\n}\n\nexport interface OneToManyObjectLinkReference {\n object: ObjectTypeDefinition | string;\n metadata: LinkTypeMetadata;\n}\n\nexport interface OneToManyLinkTypeUserDefinition {\n apiName: string;\n one: OneToManyObjectLinkReferenceUserDefinition;\n toMany: OneToManyObjectLinkReferenceUserDefinition;\n manyForeignKeyProperty: ObjectTypePropertyApiName;\n editsEnabled?: boolean;\n status?: UserLinkTypeStatus;\n cardinality?: \"OneToMany\" | \"OneToOne\" | undefined;\n}\n\nexport interface OneToManyObjectLinkReferenceUserDefinition {\n object: ObjectTypeDefinition | string;\n metadata: LinkTypeMetadataUserDefinition;\n}\n\nexport interface ManyToManyLinkTypeDefinition {\n apiName: string;\n many: ManyToManyObjectLinkReference;\n toMany: ManyToManyObjectLinkReference;\n editsEnabled?: boolean;\n status?: UserLinkTypeStatus;\n redacted?: boolean;\n}\n\nexport interface ManyToManyObjectLinkReference {\n object: ObjectTypeDefinition | string;\n metadata: LinkTypeMetadata;\n}\n\nexport interface ManyToManyLinkTypeUserDefinition {\n apiName: string;\n many: ManyToManyObjectLinkReferenceUserDefinition;\n toMany: ManyToManyObjectLinkReferenceUserDefinition;\n editsEnabled?: boolean;\n status?: UserLinkTypeStatus;\n}\n\nexport interface ManyToManyObjectLinkReferenceUserDefinition {\n object: ObjectTypeDefinition | string;\n metadata: LinkTypeMetadataUserDefinition;\n}\n\nexport interface IntermediaryLinkTypeDefinition {\n apiName: string;\n many: IntermediaryObjectLinkReference;\n toMany: IntermediaryObjectLinkReference;\n intermediaryObjectType: ObjectTypeDefinition;\n editsEnabled?: boolean;\n status?: UserLinkTypeStatus;\n redacted?: boolean;\n}\n\nexport interface IntermediaryObjectLinkReference {\n object: ObjectTypeDefinition | string;\n metadata: LinkTypeMetadata;\n linkToIntermediary: LinkType;\n}\n\nexport interface IntermediaryLinkTypeUserDefinition {\n apiName: string;\n many: IntermediaryObjectLinkReferenceUserDefinition;\n toMany: IntermediaryObjectLinkReferenceUserDefinition;\n intermediaryObjectType: ObjectTypeDefinition | string;\n editsEnabled?: boolean;\n status?: UserLinkTypeStatus;\n}\n\nexport interface IntermediaryObjectLinkReferenceUserDefinition {\n object: ObjectTypeDefinition | string;\n metadata: LinkTypeMetadataUserDefinition;\n linkToIntermediary: LinkType;\n}\n\nexport interface LinkTypeMetadataUserDefinition {\n apiName: string;\n displayName?: string;\n pluralDisplayName?: string;\n visibility?: Visibility;\n groupDisplayName?: string;\n}\n\nexport type LinkSideMetadata = OptionalFields<\n RequiredFields<\n Omit<LinkTypeMetadata, \"displayMetadata\"> & LinkTypeDisplayMetadata,\n \"apiName\"\n >,\n \"visibility\" | \"typeClasses\"\n>;\n\nexport type UserLinkTypeStatus =\n | \"active\"\n | \"experimental\"\n | \"example\"\n | {\n type: \"deprecated\";\n message: string;\n deadline: string;\n replacedBy?: LinkTypeId;\n };\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectTypeStatus.js","names":[],"sources":["ObjectTypeStatus.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\nexport type ObjectTypeStatus =\n | \"active\"\n | \"experimental\"\n | {\n type: \"deprecated\";\n message: string;\n deadline: string;\n };\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ObjectTypeStatus.js","names":[],"sources":["ObjectTypeStatus.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\nexport type ObjectTypeStatus =\n | \"active\"\n | \"experimental\"\n | \"example\"\n | {\n type: \"deprecated\";\n message: string;\n deadline: string;\n };\n"],"mappings":"","ignoreList":[]}
|