@api-client/core 0.19.10 → 0.19.12

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 (466) hide show
  1. package/LICENSE.md +9 -63
  2. package/bin/test.ts +1 -12
  3. package/build/src/browser.d.ts +3 -16
  4. package/build/src/browser.d.ts.map +1 -1
  5. package/build/src/browser.js +2 -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 +3 -16
  16. package/build/src/index.d.ts.map +1 -1
  17. package/build/src/index.js +2 -17
  18. package/build/src/index.js.map +1 -1
  19. package/build/src/modeling/ApiValidation.d.ts +26 -0
  20. package/build/src/modeling/ApiValidation.d.ts.map +1 -0
  21. package/build/src/modeling/ApiValidation.js +73 -0
  22. package/build/src/modeling/ApiValidation.js.map +1 -0
  23. package/build/src/modeling/Bindings.d.ts +3 -3
  24. package/build/src/modeling/Bindings.d.ts.map +1 -1
  25. package/build/src/modeling/Bindings.js.map +1 -1
  26. package/build/src/modeling/DomainAssociation.d.ts +5 -5
  27. package/build/src/modeling/DomainAssociation.d.ts.map +1 -1
  28. package/build/src/modeling/DomainAssociation.js.map +1 -1
  29. package/build/src/modeling/DomainEntity.d.ts +2 -3
  30. package/build/src/modeling/DomainEntity.d.ts.map +1 -1
  31. package/build/src/modeling/DomainEntity.js +1 -1
  32. package/build/src/modeling/DomainEntity.js.map +1 -1
  33. package/build/src/modeling/DomainProperty.d.ts +2 -3
  34. package/build/src/modeling/DomainProperty.d.ts.map +1 -1
  35. package/build/src/modeling/DomainProperty.js +1 -1
  36. package/build/src/modeling/DomainProperty.js.map +1 -1
  37. package/build/src/modeling/DomainValidation.d.ts +10 -4
  38. package/build/src/modeling/DomainValidation.d.ts.map +1 -1
  39. package/build/src/modeling/DomainValidation.js +55 -72
  40. package/build/src/modeling/DomainValidation.js.map +1 -1
  41. package/build/src/modeling/ai/types.d.ts +2 -2
  42. package/build/src/modeling/ai/types.d.ts.map +1 -1
  43. package/build/src/modeling/ai/types.js.map +1 -1
  44. package/build/src/{amf → modeling/amf}/DataValueGenerator.d.ts +1 -1
  45. package/build/src/modeling/amf/DataValueGenerator.d.ts.map +1 -0
  46. package/build/src/{amf → modeling/amf}/DataValueGenerator.js +2 -3
  47. package/build/src/modeling/amf/DataValueGenerator.js.map +1 -0
  48. package/build/src/modeling/amf/ShapeGenerator.d.ts +20 -20
  49. package/build/src/modeling/amf/ShapeGenerator.d.ts.map +1 -1
  50. package/build/src/modeling/amf/ShapeGenerator.js +16 -18
  51. package/build/src/modeling/amf/ShapeGenerator.js.map +1 -1
  52. package/build/src/modeling/amf/core_types.d.ts +9 -0
  53. package/build/src/modeling/amf/core_types.d.ts.map +1 -0
  54. package/build/src/modeling/amf/core_types.js +45 -0
  55. package/build/src/modeling/amf/core_types.js.map +1 -0
  56. package/build/src/modeling/validation/api_model_rules.d.ts +1 -2
  57. package/build/src/modeling/validation/api_model_rules.d.ts.map +1 -1
  58. package/build/src/modeling/validation/api_model_rules.js +0 -26
  59. package/build/src/modeling/validation/api_model_rules.js.map +1 -1
  60. package/build/src/modeling/validation/association_validation.d.ts +4 -4
  61. package/build/src/modeling/validation/association_validation.d.ts.map +1 -1
  62. package/build/src/modeling/validation/association_validation.js.map +1 -1
  63. package/build/src/modeling/validation/entity_validation.d.ts +6 -6
  64. package/build/src/modeling/validation/entity_validation.d.ts.map +1 -1
  65. package/build/src/modeling/validation/entity_validation.js.map +1 -1
  66. package/build/src/modeling/validation/property_validation.d.ts +3 -3
  67. package/build/src/modeling/validation/property_validation.d.ts.map +1 -1
  68. package/build/src/modeling/validation/property_validation.js.map +1 -1
  69. package/build/src/modeling/validation/rules.d.ts +2 -2
  70. package/build/src/modeling/validation/rules.d.ts.map +1 -1
  71. package/build/src/modeling/validation/rules.js.map +1 -1
  72. package/build/src/modeling/validation/semantic_validation.d.ts +2 -2
  73. package/build/src/modeling/validation/semantic_validation.d.ts.map +1 -1
  74. package/build/src/modeling/validation/semantic_validation.js.map +1 -1
  75. package/build/src/models/http-flows/LegacyTranslator.js +1 -1
  76. package/build/src/models/http-flows/LegacyTranslator.js.map +1 -1
  77. package/build/src/runtime/http-runner/HttpFlows.js +1 -1
  78. package/build/src/runtime/http-runner/HttpFlows.js.map +1 -1
  79. package/build/tsconfig.tsbuildinfo +1 -1
  80. package/eslint.config.js +0 -1
  81. package/package.json +11 -14
  82. package/src/events/EventTypes.ts +0 -2
  83. package/src/events/Events.ts +0 -2
  84. package/src/modeling/ApiValidation.ts +86 -0
  85. package/src/modeling/Bindings.ts +3 -3
  86. package/src/modeling/DomainAssociation.ts +5 -5
  87. package/src/modeling/DomainEntity.ts +3 -4
  88. package/src/modeling/DomainProperty.ts +3 -4
  89. package/src/modeling/DomainValidation.ts +57 -74
  90. package/src/modeling/ai/types.ts +2 -2
  91. package/src/{amf → modeling/amf}/DataValueGenerator.ts +3 -4
  92. package/src/modeling/amf/ShapeGenerator.ts +45 -61
  93. package/src/modeling/amf/core_types.ts +47 -0
  94. package/src/modeling/validation/api_model_rules.ts +1 -31
  95. package/src/modeling/validation/association_validation.ts +6 -6
  96. package/src/modeling/validation/entity_validation.ts +11 -11
  97. package/src/modeling/validation/property_validation.ts +4 -4
  98. package/src/modeling/validation/rules.ts +6 -3
  99. package/src/modeling/validation/semantic_validation.ts +11 -11
  100. package/src/models/http-flows/LegacyTranslator.ts +1 -1
  101. package/src/runtime/http-runner/HttpFlows.ts +1 -1
  102. package/tests/unit/{amf → modeling/amf}/data_value_generator.spec.ts +2 -2
  103. package/tests/unit/modeling/amf/shape_generator.spec.ts +146 -167
  104. package/tests/unit/modeling/domain_asociation.spec.ts +13 -13
  105. package/tests/unit/modeling/domain_validation.spec.ts +7 -13
  106. package/tests/unit/modeling/validation/api_model_rules.spec.ts +11 -9
  107. package/tests/unit/runtime/runners/http_assertion_runner.spec.ts +1 -1
  108. package/tests/unit/runtime/runners/http_flow_runner.spec.ts +1 -1
  109. package/tests/unit/runtime/runners/project_runner.spec.ts +1 -1
  110. package/tests/unit/runtime/runners/request_runner.spec.ts +1 -1
  111. package/tests/unit/runtime/runners/serial_runner.spec.ts +1 -1
  112. package/build/src/amf/AmfMixin.d.ts +0 -396
  113. package/build/src/amf/AmfMixin.d.ts.map +0 -1
  114. package/build/src/amf/AmfMixin.js +0 -1138
  115. package/build/src/amf/AmfMixin.js.map +0 -1
  116. package/build/src/amf/AmfSerializer.d.ts +0 -137
  117. package/build/src/amf/AmfSerializer.d.ts.map +0 -1
  118. package/build/src/amf/AmfSerializer.js +0 -1947
  119. package/build/src/amf/AmfSerializer.js.map +0 -1
  120. package/build/src/amf/AmfTypes.d.ts +0 -25
  121. package/build/src/amf/AmfTypes.d.ts.map +0 -1
  122. package/build/src/amf/AmfTypes.js +0 -143
  123. package/build/src/amf/AmfTypes.js.map +0 -1
  124. package/build/src/amf/ApiExampleGenerator.d.ts +0 -40
  125. package/build/src/amf/ApiExampleGenerator.d.ts.map +0 -1
  126. package/build/src/amf/ApiExampleGenerator.js +0 -112
  127. package/build/src/amf/ApiExampleGenerator.js.map +0 -1
  128. package/build/src/amf/ApiMonacoSchemaGenerator.d.ts +0 -68
  129. package/build/src/amf/ApiMonacoSchemaGenerator.d.ts.map +0 -1
  130. package/build/src/amf/ApiMonacoSchemaGenerator.js +0 -248
  131. package/build/src/amf/ApiMonacoSchemaGenerator.js.map +0 -1
  132. package/build/src/amf/ApiSchemaGenerator.d.ts +0 -56
  133. package/build/src/amf/ApiSchemaGenerator.d.ts.map +0 -1
  134. package/build/src/amf/ApiSchemaGenerator.js +0 -94
  135. package/build/src/amf/ApiSchemaGenerator.js.map +0 -1
  136. package/build/src/amf/ApiSchemaValues.d.ts +0 -111
  137. package/build/src/amf/ApiSchemaValues.d.ts.map +0 -1
  138. package/build/src/amf/ApiSchemaValues.js +0 -463
  139. package/build/src/amf/ApiSchemaValues.js.map +0 -1
  140. package/build/src/amf/DataValueGenerator.d.ts.map +0 -1
  141. package/build/src/amf/DataValueGenerator.js.map +0 -1
  142. package/build/src/amf/Parsing.d.ts +0 -48
  143. package/build/src/amf/Parsing.d.ts.map +0 -1
  144. package/build/src/amf/Parsing.js +0 -2
  145. package/build/src/amf/Parsing.js.map +0 -1
  146. package/build/src/amf/Utils.d.ts +0 -37
  147. package/build/src/amf/Utils.d.ts.map +0 -1
  148. package/build/src/amf/Utils.js +0 -169
  149. package/build/src/amf/Utils.js.map +0 -1
  150. package/build/src/amf/data-node/DataNodeBase.d.ts +0 -34
  151. package/build/src/amf/data-node/DataNodeBase.d.ts.map +0 -1
  152. package/build/src/amf/data-node/DataNodeBase.js +0 -77
  153. package/build/src/amf/data-node/DataNodeBase.js.map +0 -1
  154. package/build/src/amf/data-node/JsonDataNodeGenerator.d.ts +0 -15
  155. package/build/src/amf/data-node/JsonDataNodeGenerator.d.ts.map +0 -1
  156. package/build/src/amf/data-node/JsonDataNodeGenerator.js +0 -23
  157. package/build/src/amf/data-node/JsonDataNodeGenerator.js.map +0 -1
  158. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.d.ts +0 -14
  159. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.d.ts.map +0 -1
  160. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.js +0 -48
  161. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.js.map +0 -1
  162. package/build/src/amf/data-node/XmlDataNodeGenerator.d.ts +0 -22
  163. package/build/src/amf/data-node/XmlDataNodeGenerator.d.ts.map +0 -1
  164. package/build/src/amf/data-node/XmlDataNodeGenerator.js +0 -34
  165. package/build/src/amf/data-node/XmlDataNodeGenerator.js.map +0 -1
  166. package/build/src/amf/definitions/Amf.d.ts +0 -363
  167. package/build/src/amf/definitions/Amf.d.ts.map +0 -1
  168. package/build/src/amf/definitions/Amf.js +0 -3
  169. package/build/src/amf/definitions/Amf.js.map +0 -1
  170. package/build/src/amf/definitions/Api.d.ts +0 -383
  171. package/build/src/amf/definitions/Api.d.ts.map +0 -1
  172. package/build/src/amf/definitions/Api.js +0 -2
  173. package/build/src/amf/definitions/Api.js.map +0 -1
  174. package/build/src/amf/definitions/Base.d.ts +0 -12
  175. package/build/src/amf/definitions/Base.d.ts.map +0 -1
  176. package/build/src/amf/definitions/Base.js +0 -2
  177. package/build/src/amf/definitions/Base.js.map +0 -1
  178. package/build/src/amf/definitions/Namespace.d.ts +0 -327
  179. package/build/src/amf/definitions/Namespace.d.ts.map +0 -1
  180. package/build/src/amf/definitions/Namespace.js +0 -346
  181. package/build/src/amf/definitions/Namespace.js.map +0 -1
  182. package/build/src/amf/definitions/Shapes.d.ts +0 -312
  183. package/build/src/amf/definitions/Shapes.d.ts.map +0 -1
  184. package/build/src/amf/definitions/Shapes.js +0 -87
  185. package/build/src/amf/definitions/Shapes.js.map +0 -1
  186. package/build/src/amf/models/AmfDataNode.d.ts +0 -67
  187. package/build/src/amf/models/AmfDataNode.d.ts.map +0 -1
  188. package/build/src/amf/models/AmfDataNode.js +0 -192
  189. package/build/src/amf/models/AmfDataNode.js.map +0 -1
  190. package/build/src/amf/shape/ShapeBase.d.ts +0 -74
  191. package/build/src/amf/shape/ShapeBase.d.ts.map +0 -1
  192. package/build/src/amf/shape/ShapeBase.js +0 -93
  193. package/build/src/amf/shape/ShapeBase.js.map +0 -1
  194. package/build/src/amf/shape/ShapeJsonSchemaGenerator.d.ts +0 -47
  195. package/build/src/amf/shape/ShapeJsonSchemaGenerator.d.ts.map +0 -1
  196. package/build/src/amf/shape/ShapeJsonSchemaGenerator.js +0 -420
  197. package/build/src/amf/shape/ShapeJsonSchemaGenerator.js.map +0 -1
  198. package/build/src/amf/shape/ShapeXmlSchemaGenerator.d.ts +0 -85
  199. package/build/src/amf/shape/ShapeXmlSchemaGenerator.d.ts.map +0 -1
  200. package/build/src/amf/shape/ShapeXmlSchemaGenerator.js +0 -852
  201. package/build/src/amf/shape/ShapeXmlSchemaGenerator.js.map +0 -1
  202. package/build/src/events/amf/AmfEventTypes.d.ts +0 -7
  203. package/build/src/events/amf/AmfEventTypes.d.ts.map +0 -1
  204. package/build/src/events/amf/AmfEventTypes.js +0 -7
  205. package/build/src/events/amf/AmfEventTypes.js.map +0 -1
  206. package/build/src/events/amf/AmfEvents.d.ts +0 -34
  207. package/build/src/events/amf/AmfEvents.d.ts.map +0 -1
  208. package/build/src/events/amf/AmfEvents.js +0 -63
  209. package/build/src/events/amf/AmfEvents.js.map +0 -1
  210. package/build/src/mocking/RandExp.d.ts +0 -55
  211. package/build/src/mocking/RandExp.d.ts.map +0 -1
  212. package/build/src/mocking/RandExp.js +0 -302
  213. package/build/src/mocking/RandExp.js.map +0 -1
  214. package/build/src/mocking/lib/ret.d.ts +0 -16
  215. package/build/src/mocking/lib/ret.d.ts.map +0 -1
  216. package/build/src/mocking/lib/ret.js +0 -284
  217. package/build/src/mocking/lib/ret.js.map +0 -1
  218. package/data/apis/APIC-187/APIC-187.raml +0 -21
  219. package/data/apis/APIC-187/dataType.raml +0 -132
  220. package/data/apis/APIC-187/example.raml +0 -84
  221. package/data/apis/APIC-188/APIC-188.raml +0 -21
  222. package/data/apis/APIC-188/dataType.raml +0 -132
  223. package/data/apis/APIC-188/example.raml +0 -84
  224. package/data/apis/APIC-233/APIC-233.raml +0 -15
  225. package/data/apis/APIC-391/APIC-391.raml +0 -44
  226. package/data/apis/APIC-391/examples/post-body-request-example.raml +0 -7
  227. package/data/apis/APIC-483/APIC-483.raml +0 -16
  228. package/data/apis/APIC-483/example/list-of-bank-succ.json +0 -32
  229. package/data/apis/APIC-483/schema/response-retrieve-list-bank.json +0 -68
  230. package/data/apis/APIC-487/APIC-487.raml +0 -36
  231. package/data/apis/APIC-655/APIC-655.raml +0 -44
  232. package/data/apis/APIC-655/delivery.json +0 -12
  233. package/data/apis/APIC-689/APIC-689.raml +0 -20
  234. package/data/apis/APIC-690/APIC-690.raml +0 -17
  235. package/data/apis/APIC-690/datatypes/Address.raml +0 -10
  236. package/data/apis/APIC-690/datatypes/Customer.raml +0 -17
  237. package/data/apis/APIC-690/examples/CustomerExample2.raml +0 -17
  238. package/data/apis/APIC-690/examples/CustomersExample.raml +0 -34
  239. package/data/apis/SE-10469/Purchase-Order-oagis-id-dd32f9c6c01048a19e15c423c9c741ae.json +0 -1383
  240. package/data/apis/SE-10469/SE-10469.raml +0 -11
  241. package/data/apis/SE-13092/Examples/PersonExample.raml +0 -7
  242. package/data/apis/SE-13092/SE-13092.raml +0 -37
  243. package/data/apis/SE-13092/datatypes/Address.raml +0 -5
  244. package/data/apis/SE-13092/datatypes/InlineType.raml +0 -5
  245. package/data/apis/SE-13092/datatypes/Person.raml +0 -15
  246. package/data/apis/SE-22063/SE-22063.raml +0 -14
  247. package/data/apis/SE-22063/stock.raml +0 -41
  248. package/data/apis/amf-helper-api/amf-helper-api.raml +0 -1024
  249. package/data/apis/amf-helper-api/examples/comment-example.json +0 -42
  250. package/data/apis/amf-helper-api/examples/commentCreateRequest-example.json +0 -7
  251. package/data/apis/amf-helper-api/examples/commentList-example.json +0 -48
  252. package/data/apis/amf-helper-api/examples/person.json +0 -14
  253. package/data/apis/amf-helper-api/examples/person.raml +0 -13
  254. package/data/apis/amf-helper-api/examples/person.xml +0 -14
  255. package/data/apis/amf-helper-api/libraries/comment-lib.raml +0 -143
  256. package/data/apis/amf-helper-api/library.raml +0 -7
  257. package/data/apis/amf-helper-api/schemas/person.json +0 -104
  258. package/data/apis/amf-helper-api/schemas/person.xsd +0 -26
  259. package/data/apis/amf-helper-api/traits/file.raml +0 -33
  260. package/data/apis/amf-helper-api/traits/pagination.raml +0 -80
  261. package/data/apis/amf-helper-api/traits/results.raml +0 -19
  262. package/data/apis/amf-helper-api/traits/visibility.raml +0 -14
  263. package/data/apis/amf-helper-api/types/app-person.raml +0 -101
  264. package/data/apis/amf-helper-api/types/dimensions.raml +0 -24
  265. package/data/apis/amf-helper-api/types/external-type.raml +0 -7
  266. package/data/apis/amf-helper-api/types/image.raml +0 -23
  267. package/data/apis/amf-helper-api/types/product.raml +0 -52
  268. package/data/apis/amf-helper-api/types/resource.raml +0 -11
  269. package/data/apis/amf-helper-api/types/standard-request.raml +0 -50
  270. package/data/apis/amf-helper-api/types/user.raml +0 -37
  271. package/data/apis/arc-demo-api/arc-demo-api.raml +0 -468
  272. package/data/apis/arc-demo-api/examples/e400.xml +0 -4
  273. package/data/apis/arc-demo-api/examples/e401.xml +0 -4
  274. package/data/apis/arc-demo-api/examples/e404.xml +0 -4
  275. package/data/apis/arc-demo-api/examples/image.xml +0 -5
  276. package/data/apis/arc-demo-api/examples/messages-example.json +0 -22
  277. package/data/apis/arc-demo-api/examples/messages-sent-example.json +0 -15
  278. package/data/apis/arc-demo-api/examples/person.json +0 -14
  279. package/data/apis/arc-demo-api/examples/person.url.encoded +0 -1
  280. package/data/apis/arc-demo-api/examples/person.xml +0 -14
  281. package/data/apis/arc-demo-api/examples/product.xml +0 -9
  282. package/data/apis/arc-demo-api/library.raml +0 -36
  283. package/data/apis/arc-demo-api/resourceTypes/app-person.raml +0 -49
  284. package/data/apis/arc-demo-api/resourceTypes/example-types.raml +0 -45
  285. package/data/apis/arc-demo-api/resourceTypes/image.raml +0 -23
  286. package/data/apis/arc-demo-api/resourceTypes/message-sent-type.raml +0 -23
  287. package/data/apis/arc-demo-api/resourceTypes/message-type.raml +0 -33
  288. package/data/apis/arc-demo-api/resourceTypes/product.raml +0 -52
  289. package/data/apis/arc-demo-api/resourceTypes/resource.raml +0 -11
  290. package/data/apis/arc-demo-api/schemas/error-response.xsd +0 -11
  291. package/data/apis/arc-demo-api/schemas/image.xsd +0 -11
  292. package/data/apis/arc-demo-api/schemas/person.json +0 -104
  293. package/data/apis/arc-demo-api/schemas/person.xsd +0 -26
  294. package/data/apis/arc-demo-api/schemas/product.xsd +0 -17
  295. package/data/apis/arc-demo-api/securitySchemes/basic.raml +0 -5
  296. package/data/apis/arc-demo-api/securitySchemes/oauth_2_0.raml +0 -29
  297. package/data/apis/arc-demo-api/securitySchemes/x-custom.raml +0 -26
  298. package/data/apis/arc-demo-api/traits/adminable.raml +0 -23
  299. package/data/apis/arc-demo-api/traits/pagination.raml +0 -83
  300. package/data/apis/arc-demo-api/traits/rate-limited.raml +0 -9
  301. package/data/apis/async-api/async-api.yaml +0 -96
  302. package/data/apis/example-generator-api/contact-email-example.raml +0 -6
  303. package/data/apis/example-generator-api/contact-example.raml +0 -5
  304. package/data/apis/example-generator-api/contact-fax-example.raml +0 -5
  305. package/data/apis/example-generator-api/contact-website-example.raml +0 -2
  306. package/data/apis/example-generator-api/example-1.raml +0 -6
  307. package/data/apis/example-generator-api/example-2.raml +0 -9
  308. package/data/apis/example-generator-api/example-3.raml +0 -4
  309. package/data/apis/example-generator-api/example-4.raml +0 -2
  310. package/data/apis/example-generator-api/example-5.raml +0 -4
  311. package/data/apis/example-generator-api/example-6.raml +0 -2
  312. package/data/apis/example-generator-api/example-7.raml +0 -5
  313. package/data/apis/example-generator-api/example-generator-api.raml +0 -423
  314. package/data/apis/example-generator-api/example.json +0 -14
  315. package/data/apis/example-generator-api/example.xml +0 -15
  316. package/data/apis/example-generator-api/example.xsd +0 -26
  317. package/data/apis/example-generator-api/examples/employee.raml +0 -7
  318. package/data/apis/example-generator-api/examples/employees.raml +0 -7
  319. package/data/apis/example-generator-api/linked-named-example.raml +0 -21
  320. package/data/apis/example-generator-api/named-example-with-link.raml +0 -5
  321. package/data/apis/example-generator-api/named-example.raml +0 -9
  322. package/data/apis/example-generator-api/user-json-example.raml +0 -17
  323. package/data/apis/example-generator-api/user-raml-example.raml +0 -37
  324. package/data/apis/example-generator-api/user.json +0 -8
  325. package/data/apis/example-generator-api/user.raml +0 -18
  326. package/data/apis/example-generator-api/users-json-example.raml +0 -17
  327. package/data/apis/example-generator-api/users-raml-example.raml +0 -32
  328. package/data/apis/example-generator-api/users.json +0 -8
  329. package/data/apis/expanded-api/expanded-api.raml +0 -8
  330. package/data/apis/flattened-api/flattened-api.raml +0 -8
  331. package/data/apis/multiple-servers/multiple-servers.yaml +0 -112
  332. package/data/apis/oas-3-api/oas-3-api.yaml +0 -356
  333. package/data/apis/oas-date/oas-date.yaml +0 -28
  334. package/data/apis/oas-types/oas-types.yaml +0 -159
  335. package/data/apis/oas-unions/oas-unions.yaml +0 -75
  336. package/data/apis/petstore/petstore.yaml +0 -954
  337. package/data/apis/raml-date/raml-date.raml +0 -28
  338. package/data/apis/recursive/recursive.raml +0 -14
  339. package/data/apis/schema-api/examples/person.json +0 -14
  340. package/data/apis/schema-api/examples/person.raml +0 -14
  341. package/data/apis/schema-api/examples/person.url.encoded +0 -1
  342. package/data/apis/schema-api/examples/person.xml +0 -14
  343. package/data/apis/schema-api/library/demo-types.raml +0 -43
  344. package/data/apis/schema-api/schema-api.raml +0 -656
  345. package/data/apis/schema-api/schemas/person.json +0 -104
  346. package/data/apis/schema-api/schemas/person.xsd +0 -26
  347. package/data/apis/schema-api/types/DemoPerson.raml +0 -67
  348. package/data/apis/secured-api/oauth-2-custom-settings.raml +0 -143
  349. package/data/apis/secured-api/oauth2-header-delivery.raml +0 -13
  350. package/data/apis/secured-api/oauth2-no-delivery.raml +0 -8
  351. package/data/apis/secured-api/oauth2-no-grants.raml +0 -12
  352. package/data/apis/secured-api/oauth2-pkce.raml +0 -13
  353. package/data/apis/secured-api/oauth2-query-delivery.raml +0 -13
  354. package/data/apis/secured-api/oauth_1_0.raml +0 -8
  355. package/data/apis/secured-api/oauth_1_0_no-settings.raml +0 -3
  356. package/data/apis/secured-api/oauth_1_0_no-signature.raml +0 -7
  357. package/data/apis/secured-api/oauth_1_0_signature.raml +0 -8
  358. package/data/apis/secured-api/passthrough-querystring.raml +0 -16
  359. package/data/apis/secured-api/passthrough.raml +0 -24
  360. package/data/apis/secured-api/secured-api.raml +0 -231
  361. package/data/apis/secured-api/x-custom.raml +0 -33
  362. package/data/apis/secured-api/x-other.raml +0 -29
  363. package/data/apis/secured-api/x-query-string.raml +0 -16
  364. package/data/apis/tracked-examples/datatypes/employee.raml +0 -5
  365. package/data/apis/tracked-examples/examples/employee.raml +0 -4
  366. package/data/apis/tracked-examples/examples/employees.raml +0 -8
  367. package/data/apis/tracked-examples/tracked-to-linked.raml +0 -28
  368. package/data/model.js +0 -129
  369. package/data/models/APIC-187.json +0 -11416
  370. package/data/models/APIC-188.json +0 -11416
  371. package/data/models/APIC-233.json +0 -539
  372. package/data/models/APIC-391.json +0 -1903
  373. package/data/models/APIC-483.json +0 -3110
  374. package/data/models/APIC-487.json +0 -1225
  375. package/data/models/APIC-655.json +0 -3145
  376. package/data/models/APIC-689.json +0 -797
  377. package/data/models/APIC-690.json +0 -5992
  378. package/data/models/SE-10469.json +0 -22898
  379. package/data/models/SE-13092.json +0 -2769
  380. package/data/models/SE-22063.json +0 -2314
  381. package/data/models/amf-helper-api.json +0 -84457
  382. package/data/models/arc-demo-api.json +0 -52041
  383. package/data/models/async-api.json +0 -3227
  384. package/data/models/example-generator-api.json +0 -45209
  385. package/data/models/expanded-api.json +0 -251
  386. package/data/models/flattened-api.json +0 -251
  387. package/data/models/multiple-servers.json +0 -2769
  388. package/data/models/oas-3-api.json +0 -10590
  389. package/data/models/oas-date.json +0 -637
  390. package/data/models/oas-types.json +0 -5352
  391. package/data/models/oas-unions.json +0 -1935
  392. package/data/models/petstore.json +0 -27712
  393. package/data/models/raml-date.json +0 -1114
  394. package/data/models/recursive.json +0 -610
  395. package/data/models/schema-api.json +0 -35527
  396. package/data/models/secured-api.json +0 -21071
  397. package/data/models/tracked-to-linked.json +0 -1914
  398. package/src/amf/AmfMixin.ts +0 -1726
  399. package/src/amf/AmfSerializer.ts +0 -2358
  400. package/src/amf/AmfTypes.ts +0 -147
  401. package/src/amf/ApiExampleGenerator.ts +0 -122
  402. package/src/amf/ApiMonacoSchemaGenerator.ts +0 -332
  403. package/src/amf/ApiSchemaGenerator.ts +0 -115
  404. package/src/amf/ApiSchemaValues.ts +0 -509
  405. package/src/amf/Parsing.ts +0 -50
  406. package/src/amf/Utils.ts +0 -172
  407. package/src/amf/data-node/DataNodeBase.ts +0 -83
  408. package/src/amf/data-node/JsonDataNodeGenerator.ts +0 -24
  409. package/src/amf/data-node/README.md +0 -3
  410. package/src/amf/data-node/UrlEncodedDataNodeGenerator.ts +0 -49
  411. package/src/amf/data-node/XmlDataNodeGenerator.ts +0 -46
  412. package/src/amf/definitions/Amf.ts +0 -440
  413. package/src/amf/definitions/Api.ts +0 -445
  414. package/src/amf/definitions/Base.ts +0 -13
  415. package/src/amf/definitions/Namespace.ts +0 -357
  416. package/src/amf/definitions/Shapes.ts +0 -438
  417. package/src/amf/models/AmfDataNode.ts +0 -210
  418. package/src/amf/shape/README.md +0 -4
  419. package/src/amf/shape/ShapeBase.ts +0 -174
  420. package/src/amf/shape/ShapeJsonSchemaGenerator.ts +0 -457
  421. package/src/amf/shape/ShapeXmlSchemaGenerator.ts +0 -933
  422. package/src/events/amf/AmfEventTypes.ts +0 -6
  423. package/src/events/amf/AmfEvents.ts +0 -78
  424. package/src/mocking/RandExp.ts +0 -335
  425. package/src/mocking/lib/ret.ts +0 -279
  426. package/tests/unit/amf/APIC-187.spec.ts +0 -41
  427. package/tests/unit/amf/APIC-188.spec.ts +0 -30
  428. package/tests/unit/amf/APIC-233.spec.ts +0 -32
  429. package/tests/unit/amf/APIC-391.spec.ts +0 -39
  430. package/tests/unit/amf/APIC-487.spec.ts +0 -44
  431. package/tests/unit/amf/APIC-655.spec.ts +0 -41
  432. package/tests/unit/amf/APIC-689.spec.ts +0 -28
  433. package/tests/unit/amf/APIC-690.spec.ts +0 -93
  434. package/tests/unit/amf/AmfLoader.ts +0 -538
  435. package/tests/unit/amf/AmfMixin.spec.ts +0 -1707
  436. package/tests/unit/amf/ApiExampleGenerator.spec.ts +0 -250
  437. package/tests/unit/amf/ApiMonacoSchemaGenerator.spec.ts +0 -183
  438. package/tests/unit/amf/ApiSchemaValues.spec.ts +0 -602
  439. package/tests/unit/amf/Namepsace.spec.ts +0 -494
  440. package/tests/unit/amf/SE-10469.spec.ts +0 -35
  441. package/tests/unit/amf/SE-13092.spec.ts +0 -64
  442. package/tests/unit/amf/SE-22063.spec.ts +0 -45
  443. package/tests/unit/amf/raml-examples.spec.ts +0 -43
  444. package/tests/unit/amf/schema_gen_array.spec.ts +0 -199
  445. package/tests/unit/amf/schema_gen_oas.spec.ts +0 -140
  446. package/tests/unit/amf/schema_gen_object.spec.ts +0 -279
  447. package/tests/unit/amf/schema_gen_scalar.spec.ts +0 -143
  448. package/tests/unit/amf/schema_gen_union.spec.ts +0 -401
  449. package/tests/unit/amf/schema_gen_unknown.spec.ts +0 -42
  450. package/tests/unit/amf/schema_gen_xml.spec.ts +0 -726
  451. package/tests/unit/amf/serializer/APIC-483.spec.ts +0 -36
  452. package/tests/unit/amf/serializer/Anotations.spec.ts +0 -50
  453. package/tests/unit/amf/serializer/Api.spec.ts +0 -210
  454. package/tests/unit/amf/serializer/Documentation.spec.ts +0 -52
  455. package/tests/unit/amf/serializer/Endpoints.spec.ts +0 -172
  456. package/tests/unit/amf/serializer/Operations.spec.ts +0 -330
  457. package/tests/unit/amf/serializer/Parameters.spec.ts +0 -149
  458. package/tests/unit/amf/serializer/PayloadExamples.spec.ts +0 -152
  459. package/tests/unit/amf/serializer/Security.spec.ts +0 -626
  460. package/tests/unit/amf/serializer/Server.spec.ts +0 -78
  461. package/tests/unit/amf/serializer/Shapes.spec.ts +0 -304
  462. package/tests/unit/amf/serializer/SourceMaps.spec.ts +0 -52
  463. package/tests/unit/amf/shapes/ShapeXmlSchemaGenerator.spec.ts +0 -28
  464. package/tests/unit/amf/tracked-to-linked.spec.ts +0 -90
  465. package/tests/unit/amf/xml-data-processing.spec.ts +0 -217
  466. 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
- })