@exodus/analytics-validation 1.2.0 → 1.4.0

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 (53) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +59 -6
  3. package/package.json +2 -2
  4. package/src/bitrefill/bitrefill-pay.schemasafe.json +0 -4
  5. package/src/common-properties.schemasafe.json +4 -0
  6. package/src/exchange/exchange-asset-swap.schemasafe.json +0 -14
  7. package/src/fiat/off-ramp-continue-tap.schemasafe.json +0 -14
  8. package/src/fiat/off-ramp-provider-status-change.schemasafe.json +0 -4
  9. package/src/fiat/off-ramp-sale-confirm.schemasafe.json +0 -4
  10. package/src/fiat/on-ramp-continue-tap.schemasafe.json +0 -4
  11. package/src/fiat/on-ramp-payment-method-select.schemasafe.json +0 -4
  12. package/src/fiat/on-ramp-provider-select.schemasafe.json +0 -4
  13. package/src/fiat/on-ramp-provider-status-change.schemasafe.json +0 -4
  14. package/src/fiat/on-ramp-purchase-confirm.schemasafe.json +0 -4
  15. package/src/{fiat/off-ramp-sale-confirm-view.schemasafe.json → home/home-banner-page-view.schemasafe.json} +5 -2
  16. package/src/main.schemasafe.json +5 -98
  17. package/src/{backup/backup-prompt-view.schemasafe.json → onboarding/onboarding-existing-wallet-tap.schemasafe.json} +5 -3
  18. package/src/{bitrefill/bitrefill-insufficient-funds-view.schemasafe.json → onboarding/onboarding-new-wallet-tap.schemasafe.json} +8 -3
  19. package/src/onboarding/restore-wallet-seed-input.schemasafe.json +0 -4
  20. package/src/security/security-backup-vault-view.schemasafe.json +0 -4
  21. package/src/wallet/wallet-staking-view.schemasafe.json +0 -4
  22. package/src/web3/web3-browser-launch-dapp.schemasafe.json +0 -4
  23. package/src/bitrefill/bitrefill-payment-view.schemasafe.json +0 -27
  24. package/src/bitrefill/bitrefill-view.schemasafe.json +0 -27
  25. package/src/exchange/exchange-configure-asset-swap.schemasafe.json +0 -37
  26. package/src/exchange/exchange-view.schemasafe.json +0 -39
  27. package/src/fiat/fiat-view.schemasafe.json +0 -39
  28. package/src/fiat/off-ramp-configure-asset-sale.schemasafe.json +0 -37
  29. package/src/fiat/off-ramp-configure-asset-sell.schemasafe.json +0 -27
  30. package/src/fiat/off-ramp-send-to-browser.schemasafe.json +0 -27
  31. package/src/fiat/off-ramp-view.schemasafe.json +0 -27
  32. package/src/fiat/on-ramp-configure-asset-purchase.schemasafe.json +0 -27
  33. package/src/fiat/on-ramp-disabled-view.schemasafe.json +0 -27
  34. package/src/fiat/on-ramp-payment-method-view.schemasafe.json +0 -27
  35. package/src/fiat/on-ramp-provider-view.schemasafe.json +0 -27
  36. package/src/fiat/on-ramp-receive-from-browser.schemasafe.json +0 -27
  37. package/src/fiat/on-ramp-send-to-browser.schemasafe.json +0 -27
  38. package/src/fiat/on-ramp-view.schemasafe.json +0 -27
  39. package/src/lightning/lightning-onboarding-view.schemasafe.json +0 -27
  40. package/src/lightning/lightning-receive-view.schemasafe.json +0 -27
  41. package/src/lightning/lightning-send-view.schemasafe.json +0 -27
  42. package/src/lightning/lightning-view.schemasafe.json +0 -27
  43. package/src/security/security-backups-screen-view.schemasafe.json +0 -27
  44. package/src/security/security-secret-phrase-screen-view.schemasafe.json +0 -36
  45. package/src/wallet/receive-select-asset-view.schemasafe.json +0 -27
  46. package/src/wallet/wallet-asset-receive-view.schemasafe.json +0 -27
  47. package/src/wallet/wallet-asset-view.schemasafe.json +0 -27
  48. package/src/wallet/wallet-connect-initiate-connection.schemasafe.json +0 -27
  49. package/src/wallet/wallet-exchange-detail-view.schemasafe.json +0 -27
  50. package/src/wallet/wallet-purchase-detail-view.schemasafe.json +0 -27
  51. package/src/wallet/wallet-receive-assets-view.schemasafe.json +0 -27
  52. package/src/wallet/wallet-sale-detail-view.schemasafe.json +0 -27
  53. package/src/wallet/wallet-transaction-detail-view.schemasafe.json +0 -34
