@api-client/core 0.19.10 → 0.19.11

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 (429) hide show
  1. package/LICENSE.md +9 -63
  2. package/bin/test.ts +1 -12
  3. package/build/src/browser.d.ts +0 -15
  4. package/build/src/browser.d.ts.map +1 -1
  5. package/build/src/browser.js +0 -17
  6. package/build/src/browser.js.map +1 -1
  7. package/build/src/events/EventTypes.d.ts +0 -6
  8. package/build/src/events/EventTypes.d.ts.map +1 -1
  9. package/build/src/events/EventTypes.js +0 -2
  10. package/build/src/events/EventTypes.js.map +1 -1
  11. package/build/src/events/Events.d.ts +0 -2
  12. package/build/src/events/Events.d.ts.map +1 -1
  13. package/build/src/events/Events.js +0 -2
  14. package/build/src/events/Events.js.map +1 -1
  15. package/build/src/index.d.ts +0 -15
  16. package/build/src/index.d.ts.map +1 -1
  17. package/build/src/index.js +0 -17
  18. package/build/src/index.js.map +1 -1
  19. package/build/src/modeling/Bindings.d.ts +3 -3
  20. package/build/src/modeling/Bindings.d.ts.map +1 -1
  21. package/build/src/modeling/Bindings.js.map +1 -1
  22. package/build/src/modeling/DomainAssociation.d.ts +5 -5
  23. package/build/src/modeling/DomainAssociation.d.ts.map +1 -1
  24. package/build/src/modeling/DomainAssociation.js.map +1 -1
  25. package/build/src/modeling/DomainEntity.d.ts +2 -3
  26. package/build/src/modeling/DomainEntity.d.ts.map +1 -1
  27. package/build/src/modeling/DomainEntity.js +1 -1
  28. package/build/src/modeling/DomainEntity.js.map +1 -1
  29. package/build/src/modeling/DomainProperty.d.ts +2 -3
  30. package/build/src/modeling/DomainProperty.d.ts.map +1 -1
  31. package/build/src/modeling/DomainProperty.js +1 -1
  32. package/build/src/modeling/DomainProperty.js.map +1 -1
  33. package/build/src/modeling/ai/types.d.ts +2 -2
  34. package/build/src/modeling/ai/types.d.ts.map +1 -1
  35. package/build/src/modeling/ai/types.js.map +1 -1
  36. package/build/src/{amf → modeling/amf}/DataValueGenerator.d.ts +1 -1
  37. package/build/src/modeling/amf/DataValueGenerator.d.ts.map +1 -0
  38. package/build/src/{amf → modeling/amf}/DataValueGenerator.js +2 -3
  39. package/build/src/modeling/amf/DataValueGenerator.js.map +1 -0
  40. package/build/src/modeling/amf/ShapeGenerator.d.ts +20 -20
  41. package/build/src/modeling/amf/ShapeGenerator.d.ts.map +1 -1
  42. package/build/src/modeling/amf/ShapeGenerator.js +16 -18
  43. package/build/src/modeling/amf/ShapeGenerator.js.map +1 -1
  44. package/build/src/modeling/amf/core_types.d.ts +9 -0
  45. package/build/src/modeling/amf/core_types.d.ts.map +1 -0
  46. package/build/src/modeling/amf/core_types.js +45 -0
  47. package/build/src/modeling/amf/core_types.js.map +1 -0
  48. package/build/src/models/http-flows/LegacyTranslator.js +1 -1
  49. package/build/src/models/http-flows/LegacyTranslator.js.map +1 -1
  50. package/build/src/runtime/http-runner/HttpFlows.js +1 -1
  51. package/build/src/runtime/http-runner/HttpFlows.js.map +1 -1
  52. package/build/tsconfig.tsbuildinfo +1 -1
  53. package/eslint.config.js +0 -1
  54. package/package.json +11 -14
  55. package/src/events/EventTypes.ts +0 -2
  56. package/src/events/Events.ts +0 -2
  57. package/src/modeling/Bindings.ts +3 -3
  58. package/src/modeling/DomainAssociation.ts +5 -5
  59. package/src/modeling/DomainEntity.ts +3 -4
  60. package/src/modeling/DomainProperty.ts +3 -4
  61. package/src/modeling/ai/types.ts +2 -2
  62. package/src/{amf → modeling/amf}/DataValueGenerator.ts +3 -4
  63. package/src/modeling/amf/ShapeGenerator.ts +45 -61
  64. package/src/modeling/amf/core_types.ts +47 -0
  65. package/src/models/http-flows/LegacyTranslator.ts +1 -1
  66. package/src/runtime/http-runner/HttpFlows.ts +1 -1
  67. package/tests/unit/{amf → modeling/amf}/data_value_generator.spec.ts +2 -2
  68. package/tests/unit/modeling/amf/shape_generator.spec.ts +146 -167
  69. package/tests/unit/modeling/domain_asociation.spec.ts +13 -13
  70. package/tests/unit/runtime/runners/http_assertion_runner.spec.ts +1 -1
  71. package/tests/unit/runtime/runners/http_flow_runner.spec.ts +1 -1
  72. package/tests/unit/runtime/runners/project_runner.spec.ts +1 -1
  73. package/tests/unit/runtime/runners/request_runner.spec.ts +1 -1
  74. package/tests/unit/runtime/runners/serial_runner.spec.ts +1 -1
  75. package/build/src/amf/AmfMixin.d.ts +0 -396
  76. package/build/src/amf/AmfMixin.d.ts.map +0 -1
  77. package/build/src/amf/AmfMixin.js +0 -1138
  78. package/build/src/amf/AmfMixin.js.map +0 -1
  79. package/build/src/amf/AmfSerializer.d.ts +0 -137
  80. package/build/src/amf/AmfSerializer.d.ts.map +0 -1
  81. package/build/src/amf/AmfSerializer.js +0 -1947
  82. package/build/src/amf/AmfSerializer.js.map +0 -1
  83. package/build/src/amf/AmfTypes.d.ts +0 -25
  84. package/build/src/amf/AmfTypes.d.ts.map +0 -1
  85. package/build/src/amf/AmfTypes.js +0 -143
  86. package/build/src/amf/AmfTypes.js.map +0 -1
  87. package/build/src/amf/ApiExampleGenerator.d.ts +0 -40
  88. package/build/src/amf/ApiExampleGenerator.d.ts.map +0 -1
  89. package/build/src/amf/ApiExampleGenerator.js +0 -112
  90. package/build/src/amf/ApiExampleGenerator.js.map +0 -1
  91. package/build/src/amf/ApiMonacoSchemaGenerator.d.ts +0 -68
  92. package/build/src/amf/ApiMonacoSchemaGenerator.d.ts.map +0 -1
  93. package/build/src/amf/ApiMonacoSchemaGenerator.js +0 -248
  94. package/build/src/amf/ApiMonacoSchemaGenerator.js.map +0 -1
  95. package/build/src/amf/ApiSchemaGenerator.d.ts +0 -56
  96. package/build/src/amf/ApiSchemaGenerator.d.ts.map +0 -1
  97. package/build/src/amf/ApiSchemaGenerator.js +0 -94
  98. package/build/src/amf/ApiSchemaGenerator.js.map +0 -1
  99. package/build/src/amf/ApiSchemaValues.d.ts +0 -111
  100. package/build/src/amf/ApiSchemaValues.d.ts.map +0 -1
  101. package/build/src/amf/ApiSchemaValues.js +0 -463
  102. package/build/src/amf/ApiSchemaValues.js.map +0 -1
  103. package/build/src/amf/DataValueGenerator.d.ts.map +0 -1
  104. package/build/src/amf/DataValueGenerator.js.map +0 -1
  105. package/build/src/amf/Parsing.d.ts +0 -48
  106. package/build/src/amf/Parsing.d.ts.map +0 -1
  107. package/build/src/amf/Parsing.js +0 -2
  108. package/build/src/amf/Parsing.js.map +0 -1
  109. package/build/src/amf/Utils.d.ts +0 -37
  110. package/build/src/amf/Utils.d.ts.map +0 -1
  111. package/build/src/amf/Utils.js +0 -169
  112. package/build/src/amf/Utils.js.map +0 -1
  113. package/build/src/amf/data-node/DataNodeBase.d.ts +0 -34
  114. package/build/src/amf/data-node/DataNodeBase.d.ts.map +0 -1
  115. package/build/src/amf/data-node/DataNodeBase.js +0 -77
  116. package/build/src/amf/data-node/DataNodeBase.js.map +0 -1
  117. package/build/src/amf/data-node/JsonDataNodeGenerator.d.ts +0 -15
  118. package/build/src/amf/data-node/JsonDataNodeGenerator.d.ts.map +0 -1
  119. package/build/src/amf/data-node/JsonDataNodeGenerator.js +0 -23
  120. package/build/src/amf/data-node/JsonDataNodeGenerator.js.map +0 -1
  121. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.d.ts +0 -14
  122. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.d.ts.map +0 -1
  123. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.js +0 -48
  124. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.js.map +0 -1
  125. package/build/src/amf/data-node/XmlDataNodeGenerator.d.ts +0 -22
  126. package/build/src/amf/data-node/XmlDataNodeGenerator.d.ts.map +0 -1
  127. package/build/src/amf/data-node/XmlDataNodeGenerator.js +0 -34
  128. package/build/src/amf/data-node/XmlDataNodeGenerator.js.map +0 -1
  129. package/build/src/amf/definitions/Amf.d.ts +0 -363
  130. package/build/src/amf/definitions/Amf.d.ts.map +0 -1
  131. package/build/src/amf/definitions/Amf.js +0 -3
  132. package/build/src/amf/definitions/Amf.js.map +0 -1
  133. package/build/src/amf/definitions/Api.d.ts +0 -383
  134. package/build/src/amf/definitions/Api.d.ts.map +0 -1
  135. package/build/src/amf/definitions/Api.js +0 -2
  136. package/build/src/amf/definitions/Api.js.map +0 -1
  137. package/build/src/amf/definitions/Base.d.ts +0 -12
  138. package/build/src/amf/definitions/Base.d.ts.map +0 -1
  139. package/build/src/amf/definitions/Base.js +0 -2
  140. package/build/src/amf/definitions/Base.js.map +0 -1
  141. package/build/src/amf/definitions/Namespace.d.ts +0 -327
  142. package/build/src/amf/definitions/Namespace.d.ts.map +0 -1
  143. package/build/src/amf/definitions/Namespace.js +0 -346
  144. package/build/src/amf/definitions/Namespace.js.map +0 -1
  145. package/build/src/amf/definitions/Shapes.d.ts +0 -312
  146. package/build/src/amf/definitions/Shapes.d.ts.map +0 -1
  147. package/build/src/amf/definitions/Shapes.js +0 -87
  148. package/build/src/amf/definitions/Shapes.js.map +0 -1
  149. package/build/src/amf/models/AmfDataNode.d.ts +0 -67
  150. package/build/src/amf/models/AmfDataNode.d.ts.map +0 -1
  151. package/build/src/amf/models/AmfDataNode.js +0 -192
  152. package/build/src/amf/models/AmfDataNode.js.map +0 -1
  153. package/build/src/amf/shape/ShapeBase.d.ts +0 -74
  154. package/build/src/amf/shape/ShapeBase.d.ts.map +0 -1
  155. package/build/src/amf/shape/ShapeBase.js +0 -93
  156. package/build/src/amf/shape/ShapeBase.js.map +0 -1
  157. package/build/src/amf/shape/ShapeJsonSchemaGenerator.d.ts +0 -47
  158. package/build/src/amf/shape/ShapeJsonSchemaGenerator.d.ts.map +0 -1
  159. package/build/src/amf/shape/ShapeJsonSchemaGenerator.js +0 -420
  160. package/build/src/amf/shape/ShapeJsonSchemaGenerator.js.map +0 -1
  161. package/build/src/amf/shape/ShapeXmlSchemaGenerator.d.ts +0 -85
  162. package/build/src/amf/shape/ShapeXmlSchemaGenerator.d.ts.map +0 -1
  163. package/build/src/amf/shape/ShapeXmlSchemaGenerator.js +0 -852
  164. package/build/src/amf/shape/ShapeXmlSchemaGenerator.js.map +0 -1
  165. package/build/src/events/amf/AmfEventTypes.d.ts +0 -7
  166. package/build/src/events/amf/AmfEventTypes.d.ts.map +0 -1
  167. package/build/src/events/amf/AmfEventTypes.js +0 -7
  168. package/build/src/events/amf/AmfEventTypes.js.map +0 -1
  169. package/build/src/events/amf/AmfEvents.d.ts +0 -34
  170. package/build/src/events/amf/AmfEvents.d.ts.map +0 -1
  171. package/build/src/events/amf/AmfEvents.js +0 -63
  172. package/build/src/events/amf/AmfEvents.js.map +0 -1
  173. package/build/src/mocking/RandExp.d.ts +0 -55
  174. package/build/src/mocking/RandExp.d.ts.map +0 -1
  175. package/build/src/mocking/RandExp.js +0 -302
  176. package/build/src/mocking/RandExp.js.map +0 -1
  177. package/build/src/mocking/lib/ret.d.ts +0 -16
  178. package/build/src/mocking/lib/ret.d.ts.map +0 -1
  179. package/build/src/mocking/lib/ret.js +0 -284
  180. package/build/src/mocking/lib/ret.js.map +0 -1
  181. package/data/apis/APIC-187/APIC-187.raml +0 -21
  182. package/data/apis/APIC-187/dataType.raml +0 -132
  183. package/data/apis/APIC-187/example.raml +0 -84
  184. package/data/apis/APIC-188/APIC-188.raml +0 -21
  185. package/data/apis/APIC-188/dataType.raml +0 -132
  186. package/data/apis/APIC-188/example.raml +0 -84
  187. package/data/apis/APIC-233/APIC-233.raml +0 -15
  188. package/data/apis/APIC-391/APIC-391.raml +0 -44
  189. package/data/apis/APIC-391/examples/post-body-request-example.raml +0 -7
  190. package/data/apis/APIC-483/APIC-483.raml +0 -16
  191. package/data/apis/APIC-483/example/list-of-bank-succ.json +0 -32
  192. package/data/apis/APIC-483/schema/response-retrieve-list-bank.json +0 -68
  193. package/data/apis/APIC-487/APIC-487.raml +0 -36
  194. package/data/apis/APIC-655/APIC-655.raml +0 -44
  195. package/data/apis/APIC-655/delivery.json +0 -12
  196. package/data/apis/APIC-689/APIC-689.raml +0 -20
  197. package/data/apis/APIC-690/APIC-690.raml +0 -17
  198. package/data/apis/APIC-690/datatypes/Address.raml +0 -10
  199. package/data/apis/APIC-690/datatypes/Customer.raml +0 -17
  200. package/data/apis/APIC-690/examples/CustomerExample2.raml +0 -17
  201. package/data/apis/APIC-690/examples/CustomersExample.raml +0 -34
  202. package/data/apis/SE-10469/Purchase-Order-oagis-id-dd32f9c6c01048a19e15c423c9c741ae.json +0 -1383
  203. package/data/apis/SE-10469/SE-10469.raml +0 -11
  204. package/data/apis/SE-13092/Examples/PersonExample.raml +0 -7
  205. package/data/apis/SE-13092/SE-13092.raml +0 -37
  206. package/data/apis/SE-13092/datatypes/Address.raml +0 -5
  207. package/data/apis/SE-13092/datatypes/InlineType.raml +0 -5
  208. package/data/apis/SE-13092/datatypes/Person.raml +0 -15
  209. package/data/apis/SE-22063/SE-22063.raml +0 -14
  210. package/data/apis/SE-22063/stock.raml +0 -41
  211. package/data/apis/amf-helper-api/amf-helper-api.raml +0 -1024
  212. package/data/apis/amf-helper-api/examples/comment-example.json +0 -42
  213. package/data/apis/amf-helper-api/examples/commentCreateRequest-example.json +0 -7
  214. package/data/apis/amf-helper-api/examples/commentList-example.json +0 -48
  215. package/data/apis/amf-helper-api/examples/person.json +0 -14
  216. package/data/apis/amf-helper-api/examples/person.raml +0 -13
  217. package/data/apis/amf-helper-api/examples/person.xml +0 -14
  218. package/data/apis/amf-helper-api/libraries/comment-lib.raml +0 -143
  219. package/data/apis/amf-helper-api/library.raml +0 -7
  220. package/data/apis/amf-helper-api/schemas/person.json +0 -104
  221. package/data/apis/amf-helper-api/schemas/person.xsd +0 -26
  222. package/data/apis/amf-helper-api/traits/file.raml +0 -33
  223. package/data/apis/amf-helper-api/traits/pagination.raml +0 -80
  224. package/data/apis/amf-helper-api/traits/results.raml +0 -19
  225. package/data/apis/amf-helper-api/traits/visibility.raml +0 -14
  226. package/data/apis/amf-helper-api/types/app-person.raml +0 -101
  227. package/data/apis/amf-helper-api/types/dimensions.raml +0 -24
  228. package/data/apis/amf-helper-api/types/external-type.raml +0 -7
  229. package/data/apis/amf-helper-api/types/image.raml +0 -23
  230. package/data/apis/amf-helper-api/types/product.raml +0 -52
  231. package/data/apis/amf-helper-api/types/resource.raml +0 -11
  232. package/data/apis/amf-helper-api/types/standard-request.raml +0 -50
  233. package/data/apis/amf-helper-api/types/user.raml +0 -37
  234. package/data/apis/arc-demo-api/arc-demo-api.raml +0 -468
  235. package/data/apis/arc-demo-api/examples/e400.xml +0 -4
  236. package/data/apis/arc-demo-api/examples/e401.xml +0 -4
  237. package/data/apis/arc-demo-api/examples/e404.xml +0 -4
  238. package/data/apis/arc-demo-api/examples/image.xml +0 -5
  239. package/data/apis/arc-demo-api/examples/messages-example.json +0 -22
  240. package/data/apis/arc-demo-api/examples/messages-sent-example.json +0 -15
  241. package/data/apis/arc-demo-api/examples/person.json +0 -14
  242. package/data/apis/arc-demo-api/examples/person.url.encoded +0 -1
  243. package/data/apis/arc-demo-api/examples/person.xml +0 -14
  244. package/data/apis/arc-demo-api/examples/product.xml +0 -9
  245. package/data/apis/arc-demo-api/library.raml +0 -36
  246. package/data/apis/arc-demo-api/resourceTypes/app-person.raml +0 -49
  247. package/data/apis/arc-demo-api/resourceTypes/example-types.raml +0 -45
  248. package/data/apis/arc-demo-api/resourceTypes/image.raml +0 -23
  249. package/data/apis/arc-demo-api/resourceTypes/message-sent-type.raml +0 -23
  250. package/data/apis/arc-demo-api/resourceTypes/message-type.raml +0 -33
  251. package/data/apis/arc-demo-api/resourceTypes/product.raml +0 -52
  252. package/data/apis/arc-demo-api/resourceTypes/resource.raml +0 -11
  253. package/data/apis/arc-demo-api/schemas/error-response.xsd +0 -11
  254. package/data/apis/arc-demo-api/schemas/image.xsd +0 -11
  255. package/data/apis/arc-demo-api/schemas/person.json +0 -104
  256. package/data/apis/arc-demo-api/schemas/person.xsd +0 -26
  257. package/data/apis/arc-demo-api/schemas/product.xsd +0 -17
  258. package/data/apis/arc-demo-api/securitySchemes/basic.raml +0 -5
  259. package/data/apis/arc-demo-api/securitySchemes/oauth_2_0.raml +0 -29
  260. package/data/apis/arc-demo-api/securitySchemes/x-custom.raml +0 -26
  261. package/data/apis/arc-demo-api/traits/adminable.raml +0 -23
  262. package/data/apis/arc-demo-api/traits/pagination.raml +0 -83
  263. package/data/apis/arc-demo-api/traits/rate-limited.raml +0 -9
  264. package/data/apis/async-api/async-api.yaml +0 -96
  265. package/data/apis/example-generator-api/contact-email-example.raml +0 -6
  266. package/data/apis/example-generator-api/contact-example.raml +0 -5
  267. package/data/apis/example-generator-api/contact-fax-example.raml +0 -5
  268. package/data/apis/example-generator-api/contact-website-example.raml +0 -2
  269. package/data/apis/example-generator-api/example-1.raml +0 -6
  270. package/data/apis/example-generator-api/example-2.raml +0 -9
  271. package/data/apis/example-generator-api/example-3.raml +0 -4
  272. package/data/apis/example-generator-api/example-4.raml +0 -2
  273. package/data/apis/example-generator-api/example-5.raml +0 -4
  274. package/data/apis/example-generator-api/example-6.raml +0 -2
  275. package/data/apis/example-generator-api/example-7.raml +0 -5
  276. package/data/apis/example-generator-api/example-generator-api.raml +0 -423
  277. package/data/apis/example-generator-api/example.json +0 -14
  278. package/data/apis/example-generator-api/example.xml +0 -15
  279. package/data/apis/example-generator-api/example.xsd +0 -26
  280. package/data/apis/example-generator-api/examples/employee.raml +0 -7
  281. package/data/apis/example-generator-api/examples/employees.raml +0 -7
  282. package/data/apis/example-generator-api/linked-named-example.raml +0 -21
  283. package/data/apis/example-generator-api/named-example-with-link.raml +0 -5
  284. package/data/apis/example-generator-api/named-example.raml +0 -9
  285. package/data/apis/example-generator-api/user-json-example.raml +0 -17
  286. package/data/apis/example-generator-api/user-raml-example.raml +0 -37
  287. package/data/apis/example-generator-api/user.json +0 -8
  288. package/data/apis/example-generator-api/user.raml +0 -18
  289. package/data/apis/example-generator-api/users-json-example.raml +0 -17
  290. package/data/apis/example-generator-api/users-raml-example.raml +0 -32
  291. package/data/apis/example-generator-api/users.json +0 -8
  292. package/data/apis/expanded-api/expanded-api.raml +0 -8
  293. package/data/apis/flattened-api/flattened-api.raml +0 -8
  294. package/data/apis/multiple-servers/multiple-servers.yaml +0 -112
  295. package/data/apis/oas-3-api/oas-3-api.yaml +0 -356
  296. package/data/apis/oas-date/oas-date.yaml +0 -28
  297. package/data/apis/oas-types/oas-types.yaml +0 -159
  298. package/data/apis/oas-unions/oas-unions.yaml +0 -75
  299. package/data/apis/petstore/petstore.yaml +0 -954
  300. package/data/apis/raml-date/raml-date.raml +0 -28
  301. package/data/apis/recursive/recursive.raml +0 -14
  302. package/data/apis/schema-api/examples/person.json +0 -14
  303. package/data/apis/schema-api/examples/person.raml +0 -14
  304. package/data/apis/schema-api/examples/person.url.encoded +0 -1
  305. package/data/apis/schema-api/examples/person.xml +0 -14
  306. package/data/apis/schema-api/library/demo-types.raml +0 -43
  307. package/data/apis/schema-api/schema-api.raml +0 -656
  308. package/data/apis/schema-api/schemas/person.json +0 -104
  309. package/data/apis/schema-api/schemas/person.xsd +0 -26
  310. package/data/apis/schema-api/types/DemoPerson.raml +0 -67
  311. package/data/apis/secured-api/oauth-2-custom-settings.raml +0 -143
  312. package/data/apis/secured-api/oauth2-header-delivery.raml +0 -13
  313. package/data/apis/secured-api/oauth2-no-delivery.raml +0 -8
  314. package/data/apis/secured-api/oauth2-no-grants.raml +0 -12
  315. package/data/apis/secured-api/oauth2-pkce.raml +0 -13
  316. package/data/apis/secured-api/oauth2-query-delivery.raml +0 -13
  317. package/data/apis/secured-api/oauth_1_0.raml +0 -8
  318. package/data/apis/secured-api/oauth_1_0_no-settings.raml +0 -3
  319. package/data/apis/secured-api/oauth_1_0_no-signature.raml +0 -7
  320. package/data/apis/secured-api/oauth_1_0_signature.raml +0 -8
  321. package/data/apis/secured-api/passthrough-querystring.raml +0 -16
  322. package/data/apis/secured-api/passthrough.raml +0 -24
  323. package/data/apis/secured-api/secured-api.raml +0 -231
  324. package/data/apis/secured-api/x-custom.raml +0 -33
  325. package/data/apis/secured-api/x-other.raml +0 -29
  326. package/data/apis/secured-api/x-query-string.raml +0 -16
  327. package/data/apis/tracked-examples/datatypes/employee.raml +0 -5
  328. package/data/apis/tracked-examples/examples/employee.raml +0 -4
  329. package/data/apis/tracked-examples/examples/employees.raml +0 -8
  330. package/data/apis/tracked-examples/tracked-to-linked.raml +0 -28
  331. package/data/model.js +0 -129
  332. package/data/models/APIC-187.json +0 -11416
  333. package/data/models/APIC-188.json +0 -11416
  334. package/data/models/APIC-233.json +0 -539
  335. package/data/models/APIC-391.json +0 -1903
  336. package/data/models/APIC-483.json +0 -3110
  337. package/data/models/APIC-487.json +0 -1225
  338. package/data/models/APIC-655.json +0 -3145
  339. package/data/models/APIC-689.json +0 -797
  340. package/data/models/APIC-690.json +0 -5992
  341. package/data/models/SE-10469.json +0 -22898
  342. package/data/models/SE-13092.json +0 -2769
  343. package/data/models/SE-22063.json +0 -2314
  344. package/data/models/amf-helper-api.json +0 -84457
  345. package/data/models/arc-demo-api.json +0 -52041
  346. package/data/models/async-api.json +0 -3227
  347. package/data/models/example-generator-api.json +0 -45209
  348. package/data/models/expanded-api.json +0 -251
  349. package/data/models/flattened-api.json +0 -251
  350. package/data/models/multiple-servers.json +0 -2769
  351. package/data/models/oas-3-api.json +0 -10590
  352. package/data/models/oas-date.json +0 -637
  353. package/data/models/oas-types.json +0 -5352
  354. package/data/models/oas-unions.json +0 -1935
  355. package/data/models/petstore.json +0 -27712
  356. package/data/models/raml-date.json +0 -1114
  357. package/data/models/recursive.json +0 -610
  358. package/data/models/schema-api.json +0 -35527
  359. package/data/models/secured-api.json +0 -21071
  360. package/data/models/tracked-to-linked.json +0 -1914
  361. package/src/amf/AmfMixin.ts +0 -1726
  362. package/src/amf/AmfSerializer.ts +0 -2358
  363. package/src/amf/AmfTypes.ts +0 -147
  364. package/src/amf/ApiExampleGenerator.ts +0 -122
  365. package/src/amf/ApiMonacoSchemaGenerator.ts +0 -332
  366. package/src/amf/ApiSchemaGenerator.ts +0 -115
  367. package/src/amf/ApiSchemaValues.ts +0 -509
  368. package/src/amf/Parsing.ts +0 -50
  369. package/src/amf/Utils.ts +0 -172
  370. package/src/amf/data-node/DataNodeBase.ts +0 -83
  371. package/src/amf/data-node/JsonDataNodeGenerator.ts +0 -24
  372. package/src/amf/data-node/README.md +0 -3
  373. package/src/amf/data-node/UrlEncodedDataNodeGenerator.ts +0 -49
  374. package/src/amf/data-node/XmlDataNodeGenerator.ts +0 -46
  375. package/src/amf/definitions/Amf.ts +0 -440
  376. package/src/amf/definitions/Api.ts +0 -445
  377. package/src/amf/definitions/Base.ts +0 -13
  378. package/src/amf/definitions/Namespace.ts +0 -357
  379. package/src/amf/definitions/Shapes.ts +0 -438
  380. package/src/amf/models/AmfDataNode.ts +0 -210
  381. package/src/amf/shape/README.md +0 -4
  382. package/src/amf/shape/ShapeBase.ts +0 -174
  383. package/src/amf/shape/ShapeJsonSchemaGenerator.ts +0 -457
  384. package/src/amf/shape/ShapeXmlSchemaGenerator.ts +0 -933
  385. package/src/events/amf/AmfEventTypes.ts +0 -6
  386. package/src/events/amf/AmfEvents.ts +0 -78
  387. package/src/mocking/RandExp.ts +0 -335
  388. package/src/mocking/lib/ret.ts +0 -279
  389. package/tests/unit/amf/APIC-187.spec.ts +0 -41
  390. package/tests/unit/amf/APIC-188.spec.ts +0 -30
  391. package/tests/unit/amf/APIC-233.spec.ts +0 -32
  392. package/tests/unit/amf/APIC-391.spec.ts +0 -39
  393. package/tests/unit/amf/APIC-487.spec.ts +0 -44
  394. package/tests/unit/amf/APIC-655.spec.ts +0 -41
  395. package/tests/unit/amf/APIC-689.spec.ts +0 -28
  396. package/tests/unit/amf/APIC-690.spec.ts +0 -93
  397. package/tests/unit/amf/AmfLoader.ts +0 -538
  398. package/tests/unit/amf/AmfMixin.spec.ts +0 -1707
  399. package/tests/unit/amf/ApiExampleGenerator.spec.ts +0 -250
  400. package/tests/unit/amf/ApiMonacoSchemaGenerator.spec.ts +0 -183
  401. package/tests/unit/amf/ApiSchemaValues.spec.ts +0 -602
  402. package/tests/unit/amf/Namepsace.spec.ts +0 -494
  403. package/tests/unit/amf/SE-10469.spec.ts +0 -35
  404. package/tests/unit/amf/SE-13092.spec.ts +0 -64
  405. package/tests/unit/amf/SE-22063.spec.ts +0 -45
  406. package/tests/unit/amf/raml-examples.spec.ts +0 -43
  407. package/tests/unit/amf/schema_gen_array.spec.ts +0 -199
  408. package/tests/unit/amf/schema_gen_oas.spec.ts +0 -140
  409. package/tests/unit/amf/schema_gen_object.spec.ts +0 -279
  410. package/tests/unit/amf/schema_gen_scalar.spec.ts +0 -143
  411. package/tests/unit/amf/schema_gen_union.spec.ts +0 -401
  412. package/tests/unit/amf/schema_gen_unknown.spec.ts +0 -42
  413. package/tests/unit/amf/schema_gen_xml.spec.ts +0 -726
  414. package/tests/unit/amf/serializer/APIC-483.spec.ts +0 -36
  415. package/tests/unit/amf/serializer/Anotations.spec.ts +0 -50
  416. package/tests/unit/amf/serializer/Api.spec.ts +0 -210
  417. package/tests/unit/amf/serializer/Documentation.spec.ts +0 -52
  418. package/tests/unit/amf/serializer/Endpoints.spec.ts +0 -172
  419. package/tests/unit/amf/serializer/Operations.spec.ts +0 -330
  420. package/tests/unit/amf/serializer/Parameters.spec.ts +0 -149
  421. package/tests/unit/amf/serializer/PayloadExamples.spec.ts +0 -152
  422. package/tests/unit/amf/serializer/Security.spec.ts +0 -626
  423. package/tests/unit/amf/serializer/Server.spec.ts +0 -78
  424. package/tests/unit/amf/serializer/Shapes.spec.ts +0 -304
  425. package/tests/unit/amf/serializer/SourceMaps.spec.ts +0 -52
  426. package/tests/unit/amf/shapes/ShapeXmlSchemaGenerator.spec.ts +0 -28
  427. package/tests/unit/amf/tracked-to-linked.spec.ts +0 -90
  428. package/tests/unit/amf/xml-data-processing.spec.ts +0 -217
  429. package/tests/unit/events/amf.spec.ts +0 -151
