@osdk/maker-experimental 0.52.0 → 0.53.0
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 +6 -0
- package/build/browser/cli/main.js +1 -1
- package/build/browser/conversion/toMarketplace/shapeExtractors/ImportedShapeExtractor.js +19 -37
- package/build/browser/conversion/toMarketplace/shapeExtractors/ImportedShapeExtractor.js.map +1 -1
- package/build/cjs/index.cjs +18 -37
- package/build/cjs/index.cjs.map +1 -1
- package/build/esm/cli/main.js +1 -1
- package/build/esm/conversion/toMarketplace/shapeExtractors/ImportedShapeExtractor.js +19 -37
- package/build/esm/conversion/toMarketplace/shapeExtractors/ImportedShapeExtractor.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -34,7 +34,7 @@ const apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/u;
|
|
|
34
34
|
const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/u;
|
|
35
35
|
export default async function main(args = process.argv) {
|
|
36
36
|
consola.log("Generating BlockGeneratorResult for ontology...");
|
|
37
|
-
const commandLineOpts = await yargs(hideBin(args)).version("0.
|
|
37
|
+
const commandLineOpts = await yargs(hideBin(args)).version("0.53.0" ?? "").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({
|
|
38
38
|
input: {
|
|
39
39
|
alias: "i",
|
|
40
40
|
describe: "Input file",
|
|
@@ -201,9 +201,10 @@ function extractImportedInterfaceTypes(importedBlockData, ridGenerator, blockSha
|
|
|
201
201
|
const properties = Object.values(interfaceType.propertiesV2 ?? {}).map(propEntry => ridGenerator.toBlockInternalId(ReadableIdGenerator.getForSpt(propEntry.sharedPropertyType.apiName)));
|
|
202
202
|
const propertiesV2 = [];
|
|
203
203
|
for (const [propertyRid, property] of Object.entries(interfaceType.propertiesV3 ?? {})) {
|
|
204
|
-
|
|
204
|
+
if (property.type !== "interfaceDefinedPropertyType") continue;
|
|
205
|
+
const propReadableId = ridGenerator.getInterfacePropertyTypeRids().inverse().get(propertyRid);
|
|
205
206
|
if (!propReadableId) {
|
|
206
|
-
throw new Error(`Missing readable ID for interface property RID ${propertyRid} on interface ${interfaceType.apiName}`);
|
|
207
|
+
throw new Error(`Missing readable ID for interface-defined property RID ${propertyRid} on interface ${interfaceType.apiName}`);
|
|
207
208
|
}
|
|
208
209
|
propertiesV2.push(ridGenerator.toBlockInternalId(propReadableId));
|
|
209
210
|
}
|
|
@@ -256,47 +257,28 @@ function extractImportedInterfaceTypes(importedBlockData, ridGenerator, blockSha
|
|
|
256
257
|
});
|
|
257
258
|
}
|
|
258
259
|
|
|
259
|
-
// Generate interface property type input shapes
|
|
260
|
+
// Generate interface-defined property type input shapes. SPT-backed
|
|
261
|
+
// properties are represented by their shared property type input shapes.
|
|
260
262
|
for (const [propertyRid, property] of Object.entries(interfaceType.propertiesV3 ?? {})) {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
const registeredReadableId = ridGenerator.getInterfacePropertyTypeRids().inverse().get(propertyRid);
|
|
266
|
-
if (!registeredReadableId) {
|
|
267
|
-
throw new Error(`Missing readable ID for interface-defined property RID ${propertyRid} on interface ${interfaceType.apiName}`);
|
|
268
|
-
}
|
|
269
|
-
propReadableId = registeredReadableId;
|
|
270
|
-
propApiName = property.interfaceDefinedPropertyType.apiName;
|
|
271
|
-
propInputShape = {
|
|
272
|
-
about: createLocalizedAbout(property.interfaceDefinedPropertyType.displayMetadata.displayName, property.interfaceDefinedPropertyType.displayMetadata.description ?? ""),
|
|
273
|
-
type: {
|
|
274
|
-
type: "objectPropertyType",
|
|
275
|
-
objectPropertyType: typeToMarketplaceObjectPropertyType(property.interfaceDefinedPropertyType.type)
|
|
276
|
-
},
|
|
277
|
-
interfaceType: ridGenerator.toBlockInternalId(interfaceReadableId),
|
|
278
|
-
requireImplementation: property.interfaceDefinedPropertyType.constraints.requireImplementation
|
|
279
|
-
};
|
|
280
|
-
} else {
|
|
281
|
-
const spt = property.sharedPropertyBasedPropertyType.sharedPropertyType;
|
|
282
|
-
propReadableId = ReadableIdGenerator.getForSptBackedInterfaceProperty(interfaceType.apiName, spt.apiName);
|
|
283
|
-
propApiName = spt.apiName;
|
|
284
|
-
propInputShape = {
|
|
285
|
-
about: createLocalizedAbout(spt.displayMetadata.displayName, spt.displayMetadata.description ?? ""),
|
|
286
|
-
type: {
|
|
287
|
-
type: "objectPropertyType",
|
|
288
|
-
objectPropertyType: typeToMarketplaceObjectPropertyType(spt.type)
|
|
289
|
-
},
|
|
290
|
-
interfaceType: ridGenerator.toBlockInternalId(interfaceReadableId),
|
|
291
|
-
requireImplementation: property.sharedPropertyBasedPropertyType.requireImplementation,
|
|
292
|
-
sharedPropertyType: ridGenerator.toBlockInternalId(ReadableIdGenerator.getForSpt(spt.apiName))
|
|
293
|
-
};
|
|
263
|
+
if (property.type !== "interfaceDefinedPropertyType") continue;
|
|
264
|
+
const propReadableId = ridGenerator.getInterfacePropertyTypeRids().inverse().get(propertyRid);
|
|
265
|
+
if (!propReadableId) {
|
|
266
|
+
throw new Error(`Missing readable ID for interface-defined property RID ${propertyRid} on interface ${interfaceType.apiName}`);
|
|
294
267
|
}
|
|
268
|
+
const propInputShape = {
|
|
269
|
+
about: createLocalizedAbout(property.interfaceDefinedPropertyType.displayMetadata.displayName, property.interfaceDefinedPropertyType.displayMetadata.description ?? ""),
|
|
270
|
+
type: {
|
|
271
|
+
type: "objectPropertyType",
|
|
272
|
+
objectPropertyType: typeToMarketplaceObjectPropertyType(property.interfaceDefinedPropertyType.type)
|
|
273
|
+
},
|
|
274
|
+
interfaceType: ridGenerator.toBlockInternalId(interfaceReadableId),
|
|
275
|
+
requireImplementation: property.interfaceDefinedPropertyType.constraints.requireImplementation
|
|
276
|
+
};
|
|
295
277
|
blockShapes.inputShapes.set(propReadableId, {
|
|
296
278
|
type: "interfacePropertyType",
|
|
297
279
|
interfacePropertyType: propInputShape
|
|
298
280
|
});
|
|
299
|
-
addApiNamePreset(blockShapes, propReadableId,
|
|
281
|
+
addApiNamePreset(blockShapes, propReadableId, property.interfaceDefinedPropertyType.apiName);
|
|
300
282
|
}
|
|
301
283
|
|
|
302
284
|
// Generate interface link type input shapes
|
package/build/browser/conversion/toMarketplace/shapeExtractors/ImportedShapeExtractor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImportedShapeExtractor.js","names":["ReadableIdGenerator","typeToMarketplaceObjectPropertyType","extractValueTypeInputShapeIfPresent","createLocalizedAbout","fallbackTitle","fallbackDescription","localizedTitle","localizedDescription","getImportedShapes","importedBlockData","ridGenerator","linkTypeIdsByApiName","blockShapes","inputShapes","Map","inputPresets","outputShapes","inputShapeMetadata","inputMappings","extractImportedObjectTypes","extractImportedLinkTypes","extractImportedInterfaceTypes","extractImportedSharedPropertyTypes","extractImportedActionTypes","objectReadableIds","getObjectTypeRids","inverse","propertyReadableIds","getPropertyTypeRids","rid","objectType","Object","entries","objectTypes","readableId","get","propertyBlockIds","propertyRid","keys","propertyTypes","propReadableId","push","toBlockInternalId","inputShape","about","displayMetadata","displayName","description","editsSupport","objectsBackendVersion","set","type","addApiNamePreset","apiName","isOptional","isAccessedInReconcile","reconcileAccessRequirements","preallocateAccessRequirements","propertyType","sptReadableId","sharedPropertyTypeRid","getSharedPropertyTypeRids","undefined","propInputShape","objectPropertyType","sharedPropertyType","property","linkReadableIds","getLinkTypeRids","linkType","linkTypes","definition","linkInputShape","def","oneToMany","shape","oneToManyLinkMetadata","objectTypeShapeIdOneSide","getObjectTypeBlockId","objectTypeRidOneSide","objectTypeShapeIdManySide","objectTypeRidManySide","manyToOneLinkMetadata","cardinalityHint","manyToMany","objectTypeAToBLinkMetadata","objectTypeShapeIdA","objectTypeRidA","objectTypeShapeIdB","objectTypeRidB","objectTypeBToALinkMetadata","intermediary","objectTypeAShapeId","objectTypeBShapeId","intermediaryObjectTypeShapeId","intermediaryObjectTypeRid","aToIntermediaryLinkTypeShapeId","getLinkTypeBlockId","aToIntermediaryLinkTypeRid","intermediaryToBLinkTypeShapeId","intermediaryToBLinkTypeRid","linkTypeId","id","addPreset","linkTypeIdResolver","linkTypeIdWithoutOntologyPrefix","knownIdentifiers","_rid","interfaceTypeBlock","interfaceTypes","interfaceType","interfaceReadableId","getForInterface","properties","values","propertiesV2","map","propEntry","getForSpt","propertiesV3","getForSptBackedInterfaceProperty","sharedPropertyBasedPropertyType","getInterfacePropertyTypeRids","Error","links","ilt","iltId","interfaceLinkTypes","actionTypeConstraints","constraint","constraintId","interfaceActionTypeConstraints","_sptRid","spt","has","propApiName","registeredReadableId","interfaceDefinedPropertyType","requireImplementation","constraints","interfacePropertyType","interfaceLinkType","linkReadableId","getForInterfaceLinkType","metadata","linkedInterfaceRid","linkedEntityTypeId","linkedReadableId","getInterfaceRids","linkedEntityTypeRef","linkedEntityType","cardinality","required","actionTypeConstraint","constraintReadableId","getForInterfaceActionTypeConstraint","parameterConstraintRefs","parameters","paramRid","paramConstraint","paramDisplayApiName","getForInterfaceParameterConstraint","constraintInputShape","parameterConstraints","interfaceActionTypeConstraint","paramReadableId","paramInputShape","interfaceParameterConstraint","sptBlock","sharedPropertyTypes","valueType","actionTypeBlock","actionTypes","actionApiName","actionType","actionReadableId","getForActionType","parametersV2","parameterIds","_key","parameterId","getForParameter","actionShape","action","converter","ImportedBaseParameterTypeConverter","objectTypeIds","parameter","parameterShape","convert","actionParameter","apiNameResolver","resolver","value","fromSource","exportCompatibility","enforcement","isDefault","objectTypeRid","linkTypeRid","constructor","parameterType","pt","t","includes","objRef","blockId","objectTypeId","ifRef","interfaceTypeRid","dec","precision","scale"],"sources":["ImportedShapeExtractor.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 ActionType,\n IntermediaryLinkDefinition,\n ManyToManyLinkDefinition,\n MarketplaceInterfaceLinkType,\n ObjectTypeRid,\n OntologyBlockDataV2,\n} from \"@osdk/client.unstable\";\nimport type {\n ActionTypeParameterShape,\n ActionTypeShape,\n BaseParameterType,\n InterfaceActionTypeConstraintShape,\n InterfaceLinkTypeInputShape,\n InterfaceParameterConstraintShape,\n InterfacePropertyTypeInputShape,\n InterfaceTypeInputShape,\n InputPreset,\n InputShapeResolver,\n LinkTypeInputShape,\n LinkTypeIntermediaryShape,\n LinkTypeManyToManyInputShape,\n LinkTypeOneToManyShape,\n LocalizedTitleAndDescription,\n ObjectTypeInputShape,\n PropertyInputShape,\n SharedPropertyTypeInputShape,\n} from \"@osdk/client.unstable/api\";\n\nimport type {\n BlockShapes,\n OntologyRidGenerator,\n ReadableId,\n} from \"../../../util/generateRid.js\";\nimport { ReadableIdGenerator } from \"../../../util/generateRid.js\";\nimport { typeToMarketplaceObjectPropertyType } from \"../typeVisitors.js\";\nimport { extractValueTypeInputShapeIfPresent } from \"./IrShapeExtractor.js\";\n\ninterface ImportedBlockShapes extends BlockShapes {\n inputPresets: Map<ReadableId, InputPreset>;\n}\n\nexport type LinkTypeIdsByApiName = Readonly<Record<string, string>>;\n\nfunction createLocalizedAbout(\n fallbackTitle: string,\n fallbackDescription: string = \"\",\n): LocalizedTitleAndDescription {\n return {\n fallbackTitle,\n fallbackDescription,\n localizedTitle: {},\n localizedDescription: {},\n };\n}\n\n/**\n * Extracts INPUT shapes from imported ontology block data.\n * Each imported entity becomes an input shape so the marketplace can wire it\n * from the block that originally defined it.\n */\nexport function getImportedShapes(\n importedBlockData: OntologyBlockDataV2,\n ridGenerator: OntologyRidGenerator,\n linkTypeIdsByApiName: LinkTypeIdsByApiName = {},\n): ImportedBlockShapes {\n const blockShapes: ImportedBlockShapes = {\n inputShapes: new Map(),\n inputPresets: new Map(),\n outputShapes: new Map(),\n inputShapeMetadata: new Map(),\n inputMappings: [],\n };\n\n extractImportedObjectTypes(importedBlockData, ridGenerator, blockShapes);\n extractImportedLinkTypes(\n importedBlockData,\n ridGenerator,\n blockShapes,\n linkTypeIdsByApiName,\n );\n extractImportedInterfaceTypes(importedBlockData, ridGenerator, blockShapes);\n extractImportedSharedPropertyTypes(\n importedBlockData,\n ridGenerator,\n blockShapes,\n );\n extractImportedActionTypes(importedBlockData, ridGenerator, blockShapes);\n\n return blockShapes;\n}\n\nfunction extractImportedObjectTypes(\n importedBlockData: OntologyBlockDataV2,\n ridGenerator: OntologyRidGenerator,\n blockShapes: ImportedBlockShapes,\n): void {\n const objectReadableIds = ridGenerator.getObjectTypeRids().inverse();\n const propertyReadableIds = ridGenerator.getPropertyTypeRids().inverse();\n\n for (const [rid, objectType] of Object.entries(\n importedBlockData.objectTypes,\n )) {\n const readableId = objectReadableIds.get(rid as ObjectTypeRid);\n if (!readableId) continue;\n\n const propertyBlockIds: string[] = [];\n for (const propertyRid of Object.keys(\n objectType.objectType.propertyTypes,\n )) {\n const propReadableId = propertyReadableIds.get(propertyRid);\n if (propReadableId) {\n propertyBlockIds.push(ridGenerator.toBlockInternalId(propReadableId));\n }\n }\n\n const inputShape: ObjectTypeInputShape = {\n about: createLocalizedAbout(\n objectType.objectType.displayMetadata.displayName,\n objectType.objectType.displayMetadata.description ?? \"\",\n ),\n editsSupport: \"ANY\",\n objectsBackendVersion: \"V2\",\n propertyTypes: propertyBlockIds,\n };\n\n blockShapes.inputShapes.set(readableId, {\n type: \"objectType\",\n objectType: inputShape,\n });\n addApiNamePreset(blockShapes, readableId, objectType.objectType.apiName!);\n\n blockShapes.inputShapeMetadata.set(readableId, {\n isOptional: false,\n isAccessedInReconcile: true,\n reconcileAccessRequirements: \"RESOURCE_EXISTENCE_REQUIRED\",\n preallocateAccessRequirements: \"RESOURCE_PREALLOCATION_REQUIRED\",\n });\n\n // Generate property input shapes\n for (const [propertyRid, propertyType] of Object.entries(\n objectType.objectType.propertyTypes,\n )) {\n const propReadableId = propertyReadableIds.get(propertyRid);\n if (!propReadableId) continue;\n\n const sptReadableId = propertyType.sharedPropertyTypeRid\n ? ridGenerator\n .getSharedPropertyTypeRids()\n .inverse()\n .get(propertyType.sharedPropertyTypeRid)\n : undefined;\n\n const propInputShape: PropertyInputShape = {\n about: createLocalizedAbout(\n propertyType.displayMetadata.displayName,\n propertyType.displayMetadata.description ?? \"\",\n ),\n objectType: ridGenerator.toBlockInternalId(readableId),\n type: {\n type: \"objectPropertyType\",\n objectPropertyType: typeToMarketplaceObjectPropertyType(\n propertyType.type,\n ),\n },\n sharedPropertyType: sptReadableId\n ? ridGenerator.toBlockInternalId(sptReadableId)\n : undefined,\n };\n\n blockShapes.inputShapes.set(propReadableId, {\n type: \"property\",\n property: propInputShape,\n });\n addApiNamePreset(blockShapes, propReadableId, propertyType.apiName!);\n\n blockShapes.inputShapeMetadata.set(propReadableId, {\n isOptional: false,\n isAccessedInReconcile: true,\n reconcileAccessRequirements: \"RESOURCE_EXISTENCE_REQUIRED\",\n preallocateAccessRequirements: \"RESOURCE_PREALLOCATION_REQUIRED\",\n });\n }\n }\n}\n\nfunction extractImportedLinkTypes(\n importedBlockData: OntologyBlockDataV2,\n ridGenerator: OntologyRidGenerator,\n blockShapes: ImportedBlockShapes,\n linkTypeIdsByApiName: LinkTypeIdsByApiName,\n): void {\n const linkReadableIds = ridGenerator.getLinkTypeRids().inverse();\n\n for (const [rid, linkType] of Object.entries(importedBlockData.linkTypes)) {\n const readableId = linkReadableIds.get(rid);\n if (!readableId) continue;\n\n const definition = linkType.linkType.definition;\n let linkInputShape: LinkTypeInputShape;\n\n switch (definition.type) {\n case \"oneToMany\": {\n const def = definition.oneToMany;\n const shape: LinkTypeOneToManyShape = {\n about: createLocalizedAbout(\n def.oneToManyLinkMetadata.displayMetadata.displayName,\n ),\n objectTypeShapeIdOneSide: getObjectTypeBlockId(\n ridGenerator,\n def.objectTypeRidOneSide,\n ),\n objectTypeShapeIdManySide: getObjectTypeBlockId(\n ridGenerator,\n def.objectTypeRidManySide,\n ),\n manyToOneLinkMetadata: createLocalizedAbout(\n def.manyToOneLinkMetadata.displayMetadata.displayName,\n ),\n oneToManyLinkMetadata: createLocalizedAbout(\n def.oneToManyLinkMetadata.displayMetadata.displayName,\n ),\n cardinalityHint:\n def.cardinalityHint === \"ONE_TO_ONE\" ? \"ONE_TO_ONE\" : \"ONE_TO_MANY\",\n };\n linkInputShape = { type: \"oneToMany\", oneToMany: shape };\n break;\n }\n case \"manyToMany\": {\n const def = definition.manyToMany as ManyToManyLinkDefinition;\n const shape: LinkTypeManyToManyInputShape = {\n about: createLocalizedAbout(\n def.objectTypeAToBLinkMetadata.displayMetadata.displayName,\n ),\n objectTypeShapeIdA: getObjectTypeBlockId(\n ridGenerator,\n def.objectTypeRidA,\n ),\n objectTypeShapeIdB: getObjectTypeBlockId(\n ridGenerator,\n def.objectTypeRidB,\n ),\n objectTypeAToBLinkMetadata: createLocalizedAbout(\n def.objectTypeAToBLinkMetadata.displayMetadata.displayName,\n ),\n objectTypeBToALinkMetadata: createLocalizedAbout(\n def.objectTypeBToALinkMetadata.displayMetadata.displayName,\n ),\n editsSupport: \"ANY\",\n objectsBackendVersion: \"V2\",\n };\n linkInputShape = { type: \"manyToMany\", manyToMany: shape };\n break;\n }\n case \"intermediary\": {\n const def = definition.intermediary as IntermediaryLinkDefinition;\n const shape: LinkTypeIntermediaryShape = {\n about: createLocalizedAbout(\n def.objectTypeAToBLinkMetadata.displayMetadata.displayName,\n ),\n objectTypeAToBLinkMetadata: createLocalizedAbout(\n def.objectTypeAToBLinkMetadata.displayMetadata.displayName,\n ),\n objectTypeBToALinkMetadata: createLocalizedAbout(\n def.objectTypeBToALinkMetadata.displayMetadata.displayName,\n ),\n objectTypeAShapeId: getObjectTypeBlockId(\n ridGenerator,\n def.objectTypeRidA,\n ),\n objectTypeBShapeId: getObjectTypeBlockId(\n ridGenerator,\n def.objectTypeRidB,\n ),\n intermediaryObjectTypeShapeId: getObjectTypeBlockId(\n ridGenerator,\n def.intermediaryObjectTypeRid,\n ),\n aToIntermediaryLinkTypeShapeId: getLinkTypeBlockId(\n ridGenerator,\n def.aToIntermediaryLinkTypeRid,\n ),\n intermediaryToBLinkTypeShapeId: getLinkTypeBlockId(\n ridGenerator,\n def.intermediaryToBLinkTypeRid,\n ),\n };\n linkInputShape = { type: \"intermediary\", intermediary: shape };\n break;\n }\n default:\n continue;\n }\n\n blockShapes.inputShapes.set(readableId, {\n type: \"linkType\",\n linkType: linkInputShape,\n });\n const linkTypeId = linkTypeIdsByApiName[linkType.linkType.id];\n if (linkTypeId !== undefined) {\n addPreset(blockShapes, readableId, {\n type: \"linkTypeIdResolver\",\n linkTypeIdResolver: {\n linkTypeIdWithoutOntologyPrefix: linkTypeId,\n },\n });\n }\n\n blockShapes.inputShapeMetadata.set(readableId, {\n isOptional: false,\n isAccessedInReconcile: true,\n reconcileAccessRequirements: \"RESOURCE_EXISTENCE_REQUIRED\",\n preallocateAccessRequirements: \"RESOURCE_PREALLOCATION_REQUIRED\",\n });\n }\n}\n\nfunction extractImportedInterfaceTypes(\n importedBlockData: OntologyBlockDataV2,\n ridGenerator: OntologyRidGenerator,\n blockShapes: ImportedBlockShapes,\n): void {\n const knownIdentifiers = importedBlockData.knownIdentifiers;\n\n for (const [_rid, interfaceTypeBlock] of Object.entries(\n importedBlockData.interfaceTypes,\n )) {\n const interfaceType = interfaceTypeBlock.interfaceType;\n const interfaceReadableId = ReadableIdGenerator.getForInterface(\n interfaceType.apiName,\n );\n\n // Build properties list from propertiesV2 (SPT references as BlockInternalIds)\n const properties: string[] = Object.values(\n interfaceType.propertiesV2 ?? {},\n ).map((propEntry) =>\n ridGenerator.toBlockInternalId(\n ReadableIdGenerator.getForSpt(propEntry.sharedPropertyType.apiName),\n ),\n );\n\n const propertiesV2: string[] = [];\n for (const [propertyRid, property] of Object.entries(\n interfaceType.propertiesV3 ?? {},\n )) {\n const propReadableId =\n property.type === \"sharedPropertyBasedPropertyType\"\n ? ReadableIdGenerator.getForSptBackedInterfaceProperty(\n interfaceType.apiName,\n property.sharedPropertyBasedPropertyType.sharedPropertyType\n .apiName,\n )\n : ridGenerator\n .getInterfacePropertyTypeRids()\n .inverse()\n .get(propertyRid);\n if (!propReadableId) {\n throw new Error(\n `Missing readable ID for interface property RID ${propertyRid} on interface ${interfaceType.apiName}`,\n );\n }\n propertiesV2.push(ridGenerator.toBlockInternalId(propReadableId));\n }\n\n // Build links list\n const links: string[] = (interfaceType.links ?? []).map(\n (ilt: MarketplaceInterfaceLinkType) => {\n const iltId = knownIdentifiers.interfaceLinkTypes?.[ilt.rid];\n return iltId ?? ilt.rid;\n },\n );\n\n // Build actionTypeConstraints list\n const actionTypeConstraints: string[] = (\n interfaceType.actionTypeConstraints ?? []\n ).map((constraint) => {\n const constraintId =\n knownIdentifiers.interfaceActionTypeConstraints?.[constraint.rid];\n return constraintId ?? constraint.rid;\n });\n\n const inputShape: InterfaceTypeInputShape = {\n about: createLocalizedAbout(\n interfaceType.displayMetadata.displayName,\n interfaceType.displayMetadata.description ?? \"\",\n ),\n actionTypeConstraints,\n properties,\n propertiesV2,\n links,\n };\n\n blockShapes.inputShapes.set(interfaceReadableId, {\n type: \"interfaceType\",\n interfaceType: inputShape,\n });\n addApiNamePreset(blockShapes, interfaceReadableId, interfaceType.apiName);\n\n // Generate SPT input shapes\n for (const [_sptRid, propEntry] of Object.entries(\n interfaceType.propertiesV2 ?? {},\n )) {\n const spt = propEntry.sharedPropertyType;\n const sptReadableId = ReadableIdGenerator.getForSpt(spt.apiName);\n if (blockShapes.inputShapes.has(sptReadableId)) continue;\n\n blockShapes.inputShapes.set(sptReadableId, {\n type: \"sharedPropertyType\",\n sharedPropertyType: {\n about: createLocalizedAbout(\n spt.displayMetadata.displayName,\n spt.displayMetadata.description ?? \"\",\n ),\n type: {\n type: \"objectPropertyType\",\n objectPropertyType: typeToMarketplaceObjectPropertyType(spt.type),\n },\n },\n });\n addApiNamePreset(blockShapes, sptReadableId, spt.apiName);\n blockShapes.inputShapeMetadata.set(sptReadableId, {\n isOptional: false,\n isAccessedInReconcile: true,\n reconcileAccessRequirements: \"RESOURCE_EXISTENCE_REQUIRED\",\n preallocateAccessRequirements: \"RESOURCE_PREALLOCATION_REQUIRED\",\n });\n }\n\n // Generate interface property type input shapes\n for (const [propertyRid, property] of Object.entries(\n interfaceType.propertiesV3 ?? {},\n )) {\n let propReadableId: ReadableId;\n let propApiName: string;\n let propInputShape: InterfacePropertyTypeInputShape;\n if (property.type === \"interfaceDefinedPropertyType\") {\n const registeredReadableId = ridGenerator\n .getInterfacePropertyTypeRids()\n .inverse()\n .get(propertyRid);\n if (!registeredReadableId) {\n throw new Error(\n `Missing readable ID for interface-defined property RID ${propertyRid} on interface ${interfaceType.apiName}`,\n );\n }\n propReadableId = registeredReadableId;\n propApiName = property.interfaceDefinedPropertyType.apiName;\n propInputShape = {\n about: createLocalizedAbout(\n property.interfaceDefinedPropertyType.displayMetadata.displayName,\n property.interfaceDefinedPropertyType.displayMetadata.description ??\n \"\",\n ),\n type: {\n type: \"objectPropertyType\",\n objectPropertyType: typeToMarketplaceObjectPropertyType(\n property.interfaceDefinedPropertyType.type,\n ),\n },\n interfaceType: ridGenerator.toBlockInternalId(interfaceReadableId),\n requireImplementation:\n property.interfaceDefinedPropertyType.constraints\n .requireImplementation,\n };\n } else {\n const spt = property.sharedPropertyBasedPropertyType.sharedPropertyType;\n propReadableId = ReadableIdGenerator.getForSptBackedInterfaceProperty(\n interfaceType.apiName,\n spt.apiName,\n );\n propApiName = spt.apiName;\n propInputShape = {\n about: createLocalizedAbout(\n spt.displayMetadata.displayName,\n spt.displayMetadata.description ?? \"\",\n ),\n type: {\n type: \"objectPropertyType\",\n objectPropertyType: typeToMarketplaceObjectPropertyType(spt.type),\n },\n interfaceType: ridGenerator.toBlockInternalId(interfaceReadableId),\n requireImplementation:\n property.sharedPropertyBasedPropertyType.requireImplementation,\n sharedPropertyType: ridGenerator.toBlockInternalId(\n ReadableIdGenerator.getForSpt(spt.apiName),\n ),\n };\n }\n blockShapes.inputShapes.set(propReadableId, {\n type: \"interfacePropertyType\",\n interfacePropertyType: propInputShape,\n });\n addApiNamePreset(blockShapes, propReadableId, propApiName);\n }\n\n // Generate interface link type input shapes\n for (const interfaceLinkType of interfaceType.links ?? []) {\n const linkReadableId = ReadableIdGenerator.getForInterfaceLinkType(\n interfaceType.apiName,\n interfaceLinkType.metadata.apiName,\n );\n\n const linkedInterfaceRid =\n interfaceLinkType.linkedEntityTypeId.type === \"interfaceType\"\n ? interfaceLinkType.linkedEntityTypeId.interfaceType\n : undefined;\n\n const linkedReadableId = linkedInterfaceRid\n ? ridGenerator.getInterfaceRids().inverse().get(linkedInterfaceRid)\n : undefined;\n\n const linkedEntityTypeRef = linkedReadableId\n ? {\n type: \"interfaceType\" as const,\n interfaceType: ridGenerator.toBlockInternalId(linkedReadableId),\n }\n : undefined;\n\n if (!linkedEntityTypeRef) continue;\n\n const linkInputShape: InterfaceLinkTypeInputShape = {\n about: createLocalizedAbout(\n interfaceLinkType.metadata.displayName,\n interfaceLinkType.metadata.description,\n ),\n interfaceType: ridGenerator.toBlockInternalId(interfaceReadableId),\n linkedEntityType: linkedEntityTypeRef,\n cardinality:\n interfaceLinkType.cardinality === \"SINGLE\" ? \"SINGLE\" : \"MANY\",\n required: interfaceLinkType.required,\n };\n\n blockShapes.inputShapes.set(linkReadableId, {\n type: \"interfaceLinkType\",\n interfaceLinkType: linkInputShape,\n });\n addApiNamePreset(\n blockShapes,\n linkReadableId,\n interfaceLinkType.metadata.apiName,\n );\n }\n\n // Generate interface action type constraint input shapes\n for (const actionTypeConstraint of interfaceType.actionTypeConstraints ??\n []) {\n const constraintReadableId =\n ReadableIdGenerator.getForInterfaceActionTypeConstraint(\n interfaceType.apiName,\n actionTypeConstraint.metadata.apiName,\n );\n\n const parameterConstraintRefs: string[] = Object.entries(\n actionTypeConstraint.parameters ?? {},\n ).map(([paramRid, paramConstraint]) => {\n const paramDisplayApiName = paramConstraint.displayMetadata.apiName!;\n return ridGenerator.toBlockInternalId(\n ReadableIdGenerator.getForInterfaceParameterConstraint(\n interfaceType.apiName,\n actionTypeConstraint.metadata.apiName,\n paramDisplayApiName,\n ),\n );\n });\n\n const constraintInputShape: InterfaceActionTypeConstraintShape = {\n about: createLocalizedAbout(\n actionTypeConstraint.metadata.displayName,\n actionTypeConstraint.metadata.description ??\n actionTypeConstraint.metadata.displayName,\n ),\n interfaceType: ridGenerator.toBlockInternalId(interfaceReadableId),\n parameterConstraints: parameterConstraintRefs,\n requireImplementation: actionTypeConstraint.requireImplementation,\n };\n\n blockShapes.inputShapes.set(constraintReadableId, {\n type: \"interfaceActionTypeConstraint\",\n interfaceActionTypeConstraint: constraintInputShape,\n });\n addApiNamePreset(\n blockShapes,\n constraintReadableId,\n actionTypeConstraint.metadata.apiName,\n );\n\n // Generate interface parameter constraint input shapes\n for (const [paramRid, paramConstraint] of Object.entries(\n actionTypeConstraint.parameters ?? {},\n )) {\n const paramDisplayApiName = paramConstraint.displayMetadata.apiName!;\n const paramReadableId =\n ReadableIdGenerator.getForInterfaceParameterConstraint(\n interfaceType.apiName,\n actionTypeConstraint.metadata.apiName,\n paramDisplayApiName,\n );\n\n const paramInputShape: InterfaceParameterConstraintShape = {\n about: createLocalizedAbout(\n paramConstraint.displayMetadata.displayName,\n paramConstraint.displayMetadata.displayName,\n ),\n actionTypeConstraint:\n ridGenerator.toBlockInternalId(constraintReadableId),\n requireImplementation: paramConstraint.requireImplementation,\n type: paramConstraint.type,\n };\n\n blockShapes.inputShapes.set(paramReadableId, {\n type: \"interfaceParameterConstraint\",\n interfaceParameterConstraint: paramInputShape,\n });\n addApiNamePreset(blockShapes, paramReadableId, paramDisplayApiName);\n }\n }\n }\n}\n\nfunction extractImportedSharedPropertyTypes(\n importedBlockData: OntologyBlockDataV2,\n ridGenerator: OntologyRidGenerator,\n blockShapes: ImportedBlockShapes,\n): void {\n for (const [_rid, sptBlock] of Object.entries(\n importedBlockData.sharedPropertyTypes,\n )) {\n const spt = sptBlock.sharedPropertyType;\n const readableId = ReadableIdGenerator.getForSpt(spt.apiName);\n\n const inputShape: SharedPropertyTypeInputShape = {\n about: createLocalizedAbout(\n spt.displayMetadata.displayName,\n spt.displayMetadata.description ?? \"\",\n ),\n type: {\n type: \"objectPropertyType\",\n objectPropertyType: typeToMarketplaceObjectPropertyType(spt.type),\n },\n };\n\n blockShapes.inputShapes.set(readableId, {\n type: \"sharedPropertyType\",\n sharedPropertyType: inputShape,\n });\n addApiNamePreset(blockShapes, readableId, spt.apiName);\n\n blockShapes.inputShapeMetadata.set(readableId, {\n isOptional: false,\n isAccessedInReconcile: true,\n reconcileAccessRequirements: \"RESOURCE_EXISTENCE_REQUIRED\",\n preallocateAccessRequirements: \"RESOURCE_PREALLOCATION_REQUIRED\",\n });\n\n extractValueTypeInputShapeIfPresent(\n spt.valueType ?? undefined,\n spt.displayMetadata.displayName,\n spt.type,\n blockShapes,\n ridGenerator,\n );\n }\n}\n\nfunction extractImportedActionTypes(\n importedBlockData: OntologyBlockDataV2,\n ridGenerator: OntologyRidGenerator,\n blockShapes: ImportedBlockShapes,\n): void {\n for (const [_rid, actionTypeBlock] of Object.entries(\n importedBlockData.actionTypes ?? {},\n )) {\n const actionApiName = (actionTypeBlock.actionType as ActionType).metadata\n .apiName;\n const actionReadableId =\n ReadableIdGenerator.getForActionType(actionApiName);\n\n const parametersV2: string[] = Object.entries(\n actionTypeBlock.parameterIds ?? {},\n ).map(([_key, parameterId]) => {\n const paramReadableId = ReadableIdGenerator.getForParameter(\n actionApiName,\n parameterId,\n );\n return ridGenerator.toBlockInternalId(paramReadableId);\n });\n\n const actionShape: ActionTypeShape = {\n about: createLocalizedAbout(\n (actionTypeBlock.actionType as ActionType).metadata.displayMetadata\n .displayName,\n (actionTypeBlock.actionType as ActionType).metadata.displayMetadata\n .description,\n ),\n parameters: {},\n parametersV2,\n };\n\n blockShapes.inputShapes.set(actionReadableId, {\n type: \"action\",\n action: actionShape,\n });\n addApiNamePreset(blockShapes, actionReadableId, actionApiName);\n\n // Generate parameter input shapes\n const parameters = (actionTypeBlock.actionType as ActionType).metadata\n .parameters;\n if (parameters) {\n const converter = new ImportedBaseParameterTypeConverter(\n importedBlockData.knownIdentifiers.objectTypeIds,\n importedBlockData.knownIdentifiers.interfaceTypes,\n );\n\n for (const [parameterId, parameter] of Object.entries(parameters)) {\n const paramReadableId = ReadableIdGenerator.getForParameter(\n actionApiName,\n parameterId,\n );\n\n const parameterShape: ActionTypeParameterShape = {\n about: createLocalizedAbout(\n parameter.displayMetadata.displayName,\n parameter.displayMetadata.description,\n ),\n type: converter.convert(parameter.type),\n actionType: ridGenerator.toBlockInternalId(actionReadableId),\n };\n\n blockShapes.inputShapes.set(paramReadableId, {\n type: \"actionParameter\",\n actionParameter: parameterShape,\n });\n addApiNamePreset(blockShapes, paramReadableId, parameterId);\n }\n }\n }\n}\n\nfunction addApiNamePreset(\n blockShapes: ImportedBlockShapes,\n readableId: ReadableId,\n apiName: string,\n): void {\n addPreset(blockShapes, readableId, {\n type: \"apiNameResolver\",\n apiNameResolver: { apiName },\n });\n}\n\nfunction addPreset(\n blockShapes: ImportedBlockShapes,\n readableId: ReadableId,\n resolver: InputShapeResolver,\n): void {\n blockShapes.inputPresets.set(readableId, {\n value: {\n type: \"fromSource\",\n fromSource: { resolver },\n },\n exportCompatibility: \"COMPATIBLE\",\n enforcement: \"SUGGESTED\",\n isDefault: false,\n });\n}\n\nfunction getObjectTypeBlockId(\n ridGenerator: OntologyRidGenerator,\n objectTypeRid: ObjectTypeRid,\n): string {\n const readableId = ridGenerator\n .getObjectTypeRids()\n .inverse()\n .get(objectTypeRid);\n if (!readableId) {\n throw new Error(`Object type RID not found: ${objectTypeRid}`);\n }\n return ridGenerator.toBlockInternalId(readableId);\n}\n\nfunction getLinkTypeBlockId(\n ridGenerator: OntologyRidGenerator,\n linkTypeRid: string,\n): string {\n const readableId = ridGenerator.getLinkTypeRids().inverse().get(linkTypeRid);\n if (!readableId) {\n throw new Error(`Link type RID not found: ${linkTypeRid}`);\n }\n return ridGenerator.toBlockInternalId(readableId);\n}\n\n/**\n * Simplified parameter type converter for imported action types.\n * Mirrors BaseParameterTypeConverter from ActionTypeShapeExtractor.\n */\nclass ImportedBaseParameterTypeConverter {\n private readonly objectTypeIds: Record<string, string>;\n private readonly interfaceTypes: Record<string, string>;\n\n constructor(\n objectTypeIds?: Record<string, string>,\n interfaceTypes?: Record<string, string>,\n ) {\n this.objectTypeIds = objectTypeIds ?? {};\n this.interfaceTypes = interfaceTypes ?? {};\n }\n\n convert(parameterType: { type: string }): BaseParameterType {\n const pt = parameterType as Record<string, unknown> & { type: string };\n const t = pt.type;\n\n // Simple types\n const simpleTypes = [\n \"boolean\",\n \"booleanList\",\n \"integer\",\n \"integerList\",\n \"long\",\n \"longList\",\n \"double\",\n \"doubleList\",\n \"string\",\n \"stringList\",\n \"geohash\",\n \"geohashList\",\n \"geoshape\",\n \"geoshapeList\",\n \"timeSeriesReference\",\n \"timestamp\",\n \"timestampList\",\n \"date\",\n \"dateList\",\n \"attachment\",\n \"attachmentList\",\n \"marking\",\n \"markingList\",\n \"mediaReference\",\n \"objectTypeReference\",\n \"geotimeSeriesReference\",\n \"geotimeSeriesReferenceList\",\n ];\n\n if (simpleTypes.includes(t)) {\n return { type: t, [t]: {} } as unknown as BaseParameterType;\n }\n\n // Object reference types\n if (\n t === \"objectReference\" ||\n t === \"objectReferenceList\" ||\n t === \"objectSetRid\"\n ) {\n const objRef = pt[t] as { objectTypeId: string } | undefined;\n const blockId = objRef\n ? this.objectTypeIds[objRef.objectTypeId]\n : undefined;\n return {\n type: t,\n [t]: { objectTypeId: blockId ?? \"\" },\n } as unknown as BaseParameterType;\n }\n\n // Interface reference types\n if (\n t === \"interfaceReference\" ||\n t === \"interfaceReferenceList\" ||\n t === \"interfaceObjectSetRid\"\n ) {\n const ifRef = pt[t] as { interfaceTypeRid: string } | undefined;\n const blockId = ifRef\n ? this.interfaceTypes[ifRef.interfaceTypeRid]\n : undefined;\n return {\n type: t,\n [t]: { interfaceTypeRid: blockId ?? \"\" },\n } as unknown as BaseParameterType;\n }\n\n // Decimal types\n if (t === \"decimal\" || t === \"decimalList\") {\n const dec = pt[t] as { precision?: number; scale?: number } | undefined;\n return {\n type: t,\n [t]: { precision: dec?.precision, scale: dec?.scale },\n } as unknown as BaseParameterType;\n }\n\n return { type: t, [t]: {} } as unknown as BaseParameterType;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ImportedShapeExtractor.js","names":["ReadableIdGenerator","typeToMarketplaceObjectPropertyType","extractValueTypeInputShapeIfPresent","createLocalizedAbout","fallbackTitle","fallbackDescription","localizedTitle","localizedDescription","getImportedShapes","importedBlockData","ridGenerator","linkTypeIdsByApiName","blockShapes","inputShapes","Map","inputPresets","outputShapes","inputShapeMetadata","inputMappings","extractImportedObjectTypes","extractImportedLinkTypes","extractImportedInterfaceTypes","extractImportedSharedPropertyTypes","extractImportedActionTypes","objectReadableIds","getObjectTypeRids","inverse","propertyReadableIds","getPropertyTypeRids","rid","objectType","Object","entries","objectTypes","readableId","get","propertyBlockIds","propertyRid","keys","propertyTypes","propReadableId","push","toBlockInternalId","inputShape","about","displayMetadata","displayName","description","editsSupport","objectsBackendVersion","set","type","addApiNamePreset","apiName","isOptional","isAccessedInReconcile","reconcileAccessRequirements","preallocateAccessRequirements","propertyType","sptReadableId","sharedPropertyTypeRid","getSharedPropertyTypeRids","undefined","propInputShape","objectPropertyType","sharedPropertyType","property","linkReadableIds","getLinkTypeRids","linkType","linkTypes","definition","linkInputShape","def","oneToMany","shape","oneToManyLinkMetadata","objectTypeShapeIdOneSide","getObjectTypeBlockId","objectTypeRidOneSide","objectTypeShapeIdManySide","objectTypeRidManySide","manyToOneLinkMetadata","cardinalityHint","manyToMany","objectTypeAToBLinkMetadata","objectTypeShapeIdA","objectTypeRidA","objectTypeShapeIdB","objectTypeRidB","objectTypeBToALinkMetadata","intermediary","objectTypeAShapeId","objectTypeBShapeId","intermediaryObjectTypeShapeId","intermediaryObjectTypeRid","aToIntermediaryLinkTypeShapeId","getLinkTypeBlockId","aToIntermediaryLinkTypeRid","intermediaryToBLinkTypeShapeId","intermediaryToBLinkTypeRid","linkTypeId","id","addPreset","linkTypeIdResolver","linkTypeIdWithoutOntologyPrefix","knownIdentifiers","_rid","interfaceTypeBlock","interfaceTypes","interfaceType","interfaceReadableId","getForInterface","properties","values","propertiesV2","map","propEntry","getForSpt","propertiesV3","getInterfacePropertyTypeRids","Error","links","ilt","iltId","interfaceLinkTypes","actionTypeConstraints","constraint","constraintId","interfaceActionTypeConstraints","_sptRid","spt","has","interfaceDefinedPropertyType","requireImplementation","constraints","interfacePropertyType","interfaceLinkType","linkReadableId","getForInterfaceLinkType","metadata","linkedInterfaceRid","linkedEntityTypeId","linkedReadableId","getInterfaceRids","linkedEntityTypeRef","linkedEntityType","cardinality","required","actionTypeConstraint","constraintReadableId","getForInterfaceActionTypeConstraint","parameterConstraintRefs","parameters","paramRid","paramConstraint","paramDisplayApiName","getForInterfaceParameterConstraint","constraintInputShape","parameterConstraints","interfaceActionTypeConstraint","paramReadableId","paramInputShape","interfaceParameterConstraint","sptBlock","sharedPropertyTypes","valueType","actionTypeBlock","actionTypes","actionApiName","actionType","actionReadableId","getForActionType","parametersV2","parameterIds","_key","parameterId","getForParameter","actionShape","action","converter","ImportedBaseParameterTypeConverter","objectTypeIds","parameter","parameterShape","convert","actionParameter","apiNameResolver","resolver","value","fromSource","exportCompatibility","enforcement","isDefault","objectTypeRid","linkTypeRid","constructor","parameterType","pt","t","includes","objRef","blockId","objectTypeId","ifRef","interfaceTypeRid","dec","precision","scale"],"sources":["ImportedShapeExtractor.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 ActionType,\n IntermediaryLinkDefinition,\n ManyToManyLinkDefinition,\n MarketplaceInterfaceLinkType,\n ObjectTypeRid,\n OntologyBlockDataV2,\n} from \"@osdk/client.unstable\";\nimport type {\n ActionTypeParameterShape,\n ActionTypeShape,\n BaseParameterType,\n InterfaceActionTypeConstraintShape,\n InterfaceLinkTypeInputShape,\n InterfaceParameterConstraintShape,\n InterfacePropertyTypeInputShape,\n InterfaceTypeInputShape,\n InputPreset,\n InputShapeResolver,\n LinkTypeInputShape,\n LinkTypeIntermediaryShape,\n LinkTypeManyToManyInputShape,\n LinkTypeOneToManyShape,\n LocalizedTitleAndDescription,\n ObjectTypeInputShape,\n PropertyInputShape,\n SharedPropertyTypeInputShape,\n} from \"@osdk/client.unstable/api\";\n\nimport type {\n BlockShapes,\n OntologyRidGenerator,\n ReadableId,\n} from \"../../../util/generateRid.js\";\nimport { ReadableIdGenerator } from \"../../../util/generateRid.js\";\nimport { typeToMarketplaceObjectPropertyType } from \"../typeVisitors.js\";\nimport { extractValueTypeInputShapeIfPresent } from \"./IrShapeExtractor.js\";\n\ninterface ImportedBlockShapes extends BlockShapes {\n inputPresets: Map<ReadableId, InputPreset>;\n}\n\nexport type LinkTypeIdsByApiName = Readonly<Record<string, string>>;\n\nfunction createLocalizedAbout(\n fallbackTitle: string,\n fallbackDescription: string = \"\",\n): LocalizedTitleAndDescription {\n return {\n fallbackTitle,\n fallbackDescription,\n localizedTitle: {},\n localizedDescription: {},\n };\n}\n\n/**\n * Extracts INPUT shapes from imported ontology block data.\n * Each imported entity becomes an input shape so the marketplace can wire it\n * from the block that originally defined it.\n */\nexport function getImportedShapes(\n importedBlockData: OntologyBlockDataV2,\n ridGenerator: OntologyRidGenerator,\n linkTypeIdsByApiName: LinkTypeIdsByApiName = {},\n): ImportedBlockShapes {\n const blockShapes: ImportedBlockShapes = {\n inputShapes: new Map(),\n inputPresets: new Map(),\n outputShapes: new Map(),\n inputShapeMetadata: new Map(),\n inputMappings: [],\n };\n\n extractImportedObjectTypes(importedBlockData, ridGenerator, blockShapes);\n extractImportedLinkTypes(\n importedBlockData,\n ridGenerator,\n blockShapes,\n linkTypeIdsByApiName,\n );\n extractImportedInterfaceTypes(importedBlockData, ridGenerator, blockShapes);\n extractImportedSharedPropertyTypes(\n importedBlockData,\n ridGenerator,\n blockShapes,\n );\n extractImportedActionTypes(importedBlockData, ridGenerator, blockShapes);\n\n return blockShapes;\n}\n\nfunction extractImportedObjectTypes(\n importedBlockData: OntologyBlockDataV2,\n ridGenerator: OntologyRidGenerator,\n blockShapes: ImportedBlockShapes,\n): void {\n const objectReadableIds = ridGenerator.getObjectTypeRids().inverse();\n const propertyReadableIds = ridGenerator.getPropertyTypeRids().inverse();\n\n for (const [rid, objectType] of Object.entries(\n importedBlockData.objectTypes,\n )) {\n const readableId = objectReadableIds.get(rid as ObjectTypeRid);\n if (!readableId) continue;\n\n const propertyBlockIds: string[] = [];\n for (const propertyRid of Object.keys(\n objectType.objectType.propertyTypes,\n )) {\n const propReadableId = propertyReadableIds.get(propertyRid);\n if (propReadableId) {\n propertyBlockIds.push(ridGenerator.toBlockInternalId(propReadableId));\n }\n }\n\n const inputShape: ObjectTypeInputShape = {\n about: createLocalizedAbout(\n objectType.objectType.displayMetadata.displayName,\n objectType.objectType.displayMetadata.description ?? \"\",\n ),\n editsSupport: \"ANY\",\n objectsBackendVersion: \"V2\",\n propertyTypes: propertyBlockIds,\n };\n\n blockShapes.inputShapes.set(readableId, {\n type: \"objectType\",\n objectType: inputShape,\n });\n addApiNamePreset(blockShapes, readableId, objectType.objectType.apiName!);\n\n blockShapes.inputShapeMetadata.set(readableId, {\n isOptional: false,\n isAccessedInReconcile: true,\n reconcileAccessRequirements: \"RESOURCE_EXISTENCE_REQUIRED\",\n preallocateAccessRequirements: \"RESOURCE_PREALLOCATION_REQUIRED\",\n });\n\n // Generate property input shapes\n for (const [propertyRid, propertyType] of Object.entries(\n objectType.objectType.propertyTypes,\n )) {\n const propReadableId = propertyReadableIds.get(propertyRid);\n if (!propReadableId) continue;\n\n const sptReadableId = propertyType.sharedPropertyTypeRid\n ? ridGenerator\n .getSharedPropertyTypeRids()\n .inverse()\n .get(propertyType.sharedPropertyTypeRid)\n : undefined;\n\n const propInputShape: PropertyInputShape = {\n about: createLocalizedAbout(\n propertyType.displayMetadata.displayName,\n propertyType.displayMetadata.description ?? \"\",\n ),\n objectType: ridGenerator.toBlockInternalId(readableId),\n type: {\n type: \"objectPropertyType\",\n objectPropertyType: typeToMarketplaceObjectPropertyType(\n propertyType.type,\n ),\n },\n sharedPropertyType: sptReadableId\n ? ridGenerator.toBlockInternalId(sptReadableId)\n : undefined,\n };\n\n blockShapes.inputShapes.set(propReadableId, {\n type: \"property\",\n property: propInputShape,\n });\n addApiNamePreset(blockShapes, propReadableId, propertyType.apiName!);\n\n blockShapes.inputShapeMetadata.set(propReadableId, {\n isOptional: false,\n isAccessedInReconcile: true,\n reconcileAccessRequirements: \"RESOURCE_EXISTENCE_REQUIRED\",\n preallocateAccessRequirements: \"RESOURCE_PREALLOCATION_REQUIRED\",\n });\n }\n }\n}\n\nfunction extractImportedLinkTypes(\n importedBlockData: OntologyBlockDataV2,\n ridGenerator: OntologyRidGenerator,\n blockShapes: ImportedBlockShapes,\n linkTypeIdsByApiName: LinkTypeIdsByApiName,\n): void {\n const linkReadableIds = ridGenerator.getLinkTypeRids().inverse();\n\n for (const [rid, linkType] of Object.entries(importedBlockData.linkTypes)) {\n const readableId = linkReadableIds.get(rid);\n if (!readableId) continue;\n\n const definition = linkType.linkType.definition;\n let linkInputShape: LinkTypeInputShape;\n\n switch (definition.type) {\n case \"oneToMany\": {\n const def = definition.oneToMany;\n const shape: LinkTypeOneToManyShape = {\n about: createLocalizedAbout(\n def.oneToManyLinkMetadata.displayMetadata.displayName,\n ),\n objectTypeShapeIdOneSide: getObjectTypeBlockId(\n ridGenerator,\n def.objectTypeRidOneSide,\n ),\n objectTypeShapeIdManySide: getObjectTypeBlockId(\n ridGenerator,\n def.objectTypeRidManySide,\n ),\n manyToOneLinkMetadata: createLocalizedAbout(\n def.manyToOneLinkMetadata.displayMetadata.displayName,\n ),\n oneToManyLinkMetadata: createLocalizedAbout(\n def.oneToManyLinkMetadata.displayMetadata.displayName,\n ),\n cardinalityHint:\n def.cardinalityHint === \"ONE_TO_ONE\" ? \"ONE_TO_ONE\" : \"ONE_TO_MANY\",\n };\n linkInputShape = { type: \"oneToMany\", oneToMany: shape };\n break;\n }\n case \"manyToMany\": {\n const def = definition.manyToMany as ManyToManyLinkDefinition;\n const shape: LinkTypeManyToManyInputShape = {\n about: createLocalizedAbout(\n def.objectTypeAToBLinkMetadata.displayMetadata.displayName,\n ),\n objectTypeShapeIdA: getObjectTypeBlockId(\n ridGenerator,\n def.objectTypeRidA,\n ),\n objectTypeShapeIdB: getObjectTypeBlockId(\n ridGenerator,\n def.objectTypeRidB,\n ),\n objectTypeAToBLinkMetadata: createLocalizedAbout(\n def.objectTypeAToBLinkMetadata.displayMetadata.displayName,\n ),\n objectTypeBToALinkMetadata: createLocalizedAbout(\n def.objectTypeBToALinkMetadata.displayMetadata.displayName,\n ),\n editsSupport: \"ANY\",\n objectsBackendVersion: \"V2\",\n };\n linkInputShape = { type: \"manyToMany\", manyToMany: shape };\n break;\n }\n case \"intermediary\": {\n const def = definition.intermediary as IntermediaryLinkDefinition;\n const shape: LinkTypeIntermediaryShape = {\n about: createLocalizedAbout(\n def.objectTypeAToBLinkMetadata.displayMetadata.displayName,\n ),\n objectTypeAToBLinkMetadata: createLocalizedAbout(\n def.objectTypeAToBLinkMetadata.displayMetadata.displayName,\n ),\n objectTypeBToALinkMetadata: createLocalizedAbout(\n def.objectTypeBToALinkMetadata.displayMetadata.displayName,\n ),\n objectTypeAShapeId: getObjectTypeBlockId(\n ridGenerator,\n def.objectTypeRidA,\n ),\n objectTypeBShapeId: getObjectTypeBlockId(\n ridGenerator,\n def.objectTypeRidB,\n ),\n intermediaryObjectTypeShapeId: getObjectTypeBlockId(\n ridGenerator,\n def.intermediaryObjectTypeRid,\n ),\n aToIntermediaryLinkTypeShapeId: getLinkTypeBlockId(\n ridGenerator,\n def.aToIntermediaryLinkTypeRid,\n ),\n intermediaryToBLinkTypeShapeId: getLinkTypeBlockId(\n ridGenerator,\n def.intermediaryToBLinkTypeRid,\n ),\n };\n linkInputShape = { type: \"intermediary\", intermediary: shape };\n break;\n }\n default:\n continue;\n }\n\n blockShapes.inputShapes.set(readableId, {\n type: \"linkType\",\n linkType: linkInputShape,\n });\n const linkTypeId = linkTypeIdsByApiName[linkType.linkType.id];\n if (linkTypeId !== undefined) {\n addPreset(blockShapes, readableId, {\n type: \"linkTypeIdResolver\",\n linkTypeIdResolver: {\n linkTypeIdWithoutOntologyPrefix: linkTypeId,\n },\n });\n }\n\n blockShapes.inputShapeMetadata.set(readableId, {\n isOptional: false,\n isAccessedInReconcile: true,\n reconcileAccessRequirements: \"RESOURCE_EXISTENCE_REQUIRED\",\n preallocateAccessRequirements: \"RESOURCE_PREALLOCATION_REQUIRED\",\n });\n }\n}\n\nfunction extractImportedInterfaceTypes(\n importedBlockData: OntologyBlockDataV2,\n ridGenerator: OntologyRidGenerator,\n blockShapes: ImportedBlockShapes,\n): void {\n const knownIdentifiers = importedBlockData.knownIdentifiers;\n\n for (const [_rid, interfaceTypeBlock] of Object.entries(\n importedBlockData.interfaceTypes,\n )) {\n const interfaceType = interfaceTypeBlock.interfaceType;\n const interfaceReadableId = ReadableIdGenerator.getForInterface(\n interfaceType.apiName,\n );\n\n // Build properties list from propertiesV2 (SPT references as BlockInternalIds)\n const properties: string[] = Object.values(\n interfaceType.propertiesV2 ?? {},\n ).map((propEntry) =>\n ridGenerator.toBlockInternalId(\n ReadableIdGenerator.getForSpt(propEntry.sharedPropertyType.apiName),\n ),\n );\n\n const propertiesV2: string[] = [];\n for (const [propertyRid, property] of Object.entries(\n interfaceType.propertiesV3 ?? {},\n )) {\n if (property.type !== \"interfaceDefinedPropertyType\") continue;\n const propReadableId = ridGenerator\n .getInterfacePropertyTypeRids()\n .inverse()\n .get(propertyRid);\n if (!propReadableId) {\n throw new Error(\n `Missing readable ID for interface-defined property RID ${propertyRid} on interface ${interfaceType.apiName}`,\n );\n }\n propertiesV2.push(ridGenerator.toBlockInternalId(propReadableId));\n }\n\n // Build links list\n const links: string[] = (interfaceType.links ?? []).map(\n (ilt: MarketplaceInterfaceLinkType) => {\n const iltId = knownIdentifiers.interfaceLinkTypes?.[ilt.rid];\n return iltId ?? ilt.rid;\n },\n );\n\n // Build actionTypeConstraints list\n const actionTypeConstraints: string[] = (\n interfaceType.actionTypeConstraints ?? []\n ).map((constraint) => {\n const constraintId =\n knownIdentifiers.interfaceActionTypeConstraints?.[constraint.rid];\n return constraintId ?? constraint.rid;\n });\n\n const inputShape: InterfaceTypeInputShape = {\n about: createLocalizedAbout(\n interfaceType.displayMetadata.displayName,\n interfaceType.displayMetadata.description ?? \"\",\n ),\n actionTypeConstraints,\n properties,\n propertiesV2,\n links,\n };\n\n blockShapes.inputShapes.set(interfaceReadableId, {\n type: \"interfaceType\",\n interfaceType: inputShape,\n });\n addApiNamePreset(blockShapes, interfaceReadableId, interfaceType.apiName);\n\n // Generate SPT input shapes\n for (const [_sptRid, propEntry] of Object.entries(\n interfaceType.propertiesV2 ?? {},\n )) {\n const spt = propEntry.sharedPropertyType;\n const sptReadableId = ReadableIdGenerator.getForSpt(spt.apiName);\n if (blockShapes.inputShapes.has(sptReadableId)) continue;\n\n blockShapes.inputShapes.set(sptReadableId, {\n type: \"sharedPropertyType\",\n sharedPropertyType: {\n about: createLocalizedAbout(\n spt.displayMetadata.displayName,\n spt.displayMetadata.description ?? \"\",\n ),\n type: {\n type: \"objectPropertyType\",\n objectPropertyType: typeToMarketplaceObjectPropertyType(spt.type),\n },\n },\n });\n addApiNamePreset(blockShapes, sptReadableId, spt.apiName);\n blockShapes.inputShapeMetadata.set(sptReadableId, {\n isOptional: false,\n isAccessedInReconcile: true,\n reconcileAccessRequirements: \"RESOURCE_EXISTENCE_REQUIRED\",\n preallocateAccessRequirements: \"RESOURCE_PREALLOCATION_REQUIRED\",\n });\n }\n\n // Generate interface-defined property type input shapes. SPT-backed\n // properties are represented by their shared property type input shapes.\n for (const [propertyRid, property] of Object.entries(\n interfaceType.propertiesV3 ?? {},\n )) {\n if (property.type !== \"interfaceDefinedPropertyType\") continue;\n const propReadableId = ridGenerator\n .getInterfacePropertyTypeRids()\n .inverse()\n .get(propertyRid);\n if (!propReadableId) {\n throw new Error(\n `Missing readable ID for interface-defined property RID ${propertyRid} on interface ${interfaceType.apiName}`,\n );\n }\n const propInputShape: InterfacePropertyTypeInputShape = {\n about: createLocalizedAbout(\n property.interfaceDefinedPropertyType.displayMetadata.displayName,\n property.interfaceDefinedPropertyType.displayMetadata.description ??\n \"\",\n ),\n type: {\n type: \"objectPropertyType\",\n objectPropertyType: typeToMarketplaceObjectPropertyType(\n property.interfaceDefinedPropertyType.type,\n ),\n },\n interfaceType: ridGenerator.toBlockInternalId(interfaceReadableId),\n requireImplementation:\n property.interfaceDefinedPropertyType.constraints\n .requireImplementation,\n };\n blockShapes.inputShapes.set(propReadableId, {\n type: \"interfacePropertyType\",\n interfacePropertyType: propInputShape,\n });\n addApiNamePreset(\n blockShapes,\n propReadableId,\n property.interfaceDefinedPropertyType.apiName,\n );\n }\n\n // Generate interface link type input shapes\n for (const interfaceLinkType of interfaceType.links ?? []) {\n const linkReadableId = ReadableIdGenerator.getForInterfaceLinkType(\n interfaceType.apiName,\n interfaceLinkType.metadata.apiName,\n );\n\n const linkedInterfaceRid =\n interfaceLinkType.linkedEntityTypeId.type === \"interfaceType\"\n ? interfaceLinkType.linkedEntityTypeId.interfaceType\n : undefined;\n\n const linkedReadableId = linkedInterfaceRid\n ? ridGenerator.getInterfaceRids().inverse().get(linkedInterfaceRid)\n : undefined;\n\n const linkedEntityTypeRef = linkedReadableId\n ? {\n type: \"interfaceType\" as const,\n interfaceType: ridGenerator.toBlockInternalId(linkedReadableId),\n }\n : undefined;\n\n if (!linkedEntityTypeRef) continue;\n\n const linkInputShape: InterfaceLinkTypeInputShape = {\n about: createLocalizedAbout(\n interfaceLinkType.metadata.displayName,\n interfaceLinkType.metadata.description,\n ),\n interfaceType: ridGenerator.toBlockInternalId(interfaceReadableId),\n linkedEntityType: linkedEntityTypeRef,\n cardinality:\n interfaceLinkType.cardinality === \"SINGLE\" ? \"SINGLE\" : \"MANY\",\n required: interfaceLinkType.required,\n };\n\n blockShapes.inputShapes.set(linkReadableId, {\n type: \"interfaceLinkType\",\n interfaceLinkType: linkInputShape,\n });\n addApiNamePreset(\n blockShapes,\n linkReadableId,\n interfaceLinkType.metadata.apiName,\n );\n }\n\n // Generate interface action type constraint input shapes\n for (const actionTypeConstraint of interfaceType.actionTypeConstraints ??\n []) {\n const constraintReadableId =\n ReadableIdGenerator.getForInterfaceActionTypeConstraint(\n interfaceType.apiName,\n actionTypeConstraint.metadata.apiName,\n );\n\n const parameterConstraintRefs: string[] = Object.entries(\n actionTypeConstraint.parameters ?? {},\n ).map(([paramRid, paramConstraint]) => {\n const paramDisplayApiName = paramConstraint.displayMetadata.apiName!;\n return ridGenerator.toBlockInternalId(\n ReadableIdGenerator.getForInterfaceParameterConstraint(\n interfaceType.apiName,\n actionTypeConstraint.metadata.apiName,\n paramDisplayApiName,\n ),\n );\n });\n\n const constraintInputShape: InterfaceActionTypeConstraintShape = {\n about: createLocalizedAbout(\n actionTypeConstraint.metadata.displayName,\n actionTypeConstraint.metadata.description ??\n actionTypeConstraint.metadata.displayName,\n ),\n interfaceType: ridGenerator.toBlockInternalId(interfaceReadableId),\n parameterConstraints: parameterConstraintRefs,\n requireImplementation: actionTypeConstraint.requireImplementation,\n };\n\n blockShapes.inputShapes.set(constraintReadableId, {\n type: \"interfaceActionTypeConstraint\",\n interfaceActionTypeConstraint: constraintInputShape,\n });\n addApiNamePreset(\n blockShapes,\n constraintReadableId,\n actionTypeConstraint.metadata.apiName,\n );\n\n // Generate interface parameter constraint input shapes\n for (const [paramRid, paramConstraint] of Object.entries(\n actionTypeConstraint.parameters ?? {},\n )) {\n const paramDisplayApiName = paramConstraint.displayMetadata.apiName!;\n const paramReadableId =\n ReadableIdGenerator.getForInterfaceParameterConstraint(\n interfaceType.apiName,\n actionTypeConstraint.metadata.apiName,\n paramDisplayApiName,\n );\n\n const paramInputShape: InterfaceParameterConstraintShape = {\n about: createLocalizedAbout(\n paramConstraint.displayMetadata.displayName,\n paramConstraint.displayMetadata.displayName,\n ),\n actionTypeConstraint:\n ridGenerator.toBlockInternalId(constraintReadableId),\n requireImplementation: paramConstraint.requireImplementation,\n type: paramConstraint.type,\n };\n\n blockShapes.inputShapes.set(paramReadableId, {\n type: \"interfaceParameterConstraint\",\n interfaceParameterConstraint: paramInputShape,\n });\n addApiNamePreset(blockShapes, paramReadableId, paramDisplayApiName);\n }\n }\n }\n}\n\nfunction extractImportedSharedPropertyTypes(\n importedBlockData: OntologyBlockDataV2,\n ridGenerator: OntologyRidGenerator,\n blockShapes: ImportedBlockShapes,\n): void {\n for (const [_rid, sptBlock] of Object.entries(\n importedBlockData.sharedPropertyTypes,\n )) {\n const spt = sptBlock.sharedPropertyType;\n const readableId = ReadableIdGenerator.getForSpt(spt.apiName);\n\n const inputShape: SharedPropertyTypeInputShape = {\n about: createLocalizedAbout(\n spt.displayMetadata.displayName,\n spt.displayMetadata.description ?? \"\",\n ),\n type: {\n type: \"objectPropertyType\",\n objectPropertyType: typeToMarketplaceObjectPropertyType(spt.type),\n },\n };\n\n blockShapes.inputShapes.set(readableId, {\n type: \"sharedPropertyType\",\n sharedPropertyType: inputShape,\n });\n addApiNamePreset(blockShapes, readableId, spt.apiName);\n\n blockShapes.inputShapeMetadata.set(readableId, {\n isOptional: false,\n isAccessedInReconcile: true,\n reconcileAccessRequirements: \"RESOURCE_EXISTENCE_REQUIRED\",\n preallocateAccessRequirements: \"RESOURCE_PREALLOCATION_REQUIRED\",\n });\n\n extractValueTypeInputShapeIfPresent(\n spt.valueType ?? undefined,\n spt.displayMetadata.displayName,\n spt.type,\n blockShapes,\n ridGenerator,\n );\n }\n}\n\nfunction extractImportedActionTypes(\n importedBlockData: OntologyBlockDataV2,\n ridGenerator: OntologyRidGenerator,\n blockShapes: ImportedBlockShapes,\n): void {\n for (const [_rid, actionTypeBlock] of Object.entries(\n importedBlockData.actionTypes ?? {},\n )) {\n const actionApiName = (actionTypeBlock.actionType as ActionType).metadata\n .apiName;\n const actionReadableId =\n ReadableIdGenerator.getForActionType(actionApiName);\n\n const parametersV2: string[] = Object.entries(\n actionTypeBlock.parameterIds ?? {},\n ).map(([_key, parameterId]) => {\n const paramReadableId = ReadableIdGenerator.getForParameter(\n actionApiName,\n parameterId,\n );\n return ridGenerator.toBlockInternalId(paramReadableId);\n });\n\n const actionShape: ActionTypeShape = {\n about: createLocalizedAbout(\n (actionTypeBlock.actionType as ActionType).metadata.displayMetadata\n .displayName,\n (actionTypeBlock.actionType as ActionType).metadata.displayMetadata\n .description,\n ),\n parameters: {},\n parametersV2,\n };\n\n blockShapes.inputShapes.set(actionReadableId, {\n type: \"action\",\n action: actionShape,\n });\n addApiNamePreset(blockShapes, actionReadableId, actionApiName);\n\n // Generate parameter input shapes\n const parameters = (actionTypeBlock.actionType as ActionType).metadata\n .parameters;\n if (parameters) {\n const converter = new ImportedBaseParameterTypeConverter(\n importedBlockData.knownIdentifiers.objectTypeIds,\n importedBlockData.knownIdentifiers.interfaceTypes,\n );\n\n for (const [parameterId, parameter] of Object.entries(parameters)) {\n const paramReadableId = ReadableIdGenerator.getForParameter(\n actionApiName,\n parameterId,\n );\n\n const parameterShape: ActionTypeParameterShape = {\n about: createLocalizedAbout(\n parameter.displayMetadata.displayName,\n parameter.displayMetadata.description,\n ),\n type: converter.convert(parameter.type),\n actionType: ridGenerator.toBlockInternalId(actionReadableId),\n };\n\n blockShapes.inputShapes.set(paramReadableId, {\n type: \"actionParameter\",\n actionParameter: parameterShape,\n });\n addApiNamePreset(blockShapes, paramReadableId, parameterId);\n }\n }\n }\n}\n\nfunction addApiNamePreset(\n blockShapes: ImportedBlockShapes,\n readableId: ReadableId,\n apiName: string,\n): void {\n addPreset(blockShapes, readableId, {\n type: \"apiNameResolver\",\n apiNameResolver: { apiName },\n });\n}\n\nfunction addPreset(\n blockShapes: ImportedBlockShapes,\n readableId: ReadableId,\n resolver: InputShapeResolver,\n): void {\n blockShapes.inputPresets.set(readableId, {\n value: {\n type: \"fromSource\",\n fromSource: { resolver },\n },\n exportCompatibility: \"COMPATIBLE\",\n enforcement: \"SUGGESTED\",\n isDefault: false,\n });\n}\n\nfunction getObjectTypeBlockId(\n ridGenerator: OntologyRidGenerator,\n objectTypeRid: ObjectTypeRid,\n): string {\n const readableId = ridGenerator\n .getObjectTypeRids()\n .inverse()\n .get(objectTypeRid);\n if (!readableId) {\n throw new Error(`Object type RID not found: ${objectTypeRid}`);\n }\n return ridGenerator.toBlockInternalId(readableId);\n}\n\nfunction getLinkTypeBlockId(\n ridGenerator: OntologyRidGenerator,\n linkTypeRid: string,\n): string {\n const readableId = ridGenerator.getLinkTypeRids().inverse().get(linkTypeRid);\n if (!readableId) {\n throw new Error(`Link type RID not found: ${linkTypeRid}`);\n }\n return ridGenerator.toBlockInternalId(readableId);\n}\n\n/**\n * Simplified parameter type converter for imported action types.\n * Mirrors BaseParameterTypeConverter from ActionTypeShapeExtractor.\n */\nclass ImportedBaseParameterTypeConverter {\n private readonly objectTypeIds: Record<string, string>;\n private readonly interfaceTypes: Record<string, string>;\n\n constructor(\n objectTypeIds?: Record<string, string>,\n interfaceTypes?: Record<string, string>,\n ) {\n this.objectTypeIds = objectTypeIds ?? {};\n this.interfaceTypes = interfaceTypes ?? {};\n }\n\n convert(parameterType: { type: string }): BaseParameterType {\n const pt = parameterType as Record<string, unknown> & { type: string };\n const t = pt.type;\n\n // Simple types\n const simpleTypes = [\n \"boolean\",\n \"booleanList\",\n \"integer\",\n \"integerList\",\n \"long\",\n \"longList\",\n \"double\",\n \"doubleList\",\n \"string\",\n \"stringList\",\n \"geohash\",\n \"geohashList\",\n \"geoshape\",\n \"geoshapeList\",\n \"timeSeriesReference\",\n \"timestamp\",\n \"timestampList\",\n \"date\",\n \"dateList\",\n \"attachment\",\n \"attachmentList\",\n \"marking\",\n \"markingList\",\n \"mediaReference\",\n \"objectTypeReference\",\n \"geotimeSeriesReference\",\n \"geotimeSeriesReferenceList\",\n ];\n\n if (simpleTypes.includes(t)) {\n return { type: t, [t]: {} } as unknown as BaseParameterType;\n }\n\n // Object reference types\n if (\n t === \"objectReference\" ||\n t === \"objectReferenceList\" ||\n t === \"objectSetRid\"\n ) {\n const objRef = pt[t] as { objectTypeId: string } | undefined;\n const blockId = objRef\n ? this.objectTypeIds[objRef.objectTypeId]\n : undefined;\n return {\n type: t,\n [t]: { objectTypeId: blockId ?? \"\" },\n } as unknown as BaseParameterType;\n }\n\n // Interface reference types\n if (\n t === \"interfaceReference\" ||\n t === \"interfaceReferenceList\" ||\n t === \"interfaceObjectSetRid\"\n ) {\n const ifRef = pt[t] as { interfaceTypeRid: string } | undefined;\n const blockId = ifRef\n ? this.interfaceTypes[ifRef.interfaceTypeRid]\n : undefined;\n return {\n type: t,\n [t]: { interfaceTypeRid: blockId ?? \"\" },\n } as unknown as BaseParameterType;\n }\n\n // Decimal types\n if (t === \"decimal\" || t === \"decimalList\") {\n const dec = pt[t] as { precision?: number; scale?: number } | undefined;\n return {\n type: t,\n [t]: { precision: dec?.precision, scale: dec?.scale },\n } as unknown as BaseParameterType;\n }\n\n return { type: t, [t]: {} } as unknown as BaseParameterType;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build/cjs/index.cjs
CHANGED
|
@@ -5056,9 +5056,10 @@ function extractImportedInterfaceTypes(importedBlockData, ridGenerator, blockSha
|
|
|
5056
5056
|
const properties = Object.values(interfaceType.propertiesV2 ?? {}).map((propEntry) => ridGenerator.toBlockInternalId(chunkD3ZAJI7I_cjs.ReadableIdGenerator.getForSpt(propEntry.sharedPropertyType.apiName)));
|
|
5057
5057
|
const propertiesV2 = [];
|
|
5058
5058
|
for (const [propertyRid, property] of Object.entries(interfaceType.propertiesV3 ?? {})) {
|
|
5059
|
-
|
|
5059
|
+
if (property.type !== "interfaceDefinedPropertyType") continue;
|
|
5060
|
+
const propReadableId = ridGenerator.getInterfacePropertyTypeRids().inverse().get(propertyRid);
|
|
5060
5061
|
if (!propReadableId) {
|
|
5061
|
-
throw new Error(`Missing readable ID for interface property RID ${propertyRid} on interface ${interfaceType.apiName}`);
|
|
5062
|
+
throw new Error(`Missing readable ID for interface-defined property RID ${propertyRid} on interface ${interfaceType.apiName}`);
|
|
5062
5063
|
}
|
|
5063
5064
|
propertiesV2.push(ridGenerator.toBlockInternalId(propReadableId));
|
|
5064
5065
|
}
|
|
@@ -5105,45 +5106,25 @@ function extractImportedInterfaceTypes(importedBlockData, ridGenerator, blockSha
|
|
|
5105
5106
|
});
|
|
5106
5107
|
}
|
|
5107
5108
|
for (const [propertyRid, property] of Object.entries(interfaceType.propertiesV3 ?? {})) {
|
|
5108
|
-
|
|
5109
|
-
|
|
5110
|
-
|
|
5111
|
-
|
|
5112
|
-
const registeredReadableId = ridGenerator.getInterfacePropertyTypeRids().inverse().get(propertyRid);
|
|
5113
|
-
if (!registeredReadableId) {
|
|
5114
|
-
throw new Error(`Missing readable ID for interface-defined property RID ${propertyRid} on interface ${interfaceType.apiName}`);
|
|
5115
|
-
}
|
|
5116
|
-
propReadableId = registeredReadableId;
|
|
5117
|
-
propApiName = property.interfaceDefinedPropertyType.apiName;
|
|
5118
|
-
propInputShape = {
|
|
5119
|
-
about: createLocalizedAbout4(property.interfaceDefinedPropertyType.displayMetadata.displayName, property.interfaceDefinedPropertyType.displayMetadata.description ?? ""),
|
|
5120
|
-
type: {
|
|
5121
|
-
type: "objectPropertyType",
|
|
5122
|
-
objectPropertyType: typeToMarketplaceObjectPropertyType(property.interfaceDefinedPropertyType.type)
|
|
5123
|
-
},
|
|
5124
|
-
interfaceType: ridGenerator.toBlockInternalId(interfaceReadableId),
|
|
5125
|
-
requireImplementation: property.interfaceDefinedPropertyType.constraints.requireImplementation
|
|
5126
|
-
};
|
|
5127
|
-
} else {
|
|
5128
|
-
const spt = property.sharedPropertyBasedPropertyType.sharedPropertyType;
|
|
5129
|
-
propReadableId = chunkD3ZAJI7I_cjs.ReadableIdGenerator.getForSptBackedInterfaceProperty(interfaceType.apiName, spt.apiName);
|
|
5130
|
-
propApiName = spt.apiName;
|
|
5131
|
-
propInputShape = {
|
|
5132
|
-
about: createLocalizedAbout4(spt.displayMetadata.displayName, spt.displayMetadata.description ?? ""),
|
|
5133
|
-
type: {
|
|
5134
|
-
type: "objectPropertyType",
|
|
5135
|
-
objectPropertyType: typeToMarketplaceObjectPropertyType(spt.type)
|
|
5136
|
-
},
|
|
5137
|
-
interfaceType: ridGenerator.toBlockInternalId(interfaceReadableId),
|
|
5138
|
-
requireImplementation: property.sharedPropertyBasedPropertyType.requireImplementation,
|
|
5139
|
-
sharedPropertyType: ridGenerator.toBlockInternalId(chunkD3ZAJI7I_cjs.ReadableIdGenerator.getForSpt(spt.apiName))
|
|
5140
|
-
};
|
|
5109
|
+
if (property.type !== "interfaceDefinedPropertyType") continue;
|
|
5110
|
+
const propReadableId = ridGenerator.getInterfacePropertyTypeRids().inverse().get(propertyRid);
|
|
5111
|
+
if (!propReadableId) {
|
|
5112
|
+
throw new Error(`Missing readable ID for interface-defined property RID ${propertyRid} on interface ${interfaceType.apiName}`);
|
|
5141
5113
|
}
|
|
5114
|
+
const propInputShape = {
|
|
5115
|
+
about: createLocalizedAbout4(property.interfaceDefinedPropertyType.displayMetadata.displayName, property.interfaceDefinedPropertyType.displayMetadata.description ?? ""),
|
|
5116
|
+
type: {
|
|
5117
|
+
type: "objectPropertyType",
|
|
5118
|
+
objectPropertyType: typeToMarketplaceObjectPropertyType(property.interfaceDefinedPropertyType.type)
|
|
5119
|
+
},
|
|
5120
|
+
interfaceType: ridGenerator.toBlockInternalId(interfaceReadableId),
|
|
5121
|
+
requireImplementation: property.interfaceDefinedPropertyType.constraints.requireImplementation
|
|
5122
|
+
};
|
|
5142
5123
|
blockShapes.inputShapes.set(propReadableId, {
|
|
5143
5124
|
type: "interfacePropertyType",
|
|
5144
5125
|
interfacePropertyType: propInputShape
|
|
5145
5126
|
});
|
|
5146
|
-
addApiNamePreset(blockShapes, propReadableId,
|
|
5127
|
+
addApiNamePreset(blockShapes, propReadableId, property.interfaceDefinedPropertyType.apiName);
|
|
5147
5128
|
}
|
|
5148
5129
|
for (const interfaceLinkType of interfaceType.links ?? []) {
|
|
5149
5130
|
const linkReadableId = chunkD3ZAJI7I_cjs.ReadableIdGenerator.getForInterfaceLinkType(interfaceType.apiName, interfaceLinkType.metadata.apiName);
|
|
@@ -5951,7 +5932,7 @@ var apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/u;
|
|
|
5951
5932
|
var uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/u;
|
|
5952
5933
|
async function main(args = process.argv) {
|
|
5953
5934
|
consola.consola.log("Generating BlockGeneratorResult for ontology...");
|
|
5954
|
-
const commandLineOpts = await yargs__default.default(helpers.hideBin(args)).version("0.
|
|
5935
|
+
const commandLineOpts = await yargs__default.default(helpers.hideBin(args)).version("0.53.0").wrap(Math.min(150, yargs__default.default().terminalWidth())).strict().help().options({
|
|
5955
5936
|
input: {
|
|
5956
5937
|
alias: "i",
|
|
5957
5938
|
describe: "Input file",
|