@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,330 +0,0 @@
1
- import { test } from '@japa/runner'
2
- import { AmfLoader } from '../AmfLoader.js'
3
- import { AmfSerializer } from '../../../../src/amf/AmfSerializer.js'
4
- import type { IAmfDocument } from '../../../../src/amf/definitions/Amf.js'
5
- import type { IApiScalarNode } from '../../../../src/amf/definitions/Shapes.js'
6
- import { AmfNamespace } from '../../../../src/amf/definitions/Namespace.js'
7
-
8
- const loader = new AmfLoader()
9
-
10
- test.group('OAS operations', (group) => {
11
- let api: IAmfDocument
12
- let serializer: AmfSerializer
13
- group.setup(async () => {
14
- api = await loader.getGraph('petstore')
15
- serializer = new AmfSerializer()
16
- serializer.amf = api
17
- })
18
-
19
- test('returns an operation', ({ assert }) => {
20
- const shape = loader.lookupOperation(api, '/pet', 'post')
21
- const result = serializer.operation(shape)
22
- assert.typeOf(result, 'object', 'has the result')
23
- assert.equal(result.id, shape['@id'], 'has the id')
24
- assert.include(result.types, AmfNamespace.aml.vocabularies.apiContract.Operation, 'has the type')
25
- assert.equal(result.method, 'post', 'has the method')
26
- assert.equal(result.name, 'addPet', 'has the name')
27
- assert.equal(result.description, 'Add a new pet to the store', 'has the description')
28
- assert.equal(result.summary, 'Add a new pet to the store', 'has the summary')
29
- assert.equal(result.operationId, 'addPet', 'has the operationId')
30
- assert.isTrue(result.deprecated, 'is deprecated')
31
- assert.deepEqual(result.customDomainProperties, [], 'has no customDomainProperties')
32
- assert.deepEqual(result.callbacks, [], 'has no callbacks')
33
- assert.deepEqual(result.accepts, [], 'has no accepts')
34
- assert.deepEqual(result.schemes, [], 'has no schemes')
35
- assert.deepEqual(result.contentType, [], 'has no contentType')
36
- assert.typeOf(result.sourceMaps, 'object', 'has source maps')
37
- })
38
-
39
- test('adds the responses', ({ assert }) => {
40
- const shape = loader.lookupOperation(api, '/pet', 'post')
41
- const result = serializer.operation(shape)
42
- const { responses } = result
43
- assert.typeOf(responses, 'array', 'has the responses')
44
- assert.lengthOf(responses, 2, 'has all responses')
45
- const [success] = responses
46
- assert.equal(success.statusCode, '200', 'has response definition')
47
- })
48
-
49
- test('adds the request', ({ assert }) => {
50
- const shape = loader.lookupOperation(api, '/pet', 'post')
51
- const result = serializer.operation(shape)
52
- const { request } = result
53
- assert.typeOf(request, 'object', 'has the request')
54
- assert.include(request!.types, AmfNamespace.aml.vocabularies.apiContract.Request, 'has the type')
55
- assert.typeOf(request!.payloads, 'array', 'has the payloads')
56
- assert.isNotEmpty(request!.payloads, 'the payloads is set')
57
- })
58
-
59
- test('adds the response', ({ assert }) => {
60
- const shape = loader.lookupOperation(api, '/pet', 'post')
61
- const result = serializer.operation(shape)
62
- const { responses } = result
63
- assert.typeOf(responses, 'array', 'has the responses')
64
- assert.lengthOf(responses, 2, 'has all responses')
65
- const [r] = responses
66
- assert.typeOf(r, 'object', 'response is an object')
67
- assert.include(r.types, AmfNamespace.aml.vocabularies.apiContract.Response, 'response has the type')
68
- assert.typeOf(r.payloads, 'array', 'has the payloads')
69
- assert.isNotEmpty(r.payloads, 'the payloads is set')
70
- assert.equal(r.name, '200', 'response has the name')
71
- assert.equal(r.statusCode, '200', 'response has the statusCode')
72
- assert.equal(r.description, 'Successful operation', 'response has the description')
73
- })
74
-
75
- test('adds the cookie parameters', ({ assert }) => {
76
- const shape = loader.lookupOperation(api, '/pet/{petId}', 'post')
77
- const result = serializer.operation(shape)
78
- const { request } = result
79
- assert.typeOf(request!.cookieParameters, 'array', 'has the payloads')
80
- assert.isNotEmpty(request!.cookieParameters, 'the payloads is set')
81
- })
82
-
83
- test('adds the query parameters', ({ assert }) => {
84
- const shape = loader.lookupOperation(api, '/pet/{petId}', 'post')
85
- const result = serializer.operation(shape)
86
- const { request } = result
87
- assert.typeOf(request!.queryParameters, 'array', 'has the payloads')
88
- assert.isNotEmpty(request!.queryParameters, 'the payloads is set')
89
- })
90
-
91
- test('adds the URI parameters', ({ assert }) => {
92
- const shape = loader.lookupOperation(api, '/pet/{petId}', 'post')
93
- const result = serializer.operation(shape)
94
- const { request } = result
95
- assert.typeOf(request!.uriParameters, 'array', 'has the payloads')
96
- assert.isNotEmpty(request!.uriParameters, 'the payloads is set')
97
- })
98
-
99
- test('adds the tags', ({ assert }) => {
100
- const shape = loader.lookupOperation(api, '/pet', 'post')
101
- const result = serializer.operation(shape)
102
- const { tags } = result
103
- assert.typeOf(tags, 'array', 'has the tags')
104
- assert.lengthOf(tags, 1, 'has a single tag')
105
- const [tag] = tags
106
- assert.typeOf(tag, 'object', 'has a tag')
107
- assert.equal(tag.name, 'pet', 'tag has name')
108
- assert.include(tag.types, AmfNamespace.aml.vocabularies.apiContract.Tag, 'tag has Tag type')
109
- })
110
-
111
- test('adds the links info', ({ assert }) => {
112
- const shape = loader.lookupOperation(api, '/user', 'post')
113
- const result = serializer.operation(shape)
114
- const { responses } = result
115
- const [response] = responses
116
- const { links } = response
117
- assert.typeOf(links, 'array', 'has the links')
118
- assert.isNotEmpty(links, 'the links is set')
119
- const [l1, l2] = links
120
- assert.include(l1.types, AmfNamespace.aml.vocabularies.apiContract.TemplatedLink, 'l1 has the type')
121
- assert.include(l2.types, AmfNamespace.aml.vocabularies.apiContract.TemplatedLink, 'l2 has the type')
122
- assert.equal(l1.name, 'GetUserByUserName', 'l1 has the name')
123
- assert.equal(l2.name, 'GetUserByRef', 'l2 has the name')
124
- assert.equal(l1.operationId, 'getUserByName', 'l1 has the name')
125
- assert.typeOf(l1.description, 'string', 'l1 has the description')
126
- assert.typeOf(l2.description, 'string', 'l2 has the description')
127
- assert.typeOf(l1.mapping, 'array', 'l1 has the mapping')
128
- assert.typeOf(l2.mapping, 'array', 'l2 has the mapping')
129
- const { mapping } = l1
130
- const [mappingItem] = mapping
131
- assert.include(
132
- mappingItem.types,
133
- AmfNamespace.aml.vocabularies.apiContract.IriTemplateMapping,
134
- 'mapping has the type'
135
- )
136
- assert.equal(mappingItem.templateVariable, 'username', 'mapping has the templateVariable')
137
- assert.equal(mappingItem.linkExpression, '$request.body#/username', 'mapping has the linkExpression')
138
- })
139
- })
140
-
141
- test.group('OAS properties', (group) => {
142
- let api: IAmfDocument
143
- let serializer: AmfSerializer
144
- group.setup(async () => {
145
- api = await loader.getGraph('oas-3-api')
146
- serializer = new AmfSerializer()
147
- serializer.amf = api
148
- })
149
-
150
- test('processes callbacks', ({ assert }) => {
151
- const shape = loader.lookupOperation(api, '/subscribe', 'post')
152
- const result = serializer.operation(shape)
153
- const { callbacks } = result
154
- assert.typeOf(callbacks, 'array', 'has callbacks')
155
- assert.lengthOf(callbacks, 1, 'has single callback')
156
- const [callback] = callbacks
157
- assert.include(callback.types, AmfNamespace.aml.vocabularies.apiContract.Callback, 'has the type')
158
- assert.deepEqual(callback.customDomainProperties, [], 'has the customDomainProperties')
159
- assert.typeOf(callback.sourceMaps, 'object', 'has the sourceMaps')
160
- assert.equal(callback.name, 'myEvent', 'has the name')
161
- assert.equal(callback.expression, '{$request.body#/callbackUrl}', 'has the expression')
162
- assert.typeOf(callback.endpoint, 'object', 'has the endpoint')
163
- const { endpoint } = callback
164
- assert.equal(endpoint!.path, '/{$request.body#/callbackUrl}', 'endpoint has path')
165
- assert.typeOf(endpoint!.operations, 'array', 'endpoint has operations')
166
- assert.lengthOf(endpoint!.operations, 1, 'endpoint has single operation')
167
- })
168
-
169
- test('processes OAS properties', ({ assert }) => {
170
- const shape = loader.lookupOperation(api, '/oas-properties', 'post')
171
- const result = serializer.operation(shape)
172
-
173
- assert.isTrue(result.deprecated, 'has deprecated')
174
- assert.lengthOf(result.servers, 4, 'has servers')
175
- assert.equal(result.operationId, 'myId', 'has operationId')
176
- assert.typeOf(result.documentation, 'object', 'has documentation')
177
- const { documentation } = result
178
- assert.equal(documentation!.url, 'https://docs.com', 'has documentation.url')
179
- assert.equal(documentation!.description, 'A doc', 'has documentation.description')
180
- const { request } = result
181
- assert.typeOf(request, 'object', 'has request')
182
- assert.isFalse(request!.required, 'has request.required')
183
- const { tags } = result
184
- assert.lengthOf(tags, 2, 'has tags')
185
- const [tag] = tags
186
- assert.typeOf(tag, 'object', 'has a tag')
187
- assert.include(tag.types, AmfNamespace.aml.vocabularies.apiContract.Tag, 'tag has the type')
188
- assert.equal(tag.name, 'pets', 'tag has the name')
189
- })
190
- })
191
-
192
- test.group('RAML operations / base tests', (group) => {
193
- let api: IAmfDocument
194
- let serializer: AmfSerializer
195
- group.setup(async () => {
196
- api = await loader.getGraph('amf-helper-api')
197
- serializer = new AmfSerializer()
198
- serializer.amf = api
199
- })
200
-
201
- test('returns an operation', ({ assert }) => {
202
- const shape = loader.lookupOperation(api, '/files', 'get')
203
- const result = serializer.operation(shape)
204
- assert.typeOf(result, 'object', 'has the result')
205
- assert.equal(result.id, shape['@id'], 'has the id')
206
- assert.include(result.types, AmfNamespace.aml.vocabularies.apiContract.Operation, 'has the type')
207
- assert.equal(result.method, 'get', 'has the method')
208
- assert.equal(result.name, 'list', 'has the name')
209
- assert.typeOf(result.description, 'string', 'has the description')
210
- assert.isFalse(result.deprecated, 'is not deprecated')
211
- assert.deepEqual(result.customDomainProperties, [], 'has no customDomainProperties')
212
- assert.deepEqual(result.callbacks, [], 'has no callbacks')
213
- assert.deepEqual(result.responses, [], 'has no responses')
214
- assert.deepEqual(result.servers, [], 'has no servers')
215
- assert.deepEqual(result.accepts, [], 'has no accepts')
216
- assert.deepEqual(result.schemes, [], 'has no schemes')
217
- assert.deepEqual(result.contentType, [], 'has no contentType')
218
- assert.typeOf(result.sourceMaps, 'object', 'has source maps')
219
- })
220
-
221
- test('adds the security info', ({ assert }) => {
222
- const shape = loader.lookupOperation(api, '/files', 'get')
223
- const result = serializer.operation(shape)
224
- const { security } = result
225
- assert.typeOf(security, 'array', 'has the security')
226
- assert.lengthOf(security, 1, 'has the defined security')
227
- assert.include(security[0].types, AmfNamespace.aml.vocabularies.security.SecurityRequirement, 'has the type')
228
- assert.typeOf(security[0].schemes, 'array', 'has the schemes')
229
- assert.typeOf(security[0].schemes[0], 'object', 'has the security scheme')
230
- assert.deepEqual(security[0].customDomainProperties, [], 'has no customDomainProperties')
231
- })
232
-
233
- test('adds the annotations info', ({ assert }) => {
234
- const shape = loader.lookupOperation(api, '/files', 'post')
235
- const result = serializer.operation(shape)
236
- const { customDomainProperties } = result
237
- assert.typeOf(customDomainProperties, 'array', 'has the security')
238
- assert.lengthOf(customDomainProperties, 1, 'has the defined security')
239
- const [cdp] = customDomainProperties
240
- assert.equal(cdp.name, 'deprecated', 'has the name')
241
- const typed = cdp.extension as IApiScalarNode
242
- assert.include(typed.types, AmfNamespace.aml.vocabularies.data.Scalar, 'has the type')
243
- assert.equal(typed.value, 'This operation is deprecated and will be removed.', 'has the value')
244
- assert.equal(typed.dataType, AmfNamespace.w3.xmlSchema.string, 'has the dataType')
245
- })
246
-
247
- test('adds the request with payloads', ({ assert }) => {
248
- const shape = loader.lookupOperation(api, '/files/{fileId}/comments', 'post')
249
- const result = serializer.operation(shape)
250
- const { request } = result
251
- assert.typeOf(request, 'object', 'has the request')
252
- assert.include(request!.types, AmfNamespace.aml.vocabularies.apiContract.Request, 'has the type')
253
- assert.typeOf(request!.payloads, 'array', 'has the payloads')
254
- assert.isNotEmpty(request!.payloads, 'the payloads is set')
255
- })
256
-
257
- test('adds the request with query parameters', ({ assert }) => {
258
- const shape = loader.lookupOperation(api, '/files/{fileId}/comments', 'get')
259
- const result = serializer.operation(shape)
260
- const { request } = result
261
- assert.typeOf(request, 'object', 'has the request')
262
- assert.include(request!.types, AmfNamespace.aml.vocabularies.apiContract.Request, 'has the type')
263
- assert.typeOf(request!.queryParameters, 'array', 'has the queryParameters')
264
- assert.isNotEmpty(request!.queryParameters, 'the queryParameters is set')
265
- })
266
-
267
- test('adds the annotations', ({ assert }) => {
268
- const shape = loader.lookupOperation(api, '/files', 'post')
269
- const result = serializer.operation(shape)
270
- const { customDomainProperties } = result
271
- assert.typeOf(customDomainProperties, 'array', 'has the customDomainProperties')
272
- const [cdp] = customDomainProperties
273
- assert.typeOf(cdp, 'object', 'has the property')
274
- assert.include(cdp.extension.types, AmfNamespace.aml.vocabularies.data.Scalar, 'has the type')
275
- assert.equal(cdp.name, 'deprecated', 'has the extensionName')
276
- })
277
-
278
- test('adds query parameters from a trait', ({ assert }) => {
279
- const shape = loader.lookupOperation(api, '/files/{fileId}/comments', 'get')
280
- const result = serializer.operation(shape)
281
- const { request } = result
282
- const mr = request!.queryParameters.find((p) => p.name === 'maxResults')
283
- assert.typeOf(mr, 'object', 'has a queryParameters')
284
- })
285
- })
286
-
287
- test.group('Traits', (group) => {
288
- let api: IAmfDocument
289
- let serializer: AmfSerializer
290
- group.setup(async () => {
291
- api = await loader.getGraph('arc-demo-api')
292
- serializer = new AmfSerializer()
293
- serializer.amf = api
294
- })
295
-
296
- test('adds the traits into the operation', ({ assert }) => {
297
- const shape = loader.lookupOperation(api, '/people', 'get')
298
- const result = serializer.operation(shape)
299
- assert.typeOf(result, 'object', 'has the result')
300
- const { extends: extensions } = result
301
- assert.typeOf(extensions, 'array', 'has traits array')
302
- assert.lengthOf(extensions, 1, 'has the defined trait')
303
- const [trait] = extensions
304
- assert.equal(trait.name, 'Paginated', 'has the trait name')
305
- })
306
-
307
- test('serializes the variables in a trait', ({ assert }) => {
308
- const shape = loader.lookupOperation(api, '/people', 'get')
309
- const result = serializer.operation(shape)
310
- const { extends: extensions } = result
311
- const [trait] = extensions
312
- const { variables } = trait
313
- assert.typeOf(variables, 'array', 'has traits array')
314
- assert.lengthOf(variables, 1, 'has all variables')
315
- })
316
-
317
- test('serializes the target', ({ assert }) => {
318
- const shape = loader.lookupOperation(api, '/people', 'get')
319
- const result = serializer.operation(shape)
320
- const { extends: extensions } = result
321
- const [trait] = extensions
322
- const { target } = trait
323
- assert.typeOf(target, 'object', 'has the target')
324
- const { name, variables, dataNode } = target!
325
- assert.equal(name, 'Paginated', 'has the trait name')
326
- assert.typeOf(variables, 'array', 'has traits array')
327
- assert.lengthOf(variables, 2, 'has all variables')
328
- assert.typeOf(dataNode, 'object', 'has the dataNode')
329
- })
330
- })
@@ -1,149 +0,0 @@
1
- import { test } from '@japa/runner'
2
- import { AmfLoader } from '../AmfLoader.js'
3
- import { AmfSerializer } from '../../../../src/amf/AmfSerializer.js'
4
- import type { IAmfDocument, IAmfScalarShape } from '../../../../src/amf/definitions/Amf.js'
5
- import type { IApiScalarNode } from '../../../../src/amf/definitions/Shapes.js'
6
- import { AmfNamespace } from '../../../../src/amf/definitions/Namespace.js'
7
-
8
- const loader = new AmfLoader()
9
- test.group('RAML parameters', (group) => {
10
- let api: IAmfDocument
11
- let serializer: AmfSerializer
12
- group.setup(async () => {
13
- api = await loader.getGraph('amf-helper-api')
14
- serializer = new AmfSerializer()
15
- serializer.amf = api
16
- })
17
-
18
- test('has the name and the paramName', ({ assert }) => {
19
- const op = loader.lookupOperation(api, '/parameters', 'get')
20
- const ex = serializer._computeExpects(op)!
21
- const headers = loader.readHeaders(ex)!
22
- const result = serializer.parameter(headers[0]) // Accept
23
- assert.equal(result.name, 'Accept', 'has the name')
24
- assert.equal(result.paramName, 'Accept', 'has the paramName')
25
- })
26
-
27
- test('has the description', ({ assert }) => {
28
- const op = loader.lookupOperation(api, '/parameters', 'get')
29
- const ex = serializer._computeExpects(op)!
30
- const headers = loader.readHeaders(ex)!
31
- const result = serializer.parameter(headers[0]) // Accept
32
- assert.equal(result.description, "Selects the response's media type, when supported.", 'has the name')
33
- })
34
-
35
- test('has the required', ({ assert }) => {
36
- const op = loader.lookupOperation(api, '/parameters', 'get')
37
- const ex = serializer._computeExpects(op)!
38
- const headers = loader.readHeaders(ex)!
39
- const header = headers[1] // x-required
40
- const result = serializer.parameter(header)
41
- assert.isTrue(result.required)
42
- })
43
-
44
- test('has the binding', ({ assert }) => {
45
- const op = loader.lookupOperation(api, '/parameters', 'get')
46
- const ex = serializer._computeExpects(op)!
47
- const headers = loader.readHeaders(ex)!
48
- const header = headers[1] // x-required
49
- const result = serializer.parameter(header)
50
- assert.equal(result.binding, 'header')
51
- })
52
-
53
- test('has the example', ({ assert }) => {
54
- const op = loader.lookupOperation(api, '/parameters', 'get')
55
- const ex = serializer._computeExpects(op)!
56
- const headers = loader.readHeaders(ex)!
57
- const header = headers[3] // If-Modified-Since
58
- const result = serializer.parameter(header)
59
- // the example is passed to the schema.
60
- assert.deepEqual(result.examples, [])
61
- })
62
-
63
- test('has the examples', ({ assert }) => {
64
- const op = loader.lookupOperation(api, '/parameters', 'get')
65
- const ex = serializer._computeExpects(op)!
66
- const qp = loader.readQueryParameters(ex)!
67
- const param = qp[3] // combo
68
- const result = serializer.parameter(param)
69
- // the example is passed to the schema.
70
- assert.deepEqual(result.examples, [])
71
- })
72
- })
73
-
74
- test.group('OAS parameters', (group) => {
75
- let api: IAmfDocument
76
- let serializer: AmfSerializer
77
- group.setup(async () => {
78
- api = await loader.getGraph('petstore')
79
- serializer = new AmfSerializer()
80
- serializer.amf = api
81
- })
82
-
83
- test('has the OAS properties', ({ assert }) => {
84
- const op = loader.lookupOperation(api, '/pet/{petId}', 'post')
85
- const ex = serializer._computeExpects(op)!
86
- const params = loader.readQueryParameters(ex)!
87
- const param = params.find(
88
- (p) => serializer._getValue(p, AmfNamespace.aml.vocabularies.apiContract.paramName) === 'name'
89
- )!
90
- const result = serializer.parameter(param)
91
- assert.isFalse(result.required, 'is not required')
92
- assert.isTrue(result.deprecated, 'is deprecated')
93
- assert.isTrue(result.allowEmptyValue, 'is allowEmptyValue')
94
- assert.isTrue(result.explode, 'is explode')
95
- assert.isTrue(result.allowReserved, 'is allowReserved')
96
- assert.equal(result.style, 'form', 'has style')
97
- })
98
-
99
- test('has the content property', ({ assert }) => {
100
- const op = loader.lookupOperation(api, '/pet/{petId}', 'post')
101
- const ex = serializer._computeExpects(op)!
102
- const params = loader.readQueryParameters(ex)!
103
- const param = params.find(
104
- (p) => serializer._getValue(p, AmfNamespace.aml.vocabularies.apiContract.paramName) === 'filter'
105
- )!
106
- const result = serializer.parameter(param)
107
- const [p] = result.payloads
108
- assert.include(p.types, AmfNamespace.aml.vocabularies.apiContract.Payload, 'has the type')
109
- assert.deepEqual(p.customDomainProperties, [], 'has empty customDomainProperties')
110
- assert.deepEqual(p.examples, [], 'has empty examples')
111
- assert.equal(p.mediaType, 'application/json', 'has mediaType')
112
- assert.typeOf(p.schema, 'object', 'has schema')
113
- })
114
-
115
- test('has the examples property', ({ assert }) => {
116
- // it seems that AMF moves examples from parameter into the schema.
117
- // This copies examples from the schema to the top level parameter so we can test it.
118
- // Possibly this happens during the resolution phase.
119
- const op = loader.lookupOperation(api, '/pet/findByStatus', 'get')
120
- const ex = serializer._computeExpects(op)!
121
- const params = loader.readQueryParameters(ex)!
122
- const param = params.find(
123
- (p) => serializer._getValue(p, AmfNamespace.aml.vocabularies.apiContract.paramName) === 'status'
124
- )!
125
- // @ts-expect-error Used in testing
126
- const schema = param[serializer._getAmfKey(AmfNamespace.aml.vocabularies.shapes.schema)][0] as IAmfScalarShape
127
- const key = serializer._getAmfKey(AmfNamespace.aml.vocabularies.apiContract.examples)
128
- // @ts-expect-error Used in testing
129
- const info = schema[key]
130
- // @ts-expect-error Used in testing
131
- param[key] = info
132
- const result = serializer.parameter(param)
133
- const { examples } = result
134
- assert.typeOf(examples, 'array', 'has examples')
135
- assert.lengthOf(examples, 1, 'has a single example')
136
- const [example] = examples
137
- assert.equal(example.id, info[0]['@id'], 'has the id')
138
- assert.include(example.types, AmfNamespace.aml.vocabularies.apiContract.Example, 'has the type')
139
- assert.deepEqual(example.customDomainProperties, [], 'has empty customDomainProperties')
140
- assert.isTrue(example.strict, 'has strict')
141
- assert.equal(example.value, 'pending', 'has the value')
142
- const { structuredValue } = example
143
- assert.typeOf(structuredValue, 'object', 'has the structuredValue')
144
- assert.equal(structuredValue!.name, 'scalar_1', 'has the name')
145
- const typed = structuredValue as IApiScalarNode
146
- assert.equal(typed.value, 'pending', 'has the value')
147
- assert.equal(typed.dataType, AmfNamespace.w3.xmlSchema.string, 'has the dataType')
148
- })
149
- })
@@ -1,152 +0,0 @@
1
- // As part of the optimisation the examples may be referenced in a link
2
- // shared between different payloads. These test are looking for the
3
- // right example for the right payload.
4
-
5
- import { test } from '@japa/runner'
6
- import { AmfLoader } from '../AmfLoader.js'
7
- import { AmfSerializer } from '../../../../src/amf/AmfSerializer.js'
8
- import type { IAmfDocument } from '../../../../src/amf/definitions/Amf.js'
9
- import { IApiNodeShape } from '../../../../src/amf/definitions/Shapes.js'
10
-
11
- test.group('Payload examples', (group) => {
12
- const loader = new AmfLoader()
13
- const jsonMime = 'application/json'
14
- const xmlMime = 'application/xml'
15
-
16
- let api: IAmfDocument
17
- let serializer: AmfSerializer
18
- group.setup(async () => {
19
- api = await loader.getGraph('amf-helper-api')
20
- serializer = new AmfSerializer(api)
21
- })
22
-
23
- test('returns a RAML example for the JSON mime', async ({ assert }) => {
24
- const shape = loader.lookupRequestPayload(api, '/body-tracking', 'get', jsonMime)
25
- const result = serializer.payload(shape)
26
-
27
- const { examples } = result.schema as IApiNodeShape
28
-
29
- assert.lengthOf(examples, 2, 'has both examples from the type and the payload')
30
- const [ex1, ex2] = examples
31
-
32
- assert.include(ex1.value, 'id: "R34fg663H9KW9MMSKISIhTs1dR7Hss7e"', 'example #1 is type defined example')
33
- assert.include(ex2.value, 'id: "R34fg663H9KW9MMSKISI"', 'example #2 is payload defined example (raml)')
34
-
35
- assert.include(ex2.sourceMaps!.trackedElement!.value, shape['@id'], 'example #2 has tracked value')
36
- })
37
-
38
- test('returns a RAML example for the XML mime', async ({ assert }) => {
39
- const shape = loader.lookupRequestPayload(api, '/body-tracking', 'get', xmlMime)
40
- const result = serializer.payload(shape)
41
-
42
- const { examples } = result.schema as IApiNodeShape
43
-
44
- assert.lengthOf(examples, 2, 'has both examples from the type and the payload')
45
- const [ex1, ex2] = examples
46
-
47
- assert.include(ex1.value, 'id: "R34fg663H9KW9MMSKISIhTs1dR7Hss7e"', 'example #1 is type defined example')
48
- assert.include(ex2.value, 'id: "R34fg663H9KW9MMSKISI"', 'example #2 is payload defined example (raml)')
49
-
50
- assert.include(ex2.sourceMaps!.trackedElement!.value, shape['@id'], 'example #2 has tracked value')
51
- })
52
-
53
- test('returns a JSON example for the JSON mime', async ({ assert }) => {
54
- const shape = loader.lookupRequestPayload(api, '/body-tracking', 'put', jsonMime)
55
- const result = serializer.payload(shape)
56
-
57
- const { examples } = result.schema as IApiNodeShape
58
-
59
- assert.lengthOf(examples, 2, 'has both examples from the type and the payload')
60
- const [ex1, ex2] = examples
61
- assert.include(ex1.value, 'id: "R34fg663H9KW9MMSKISIhTs1dR7Hss7e"', 'example #1 is type defined example')
62
- assert.include(ex2.value, '"id": "R34fg663H9KW9MMSKISI"', 'example #2 is payload defined example (json)')
63
-
64
- assert.include(ex2.sourceMaps!.trackedElement!.value, shape['@id'], 'example #2 has tracked value')
65
- })
66
-
67
- test('returns a XML example for the XML mime', async ({ assert }) => {
68
- const shape = loader.lookupRequestPayload(api, '/body-tracking', 'put', xmlMime)
69
- const result = serializer.payload(shape)
70
-
71
- const { examples } = result.schema as IApiNodeShape
72
-
73
- assert.lengthOf(examples, 2, 'has both examples from the type and the payload')
74
- const [ex1, ex2] = examples
75
- assert.include(ex1.value, 'id: "R34fg663H9KW9MMSKISIhTs1dR7Hss7e"', 'example #1 is type defined example')
76
- assert.include(
77
- ex2.value,
78
- '<id>Qawer63J73HJ6khjswuqyq62382jG21s</id>',
79
- 'example #2 is payload defined example (xml)'
80
- )
81
-
82
- assert.include(ex2.sourceMaps!.trackedElement!.value, shape['@id'], 'example #2 has tracked value')
83
- })
84
-
85
- test('reuses the same JSON example for the JSON mime', async ({ assert }) => {
86
- const shape = loader.lookupRequestPayload(api, '/body-tracking', 'post', jsonMime)
87
- const result = serializer.payload(shape)
88
-
89
- const { examples } = result.schema as IApiNodeShape
90
-
91
- assert.lengthOf(examples, 2, 'has both examples from the type and the payload')
92
- const [ex1, ex2] = examples
93
- assert.include(ex1.value, 'id: "R34fg663H9KW9MMSKISIhTs1dR7Hss7e"', 'example #1 is type defined example')
94
- assert.include(ex2.value, '"id": "R34fg663H9KW9MMSKISI"', 'example #2 is payload defined example (json)')
95
-
96
- assert.include(ex2.sourceMaps!.trackedElement!.value, shape['@id'], 'example #2 has tracked value')
97
- })
98
-
99
- test('reuses the same XML example for the XML mime', async ({ assert }) => {
100
- const shape = loader.lookupRequestPayload(api, '/body-tracking', 'post', xmlMime)
101
- const result = serializer.payload(shape)
102
-
103
- const { examples } = result.schema as IApiNodeShape
104
-
105
- assert.lengthOf(examples, 2, 'has both examples from the type and the payload')
106
- const [ex1, ex2] = examples
107
- assert.include(ex1.value, 'id: "R34fg663H9KW9MMSKISIhTs1dR7Hss7e"', 'example #1 is type defined example')
108
- assert.include(
109
- ex2.value,
110
- '<id>Qawer63J73HJ6khjswuqyq62382jG21s</id>',
111
- 'example #2 is payload defined example (xml)'
112
- )
113
-
114
- assert.include(ex2.sourceMaps!.trackedElement!.value, shape['@id'], 'example #2 has tracked value')
115
- })
116
-
117
- test('works when a single mime is used', async ({ assert }) => {
118
- const shape = loader.lookupRequestPayload(api, '/body-tracking', 'delete', jsonMime)
119
- const result = serializer.payload(shape)
120
-
121
- const { examples } = result.schema as IApiNodeShape
122
-
123
- assert.lengthOf(examples, 2, 'has both examples from the type and the payload')
124
- const [ex1, ex2] = examples
125
- assert.include(ex1.value, 'id: "R34fg663H9KW9MMSKISIhTs1dR7Hss7e"', 'example #1 is type defined example')
126
- assert.include(ex2.value, '"id": "R34fg663H9KW9MMSKISI"', 'example #2 is payload defined example (json)')
127
-
128
- assert.include(ex2.sourceMaps!.trackedElement!.value, shape['@id'], 'example #2 has tracked value')
129
- })
130
-
131
- test('serializes type only example when no payload example', async ({ assert }) => {
132
- const shape = loader.lookupRequestPayload(api, '/body-tracking', 'patch', jsonMime)
133
- const result = serializer.payload(shape)
134
-
135
- const { examples } = result.schema as IApiNodeShape
136
-
137
- assert.lengthOf(examples, 1, 'has only the type example')
138
- const [ex1] = examples
139
- assert.include(ex1.value, 'id: "R34fg663H9KW9MMSKISIhTs1dR7Hss7e"', 'example #1 is type defined example')
140
- })
141
-
142
- test('adds example without tracking information', async ({ assert }) => {
143
- const shape = loader.lookupRequestPayload(api, '/not-shared', 'post', jsonMime)
144
- const result = serializer.payload(shape)
145
-
146
- const { examples } = result.schema as IApiNodeShape
147
-
148
- assert.lengthOf(examples, 1, 'has only the payload example')
149
- const [ex1] = examples
150
- assert.include(ex1.value, 'id: 1234567890', 'example #1 is type defined example')
151
- })
152
- })