@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,726 +0,0 @@
1
- /* eslint-disable max-len */
2
- import { test } from '@japa/runner'
3
- import { DOMParser } from '@xmldom/xmldom'
4
- import { ApiSchemaGenerator } 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 xmlMime = 'application/xml'
10
-
11
- test.group('XML serialization', (group) => {
12
- let model: IAmfDocument
13
-
14
- group.setup(async () => {
15
- model = await loader.getGraph('schema-api')
16
- })
17
-
18
- test('serializes simple scalar array', ({ assert }) => {
19
- // <XmlSimpleArray>
20
- // <books>...</books>
21
- // </XmlSimpleArray>
22
- const shape = loader.getShape(model, 'XmlSimpleArray')
23
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
24
- renderMocked: true,
25
- })
26
- const parser = new DOMParser()
27
- const schema = parser.parseFromString(String(result), xmlMime)
28
-
29
- const objectElement = schema.getElementsByTagName('XmlSimpleArray')[0]
30
- assert.ok(objectElement, 'has the XmlSimpleArray element')
31
-
32
- const books = schema.getElementsByTagName('books')
33
- assert.lengthOf(books, 1, 'has single books element')
34
- assert.isNotEmpty(books[0].textContent!.trim(), 'has a random value')
35
- })
36
-
37
- test('serializes simple scalar array with examples', ({ assert }) => {
38
- // <XmlSimpleArray>
39
- // <books>one</books>
40
- // <books>two</books>
41
- // <books>three</books>
42
- // </XmlSimpleArray>
43
- const shape = loader.getShape(model, 'XmlSimpleArray')
44
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
45
- renderExamples: true,
46
- renderMocked: true,
47
- })
48
-
49
- const parser = new DOMParser()
50
- const schema = parser.parseFromString(String(result), xmlMime)
51
-
52
- const objectElement = schema.getElementsByTagName('XmlSimpleArray')[0]
53
- assert.ok(objectElement, 'has the XmlSimpleArray element')
54
-
55
- const books = schema.getElementsByTagName('books')
56
- assert.lengthOf(books, 3, 'has all books examples')
57
- assert.equal(books[0].textContent!.trim(), 'one', 'has example value #1')
58
- assert.equal(books[1].textContent!.trim(), 'two', 'has example value #2')
59
- assert.equal(books[2].textContent!.trim(), 'three', 'has example value #3')
60
- })
61
-
62
- test('serializes simple scalar wrapped array', ({ assert }) => {
63
- // <XmlSimpleArrayWrapped>
64
- // <books>
65
- // <books>...</books>
66
- // </books>
67
- // </XmlSimpleArrayWrapped>
68
- const shape = loader.getShape(model, 'XmlSimpleArrayWrapped')
69
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
70
- renderMocked: true,
71
- })
72
-
73
- const parser = new DOMParser()
74
- const schema = parser.parseFromString(String(result), xmlMime)
75
-
76
- const objectElement = schema.getElementsByTagName('XmlSimpleArrayWrapped')[0]
77
- assert.ok(objectElement, 'has the XmlSimpleArrayWrapped element')
78
- const wrapped = Array.from(objectElement.childNodes).filter((n) => n.nodeType === 1)[0] as Element
79
- assert.ok(wrapped, 'has the wrapped node')
80
- assert.equal(wrapped.localName, 'books', 'has the wrapped element name')
81
-
82
- const books = wrapped.getElementsByTagName('books')
83
- assert.equal(books.length, 1, 'has the generated books element')
84
- assert.isNotEmpty(books[0].textContent!.trim(), 'has a random value')
85
- })
86
-
87
- test('serializes simple scalar wrapped array with examples', ({ assert }) => {
88
- // <XmlSimpleArrayWrapped>
89
- // <books>
90
- // <books>one</books>
91
- // <books>two</books>
92
- // <books>three</books>
93
- // </books>
94
- // </XmlSimpleArrayWrapped>
95
- const shape = loader.getShape(model, 'XmlSimpleArrayWrapped')
96
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
97
- renderExamples: true,
98
- renderMocked: true,
99
- })
100
-
101
- const parser = new DOMParser()
102
- const schema = parser.parseFromString(String(result), xmlMime)
103
-
104
- const objectElement = schema.getElementsByTagName('XmlSimpleArrayWrapped')[0]
105
- assert.ok(objectElement, 'has the XmlSimpleArrayWrapped element')
106
-
107
- const wrapped = Array.from(objectElement.childNodes).filter((n) => n.nodeType === 1)[0] as Element
108
- assert.ok(wrapped, 'has the wrapped node')
109
-
110
- const books = wrapped.getElementsByTagName('books')
111
- assert.lengthOf(books, 3, 'has all books examples')
112
- assert.equal(books[0].textContent!.trim(), 'one', 'has example value #1')
113
- assert.equal(books[1].textContent!.trim(), 'two', 'has example value #2')
114
- assert.equal(books[2].textContent!.trim(), 'three', 'has example value #3')
115
- })
116
-
117
- test('serializes simple properties and attributes (required only)', ({ assert }) => {
118
- // <XmlAttributes uuid="..." notNamedId="..." attributeWithExample="attr example value" attributeWithDefault="attr default value">
119
- // <requiredProperty>...</requiredProperty>
120
- // </XmlAttributes>
121
- const shape = loader.getShape(model, 'XmlAttributes')
122
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
123
- renderExamples: true,
124
- renderMocked: true,
125
- })
126
-
127
- const parser = new DOMParser()
128
- const schema = parser.parseFromString(String(result), xmlMime)
129
-
130
- const root = schema.getElementsByTagName('XmlAttributes')[0]
131
- assert.ok(root, 'has the XmlAttributes element')
132
-
133
- assert.isTrue(root.hasAttribute('uuid'), 'has named uuid attribute')
134
- assert.isNotEmpty(root.getAttribute('uuid'), 'has uuid attribute generated value')
135
- assert.isTrue(root.hasAttribute('notNamedId'), 'has not named notNamedId attribute')
136
- assert.isNotEmpty(root.getAttribute('notNamedId'), 'has notNamedId attribute generated value')
137
- assert.isTrue(root.hasAttribute('attributeWithExample'), 'has not named attributeWithExample attribute')
138
- assert.equal(
139
- root.getAttribute('attributeWithExample'),
140
- 'attr example value',
141
- 'has attributeWithExample attribute example value'
142
- )
143
- assert.isTrue(root.hasAttribute('attributeWithDefault'), 'has not named attributeWithDefault attribute')
144
- assert.equal(
145
- root.getAttribute('attributeWithDefault'),
146
- 'attr default value',
147
- 'has attributeWithDefault default example value'
148
- )
149
- assert.isFalse(root.hasAttribute('optionalAttribute'), 'has no optional attributes')
150
-
151
- const requiredProp = root.getElementsByTagName('requiredProperty')[0]
152
- assert.ok(requiredProp, 'has the required property')
153
- assert.isNotEmpty(requiredProp.textContent!.trim(), 'the required property has generated value')
154
-
155
- const optionalProp = root.getElementsByTagName('optionalProp')[0]
156
- assert.notOk(optionalProp, 'has no optional properties')
157
- })
158
-
159
- test('serializes simple properties and attributes (required and optional)', ({ assert }) => {
160
- // <XmlAttributes uuid="..." notNamedId="..." attributeWithExample="attr example value" attributeWithDefault="attr default value" optionalAttribute="a1s2">
161
- // <optionalProperty>abcd</optionalProperty>
162
- // <requiredProperty>efgh</requiredProperty>
163
- // </XmlAttributes>
164
- const shape = loader.getShape(model, 'XmlAttributes')
165
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
166
- renderExamples: true,
167
- renderMocked: true,
168
- renderOptional: true,
169
- })
170
-
171
- const parser = new DOMParser()
172
- const schema = parser.parseFromString(String(result), xmlMime)
173
-
174
- const root = schema.getElementsByTagName('XmlAttributes')[0]
175
- assert.ok(root, 'has the XmlAttributes element')
176
-
177
- assert.isTrue(root.hasAttribute('optionalAttribute'), 'has the optional attribute')
178
- assert.equal(root.getAttribute('optionalAttribute'), 'a1s2', 'has optionalAttribute example value')
179
-
180
- const optionalProp = root.getElementsByTagName('optionalProperty')[0]
181
- assert.ok(optionalProp, 'has optional properties')
182
- assert.equal(optionalProp.textContent!.trim(), 'abcd', 'has the optional property value')
183
- })
184
-
185
- test('serializes an object', ({ assert }) => {
186
- // <XmlObjectSimple>
187
- // <address>
188
- // <street></street>
189
- // <city></city>
190
- // </address>
191
- // </XmlObjectSimple>
192
- const shape = loader.getShape(model, 'XmlObjectSimple')
193
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
194
- renderExamples: true,
195
- renderMocked: true,
196
- renderOptional: true,
197
- })
198
- const parser = new DOMParser()
199
- const schema = parser.parseFromString(String(result), xmlMime)
200
-
201
- const root = schema.getElementsByTagName('XmlObjectSimple')[0]
202
- assert.ok(root, 'has the XmlObjectSimple element')
203
-
204
- const address = root.getElementsByTagName('address')[0]
205
- assert.ok(address, 'has the address element')
206
-
207
- const street = address.getElementsByTagName('street')[0]
208
- const city = address.getElementsByTagName('city')[0]
209
- assert.ok(street, 'has the address > street element')
210
- assert.ok(city, 'has the address > city element')
211
-
212
- assert.isNotEmpty(street.textContent!.trim(), 'street element has a value')
213
- assert.isNotEmpty(city.textContent!.trim(), 'city element has a value')
214
- })
215
-
216
- test('serializes an object with examples', ({ assert }) => {
217
- // <XmlArraySimple>
218
- // <address>
219
- // <street>1234 Market street</street>
220
- // <city>San Francisco</city>
221
- // <street>Oxford street</street>
222
- // <city>London</city>
223
- // </address>
224
- // </XmlArraySimple>
225
- const shape = loader.getShape(model, 'XmlArraySimple')
226
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
227
- renderExamples: true,
228
- renderMocked: true,
229
- renderOptional: true,
230
- })
231
- const parser = new DOMParser()
232
- const schema = parser.parseFromString(String(result), xmlMime)
233
-
234
- const root = schema.getElementsByTagName('XmlArraySimple')[0]
235
- assert.ok(root, 'has the XmlArraySimple element')
236
-
237
- const addresses = root.getElementsByTagName('address')
238
- assert.lengthOf(addresses, 1, 'has the property name')
239
-
240
- const cities = addresses[0].getElementsByTagName('city')
241
- const streets = addresses[0].getElementsByTagName('street')
242
-
243
- assert.lengthOf(cities, 2, 'has 2 city examples')
244
- assert.lengthOf(streets, 2, 'has 2 street examples')
245
-
246
- assert.equal(cities[0].textContent!.trim(), 'San Francisco')
247
- assert.equal(cities[1].textContent!.trim(), 'London')
248
-
249
- assert.equal(streets[0].textContent!.trim(), '1234 Market street')
250
- assert.equal(streets[1].textContent!.trim(), 'Oxford street')
251
- })
252
-
253
- test('serializes an object with wrapped examples', ({ assert }) => {
254
- // <XmlArraySimple>
255
- // <address>
256
- // <Address>
257
- // <street></street>
258
- // <city></city>
259
- // </Address>
260
- // <Address>
261
- // <street></street>
262
- // <city></city>
263
- // </Address>
264
- // </address>
265
- // </XmlArraySimple>
266
- const shape = loader.getShape(model, 'XmlArraySimpleWrapped')
267
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
268
- renderExamples: true,
269
- renderMocked: true,
270
- renderOptional: true,
271
- })
272
-
273
- const parser = new DOMParser()
274
- const schema = parser.parseFromString(String(result), xmlMime)
275
-
276
- const root = schema.getElementsByTagName('XmlArraySimpleWrapped')[0]
277
- assert.ok(root, 'has the XmlArraySimpleWrapped element')
278
-
279
- const property = root.getElementsByTagName('address')
280
- assert.lengthOf(property, 1, 'has the property name')
281
-
282
- const addresses = property[0].getElementsByTagName('Address')
283
- assert.lengthOf(addresses, 2, 'has 2 wrapped Address objects')
284
-
285
- const [a1, a2] = Array.from(addresses)
286
- const s1 = a1.getElementsByTagName('street')[0]
287
- const s2 = a2.getElementsByTagName('street')[0]
288
- const c1 = a1.getElementsByTagName('city')[0]
289
- const c2 = a2.getElementsByTagName('city')[0]
290
-
291
- assert.ok(s1, 'has example street #1')
292
- assert.ok(s2, 'has example street #2')
293
- assert.ok(c1, 'has example city #1')
294
- assert.ok(c2, 'has example city #2')
295
-
296
- assert.equal(c1.textContent!.trim(), 'San Francisco')
297
- assert.equal(c2.textContent!.trim(), 'London')
298
-
299
- assert.equal(s1.textContent!.trim(), '1234 Market street')
300
- assert.equal(s2.textContent!.trim(), 'Oxford street')
301
- })
302
-
303
- test('serializes an object with wrapped examples and named', ({ assert }) => {
304
- // <XmlArraySimpleWrappedNamed>
305
- // <Residency>
306
- // <Address>
307
- // <street></street>
308
- // <city></city>
309
- // </Address>
310
- // </Residency>
311
- // </XmlArraySimpleWrappedNamed>
312
- const shape = loader.getShape(model, 'XmlArraySimpleWrappedNamed')
313
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
314
- renderExamples: true,
315
- renderMocked: true,
316
- renderOptional: true,
317
- })
318
-
319
- const parser = new DOMParser()
320
- const schema = parser.parseFromString(String(result), xmlMime)
321
-
322
- const root = schema.getElementsByTagName('XmlArraySimpleWrappedNamed')[0]
323
- assert.ok(root, 'has the XmlArraySimpleWrappedNamed element')
324
-
325
- const property = root.getElementsByTagName('Residency')
326
- assert.lengthOf(property, 1, 'has the renamed property name')
327
-
328
- const addresses = property[0].getElementsByTagName('Address')
329
- assert.lengthOf(addresses, 1, 'has 1 wrapped Address object')
330
-
331
- const [a1] = Array.from(addresses)
332
- const s1 = a1.getElementsByTagName('street')[0]
333
- const c1 = a1.getElementsByTagName('city')[0]
334
-
335
- assert.ok(s1, 'has example street #1')
336
- assert.ok(c1, 'has example city #1')
337
-
338
- assert.isNotEmpty(c1.textContent!.trim(), 'has the generated city example')
339
- assert.isNotEmpty(s1.textContent!.trim(), 'has the generated street example')
340
- })
341
-
342
- test('serializes required properties', async ({ assert }) => {
343
- const shape = loader.getShape(model, 'XmlSerializationObject')
344
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
345
- renderMocked: true,
346
- })
347
- const parser = new DOMParser()
348
- const schema = parser.parseFromString(String(result), xmlMime)
349
- const root = schema.getElementsByTagName('XmlSerializationObject')[0]
350
- assert.ok(root, 'has the root node')
351
- assert.isTrue(root.hasAttribute('uuid'), 'the root has the renamed id attribute')
352
- assert.isNotEmpty(root.getAttribute('uuid'), 'the id attribute has the default value')
353
- assert.isTrue(root.hasAttribute('notNamedId'), 'the root has the notNamedId attribute')
354
- assert.isNotEmpty(root.getAttribute('notNamedId'), 'the notNamedId attribute has the default value')
355
- assert.isTrue(root.hasAttribute('attributeWithExample'), 'the root has the attributeWithExample attribute')
356
- assert.isNotEmpty(
357
- root.getAttribute('attributeWithExample'),
358
- 'the attributeWithExample attribute has the default value'
359
- )
360
- assert.isTrue(root.hasAttribute('attributeWithDefault'), 'the root has the attributeWithDefault attribute')
361
- assert.equal(
362
- root.getAttribute('attributeWithDefault'),
363
- 'attr default value',
364
- 'the attributeWithDefault attribute has the defined value'
365
- )
366
- assert.isFalse(root.hasAttribute('invalidAttribute'), 'has no invalid attribute')
367
- assert.ok(root.getElementsByTagName('invalidAttribute')[0], 'the invalidAttribute is serialized as an element')
368
- const namespaceElement = root.getElementsByTagName('namespaceElement')[0]
369
- assert.ok(namespaceElement, 'has the namespaceElement element')
370
- assert.equal(namespaceElement.getAttribute('xmlns'), 'urn:loc.gov:books', 'has the namespace value')
371
- const namespaceWithPrefix = root.getElementsByTagNameNS('urn:ISBN:0-395-36341-6', 'namespaceWithPrefix')[0]
372
- assert.ok(namespaceWithPrefix, 'has the namespaceWithPrefix element')
373
- assert.equal(
374
- namespaceWithPrefix.getAttributeNS('http://www.w3.org/2000/xmlns/', 'isbn'),
375
- 'urn:ISBN:0-395-36341-6',
376
- 'has the prefixed namespace value'
377
- )
378
- assert.isFalse(root.hasAttribute('optionalAttribute'), 'has no optional attributes')
379
- })
380
-
381
- test('serializes optional properties', async ({ assert }) => {
382
- const shape = loader.getShape(model, 'XmlSerializationObject')
383
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
384
- renderOptional: true,
385
- renderMocked: true,
386
- })
387
- const parser = new DOMParser()
388
- const schema = parser.parseFromString(String(result), xmlMime)
389
-
390
- const root = schema.getElementsByTagName('XmlSerializationObject')[0]
391
- assert.ok(root, 'has the root node')
392
- assert.isTrue(root.hasAttribute('optionalAttribute'), 'has the optional attribute')
393
- assert.isNotEmpty(root.getAttribute('optionalAttribute'), 'the optional attribute has auto-value')
394
- assert.ok(root.getElementsByTagName('optionalProperty')[0], 'has optionalProperty element')
395
- })
396
-
397
- test('serializes optional properties with examples', async ({ assert }) => {
398
- /*
399
- <XmlSerializationObject uuid="" notNamedId="" attributeWithExample="attr example value" attributeWithDefault="attr default value" optionalAttribute="">
400
- <object>
401
- <street></street>
402
- <city></city>
403
- </object>
404
- <addresses>
405
- <Address>
406
- <street></street>
407
- <city></city>
408
- </Address>
409
- </addresses>
410
- <address-array-2>
411
- <Address>
412
- <street></street>
413
- <city></city>
414
- </Address>
415
- </address-array-2>
416
- <address-array-3>
417
- <Address>
418
- <street></street>
419
- <city></city>
420
- </Address>
421
- </address-array-3>
422
- <address-array-4>
423
- <street></street>
424
- <city></city>
425
- </address-array-4>
426
- <invalidAttribute>
427
- <tosAccepted>false</tosAccepted>
428
- <newsletter>false</newsletter>
429
- <name>Pawel Uchida-Psztyc</name>
430
- <id></id>
431
- <age>21</age>
432
- <sex>male</sex>
433
- </invalidAttribute>
434
- <namespaceElement xmlns="urn:loc.gov:books">test namespace</namespaceElement>
435
- <isbn:namespaceWithPrefix xmlns:isbn="urn:ISBN:0-395-36341-6">test namespace</isbn:namespaceWithPrefix>
436
- <optionalProperty>abcd</optionalProperty>
437
- </XmlSerializationObject>
438
- */
439
- const shape = loader.getShape(model, 'XmlSerializationObject')
440
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
441
- renderOptional: true,
442
- renderExamples: true,
443
- })
444
- const parser = new DOMParser()
445
- const schema = parser.parseFromString(String(result), xmlMime)
446
-
447
- const root = schema.getElementsByTagName('XmlSerializationObject')[0]
448
- assert.ok(root, 'has the root node')
449
- const optionalProperty = root.getElementsByTagName('optionalProperty')[0]
450
- assert.equal(optionalProperty.textContent!.trim(), 'abcd', 'element has an example value')
451
- const namespaceWithPrefix = root.getElementsByTagNameNS('urn:ISBN:0-395-36341-6', 'namespaceWithPrefix')[0]
452
- assert.equal(namespaceWithPrefix.textContent!.trim(), 'test namespace', 'namespace element has an example value')
453
- assert.equal(root.getAttribute('attributeWithExample'), 'attr example value', 'attribute has an example')
454
- const invalidAttr = root.getElementsByTagName('invalidAttribute')[0]
455
- assert.ok(invalidAttr, 'has the invalidAttribute element')
456
- const deep = invalidAttr.getElementsByTagName('name')[0]
457
- assert.equal(deep.textContent!.trim(), 'Pawel Uchida-Psztyc', 'deep elements have examples')
458
- })
459
-
460
- test('wraps an array via the XML serialization', async ({ assert }) => {
461
- const shape = loader.getShape(model, 'XmlSerializationObject')
462
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
463
- renderOptional: true,
464
- renderExamples: true,
465
- })
466
- const parser = new DOMParser()
467
- const schema = parser.parseFromString(String(result), xmlMime)
468
- /*
469
- <addresses>
470
- <Address>
471
- <street></street>
472
- <city></city>
473
- </Address>
474
- </addresses>
475
- */
476
-
477
- const topAddress = schema.getElementsByTagName('addresses')[0]
478
- assert.ok(topAddress, 'has the wrapping "addresses" node')
479
- const nodes = topAddress.getElementsByTagName('Address')
480
- assert.lengthOf(nodes, 1, 'has a single Address')
481
- const node = nodes[0]
482
- assert.ok(node.getElementsByTagName('street')[0], 'has the street child')
483
- assert.ok(node.getElementsByTagName('city')[0], 'has the street child')
484
- })
485
-
486
- test('renames wrapper and items', async ({ assert }) => {
487
- const shape = loader.getShape(model, 'XmlSerializationObject')
488
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
489
- renderOptional: true,
490
- renderExamples: true,
491
- })
492
- const parser = new DOMParser()
493
- const schema = parser.parseFromString(String(result), xmlMime)
494
-
495
- /*
496
- <address-array-2>
497
- <Address>
498
- <street></street>
499
- <city></city>
500
- </Address>
501
- </address-array-2>
502
- */
503
-
504
- const topAddress = schema.getElementsByTagName('address-array-2')[0]
505
- assert.ok(topAddress, 'has the wrapping "address-array-2" node')
506
- const nodes = topAddress.getElementsByTagName('Address')
507
- assert.lengthOf(nodes, 1, 'has a single Address')
508
- const node = nodes[0]
509
- assert.ok(node.getElementsByTagName('street')[0], 'has the street child')
510
- assert.ok(node.getElementsByTagName('city')[0], 'has the street child')
511
- })
512
-
513
- test('renames wrapper only', async ({ assert }) => {
514
- const shape = loader.getShape(model, 'XmlSerializationObject')
515
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
516
- renderOptional: true,
517
- renderExamples: true,
518
- })
519
- const parser = new DOMParser()
520
- const schema = parser.parseFromString(String(result), xmlMime)
521
-
522
- /*
523
- <address-array-3>
524
- <Address>
525
- <street></street>
526
- <city></city>
527
- </Address>
528
- </address-array-3>
529
- */
530
-
531
- const topAddress = schema.getElementsByTagName('address-array-3')[0]
532
- assert.ok(topAddress, 'has the wrapping "address-array-3" node')
533
- const nodes = topAddress.getElementsByTagName('Address')
534
- assert.lengthOf(nodes, 1, 'has a single Address')
535
- const node = nodes[0]
536
- assert.ok(node.getElementsByTagName('street')[0], 'has the street child')
537
- assert.ok(node.getElementsByTagName('city')[0], 'has the street child')
538
- })
539
-
540
- test('renames wrapper only', async ({ assert }) => {
541
- const shape = loader.getShape(model, 'XmlSerializationObject')
542
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
543
- renderOptional: true,
544
- renderExamples: true,
545
- })
546
- const parser = new DOMParser()
547
- const schema = parser.parseFromString(String(result), xmlMime)
548
-
549
- /*
550
- <address-array-3>
551
- <Address>
552
- <street></street>
553
- <city></city>
554
- </Address>
555
- </address-array-3>
556
- */
557
-
558
- const topAddress = schema.getElementsByTagName('address-array-3')[0]
559
- assert.ok(topAddress, 'has the wrapping "address-array-3" node')
560
- const nodes = topAddress.getElementsByTagName('Address')
561
- assert.lengthOf(nodes, 1, 'has a single Address')
562
- const node = nodes[0]
563
- assert.ok(node.getElementsByTagName('street')[0], 'has the street child')
564
- assert.ok(node.getElementsByTagName('city')[0], 'has the street child')
565
- })
566
-
567
- test('renames without wrapping', async ({ assert }) => {
568
- const shape = loader.getShape(model, 'XmlSerializationObject')
569
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
570
- renderOptional: true,
571
- renderExamples: true,
572
- })
573
- const parser = new DOMParser()
574
- const schema = parser.parseFromString(String(result), xmlMime)
575
-
576
- /*
577
- <address-array-4>
578
- <street></street>
579
- <city></city>
580
- </address-array-4>
581
- */
582
-
583
- const nodes = schema.getElementsByTagName('address-array-4')
584
- assert.lengthOf(nodes, 1, 'has a single object')
585
- const node = nodes[0]
586
- assert.ok(node.getElementsByTagName('street')[0], 'has the street child')
587
- assert.ok(node.getElementsByTagName('city')[0], 'has the street child')
588
- })
589
-
590
- test('serializes complex objects', async ({ assert }) => {
591
- const shape = loader.getShape(model, 'XmlComplexProperty')
592
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
593
- renderOptional: true,
594
- renderExamples: true,
595
- renderMocked: true,
596
- })
597
-
598
- const parser = new DOMParser()
599
- const schema = parser.parseFromString(String(result), xmlMime)
600
-
601
- const root = schema.getElementsByTagName('XmlComplexProperty')[0]
602
- assert.ok(root, 'has the root element')
603
-
604
- const complex = root.getElementsByTagName('complex')[0]
605
- assert.ok(complex, 'has the complex element')
606
- assert.isNotEmpty(complex.getAttribute('correctedName'), 'has the property as attribute')
607
-
608
- const other = root.getElementsByTagName('other')[0]
609
- assert.ok(other, 'has the other element')
610
- assert.strictEqual(other.textContent!.trim(), 'some property', 'has the other property default value')
611
- })
612
-
613
- test('does not wrap an object when no serialization', async ({ assert }) => {
614
- const shape = loader.getShape(model, 'NoXmlSerializationObject')
615
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
616
- renderOptional: true,
617
- renderExamples: true,
618
- })
619
-
620
- const parser = new DOMParser()
621
- const schema = parser.parseFromString(String(result), xmlMime)
622
-
623
- const root = schema.getElementsByTagName('NoXmlSerializationObject')[0]
624
- const addresses = root.getElementsByTagName('addresses')[0]
625
- assert.ok(addresses, 'has the addresses node')
626
- const nodes = addresses.getElementsByTagName('Address')
627
- assert.lengthOf(nodes, 0, 'has no Address')
628
- assert.ok(addresses.getElementsByTagName('street')[0], 'has the street child')
629
- assert.ok(addresses.getElementsByTagName('city')[0], 'has the street child')
630
- }).skip()
631
-
632
- test('serializes the root array', async ({ assert }) => {
633
- const shape = loader.getShape(model, 'XmlArray')
634
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
635
- renderOptional: true,
636
- renderExamples: true,
637
- })
638
-
639
- const parser = new DOMParser()
640
- const schema = parser.parseFromString(String(result), xmlMime)
641
-
642
- /*
643
- <XmlArray>
644
- <street></street>
645
- <city></city>
646
- </XmlArray>
647
- */
648
-
649
- const root = schema.getElementsByTagName('XmlArray')[0]
650
- assert.ok(root, 'has the XmlArray node')
651
- assert.lengthOf(root.childNodes, 2, 'has 2 children')
652
- assert.equal(root.childNodes[0].nodeName.toLowerCase(), 'street', 'has the street child')
653
- assert.equal(root.childNodes[1].nodeName.toLowerCase(), 'city', 'has the city child')
654
- }).skip()
655
-
656
- test('serializes wrapped and renamed root array', async ({ assert }) => {
657
- const shape = loader.getShape(model, 'XmlArray2')
658
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
659
- renderOptional: true,
660
- renderExamples: true,
661
- })
662
- const parser = new DOMParser()
663
- const schema = parser.parseFromString(String(result), xmlMime)
664
-
665
- /*
666
- <addresses-array>
667
- <address>
668
- <city></city>
669
- <street></street>
670
- </address>
671
- </addresses-array>
672
- */
673
-
674
- const root = schema.getElementsByTagName('addresses-array')[0]
675
- assert.ok(root, 'has the addresses-array node')
676
- const item = root.getElementsByTagName('address')[0]
677
- assert.ok(item, 'has the wrapped item')
678
- assert.lengthOf(item.childNodes, 2, 'has 2 children')
679
- assert.equal(item.childNodes[0].nodeName.toLowerCase(), 'city', 'has the city child')
680
- assert.equal(item.childNodes[1].nodeName.toLowerCase(), 'street', 'has the street child')
681
- }).skip()
682
-
683
- test('serializes schema from a library', async ({ assert }) => {
684
- const shape = loader.getShape(model, 'LibraryRef')
685
- const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
686
- renderOptional: true,
687
- renderExamples: true,
688
- renderMocked: true,
689
- })
690
-
691
- const parser = new DOMParser()
692
- const schema = parser.parseFromString(String(result), xmlMime)
693
- const root = schema.getElementsByTagName('LibraryRef')[0]
694
- assert.ok(root, 'has the LibraryRef node')
695
- assert.equal(root.getElementsByTagName('petType')[0].textContent!.trim(), 'Doggie', 'has the child petType node')
696
- assert.equal(root.getElementsByTagName('sound')[0].textContent!.trim(), 'Woof', 'has the child sound node')
697
- assert.equal(root.getElementsByTagName('friendly')[0].textContent!.trim(), 'true', 'has the child friendly node')
698
- assert.isNotEmpty(root.getElementsByTagName('name')[0].textContent!.trim(), 'has the parent name node')
699
- assert.isNotEmpty(root.getElementsByTagName('etag')[0].textContent!.trim(), 'has the parent etag node')
700
- })
701
-
702
- // AMF has a problem with restoring this value from the ld model
703
- // test('serializes an xsd schema', async ({ assert }) => {
704
- // const shape = loader.getShape(model, 'XmlRefSchema');
705
- // const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
706
- // renderOptional: true,
707
- // renderExamples: true,
708
- // });
709
- // const parser = new DOMParser();
710
- // const schema = parser.parseFromString(String(result), xmlMime);
711
- // console.log(shape);
712
- // });
713
-
714
- // test('serializes an xsd schema with examples', async ({ assert }) => {
715
- // const op = await store.getOperationRecursive('put', '/schemas');
716
- // console.log(op.request.payloads[1].schema);
717
- // // const shape = loader.getShape(model, 'XmlRefSchemaExample');
718
- // // const result = ApiSchemaGenerator.asSchema(shape, xmlMime, {
719
- // // renderOptional: true,
720
- // // renderExamples: true,
721
- // // });
722
- // // const parser = new DOMParser();
723
- // // const schema = parser.parseFromString(result, xmlMime);
724
- // // console.log(result);
725
- // });
726
- })