@stream-io/video-client 0.0.1-alpha.13 → 0.0.1-alpha.130
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/CHANGELOG.md +71 -0
- package/README.md +16 -4
- package/dist/{index.js → index.browser.es.js} +6539 -4234
- package/dist/index.browser.es.js.map +1 -0
- package/dist/index.cjs.js +11005 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +6 -7
- package/dist/index.es.js +10947 -0
- package/dist/index.es.js.map +1 -0
- package/dist/src/Call.d.ts +402 -0
- package/dist/src/CallType.d.ts +72 -0
- package/dist/src/StreamSfuClient.d.ts +42 -13
- package/dist/src/StreamVideoClient.d.ts +66 -85
- package/dist/src/coordinator/connection/client.d.ts +17 -21
- package/dist/src/coordinator/connection/connection.d.ts +9 -8
- package/dist/src/coordinator/connection/connection_fallback.d.ts +3 -2
- package/dist/src/coordinator/connection/insights.d.ts +0 -1
- package/dist/src/coordinator/connection/token_manager.d.ts +6 -5
- package/dist/src/coordinator/connection/types.d.ts +26 -24
- package/dist/src/coordinator/connection/utils.d.ts +5 -1
- package/dist/src/{devices.d.ts → devices/devices.d.ts} +22 -0
- package/dist/src/devices/index.d.ts +1 -0
- package/dist/src/events/__tests__/call-permissions.test.d.ts +1 -0
- package/dist/src/events/__tests__/call.test.d.ts +1 -0
- package/dist/src/events/call-permissions.d.ts +18 -0
- package/dist/src/events/call.d.ts +14 -18
- package/dist/src/events/callEventHandlers.d.ts +5 -0
- package/dist/src/events/index.d.ts +8 -0
- package/dist/src/events/internal.d.ts +4 -4
- package/dist/src/events/moderation.d.ts +14 -0
- package/dist/src/events/participant.d.ts +6 -7
- package/dist/src/events/reactions.d.ts +8 -0
- package/dist/src/events/recording.d.ts +10 -0
- package/dist/src/events/speaker.d.ts +4 -4
- package/dist/src/gen/coordinator/index.d.ts +2570 -983
- package/dist/src/gen/video/sfu/event/events.d.ts +101 -30
- package/dist/src/gen/video/sfu/models/models.d.ts +287 -8
- package/dist/src/helpers/ViewportTracker.d.ts +36 -0
- package/dist/src/helpers/browsers.d.ts +4 -0
- package/dist/src/helpers/platforms.d.ts +4 -0
- package/dist/src/helpers/sound-detector.d.ts +1 -1
- package/dist/src/permissions/PermissionsContext.d.ts +38 -0
- package/dist/src/permissions/index.d.ts +1 -0
- package/dist/src/rpc/createClient.d.ts +1 -1
- package/dist/src/rpc/index.d.ts +0 -1
- package/dist/src/rtc/Dispatcher.d.ts +10 -0
- package/dist/src/rtc/__tests__/mocks/webrtc.mocks.d.ts +1 -0
- package/dist/src/rtc/__tests__/publisher.test.d.ts +1 -0
- package/dist/src/rtc/codecs.d.ts +2 -2
- package/dist/src/rtc/flows/__tests__/latency.test.d.ts +1 -0
- package/dist/src/rtc/flows/join.d.ts +10 -0
- package/dist/src/rtc/flows/latency.d.ts +26 -0
- package/dist/src/rtc/helpers/tracks.d.ts +4 -2
- package/dist/src/rtc/index.d.ts +7 -0
- package/dist/src/rtc/publisher.d.ts +20 -9
- package/dist/src/rtc/signal.d.ts +1 -1
- package/dist/src/rtc/subscriber.d.ts +4 -2
- package/dist/src/rtc/videoLayers.d.ts +1 -11
- package/dist/src/sdk-info.d.ts +3 -0
- package/dist/src/sorting/__tests__/participant-data.d.ts +2 -0
- package/dist/src/sorting/__tests__/sorting.test.d.ts +1 -0
- package/dist/src/sorting/comparator.d.ts +37 -0
- package/dist/src/sorting/index.d.ts +3 -0
- package/dist/src/sorting/participants.d.ts +65 -0
- package/dist/src/sorting/presets.d.ts +13 -0
- package/dist/src/stats/state-store-stats-reporter.d.ts +3 -3
- package/dist/src/store/CallState.d.ts +345 -0
- package/dist/src/store/__tests__/CallState.test.d.ts +1 -0
- package/dist/src/store/index.d.ts +1 -0
- package/dist/src/store/rxUtils.d.ts +12 -1
- package/dist/src/store/stateStore.d.ts +68 -115
- package/dist/src/types.d.ts +160 -0
- package/index.ts +6 -15
- package/package.json +31 -19
- package/src/Call.ts +1466 -0
- package/src/CallType.ts +123 -0
- package/src/StreamSfuClient.ts +194 -58
- package/src/StreamVideoClient.ts +216 -394
- package/src/__tests__/StreamVideoClient.test.ts +4 -78
- package/src/coordinator/connection/client.ts +76 -83
- package/src/coordinator/connection/connection.ts +50 -25
- package/src/coordinator/connection/connection_fallback.ts +6 -3
- package/src/coordinator/connection/errors.ts +10 -0
- package/src/coordinator/connection/token_manager.ts +18 -10
- package/src/coordinator/connection/types.ts +34 -27
- package/src/coordinator/connection/utils.ts +8 -4
- package/src/{devices.ts → devices/devices.ts} +112 -5
- package/src/devices/index.ts +1 -0
- package/src/events/__tests__/call-permissions.test.ts +109 -0
- package/src/events/__tests__/call.test.ts +188 -0
- package/src/events/call-permissions.ts +69 -0
- package/src/events/call.ts +40 -141
- package/src/events/callEventHandlers.ts +80 -0
- package/src/events/index.ts +8 -0
- package/src/events/internal.ts +6 -6
- package/src/events/moderation.ts +35 -0
- package/src/events/participant.ts +14 -32
- package/src/events/reactions.ts +30 -0
- package/src/events/recording.ts +22 -0
- package/src/events/speaker.ts +9 -9
- package/src/gen/coordinator/index.ts +2390 -829
- package/src/gen/video/sfu/event/events.ts +2984 -1570
- package/src/gen/video/sfu/models/models.ts +2227 -897
- package/src/helpers/ViewportTracker.ts +112 -0
- package/src/helpers/browsers.ts +12 -2
- package/src/helpers/platforms.ts +7 -0
- package/src/helpers/sound-detector.ts +17 -2
- package/src/permissions/PermissionsContext.ts +63 -0
- package/src/permissions/index.ts +1 -0
- package/src/rpc/createClient.ts +3 -2
- package/src/rpc/index.ts +0 -1
- package/src/rtc/Dispatcher.ts +33 -0
- package/src/rtc/__tests__/mocks/webrtc.mocks.ts +42 -0
- package/src/rtc/__tests__/publisher.test.ts +142 -0
- package/src/rtc/codecs.ts +28 -15
- package/src/rtc/flows/__tests__/latency.test.ts +46 -0
- package/src/rtc/flows/join.ts +110 -0
- package/src/rtc/flows/latency.ts +91 -0
- package/src/rtc/helpers/tracks.ts +35 -3
- package/src/rtc/index.ts +7 -0
- package/src/rtc/publisher.ts +173 -52
- package/src/rtc/signal.ts +23 -23
- package/src/rtc/subscriber.ts +43 -27
- package/src/rtc/videoLayers.ts +3 -3
- package/src/sdk-info.ts +11 -0
- package/src/sorting/__tests__/participant-data.ts +99 -0
- package/src/sorting/__tests__/sorting.test.ts +46 -0
- package/src/sorting/comparator.ts +62 -0
- package/src/sorting/index.ts +3 -0
- package/src/sorting/participants.ts +135 -0
- package/src/sorting/presets.ts +62 -0
- package/src/stats/state-store-stats-reporter.ts +6 -10
- package/src/store/CallState.ts +565 -0
- package/src/store/__tests__/CallState.test.ts +105 -0
- package/src/store/index.ts +1 -0
- package/src/store/rxUtils.ts +24 -7
- package/src/store/stateStore.ts +137 -246
- package/src/{rtc/types.ts → types.ts} +113 -11
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -296
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov-report/src/Batcher.ts.html +0 -214
- package/coverage/lcov-report/src/CallDropScheduler.ts.html +0 -661
- package/coverage/lcov-report/src/StreamSfuClient.ts.html +0 -640
- package/coverage/lcov-report/src/StreamVideoClient.ts.html +0 -1633
- package/coverage/lcov-report/src/config/defaultConfigs.ts.html +0 -130
- package/coverage/lcov-report/src/config/index.html +0 -116
- package/coverage/lcov-report/src/coordinator/StreamCoordinatorClient.ts.html +0 -424
- package/coverage/lcov-report/src/coordinator/connection/base64.ts.html +0 -325
- package/coverage/lcov-report/src/coordinator/connection/client.ts.html +0 -2527
- package/coverage/lcov-report/src/coordinator/connection/connection.ts.html +0 -2338
- package/coverage/lcov-report/src/coordinator/connection/connection_fallback.ts.html +0 -802
- package/coverage/lcov-report/src/coordinator/connection/errors.ts.html +0 -295
- package/coverage/lcov-report/src/coordinator/connection/index.html +0 -251
- package/coverage/lcov-report/src/coordinator/connection/insights.ts.html +0 -349
- package/coverage/lcov-report/src/coordinator/connection/signing.ts.html +0 -397
- package/coverage/lcov-report/src/coordinator/connection/token_manager.ts.html +0 -565
- package/coverage/lcov-report/src/coordinator/connection/types.ts.html +0 -418
- package/coverage/lcov-report/src/coordinator/connection/utils.ts.html +0 -529
- package/coverage/lcov-report/src/coordinator/index.html +0 -116
- package/coverage/lcov-report/src/events/call.ts.html +0 -583
- package/coverage/lcov-report/src/events/index.html +0 -161
- package/coverage/lcov-report/src/events/internal.ts.html +0 -226
- package/coverage/lcov-report/src/events/participant.ts.html +0 -376
- package/coverage/lcov-report/src/events/speaker.ts.html +0 -271
- package/coverage/lcov-report/src/gen/google/protobuf/index.html +0 -131
- package/coverage/lcov-report/src/gen/google/protobuf/struct.ts.html +0 -1528
- package/coverage/lcov-report/src/gen/google/protobuf/timestamp.ts.html +0 -958
- package/coverage/lcov-report/src/gen/video/sfu/event/events.ts.html +0 -5971
- package/coverage/lcov-report/src/gen/video/sfu/event/index.html +0 -116
- package/coverage/lcov-report/src/gen/video/sfu/models/index.html +0 -116
- package/coverage/lcov-report/src/gen/video/sfu/models/models.ts.html +0 -3271
- package/coverage/lcov-report/src/index.html +0 -161
- package/coverage/lcov-report/src/rpc/index.html +0 -131
- package/coverage/lcov-report/src/rpc/index.ts.html +0 -91
- package/coverage/lcov-report/src/rpc/latency.ts.html +0 -214
- package/coverage/lcov-report/src/rtc/Call.ts.html +0 -1840
- package/coverage/lcov-report/src/rtc/CallMetadata.ts.html +0 -157
- package/coverage/lcov-report/src/rtc/Dispatcher.ts.html +0 -223
- package/coverage/lcov-report/src/rtc/IceTrickleBuffer.ts.html +0 -148
- package/coverage/lcov-report/src/rtc/callEventHandlers.ts.html +0 -196
- package/coverage/lcov-report/src/rtc/codecs.ts.html +0 -268
- package/coverage/lcov-report/src/rtc/helpers/iceCandidate.ts.html +0 -133
- package/coverage/lcov-report/src/rtc/helpers/index.html +0 -131
- package/coverage/lcov-report/src/rtc/helpers/tracks.ts.html +0 -139
- package/coverage/lcov-report/src/rtc/index.html +0 -251
- package/coverage/lcov-report/src/rtc/publisher.ts.html +0 -1000
- package/coverage/lcov-report/src/rtc/signal.ts.html +0 -187
- package/coverage/lcov-report/src/rtc/subscriber.ts.html +0 -340
- package/coverage/lcov-report/src/rtc/videoLayers.ts.html +0 -394
- package/coverage/lcov-report/src/stats/index.html +0 -116
- package/coverage/lcov-report/src/stats/state-store-stats-reporter.ts.html +0 -1177
- package/coverage/lcov-report/src/store/index.html +0 -146
- package/coverage/lcov-report/src/store/index.ts.html +0 -91
- package/coverage/lcov-report/src/store/rxUtils.ts.html +0 -211
- package/coverage/lcov-report/src/store/stateStore.ts.html +0 -1108
- package/coverage/lcov.info +0 -11475
- package/coverage/tmp/coverage-2198-1676024259073-2.json +0 -1
- package/dist/index.js.map +0 -1
- package/dist/src/Batcher.d.ts +0 -12
- package/dist/src/CallDropScheduler.d.ts +0 -44
- package/dist/src/config/defaultConfigs.d.ts +0 -2
- package/dist/src/config/types.d.ts +0 -29
- package/dist/src/coordinator/StreamCoordinatorClient.d.ts +0 -19
- package/dist/src/coordinator/connection/events.d.ts +0 -10
- package/dist/src/gen/google/protobuf/descriptor.d.ts +0 -1650
- package/dist/src/gen/google/protobuf/duration.d.ts +0 -113
- package/dist/src/gen/video/coordinator/broadcast_v1/broadcast.d.ts +0 -66
- package/dist/src/gen/video/coordinator/call_v1/call.d.ts +0 -254
- package/dist/src/gen/video/coordinator/client_v1_rpc/client_rpc.client.d.ts +0 -351
- package/dist/src/gen/video/coordinator/client_v1_rpc/client_rpc.d.ts +0 -1488
- package/dist/src/gen/video/coordinator/client_v1_rpc/envelopes.d.ts +0 -143
- package/dist/src/gen/video/coordinator/client_v1_rpc/websocket.d.ts +0 -292
- package/dist/src/gen/video/coordinator/edge_v1/edge.d.ts +0 -183
- package/dist/src/gen/video/coordinator/event_v1/event.d.ts +0 -411
- package/dist/src/gen/video/coordinator/geofence_v1/geofence.d.ts +0 -63
- package/dist/src/gen/video/coordinator/member_v1/member.d.ts +0 -59
- package/dist/src/gen/video/coordinator/participant_v1/participant.d.ts +0 -103
- package/dist/src/gen/video/coordinator/push_v1/push.d.ts +0 -240
- package/dist/src/gen/video/coordinator/stat_v1/stat.d.ts +0 -308
- package/dist/src/gen/video/coordinator/user_v1/user.d.ts +0 -112
- package/dist/src/gen/video/coordinator/utils_v1/utils.d.ts +0 -47
- package/dist/src/rpc/latency.d.ts +0 -9
- package/dist/src/rtc/Call.d.ts +0 -180
- package/dist/src/rtc/CallMetadata.d.ts +0 -9
- package/dist/src/rtc/callEventHandlers.d.ts +0 -5
- package/dist/src/rtc/types.d.ts +0 -84
- package/dist/src/stats/coordinator-stats-reporter.d.ts +0 -10
- package/generate-openapi.sh +0 -32
- package/openapitools.json +0 -7
- package/rollup.config.mjs +0 -48
- package/src/Batcher.ts +0 -43
- package/src/CallDropScheduler.ts +0 -192
- package/src/config/defaultConfigs.ts +0 -15
- package/src/config/types.ts +0 -30
- package/src/coordinator/StreamCoordinatorClient.ts +0 -113
- package/src/coordinator/connection/events.ts +0 -13
- package/src/gen/google/protobuf/descriptor.ts +0 -3466
- package/src/gen/google/protobuf/duration.ts +0 -232
- package/src/gen/video/coordinator/broadcast_v1/broadcast.ts +0 -154
- package/src/gen/video/coordinator/call_v1/call.ts +0 -651
- package/src/gen/video/coordinator/client_v1_rpc/client_rpc.client.ts +0 -463
- package/src/gen/video/coordinator/client_v1_rpc/client_rpc.ts +0 -3819
- package/src/gen/video/coordinator/client_v1_rpc/envelopes.ts +0 -424
- package/src/gen/video/coordinator/client_v1_rpc/websocket.ts +0 -719
- package/src/gen/video/coordinator/edge_v1/edge.ts +0 -532
- package/src/gen/video/coordinator/event_v1/event.ts +0 -1171
- package/src/gen/video/coordinator/geofence_v1/geofence.ts +0 -128
- package/src/gen/video/coordinator/member_v1/member.ts +0 -138
- package/src/gen/video/coordinator/participant_v1/participant.ts +0 -261
- package/src/gen/video/coordinator/push_v1/push.ts +0 -651
- package/src/gen/video/coordinator/stat_v1/stat.ts +0 -656
- package/src/gen/video/coordinator/user_v1/user.ts +0 -277
- package/src/gen/video/coordinator/utils_v1/utils.ts +0 -98
- package/src/rpc/latency.ts +0 -43
- package/src/rtc/Call.ts +0 -585
- package/src/rtc/CallMetadata.ts +0 -24
- package/src/rtc/callEventHandlers.ts +0 -37
- package/src/stats/coordinator-stats-reporter.ts +0 -167
- package/tsconfig.json +0 -25
- package/typedoc.json +0 -11
- package/vite.config.ts +0 -11
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
|
+
|
|
5
|
+
## [0.0.1-alpha.130](https://github.com/GetStream/stream-video-js/compare/client0.0.1-alpha.129...client0.0.1-alpha.130) (2023-05-10)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## [0.0.1-alpha.129](https://github.com/GetStream/stream-video-js/compare/client0.0.1-alpha.128...client0.0.1-alpha.129) (2023-05-09)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* bugfixes in event handling and blocking users ([#476](https://github.com/GetStream/stream-video-js/issues/476)) ([5e9a4fb](https://github.com/GetStream/stream-video-js/commit/5e9a4fb2819cc087f3e095b93488fa9c4df018a4))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## [0.0.1-alpha.128](https://github.com/GetStream/stream-video-js/compare/client0.0.1-alpha.127...client0.0.1-alpha.128) (2023-05-09)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Reverts
|
|
22
|
+
|
|
23
|
+
* Revert "chore: Avoid non-atomic pushes resulting in invalid version tags" ([24be283](https://github.com/GetStream/stream-video-js/commit/24be28300a5f5d452338457d60b1e34682027be6))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
## [0.0.1-alpha.127](https://github.com/GetStream/stream-video-js/compare/client0.0.1-alpha.126...client0.0.1-alpha.127) (2023-05-09)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Bug Fixes
|
|
31
|
+
|
|
32
|
+
* **permissions:** add shortcut APIs ([#475](https://github.com/GetStream/stream-video-js/issues/475)) ([466614c](https://github.com/GetStream/stream-video-js/commit/466614ccf7f15cb16fffc97d5aa05318d2adf7e7))
|
|
33
|
+
* preserve last used deviceId when muting ([#470](https://github.com/GetStream/stream-video-js/issues/470)) ([b4ed2d0](https://github.com/GetStream/stream-video-js/commit/b4ed2d0cce1456a748f070bc01a68df574683862))
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
## [0.0.1-alpha.126](https://github.com/GetStream/stream-video-js/compare/client0.0.1-alpha.125...client0.0.1-alpha.126) (2023-05-08)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
### Features
|
|
41
|
+
|
|
42
|
+
* **latency:** breadth-first time-boxed latency measurement ([#467](https://github.com/GetStream/stream-video-js/issues/467)) ([6d66003](https://github.com/GetStream/stream-video-js/commit/6d660032064667586902a9b410ee6dabfcc6b7ba))
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## [0.0.1-alpha.125](https://github.com/GetStream/stream-video-js/compare/client0.0.1-alpha.124...client0.0.1-alpha.125) (2023-05-08)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
## [0.0.1-alpha.124](https://github.com/GetStream/stream-video-js/compare/client0.0.1-alpha.123...client0.0.1-alpha.124) (2023-05-05)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
## [0.0.1-alpha.123](https://github.com/GetStream/stream-video-js/compare/client0.0.1-alpha.122...client0.0.1-alpha.123) (2023-05-05)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
### Features
|
|
58
|
+
|
|
59
|
+
* **core:** replace useActiveCall() with useCall() ([#450](https://github.com/GetStream/stream-video-js/issues/450)) ([f3b169b](https://github.com/GetStream/stream-video-js/commit/f3b169b2971a95b47cda6956f009d38cc068a793))
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
## [0.0.1-alpha.122](https://github.com/GetStream/stream-video-js/compare/client0.0.1-alpha.121...client0.0.1-alpha.122) (2023-05-04)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
## [0.0.1-alpha.121](https://github.com/GetStream/stream-video-js/compare/client0.0.1-alpha.120...client0.0.1-alpha.121) (2023-05-04)
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
## [0.0.1-alpha.120](https://github.com/GetStream/stream-video-js/compare/client0.0.1-alpha.119...client0.0.1-alpha.120) (2023-05-04)
|
package/README.md
CHANGED
|
@@ -4,11 +4,23 @@
|
|
|
4
4
|
|
|
5
5
|
This package holds the autogenerated Protobuf code and clients.
|
|
6
6
|
|
|
7
|
-
## Generate
|
|
7
|
+
## Generate Coordinator Models from OpenAPI spec (Dev Mode):
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
We have a shell script which will generate the Coordinator models from the OpenAPI spec.
|
|
10
|
+
This script expects the following directory structure to be set up:
|
|
11
|
+
|
|
12
|
+
- `chat` - the `chat` repository
|
|
13
|
+
- `stream-video-js` - current repository
|
|
14
|
+
- `cd stream-video-js/packages/client && yarn generate:open-api`
|
|
11
15
|
|
|
12
16
|
## Documentation
|
|
13
17
|
|
|
14
|
-
API reference documentation can be generated using the `yarn run generate-docs:client`,
|
|
18
|
+
API reference documentation can be generated using the `yarn run generate-docs:client`,
|
|
19
|
+
the generated documentation will be inside the `generated-docs` folder.
|
|
20
|
+
|
|
21
|
+
To view the documentation locally, run the following in the root of the respective SDK React/React Native.
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
yarn generate-docs
|
|
25
|
+
`npx stream-chat-docusaurus -s`
|
|
26
|
+
```
|