@shakerquiz/contracts 0.0.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.
- package/dprint.json +24 -0
- package/generate.js +57 -0
- package/jsconfig.json +18 -0
- package/package.json +23 -0
- package/source/contracts/PATCH/city/admin.json +126 -0
- package/source/contracts/PATCH/city/currency/admin.json +173 -0
- package/source/contracts/PATCH/city/timezone/admin.json +501 -0
- package/source/contracts/PATCH/game/admin.json +30 -0
- package/source/contracts/PATCH/game/organizer.json +30 -0
- package/source/contracts/PATCH/games/admin.json +34 -0
- package/source/contracts/PATCH/games/organizer.json +34 -0
- package/source/contracts/PATCH/registration/Unknown.json +10 -0
- package/source/contracts/PATCH/registration/admin.json +43 -0
- package/source/contracts/PATCH/registration/cancellation/Unknown.json +12 -0
- package/source/contracts/PATCH/registration/channel/Unknown.json +22 -0
- package/source/contracts/PATCH/registration/confirmation/Unknown.json +12 -0
- package/source/contracts/PATCH/registration/organizer.json +43 -0
- package/source/contracts/PATCH/theme/admin.json +19 -0
- package/source/contracts/PATCH/user/admin.json +30 -0
- package/source/contracts/PATCH/user/cities/admin.json +17 -0
- package/source/contracts/PATCH/user/password/admin.json +12 -0
- package/source/contracts/PATCH/user/role/admin.json +13 -0
- package/source/contracts/PATCH/users/cities/admin.json +19 -0
- package/source/contracts/PATCH/users/role/admin.json +19 -0
- package/source/contracts/PATCH/venue/admin.json +44 -0
- package/source/contracts/PATCH/venue/organizer.json +44 -0
- package/source/contracts/POST/checkin/Unknown.json +16 -0
- package/source/contracts/POST/city/admin.json +696 -0
- package/source/contracts/POST/cover/admin.json +24 -0
- package/source/contracts/POST/game/admin.json +27 -0
- package/source/contracts/POST/game/organizer.json +27 -0
- package/source/contracts/POST/game/registrations/export/admin.json +17 -0
- package/source/contracts/POST/game/registrations/export/organizer.json +17 -0
- package/source/contracts/POST/registration/Unknown.json +125 -0
- package/source/contracts/POST/registration/mailing/admin.json +16 -0
- package/source/contracts/POST/registration/mailing/organizer.json +16 -0
- package/source/contracts/POST/registrations/export/admin.json +17 -0
- package/source/contracts/POST/registrations/export/organizer.json +17 -0
- package/source/contracts/POST/theme/admin.json +24 -0
- package/source/contracts/POST/user/admin.json +12 -0
- package/source/contracts/POST/user/cities/admin.json +17 -0
- package/source/contracts/POST/user/password/admin.json +12 -0
- package/source/contracts/POST/user/role/admin.json +13 -0
- package/source/contracts/POST/venue/admin.json +38 -0
- package/source/contracts/POST/venue/organizer.json +38 -0
- package/source/contracts/PUT/cover/admin.json +13 -0
- package/source/index.js +83 -0
package/dprint.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"typescript": {
|
|
3
|
+
"quoteStyle": "preferSingle",
|
|
4
|
+
"semiColons": "asi",
|
|
5
|
+
"indentWidth": 2,
|
|
6
|
+
"useTabs": false,
|
|
7
|
+
"useBraces": "maintain",
|
|
8
|
+
"arrowFunction.useParentheses": "preferNone",
|
|
9
|
+
"lineWidth": 120,
|
|
10
|
+
"importDeclaration.forceSingleLine": true
|
|
11
|
+
},
|
|
12
|
+
"json": {},
|
|
13
|
+
"markdown": {},
|
|
14
|
+
"dockerfile": {},
|
|
15
|
+
"yaml": {},
|
|
16
|
+
"excludes": [
|
|
17
|
+
"**/node_modules",
|
|
18
|
+
"**/*-lock.json"
|
|
19
|
+
],
|
|
20
|
+
"plugins": [
|
|
21
|
+
"https://plugins.dprint.dev/typescript-0.93.0.wasm",
|
|
22
|
+
"https://plugins.dprint.dev/json-0.19.3.wasm"
|
|
23
|
+
]
|
|
24
|
+
}
|
package/generate.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Methods, Mode, Roles, Routes } from '@shakerquiz/utilities'
|
|
2
|
+
|
|
3
|
+
let identifier = (method, route, role) => method + '_' + route.replaceAll('/', '_') + '_' + role
|
|
4
|
+
|
|
5
|
+
let property = (method, route, role) => method + '/' + route + '/' + role
|
|
6
|
+
|
|
7
|
+
let pathnames = Methods
|
|
8
|
+
.flatMap(method => Routes.map(route => [method, route]))
|
|
9
|
+
.flatMap(([method, route]) => Roles.concat(Mode['Unknown']).map(role => [method, route, role]))
|
|
10
|
+
.map(([method, route, role]) => ({ method, route, role }))
|
|
11
|
+
|
|
12
|
+
Promise
|
|
13
|
+
.all(pathnames.map(({ method, route, role }) =>
|
|
14
|
+
Deno
|
|
15
|
+
.lstat('./source/contracts/' + method + '/' + route + '/' + role + '.json')
|
|
16
|
+
.then(() => ({ method, route, role }))
|
|
17
|
+
.catch(() => null)
|
|
18
|
+
))
|
|
19
|
+
.then(components =>
|
|
20
|
+
Deno.writeTextFile(
|
|
21
|
+
'./source/index.js',
|
|
22
|
+
''
|
|
23
|
+
+ components
|
|
24
|
+
.filter(Boolean)
|
|
25
|
+
.reduce((text, { method, route, role }) =>
|
|
26
|
+
text
|
|
27
|
+
+ 'import'
|
|
28
|
+
+ ' '
|
|
29
|
+
+ identifier(method, route, role)
|
|
30
|
+
+ ' '
|
|
31
|
+
+ 'from'
|
|
32
|
+
+ "'"
|
|
33
|
+
+ './contracts/' + method + '/' + route + '/' + role + '.json'
|
|
34
|
+
+ "'"
|
|
35
|
+
+ ' '
|
|
36
|
+
+ "with { type: 'json' }"
|
|
37
|
+
+ '\n', '')
|
|
38
|
+
+ '\n'
|
|
39
|
+
+ 'export const Schema = Object.freeze({'
|
|
40
|
+
+ '\n'
|
|
41
|
+
+ components
|
|
42
|
+
.filter(Boolean)
|
|
43
|
+
.reduce((text, { method, route, role }) =>
|
|
44
|
+
text
|
|
45
|
+
+ '\t'
|
|
46
|
+
+ "'"
|
|
47
|
+
+ property(method, route, role)
|
|
48
|
+
+ "'"
|
|
49
|
+
+ ':'
|
|
50
|
+
+ ' '
|
|
51
|
+
+ identifier(method, route, role)
|
|
52
|
+
+ ','
|
|
53
|
+
+ '\n', '')
|
|
54
|
+
+ '})'
|
|
55
|
+
+ '\n',
|
|
56
|
+
)
|
|
57
|
+
)
|
package/jsconfig.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"baseUrl": ".",
|
|
4
|
+
"module": "NodeNext",
|
|
5
|
+
"moduleResolution": "nodenext",
|
|
6
|
+
"allowJs": true,
|
|
7
|
+
"emitDeclarationOnly": true,
|
|
8
|
+
"declaration": true,
|
|
9
|
+
"paths": {
|
|
10
|
+
"source/": [
|
|
11
|
+
"./source/*"
|
|
12
|
+
]
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"include": [
|
|
16
|
+
"source/**/*"
|
|
17
|
+
]
|
|
18
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "module",
|
|
3
|
+
"name": "@shakerquiz/contracts",
|
|
4
|
+
"version": "0.0.0",
|
|
5
|
+
"author": "yurkimus <yurkimus@gmail.com>",
|
|
6
|
+
"license": "ISC",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/shaker-quiz/contracts.git"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"prepublishOnly": "deno run -A ./generate.js"
|
|
13
|
+
},
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"default": "./source/index.js"
|
|
17
|
+
},
|
|
18
|
+
"./contracts/*.json": "./source/contracts/*.json"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@shakerquiz/utilities": "0.5.178"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "object",
|
|
3
|
+
"properties": {
|
|
4
|
+
"is_franchise": {
|
|
5
|
+
"type": "boolean"
|
|
6
|
+
},
|
|
7
|
+
"price": {
|
|
8
|
+
"type": "number"
|
|
9
|
+
},
|
|
10
|
+
"game_time": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"format": "iso-time"
|
|
13
|
+
},
|
|
14
|
+
"vk_link": {
|
|
15
|
+
"type": [
|
|
16
|
+
"string",
|
|
17
|
+
"null"
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
"tg_link": {
|
|
21
|
+
"type": [
|
|
22
|
+
"string",
|
|
23
|
+
"null"
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
"inst_link": {
|
|
27
|
+
"type": [
|
|
28
|
+
"string",
|
|
29
|
+
"null"
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"min_members_count": {
|
|
33
|
+
"type": [
|
|
34
|
+
"number",
|
|
35
|
+
"null"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"max_members_count": {
|
|
39
|
+
"type": [
|
|
40
|
+
"number",
|
|
41
|
+
"null"
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
"custom_script": {
|
|
45
|
+
"type": [
|
|
46
|
+
"string",
|
|
47
|
+
"null"
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"custom_html": {
|
|
51
|
+
"type": [
|
|
52
|
+
"string",
|
|
53
|
+
"null"
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
"vk_group_id": {
|
|
57
|
+
"type": [
|
|
58
|
+
"string",
|
|
59
|
+
"null"
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
"chatapp_line": {
|
|
63
|
+
"type": [
|
|
64
|
+
"string",
|
|
65
|
+
"null"
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
"chatapp_user": {
|
|
69
|
+
"type": [
|
|
70
|
+
"string",
|
|
71
|
+
"null"
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
"chatapp_tag": {
|
|
75
|
+
"type": [
|
|
76
|
+
"string",
|
|
77
|
+
"null"
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
"chatapp_category": {
|
|
81
|
+
"type": [
|
|
82
|
+
"string",
|
|
83
|
+
"null"
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
"telegram_chat_id": {
|
|
87
|
+
"type": [
|
|
88
|
+
"string",
|
|
89
|
+
"null"
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
"yandex_metrica": {
|
|
93
|
+
"type": [
|
|
94
|
+
"string",
|
|
95
|
+
"null"
|
|
96
|
+
]
|
|
97
|
+
},
|
|
98
|
+
"chatapp_legacy": {
|
|
99
|
+
"type": [
|
|
100
|
+
"boolean"
|
|
101
|
+
]
|
|
102
|
+
},
|
|
103
|
+
"phone": {
|
|
104
|
+
"type": [
|
|
105
|
+
"string",
|
|
106
|
+
"null"
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
"email": {
|
|
110
|
+
"type": [
|
|
111
|
+
"string",
|
|
112
|
+
"null"
|
|
113
|
+
]
|
|
114
|
+
},
|
|
115
|
+
"address": {
|
|
116
|
+
"type": [
|
|
117
|
+
"string",
|
|
118
|
+
"null"
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"required": [
|
|
123
|
+
"is_franchise"
|
|
124
|
+
],
|
|
125
|
+
"additionalProperties": false
|
|
126
|
+
}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "object",
|
|
3
|
+
"properties": {
|
|
4
|
+
"id": {
|
|
5
|
+
"type": "string",
|
|
6
|
+
"enum": [
|
|
7
|
+
"AED",
|
|
8
|
+
"AFN",
|
|
9
|
+
"ALL",
|
|
10
|
+
"AMD",
|
|
11
|
+
"ANG",
|
|
12
|
+
"AOA",
|
|
13
|
+
"ARS",
|
|
14
|
+
"AUD",
|
|
15
|
+
"AWG",
|
|
16
|
+
"AZN",
|
|
17
|
+
"BAM",
|
|
18
|
+
"BBD",
|
|
19
|
+
"BDT",
|
|
20
|
+
"BGN",
|
|
21
|
+
"BHD",
|
|
22
|
+
"BIF",
|
|
23
|
+
"BMD",
|
|
24
|
+
"BND",
|
|
25
|
+
"BOB",
|
|
26
|
+
"BRL",
|
|
27
|
+
"BSD",
|
|
28
|
+
"BTN",
|
|
29
|
+
"BWP",
|
|
30
|
+
"BYN",
|
|
31
|
+
"BZD",
|
|
32
|
+
"CAD",
|
|
33
|
+
"CDF",
|
|
34
|
+
"CHF",
|
|
35
|
+
"CLP",
|
|
36
|
+
"CNY",
|
|
37
|
+
"COP",
|
|
38
|
+
"CRC",
|
|
39
|
+
"CUC",
|
|
40
|
+
"CUP",
|
|
41
|
+
"CVE",
|
|
42
|
+
"CZK",
|
|
43
|
+
"DJF",
|
|
44
|
+
"DKK",
|
|
45
|
+
"DOP",
|
|
46
|
+
"DZD",
|
|
47
|
+
"EGP",
|
|
48
|
+
"ERN",
|
|
49
|
+
"ETB",
|
|
50
|
+
"EUR",
|
|
51
|
+
"FJD",
|
|
52
|
+
"FKP",
|
|
53
|
+
"GBP",
|
|
54
|
+
"GEL",
|
|
55
|
+
"GHS",
|
|
56
|
+
"GIP",
|
|
57
|
+
"GMD",
|
|
58
|
+
"GNF",
|
|
59
|
+
"GTQ",
|
|
60
|
+
"GYD",
|
|
61
|
+
"HKD",
|
|
62
|
+
"HNL",
|
|
63
|
+
"HRK",
|
|
64
|
+
"HTG",
|
|
65
|
+
"HUF",
|
|
66
|
+
"IDR",
|
|
67
|
+
"ILS",
|
|
68
|
+
"INR",
|
|
69
|
+
"IQD",
|
|
70
|
+
"IRR",
|
|
71
|
+
"ISK",
|
|
72
|
+
"JMD",
|
|
73
|
+
"JOD",
|
|
74
|
+
"JPY",
|
|
75
|
+
"KES",
|
|
76
|
+
"KGS",
|
|
77
|
+
"KHR",
|
|
78
|
+
"KMF",
|
|
79
|
+
"KPW",
|
|
80
|
+
"KRW",
|
|
81
|
+
"KWD",
|
|
82
|
+
"KYD",
|
|
83
|
+
"KZT",
|
|
84
|
+
"LAK",
|
|
85
|
+
"LBP",
|
|
86
|
+
"LKR",
|
|
87
|
+
"LRD",
|
|
88
|
+
"LSL",
|
|
89
|
+
"LYD",
|
|
90
|
+
"MAD",
|
|
91
|
+
"MDL",
|
|
92
|
+
"MGA",
|
|
93
|
+
"MKD",
|
|
94
|
+
"MMK",
|
|
95
|
+
"MNT",
|
|
96
|
+
"MOP",
|
|
97
|
+
"MRU",
|
|
98
|
+
"MUR",
|
|
99
|
+
"MVR",
|
|
100
|
+
"MWK",
|
|
101
|
+
"MXN",
|
|
102
|
+
"MYR",
|
|
103
|
+
"MZN",
|
|
104
|
+
"NAD",
|
|
105
|
+
"NGN",
|
|
106
|
+
"NIO",
|
|
107
|
+
"NOK",
|
|
108
|
+
"NPR",
|
|
109
|
+
"NZD",
|
|
110
|
+
"OMR",
|
|
111
|
+
"PAB",
|
|
112
|
+
"PEN",
|
|
113
|
+
"PGK",
|
|
114
|
+
"PHP",
|
|
115
|
+
"PKR",
|
|
116
|
+
"PLN",
|
|
117
|
+
"PYG",
|
|
118
|
+
"QAR",
|
|
119
|
+
"RON",
|
|
120
|
+
"RSD",
|
|
121
|
+
"RUB",
|
|
122
|
+
"RWF",
|
|
123
|
+
"SAR",
|
|
124
|
+
"SBD",
|
|
125
|
+
"SCR",
|
|
126
|
+
"SDG",
|
|
127
|
+
"SEK",
|
|
128
|
+
"SGD",
|
|
129
|
+
"SHP",
|
|
130
|
+
"SLL",
|
|
131
|
+
"SOS",
|
|
132
|
+
"SRD",
|
|
133
|
+
"SSP",
|
|
134
|
+
"STN",
|
|
135
|
+
"SVC",
|
|
136
|
+
"SYP",
|
|
137
|
+
"SZL",
|
|
138
|
+
"THB",
|
|
139
|
+
"TJS",
|
|
140
|
+
"TMT",
|
|
141
|
+
"TND",
|
|
142
|
+
"TOP",
|
|
143
|
+
"TRY",
|
|
144
|
+
"TTD",
|
|
145
|
+
"TWD",
|
|
146
|
+
"TZS",
|
|
147
|
+
"UAH",
|
|
148
|
+
"UGX",
|
|
149
|
+
"USD",
|
|
150
|
+
"UYU",
|
|
151
|
+
"UZS",
|
|
152
|
+
"VES",
|
|
153
|
+
"VND",
|
|
154
|
+
"VUV",
|
|
155
|
+
"WST",
|
|
156
|
+
"XAF",
|
|
157
|
+
"XCD",
|
|
158
|
+
"XDR",
|
|
159
|
+
"XOF",
|
|
160
|
+
"XPF",
|
|
161
|
+
"XSU",
|
|
162
|
+
"YER",
|
|
163
|
+
"ZAR",
|
|
164
|
+
"ZMW",
|
|
165
|
+
"ZWL"
|
|
166
|
+
]
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
"required": [
|
|
170
|
+
"id"
|
|
171
|
+
],
|
|
172
|
+
"additionalProperties": false
|
|
173
|
+
}
|