@shakerquiz/utilities 3.0.0 → 4.0.1

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 (116) hide show
  1. package/.github/workflows/publish.yml +32 -0
  2. package/package.json +5 -5
  3. package/scripts/route-cardinality.js +23 -0
  4. package/scripts/route-parameter.js +29 -0
  5. package/scripts/route-pathname.js +37 -0
  6. package/scripts/route-relation.js +26 -0
  7. package/scripts/route-service.js +25 -0
  8. package/scripts/templates/route-cardinality.js +5 -0
  9. package/scripts/templates/route-parameter.js +5 -0
  10. package/scripts/templates/route-pathname.js +7 -0
  11. package/scripts/templates/route-relation.js +5 -0
  12. package/scripts/templates/route-service.js +7 -0
  13. package/source/entities/blend.js +5 -0
  14. package/source/entities/cardinality.js +4 -0
  15. package/source/entities/category.js +4 -0
  16. package/source/entities/city-affilation.js +10 -0
  17. package/source/entities/city-chatapp-version.js +9 -0
  18. package/source/{enumerations/misc → entities}/constants.js +1 -1
  19. package/source/entities/display.js +4 -0
  20. package/source/entities/game-status.js +98 -0
  21. package/source/entities/gender.js +13 -0
  22. package/source/entities/icon.js +654 -0
  23. package/source/entities/key.js +41 -0
  24. package/source/{enumerations/core/methods.js → entities/method.js} +10 -4
  25. package/source/entities/mode.js +9 -0
  26. package/source/entities/network.js +9 -0
  27. package/source/entities/numerosity.js +5 -0
  28. package/source/entities/pattern.js +7 -0
  29. package/source/entities/phase.js +15 -0
  30. package/source/entities/quantifier.js +41 -0
  31. package/source/entities/registration-attribute.js +61 -0
  32. package/source/entities/registration-channel.js +11 -0
  33. package/source/entities/registration-lineup.js +14 -0
  34. package/source/entities/registration-mailing.js +20 -0
  35. package/source/entities/registration-status.js +19 -0
  36. package/source/entities/role.js +16 -0
  37. package/source/entities/route-cardinality.js +151 -0
  38. package/source/entities/route-parameter.js +151 -0
  39. package/source/entities/route-pathname.js +226 -0
  40. package/source/entities/route-relation.js +151 -0
  41. package/source/entities/route-service.js +181 -0
  42. package/source/entities/route.js +83 -0
  43. package/source/entities/runtime.js +6 -0
  44. package/source/entities/segment.js +255 -0
  45. package/source/entities/service-runtime.js +22 -0
  46. package/source/entities/service.js +22 -0
  47. package/source/entities/theme-status.js +9 -0
  48. package/source/entities/venue-audience.js +9 -0
  49. package/source/entities/venue-status.js +9 -0
  50. package/source/helpers/access.js +161 -0
  51. package/source/helpers/hydrate-route-pathname.js +29 -0
  52. package/source/helpers/tag.js +35 -0
  53. package/source/index.js +40 -34
  54. package/source/enumerations/core/features.js +0 -56
  55. package/source/enumerations/core/networks.js +0 -6
  56. package/source/enumerations/core/runtimes.js +0 -6
  57. package/source/enumerations/entities/affilation.js +0 -91
  58. package/source/enumerations/entities/cities-mode.js +0 -49
  59. package/source/enumerations/entities/city/timezone-mode.js +0 -44
  60. package/source/enumerations/entities/city/venues-mode.js +0 -60
  61. package/source/enumerations/entities/game-status.js +0 -130
  62. package/source/enumerations/entities/password-mode.js +0 -40
  63. package/source/enumerations/entities/registration-attribute.js +0 -83
  64. package/source/enumerations/entities/registration-channel.js +0 -26
  65. package/source/enumerations/entities/registration-lineup.js +0 -75
  66. package/source/enumerations/entities/registration-mailing.js +0 -24
  67. package/source/enumerations/entities/registration-status.js +0 -89
  68. package/source/enumerations/entities/role-mode.js +0 -40
  69. package/source/enumerations/entities/role.js +0 -82
  70. package/source/enumerations/entities/venue/audience.js +0 -100
  71. package/source/enumerations/entities/venue/city-mode.js +0 -44
  72. package/source/enumerations/entities/venue/status.js +0 -53
  73. package/source/enumerations/entities/version.js +0 -76
  74. package/source/enumerations/misc/icons.js +0 -655
  75. package/source/enumerations/misc/keys.js +0 -15
  76. package/source/enumerations/misc/phases.js +0 -42
  77. package/source/enumerations/misc/regexps.js +0 -5
  78. package/source/enumerations/misc/routes.js +0 -610
  79. package/source/functions/tag.d.ts +0 -1
  80. package/source/functions/tag.js +0 -5
  81. package/source/schemas/PATCH/city/admin.json +0 -126
  82. package/source/schemas/PATCH/city/currency/admin.json +0 -173
  83. package/source/schemas/PATCH/city/timezone/admin.json +0 -501
  84. package/source/schemas/PATCH/game/admin.json +0 -30
  85. package/source/schemas/PATCH/game/organizer.json +0 -30
  86. package/source/schemas/PATCH/registration/admin.json +0 -43
  87. package/source/schemas/PATCH/registration/cancellation/default.json +0 -12
  88. package/source/schemas/PATCH/registration/channel/default.json +0 -22
  89. package/source/schemas/PATCH/registration/confirmation/default.json +0 -12
  90. package/source/schemas/PATCH/registration/default.json +0 -10
  91. package/source/schemas/PATCH/registration/organizer.json +0 -43
  92. package/source/schemas/PATCH/theme/admin.json +0 -19
  93. package/source/schemas/PATCH/user/admin.json +0 -30
  94. package/source/schemas/PATCH/user/cities/admin.json +0 -17
  95. package/source/schemas/PATCH/user/password/admin.json +0 -12
  96. package/source/schemas/PATCH/user/role/admin.json +0 -13
  97. package/source/schemas/PATCH/venue/admin.json +0 -44
  98. package/source/schemas/PATCH/venue/organizer.json +0 -44
  99. package/source/schemas/POST/checkin/default.json +0 -16
  100. package/source/schemas/POST/city/admin.json +0 -696
  101. package/source/schemas/POST/game/admin.json +0 -27
  102. package/source/schemas/POST/game/organizer.json +0 -27
  103. package/source/schemas/POST/game/registrations/export/admin.json +0 -17
  104. package/source/schemas/POST/game/registrations/export/organizer.json +0 -17
  105. package/source/schemas/POST/registration/default.json +0 -125
  106. package/source/schemas/POST/registration/mailing/admin.json +0 -16
  107. package/source/schemas/POST/registration/mailing/organizer.json +0 -16
  108. package/source/schemas/POST/registrations/export/admin.json +0 -17
  109. package/source/schemas/POST/registrations/export/organizer.json +0 -17
  110. package/source/schemas/POST/theme/admin.json +0 -24
  111. package/source/schemas/POST/user/admin.json +0 -12
  112. package/source/schemas/POST/user/cities/admin.json +0 -17
  113. package/source/schemas/POST/user/password/admin.json +0 -12
  114. package/source/schemas/POST/user/role/admin.json +0 -13
  115. package/source/schemas/POST/venue/admin.json +0 -38
  116. package/source/schemas/POST/venue/organizer.json +0 -38
