@api-client/core 0.19.10 → 0.19.11

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