@osdk/generator 2.0.0-beta.13 → 2.0.0-beta.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/build/browser/GenerateContext/EnhanceCommon.d.ts +9 -0
  3. package/build/browser/GenerateContext/EnhanceCommon.d.ts.map +1 -0
  4. package/build/browser/GenerateContext/EnhanceCommon.js +17 -0
  5. package/build/browser/GenerateContext/EnhanceCommon.js.map +1 -0
  6. package/build/browser/GenerateContext/EnhancedAction.d.ts +14 -0
  7. package/build/browser/GenerateContext/EnhancedAction.d.ts.map +1 -0
  8. package/build/browser/GenerateContext/EnhancedAction.js +42 -0
  9. package/build/browser/GenerateContext/EnhancedAction.js.map +1 -0
  10. package/build/browser/GenerateContext/EnhancedBase.d.ts +23 -0
  11. package/build/browser/GenerateContext/EnhancedBase.d.ts.map +1 -0
  12. package/build/browser/GenerateContext/EnhancedBase.js +72 -0
  13. package/build/browser/GenerateContext/EnhancedBase.js.map +1 -0
  14. package/build/browser/GenerateContext/EnhancedInterfaceType.d.ts +13 -0
  15. package/build/browser/GenerateContext/EnhancedInterfaceType.d.ts.map +1 -0
  16. package/build/browser/GenerateContext/EnhancedInterfaceType.js +38 -0
  17. package/build/browser/GenerateContext/EnhancedInterfaceType.js.map +1 -0
  18. package/build/browser/GenerateContext/EnhancedObjectType.d.ts +12 -0
  19. package/build/browser/GenerateContext/EnhancedObjectType.d.ts.map +1 -0
  20. package/build/browser/GenerateContext/EnhancedObjectType.js +35 -0
  21. package/build/browser/GenerateContext/EnhancedObjectType.js.map +1 -0
  22. package/build/browser/GenerateContext/EnhancedOntologyDefinition.d.ts +27 -0
  23. package/build/browser/GenerateContext/EnhancedOntologyDefinition.d.ts.map +1 -0
  24. package/build/browser/GenerateContext/EnhancedOntologyDefinition.js +77 -0
  25. package/build/browser/GenerateContext/EnhancedOntologyDefinition.js.map +1 -0
  26. package/build/browser/GenerateContext/EnhancedQuery.d.ts +14 -0
  27. package/build/browser/GenerateContext/EnhancedQuery.d.ts.map +1 -0
  28. package/build/browser/GenerateContext/EnhancedQuery.js +42 -0
  29. package/build/browser/GenerateContext/EnhancedQuery.js.map +1 -0
  30. package/build/browser/GenerateContext/EnhancedSharedPropertyType.d.ts +8 -0
  31. package/build/browser/GenerateContext/EnhancedSharedPropertyType.d.ts.map +1 -0
  32. package/build/browser/GenerateContext/EnhancedSharedPropertyType.js +24 -0
  33. package/build/browser/GenerateContext/EnhancedSharedPropertyType.js.map +1 -0
  34. package/build/browser/GenerateContext/ForeignType.d.ts +10 -0
  35. package/build/browser/GenerateContext/ForeignType.d.ts.map +1 -0
  36. package/build/browser/GenerateContext/ForeignType.js +36 -0
  37. package/build/browser/GenerateContext/ForeignType.js.map +1 -0
  38. package/build/browser/GenerateContext/GenerateContext.d.ts +13 -0
  39. package/build/browser/GenerateContext/GenerateContext.d.ts.map +1 -0
  40. package/build/browser/GenerateContext/GenerateContext.js +17 -0
  41. package/build/browser/GenerateContext/GenerateContext.js.map +1 -0
  42. package/build/browser/GenerateContext/enhanceOntology.d.ts +4 -0
  43. package/build/browser/GenerateContext/enhanceOntology.d.ts.map +1 -0
  44. package/build/browser/GenerateContext/enhanceOntology.js +20 -0
  45. package/build/browser/GenerateContext/enhanceOntology.js.map +1 -0
  46. package/build/browser/MinimalFs.d.ts +10 -0
  47. package/build/browser/MinimalFs.d.ts.map +1 -0
  48. package/build/browser/MinimalFs.js +17 -0
  49. package/build/browser/MinimalFs.js.map +1 -0
  50. package/build/browser/WireOntologyDefinition.d.ts +4 -0
  51. package/build/browser/WireOntologyDefinition.d.ts.map +1 -0
  52. package/build/browser/WireOntologyDefinition.js +17 -0
  53. package/build/browser/WireOntologyDefinition.js.map +1 -0
  54. package/build/browser/generateClientSdkPackage.d.ts +47 -0
  55. package/build/browser/generateClientSdkPackage.d.ts.map +1 -0
  56. package/build/browser/generateClientSdkPackage.js +126 -0
  57. package/build/browser/generateClientSdkPackage.js.map +1 -0
  58. package/build/browser/generateClientSdkPackage.test.d.ts +2 -0
  59. package/build/browser/generateClientSdkPackage.test.d.ts.map +1 -0
  60. package/build/browser/generateClientSdkPackage.test.js +67 -0
  61. package/build/browser/generateClientSdkPackage.test.js.map +1 -0
  62. package/build/browser/index.d.ts +5 -0
  63. package/build/browser/index.d.ts.map +1 -0
  64. package/build/browser/index.js +17 -1286
  65. package/build/browser/index.js.map +1 -1
  66. package/build/browser/shared/apiNamespaces/startsWithApiNamespace.d.ts +2 -0
  67. package/build/browser/shared/apiNamespaces/startsWithApiNamespace.d.ts.map +1 -0
  68. package/build/browser/shared/apiNamespaces/startsWithApiNamespace.js +23 -0
  69. package/build/browser/shared/apiNamespaces/startsWithApiNamespace.js.map +1 -0
  70. package/build/browser/shared/apiNamespaces/startsWithApiNamespace.test.d.ts +2 -0
  71. package/build/browser/shared/apiNamespaces/startsWithApiNamespace.test.d.ts.map +1 -0
  72. package/build/browser/shared/apiNamespaces/startsWithApiNamespace.test.js +46 -0
  73. package/build/browser/shared/apiNamespaces/startsWithApiNamespace.test.js.map +1 -0
  74. package/build/browser/shared/getObjectImports.d.ts +4 -0
  75. package/build/browser/shared/getObjectImports.d.ts.map +1 -0
  76. package/build/browser/shared/getObjectImports.js +24 -0
  77. package/build/browser/shared/getObjectImports.js.map +1 -0
  78. package/build/browser/shared/getObjectTypeApiNamesFromQuery.d.ts +4 -0
  79. package/build/browser/shared/getObjectTypeApiNamesFromQuery.d.ts.map +1 -0
  80. package/build/browser/shared/getObjectTypeApiNamesFromQuery.js +27 -0
  81. package/build/browser/shared/getObjectTypeApiNamesFromQuery.js.map +1 -0
  82. package/build/browser/shared/getObjectTypesFromQueryDataType.d.ts +3 -0
  83. package/build/browser/shared/getObjectTypesFromQueryDataType.d.ts.map +1 -0
  84. package/build/browser/shared/getObjectTypesFromQueryDataType.js +57 -0
  85. package/build/browser/shared/getObjectTypesFromQueryDataType.js.map +1 -0
  86. package/build/browser/shared/propertyJsdoc.d.ts +6 -0
  87. package/build/browser/shared/propertyJsdoc.d.ts.map +1 -0
  88. package/build/browser/shared/propertyJsdoc.js +38 -0
  89. package/build/browser/shared/propertyJsdoc.js.map +1 -0
  90. package/build/browser/shared/sanitizeMetadata.d.ts +2 -0
  91. package/build/browser/shared/sanitizeMetadata.d.ts.map +1 -0
  92. package/build/browser/shared/sanitizeMetadata.js +33 -0
  93. package/build/browser/shared/sanitizeMetadata.js.map +1 -0
  94. package/build/browser/shared/sanitizeMetadata.test.d.ts +2 -0
  95. package/build/browser/shared/sanitizeMetadata.test.d.ts.map +1 -0
  96. package/build/browser/shared/sanitizeMetadata.test.js +44 -0
  97. package/build/browser/shared/sanitizeMetadata.test.js.map +1 -0
  98. package/build/browser/util/InMemoryFs.d.ts +7 -0
  99. package/build/browser/util/InMemoryFs.d.ts.map +1 -0
  100. package/build/browser/util/InMemoryFs.js +30 -0
  101. package/build/browser/util/InMemoryFs.js.map +1 -0
  102. package/build/browser/util/commaSeparatedIdentifiers.d.ts +2 -0
  103. package/build/browser/util/commaSeparatedIdentifiers.d.ts.map +1 -0
  104. package/build/browser/util/commaSeparatedIdentifiers.js +25 -0
  105. package/build/browser/util/commaSeparatedIdentifiers.js.map +1 -0
  106. package/build/browser/util/commaSeparatedTypeIdentifiers.d.ts +2 -0
  107. package/build/browser/util/commaSeparatedTypeIdentifiers.d.ts.map +1 -0
  108. package/build/browser/util/commaSeparatedTypeIdentifiers.js +19 -0
  109. package/build/browser/util/commaSeparatedTypeIdentifiers.js.map +1 -0
  110. package/build/browser/util/deleteUndefineds.d.ts +2 -0
  111. package/build/browser/util/deleteUndefineds.d.ts.map +1 -0
  112. package/build/browser/util/deleteUndefineds.js +19 -0
  113. package/build/browser/util/deleteUndefineds.js.map +1 -0
  114. package/build/browser/util/reservedKeywords.d.ts +2 -0
  115. package/build/browser/util/reservedKeywords.d.ts.map +1 -0
  116. package/build/browser/util/reservedKeywords.js +21 -0
  117. package/build/browser/util/reservedKeywords.js.map +1 -0
  118. package/build/browser/util/stringUnionFrom.d.ts +2 -0
  119. package/build/browser/util/stringUnionFrom.d.ts.map +1 -0
  120. package/build/browser/util/stringUnionFrom.js +23 -0
  121. package/build/browser/util/stringUnionFrom.js.map +1 -0
  122. package/build/browser/util/stringify.d.ts +20 -0
  123. package/build/browser/util/stringify.d.ts.map +1 -0
  124. package/build/browser/util/stringify.js +36 -0
  125. package/build/browser/util/stringify.js.map +1 -0
  126. package/build/browser/util/test/TodoWireOntology.d.ts +217 -0
  127. package/build/browser/util/test/TodoWireOntology.d.ts.map +1 -0
  128. package/build/browser/util/test/TodoWireOntology.js +232 -0
  129. package/build/browser/util/test/TodoWireOntology.js.map +1 -0
  130. package/build/browser/util/test/compileThis.d.ts +3 -0
  131. package/build/browser/util/test/compileThis.d.ts.map +1 -0
  132. package/build/browser/util/test/compileThis.js +41 -0
  133. package/build/browser/util/test/compileThis.js.map +1 -0
  134. package/build/browser/util/test/createMockMinimalFiles.d.ts +13 -0
  135. package/build/browser/util/test/createMockMinimalFiles.d.ts.map +1 -0
  136. package/build/browser/util/test/createMockMinimalFiles.js +37 -0
  137. package/build/browser/util/test/createMockMinimalFiles.js.map +1 -0
  138. package/build/browser/util/test/formatTs.d.ts +2 -0
  139. package/build/browser/util/test/formatTs.d.ts.map +1 -0
  140. package/build/browser/util/test/formatTs.js +32 -0
  141. package/build/browser/util/test/formatTs.js.map +1 -0
  142. package/build/browser/util/verifyOutDir.d.ts +9 -0
  143. package/build/browser/util/verifyOutDir.d.ts.map +1 -0
  144. package/build/browser/util/verifyOutDir.js +35 -0
  145. package/build/browser/util/verifyOutDir.js.map +1 -0
  146. package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.d.ts +2 -0
  147. package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.d.ts.map +1 -0
  148. package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js +114 -0
  149. package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js.map +1 -0
  150. package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.d.ts +2 -0
  151. package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.d.ts.map +1 -0
  152. package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js +273 -0
  153. package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js.map +1 -0
  154. package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.d.ts +4 -0
  155. package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.d.ts.map +1 -0
  156. package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.js +119 -0
  157. package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.js.map +1 -0
  158. package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.test.d.ts +2 -0
  159. package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.test.d.ts.map +1 -0
  160. package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.test.js +1949 -0
  161. package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.test.js.map +1 -0
  162. package/build/browser/v2.0/generateMetadata.d.ts +3 -0
  163. package/build/browser/v2.0/generateMetadata.d.ts.map +1 -0
  164. package/build/browser/v2.0/generateMetadata.js +35 -0
  165. package/build/browser/v2.0/generateMetadata.js.map +1 -0
  166. package/build/browser/v2.0/generatePerActionDataFiles.d.ts +3 -0
  167. package/build/browser/v2.0/generatePerActionDataFiles.d.ts.map +1 -0
  168. package/build/browser/v2.0/generatePerActionDataFiles.js +240 -0
  169. package/build/browser/v2.0/generatePerActionDataFiles.js.map +1 -0
  170. package/build/browser/v2.0/generatePerActionDataFiles.test.d.ts +2 -0
  171. package/build/browser/v2.0/generatePerActionDataFiles.test.d.ts.map +1 -0
  172. package/build/browser/v2.0/generatePerActionDataFiles.test.js +51 -0
  173. package/build/browser/v2.0/generatePerActionDataFiles.test.js.map +1 -0
  174. package/build/browser/v2.0/generatePerQueryDataFiles.d.ts +9 -0
  175. package/build/browser/v2.0/generatePerQueryDataFiles.d.ts.map +1 -0
  176. package/build/browser/v2.0/generatePerQueryDataFiles.js +194 -0
  177. package/build/browser/v2.0/generatePerQueryDataFiles.js.map +1 -0
  178. package/build/browser/v2.0/generatePerQueryDataFiles.test.d.ts +2 -0
  179. package/build/browser/v2.0/generatePerQueryDataFiles.test.d.ts.map +1 -0
  180. package/build/browser/v2.0/generatePerQueryDataFiles.test.js +199 -0
  181. package/build/browser/v2.0/generatePerQueryDataFiles.test.js.map +1 -0
  182. package/build/browser/v2.0/getDescriptionIfPresent.d.ts +2 -0
  183. package/build/browser/v2.0/getDescriptionIfPresent.d.ts.map +1 -0
  184. package/build/browser/v2.0/getDescriptionIfPresent.js +24 -0
  185. package/build/browser/v2.0/getDescriptionIfPresent.js.map +1 -0
  186. package/build/browser/v2.0/wireObjectTypeV2ToSdkObjectConstV2.d.ts +13 -0
  187. package/build/browser/v2.0/wireObjectTypeV2ToSdkObjectConstV2.d.ts.map +1 -0
  188. package/build/browser/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js +205 -0
  189. package/build/browser/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js.map +1 -0
  190. package/build/browser/validateWireOntologyAssumptions.d.ts +3 -0
  191. package/build/browser/validateWireOntologyAssumptions.d.ts.map +1 -0
  192. package/build/browser/validateWireOntologyAssumptions.js +33 -0
  193. package/build/browser/validateWireOntologyAssumptions.js.map +1 -0
  194. package/build/esm/GenerateContext/EnhanceCommon.js +17 -0
  195. package/build/esm/GenerateContext/EnhanceCommon.js.map +1 -0
  196. package/build/esm/GenerateContext/EnhancedAction.js +42 -0
  197. package/build/esm/GenerateContext/EnhancedAction.js.map +1 -0
  198. package/build/esm/GenerateContext/EnhancedBase.js +72 -0
  199. package/build/esm/GenerateContext/EnhancedBase.js.map +1 -0
  200. package/build/esm/GenerateContext/EnhancedInterfaceType.js +38 -0
  201. package/build/esm/GenerateContext/EnhancedInterfaceType.js.map +1 -0
  202. package/build/esm/GenerateContext/EnhancedObjectType.js +35 -0
  203. package/build/esm/GenerateContext/EnhancedObjectType.js.map +1 -0
  204. package/build/esm/GenerateContext/EnhancedOntologyDefinition.js +77 -0
  205. package/build/esm/GenerateContext/EnhancedOntologyDefinition.js.map +1 -0
  206. package/build/esm/GenerateContext/EnhancedQuery.js +42 -0
  207. package/build/esm/GenerateContext/EnhancedQuery.js.map +1 -0
  208. package/build/esm/GenerateContext/EnhancedSharedPropertyType.js +24 -0
  209. package/build/esm/GenerateContext/EnhancedSharedPropertyType.js.map +1 -0
  210. package/build/esm/GenerateContext/ForeignType.js +36 -0
  211. package/build/esm/GenerateContext/ForeignType.js.map +1 -0
  212. package/build/esm/GenerateContext/GenerateContext.js +17 -0
  213. package/build/esm/GenerateContext/GenerateContext.js.map +1 -0
  214. package/build/esm/GenerateContext/enhanceOntology.js +20 -0
  215. package/build/esm/GenerateContext/enhanceOntology.js.map +1 -0
  216. package/build/esm/MinimalFs.js +17 -0
  217. package/build/esm/MinimalFs.js.map +1 -0
  218. package/build/esm/WireOntologyDefinition.js +17 -0
  219. package/build/esm/WireOntologyDefinition.js.map +1 -0
  220. package/build/esm/generateClientSdkPackage.d.ts +1 -6
  221. package/build/esm/generateClientSdkPackage.d.ts.map +1 -1
  222. package/build/esm/generateClientSdkPackage.js +126 -0
  223. package/build/esm/generateClientSdkPackage.js.map +1 -0
  224. package/build/esm/generateClientSdkPackage.test.js +67 -0
  225. package/build/esm/generateClientSdkPackage.test.js.map +1 -0
  226. package/build/esm/index.js +17 -1286
  227. package/build/esm/index.js.map +1 -1
  228. package/build/esm/shared/apiNamespaces/startsWithApiNamespace.js +23 -0
  229. package/build/esm/shared/apiNamespaces/startsWithApiNamespace.js.map +1 -0
  230. package/build/esm/shared/apiNamespaces/startsWithApiNamespace.test.js +46 -0
  231. package/build/esm/shared/apiNamespaces/startsWithApiNamespace.test.js.map +1 -0
  232. package/build/esm/shared/getObjectImports.js +24 -0
  233. package/build/esm/shared/getObjectImports.js.map +1 -0
  234. package/build/esm/shared/getObjectTypeApiNamesFromQuery.js +27 -0
  235. package/build/esm/shared/getObjectTypeApiNamesFromQuery.js.map +1 -0
  236. package/build/esm/shared/getObjectTypesFromQueryDataType.js +57 -0
  237. package/build/esm/shared/getObjectTypesFromQueryDataType.js.map +1 -0
  238. package/build/esm/shared/propertyJsdoc.js +38 -0
  239. package/build/esm/shared/propertyJsdoc.js.map +1 -0
  240. package/build/esm/shared/sanitizeMetadata.js +33 -0
  241. package/build/esm/shared/sanitizeMetadata.js.map +1 -0
  242. package/build/esm/shared/sanitizeMetadata.test.js +44 -0
  243. package/build/esm/shared/sanitizeMetadata.test.js.map +1 -0
  244. package/build/esm/util/InMemoryFs.js +30 -0
  245. package/build/esm/util/InMemoryFs.js.map +1 -0
  246. package/build/esm/util/commaSeparatedIdentifiers.js +25 -0
  247. package/build/esm/util/commaSeparatedIdentifiers.js.map +1 -0
  248. package/build/esm/util/commaSeparatedTypeIdentifiers.js +19 -0
  249. package/build/esm/util/commaSeparatedTypeIdentifiers.js.map +1 -0
  250. package/build/esm/util/deleteUndefineds.js +19 -0
  251. package/build/esm/util/deleteUndefineds.js.map +1 -0
  252. package/build/esm/util/reservedKeywords.js +21 -0
  253. package/build/esm/util/reservedKeywords.js.map +1 -0
  254. package/build/esm/util/stringUnionFrom.js +23 -0
  255. package/build/esm/util/stringUnionFrom.js.map +1 -0
  256. package/build/esm/util/stringify.js +36 -0
  257. package/build/esm/util/stringify.js.map +1 -0
  258. package/build/esm/util/test/TodoWireOntology.js +232 -0
  259. package/build/esm/util/test/TodoWireOntology.js.map +1 -0
  260. package/build/esm/util/test/compileThis.js +41 -0
  261. package/build/esm/util/test/compileThis.js.map +1 -0
  262. package/build/esm/util/test/createMockMinimalFiles.js +37 -0
  263. package/build/esm/util/test/createMockMinimalFiles.js.map +1 -0
  264. package/build/esm/util/test/formatTs.js +32 -0
  265. package/build/esm/util/test/formatTs.js.map +1 -0
  266. package/build/esm/util/verifyOutDir.js +35 -0
  267. package/build/esm/util/verifyOutDir.js.map +1 -0
  268. package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js +114 -0
  269. package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js.map +1 -0
  270. package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js +273 -0
  271. package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js.map +1 -0
  272. package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.js +119 -0
  273. package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.js.map +1 -0
  274. package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.test.js +1949 -0
  275. package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.test.js.map +1 -0
  276. package/build/esm/v2.0/generateMetadata.js +35 -0
  277. package/build/esm/v2.0/generateMetadata.js.map +1 -0
  278. package/build/esm/v2.0/generatePerActionDataFiles.d.ts.map +1 -1
  279. package/build/esm/v2.0/generatePerActionDataFiles.js +240 -0
  280. package/build/esm/v2.0/generatePerActionDataFiles.js.map +1 -0
  281. package/build/esm/v2.0/generatePerActionDataFiles.test.js +51 -0
  282. package/build/esm/v2.0/generatePerActionDataFiles.test.js.map +1 -0
  283. package/build/esm/v2.0/generatePerQueryDataFiles.js +194 -0
  284. package/build/esm/v2.0/generatePerQueryDataFiles.js.map +1 -0
  285. package/build/esm/v2.0/generatePerQueryDataFiles.test.js +199 -0
  286. package/build/esm/v2.0/generatePerQueryDataFiles.test.js.map +1 -0
  287. package/build/esm/v2.0/getDescriptionIfPresent.js +24 -0
  288. package/build/esm/v2.0/getDescriptionIfPresent.js.map +1 -0
  289. package/build/esm/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js +205 -0
  290. package/build/esm/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js.map +1 -0
  291. package/build/esm/validateWireOntologyAssumptions.js +33 -0
  292. package/build/esm/validateWireOntologyAssumptions.js.map +1 -0
  293. package/package.json +6 -8