@@ -0,0 +1,41 @@
1
+ export const Keys = Object.freeze(
2
+ /** @type {const} */ ([
3
+ 'checkin',
4
+ 'user',
5
+ 'users',
6
+ 'role',
7
+ 'roles',
8
+ 'country',
9
+ 'countries',
10
+ 'currency',
11
+ 'currencies',
12
+ 'timezone',
13
+ 'timezones',
14
+ 'city',
15
+ 'cities',
16
+ 'venue',
17
+ 'venues',
18
+ 'theme',
19
+ 'themes',
20
+ 'cover',
21
+ 'game',
22
+ 'games',
23
+ 'registration',
24
+ 'registrations',
25
+ 'export',
26
+ 'password',
27
+ 'vk_group_token',
28
+ 'summary',
29
+ 'mailing',
30
+ 'channel',
31
+ 'confirmation',
32
+ 'cancellation',
33
+ ]),
34
+ )
35
+
36
+ export const Key = Object.freeze(
37
+ /** @type {{ [x in typeof Keys[number]]: x }} */ (Keys.reduce(
38
+ (o, x) => (o[x] = x, o),
39
+ {},
40
+ )),
41
+ )
@@ -2,15 +2,21 @@
2
2
  * Related specifications:
3
3
  * - HTTP/1.1 (Core Methods): {@link https://datatracker.ietf.org/doc/html/rfc7231#section-4.3}
4
4
  * - PATCH: {@link https://datatracker.ietf.org/doc/html/rfc5789}
5
- * - CONNECT: {@link https://datatracker.ietf.org/doc/html/rfc9110}
6
- * - WebDAV Extensions {@link https://datatracker.ietf.org/doc/html/rfc4918}
7
5
  */
8
- export var Method = /** @type {const} */ ({
6
+ export const Method = Object.freeze({
9
7
  'DELETE': 'DELETE',
10
8
  'GET': 'GET',
11
9
  'OPTIONS': 'OPTIONS',
12
10
  'PATCH': 'PATCH',
13
11
  'POST': 'POST',
12
+ 'PUT': 'PUT',
14
13
  })
15
14
 
16
- export var Methods = Object.values(Method)
15
+ export const Methods = Object.freeze([
16
+ 'DELETE',
17
+ 'GET',
18
+ 'OPTIONS',
19
+ 'PATCH',
20
+ 'POST',
21
+ 'PUT',
22
+ ])
@@ -0,0 +1,9 @@
1
+ export const Mode = Object.freeze({
2
+ 'Known': 'Known',
3
+ 'Unknown': 'Unknown',
4
+ })
5
+
6
+ export const Modes = Object.freeze([
7
+ 'Known',
8
+ 'Unknown',
9
+ ])
@@ -0,0 +1,9 @@
1
+ export const Network = Object.freeze({
2
+ 'Docker': 'Docker',
3
+ 'Public': 'Public',
4
+ })
5
+
6
+ export const Networks = Object.freeze([
7
+ 'Docker',
8
+ 'Public',
9
+ ])
@@ -0,0 +1,5 @@
1
+ export const Numerosity = Object.freeze({
2
+ 'Singular': 'Singular',
3
+ 'Dual': 'Dual',
4
+ 'Plural': 'Plural',
5
+ })
@@ -0,0 +1,7 @@
1
+ export const Pattern = Object.freeze({
2
+ UUID: /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/,
3
+ JWT: /^[A-Za-z0-9-_=]+\.[A-Za-z0-9-_=]+\.?[A-Za-z0-9-_.+/=]*$/,
4
+ COUNTRY: /[A-Z]{2}/,
5
+ CURRENCY: /[A-Z]{3}/,
6
+ ZONE: /[A-Za-z]+\/(?:[A-Za-z]+(?:_[A-Za-z]+)?)+/,
7
+ })
@@ -0,0 +1,15 @@
1
+ export const Phase = Object.freeze({
2
+ 'Idle': 'Idle',
3
+ 'Loading': 'Loading',
4
+ 'Loaded': 'Loaded',
5
+ 'Aborted': 'Aborted',
6
+ 'Failed': 'Failed',
7
+ })
8
+
9
+ export const Phases = Object.freeze([
10
+ 'Idle',
11
+ 'Loading',
12
+ 'Loaded',
13
+ 'Aborted',
14
+ 'Failed',
15
+ ])
@@ -0,0 +1,41 @@
1
+ export const Quantifier = Object.freeze({
2
+ 'Any': 'Any',
3
+ 'None': 'None',
4
+ 'Single': 'Single',
5
+ 'Many': 'Many',
6
+ 'All': 'All',
7
+ })
8
+
9
+ export const Quantifiers = Object.freeze([
10
+ 'Any',
11
+ 'None',
12
+ 'Single',
13
+ 'Many',
14
+ 'All',
15
+ ])
16
+
17
+ export const QuantifierQuantifiers = Object.freeze({
18
+ 'Any': Object.freeze([
19
+ 'Any',
20
+ 'None',
21
+ 'Single',
22
+ 'Many',
23
+ 'All',
24
+ ]),
25
+
26
+ 'None': Object.freeze([
27
+ 'None',
28
+ ]),
29
+
30
+ 'Single': Object.freeze([
31
+ 'Single',
32
+ ]),
33
+
34
+ 'Many': Object.freeze([
35
+ 'Many',
36
+ ]),
37
+
38
+ 'All': Object.freeze([
39
+ 'All',
40
+ ]),
41
+ })
@@ -0,0 +1,61 @@
1
+ // import { toStringTag } from '../helpers/string-tag.js'
2
+
3
+ export const RegistrationAttribute = Object.freeze({
4
+ 'Alone': 'Alone',
5
+ 'Newcomer': 'Newcomer',
6
+ 'Birthday': 'Birthday',
7
+ 'Public': 'Public',
8
+ })
9
+
10
+ export const RegistrationAttributes = Object.freeze(Object.values(RegistrationAttribute))
11
+
12
+ export const RegistrationAttributeEmoji = Object.freeze({
13
+ [RegistrationAttribute.Alone]: '👤',
14
+ [RegistrationAttribute.Newcomer]: '✨',
15
+ [RegistrationAttribute.Birthday]: '🎂',
16
+ [RegistrationAttribute.Public]: '🫂',
17
+ })
18
+
19
+ // export var RegistrationAttributeRegistrationProperty = /** @type {const} */ ({
20
+ // [RegistrationAttribute.Alone]: 'is_alone',
21
+ // [RegistrationAttribute.Newcomer]: 'is_first',
22
+ // [RegistrationAttribute.Birthday]: 'is_birthday',
23
+ // [RegistrationAttribute.Public]: 'is_extensible',
24
+ // })
25
+
26
+ // export var RegistrationAttributeRegistrationProperties = Object.values(RegistrationAttributeRegistrationProperty)
27
+
28
+ // export var RegistrationPropertyRegistrationAttribute = {
29
+ // [RegistrationAttributeRegistrationProperty[RegistrationAttribute.Alone]]: RegistrationAttribute.Alone,
30
+ // [RegistrationAttributeRegistrationProperty[RegistrationAttribute.Newcomer]]: RegistrationAttribute.Newcomer,
31
+ // [RegistrationAttributeRegistrationProperty[RegistrationAttribute.Birthday]]: RegistrationAttribute.Birthday,
32
+ // [RegistrationAttributeRegistrationProperty[RegistrationAttribute.Public]]: RegistrationAttribute.Public,
33
+ // }
34
+
35
+ // /**
36
+ // * @param {RegistrationAttribute[] | Partial<Pick<RegistrationTable, 'is_alone' | 'is_birthday' | 'is_extensible' | 'is_first'>>} value
37
+ // */
38
+ // export var getRegistrationAttributes = value => {
39
+ // switch (toStringTag(value)) {
40
+ // case 'Object':
41
+ // return RegistrationAttributeRegistrationProperties
42
+ // .map(property => value[property] ? RegistrationPropertyRegistrationAttribute[property] : '')
43
+ // .filter(Boolean)
44
+
45
+ // case 'Array':
46
+ // if (!value.every(attribute => RegistrationAttributes.includes(attribute)))
47
+ // throw TypeError(
48
+ // `[Function: getRegistrationAttributes] Parameter 'value': '${value}' of type 'Array' must include only members of 'RegistrationAttributes'.`,
49
+ // )
50
+
51
+ // return value.reduce((attributes, attribute) => {
52
+ // attributes[RegistrationAttributeRegistrationProperty[attribute]] = true
53
+ // return attributes
54
+ // }, {})
55
+
56
+ // default:
57
+ // throw TypeError(
58
+ // `[Function: getRegistrationAttributes] Parameter 'value': '${value}' must be of types: 'Object', 'Array'.`,
59
+ // )
60
+ // }
61
+ // }
@@ -0,0 +1,11 @@
1
+ export const RegistrationChannel = Object.freeze({
2
+ 'vkontakte': 'vkontakte',
3
+ 'telegramBot': 'telegramBot',
4
+ 'email': 'email',
5
+ })
6
+
7
+ export const RegistrationChannels = Object.freeze([
8
+ 'vkontakte',
9
+ 'telegramBot',
10
+ 'email',
11
+ ])
@@ -0,0 +1,14 @@
1
+ export const RegistrationLineup = Object.freeze({
2
+ 'Main': 'Main',
3
+ 'Reserve': 'Reserve',
4
+ })
5
+
6
+ export const RegistrationLineups = Object.freeze([
7
+ 'Main',
8
+ 'Reserve',
9
+ ])
10
+
11
+ export const RegistrationLineupEmoji = Object.freeze({
12
+ 'Main': '🟢',
13
+ 'Reserve': '🟡',
14
+ })
@@ -0,0 +1,20 @@
1
+ export const RegistrationMailing = Object.freeze({
2
+ 'Idle': 'Idle',
3
+ 'Pending': 'Pending',
4
+ 'Delivered': 'Delivered',
5
+ 'Failed': 'Failed',
6
+ })
7
+
8
+ export const RegistrationMailings = Object.freeze([
9
+ 'Idle',
10
+ 'Pending',
11
+ 'Delivered',
12
+ 'Failed',
13
+ ])
14
+
15
+ export const RegistrationMailingColor = Object.freeze({
16
+ 'Idle': 'default',
17
+ 'Pending': 'warning',
18
+ 'Delivered': 'success',
19
+ 'Failed': 'danger',
20
+ })
@@ -0,0 +1,19 @@
1
+ export const RegistrationStatus = Object.freeze({
2
+ 'Created': 'Created',
3
+ 'Confirmed': 'Confirmed',
4
+ 'Cancelled': 'Cancelled',
5
+ })
6
+
7
+ /** @satisfies {Array<keyof typeof RegistrationStatus>} */
8
+ export const RegistrationStatuses = Object.freeze([
9
+ 'Created',
10
+ 'Confirmed',
11
+ 'Cancelled',
12
+ ])
13
+
14
+ /** @satisfies {Record<keyof typeof RegistrationStatus, string>} */
15
+ export const RegistrationStatusEmoji = Object.freeze({
16
+ 'Confirmed': '✅',
17
+ 'Created': '📝',
18
+ 'Cancelled': '❌',
19
+ })
@@ -0,0 +1,16 @@
1
+ export const Role = Object.freeze({
2
+ 'admin': 'admin',
3
+ 'organizer': 'organizer',
4
+ 'captain': 'captain',
5
+ 'player': 'player',
6
+ 'user': 'user',
7
+ 'manager': 'manager',
8
+ })
9
+
10
+ export const Roles = Object.freeze([
11
+ 'admin',
12
+ 'captain',
13
+ 'player',
14
+ 'user',
15
+ 'manager',
16
+ ])
@@ -0,0 +1,151 @@
1
+ /* --- AUTOGENERATED --- */
2
+
3
+ export const RouteCardinalities = Object.freeze( /** @type {const} */ ([
4
+ "1",
5
+ "n",
6
+ "1",
7
+ "1/1",
8
+ "1/1",
9
+ "1/1",
10
+ "1/n",
11
+ "n",
12
+ "n/1",
13
+ "n/1",
14
+ "n/n",
15
+ "1",
16
+ "n",
17
+ "n/1",
18
+ "n/1",
19
+ "n/1",
20
+ "n/n",
21
+ "1",
22
+ "1/1",
23
+ "1/1",
24
+ "1/1",
25
+ "1/1",
26
+ "1/1",
27
+ "1/n",
28
+ "1",
29
+ "n",
30
+ "1",
31
+ "n",
32
+ "1",
33
+ "n",
34
+ "1",
35
+ "1/1",
36
+ "n",
37
+ "n/1",
38
+ "1",
39
+ "1/1",
40
+ "n",
41
+ "n/1",
42
+ "n/n",
43
+ "1",
44
+ "1/1",
45
+ "1/1",
46
+ "1/n",
47
+ "1/1",
48
+ "1/1",
49
+ "1/1",
50
+ "1/1",
51
+ "1/1",
52
+ "n",
53
+ "n/1",
54
+ "n/n",
55
+ "n/1",
56
+ "n/1",
57
+ "n/1",
58
+ "n/1",
59
+ "n/1",
60
+ "1",
61
+ "1/1",
62
+ "1/1",
63
+ "1/1",
64
+ "1/1",
65
+ "1/1",
66
+ "1/1",
67
+ "1/1",
68
+ "1/1",
69
+ "1/1",
70
+ "1/1",
71
+ "n",
72
+ "n/1",
73
+ "n/1",
74
+ "n/1",
75
+ "n/1"
76
+ ]))
77
+
78
+ export const RouteCardinality = Object.freeze(/** @type {const} */ ({
79
+ "role": "1",
80
+ "roles": "n",
81
+ "user": "1",
82
+ "user/password": "1/1",
83
+ "user/role": "1/1",
84
+ "user/city": "1/1",
85
+ "user/cities": "1/n",
86
+ "users": "n",
87
+ "users/password": "n/1",
88
+ "users/role": "n/1",
89
+ "users/cities": "n/n",
90
+ "checkin": "1",
91
+ "cities": "n",
92
+ "cities/country": "n/1",
93
+ "cities/currency": "n/1",
94
+ "cities/timezone": "n/1",
95
+ "cities/venues": "n/n",
96
+ "city": "1",
97
+ "city/vk_group_token": "1/1",
98
+ "city/country": "1/1",
99
+ "city/currency": "1/1",
100
+ "city/timezone": "1/1",
101
+ "city/venue": "1/1",
102
+ "city/venues": "1/n",
103
+ "country": "1",
104
+ "countries": "n",
105
+ "currency": "1",
106
+ "currencies": "n",
107
+ "timezone": "1",
108
+ "timezones": "n",
109
+ "venue": "1",
110
+ "venue/city": "1/1",
111
+ "venues": "n",
112
+ "venues/city": "n/1",
113
+ "theme": "1",
114
+ "theme/cover": "1/1",
115
+ "themes": "n",
116
+ "themes/cover": "n/1",
117
+ "themes/games": "n/n",
118
+ "game": "1",
119
+ "game/city": "1/1",
120
+ "game/registration": "1/1",
121
+ "game/registrations": "1/n",
122
+ "game/registrations/export": "1/1",
123
+ "game/summary": "1/1",
124
+ "game/theme": "1/1",
125
+ "game/theme/cover": "1/1",
126
+ "game/venue": "1/1",
127
+ "games": "n",
128
+ "games/city": "n/1",
129
+ "games/registrations": "n/n",
130
+ "games/registrations/export": "n/1",
131
+ "games/summary": "n/1",
132
+ "games/theme": "n/1",
133
+ "games/theme/cover": "n/1",
134
+ "games/venue": "n/1",
135
+ "registration": "1",
136
+ "registration/cancellation": "1/1",
137
+ "registration/channel": "1/1",
138
+ "registration/confirmation": "1/1",
139
+ "registration/export": "1/1",
140
+ "registration/city": "1/1",
141
+ "registration/game": "1/1",
142
+ "registration/game/theme": "1/1",
143
+ "registration/game/theme/cover": "1/1",
144
+ "registration/game/venue": "1/1",
145
+ "registration/mailing": "1/1",
146
+ "registrations": "n",
147
+ "registrations/city": "n/1",
148
+ "registrations/game": "n/1",
149
+ "registrations/game/theme": "n/1",
150
+ "registrations/export": "n/1"
151
+ }))
@@ -0,0 +1,151 @@
1
+ /* --- AUTOGENERATED --- */
2
+
3
+ export const RouteParameters = Object.freeze( /** @type {const} */ ([
4
+ ":role",
5
+ "",
6
+ ":user",
7
+ ":user/:password",
8
+ ":user/:role",
9
+ ":user/:city",
10
+ ":user",
11
+ "",
12
+ ":password",
13
+ ":role",
14
+ "",
15
+ ":checkin",
16
+ "",
17
+ ":country",
18
+ ":currency",
19
+ ":timezone",
20
+ "",
21
+ ":city",
22
+ ":city/:vk_group_token",
23
+ ":city/:country",
24
+ ":city/:currency",
25
+ ":city/:timezone",
26
+ ":city/:venue",
27
+ ":city",
28
+ ":country",
29
+ "",
30
+ ":currency",
31
+ "",
32
+ ":timezone",
33
+ "",
34
+ ":venue",
35
+ ":venue/:city",
36
+ "",
37
+ ":city",
38
+ ":theme",
39
+ ":theme/:cover",
40
+ "",
41
+ ":cover",
42
+ "",
43
+ ":game",
44
+ ":game/:city",
45
+ ":game/:registration",
46
+ ":game",
47
+ ":game/:export",
48
+ ":game/:summary",
49
+ ":game/:theme",
50
+ ":game/:theme/:cover",
51
+ ":game/:venue",
52
+ "",
53
+ ":city",
54
+ "",
55
+ ":export",
56
+ ":summary",
57
+ ":theme",
58
+ ":theme/:cover",
59
+ ":venue",
60
+ ":registration",
61
+ ":registration/:cancellation",
62
+ ":registration/:channel",
63
+ ":registration/:confirmation",
64
+ ":registration/:export",
65
+ ":registration/:city",
66
+ ":registration/:game",
67
+ ":registration/:game/:theme",
68
+ ":registration/:game/:theme/:cover",
69
+ ":registration/:game/:venue",
70
+ ":registration/:mailing",
71
+ "",
72
+ ":city",
73
+ ":game",
74
+ ":game/:theme",
75
+ ":export"
76
+ ]))
77
+
78
+ export const RouteParameter = Object.freeze(/** @type {const} */ ({
79
+ "role": ":role",
80
+ "roles": "",
81
+ "user": ":user",
82
+ "user/password": ":user/:password",
83
+ "user/role": ":user/:role",
84
+ "user/city": ":user/:city",
85
+ "user/cities": ":user",
86
+ "users": "",
87
+ "users/password": ":password",
88
+ "users/role": ":role",
89
+ "users/cities": "",
90
+ "checkin": ":checkin",
91
+ "cities": "",
92
+ "cities/country": ":country",
93
+ "cities/currency": ":currency",
94
+ "cities/timezone": ":timezone",
95
+ "cities/venues": "",
96
+ "city": ":city",
97
+ "city/vk_group_token": ":city/:vk_group_token",
98
+ "city/country": ":city/:country",
99
+ "city/currency": ":city/:currency",
100
+ "city/timezone": ":city/:timezone",
101
+ "city/venue": ":city/:venue",
102
+ "city/venues": ":city",
103
+ "country": ":country",
104
+ "countries": "",
105
+ "currency": ":currency",
106
+ "currencies": "",
107
+ "timezone": ":timezone",
108
+ "timezones": "",
109
+ "venue": ":venue",
110
+ "venue/city": ":venue/:city",
111
+ "venues": "",
112
+ "venues/city": ":city",
113
+ "theme": ":theme",
114
+ "theme/cover": ":theme/:cover",
115
+ "themes": "",
116
+ "themes/cover": ":cover",
117
+ "themes/games": "",
118
+ "game": ":game",
119
+ "game/city": ":game/:city",
120
+ "game/registration": ":game/:registration",
121
+ "game/registrations": ":game",
122
+ "game/registrations/export": ":game/:export",
123
+ "game/summary": ":game/:summary",
124
+ "game/theme": ":game/:theme",
125
+ "game/theme/cover": ":game/:theme/:cover",
126
+ "game/venue": ":game/:venue",
127
+ "games": "",
128
+ "games/city": ":city",
129
+ "games/registrations": "",
130
+ "games/registrations/export": ":export",
131
+ "games/summary": ":summary",
132
+ "games/theme": ":theme",
133
+ "games/theme/cover": ":theme/:cover",
134
+ "games/venue": ":venue",
135
+ "registration": ":registration",
136
+ "registration/cancellation": ":registration/:cancellation",
137
+ "registration/channel": ":registration/:channel",
138
+ "registration/confirmation": ":registration/:confirmation",
139
+ "registration/export": ":registration/:export",
140
+ "registration/city": ":registration/:city",
141
+ "registration/game": ":registration/:game",
142
+ "registration/game/theme": ":registration/:game/:theme",
143
+ "registration/game/theme/cover": ":registration/:game/:theme/:cover",
144
+ "registration/game/venue": ":registration/:game/:venue",
145
+ "registration/mailing": ":registration/:mailing",
146
+ "registrations": "",
147
+ "registrations/city": ":city",
148
+ "registrations/game": ":game",
149
+ "registrations/game/theme": ":game/:theme",
150
+ "registrations/export": ":export"
151
+ }))