@party-stack/foundry-ontology 0.18.1 → 0.20.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.
Files changed (203) hide show
  1. package/README.md +56 -16
  2. package/lib/adapter/backend.d.ts +35 -0
  3. package/lib/adapter/backend.d.ts.map +1 -0
  4. package/lib/adapter/backend.js +210 -0
  5. package/lib/adapter/backend.js.map +1 -0
  6. package/lib/adapter/encrypted.d.ts +12 -0
  7. package/lib/adapter/encrypted.d.ts.map +1 -0
  8. package/lib/adapter/encrypted.js +79 -0
  9. package/lib/adapter/encrypted.js.map +1 -0
  10. package/lib/adapter/foundryActionError.d.ts +7 -0
  11. package/lib/adapter/foundryActionError.d.ts.map +1 -0
  12. package/lib/adapter/foundryActionError.js +61 -0
  13. package/lib/adapter/foundryActionError.js.map +1 -0
  14. package/lib/adapter/foundryActionValidation.d.ts +4 -3
  15. package/lib/adapter/foundryActionValidation.d.ts.map +1 -1
  16. package/lib/adapter/foundryActionValidation.js +71 -25
  17. package/lib/adapter/foundryActionValidation.js.map +1 -1
  18. package/lib/adapter/foundryCodec.d.ts +3 -5
  19. package/lib/adapter/foundryCodec.d.ts.map +1 -1
  20. package/lib/adapter/foundryCodec.js +19 -7
  21. package/lib/adapter/foundryCodec.js.map +1 -1
  22. package/lib/adapter/foundryObjectSearch.d.ts +13 -0
  23. package/lib/adapter/foundryObjectSearch.d.ts.map +1 -0
  24. package/lib/adapter/foundryObjectSearch.js +57 -0
  25. package/lib/adapter/foundryObjectSearch.js.map +1 -0
  26. package/lib/adapter/index.d.ts +3 -4
  27. package/lib/adapter/index.js +3 -4
  28. package/lib/adapter/likeFilter.d.ts +10 -0
  29. package/lib/adapter/likeFilter.d.ts.map +1 -0
  30. package/lib/adapter/likeFilter.js +87 -0
  31. package/lib/adapter/likeFilter.js.map +1 -0
  32. package/lib/adapter/makeFoundryOntologyBackend.d.ts +76 -0
  33. package/lib/adapter/makeFoundryOntologyBackend.d.ts.map +1 -0
  34. package/lib/adapter/makeFoundryOntologyBackend.js +505 -0
  35. package/lib/adapter/makeFoundryOntologyBackend.js.map +1 -0
  36. package/lib/adapter/subsetFilter.d.ts +14 -0
  37. package/lib/adapter/subsetFilter.d.ts.map +1 -0
  38. package/lib/adapter/subsetFilter.js +105 -0
  39. package/lib/adapter/subsetFilter.js.map +1 -0
  40. package/lib/adapter/uploads.d.ts +25 -0
  41. package/lib/adapter/uploads.d.ts.map +1 -0
  42. package/lib/adapter/uploads.js +78 -0
  43. package/lib/adapter/uploads.js.map +1 -0
  44. package/lib/backend.d.ts +80 -0
  45. package/lib/backend.d.ts.map +1 -0
  46. package/lib/backend.js +34 -0
  47. package/lib/backend.js.map +1 -0
  48. package/lib/config/index.d.ts +8 -12
  49. package/lib/config/index.d.ts.map +1 -1
  50. package/lib/config/index.js +49 -52
  51. package/lib/config/index.js.map +1 -1
  52. package/lib/connectionOptions.d.ts +9 -0
  53. package/lib/connectionOptions.d.ts.map +1 -0
  54. package/lib/connectionOptions.js +1 -0
  55. package/lib/context.d.ts +21 -0
  56. package/lib/context.d.ts.map +1 -0
  57. package/lib/context.js +16 -0
  58. package/lib/context.js.map +1 -0
  59. package/lib/index.d.ts +7 -7
  60. package/lib/index.js +6 -7
  61. package/lib/meta/backend.d.ts +10 -0
  62. package/lib/meta/backend.d.ts.map +1 -0
  63. package/lib/meta/backend.js +161 -0
  64. package/lib/meta/backend.js.map +1 -0
  65. package/lib/meta/convertMetaActionType.d.ts +3 -2
  66. package/lib/meta/convertMetaActionType.d.ts.map +1 -1
  67. package/lib/meta/convertMetaActionType.js +3 -3
  68. package/lib/meta/convertMetaActionType.js.map +1 -1
  69. package/lib/meta/convertMetaLinkType.d.ts +2 -2
  70. package/lib/meta/convertMetaLinkType.d.ts.map +1 -1
  71. package/lib/meta/convertMetaLinkType.js +13 -13
  72. package/lib/meta/convertMetaLinkType.js.map +1 -1
  73. package/lib/meta/convertMetaObjectType.d.ts +2 -2
  74. package/lib/meta/convertMetaObjectType.d.ts.map +1 -1
  75. package/lib/meta/convertMetaObjectType.js +5 -1
  76. package/lib/meta/convertMetaObjectType.js.map +1 -1
  77. package/lib/meta/convertMetaQueryFunctionType.d.ts +1 -1
  78. package/lib/meta/convertMetaQueryFunctionType.js.map +1 -1
  79. package/lib/meta/convertMetaTypeDef.d.ts +1 -1
  80. package/lib/meta/convertMetaTypeDef.d.ts.map +1 -1
  81. package/lib/meta/convertMetaTypeDef.js +7 -1
  82. package/lib/meta/convertMetaTypeDef.js.map +1 -1
  83. package/lib/meta/convertMetaValueType.d.ts +2 -2
  84. package/lib/meta/convertMetaValueType.d.ts.map +1 -1
  85. package/lib/meta/convertMetaValueType.js.map +1 -1
  86. package/lib/meta/convertOmsActionParameterMetadata.d.ts +1 -1
  87. package/lib/meta/convertOmsActionParameterMetadata.js +1 -1
  88. package/lib/meta/convertOmsActionParameterMetadata.js.map +1 -1
  89. package/lib/meta/index.d.ts +2 -4
  90. package/lib/meta/index.js +2 -4
  91. package/lib/meta/listObjectTypes.d.ts +6 -0
  92. package/lib/meta/listObjectTypes.d.ts.map +1 -0
  93. package/lib/meta/listObjectTypes.js +13 -0
  94. package/lib/meta/listObjectTypes.js.map +1 -0
  95. package/lib/meta/loadActionTypeOmsMetadata.d.ts +1 -0
  96. package/lib/meta/loadActions.d.ts +7 -0
  97. package/lib/meta/loadActions.d.ts.map +1 -0
  98. package/lib/meta/loadActions.js +20 -0
  99. package/lib/meta/loadActions.js.map +1 -0
  100. package/lib/meta/loadEntities.d.ts +9 -0
  101. package/lib/meta/loadEntities.d.ts.map +1 -0
  102. package/lib/meta/loadEntities.js +73 -0
  103. package/lib/meta/loadEntities.js.map +1 -0
  104. package/lib/meta/loadQueryFunctions.d.ts +11 -0
  105. package/lib/meta/loadQueryFunctions.d.ts.map +1 -0
  106. package/lib/meta/loadQueryFunctions.js +18 -0
  107. package/lib/meta/loadQueryFunctions.js.map +1 -0
  108. package/lib/meta/planMetaLookup.d.ts +12 -0
  109. package/lib/meta/planMetaLookup.d.ts.map +1 -0
  110. package/lib/meta/planMetaLookup.js +44 -0
  111. package/lib/meta/planMetaLookup.js.map +1 -0
  112. package/lib/platform.d.ts +78 -0
  113. package/lib/platform.d.ts.map +1 -0
  114. package/lib/platform.js +116 -0
  115. package/lib/platform.js.map +1 -0
  116. package/lib/platformCollections.d.ts +68 -0
  117. package/lib/platformCollections.d.ts.map +1 -0
  118. package/lib/platformCollections.js +7 -0
  119. package/lib/platformCollections.js.map +1 -0
  120. package/lib/serviceConnector.d.ts +8 -0
  121. package/lib/serviceConnector.d.ts.map +1 -0
  122. package/lib/serviceConnector.js +105 -0
  123. package/lib/serviceConnector.js.map +1 -0
  124. package/lib/stagedWrites.d.ts +3 -2
  125. package/lib/stagedWrites.d.ts.map +1 -1
  126. package/lib/stagedWrites.js +30 -3
  127. package/lib/stagedWrites.js.map +1 -1
  128. package/lib/users/admin.d.ts +105 -0
  129. package/lib/users/admin.d.ts.map +1 -0
  130. package/lib/users/admin.js +35 -0
  131. package/lib/users/admin.js.map +1 -0
  132. package/lib/users/createFoundryUsersIntegration.d.ts +2 -2
  133. package/lib/users/createFoundryUsersIntegration.d.ts.map +1 -1
  134. package/lib/users/createFoundryUsersIntegration.js +4 -6
  135. package/lib/users/createFoundryUsersIntegration.js.map +1 -1
  136. package/lib/users/foundryUser.d.ts +2 -2
  137. package/lib/users/foundryUser.js +1 -1
  138. package/lib/users/foundryUser.js.map +1 -1
  139. package/lib/users/index.d.ts +2 -3
  140. package/lib/users/index.js +2 -3
  141. package/lib/users/loadUserSubset.d.ts +8 -0
  142. package/lib/users/loadUserSubset.d.ts.map +1 -0
  143. package/lib/users/loadUserSubset.js +166 -0
  144. package/lib/users/loadUserSubset.js.map +1 -0
  145. package/lib/utils/AsyncIterable.d.ts +1 -1
  146. package/lib/utils/AsyncIterable.d.ts.map +1 -1
  147. package/lib/utils/AsyncIterable.js +11 -0
  148. package/lib/utils/AsyncIterable.js.map +1 -1
  149. package/package.json +17 -16
  150. package/lib/adapter/convertLoadSubsetOptions.d.ts +0 -8
  151. package/lib/adapter/convertLoadSubsetOptions.d.ts.map +0 -1
  152. package/lib/adapter/convertLoadSubsetOptions.js +0 -178
  153. package/lib/adapter/convertLoadSubsetOptions.js.map +0 -1
  154. package/lib/adapter/createFoundryOntologyBackendAdapter.d.ts +0 -29
  155. package/lib/adapter/createFoundryOntologyBackendAdapter.d.ts.map +0 -1
  156. package/lib/adapter/createFoundryOntologyBackendAdapter.js +0 -311
  157. package/lib/adapter/createFoundryOntologyBackendAdapter.js.map +0 -1
  158. package/lib/adapter/objectCollectionOptions.d.ts +0 -31
  159. package/lib/adapter/objectCollectionOptions.d.ts.map +0 -1
  160. package/lib/adapter/objectCollectionOptions.js +0 -448
  161. package/lib/adapter/objectCollectionOptions.js.map +0 -1
  162. package/lib/config/applyAttachmentConstraintOverrides.d.ts +0 -10
  163. package/lib/config/applyAttachmentConstraintOverrides.d.ts.map +0 -1
  164. package/lib/config/applyAttachmentConstraintOverrides.js +0 -50
  165. package/lib/config/applyAttachmentConstraintOverrides.js.map +0 -1
  166. package/lib/connection.d.ts +0 -38
  167. package/lib/connection.d.ts.map +0 -1
  168. package/lib/connection.js +0 -195
  169. package/lib/connection.js.map +0 -1
  170. package/lib/installation/createFoundryBackendInstallation.d.ts +0 -29
  171. package/lib/installation/createFoundryBackendInstallation.d.ts.map +0 -1
  172. package/lib/installation/createFoundryBackendInstallation.js +0 -60
  173. package/lib/installation/createFoundryBackendInstallation.js.map +0 -1
  174. package/lib/installation/index.d.ts +0 -2
  175. package/lib/installation/index.js +0 -2
  176. package/lib/meta/actionTypeCollectionOptions.d.ts +0 -14
  177. package/lib/meta/actionTypeCollectionOptions.d.ts.map +0 -1
  178. package/lib/meta/actionTypeCollectionOptions.js +0 -58
  179. package/lib/meta/actionTypeCollectionOptions.js.map +0 -1
  180. package/lib/meta/convertActionTypeLoadSubsetOptions.d.ts +0 -7
  181. package/lib/meta/convertActionTypeLoadSubsetOptions.d.ts.map +0 -1
  182. package/lib/meta/convertActionTypeLoadSubsetOptions.js +0 -84
  183. package/lib/meta/convertActionTypeLoadSubsetOptions.js.map +0 -1
  184. package/lib/meta/createFoundryMetaOntologyBackendAdapter.d.ts +0 -11
  185. package/lib/meta/createFoundryMetaOntologyBackendAdapter.d.ts.map +0 -1
  186. package/lib/meta/createFoundryMetaOntologyBackendAdapter.js +0 -43
  187. package/lib/meta/createFoundryMetaOntologyBackendAdapter.js.map +0 -1
  188. package/lib/meta/entityCollectionOptions.d.ts +0 -24
  189. package/lib/meta/entityCollectionOptions.d.ts.map +0 -1
  190. package/lib/meta/entityCollectionOptions.js +0 -69
  191. package/lib/meta/entityCollectionOptions.js.map +0 -1
  192. package/lib/meta/queryFunctionTypeCollectionOptions.d.ts +0 -12
  193. package/lib/meta/queryFunctionTypeCollectionOptions.d.ts.map +0 -1
  194. package/lib/meta/queryFunctionTypeCollectionOptions.js +0 -59
  195. package/lib/meta/queryFunctionTypeCollectionOptions.js.map +0 -1
  196. package/lib/users/createFoundryAdminOntologyRoute.d.ts +0 -55
  197. package/lib/users/createFoundryAdminOntologyRoute.d.ts.map +0 -1
  198. package/lib/users/createFoundryAdminOntologyRoute.js +0 -33
  199. package/lib/users/createFoundryAdminOntologyRoute.js.map +0 -1
  200. package/lib/users/userCollectionOptions.d.ts +0 -24
  201. package/lib/users/userCollectionOptions.d.ts.map +0 -1
  202. package/lib/users/userCollectionOptions.js +0 -94
  203. package/lib/users/userCollectionOptions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"convertMetaObjectType.d.ts","names":[],"sources":["../../src/meta/convertMetaObjectType.ts"],"mappings":";;;wBAKgB,6BAA6B,UAAU,yBAAyB"}