package/CHANGELOG.md CHANGED
@@ -3,6 +3,18 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.4.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/analytics-validation@1.3.0...@exodus/analytics-validation@1.4.0) (2023-06-09)
7
+
8
+ ### Features
9
+
10
+ - **analytics-validation:** add events for new onboarding and home tour ([#1879](https://github.com/ExodusMovement/exodus-hydra/issues/1879)) ([4a9ac31](https://github.com/ExodusMovement/exodus-hydra/commit/4a9ac31191124faa5c4a7a51967cbf4fe85bbc69))
11
+
12
+ ## [1.3.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/analytics-validation@1.2.0...@exodus/analytics-validation@1.3.0) (2023-06-05)
13
+
14
+ ### Features
15
+
16
+ - **analytics-validation:** replace all origin enum validation with any-string ([#1765](https://github.com/ExodusMovement/exodus-hydra/issues/1765)) ([a5fb529](https://github.com/ExodusMovement/exodus-hydra/commit/a5fb529c162943b87be175bf5559e591e4cf688b))
17
+
6
18
  ## [1.2.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/analytics-validation@1.1.0...@exodus/analytics-validation@1.2.0) (2023-06-01)
7
19
 
8
20
  ### Features
package/README.md CHANGED
@@ -1,17 +1,70 @@
1
1
  # @exodus/analytics-validation
2
2
 
3
+ ## Why
4
+
5
+ This helps prevent that we do not accidentally collect any sensitive and/or private information, therefore all events must pass a validation layer.
6
+
7
+ Examples of what could go wrong:
8
+
9
+ - [Slope Finance sending 12-word mnemonics to Sentry 💀](https://twitter.com/osec_io/status/1555087560887922688?s=20)
10
+
3
11
  ## Development
4
12
 
5
- Before adding a new schema, double check if a subdirectory (essentially an event domain, e.g. `dapps`) already exists in `./src`.
6
- If not, you will have to come up with a subdirectory name during the next steps.
13
+ ### Do I need to add a new schema?
14
+
15
+ ```mermaid
16
+ flowchart TD
17
+ Title(Adding a new telemetry event) --> A
18
+ A{Does your event\nhave properties?}
19
+ A -->|Yes| C
20
+ A -->|No| B
21
+ B(You're done!)
22
+ C{Does it only require\n the 'origin' property?}
23
+ C -->|Yes| B
24
+ C -->|No| E[Generate a new JSON Schema: \nyarn generate:analytics-validation]
25
+ E --> D[Adjust the schema and tests]
26
+ D --> B
27
+
28
+ ```
29
+
30
+ ### JSON Schema Development
7
31
 
8
32
  To add a new schema run
9
33
 
10
- > yarn generate:analytics-validation
34
+ ```bash
35
+ yarn generate:analytics-validation
36
+ ```
11
37
 
12
38
  in the project root. The CLI tool will ask you for all details needed.
13
39
  Once the schema is created, make sure to
14
40
 
15
- 1. Fill the schema with the expected properties and their types. The property names should be in the snake case (e.g. `expected_property`);
16
- 2. Fix the generated unit test as it will be intentionally failing;
17
- 3. Add your own test cases to ensure the schema works properly before merging the PR and publishing a new version.
41
+ 1. Before adding a new schema, double check if a subdirectory (essentially an event domain, e.g. `dapps`) already exists in `./src`. If not, you will have to come up with a subdirectory name during the next steps;
42
+ 2. Fill the schema with the expected properties and their types. The property names must be in the **snake_case** (e.g. `expected_property`);
43
+ 3. Fix the generated unit test as it will be intentionally failing;
44
+ 4. Add your own test cases to ensure the schema works properly before merging the PR and publishing a new version.
45
+
46
+ #### List of string formats
47
+
48
+ Schemasafe ships with a bunch of default formats, [you can find the implementation of these here!](https://github.com/ExodusMovement/schemasafe/blob/master/src/formats.js)
49
+
50
+ - email
51
+ - hostname
52
+ - uuid
53
+ - date
54
+ - time
55
+ - date-time
56
+ - duration
57
+ - ipv4
58
+ - ipv6
59
+ - uri
60
+ - uri-reference
61
+ - uri-template
62
+ - alpha
63
+ - alphanumeric
64
+ - base64
65
+ - hex-digits
66
+ - hex-digits-prefixed
67
+ - hex-bytes
68
+ - hex-bytes-prefixed
69
+ - json-pointer
70
+ - relative-json-pointer
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exodus/analytics-validation",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "description": "The analytics-validation library",
5
5
  "author": "Exodus Movement Inc",
6
6
  "repository": {
@@ -33,5 +33,5 @@
33
33
  "eslint": "^8.33.0",
34
34
  "jest": "^29.1.2"
35
35
  },
36
- "gitHead": "52828af6d22620c3770831020cee683af894a98b"
36
+ "gitHead": "ab1e457d13ea95f2b4da405f9277eb1bdc9f6b1d"
37
37
  }
@@ -14,10 +14,6 @@
14
14
  "type": "object",
15
15
  "required": [],
16
16
  "properties": {
17
- "origin": {
18
- "type": "string",
19
- "format": "any-string"
20
- },
21
17
  "success": {
22
18
  "type": "boolean"
23
19
  }
@@ -184,6 +184,10 @@
184
184
  "selected_language": {
185
185
  "type": "string",
186
186
  "format": "any-string"
187
+ },
188
+ "origin": {
189
+ "type": "string",
190
+ "format": "any-string"
187
191
  }
188
192
  }
189
193
  }
@@ -14,20 +14,6 @@
14
14
  "type": "object",
15
15
  "required": [],
16
16
  "properties": {
17
- "origin": {
18
- "type": "string",
19
- "enum": [
20
- "dashboard-portfolio",
21
- "nav-bar",
22
- "nft-gallery",
23
- "null",
24
- "stake-form-no-funds",
25
- "staking-claim",
26
- "transactions",
27
- "wallet-asset",
28
- "wallet-quick-action"
29
- ]
30
- },
31
17
  "success": {
32
18
  "type": "boolean"
33
19
  }
@@ -18,20 +18,6 @@
18
18
  "type": "string",
19
19
  "format": "any-string"
20
20
  },
21
- "origin": {
22
- "type": "string",
23
- "enum": [
24
- "dashboard",
25
- "exodex-insufficient-funds",
26
- "exodus-dashboard-asset",
27
- "home",
28
- "nav-bar",
29
- "profile",
30
- "promo-banner",
31
- "wallet-asset",
32
- "wallet-connect"
33
- ]
34
- },
35
21
  "payment_method": {
36
22
  "type": "string",
37
23
  "enum": ["card"]
@@ -35,10 +35,6 @@
35
35
  "type": "string",
36
36
  "format": "any-string"
37
37
  },
38
- "origin": {
39
- "type": "string",
40
- "format": "any-string"
41
- },
42
38
  "payment_method": {
43
39
  "type": "string",
44
40
  "format": "any-string"
@@ -14,10 +14,6 @@
14
14
  "type": "object",
15
15
  "required": [],
16
16
  "properties": {
17
- "origin": {
18
- "type": "string",
19
- "format": "any-string"
20
- },
21
17
  "success": {
22
18
  "type": "boolean"
23
19
  }
@@ -18,10 +18,6 @@
18
18
  "type": "string",
19
19
  "format": "any-string"
20
20
  },
21
- "origin": {
22
- "type": "string",
23
- "format": "any-string"
24
- },
25
21
  "payment_method": {
26
22
  "type": "string",
27
23
  "format": "any-string"
@@ -14,10 +14,6 @@
14
14
  "type": "object",
15
15
  "required": [],
16
16
  "properties": {
17
- "origin": {
18
- "type": "string",
19
- "format": "any-string"
20
- },
21
17
  "payment_method_to": {
22
18
  "type": "string",
23
19
  "format": "any-string"
@@ -17,10 +17,6 @@
17
17
  "best_price": {
18
18
  "type": "boolean"
19
19
  },
20
- "origin": {
21
- "type": "string",
22
- "format": "any-string"
23
- },
24
20
  "provider_from": {
25
21
  "type": "string",
26
22
  "format": "any-string"
@@ -38,10 +38,6 @@
38
38
  "network_fee": {
39
39
  "type": "number"
40
40
  },
41
- "origin": {
42
- "type": "string",
43
- "format": "any-string"
44
- },
45
41
  "payment_method": {
46
42
  "type": "string",
47
43
  "format": "any-string"
@@ -14,10 +14,6 @@
14
14
  "type": "object",
15
15
  "required": [],
16
16
  "properties": {
17
- "origin": {
18
- "type": "string",
19
- "format": "any-string"
20
- },
21
17
  "success": {
22
18
  "type": "boolean"
23
19
  }
@@ -3,7 +3,7 @@
3
3
  "type": "object",
4
4
  "properties": {
5
5
  "event": {
6
- "const": "OffRampSaleConfirmView"
6
+ "const": "HomeBannerPageView"
7
7
  },
8
8
  "properties": {
9
9
  "allOf": [
@@ -14,7 +14,10 @@
14
14
  "type": "object",
15
15
  "required": [],
16
16
  "properties": {
17
- "origin": {
17
+ "page_order": {
18
+ "type": "number"
19
+ },
20
+ "page": {
18
21
  "type": "string",
19
22
  "format": "any-string"
20
23
  }
@@ -15,24 +15,12 @@
15
15
  {
16
16
  "$ref": "asset-network-manual-refresh#"
17
17
  },
18
- {
19
- "$ref": "backup-prompt-view#"
20
- },
21
18
  {
22
19
  "$ref": "balance-fetch-network-error-notice#"
23
20
  },
24
- {
25
- "$ref": "bitrefill-insufficient-funds-view#"
26
- },
27
21
  {
28
22
  "$ref": "bitrefill-pay#"
29
23
  },
30
- {
31
- "$ref": "bitrefill-payment-view#"
32
- },
33
- {
34
- "$ref": "bitrefill-view#"
35
- },
36
24
  {
37
25
  "$ref": "check-backup-quiz-completed#"
38
26
  },
@@ -81,9 +69,6 @@
81
69
  {
82
70
  "$ref": "exchange-asset-swap#"
83
71
  },
84
- {
85
- "$ref": "exchange-configure-asset-swap#"
86
- },
87
72
  {
88
73
  "$ref": "exchange-no-gas#"
89
74
  },
@@ -96,18 +81,12 @@
96
81
  {
97
82
  "$ref": "exchange-order-status-change#"
98
83
  },
99
- {
100
- "$ref": "exchange-view#"
101
- },
102
84
  {
103
85
  "$ref": "exodus-transaction-broadcast-error#"
104
86
  },
105
87
  {
106
88
  "$ref": "exodus-transaction-broadcast#"
107
89
  },
108
- {
109
- "$ref": "fiat-view#"
110
- },
111
90
  {
112
91
  "$ref": "fusion-profile-create#"
113
92
  },
@@ -117,6 +96,9 @@
117
96
  {
118
97
  "$ref": "fusion-profile-update#"
119
98
  },
99
+ {
100
+ "$ref": "home-banner-page-view#"
101
+ },
120
102
  {
121
103
  "$ref": "home-edit-favorites-toggle#"
122
104
  },
@@ -156,27 +138,15 @@
156
138
  {
157
139
  "$ref": "lightning-invoice-generated#"
158
140
  },
159
- {
160
- "$ref": "lightning-onboarding-view#"
161
- },
162
141
  {
163
142
  "$ref": "lightning-receive-funds#"
164
143
  },
165
- {
166
- "$ref": "lightning-receive-view#"
167
- },
168
- {
169
- "$ref": "lightning-send-view#"
170
- },
171
144
  {
172
145
  "$ref": "lightning-send#"
173
146
  },
174
147
  {
175
148
  "$ref": "lightning-terms-and-conditions#"
176
149
  },
177
- {
178
- "$ref": "lightning-view#"
179
- },
180
150
  {
181
151
  "$ref": "lightning-withdraw#"
182
152
  },
@@ -192,12 +162,6 @@
192
162
  {
193
163
  "$ref": "notifications-system-permission-modal-enable-tap#"
194
164
  },
195
- {
196
- "$ref": "off-ramp-configure-asset-sale#"
197
- },
198
- {
199
- "$ref": "off-ramp-configure-asset-sell#"
200
- },
201
165
  {
202
166
  "$ref": "off-ramp-continue-tap#"
203
167
  },
@@ -207,53 +171,29 @@
207
171
  {
208
172
  "$ref": "off-ramp-provider-status-change#"
209
173
  },
210
- {
211
- "$ref": "off-ramp-sale-confirm-view#"
212
- },
213
174
  {
214
175
  "$ref": "off-ramp-sale-confirm#"
215
176
  },
216
- {
217
- "$ref": "off-ramp-send-to-browser#"
218
- },
219
- {
220
- "$ref": "off-ramp-view#"
221
- },
222
- {
223
- "$ref": "on-ramp-configure-asset-purchase#"
224
- },
225
177
  {
226
178
  "$ref": "on-ramp-continue-tap#"
227
179
  },
228
- {
229
- "$ref": "on-ramp-disabled-view#"
230
- },
231
180
  {
232
181
  "$ref": "on-ramp-payment-method-select#"
233
182
  },
234
- {
235
- "$ref": "on-ramp-payment-method-view#"
236
- },
237
183
  {
238
184
  "$ref": "on-ramp-provider-select#"
239
185
  },
240
186
  {
241
187
  "$ref": "on-ramp-provider-status-change#"
242
188
  },
243
- {
244
- "$ref": "on-ramp-provider-view#"
245
- },
246
189
  {
247
190
  "$ref": "on-ramp-purchase-confirm#"
248
191
  },
249
192
  {
250
- "$ref": "on-ramp-receive-from-browser#"
193
+ "$ref": "onboarding-existing-wallet-tap#"
251
194
  },
252
195
  {
253
- "$ref": "on-ramp-send-to-browser#"
254
- },
255
- {
256
- "$ref": "on-ramp-view#"
196
+ "$ref": "onboarding-new-wallet-tap#"
257
197
  },
258
198
  {
259
199
  "$ref": "onboarding-page-skipped#"
@@ -261,9 +201,6 @@
261
201
  {
262
202
  "$ref": "onboarding-page-view#"
263
203
  },
264
- {
265
- "$ref": "receive-select-asset-view#"
266
- },
267
204
  {
268
205
  "$ref": "referral-code-input#"
269
206
  },
@@ -303,12 +240,6 @@
303
240
  {
304
241
  "$ref": "security-backup-vault-view#"
305
242
  },
306
- {
307
- "$ref": "security-backups-screen-view#"
308
- },
309
- {
310
- "$ref": "security-secret-phrase-screen-view#"
311
- },
312
243
  {
313
244
  "$ref": "settings-advanced-mode-toggle#"
314
245
  },
@@ -357,18 +288,12 @@
357
288
  {
358
289
  "$ref": "wallet-asset-network-manual-refresh#"
359
290
  },
360
- {
361
- "$ref": "wallet-asset-receive-view#"
362
- },
363
291
  {
364
292
  "$ref": "wallet-asset-send-no-gas#"
365
293
  },
366
294
  {
367
295
  "$ref": "wallet-asset-send#"
368
296
  },
369
- {
370
- "$ref": "wallet-asset-view#"
371
- },
372
297
  {
373
298
  "$ref": "wallet-connect-connection-added#"
374
299
  },
@@ -387,21 +312,6 @@
387
312
  {
388
313
  "$ref": "wallet-connect-fiat-on-ramp-cta-tap#"
389
314
  },
390
- {
391
- "$ref": "wallet-connect-initiate-connection#"
392
- },
393
- {
394
- "$ref": "wallet-exchange-detail-view#"
395
- },
396
- {
397
- "$ref": "wallet-purchase-detail-view#"
398
- },
399
- {
400
- "$ref": "wallet-receive-assets-view#"
401
- },
402
- {
403
- "$ref": "wallet-sale-detail-view#"
404
- },
405
315
  {
406
316
  "$ref": "wallet-staking-claim#"
407
317
  },
@@ -417,9 +327,6 @@
417
327
  {
418
328
  "$ref": "wallet-staking-view#"
419
329
  },
420
- {
421
- "$ref": "wallet-transaction-detail-view#"
422
- },
423
330
  {
424
331
  "$ref": "web3-browser-launch-dapp#"
425
332
  },
@@ -3,7 +3,7 @@
3
3
  "type": "object",
4
4
  "properties": {
5
5
  "event": {
6
- "const": "BackupPromptView"
6
+ "const": "OnboardingExistingWalletTap"
7
7
  },
8
8
  "properties": {
9
9
  "allOf": [
@@ -14,9 +14,11 @@
14
14
  "type": "object",
15
15
  "required": [],
16
16
  "properties": {
17
- "origin": {
17
+ "invite_code": {
18
18
  "type": "string",
19
- "enum": ["enabling-passcode", "newly-funded-wallet"]
19
+ "format": "any-string",
20
+ "minLength": 1,
21
+ "maxLength": 10
20
22
  }
21
23
  },
22
24
  "unevaluatedProperties": false
@@ -3,7 +3,7 @@
3
3
  "type": "object",
4
4
  "properties": {
5
5
  "event": {
6
- "const": "BitrefillInsufficientFundsView"
6
+ "const": "OnboardingNewWalletTap"
7
7
  },
8
8
  "properties": {
9
9
  "allOf": [
@@ -14,9 +14,14 @@
14
14
  "type": "object",
15
15
  "required": [],
16
16
  "properties": {
17
- "origin": {
17
+ "has_invite_code": {
18
+ "type": "boolean"
19
+ },
20
+ "invite_code": {
18
21
  "type": "string",
19
- "format": "any-string"
22
+ "format": "any-string",
23
+ "minLength": 1,
24
+ "maxLength": 10
20
25
  }
21
26
  },
22
27
  "unevaluatedProperties": false
@@ -14,10 +14,6 @@
14
14
  "type": "object",
15
15
  "required": [],
16
16
  "properties": {
17
- "origin": {
18
- "type": "string",
19
- "enum": ["onboarding", "settings"]
20
- },
21
17
  "is_onboarding": {
22
18
  "type": "boolean"
23
19
  },
@@ -14,10 +14,6 @@
14
14
  "type": "object",
15
15
  "required": [],
16
16
  "properties": {
17
- "origin": {
18
- "type": "string",
19
- "enum": ["nav-bar", "security"]
20
- },
21
17
  "screen_type": {
22
18
  "type": "string",
23
19
  "enum": [
@@ -16,10 +16,6 @@
16
16
  "properties": {
17
17
  "is_active": {
18
18
  "type": "boolean"
19
- },
20
- "origin": {
21
- "type": "string",
22
- "format": "any-string"
23
19
  }
24
20
  },
25
21
  "unevaluatedProperties": false
@@ -17,10 +17,6 @@
17
17
  "dapp_domain": {
18
18
  "type": "string",
19
19
  "format": "any-string"
20
- },
21
- "origin": {
22
- "type": "string",
23
- "format": "any-string"
24
20
  }
25
21
  },
26
22
  "unevaluatedProperties": false
@@ -1,27 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "type": "object",
4
- "properties": {
5
- "event": {
6
- "const": "BitrefillPaymentView"
7
- },
8
- "properties": {
9
- "allOf": [
10
- {
11
- "$ref": "common-properties#"
12
- }
13
- ],
14
- "type": "object",
15
- "required": [],
16
- "properties": {
17
- "origin": {
18
- "type": "string",
19
- "format": "any-string"
20
- }
21
- },
22
- "unevaluatedProperties": false
23
- }
24
- },
25
- "unevaluatedProperties": false,
26
- "required": ["event", "properties"]
27
- }
@@ -1,27 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "type": "object",
4
- "properties": {
5
- "event": {
6
- "const": "BitrefillView"
7
- },
8
- "properties": {
9
- "allOf": [
10
- {
11
- "$ref": "common-properties#"
12
- }
13
- ],
14
- "type": "object",
15
- "required": [],
16
- "properties": {
17
- "origin": {
18
- "type": "string",
19
- "format": "any-string"
20
- }
21
- },
22
- "unevaluatedProperties": false
23
- }
24
- },
25
- "unevaluatedProperties": false,
26
- "required": ["event", "properties"]
27
- }