@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,143 +0,0 @@
1
- import { test } from '@japa/runner'
2
- import { DOMParser } from '@xmldom/xmldom'
3
- import { AmfNamespace as ns } from '../../../src/amf/definitions/Namespace.js'
4
- import { ApiSchemaGenerator, ISchemaExample } from '../../../src/amf/ApiSchemaGenerator.js'
5
- import { AmfLoader } from './AmfLoader.js'
6
- import { IAmfDocument } from '../../../src/amf/definitions/Amf.js'
7
-
8
- const loader = new AmfLoader()
9
- const jsonMime = 'application/json'
10
- const xmlMime = 'application/xml'
11
-
12
- test.group(`scalar values / ${jsonMime}`, (group) => {
13
- let model: IAmfDocument
14
-
15
- group.setup(async () => {
16
- model = await loader.getGraph('schema-api')
17
- })
18
-
19
- test('generates a schema without a value', async ({ assert }) => {
20
- const shape = loader.getShape(model, 'ScalarType')
21
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime)
22
- assert.typeOf(result, 'string')
23
- })
24
-
25
- test('generates a schema without mocked value', async ({ assert }) => {
26
- const shape = loader.getShape(model, 'ScalarType')
27
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime, {
28
- renderMocked: true,
29
- })
30
- assert.typeOf(result, 'string', 'is a string')
31
- assert.isNotEmpty(result, 'has a value')
32
- })
33
-
34
- test('generates a schema with the default value', async ({ assert }) => {
35
- const shape = loader.getShape(model, 'ScalarWithTraits')
36
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime)
37
- assert.strictEqual(result, 'test')
38
- })
39
-
40
- test('generates a schema with the example value', async ({ assert }) => {
41
- const shape = loader.getShape(model, 'ScalarWithExample')
42
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime, {
43
- renderExamples: true,
44
- })
45
- assert.strictEqual(result, 'A string')
46
- })
47
-
48
- test('generates a schema with the first enum value', async ({ assert }) => {
49
- const shape = loader.getShape(model, 'ScalarWithEnum')
50
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime)
51
- assert.strictEqual(result, 'A')
52
- })
53
-
54
- // Apparently AMF does not move properties from the parent scalar shape
55
- test('generates a schema for a parent', async ({ assert }) => {
56
- const shape = loader.getShape(model, 'ScalarWithParent')
57
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime)
58
- assert.strictEqual(result, 'test')
59
- }).skip()
60
-
61
- test('generates the example', async ({ assert }) => {
62
- const shape = loader.getShape(model, 'ScalarWithExample')
63
- const result = ApiSchemaGenerator.asExample(shape, jsonMime, {
64
- renderExamples: true,
65
- }) as ISchemaExample
66
- assert.typeOf(result, 'object', 'returns an object')
67
- assert.isTrue(result.strict, 'has the strict property')
68
- assert.deepEqual(result.types, [ns.aml.vocabularies.apiContract.Example], 'has the types property')
69
- assert.equal(result.mediaType, jsonMime, 'has the mediaType property')
70
- assert.strictEqual(result.renderValue, 'A string', 'has the value')
71
- })
72
- })
73
-
74
- test.group(`scalar values / ${xmlMime}`, (group) => {
75
- let model: IAmfDocument
76
-
77
- group.setup(async () => {
78
- model = await loader.getGraph('schema-api')
79
- })
80
-
81
- test('generates a schema without a value', async ({ assert }) => {
82
- const shape = loader.getShape(model, 'ScalarType')
83
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime)
84
-
85
- const parser = new DOMParser()
86
- const doc = parser.parseFromString(result as string, 'application/xml')
87
- const node = doc.getElementsByTagName('ScalarType')[0]
88
- assert.ok(node, 'has the schema name')
89
- assert.equal((node.textContent as string).trim(), '')
90
- })
91
-
92
- test('generates a schema without a mocked value', async ({ assert }) => {
93
- const shape = loader.getShape(model, 'ScalarType')
94
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
95
- renderMocked: true,
96
- })
97
-
98
- const parser = new DOMParser()
99
- const doc = parser.parseFromString(result as string, 'application/xml')
100
- const node = doc.getElementsByTagName('ScalarType')[0]
101
- assert.ok(node, 'has the schema name')
102
- assert.isNotEmpty((node.textContent as string).trim())
103
- })
104
-
105
- test('generates a schema with the default value', async ({ assert }) => {
106
- const shape = loader.getShape(model, 'ScalarWithTraits')
107
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime)
108
- assert.strictEqual(result, '<ScalarWithTraits>test</ScalarWithTraits>')
109
- })
110
-
111
- test('generates a schema with the example value', async ({ assert }) => {
112
- const shape = loader.getShape(model, 'ScalarWithExample')
113
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
114
- renderExamples: true,
115
- })
116
- assert.strictEqual(result, '<ScalarWithExample>A string</ScalarWithExample>')
117
- })
118
-
119
- test('generates a schema with the first enum value', async ({ assert }) => {
120
- const shape = loader.getShape(model, 'ScalarWithEnum')
121
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime)
122
- assert.strictEqual(result, '<ScalarWithEnum>A</ScalarWithEnum>')
123
- })
124
-
125
- // Apparently AMF does not move properties from the parent scalar shape
126
- test('generates a schema for a parent', async ({ assert }) => {
127
- const shape = loader.getShape(model, 'ScalarWithParent')
128
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime)
129
- assert.strictEqual(result, '<ScalarWithParent>test</ScalarWithParent>')
130
- }).skip()
131
-
132
- test('generates the example', async ({ assert }) => {
133
- const shape = loader.getShape(model, 'ScalarWithExample')
134
- const result = ApiSchemaGenerator.asExample(shape, xmlMime, {
135
- renderExamples: true,
136
- }) as ISchemaExample
137
- assert.typeOf(result, 'object', 'returns an object')
138
- assert.isTrue(result.strict, 'has the strict property')
139
- assert.deepEqual(result.types, [ns.aml.vocabularies.apiContract.Example], 'has the types property')
140
- assert.equal(result.mediaType, xmlMime, 'has the mediaType property')
141
- assert.strictEqual(result.renderValue, '<ScalarWithExample>A string</ScalarWithExample>', 'has the value')
142
- })
143
- })
@@ -1,401 +0,0 @@
1
- import { test } from '@japa/runner'
2
- import { DOMParser } from '@xmldom/xmldom'
3
- import { ApiSchemaGenerator } from '../../../src/amf/ApiSchemaGenerator.js'
4
- import { AmfLoader } from './AmfLoader.js'
5
- import { IAmfDocument } from '../../../src/amf/definitions/Amf.js'
6
- import { IApiUnionShape } from '../../../src/amf/definitions/Shapes.js'
7
-
8
- const loader = new AmfLoader()
9
- const jsonMime = 'application/json'
10
- const xmlMime = 'application/xml'
11
-
12
- test.group(`union values / ${jsonMime}`, (group) => {
13
- let model: IAmfDocument
14
-
15
- group.setup(async () => {
16
- model = await loader.getGraph('schema-api')
17
- })
18
- test('generates schema for a scalar union', async ({ assert }) => {
19
- const shape = loader.getShape(model, 'ScalarUnion')
20
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime, {
21
- renderMocked: true,
22
- })
23
- assert.typeOf(result, 'string', 'is a string')
24
- assert.isNotEmpty(result, 'the result has auto-generated value')
25
- })
26
-
27
- test('generates schema for a scalar union with a default number value', async ({ assert }) => {
28
- const shape = loader.getShape(model, 'ScalarUnionDefaultNumber')
29
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime)
30
- assert.typeOf(result, 'number', 'is a number')
31
- assert.strictEqual(result, 123456, 'the result is set')
32
- })
33
-
34
- test('generates schema for a scalar union with a default string value', async ({ assert }) => {
35
- const shape = loader.getShape(model, 'ScalarUnionDefaultString')
36
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime)
37
- assert.typeOf(result, 'string', 'is a string')
38
- assert.strictEqual(result, 'abc123', 'the result is set')
39
- })
40
-
41
- test('generates schema for a scalar union with a default boolean value (true)', async ({ assert }) => {
42
- const shape = loader.getShape(model, 'ScalarUnionDefaultBoolean')
43
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime)
44
- assert.typeOf(result, 'boolean', 'is a boolean')
45
- assert.strictEqual(result, true, 'the result is set')
46
- })
47
-
48
- test('generates schema for a scalar union with a default boolean value (false)', async ({ assert }) => {
49
- const shape = loader.getShape(model, 'ScalarUnionDefaultBoolean2')
50
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime)
51
- assert.strictEqual(result, false, 'the result is set')
52
- })
53
-
54
- test('ignores implicit not-required unions (union with nil)', async ({ assert }) => {
55
- const shape = loader.getShape(model, 'ScalarUnionDefaultNil')
56
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime)
57
- assert.isUndefined(result)
58
- })
59
-
60
- test('generates schema for required union an example value (number)', async ({ assert }) => {
61
- const shape = loader.getShape(model, 'ScalarUnionExampleNumber')
62
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime, {
63
- renderExamples: true,
64
- })
65
- assert.strictEqual(result, 987654, 'the result is a number')
66
- })
67
-
68
- test('generates schema for required union an example value (string)', async ({ assert }) => {
69
- const shape = loader.getShape(model, 'ScalarUnionExampleString')
70
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime, {
71
- renderExamples: true,
72
- })
73
- assert.strictEqual(result, '098poi', 'the result is a string')
74
- })
75
-
76
- test('generates a string value for scalar-object union', async ({ assert }) => {
77
- const shape = loader.getShape(model, 'ScalarObjectUnion')
78
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime, {
79
- renderMocked: true,
80
- })
81
- assert.typeOf(result, 'string', 'the result is a string')
82
- assert.isNotEmpty(result, 'has a value')
83
- })
84
-
85
- test('generates schema for scalar-object union with an example', async ({ assert }) => {
86
- const shape = loader.getShape(model, 'ScalarObjectUnionExample')
87
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime, {
88
- renderExamples: true,
89
- })
90
- assert.typeOf(result, 'string', 'the result is a string')
91
- const parsed = JSON.parse(String(result))
92
- assert.strictEqual(parsed.id, '128a654bc54d898e43f', 'example.id is set')
93
- assert.strictEqual(parsed.name, 'Pawel Uchida-Psztyc', 'example.name is set')
94
- assert.strictEqual(parsed.age, 30, 'example.age is set')
95
- assert.strictEqual(parsed.sex, 'male', 'example.sex is set')
96
- assert.strictEqual(parsed.newsletter, false, 'example.newsletter is set')
97
- assert.strictEqual(parsed.tosAccepted, true, 'example.tosAccepted is set')
98
- })
99
-
100
- test('generates schema for objects union', async ({ assert }) => {
101
- const shape = loader.getShape(model, 'ObjectUnions')
102
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime)
103
- assert.typeOf(result, 'string', 'the result is a string')
104
- const parsed = JSON.parse(String(result))
105
- assert.typeOf(parsed.name, 'string', 'schema.name is set')
106
- assert.isUndefined(parsed.age, 'optional item is not set (age)')
107
- assert.strictEqual(parsed.sex, 'male', 'schema.sex is set')
108
- assert.isUndefined(parsed.newsletter, 'optional item is not set (newsletter)')
109
- assert.typeOf(parsed.tosAccepted, 'boolean', 'schema.tosAccepted is set')
110
- })
111
-
112
- test('generates schema for a selected union', async ({ assert }) => {
113
- const shape = loader.getShape(model, 'ObjectUnions') as IApiUnionShape
114
- const id = shape.anyOf[1].id
115
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime, {
116
- selectedUnions: [id],
117
- renderMocked: true,
118
- })
119
- assert.typeOf(result, 'string', 'the result is a string')
120
- const parsed = JSON.parse(String(result))
121
- assert.typeOf(parsed.name, 'string', 'has parent name')
122
- assert.typeOf(parsed.age, 'number', 'has child age')
123
- assert.strictEqual(parsed.sex, 'male', 'has parent sex')
124
- assert.isUndefined(parsed.newsletter, 'has no optional parent newsletter')
125
- assert.typeOf(parsed.tosAccepted, 'boolean', 'has parent tosAccepted')
126
- assert.match(parsed.addedProperty, /^[0-9]{2}:[0-9]{2}:[0-9]{2}$/, 'has child addedProperty')
127
- })
128
-
129
- // examples are not correctly inherited with unions
130
- test('renders example from an union object', async ({ assert }) => {
131
- const shape = loader.getShape(model, 'ObjectUnionWithExample')
132
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime, {
133
- renderExamples: true,
134
- })
135
- assert.typeOf(result, 'string', 'the result is a string')
136
- const parsed = JSON.parse(String(result))
137
- assert.strictEqual(parsed.error, true, 'has schema.error')
138
- assert.strictEqual(parsed.message, 'Error message', 'has schema.message')
139
- assert.isUndefined(parsed.optional, 'has no optional property')
140
- }).skip()
141
-
142
- test('does not renders example from an union object when not configured', async ({ assert }) => {
143
- const shape = loader.getShape(model, 'ObjectUnionWithExample')
144
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime)
145
- assert.typeOf(result, 'string', 'the result is a string')
146
- const parsed = JSON.parse(String(result))
147
- assert.typeOf(parsed.error, 'boolean', 'has default schema.error')
148
- assert.typeOf(parsed.message, 'string', 'has generated schema.message')
149
- assert.isUndefined(parsed.optional, 'has no optional property')
150
- })
151
-
152
- test('marks scalar | nil union as optional', async ({ assert }) => {
153
- const shape = loader.getShape(model, 'ObjectScalarUnionNill')
154
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime)
155
- assert.equal(result, '{}', 'is a string')
156
- })
157
-
158
- // I am not sure how this should work.
159
- // In RAML spec it says that scalar + nil makes the scalar optional.
160
- // Should it be the same for an object?
161
- test('marks object | nil union as optional', async ({ assert }) => {
162
- const shape = loader.getShape(model, 'UnionNill')
163
- const result = ApiSchemaGenerator.asSchema(shape, jsonMime)
164
- assert.equal(result, '{}', 'is a string')
165
- }).skip()
166
- })
167
-
168
- test.group(`union values / ${xmlMime}`, (group) => {
169
- let model: IAmfDocument
170
-
171
- group.setup(async () => {
172
- model = await loader.getGraph('schema-api')
173
- })
174
- test('generates schema for a scalar union', async ({ assert }) => {
175
- const shape = loader.getShape(model, 'ScalarUnion')
176
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
177
- renderMocked: true,
178
- })
179
- const parser = new DOMParser()
180
- const schema = parser.parseFromString(String(result), xmlMime)
181
-
182
- const root = schema.getElementsByTagName('ScalarUnion')[0]
183
- assert.ok(root, 'has the root node')
184
- assert.isNotEmpty(root.textContent!.trim(), 'the root node is empty')
185
- })
186
-
187
- test('generates schema for a scalar union with a default number value', async ({ assert }) => {
188
- const shape = loader.getShape(model, 'ScalarUnionDefaultNumber')
189
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime)
190
- const parser = new DOMParser()
191
- const schema = parser.parseFromString(String(result), xmlMime)
192
-
193
- const root = schema.getElementsByTagName('ScalarUnionDefaultNumber')[0]
194
- assert.ok(root, 'has the root node')
195
- assert.equal(root.textContent!.trim(), '123456', 'the root node has a number value')
196
- })
197
-
198
- test('generates schema for a scalar union with a default string value', async ({ assert }) => {
199
- const shape = loader.getShape(model, 'ScalarUnionDefaultString')
200
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime)
201
- const parser = new DOMParser()
202
- const schema = parser.parseFromString(String(result), xmlMime)
203
-
204
- const root = schema.getElementsByTagName('ScalarUnionDefaultString')[0]
205
- assert.ok(root, 'has the root node')
206
- assert.equal(root.textContent!.trim(), 'abc123', 'the root node has a string value')
207
- })
208
-
209
- test('generates schema for a scalar union with a default boolean value', async ({ assert }) => {
210
- const shape = loader.getShape(model, 'ScalarUnionDefaultBoolean')
211
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime)
212
- const parser = new DOMParser()
213
- const schema = parser.parseFromString(String(result), xmlMime)
214
-
215
- const root = schema.getElementsByTagName('ScalarUnionDefaultBoolean')[0]
216
- assert.ok(root, 'has the root node')
217
- assert.equal(root.textContent!.trim(), 'true', 'the root node has a boolean value')
218
- })
219
-
220
- test('ignores implicit not-required unions (union with nil)', async ({ assert }) => {
221
- const shape = loader.getShape(model, 'ScalarUnionDefaultNil')
222
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime)
223
- assert.isUndefined(result)
224
- })
225
-
226
- test('generates schema for required union an example value (number)', async ({ assert }) => {
227
- const shape = loader.getShape(model, 'ScalarUnionExampleNumber')
228
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime)
229
- const parser = new DOMParser()
230
- const schema = parser.parseFromString(String(result), xmlMime)
231
-
232
- const root = schema.getElementsByTagName('ScalarUnionExampleNumber')[0]
233
- assert.ok(root, 'has the root node')
234
- assert.equal(root.textContent!.trim(), '987654', 'the root node has the example value')
235
- })
236
-
237
- test('generates schema for required union an example value (string)', async ({ assert }) => {
238
- const shape = loader.getShape(model, 'ScalarUnionExampleString')
239
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime)
240
- const parser = new DOMParser()
241
- const schema = parser.parseFromString(String(result), xmlMime)
242
-
243
- const root = schema.getElementsByTagName('ScalarUnionExampleString')[0]
244
- assert.ok(root, 'has the root node')
245
- assert.equal(root.textContent!.trim(), '098poi', 'the root node has the example value')
246
- })
247
-
248
- test('generates empty string for scalar-object union', async ({ assert }) => {
249
- const shape = loader.getShape(model, 'ScalarObjectUnion')
250
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime)
251
- const parser = new DOMParser()
252
- const schema = parser.parseFromString(String(result), xmlMime)
253
-
254
- const root = schema.getElementsByTagName('ScalarObjectUnion')[0]
255
- assert.ok(root, 'has the root node')
256
- assert.equal(root.textContent!.trim(), '', 'the root node is empty')
257
- })
258
-
259
- test('generates mocked string for scalar-object union', async ({ assert }) => {
260
- const shape = loader.getShape(model, 'ScalarObjectUnion')
261
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
262
- renderMocked: true,
263
- })
264
- const parser = new DOMParser()
265
- const schema = parser.parseFromString(String(result), xmlMime)
266
-
267
- const root = schema.getElementsByTagName('ScalarObjectUnion')[0]
268
- assert.ok(root, 'has the root node')
269
- assert.isNotEmpty(root.textContent!.trim(), 'the root node is not empty')
270
- })
271
-
272
- test('generates schema for scalar-object union with an example', async ({ assert }) => {
273
- const shape = loader.getShape(model, 'ScalarObjectUnionExample')
274
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime)
275
- const parser = new DOMParser()
276
- const schema = parser.parseFromString(String(result), xmlMime)
277
-
278
- const root = schema.getElementsByTagName('ScalarObjectUnionExample')[0]
279
- assert.ok(root, 'has the root node')
280
- assert.strictEqual(
281
- root.getElementsByTagName('id')[0].textContent!.trim(),
282
- '128a654bc54d898e43f',
283
- 'example.id is set'
284
- )
285
- assert.strictEqual(
286
- root.getElementsByTagName('name')[0].textContent!.trim(),
287
- 'Pawel Uchida-Psztyc',
288
- 'example.name is set'
289
- )
290
- assert.strictEqual(root.getElementsByTagName('age')[0].textContent!.trim(), '30', 'example.age is set')
291
- assert.strictEqual(root.getElementsByTagName('sex')[0].textContent!.trim(), 'male', 'example.sex is set')
292
- assert.strictEqual(
293
- root.getElementsByTagName('newsletter')[0].textContent!.trim(),
294
- 'false',
295
- 'example.newsletter is set'
296
- )
297
- assert.strictEqual(
298
- root.getElementsByTagName('tosAccepted')[0].textContent!.trim(),
299
- 'true',
300
- 'example.tosAccepted is set'
301
- )
302
- })
303
-
304
- test('generates schema for objects union', async ({ assert }) => {
305
- const shape = loader.getShape(model, 'ObjectUnions')
306
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
307
- renderMocked: true,
308
- })
309
- const parser = new DOMParser()
310
- const schema = parser.parseFromString(String(result), xmlMime)
311
-
312
- const root = schema.getElementsByTagName('ObjectUnions')[0]
313
- assert.ok(root, 'has the root node')
314
- assert.isNotEmpty(root.getElementsByTagName('id')[0].textContent!.trim(), 'example.id is set')
315
- assert.isNotEmpty(root.getElementsByTagName('name')[0].textContent!.trim(), 'example.name is set')
316
- assert.notOk(root.getElementsByTagName('age')[0], 'optional item is not set (age)')
317
- assert.strictEqual(root.getElementsByTagName('sex')[0].textContent!.trim(), 'male', 'example.sex is set')
318
- assert.notOk(root.getElementsByTagName('newsletter')[0], 'optional item is not set (newsletter)')
319
- assert.strictEqual(
320
- root.getElementsByTagName('tosAccepted')[0].textContent!.trim(),
321
- 'false',
322
- 'example.tosAccepted is set'
323
- )
324
- })
325
-
326
- test('generates schema for a selected union', async ({ assert }) => {
327
- const shape = loader.getShape(model, 'ObjectUnions') as IApiUnionShape
328
- // const typedUnion = (shape.inherits[0]);
329
- const id = shape.anyOf[1].id
330
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
331
- selectedUnions: [id],
332
- renderMocked: true,
333
- })
334
- const parser = new DOMParser()
335
- const schema = parser.parseFromString(String(result), xmlMime)
336
-
337
- const root = schema.getElementsByTagName('ObjectUnions')[0]
338
- assert.ok(root, 'has the root node')
339
- assert.isNotEmpty(root.getElementsByTagName('name')[0].textContent!.trim(), 'has parent name')
340
- assert.match(root.getElementsByTagName('age')[0].textContent!.trim(), /^\d+$/, 'has child age')
341
- assert.strictEqual(root.getElementsByTagName('sex')[0].textContent!.trim(), 'male', 'has parent sex')
342
- assert.notOk(root.getElementsByTagName('newsletter')[0], 'has no optional parent newsletter')
343
- assert.strictEqual(
344
- root.getElementsByTagName('tosAccepted')[0].textContent!.trim(),
345
- 'false',
346
- 'has parent tosAccepted'
347
- )
348
- const addedProperty = root.getElementsByTagName('addedProperty')[0].textContent!.trim()
349
- assert.match(addedProperty, /^[0-9]{2}:[0-9]{2}:[0-9]{2}$/, 'has child addedProperty')
350
- })
351
-
352
- // examples are not correctly inherited with unions
353
- test('renders example from an union object', async ({ assert }) => {
354
- const shape = loader.getShape(model, 'ObjectUnionWithExample')
355
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
356
- renderExamples: true,
357
- })
358
- const parser = new DOMParser()
359
- const schema = parser.parseFromString(String(result), xmlMime)
360
-
361
- const root = schema.getElementsByTagName('ObjectUnionWithExample')[0]
362
- assert.ok(root, 'has the root node')
363
- assert.strictEqual(root.getElementsByTagName('error')[0].textContent!.trim(), 'true', 'has schema.error')
364
- assert.strictEqual(
365
- root.getElementsByTagName('message')[0].textContent!.trim(),
366
- 'Error message',
367
- 'has schema.message'
368
- )
369
- assert.notOk(root.getElementsByTagName('optional')[0], 'has no optional property')
370
- }).skip()
371
-
372
- test('does not renders example from an union object when not configured', async ({ assert }) => {
373
- const shape = loader.getShape(model, 'ObjectUnionWithExample')
374
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
375
- renderMocked: true,
376
- })
377
- const parser = new DOMParser()
378
- const schema = parser.parseFromString(String(result), xmlMime)
379
-
380
- const root = schema.getElementsByTagName('ObjectUnionWithExample')[0]
381
- assert.ok(root, 'has the root node')
382
- assert.match(root.getElementsByTagName('error')[0].textContent!.trim(), /false|true/, 'has default schema.error')
383
- assert.isNotEmpty(root.getElementsByTagName('message')[0].textContent!.trim(), 'has default schema.message')
384
- assert.notOk(root.getElementsByTagName('optional')[0], 'has no optional property')
385
- })
386
-
387
- test('marks scalar | nil union as optional', async ({ assert }) => {
388
- const shape = loader.getShape(model, 'ObjectScalarUnionNill')
389
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime)
390
- assert.equal(result, '<ObjectScalarUnionNill>\n</ObjectScalarUnionNill>', 'is a string')
391
- })
392
-
393
- // I am not sure how this should work.
394
- // In RAML spec it says that scalar + nil makes the scalar optional.
395
- // Should it be the same for an object?
396
- test('marks object | nil union as optional', async ({ assert }) => {
397
- const shape = loader.getShape(model, 'UnionNill')
398
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime)
399
- assert.equal(result, '<UnionNill></UnionNill>', 'is a string')
400
- }).skip()
401
- })
@@ -1,42 +0,0 @@
1
- import { test } from '@japa/runner'
2
- import { ApiSchemaGenerator } from '../../../src/amf/ApiSchemaGenerator.js'
3
- import { AmfLoader } from './AmfLoader.js'
4
- import { IAmfDocument } from '../../../src/amf/definitions/Amf.js'
5
-
6
- const loader = new AmfLoader()
7
-
8
- test.group('unknown media type', (group) => {
9
- const unknownMime = 'any/text'
10
-
11
- let model: IAmfDocument
12
-
13
- group.setup(async () => {
14
- model = await loader.getGraph('schema-api')
15
- })
16
-
17
- test('does not set the generator property', async ({ assert }) => {
18
- const inst = new ApiSchemaGenerator(unknownMime)
19
- assert.isUndefined(inst.generator)
20
- })
21
-
22
- test('returns undefined on generate() ', async ({ assert }) => {
23
- const shape = loader.getShape(model, 'ScalarType')
24
- const inst = new ApiSchemaGenerator(unknownMime)
25
- const result = inst.generate(shape)
26
- assert.isUndefined(result)
27
- })
28
-
29
- test('returns undefined on toValue() ', async ({ assert }) => {
30
- const shape = loader.getShape(model, 'ScalarType')
31
- const inst = new ApiSchemaGenerator(unknownMime)
32
- const result = inst.generate(shape)
33
- assert.isUndefined(result)
34
- })
35
-
36
- test('returns undefined on toExample() ', async ({ assert }) => {
37
- const shape = loader.getShape(model, 'ScalarType')
38
- const inst = new ApiSchemaGenerator(unknownMime)
39
- const result = inst.toExample(shape)
40
- assert.isUndefined(result)
41
- })
42
- })