@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,1138 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- /* eslint-disable @typescript-eslint/no-unused-vars */
3
- /**
4
- @license
5
- Copyright 2018 The Advanced REST client authors <arc@mulesoft.com>
6
- Licensed under the Apache License, Version 2.0 (the "License"); you may not
7
- use this file except in compliance with the License. You may obtain a copy of
8
- the License at
9
- http://www.apache.org/licenses/LICENSE-2.0
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12
- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13
- License for the specific language governing permissions and limitations under
14
- the License.
15
- */
16
- import { AmfModelExpander } from 'amf-json-ld-lib';
17
- import { AmfNamespace as ns } from './definitions/Namespace.js';
18
- export const findAmfType = Symbol('findAmfType');
19
- export const findReferenceObject = Symbol('findReferenceObject');
20
- export const getArrayItems = Symbol('getArrayItems');
21
- export const computeReferenceSecurity = Symbol('computeReferenceSecurity');
22
- /**
23
- * Common functions used by AMF components to compute AMF values.
24
- */
25
- export const AmfMixin = (superClass) => {
26
- class AmfMixin extends superClass {
27
- _amf;
28
- __cachedKeys;
29
- __lastSetValue;
30
- get amf() {
31
- return this._amf;
32
- }
33
- set amf(value) {
34
- if (this._amf === value || this.__lastSetValue === value) {
35
- return;
36
- }
37
- this.__lastSetValue = value;
38
- const expanded = value ? this._expand(value) : undefined;
39
- // Cached keys cannot be static as this element can be used in the sane
40
- // document with different AMF models
41
- this.__cachedKeys = {};
42
- this._amf = expanded;
43
- this._amfChanged(expanded);
44
- }
45
- /**
46
- * This is an abstract method to be implemented by the components.
47
- * If, instead, the component uses `amf` setter you must use `super.amf` to
48
- * set the value.
49
- * @param amf Current AMF model. Can be undefined.
50
- */
51
- _amfChanged(amf) {
52
- // ...
53
- }
54
- /**
55
- * Expands flattened AMF model
56
- */
57
- _expand(amf) {
58
- return AmfModelExpander.expand(amf);
59
- }
60
- /**
61
- * Returns compact model key for given value.
62
- * @param property AMF original property
63
- * @param context A context to use. If not set, it looks for the context of the passed model
64
- * @returns Compact model property name or the same value if value not found in the context.
65
- */
66
- _getAmfKey(property, context) {
67
- if (!property) {
68
- return '';
69
- }
70
- let { amf } = this;
71
- if (!amf && !context) {
72
- return property;
73
- }
74
- if (Array.isArray(amf)) {
75
- ;
76
- [amf] = amf;
77
- }
78
- if (!this.__cachedKeys) {
79
- this.__cachedKeys = {};
80
- }
81
- const ctx = (context || (amf && amf['@context']));
82
- if (!ctx || !property) {
83
- return property;
84
- }
85
- const cache = this.__cachedKeys;
86
- if (property in cache) {
87
- return cache[property];
88
- }
89
- property = String(property);
90
- const hashIndex = property.indexOf('#');
91
- const hashProperty = property.substring(0, hashIndex + 1);
92
- const keys = Object.keys(ctx);
93
- for (let i = 0, len = keys.length; i < len; i++) {
94
- const k = keys[i];
95
- if (ctx[k] === property) {
96
- cache[property] = k;
97
- return k;
98
- }
99
- if (hashIndex === -1 && property.indexOf(ctx[k]) === 0) {
100
- const result = property.replace(ctx[k], `${k}:`);
101
- cache[property] = result;
102
- return result;
103
- }
104
- if (ctx[k] === hashProperty) {
105
- const result = `${k}:${property.substring(hashIndex + 1)}`;
106
- cache[property] = result;
107
- return result;
108
- }
109
- }
110
- return property;
111
- }
112
- /**
113
- * Ensures that the model is AMF object.
114
- *
115
- * @param amf AMF json/ld model
116
- * @returns The API spec
117
- */
118
- _ensureAmfModel(amf) {
119
- if (!amf) {
120
- return undefined;
121
- }
122
- if (Array.isArray(amf)) {
123
- ;
124
- [amf] = amf;
125
- }
126
- if (this._hasType(amf, ns.aml.vocabularies.document.Document)) {
127
- return amf;
128
- }
129
- return undefined;
130
- }
131
- /**
132
- * Ensures that the value is an array.
133
- * It returns undefined when there's no value.
134
- * It returns the same array if the value is already an array.
135
- * It returns new array of the item is not an array.
136
- *
137
- * @param value An item to test
138
- */
139
- _ensureArray(value) {
140
- if (!value) {
141
- return undefined;
142
- }
143
- if (value instanceof Array) {
144
- return value;
145
- }
146
- return [value];
147
- }
148
- /**
149
- * Gets a single scalar value from a model.
150
- * @param model Amf model to extract the value from.
151
- * @param untrustedKey Model key to search for the value
152
- * @param context A context to use. If not set, it looks for the context of the passed model
153
- * @returns Value for key
154
- */
155
- _getValue(model, untrustedKey, context) {
156
- const key = this._getAmfKey(untrustedKey, context);
157
- if (!key) {
158
- return undefined;
159
- }
160
- let data = model && model[key];
161
- if (!data) {
162
- // This includes "undefined", "false", "null" and "0"
163
- return data;
164
- }
165
- if (Array.isArray(data)) {
166
- ;
167
- [data] = data;
168
- }
169
- if (!data) {
170
- return undefined;
171
- }
172
- const type = typeof data;
173
- if (['string', 'number', 'boolean', 'undefined'].includes(type)) {
174
- return data;
175
- }
176
- return data['@value'];
177
- }
178
- /**
179
- * Gets values from a model as an array of `@value` properties.
180
- * @param model Amf model to extract the value from.
181
- * @param untrustedKey Model key to search for the value
182
- * @param context A context to use. If not set, it looks for the context of the passed model
183
- * @returns The value for key
184
- */
185
- _getValueArray(model, untrustedKey, context) {
186
- const key = this._getAmfKey(untrustedKey, context);
187
- if (!key) {
188
- return undefined;
189
- }
190
- const data = model && this._ensureArray(model[key]);
191
- if (!Array.isArray(data)) {
192
- return undefined;
193
- }
194
- return data.map((item) => item['@value'] || item);
195
- }
196
- /**
197
- * Reads an array from the model.
198
- *
199
- * @param model Amf model to extract the value from.
200
- * @param untrustedKey Model key to search for the value
201
- * @param context A context to use. If not set, it looks for the context of the passed model
202
- * @returns Value for the key
203
- */
204
- [getArrayItems](model, untrustedKey, context) {
205
- const k = this._getAmfKey(untrustedKey, context);
206
- if (!k) {
207
- return undefined;
208
- }
209
- const data = model && this._ensureArray(model[k]);
210
- if (!Array.isArray(data)) {
211
- return undefined;
212
- }
213
- return data;
214
- }
215
- /**
216
- * Reads the value of the `@id` property.
217
- * @param model Amf model to extract the value from.
218
- * @param untrustedKey Model key to search for the @id
219
- * @param context A context to use. If not set, it looks for the context of the passed model
220
- */
221
- _getLinkValue(model, untrustedKey, context) {
222
- const k = this._getAmfKey(untrustedKey, context);
223
- if (!k) {
224
- return undefined;
225
- }
226
- let data = model && model[k];
227
- if (!data) {
228
- return undefined;
229
- }
230
- if (Array.isArray(data)) {
231
- ;
232
- [data] = data;
233
- }
234
- if (!data) {
235
- return undefined;
236
- }
237
- return data['@id'];
238
- }
239
- /**
240
- * Reads the list of value for the `@id` property.
241
- * @param model Amf model to extract the value from.
242
- * @param untrustedKey Model key to search for the @id
243
- * @param context A context to use. If not set, it looks for the context of the passed model
244
- */
245
- _getLinkValues(model, untrustedKey, context) {
246
- const k = this._getAmfKey(untrustedKey, context);
247
- if (!k) {
248
- return undefined;
249
- }
250
- let data = (model && model[k]);
251
- if (!data) {
252
- return undefined;
253
- }
254
- if (!Array.isArray(data)) {
255
- data = [data];
256
- }
257
- return data.map((i) => i['@id']);
258
- }
259
- /**
260
- * Checks if a model has a type.
261
- * @param model Model to test
262
- * @param type Type name
263
- * @param context A context to use. If not set, it looks for the context of the passed model
264
- * @returns True if model has a type.
265
- */
266
- _hasType(model, type, context) {
267
- const types = this._ensureArray(model && model['@type']);
268
- if (!types || !types.length) {
269
- return false;
270
- }
271
- const key = this._getAmfKey(type, context);
272
- for (const type of types) {
273
- if (type === key) {
274
- return true;
275
- }
276
- }
277
- return false;
278
- }
279
- /**
280
- * Checks if a shape has a property.
281
- * @param shape The shape to test
282
- * @param untrustedKey Property name to test
283
- * @param context A context to use. If not set, it looks for the context of the passed model
284
- */
285
- _hasProperty(shape, untrustedKey, context) {
286
- const key = this._getAmfKey(untrustedKey, context);
287
- return !!(shape && key && key in shape);
288
- }
289
- /**
290
- * Computes array value of a property in a model (shape).
291
- *
292
- * @param shape AMF shape object
293
- * @param untrustedKey Property name
294
- * @param context A context to use. If not set, it looks for the context of the passed model
295
- */
296
- _computePropertyArray(shape, untrustedKey, context) {
297
- if (!shape) {
298
- return undefined;
299
- }
300
- const key = this._getAmfKey(untrustedKey, context);
301
- if (!key) {
302
- return undefined;
303
- }
304
- const data = this._ensureArray(shape && shape[key]);
305
- if (!data || !Array.isArray(data)) {
306
- return undefined;
307
- }
308
- return data;
309
- }
310
- /**
311
- * Computes API version from the AMF model.
312
- *
313
- * @param amf
314
- * @param context A context to use. If not set, it looks for the context of the passed model
315
- */
316
- _computeApiVersion(amf, context) {
317
- const api = this._computeApi(amf);
318
- if (!api) {
319
- return undefined;
320
- }
321
- return this._getValue(api, ns.aml.vocabularies.core.version, context);
322
- }
323
- /**
324
- * Computes model's `encodes` property.
325
- *
326
- * @param model AMF data model
327
- * @param context A context to use. If not set, it looks for the context of the passed model
328
- * @returns List of encodes
329
- */
330
- _computeEncodes(model, context) {
331
- if (!model) {
332
- return undefined;
333
- }
334
- if (Array.isArray(model)) {
335
- ;
336
- [model] = model;
337
- }
338
- const key = this._getAmfKey(ns.aml.vocabularies.document.encodes, context);
339
- if (!key) {
340
- return undefined;
341
- }
342
- const data = model[key];
343
- if (data) {
344
- return Array.isArray(data) ? data[0] : data;
345
- }
346
- return undefined;
347
- }
348
- /**
349
- * Computes list of declarations in the AMF api model.
350
- *
351
- * @param model AMF json/ld model for an API
352
- * @param context A context to use. If not set, it looks for the context of the passed model
353
- * @returns List of declarations
354
- */
355
- _computeDeclares(model, context) {
356
- if (!model) {
357
- return undefined;
358
- }
359
- if (Array.isArray(model)) {
360
- ;
361
- [model] = model;
362
- }
363
- if (!model) {
364
- return undefined;
365
- }
366
- const key = this._getAmfKey(ns.aml.vocabularies.document.declares, context);
367
- if (!key) {
368
- return undefined;
369
- }
370
- const data = this._ensureArray(model[key]);
371
- return Array.isArray(data) ? data : undefined;
372
- }
373
- /**
374
- * Computes list of references in the AMF api model.
375
- *
376
- * @param model AMF json/ld model for an API
377
- * @param context A context to use. If not set, it looks for the context of the passed model
378
- * @returns List of declarations
379
- */
380
- _computeReferences(model, context) {
381
- if (!model) {
382
- return undefined;
383
- }
384
- if (Array.isArray(model)) {
385
- ;
386
- [model] = model;
387
- }
388
- if (!model) {
389
- return undefined;
390
- }
391
- const key = this._getAmfKey(ns.aml.vocabularies.document.references, context);
392
- if (!key) {
393
- return undefined;
394
- }
395
- const data = this._ensureArray(model[key]);
396
- return data instanceof Array ? data : undefined;
397
- }
398
- /**
399
- * Computes AMF's `http://schema.org/WebAPI` model
400
- *
401
- * @param model AMF json/ld model for an API
402
- * @param context A context to use. If not set, it looks for the context of the passed model
403
- * @returns Web API declaration.
404
- */
405
- _computeWebApi(model, context) {
406
- const enc = this._computeEncodes(model, context);
407
- if (!enc) {
408
- return undefined;
409
- }
410
- if (this._hasType(enc, ns.aml.vocabularies.apiContract.WebAPI, context)) {
411
- return enc;
412
- }
413
- return undefined;
414
- }
415
- /**
416
- * Computes AMF's `http://schema.org/API` model
417
- *
418
- * @param model AMF json/ld model for an API
419
- * @param context A context to use. If not set, it looks for the context of the passed model
420
- * @returns API declaration.
421
- */
422
- _computeApi(model, context) {
423
- const enc = this._computeEncodes(model, context);
424
- if (!enc) {
425
- return undefined;
426
- }
427
- if (this._isAPI(model, context) || this._isWebAPI(model, context) || this._isAsyncAPI(model, context)) {
428
- return enc;
429
- }
430
- return undefined;
431
- }
432
- /**
433
- * Returns whether an AMF node is a WebAPI node
434
- *
435
- * @param model AMF json/ld model for an API
436
- * @param context A context to use. If not set, it looks for the context of the passed model
437
- */
438
- _isWebAPI(model, context) {
439
- const enc = this._computeEncodes(model, context);
440
- if (!enc) {
441
- return false;
442
- }
443
- return this._hasType(enc, ns.aml.vocabularies.apiContract.WebAPI, context);
444
- }
445
- /**
446
- * Returns whether an AMF node is an AsyncAPI node
447
- *
448
- * @param model AMF json/ld model for an API
449
- * @param context A context to use. If not set, it looks for the context of the passed model
450
- */
451
- _isAsyncAPI(model, context) {
452
- const enc = this._computeEncodes(model, context);
453
- if (!enc) {
454
- return false;
455
- }
456
- return this._hasType(enc, ns.aml.vocabularies.apiContract.AsyncAPI, context);
457
- }
458
- /**
459
- * Returns whether an AMF node is an API node
460
- *
461
- * @param model AMF json/ld model for an API
462
- * @param context A context to use. If not set, it looks for the context of the passed model
463
- */
464
- _isAPI(model, context) {
465
- const enc = this._computeEncodes(model, context);
466
- if (!enc) {
467
- return false;
468
- }
469
- return this._hasType(enc, ns.aml.vocabularies.apiContract.API, context);
470
- }
471
- /**
472
- * Determines whether a partial model is valid for reading servers from
473
- * Current valid values:
474
- * - Operation
475
- * - Endpoint
476
- * @param model The partial model to evaluate
477
- * @param context A context to use. If not set, it looks for the context of the passed model
478
- * @returns Whether the model's type is part of the array of valid node types from which
479
- * to read servers
480
- * @private
481
- */
482
- _isValidServerPartial(model, context) {
483
- if (Array.isArray(model)) {
484
- ;
485
- [model] = model;
486
- }
487
- if (!model) {
488
- return false;
489
- }
490
- const oKey = ns.aml.vocabularies.apiContract.Operation;
491
- const eKey = ns.aml.vocabularies.apiContract.EndPoint;
492
- const allowedPartialModelTypes = [this._getAmfKey(oKey, context), this._getAmfKey(eKey, context)];
493
- const types = model['@type'];
494
- for (const type of types) {
495
- if (allowedPartialModelTypes.indexOf(type) !== -1) {
496
- return true;
497
- }
498
- }
499
- return false;
500
- }
501
- /**
502
- * @param options Server query options
503
- * @param context A context to use. If not set, it looks for the context of the passed model
504
- * @returns List of servers for method, if defined, or endpoint, if defined, or root level
505
- */
506
- _getServers(options = {}, context) {
507
- const { endpointId, methodId } = options;
508
- const { amf } = this;
509
- if (!amf) {
510
- return undefined;
511
- }
512
- let api = this._computeApi(amf, context);
513
- if (Array.isArray(api)) {
514
- ;
515
- [api] = api;
516
- }
517
- if (!api) {
518
- if (this._isValidServerPartial(amf, context)) {
519
- api = amf;
520
- }
521
- else {
522
- return undefined;
523
- }
524
- }
525
- const serverKey = this._getAmfKey(ns.aml.vocabularies.apiContract.server, context);
526
- const getRootServers = () => this[getArrayItems](api, serverKey, context);
527
- const getEndpointServers = () => {
528
- const endpoint = this._computeEndpointModel(api, endpointId, context);
529
- const servers = this[getArrayItems](endpoint, serverKey, context);
530
- if (servers) {
531
- return servers;
532
- }
533
- return getRootServers();
534
- };
535
- const getMethodServers = () => {
536
- const method = this._computeMethodModel(api, methodId, context);
537
- const servers = this[getArrayItems](method, serverKey, context);
538
- if (servers) {
539
- return servers;
540
- }
541
- return getEndpointServers();
542
- };
543
- if (methodId) {
544
- return getMethodServers();
545
- }
546
- if (endpointId) {
547
- return getEndpointServers();
548
- }
549
- return getRootServers();
550
- }
551
- /**
552
- * Computes value for the `expects` property.
553
- *
554
- * @param method AMF `supportedOperation` model
555
- * @param context A context to use. If not set, it looks for the context of the passed model
556
- */
557
- _computeExpects(method, context) {
558
- const operationKey = ns.aml.vocabularies.apiContract.Operation;
559
- const expectsKey = ns.aml.vocabularies.apiContract.expects;
560
- if (this._hasType(method, operationKey, context)) {
561
- const key = this._getAmfKey(expectsKey, context);
562
- const expects = this._ensureArray(method[key]);
563
- if (expects) {
564
- return Array.isArray(expects) ? expects[0] : expects;
565
- }
566
- }
567
- return undefined;
568
- }
569
- /**
570
- * Computes list of endpoints from a WebApi model.
571
- * @param webApi
572
- * @param context A context to use. If not set, it looks for the context of the passed model
573
- * @returns An array of endpoints.
574
- */
575
- _computeEndpoints(webApi, context) {
576
- if (!webApi) {
577
- return [];
578
- }
579
- const endpointKey = ns.aml.vocabularies.apiContract.endpoint;
580
- const key = this._getAmfKey(endpointKey, context);
581
- return this._ensureArray(webApi[key]);
582
- }
583
- /**
584
- * Computes model for an endpoint documentation.
585
- *
586
- * @param webApi Current value of `webApi` property
587
- * @param id Selected shape ID
588
- * @param context A context to use. If not set, it looks for the context of the passed model
589
- * @returns An endpoint definition
590
- */
591
- _computeEndpointModel(webApi, id, context) {
592
- if (this._hasType(webApi, ns.aml.vocabularies.apiContract.EndPoint, context)) {
593
- return webApi;
594
- }
595
- const endpoints = this._computeEndpoints(webApi, context);
596
- if (!endpoints) {
597
- return undefined;
598
- }
599
- return endpoints.find((item) => item['@id'] === id);
600
- }
601
- /**
602
- * Computes method for the method documentation.
603
- *
604
- * @param webApi Current value of `webApi` property
605
- * @param selected Selected shape
606
- * @param context A context to use. If not set, it looks for the context of the passed model
607
- * @returns A method definition
608
- */
609
- _computeMethodModel(webApi, selected, context) {
610
- const methods = this.__computeMethodsListForMethod(webApi, selected, context);
611
- if (!methods) {
612
- return undefined;
613
- }
614
- return methods.find((item) => item['@id'] === selected);
615
- }
616
- /**
617
- * Computes an endpoint for a method.
618
- * @param webApi The WebApi AMF model
619
- * @param methodId Method id
620
- * @param context A context to use. If not set, it looks for the context of the passed model
621
- * @returns An endpoint model of undefined.
622
- */
623
- _computeMethodEndpoint(webApi, methodId, context) {
624
- if (!webApi || !methodId) {
625
- return undefined;
626
- }
627
- if (this._hasType(webApi, ns.aml.vocabularies.apiContract.EndPoint, context)) {
628
- return webApi;
629
- }
630
- const endpoints = this._computeEndpoints(webApi, context);
631
- if (!endpoints) {
632
- return undefined;
633
- }
634
- const opKey = this._getAmfKey(ns.aml.vocabularies.apiContract.supportedOperation, context);
635
- for (let i = 0, len = endpoints.length; i < len; i++) {
636
- const endpoint = endpoints[i];
637
- let methods = endpoint[opKey];
638
- if (!methods) {
639
- continue;
640
- }
641
- if (!Array.isArray(methods)) {
642
- methods = [methods];
643
- }
644
- for (let j = 0, jLen = methods.length; j < jLen; j++) {
645
- if (methods[j]['@id'] === methodId) {
646
- return endpoint;
647
- }
648
- }
649
- }
650
- return undefined;
651
- }
652
- /**
653
- * Computes a list of methods for an endpoint that contains a method with
654
- * given id.
655
- *
656
- * @param webApi WebApi model
657
- * @param methodId Method id.
658
- * @param context A context to use. If not set, it looks for the context of the passed model
659
- * @returns A list of sibling methods or undefined.
660
- */
661
- __computeMethodsListForMethod(webApi, methodId, context) {
662
- const endpoint = this._computeMethodEndpoint(webApi, methodId, context);
663
- if (!endpoint) {
664
- return undefined;
665
- }
666
- const opKey = this._getAmfKey(ns.aml.vocabularies.apiContract.supportedOperation, context);
667
- return this._ensureArray(endpoint[opKey]);
668
- }
669
- /**
670
- * Computes a type documentation model.
671
- *
672
- * @param declares Current value of `declares` property
673
- * @param references Current value of `references` property
674
- * @param selected Selected shape
675
- * @param context A context to use. If not set, it looks for the context of the passed model
676
- * @returns A type definition
677
- */
678
- _computeType(declares, references, selected, context) {
679
- if ((!declares && !references) || !selected) {
680
- return undefined;
681
- }
682
- // In compact model some IDs are presented in long version (in source maps for examples)
683
- // This must test for this case as well.
684
- const compactId = selected.replace('amf://id', '');
685
- let type = declares && declares.find((item) => item['@id'] === selected || item['@id'] === compactId);
686
- if (!type && references && references.length) {
687
- for (let i = 0, len = references.length; i < len; i++) {
688
- if (!this._hasType(references[i], ns.aml.vocabularies.document.Module)) {
689
- continue;
690
- }
691
- type = this._computeReferenceType(references[i], selected, context);
692
- if (type) {
693
- break;
694
- }
695
- }
696
- }
697
- return type;
698
- }
699
- /**
700
- * Finds a type in the model declares and references.
701
- * @param domainId The domain id of the type (AMF's shape).
702
- * @param context A context to use. If not set, it looks for the context of the passed model
703
- * @returns The AMF shape or undefined when not found.
704
- */
705
- [findAmfType](domainId, context) {
706
- let { amf } = this;
707
- if (!amf || !domainId) {
708
- return undefined;
709
- }
710
- if (Array.isArray(amf)) {
711
- ;
712
- [amf] = amf;
713
- }
714
- const declares = this._computeDeclares(amf, context);
715
- const compactId = domainId.replace('amf://id', '');
716
- if (Array.isArray(declares)) {
717
- const result = declares.find((item) => item['@id'] === domainId || item['@id'] === compactId);
718
- if (result) {
719
- return result;
720
- }
721
- }
722
- return this[findReferenceObject](domainId);
723
- }
724
- /**
725
- * Searches for an object in model's references list.
726
- * It does not resolve the object (useful for handling links correctly).
727
- *
728
- * @param domainId The domain of the object to find in the references.
729
- * @param context A context to use. If not set, it looks for the context of the passed model
730
- * @returns The domain object or undefined.
731
- */
732
- [findReferenceObject](domainId, context) {
733
- let { amf } = this;
734
- if (Array.isArray(amf)) {
735
- ;
736
- [amf] = amf;
737
- }
738
- if (!amf) {
739
- return undefined;
740
- }
741
- const references = this._computeReferences(amf, context);
742
- if (!Array.isArray(references) || !references.length) {
743
- return undefined;
744
- }
745
- const compactId = domainId.replace('amf://id', '');
746
- for (let i = 0, len = references.length; i < len; i++) {
747
- const ref = /** @type IAmfDocument */ references[i];
748
- const declares = this._computeDeclares(ref, context);
749
- if (!Array.isArray(declares)) {
750
- continue;
751
- }
752
- for (let j = 0, lenDecl = declares.length; j < lenDecl; j++) {
753
- let declared = declares[j];
754
- if (Array.isArray(declared)) {
755
- ;
756
- [declared] = declared;
757
- }
758
- if (declared['@id'] === domainId || declared['@id'] === compactId) {
759
- return declared;
760
- }
761
- }
762
- }
763
- return undefined;
764
- }
765
- /**
766
- * Computes a type model from a reference (library for example).
767
- * @param reference AMF model for a reference to extract the data from
768
- * @param selected Node ID to look for
769
- * @param context A context to use. If not set, it looks for the context of the passed model
770
- * @returns Type definition or undefined if not found.
771
- */
772
- _computeReferenceType(reference, selected, context) {
773
- const declare = this._computeDeclares(reference, context);
774
- if (!declare || !selected) {
775
- return undefined;
776
- }
777
- // In compact model some IDs are presented in long version (in source maps for examples)
778
- // This must test for this case as well.
779
- const compactId = selected.replace('amf://id', '');
780
- let result = declare.find((item) => {
781
- if (Array.isArray(item)) {
782
- ;
783
- [item] = item;
784
- }
785
- return item['@id'] === selected || item['@id'] === compactId;
786
- });
787
- if (Array.isArray(result)) {
788
- ;
789
- [result] = result;
790
- }
791
- return this._resolve(result);
792
- }
793
- /**
794
- * Computes a documentation model.
795
- *
796
- * @param webApi Current value of `webApi` property
797
- * @param selected Selected shape
798
- * @param context A context to use. If not set, it looks for the context of the passed model
799
- */
800
- _computeDocument(webApi, selected, context) {
801
- if (!webApi || !selected) {
802
- return undefined;
803
- }
804
- const key = this._getAmfKey(ns.aml.vocabularies.core.documentation, context);
805
- const docs = this._ensureArray(webApi[key]);
806
- return docs && docs.find((item) => item['@id'] === selected);
807
- }
808
- /**
809
- * Resolves a reference to an external fragment.
810
- *
811
- * @param shape A shape to resolve
812
- * @param context A context to use. If not set, it looks for the context of the passed model
813
- * @returns Resolved shape.
814
- */
815
- _resolve(shape, context) {
816
- const { amf } = this;
817
- if (typeof shape !== 'object' || Array.isArray(shape) || !amf || shape.__apicResolved) {
818
- return shape;
819
- }
820
- let refKey = this._getAmfKey(ns.aml.vocabularies.document.linkTarget, context);
821
- let refValue = this._ensureArray(shape[refKey]);
822
- let refData;
823
- if (refValue) {
824
- const rk = refValue[0]['@id'];
825
- if (rk === shape['@id']) {
826
- // recursive shape.
827
- shape.__apicResolved = true;
828
- return shape;
829
- }
830
- refData = this._getLinkTarget(amf, rk, context);
831
- }
832
- else {
833
- refKey = this._getAmfKey(ns.aml.vocabularies.document.referenceId, context);
834
- refValue = this._ensureArray(shape[refKey]);
835
- if (refValue) {
836
- const rk = refValue[0]['@id'];
837
- if (rk === shape['@id']) {
838
- // recursive shape.
839
- shape.__apicResolved = true;
840
- return shape;
841
- }
842
- refData = this._getReferenceId(amf, rk, context);
843
- }
844
- }
845
- if (!refData) {
846
- this._resolveRecursive(shape);
847
- shape.__apicResolved = true;
848
- return shape;
849
- }
850
- const copy = { ...refData };
851
- delete copy['@id'];
852
- const types = copy['@type'];
853
- if (types) {
854
- if (shape['@type']) {
855
- shape['@type'] = shape['@type'].concat(types);
856
- }
857
- else {
858
- shape['@type'] = types;
859
- }
860
- delete copy['@type'];
861
- }
862
- this._mergeShapes(shape, copy, context);
863
- shape.__apicResolved = true;
864
- this._resolveRecursive(shape);
865
- return shape;
866
- }
867
- /**
868
- * @param amf References object to search in
869
- * @param id Id of the shape to resolve
870
- * @param context A context to use. If not set, it looks for the context of the passed model
871
- * @returns Resolved shape for given reference, undefined otherwise
872
- */
873
- _getLinkTarget(amf, id, context) {
874
- if (!amf || !id) {
875
- return undefined;
876
- }
877
- let target;
878
- const declares = this._computeDeclares(amf, context);
879
- if (declares) {
880
- target = this._findById(declares, id);
881
- }
882
- if (!target) {
883
- const references = this._computeReferences(amf, context);
884
- target = this._obtainShapeFromReferences(references, id, context);
885
- }
886
- if (!target) {
887
- return undefined;
888
- }
889
- // Declaration may contain references
890
- target = this._resolve(target);
891
- return target;
892
- }
893
- /**
894
- * Resolves the shape of a given reference.
895
- *
896
- * @param references References object to search in
897
- * @param id Id of the shape to resolve
898
- * @param context A context to use. If not set, it looks for the context of the passed model
899
- * @returns Resolved shape for given reference, undefined otherwise
900
- */
901
- _obtainShapeFromReferences(references, id, context) {
902
- if (!Array.isArray(references) || !references.length) {
903
- return undefined;
904
- }
905
- let target;
906
- for (const _ref of references) {
907
- // case of fragment that encodes the shape
908
- const encoded = this._computeEncodes(_ref, context);
909
- if (encoded && encoded['@id'] === id) {
910
- target = encoded;
911
- break;
912
- }
913
- // case of a library which declares types
914
- if (!encoded) {
915
- target = this._findById(this._computeDeclares(_ref, context), id);
916
- if (target)
917
- break;
918
- }
919
- }
920
- return target;
921
- }
922
- /**
923
- * Searches a node with a given ID in an array
924
- *
925
- * @param array Array to search for a given ID
926
- * @param id Id to search for
927
- * @returns Node with the given ID when found, undefined otherwise
928
- */
929
- _findById(array, id) {
930
- if (!array)
931
- return undefined;
932
- let target;
933
- for (const _current of array) {
934
- if (_current && _current['@id'] === id) {
935
- target = _current;
936
- break;
937
- }
938
- }
939
- return target;
940
- }
941
- _getReferenceId(amf, id, context) {
942
- if (!amf || !id) {
943
- return undefined;
944
- }
945
- const refs = this._computeReferences(amf, context);
946
- if (!refs) {
947
- return undefined;
948
- }
949
- for (const _ref of refs) {
950
- const enc = this._computeEncodes(_ref, context);
951
- if (enc) {
952
- if (enc['@id'] === id) {
953
- return enc;
954
- }
955
- }
956
- }
957
- return undefined;
958
- }
959
- _resolveRecursive(shape, context) {
960
- Object.keys(shape).forEach((key) => {
961
- const currentShape = shape[key];
962
- if (Array.isArray(currentShape)) {
963
- for (let i = 0, len = currentShape.length; i < len; i++) {
964
- currentShape[i] = this._resolve(currentShape[i]);
965
- }
966
- }
967
- else if (typeof currentShape === 'object') {
968
- shape[key] = this._resolve(currentShape, context);
969
- }
970
- });
971
- }
972
- /**
973
- * Merge two shapes together. If the resulting shape has one of the "special merge" keys,
974
- * then the special merge function for that key will be used to match that property
975
- * @param shapeA AMF node
976
- * @param shapeB AMF node
977
- * @param context A context to use. If not set, it looks for the context of the passed model
978
- * @returns Merged AMF node
979
- */
980
- _mergeShapes(shapeA, shapeB, context) {
981
- const merged = { ...shapeA, ...shapeB };
982
- const specialMerges = [
983
- {
984
- key: this._getAmfKey(ns.aml.vocabularies.docSourceMaps.sources, context),
985
- merger: this._mergeSourceMapsSources.bind(this),
986
- },
987
- ];
988
- specialMerges.forEach(({ key, merger }) => {
989
- if (this._hasProperty(merged, key, context)) {
990
- merged[key] = merger(shapeA, shapeB, context);
991
- }
992
- });
993
- return Object.assign(shapeA, merged);
994
- }
995
- /**
996
- * Obtains source map sources value from two shapes and returns the merged result
997
- * If neither shape has a sources node, then an empty object will be returned.
998
- * Result is wrapped in an array as per AMF model standard
999
- * @param shapeA AMF node
1000
- * @param shapeB AMF node
1001
- * @param context A context to use. If not set, it looks for the context of the passed model
1002
- * @returns Empty object or resulting merge, wrapped in an array
1003
- * @private
1004
- */
1005
- _mergeSourceMapsSources(shapeA, shapeB, context) {
1006
- const sourcesKey = this._getAmfKey(ns.aml.vocabularies.docSourceMaps.sources, context);
1007
- let aSources = shapeA[sourcesKey] || {};
1008
- if (Array.isArray(aSources)) {
1009
- aSources = aSources[0];
1010
- }
1011
- let bSources = shapeB[sourcesKey] || {};
1012
- if (Array.isArray(bSources)) {
1013
- bSources = bSources[0];
1014
- }
1015
- return [Object.assign(aSources, bSources)];
1016
- }
1017
- /**
1018
- * Expands the key property from compacted mode to full mode.
1019
- * @param value The value to process
1020
- * @returns The expanded value.
1021
- */
1022
- _expandKey(value, context) {
1023
- let { amf } = this;
1024
- if (!value || typeof value !== 'string' || (!amf && !context)) {
1025
- return value;
1026
- }
1027
- if (Array.isArray(amf)) {
1028
- ;
1029
- [amf] = amf;
1030
- }
1031
- const ctx = context || (amf && amf['@context']);
1032
- if (!ctx) {
1033
- return value;
1034
- }
1035
- const [root, key] = value.split(':');
1036
- if (!root || !key) {
1037
- return value;
1038
- }
1039
- const prefix = ctx[root];
1040
- if (!prefix) {
1041
- return value;
1042
- }
1043
- return `${prefix}${key}`;
1044
- }
1045
- /**
1046
- * Computes a security model from a reference (library for example).
1047
- * @param domainId Domain id of the security requirement to find.
1048
- * @param context A context to use. If not set, it looks for the context of the passed model
1049
- * @returns Type definition or undefined if not found.
1050
- */
1051
- findSecurityScheme(domainId, context) {
1052
- const { amf } = this;
1053
- const declares = this._computeDeclares(amf, context);
1054
- let result;
1055
- if (declares) {
1056
- result = declares.find((item) => item['@id'] === domainId);
1057
- }
1058
- if (result) {
1059
- result = this._resolve(result);
1060
- return result;
1061
- }
1062
- const references = this._computeReferences(amf, context);
1063
- if (Array.isArray(references) && references.length) {
1064
- for (const ref of references) {
1065
- if (this._hasType(ref, ns.aml.vocabularies.document.Module, context)) {
1066
- result = this[computeReferenceSecurity](ref, domainId, context);
1067
- if (result) {
1068
- result = this._resolve(result);
1069
- return result;
1070
- }
1071
- }
1072
- }
1073
- }
1074
- return undefined;
1075
- }
1076
- /**
1077
- * Computes a security model from a reference (library for example).
1078
- * @param reference AMF model for a reference to extract the data from
1079
- * @param selected Node ID to look for
1080
- * @param context A context to use. If not set, it looks for the context of the passed model
1081
- * @returns Type definition or undefined if not found.
1082
- */
1083
- [computeReferenceSecurity](reference, selected, context) {
1084
- const declare = this._computeDeclares(reference, context);
1085
- if (!declare) {
1086
- return undefined;
1087
- }
1088
- let result = declare.find((item) => {
1089
- let declared = item;
1090
- if (Array.isArray(declared)) {
1091
- ;
1092
- [declared] = declared;
1093
- }
1094
- return declared['@id'] === selected;
1095
- });
1096
- if (Array.isArray(result)) {
1097
- ;
1098
- [result] = result;
1099
- }
1100
- return this._resolve(result);
1101
- }
1102
- /**
1103
- * Collects domain objects by a domain type.
1104
- * @param source The element to search for declare/encoded objects.
1105
- * @param type The domain type
1106
- * @param context A context to use. If not set, it looks for the context of the passed model
1107
- */
1108
- getByType(source, type, context) {
1109
- if (!source) {
1110
- return [];
1111
- }
1112
- let result = [];
1113
- const declares = this._computeDeclares(source);
1114
- const key = this._getAmfKey(type, context);
1115
- if (declares && declares.length) {
1116
- declares.forEach((declared) => {
1117
- if (this._hasType(declared, key)) {
1118
- result.push(declared);
1119
- }
1120
- });
1121
- }
1122
- const references = this._computeReferences(source);
1123
- if (Array.isArray(references) && references.length) {
1124
- for (const ref of references) {
1125
- if (this._hasType(ref, ns.aml.vocabularies.document.Module)) {
1126
- const items = this.getByType(ref, type, context);
1127
- if (items.length) {
1128
- result = result.concat(items);
1129
- }
1130
- }
1131
- }
1132
- }
1133
- return result;
1134
- }
1135
- }
1136
- return AmfMixin;
1137
- };
1138
- //# sourceMappingURL=AmfMixin.js.map