@@ -1,174 +0,0 @@
1
- import { Time } from '@pawel-up/data-mock/Time.js'
2
- import { AmfNamespace as ns } from '../definitions/Namespace.js'
3
- import { ApiSchemaValues } from '../ApiSchemaValues.js'
4
- import { JsonDataNodeGenerator } from '../data-node/JsonDataNodeGenerator.js'
5
- import {
6
- IApiAnyShape,
7
- IApiArrayShape,
8
- IApiDataExample,
9
- IApiFileShape,
10
- IApiNodeShape,
11
- IApiPropertyShape,
12
- IApiScalarNode,
13
- IApiScalarShape,
14
- IApiSchemaShape,
15
- IShapeUnion,
16
- IApiTupleShape,
17
- IApiUnionShape,
18
- } from '../definitions/Shapes.js'
19
-
20
- export interface IShapeRenderOptions {
21
- /**
22
- * All selected unions in the current view.
23
- * When the processor encounter an union it checks this array
24
- * to pick the selected union.
25
- * When the selected union cannot be determined it picks the first union.
26
- */
27
- selectedUnions?: string[]
28
- /**
29
- * Whether to include optional fields into the schema.
30
- * @default false
31
- */
32
- renderOptional?: boolean
33
- /**
34
- * When set it uses the data mocking library to generate the values
35
- * when examples and default are not set.
36
- */
37
- renderMocked?: boolean
38
- /**
39
- * The library **always** uses default values in the schema.
40
- * When a default value is not set by default it inserts an empty value for
41
- * the given data type ('', false, null, random date). When this is set
42
- * it includes examples in the generated value.
43
- */
44
- renderExamples?: boolean
45
- }
46
-
47
- /**
48
- * A base class for generators that generates a schema from AMF's shape definition.
49
- */
50
- export abstract class ShapeBase {
51
- opts: Readonly<IShapeRenderOptions>
52
- time = new Time()
53
-
54
- constructor(opts: IShapeRenderOptions = {}) {
55
- this.opts = Object.freeze({ ...opts })
56
- }
57
-
58
- protected _scalarValue(schema: IApiScalarShape): string | number | boolean | null | undefined {
59
- const { defaultValue, examples, values, inherits, dataType } = schema
60
- // check examples
61
- if (this.opts.renderExamples && examples && examples.length) {
62
- const example = examples.find((item) => !!item.structuredValue)
63
- const value = this._exampleToObject(example)
64
- if (typeof value !== 'undefined') {
65
- return ApiSchemaValues.readTypedValue(value, dataType)
66
- }
67
- }
68
-
69
- // check the default value
70
- if (defaultValue) {
71
- const gen = new JsonDataNodeGenerator()
72
- const processed = gen.processNode(defaultValue)
73
- // return ApiSchemaValues.readTypedValue(processed, dataType);
74
- return processed as string | number | boolean | null | undefined
75
- }
76
- // check enum values
77
- if (values && values.length) {
78
- const typed = values[0] as IApiScalarNode
79
- if (typed.value !== undefined) {
80
- return ApiSchemaValues.readTypedValue(typed.value, dataType)
81
- }
82
- }
83
- // check parents
84
- if (Array.isArray(inherits) && inherits.length) {
85
- for (let i = 0, len = inherits.length; i < len; i += 1) {
86
- const result = this._scalarValue(inherits[i] as IApiScalarShape)
87
- if (result !== undefined) {
88
- return result
89
- }
90
- }
91
- }
92
- if (this.opts.renderMocked) {
93
- return ApiSchemaValues.generateMockedValue(schema)
94
- }
95
- // return this[dataTypeToExample](dataType, format);
96
- // create a default value.
97
- return ApiSchemaValues.generateDefaultValue(schema)
98
- }
99
-
100
- /**
101
- * Checks whether the union represents a scalar + nil which is equivalent
102
- * to having scalar that is not required.
103
- *
104
- * See more about nil values in RAML:
105
- * https://github.com/raml-org/raml-spec/blob/master/versions/raml-10/raml-10.md#nil-type
106
- *
107
- * @param union The list of unions in the shape
108
- */
109
- protected _isNotRequiredUnion(union: IShapeUnion[]): boolean {
110
- let scalars = 0
111
- let hasNil = false
112
- union.forEach((i) => {
113
- if (i.types.includes(ns.aml.vocabularies.shapes.NilShape)) {
114
- hasNil = true
115
- } else if (i.types.includes(ns.aml.vocabularies.shapes.ScalarShape)) {
116
- const scalar = i as IApiScalarShape
117
- if (scalar.dataType === ns.w3.xmlSchema.nil) {
118
- hasNil = true
119
- } else {
120
- scalars += 1
121
- }
122
- } else if (i.types.includes(ns.aml.vocabularies.shapes.FileShape)) {
123
- scalars += 1
124
- }
125
- })
126
- if (!hasNil) {
127
- return false
128
- }
129
- // size of union minus the nil union
130
- if (scalars === union.length - 1) {
131
- return true
132
- }
133
- return false
134
- }
135
-
136
- /**
137
- * Generates a schema from AMF's shape.
138
- * @param schema The Shape definition
139
- * @returns The generated example
140
- */
141
- abstract generate(schema: IShapeUnion | IApiPropertyShape<IShapeUnion>): string | number | boolean | null | undefined
142
-
143
- /**
144
- * Serializes generated values into the final mime type related form.
145
- *
146
- * @returns The generated example
147
- */
148
- abstract serialize(value: unknown): string | undefined
149
-
150
- /**
151
- * @param example The example to turn into a JS object
152
- */
153
- protected abstract _exampleToObject(example?: IApiDataExample): unknown
154
-
155
- protected abstract _scalarShapeObject(schema: IApiScalarShape): unknown
156
-
157
- protected abstract _nilShapeObject(schema: IApiScalarShape): unknown
158
-
159
- protected abstract _nodeShapeObject(schema: IApiNodeShape): unknown
160
-
161
- protected abstract _unionShapeObject(schema: IApiUnionShape): unknown
162
-
163
- protected abstract _fileShapeObject(schema?: IApiFileShape): unknown
164
-
165
- protected abstract _schemaShapeObject(schema?: IApiSchemaShape): unknown
166
-
167
- protected abstract _arrayShapeObject(schema: IApiArrayShape): unknown
168
-
169
- protected abstract _tupleShapeObject(schema?: IApiTupleShape): unknown
170
-
171
- protected abstract _anyShapeObject(schema: IApiAnyShape): unknown
172
-
173
- protected abstract _propertyShapeObject(schema: IApiPropertyShape): unknown
174
- }
@@ -1,457 +0,0 @@
1
- import { AmfNamespace as ns } from '../definitions/Namespace.js'
2
- import { ShapeBase } from './ShapeBase.js'
3
- import { JsonDataNodeGenerator } from '../data-node/JsonDataNodeGenerator.js'
4
- import {
5
- IApiAnyShape,
6
- IApiArrayShape,
7
- IApiDataExample,
8
- IApiDataNodeUnion,
9
- IApiNodeShape,
10
- IApiPropertyShape,
11
- IApiScalarShape,
12
- IShapeUnion,
13
- IApiTupleShape,
14
- IApiUnionShape,
15
- } from '../definitions/Shapes.js'
16
-
17
- export class ShapeJsonSchemaGenerator extends ShapeBase {
18
- /**
19
- * Generates a schema from AMF's shape.
20
- *
21
- * @param schema The Shape definition
22
- */
23
- generate(schema: IShapeUnion | IApiPropertyShape<IShapeUnion>): string | number | boolean | null | undefined {
24
- let result: string | number | boolean | object | object[] | null | undefined
25
- if (schema.types.includes(ns.w3.shacl.PropertyShape)) {
26
- result = this._propertyShapeObject(schema as IApiPropertyShape<IShapeUnion>)
27
- } else {
28
- result = this.toObject(schema as IShapeUnion)
29
- }
30
- if (result !== null && typeof result === 'object') {
31
- return this.serialize(result)
32
- }
33
- return result
34
- }
35
-
36
- /**
37
- * Processes the Shape definition and returns a JavaScript object or array.
38
- */
39
- toObject(schema: IShapeUnion): object | object[] | string | number | boolean | null | undefined {
40
- const { types } = schema
41
- if (types.includes(ns.aml.vocabularies.shapes.ScalarShape)) {
42
- return this._scalarShapeObject(schema as IApiScalarShape)
43
- }
44
- if (types.includes(ns.w3.shacl.NodeShape)) {
45
- return this._nodeShapeObject(schema as IApiNodeShape)
46
- }
47
- if (types.includes(ns.aml.vocabularies.shapes.UnionShape)) {
48
- return this._unionShapeObject(schema as IApiUnionShape)
49
- }
50
- if (types.includes(ns.aml.vocabularies.shapes.FileShape)) {
51
- return this._fileShapeObject()
52
- }
53
- if (types.includes(ns.aml.vocabularies.shapes.SchemaShape)) {
54
- return this._schemaShapeObject()
55
- }
56
- if (types.includes(ns.aml.vocabularies.shapes.TupleShape)) {
57
- return this._tupleShapeObject(schema as IApiTupleShape)
58
- }
59
- if (
60
- types.includes(ns.aml.vocabularies.shapes.ArrayShape) ||
61
- types.includes(ns.aml.vocabularies.shapes.MatrixShape)
62
- ) {
63
- return this._arrayShapeObject(schema as IApiArrayShape)
64
- }
65
- return this._anyShapeObject(schema as IApiAnyShape)
66
- }
67
-
68
- /**
69
- * Serializes generated JS value according to the mime type.
70
- */
71
- serialize(value: object | object[]): string {
72
- return JSON.stringify(value, null, 2)
73
- }
74
-
75
- protected _scalarShapeObject(schema: IApiScalarShape): string | number | boolean | null | undefined {
76
- return this._scalarValue(schema)
77
- }
78
-
79
- protected _nilShapeObject(): undefined {
80
- return undefined
81
- }
82
-
83
- protected _nodeShapeObject(schema: IApiNodeShape): object {
84
- const { inherits } = schema
85
- let { examples = [] } = schema
86
- if (Array.isArray(inherits) && inherits.length) {
87
- inherits.forEach((parent) => {
88
- const anyParent = parent as IApiAnyShape
89
- if (Array.isArray(anyParent.examples) && anyParent.examples.length) {
90
- examples = examples.concat(anyParent.examples)
91
- }
92
- })
93
- }
94
- if (this.opts.renderExamples && examples.length) {
95
- const example = examples.find((item) => !!item.structuredValue)
96
- const value = this._exampleToObject(example)
97
- if (value !== undefined) {
98
- return value as object | object[]
99
- }
100
- }
101
- let result: Record<string, unknown> = {}
102
- const { properties } = schema
103
- if (Array.isArray(inherits) && inherits.length) {
104
- inherits.forEach((s) => {
105
- const part = this.toObject(s)
106
- if (typeof part === 'object') {
107
- result = { ...result, ...part }
108
- }
109
- })
110
- }
111
- properties.forEach((property) => {
112
- const { name } = property
113
- const value = this._propertyShapeObject(property)
114
- if (typeof value !== 'undefined' && name) {
115
- result[name] = value
116
- }
117
- })
118
- return result
119
- }
120
-
121
- protected _unionShapeObject(
122
- schema: IApiUnionShape
123
- ): object | object[] | string | number | boolean | null | undefined {
124
- if (schema.and && schema.and.length) {
125
- return this._allOfUnion(schema)
126
- }
127
- if (schema.xone && schema.xone.length) {
128
- return this._oneOfUnion(schema)
129
- }
130
- // the default
131
- return this._anyOfUnion(schema)
132
- }
133
-
134
- protected _anyOfUnion(schema: IApiUnionShape): object | object[] | string | number | boolean | null | undefined {
135
- let { anyOf = [], examples = [] } = schema
136
- if (Array.isArray(schema.inherits) && schema.inherits) {
137
- schema.inherits.forEach((parent) => {
138
- const anyParent = parent as IApiAnyShape
139
- if (Array.isArray(anyParent.examples) && anyParent.examples.length) {
140
- examples = examples.concat(anyParent.examples)
141
- }
142
- const typed = parent as IApiUnionShape
143
- if (Array.isArray(typed.anyOf) && typed.anyOf.length) {
144
- anyOf = anyOf.concat(typed.anyOf)
145
- }
146
- })
147
- }
148
- const { opts } = this
149
- if (this._isNotRequiredUnion(anyOf)) {
150
- // This generates schema for required values.
151
- // This implicitly mean that the property is not required therefore the value should
152
- // not be generated.
153
- return undefined
154
- }
155
- if (this.opts.renderExamples) {
156
- const example = examples.find((item) => !!item.structuredValue)
157
- const value = this._exampleToObject(example)
158
- if (value !== undefined) {
159
- return value
160
- }
161
- }
162
- if (schema.defaultValue) {
163
- return this._unionDefaultValue(anyOf, schema.defaultValue)
164
- }
165
- const { selectedUnions } = opts
166
- let renderedItem: IShapeUnion | undefined
167
- if (selectedUnions && selectedUnions.length) {
168
- renderedItem = anyOf.find((item) => selectedUnions.includes(item.id))
169
- } else {
170
- ;[renderedItem] = anyOf
171
- }
172
- if (renderedItem) {
173
- return this.toObject(renderedItem)
174
- }
175
- return undefined
176
- }
177
-
178
- protected _oneOfUnion(schema: IApiUnionShape): object | object[] | string | number | boolean | null | undefined {
179
- let { examples = [] } = schema
180
- const { xone = [] } = schema
181
- if (Array.isArray(schema.inherits) && schema.inherits) {
182
- schema.inherits.forEach((parent) => {
183
- const anyParent = parent as IApiAnyShape
184
- if (Array.isArray(anyParent.examples) && anyParent.examples.length) {
185
- examples = examples.concat(anyParent.examples)
186
- }
187
- })
188
- }
189
- const { opts } = this
190
- if (this.opts.renderExamples) {
191
- const example = examples.find((item) => !!item.structuredValue)
192
- const value = this._exampleToObject(example)
193
- if (value !== undefined) {
194
- return value
195
- }
196
- }
197
- if (schema.defaultValue) {
198
- return this._unionDefaultValue(xone, schema.defaultValue)
199
- }
200
- const { selectedUnions } = opts
201
- let renderedItem: IShapeUnion | undefined
202
- if (selectedUnions && selectedUnions.length) {
203
- renderedItem = xone.find((item) => selectedUnions.includes(item.id))
204
- } else {
205
- ;[renderedItem] = xone
206
- }
207
- if (renderedItem) {
208
- return this.toObject(renderedItem)
209
- }
210
- return undefined
211
- }
212
-
213
- /**
214
- * Combines all properties from both all shapes in the union
215
- */
216
- protected _allOfUnion(schema: IApiUnionShape): object | object[] | string | number | boolean | null | undefined {
217
- let { examples = [] } = schema
218
- const { and = [] } = schema
219
- if (Array.isArray(schema.inherits) && schema.inherits) {
220
- schema.inherits.forEach((parent) => {
221
- const anyParent = parent as IApiAnyShape
222
- if (Array.isArray(anyParent.examples) && anyParent.examples.length) {
223
- examples = examples.concat(anyParent.examples)
224
- }
225
- })
226
- }
227
- if (this.opts.renderExamples) {
228
- const example = examples.find((item) => !!item.structuredValue)
229
- const value = this._exampleToObject(example)
230
- if (value !== undefined) {
231
- return value
232
- }
233
- }
234
- let result: Record<string, unknown> = {}
235
- and.forEach((item) => {
236
- const props = this.toObject(item)
237
- if (typeof props === 'object') {
238
- result = { ...result, ...props }
239
- }
240
- })
241
- return result
242
- }
243
-
244
- /**
245
- * @param union The list of unions in the shape
246
- * @param defaultValue The definition of a default value.
247
- */
248
- protected _unionDefaultValue(
249
- union: IShapeUnion[],
250
- defaultValue: IApiDataNodeUnion
251
- ): string | number | boolean | null | undefined {
252
- const gen = new JsonDataNodeGenerator()
253
- const result = gen.generate(defaultValue)
254
- let hasNumber = false
255
- let hasBoolean = false
256
- let hasNil = false
257
- union.forEach((i) => {
258
- if (i.types.includes(ns.aml.vocabularies.shapes.NilShape)) {
259
- hasNil = true
260
- }
261
- if (!i.types.includes(ns.aml.vocabularies.shapes.ScalarShape)) {
262
- return
263
- }
264
- const scalar = i as IApiScalarShape
265
- if (!hasBoolean) {
266
- hasBoolean = scalar.dataType === ns.w3.xmlSchema.boolean
267
- }
268
- if (!hasNumber) {
269
- hasNumber = [
270
- ns.w3.xmlSchema.number,
271
- ns.w3.xmlSchema.long,
272
- ns.w3.xmlSchema.integer,
273
- ns.w3.xmlSchema.float,
274
- ns.w3.xmlSchema.double,
275
- ns.aml.vocabularies.shapes.number,
276
- ns.aml.vocabularies.shapes.long,
277
- ns.aml.vocabularies.shapes.integer,
278
- ns.aml.vocabularies.shapes.float,
279
- ns.aml.vocabularies.shapes.double,
280
- ].includes(scalar.dataType as string)
281
- }
282
- if (!hasNil) {
283
- hasNil = scalar.dataType === ns.w3.xmlSchema.nil
284
- }
285
- })
286
- if (hasNumber) {
287
- const parsed = Number(result)
288
- if (!Number.isNaN(parsed)) {
289
- return parsed
290
- }
291
- }
292
- if (hasBoolean) {
293
- if (result === 'true') {
294
- return true
295
- }
296
- if (result === 'false') {
297
- return false
298
- }
299
- }
300
- if (hasNil && (result === 'null' || result === 'nil')) {
301
- return null
302
- }
303
- return result
304
- }
305
-
306
- protected _arrayShapeObject(schema: IApiArrayShape): unknown[] {
307
- const { items } = schema
308
- const defaultValue = schema.defaultValue || (items && items.defaultValue)
309
-
310
- let { examples = [] } = schema
311
- const anyItems = items as IApiAnyShape
312
- if (Array.isArray(anyItems.examples)) {
313
- examples = examples.concat(anyItems.examples)
314
- }
315
- if (this.opts.renderExamples && examples && examples.length) {
316
- const example = examples.find((item) => !!item.structuredValue)
317
- const value = this._exampleToObject(example)
318
- if (Array.isArray(value)) {
319
- return value
320
- }
321
- if (typeof value !== 'undefined') {
322
- return [value]
323
- }
324
- }
325
- if (defaultValue) {
326
- const gen = new JsonDataNodeGenerator()
327
- const arr = gen.processNode(defaultValue)
328
- if (Array.isArray(arr)) {
329
- return arr
330
- } else if (arr) {
331
- return [arr]
332
- }
333
- }
334
- if (items) {
335
- const value = this.toObject(items)
336
- if (typeof value !== 'undefined') {
337
- return [value]
338
- }
339
- }
340
- return []
341
- }
342
-
343
- protected _tupleShapeObject(
344
- schema: IApiTupleShape
345
- ): object | object[] | string | number | boolean | null | undefined {
346
- const { items, examples } = schema
347
- if (this.opts.renderExamples && examples && examples.length) {
348
- const example = examples.find((item) => !!item.structuredValue)
349
- const value = this._exampleToObject(example)
350
- if (typeof value !== 'undefined') {
351
- return [value]
352
- }
353
- }
354
- if (schema.defaultValue) {
355
- const gen = new JsonDataNodeGenerator()
356
- const arr = gen.processNode(schema.defaultValue)
357
- if (Array.isArray(arr)) {
358
- return arr
359
- }
360
- }
361
- if (items.length) {
362
- const result: unknown[] = []
363
- items.forEach((i) => {
364
- const value = this.toObject(i)
365
- if (typeof value !== 'undefined') {
366
- result.push(value)
367
- }
368
- })
369
- return result
370
- }
371
- return []
372
- }
373
-
374
- protected _anyShapeObject(schema: IApiAnyShape): object | object[] | string | number | boolean | null | undefined {
375
- const { and = [], xone = [], or = [] } = schema
376
- if (and.length) {
377
- let result: Record<string, unknown> = {}
378
- and.forEach((item) => {
379
- const props = this.toObject(item)
380
- if (typeof props === 'object') {
381
- result = { ...result, ...props }
382
- }
383
- })
384
- return result
385
- }
386
- if (xone.length) {
387
- const { selectedUnions = [] } = this.opts
388
- let selected = xone.find((i) => selectedUnions.includes(i.id))
389
- if (!selected) {
390
- // select firs available
391
- selected = xone[0]
392
- }
393
- return this.toObject(selected)
394
- }
395
- if (or.length) {
396
- const { selectedUnions = [] } = this.opts
397
- let selected = or.find((i) => selectedUnions.includes(i.id))
398
- if (!selected) {
399
- // select firs available
400
- selected = or[0]
401
- }
402
- return this.toObject(selected)
403
- }
404
- return this._scalarShapeObject(schema)
405
- }
406
-
407
- /**
408
- * @returns The value for the property or undefined when cannot generate the value.
409
- */
410
- protected _propertyShapeObject(
411
- schema: IApiPropertyShape
412
- ): object | object[] | string | number | boolean | null | undefined {
413
- const { minCount = 0 } = schema
414
- if (minCount === 0 && !this.opts.renderOptional) {
415
- return undefined
416
- }
417
- const { range } = schema
418
- if (!range) {
419
- return undefined
420
- }
421
- const { types } = range
422
- if (types.includes(ns.aml.vocabularies.shapes.ScalarShape)) {
423
- // const defaultValue = schema.defaultValue || range.defaultValue;
424
- // if (!this.opts.renderExamples && defaultValue) {
425
- // const gen = new JsonDataNodeGenerator();
426
- // const value = gen.generate(defaultValue);
427
- // if (value) {
428
- // return ApiSchemaValues.readTypedValue(value, /** @type IScalarShape */ (range).dataType);
429
- // }
430
- // }
431
- const anyRange = range as IApiAnyShape
432
- return this._scalarShapeObject(anyRange)
433
- }
434
- return this.toObject(range)
435
- }
436
-
437
- /**
438
- * @param example The example to turn into a JS object
439
- */
440
- protected _exampleToObject(
441
- example?: IApiDataExample
442
- ): object | object[] | string | number | boolean | null | undefined {
443
- if (example && example.structuredValue) {
444
- const jsonGenerator = new JsonDataNodeGenerator()
445
- return jsonGenerator.processNode(example.structuredValue)
446
- }
447
- return undefined
448
- }
449
-
450
- protected _fileShapeObject(): undefined {
451
- return undefined
452
- }
453
-
454
- protected _schemaShapeObject(): undefined {
455
- return undefined
456
- }
457
- }