@api-client/core 0.19.9 → 0.19.11

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