@asyncapi-actions-test/trusted-publishing-test_asyncapi-cli 4.1.3

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 (257) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +117 -0
  3. package/assets/create-template/templates/default/asyncapi.yaml +34 -0
  4. package/assets/create-template/templates/default/package-lock.json +4062 -0
  5. package/assets/create-template/templates/default/package.json +10 -0
  6. package/assets/create-template/templates/default/readme.md +4 -0
  7. package/assets/create-template/templates/default/template/index.js +11 -0
  8. package/assets/examples/adeo-kafka-request-reply-asyncapi.yml +298 -0
  9. package/assets/examples/anyof-asyncapi.yml +36 -0
  10. package/assets/examples/application-headers-asyncapi.yml +86 -0
  11. package/assets/examples/correlation-id-asyncapi.yml +180 -0
  12. package/assets/examples/default-example.json +51 -0
  13. package/assets/examples/default-example.yaml +31 -0
  14. package/assets/examples/examples.json +82 -0
  15. package/assets/examples/gitter-streaming-asyncapi.yml +178 -0
  16. package/assets/examples/kraken-websocket-request-reply-message-filter-in-reply-asyncapi.yml +388 -0
  17. package/assets/examples/kraken-websocket-request-reply-multiple-channels-asyncapi.yml +394 -0
  18. package/assets/examples/mercure-asyncapi.yml +58 -0
  19. package/assets/examples/not-asyncapi.yml +29 -0
  20. package/assets/examples/oneof-asyncapi.yml +57 -0
  21. package/assets/examples/operation-security-asyncapi.yml +117 -0
  22. package/assets/examples/rpc-client-asyncapi.yml +72 -0
  23. package/assets/examples/rpc-server-asyncapi.yml +69 -0
  24. package/assets/examples/simple-asyncapi.yml +31 -0
  25. package/assets/examples/slack-rtm-asyncapi.yml +982 -0
  26. package/assets/examples/streetlights-kafka-asyncapi.yml +199 -0
  27. package/assets/examples/streetlights-mqtt-asyncapi.yml +253 -0
  28. package/assets/examples/streetlights-operation-security-asyncapi.yml +240 -0
  29. package/assets/examples/tutorial.yml +41 -0
  30. package/assets/examples/websocket-gemini-asyncapi.yml +301 -0
  31. package/assets/logo.png +0 -0
  32. package/assets/server-api.png +0 -0
  33. package/bin/dev +17 -0
  34. package/bin/dev.cmd +3 -0
  35. package/bin/run +12 -0
  36. package/bin/run.cmd +3 -0
  37. package/bin/run_bin +13 -0
  38. package/bin/run_bin.cmd +3 -0
  39. package/lib/apps/api/app.d.ts +15 -0
  40. package/lib/apps/api/app.js +91 -0
  41. package/lib/apps/api/configs/development.json +16 -0
  42. package/lib/apps/api/configs/production.json +16 -0
  43. package/lib/apps/api/configs/test.json +16 -0
  44. package/lib/apps/api/constants.d.ts +1 -0
  45. package/lib/apps/api/constants.js +4 -0
  46. package/lib/apps/api/controllers/bundle.controller.d.ts +7 -0
  47. package/lib/apps/api/controllers/bundle.controller.js +44 -0
  48. package/lib/apps/api/controllers/convert.controller.d.ts +11 -0
  49. package/lib/apps/api/controllers/convert.controller.js +69 -0
  50. package/lib/apps/api/controllers/diff.controller.d.ts +7 -0
  51. package/lib/apps/api/controllers/diff.controller.js +42 -0
  52. package/lib/apps/api/controllers/docs.controller.d.ts +6 -0
  53. package/lib/apps/api/controllers/docs.controller.js +24 -0
  54. package/lib/apps/api/controllers/generate.controller.d.ts +22 -0
  55. package/lib/apps/api/controllers/generate.controller.js +174 -0
  56. package/lib/apps/api/controllers/help.controller.d.ts +6 -0
  57. package/lib/apps/api/controllers/help.controller.js +101 -0
  58. package/lib/apps/api/controllers/parse.controller.d.ts +10 -0
  59. package/lib/apps/api/controllers/parse.controller.js +35 -0
  60. package/lib/apps/api/controllers/validate.controller.d.ts +10 -0
  61. package/lib/apps/api/controllers/validate.controller.js +50 -0
  62. package/lib/apps/api/controllers/version.controller.d.ts +8 -0
  63. package/lib/apps/api/controllers/version.controller.js +69 -0
  64. package/lib/apps/api/exceptions/problem.exception.d.ts +14 -0
  65. package/lib/apps/api/exceptions/problem.exception.js +10 -0
  66. package/lib/apps/api/index.d.ts +10 -0
  67. package/lib/apps/api/index.js +23 -0
  68. package/lib/apps/api/middlewares/logger.middleware.d.ts +2 -0
  69. package/lib/apps/api/middlewares/logger.middleware.js +12 -0
  70. package/lib/apps/api/middlewares/problem.middleware.d.ts +6 -0
  71. package/lib/apps/api/middlewares/problem.middleware.js +27 -0
  72. package/lib/apps/api/middlewares/validation.middleware.d.ts +12 -0
  73. package/lib/apps/api/middlewares/validation.middleware.js +245 -0
  74. package/lib/apps/api/server.d.ts +3 -0
  75. package/lib/apps/api/server.js +19 -0
  76. package/lib/apps/cli/commands/bundle.d.ts +15 -0
  77. package/lib/apps/cli/commands/bundle.js +75 -0
  78. package/lib/apps/cli/commands/config/analytics.d.ts +11 -0
  79. package/lib/apps/cli/commands/config/analytics.js +61 -0
  80. package/lib/apps/cli/commands/config/auth/add.d.ts +13 -0
  81. package/lib/apps/cli/commands/config/auth/add.js +68 -0
  82. package/lib/apps/cli/commands/config/context/add.d.ts +13 -0
  83. package/lib/apps/cli/commands/config/context/add.js +46 -0
  84. package/lib/apps/cli/commands/config/context/current.d.ts +8 -0
  85. package/lib/apps/cli/commands/config/context/current.js +37 -0
  86. package/lib/apps/cli/commands/config/context/edit.d.ts +12 -0
  87. package/lib/apps/cli/commands/config/context/edit.js +44 -0
  88. package/lib/apps/cli/commands/config/context/index.d.ts +5 -0
  89. package/lib/apps/cli/commands/config/context/index.js +16 -0
  90. package/lib/apps/cli/commands/config/context/init.d.ts +12 -0
  91. package/lib/apps/cli/commands/config/context/init.js +31 -0
  92. package/lib/apps/cli/commands/config/context/list.d.ts +8 -0
  93. package/lib/apps/cli/commands/config/context/list.js +36 -0
  94. package/lib/apps/cli/commands/config/context/remove.d.ts +11 -0
  95. package/lib/apps/cli/commands/config/context/remove.js +39 -0
  96. package/lib/apps/cli/commands/config/context/use.d.ts +11 -0
  97. package/lib/apps/cli/commands/config/context/use.js +40 -0
  98. package/lib/apps/cli/commands/config/index.d.ts +5 -0
  99. package/lib/apps/cli/commands/config/index.js +16 -0
  100. package/lib/apps/cli/commands/config/versions.d.ts +8 -0
  101. package/lib/apps/cli/commands/config/versions.js +56 -0
  102. package/lib/apps/cli/commands/convert.d.ts +21 -0
  103. package/lib/apps/cli/commands/convert.js +85 -0
  104. package/lib/apps/cli/commands/diff.d.ts +36 -0
  105. package/lib/apps/cli/commands/diff.js +335 -0
  106. package/lib/apps/cli/commands/format.d.ts +18 -0
  107. package/lib/apps/cli/commands/format.js +97 -0
  108. package/lib/apps/cli/commands/generate/client.d.ts +30 -0
  109. package/lib/apps/cli/commands/generate/client.js +94 -0
  110. package/lib/apps/cli/commands/generate/fromTemplate.d.ts +29 -0
  111. package/lib/apps/cli/commands/generate/fromTemplate.js +91 -0
  112. package/lib/apps/cli/commands/generate/index.d.ts +5 -0
  113. package/lib/apps/cli/commands/generate/index.js +15 -0
  114. package/lib/apps/cli/commands/generate/models.d.ts +16 -0
  115. package/lib/apps/cli/commands/generate/models.js +166 -0
  116. package/lib/apps/cli/commands/new/file.d.ts +16 -0
  117. package/lib/apps/cli/commands/new/file.js +180 -0
  118. package/lib/apps/cli/commands/new/index.d.ts +5 -0
  119. package/lib/apps/cli/commands/new/index.js +15 -0
  120. package/lib/apps/cli/commands/new/template.d.ts +18 -0
  121. package/lib/apps/cli/commands/new/template.js +102 -0
  122. package/lib/apps/cli/commands/optimize.d.ts +41 -0
  123. package/lib/apps/cli/commands/optimize.js +289 -0
  124. package/lib/apps/cli/commands/pretty.d.ts +12 -0
  125. package/lib/apps/cli/commands/pretty.js +70 -0
  126. package/lib/apps/cli/commands/start/api.d.ts +11 -0
  127. package/lib/apps/cli/commands/start/api.js +23 -0
  128. package/lib/apps/cli/commands/start/index.d.ts +5 -0
  129. package/lib/apps/cli/commands/start/index.js +15 -0
  130. package/lib/apps/cli/commands/start/preview.d.ts +17 -0
  131. package/lib/apps/cli/commands/start/preview.js +41 -0
  132. package/lib/apps/cli/commands/start/studio.d.ts +16 -0
  133. package/lib/apps/cli/commands/start/studio.js +94 -0
  134. package/lib/apps/cli/commands/validate.d.ts +23 -0
  135. package/lib/apps/cli/commands/validate.js +95 -0
  136. package/lib/apps/cli/internal/args/generate.args.d.ts +3 -0
  137. package/lib/apps/cli/internal/args/generate.args.js +10 -0
  138. package/lib/apps/cli/internal/base/BaseGeneratorCommand.d.ts +42 -0
  139. package/lib/apps/cli/internal/base/BaseGeneratorCommand.js +119 -0
  140. package/lib/apps/cli/internal/base.d.ts +20 -0
  141. package/lib/apps/cli/internal/base.js +173 -0
  142. package/lib/apps/cli/internal/flags/bundle.flags.d.ts +7 -0
  143. package/lib/apps/cli/internal/flags/bundle.flags.js +26 -0
  144. package/lib/apps/cli/internal/flags/config/analytics.flags.d.ts +6 -0
  145. package/lib/apps/cli/internal/flags/config/analytics.flags.js +24 -0
  146. package/lib/apps/cli/internal/flags/config/context.flags.d.ts +4 -0
  147. package/lib/apps/cli/internal/flags/config/context.flags.js +16 -0
  148. package/lib/apps/cli/internal/flags/convert.flags.d.ts +7 -0
  149. package/lib/apps/cli/internal/flags/convert.flags.js +32 -0
  150. package/lib/apps/cli/internal/flags/diff.flags.d.ts +13 -0
  151. package/lib/apps/cli/internal/flags/diff.flags.js +29 -0
  152. package/lib/apps/cli/internal/flags/format.flags.d.ts +6 -0
  153. package/lib/apps/cli/internal/flags/format.flags.js +22 -0
  154. package/lib/apps/cli/internal/flags/generate/clients.flags.d.ts +16 -0
  155. package/lib/apps/cli/internal/flags/generate/clients.flags.js +8 -0
  156. package/lib/apps/cli/internal/flags/generate/fromTemplate.flags.d.ts +16 -0
  157. package/lib/apps/cli/internal/flags/generate/fromTemplate.flags.js +8 -0
  158. package/lib/apps/cli/internal/flags/generate/models.flags.d.ts +1 -0
  159. package/lib/apps/cli/internal/flags/generate/models.flags.js +14 -0
  160. package/lib/apps/cli/internal/flags/generate/sharedFlags.d.ts +16 -0
  161. package/lib/apps/cli/internal/flags/generate/sharedFlags.js +57 -0
  162. package/lib/apps/cli/internal/flags/global.flags.d.ts +4 -0
  163. package/lib/apps/cli/internal/flags/global.flags.js +18 -0
  164. package/lib/apps/cli/internal/flags/new/file.flags.d.ts +8 -0
  165. package/lib/apps/cli/internal/flags/new/file.flags.js +20 -0
  166. package/lib/apps/cli/internal/flags/new/template.flags.d.ts +7 -0
  167. package/lib/apps/cli/internal/flags/new/template.flags.js +28 -0
  168. package/lib/apps/cli/internal/flags/optimize.flags.d.ts +21 -0
  169. package/lib/apps/cli/internal/flags/optimize.flags.js +51 -0
  170. package/lib/apps/cli/internal/flags/parser.flags.d.ts +10 -0
  171. package/lib/apps/cli/internal/flags/parser.flags.js +28 -0
  172. package/lib/apps/cli/internal/flags/pretty.flags.d.ts +3 -0
  173. package/lib/apps/cli/internal/flags/pretty.flags.js +13 -0
  174. package/lib/apps/cli/internal/flags/proxy.flags.d.ts +4 -0
  175. package/lib/apps/cli/internal/flags/proxy.flags.js +17 -0
  176. package/lib/apps/cli/internal/flags/start/api.flags.d.ts +5 -0
  177. package/lib/apps/cli/internal/flags/start/api.flags.js +20 -0
  178. package/lib/apps/cli/internal/flags/start/preview.flags.d.ts +9 -0
  179. package/lib/apps/cli/internal/flags/start/preview.flags.js +32 -0
  180. package/lib/apps/cli/internal/flags/start/studio.flags.d.ts +7 -0
  181. package/lib/apps/cli/internal/flags/start/studio.flags.js +25 -0
  182. package/lib/apps/cli/internal/flags/validate.flags.d.ts +11 -0
  183. package/lib/apps/cli/internal/flags/validate.flags.js +22 -0
  184. package/lib/apps/cli/internal/globals.d.ts +10 -0
  185. package/lib/apps/cli/internal/globals.js +46 -0
  186. package/lib/apps/cli/internal/hooks/command_not_found/myhook.d.ts +4 -0
  187. package/lib/apps/cli/internal/hooks/command_not_found/myhook.js +85 -0
  188. package/lib/domains/models/Context.d.ts +21 -0
  189. package/lib/domains/models/Context.js +321 -0
  190. package/lib/domains/models/Preview.d.ts +2 -0
  191. package/lib/domains/models/Preview.js +227 -0
  192. package/lib/domains/models/SpecificationFile.d.ts +40 -0
  193. package/lib/domains/models/SpecificationFile.js +295 -0
  194. package/lib/domains/models/Studio.d.ts +2 -0
  195. package/lib/domains/models/Studio.js +182 -0
  196. package/lib/domains/models/generate/ClientLanguages.d.ts +12 -0
  197. package/lib/domains/models/generate/ClientLanguages.js +17 -0
  198. package/lib/domains/models/generate/Flags.d.ts +9 -0
  199. package/lib/domains/models/generate/Flags.js +2 -0
  200. package/lib/domains/services/archiver.service.d.ts +17 -0
  201. package/lib/domains/services/archiver.service.js +53 -0
  202. package/lib/domains/services/base.service.d.ts +6 -0
  203. package/lib/domains/services/base.service.js +26 -0
  204. package/lib/domains/services/config.service.d.ts +42 -0
  205. package/lib/domains/services/config.service.js +95 -0
  206. package/lib/domains/services/convert.service.d.ts +12 -0
  207. package/lib/domains/services/convert.service.js +65 -0
  208. package/lib/domains/services/generator.service.d.ts +15 -0
  209. package/lib/domains/services/generator.service.js +75 -0
  210. package/lib/domains/services/validation.service.d.ts +54 -0
  211. package/lib/domains/services/validation.service.js +375 -0
  212. package/lib/errors/context-error.d.ts +26 -0
  213. package/lib/errors/context-error.js +71 -0
  214. package/lib/errors/diff-error.d.ts +9 -0
  215. package/lib/errors/diff-error.js +27 -0
  216. package/lib/errors/generator-error.d.ts +3 -0
  217. package/lib/errors/generator-error.js +11 -0
  218. package/lib/errors/specification-file.d.ts +18 -0
  219. package/lib/errors/specification-file.js +65 -0
  220. package/lib/errors/validation-error.d.ts +11 -0
  221. package/lib/errors/validation-error.js +55 -0
  222. package/lib/index.d.ts +1 -0
  223. package/lib/index.js +11 -0
  224. package/lib/interfaces/index.d.ts +87 -0
  225. package/lib/interfaces/index.js +7 -0
  226. package/lib/utils/ajv.d.ts +2 -0
  227. package/lib/utils/ajv.js +18 -0
  228. package/lib/utils/app-openapi.d.ts +4 -0
  229. package/lib/utils/app-openapi.js +28 -0
  230. package/lib/utils/generate/flags.d.ts +2 -0
  231. package/lib/utils/generate/flags.js +14 -0
  232. package/lib/utils/generate/mapBaseUrl.d.ts +6 -0
  233. package/lib/utils/generate/mapBaseUrl.js +34 -0
  234. package/lib/utils/generate/parseParams.d.ts +3 -0
  235. package/lib/utils/generate/parseParams.js +58 -0
  236. package/lib/utils/generate/prompts.d.ts +4 -0
  237. package/lib/utils/generate/prompts.js +77 -0
  238. package/lib/utils/generate/registry.d.ts +2 -0
  239. package/lib/utils/generate/registry.js +30 -0
  240. package/lib/utils/generate/watcher.d.ts +51 -0
  241. package/lib/utils/generate/watcher.js +230 -0
  242. package/lib/utils/logger.d.ts +6 -0
  243. package/lib/utils/logger.js +33 -0
  244. package/lib/utils/retrieve-language.d.ts +1 -0
  245. package/lib/utils/retrieve-language.js +9 -0
  246. package/lib/utils/scoreCalculator.d.ts +2 -0
  247. package/lib/utils/scoreCalculator.js +22 -0
  248. package/lib/utils/temp-dir.d.ts +2 -0
  249. package/lib/utils/temp-dir.js +26 -0
  250. package/oclif.manifest.json +2137 -0
  251. package/openapi.yaml +713 -0
  252. package/package.json +203 -0
  253. package/scripts/enableAutoComplete.js +160 -0
  254. package/scripts/fetch-asyncapi-example.js +126 -0
  255. package/scripts/generateTypesForGenerateCommand.js +40 -0
  256. package/scripts/releasePackagesRename.js +88 -0
  257. package/scripts/updateUsageDocs.js +73 -0
