@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,438 +0,0 @@
1
- import {
2
- IAmfAnyTypes,
3
- IAmfArrayTypes,
4
- IAmfFileTypes,
5
- IAmfNodeTypes,
6
- IAmfPropertyTypes,
7
- IAmfRecursiveTypes,
8
- IAmfScalarTypes,
9
- IAmfTupleTypes,
10
- IAmfUnionTypes,
11
- IAmfXmlSerializationTypes,
12
- } from '../AmfTypes.js'
13
- import { IApiDocumentation, IApiDocumentSourceMaps } from './Api.js'
14
- import { IApiDomainProperty } from './Base.js'
15
-
16
- export type IShapeUnion =
17
- | IApiScalarShape
18
- | IApiNodeShape
19
- | IApiUnionShape
20
- | IApiFileShape
21
- | IApiSchemaShape
22
- | IApiAnyShape
23
- | IApiArrayShape
24
- | IApiTupleShape
25
- | IApiRecursiveShape
26
-
27
- export interface IApiAssociationShape {
28
- /**
29
- * This is a custom property that not available in the AMF library and is used with data associations.
30
- *
31
- * Whether the target entity should be embedded under the property name.
32
- * When false, this association is just an information that one entity depend on another.
33
- * When true, it changes the definition of the schema having this association to
34
- * add the target schema properties inline with this property.
35
- *
36
- * **When true**
37
- *
38
- * ```javascript
39
- * // generated schema for `address` association
40
- * {
41
- * "name": "example value",
42
- * "address": {
43
- * "city": "example value",
44
- * ...
45
- * }
46
- * }
47
- * ```
48
- *
49
- * **When false**
50
- *
51
- * ```javascript
52
- * // generated schema for `address` association
53
- * {
54
- * "name": "example value",
55
- * "address": "the key of the referenced schema"
56
- * }
57
- * ```
58
- */
59
- linked?: boolean
60
- /**
61
- * When the association has multiple targets the union type should be
62
- * set to describe which union this is.
63
- *
64
- * Possible values are:
65
- *
66
- * - allOf - To validate against `allOf`, the given data must be valid against
67
- * all of the given sub-schemas. When generating, it's a sum of all properties.
68
- * - anyOf - To validate against `anyOf`, the given data must be valid against
69
- * any (one or more) of the given sub-schemas. When generation a schema, it takes first union schema.
70
- * - oneOf - To validate against `oneOf`, the given data must be valid against
71
- * exactly one of the given sub-schemas. It behaves the same as `anyOf` when generating a schema
72
- * - not - The `not` keyword declares that an instance validates if it doesn’t
73
- * validate against the given sub-schema. It has no use when generating a schema.
74
- *
75
- * @default anyOf
76
- */
77
- unionType?: 'allOf' | 'anyOf' | 'oneOf' | 'not'
78
- }
79
-
80
- export interface IApiDataExample extends IApiDomainProperty {
81
- name?: string
82
- displayName?: string
83
- description?: string
84
- /**
85
- * This is the "raw" property of AMF
86
- */
87
- value?: string
88
- structuredValue?: IApiDataNodeUnion
89
- strict: boolean
90
- mediaType?: string
91
- location?: string
92
- sourceMaps?: IApiDocumentSourceMaps
93
- }
94
-
95
- export function xmlSerializer(id: string): IApiXmlSerializer {
96
- return {
97
- id: `xml-serializer-${id}`,
98
- types: IAmfXmlSerializationTypes,
99
- customDomainProperties: [],
100
- }
101
- }
102
-
103
- export function shape(id: string): IApiShape {
104
- const result: IApiShape = {
105
- id,
106
- types: [],
107
- values: [],
108
- inherits: [],
109
- or: [],
110
- and: [],
111
- xone: [],
112
- customDomainProperties: [],
113
- }
114
- return result
115
- }
116
-
117
- export function anyShape(id: string): IApiAnyShape {
118
- const result: IApiAnyShape = {
119
- ...shape(id),
120
- types: IAmfAnyTypes,
121
- examples: [],
122
- xmlSerialization: xmlSerializer(id),
123
- }
124
- return result
125
- }
126
-
127
- export function nodeShape(id: string): IApiNodeShape {
128
- const result = anyShape(id)
129
- result.types = IAmfNodeTypes
130
- result.id = `node-shape-${id}`
131
- return {
132
- ...result,
133
- properties: [],
134
- dependencies: [],
135
- customShapeProperties: [],
136
- customShapePropertyDefinitions: [],
137
- }
138
- }
139
-
140
- export function scalarShape(id: string): IApiScalarShape {
141
- const result = anyShape(id)
142
- result.id = `scalar-shape-${id}`
143
- result.types = IAmfScalarTypes
144
- return result
145
- }
146
-
147
- export function unionShape(id: string): IApiUnionShape {
148
- const result = anyShape(id)
149
- result.id = `union-shape-${id}`
150
- result.types = IAmfUnionTypes
151
- return { ...result, anyOf: [] }
152
- }
153
-
154
- export function fileShape(id: string): IApiFileShape {
155
- const result = anyShape(id)
156
- result.id = `file-shape-${id}`
157
- result.types = IAmfFileTypes
158
- return result
159
- }
160
-
161
- export function arrayShape(id: string): IApiArrayShape {
162
- const result = anyShape(id)
163
- result.id = `array-shape-${id}`
164
- result.types = IAmfArrayTypes
165
- return result
166
- }
167
-
168
- export function tupleShape(id: string): IApiTupleShape {
169
- const result = anyShape(id)
170
- result.id = `tuple-shape-${id}`
171
- result.types = IAmfTupleTypes
172
- return { ...result, items: [] }
173
- }
174
-
175
- export function propertyShape(id: string): IApiPropertyShape {
176
- const result = anyShape(id)
177
- result.types = IAmfPropertyTypes
178
- return result
179
- }
180
-
181
- export function recursiveShape(id: string, fixedId?: string): IApiRecursiveShape {
182
- const result: IApiRecursiveShape = {
183
- ...shape(id),
184
- id: `recursive-${id}`,
185
- types: IAmfRecursiveTypes,
186
- fixPoint: fixedId || '',
187
- }
188
- return result
189
- }
190
-
191
- export interface IApiShape extends IApiDomainProperty {
192
- /**
193
- * Enum values for this shape.
194
- */
195
- values: IApiDataNodeUnion[]
196
- /**
197
- * The list of shapes that this shape inherits from
198
- */
199
- inherits: IShapeUnion[]
200
- /**
201
- * The `anyOf` union type.
202
- */
203
- or: IShapeUnion[]
204
- /**
205
- * The `allOf` union type.
206
- */
207
- and: IShapeUnion[]
208
- /**
209
- * The `oneOf` union type.
210
- */
211
- xone: IShapeUnion[]
212
- /**
213
- * The name of the shape in the system.
214
- */
215
- name?: string
216
- /**
217
- * The display name for the shape in the UI.
218
- */
219
- displayName?: string
220
- /**
221
- * The description of the shape.
222
- */
223
- description?: string
224
- /**
225
- * The default value encoded as a string
226
- */
227
- defaultValueStr?: string
228
- /**
229
- * The description of the default value of the shape.
230
- */
231
- defaultValue?: IApiDataNodeUnion
232
- /**
233
- * Whether the shape is deprecated.
234
- */
235
- deprecated?: boolean
236
- /**
237
- * Whether the shape is a read only shape (disallow writes to the value)
238
- */
239
- readOnly?: boolean
240
- /**
241
- * Whether the shape can only be written to (disallow reading the value)
242
- */
243
- writeOnly?: boolean
244
- not?: IShapeUnion
245
- /**
246
- * A label that appeared on a link.
247
- */
248
- linkLabel?: string
249
- sourceMaps?: IApiDocumentSourceMaps
250
- }
251
-
252
- /**
253
- * A property of an API operation.
254
- */
255
- export interface IApiPropertyShape<T = IShapeUnion> extends IApiShape {
256
- /**
257
- * The path of the property. Essentially, it is link generated by the AMF library
258
- * where the fragment part is the name of the property.
259
- */
260
- path?: string
261
- /**
262
- * The parameter shape definition
263
- */
264
- range?: T
265
- /**
266
- * When > 0 then the parameter is required.
267
- */
268
- minCount?: number
269
- maxCount?: number
270
- }
271
-
272
- export interface IApiAnyShape extends IApiShape {
273
- documentation?: IApiDocumentation
274
- /**
275
- * Description of how the shape should be serialized as XML.
276
- */
277
- xmlSerialization: IApiXmlSerializer
278
- /**
279
- * Examples defined for the shape.
280
- */
281
- examples: IApiDataExample[]
282
- }
283
-
284
- /**
285
- * Describes an object shape.
286
- */
287
- export interface IApiNodeShape extends IApiAnyShape {
288
- minProperties?: number
289
- maxProperties?: number
290
- closed?: boolean
291
- customShapeProperties: string[]
292
- customShapePropertyDefinitions: string[]
293
- discriminator?: string
294
- discriminatorValue?: string
295
- properties: IApiPropertyShape[]
296
- dependencies: string[]
297
- }
298
-
299
- export interface IApiXmlSerializer extends IApiDomainProperty {
300
- /**
301
- * Whether this property should be represented as an attribute of the parent shape.
302
- *
303
- * ```
304
- * <Person name="John Doe"></Person>
305
- * ```
306
- */
307
- attribute?: boolean
308
- /**
309
- * When the property is an array (has the `multiple` set to true in the data model)
310
- * then it tells that the list of values should be wrapped with a parent
311
- * element:
312
- *
313
- * ```
314
- * <Person>
315
- * <Person fullName="John Doe"></Person>
316
- * <Person fullName="Other Doe"></Person>
317
- * </Person>
318
- * ```
319
- *
320
- * Use this with the combination with `name` to describe the name of the wrapped
321
- * element
322
- *
323
- * ```
324
- * <people>
325
- * <Person fullName="John Doe"></Person>
326
- * </people>
327
- * ```
328
- *
329
- * Note, this is mutually exclusive with `attribute`.
330
- */
331
- wrapped?: boolean
332
- /**
333
- * The name of the attribute or a wrapped property to use when serializing the property.
334
- *
335
- * Attribute name
336
- * ```xml
337
- * <Person fullName="John Doe"></Person>
338
- * ```
339
- *
340
- * Wrapped name
341
- * ```xml
342
- * <people>
343
- * <Person name="John Doe"></Person>
344
- * </people>
345
- * ```
346
- */
347
- name?: string
348
- /**
349
- * The XML namespace to use.
350
- *
351
- * ```xml
352
- * <Person ns:name="John Doe"></Person>
353
- * ```
354
- */
355
- namespace?: string
356
- /**
357
- * Name prefix
358
- *
359
- * ```xml
360
- * <ns:Person name="John Doe"></ns:Person>
361
- * ```
362
- */
363
- prefix?: string
364
- sourceMaps?: IApiDocumentSourceMaps
365
- }
366
-
367
- export interface IApiScalarShape extends IApiAnyShape {
368
- dataType?: string
369
- pattern?: string
370
- minLength?: number
371
- maxLength?: number
372
- minimum?: number
373
- maximum?: number
374
- exclusiveMinimum?: boolean
375
- exclusiveMaximum?: boolean
376
- format?: string
377
- multipleOf?: number
378
- }
379
-
380
- export interface IApiFileShape extends IApiAnyShape {
381
- fileTypes?: string[]
382
- pattern?: string
383
- minLength?: number
384
- maxLength?: number
385
- minimum?: number
386
- maximum?: number
387
- exclusiveMinimum?: boolean
388
- exclusiveMaximum?: boolean
389
- format?: string
390
- multipleOf?: number
391
- }
392
-
393
- export interface IApiSchemaShape extends IApiAnyShape {
394
- mediaType?: string
395
- raw?: string
396
- }
397
-
398
- export interface IApiUnionShape extends IApiAnyShape {
399
- anyOf: IShapeUnion[]
400
- }
401
-
402
- export interface IApiDataArrangeShape extends IApiAnyShape {
403
- minItems?: number
404
- maxItems?: number
405
- uniqueItems?: boolean
406
- }
407
-
408
- export interface IApiArrayShape<T = IShapeUnion> extends IApiDataArrangeShape {
409
- items?: T
410
- }
411
-
412
- export interface IApiTupleShape<T = IShapeUnion> extends IApiDataArrangeShape {
413
- items: T[]
414
- additionalItems?: boolean
415
- }
416
-
417
- export interface IApiRecursiveShape extends IApiShape {
418
- fixPoint: string
419
- }
420
-
421
- export interface IApiDataNode extends IApiDomainProperty {
422
- name?: string
423
- }
424
-
425
- export interface IApiObjectNode extends IApiDataNode {
426
- properties: Record<string, IApiDataNodeUnion>
427
- }
428
-
429
- export interface IApiScalarNode extends IApiDataNode {
430
- value?: string
431
- dataType?: string
432
- }
433
-
434
- export interface IApiArrayNode extends IApiDataNode {
435
- members: IApiDataNodeUnion[]
436
- }
437
-
438
- export type IApiDataNodeUnion = IApiDataNode | IApiObjectNode | IApiScalarNode | IApiArrayNode
@@ -1,210 +0,0 @@
1
- import { nanoid } from '../../nanoid.js'
2
- import { IAmfArrayNodeTypes, IAmfObjectNodeTypes, IAmfScalarNodeTypes } from '../AmfTypes.js'
3
- import { IApiCustomDomainProperty } from '../definitions/Base.js'
4
- import { AmfNamespace } from '../definitions/Namespace.js'
5
- import {
6
- IApiArrayNode,
7
- IApiDataNode,
8
- IApiDataNodeUnion,
9
- IApiObjectNode,
10
- IApiScalarNode,
11
- } from '../definitions/Shapes.js'
12
-
13
- export type IDataNodeInit = 'scalar' | 'object' | 'array'
14
-
15
- /**
16
- * A class that manipulates the AMF's DataNode node.
17
- */
18
- export class AmfDataNode {
19
- id = nanoid()
20
-
21
- /**
22
- * AMF domain types.
23
- * This is set in the constructor
24
- */
25
- types: string[]
26
-
27
- /**
28
- * The name of this data node.
29
- */
30
- name?: string
31
-
32
- /**
33
- * Set when the object node type
34
- */
35
- properties?: Record<string, AmfDataNode>
36
-
37
- /**
38
- * Scalar type value. Always a string.
39
- */
40
- value?: string
41
-
42
- /**
43
- * Scalar type value data type.
44
- */
45
- dataType?: string
46
-
47
- /**
48
- * Set when the type is array.
49
- */
50
- members?: AmfDataNode[]
51
-
52
- customDomainProperties: IApiCustomDomainProperty[] = []
53
-
54
- static scalar(value: string, type: string): AmfDataNode {
55
- const result = new AmfDataNode('scalar')
56
- result.value = value
57
- result.dataType = type
58
- return result
59
- }
60
-
61
- constructor(init: IApiDataNodeUnion | IDataNodeInit) {
62
- if (typeof init === 'string') {
63
- if (init === 'scalar') {
64
- this.types = IAmfScalarNodeTypes
65
- } else if (init === 'array') {
66
- this.types = IAmfArrayNodeTypes
67
- } else if (init === 'object') {
68
- this.types = IAmfObjectNodeTypes
69
- } else {
70
- throw new Error(`Invalid data node init option: ${init}`)
71
- }
72
- return
73
- }
74
- if (!init) {
75
- throw new Error(`Expected an initialization option.`)
76
- }
77
- const union = init as IApiDataNodeUnion
78
- const { id, types, customDomainProperties } = union
79
- this.id = id
80
- this.types = types
81
- this.customDomainProperties = customDomainProperties
82
- if (types.includes(AmfNamespace.aml.vocabularies.data.Scalar)) {
83
- const typed = union as IApiScalarNode
84
- this.value = typed.value
85
- this.dataType = typed.dataType
86
- } else if (types.includes(AmfNamespace.aml.vocabularies.data.Object)) {
87
- const typed = union as IApiObjectNode
88
- const props: Record<string, AmfDataNode> = {}
89
- this.properties = props
90
- Object.keys(typed.properties).forEach((key) => {
91
- const instance = new AmfDataNode(typed.properties[key])
92
- props[key] = instance
93
- })
94
- } else if (types.includes(AmfNamespace.aml.vocabularies.data.Array)) {
95
- const typed = union as IApiArrayNode
96
- const members: AmfDataNode[] = []
97
- this.members = members
98
- if (Array.isArray(typed.members)) {
99
- typed.members.forEach((member) => {
100
- const instance = new AmfDataNode(member)
101
- members.push(instance)
102
- })
103
- }
104
- }
105
- }
106
-
107
- toJSON(): IApiDataNodeUnion {
108
- const { id, customDomainProperties, types, name } = this
109
- const result: IApiDataNode = {
110
- id,
111
- types,
112
- customDomainProperties,
113
- }
114
- if (name) {
115
- result.name = name
116
- }
117
-
118
- if (types.includes(AmfNamespace.aml.vocabularies.data.Scalar)) {
119
- const typed = result as IApiScalarNode
120
- typed.dataType = this.dataType
121
- typed.value = this.value
122
- } else if (types.includes(AmfNamespace.aml.vocabularies.data.Object)) {
123
- const typed = result as IApiObjectNode
124
- typed.properties = {}
125
- const props = this.properties
126
- if (props) {
127
- Object.keys(props).forEach((key) => {
128
- typed.properties[key] = props[key].toJSON()
129
- })
130
- }
131
- } else if (types.includes(AmfNamespace.aml.vocabularies.data.Array)) {
132
- const typed = result as IApiArrayNode
133
- typed.members = []
134
- if (this.members) {
135
- this.members.forEach((member) => {
136
- typed.members.push(member.toJSON())
137
- })
138
- }
139
- }
140
- return result
141
- }
142
-
143
- /**
144
- * Adds a member to the list of members.
145
- * It throws when this is not an array node.
146
- *
147
- * @param init The member to add.
148
- */
149
- addMember(init: AmfDataNode): void {
150
- if (!this.types.includes(AmfNamespace.aml.vocabularies.data.Array)) {
151
- throw new Error(`Not an ArrayNode.`)
152
- }
153
- if (!this.members) {
154
- this.members = []
155
- }
156
- this.members.push(init)
157
- }
158
-
159
- /**
160
- * Removes a member from the list of members.
161
- * It throws when this is not an array node.
162
- *
163
- * @param id The domain id of the member to remove.
164
- */
165
- removeMember(id: string): void {
166
- if (!this.types.includes(AmfNamespace.aml.vocabularies.data.Array)) {
167
- throw new Error(`Not an ArrayNode.`)
168
- }
169
- if (!this.members) {
170
- return
171
- }
172
- const index = this.members.findIndex((i) => i.id === id)
173
- if (index >= 0) {
174
- this.members.splice(index, 1)
175
- }
176
- }
177
-
178
- /**
179
- * Adds a property to the ObjectNode.
180
- * It throws when this is not an object node.
181
- *
182
- * @param name The name of the property.
183
- * @param value The instance of the DataNode to set.
184
- */
185
- addProperty(name: string, value: AmfDataNode): void {
186
- if (!this.types.includes(AmfNamespace.aml.vocabularies.data.Object)) {
187
- throw new Error(`Not an ObjectNode.`)
188
- }
189
- if (!this.properties) {
190
- this.properties = {}
191
- }
192
- this.properties[name] = value
193
- }
194
-
195
- /**
196
- * Deletes a property by name.
197
- *
198
- * @param name The name of the property to delete.
199
- */
200
- removeProperty(name: string): void {
201
- if (!this.types.includes(AmfNamespace.aml.vocabularies.data.Object)) {
202
- throw new Error(`Not an ObjectNode.`)
203
- }
204
- if (!this.properties) {
205
- return
206
- }
207
- // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
208
- delete this.properties[name]
209
- }
210
- }
@@ -1,4 +0,0 @@
1
- # Shape based schema generators
2
-
3
- In this directory you will find libraries to generate a schema from AMF shapes.
4
- This generates a schema taking shape properties into the account.