@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.
- package/LICENSE +201 -0
- package/README.md +117 -0
- package/assets/create-template/templates/default/asyncapi.yaml +34 -0
- package/assets/create-template/templates/default/package-lock.json +4062 -0
- package/assets/create-template/templates/default/package.json +10 -0
- package/assets/create-template/templates/default/readme.md +4 -0
- package/assets/create-template/templates/default/template/index.js +11 -0
- package/assets/examples/adeo-kafka-request-reply-asyncapi.yml +298 -0
- package/assets/examples/anyof-asyncapi.yml +36 -0
- package/assets/examples/application-headers-asyncapi.yml +86 -0
- package/assets/examples/correlation-id-asyncapi.yml +180 -0
- package/assets/examples/default-example.json +51 -0
- package/assets/examples/default-example.yaml +31 -0
- package/assets/examples/examples.json +82 -0
- package/assets/examples/gitter-streaming-asyncapi.yml +178 -0
- package/assets/examples/kraken-websocket-request-reply-message-filter-in-reply-asyncapi.yml +388 -0
- package/assets/examples/kraken-websocket-request-reply-multiple-channels-asyncapi.yml +394 -0
- package/assets/examples/mercure-asyncapi.yml +58 -0
- package/assets/examples/not-asyncapi.yml +29 -0
- package/assets/examples/oneof-asyncapi.yml +57 -0
- package/assets/examples/operation-security-asyncapi.yml +117 -0
- package/assets/examples/rpc-client-asyncapi.yml +72 -0
- package/assets/examples/rpc-server-asyncapi.yml +69 -0
- package/assets/examples/simple-asyncapi.yml +31 -0
- package/assets/examples/slack-rtm-asyncapi.yml +982 -0
- package/assets/examples/streetlights-kafka-asyncapi.yml +199 -0
- package/assets/examples/streetlights-mqtt-asyncapi.yml +253 -0
- package/assets/examples/streetlights-operation-security-asyncapi.yml +240 -0
- package/assets/examples/tutorial.yml +41 -0
- package/assets/examples/websocket-gemini-asyncapi.yml +301 -0
- package/assets/logo.png +0 -0
- package/assets/server-api.png +0 -0
- package/bin/dev +17 -0
- package/bin/dev.cmd +3 -0
- package/bin/run +12 -0
- package/bin/run.cmd +3 -0
- package/bin/run_bin +13 -0
- package/bin/run_bin.cmd +3 -0
- package/lib/apps/api/app.d.ts +15 -0
- package/lib/apps/api/app.js +91 -0
- package/lib/apps/api/configs/development.json +16 -0
- package/lib/apps/api/configs/production.json +16 -0
- package/lib/apps/api/configs/test.json +16 -0
- package/lib/apps/api/constants.d.ts +1 -0
- package/lib/apps/api/constants.js +4 -0
- package/lib/apps/api/controllers/bundle.controller.d.ts +7 -0
- package/lib/apps/api/controllers/bundle.controller.js +44 -0
- package/lib/apps/api/controllers/convert.controller.d.ts +11 -0
- package/lib/apps/api/controllers/convert.controller.js +69 -0
- package/lib/apps/api/controllers/diff.controller.d.ts +7 -0
- package/lib/apps/api/controllers/diff.controller.js +42 -0
- package/lib/apps/api/controllers/docs.controller.d.ts +6 -0
- package/lib/apps/api/controllers/docs.controller.js +24 -0
- package/lib/apps/api/controllers/generate.controller.d.ts +22 -0
- package/lib/apps/api/controllers/generate.controller.js +174 -0
- package/lib/apps/api/controllers/help.controller.d.ts +6 -0
- package/lib/apps/api/controllers/help.controller.js +101 -0
- package/lib/apps/api/controllers/parse.controller.d.ts +10 -0
- package/lib/apps/api/controllers/parse.controller.js +35 -0
- package/lib/apps/api/controllers/validate.controller.d.ts +10 -0
- package/lib/apps/api/controllers/validate.controller.js +50 -0
- package/lib/apps/api/controllers/version.controller.d.ts +8 -0
- package/lib/apps/api/controllers/version.controller.js +69 -0
- package/lib/apps/api/exceptions/problem.exception.d.ts +14 -0
- package/lib/apps/api/exceptions/problem.exception.js +10 -0
- package/lib/apps/api/index.d.ts +10 -0
- package/lib/apps/api/index.js +23 -0
- package/lib/apps/api/middlewares/logger.middleware.d.ts +2 -0
- package/lib/apps/api/middlewares/logger.middleware.js +12 -0
- package/lib/apps/api/middlewares/problem.middleware.d.ts +6 -0
- package/lib/apps/api/middlewares/problem.middleware.js +27 -0
- package/lib/apps/api/middlewares/validation.middleware.d.ts +12 -0
- package/lib/apps/api/middlewares/validation.middleware.js +245 -0
- package/lib/apps/api/server.d.ts +3 -0
- package/lib/apps/api/server.js +19 -0
- package/lib/apps/cli/commands/bundle.d.ts +15 -0
- package/lib/apps/cli/commands/bundle.js +75 -0
- package/lib/apps/cli/commands/config/analytics.d.ts +11 -0
- package/lib/apps/cli/commands/config/analytics.js +61 -0
- package/lib/apps/cli/commands/config/auth/add.d.ts +13 -0
- package/lib/apps/cli/commands/config/auth/add.js +68 -0
- package/lib/apps/cli/commands/config/context/add.d.ts +13 -0
- package/lib/apps/cli/commands/config/context/add.js +46 -0
- package/lib/apps/cli/commands/config/context/current.d.ts +8 -0
- package/lib/apps/cli/commands/config/context/current.js +37 -0
- package/lib/apps/cli/commands/config/context/edit.d.ts +12 -0
- package/lib/apps/cli/commands/config/context/edit.js +44 -0
- package/lib/apps/cli/commands/config/context/index.d.ts +5 -0
- package/lib/apps/cli/commands/config/context/index.js +16 -0
- package/lib/apps/cli/commands/config/context/init.d.ts +12 -0
- package/lib/apps/cli/commands/config/context/init.js +31 -0
- package/lib/apps/cli/commands/config/context/list.d.ts +8 -0
- package/lib/apps/cli/commands/config/context/list.js +36 -0
- package/lib/apps/cli/commands/config/context/remove.d.ts +11 -0
- package/lib/apps/cli/commands/config/context/remove.js +39 -0
- package/lib/apps/cli/commands/config/context/use.d.ts +11 -0
- package/lib/apps/cli/commands/config/context/use.js +40 -0
- package/lib/apps/cli/commands/config/index.d.ts +5 -0
- package/lib/apps/cli/commands/config/index.js +16 -0
- package/lib/apps/cli/commands/config/versions.d.ts +8 -0
- package/lib/apps/cli/commands/config/versions.js +56 -0
- package/lib/apps/cli/commands/convert.d.ts +21 -0
- package/lib/apps/cli/commands/convert.js +85 -0
- package/lib/apps/cli/commands/diff.d.ts +36 -0
- package/lib/apps/cli/commands/diff.js +335 -0
- package/lib/apps/cli/commands/format.d.ts +18 -0
- package/lib/apps/cli/commands/format.js +97 -0
- package/lib/apps/cli/commands/generate/client.d.ts +30 -0
- package/lib/apps/cli/commands/generate/client.js +94 -0
- package/lib/apps/cli/commands/generate/fromTemplate.d.ts +29 -0
- package/lib/apps/cli/commands/generate/fromTemplate.js +91 -0
- package/lib/apps/cli/commands/generate/index.d.ts +5 -0
- package/lib/apps/cli/commands/generate/index.js +15 -0
- package/lib/apps/cli/commands/generate/models.d.ts +16 -0
- package/lib/apps/cli/commands/generate/models.js +166 -0
- package/lib/apps/cli/commands/new/file.d.ts +16 -0
- package/lib/apps/cli/commands/new/file.js +180 -0
- package/lib/apps/cli/commands/new/index.d.ts +5 -0
- package/lib/apps/cli/commands/new/index.js +15 -0
- package/lib/apps/cli/commands/new/template.d.ts +18 -0
- package/lib/apps/cli/commands/new/template.js +102 -0
- package/lib/apps/cli/commands/optimize.d.ts +41 -0
- package/lib/apps/cli/commands/optimize.js +289 -0
- package/lib/apps/cli/commands/pretty.d.ts +12 -0
- package/lib/apps/cli/commands/pretty.js +70 -0
- package/lib/apps/cli/commands/start/api.d.ts +11 -0
- package/lib/apps/cli/commands/start/api.js +23 -0
- package/lib/apps/cli/commands/start/index.d.ts +5 -0
- package/lib/apps/cli/commands/start/index.js +15 -0
- package/lib/apps/cli/commands/start/preview.d.ts +17 -0
- package/lib/apps/cli/commands/start/preview.js +41 -0
- package/lib/apps/cli/commands/start/studio.d.ts +16 -0
- package/lib/apps/cli/commands/start/studio.js +94 -0
- package/lib/apps/cli/commands/validate.d.ts +23 -0
- package/lib/apps/cli/commands/validate.js +95 -0
- package/lib/apps/cli/internal/args/generate.args.d.ts +3 -0
- package/lib/apps/cli/internal/args/generate.args.js +10 -0
- package/lib/apps/cli/internal/base/BaseGeneratorCommand.d.ts +42 -0
- package/lib/apps/cli/internal/base/BaseGeneratorCommand.js +119 -0
- package/lib/apps/cli/internal/base.d.ts +20 -0
- package/lib/apps/cli/internal/base.js +173 -0
- package/lib/apps/cli/internal/flags/bundle.flags.d.ts +7 -0
- package/lib/apps/cli/internal/flags/bundle.flags.js +26 -0
- package/lib/apps/cli/internal/flags/config/analytics.flags.d.ts +6 -0
- package/lib/apps/cli/internal/flags/config/analytics.flags.js +24 -0
- package/lib/apps/cli/internal/flags/config/context.flags.d.ts +4 -0
- package/lib/apps/cli/internal/flags/config/context.flags.js +16 -0
- package/lib/apps/cli/internal/flags/convert.flags.d.ts +7 -0
- package/lib/apps/cli/internal/flags/convert.flags.js +32 -0
- package/lib/apps/cli/internal/flags/diff.flags.d.ts +13 -0
- package/lib/apps/cli/internal/flags/diff.flags.js +29 -0
- package/lib/apps/cli/internal/flags/format.flags.d.ts +6 -0
- package/lib/apps/cli/internal/flags/format.flags.js +22 -0
- package/lib/apps/cli/internal/flags/generate/clients.flags.d.ts +16 -0
- package/lib/apps/cli/internal/flags/generate/clients.flags.js +8 -0
- package/lib/apps/cli/internal/flags/generate/fromTemplate.flags.d.ts +16 -0
- package/lib/apps/cli/internal/flags/generate/fromTemplate.flags.js +8 -0
- package/lib/apps/cli/internal/flags/generate/models.flags.d.ts +1 -0
- package/lib/apps/cli/internal/flags/generate/models.flags.js +14 -0
- package/lib/apps/cli/internal/flags/generate/sharedFlags.d.ts +16 -0
- package/lib/apps/cli/internal/flags/generate/sharedFlags.js +57 -0
- package/lib/apps/cli/internal/flags/global.flags.d.ts +4 -0
- package/lib/apps/cli/internal/flags/global.flags.js +18 -0
- package/lib/apps/cli/internal/flags/new/file.flags.d.ts +8 -0
- package/lib/apps/cli/internal/flags/new/file.flags.js +20 -0
- package/lib/apps/cli/internal/flags/new/template.flags.d.ts +7 -0
- package/lib/apps/cli/internal/flags/new/template.flags.js +28 -0
- package/lib/apps/cli/internal/flags/optimize.flags.d.ts +21 -0
- package/lib/apps/cli/internal/flags/optimize.flags.js +51 -0
- package/lib/apps/cli/internal/flags/parser.flags.d.ts +10 -0
- package/lib/apps/cli/internal/flags/parser.flags.js +28 -0
- package/lib/apps/cli/internal/flags/pretty.flags.d.ts +3 -0
- package/lib/apps/cli/internal/flags/pretty.flags.js +13 -0
- package/lib/apps/cli/internal/flags/proxy.flags.d.ts +4 -0
- package/lib/apps/cli/internal/flags/proxy.flags.js +17 -0
- package/lib/apps/cli/internal/flags/start/api.flags.d.ts +5 -0
- package/lib/apps/cli/internal/flags/start/api.flags.js +20 -0
- package/lib/apps/cli/internal/flags/start/preview.flags.d.ts +9 -0
- package/lib/apps/cli/internal/flags/start/preview.flags.js +32 -0
- package/lib/apps/cli/internal/flags/start/studio.flags.d.ts +7 -0
- package/lib/apps/cli/internal/flags/start/studio.flags.js +25 -0
- package/lib/apps/cli/internal/flags/validate.flags.d.ts +11 -0
- package/lib/apps/cli/internal/flags/validate.flags.js +22 -0
- package/lib/apps/cli/internal/globals.d.ts +10 -0
- package/lib/apps/cli/internal/globals.js +46 -0
- package/lib/apps/cli/internal/hooks/command_not_found/myhook.d.ts +4 -0
- package/lib/apps/cli/internal/hooks/command_not_found/myhook.js +85 -0
- package/lib/domains/models/Context.d.ts +21 -0
- package/lib/domains/models/Context.js +321 -0
- package/lib/domains/models/Preview.d.ts +2 -0
- package/lib/domains/models/Preview.js +227 -0
- package/lib/domains/models/SpecificationFile.d.ts +40 -0
- package/lib/domains/models/SpecificationFile.js +295 -0
- package/lib/domains/models/Studio.d.ts +2 -0
- package/lib/domains/models/Studio.js +182 -0
- package/lib/domains/models/generate/ClientLanguages.d.ts +12 -0
- package/lib/domains/models/generate/ClientLanguages.js +17 -0
- package/lib/domains/models/generate/Flags.d.ts +9 -0
- package/lib/domains/models/generate/Flags.js +2 -0
- package/lib/domains/services/archiver.service.d.ts +17 -0
- package/lib/domains/services/archiver.service.js +53 -0
- package/lib/domains/services/base.service.d.ts +6 -0
- package/lib/domains/services/base.service.js +26 -0
- package/lib/domains/services/config.service.d.ts +42 -0
- package/lib/domains/services/config.service.js +95 -0
- package/lib/domains/services/convert.service.d.ts +12 -0
- package/lib/domains/services/convert.service.js +65 -0
- package/lib/domains/services/generator.service.d.ts +15 -0
- package/lib/domains/services/generator.service.js +75 -0
- package/lib/domains/services/validation.service.d.ts +54 -0
- package/lib/domains/services/validation.service.js +375 -0
- package/lib/errors/context-error.d.ts +26 -0
- package/lib/errors/context-error.js +71 -0
- package/lib/errors/diff-error.d.ts +9 -0
- package/lib/errors/diff-error.js +27 -0
- package/lib/errors/generator-error.d.ts +3 -0
- package/lib/errors/generator-error.js +11 -0
- package/lib/errors/specification-file.d.ts +18 -0
- package/lib/errors/specification-file.js +65 -0
- package/lib/errors/validation-error.d.ts +11 -0
- package/lib/errors/validation-error.js +55 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +11 -0
- package/lib/interfaces/index.d.ts +87 -0
- package/lib/interfaces/index.js +7 -0
- package/lib/utils/ajv.d.ts +2 -0
- package/lib/utils/ajv.js +18 -0
- package/lib/utils/app-openapi.d.ts +4 -0
- package/lib/utils/app-openapi.js +28 -0
- package/lib/utils/generate/flags.d.ts +2 -0
- package/lib/utils/generate/flags.js +14 -0
- package/lib/utils/generate/mapBaseUrl.d.ts +6 -0
- package/lib/utils/generate/mapBaseUrl.js +34 -0
- package/lib/utils/generate/parseParams.d.ts +3 -0
- package/lib/utils/generate/parseParams.js +58 -0
- package/lib/utils/generate/prompts.d.ts +4 -0
- package/lib/utils/generate/prompts.js +77 -0
- package/lib/utils/generate/registry.d.ts +2 -0
- package/lib/utils/generate/registry.js +30 -0
- package/lib/utils/generate/watcher.d.ts +51 -0
- package/lib/utils/generate/watcher.js +230 -0
- package/lib/utils/logger.d.ts +6 -0
- package/lib/utils/logger.js +33 -0
- package/lib/utils/retrieve-language.d.ts +1 -0
- package/lib/utils/retrieve-language.js +9 -0
- package/lib/utils/scoreCalculator.d.ts +2 -0
- package/lib/utils/scoreCalculator.js +22 -0
- package/lib/utils/temp-dir.d.ts +2 -0
- package/lib/utils/temp-dir.js +26 -0
- package/oclif.manifest.json +2137 -0
- package/openapi.yaml +713 -0
- package/package.json +203 -0
- package/scripts/enableAutoComplete.js +160 -0
- package/scripts/fetch-asyncapi-example.js +126 -0
- package/scripts/generateTypesForGenerateCommand.js +40 -0
- package/scripts/releasePackagesRename.js +88 -0
- 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.
|
package/assets/logo.png
ADDED
|
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
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
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
|
+
});
|
package/bin/run_bin.cmd
ADDED
|
@@ -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 @@
|
|
|
1
|
+
export declare const API_VERSION = "v1";
|
|
@@ -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
|
+
}
|