@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,174 +0,0 @@
1
- import { Time } from '@pawel-up/data-mock/Time.js'
2
- import { AmfNamespace as ns } from '../definitions/Namespace.js'
3
- import { ApiSchemaValues } from '../ApiSchemaValues.js'
4
- import { JsonDataNodeGenerator } from '../data-node/JsonDataNodeGenerator.js'
5
- import {
6
- IApiAnyShape,
7
- IApiArrayShape,
8
- IApiDataExample,
9
- IApiFileShape,
10
- IApiNodeShape,
11
- IApiPropertyShape,
12
- IApiScalarNode,
13
- IApiScalarShape,
14
- IApiSchemaShape,
15
- IShapeUnion,
16
- IApiTupleShape,
17
- IApiUnionShape,
18
- } from '../definitions/Shapes.js'
19
-
20
- export interface IShapeRenderOptions {
21
- /**
22
- * All selected unions in the current view.
23
- * When the processor encounter an union it checks this array
24
- * to pick the selected union.
25
- * When the selected union cannot be determined it picks the first union.
26
- */
27
- selectedUnions?: string[]
28
- /**
29
- * Whether to include optional fields into the schema.
30
- * @default false
31
- */
32
- renderOptional?: boolean
33
- /**
34
- * When set it uses the data mocking library to generate the values
35
- * when examples and default are not set.
36
- */
37
- renderMocked?: boolean
38
- /**
39
- * The library **always** uses default values in the schema.
40
- * When a default value is not set by default it inserts an empty value for
41
- * the given data type ('', false, null, random date). When this is set
42
- * it includes examples in the generated value.
43
- */
44
- renderExamples?: boolean
45
- }
46
-
47
- /**
48
- * A base class for generators that generates a schema from AMF's shape definition.
49
- */
50
- export abstract class ShapeBase {
51
- opts: Readonly<IShapeRenderOptions>
52
- time = new Time()
53
-
54
- constructor(opts: IShapeRenderOptions = {}) {
55
- this.opts = Object.freeze({ ...opts })
56
- }
57
-
58
- protected _scalarValue(schema: IApiScalarShape): string | number | boolean | null | undefined {
59
- const { defaultValue, examples, values, inherits, dataType } = schema
60
- // check examples
61
- if (this.opts.renderExamples && examples && examples.length) {
62
- const example = examples.find((item) => !!item.structuredValue)
63
- const value = this._exampleToObject(example)
64
- if (typeof value !== 'undefined') {
65
- return ApiSchemaValues.readTypedValue(value, dataType)
66
- }
67
- }
68
-
69
- // check the default value
70
- if (defaultValue) {
71
- const gen = new JsonDataNodeGenerator()
72
- const processed = gen.processNode(defaultValue)
73
- // return ApiSchemaValues.readTypedValue(processed, dataType);
74
- return processed as string | number | boolean | null | undefined
75
- }
76
- // check enum values
77
- if (values && values.length) {
78
- const typed = values[0] as IApiScalarNode
79
- if (typed.value !== undefined) {
80
- return ApiSchemaValues.readTypedValue(typed.value, dataType)
81
- }
82
- }
83
- // check parents
84
- if (Array.isArray(inherits) && inherits.length) {
85
- for (let i = 0, len = inherits.length; i < len; i += 1) {
86
- const result = this._scalarValue(inherits[i] as IApiScalarShape)
87
- if (result !== undefined) {
88
- return result
89
- }
90
- }
91
- }
92
- if (this.opts.renderMocked) {
93
- return ApiSchemaValues.generateMockedValue(schema)
94
- }
95
- // return this[dataTypeToExample](dataType, format);
96
- // create a default value.
97
- return ApiSchemaValues.generateDefaultValue(schema)
98
- }
99
-
100
- /**
101
- * Checks whether the union represents a scalar + nil which is equivalent
102
- * to having scalar that is not required.
103
- *
104
- * See more about nil values in RAML:
105
- * https://github.com/raml-org/raml-spec/blob/master/versions/raml-10/raml-10.md#nil-type
106
- *
107
- * @param union The list of unions in the shape
108
- */
109
- protected _isNotRequiredUnion(union: IShapeUnion[]): boolean {
110
- let scalars = 0
111
- let hasNil = false
112
- union.forEach((i) => {
113
- if (i.types.includes(ns.aml.vocabularies.shapes.NilShape)) {
114
- hasNil = true
115
- } else if (i.types.includes(ns.aml.vocabularies.shapes.ScalarShape)) {
116
- const scalar = i as IApiScalarShape
117
- if (scalar.dataType === ns.w3.xmlSchema.nil) {
118
- hasNil = true
119
- } else {
120
- scalars += 1
121
- }
122
- } else if (i.types.includes(ns.aml.vocabularies.shapes.FileShape)) {
123
- scalars += 1
124
- }
125
- })
126
- if (!hasNil) {
127
- return false
128
- }
129
- // size of union minus the nil union
130
- if (scalars === union.length - 1) {
131
- return true
132
- }
133
- return false
134
- }
135
-
136
- /**
137
- * Generates a schema from AMF's shape.
138
- * @param schema The Shape definition
139
- * @returns The generated example
140
- */
141
- abstract generate(schema: IShapeUnion | IApiPropertyShape<IShapeUnion>): string | number | boolean | null | undefined
142
-
143
- /**
144
- * Serializes generated values into the final mime type related form.
145
- *
146
- * @returns The generated example
147
- */
148
- abstract serialize(value: unknown): string | undefined
149
-
150
- /**
151
- * @param example The example to turn into a JS object
152
- */
153
- protected abstract _exampleToObject(example?: IApiDataExample): unknown
154
-
155
- protected abstract _scalarShapeObject(schema: IApiScalarShape): unknown
156
-
157
- protected abstract _nilShapeObject(schema: IApiScalarShape): unknown
158
-
159
- protected abstract _nodeShapeObject(schema: IApiNodeShape): unknown
160
-
161
- protected abstract _unionShapeObject(schema: IApiUnionShape): unknown
162
-
163
- protected abstract _fileShapeObject(schema?: IApiFileShape): unknown
164
-
165
- protected abstract _schemaShapeObject(schema?: IApiSchemaShape): unknown
166
-
167
- protected abstract _arrayShapeObject(schema: IApiArrayShape): unknown
168
-
169
- protected abstract _tupleShapeObject(schema?: IApiTupleShape): unknown
170
-
171
- protected abstract _anyShapeObject(schema: IApiAnyShape): unknown
172
-
173
- protected abstract _propertyShapeObject(schema: IApiPropertyShape): unknown
174
- }
@@ -1,457 +0,0 @@
1
- import { AmfNamespace as ns } from '../definitions/Namespace.js'
2
- import { ShapeBase } from './ShapeBase.js'
3
- import { JsonDataNodeGenerator } from '../data-node/JsonDataNodeGenerator.js'
4
- import {
5
- IApiAnyShape,
6
- IApiArrayShape,
7
- IApiDataExample,
8
- IApiDataNodeUnion,
9
- IApiNodeShape,
10
- IApiPropertyShape,
11
- IApiScalarShape,
12
- IShapeUnion,
13
- IApiTupleShape,
14
- IApiUnionShape,
15
- } from '../definitions/Shapes.js'
16
-
17
- export class ShapeJsonSchemaGenerator extends ShapeBase {
18
- /**
19
- * Generates a schema from AMF's shape.
20
- *
21
- * @param schema The Shape definition
22
- */
23
- generate(schema: IShapeUnion | IApiPropertyShape<IShapeUnion>): string | number | boolean | null | undefined {
24
- let result: string | number | boolean | object | object[] | null | undefined
25
- if (schema.types.includes(ns.w3.shacl.PropertyShape)) {
26
- result = this._propertyShapeObject(schema as IApiPropertyShape<IShapeUnion>)
27
- } else {
28
- result = this.toObject(schema as IShapeUnion)
29
- }
30
- if (result !== null && typeof result === 'object') {
31
- return this.serialize(result)
32
- }
33
- return result
34
- }
35
-
36
- /**
37
- * Processes the Shape definition and returns a JavaScript object or array.
38
- */
39
- toObject(schema: IShapeUnion): object | object[] | string | number | boolean | null | undefined {
40
- const { types } = schema
41
- if (types.includes(ns.aml.vocabularies.shapes.ScalarShape)) {
42
- return this._scalarShapeObject(schema as IApiScalarShape)
43
- }
44
- if (types.includes(ns.w3.shacl.NodeShape)) {
45
- return this._nodeShapeObject(schema as IApiNodeShape)
46
- }
47
- if (types.includes(ns.aml.vocabularies.shapes.UnionShape)) {
48
- return this._unionShapeObject(schema as IApiUnionShape)
49
- }
50
- if (types.includes(ns.aml.vocabularies.shapes.FileShape)) {
51
- return this._fileShapeObject()
52
- }
53
- if (types.includes(ns.aml.vocabularies.shapes.SchemaShape)) {
54
- return this._schemaShapeObject()
55
- }
56
- if (types.includes(ns.aml.vocabularies.shapes.TupleShape)) {
57
- return this._tupleShapeObject(schema as IApiTupleShape)
58
- }
59
- if (
60
- types.includes(ns.aml.vocabularies.shapes.ArrayShape) ||
61
- types.includes(ns.aml.vocabularies.shapes.MatrixShape)
62
- ) {
63
- return this._arrayShapeObject(schema as IApiArrayShape)
64
- }
65
- return this._anyShapeObject(schema as IApiAnyShape)
66
- }
67
-
68
- /**
69
- * Serializes generated JS value according to the mime type.
70
- */
71
- serialize(value: object | object[]): string {
72
- return JSON.stringify(value, null, 2)
73
- }
74
-
75
- protected _scalarShapeObject(schema: IApiScalarShape): string | number | boolean | null | undefined {
76
- return this._scalarValue(schema)
77
- }
78
-
79
- protected _nilShapeObject(): undefined {
80
- return undefined
81
- }
82
-
83
- protected _nodeShapeObject(schema: IApiNodeShape): object {
84
- const { inherits } = schema
85
- let { examples = [] } = schema
86
- if (Array.isArray(inherits) && inherits.length) {
87
- inherits.forEach((parent) => {
88
- const anyParent = parent as IApiAnyShape
89
- if (Array.isArray(anyParent.examples) && anyParent.examples.length) {
90
- examples = examples.concat(anyParent.examples)
91
- }
92
- })
93
- }
94
- if (this.opts.renderExamples && examples.length) {
95
- const example = examples.find((item) => !!item.structuredValue)
96
- const value = this._exampleToObject(example)
97
- if (value !== undefined) {
98
- return value as object | object[]
99
- }
100
- }
101
- let result: Record<string, unknown> = {}
102
- const { properties } = schema
103
- if (Array.isArray(inherits) && inherits.length) {
104
- inherits.forEach((s) => {
105
- const part = this.toObject(s)
106
- if (typeof part === 'object') {
107
- result = { ...result, ...part }
108
- }
109
- })
110
- }
111
- properties.forEach((property) => {
112
- const { name } = property
113
- const value = this._propertyShapeObject(property)
114
- if (typeof value !== 'undefined' && name) {
115
- result[name] = value
116
- }
117
- })
118
- return result
119
- }
120
-
121
- protected _unionShapeObject(
122
- schema: IApiUnionShape
123
- ): object | object[] | string | number | boolean | null | undefined {
124
- if (schema.and && schema.and.length) {
125
- return this._allOfUnion(schema)
126
- }
127
- if (schema.xone && schema.xone.length) {
128
- return this._oneOfUnion(schema)
129
- }
130
- // the default
131
- return this._anyOfUnion(schema)
132
- }
133
-
134
- protected _anyOfUnion(schema: IApiUnionShape): object | object[] | string | number | boolean | null | undefined {
135
- let { anyOf = [], examples = [] } = schema
136
- if (Array.isArray(schema.inherits) && schema.inherits) {
137
- schema.inherits.forEach((parent) => {
138
- const anyParent = parent as IApiAnyShape
139
- if (Array.isArray(anyParent.examples) && anyParent.examples.length) {
140
- examples = examples.concat(anyParent.examples)
141
- }
142
- const typed = parent as IApiUnionShape
143
- if (Array.isArray(typed.anyOf) && typed.anyOf.length) {
144
- anyOf = anyOf.concat(typed.anyOf)
145
- }
146
- })
147
- }
148
- const { opts } = this
149
- if (this._isNotRequiredUnion(anyOf)) {
150
- // This generates schema for required values.
151
- // This implicitly mean that the property is not required therefore the value should
152
- // not be generated.
153
- return undefined
154
- }
155
- if (this.opts.renderExamples) {
156
- const example = examples.find((item) => !!item.structuredValue)
157
- const value = this._exampleToObject(example)
158
- if (value !== undefined) {
159
- return value
160
- }
161
- }
162
- if (schema.defaultValue) {
163
- return this._unionDefaultValue(anyOf, schema.defaultValue)
164
- }
165
- const { selectedUnions } = opts
166
- let renderedItem: IShapeUnion | undefined
167
- if (selectedUnions && selectedUnions.length) {
168
- renderedItem = anyOf.find((item) => selectedUnions.includes(item.id))
169
- } else {
170
- ;[renderedItem] = anyOf
171
- }
172
- if (renderedItem) {
173
- return this.toObject(renderedItem)
174
- }
175
- return undefined
176
- }
177
-
178
- protected _oneOfUnion(schema: IApiUnionShape): object | object[] | string | number | boolean | null | undefined {
179
- let { examples = [] } = schema
180
- const { xone = [] } = schema
181
- if (Array.isArray(schema.inherits) && schema.inherits) {
182
- schema.inherits.forEach((parent) => {
183
- const anyParent = parent as IApiAnyShape
184
- if (Array.isArray(anyParent.examples) && anyParent.examples.length) {
185
- examples = examples.concat(anyParent.examples)
186
- }
187
- })
188
- }
189
- const { opts } = this
190
- if (this.opts.renderExamples) {
191
- const example = examples.find((item) => !!item.structuredValue)
192
- const value = this._exampleToObject(example)
193
- if (value !== undefined) {
194
- return value
195
- }
196
- }
197
- if (schema.defaultValue) {
198
- return this._unionDefaultValue(xone, schema.defaultValue)
199
- }
200
- const { selectedUnions } = opts
201
- let renderedItem: IShapeUnion | undefined
202
- if (selectedUnions && selectedUnions.length) {
203
- renderedItem = xone.find((item) => selectedUnions.includes(item.id))
204
- } else {
205
- ;[renderedItem] = xone
206
- }
207
- if (renderedItem) {
208
- return this.toObject(renderedItem)
209
- }
210
- return undefined
211
- }
212
-
213
- /**
214
- * Combines all properties from both all shapes in the union
215
- */
216
- protected _allOfUnion(schema: IApiUnionShape): object | object[] | string | number | boolean | null | undefined {
217
- let { examples = [] } = schema
218
- const { and = [] } = schema
219
- if (Array.isArray(schema.inherits) && schema.inherits) {
220
- schema.inherits.forEach((parent) => {
221
- const anyParent = parent as IApiAnyShape
222
- if (Array.isArray(anyParent.examples) && anyParent.examples.length) {
223
- examples = examples.concat(anyParent.examples)
224
- }
225
- })
226
- }
227
- if (this.opts.renderExamples) {
228
- const example = examples.find((item) => !!item.structuredValue)
229
- const value = this._exampleToObject(example)
230
- if (value !== undefined) {
231
- return value
232
- }
233
- }
234
- let result: Record<string, unknown> = {}
235
- and.forEach((item) => {
236
- const props = this.toObject(item)
237
- if (typeof props === 'object') {
238
- result = { ...result, ...props }
239
- }
240
- })
241
- return result
242
- }
243
-
244
- /**
245
- * @param union The list of unions in the shape
246
- * @param defaultValue The definition of a default value.
247
- */
248
- protected _unionDefaultValue(
249
- union: IShapeUnion[],
250
- defaultValue: IApiDataNodeUnion
251
- ): string | number | boolean | null | undefined {
252
- const gen = new JsonDataNodeGenerator()
253
- const result = gen.generate(defaultValue)
254
- let hasNumber = false
255
- let hasBoolean = false
256
- let hasNil = false
257
- union.forEach((i) => {
258
- if (i.types.includes(ns.aml.vocabularies.shapes.NilShape)) {
259
- hasNil = true
260
- }
261
- if (!i.types.includes(ns.aml.vocabularies.shapes.ScalarShape)) {
262
- return
263
- }
264
- const scalar = i as IApiScalarShape
265
- if (!hasBoolean) {
266
- hasBoolean = scalar.dataType === ns.w3.xmlSchema.boolean
267
- }
268
- if (!hasNumber) {
269
- hasNumber = [
270
- ns.w3.xmlSchema.number,
271
- ns.w3.xmlSchema.long,
272
- ns.w3.xmlSchema.integer,
273
- ns.w3.xmlSchema.float,
274
- ns.w3.xmlSchema.double,
275
- ns.aml.vocabularies.shapes.number,
276
- ns.aml.vocabularies.shapes.long,
277
- ns.aml.vocabularies.shapes.integer,
278
- ns.aml.vocabularies.shapes.float,
279
- ns.aml.vocabularies.shapes.double,
280
- ].includes(scalar.dataType as string)
281
- }
282
- if (!hasNil) {
283
- hasNil = scalar.dataType === ns.w3.xmlSchema.nil
284
- }
285
- })
286
- if (hasNumber) {
287
- const parsed = Number(result)
288
- if (!Number.isNaN(parsed)) {
289
- return parsed
290
- }
291
- }
292
- if (hasBoolean) {
293
- if (result === 'true') {
294
- return true
295
- }
296
- if (result === 'false') {
297
- return false
298
- }
299
- }
300
- if (hasNil && (result === 'null' || result === 'nil')) {
301
- return null
302
- }
303
- return result
304
- }
305
-
306
- protected _arrayShapeObject(schema: IApiArrayShape): unknown[] {
307
- const { items } = schema
308
- const defaultValue = schema.defaultValue || (items && items.defaultValue)
309
-
310
- let { examples = [] } = schema
311
- const anyItems = items as IApiAnyShape
312
- if (Array.isArray(anyItems.examples)) {
313
- examples = examples.concat(anyItems.examples)
314
- }
315
- if (this.opts.renderExamples && examples && examples.length) {
316
- const example = examples.find((item) => !!item.structuredValue)
317
- const value = this._exampleToObject(example)
318
- if (Array.isArray(value)) {
319
- return value
320
- }
321
- if (typeof value !== 'undefined') {
322
- return [value]
323
- }
324
- }
325
- if (defaultValue) {
326
- const gen = new JsonDataNodeGenerator()
327
- const arr = gen.processNode(defaultValue)
328
- if (Array.isArray(arr)) {
329
- return arr
330
- } else if (arr) {
331
- return [arr]
332
- }
333
- }
334
- if (items) {
335
- const value = this.toObject(items)
336
- if (typeof value !== 'undefined') {
337
- return [value]
338
- }
339
- }
340
- return []
341
- }
342
-
343
- protected _tupleShapeObject(
344
- schema: IApiTupleShape
345
- ): object | object[] | string | number | boolean | null | undefined {
346
- const { items, examples } = schema
347
- if (this.opts.renderExamples && examples && examples.length) {
348
- const example = examples.find((item) => !!item.structuredValue)
349
- const value = this._exampleToObject(example)
350
- if (typeof value !== 'undefined') {
351
- return [value]
352
- }
353
- }
354
- if (schema.defaultValue) {
355
- const gen = new JsonDataNodeGenerator()
356
- const arr = gen.processNode(schema.defaultValue)
357
- if (Array.isArray(arr)) {
358
- return arr
359
- }
360
- }
361
- if (items.length) {
362
- const result: unknown[] = []
363
- items.forEach((i) => {
364
- const value = this.toObject(i)
365
- if (typeof value !== 'undefined') {
366
- result.push(value)
367
- }
368
- })
369
- return result
370
- }
371
- return []
372
- }
373
-
374
- protected _anyShapeObject(schema: IApiAnyShape): object | object[] | string | number | boolean | null | undefined {
375
- const { and = [], xone = [], or = [] } = schema
376
- if (and.length) {
377
- let result: Record<string, unknown> = {}
378
- and.forEach((item) => {
379
- const props = this.toObject(item)
380
- if (typeof props === 'object') {
381
- result = { ...result, ...props }
382
- }
383
- })
384
- return result
385
- }
386
- if (xone.length) {
387
- const { selectedUnions = [] } = this.opts
388
- let selected = xone.find((i) => selectedUnions.includes(i.id))
389
- if (!selected) {
390
- // select firs available
391
- selected = xone[0]
392
- }
393
- return this.toObject(selected)
394
- }
395
- if (or.length) {
396
- const { selectedUnions = [] } = this.opts
397
- let selected = or.find((i) => selectedUnions.includes(i.id))
398
- if (!selected) {
399
- // select firs available
400
- selected = or[0]
401
- }
402
- return this.toObject(selected)
403
- }
404
- return this._scalarShapeObject(schema)
405
- }
406
-
407
- /**
408
- * @returns The value for the property or undefined when cannot generate the value.
409
- */
410
- protected _propertyShapeObject(
411
- schema: IApiPropertyShape
412
- ): object | object[] | string | number | boolean | null | undefined {
413
- const { minCount = 0 } = schema
414
- if (minCount === 0 && !this.opts.renderOptional) {
415
- return undefined
416
- }
417
- const { range } = schema
418
- if (!range) {
419
- return undefined
420
- }
421
- const { types } = range
422
- if (types.includes(ns.aml.vocabularies.shapes.ScalarShape)) {
423
- // const defaultValue = schema.defaultValue || range.defaultValue;
424
- // if (!this.opts.renderExamples && defaultValue) {
425
- // const gen = new JsonDataNodeGenerator();
426
- // const value = gen.generate(defaultValue);
427
- // if (value) {
428
- // return ApiSchemaValues.readTypedValue(value, /** @type IScalarShape */ (range).dataType);
429
- // }
430
- // }
431
- const anyRange = range as IApiAnyShape
432
- return this._scalarShapeObject(anyRange)
433
- }
434
- return this.toObject(range)
435
- }
436
-
437
- /**
438
- * @param example The example to turn into a JS object
439
- */
440
- protected _exampleToObject(
441
- example?: IApiDataExample
442
- ): object | object[] | string | number | boolean | null | undefined {
443
- if (example && example.structuredValue) {
444
- const jsonGenerator = new JsonDataNodeGenerator()
445
- return jsonGenerator.processNode(example.structuredValue)
446
- }
447
- return undefined
448
- }
449
-
450
- protected _fileShapeObject(): undefined {
451
- return undefined
452
- }
453
-
454
- protected _schemaShapeObject(): undefined {
455
- return undefined
456
- }
457
- }