@api-client/core 0.19.9 → 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 (523) hide show
  1. package/LICENSE.md +9 -63
  2. package/Testing.md +1 -1
  3. package/bin/test.ts +1 -12
  4. package/build/src/browser.d.ts +0 -15
  5. package/build/src/browser.d.ts.map +1 -1
  6. package/build/src/browser.js +0 -17
  7. package/build/src/browser.js.map +1 -1
  8. package/build/src/decorators/observed.d.ts.map +1 -1
  9. package/build/src/decorators/observed.js +91 -0
  10. package/build/src/decorators/observed.js.map +1 -1
  11. package/build/src/events/EventTypes.d.ts +0 -6
  12. package/build/src/events/EventTypes.d.ts.map +1 -1
  13. package/build/src/events/EventTypes.js +0 -2
  14. package/build/src/events/EventTypes.js.map +1 -1
  15. package/build/src/events/Events.d.ts +0 -2
  16. package/build/src/events/Events.d.ts.map +1 -1
  17. package/build/src/events/Events.js +0 -2
  18. package/build/src/events/Events.js.map +1 -1
  19. package/build/src/index.d.ts +0 -15
  20. package/build/src/index.d.ts.map +1 -1
  21. package/build/src/index.js +0 -17
  22. package/build/src/index.js.map +1 -1
  23. package/build/src/modeling/ApiModel.d.ts +21 -7
  24. package/build/src/modeling/ApiModel.d.ts.map +1 -1
  25. package/build/src/modeling/ApiModel.js +70 -29
  26. package/build/src/modeling/ApiModel.js.map +1 -1
  27. package/build/src/modeling/Bindings.d.ts +3 -3
  28. package/build/src/modeling/Bindings.d.ts.map +1 -1
  29. package/build/src/modeling/Bindings.js.map +1 -1
  30. package/build/src/modeling/DomainAssociation.d.ts +5 -5
  31. package/build/src/modeling/DomainAssociation.d.ts.map +1 -1
  32. package/build/src/modeling/DomainAssociation.js.map +1 -1
  33. package/build/src/modeling/DomainEntity.d.ts +2 -3
  34. package/build/src/modeling/DomainEntity.d.ts.map +1 -1
  35. package/build/src/modeling/DomainEntity.js +1 -1
  36. package/build/src/modeling/DomainEntity.js.map +1 -1
  37. package/build/src/modeling/DomainProperty.d.ts +2 -3
  38. package/build/src/modeling/DomainProperty.d.ts.map +1 -1
  39. package/build/src/modeling/DomainProperty.js +1 -1
  40. package/build/src/modeling/DomainProperty.js.map +1 -1
  41. package/build/src/modeling/DomainValidation.d.ts +1 -1
  42. package/build/src/modeling/DomainValidation.d.ts.map +1 -1
  43. package/build/src/modeling/DomainValidation.js.map +1 -1
  44. package/build/src/modeling/ExposedEntity.d.ts +14 -0
  45. package/build/src/modeling/ExposedEntity.d.ts.map +1 -1
  46. package/build/src/modeling/ExposedEntity.js +59 -6
  47. package/build/src/modeling/ExposedEntity.js.map +1 -1
  48. package/build/src/modeling/actions/Action.d.ts +11 -1
  49. package/build/src/modeling/actions/Action.d.ts.map +1 -1
  50. package/build/src/modeling/actions/Action.js +21 -3
  51. package/build/src/modeling/actions/Action.js.map +1 -1
  52. package/build/src/modeling/actions/CreateAction.d.ts +2 -1
  53. package/build/src/modeling/actions/CreateAction.d.ts.map +1 -1
  54. package/build/src/modeling/actions/CreateAction.js +2 -2
  55. package/build/src/modeling/actions/CreateAction.js.map +1 -1
  56. package/build/src/modeling/actions/DeleteAction.d.ts +2 -1
  57. package/build/src/modeling/actions/DeleteAction.d.ts.map +1 -1
  58. package/build/src/modeling/actions/DeleteAction.js +2 -2
  59. package/build/src/modeling/actions/DeleteAction.js.map +1 -1
  60. package/build/src/modeling/actions/ListAction.d.ts +2 -1
  61. package/build/src/modeling/actions/ListAction.d.ts.map +1 -1
  62. package/build/src/modeling/actions/ListAction.js +2 -2
  63. package/build/src/modeling/actions/ListAction.js.map +1 -1
  64. package/build/src/modeling/actions/ReadAction.d.ts +2 -1
  65. package/build/src/modeling/actions/ReadAction.d.ts.map +1 -1
  66. package/build/src/modeling/actions/ReadAction.js +2 -2
  67. package/build/src/modeling/actions/ReadAction.js.map +1 -1
  68. package/build/src/modeling/actions/SearchAction.d.ts +2 -1
  69. package/build/src/modeling/actions/SearchAction.d.ts.map +1 -1
  70. package/build/src/modeling/actions/SearchAction.js +2 -2
  71. package/build/src/modeling/actions/SearchAction.js.map +1 -1
  72. package/build/src/modeling/actions/UpdateAction.d.ts +2 -1
  73. package/build/src/modeling/actions/UpdateAction.d.ts.map +1 -1
  74. package/build/src/modeling/actions/UpdateAction.js +2 -2
  75. package/build/src/modeling/actions/UpdateAction.js.map +1 -1
  76. package/build/src/modeling/actions/index.d.ts +2 -1
  77. package/build/src/modeling/actions/index.d.ts.map +1 -1
  78. package/build/src/modeling/actions/index.js +7 -7
  79. package/build/src/modeling/actions/index.js.map +1 -1
  80. package/build/src/modeling/ai/types.d.ts +2 -2
  81. package/build/src/modeling/ai/types.d.ts.map +1 -1
  82. package/build/src/modeling/ai/types.js.map +1 -1
  83. package/build/src/{amf → modeling/amf}/DataValueGenerator.d.ts +1 -1
  84. package/build/src/modeling/amf/DataValueGenerator.d.ts.map +1 -0
  85. package/build/src/{amf → modeling/amf}/DataValueGenerator.js +2 -3
  86. package/build/src/modeling/amf/DataValueGenerator.js.map +1 -0
  87. package/build/src/modeling/amf/ShapeGenerator.d.ts +20 -20
  88. package/build/src/modeling/amf/ShapeGenerator.d.ts.map +1 -1
  89. package/build/src/modeling/amf/ShapeGenerator.js +16 -18
  90. package/build/src/modeling/amf/ShapeGenerator.js.map +1 -1
  91. package/build/src/modeling/amf/core_types.d.ts +9 -0
  92. package/build/src/modeling/amf/core_types.d.ts.map +1 -0
  93. package/build/src/modeling/amf/core_types.js +45 -0
  94. package/build/src/modeling/amf/core_types.js.map +1 -0
  95. package/build/src/modeling/index.d.ts +1 -0
  96. package/build/src/modeling/index.d.ts.map +1 -1
  97. package/build/src/modeling/index.js +1 -0
  98. package/build/src/modeling/index.js.map +1 -1
  99. package/build/src/modeling/types.d.ts +67 -0
  100. package/build/src/modeling/types.d.ts.map +1 -1
  101. package/build/src/modeling/types.js.map +1 -1
  102. package/build/src/modeling/validation/api_model_rules.d.ts +15 -0
  103. package/build/src/modeling/validation/api_model_rules.d.ts.map +1 -0
  104. package/build/src/modeling/validation/api_model_rules.js +599 -0
  105. package/build/src/modeling/validation/api_model_rules.js.map +1 -0
  106. package/build/src/modeling/validation/association_validation.d.ts.map +1 -1
  107. package/build/src/modeling/validation/association_validation.js +1 -3
  108. package/build/src/modeling/validation/association_validation.js.map +1 -1
  109. package/build/src/models/http-flows/LegacyTranslator.js +1 -1
  110. package/build/src/models/http-flows/LegacyTranslator.js.map +1 -1
  111. package/build/src/runtime/http-runner/HttpFlows.js +1 -1
  112. package/build/src/runtime/http-runner/HttpFlows.js.map +1 -1
  113. package/build/tsconfig.tsbuildinfo +1 -1
  114. package/eslint.config.js +0 -2
  115. package/package.json +27 -135
  116. package/src/decorators/observed.ts +91 -0
  117. package/src/events/EventTypes.ts +0 -2
  118. package/src/events/Events.ts +0 -2
  119. package/src/modeling/ApiModel.ts +73 -33
  120. package/src/modeling/Bindings.ts +3 -3
  121. package/src/modeling/DomainAssociation.ts +5 -5
  122. package/src/modeling/DomainEntity.ts +3 -4
  123. package/src/modeling/DomainProperty.ts +3 -4
  124. package/src/modeling/DomainValidation.ts +1 -1
  125. package/src/modeling/ExposedEntity.ts +63 -9
  126. package/src/modeling/actions/Action.ts +25 -2
  127. package/src/modeling/actions/CreateAction.ts +3 -2
  128. package/src/modeling/actions/DeleteAction.ts +3 -2
  129. package/src/modeling/actions/ListAction.ts +3 -2
  130. package/src/modeling/actions/ReadAction.ts +3 -2
  131. package/src/modeling/actions/SearchAction.ts +3 -2
  132. package/src/modeling/actions/UpdateAction.ts +3 -2
  133. package/src/modeling/ai/types.ts +2 -2
  134. package/src/{amf → modeling/amf}/DataValueGenerator.ts +3 -4
  135. package/src/modeling/amf/ShapeGenerator.ts +45 -61
  136. package/src/modeling/amf/core_types.ts +47 -0
  137. package/src/modeling/types.ts +70 -0
  138. package/src/modeling/validation/api_model_rules.ts +640 -0
  139. package/src/modeling/validation/api_model_validation_rules.md +58 -0
  140. package/src/modeling/validation/association_validation.ts +1 -3
  141. package/src/models/http-flows/LegacyTranslator.ts +1 -1
  142. package/src/runtime/http-runner/HttpFlows.ts +1 -1
  143. package/tests/unit/modeling/actions/Action.spec.ts +40 -8
  144. package/tests/unit/modeling/actions/CreateAction.spec.ts +5 -5
  145. package/tests/unit/modeling/actions/DeleteAction.spec.ts +6 -6
  146. package/tests/unit/modeling/actions/ListAction.spec.ts +7 -7
  147. package/tests/unit/modeling/actions/ReadAction.spec.ts +6 -6
  148. package/tests/unit/modeling/actions/SearchAction.spec.ts +6 -6
  149. package/tests/unit/modeling/actions/UpdateAction.spec.ts +6 -6
  150. package/tests/unit/{amf → modeling/amf}/data_value_generator.spec.ts +2 -2
  151. package/tests/unit/modeling/amf/shape_generator.spec.ts +146 -167
  152. package/tests/unit/modeling/api_model.spec.ts +190 -13
  153. package/tests/unit/modeling/api_model_expose_entity.spec.ts +43 -19
  154. package/tests/unit/modeling/api_model_remove_entity.spec.ts +6 -6
  155. package/tests/unit/modeling/domain_asociation.spec.ts +13 -13
  156. package/tests/unit/modeling/exposed_entity.spec.ts +123 -3
  157. package/tests/unit/modeling/exposed_entity_actions.spec.ts +41 -18
  158. package/tests/unit/modeling/exposed_entity_setter_validation.spec.ts +1 -1
  159. package/tests/unit/modeling/rules/restoring_rules.spec.ts +9 -5
  160. package/tests/unit/modeling/validation/api_model_rules.spec.ts +324 -0
  161. package/tests/unit/runtime/runners/http_assertion_runner.spec.ts +1 -1
  162. package/tests/unit/runtime/runners/http_flow_runner.spec.ts +1 -1
  163. package/tests/unit/runtime/runners/project_runner.spec.ts +1 -1
  164. package/tests/unit/runtime/runners/request_runner.spec.ts +1 -1
  165. package/tests/unit/runtime/runners/serial_runner.spec.ts +1 -1
  166. package/tsconfig.browser.json +1 -1
  167. package/tsconfig.node.json +1 -1
  168. package/bin/test-web.ts +0 -6
  169. package/build/src/amf/AmfMixin.d.ts +0 -396
  170. package/build/src/amf/AmfMixin.d.ts.map +0 -1
  171. package/build/src/amf/AmfMixin.js +0 -1138
  172. package/build/src/amf/AmfMixin.js.map +0 -1
  173. package/build/src/amf/AmfSerializer.d.ts +0 -137
  174. package/build/src/amf/AmfSerializer.d.ts.map +0 -1
  175. package/build/src/amf/AmfSerializer.js +0 -1947
  176. package/build/src/amf/AmfSerializer.js.map +0 -1
  177. package/build/src/amf/AmfTypes.d.ts +0 -25
  178. package/build/src/amf/AmfTypes.d.ts.map +0 -1
  179. package/build/src/amf/AmfTypes.js +0 -143
  180. package/build/src/amf/AmfTypes.js.map +0 -1
  181. package/build/src/amf/ApiExampleGenerator.d.ts +0 -40
  182. package/build/src/amf/ApiExampleGenerator.d.ts.map +0 -1
  183. package/build/src/amf/ApiExampleGenerator.js +0 -112
  184. package/build/src/amf/ApiExampleGenerator.js.map +0 -1
  185. package/build/src/amf/ApiMonacoSchemaGenerator.d.ts +0 -68
  186. package/build/src/amf/ApiMonacoSchemaGenerator.d.ts.map +0 -1
  187. package/build/src/amf/ApiMonacoSchemaGenerator.js +0 -248
  188. package/build/src/amf/ApiMonacoSchemaGenerator.js.map +0 -1
  189. package/build/src/amf/ApiSchemaGenerator.d.ts +0 -56
  190. package/build/src/amf/ApiSchemaGenerator.d.ts.map +0 -1
  191. package/build/src/amf/ApiSchemaGenerator.js +0 -94
  192. package/build/src/amf/ApiSchemaGenerator.js.map +0 -1
  193. package/build/src/amf/ApiSchemaValues.d.ts +0 -111
  194. package/build/src/amf/ApiSchemaValues.d.ts.map +0 -1
  195. package/build/src/amf/ApiSchemaValues.js +0 -463
  196. package/build/src/amf/ApiSchemaValues.js.map +0 -1
  197. package/build/src/amf/DataValueGenerator.d.ts.map +0 -1
  198. package/build/src/amf/DataValueGenerator.js.map +0 -1
  199. package/build/src/amf/Parsing.d.ts +0 -48
  200. package/build/src/amf/Parsing.d.ts.map +0 -1
  201. package/build/src/amf/Parsing.js +0 -2
  202. package/build/src/amf/Parsing.js.map +0 -1
  203. package/build/src/amf/Utils.d.ts +0 -37
  204. package/build/src/amf/Utils.d.ts.map +0 -1
  205. package/build/src/amf/Utils.js +0 -169
  206. package/build/src/amf/Utils.js.map +0 -1
  207. package/build/src/amf/data-node/DataNodeBase.d.ts +0 -34
  208. package/build/src/amf/data-node/DataNodeBase.d.ts.map +0 -1
  209. package/build/src/amf/data-node/DataNodeBase.js +0 -77
  210. package/build/src/amf/data-node/DataNodeBase.js.map +0 -1
  211. package/build/src/amf/data-node/JsonDataNodeGenerator.d.ts +0 -15
  212. package/build/src/amf/data-node/JsonDataNodeGenerator.d.ts.map +0 -1
  213. package/build/src/amf/data-node/JsonDataNodeGenerator.js +0 -23
  214. package/build/src/amf/data-node/JsonDataNodeGenerator.js.map +0 -1
  215. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.d.ts +0 -14
  216. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.d.ts.map +0 -1
  217. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.js +0 -48
  218. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.js.map +0 -1
  219. package/build/src/amf/data-node/XmlDataNodeGenerator.d.ts +0 -22
  220. package/build/src/amf/data-node/XmlDataNodeGenerator.d.ts.map +0 -1
  221. package/build/src/amf/data-node/XmlDataNodeGenerator.js +0 -34
  222. package/build/src/amf/data-node/XmlDataNodeGenerator.js.map +0 -1
  223. package/build/src/amf/definitions/Amf.d.ts +0 -363
  224. package/build/src/amf/definitions/Amf.d.ts.map +0 -1
  225. package/build/src/amf/definitions/Amf.js +0 -3
  226. package/build/src/amf/definitions/Amf.js.map +0 -1
  227. package/build/src/amf/definitions/Api.d.ts +0 -383
  228. package/build/src/amf/definitions/Api.d.ts.map +0 -1
  229. package/build/src/amf/definitions/Api.js +0 -2
  230. package/build/src/amf/definitions/Api.js.map +0 -1
  231. package/build/src/amf/definitions/Base.d.ts +0 -12
  232. package/build/src/amf/definitions/Base.d.ts.map +0 -1
  233. package/build/src/amf/definitions/Base.js +0 -2
  234. package/build/src/amf/definitions/Base.js.map +0 -1
  235. package/build/src/amf/definitions/Namespace.d.ts +0 -327
  236. package/build/src/amf/definitions/Namespace.d.ts.map +0 -1
  237. package/build/src/amf/definitions/Namespace.js +0 -346
  238. package/build/src/amf/definitions/Namespace.js.map +0 -1
  239. package/build/src/amf/definitions/Shapes.d.ts +0 -312
  240. package/build/src/amf/definitions/Shapes.d.ts.map +0 -1
  241. package/build/src/amf/definitions/Shapes.js +0 -87
  242. package/build/src/amf/definitions/Shapes.js.map +0 -1
  243. package/build/src/amf/models/AmfDataNode.d.ts +0 -67
  244. package/build/src/amf/models/AmfDataNode.d.ts.map +0 -1
  245. package/build/src/amf/models/AmfDataNode.js +0 -192
  246. package/build/src/amf/models/AmfDataNode.js.map +0 -1
  247. package/build/src/amf/shape/ShapeBase.d.ts +0 -74
  248. package/build/src/amf/shape/ShapeBase.d.ts.map +0 -1
  249. package/build/src/amf/shape/ShapeBase.js +0 -93
  250. package/build/src/amf/shape/ShapeBase.js.map +0 -1
  251. package/build/src/amf/shape/ShapeJsonSchemaGenerator.d.ts +0 -47
  252. package/build/src/amf/shape/ShapeJsonSchemaGenerator.d.ts.map +0 -1
  253. package/build/src/amf/shape/ShapeJsonSchemaGenerator.js +0 -420
  254. package/build/src/amf/shape/ShapeJsonSchemaGenerator.js.map +0 -1
  255. package/build/src/amf/shape/ShapeXmlSchemaGenerator.d.ts +0 -85
  256. package/build/src/amf/shape/ShapeXmlSchemaGenerator.d.ts.map +0 -1
  257. package/build/src/amf/shape/ShapeXmlSchemaGenerator.js +0 -852
  258. package/build/src/amf/shape/ShapeXmlSchemaGenerator.js.map +0 -1
  259. package/build/src/events/amf/AmfEventTypes.d.ts +0 -7
  260. package/build/src/events/amf/AmfEventTypes.d.ts.map +0 -1
  261. package/build/src/events/amf/AmfEventTypes.js +0 -7
  262. package/build/src/events/amf/AmfEventTypes.js.map +0 -1
  263. package/build/src/events/amf/AmfEvents.d.ts +0 -34
  264. package/build/src/events/amf/AmfEvents.d.ts.map +0 -1
  265. package/build/src/events/amf/AmfEvents.js +0 -63
  266. package/build/src/events/amf/AmfEvents.js.map +0 -1
  267. package/build/src/mocking/RandExp.d.ts +0 -55
  268. package/build/src/mocking/RandExp.d.ts.map +0 -1
  269. package/build/src/mocking/RandExp.js +0 -302
  270. package/build/src/mocking/RandExp.js.map +0 -1
  271. package/build/src/mocking/lib/ret.d.ts +0 -16
  272. package/build/src/mocking/lib/ret.d.ts.map +0 -1
  273. package/build/src/mocking/lib/ret.js +0 -284
  274. package/build/src/mocking/lib/ret.js.map +0 -1
  275. package/data/apis/APIC-187/APIC-187.raml +0 -21
  276. package/data/apis/APIC-187/dataType.raml +0 -132
  277. package/data/apis/APIC-187/example.raml +0 -84
  278. package/data/apis/APIC-188/APIC-188.raml +0 -21
  279. package/data/apis/APIC-188/dataType.raml +0 -132
  280. package/data/apis/APIC-188/example.raml +0 -84
  281. package/data/apis/APIC-233/APIC-233.raml +0 -15
  282. package/data/apis/APIC-391/APIC-391.raml +0 -44
  283. package/data/apis/APIC-391/examples/post-body-request-example.raml +0 -7
  284. package/data/apis/APIC-483/APIC-483.raml +0 -16
  285. package/data/apis/APIC-483/example/list-of-bank-succ.json +0 -32
  286. package/data/apis/APIC-483/schema/response-retrieve-list-bank.json +0 -68
  287. package/data/apis/APIC-487/APIC-487.raml +0 -36
  288. package/data/apis/APIC-655/APIC-655.raml +0 -44
  289. package/data/apis/APIC-655/delivery.json +0 -12
  290. package/data/apis/APIC-689/APIC-689.raml +0 -20
  291. package/data/apis/APIC-690/APIC-690.raml +0 -17
  292. package/data/apis/APIC-690/datatypes/Address.raml +0 -10
  293. package/data/apis/APIC-690/datatypes/Customer.raml +0 -17
  294. package/data/apis/APIC-690/examples/CustomerExample2.raml +0 -17
  295. package/data/apis/APIC-690/examples/CustomersExample.raml +0 -34
  296. package/data/apis/SE-10469/Purchase-Order-oagis-id-dd32f9c6c01048a19e15c423c9c741ae.json +0 -1383
  297. package/data/apis/SE-10469/SE-10469.raml +0 -11
  298. package/data/apis/SE-13092/Examples/PersonExample.raml +0 -7
  299. package/data/apis/SE-13092/SE-13092.raml +0 -37
  300. package/data/apis/SE-13092/datatypes/Address.raml +0 -5
  301. package/data/apis/SE-13092/datatypes/InlineType.raml +0 -5
  302. package/data/apis/SE-13092/datatypes/Person.raml +0 -15
  303. package/data/apis/SE-22063/SE-22063.raml +0 -14
  304. package/data/apis/SE-22063/stock.raml +0 -41
  305. package/data/apis/amf-helper-api/amf-helper-api.raml +0 -1024
  306. package/data/apis/amf-helper-api/examples/comment-example.json +0 -42
  307. package/data/apis/amf-helper-api/examples/commentCreateRequest-example.json +0 -7
  308. package/data/apis/amf-helper-api/examples/commentList-example.json +0 -48
  309. package/data/apis/amf-helper-api/examples/person.json +0 -14
  310. package/data/apis/amf-helper-api/examples/person.raml +0 -13
  311. package/data/apis/amf-helper-api/examples/person.xml +0 -14
  312. package/data/apis/amf-helper-api/libraries/comment-lib.raml +0 -143
  313. package/data/apis/amf-helper-api/library.raml +0 -7
  314. package/data/apis/amf-helper-api/schemas/person.json +0 -104
  315. package/data/apis/amf-helper-api/schemas/person.xsd +0 -26
  316. package/data/apis/amf-helper-api/traits/file.raml +0 -33
  317. package/data/apis/amf-helper-api/traits/pagination.raml +0 -80
  318. package/data/apis/amf-helper-api/traits/results.raml +0 -19
  319. package/data/apis/amf-helper-api/traits/visibility.raml +0 -14
  320. package/data/apis/amf-helper-api/types/app-person.raml +0 -101
  321. package/data/apis/amf-helper-api/types/dimensions.raml +0 -24
  322. package/data/apis/amf-helper-api/types/external-type.raml +0 -7
  323. package/data/apis/amf-helper-api/types/image.raml +0 -23
  324. package/data/apis/amf-helper-api/types/product.raml +0 -52
  325. package/data/apis/amf-helper-api/types/resource.raml +0 -11
  326. package/data/apis/amf-helper-api/types/standard-request.raml +0 -50
  327. package/data/apis/amf-helper-api/types/user.raml +0 -37
  328. package/data/apis/arc-demo-api/arc-demo-api.raml +0 -468
  329. package/data/apis/arc-demo-api/examples/e400.xml +0 -4
  330. package/data/apis/arc-demo-api/examples/e401.xml +0 -4
  331. package/data/apis/arc-demo-api/examples/e404.xml +0 -4
  332. package/data/apis/arc-demo-api/examples/image.xml +0 -5
  333. package/data/apis/arc-demo-api/examples/messages-example.json +0 -22
  334. package/data/apis/arc-demo-api/examples/messages-sent-example.json +0 -15
  335. package/data/apis/arc-demo-api/examples/person.json +0 -14
  336. package/data/apis/arc-demo-api/examples/person.url.encoded +0 -1
  337. package/data/apis/arc-demo-api/examples/person.xml +0 -14
  338. package/data/apis/arc-demo-api/examples/product.xml +0 -9
  339. package/data/apis/arc-demo-api/library.raml +0 -36
  340. package/data/apis/arc-demo-api/resourceTypes/app-person.raml +0 -49
  341. package/data/apis/arc-demo-api/resourceTypes/example-types.raml +0 -45
  342. package/data/apis/arc-demo-api/resourceTypes/image.raml +0 -23
  343. package/data/apis/arc-demo-api/resourceTypes/message-sent-type.raml +0 -23
  344. package/data/apis/arc-demo-api/resourceTypes/message-type.raml +0 -33
  345. package/data/apis/arc-demo-api/resourceTypes/product.raml +0 -52
  346. package/data/apis/arc-demo-api/resourceTypes/resource.raml +0 -11
  347. package/data/apis/arc-demo-api/schemas/error-response.xsd +0 -11
  348. package/data/apis/arc-demo-api/schemas/image.xsd +0 -11
  349. package/data/apis/arc-demo-api/schemas/person.json +0 -104
  350. package/data/apis/arc-demo-api/schemas/person.xsd +0 -26
  351. package/data/apis/arc-demo-api/schemas/product.xsd +0 -17
  352. package/data/apis/arc-demo-api/securitySchemes/basic.raml +0 -5
  353. package/data/apis/arc-demo-api/securitySchemes/oauth_2_0.raml +0 -29
  354. package/data/apis/arc-demo-api/securitySchemes/x-custom.raml +0 -26
  355. package/data/apis/arc-demo-api/traits/adminable.raml +0 -23
  356. package/data/apis/arc-demo-api/traits/pagination.raml +0 -83
  357. package/data/apis/arc-demo-api/traits/rate-limited.raml +0 -9
  358. package/data/apis/async-api/async-api.yaml +0 -96
  359. package/data/apis/example-generator-api/contact-email-example.raml +0 -6
  360. package/data/apis/example-generator-api/contact-example.raml +0 -5
  361. package/data/apis/example-generator-api/contact-fax-example.raml +0 -5
  362. package/data/apis/example-generator-api/contact-website-example.raml +0 -2
  363. package/data/apis/example-generator-api/example-1.raml +0 -6
  364. package/data/apis/example-generator-api/example-2.raml +0 -9
  365. package/data/apis/example-generator-api/example-3.raml +0 -4
  366. package/data/apis/example-generator-api/example-4.raml +0 -2
  367. package/data/apis/example-generator-api/example-5.raml +0 -4
  368. package/data/apis/example-generator-api/example-6.raml +0 -2
  369. package/data/apis/example-generator-api/example-7.raml +0 -5
  370. package/data/apis/example-generator-api/example-generator-api.raml +0 -423
  371. package/data/apis/example-generator-api/example.json +0 -14
  372. package/data/apis/example-generator-api/example.xml +0 -15
  373. package/data/apis/example-generator-api/example.xsd +0 -26
  374. package/data/apis/example-generator-api/examples/employee.raml +0 -7
  375. package/data/apis/example-generator-api/examples/employees.raml +0 -7
  376. package/data/apis/example-generator-api/linked-named-example.raml +0 -21
  377. package/data/apis/example-generator-api/named-example-with-link.raml +0 -5
  378. package/data/apis/example-generator-api/named-example.raml +0 -9
  379. package/data/apis/example-generator-api/user-json-example.raml +0 -17
  380. package/data/apis/example-generator-api/user-raml-example.raml +0 -37
  381. package/data/apis/example-generator-api/user.json +0 -8
  382. package/data/apis/example-generator-api/user.raml +0 -18
  383. package/data/apis/example-generator-api/users-json-example.raml +0 -17
  384. package/data/apis/example-generator-api/users-raml-example.raml +0 -32
  385. package/data/apis/example-generator-api/users.json +0 -8
  386. package/data/apis/expanded-api/expanded-api.raml +0 -8
  387. package/data/apis/flattened-api/flattened-api.raml +0 -8
  388. package/data/apis/multiple-servers/multiple-servers.yaml +0 -112
  389. package/data/apis/oas-3-api/oas-3-api.yaml +0 -356
  390. package/data/apis/oas-date/oas-date.yaml +0 -28
  391. package/data/apis/oas-types/oas-types.yaml +0 -159
  392. package/data/apis/oas-unions/oas-unions.yaml +0 -75
  393. package/data/apis/petstore/petstore.yaml +0 -954
  394. package/data/apis/raml-date/raml-date.raml +0 -28
  395. package/data/apis/recursive/recursive.raml +0 -14
  396. package/data/apis/schema-api/examples/person.json +0 -14
  397. package/data/apis/schema-api/examples/person.raml +0 -14
  398. package/data/apis/schema-api/examples/person.url.encoded +0 -1
  399. package/data/apis/schema-api/examples/person.xml +0 -14
  400. package/data/apis/schema-api/library/demo-types.raml +0 -43
  401. package/data/apis/schema-api/schema-api.raml +0 -656
  402. package/data/apis/schema-api/schemas/person.json +0 -104
  403. package/data/apis/schema-api/schemas/person.xsd +0 -26
  404. package/data/apis/schema-api/types/DemoPerson.raml +0 -67
  405. package/data/apis/secured-api/oauth-2-custom-settings.raml +0 -143
  406. package/data/apis/secured-api/oauth2-header-delivery.raml +0 -13
  407. package/data/apis/secured-api/oauth2-no-delivery.raml +0 -8
  408. package/data/apis/secured-api/oauth2-no-grants.raml +0 -12
  409. package/data/apis/secured-api/oauth2-pkce.raml +0 -13
  410. package/data/apis/secured-api/oauth2-query-delivery.raml +0 -13
  411. package/data/apis/secured-api/oauth_1_0.raml +0 -8
  412. package/data/apis/secured-api/oauth_1_0_no-settings.raml +0 -3
  413. package/data/apis/secured-api/oauth_1_0_no-signature.raml +0 -7
  414. package/data/apis/secured-api/oauth_1_0_signature.raml +0 -8
  415. package/data/apis/secured-api/passthrough-querystring.raml +0 -16
  416. package/data/apis/secured-api/passthrough.raml +0 -24
  417. package/data/apis/secured-api/secured-api.raml +0 -231
  418. package/data/apis/secured-api/x-custom.raml +0 -33
  419. package/data/apis/secured-api/x-other.raml +0 -29
  420. package/data/apis/secured-api/x-query-string.raml +0 -16
  421. package/data/apis/tracked-examples/datatypes/employee.raml +0 -5
  422. package/data/apis/tracked-examples/examples/employee.raml +0 -4
  423. package/data/apis/tracked-examples/examples/employees.raml +0 -8
  424. package/data/apis/tracked-examples/tracked-to-linked.raml +0 -28
  425. package/data/model.js +0 -129
  426. package/data/models/APIC-187.json +0 -11416
  427. package/data/models/APIC-188.json +0 -11416
  428. package/data/models/APIC-233.json +0 -539
  429. package/data/models/APIC-391.json +0 -1903
  430. package/data/models/APIC-483.json +0 -3110
  431. package/data/models/APIC-487.json +0 -1225
  432. package/data/models/APIC-655.json +0 -3145
  433. package/data/models/APIC-689.json +0 -797
  434. package/data/models/APIC-690.json +0 -5992
  435. package/data/models/SE-10469.json +0 -22898
  436. package/data/models/SE-13092.json +0 -2769
  437. package/data/models/SE-22063.json +0 -2314
  438. package/data/models/amf-helper-api.json +0 -84457
  439. package/data/models/arc-demo-api.json +0 -52041
  440. package/data/models/async-api.json +0 -3227
  441. package/data/models/example-generator-api.json +0 -45209
  442. package/data/models/expanded-api.json +0 -251
  443. package/data/models/flattened-api.json +0 -251
  444. package/data/models/multiple-servers.json +0 -2769
  445. package/data/models/oas-3-api.json +0 -10590
  446. package/data/models/oas-date.json +0 -637
  447. package/data/models/oas-types.json +0 -5352
  448. package/data/models/oas-unions.json +0 -1935
  449. package/data/models/petstore.json +0 -27712
  450. package/data/models/raml-date.json +0 -1114
  451. package/data/models/recursive.json +0 -610
  452. package/data/models/schema-api.json +0 -35527
  453. package/data/models/secured-api.json +0 -21071
  454. package/data/models/tracked-to-linked.json +0 -1914
  455. package/src/amf/AmfMixin.ts +0 -1726
  456. package/src/amf/AmfSerializer.ts +0 -2358
  457. package/src/amf/AmfTypes.ts +0 -147
  458. package/src/amf/ApiExampleGenerator.ts +0 -122
  459. package/src/amf/ApiMonacoSchemaGenerator.ts +0 -332
  460. package/src/amf/ApiSchemaGenerator.ts +0 -115
  461. package/src/amf/ApiSchemaValues.ts +0 -509
  462. package/src/amf/Parsing.ts +0 -50
  463. package/src/amf/Utils.ts +0 -172
  464. package/src/amf/data-node/DataNodeBase.ts +0 -83
  465. package/src/amf/data-node/JsonDataNodeGenerator.ts +0 -24
  466. package/src/amf/data-node/README.md +0 -3
  467. package/src/amf/data-node/UrlEncodedDataNodeGenerator.ts +0 -49
  468. package/src/amf/data-node/XmlDataNodeGenerator.ts +0 -46
  469. package/src/amf/definitions/Amf.ts +0 -440
  470. package/src/amf/definitions/Api.ts +0 -445
  471. package/src/amf/definitions/Base.ts +0 -13
  472. package/src/amf/definitions/Namespace.ts +0 -357
  473. package/src/amf/definitions/Shapes.ts +0 -438
  474. package/src/amf/models/AmfDataNode.ts +0 -210
  475. package/src/amf/shape/README.md +0 -4
  476. package/src/amf/shape/ShapeBase.ts +0 -174
  477. package/src/amf/shape/ShapeJsonSchemaGenerator.ts +0 -457
  478. package/src/amf/shape/ShapeXmlSchemaGenerator.ts +0 -933
  479. package/src/events/amf/AmfEventTypes.ts +0 -6
  480. package/src/events/amf/AmfEvents.ts +0 -78
  481. package/src/mocking/RandExp.ts +0 -335
  482. package/src/mocking/lib/ret.ts +0 -279
  483. package/tests/unit/amf/APIC-187.spec.ts +0 -41
  484. package/tests/unit/amf/APIC-188.spec.ts +0 -30
  485. package/tests/unit/amf/APIC-233.spec.ts +0 -32
  486. package/tests/unit/amf/APIC-391.spec.ts +0 -39
  487. package/tests/unit/amf/APIC-487.spec.ts +0 -44
  488. package/tests/unit/amf/APIC-655.spec.ts +0 -41
  489. package/tests/unit/amf/APIC-689.spec.ts +0 -28
  490. package/tests/unit/amf/APIC-690.spec.ts +0 -93
  491. package/tests/unit/amf/AmfLoader.ts +0 -538
  492. package/tests/unit/amf/AmfMixin.spec.ts +0 -1707
  493. package/tests/unit/amf/ApiExampleGenerator.spec.ts +0 -250
  494. package/tests/unit/amf/ApiMonacoSchemaGenerator.spec.ts +0 -183
  495. package/tests/unit/amf/ApiSchemaValues.spec.ts +0 -602
  496. package/tests/unit/amf/Namepsace.spec.ts +0 -494
  497. package/tests/unit/amf/SE-10469.spec.ts +0 -35
  498. package/tests/unit/amf/SE-13092.spec.ts +0 -64
  499. package/tests/unit/amf/SE-22063.spec.ts +0 -45
  500. package/tests/unit/amf/raml-examples.spec.ts +0 -43
  501. package/tests/unit/amf/schema_gen_array.spec.ts +0 -199
  502. package/tests/unit/amf/schema_gen_oas.spec.ts +0 -140
  503. package/tests/unit/amf/schema_gen_object.spec.ts +0 -279
  504. package/tests/unit/amf/schema_gen_scalar.spec.ts +0 -143
  505. package/tests/unit/amf/schema_gen_union.spec.ts +0 -401
  506. package/tests/unit/amf/schema_gen_unknown.spec.ts +0 -42
  507. package/tests/unit/amf/schema_gen_xml.spec.ts +0 -726
  508. package/tests/unit/amf/serializer/APIC-483.spec.ts +0 -36
  509. package/tests/unit/amf/serializer/Anotations.spec.ts +0 -50
  510. package/tests/unit/amf/serializer/Api.spec.ts +0 -210
  511. package/tests/unit/amf/serializer/Documentation.spec.ts +0 -52
  512. package/tests/unit/amf/serializer/Endpoints.spec.ts +0 -172
  513. package/tests/unit/amf/serializer/Operations.spec.ts +0 -330
  514. package/tests/unit/amf/serializer/Parameters.spec.ts +0 -149
  515. package/tests/unit/amf/serializer/PayloadExamples.spec.ts +0 -152
  516. package/tests/unit/amf/serializer/Security.spec.ts +0 -626
  517. package/tests/unit/amf/serializer/Server.spec.ts +0 -78
  518. package/tests/unit/amf/serializer/Shapes.spec.ts +0 -304
  519. package/tests/unit/amf/serializer/SourceMaps.spec.ts +0 -52
  520. package/tests/unit/amf/shapes/ShapeXmlSchemaGenerator.spec.ts +0 -28
  521. package/tests/unit/amf/tracked-to-linked.spec.ts +0 -90
  522. package/tests/unit/amf/xml-data-processing.spec.ts +0 -217
  523. package/tests/unit/events/amf.spec.ts +0 -151