@@ -0,0 +1,41 @@
1
+ asyncapi: 3.0.0
2
+ info:
3
+ title: Streetlights App
4
+ version: '1.0.0'
5
+ description: |
6
+ The Smartylighting Streetlights application allows you
7
+ to remotely manage the city lights.
8
+ license:
9
+ name: Apache 2.0
10
+ url: 'https://www.apache.org/licenses/LICENSE-2.0'
11
+ servers:
12
+ mosquitto:
13
+ host: test.mosquitto.org
14
+ protocol: mqtt
15
+ channels:
16
+ lightMeasured:
17
+ address: 'light/measured'
18
+ messages:
19
+ lightMeasuredMessage:
20
+ name: LightMeasured
21
+ payload:
22
+ type: object
23
+ properties:
24
+ id:
25
+ type: integer
26
+ minimum: 0
27
+ description: Id of the streetlight.
28
+ lumens:
29
+ type: integer
30
+ minimum: 0
31
+ description: Light intensity measured in lumens.
32
+ sentAt:
33
+ type: string
34
+ format: date-time
35
+ description: Date and time when the message was sent.
36
+ operations:
37
+ onLightMeasured:
38
+ action: receive
39
+ summary: Information about environmental lighting conditions for a particular streetlight.
40
+ channel:
41
+ $ref: '#/channels/lightMeasured'
@@ -0,0 +1,301 @@
1
+ asyncapi: 3.0.0
2
+ info:
3
+ title: Gemini Market Data Websocket API
4
+ version: 1.0.0
5
+ description: >
6
+ Market data is a public API that streams all the market data on a given
7
+ symbol.
8
+
9
+
10
+ You can quickly play with the API using
11
+ [websocat](https://github.com/vi/websocat#installation) like this:
12
+
13
+ ```bash
14
+
15
+ websocat wss://api.gemini.com/v1/marketdata/btcusd?heartbeat=true -S
16
+
17
+ ```
18
+ contact:
19
+ name: Gemini
20
+ url: 'https://www.gemini.com/'
21
+ externalDocs:
22
+ url: 'https://docs.sandbox.gemini.com/websocket-api/#market-data'
23
+ servers:
24
+ public:
25
+ host: api.gemini.com
26
+ protocol: wss
27
+ channels:
28
+ marketDataV1:
29
+ address: '/v1/marketdata/{symbol}'
30
+ messages:
31
+ marketData:
32
+ $ref: '#/components/messages/marketData'
33
+ parameters:
34
+ symbol:
35
+ enum:
36
+ - btcusd
37
+ - ethbtc
38
+ - ethusd
39
+ - zecusd
40
+ - zecbtc
41
+ - zeceth
42
+ - zecbch
43
+ - zecltc
44
+ - bchusd
45
+ - bchbtc
46
+ - bcheth
47
+ - ltcusd
48
+ - ltcbtc
49
+ - ltceth
50
+ - ltcbch
51
+ - batusd
52
+ - daiusd
53
+ - linkusd
54
+ - oxtusd
55
+ - batbtc
56
+ - linkbtc
57
+ - oxtbtc
58
+ - bateth
59
+ - linketh
60
+ - oxteth
61
+ - ampusd
62
+ - compusd
63
+ - paxgusd
64
+ - mkrusd
65
+ - zrxusd
66
+ - kncusd
67
+ - manausd
68
+ - storjusd
69
+ - snxusd
70
+ - crvusd
71
+ - balusd
72
+ - uniusd
73
+ - renusd
74
+ - umausd
75
+ - yfiusd
76
+ - btcdai
77
+ - ethdai
78
+ - aaveusd
79
+ - filusd
80
+ - btceur
81
+ - btcgbp
82
+ - etheur
83
+ - ethgbp
84
+ - btcsgd
85
+ - ethsgd
86
+ - sklusd
87
+ - grtusd
88
+ - bntusd
89
+ - 1inchusd
90
+ - enjusd
91
+ - lrcusd
92
+ - sandusd
93
+ - cubeusd
94
+ - lptusd
95
+ - bondusd
96
+ - maticusd
97
+ - injusd
98
+ - sushiusd
99
+ description: >
100
+ Symbols are formatted as CCY1CCY2 where prices are in CCY2 and
101
+ quantities are in CCY1. To read more click
102
+ [here](https://docs.sandbox.gemini.com/websocket-api/#symbols-and-minimums).
103
+ bindings:
104
+ ws:
105
+ bindingVersion: 0.1.0
106
+ query:
107
+ type: object
108
+ description: >
109
+ The semantics of entry type filtering is:
110
+
111
+
112
+ If any entry type is specified as true or false, all of them must be
113
+ explicitly flagged true to show up in the response
114
+
115
+ If no entry types filtering parameters are included in the url, then
116
+ all entry types will appear in the response
117
+
118
+
119
+ NOTE: top_of_book has no meaning and initial book events are empty
120
+ when only trades is specified
121
+ properties:
122
+ heartbeat:
123
+ type: boolean
124
+ default: false
125
+ description: >-
126
+ Optionally add this parameter and set to true to receive a
127
+ heartbeat every 5 seconds
128
+ top_of_book:
129
+ type: boolean
130
+ default: false
131
+ description: >-
132
+ If absent or false, receive full order book depth; if present
133
+ and true, receive top of book only. Only applies to bids and
134
+ offers.
135
+ bids:
136
+ type: boolean
137
+ default: true
138
+ description: Include bids in change events
139
+ offers:
140
+ type: boolean
141
+ default: true
142
+ description: Include asks in change events
143
+ trades:
144
+ type: boolean
145
+ default: true
146
+ description: Include trade events
147
+ auctions:
148
+ type: boolean
149
+ default: true
150
+ description: Include auction events
151
+ operations:
152
+ sendMarketData:
153
+ action: send
154
+ channel:
155
+ $ref: '#/channels/marketDataV1'
156
+ summary: Receive market updates on a given symbol
157
+ messages:
158
+ - $ref: '#/channels/marketDataV1/messages/marketData'
159
+ components:
160
+ messages:
161
+ marketData:
162
+ summary: Message with marked data information.
163
+ description: >
164
+ The initial response message will show the existing state of the order
165
+ book. Subsequent messages will show all executed trades, as well as all
166
+ other changes to the order book from orders placed or canceled.
167
+ payload:
168
+ $ref: '#/components/schemas/market'
169
+ examples:
170
+ - name: updateMessage
171
+ summary: >-
172
+ Example of an update message that contains a change in price
173
+ information.
174
+ payload:
175
+ type: update
176
+ eventId: 36902233362
177
+ timestamp: 1619769673
178
+ timestampms: 1619769673527
179
+ socket_sequence: 661
180
+ events:
181
+ - type: change
182
+ side: bid
183
+ price: 54350.40
184
+ remaining: 0.002
185
+ delta: 0.002
186
+ reason: place
187
+ - name: heartbeatMessage
188
+ summary: Example of additional heartbeat message when you enable them.
189
+ payload:
190
+ type: heartbeat
191
+ socket_sequence: 1656
192
+ schemas:
193
+ market:
194
+ type: object
195
+ oneOf:
196
+ - $ref: '#/components/schemas/heartbeat'
197
+ - $ref: '#/components/schemas/update'
198
+ heartbeat:
199
+ allOf:
200
+ - properties:
201
+ type:
202
+ type: string
203
+ const: heartbeat
204
+ required:
205
+ - type
206
+ - $ref: '#/components/schemas/default'
207
+ update:
208
+ allOf:
209
+ - properties:
210
+ type:
211
+ type: string
212
+ const: update
213
+ eventId:
214
+ type: integer
215
+ description: >-
216
+ A monotonically increasing sequence number indicating when this
217
+ change occurred. These numbers are persistent and consistent
218
+ between market data connections.
219
+ events:
220
+ $ref: '#/components/schemas/events'
221
+ timestamp:
222
+ type: number
223
+ description: >-
224
+ The timestamp in seconds for this group of events (included for
225
+ compatibility reasons). We recommend using the timestampms field
226
+ instead.
227
+ timestampms:
228
+ type: number
229
+ description: The timestamp in milliseconds for this group of events.
230
+ required:
231
+ - type
232
+ - eventId
233
+ - events
234
+ - timestamp
235
+ - timestampms
236
+ - $ref: '#/components/schemas/default'
237
+ default:
238
+ type: object
239
+ description: >-
240
+ This object is always part of the payload. In case of type=heartbeat,
241
+ these are the only fields.
242
+ required:
243
+ - type
244
+ - socket_sequence
245
+ properties:
246
+ socket_sequence:
247
+ type: integer
248
+ description: >-
249
+ zero-indexed monotonic increasing sequence number attached to each
250
+ message sent - if there is a gap in this sequence, you have missed a
251
+ message. If you choose to enable heartbeats, then heartbeat and
252
+ update messages will share a single increasing sequence. See
253
+ [Sequence
254
+ Numbers](https://docs.sandbox.gemini.com/websocket-api/#sequence-numbers)
255
+ for more information.
256
+ events:
257
+ type: array
258
+ description: >-
259
+ Either a change to the order book, or the indication that a trade has
260
+ occurred.
261
+ items:
262
+ type: object
263
+ additionalProperties: false
264
+ properties:
265
+ type:
266
+ type: string
267
+ enum:
268
+ - trade
269
+ - change
270
+ - 'auction, block_trade'
271
+ price:
272
+ type: number
273
+ multipleOf: 0.01
274
+ description: The price of this order book entry.
275
+ side:
276
+ type: string
277
+ enum:
278
+ - bid
279
+ - side
280
+ reason:
281
+ type: string
282
+ enum:
283
+ - place
284
+ - trade
285
+ - cancel
286
+ - initial
287
+ description: >-
288
+ Indicates why the change has occurred. initial is for the initial
289
+ response message, which will show the entire existing state of the
290
+ order book.
291
+ remaining:
292
+ type: number
293
+ description: >-
294
+ The quantity remaining at that price level after this change
295
+ occurred. May be zero if all orders at this price level have been
296
+ filled or canceled.
297
+ delta:
298
+ type: number
299
+ description: >-
300
+ The quantity changed. May be negative, if an order is filled or
301
+ canceled. For initial messages, delta will equal remaining.
Binary file
Binary file
package/bin/dev ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env node
2
+
3
+ const oclif = require('@oclif/core')
4
+
5
+ const path = require('path')
6
+ const project = path.join(__dirname, '..', 'tsconfig.json')
7
+
8
+ // In dev mode -> use ts-node and dev plugins
9
+ process.env.NODE_ENV = 'development'
10
+
11
+ require('ts-node').register({project})
12
+
13
+ // In dev mode, always show stack traces
14
+ oclif.settings.debug = true;
15
+
16
+ // Start the CLI
17
+ oclif.run().then(oclif.flush).catch(oclif.Errors.handle)
package/bin/dev.cmd ADDED
@@ -0,0 +1,3 @@
1
+ @echo off
2
+
3
+ node "%~dp0\dev" %*
package/bin/run ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+
3
+ process.env.NODE_ENV = 'development';
4
+
5
+ const oclif = require('@oclif/core');
6
+
7
+ oclif.run()
8
+ .then(require('@oclif/core/flush'))
9
+ .catch((err) => {
10
+ const { handle } = require('@oclif/core/handle');
11
+ return handle(err);
12
+ });
package/bin/run.cmd ADDED
@@ -0,0 +1,3 @@
1
+ @echo off
2
+
3
+ node "%~dp0\run" %*
package/bin/run_bin ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+
3
+ // Only the binary installed through NPM is considered production environment. See "bin" in package.json.
4
+ process.env.NODE_ENV = 'production';
5
+
6
+ const oclif = require('@oclif/core');
7
+
8
+ oclif.run()
9
+ .then(require('@oclif/core/flush'))
10
+ .catch((err) => {
11
+ const { handle } = require('@oclif/core/handle');
12
+ return handle(err);
13
+ });
@@ -0,0 +1,3 @@
1
+ @echo off
2
+
3
+ node "%~dp0\run_bin" %*
@@ -0,0 +1,15 @@
1
+ import express from 'express';
2
+ import { Controller } from '../../interfaces';
3
+ export declare class App {
4
+ private readonly controllers;
5
+ private readonly port;
6
+ private readonly env;
7
+ private app;
8
+ constructor(controllers: Controller[], port?: number | string, env?: string);
9
+ init(): Promise<void>;
10
+ listen(): void;
11
+ getServer(): express.Application;
12
+ private initializeMiddlewares;
13
+ private initializeControllers;
14
+ private initializeErrorHandling;
15
+ }
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.App = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const body_parser_1 = tslib_1.__importDefault(require("body-parser"));
6
+ const compression_1 = tslib_1.__importDefault(require("compression"));
7
+ const config_1 = tslib_1.__importDefault(require("config"));
8
+ const cors_1 = tslib_1.__importDefault(require("cors"));
9
+ const express_1 = tslib_1.__importDefault(require("express"));
10
+ const helmet_1 = tslib_1.__importDefault(require("helmet"));
11
+ // import { problemMiddleware } from './middlewares/problem.middleware';
12
+ const logger_1 = require("../../utils/logger");
13
+ const constants_1 = require("./constants");
14
+ const problem_middleware_1 = require("./middlewares/problem.middleware");
15
+ const logger_middleware_1 = require("./middlewares/logger.middleware");
16
+ class App {
17
+ constructor(controllers, port = process.env.PORT || 80, env = process.env.NODE_ENV || 'development') {
18
+ this.controllers = controllers;
19
+ this.port = port;
20
+ this.env = env;
21
+ this.app = (0, express_1.default)();
22
+ }
23
+ init() {
24
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
25
+ // initialize core middlewares
26
+ yield this.initializeMiddlewares();
27
+ // initialize controllers
28
+ yield this.initializeControllers();
29
+ // initialize error handling
30
+ yield this.initializeErrorHandling();
31
+ });
32
+ }
33
+ listen() {
34
+ this.app.listen(this.port, () => {
35
+ logger_1.logger.info('=================================');
36
+ logger_1.logger.info(`= ENV: ${this.env}`);
37
+ logger_1.logger.info(`= 🚀 AsyncAPI Server API listening on the port ${this.port}`);
38
+ logger_1.logger.info('=================================');
39
+ });
40
+ }
41
+ getServer() {
42
+ return this.app;
43
+ }
44
+ initializeMiddlewares() {
45
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
46
+ const requestBodyLimit = config_1.default.get('request.body.limit');
47
+ this.app.use((0, cors_1.default)({
48
+ origin: config_1.default.get('cors.origin'),
49
+ credentials: config_1.default.get('cors.credentials'),
50
+ }));
51
+ this.app.use((0, compression_1.default)());
52
+ this.app.use(body_parser_1.default.text({ type: ['text/*'], limit: requestBodyLimit }));
53
+ this.app.use(body_parser_1.default.urlencoded({ extended: true, limit: requestBodyLimit }));
54
+ this.app.use(body_parser_1.default.json({
55
+ type: ['json', '*/json', '+json'],
56
+ limit: requestBodyLimit,
57
+ }));
58
+ this.app.use((0, helmet_1.default)({
59
+ contentSecurityPolicy: {
60
+ directives: {
61
+ // for `/docs` path - we need to fetch redoc component from unpkg.com domain and hash for inline script
62
+ 'script-src': [
63
+ '\'self\'',
64
+ 'unpkg.com',
65
+ '\'sha256-HoDNcNPq7PEOgc6zsff39t5lZ/S65RY7Zl4hI67unp0=\'',
66
+ ],
67
+ // for schemas
68
+ 'connect-src': ['\'self\'', 'http:'],
69
+ 'worker-src': ['\'self\' blob:'],
70
+ },
71
+ },
72
+ // for `/docs` path
73
+ crossOriginEmbedderPolicy: false,
74
+ }));
75
+ this.app.use(logger_middleware_1.loggerMiddleware);
76
+ });
77
+ }
78
+ initializeControllers() {
79
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
80
+ for (const controller of this.controllers) {
81
+ this.app.use(`/${constants_1.API_VERSION}/`, yield controller.boot());
82
+ }
83
+ });
84
+ }
85
+ initializeErrorHandling() {
86
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
87
+ this.app.use(problem_middleware_1.problemMiddleware);
88
+ });
89
+ }
90
+ }
91
+ exports.App = App;
@@ -0,0 +1,16 @@
1
+ {
2
+ "env": "development",
3
+ "log": {
4
+ "format": "dev",
5
+ "dir": "../logs"
6
+ },
7
+ "cors": {
8
+ "origin": true,
9
+ "credentials": false
10
+ },
11
+ "request": {
12
+ "body": {
13
+ "limit": "5mb"
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "env": "production",
3
+ "log": {
4
+ "format": "combined",
5
+ "dir": "../logs"
6
+ },
7
+ "cors": {
8
+ "origin": true,
9
+ "credentials": false
10
+ },
11
+ "request": {
12
+ "body": {
13
+ "limit": "5mb"
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "env": "test",
3
+ "log": {
4
+ "format": "dev",
5
+ "dir": "../logs"
6
+ },
7
+ "cors": {
8
+ "origin": true,
9
+ "credentials": false
10
+ },
11
+ "request": {
12
+ "body": {
13
+ "limit": "5mb"
14
+ }
15
+ }
16
+ }
@@ -0,0 +1 @@
1
+ export declare const API_VERSION = "v1";
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.API_VERSION = void 0;
4
+ exports.API_VERSION = 'v1';
@@ -0,0 +1,7 @@
1
+ import { Router } from 'express';
2
+ import { Controller } from '../../../interfaces';
3
+ export declare class BundleController implements Controller {
4
+ basepath: string;
5
+ private bundle;
6
+ boot(): Promise<Router>;
7
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BundleController = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const express_1 = require("express");
6
+ const bundler_1 = tslib_1.__importDefault(require("@asyncapi/bundler"));
7
+ const validation_middleware_1 = require("../middlewares/validation.middleware");
8
+ const problem_exception_1 = require("../exceptions/problem.exception");
9
+ class BundleController {
10
+ constructor() {
11
+ this.basepath = '/bundle';
12
+ }
13
+ bundle(req, res, next) {
14
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
15
+ const asyncapis = req.body.asyncapis;
16
+ const base = req.body.base;
17
+ try {
18
+ const document = yield (0, bundler_1.default)(asyncapis, { base });
19
+ const bundled = document.json();
20
+ res.status(200).json({ bundled });
21
+ }
22
+ catch (err) {
23
+ return next(new problem_exception_1.ProblemException({
24
+ type: 'internal-bundler-error',
25
+ title: 'Internal Bundler error',
26
+ status: 500,
27
+ detail: err.message,
28
+ }));
29
+ }
30
+ });
31
+ }
32
+ boot() {
33
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
34
+ const router = (0, express_1.Router)();
35
+ router.post(this.basepath, yield (0, validation_middleware_1.validationMiddleware)({
36
+ path: this.basepath,
37
+ method: 'post',
38
+ documents: ['asyncapis', 'base'],
39
+ }), this.bundle.bind(this));
40
+ return router;
41
+ });
42
+ }
43
+ }
44
+ exports.BundleController = BundleController;
@@ -0,0 +1,11 @@
1
+ import { Router } from 'express';
2
+ import { Controller } from '../../../interfaces';
3
+ /**
4
+ * Controller which exposes the Convert functionality
5
+ */
6
+ export declare class ConvertController implements Controller {
7
+ basepath: string;
8
+ private conversionService;
9
+ private convert;
10
+ boot(): Promise<Router>;
11
+ }