1
+ {"version":3,"file":"convertMetaObjectType.d.ts","names":["MetaObjectType"],"sources":["../../src/meta/convertMetaObjectType.ts"],"mappings":";;;wBAQgB,6BACZ,UAAU,KAAK,wCAChBA"}
@@ -17,10 +17,14 @@ function convertFoundryMetaObjectType(metadata) {
17
17
  };
18
18
  }
19
19
  function convertFoundryObjectProperty(name, property, required) {
20
- const type = property.valueTypeApiName ? {
20
+ const valueType = property.valueTypeApiName ? {
21
21
  kind: "ref",
22
22
  value: { name: property.valueTypeApiName }
23
23
  } : convertFoundryObjectPropertyType(property.dataType);
24
+ const type = property.dataType.type === "cipherText" && property.valueTypeApiName ? {
25
+ kind: "encrypted",
26
+ value: { type: valueType }
27
+ } : valueType;
24
28
  return {
25
29
  id: property.rid,
26
30
  name,
@@ -1 +1 @@
1
- {"version":3,"file":"convertMetaObjectType.js","names":[],"sources":["../../src/meta/convertMetaObjectType.ts"],"sourcesContent":["import { fromBlueprintIconName } from \"@party-stack/icons-blueprint\";\nimport { convertFoundryObjectPropertyType } from \"./convertMetaTypeDef.js\";\nimport type { ObjectTypeFullMetadata, PropertyV2 } from \"@osdk/foundry.ontologies\";\nimport type { MetaObjectProperty, MetaObjectType } from \"@party-stack/ontology\";\n\nexport function convertFoundryMetaObjectType(metadata: ObjectTypeFullMetadata): MetaObjectType {\n const objectType = metadata.objectType;\n return {\n id: objectType.rid,\n name: objectType.apiName,\n displayName: objectType.displayName,\n pluralDisplayName: objectType.pluralDisplayName,\n primaryKey: objectType.primaryKey,\n title: objectType.titleProperty,\n icon: objectType.icon ? fromBlueprintIconName(objectType.icon.name) : undefined,\n color: objectType.icon?.color,\n description: objectType.description,\n properties: Object.entries(objectType.properties).map(([name, property]) =>\n convertFoundryObjectProperty(name, property, name === objectType.primaryKey)\n ),\n };\n}\n\nfunction convertFoundryObjectProperty(\n name: string,\n property: PropertyV2,\n required: boolean\n): MetaObjectProperty {\n const type = property.valueTypeApiName\n ? { kind: \"ref\" as const, value: { name: property.valueTypeApiName } }\n : convertFoundryObjectPropertyType(property.dataType);\n return {\n id: property.rid,\n name,\n displayName: property.displayName ?? name,\n description: property.description,\n deprecated:\n property.status?.type === \"deprecated\"\n ? {\n message: property.status.message,\n }\n : undefined,\n type: required\n ? type\n : {\n kind: \"optional\",\n value: { type },\n },\n };\n}\n"],"mappings":";;;AAKA,SAAgB,6BAA6B,UAAkD;CAC3F,MAAM,aAAa,SAAS;CAC5B,OAAO;EACH,IAAI,WAAW;EACf,MAAM,WAAW;EACjB,aAAa,WAAW;EACxB,mBAAmB,WAAW;EAC9B,YAAY,WAAW;EACvB,OAAO,WAAW;EAClB,MAAM,WAAW,OAAO,sBAAsB,WAAW,KAAK,IAAI,IAAI,KAAA;EACtE,OAAO,WAAW,MAAM;EACxB,aAAa,WAAW;EACxB,YAAY,OAAO,QAAQ,WAAW,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,cAC1D,6BAA6B,MAAM,UAAU,SAAS,WAAW,UAAU,CAC/E;CACJ;AACJ;AAEA,SAAS,6BACL,MACA,UACA,UACkB;CAClB,MAAM,OAAO,SAAS,mBAChB;EAAE,MAAM;EAAgB,OAAO,EAAE,MAAM,SAAS,iBAAiB;CAAE,IACnE,iCAAiC,SAAS,QAAQ;CACxD,OAAO;EACH,IAAI,SAAS;EACb;EACA,aAAa,SAAS,eAAe;EACrC,aAAa,SAAS;EACtB,YACI,SAAS,QAAQ,SAAS,eACpB,EACI,SAAS,SAAS,OAAO,QAC7B,IACA,KAAA;EACV,MAAM,WACA,OACA;GACI,MAAM;GACN,OAAO,EAAE,KAAK;EAClB;CACV;AACJ"}
1
+ {"version":3,"file":"convertMetaObjectType.js","names":[],"sources":["../../src/meta/convertMetaObjectType.ts"],"sourcesContent":["import { fromBlueprintIconName } from \"@party-stack/icons-blueprint\";\nimport { convertFoundryObjectPropertyType } from \"./convertMetaTypeDef.js\";\nimport type { ObjectTypeFullMetadata, PropertyV2 } from \"@osdk/foundry.ontologies\";\nimport type {\n PropertyDef as MetaObjectProperty,\n ObjectType as MetaObjectType,\n} from \"@party-stack/ontology-spec/meta\";\n\nexport function convertFoundryMetaObjectType(\n metadata: Pick<ObjectTypeFullMetadata, \"objectType\">\n): MetaObjectType {\n const objectType = metadata.objectType;\n return {\n id: objectType.rid,\n name: objectType.apiName,\n displayName: objectType.displayName,\n pluralDisplayName: objectType.pluralDisplayName,\n primaryKey: objectType.primaryKey,\n title: objectType.titleProperty,\n icon: objectType.icon ? fromBlueprintIconName(objectType.icon.name) : undefined,\n color: objectType.icon?.color,\n description: objectType.description,\n properties: Object.entries(objectType.properties).map(([name, property]) =>\n convertFoundryObjectProperty(name, property, name === objectType.primaryKey)\n ),\n };\n}\n\nfunction convertFoundryObjectProperty(\n name: string,\n property: PropertyV2,\n required: boolean\n): MetaObjectProperty {\n const valueType = property.valueTypeApiName\n ? { kind: \"ref\" as const, value: { name: property.valueTypeApiName } }\n : convertFoundryObjectPropertyType(property.dataType);\n const type =\n property.dataType.type === \"cipherText\" && property.valueTypeApiName\n ? { kind: \"encrypted\" as const, value: { type: valueType } }\n : valueType;\n return {\n id: property.rid,\n name,\n displayName: property.displayName ?? name,\n description: property.description,\n deprecated:\n property.status?.type === \"deprecated\"\n ? {\n message: property.status.message,\n }\n : undefined,\n type: required\n ? type\n : {\n kind: \"optional\",\n value: { type },\n },\n };\n}\n"],"mappings":";;;AAQA,SAAgB,6BACZ,UACc;CACd,MAAM,aAAa,SAAS;CAC5B,OAAO;EACH,IAAI,WAAW;EACf,MAAM,WAAW;EACjB,aAAa,WAAW;EACxB,mBAAmB,WAAW;EAC9B,YAAY,WAAW;EACvB,OAAO,WAAW;EAClB,MAAM,WAAW,OAAO,sBAAsB,WAAW,KAAK,IAAI,IAAI,KAAA;EACtE,OAAO,WAAW,MAAM;EACxB,aAAa,WAAW;EACxB,YAAY,OAAO,QAAQ,WAAW,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,cAC1D,6BAA6B,MAAM,UAAU,SAAS,WAAW,UAAU,CAC/E;CACJ;AACJ;AAEA,SAAS,6BACL,MACA,UACA,UACkB;CAClB,MAAM,YAAY,SAAS,mBACrB;EAAE,MAAM;EAAgB,OAAO,EAAE,MAAM,SAAS,iBAAiB;CAAE,IACnE,iCAAiC,SAAS,QAAQ;CACxD,MAAM,OACF,SAAS,SAAS,SAAS,gBAAgB,SAAS,mBAC9C;EAAE,MAAM;EAAsB,OAAO,EAAE,MAAM,UAAU;CAAE,IACzD;CACV,OAAO;EACH,IAAI,SAAS;EACb;EACA,aAAa,SAAS,eAAe;EACrC,aAAa,SAAS;EACtB,YACI,SAAS,QAAQ,SAAS,eACpB,EACI,SAAS,SAAS,OAAO,QAC7B,IACA,KAAA;EACV,MAAM,WACA,OACA;GACI,MAAM;GACN,OAAO,EAAE,KAAK;EAClB;CACV;AACJ"}
@@ -1,5 +1,5 @@
1
1
  import { QueryTypeV2 } from "@osdk/foundry.ontologies";
2
- import { QueryFunctionTypeDef } from "@party-stack/ontology";
2
+ import { QueryFunctionTypeDef } from "@party-stack/ontology-spec";
3
3
  //#region src/meta/convertMetaQueryFunctionType.d.ts
4
4
  export declare function convertFoundryMetaQueryFunctionType(query: QueryTypeV2): QueryFunctionTypeDef;
5
5
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"convertMetaQueryFunctionType.js","names":[],"sources":["../../src/meta/convertMetaQueryFunctionType.ts"],"sourcesContent":["import type { QueryDataType, QueryParameterV2, QueryTypeV2 } from \"@osdk/foundry.ontologies\";\nimport type { QueryFunctionParameterDef, QueryFunctionTypeDef, TypeDef } from \"@party-stack/ontology\";\n\nfunction stringType(): TypeDef {\n return { kind: \"string\", value: {} };\n}\n\nfunction integerType(): TypeDef {\n return { kind: \"integer\", value: {} };\n}\n\nfunction floatType(): TypeDef {\n return { kind: \"float\", value: {} };\n}\n\nfunction doubleType(): TypeDef {\n return { kind: \"double\", value: {} };\n}\n\nfunction booleanType(): TypeDef {\n return { kind: \"boolean\", value: {} };\n}\n\nfunction dateType(): TypeDef {\n return { kind: \"date\", value: {} };\n}\n\nfunction timestampType(): TypeDef {\n return { kind: \"timestamp\", value: {} };\n}\n\nfunction attachmentType(type: \"attachment\" | \"media\"): TypeDef {\n return {\n kind: \"attachment\",\n value: { meta: { type } },\n };\n}\n\nfunction maybeOptional(type: TypeDef, required: boolean): TypeDef {\n return required || type.kind === \"optional\" ? type : { kind: \"optional\", value: { type } };\n}\n\nfunction convertQueryDataType(type: QueryDataType): TypeDef {\n switch (type.type) {\n case \"string\":\n case \"long\":\n case \"entrySet\":\n return stringType();\n case \"integer\":\n return integerType();\n case \"float\":\n return floatType();\n case \"double\":\n return doubleType();\n case \"boolean\":\n return booleanType();\n case \"date\":\n return dateType();\n case \"timestamp\":\n return timestampType();\n case \"attachment\":\n return attachmentType(\"attachment\");\n case \"mediaReference\":\n return attachmentType(\"media\");\n case \"object\":\n return { kind: \"objectReference\", value: { objectType: type.objectTypeApiName } };\n case \"array\":\n case \"set\":\n return { kind: \"list\", value: { elementType: convertQueryDataType(type.subType) } };\n case \"struct\":\n return {\n kind: \"struct\",\n value: {\n fields: type.fields.map((field) => ({\n name: field.name,\n displayName: field.name,\n type: convertQueryDataType(field.fieldType),\n })),\n },\n };\n case \"union\": {\n const nonNullTypes = type.unionTypes.filter((variant) => variant.type !== \"null\");\n const hasNull = nonNullTypes.length !== type.unionTypes.length;\n const converted =\n nonNullTypes.length === 0\n ? { kind: \"unknown\" as const, value: {} }\n : nonNullTypes.length === 1\n ? convertQueryDataType(nonNullTypes[0]!)\n : {\n kind: \"union\" as const,\n value: {\n variants: nonNullTypes.map((variant, index) => ({\n name: `variant${index + 1}`,\n type: convertQueryDataType(variant),\n })),\n },\n };\n return maybeOptional(converted, !hasNull);\n }\n case \"void\":\n case \"null\":\n return { kind: \"unknown\", value: {} };\n case \"typeReference\":\n case \"twoDimensionalAggregation\":\n case \"threeDimensionalAggregation\":\n case \"objectSet\":\n case \"interfaceObject\":\n case \"interfaceObjectSet\":\n case \"unsupported\":\n return { kind: \"unknown\", value: {} };\n }\n}\n\nfunction convertQueryFunctionParameter(name: string, parameter: QueryParameterV2): QueryFunctionParameterDef {\n return {\n name,\n displayName: name,\n description: parameter.description,\n type: maybeOptional(convertQueryDataType(parameter.dataType), parameter.required),\n };\n}\n\nexport function convertFoundryMetaQueryFunctionType(query: QueryTypeV2): QueryFunctionTypeDef {\n return {\n name: query.apiName,\n displayName: query.displayName ?? query.apiName,\n description: query.description,\n parameters: Object.entries(query.parameters).map(([name, parameter]) =>\n convertQueryFunctionParameter(name, parameter)\n ),\n returnType: convertQueryDataType(query.output),\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"convertMetaQueryFunctionType.js","names":[],"sources":["../../src/meta/convertMetaQueryFunctionType.ts"],"sourcesContent":["import type { QueryDataType, QueryParameterV2, QueryTypeV2 } from \"@osdk/foundry.ontologies\";\nimport type { QueryFunctionParameterDef, QueryFunctionTypeDef, TypeDef } from \"@party-stack/ontology-spec\";\n\nfunction stringType(): TypeDef {\n return { kind: \"string\", value: {} };\n}\n\nfunction integerType(): TypeDef {\n return { kind: \"integer\", value: {} };\n}\n\nfunction floatType(): TypeDef {\n return { kind: \"float\", value: {} };\n}\n\nfunction doubleType(): TypeDef {\n return { kind: \"double\", value: {} };\n}\n\nfunction booleanType(): TypeDef {\n return { kind: \"boolean\", value: {} };\n}\n\nfunction dateType(): TypeDef {\n return { kind: \"date\", value: {} };\n}\n\nfunction timestampType(): TypeDef {\n return { kind: \"timestamp\", value: {} };\n}\n\nfunction attachmentType(type: \"attachment\" | \"media\"): TypeDef {\n return {\n kind: \"attachment\",\n value: { meta: { type } },\n };\n}\n\nfunction maybeOptional(type: TypeDef, required: boolean): TypeDef {\n return required || type.kind === \"optional\" ? type : { kind: \"optional\", value: { type } };\n}\n\nfunction convertQueryDataType(type: QueryDataType): TypeDef {\n switch (type.type) {\n case \"string\":\n case \"long\":\n case \"entrySet\":\n return stringType();\n case \"integer\":\n return integerType();\n case \"float\":\n return floatType();\n case \"double\":\n return doubleType();\n case \"boolean\":\n return booleanType();\n case \"date\":\n return dateType();\n case \"timestamp\":\n return timestampType();\n case \"attachment\":\n return attachmentType(\"attachment\");\n case \"mediaReference\":\n return attachmentType(\"media\");\n case \"object\":\n return { kind: \"objectReference\", value: { objectType: type.objectTypeApiName } };\n case \"array\":\n case \"set\":\n return { kind: \"list\", value: { elementType: convertQueryDataType(type.subType) } };\n case \"struct\":\n return {\n kind: \"struct\",\n value: {\n fields: type.fields.map((field) => ({\n name: field.name,\n displayName: field.name,\n type: convertQueryDataType(field.fieldType),\n })),\n },\n };\n case \"union\": {\n const nonNullTypes = type.unionTypes.filter((variant) => variant.type !== \"null\");\n const hasNull = nonNullTypes.length !== type.unionTypes.length;\n const converted =\n nonNullTypes.length === 0\n ? { kind: \"unknown\" as const, value: {} }\n : nonNullTypes.length === 1\n ? convertQueryDataType(nonNullTypes[0]!)\n : {\n kind: \"union\" as const,\n value: {\n variants: nonNullTypes.map((variant, index) => ({\n name: `variant${index + 1}`,\n type: convertQueryDataType(variant),\n })),\n },\n };\n return maybeOptional(converted, !hasNull);\n }\n case \"void\":\n case \"null\":\n return { kind: \"unknown\", value: {} };\n case \"typeReference\":\n case \"twoDimensionalAggregation\":\n case \"threeDimensionalAggregation\":\n case \"objectSet\":\n case \"interfaceObject\":\n case \"interfaceObjectSet\":\n case \"unsupported\":\n return { kind: \"unknown\", value: {} };\n }\n}\n\nfunction convertQueryFunctionParameter(name: string, parameter: QueryParameterV2): QueryFunctionParameterDef {\n return {\n name,\n displayName: name,\n description: parameter.description,\n type: maybeOptional(convertQueryDataType(parameter.dataType), parameter.required),\n };\n}\n\nexport function convertFoundryMetaQueryFunctionType(query: QueryTypeV2): QueryFunctionTypeDef {\n return {\n name: query.apiName,\n displayName: query.displayName ?? query.apiName,\n description: query.description,\n parameters: Object.entries(query.parameters).map(([name, parameter]) =>\n convertQueryFunctionParameter(name, parameter)\n ),\n returnType: convertQueryDataType(query.output),\n };\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ObjectPropertyType, StructFieldType, ValueTypeConstraint, ValueTypeFieldType } from "@osdk/foundry.ontologies";
2
- import { PropertyDef, TypeDef } from "@party-stack/ontology";
2
+ import { PropertyDef, TypeDef } from "@party-stack/ontology-spec";
3
3
  //#region src/meta/convertMetaTypeDef.d.ts
4
4
  export declare function convertFoundryValueTypeFieldType(type: ValueTypeFieldType, constraints?: ValueTypeConstraint[]): TypeDef;
5
5
  export declare function convertFoundryObjectPropertyType(type: ObjectPropertyType): TypeDef;
@@ -1 +1 @@
1
- {"version":3,"file":"convertMetaTypeDef.d.ts","names":[],"sources":["../../src/meta/convertMetaTypeDef.ts"],"mappings":";;;wBAUgB,iCACZ,MAAM,oBACN,cAAa,wBACd;wBAsFa,iCAAiC,MAAM,qBAAqB;wBA+D5D,0BAA0B,OAAO,kBAAkB"}
1
+ {"version":3,"file":"convertMetaTypeDef.d.ts","names":[],"sources":["../../src/meta/convertMetaTypeDef.ts"],"mappings":";;;wBAUgB,iCACZ,MAAM,oBACN,cAAa,wBACd;wBAsFa,iCAAiC,MAAM,qBAAqB;wBAgE5D,0BAA0B,OAAO,kBAAkB"}
@@ -121,7 +121,13 @@ function convertFoundryObjectPropertyType(type) {
121
121
  kind: "geopoint",
122
122
  value: {}
123
123
  };
124
- case "cipherText":
124
+ case "cipherText": return {
125
+ kind: "encrypted",
126
+ value: { type: {
127
+ kind: "string",
128
+ value: {}
129
+ } }
130
+ };
125
131
  case "geoshape":
126
132
  case "geotimeSeriesReference":
127
133
  case "marking":
@@ -1 +1 @@
1
- {"version":3,"file":"convertMetaTypeDef.js","names":[],"sources":["../../src/meta/convertMetaTypeDef.ts"],"sourcesContent":["import { invariant } from \"@bobbyfidz/panic\";\nimport { foundryAttachmentMeta } from \"./foundryAttachmentMetadata.js\";\nimport type {\n ObjectPropertyType,\n StructFieldType,\n ValueTypeConstraint,\n ValueTypeFieldType,\n} from \"@osdk/foundry.ontologies\";\nimport type { PropertyDef, StringConstraint, TypeDef } from \"@party-stack/ontology\";\n\nexport function convertFoundryValueTypeFieldType(\n type: ValueTypeFieldType,\n constraints: ValueTypeConstraint[] = []\n): TypeDef {\n switch (type.type) {\n case \"string\":\n return { kind: \"string\", value: { constraint: extractStringConstraint(constraints) } };\n case \"boolean\":\n return { kind: \"boolean\", value: {} };\n case \"byte\":\n case \"short\":\n case \"integer\":\n case \"long\":\n return { kind: \"integer\", value: {} };\n case \"float\":\n return { kind: \"float\", value: {} };\n case \"double\":\n case \"decimal\":\n return { kind: \"double\", value: {} };\n case \"date\":\n return { kind: \"date\", value: {} };\n case \"timestamp\":\n return { kind: \"timestamp\", value: {} };\n case \"array\":\n return {\n kind: \"list\",\n value: {\n elementType: (() => {\n invariant(type.subType, \"Expected Foundry array subtype.\");\n return convertFoundryValueTypeFieldType(type.subType);\n })(),\n },\n };\n case \"optional\":\n return {\n kind: \"optional\",\n value: {\n type: (() => {\n invariant(type.wrappedType, \"Expected Foundry optional type.\");\n return convertFoundryValueTypeFieldType(type.wrappedType);\n })(),\n },\n };\n case \"map\":\n return {\n kind: \"map\",\n value: {\n keyType: (() => {\n invariant(type.keyType, \"Expected Foundry map key type.\");\n return convertFoundryValueTypeFieldType(type.keyType);\n })(),\n valueType: (() => {\n invariant(type.valueType, \"Expected Foundry map value type.\");\n return convertFoundryValueTypeFieldType(type.valueType);\n })(),\n },\n };\n case \"struct\":\n return {\n kind: \"struct\",\n value: {\n fields: type.fields.map((field, index) => ({\n name: field.name ?? `field${index + 1}`,\n displayName: field.name ?? `Field ${index + 1}`,\n type: (() => {\n invariant(\n field.fieldType,\n `Expected Foundry struct field \"${field.name ?? index}\" type.`\n );\n return convertFoundryValueTypeFieldType(field.fieldType);\n })(),\n })),\n },\n };\n case \"union\":\n return {\n kind: \"union\",\n value: {\n variants: type.memberTypes.map((memberType, index) => ({\n name: `variant${index + 1}`,\n type: convertFoundryValueTypeFieldType(memberType),\n })),\n },\n };\n default:\n throw new Error(`Unsupported Foundry value type \"${type.type}\".`);\n }\n}\n\nexport function convertFoundryObjectPropertyType(type: ObjectPropertyType): TypeDef {\n switch (type.type) {\n case \"string\":\n return { kind: \"string\", value: {} };\n case \"boolean\":\n return { kind: \"boolean\", value: {} };\n case \"byte\":\n case \"short\":\n case \"integer\":\n case \"long\":\n return { kind: \"integer\", value: {} };\n case \"float\":\n return { kind: \"float\", value: {} };\n case \"double\":\n case \"decimal\":\n return { kind: \"double\", value: {} };\n case \"date\":\n return { kind: \"date\", value: {} };\n case \"timestamp\":\n return { kind: \"timestamp\", value: {} };\n case \"geopoint\":\n return { kind: \"geopoint\", value: {} };\n case \"cipherText\":\n case \"geoshape\":\n case \"geotimeSeriesReference\":\n case \"marking\":\n case \"timeseries\":\n return { kind: \"string\", value: {} };\n case \"attachment\":\n case \"mediaReference\":\n return {\n kind: \"attachment\",\n value: {\n meta: foundryAttachmentMeta(type.type === \"attachment\" ? \"attachment\" : \"media\"),\n },\n };\n case \"vector\":\n return {\n kind: \"list\",\n value: {\n elementType: { kind: \"double\", value: {} },\n },\n };\n case \"array\":\n return {\n kind: \"list\",\n value: {\n elementType: (() => {\n invariant(type.subType, \"Expected Foundry array subtype.\");\n return convertFoundryObjectPropertyType(type.subType);\n })(),\n },\n };\n case \"struct\":\n return {\n kind: \"struct\",\n value: {\n fields: type.structFieldTypes.map(convertFoundryStructField),\n },\n };\n }\n}\n\nexport function convertFoundryStructField(field: StructFieldType): PropertyDef {\n return {\n name: field.apiName,\n displayName: field.apiName,\n type: {\n kind: \"optional\",\n value: {\n type: convertFoundryObjectPropertyType(field.dataType),\n },\n },\n };\n}\n\nfunction extractStringConstraint(constraints: ValueTypeConstraint[]): StringConstraint | undefined {\n const enumConstraint = constraints.find((constraint) => constraint.type === \"enum\");\n if (enumConstraint) {\n const options = enumConstraint.options\n .filter((option): option is string => typeof option === \"string\")\n .map((value) => ({ value }));\n if (options.length > 0) {\n return {\n kind: \"enum\",\n value: { options },\n };\n }\n }\n\n const regexConstraint = constraints.find((constraint) => constraint.type === \"regex\");\n if (regexConstraint) {\n return {\n kind: \"regex\",\n value: { regex: regexConstraint.pattern },\n };\n }\n\n return undefined;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"convertMetaTypeDef.js","names":[],"sources":["../../src/meta/convertMetaTypeDef.ts"],"sourcesContent":["import { invariant } from \"@bobbyfidz/panic\";\nimport { foundryAttachmentMeta } from \"./foundryAttachmentMetadata.js\";\nimport type {\n ObjectPropertyType,\n StructFieldType,\n ValueTypeConstraint,\n ValueTypeFieldType,\n} from \"@osdk/foundry.ontologies\";\nimport type { PropertyDef, StringConstraint, TypeDef } from \"@party-stack/ontology-spec\";\n\nexport function convertFoundryValueTypeFieldType(\n type: ValueTypeFieldType,\n constraints: ValueTypeConstraint[] = []\n): TypeDef {\n switch (type.type) {\n case \"string\":\n return { kind: \"string\", value: { constraint: extractStringConstraint(constraints) } };\n case \"boolean\":\n return { kind: \"boolean\", value: {} };\n case \"byte\":\n case \"short\":\n case \"integer\":\n case \"long\":\n return { kind: \"integer\", value: {} };\n case \"float\":\n return { kind: \"float\", value: {} };\n case \"double\":\n case \"decimal\":\n return { kind: \"double\", value: {} };\n case \"date\":\n return { kind: \"date\", value: {} };\n case \"timestamp\":\n return { kind: \"timestamp\", value: {} };\n case \"array\":\n return {\n kind: \"list\",\n value: {\n elementType: (() => {\n invariant(type.subType, \"Expected Foundry array subtype.\");\n return convertFoundryValueTypeFieldType(type.subType);\n })(),\n },\n };\n case \"optional\":\n return {\n kind: \"optional\",\n value: {\n type: (() => {\n invariant(type.wrappedType, \"Expected Foundry optional type.\");\n return convertFoundryValueTypeFieldType(type.wrappedType);\n })(),\n },\n };\n case \"map\":\n return {\n kind: \"map\",\n value: {\n keyType: (() => {\n invariant(type.keyType, \"Expected Foundry map key type.\");\n return convertFoundryValueTypeFieldType(type.keyType);\n })(),\n valueType: (() => {\n invariant(type.valueType, \"Expected Foundry map value type.\");\n return convertFoundryValueTypeFieldType(type.valueType);\n })(),\n },\n };\n case \"struct\":\n return {\n kind: \"struct\",\n value: {\n fields: type.fields.map((field, index) => ({\n name: field.name ?? `field${index + 1}`,\n displayName: field.name ?? `Field ${index + 1}`,\n type: (() => {\n invariant(\n field.fieldType,\n `Expected Foundry struct field \"${field.name ?? index}\" type.`\n );\n return convertFoundryValueTypeFieldType(field.fieldType);\n })(),\n })),\n },\n };\n case \"union\":\n return {\n kind: \"union\",\n value: {\n variants: type.memberTypes.map((memberType, index) => ({\n name: `variant${index + 1}`,\n type: convertFoundryValueTypeFieldType(memberType),\n })),\n },\n };\n default:\n throw new Error(`Unsupported Foundry value type \"${type.type}\".`);\n }\n}\n\nexport function convertFoundryObjectPropertyType(type: ObjectPropertyType): TypeDef {\n switch (type.type) {\n case \"string\":\n return { kind: \"string\", value: {} };\n case \"boolean\":\n return { kind: \"boolean\", value: {} };\n case \"byte\":\n case \"short\":\n case \"integer\":\n case \"long\":\n return { kind: \"integer\", value: {} };\n case \"float\":\n return { kind: \"float\", value: {} };\n case \"double\":\n case \"decimal\":\n return { kind: \"double\", value: {} };\n case \"date\":\n return { kind: \"date\", value: {} };\n case \"timestamp\":\n return { kind: \"timestamp\", value: {} };\n case \"geopoint\":\n return { kind: \"geopoint\", value: {} };\n case \"cipherText\":\n return { kind: \"encrypted\", value: { type: { kind: \"string\", value: {} } } };\n case \"geoshape\":\n case \"geotimeSeriesReference\":\n case \"marking\":\n case \"timeseries\":\n return { kind: \"string\", value: {} };\n case \"attachment\":\n case \"mediaReference\":\n return {\n kind: \"attachment\",\n value: {\n meta: foundryAttachmentMeta(type.type === \"attachment\" ? \"attachment\" : \"media\"),\n },\n };\n case \"vector\":\n return {\n kind: \"list\",\n value: {\n elementType: { kind: \"double\", value: {} },\n },\n };\n case \"array\":\n return {\n kind: \"list\",\n value: {\n elementType: (() => {\n invariant(type.subType, \"Expected Foundry array subtype.\");\n return convertFoundryObjectPropertyType(type.subType);\n })(),\n },\n };\n case \"struct\":\n return {\n kind: \"struct\",\n value: {\n fields: type.structFieldTypes.map(convertFoundryStructField),\n },\n };\n }\n}\n\nexport function convertFoundryStructField(field: StructFieldType): PropertyDef {\n return {\n name: field.apiName,\n displayName: field.apiName,\n type: {\n kind: \"optional\",\n value: {\n type: convertFoundryObjectPropertyType(field.dataType),\n },\n },\n };\n}\n\nfunction extractStringConstraint(constraints: ValueTypeConstraint[]): StringConstraint | undefined {\n const enumConstraint = constraints.find((constraint) => constraint.type === \"enum\");\n if (enumConstraint) {\n const options = enumConstraint.options\n .filter((option): option is string => typeof option === \"string\")\n .map((value) => ({ value }));\n if (options.length > 0) {\n return {\n kind: \"enum\",\n value: { options },\n };\n }\n }\n\n const regexConstraint = constraints.find((constraint) => constraint.type === \"regex\");\n if (regexConstraint) {\n return {\n kind: \"regex\",\n value: { regex: regexConstraint.pattern },\n };\n }\n\n return undefined;\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { OntologyValueType } from "@osdk/foundry.ontologies";
2
- import { MetaValueType } from "@party-stack/ontology";
2
+ import { ValueType } from "@party-stack/ontology-spec/meta";
3
3
  //#region src/meta/convertMetaValueType.d.ts
4
- export declare function convertFoundryMetaValueType(valueType: OntologyValueType): MetaValueType;
4
+ export declare function convertFoundryMetaValueType(valueType: OntologyValueType): ValueType;
5
5
  //#endregion
6
6
  //# sourceMappingURL=convertMetaValueType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertMetaValueType.d.ts","names":[],"sources":["../../src/meta/convertMetaValueType.ts"],"mappings":";;;wBAIgB,4BAA4B,WAAW,oBAAoB"}
1
+ {"version":3,"file":"convertMetaValueType.d.ts","names":["MetaValueType"],"sources":["../../src/meta/convertMetaValueType.ts"],"mappings":";;;wBAIgB,4BAA4B,WAAW,oBAAoBA"}
@@ -1 +1 @@
1
- {"version":3,"file":"convertMetaValueType.js","names":[],"sources":["../../src/meta/convertMetaValueType.ts"],"sourcesContent":["import { convertFoundryValueTypeFieldType } from \"./convertMetaTypeDef.js\";\nimport type { OntologyValueType } from \"@osdk/foundry.ontologies\";\nimport type { MetaValueType } from \"@party-stack/ontology\";\n\nexport function convertFoundryMetaValueType(valueType: OntologyValueType): MetaValueType {\n return {\n name: valueType.apiName,\n description: valueType.description,\n deprecated: valueType.status === \"DEPRECATED\" ? { message: \"Deprecated in Foundry.\" } : undefined,\n type: convertFoundryValueTypeFieldType(valueType.fieldType, valueType.constraints),\n };\n}\n"],"mappings":";;AAIA,SAAgB,4BAA4B,WAA6C;CACrF,OAAO;EACH,MAAM,UAAU;EAChB,aAAa,UAAU;EACvB,YAAY,UAAU,WAAW,eAAe,EAAE,SAAS,yBAAyB,IAAI,KAAA;EACxF,MAAM,iCAAiC,UAAU,WAAW,UAAU,WAAW;CACrF;AACJ"}
1
+ {"version":3,"file":"convertMetaValueType.js","names":[],"sources":["../../src/meta/convertMetaValueType.ts"],"sourcesContent":["import { convertFoundryValueTypeFieldType } from \"./convertMetaTypeDef.js\";\nimport type { OntologyValueType } from \"@osdk/foundry.ontologies\";\nimport type { ValueType as MetaValueType } from \"@party-stack/ontology-spec/meta\";\n\nexport function convertFoundryMetaValueType(valueType: OntologyValueType): MetaValueType {\n return {\n name: valueType.apiName,\n description: valueType.description,\n deprecated: valueType.status === \"DEPRECATED\" ? { message: \"Deprecated in Foundry.\" } : undefined,\n type: convertFoundryValueTypeFieldType(valueType.fieldType, valueType.constraints),\n };\n}\n"],"mappings":";;AAIA,SAAgB,4BAA4B,WAA6C;CACrF,OAAO;EACH,MAAM,UAAU;EAChB,aAAa,UAAU;EACvB,YAAY,UAAU,WAAW,eAAe,EAAE,SAAS,yBAAyB,IAAI,KAAA;EACxF,MAAM,iCAAiC,UAAU,WAAW,UAAU,WAAW;CACrF;AACJ"}
@@ -1,5 +1,5 @@
1
1
  import { ActionTypeOmsMetadata } from "./loadActionTypeOmsMetadata.js";
2
- import { ActionParameterDef, Expression, StringConstraint, StringSuggestion } from "@party-stack/ontology";
2
+ import { ActionParameterDef, Expression, StringConstraint, StringSuggestion } from "@party-stack/ontology-spec";
3
3
  //#region src/meta/convertOmsActionParameterMetadata.d.ts
4
4
  export declare function convertOmsActionParameterStringConstraint(actionType: ActionTypeOmsMetadata | undefined, parameterName: string, fieldName?: string): StringConstraint | undefined;
5
5
  export declare function convertOmsActionParameterStringSuggestions(actionType: ActionTypeOmsMetadata | undefined, parameterName: string, fieldName?: string): StringSuggestion[] | undefined;
@@ -54,7 +54,7 @@ function convertDefaultValue(propertyApiNamesByParameter, defaultValue) {
54
54
  kind: "getAt",
55
55
  value: {
56
56
  source: {
57
- kind: "objectLookup",
57
+ kind: "lookup",
58
58
  value: { reference: {
59
59
  kind: "inputReference",
60
60
  value: { name: parameterName }
@@ -1 +1 @@
1
- {"version":3,"file":"convertOmsActionParameterMetadata.js","names":[],"sources":["../../src/meta/convertOmsActionParameterMetadata.ts"],"sourcesContent":["import { Temporal } from \"temporal-polyfill\";\nimport type { ActionTypeOmsMetadata } from \"./loadActionTypeOmsMetadata.js\";\nimport type { AllowedParameterValues, ParameterPrefill, StaticValue } from \"@osdk/client.unstable\";\nimport type {\n ActionParameterDef,\n Expression,\n StringConstraint,\n StringSuggestion,\n} from \"@party-stack/ontology\";\n\nfunction parseDate(value: unknown): unknown {\n if (typeof value !== \"string\") return undefined;\n try {\n return Temporal.PlainDate.from(value);\n } catch {\n return value;\n }\n}\n\nfunction parseTimestamp(value: unknown): unknown {\n if (typeof value !== \"string\") return undefined;\n try {\n return Temporal.Instant.from(value);\n } catch {\n return value;\n }\n}\n\nfunction convertFoundryStaticValue(staticValue: StaticValue): unknown {\n switch (staticValue.type) {\n case \"string\":\n return staticValue.string;\n case \"stringList\":\n return staticValue.stringList.strings;\n case \"boolean\":\n return staticValue.boolean;\n case \"booleanList\":\n return staticValue.booleanList.booleans;\n case \"integer\":\n return staticValue.integer;\n case \"integerList\":\n return staticValue.integerList.integers;\n case \"long\":\n return staticValue.long;\n case \"longList\":\n return staticValue.longList.longs;\n case \"double\":\n return staticValue.double;\n case \"doubleList\":\n return staticValue.doubleList.doubles;\n case \"date\":\n return parseDate(staticValue.date.dateValue);\n case \"dateList\":\n return staticValue.dateList.dates.map(parseDate);\n case \"timestamp\":\n return parseTimestamp(staticValue.timestamp);\n case \"timestampList\":\n return staticValue.timestampList.timestamps.map(parseTimestamp);\n case \"null\":\n return null;\n default:\n return undefined;\n }\n}\n\nfunction convertDefaultValue(\n propertyApiNamesByParameter: ReadonlyMap<string, ReadonlyMap<string, string>>,\n defaultValue: ParameterPrefill | undefined\n): Expression | undefined {\n if (!defaultValue) return undefined;\n\n if (defaultValue.type === \"staticValue\") {\n const value = convertFoundryStaticValue(defaultValue.staticValue);\n return value === undefined\n ? undefined\n : {\n kind: \"literal\",\n value: { value },\n };\n }\n\n if (defaultValue.type === \"objectParameterPropertyValue\") {\n const objectProperty = defaultValue.objectParameterPropertyValue;\n const parameterName = objectProperty.parameterId;\n const propertyApiName = propertyApiNamesByParameter\n .get(parameterName)\n ?.get(objectProperty.propertyTypeId);\n if (!propertyApiName) return undefined;\n\n return {\n kind: \"getAt\",\n value: {\n source: {\n kind: \"objectLookup\",\n value: {\n reference: {\n kind: \"inputReference\",\n value: {\n name: parameterName,\n },\n },\n },\n },\n path: [propertyApiName],\n },\n };\n }\n\n return undefined;\n}\n\nfunction getOmsActionParameterAllowedValues(\n actionType: ActionTypeOmsMetadata | undefined,\n parameterName: string,\n fieldName?: string\n): AllowedParameterValues | undefined {\n const parameterValidation =\n actionType?.actionType.actionTypeLogic.validation.parameterValidations[parameterName];\n const validation =\n fieldName === undefined\n ? parameterValidation\n : parameterValidation?.structFieldValidations?.[fieldName];\n return validation?.defaultValidation.validation?.allowedValues;\n}\n\nfunction getOmsOneOf(allowedValues: AllowedParameterValues | undefined):\n | {\n options: StringSuggestion[];\n otherValuesAllowed: boolean;\n }\n | undefined {\n if (allowedValues?.type !== \"oneOf\") return undefined;\n if (allowedValues.oneOf.type !== \"oneOf\") {\n return undefined;\n }\n const oneOf = allowedValues.oneOf.oneOf;\n\n const options = oneOf.labelledValues.flatMap((entry) => {\n const value = convertFoundryStaticValue(entry.value);\n return typeof value === \"string\"\n ? [\n {\n value,\n label: entry.label,\n },\n ]\n : [];\n });\n return options.length > 0\n ? {\n options,\n otherValuesAllowed: oneOf.otherValueAllowed.allowed,\n }\n : undefined;\n}\n\nexport function convertOmsActionParameterStringConstraint(\n actionType: ActionTypeOmsMetadata | undefined,\n parameterName: string,\n fieldName?: string\n): StringConstraint | undefined {\n const allowedValues = getOmsActionParameterAllowedValues(actionType, parameterName, fieldName);\n\n if (allowedValues?.type === \"oneOf\") {\n const oneOf = getOmsOneOf(allowedValues);\n return oneOf && !oneOf.otherValuesAllowed\n ? {\n kind: \"enum\",\n value: { options: oneOf.options },\n }\n : undefined;\n }\n\n if (allowedValues?.type === \"text\") {\n if (allowedValues.text.type !== \"text\") {\n return undefined;\n }\n const regex = allowedValues.text.text.regex?.regex;\n return regex\n ? {\n kind: \"regex\",\n value: { regex },\n }\n : undefined;\n }\n\n return undefined;\n}\n\nexport function convertOmsActionParameterStringSuggestions(\n actionType: ActionTypeOmsMetadata | undefined,\n parameterName: string,\n fieldName?: string\n): StringSuggestion[] | undefined {\n const oneOf = getOmsOneOf(getOmsActionParameterAllowedValues(actionType, parameterName, fieldName));\n return oneOf?.otherValuesAllowed ? oneOf.options : undefined;\n}\n\nexport function convertOmsActionParameterDefaults(\n actionType: ActionTypeOmsMetadata | undefined,\n parameters: ActionParameterDef[]\n): Map<string, Expression> {\n const result = new Map<string, Expression>();\n if (!actionType) return result;\n\n const parameterValidations = actionType.actionType.actionTypeLogic.validation.parameterValidations;\n\n for (const parameter of parameters) {\n const defaultValue =\n parameterValidations?.[parameter.name]?.defaultValidation.display.prefill ?? undefined;\n const parameterDefault = convertDefaultValue(actionType.propertyApiNamesByParameter, defaultValue);\n if (parameterDefault) {\n result.set(parameter.name, parameterDefault);\n }\n }\n\n return result;\n}\n"],"mappings":";;AAUA,SAAS,UAAU,OAAyB;CACxC,IAAI,OAAO,UAAU,UAAU,OAAO,KAAA;CACtC,IAAI;EACA,OAAO,SAAS,UAAU,KAAK,KAAK;CACxC,QAAQ;EACJ,OAAO;CACX;AACJ;AAEA,SAAS,eAAe,OAAyB;CAC7C,IAAI,OAAO,UAAU,UAAU,OAAO,KAAA;CACtC,IAAI;EACA,OAAO,SAAS,QAAQ,KAAK,KAAK;CACtC,QAAQ;EACJ,OAAO;CACX;AACJ;AAEA,SAAS,0BAA0B,aAAmC;CAClE,QAAQ,YAAY,MAApB;EACI,KAAK,UACD,OAAO,YAAY;EACvB,KAAK,cACD,OAAO,YAAY,WAAW;EAClC,KAAK,WACD,OAAO,YAAY;EACvB,KAAK,eACD,OAAO,YAAY,YAAY;EACnC,KAAK,WACD,OAAO,YAAY;EACvB,KAAK,eACD,OAAO,YAAY,YAAY;EACnC,KAAK,QACD,OAAO,YAAY;EACvB,KAAK,YACD,OAAO,YAAY,SAAS;EAChC,KAAK,UACD,OAAO,YAAY;EACvB,KAAK,cACD,OAAO,YAAY,WAAW;EAClC,KAAK,QACD,OAAO,UAAU,YAAY,KAAK,SAAS;EAC/C,KAAK,YACD,OAAO,YAAY,SAAS,MAAM,IAAI,SAAS;EACnD,KAAK,aACD,OAAO,eAAe,YAAY,SAAS;EAC/C,KAAK,iBACD,OAAO,YAAY,cAAc,WAAW,IAAI,cAAc;EAClE,KAAK,QACD,OAAO;EACX,SACI;CACR;AACJ;AAEA,SAAS,oBACL,6BACA,cACsB;CACtB,IAAI,CAAC,cAAc,OAAO,KAAA;CAE1B,IAAI,aAAa,SAAS,eAAe;EACrC,MAAM,QAAQ,0BAA0B,aAAa,WAAW;EAChE,OAAO,UAAU,KAAA,IACX,KAAA,IACA;GACI,MAAM;GACN,OAAO,EAAE,MAAM;EACnB;CACV;CAEA,IAAI,aAAa,SAAS,gCAAgC;EACtD,MAAM,iBAAiB,aAAa;EACpC,MAAM,gBAAgB,eAAe;EACrC,MAAM,kBAAkB,4BACnB,IAAI,aAAa,CAAC,EACjB,IAAI,eAAe,cAAc;EACvC,IAAI,CAAC,iBAAiB,OAAO,KAAA;EAE7B,OAAO;GACH,MAAM;GACN,OAAO;IACH,QAAQ;KACJ,MAAM;KACN,OAAO,EACH,WAAW;MACP,MAAM;MACN,OAAO,EACH,MAAM,cACV;KACJ,EACJ;IACJ;IACA,MAAM,CAAC,eAAe;GAC1B;EACJ;CACJ;AAGJ;AAEA,SAAS,mCACL,YACA,eACA,WACkC;CAClC,MAAM,sBACF,YAAY,WAAW,gBAAgB,WAAW,qBAAqB;CAK3E,QAHI,cAAc,KAAA,IACR,sBACA,qBAAqB,yBAAyB,WAAA,EACrC,kBAAkB,YAAY;AACrD;AAEA,SAAS,YAAY,eAKL;CACZ,IAAI,eAAe,SAAS,SAAS,OAAO,KAAA;CAC5C,IAAI,cAAc,MAAM,SAAS,SAC7B;CAEJ,MAAM,QAAQ,cAAc,MAAM;CAElC,MAAM,UAAU,MAAM,eAAe,SAAS,UAAU;EACpD,MAAM,QAAQ,0BAA0B,MAAM,KAAK;EACnD,OAAO,OAAO,UAAU,WAClB,CACI;GACI;GACA,OAAO,MAAM;EACjB,CACJ,IACA,CAAC;CACX,CAAC;CACD,OAAO,QAAQ,SAAS,IAClB;EACI;EACA,oBAAoB,MAAM,kBAAkB;CAChD,IACA,KAAA;AACV;AAEA,SAAgB,0CACZ,YACA,eACA,WAC4B;CAC5B,MAAM,gBAAgB,mCAAmC,YAAY,eAAe,SAAS;CAE7F,IAAI,eAAe,SAAS,SAAS;EACjC,MAAM,QAAQ,YAAY,aAAa;EACvC,OAAO,SAAS,CAAC,MAAM,qBACjB;GACI,MAAM;GACN,OAAO,EAAE,SAAS,MAAM,QAAQ;EACpC,IACA,KAAA;CACV;CAEA,IAAI,eAAe,SAAS,QAAQ;EAChC,IAAI,cAAc,KAAK,SAAS,QAC5B;EAEJ,MAAM,QAAQ,cAAc,KAAK,KAAK,OAAO;EAC7C,OAAO,QACD;GACI,MAAM;GACN,OAAO,EAAE,MAAM;EACnB,IACA,KAAA;CACV;AAGJ;AAEA,SAAgB,2CACZ,YACA,eACA,WAC8B;CAC9B,MAAM,QAAQ,YAAY,mCAAmC,YAAY,eAAe,SAAS,CAAC;CAClG,OAAO,OAAO,qBAAqB,MAAM,UAAU,KAAA;AACvD;AAEA,SAAgB,kCACZ,YACA,YACuB;CACvB,MAAM,yBAAS,IAAI,IAAwB;CAC3C,IAAI,CAAC,YAAY,OAAO;CAExB,MAAM,uBAAuB,WAAW,WAAW,gBAAgB,WAAW;CAE9E,KAAK,MAAM,aAAa,YAAY;EAChC,MAAM,eACF,uBAAuB,UAAU,KAAK,EAAE,kBAAkB,QAAQ,WAAW,KAAA;EACjF,MAAM,mBAAmB,oBAAoB,WAAW,6BAA6B,YAAY;EACjG,IAAI,kBACA,OAAO,IAAI,UAAU,MAAM,gBAAgB;CAEnD;CAEA,OAAO;AACX"}
1
+ {"version":3,"file":"convertOmsActionParameterMetadata.js","names":[],"sources":["../../src/meta/convertOmsActionParameterMetadata.ts"],"sourcesContent":["import { Temporal } from \"temporal-polyfill\";\nimport type { ActionTypeOmsMetadata } from \"./loadActionTypeOmsMetadata.js\";\nimport type { AllowedParameterValues, ParameterPrefill, StaticValue } from \"@osdk/client.unstable\";\nimport type {\n ActionParameterDef,\n Expression,\n StringConstraint,\n StringSuggestion,\n} from \"@party-stack/ontology-spec\";\n\nfunction parseDate(value: unknown): unknown {\n if (typeof value !== \"string\") return undefined;\n try {\n return Temporal.PlainDate.from(value);\n } catch {\n return value;\n }\n}\n\nfunction parseTimestamp(value: unknown): unknown {\n if (typeof value !== \"string\") return undefined;\n try {\n return Temporal.Instant.from(value);\n } catch {\n return value;\n }\n}\n\nfunction convertFoundryStaticValue(staticValue: StaticValue): unknown {\n switch (staticValue.type) {\n case \"string\":\n return staticValue.string;\n case \"stringList\":\n return staticValue.stringList.strings;\n case \"boolean\":\n return staticValue.boolean;\n case \"booleanList\":\n return staticValue.booleanList.booleans;\n case \"integer\":\n return staticValue.integer;\n case \"integerList\":\n return staticValue.integerList.integers;\n case \"long\":\n return staticValue.long;\n case \"longList\":\n return staticValue.longList.longs;\n case \"double\":\n return staticValue.double;\n case \"doubleList\":\n return staticValue.doubleList.doubles;\n case \"date\":\n return parseDate(staticValue.date.dateValue);\n case \"dateList\":\n return staticValue.dateList.dates.map(parseDate);\n case \"timestamp\":\n return parseTimestamp(staticValue.timestamp);\n case \"timestampList\":\n return staticValue.timestampList.timestamps.map(parseTimestamp);\n case \"null\":\n return null;\n default:\n return undefined;\n }\n}\n\nfunction convertDefaultValue(\n propertyApiNamesByParameter: ReadonlyMap<string, ReadonlyMap<string, string>>,\n defaultValue: ParameterPrefill | undefined\n): Expression | undefined {\n if (!defaultValue) return undefined;\n\n if (defaultValue.type === \"staticValue\") {\n const value = convertFoundryStaticValue(defaultValue.staticValue);\n return value === undefined\n ? undefined\n : {\n kind: \"literal\",\n value: { value },\n };\n }\n\n if (defaultValue.type === \"objectParameterPropertyValue\") {\n const objectProperty = defaultValue.objectParameterPropertyValue;\n const parameterName = objectProperty.parameterId;\n const propertyApiName = propertyApiNamesByParameter\n .get(parameterName)\n ?.get(objectProperty.propertyTypeId);\n if (!propertyApiName) return undefined;\n\n return {\n kind: \"getAt\",\n value: {\n source: {\n kind: \"lookup\",\n value: {\n reference: {\n kind: \"inputReference\",\n value: {\n name: parameterName,\n },\n },\n },\n },\n path: [propertyApiName],\n },\n };\n }\n\n return undefined;\n}\n\nfunction getOmsActionParameterAllowedValues(\n actionType: ActionTypeOmsMetadata | undefined,\n parameterName: string,\n fieldName?: string\n): AllowedParameterValues | undefined {\n const parameterValidation =\n actionType?.actionType.actionTypeLogic.validation.parameterValidations[parameterName];\n const validation =\n fieldName === undefined\n ? parameterValidation\n : parameterValidation?.structFieldValidations?.[fieldName];\n return validation?.defaultValidation.validation?.allowedValues;\n}\n\nfunction getOmsOneOf(allowedValues: AllowedParameterValues | undefined):\n | {\n options: StringSuggestion[];\n otherValuesAllowed: boolean;\n }\n | undefined {\n if (allowedValues?.type !== \"oneOf\") return undefined;\n if (allowedValues.oneOf.type !== \"oneOf\") {\n return undefined;\n }\n const oneOf = allowedValues.oneOf.oneOf;\n\n const options = oneOf.labelledValues.flatMap((entry) => {\n const value = convertFoundryStaticValue(entry.value);\n return typeof value === \"string\"\n ? [\n {\n value,\n label: entry.label,\n },\n ]\n : [];\n });\n return options.length > 0\n ? {\n options,\n otherValuesAllowed: oneOf.otherValueAllowed.allowed,\n }\n : undefined;\n}\n\nexport function convertOmsActionParameterStringConstraint(\n actionType: ActionTypeOmsMetadata | undefined,\n parameterName: string,\n fieldName?: string\n): StringConstraint | undefined {\n const allowedValues = getOmsActionParameterAllowedValues(actionType, parameterName, fieldName);\n\n if (allowedValues?.type === \"oneOf\") {\n const oneOf = getOmsOneOf(allowedValues);\n return oneOf && !oneOf.otherValuesAllowed\n ? {\n kind: \"enum\",\n value: { options: oneOf.options },\n }\n : undefined;\n }\n\n if (allowedValues?.type === \"text\") {\n if (allowedValues.text.type !== \"text\") {\n return undefined;\n }\n const regex = allowedValues.text.text.regex?.regex;\n return regex\n ? {\n kind: \"regex\",\n value: { regex },\n }\n : undefined;\n }\n\n return undefined;\n}\n\nexport function convertOmsActionParameterStringSuggestions(\n actionType: ActionTypeOmsMetadata | undefined,\n parameterName: string,\n fieldName?: string\n): StringSuggestion[] | undefined {\n const oneOf = getOmsOneOf(getOmsActionParameterAllowedValues(actionType, parameterName, fieldName));\n return oneOf?.otherValuesAllowed ? oneOf.options : undefined;\n}\n\nexport function convertOmsActionParameterDefaults(\n actionType: ActionTypeOmsMetadata | undefined,\n parameters: ActionParameterDef[]\n): Map<string, Expression> {\n const result = new Map<string, Expression>();\n if (!actionType) return result;\n\n const parameterValidations = actionType.actionType.actionTypeLogic.validation.parameterValidations;\n\n for (const parameter of parameters) {\n const defaultValue =\n parameterValidations?.[parameter.name]?.defaultValidation.display.prefill ?? undefined;\n const parameterDefault = convertDefaultValue(actionType.propertyApiNamesByParameter, defaultValue);\n if (parameterDefault) {\n result.set(parameter.name, parameterDefault);\n }\n }\n\n return result;\n}\n"],"mappings":"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"}
@@ -1,5 +1,3 @@
1
- import { ActionTypeCollectionOpts, actionTypeCollectionOptions, isNotDeclarativeActionType } from "./actionTypeCollectionOptions.js";
1
+ import { FoundryMetadataBackendOptions, makeFoundryMetadataBackend } from "./backend.js";
2
2
  import { convertFoundryMetaActionType, getFoundryActionOverrideParameterMapping } from "./convertMetaActionType.js";
3
- import { CreateFoundryMetaOntologyBackendAdapterOpts, createFoundryMetaOntologyBackendAdapter } from "./createFoundryMetaOntologyBackendAdapter.js";
4
- import { MetaEntityCollection, MetaEntityStoreOpts, createMetaEntityCollection, linkTypeCollectionOptions, objectTypeCollectionOptions, valueTypeCollectionOptions } from "./entityCollectionOptions.js";
5
- export { ActionTypeCollectionOpts, CreateFoundryMetaOntologyBackendAdapterOpts, MetaEntityCollection, MetaEntityStoreOpts, actionTypeCollectionOptions, convertFoundryMetaActionType, createFoundryMetaOntologyBackendAdapter, createMetaEntityCollection, getFoundryActionOverrideParameterMapping, isNotDeclarativeActionType, linkTypeCollectionOptions, objectTypeCollectionOptions, valueTypeCollectionOptions };
3
+ export { FoundryMetadataBackendOptions, convertFoundryMetaActionType, getFoundryActionOverrideParameterMapping, makeFoundryMetadataBackend };
package/lib/meta/index.js CHANGED
@@ -1,5 +1,3 @@
1
1
  import { convertFoundryMetaActionType, getFoundryActionOverrideParameterMapping } from "./convertMetaActionType.js";
2
- import { actionTypeCollectionOptions, isNotDeclarativeActionType } from "./actionTypeCollectionOptions.js";
3
- import { createMetaEntityCollection, linkTypeCollectionOptions, objectTypeCollectionOptions, valueTypeCollectionOptions } from "./entityCollectionOptions.js";
4
- import { createFoundryMetaOntologyBackendAdapter } from "./createFoundryMetaOntologyBackendAdapter.js";
5
- export { actionTypeCollectionOptions, convertFoundryMetaActionType, createFoundryMetaOntologyBackendAdapter, createMetaEntityCollection, getFoundryActionOverrideParameterMapping, isNotDeclarativeActionType, linkTypeCollectionOptions, objectTypeCollectionOptions, valueTypeCollectionOptions };
2
+ import { makeFoundryMetadataBackend } from "./backend.js";
3
+ export { convertFoundryMetaActionType, getFoundryActionOverrideParameterMapping, makeFoundryMetadataBackend };
@@ -0,0 +1,6 @@
1
+ import { OntologyClient } from "@party-stack/foundry-client";
2
+ import { ObjectTypeV2 } from "@osdk/foundry.ontologies";
3
+ //#region src/meta/listObjectTypes.d.ts
4
+ export declare function listObjectTypes(client: OntologyClient): Promise<ObjectTypeV2[]>;
5
+ //#endregion
6
+ //# sourceMappingURL=listObjectTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listObjectTypes.d.ts","names":[],"sources":["../../src/meta/listObjectTypes.ts"],"mappings":";;;wBAKsB,gBAAgB,QAAQ,iBAAiB,QAAQ"}
@@ -0,0 +1,13 @@
1
+ import { fromPagination, toArray } from "../utils/AsyncIterable.js";
2
+ import { ObjectTypesV2 } from "@osdk/foundry.ontologies";
3
+ //#region src/meta/listObjectTypes.ts
4
+ async function listObjectTypes(client) {
5
+ return toArray(fromPagination((pageSize, pageToken) => ObjectTypesV2.list(client, client.ontologyRid, {
6
+ pageSize,
7
+ pageToken
8
+ }), (page) => page.nextPageToken, (page) => page.data, 100));
9
+ }
10
+ //#endregion
11
+ export { listObjectTypes };
12
+
13
+ //# sourceMappingURL=listObjectTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listObjectTypes.js","names":["AsyncIterable.toArray","AsyncIterable.fromPagination"],"sources":["../../src/meta/listObjectTypes.ts"],"sourcesContent":["import { ObjectTypesV2 } from \"@osdk/foundry.ontologies\";\nimport * as AsyncIterable from \"../utils/AsyncIterable.js\";\nimport type { ObjectTypeV2 } from \"@osdk/foundry.ontologies\";\nimport type { OntologyClient } from \"@party-stack/foundry-client\";\n\nexport async function listObjectTypes(client: OntologyClient): Promise<ObjectTypeV2[]> {\n return AsyncIterable.toArray(\n AsyncIterable.fromPagination(\n (pageSize, pageToken: string | undefined) =>\n ObjectTypesV2.list(client, client.ontologyRid, { pageSize, pageToken }),\n (page) => page.nextPageToken,\n (page) => page.data,\n 100\n )\n );\n}\n"],"mappings":";;;AAKA,eAAsB,gBAAgB,QAAiD;CACnF,OAAOA,QACHC,gBACK,UAAU,cACP,cAAc,KAAK,QAAQ,OAAO,aAAa;EAAE;EAAU;CAAU,CAAC,IACzE,SAAS,KAAK,gBACd,SAAS,KAAK,MACf,GACJ,CACJ;AACJ"}
@@ -10,4 +10,5 @@ export interface ActionTypeOmsMetadata {
10
10
  }
11
11
  export declare function loadActionTypeOmsMetadata(client: OntologyClient, actionTypeRids: string[]): Promise<Map<string, ActionTypeOmsMetadata>>;
12
12
  //#endregion
13
+ export {};
13
14
  //# sourceMappingURL=loadActionTypeOmsMetadata.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { OntologyClient } from "@party-stack/foundry-client";
2
+ import { ActionTypeFullMetadata, ActionTypeV2 } from "@osdk/foundry.ontologies";
3
+ //#region src/meta/loadActions.d.ts
4
+ export declare function isNotDeclarativeActionType(actionType: ActionTypeV2): boolean;
5
+ export declare function loadActionTypesFullMetadata(client: OntologyClient, actionTypes: ActionTypeV2[]): Promise<ActionTypeFullMetadata[]>;
6
+ //#endregion
7
+ //# sourceMappingURL=loadActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadActions.d.ts","names":[],"sources":["../../src/meta/loadActions.ts"],"mappings":";;;wBASgB,2BAA2B,YAAY;wBAIjC,4BAClB,QAAQ,gBACR,aAAa,iBACd,QAAQ"}
@@ -0,0 +1,20 @@
1
+ import { fromBatches, toArray } from "../utils/AsyncIterable.js";
2
+ import { ActionTypesFullMetadata } from "@osdk/foundry.ontologies";
3
+ //#region src/meta/loadActions.ts
4
+ function isNotDeclarativeActionType(actionType) {
5
+ return actionType.operations.length === 0;
6
+ }
7
+ async function loadActionTypesFullMetadata(client, actionTypes) {
8
+ const declarativeActionTypes = actionTypes.filter((actionType) => !isNotDeclarativeActionType(actionType));
9
+ const fullMetadataByApiName = /* @__PURE__ */ new Map();
10
+ const fullMetadata = await toArray(fromBatches(declarativeActionTypes, async (batch) => (await ActionTypesFullMetadata.getFullMetadataBatch(client, client.ontologyRid, { requests: batch.map((actionType) => ({ actionType: actionType.apiName })) }, { preview: true })).data, 100));
11
+ for (const metadata of fullMetadata) fullMetadataByApiName.set(metadata.actionType.apiName, metadata);
12
+ return actionTypes.map((actionType) => fullMetadataByApiName.get(actionType.apiName) ?? {
13
+ actionType,
14
+ fullLogicRules: []
15
+ });
16
+ }
17
+ //#endregion
18
+ export { isNotDeclarativeActionType, loadActionTypesFullMetadata };
19
+
20
+ //# sourceMappingURL=loadActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadActions.js","names":["AsyncIterable.toArray","AsyncIterable.fromBatches"],"sources":["../../src/meta/loadActions.ts"],"sourcesContent":["import {\n ActionTypesFullMetadata,\n type ActionTypeFullMetadata,\n type ActionTypeV2,\n} from \"@osdk/foundry.ontologies\";\nimport * as AsyncIterable from \"../utils/AsyncIterable.js\";\nimport type { OntologyClient } from \"@party-stack/foundry-client\";\n\n// These 404 for some reason on full metadata calls right now but we don't need them right now.\nexport function isNotDeclarativeActionType(actionType: ActionTypeV2): boolean {\n return actionType.operations.length === 0;\n}\n\nexport async function loadActionTypesFullMetadata(\n client: OntologyClient,\n actionTypes: ActionTypeV2[]\n): Promise<ActionTypeFullMetadata[]> {\n const declarativeActionTypes = actionTypes.filter(\n (actionType) => !isNotDeclarativeActionType(actionType)\n );\n const fullMetadataByApiName = new Map<string, ActionTypeFullMetadata>();\n const fullMetadata = await AsyncIterable.toArray(\n AsyncIterable.fromBatches(\n declarativeActionTypes,\n async (batch) =>\n (\n await ActionTypesFullMetadata.getFullMetadataBatch(\n client,\n client.ontologyRid,\n {\n requests: batch.map((actionType) => ({\n actionType: actionType.apiName,\n })),\n },\n { preview: true }\n )\n ).data,\n 100\n )\n );\n for (const metadata of fullMetadata) {\n fullMetadataByApiName.set(metadata.actionType.apiName, metadata);\n }\n\n return actionTypes.map(\n (actionType) =>\n fullMetadataByApiName.get(actionType.apiName) ?? {\n actionType,\n fullLogicRules: [],\n }\n );\n}\n"],"mappings":";;;AASA,SAAgB,2BAA2B,YAAmC;CAC1E,OAAO,WAAW,WAAW,WAAW;AAC5C;AAEA,eAAsB,4BAClB,QACA,aACiC;CACjC,MAAM,yBAAyB,YAAY,QACtC,eAAe,CAAC,2BAA2B,UAAU,CAC1D;CACA,MAAM,wCAAwB,IAAI,IAAoC;CACtE,MAAM,eAAe,MAAMA,QACvBC,YACI,wBACA,OAAO,WAEC,MAAM,wBAAwB,qBAC1B,QACA,OAAO,aACP,EACI,UAAU,MAAM,KAAK,gBAAgB,EACjC,YAAY,WAAW,QAC3B,EAAE,EACN,GACA,EAAE,SAAS,KAAK,CACpB,EAAA,CACF,MACN,GACJ,CACJ;CACA,KAAK,MAAM,YAAY,cACnB,sBAAsB,IAAI,SAAS,WAAW,SAAS,QAAQ;CAGnE,OAAO,YAAY,KACd,eACG,sBAAsB,IAAI,WAAW,OAAO,KAAK;EAC7C;EACA,gBAAgB,CAAC;CACrB,CACR;AACJ"}
@@ -0,0 +1,9 @@
1
+ import { OntologyClient } from "@party-stack/foundry-client";
2
+ import { Predicate } from "@party-stack/ontology-storage";
3
+ import { LinkType, ObjectType, ValueType } from "@party-stack/ontology-spec/meta";
4
+ //#region src/meta/loadEntities.d.ts
5
+ export declare function loadFoundryMetaObjectTypes(client: OntologyClient, predicate?: Predicate): Promise<ObjectType[]>;
6
+ export declare function loadFoundryMetaLinkTypes(client: OntologyClient, predicate?: Predicate): Promise<LinkType[]>;
7
+ export declare function loadFoundryMetaValueTypes(client: OntologyClient, predicate?: Predicate): Promise<ValueType[]>;
8
+ //#endregion
9
+ //# sourceMappingURL=loadEntities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadEntities.d.ts","names":["MetaObjectType","MetaLinkType","MetaValueType"],"sources":["../../src/meta/loadEntities.ts"],"mappings":";;;;wBA2BsB,2BAClB,QAAQ,gBACR,YAAY,YACb,QAAQA;wBA0CW,yBAClB,QAAQ,gBACR,YAAY,YACb,QAAQC;wBAsFW,0BAClB,QAAQ,gBACR,YAAY,YACb,QAAQC"}
@@ -0,0 +1,73 @@
1
+ import { fromBatches, fromPagination, toArray } from "../utils/AsyncIterable.js";
2
+ import { convertFoundryMetaLinkTypes } from "./convertMetaLinkType.js";
3
+ import { convertFoundryMetaObjectType } from "./convertMetaObjectType.js";
4
+ import { convertFoundryMetaValueType } from "./convertMetaValueType.js";
5
+ import { listObjectTypes } from "./listObjectTypes.js";
6
+ import { planMetaLookup } from "./planMetaLookup.js";
7
+ import { Schema } from "effect";
8
+ import { ObjectTypesV2, OntologyValueTypes } from "@osdk/foundry.ontologies";
9
+ //#region src/meta/loadEntities.ts
10
+ const missing = Schema.is(Schema.Struct({ statusCode: Schema.Literal(404) }));
11
+ async function ignoreMissing(load) {
12
+ try {
13
+ return await load();
14
+ } catch (cause) {
15
+ if (missing(cause)) return void 0;
16
+ throw cause;
17
+ }
18
+ }
19
+ async function loadFoundryMetaObjectTypes(client, predicate) {
20
+ const lookup = planMetaLookup(predicate, {
21
+ id: "id",
22
+ name: "name"
23
+ });
24
+ let objectTypes;
25
+ if (!lookup) objectTypes = await listObjectTypes(client);
26
+ else if (lookup.field === "name") objectTypes = await toArray(fromBatches(lookup.values, async (batch) => (await ObjectTypesV2.getFullMetadataBatch(client, client.ontologyRid, {
27
+ requests: batch.map((objectType) => ({ objectType })),
28
+ includeLinkTypes: false
29
+ }, { preview: true })).data.map((metadata) => metadata.objectType), 100));
30
+ else objectTypes = await toArray(fromBatches(lookup.values, async (batch) => (await ObjectTypesV2.getByRidBatch(client, client.ontologyRid, { requests: batch.map((objectTypeRid) => ({ objectTypeRid })) }, { preview: true })).data, 100));
31
+ return objectTypes.map((objectType) => convertFoundryMetaObjectType({ objectType }));
32
+ }
33
+ async function loadFoundryMetaLinkTypes(client, predicate) {
34
+ const names = planMetaLookup(predicate, {
35
+ "source.objectType": "objectType",
36
+ "target.objectType": "objectType"
37
+ })?.values ?? (await listObjectTypes(client)).map((type) => type.apiName);
38
+ const outgoing = /* @__PURE__ */ new Map();
39
+ const load = (name) => {
40
+ let result = outgoing.get(name);
41
+ if (!result) {
42
+ result = toArray(fromPagination((pageSize, pageToken) => pageToken === void 0 ? ignoreMissing(() => ObjectTypesV2.listOutgoingLinkTypes(client, client.ontologyRid, name, {
43
+ pageSize,
44
+ pageToken
45
+ })) : ObjectTypesV2.listOutgoingLinkTypes(client, client.ontologyRid, name, {
46
+ pageSize,
47
+ pageToken
48
+ }), (page) => page?.nextPageToken, (page) => page?.data ?? [], 100));
49
+ outgoing.set(name, result);
50
+ }
51
+ return result;
52
+ };
53
+ const selected = await Promise.all([...new Set(names)].map(load));
54
+ const selectedRids = new Set(selected.flatMap((sides) => sides.map((side) => side.linkTypeRid)));
55
+ const neighbors = [...new Set(selected.flatMap((sides) => sides.map((side) => side.objectTypeApiName)))].filter((name) => !outgoing.has(name));
56
+ const neighborRids = await toArray(fromBatches(neighbors, async (batch) => (await ObjectTypesV2.getFullMetadataBatch(client, client.ontologyRid, {
57
+ requests: batch.map((objectType) => ({ objectType })),
58
+ includeLinkTypes: false
59
+ }, { preview: true })).data.map((metadata) => metadata.objectType.rid), 100));
60
+ const inverseSides = await toArray(fromBatches([...new Set(neighborRids)], async (batch) => Object.values((await ObjectTypesV2.getOutgoingLinkTypesByObjectTypeRidBatch(client, client.ontologyRid, {
61
+ requests: batch.map((objectTypeRid) => ({ objectTypeRid })),
62
+ filterLinkTypeRids: [...selectedRids]
63
+ }, { preview: true })).data).flat(), 100));
64
+ return convertFoundryMetaLinkTypes([...selected, inverseSides].map((linkTypes) => ({ linkTypes: linkTypes.filter((side) => selectedRids.has(side.linkTypeRid)) })));
65
+ }
66
+ async function loadFoundryMetaValueTypes(client, predicate) {
67
+ const lookup = planMetaLookup(predicate, { name: "name" });
68
+ return (lookup ? await Promise.all(lookup.values.map((name) => ignoreMissing(() => OntologyValueTypes.get(client, client.ontologyRid, name, { preview: true })))) : (await OntologyValueTypes.list(client, client.ontologyRid, { preview: true })).data).filter((type) => type !== void 0).map(convertFoundryMetaValueType);
69
+ }
70
+ //#endregion
71
+ export { loadFoundryMetaLinkTypes, loadFoundryMetaObjectTypes, loadFoundryMetaValueTypes };
72
+
73
+ //# sourceMappingURL=loadEntities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadEntities.js","names":["AsyncIterable.toArray","AsyncIterable.fromBatches","AsyncIterable.fromPagination"],"sources":["../../src/meta/loadEntities.ts"],"sourcesContent":["import { ObjectTypesV2, OntologyValueTypes } from \"@osdk/foundry.ontologies\";\nimport { Schema } from \"effect\";\nimport * as AsyncIterable from \"../utils/AsyncIterable.js\";\nimport { convertFoundryMetaLinkTypes } from \"./convertMetaLinkType.js\";\nimport { convertFoundryMetaObjectType } from \"./convertMetaObjectType.js\";\nimport { convertFoundryMetaValueType } from \"./convertMetaValueType.js\";\nimport { listObjectTypes } from \"./listObjectTypes.js\";\nimport { planMetaLookup } from \"./planMetaLookup.js\";\nimport type { LinkTypeSideV2, ObjectTypeV2 } from \"@osdk/foundry.ontologies\";\nimport type { OntologyClient } from \"@party-stack/foundry-client\";\nimport type {\n LinkType as MetaLinkType,\n ObjectType as MetaObjectType,\n ValueType as MetaValueType,\n} from \"@party-stack/ontology-spec/meta\";\nimport type { Predicate } from \"@party-stack/ontology-storage\";\n\nconst missing = Schema.is(Schema.Struct({ statusCode: Schema.Literal(404) }));\nasync function ignoreMissing<A>(load: () => Promise<A>): Promise<A | undefined> {\n try {\n return await load();\n } catch (cause) {\n if (missing(cause)) return undefined;\n throw cause;\n }\n}\n\nexport async function loadFoundryMetaObjectTypes(\n client: OntologyClient,\n predicate?: Predicate\n): Promise<MetaObjectType[]> {\n const lookup = planMetaLookup(predicate, { id: \"id\", name: \"name\" });\n let objectTypes: ObjectTypeV2[];\n if (!lookup) objectTypes = await listObjectTypes(client);\n else if (lookup.field === \"name\")\n objectTypes = await AsyncIterable.toArray(\n AsyncIterable.fromBatches(\n lookup.values,\n async (batch) =>\n (\n await ObjectTypesV2.getFullMetadataBatch(\n client,\n client.ontologyRid,\n {\n requests: batch.map((objectType) => ({ objectType })),\n includeLinkTypes: false,\n },\n { preview: true }\n )\n ).data.map((metadata) => metadata.objectType),\n 100\n )\n );\n else\n objectTypes = await AsyncIterable.toArray(\n AsyncIterable.fromBatches(\n lookup.values,\n async (batch) =>\n (\n await ObjectTypesV2.getByRidBatch(\n client,\n client.ontologyRid,\n { requests: batch.map((objectTypeRid) => ({ objectTypeRid })) },\n { preview: true }\n )\n ).data,\n 100\n )\n );\n return objectTypes.map((objectType) => convertFoundryMetaObjectType({ objectType }));\n}\n\nexport async function loadFoundryMetaLinkTypes(\n client: OntologyClient,\n predicate?: Predicate\n): Promise<MetaLinkType[]> {\n const lookup = planMetaLookup(predicate, {\n \"source.objectType\": \"objectType\",\n \"target.objectType\": \"objectType\",\n });\n const names = lookup?.values ?? (await listObjectTypes(client)).map((type) => type.apiName);\n // Sharing is scoped to this load. Refreshes must acquire new provider metadata.\n const outgoing = new Map<string, Promise<LinkTypeSideV2[]>>();\n const load = (name: string) => {\n let result = outgoing.get(name);\n if (!result) {\n result = AsyncIterable.toArray(\n AsyncIterable.fromPagination(\n (pageSize, pageToken: string | undefined) =>\n pageToken === undefined\n ? ignoreMissing(() =>\n ObjectTypesV2.listOutgoingLinkTypes(client, client.ontologyRid, name, {\n pageSize,\n pageToken,\n })\n )\n : ObjectTypesV2.listOutgoingLinkTypes(client, client.ontologyRid, name, {\n pageSize,\n pageToken,\n }),\n (page) => page?.nextPageToken,\n (page) => page?.data ?? [],\n 100\n )\n );\n outgoing.set(name, result);\n }\n return result;\n };\n const selected = await Promise.all([...new Set(names)].map(load));\n const selectedRids = new Set(selected.flatMap((sides) => sides.map((side) => side.linkTypeRid)));\n // A link needs both outgoing sides. Resolve only the unselected neighbors,\n // then ask the batch endpoint for the inverse sides of the selected links.\n const neighbors = [\n ...new Set(selected.flatMap((sides) => sides.map((side) => side.objectTypeApiName))),\n ].filter((name) => !outgoing.has(name));\n const neighborRids = await AsyncIterable.toArray(\n AsyncIterable.fromBatches(\n neighbors,\n async (batch) =>\n (\n await ObjectTypesV2.getFullMetadataBatch(\n client,\n client.ontologyRid,\n {\n requests: batch.map((objectType) => ({ objectType })),\n includeLinkTypes: false,\n },\n { preview: true }\n )\n ).data.map((metadata) => metadata.objectType.rid),\n 100\n )\n );\n const inverseSides = await AsyncIterable.toArray(\n AsyncIterable.fromBatches(\n [...new Set(neighborRids)],\n async (batch) =>\n Object.values(\n (\n await ObjectTypesV2.getOutgoingLinkTypesByObjectTypeRidBatch(\n client,\n client.ontologyRid,\n {\n requests: batch.map((objectTypeRid) => ({ objectTypeRid })),\n filterLinkTypeRids: [...selectedRids],\n },\n { preview: true }\n )\n ).data\n ).flat(),\n 100\n )\n );\n return convertFoundryMetaLinkTypes(\n [...selected, inverseSides].map((linkTypes) => ({\n linkTypes: linkTypes.filter((side) => selectedRids.has(side.linkTypeRid)),\n }))\n );\n}\n\nexport async function loadFoundryMetaValueTypes(\n client: OntologyClient,\n predicate?: Predicate\n): Promise<MetaValueType[]> {\n const lookup = planMetaLookup(predicate, { name: \"name\" });\n const types = lookup\n ? await Promise.all(\n lookup.values.map((name) =>\n ignoreMissing(() =>\n OntologyValueTypes.get(client, client.ontologyRid, name, { preview: true })\n )\n )\n )\n : (await OntologyValueTypes.list(client, client.ontologyRid, { preview: true })).data;\n return types.filter((type) => type !== undefined).map(convertFoundryMetaValueType);\n}\n"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { OntologyClient } from "@party-stack/foundry-client";
2
+ import { QueryTypeV2 } from "@osdk/foundry.ontologies";
3
+ //#region src/meta/loadQueryFunctions.d.ts
4
+ export declare function listQueryFunctionTypes(opts: {
5
+ client: OntologyClient;
6
+ }): Promise<QueryTypeV2[]>;
7
+ export declare function getQueryFunctionTypes(opts: {
8
+ client: OntologyClient;
9
+ }, names: string[]): Promise<QueryTypeV2[]>;
10
+ //#endregion
11
+ //# sourceMappingURL=loadQueryFunctions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadQueryFunctions.d.ts","names":[],"sources":["../../src/meta/loadQueryFunctions.ts"],"mappings":";;;wBAIsB,uBAAuB;EAAQ,QAAQ;IAAmB,QAAQ;wBAelE,sBAClB;EAAQ,QAAQ;GAChB,kBACD,QAAQ"}
@@ -0,0 +1,18 @@
1
+ import { fromPagination, toArray } from "../utils/AsyncIterable.js";
2
+ import { QueryTypes } from "@osdk/foundry.ontologies";
3
+ //#region src/meta/loadQueryFunctions.ts
4
+ async function listQueryFunctionTypes(opts) {
5
+ return toArray(fromPagination((pageSize, pageToken) => QueryTypes.list(opts.client, opts.client.ontologyRid, {
6
+ pageSize,
7
+ pageToken
8
+ }), (page) => page.nextPageToken, (page) => page.data, 100));
9
+ }
10
+ async function getQueryFunctionTypes(opts, names) {
11
+ const uniqueNames = Array.from(new Set(names));
12
+ if (uniqueNames.length === 0) return [];
13
+ return Promise.all(uniqueNames.map((name) => QueryTypes.get(opts.client, opts.client.ontologyRid, name)));
14
+ }
15
+ //#endregion
16
+ export { getQueryFunctionTypes, listQueryFunctionTypes };
17
+
18
+ //# sourceMappingURL=loadQueryFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadQueryFunctions.js","names":["AsyncIterable.toArray","AsyncIterable.fromPagination"],"sources":["../../src/meta/loadQueryFunctions.ts"],"sourcesContent":["import { QueryTypes, type QueryTypeV2 } from \"@osdk/foundry.ontologies\";\nimport * as AsyncIterable from \"../utils/AsyncIterable.js\";\nimport type { OntologyClient } from \"@party-stack/foundry-client\";\n\nexport async function listQueryFunctionTypes(opts: { client: OntologyClient }): Promise<QueryTypeV2[]> {\n return AsyncIterable.toArray(\n AsyncIterable.fromPagination(\n (pageSize, pageToken: string | undefined) =>\n QueryTypes.list(opts.client, opts.client.ontologyRid, {\n pageSize,\n pageToken,\n }),\n (page) => page.nextPageToken,\n (page) => page.data,\n 100\n )\n );\n}\n\nexport async function getQueryFunctionTypes(\n opts: { client: OntologyClient },\n names: string[]\n): Promise<QueryTypeV2[]> {\n const uniqueNames = Array.from(new Set(names));\n if (uniqueNames.length === 0) return [];\n return Promise.all(uniqueNames.map((name) => QueryTypes.get(opts.client, opts.client.ontologyRid, name)));\n}\n"],"mappings":";;;AAIA,eAAsB,uBAAuB,MAA0D;CACnG,OAAOA,QACHC,gBACK,UAAU,cACP,WAAW,KAAK,KAAK,QAAQ,KAAK,OAAO,aAAa;EAClD;EACA;CACJ,CAAC,IACJ,SAAS,KAAK,gBACd,SAAS,KAAK,MACf,GACJ,CACJ;AACJ;AAEA,eAAsB,sBAClB,MACA,OACsB;CACtB,MAAM,cAAc,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC;CAC7C,IAAI,YAAY,WAAW,GAAG,OAAO,CAAC;CACtC,OAAO,QAAQ,IAAI,YAAY,KAAK,SAAS,WAAW,IAAI,KAAK,QAAQ,KAAK,OAAO,aAAa,IAAI,CAAC,CAAC;AAC5G"}
@@ -0,0 +1,12 @@
1
+ import { Predicate } from "@party-stack/ontology-storage";
2
+ //#region src/meta/planMetaLookup.d.ts
3
+ export interface MetaLookup {
4
+ readonly field: string;
5
+ readonly values: string[];
6
+ }
7
+ /** Select a bounded superset; the shared query engine applies residual predicates.
8
+ * AND can use one bounded branch. OR must cover every branch with the same lookup.
9
+ */
10
+ export declare function planMetaLookup(predicate: Predicate | undefined, fields: Readonly<Record<string, string>>): MetaLookup | undefined;
11
+ //#endregion
12
+ //# sourceMappingURL=planMetaLookup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planMetaLookup.d.ts","names":[],"sources":["../../src/meta/planMetaLookup.ts"],"mappings":";;iBAGiB;WACJ;WACA;;;;;wBAMG,eACZ,WAAW,uBACX,QAAQ,SAAS,0BAClB"}
@@ -0,0 +1,44 @@
1
+ import { isField } from "@party-stack/ontology-storage/tables";
2
+ //#region src/meta/planMetaLookup.ts
3
+ /** Select a bounded superset; the shared query engine applies residual predicates.
4
+ * AND can use one bounded branch. OR must cover every branch with the same lookup.
5
+ */
6
+ function planMetaLookup(predicate, fields) {
7
+ if (!predicate) return;
8
+ const lookup = (operand, values) => {
9
+ if (!isField(operand)) return;
10
+ const path = operand.path.join(".");
11
+ if (!Object.hasOwn(fields, path)) return;
12
+ return {
13
+ field: fields[path],
14
+ values: [...new Set(values)]
15
+ };
16
+ };
17
+ switch (predicate.op) {
18
+ case "eq":
19
+ if (typeof predicate.right === "string") return lookup(predicate.left, [predicate.right]);
20
+ if (typeof predicate.left === "string") return lookup(predicate.right, [predicate.left]);
21
+ return;
22
+ case "in":
23
+ if (predicate.values.every((value) => typeof value === "string")) return lookup(predicate.left, predicate.values);
24
+ return;
25
+ case "and": {
26
+ const bounded = predicate.predicates.map((child) => planMetaLookup(child, fields)).filter((child) => child !== void 0);
27
+ return bounded.find((child) => child.values.length === 0) ?? bounded[0];
28
+ }
29
+ case "or": {
30
+ const children = predicate.predicates.map((child) => planMetaLookup(child, fields));
31
+ const first = children[0];
32
+ if (!first || children.some((child) => child?.field !== first.field)) return;
33
+ return {
34
+ field: first.field,
35
+ values: [...new Set(children.flatMap((child) => child.values))]
36
+ };
37
+ }
38
+ default: return;
39
+ }
40
+ }
41
+ //#endregion
42
+ export { planMetaLookup };
43
+
44
+ //# sourceMappingURL=planMetaLookup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planMetaLookup.js","names":[],"sources":["../../src/meta/planMetaLookup.ts"],"sourcesContent":["import { isField } from \"@party-stack/ontology-storage/tables\";\nimport type { Operand, Predicate } from \"@party-stack/ontology-storage\";\n\nexport interface MetaLookup {\n readonly field: string;\n readonly values: string[];\n}\n\n/** Select a bounded superset; the shared query engine applies residual predicates.\n * AND can use one bounded branch. OR must cover every branch with the same lookup.\n */\nexport function planMetaLookup(\n predicate: Predicate | undefined,\n fields: Readonly<Record<string, string>>\n): MetaLookup | undefined {\n if (!predicate) return;\n const lookup = (operand: Operand, values: readonly string[]): MetaLookup | undefined => {\n if (!isField(operand)) return;\n const path = operand.path.join(\".\");\n if (!Object.hasOwn(fields, path)) return;\n return { field: fields[path]!, values: [...new Set(values)] };\n };\n switch (predicate.op) {\n case \"eq\":\n if (typeof predicate.right === \"string\") return lookup(predicate.left, [predicate.right]);\n if (typeof predicate.left === \"string\") return lookup(predicate.right, [predicate.left]);\n return;\n case \"in\":\n if (predicate.values.every((value): value is string => typeof value === \"string\"))\n return lookup(predicate.left, predicate.values);\n return;\n case \"and\": {\n const bounded = predicate.predicates\n .map((child) => planMetaLookup(child, fields))\n .filter((child) => child !== undefined);\n return bounded.find((child) => child.values.length === 0) ?? bounded[0];\n }\n case \"or\": {\n const children = predicate.predicates.map((child) => planMetaLookup(child, fields));\n const first = children[0];\n if (!first || children.some((child) => child?.field !== first.field)) return;\n return {\n field: first.field,\n values: [...new Set(children.flatMap((child) => child!.values))],\n };\n }\n default:\n return;\n }\n}\n"],"mappings":";;;;;AAWA,SAAgB,eACZ,WACA,QACsB;CACtB,IAAI,CAAC,WAAW;CAChB,MAAM,UAAU,SAAkB,WAAsD;EACpF,IAAI,CAAC,QAAQ,OAAO,GAAG;EACvB,MAAM,OAAO,QAAQ,KAAK,KAAK,GAAG;EAClC,IAAI,CAAC,OAAO,OAAO,QAAQ,IAAI,GAAG;EAClC,OAAO;GAAE,OAAO,OAAO;GAAQ,QAAQ,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC;EAAE;CAChE;CACA,QAAQ,UAAU,IAAlB;EACI,KAAK;GACD,IAAI,OAAO,UAAU,UAAU,UAAU,OAAO,OAAO,UAAU,MAAM,CAAC,UAAU,KAAK,CAAC;GACxF,IAAI,OAAO,UAAU,SAAS,UAAU,OAAO,OAAO,UAAU,OAAO,CAAC,UAAU,IAAI,CAAC;GACvF;EACJ,KAAK;GACD,IAAI,UAAU,OAAO,OAAO,UAA2B,OAAO,UAAU,QAAQ,GAC5E,OAAO,OAAO,UAAU,MAAM,UAAU,MAAM;GAClD;EACJ,KAAK,OAAO;GACR,MAAM,UAAU,UAAU,WACrB,KAAK,UAAU,eAAe,OAAO,MAAM,CAAC,CAAC,CAC7C,QAAQ,UAAU,UAAU,KAAA,CAAS;GAC1C,OAAO,QAAQ,MAAM,UAAU,MAAM,OAAO,WAAW,CAAC,KAAK,QAAQ;EACzE;EACA,KAAK,MAAM;GACP,MAAM,WAAW,UAAU,WAAW,KAAK,UAAU,eAAe,OAAO,MAAM,CAAC;GAClF,MAAM,QAAQ,SAAS;GACvB,IAAI,CAAC,SAAS,SAAS,MAAM,UAAU,OAAO,UAAU,MAAM,KAAK,GAAG;GACtE,OAAO;IACH,OAAO,MAAM;IACb,QAAQ,CAAC,GAAG,IAAI,IAAI,SAAS,SAAS,UAAU,MAAO,MAAM,CAAC,CAAC;GACnE;EACJ;EACA,SACI;CACR;AACJ"}