@@ -0,0 +1,1949 @@
1
+ /*
2
+ * Copyright 2023 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { mkdir, readdir, rmdir, writeFile } from "fs/promises";
17
+ import * as immer from "immer";
18
+ import { beforeEach, describe, expect, it, test, vi } from "vitest";
19
+ import { compileThis } from "../util/test/compileThis.js";
20
+ import { createMockMinimalFiles } from "../util/test/createMockMinimalFiles.js";
21
+ import { TodoWireOntology } from "../util/test/TodoWireOntology.js";
22
+ import { generateClientSdkVersionTwoPointZero } from "./generateClientSdkVersionTwoPointZero.js";
23
+ function changeValue(draft, key, oldValue, newValue) {
24
+ if (draft[key] === oldValue) {
25
+ draft[key] = newValue;
26
+ }
27
+ }
28
+ function changeKey(draft, oldInterfaceName, newInterfaceName) {
29
+ if (draft[oldInterfaceName]) {
30
+ draft[newInterfaceName] = draft[oldInterfaceName];
31
+ delete draft[oldInterfaceName];
32
+ }
33
+ }
34
+ function changeArrayEntry(draft, oldNew, newName) {
35
+ const idx = draft.findIndex(a => a === oldNew);
36
+ if (idx >= 0) {
37
+ draft[idx] = newName;
38
+ }
39
+ }
40
+ function changeEachEntry(wireData, data, changer, changeSelf) {
41
+ for (const [oldName, newName] of Object.entries(data)) {
42
+ for (const k of Object.keys(wireData)) {
43
+ changer(wireData[k], oldName, newName);
44
+ if (changeSelf && k === oldName) {
45
+ wireData[newName] = wireData[k];
46
+ delete wireData[k];
47
+ }
48
+ }
49
+ }
50
+ }
51
+ function changeDataType(dataType, oldObjectName, newObjectName) {
52
+ if (dataType.type === "array") {
53
+ changeDataType(dataType.subType, oldObjectName, newObjectName);
54
+ } else if (dataType.type === "object" || dataType.type === "objectSet") {
55
+ if (dataType.objectTypeApiName === oldObjectName) {
56
+ dataType.objectTypeApiName = newObjectName;
57
+ }
58
+ if (dataType.objectApiName === oldObjectName) {
59
+ dataType.objectApiName = newObjectName;
60
+ }
61
+ }
62
+ }
63
+ function changeNames(ontology, newNames) {
64
+ return immer.produce(ontology, draft => {
65
+ // Handle spt renames
66
+ changeEachEntry(draft.sharedPropertyTypes, newNames.spts, (draft, oldSptName, newSptName) => {
67
+ changeValue(draft, "apiName", oldSptName, newSptName);
68
+ }, true);
69
+ // Handle query renames
70
+ changeEachEntry(draft.queryTypes, newNames.queries, (draft, oldActionName, newActionName) => {
71
+ if (draft.apiName === oldActionName) {
72
+ draft.apiName = newActionName;
73
+ }
74
+ }, true);
75
+ // Handle action renames
76
+ changeEachEntry(draft.actionTypes, newNames.actions, (draft, oldActionName, newActionName) => {
77
+ changeValue(draft, "apiName", oldActionName, newActionName);
78
+ }, true);
79
+ // Handle interface renames
80
+ changeEachEntry(draft.interfaceTypes, newNames.interfaces, (ifaceType, oldIfaceName, newIfaceName) => {
81
+ changeValue(ifaceType, "apiName", oldIfaceName, newIfaceName);
82
+ ifaceType.extendsInterfaces = ifaceType.extendsInterfaces.map(v => v === oldIfaceName ? newIfaceName : v);
83
+ }, true);
84
+ changeEachEntry(draft.objectTypes, newNames.interfaces, (objectType, oldIfaceName, newIfaceName) => {
85
+ changeArrayEntry(objectType.implementsInterfaces, oldIfaceName, newIfaceName);
86
+ changeKey(objectType.implementsInterfaces2, oldIfaceName, newIfaceName);
87
+ });
88
+ // Handle object renames
89
+ changeEachEntry(draft.queryTypes, newNames.objects, (queryType, oldObjectName, newObjectName) => {
90
+ changeDataType(queryType.output, oldObjectName, newObjectName);
91
+ for (const {
92
+ dataType
93
+ } of Object.values(queryType.parameters)) {
94
+ changeDataType(dataType, oldObjectName, newObjectName);
95
+ }
96
+ });
97
+ changeEachEntry(draft.objectTypes, newNames.objects, ({
98
+ objectType,
99
+ linkTypes
100
+ }, oldObjectName, newObjectName) => {
101
+ changeValue(objectType, "apiName", oldObjectName, newObjectName);
102
+ for (const l of linkTypes) {
103
+ changeValue(l, "objectTypeApiName", oldObjectName, newObjectName);
104
+ }
105
+ }, true);
106
+ changeEachEntry(draft.actionTypes, newNames.objects, (action, oldObjectName, newObjectName) => {
107
+ for (const op of action.operations) {
108
+ switch (op.type) {
109
+ case "deleteObject":
110
+ case "modifyObject":
111
+ case "createObject":
112
+ if (op.objectTypeApiName === oldObjectName) {
113
+ op.objectTypeApiName = newObjectName;
114
+ }
115
+ }
116
+ }
117
+ for (const {
118
+ dataType
119
+ } of Object.values(action.parameters)) {
120
+ changeDataType(dataType, oldObjectName, newObjectName);
121
+ }
122
+ });
123
+ });
124
+ }
125
+ const referencedOntology = {
126
+ "ontology": {
127
+ "apiName": "dep",
128
+ "rid": "ri.ontology.main.ontology.dep",
129
+ "displayName": "",
130
+ "description": ""
131
+ },
132
+ "actionTypes": {},
133
+ "objectTypes": {
134
+ "com.example.dep.Task": {
135
+ implementsInterfaces: [],
136
+ implementsInterfaces2: {},
137
+ sharedPropertyTypeMapping: {},
138
+ "objectType": {
139
+ "apiName": "com.example.dep.Task",
140
+ "primaryKey": "taskId",
141
+ displayName: "Task",
142
+ pluralDisplayName: "Tasks",
143
+ icon: {
144
+ type: "blueprint",
145
+ color: "blue",
146
+ name: "document"
147
+ },
148
+ titleProperty: "taskId",
149
+ "properties": {
150
+ "taskId": {
151
+ "dataType": {
152
+ "type": "string"
153
+ }
154
+ },
155
+ "body": {
156
+ "dataType": {
157
+ "type": "string"
158
+ }
159
+ }
160
+ },
161
+ "status": "ACTIVE",
162
+ "rid": "ridForTask"
163
+ },
164
+ "linkTypes": []
165
+ }
166
+ },
167
+ "queryTypes": {},
168
+ "interfaceTypes": {
169
+ "com.example.dep.SomeInterface": {
170
+ apiName: "com.example.dep.SomeInterface",
171
+ rid: "idk2",
172
+ displayName: "Sum Interface",
173
+ extendsInterfaces: [],
174
+ properties: {
175
+ "com.example.dep.spt": {
176
+ apiName: "com.example.dep.spt",
177
+ dataType: {
178
+ type: "string"
179
+ },
180
+ displayName: "Some Property",
181
+ rid: "idk"
182
+ }
183
+ },
184
+ links: {}
185
+ }
186
+ },
187
+ "sharedPropertyTypes": {
188
+ "com.example.dep.spt": {
189
+ apiName: "com.example.dep.spt",
190
+ dataType: {
191
+ type: "string"
192
+ },
193
+ displayName: "Some Property",
194
+ rid: "idk"
195
+ }
196
+ }
197
+ };
198
+ const referencingOntology = {
199
+ ontology: TodoWireOntology.ontology,
200
+ "actionTypes": {
201
+ "setTaskBody": {
202
+ "apiName": "setTaskBody",
203
+ "parameters": {
204
+ "task": {
205
+ "dataType": {
206
+ "type": "object",
207
+ "objectApiName": "com.example.dep.Task",
208
+ "objectTypeApiName": "com.example.dep.Task"
209
+ },
210
+ "required": true
211
+ },
212
+ "body": {
213
+ "dataType": {
214
+ "type": "string"
215
+ },
216
+ "required": true
217
+ }
218
+ },
219
+ "status": "ACTIVE",
220
+ "rid": "ri.a.b.c.d",
221
+ "operations": [{
222
+ "type": "modifyObject",
223
+ "objectTypeApiName": "com.example.dep.Task"
224
+ }]
225
+ }
226
+ },
227
+ interfaceTypes: {},
228
+ objectTypes: {
229
+ "Thing": {
230
+ implementsInterfaces: ["com.example.dep.SomeInterface"],
231
+ implementsInterfaces2: {
232
+ "com.example.dep.SomeInterface": {
233
+ properties: {
234
+ "com.example.dep.spt": "body"
235
+ }
236
+ }
237
+ },
238
+ linkTypes: [],
239
+ objectType: {
240
+ apiName: "Thing",
241
+ displayName: "Thing",
242
+ pluralDisplayName: "Things",
243
+ icon: {
244
+ type: "blueprint",
245
+ color: "blue",
246
+ name: "document"
247
+ },
248
+ primaryKey: "id",
249
+ properties: {
250
+ "id": {
251
+ dataType: {
252
+ type: "integer"
253
+ }
254
+ },
255
+ "body": {
256
+ dataType: {
257
+ type: "string"
258
+ }
259
+ }
260
+ },
261
+ rid: "ridForThing",
262
+ status: "ACTIVE",
263
+ titleProperty: "id"
264
+ },
265
+ sharedPropertyTypeMapping: {}
266
+ },
267
+ "UsesForeignSpt": {
268
+ implementsInterfaces: [],
269
+ implementsInterfaces2: {},
270
+ linkTypes: [],
271
+ objectType: {
272
+ apiName: "UsesForeignSpt",
273
+ primaryKey: "id",
274
+ displayName: "Uses Foreign Spt",
275
+ icon: {
276
+ type: "blueprint",
277
+ color: "blue",
278
+ name: "document"
279
+ },
280
+ pluralDisplayName: "Uses Foreign Spts",
281
+ properties: {
282
+ "id": {
283
+ dataType: {
284
+ type: "integer"
285
+ }
286
+ },
287
+ "body": {
288
+ dataType: {
289
+ type: "string"
290
+ }
291
+ }
292
+ },
293
+ rid: "theRid",
294
+ status: "ACTIVE",
295
+ titleProperty: "id"
296
+ },
297
+ sharedPropertyTypeMapping: {
298
+ "com.example.dep.spt": "body"
299
+ }
300
+ }
301
+ },
302
+ queryTypes: {
303
+ getTask: {
304
+ apiName: "getTask",
305
+ output: {
306
+ type: "object",
307
+ objectApiName: "com.example.dep.Task",
308
+ objectTypeApiName: "com.example.dep.Task"
309
+ },
310
+ parameters: {
311
+ "a": {
312
+ dataType: {
313
+ type: "object",
314
+ objectApiName: "com.example.dep.Task",
315
+ objectTypeApiName: "com.example.dep.Task"
316
+ }
317
+ }
318
+ },
319
+ rid: "ri.a.b.c",
320
+ version: "0"
321
+ }
322
+ },
323
+ sharedPropertyTypes: {}
324
+ };
325
+ const fooBarTodoWireOntology = changeNames(TodoWireOntology, {
326
+ objects: {
327
+ "Todo": "foo.bar.Todo",
328
+ "Person": "foo.bar.Person"
329
+ },
330
+ actions: {
331
+ markTodoCompleted: "foo.bar.markTodoCompleted",
332
+ deleteTodos: "foo.bar.deleteTodos"
333
+ },
334
+ interfaces: {
335
+ "SomeInterface": "foo.bar.SomeInterface"
336
+ },
337
+ queries: {
338
+ "getCount": "foo.bar.getCount",
339
+ "returnsTodo": "foo.bar.returnsTodo"
340
+ },
341
+ spts: {
342
+ "SomeProperty": "foo.bar.SomeProperty"
343
+ }
344
+ });
345
+ const BASE_PATH = "/foo";
346
+ describe("generator", () => {
347
+ let helper;
348
+ beforeEach(async () => {
349
+ helper = createMockMinimalFiles();
350
+ });
351
+ test("should be able to generate a project", async () => {
352
+ await generateClientSdkVersionTwoPointZero(TodoWireOntology, "typescript-sdk/0.0.0 osdk-cli/0.0.0", helper.minimalFiles, BASE_PATH);
353
+ const files = helper.getFiles();
354
+ expect(files).toMatchObject({
355
+ [`${BASE_PATH}/index.ts`]: expect.anything(),
356
+ [`${BASE_PATH}/OntologyMetadata.ts`]: expect.anything(),
357
+ [`${BASE_PATH}/ontology/objects/Todo.ts`]: expect.anything()
358
+ });
359
+ const diagnostics = compileThis(helper.getFiles(), BASE_PATH);
360
+ for (const q of diagnostics) {
361
+ console.error(`${q.file?.fileName}:${q.file?.getLineStarts()} ${q.messageText}`);
362
+ }
363
+ // TODO: Certain errors are expected since we can't resolve the static code, but we should fix them.
364
+ const errors = diagnostics.filter(q => q.code !== 2792);
365
+ expect(errors).toHaveLength(0);
366
+ expect(tweakedFilesForSnapshotConsistency(helper.getFiles())).toMatchInlineSnapshot(`
367
+ {
368
+ "/foo/OntologyMetadata.ts": "export type $ExpectedClientVersion = 'PLACEHOLDER';
369
+ export const $osdkMetadata = { extraUserAgent: 'typescript-sdk/0.0.0 osdk-cli/0.0.0' };
370
+
371
+ export const $ontologyRid = 'ridHere';
372
+ ",
373
+ "/foo/index.ts": "export * from './ontology/actions';
374
+ export * as $Actions from './ontology/actions';
375
+ export * from './ontology/interfaces';
376
+ export * as $Interfaces from './ontology/interfaces';
377
+ export * from './ontology/objects';
378
+ export * as $Objects from './ontology/objects';
379
+ export * from './ontology/queries';
380
+ export * as $Queries from './ontology/queries';
381
+ export { $ontologyRid } from './OntologyMetadata';
382
+ ",
383
+ "/foo/ontology/actions.ts": "export { deleteTodos } from './actions/deleteTodos';
384
+ export { markTodoCompleted } from './actions/markTodoCompleted';
385
+ ",
386
+ "/foo/ontology/actions/deleteTodos.ts": "import type {
387
+ ActionDefinition,
388
+ ActionMetadata,
389
+ ActionParam,
390
+ ActionReturnTypeForOptions,
391
+ ApplyActionOptions,
392
+ ApplyBatchActionOptions,
393
+ } from '@osdk/api';
394
+ import { $osdkMetadata } from '../../OntologyMetadata';
395
+ import type { Todo } from '../objects/Todo';
396
+
397
+ export namespace deleteTodos {
398
+ // Represents the definition of the parameters for the action
399
+ export type ParamsDefinition = {
400
+ object: {
401
+ description: 'Todo(s) to be deleted';
402
+ multiplicity: true;
403
+ nullable: true;
404
+ type: ActionMetadata.DataType.Object<Todo>;
405
+ };
406
+ };
407
+
408
+ /**
409
+ * An action which takes in an array of objects
410
+ */
411
+ export interface Params {
412
+ /**
413
+ * Todo(s) to be deleted
414
+ */
415
+ readonly object?: ReadonlyArray<ActionParam.ObjectType<Todo>>;
416
+ }
417
+
418
+ // Represents a fqn of the action
419
+ export interface Signatures {
420
+ /**
421
+ * An action which takes in an array of objects
422
+ */
423
+ applyAction<P extends deleteTodos.Params, OP extends ApplyActionOptions>(
424
+ args: P,
425
+ options?: OP,
426
+ ): Promise<ActionReturnTypeForOptions<OP>>;
427
+
428
+ batchApplyAction<P extends ReadonlyArray<deleteTodos.Params>, OP extends ApplyBatchActionOptions>(
429
+ args: P,
430
+ options?: OP,
431
+ ): Promise<ActionReturnTypeForOptions<OP>>;
432
+ }
433
+ }
434
+
435
+ /**
436
+ * An action which takes in an array of objects
437
+ * @param {ActionParam.ObjectType<Todo>} [object] Todo(s) to be deleted
438
+ */
439
+ export interface deleteTodos extends ActionDefinition<deleteTodos.Signatures> {
440
+ __DefinitionMetadata?: {
441
+ apiName: 'deleteTodos';
442
+ description: 'An action which takes in an array of objects';
443
+ modifiedEntities: {};
444
+ parameters: deleteTodos.ParamsDefinition;
445
+ rid: 'ri.ontology.main.action-type.8f94017d-cf17-4fa8-84c3-8e01e5d594f2';
446
+ status: 'ACTIVE';
447
+ type: 'action';
448
+
449
+ signatures: deleteTodos.Signatures;
450
+ };
451
+ apiName: 'deleteTodos';
452
+ type: 'action';
453
+ osdkMetadata: typeof $osdkMetadata;
454
+ }
455
+
456
+ export const deleteTodos: deleteTodos = {
457
+ apiName: 'deleteTodos',
458
+ type: 'action',
459
+ osdkMetadata: $osdkMetadata,
460
+ };
461
+ ",
462
+ "/foo/ontology/actions/markTodoCompleted.ts": "import type {
463
+ ActionDefinition,
464
+ ActionMetadata,
465
+ ActionParam,
466
+ ActionReturnTypeForOptions,
467
+ ApplyActionOptions,
468
+ ApplyBatchActionOptions,
469
+ } from '@osdk/api';
470
+ import { $osdkMetadata } from '../../OntologyMetadata';
471
+ import type { Todo } from '../objects/Todo';
472
+
473
+ export namespace markTodoCompleted {
474
+ // Represents the definition of the parameters for the action
475
+ export type ParamsDefinition = {
476
+ object: {
477
+ description: 'A Todo to mark completed';
478
+ multiplicity: false;
479
+ nullable: true;
480
+ type: ActionMetadata.DataType.Object<Todo>;
481
+ };
482
+ };
483
+
484
+ /**
485
+ * An action which takes different types of parameters
486
+ */
487
+ export interface Params {
488
+ /**
489
+ * A Todo to mark completed
490
+ */
491
+ readonly object?: ActionParam.ObjectType<Todo>;
492
+ }
493
+
494
+ // Represents a fqn of the action
495
+ export interface Signatures {
496
+ /**
497
+ * An action which takes different types of parameters
498
+ */
499
+ applyAction<P extends markTodoCompleted.Params, OP extends ApplyActionOptions>(
500
+ args: P,
501
+ options?: OP,
502
+ ): Promise<ActionReturnTypeForOptions<OP>>;
503
+
504
+ batchApplyAction<P extends ReadonlyArray<markTodoCompleted.Params>, OP extends ApplyBatchActionOptions>(
505
+ args: P,
506
+ options?: OP,
507
+ ): Promise<ActionReturnTypeForOptions<OP>>;
508
+ }
509
+ }
510
+
511
+ /**
512
+ * An action which takes different types of parameters
513
+ * @param {ActionParam.ObjectType<Todo>} [object] A Todo to mark completed
514
+ */
515
+ export interface markTodoCompleted extends ActionDefinition<markTodoCompleted.Signatures> {
516
+ __DefinitionMetadata?: {
517
+ apiName: 'markTodoCompleted';
518
+ description: 'An action which takes different types of parameters';
519
+ modifiedEntities: {
520
+ Todo: {
521
+ created: false;
522
+ modified: true;
523
+ };
524
+ };
525
+ parameters: markTodoCompleted.ParamsDefinition;
526
+ rid: 'ri.ontology.main.action-type.9f84017d-cf17-4fa8-84c3-8e01e5d594f2';
527
+ status: 'ACTIVE';
528
+ type: 'action';
529
+
530
+ signatures: markTodoCompleted.Signatures;
531
+ };
532
+ apiName: 'markTodoCompleted';
533
+ type: 'action';
534
+ osdkMetadata: typeof $osdkMetadata;
535
+ }
536
+
537
+ export const markTodoCompleted: markTodoCompleted = {
538
+ apiName: 'markTodoCompleted',
539
+ type: 'action',
540
+ osdkMetadata: $osdkMetadata,
541
+ };
542
+ ",
543
+ "/foo/ontology/interfaces.ts": "export * from './interfaces/SomeInterface';
544
+ ",
545
+ "/foo/ontology/interfaces/SomeInterface.ts": "import type { PropertyDef as $PropertyDef } from '@osdk/api';
546
+ import { $osdkMetadata } from '../../OntologyMetadata';
547
+
548
+ import type {
549
+ InterfaceDefinition as $InterfaceDefinition,
550
+ ObjectSet as $ObjectSet,
551
+ Osdk as $Osdk,
552
+ PropertyValueWireToClient as $PropType,
553
+ } from '@osdk/api';
554
+
555
+ export type OsdkObjectLinks$SomeInterface = {};
556
+
557
+ export namespace SomeInterface {
558
+ export type PropertyKeys = 'SomeProperty';
559
+
560
+ export interface Props {
561
+ readonly SomeProperty: $PropType['string'] | undefined;
562
+ }
563
+ export interface StrictProps {
564
+ readonly SomeProperty: $PropType['string'] | undefined;
565
+ }
566
+
567
+ export interface ObjectSet extends $ObjectSet<SomeInterface, SomeInterface.ObjectSet> {}
568
+
569
+ export type OsdkObject<
570
+ OPTIONS extends never | '$notStrict' | '$rid' = never,
571
+ K extends keyof SomeInterface.Props = keyof SomeInterface.Props,
572
+ > = $Osdk<SomeInterface, K | OPTIONS>;
573
+ }
574
+
575
+ export interface SomeInterface extends $InterfaceDefinition<'SomeInterface', SomeInterface> {
576
+ osdkMetadata: typeof $osdkMetadata;
577
+ type: 'interface';
578
+ apiName: 'SomeInterface';
579
+ __DefinitionMetadata?: {
580
+ objectSet: SomeInterface.ObjectSet;
581
+ props: SomeInterface.Props;
582
+ linksType: OsdkObjectLinks$SomeInterface;
583
+ strictProps: SomeInterface.StrictProps;
584
+ apiName: 'SomeInterface';
585
+ description: 'Some interface';
586
+ displayName: 'Sum Interface';
587
+ implements: [];
588
+ links: {};
589
+ properties: {
590
+ /**
591
+ * display name: 'Sum Property',
592
+ * description: Some property
593
+ */
594
+ SomeProperty: $PropertyDef<'string', 'nullable', 'single'>;
595
+ };
596
+ rid: 'idk';
597
+ type: 'interface';
598
+ };
599
+ }
600
+
601
+ export const SomeInterface: SomeInterface = {
602
+ type: 'interface',
603
+ apiName: 'SomeInterface',
604
+ osdkMetadata: $osdkMetadata,
605
+ };
606
+ ",
607
+ "/foo/ontology/objects.ts": "export * from './objects/Person';
608
+ export * from './objects/Todo';
609
+ ",
610
+ "/foo/ontology/objects/Person.ts": "import type { PropertyDef as $PropertyDef } from '@osdk/api';
611
+ import { $osdkMetadata } from '../../OntologyMetadata';
612
+ import type { $ExpectedClientVersion } from '../../OntologyMetadata';
613
+ import type { Todo } from './Todo';
614
+ import type {
615
+ PropertyKeys as $PropertyKeys,
616
+ ObjectTypeDefinition as $ObjectTypeDefinition,
617
+ ObjectTypeLinkDefinition as $ObjectTypeLinkDefinition,
618
+ } from '@osdk/api';
619
+ import type {
620
+ ObjectSet as $ObjectSet,
621
+ Osdk as $Osdk,
622
+ OsdkObject as $OsdkObject,
623
+ PropertyValueWireToClient as $PropType,
624
+ SingleLinkAccessor as $SingleLinkAccessor,
625
+ } from '@osdk/api';
626
+
627
+ export namespace Person {
628
+ export type PropertyKeys = 'email';
629
+
630
+ export interface Links {
631
+ readonly Todos: Todo.ObjectSet;
632
+ }
633
+
634
+ export interface Props {
635
+ readonly email: $PropType['string'] | undefined;
636
+ }
637
+ export interface StrictProps {
638
+ readonly email: $PropType['string'];
639
+ }
640
+
641
+ export interface ObjectSet extends $ObjectSet<Person, Person.ObjectSet> {}
642
+
643
+ export type OsdkObject<
644
+ OPTIONS extends never | '$notStrict' | '$rid' = never,
645
+ K extends keyof Person.Props = keyof Person.Props,
646
+ > = $Osdk<Person, K | OPTIONS>;
647
+ }
648
+
649
+ export interface Person extends $ObjectTypeDefinition<'Person', Person> {
650
+ osdkMetadata: typeof $osdkMetadata;
651
+ type: 'object';
652
+ apiName: 'Person';
653
+ __DefinitionMetadata?: {
654
+ objectSet: Person.ObjectSet;
655
+ props: Person.Props;
656
+ linksType: Person.Links;
657
+ strictProps: Person.StrictProps;
658
+ apiName: 'Person';
659
+ description: 'A person';
660
+ displayName: 'Person';
661
+ icon: {
662
+ type: 'blueprint';
663
+ name: 'document';
664
+ color: 'blue';
665
+ };
666
+ implements: [];
667
+ interfaceMap: {};
668
+ inverseInterfaceMap: {};
669
+ links: {
670
+ Todos: $ObjectTypeLinkDefinition<Todo, true>;
671
+ };
672
+ pluralDisplayName: 'Persons';
673
+ primaryKeyApiName: 'email';
674
+ primaryKeyType: 'string';
675
+ properties: {
676
+ /**
677
+ * (no ontology metadata)
678
+ */
679
+ email: $PropertyDef<'string', 'non-nullable', 'single'>;
680
+ };
681
+ rid: 'ridForPerson';
682
+ status: 'ACTIVE';
683
+ titleProperty: 'email';
684
+ type: 'object';
685
+ };
686
+ }
687
+
688
+ export const Person: Person = {
689
+ type: 'object',
690
+ apiName: 'Person',
691
+ osdkMetadata: $osdkMetadata,
692
+ };
693
+ ",
694
+ "/foo/ontology/objects/Todo.ts": "import type { PropertyDef as $PropertyDef } from '@osdk/api';
695
+ import { $osdkMetadata } from '../../OntologyMetadata';
696
+ import type { $ExpectedClientVersion } from '../../OntologyMetadata';
697
+ import type { Person } from './Person';
698
+ import type {
699
+ PropertyKeys as $PropertyKeys,
700
+ ObjectTypeDefinition as $ObjectTypeDefinition,
701
+ ObjectTypeLinkDefinition as $ObjectTypeLinkDefinition,
702
+ } from '@osdk/api';
703
+ import type {
704
+ ObjectSet as $ObjectSet,
705
+ Osdk as $Osdk,
706
+ OsdkObject as $OsdkObject,
707
+ PropertyValueWireToClient as $PropType,
708
+ SingleLinkAccessor as $SingleLinkAccessor,
709
+ } from '@osdk/api';
710
+
711
+ export namespace Todo {
712
+ export type PropertyKeys = 'id' | 'body' | 'complete';
713
+
714
+ export interface Links {
715
+ readonly Assignee: $SingleLinkAccessor<Person>;
716
+ }
717
+
718
+ export interface Props {
719
+ readonly body: $PropType['string'] | undefined;
720
+ readonly complete: $PropType['boolean'] | undefined;
721
+ readonly id: $PropType['integer'] | undefined;
722
+ }
723
+ export interface StrictProps {
724
+ readonly body: $PropType['string'] | undefined;
725
+ readonly complete: $PropType['boolean'] | undefined;
726
+ readonly id: $PropType['integer'];
727
+ }
728
+
729
+ export interface ObjectSet extends $ObjectSet<Todo, Todo.ObjectSet> {}
730
+
731
+ export type OsdkObject<
732
+ OPTIONS extends never | '$notStrict' | '$rid' = never,
733
+ K extends keyof Todo.Props = keyof Todo.Props,
734
+ > = $Osdk<Todo, K | OPTIONS>;
735
+ }
736
+
737
+ export interface Todo extends $ObjectTypeDefinition<'Todo', Todo> {
738
+ osdkMetadata: typeof $osdkMetadata;
739
+ type: 'object';
740
+ apiName: 'Todo';
741
+ __DefinitionMetadata?: {
742
+ objectSet: Todo.ObjectSet;
743
+ props: Todo.Props;
744
+ linksType: Todo.Links;
745
+ strictProps: Todo.StrictProps;
746
+ apiName: 'Todo';
747
+ description: 'Its a todo item.';
748
+ displayName: 'AwesomeTodoDisplayname';
749
+ icon: {
750
+ type: 'blueprint';
751
+ name: 'document';
752
+ color: 'blue';
753
+ };
754
+ implements: ['SomeInterface'];
755
+ interfaceMap: {
756
+ SomeInterface: {
757
+ SomeProperty: 'body';
758
+ };
759
+ };
760
+ inverseInterfaceMap: {
761
+ SomeInterface: {
762
+ body: 'SomeProperty';
763
+ };
764
+ };
765
+ links: {
766
+ Assignee: $ObjectTypeLinkDefinition<Person, false>;
767
+ };
768
+ pluralDisplayName: 'AwesomeTodoDisplayNames';
769
+ primaryKeyApiName: 'id';
770
+ primaryKeyType: 'integer';
771
+ properties: {
772
+ /**
773
+ * display name: 'Body',
774
+ * description: The text of the todo
775
+ */
776
+ body: $PropertyDef<'string', 'nullable', 'single'>;
777
+ /**
778
+ * (no ontology metadata)
779
+ */
780
+ complete: $PropertyDef<'boolean', 'nullable', 'single'>;
781
+ /**
782
+ * (no ontology metadata)
783
+ */
784
+ id: $PropertyDef<'integer', 'non-nullable', 'single'>;
785
+ };
786
+ rid: 'ridForTodo';
787
+ status: 'ACTIVE';
788
+ titleProperty: 'body';
789
+ type: 'object';
790
+ };
791
+ }
792
+
793
+ export const Todo: Todo = {
794
+ type: 'object',
795
+ apiName: 'Todo',
796
+ osdkMetadata: $osdkMetadata,
797
+ };
798
+ ",
799
+ "/foo/ontology/queries.ts": "export * from './queries/getCount';
800
+ export * from './queries/returnsTodo';
801
+ ",
802
+ "/foo/ontology/queries/getCount.ts": "import type { QueryDefinition, VersionBound } from '@osdk/api';
803
+ import type { QueryParam, QueryResult } from '@osdk/api';
804
+ import type { $ExpectedClientVersion } from '../../OntologyMetadata';
805
+ import { $osdkMetadata } from '../../OntologyMetadata';
806
+
807
+ export namespace getCount {
808
+ export interface Signature {
809
+ (query: getCount.Parameters): Promise<QueryResult.PrimitiveType<'integer'>>;
810
+ }
811
+
812
+ export interface Parameters {
813
+ /**
814
+ * (no ontology metadata)
815
+ */
816
+ readonly completed: QueryParam.PrimitiveType<'boolean'>;
817
+ }
818
+ }
819
+
820
+ export interface getCount
821
+ extends QueryDefinition<'getCount', never, getCount.Signature>,
822
+ VersionBound<$ExpectedClientVersion> {
823
+ __DefinitionMetadata?: {
824
+ apiName: 'getCount';
825
+ rid: 'rid.query.1';
826
+ type: 'query';
827
+ version: '0';
828
+ parameters: {
829
+ /**
830
+ * (no ontology metadata)
831
+ */
832
+ completed: {
833
+ nullable: false;
834
+ type: 'boolean';
835
+ };
836
+ };
837
+ output: {
838
+ nullable: false;
839
+ type: 'integer';
840
+ };
841
+ signature: getCount.Signature;
842
+ };
843
+ apiName: 'getCount';
844
+ type: 'query';
845
+ version: '0';
846
+ osdkMetadata: typeof $osdkMetadata;
847
+ }
848
+
849
+ export const getCount: getCount = {
850
+ apiName: 'getCount',
851
+ type: 'query',
852
+ version: '0',
853
+ osdkMetadata: $osdkMetadata,
854
+ };
855
+ ",
856
+ "/foo/ontology/queries/returnsTodo.ts": "import type { QueryDefinition, VersionBound } from '@osdk/api';
857
+ import type { QueryParam, QueryResult } from '@osdk/api';
858
+ import type { $ExpectedClientVersion } from '../../OntologyMetadata';
859
+ import { $osdkMetadata } from '../../OntologyMetadata';
860
+ import type { Todo } from '../objects/Todo';
861
+
862
+ export namespace returnsTodo {
863
+ export interface Signature {
864
+ (query: returnsTodo.Parameters): Promise<QueryResult.ObjectType<Todo>>;
865
+ }
866
+
867
+ export interface Parameters {
868
+ /**
869
+ * description: Random desc so we test jsdoc
870
+ */
871
+ readonly someTodo: QueryParam.ObjectType<Todo>;
872
+ }
873
+ }
874
+
875
+ export interface returnsTodo
876
+ extends QueryDefinition<'returnsTodo', 'Todo', returnsTodo.Signature>,
877
+ VersionBound<$ExpectedClientVersion> {
878
+ __DefinitionMetadata?: {
879
+ apiName: 'returnsTodo';
880
+ rid: 'rid.query.2';
881
+ type: 'query';
882
+ version: '0';
883
+ parameters: {
884
+ /**
885
+ * description: Random desc so we test jsdoc
886
+ */
887
+ someTodo: {
888
+ description: 'Random desc so we test jsdoc';
889
+ nullable: false;
890
+ object: 'Todo';
891
+ type: 'object';
892
+ __OsdkTargetType?: Todo;
893
+ };
894
+ };
895
+ output: {
896
+ nullable: false;
897
+ object: 'Todo';
898
+ type: 'object';
899
+ __OsdkTargetType?: Todo;
900
+ };
901
+ signature: returnsTodo.Signature;
902
+ };
903
+ apiName: 'returnsTodo';
904
+ type: 'query';
905
+ version: '0';
906
+ osdkMetadata: typeof $osdkMetadata;
907
+ }
908
+
909
+ export const returnsTodo: returnsTodo = {
910
+ apiName: 'returnsTodo',
911
+ type: 'query',
912
+ version: '0',
913
+ osdkMetadata: $osdkMetadata,
914
+ };
915
+ ",
916
+ }
917
+ `);
918
+ });
919
+ test("throws an error when target destination is not empty", async () => {
920
+ helper.minimalFiles.readdir = vi.fn(async () => ["file"]);
921
+ await expect(async () => {
922
+ await expect(generateClientSdkVersionTwoPointZero(TodoWireOntology, "typescript-sdk/0.0.0 osdk-cli/0.0.0", helper.minimalFiles, BASE_PATH)).rejects.toThrow();
923
+ });
924
+ });
925
+ it("throws an error if a namespace is provided that all top levels do not use", async () => {
926
+ await expect(generateClientSdkVersionTwoPointZero({
927
+ ...TodoWireOntology
928
+ }, "", helper.minimalFiles, BASE_PATH, "module", "foo.bar")).rejects.toThrowErrorMatchingInlineSnapshot(`[Error: Expected { ns:'undefined', shortName: 'Todo'} to be in namespace 'foo.bar' or in a provided package mapping]`);
929
+ });
930
+ it("does not throw an error if a namespace is provided that all top levels use", async () => {
931
+ await expect(generateClientSdkVersionTwoPointZero(fooBarTodoWireOntology, "", helper.minimalFiles, BASE_PATH, "module", "foo.bar")).resolves.toMatchInlineSnapshot(`undefined`);
932
+ expect(helper.getFiles()["/foo/ontology/objects/foo.bar.Todo.ts"]).toBeUndefined();
933
+ expect(helper.getFiles()["/foo/ontology/objects/Todo.ts"]).not.toBeUndefined();
934
+ expect(tweakedFilesForSnapshotConsistency(helper.getFiles())).toMatchInlineSnapshot(`
935
+ {
936
+ "/foo/OntologyMetadata.ts": "export type $ExpectedClientVersion = 'PLACEHOLDER';
937
+ export const $osdkMetadata = { extraUserAgent: '' };
938
+ ",
939
+ "/foo/index.ts": "export * from './ontology/actions.js';
940
+ export * as $Actions from './ontology/actions.js';
941
+ export * from './ontology/interfaces.js';
942
+ export * as $Interfaces from './ontology/interfaces.js';
943
+ export * from './ontology/objects.js';
944
+ export * as $Objects from './ontology/objects.js';
945
+ export * from './ontology/queries.js';
946
+ export * as $Queries from './ontology/queries.js';
947
+ ",
948
+ "/foo/ontology/actions.ts": "export { deleteTodos } from './actions/deleteTodos.js';
949
+ export { markTodoCompleted } from './actions/markTodoCompleted.js';
950
+ ",
951
+ "/foo/ontology/actions/deleteTodos.ts": "import type {
952
+ ActionDefinition,
953
+ ActionMetadata,
954
+ ActionParam,
955
+ ActionReturnTypeForOptions,
956
+ ApplyActionOptions,
957
+ ApplyBatchActionOptions,
958
+ } from '@osdk/api';
959
+ import { $osdkMetadata } from '../../OntologyMetadata.js';
960
+ import type { Todo } from '../objects/Todo.js';
961
+
962
+ export namespace deleteTodos {
963
+ // Represents the definition of the parameters for the action
964
+ export type ParamsDefinition = {
965
+ object: {
966
+ description: 'Todo(s) to be deleted';
967
+ multiplicity: true;
968
+ nullable: true;
969
+ type: ActionMetadata.DataType.Object<Todo>;
970
+ };
971
+ };
972
+
973
+ /**
974
+ * An action which takes in an array of objects
975
+ */
976
+ export interface Params {
977
+ /**
978
+ * Todo(s) to be deleted
979
+ */
980
+ readonly object?: ReadonlyArray<ActionParam.ObjectType<Todo>>;
981
+ }
982
+
983
+ // Represents a fqn of the action
984
+ export interface Signatures {
985
+ /**
986
+ * An action which takes in an array of objects
987
+ */
988
+ applyAction<P extends deleteTodos.Params, OP extends ApplyActionOptions>(
989
+ args: P,
990
+ options?: OP,
991
+ ): Promise<ActionReturnTypeForOptions<OP>>;
992
+
993
+ batchApplyAction<P extends ReadonlyArray<deleteTodos.Params>, OP extends ApplyBatchActionOptions>(
994
+ args: P,
995
+ options?: OP,
996
+ ): Promise<ActionReturnTypeForOptions<OP>>;
997
+ }
998
+ }
999
+
1000
+ /**
1001
+ * An action which takes in an array of objects
1002
+ * @param {ActionParam.ObjectType<Todo>} [object] Todo(s) to be deleted
1003
+ */
1004
+ export interface deleteTodos extends ActionDefinition<deleteTodos.Signatures> {
1005
+ __DefinitionMetadata?: {
1006
+ apiName: 'foo.bar.deleteTodos';
1007
+ description: 'An action which takes in an array of objects';
1008
+ modifiedEntities: {};
1009
+ parameters: deleteTodos.ParamsDefinition;
1010
+ rid: 'ri.ontology.main.action-type.8f94017d-cf17-4fa8-84c3-8e01e5d594f2';
1011
+ status: 'ACTIVE';
1012
+ type: 'action';
1013
+
1014
+ signatures: deleteTodos.Signatures;
1015
+ };
1016
+ apiName: 'foo.bar.deleteTodos';
1017
+ type: 'action';
1018
+ osdkMetadata: typeof $osdkMetadata;
1019
+ }
1020
+
1021
+ export const deleteTodos: deleteTodos = {
1022
+ apiName: 'foo.bar.deleteTodos',
1023
+ type: 'action',
1024
+ osdkMetadata: $osdkMetadata,
1025
+ };
1026
+ ",
1027
+ "/foo/ontology/actions/markTodoCompleted.ts": "import type {
1028
+ ActionDefinition,
1029
+ ActionMetadata,
1030
+ ActionParam,
1031
+ ActionReturnTypeForOptions,
1032
+ ApplyActionOptions,
1033
+ ApplyBatchActionOptions,
1034
+ } from '@osdk/api';
1035
+ import { $osdkMetadata } from '../../OntologyMetadata.js';
1036
+ import type { Todo } from '../objects/Todo.js';
1037
+
1038
+ export namespace markTodoCompleted {
1039
+ // Represents the definition of the parameters for the action
1040
+ export type ParamsDefinition = {
1041
+ object: {
1042
+ description: 'A Todo to mark completed';
1043
+ multiplicity: false;
1044
+ nullable: true;
1045
+ type: ActionMetadata.DataType.Object<Todo>;
1046
+ };
1047
+ };
1048
+
1049
+ /**
1050
+ * An action which takes different types of parameters
1051
+ */
1052
+ export interface Params {
1053
+ /**
1054
+ * A Todo to mark completed
1055
+ */
1056
+ readonly object?: ActionParam.ObjectType<Todo>;
1057
+ }
1058
+
1059
+ // Represents a fqn of the action
1060
+ export interface Signatures {
1061
+ /**
1062
+ * An action which takes different types of parameters
1063
+ */
1064
+ applyAction<P extends markTodoCompleted.Params, OP extends ApplyActionOptions>(
1065
+ args: P,
1066
+ options?: OP,
1067
+ ): Promise<ActionReturnTypeForOptions<OP>>;
1068
+
1069
+ batchApplyAction<P extends ReadonlyArray<markTodoCompleted.Params>, OP extends ApplyBatchActionOptions>(
1070
+ args: P,
1071
+ options?: OP,
1072
+ ): Promise<ActionReturnTypeForOptions<OP>>;
1073
+ }
1074
+ }
1075
+
1076
+ /**
1077
+ * An action which takes different types of parameters
1078
+ * @param {ActionParam.ObjectType<Todo>} [object] A Todo to mark completed
1079
+ */
1080
+ export interface markTodoCompleted extends ActionDefinition<markTodoCompleted.Signatures> {
1081
+ __DefinitionMetadata?: {
1082
+ apiName: 'foo.bar.markTodoCompleted';
1083
+ description: 'An action which takes different types of parameters';
1084
+ modifiedEntities: {
1085
+ 'foo.bar.Todo': {
1086
+ created: false;
1087
+ modified: true;
1088
+ };
1089
+ };
1090
+ parameters: markTodoCompleted.ParamsDefinition;
1091
+ rid: 'ri.ontology.main.action-type.9f84017d-cf17-4fa8-84c3-8e01e5d594f2';
1092
+ status: 'ACTIVE';
1093
+ type: 'action';
1094
+
1095
+ signatures: markTodoCompleted.Signatures;
1096
+ };
1097
+ apiName: 'foo.bar.markTodoCompleted';
1098
+ type: 'action';
1099
+ osdkMetadata: typeof $osdkMetadata;
1100
+ }
1101
+
1102
+ export const markTodoCompleted: markTodoCompleted = {
1103
+ apiName: 'foo.bar.markTodoCompleted',
1104
+ type: 'action',
1105
+ osdkMetadata: $osdkMetadata,
1106
+ };
1107
+ ",
1108
+ "/foo/ontology/interfaces.ts": "export * from './interfaces/SomeInterface.js';
1109
+ ",
1110
+ "/foo/ontology/interfaces/SomeInterface.ts": "import type { PropertyDef as $PropertyDef } from '@osdk/api';
1111
+ import { $osdkMetadata } from '../../OntologyMetadata.js';
1112
+
1113
+ import type {
1114
+ InterfaceDefinition as $InterfaceDefinition,
1115
+ ObjectSet as $ObjectSet,
1116
+ Osdk as $Osdk,
1117
+ PropertyValueWireToClient as $PropType,
1118
+ } from '@osdk/api';
1119
+
1120
+ export type OsdkObjectLinks$SomeInterface = {};
1121
+
1122
+ export namespace SomeInterface {
1123
+ export type PropertyKeys = 'SomeProperty';
1124
+
1125
+ export interface Props {
1126
+ readonly SomeProperty: $PropType['string'] | undefined;
1127
+ }
1128
+ export interface StrictProps {
1129
+ readonly SomeProperty: $PropType['string'] | undefined;
1130
+ }
1131
+
1132
+ export interface ObjectSet extends $ObjectSet<SomeInterface, SomeInterface.ObjectSet> {}
1133
+
1134
+ export type OsdkObject<
1135
+ OPTIONS extends never | '$notStrict' | '$rid' = never,
1136
+ K extends keyof SomeInterface.Props = keyof SomeInterface.Props,
1137
+ > = $Osdk<SomeInterface, K | OPTIONS>;
1138
+ }
1139
+
1140
+ export interface SomeInterface extends $InterfaceDefinition<'foo.bar.SomeInterface', SomeInterface> {
1141
+ osdkMetadata: typeof $osdkMetadata;
1142
+ type: 'interface';
1143
+ apiName: 'foo.bar.SomeInterface';
1144
+ __DefinitionMetadata?: {
1145
+ objectSet: SomeInterface.ObjectSet;
1146
+ props: SomeInterface.Props;
1147
+ linksType: OsdkObjectLinks$SomeInterface;
1148
+ strictProps: SomeInterface.StrictProps;
1149
+ apiName: 'foo.bar.SomeInterface';
1150
+ description: 'Some interface';
1151
+ displayName: 'Sum Interface';
1152
+ implements: [];
1153
+ links: {};
1154
+ properties: {
1155
+ /**
1156
+ * display name: 'Sum Property',
1157
+ * description: Some property
1158
+ */
1159
+ SomeProperty: $PropertyDef<'string', 'nullable', 'single'>;
1160
+ };
1161
+ rid: 'idk';
1162
+ type: 'interface';
1163
+ };
1164
+ }
1165
+
1166
+ export const SomeInterface: SomeInterface = {
1167
+ type: 'interface',
1168
+ apiName: 'foo.bar.SomeInterface',
1169
+ osdkMetadata: $osdkMetadata,
1170
+ };
1171
+ ",
1172
+ "/foo/ontology/objects.ts": "export * from './objects/Person.js';
1173
+ export * from './objects/Todo.js';
1174
+ ",
1175
+ "/foo/ontology/objects/Person.ts": "import type { PropertyDef as $PropertyDef } from '@osdk/api';
1176
+ import { $osdkMetadata } from '../../OntologyMetadata.js';
1177
+ import type { $ExpectedClientVersion } from '../../OntologyMetadata.js';
1178
+ import type { Todo } from './Todo.js';
1179
+ import type {
1180
+ PropertyKeys as $PropertyKeys,
1181
+ ObjectTypeDefinition as $ObjectTypeDefinition,
1182
+ ObjectTypeLinkDefinition as $ObjectTypeLinkDefinition,
1183
+ } from '@osdk/api';
1184
+ import type {
1185
+ ObjectSet as $ObjectSet,
1186
+ Osdk as $Osdk,
1187
+ OsdkObject as $OsdkObject,
1188
+ PropertyValueWireToClient as $PropType,
1189
+ SingleLinkAccessor as $SingleLinkAccessor,
1190
+ } from '@osdk/api';
1191
+
1192
+ export namespace Person {
1193
+ export type PropertyKeys = 'email';
1194
+
1195
+ export interface Links {
1196
+ readonly Todos: Todo.ObjectSet;
1197
+ }
1198
+
1199
+ export interface Props {
1200
+ readonly email: $PropType['string'] | undefined;
1201
+ }
1202
+ export interface StrictProps {
1203
+ readonly email: $PropType['string'];
1204
+ }
1205
+
1206
+ export interface ObjectSet extends $ObjectSet<Person, Person.ObjectSet> {}
1207
+
1208
+ export type OsdkObject<
1209
+ OPTIONS extends never | '$notStrict' | '$rid' = never,
1210
+ K extends keyof Person.Props = keyof Person.Props,
1211
+ > = $Osdk<Person, K | OPTIONS>;
1212
+ }
1213
+
1214
+ export interface Person extends $ObjectTypeDefinition<'foo.bar.Person', Person> {
1215
+ osdkMetadata: typeof $osdkMetadata;
1216
+ type: 'object';
1217
+ apiName: 'foo.bar.Person';
1218
+ __DefinitionMetadata?: {
1219
+ objectSet: Person.ObjectSet;
1220
+ props: Person.Props;
1221
+ linksType: Person.Links;
1222
+ strictProps: Person.StrictProps;
1223
+ apiName: 'foo.bar.Person';
1224
+ description: 'A person';
1225
+ displayName: 'Person';
1226
+ icon: {
1227
+ type: 'blueprint';
1228
+ name: 'document';
1229
+ color: 'blue';
1230
+ };
1231
+ implements: [];
1232
+ interfaceMap: {};
1233
+ inverseInterfaceMap: {};
1234
+ links: {
1235
+ Todos: $ObjectTypeLinkDefinition<Todo, true>;
1236
+ };
1237
+ pluralDisplayName: 'Persons';
1238
+ primaryKeyApiName: 'email';
1239
+ primaryKeyType: 'string';
1240
+ properties: {
1241
+ /**
1242
+ * (no ontology metadata)
1243
+ */
1244
+ email: $PropertyDef<'string', 'non-nullable', 'single'>;
1245
+ };
1246
+ rid: 'ridForPerson';
1247
+ status: 'ACTIVE';
1248
+ titleProperty: 'email';
1249
+ type: 'object';
1250
+ };
1251
+ }
1252
+
1253
+ export const Person: Person = {
1254
+ type: 'object',
1255
+ apiName: 'foo.bar.Person',
1256
+ osdkMetadata: $osdkMetadata,
1257
+ };
1258
+ ",
1259
+ "/foo/ontology/objects/Todo.ts": "import type { PropertyDef as $PropertyDef } from '@osdk/api';
1260
+ import { $osdkMetadata } from '../../OntologyMetadata.js';
1261
+ import type { $ExpectedClientVersion } from '../../OntologyMetadata.js';
1262
+ import type { Person } from './Person.js';
1263
+ import type {
1264
+ PropertyKeys as $PropertyKeys,
1265
+ ObjectTypeDefinition as $ObjectTypeDefinition,
1266
+ ObjectTypeLinkDefinition as $ObjectTypeLinkDefinition,
1267
+ } from '@osdk/api';
1268
+ import type {
1269
+ ObjectSet as $ObjectSet,
1270
+ Osdk as $Osdk,
1271
+ OsdkObject as $OsdkObject,
1272
+ PropertyValueWireToClient as $PropType,
1273
+ SingleLinkAccessor as $SingleLinkAccessor,
1274
+ } from '@osdk/api';
1275
+
1276
+ export namespace Todo {
1277
+ export type PropertyKeys = 'id' | 'body' | 'complete';
1278
+
1279
+ export interface Links {
1280
+ readonly Assignee: $SingleLinkAccessor<Person>;
1281
+ }
1282
+
1283
+ export interface Props {
1284
+ readonly body: $PropType['string'] | undefined;
1285
+ readonly complete: $PropType['boolean'] | undefined;
1286
+ readonly id: $PropType['integer'] | undefined;
1287
+ }
1288
+ export interface StrictProps {
1289
+ readonly body: $PropType['string'] | undefined;
1290
+ readonly complete: $PropType['boolean'] | undefined;
1291
+ readonly id: $PropType['integer'];
1292
+ }
1293
+
1294
+ export interface ObjectSet extends $ObjectSet<Todo, Todo.ObjectSet> {}
1295
+
1296
+ export type OsdkObject<
1297
+ OPTIONS extends never | '$notStrict' | '$rid' = never,
1298
+ K extends keyof Todo.Props = keyof Todo.Props,
1299
+ > = $Osdk<Todo, K | OPTIONS>;
1300
+ }
1301
+
1302
+ export interface Todo extends $ObjectTypeDefinition<'foo.bar.Todo', Todo> {
1303
+ osdkMetadata: typeof $osdkMetadata;
1304
+ type: 'object';
1305
+ apiName: 'foo.bar.Todo';
1306
+ __DefinitionMetadata?: {
1307
+ objectSet: Todo.ObjectSet;
1308
+ props: Todo.Props;
1309
+ linksType: Todo.Links;
1310
+ strictProps: Todo.StrictProps;
1311
+ apiName: 'foo.bar.Todo';
1312
+ description: 'Its a todo item.';
1313
+ displayName: 'AwesomeTodoDisplayname';
1314
+ icon: {
1315
+ type: 'blueprint';
1316
+ name: 'document';
1317
+ color: 'blue';
1318
+ };
1319
+ implements: ['foo.bar.SomeInterface'];
1320
+ interfaceMap: {
1321
+ 'foo.bar.SomeInterface': {
1322
+ SomeProperty: 'body';
1323
+ };
1324
+ };
1325
+ inverseInterfaceMap: {
1326
+ 'foo.bar.SomeInterface': {
1327
+ body: 'SomeProperty';
1328
+ };
1329
+ };
1330
+ links: {
1331
+ Assignee: $ObjectTypeLinkDefinition<Person, false>;
1332
+ };
1333
+ pluralDisplayName: 'AwesomeTodoDisplayNames';
1334
+ primaryKeyApiName: 'id';
1335
+ primaryKeyType: 'integer';
1336
+ properties: {
1337
+ /**
1338
+ * display name: 'Body',
1339
+ * description: The text of the todo
1340
+ */
1341
+ body: $PropertyDef<'string', 'nullable', 'single'>;
1342
+ /**
1343
+ * (no ontology metadata)
1344
+ */
1345
+ complete: $PropertyDef<'boolean', 'nullable', 'single'>;
1346
+ /**
1347
+ * (no ontology metadata)
1348
+ */
1349
+ id: $PropertyDef<'integer', 'non-nullable', 'single'>;
1350
+ };
1351
+ rid: 'ridForTodo';
1352
+ status: 'ACTIVE';
1353
+ titleProperty: 'body';
1354
+ type: 'object';
1355
+ };
1356
+ }
1357
+
1358
+ export const Todo: Todo = {
1359
+ type: 'object',
1360
+ apiName: 'foo.bar.Todo',
1361
+ osdkMetadata: $osdkMetadata,
1362
+ };
1363
+ ",
1364
+ "/foo/ontology/queries.ts": "export * from './queries/getCount.js';
1365
+ export * from './queries/returnsTodo.js';
1366
+ ",
1367
+ "/foo/ontology/queries/getCount.ts": "import type { QueryDefinition, VersionBound } from '@osdk/api';
1368
+ import type { QueryParam, QueryResult } from '@osdk/api';
1369
+ import type { $ExpectedClientVersion } from '../../OntologyMetadata.js';
1370
+ import { $osdkMetadata } from '../../OntologyMetadata.js';
1371
+
1372
+ export namespace getCount {
1373
+ export interface Signature {
1374
+ (query: getCount.Parameters): Promise<QueryResult.PrimitiveType<'integer'>>;
1375
+ }
1376
+
1377
+ export interface Parameters {
1378
+ /**
1379
+ * (no ontology metadata)
1380
+ */
1381
+ readonly completed: QueryParam.PrimitiveType<'boolean'>;
1382
+ }
1383
+ }
1384
+
1385
+ export interface getCount
1386
+ extends QueryDefinition<'foo.bar.getCount', never, getCount.Signature>,
1387
+ VersionBound<$ExpectedClientVersion> {
1388
+ __DefinitionMetadata?: {
1389
+ apiName: 'foo.bar.getCount';
1390
+ rid: 'rid.query.1';
1391
+ type: 'query';
1392
+ version: '0';
1393
+ parameters: {
1394
+ /**
1395
+ * (no ontology metadata)
1396
+ */
1397
+ completed: {
1398
+ nullable: false;
1399
+ type: 'boolean';
1400
+ };
1401
+ };
1402
+ output: {
1403
+ nullable: false;
1404
+ type: 'integer';
1405
+ };
1406
+ signature: getCount.Signature;
1407
+ };
1408
+ apiName: 'foo.bar.getCount';
1409
+ type: 'query';
1410
+ version: '0';
1411
+ osdkMetadata: typeof $osdkMetadata;
1412
+ }
1413
+
1414
+ export const getCount: getCount = {
1415
+ apiName: 'foo.bar.getCount',
1416
+ type: 'query',
1417
+ version: '0',
1418
+ osdkMetadata: $osdkMetadata,
1419
+ };
1420
+ ",
1421
+ "/foo/ontology/queries/returnsTodo.ts": "import type { QueryDefinition, VersionBound } from '@osdk/api';
1422
+ import type { QueryParam, QueryResult } from '@osdk/api';
1423
+ import type { $ExpectedClientVersion } from '../../OntologyMetadata.js';
1424
+ import { $osdkMetadata } from '../../OntologyMetadata.js';
1425
+ import type { Todo } from '../objects/Todo.js';
1426
+
1427
+ export namespace returnsTodo {
1428
+ export interface Signature {
1429
+ (query: returnsTodo.Parameters): Promise<QueryResult.ObjectType<Todo>>;
1430
+ }
1431
+
1432
+ export interface Parameters {
1433
+ /**
1434
+ * description: Random desc so we test jsdoc
1435
+ */
1436
+ readonly someTodo: QueryParam.ObjectType<Todo>;
1437
+ }
1438
+ }
1439
+
1440
+ export interface returnsTodo
1441
+ extends QueryDefinition<'foo.bar.returnsTodo', 'foo.bar.Todo', returnsTodo.Signature>,
1442
+ VersionBound<$ExpectedClientVersion> {
1443
+ __DefinitionMetadata?: {
1444
+ apiName: 'foo.bar.returnsTodo';
1445
+ rid: 'rid.query.2';
1446
+ type: 'query';
1447
+ version: '0';
1448
+ parameters: {
1449
+ /**
1450
+ * description: Random desc so we test jsdoc
1451
+ */
1452
+ someTodo: {
1453
+ description: 'Random desc so we test jsdoc';
1454
+ nullable: false;
1455
+ object: 'foo.bar.Todo';
1456
+ type: 'object';
1457
+ __OsdkTargetType?: Todo;
1458
+ };
1459
+ };
1460
+ output: {
1461
+ nullable: false;
1462
+ object: 'foo.bar.Todo';
1463
+ type: 'object';
1464
+ __OsdkTargetType?: Todo;
1465
+ };
1466
+ signature: returnsTodo.Signature;
1467
+ };
1468
+ apiName: 'foo.bar.returnsTodo';
1469
+ type: 'query';
1470
+ version: '0';
1471
+ osdkMetadata: typeof $osdkMetadata;
1472
+ }
1473
+
1474
+ export const returnsTodo: returnsTodo = {
1475
+ apiName: 'foo.bar.returnsTodo',
1476
+ type: 'query',
1477
+ version: '0',
1478
+ osdkMetadata: $osdkMetadata,
1479
+ };
1480
+ ",
1481
+ }
1482
+ `);
1483
+ });
1484
+ it("guards against empty objects", async () => {
1485
+ await generateClientSdkVersionTwoPointZero({
1486
+ ontology: TodoWireOntology.ontology,
1487
+ actionTypes: {},
1488
+ interfaceTypes: {},
1489
+ objectTypes: {},
1490
+ queryTypes: {},
1491
+ sharedPropertyTypes: {}
1492
+ }, "", helper.minimalFiles, BASE_PATH);
1493
+ expect(helper.getFiles()[`${BASE_PATH}/ontology/objects.ts`]).toEqual("export {};\n");
1494
+ });
1495
+ test.skip("runs generator locally", async () => {
1496
+ try {
1497
+ await rmdir(`${__dirname}/generated`, {
1498
+ recursive: true
1499
+ });
1500
+ } catch (e) {}
1501
+ await mkdir(`${__dirname}/generated`, {
1502
+ recursive: true
1503
+ });
1504
+ await generateClientSdkVersionTwoPointZero(TodoWireOntology, "typescript-sdk/0.0.0 osdk-cli/0.0.0", {
1505
+ writeFile: async (path, contents) => {
1506
+ await writeFile(path, contents, {
1507
+ flag: "w"
1508
+ });
1509
+ },
1510
+ mkdir: async (path, options) => {
1511
+ await mkdir(path, options);
1512
+ },
1513
+ readdir: async path => await readdir(path)
1514
+ }, `${__dirname}/generated/`);
1515
+ });
1516
+ describe("$ontologyRid", () => {
1517
+ it("does not exist when an ontology api name is provided", async () => {
1518
+ await expect(generateClientSdkVersionTwoPointZero(fooBarTodoWireOntology, "", helper.minimalFiles, "/foo", "module", "foo.bar", new Map())).resolves.toMatchInlineSnapshot(`undefined`);
1519
+ expect(helper.getFiles()["/foo/index.ts"]).not.toContain("$ontologyRid");
1520
+ });
1521
+ it("does exist when an ontology api name is not provided", async () => {
1522
+ await expect(generateClientSdkVersionTwoPointZero(TodoWireOntology, "", helper.minimalFiles, "/foo", "module", undefined, new Map())).resolves.toMatchInlineSnapshot(`undefined`);
1523
+ expect(helper.getFiles()["/foo/index.ts"]).toContain("$ontologyRid");
1524
+ });
1525
+ });
1526
+ describe("query depends on foreign object", () => {
1527
+ it("generates the correct code", async () => {
1528
+ await expect(generateClientSdkVersionTwoPointZero(referencingOntology, "", helper.minimalFiles, BASE_PATH, "module", undefined, new Map([["com.example.dep", "@com.example.dep/osdk"]]))).resolves.toMatchInlineSnapshot(`undefined`);
1529
+ expect(helper.getFiles()["/foo/ontology/queries/getTask.ts"]).toMatchInlineSnapshot(`
1530
+ "import type { QueryDefinition, VersionBound } from '@osdk/api';
1531
+ import type { QueryParam, QueryResult } from '@osdk/api';
1532
+ import type { $ExpectedClientVersion } from '../../OntologyMetadata.js';
1533
+ import { $osdkMetadata } from '../../OntologyMetadata.js';
1534
+ import type { Task as $Imported$objectTypes$com$example$dep$Task } from '@com.example.dep/osdk';
1535
+
1536
+ export namespace getTask {
1537
+ export interface Signature {
1538
+ (query: getTask.Parameters): Promise<QueryResult.ObjectType<$Imported$objectTypes$com$example$dep$Task>>;
1539
+ }
1540
+
1541
+ export interface Parameters {
1542
+ /**
1543
+ * (no ontology metadata)
1544
+ */
1545
+ readonly a: QueryParam.ObjectType<$Imported$objectTypes$com$example$dep$Task>;
1546
+ }
1547
+ }
1548
+
1549
+ export interface getTask
1550
+ extends QueryDefinition<'getTask', 'com.example.dep.Task', getTask.Signature>,
1551
+ VersionBound<$ExpectedClientVersion> {
1552
+ __DefinitionMetadata?: {
1553
+ apiName: 'getTask';
1554
+ rid: 'ri.a.b.c';
1555
+ type: 'query';
1556
+ version: '0';
1557
+ parameters: {
1558
+ /**
1559
+ * (no ontology metadata)
1560
+ */
1561
+ a: {
1562
+ nullable: false;
1563
+ object: 'com.example.dep.Task';
1564
+ type: 'object';
1565
+ __OsdkTargetType?: $Imported$objectTypes$com$example$dep$Task;
1566
+ };
1567
+ };
1568
+ output: {
1569
+ nullable: false;
1570
+ object: 'com.example.dep.Task';
1571
+ type: 'object';
1572
+ __OsdkTargetType?: $Imported$objectTypes$com$example$dep$Task;
1573
+ };
1574
+ signature: getTask.Signature;
1575
+ };
1576
+ apiName: 'getTask';
1577
+ type: 'query';
1578
+ version: '0';
1579
+ osdkMetadata: typeof $osdkMetadata;
1580
+ }
1581
+
1582
+ export const getTask: getTask = {
1583
+ apiName: 'getTask',
1584
+ type: 'query',
1585
+ version: '0',
1586
+ osdkMetadata: $osdkMetadata,
1587
+ };
1588
+ "
1589
+ `);
1590
+ });
1591
+ });
1592
+ describe("object uses on foreign spt", () => {
1593
+ it("stuff", async () => {
1594
+ await expect(generateClientSdkVersionTwoPointZero(referencingOntology, "", helper.minimalFiles, BASE_PATH, "module", undefined, new Map([["com.example.dep", "@com.example.dep/osdk"]]))).resolves.toMatchInlineSnapshot(`undefined`);
1595
+ expect(helper.getFiles()["/foo/ontology/objects/UsesForeignSpt.ts"]).toMatchInlineSnapshot(`
1596
+ "import type { PropertyDef as $PropertyDef } from '@osdk/api';
1597
+ import { $osdkMetadata } from '../../OntologyMetadata.js';
1598
+ import type { $ExpectedClientVersion } from '../../OntologyMetadata.js';
1599
+ import type {
1600
+ PropertyKeys as $PropertyKeys,
1601
+ ObjectTypeDefinition as $ObjectTypeDefinition,
1602
+ ObjectTypeLinkDefinition as $ObjectTypeLinkDefinition,
1603
+ } from '@osdk/api';
1604
+ import type {
1605
+ ObjectSet as $ObjectSet,
1606
+ Osdk as $Osdk,
1607
+ OsdkObject as $OsdkObject,
1608
+ PropertyValueWireToClient as $PropType,
1609
+ SingleLinkAccessor as $SingleLinkAccessor,
1610
+ } from '@osdk/api';
1611
+
1612
+ export namespace UsesForeignSpt {
1613
+ export type PropertyKeys = 'id' | 'body';
1614
+
1615
+ export type Links = {};
1616
+
1617
+ export interface Props {
1618
+ readonly body: $PropType['string'] | undefined;
1619
+ readonly id: $PropType['integer'] | undefined;
1620
+ }
1621
+ export interface StrictProps {
1622
+ readonly body: $PropType['string'] | undefined;
1623
+ readonly id: $PropType['integer'];
1624
+ }
1625
+
1626
+ export interface ObjectSet extends $ObjectSet<UsesForeignSpt, UsesForeignSpt.ObjectSet> {}
1627
+
1628
+ export type OsdkObject<
1629
+ OPTIONS extends never | '$notStrict' | '$rid' = never,
1630
+ K extends keyof UsesForeignSpt.Props = keyof UsesForeignSpt.Props,
1631
+ > = $Osdk<UsesForeignSpt, K | OPTIONS>;
1632
+ }
1633
+
1634
+ export interface UsesForeignSpt extends $ObjectTypeDefinition<'UsesForeignSpt', UsesForeignSpt> {
1635
+ osdkMetadata: typeof $osdkMetadata;
1636
+ type: 'object';
1637
+ apiName: 'UsesForeignSpt';
1638
+ __DefinitionMetadata?: {
1639
+ objectSet: UsesForeignSpt.ObjectSet;
1640
+ props: UsesForeignSpt.Props;
1641
+ linksType: UsesForeignSpt.Links;
1642
+ strictProps: UsesForeignSpt.StrictProps;
1643
+ apiName: 'UsesForeignSpt';
1644
+ displayName: 'Uses Foreign Spt';
1645
+ icon: {
1646
+ type: 'blueprint';
1647
+ color: 'blue';
1648
+ name: 'document';
1649
+ };
1650
+ implements: [];
1651
+ interfaceMap: {};
1652
+ inverseInterfaceMap: {};
1653
+ links: {};
1654
+ pluralDisplayName: 'Uses Foreign Spts';
1655
+ primaryKeyApiName: 'id';
1656
+ primaryKeyType: 'integer';
1657
+ properties: {
1658
+ /**
1659
+ * (no ontology metadata)
1660
+ */
1661
+ body: $PropertyDef<'string', 'nullable', 'single'>;
1662
+ /**
1663
+ * (no ontology metadata)
1664
+ */
1665
+ id: $PropertyDef<'integer', 'non-nullable', 'single'>;
1666
+ };
1667
+ rid: 'theRid';
1668
+ status: 'ACTIVE';
1669
+ titleProperty: 'id';
1670
+ type: 'object';
1671
+ };
1672
+ }
1673
+
1674
+ export const UsesForeignSpt: UsesForeignSpt = {
1675
+ type: 'object',
1676
+ apiName: 'UsesForeignSpt',
1677
+ osdkMetadata: $osdkMetadata,
1678
+ };
1679
+ "
1680
+ `);
1681
+ });
1682
+ });
1683
+ describe("action depends on foreign object", () => {
1684
+ it("stuff", async () => {
1685
+ await expect(generateClientSdkVersionTwoPointZero(referencingOntology, "", helper.minimalFiles, BASE_PATH, "module", undefined, new Map([["com.example.dep", "@com.example.dep/osdk"]]))).resolves.toMatchInlineSnapshot(`undefined`);
1686
+ expect(helper.getFiles()["/foo/ontology/actions/setTaskBody.ts"]).toMatchInlineSnapshot(`
1687
+ "import type {
1688
+ ActionDefinition,
1689
+ ActionMetadata,
1690
+ ActionParam,
1691
+ ActionReturnTypeForOptions,
1692
+ ApplyActionOptions,
1693
+ ApplyBatchActionOptions,
1694
+ } from '@osdk/api';
1695
+ import { $osdkMetadata } from '../../OntologyMetadata.js';
1696
+ import type { Task as $Imported$objectTypes$com$example$dep$Task } from '@com.example.dep/osdk';
1697
+
1698
+ export namespace setTaskBody {
1699
+ // Represents the definition of the parameters for the action
1700
+ export type ParamsDefinition = {
1701
+ body: {
1702
+ multiplicity: false;
1703
+ nullable: false;
1704
+ type: 'string';
1705
+ };
1706
+ task: {
1707
+ multiplicity: false;
1708
+ nullable: false;
1709
+ type: ActionMetadata.DataType.Object<$Imported$objectTypes$com$example$dep$Task>;
1710
+ };
1711
+ };
1712
+
1713
+ export interface Params {
1714
+ readonly body: ActionParam.PrimitiveType<'string'>;
1715
+
1716
+ readonly task: ActionParam.ObjectType<$Imported$objectTypes$com$example$dep$Task>;
1717
+ }
1718
+
1719
+ // Represents a fqn of the action
1720
+ export interface Signatures {
1721
+ applyAction<P extends setTaskBody.Params, OP extends ApplyActionOptions>(
1722
+ args: P,
1723
+ options?: OP,
1724
+ ): Promise<ActionReturnTypeForOptions<OP>>;
1725
+
1726
+ batchApplyAction<P extends ReadonlyArray<setTaskBody.Params>, OP extends ApplyBatchActionOptions>(
1727
+ args: P,
1728
+ options?: OP,
1729
+ ): Promise<ActionReturnTypeForOptions<OP>>;
1730
+ }
1731
+ }
1732
+
1733
+ /**
1734
+ * @param {ActionParam.PrimitiveType<"string">} body
1735
+ * @param {ActionParam.ObjectType<$Imported$objectTypes$com$example$dep$Task>} task
1736
+ */
1737
+ export interface setTaskBody extends ActionDefinition<setTaskBody.Signatures> {
1738
+ __DefinitionMetadata?: {
1739
+ apiName: 'setTaskBody';
1740
+ modifiedEntities: {
1741
+ 'com.example.dep.Task': {
1742
+ created: false;
1743
+ modified: true;
1744
+ };
1745
+ };
1746
+ parameters: setTaskBody.ParamsDefinition;
1747
+ rid: 'ri.a.b.c.d';
1748
+ status: 'ACTIVE';
1749
+ type: 'action';
1750
+
1751
+ signatures: setTaskBody.Signatures;
1752
+ };
1753
+ apiName: 'setTaskBody';
1754
+ type: 'action';
1755
+ osdkMetadata: typeof $osdkMetadata;
1756
+ }
1757
+
1758
+ export const setTaskBody: setTaskBody = {
1759
+ apiName: 'setTaskBody',
1760
+ type: 'action',
1761
+ osdkMetadata: $osdkMetadata,
1762
+ };
1763
+ "
1764
+ `);
1765
+ });
1766
+ });
1767
+ it("can generate an sdk package that is entirely a library", async () => {
1768
+ await expect(generateClientSdkVersionTwoPointZero(referencedOntology, "", helper.minimalFiles, BASE_PATH, "module", undefined, new Map([["com.example.dep", "@com.example.dep/osdk"]]))).resolves.toMatchInlineSnapshot(`undefined`);
1769
+ expect(tweakedFilesForSnapshotConsistency(helper.getFiles())).toMatchInlineSnapshot(`
1770
+ {
1771
+ "/foo/OntologyMetadata.ts": "export type $ExpectedClientVersion = 'PLACEHOLDER';
1772
+ export const $osdkMetadata = { extraUserAgent: '' };
1773
+
1774
+ export const $ontologyRid = 'ri.ontology.main.ontology.dep';
1775
+ ",
1776
+ "/foo/index.ts": "export * from './ontology/actions.js';
1777
+ export * as $Actions from './ontology/actions.js';
1778
+ export * from './ontology/interfaces.js';
1779
+ export * as $Interfaces from './ontology/interfaces.js';
1780
+ export * from './ontology/objects.js';
1781
+ export * as $Objects from './ontology/objects.js';
1782
+ export * from './ontology/queries.js';
1783
+ export * as $Queries from './ontology/queries.js';
1784
+ export { $ontologyRid } from './OntologyMetadata.js';
1785
+ ",
1786
+ "/foo/ontology/actions.ts": "export {};
1787
+ ",
1788
+ "/foo/ontology/interfaces.ts": "export * from './interfaces/SomeInterface.js';
1789
+ ",
1790
+ "/foo/ontology/interfaces/SomeInterface.ts": "import type { PropertyDef as $PropertyDef } from '@osdk/api';
1791
+ import { $osdkMetadata } from '../../OntologyMetadata.js';
1792
+
1793
+ import type {
1794
+ InterfaceDefinition as $InterfaceDefinition,
1795
+ ObjectSet as $ObjectSet,
1796
+ Osdk as $Osdk,
1797
+ PropertyValueWireToClient as $PropType,
1798
+ } from '@osdk/api';
1799
+
1800
+ export type OsdkObjectLinks$SomeInterface = {};
1801
+
1802
+ export namespace SomeInterface {
1803
+ export type PropertyKeys = 'spt';
1804
+
1805
+ export interface Props {
1806
+ readonly spt: $PropType['string'] | undefined;
1807
+ }
1808
+ export interface StrictProps {
1809
+ readonly spt: $PropType['string'] | undefined;
1810
+ }
1811
+
1812
+ export interface ObjectSet extends $ObjectSet<SomeInterface, SomeInterface.ObjectSet> {}
1813
+
1814
+ export type OsdkObject<
1815
+ OPTIONS extends never | '$notStrict' | '$rid' = never,
1816
+ K extends keyof SomeInterface.Props = keyof SomeInterface.Props,
1817
+ > = $Osdk<SomeInterface, K | OPTIONS>;
1818
+ }
1819
+
1820
+ export interface SomeInterface extends $InterfaceDefinition<'com.example.dep.SomeInterface', SomeInterface> {
1821
+ osdkMetadata: typeof $osdkMetadata;
1822
+ type: 'interface';
1823
+ apiName: 'com.example.dep.SomeInterface';
1824
+ __DefinitionMetadata?: {
1825
+ objectSet: SomeInterface.ObjectSet;
1826
+ props: SomeInterface.Props;
1827
+ linksType: OsdkObjectLinks$SomeInterface;
1828
+ strictProps: SomeInterface.StrictProps;
1829
+ apiName: 'com.example.dep.SomeInterface';
1830
+ displayName: 'Sum Interface';
1831
+ implements: [];
1832
+ links: {};
1833
+ properties: {
1834
+ /**
1835
+ * display name: 'Some Property'
1836
+ */
1837
+ spt: $PropertyDef<'string', 'nullable', 'single'>;
1838
+ };
1839
+ rid: 'idk2';
1840
+ type: 'interface';
1841
+ };
1842
+ }
1843
+
1844
+ export const SomeInterface: SomeInterface = {
1845
+ type: 'interface',
1846
+ apiName: 'com.example.dep.SomeInterface',
1847
+ osdkMetadata: $osdkMetadata,
1848
+ };
1849
+ ",
1850
+ "/foo/ontology/objects.ts": "export * from './objects/Task.js';
1851
+ ",
1852
+ "/foo/ontology/objects/Task.ts": "import type { PropertyDef as $PropertyDef } from '@osdk/api';
1853
+ import { $osdkMetadata } from '../../OntologyMetadata.js';
1854
+ import type { $ExpectedClientVersion } from '../../OntologyMetadata.js';
1855
+ import type {
1856
+ PropertyKeys as $PropertyKeys,
1857
+ ObjectTypeDefinition as $ObjectTypeDefinition,
1858
+ ObjectTypeLinkDefinition as $ObjectTypeLinkDefinition,
1859
+ } from '@osdk/api';
1860
+ import type {
1861
+ ObjectSet as $ObjectSet,
1862
+ Osdk as $Osdk,
1863
+ OsdkObject as $OsdkObject,
1864
+ PropertyValueWireToClient as $PropType,
1865
+ SingleLinkAccessor as $SingleLinkAccessor,
1866
+ } from '@osdk/api';
1867
+
1868
+ export namespace Task {
1869
+ export type PropertyKeys = 'taskId' | 'body';
1870
+
1871
+ export type Links = {};
1872
+
1873
+ export interface Props {
1874
+ readonly body: $PropType['string'] | undefined;
1875
+ readonly taskId: $PropType['string'] | undefined;
1876
+ }
1877
+ export interface StrictProps {
1878
+ readonly body: $PropType['string'] | undefined;
1879
+ readonly taskId: $PropType['string'];
1880
+ }
1881
+
1882
+ export interface ObjectSet extends $ObjectSet<Task, Task.ObjectSet> {}
1883
+
1884
+ export type OsdkObject<
1885
+ OPTIONS extends never | '$notStrict' | '$rid' = never,
1886
+ K extends keyof Task.Props = keyof Task.Props,
1887
+ > = $Osdk<Task, K | OPTIONS>;
1888
+ }
1889
+
1890
+ export interface Task extends $ObjectTypeDefinition<'com.example.dep.Task', Task> {
1891
+ osdkMetadata: typeof $osdkMetadata;
1892
+ type: 'object';
1893
+ apiName: 'com.example.dep.Task';
1894
+ __DefinitionMetadata?: {
1895
+ objectSet: Task.ObjectSet;
1896
+ props: Task.Props;
1897
+ linksType: Task.Links;
1898
+ strictProps: Task.StrictProps;
1899
+ apiName: 'com.example.dep.Task';
1900
+ displayName: 'Task';
1901
+ icon: {
1902
+ type: 'blueprint';
1903
+ color: 'blue';
1904
+ name: 'document';
1905
+ };
1906
+ implements: [];
1907
+ interfaceMap: {};
1908
+ inverseInterfaceMap: {};
1909
+ links: {};
1910
+ pluralDisplayName: 'Tasks';
1911
+ primaryKeyApiName: 'taskId';
1912
+ primaryKeyType: 'string';
1913
+ properties: {
1914
+ /**
1915
+ * (no ontology metadata)
1916
+ */
1917
+ body: $PropertyDef<'string', 'nullable', 'single'>;
1918
+ /**
1919
+ * (no ontology metadata)
1920
+ */
1921
+ taskId: $PropertyDef<'string', 'non-nullable', 'single'>;
1922
+ };
1923
+ rid: 'ridForTask';
1924
+ status: 'ACTIVE';
1925
+ titleProperty: 'taskId';
1926
+ type: 'object';
1927
+ };
1928
+ }
1929
+
1930
+ export const Task: Task = {
1931
+ type: 'object',
1932
+ apiName: 'com.example.dep.Task',
1933
+ osdkMetadata: $osdkMetadata,
1934
+ };
1935
+ ",
1936
+ "/foo/ontology/queries.ts": "export {};
1937
+ ",
1938
+ }
1939
+ `);
1940
+ });
1941
+ });
1942
+ function tweakedFilesForSnapshotConsistency(files) {
1943
+ const ret = {
1944
+ ...files
1945
+ };
1946
+ ret["/foo/OntologyMetadata.ts"] = ret["/foo/OntologyMetadata.ts"].replace(/export type \$ExpectedClientVersion = '.*?';/, `export type $ExpectedClientVersion = 'PLACEHOLDER';`);
1947
+ return ret;
1948
+ }
1949
+ //# sourceMappingURL=generateClientSdkVersionTwoPointZero.test.js.map