@@ -1,36 +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 { IApiNodeShape, IApiTupleShape } from '../../../../src/amf/definitions/Shapes.js'
6
- import { AmfNamespace } from '../../../../src/amf/definitions/Namespace.js'
7
-
8
- test.group('APIC-483', (group) => {
9
- const fileName = 'APIC-483'
10
- const loader = new AmfLoader()
11
-
12
- let api: IAmfDocument
13
- let serializer: AmfSerializer
14
- group.setup(async () => {
15
- api = await loader.getGraph(fileName)
16
- serializer = new AmfSerializer()
17
- serializer.amf = api
18
- })
19
-
20
- test('serializes a TupleShape', ({ assert }) => {
21
- const expects = loader.lookupExpects(api, '/banks', 'post')
22
- // @ts-expect-error Used in testing
23
- const payload = expects[loader._getAmfKey(AmfNamespace.aml.vocabularies.apiContract.payload)][0]
24
- const shape = payload[serializer._getAmfKey(AmfNamespace.aml.vocabularies.shapes.schema)][0]
25
- const result = serializer.unknownShape(shape) as IApiNodeShape
26
- const { examples, properties } = result
27
-
28
- // serializer recognizes that the this example is referenced to a payload and not to a type.
29
- assert.lengthOf(examples, 0, 'has the examples')
30
- assert.lengthOf(properties, 1, 'has the properties')
31
- const array = properties[0].range as IApiTupleShape
32
- const { types, items } = array
33
- assert.include(types, AmfNamespace.aml.vocabularies.shapes.TupleShape, 'range has the TupleShape')
34
- assert.lengthOf(items, 1, 'range has the items')
35
- })
36
- })
@@ -1,50 +0,0 @@
1
- import { test } from '@japa/runner'
2
- import { AmfSerializer } from '../../../../src/amf/AmfSerializer.js'
3
- import type { IAmfDocument } from '../../../../src/amf/definitions/Amf.js'
4
- import type { IApiObjectNode, IApiScalarNode } from '../../../../src/amf/definitions/Shapes.js'
5
- import { AmfLoader } from '../AmfLoader.js'
6
-
7
- const loader = new AmfLoader()
8
-
9
- test.group('Annotations', (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('ObjectNode annotations', ({ assert }) => {
19
- const shape = loader.lookupOperation(api, '/about', 'get')
20
- const result = serializer.operation(shape)
21
- assert.typeOf(result, 'object', 'returns an object')
22
- const { customDomainProperties } = result
23
- assert.typeOf(customDomainProperties, 'array', 'has the customDomainProperties')
24
- assert.lengthOf(customDomainProperties, 1, 'has a single annotation')
25
- const [annotation] = customDomainProperties
26
- assert.equal(annotation.name, 'clearanceLevel', 'has the extensionName')
27
- assert.typeOf(annotation.extension, 'object', 'has the extension')
28
- const { properties } = annotation.extension as IApiObjectNode
29
- assert.typeOf(properties, 'object', 'has properties')
30
- const { level, signature } = properties
31
- assert.typeOf(level, 'object', 'has the level property')
32
- assert.typeOf(signature, 'object', 'has the level property')
33
- })
34
-
35
- test('ScalarShape annotations', ({ assert }) => {
36
- const shape = loader.lookupOperation(api, '/files', 'post')
37
- const result = serializer.operation(shape)
38
- assert.typeOf(result, 'object', 'returns an object')
39
- const { customDomainProperties } = result
40
- assert.typeOf(customDomainProperties, 'array', 'has the customDomainProperties')
41
- assert.lengthOf(customDomainProperties, 1, 'has a single annotation')
42
- const [annotation] = customDomainProperties
43
- assert.equal(annotation.name, 'deprecated', 'has the extensionName')
44
- assert.typeOf(annotation.extension, 'object', 'has the extension')
45
-
46
- const { value, dataType } = annotation.extension as IApiScalarNode
47
- assert.equal(dataType, 'http://www.w3.org/2001/XMLSchema#string', 'has the dataType')
48
- assert.equal(value, 'This operation is deprecated and will be removed.', 'has the value')
49
- })
50
- })
@@ -1,210 +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 { IAmfDomainElement } from '../../../../src/amf/definitions/Amf.js'
5
-
6
- const loader = new AmfLoader()
7
-
8
- test.group('apiSummary()', (group) => {
9
- let petstore: IAmfDomainElement
10
- let demoApi: IAmfDomainElement
11
- let petstoreSerializer: AmfSerializer
12
- let demoSerializer: AmfSerializer
13
-
14
- group.setup(async () => {
15
- const a1 = await loader.getGraph('petstore')
16
- const a2 = await loader.getGraph('arc-demo-api')
17
- petstoreSerializer = new AmfSerializer(a1)
18
- demoSerializer = new AmfSerializer(a2)
19
- petstore = petstoreSerializer._computeEncodes(a1) as IAmfDomainElement
20
- demoApi = demoSerializer._computeEncodes(a2) as IAmfDomainElement
21
- })
22
-
23
- test('serializes the id', ({ assert }) => {
24
- const result = demoSerializer.apiSummary(demoApi)
25
- assert.typeOf(result.id, 'string', 'has the id')
26
- assert.equal(result.id, demoApi['@id'], 'has the web api id')
27
- })
28
-
29
- test('serializes the types', ({ assert }) => {
30
- const result = demoSerializer.apiSummary(demoApi)
31
- assert.typeOf(result.types, 'array', 'has the id')
32
- assert.equal(result.types.length, demoApi['@type'].length, 'has all types')
33
- })
34
-
35
- test('serializes empty customDomainProperties', ({ assert }) => {
36
- const result = demoSerializer.apiSummary(demoApi)
37
- assert.typeOf(result.customDomainProperties, 'array', 'has the customDomainProperties')
38
- assert.lengthOf(result.customDomainProperties, 0, 'has no values')
39
- })
40
-
41
- test('serializes the sourceMaps', ({ assert }) => {
42
- const result = demoSerializer.apiSummary(demoApi)
43
- assert.typeOf(result.sourceMaps, 'object', 'has the sourceMaps')
44
- })
45
-
46
- test('serializes the schemes', ({ assert }) => {
47
- const result = demoSerializer.apiSummary(demoApi)
48
- assert.deepEqual(result.schemes, ['HTTP', 'HTTPS'])
49
- })
50
-
51
- test('has default schemes', ({ assert }) => {
52
- const result = petstoreSerializer.apiSummary(petstore)
53
- assert.deepEqual(result.schemes, [])
54
- })
55
-
56
- test('serializes the accepts', ({ assert }) => {
57
- const result = demoSerializer.apiSummary(demoApi)
58
- assert.deepEqual(result.accepts, ['application/json', 'application/xml'])
59
- })
60
-
61
- test('has default accepts', ({ assert }) => {
62
- const result = petstoreSerializer.apiSummary(petstore)
63
- assert.deepEqual(result.accepts, [])
64
- })
65
-
66
- test('serializes the contentType', ({ assert }) => {
67
- const result = demoSerializer.apiSummary(demoApi)
68
- assert.deepEqual(result.contentType, ['application/json', 'application/xml'])
69
- })
70
-
71
- test('has default contentType', ({ assert }) => {
72
- const result = petstoreSerializer.apiSummary(petstore)
73
- assert.deepEqual(result.contentType, [])
74
- })
75
-
76
- test('serializes the documentations', ({ assert }) => {
77
- const result = petstoreSerializer.apiSummary(petstore)
78
- assert.typeOf(result.documentations, 'array', 'has the array')
79
- assert.lengthOf(result.documentations, 1, 'has a single documentation')
80
- })
81
-
82
- test('serializes the tags', ({ assert }) => {
83
- const result = petstoreSerializer.apiSummary(petstore)
84
- assert.typeOf(result.tags, 'array', 'has the tags')
85
- assert.lengthOf(result.tags, 3, 'has all tags')
86
- const [tag] = result.tags
87
- assert.equal(tag.name, 'pet', 'has the tags definition')
88
- })
89
-
90
- test('has default tags', ({ assert }) => {
91
- const result = demoSerializer.apiSummary(demoApi)
92
- assert.deepEqual(result.tags, [])
93
- })
94
-
95
- test('serializes the license', ({ assert }) => {
96
- const result = petstoreSerializer.apiSummary(petstore)
97
- const { name, url } = result.license!
98
- assert.equal(name, 'Apache 2.0', 'has the license.name')
99
- assert.equal(url, 'http://www.apache.org/licenses/LICENSE-2.0.html', 'has the license.url')
100
- })
101
-
102
- test('serializes the provider', ({ assert }) => {
103
- const result = petstoreSerializer.apiSummary(petstore)
104
- const { name, url, email } = result.provider!
105
- assert.equal(name, 'Swagger IO', 'has the provider.name')
106
- assert.equal(url, 'swagger.io', 'has the provider.url')
107
- assert.equal(email, 'apiteam@swagger.io', 'has the provider.email')
108
- })
109
- })
110
-
111
- test.group('api()', (group) => {
112
- let demoApi: IAmfDomainElement
113
- let demoSerializer: AmfSerializer
114
-
115
- group.setup(async () => {
116
- const a2 = await loader.getGraph('arc-demo-api')
117
- demoSerializer = new AmfSerializer(a2)
118
- demoApi = demoSerializer._computeEncodes(a2) as IAmfDomainElement
119
- })
120
-
121
- test('has the ApiSummary properties', ({ assert }) => {
122
- const result = demoSerializer.api(demoApi)
123
- assert.typeOf(result.id, 'string', 'has the id')
124
- assert.equal(result.id, demoApi['@id'], 'has the web api id')
125
- assert.deepEqual(result.schemes, ['HTTP', 'HTTPS'])
126
- assert.deepEqual(result.accepts, ['application/json', 'application/xml'])
127
- })
128
-
129
- test('has the end points', ({ assert }) => {
130
- const result = demoSerializer.api(demoApi)
131
- assert.typeOf(result.endPoints, 'array', 'has the endpoints')
132
- const [endPoint] = result.endPoints
133
- assert.equal(endPoint.path, '/test-parameters/{feature}', 'has the end point definition')
134
- })
135
-
136
- test('has the servers', ({ assert }) => {
137
- const result = demoSerializer.api(demoApi)
138
- assert.typeOf(result.servers, 'array', 'has the servers')
139
- const [server] = result.servers
140
- assert.equal(server.url, 'http://{instance}.domain.com/', 'has the server definition')
141
- })
142
- })
143
-
144
- test.group('webApi()', (group) => {
145
- let demoApi: IAmfDomainElement
146
- let demoSerializer: AmfSerializer
147
-
148
- group.setup(async () => {
149
- const a2 = await loader.getGraph('arc-demo-api')
150
- demoSerializer = new AmfSerializer(a2)
151
- demoApi = demoSerializer._computeEncodes(a2) as IAmfDomainElement
152
- })
153
-
154
- test('has the ApiSummary properties', ({ assert }) => {
155
- const result = demoSerializer.webApi(demoApi)
156
- assert.typeOf(result.id, 'string', 'has the id')
157
- assert.equal(result.id, demoApi['@id'], 'has the web api id')
158
- assert.deepEqual(result.schemes, ['HTTP', 'HTTPS'])
159
- assert.deepEqual(result.accepts, ['application/json', 'application/xml'])
160
- })
161
-
162
- test('has the end points', ({ assert }) => {
163
- const result = demoSerializer.webApi(demoApi)
164
- assert.typeOf(result.endPoints, 'array', 'has the endpoints')
165
- const [endPoint] = result.endPoints
166
- assert.equal(endPoint.path, '/test-parameters/{feature}', 'has the end point definition')
167
- })
168
-
169
- test('has the servers', ({ assert }) => {
170
- const result = demoSerializer.webApi(demoApi)
171
- assert.typeOf(result.servers, 'array', 'has the servers')
172
- const [server] = result.servers
173
- assert.equal(server.url, 'http://{instance}.domain.com/', 'has the server definition')
174
- })
175
- })
176
-
177
- test.group('asyncApi()', (group) => {
178
- let asyncApi: IAmfDomainElement
179
- let demoSerializer: AmfSerializer
180
- let asyncSerializer: AmfSerializer
181
-
182
- group.setup(async () => {
183
- const a2 = await loader.getGraph('arc-demo-api')
184
- const a3 = await loader.getGraph('async-api')
185
- demoSerializer = new AmfSerializer(a2)
186
- asyncSerializer = new AmfSerializer(a3)
187
- asyncApi = asyncSerializer._computeEncodes(a3) as IAmfDomainElement
188
- })
189
-
190
- test('has the ApiSummary properties', ({ assert }) => {
191
- const result = demoSerializer.asyncApi(asyncApi)
192
- assert.typeOf(result.id, 'string', 'has the id')
193
- assert.equal(result.id, asyncApi['@id'], 'has the web api id')
194
- assert.equal(result.name, 'Hello world application')
195
- })
196
-
197
- test('has the end points', ({ assert }) => {
198
- const result = demoSerializer.asyncApi(asyncApi)
199
- assert.typeOf(result.endPoints, 'array', 'has the endpoints')
200
- const [endPoint] = result.endPoints
201
- assert.equal(endPoint.path, 'hello', 'has the end point definition')
202
- })
203
-
204
- test('has the servers', ({ assert }) => {
205
- const result = demoSerializer.asyncApi(asyncApi)
206
- assert.typeOf(result.servers, 'array', 'has the servers')
207
- const [server] = result.servers
208
- assert.equal(server.url, 'broker.mycompany.com', 'has the server definition')
209
- })
210
- })
@@ -1,52 +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 { AmfNamespace } from '../../../../src/amf/definitions/Namespace.js'
6
-
7
- const loader = new AmfLoader()
8
-
9
- test.group('OAS documentation', (group) => {
10
- let api: IAmfDocument
11
- let serializer: AmfSerializer
12
- group.setup(async () => {
13
- api = await loader.getGraph('petstore')
14
- serializer = new AmfSerializer()
15
- serializer.amf = api
16
- })
17
-
18
- test('has the documentation properties', ({ assert }) => {
19
- const enc = serializer._computeEncodes(api)!
20
- // @ts-expect-error Used in testing
21
- const docs = enc[serializer._getAmfKey(AmfNamespace.aml.vocabularies.core.documentation)][0]
22
- const result = serializer.documentation(docs)
23
- assert.typeOf(result, 'object', 'has the result')
24
- assert.equal(result.url, 'http://swagger.io', 'has the url')
25
- assert.equal(result.description, 'Find out more about Swagger', 'has the description')
26
- assert.deepEqual(result.customDomainProperties, [], 'has no customDomainProperties')
27
- assert.typeOf(result.sourceMaps, 'object', 'has source maps')
28
- })
29
- })
30
-
31
- test.group('RAML documentation', (group) => {
32
- let api: IAmfDocument
33
- let serializer: AmfSerializer
34
- group.setup(async () => {
35
- api = await loader.getGraph('amf-helper-api')
36
- serializer = new AmfSerializer()
37
- serializer.amf = api
38
- })
39
-
40
- test('has the documentation properties', ({ assert }) => {
41
- const enc = serializer._computeEncodes(api)!
42
- // @ts-expect-error Used in testing
43
- const docs = enc[serializer._getAmfKey(AmfNamespace.aml.vocabularies.core.documentation)][0]
44
- const result = serializer.documentation(docs)
45
- assert.typeOf(result, 'object', 'has the result')
46
- assert.isUndefined(result.url, 'has no url')
47
- assert.equal(result.title, 'How to begin', 'has the title')
48
- assert.equal(result.description, 'Example content\n', 'has the description')
49
- assert.deepEqual(result.customDomainProperties, [], 'has no customDomainProperties')
50
- assert.typeOf(result.sourceMaps, 'object', 'has source maps')
51
- })
52
- })
@@ -1,172 +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 { IApiObjectNode, IApiScalarShape } 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 endpoints', (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('translates an endpoint', ({ assert }) => {
20
- const shape = loader.lookupEndpoint(api, '/pet')
21
- const result = serializer.endPoint(shape)
22
- assert.typeOf(result, 'object', 'returns an object')
23
- assert.include(result.types, AmfNamespace.aml.vocabularies.apiContract.EndPoint, 'has the EndPoint type')
24
- assert.equal(result.path, '/pet', 'has the path')
25
- assert.typeOf(result.operations, 'array', 'has the operations')
26
- assert.lengthOf(result.operations, 2, 'has all operations')
27
- assert.typeOf(result.sourceMaps, 'object', 'has source maps')
28
- })
29
-
30
- test('adds the servers property', ({ assert }) => {
31
- const shape = loader.lookupEndpoint(api, '/pet')
32
- const result = serializer.endPoint(shape)
33
- assert.typeOf(result.servers, 'array', 'has the servers')
34
- assert.lengthOf(result.servers, 1, 'has a single server')
35
- assert.include(result.servers[0].types, AmfNamespace.aml.vocabularies.apiContract.Server, 'has the Server type')
36
- })
37
-
38
- test('adds the summary & description property', ({ assert }) => {
39
- const shape = loader.lookupEndpoint(api, '/user/{username}')
40
- const result = serializer.endPoint(shape)
41
- assert.equal(result.summary, 'Represents a user', 'has the summary')
42
- assert.typeOf(result.description, 'string', 'has description property')
43
- })
44
- })
45
-
46
- test.group('RAML endpoints', (group) => {
47
- let demoApi: IAmfDocument
48
- let arcDemoApi: IAmfDocument
49
- let demoSerializer: AmfSerializer
50
- let arcDemoSerializer: AmfSerializer
51
- group.setup(async () => {
52
- demoApi = await loader.getGraph('amf-helper-api')
53
- arcDemoApi = await loader.getGraph('arc-demo-api')
54
- demoSerializer = new AmfSerializer(demoApi)
55
- arcDemoSerializer = new AmfSerializer(arcDemoApi)
56
- })
57
-
58
- test('has annotations', ({ assert }) => {
59
- const shape = loader.lookupEndpoint(demoApi, '/annotations')
60
- const result = demoSerializer.endPoint(shape)
61
- assert.typeOf(result.customDomainProperties, 'array', 'has the array')
62
- assert.lengthOf(result.customDomainProperties, 1, 'has the annotation')
63
- const [item] = result.customDomainProperties
64
- assert.equal(item.name, 'clearanceLevel', 'has the name')
65
- const typed = item.extension as IApiObjectNode
66
- assert.typeOf(typed.properties, 'object', 'has the properties')
67
- assert.lengthOf(Object.keys(typed.properties), 2, 'has all properties')
68
- })
69
-
70
- test('has parameters', ({ assert }) => {
71
- const shape = loader.lookupEndpoint(demoApi, '/{groupId}/{assetId}/{version}')
72
- const result = demoSerializer.endPoint(shape)
73
- const { parameters } = result
74
- assert.typeOf(parameters, 'array', 'has the array')
75
- assert.lengthOf(parameters, 3, 'has the parameters')
76
- const [p1, p2, p3] = parameters
77
- assert.include(p1.types, AmfNamespace.aml.vocabularies.apiContract.Parameter, 'p1 has the type')
78
- assert.include(p2.types, AmfNamespace.aml.vocabularies.apiContract.Parameter, 'p2 has the type')
79
- assert.include(p3.types, AmfNamespace.aml.vocabularies.apiContract.Parameter, 'p3 has the type')
80
- assert.equal(p1.name, 'assetId', 'p1 has the name')
81
- assert.equal(p2.name, 'groupId', 'p2 has the name')
82
- assert.equal(p3.name, 'version', 'p3 has the name')
83
- assert.equal(p1.paramName, 'assetId', 'p1 has the paramName')
84
- assert.equal(p2.paramName, 'groupId', 'p2 has the paramName')
85
- assert.equal(p3.paramName, 'version', 'p3 has the paramName')
86
- assert.isTrue(p1.required, 'p1 has the required')
87
- assert.isTrue(p2.required, 'p2 has the required')
88
- assert.isTrue(p3.required, 'p3 has the required')
89
- assert.equal(p1.binding, 'path', 'p1 has the binding')
90
- assert.equal(p2.binding, 'path', 'p2 has the binding')
91
- assert.equal(p3.binding, 'path', 'p3 has the binding')
92
- assert.typeOf(p1.schema, 'object', 'p1 has the schema')
93
- assert.typeOf(p2.schema, 'object', 'p2 has the schema')
94
- assert.typeOf(p3.schema, 'object', 'p3 has the schema')
95
- assert.equal(
96
- (p1.schema as IApiScalarShape).dataType,
97
- AmfNamespace.w3.xmlSchema.string,
98
- 'p1.schema has the dataType'
99
- )
100
- assert.equal(
101
- (p2.schema as IApiScalarShape).dataType,
102
- AmfNamespace.w3.xmlSchema.string,
103
- 'p2.schema has the dataType'
104
- )
105
- assert.equal(
106
- (p3.schema as IApiScalarShape).dataType,
107
- AmfNamespace.aml.vocabularies.shapes.number,
108
- 'p3.schema has the dataType'
109
- )
110
- })
111
-
112
- test('adds resource type definition', ({ assert }) => {
113
- const shape = loader.lookupEndpoint(demoApi, '/files/{fileId}')
114
- const result = demoSerializer.endPoint(shape)
115
- const { operations } = result
116
- const get = operations.find((o) => o.method === 'get')!
117
- const param = get.request!.queryParameters.find((p) => p.paramName === 'access_token')
118
- assert.ok(param)
119
- })
120
-
121
- test('adds a resource type extension', ({ assert }) => {
122
- const shape = loader.lookupEndpoint(arcDemoApi, '/products')
123
- const result = arcDemoSerializer.endPoint(shape)
124
- const { extends: extensions } = result
125
- assert.typeOf(extensions, 'array', 'has the extensions array')
126
- assert.lengthOf(extensions, 1, 'has a single extension')
127
-
128
- const [type] = extensions
129
-
130
- assert.typeOf(type.id, 'string', 'has the id')
131
- assert.typeOf(type.types, 'array', 'has the types')
132
- assert.include(
133
- type.types,
134
- AmfNamespace.aml.vocabularies.apiContract.ParametrizedResourceType,
135
- 'has the type in the types'
136
- )
137
- assert.equal(type.name, 'RequestErrorResponse', 'has the name')
138
- assert.typeOf(type.target, 'object', 'has the target definition')
139
- })
140
-
141
- test('adds a trait extension', ({ assert }) => {
142
- const shape = loader.lookupEndpoint(arcDemoApi, '/orgs/{orgId}')
143
- const result = arcDemoSerializer.endPoint(shape)
144
- const { extends: extensions } = result
145
- assert.typeOf(extensions, 'array', 'has the extensions array')
146
- assert.lengthOf(extensions, 1, 'has a single extension')
147
-
148
- const [type] = extensions
149
-
150
- assert.typeOf(type.id, 'string', 'has the id')
151
- assert.typeOf(type.types, 'array', 'has the types')
152
- assert.include(type.types, AmfNamespace.aml.vocabularies.apiContract.ParametrizedTrait, 'has the type in the types')
153
- assert.equal(type.name, 'RateLimited', 'has the name')
154
- assert.typeOf(type.target, 'object', 'has the target definition')
155
- })
156
-
157
- test('adds both a trait and a resource type extensions', ({ assert }) => {
158
- const shape = loader.lookupEndpoint(arcDemoApi, '/people')
159
- const result = arcDemoSerializer.endPoint(shape)
160
- const { extends: extensions } = result
161
- assert.typeOf(extensions, 'array', 'has the extensions array')
162
- assert.lengthOf(extensions, 2, 'has both extensions')
163
-
164
- const type = extensions.find((e) =>
165
- e.types.includes(AmfNamespace.aml.vocabularies.apiContract.ParametrizedResourceType)
166
- )
167
- const trait = extensions.find((e) => e.types.includes(AmfNamespace.aml.vocabularies.apiContract.ParametrizedTrait))
168
-
169
- assert.ok(type, 'has the resource type')
170
- assert.ok(trait, 'has the trait')
171
- })
172
- })