@shakerquiz/utilities 0.5.222 → 0.6.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/package.json +3 -5
- package/source/entities/blend.js +5 -0
- package/source/entities/cardinality-routes.js +82 -0
- package/source/entities/cardinality.js +8 -0
- package/source/entities/category.js +4 -0
- package/source/entities/city-affilation.js +16 -0
- package/source/entities/city-chatapp-version.js +9 -0
- package/source/entities/game-status.js +110 -0
- package/source/{enumerations → entities}/gender.js +7 -0
- package/source/entities/icon.js +654 -0
- package/source/entities/method.js +22 -0
- package/source/entities/mode.js +14 -0
- package/source/entities/network.js +9 -0
- package/source/entities/numerosity.js +5 -0
- package/source/entities/phase.js +23 -0
- package/source/entities/quantifier.js +41 -0
- package/source/entities/registration-attribute.js +68 -0
- package/source/entities/registration-channel.js +17 -0
- package/source/entities/registration-lineup.js +19 -0
- package/source/entities/registration-mailing.js +20 -0
- package/source/{enumerations/registration/status.js → entities/registration-status.js} +1 -13
- package/source/entities/role.js +25 -0
- package/source/entities/route-cardinality-route.js +112 -0
- package/source/entities/route-cardinality.js +175 -0
- package/source/entities/route-pathname-params.js +12 -0
- package/source/entities/route-pathname.js +70 -0
- package/source/entities/route-service.js +65 -0
- package/source/entities/route.js +70 -0
- package/source/entities/service-routes.js +34 -0
- package/source/entities/service-runtime.js +22 -0
- package/source/entities/service.js +39 -0
- package/source/entities/theme-status.js +14 -0
- package/source/entities/venue-audience.js +14 -0
- package/source/entities/venue-status.js +15 -0
- package/source/helpers/hydrate-route-pathname.js +32 -0
- package/source/helpers/string-tag.js +7 -0
- package/source/helpers/tag.js +37 -0
- package/source/index.js +41 -38
- package/source/prototypes/reflection.js +53 -0
- package/source/enumerations/blend.js +0 -11
- package/source/enumerations/cardinality.js +0 -13
- package/source/enumerations/category.js +0 -9
- package/source/enumerations/entities/affilation.js +0 -29
- package/source/enumerations/entities/game-status.js +0 -122
- package/source/enumerations/entities/registration-attribute.js +0 -83
- package/source/enumerations/entities/registration-channel.js +0 -26
- package/source/enumerations/entities/registration-mailing.js +0 -24
- package/source/enumerations/entities/role.js +0 -40
- package/source/enumerations/entities/version.js +0 -23
- package/source/enumerations/icon.js +0 -655
- package/source/enumerations/method.js +0 -31
- package/source/enumerations/mode.js +0 -48
- package/source/enumerations/network.js +0 -9
- package/source/enumerations/numerosity.js +0 -5
- package/source/enumerations/phase.js +0 -31
- package/source/enumerations/quantifier.js +0 -87
- package/source/enumerations/registration/lineup.js +0 -33
- package/source/enumerations/route.js +0 -515
- package/source/enumerations/service.js +0 -62
- package/source/enumerations/theme/status.js +0 -27
- package/source/enumerations/venue/audience.js +0 -27
- package/source/enumerations/venue/status.js +0 -27
- package/source/functions/hydrate-route-params.js +0 -18
- package/source/functions/hydrate-route-pathname.js +0 -26
- package/source/functions/string-tag.js +0 -5
- package/source/functions/tag.js +0 -37
- /package/source/{enumerations → entities}/constants.js +0 -0
- /package/source/{enumerations → entities}/display.js +0 -0
- /package/source/{enumerations → entities}/pattern.js +0 -0
- /package/source/{enumerations → entities}/runtime.js +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Related specifications:
|
|
3
|
+
* - HTTP/1.1 (Core Methods): {@link https://datatracker.ietf.org/doc/html/rfc7231#section-4.3}
|
|
4
|
+
* - PATCH: {@link https://datatracker.ietf.org/doc/html/rfc5789}
|
|
5
|
+
*/
|
|
6
|
+
export const Method = Object.freeze({
|
|
7
|
+
'DELETE': 'DELETE',
|
|
8
|
+
'GET': 'GET',
|
|
9
|
+
'OPTIONS': 'OPTIONS',
|
|
10
|
+
'PATCH': 'PATCH',
|
|
11
|
+
'POST': 'POST',
|
|
12
|
+
'PUT': 'PUT',
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
export const Methods = Object.freeze([
|
|
16
|
+
'DELETE',
|
|
17
|
+
'GET',
|
|
18
|
+
'OPTIONS',
|
|
19
|
+
'PATCH',
|
|
20
|
+
'POST',
|
|
21
|
+
'PUT',
|
|
22
|
+
])
|
|
@@ -0,0 +1,14 @@
|
|
|
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
|
+
])
|
|
10
|
+
|
|
11
|
+
export const ModeIcon = Object.freeze({
|
|
12
|
+
'Known': 'hero/outline/check',
|
|
13
|
+
'Unknown': 'hero/outline/no-symbol',
|
|
14
|
+
})
|
|
@@ -0,0 +1,23 @@
|
|
|
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
|
+
])
|
|
16
|
+
|
|
17
|
+
export const PhaseIcon = Object.freeze({
|
|
18
|
+
'Idle': 'hero/outline/clock',
|
|
19
|
+
'Loading': 'hero/outline/clock',
|
|
20
|
+
'Loaded': 'hero/outline/check',
|
|
21
|
+
'Aborted': 'hero/outline/signal-slash',
|
|
22
|
+
'Failed': 'hero/outline/x-mark',
|
|
23
|
+
})
|
|
@@ -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,68 @@
|
|
|
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 RegistrationAttributeIcon = Object.freeze({
|
|
13
|
+
[RegistrationAttribute.Alone]: 'hero/outline/user',
|
|
14
|
+
[RegistrationAttribute.Newcomer]: 'hero/outline/sparkles',
|
|
15
|
+
[RegistrationAttribute.Birthday]: 'hero/outline/cake',
|
|
16
|
+
[RegistrationAttribute.Public]: 'hero/outline/user-plus',
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
export const RegistrationAttributeEmoji = Object.freeze({
|
|
20
|
+
[RegistrationAttribute.Alone]: '👤',
|
|
21
|
+
[RegistrationAttribute.Newcomer]: '✨',
|
|
22
|
+
[RegistrationAttribute.Birthday]: '🎂',
|
|
23
|
+
[RegistrationAttribute.Public]: '🫂',
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
// export var RegistrationAttributeRegistrationProperty = /** @type {const} */ ({
|
|
27
|
+
// [RegistrationAttribute.Alone]: 'is_alone',
|
|
28
|
+
// [RegistrationAttribute.Newcomer]: 'is_first',
|
|
29
|
+
// [RegistrationAttribute.Birthday]: 'is_birthday',
|
|
30
|
+
// [RegistrationAttribute.Public]: 'is_extensible',
|
|
31
|
+
// })
|
|
32
|
+
|
|
33
|
+
// export var RegistrationAttributeRegistrationProperties = Object.values(RegistrationAttributeRegistrationProperty)
|
|
34
|
+
|
|
35
|
+
// export var RegistrationPropertyRegistrationAttribute = {
|
|
36
|
+
// [RegistrationAttributeRegistrationProperty[RegistrationAttribute.Alone]]: RegistrationAttribute.Alone,
|
|
37
|
+
// [RegistrationAttributeRegistrationProperty[RegistrationAttribute.Newcomer]]: RegistrationAttribute.Newcomer,
|
|
38
|
+
// [RegistrationAttributeRegistrationProperty[RegistrationAttribute.Birthday]]: RegistrationAttribute.Birthday,
|
|
39
|
+
// [RegistrationAttributeRegistrationProperty[RegistrationAttribute.Public]]: RegistrationAttribute.Public,
|
|
40
|
+
// }
|
|
41
|
+
|
|
42
|
+
// /**
|
|
43
|
+
// * @param {RegistrationAttribute[] | Partial<Pick<RegistrationTable, 'is_alone' | 'is_birthday' | 'is_extensible' | 'is_first'>>} value
|
|
44
|
+
// */
|
|
45
|
+
// export var getRegistrationAttributes = value => {
|
|
46
|
+
// switch (toStringTag(value)) {
|
|
47
|
+
// case 'Object':
|
|
48
|
+
// return RegistrationAttributeRegistrationProperties
|
|
49
|
+
// .map(property => value[property] ? RegistrationPropertyRegistrationAttribute[property] : '')
|
|
50
|
+
// .filter(Boolean)
|
|
51
|
+
|
|
52
|
+
// case 'Array':
|
|
53
|
+
// if (!value.every(attribute => RegistrationAttributes.includes(attribute)))
|
|
54
|
+
// throw TypeError(
|
|
55
|
+
// `[Function: getRegistrationAttributes] Parameter 'value': '${value}' of type 'Array' must include only members of 'RegistrationAttributes'.`,
|
|
56
|
+
// )
|
|
57
|
+
|
|
58
|
+
// return value.reduce((attributes, attribute) => {
|
|
59
|
+
// attributes[RegistrationAttributeRegistrationProperty[attribute]] = true
|
|
60
|
+
// return attributes
|
|
61
|
+
// }, {})
|
|
62
|
+
|
|
63
|
+
// default:
|
|
64
|
+
// throw TypeError(
|
|
65
|
+
// `[Function: getRegistrationAttributes] Parameter 'value': '${value}' must be of types: 'Object', 'Array'.`,
|
|
66
|
+
// )
|
|
67
|
+
// }
|
|
68
|
+
// }
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|
+
])
|
|
12
|
+
|
|
13
|
+
export const RegistrationChannelIcon = Object.freeze({
|
|
14
|
+
'vkontakte': 'brand/solid/vk',
|
|
15
|
+
'telegramBot': 'brand/solid/telegram',
|
|
16
|
+
'email': 'hero/solid/at-symbol',
|
|
17
|
+
})
|
|
@@ -0,0 +1,19 @@
|
|
|
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 RegistrationLineupIcon = Object.freeze({
|
|
12
|
+
'Main': 'hero/outline/user-circle',
|
|
13
|
+
'Reserve': 'hero/outline/pause-circle',
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
export const RegistrationLineupEmoji = Object.freeze({
|
|
17
|
+
'Main': '🟢',
|
|
18
|
+
'Reserve': '🟡',
|
|
19
|
+
})
|
|
@@ -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
|
+
})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export const RegistrationStatus = Object.freeze({
|
|
2
|
-
'Confirmed': 'Confirmed',
|
|
3
2
|
'Created': 'Created',
|
|
3
|
+
'Confirmed': 'Confirmed',
|
|
4
4
|
'Cancelled': 'Cancelled',
|
|
5
5
|
})
|
|
6
6
|
|
|
@@ -11,13 +11,6 @@ export const RegistrationStatuses = Object.freeze([
|
|
|
11
11
|
'Cancelled',
|
|
12
12
|
])
|
|
13
13
|
|
|
14
|
-
/** @satisfies {Record<keyof typeof RegistrationStatus, string>} */
|
|
15
|
-
export const RegistrationStatusTitle = Object.freeze({
|
|
16
|
-
'Confirmed': 'Подтверждена',
|
|
17
|
-
'Created': 'Создана',
|
|
18
|
-
'Cancelled': 'Отменена',
|
|
19
|
-
})
|
|
20
|
-
|
|
21
14
|
/** @satisfies {Record<keyof typeof RegistrationStatus, string>} */
|
|
22
15
|
export const RegistrationStatusIcon = Object.freeze({
|
|
23
16
|
'Confirmed': 'hero/outline/check-circle',
|
|
@@ -31,8 +24,3 @@ export const RegistrationStatusEmoji = Object.freeze({
|
|
|
31
24
|
'Created': '📝',
|
|
32
25
|
'Cancelled': '❌',
|
|
33
26
|
})
|
|
34
|
-
|
|
35
|
-
export const inferRegistrationStatus = Object.freeze(
|
|
36
|
-
/** @returns {keyof typeof RegistrationStatus | 'Unknown'} */
|
|
37
|
-
x => RegistrationStatus[x?.status ?? x] ?? 'Unknown',
|
|
38
|
-
)
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
])
|
|
17
|
+
|
|
18
|
+
export const RoleIcon = Object.freeze({
|
|
19
|
+
'admin': 'hero/outline/user',
|
|
20
|
+
'organizer': 'hero/outline/user',
|
|
21
|
+
'captain': 'hero/outline/user',
|
|
22
|
+
'player': 'hero/outline/user',
|
|
23
|
+
'user': 'hero/outline/user',
|
|
24
|
+
'manager': 'hero/outline/user',
|
|
25
|
+
})
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { Cardinality } from './cardinality.js'
|
|
2
|
+
import { Route } from './route.js'
|
|
3
|
+
|
|
4
|
+
export const RouteCardinalityRoute = Object.freeze({
|
|
5
|
+
[Route['cities']]: {
|
|
6
|
+
[Cardinality['1']]: Route['city'],
|
|
7
|
+
},
|
|
8
|
+
|
|
9
|
+
[Route['cities/country']]: {
|
|
10
|
+
[Cardinality['1-1']]: Route['city/country'],
|
|
11
|
+
},
|
|
12
|
+
|
|
13
|
+
[Route['cities/currency']]: {
|
|
14
|
+
[Cardinality['1-1']]: Route['city/currency'],
|
|
15
|
+
},
|
|
16
|
+
|
|
17
|
+
[Route['cities/timezone']]: {
|
|
18
|
+
[Cardinality['1-1']]: Route['city/timezone'],
|
|
19
|
+
},
|
|
20
|
+
|
|
21
|
+
[Route['cities/venues']]: {
|
|
22
|
+
[Cardinality['1-N']]: Route['city/venues'],
|
|
23
|
+
},
|
|
24
|
+
|
|
25
|
+
[Route['countries']]: {
|
|
26
|
+
[Cardinality['1']]: Route['country'],
|
|
27
|
+
},
|
|
28
|
+
|
|
29
|
+
[Route['currencies']]: {
|
|
30
|
+
[Cardinality['1']]: Route['currency'],
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
[Route['games']]: {
|
|
34
|
+
[Cardinality['1']]: Route['game'],
|
|
35
|
+
},
|
|
36
|
+
|
|
37
|
+
[Route['games/city']]: {
|
|
38
|
+
[Cardinality['1-1']]: Route['game/city'],
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
[Route['games/registrations']]: {
|
|
42
|
+
[Cardinality['1']]: Route['game/registrations'],
|
|
43
|
+
},
|
|
44
|
+
|
|
45
|
+
[Route['games/summary']]: {
|
|
46
|
+
[Cardinality['1']]: Route['game/summary'],
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
[Route['games/theme']]: {
|
|
50
|
+
[Cardinality['1-1']]: Route['game/theme'],
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
[Route['games/venue']]: {
|
|
54
|
+
[Cardinality['1-1']]: Route['game/venue'],
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
[Route['registrations']]: {
|
|
58
|
+
[Cardinality['1']]: Route['registration'],
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
[Route['registrations/city']]: {
|
|
62
|
+
[Cardinality['1-1']]: Route['registration/city'],
|
|
63
|
+
},
|
|
64
|
+
|
|
65
|
+
[Route['registrations/game']]: {
|
|
66
|
+
[Cardinality['1-1']]: Route['registration/game'],
|
|
67
|
+
},
|
|
68
|
+
|
|
69
|
+
[Route['registrations/game/theme']]: {
|
|
70
|
+
[Cardinality['1-1']]: Route['registration/game/theme'],
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
[Route['roles']]: {
|
|
74
|
+
[Cardinality['1']]: Route['role'],
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
[Route['themes']]: {
|
|
78
|
+
[Cardinality['1']]: Route['theme'],
|
|
79
|
+
},
|
|
80
|
+
|
|
81
|
+
[Route['themes/cover']]: {
|
|
82
|
+
[Cardinality['1']]: Route['theme/cover'],
|
|
83
|
+
},
|
|
84
|
+
|
|
85
|
+
[Route['timezones']]: {
|
|
86
|
+
[Cardinality['1']]: Route['timezone'],
|
|
87
|
+
},
|
|
88
|
+
|
|
89
|
+
[Route['user/cities']]: {
|
|
90
|
+
[Cardinality['1']]: Route['user/cities'],
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
[Route['users']]: {
|
|
94
|
+
[Cardinality['1']]: Route['user'],
|
|
95
|
+
},
|
|
96
|
+
|
|
97
|
+
[Route['users/cities']]: {
|
|
98
|
+
[Cardinality['1']]: Route['user/cities'],
|
|
99
|
+
},
|
|
100
|
+
|
|
101
|
+
[Route['users/role']]: {
|
|
102
|
+
[Cardinality['1']]: Route['user/role'],
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
[Route['venues']]: {
|
|
106
|
+
[Cardinality['1']]: Route['venue'],
|
|
107
|
+
},
|
|
108
|
+
|
|
109
|
+
[Route['venues/city']]: {
|
|
110
|
+
[Cardinality['1']]: Route['venue/city'],
|
|
111
|
+
},
|
|
112
|
+
})
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { Cardinality } from './cardinality.js'
|
|
2
|
+
import { Route } from './route.js'
|
|
3
|
+
|
|
4
|
+
export const RouteCardinality = Object.freeze({
|
|
5
|
+
[Route['checkin']]: Cardinality['1'],
|
|
6
|
+
[Route['cities']]: Cardinality['N'],
|
|
7
|
+
[Route['cities/country']]: Cardinality['N-1'],
|
|
8
|
+
[Route['cities/currency']]: Cardinality['N-1'],
|
|
9
|
+
[Route['cities/timezone']]: Cardinality['N-1'],
|
|
10
|
+
[Route['cities/venues']]: Cardinality['N-N'],
|
|
11
|
+
[Route['city']]: Cardinality['1'],
|
|
12
|
+
[Route['city/country']]: Cardinality['1-1'],
|
|
13
|
+
[Route['city/currency']]: Cardinality['1-1'],
|
|
14
|
+
[Route['city/timezone']]: Cardinality['1-1'],
|
|
15
|
+
[Route['city/venue']]: Cardinality['1-1'],
|
|
16
|
+
[Route['city/venues']]: Cardinality['1-N'],
|
|
17
|
+
[Route['countries']]: Cardinality['N'],
|
|
18
|
+
[Route['country']]: Cardinality['1'],
|
|
19
|
+
[Route['currencies']]: Cardinality['N'],
|
|
20
|
+
[Route['currency']]: Cardinality['1'],
|
|
21
|
+
[Route['game']]: Cardinality['1'],
|
|
22
|
+
[Route['game/city']]: Cardinality['1-1'],
|
|
23
|
+
[Route['game/registration']]: Cardinality['1-1'],
|
|
24
|
+
[Route['game/registrations']]: Cardinality['1-N'],
|
|
25
|
+
[Route['game/registrations/export']]: Cardinality['1'],
|
|
26
|
+
[Route['game/summary']]: Cardinality['1-1'],
|
|
27
|
+
[Route['game/theme']]: Cardinality['1-1'],
|
|
28
|
+
[Route['game/venue']]: Cardinality['1-1'],
|
|
29
|
+
[Route['games']]: Cardinality['N'],
|
|
30
|
+
[Route['games/city']]: Cardinality['N-1'],
|
|
31
|
+
[Route['games/registrations']]: Cardinality['N-N'],
|
|
32
|
+
[Route['games/registrations/export']]: Cardinality['1'],
|
|
33
|
+
[Route['games/summary']]: Cardinality['N-1'],
|
|
34
|
+
[Route['games/theme']]: Cardinality['N-1'],
|
|
35
|
+
[Route['games/venue']]: Cardinality['N-1'],
|
|
36
|
+
[Route['registration']]: Cardinality['1'],
|
|
37
|
+
[Route['registration/city']]: Cardinality['1-1'],
|
|
38
|
+
[Route['registration/game/theme']]: Cardinality['1-1'],
|
|
39
|
+
[Route['registration/export']]: Cardinality['1'],
|
|
40
|
+
[Route['registrations']]: Cardinality['N'],
|
|
41
|
+
[Route['registrations/city']]: Cardinality['N-1'],
|
|
42
|
+
[Route['registrations/game']]: Cardinality['N-1'],
|
|
43
|
+
[Route['registrations/game/theme']]: Cardinality['N-1'],
|
|
44
|
+
[Route['registrations/export']]: Cardinality['1'],
|
|
45
|
+
[Route['role']]: Cardinality['1'],
|
|
46
|
+
[Route['roles']]: Cardinality['N'],
|
|
47
|
+
[Route['theme']]: Cardinality['1'],
|
|
48
|
+
[Route['theme/cover']]: Cardinality['1-1'],
|
|
49
|
+
[Route['themes']]: Cardinality['N'],
|
|
50
|
+
[Route['themes/cover']]: Cardinality['N-1'],
|
|
51
|
+
[Route['timezone']]: Cardinality['1'],
|
|
52
|
+
[Route['timezones']]: Cardinality['N'],
|
|
53
|
+
[Route['user']]: Cardinality['1'],
|
|
54
|
+
[Route['user/cities']]: Cardinality['1-N'],
|
|
55
|
+
[Route['user/city']]: Cardinality['1-1'],
|
|
56
|
+
[Route['user/password']]: Cardinality['1-1'],
|
|
57
|
+
[Route['user/role']]: Cardinality['1-1'],
|
|
58
|
+
[Route['users']]: Cardinality['N'],
|
|
59
|
+
[Route['users/cities']]: Cardinality['N-N'],
|
|
60
|
+
[Route['users/role']]: Cardinality['N-1'],
|
|
61
|
+
[Route['venue']]: Cardinality['1'],
|
|
62
|
+
[Route['venue/city']]: Cardinality['1-1'],
|
|
63
|
+
[Route['venues']]: Cardinality['N'],
|
|
64
|
+
[Route['venues/city']]: Cardinality['N-1'],
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
export const RouteCardinalityRoute = Object.freeze({
|
|
68
|
+
[Route['cities']]: {
|
|
69
|
+
[Cardinality['1']]: Route['city'],
|
|
70
|
+
},
|
|
71
|
+
|
|
72
|
+
[Route['cities/country']]: {
|
|
73
|
+
[Cardinality['1-1']]: Route['city/country'],
|
|
74
|
+
},
|
|
75
|
+
|
|
76
|
+
[Route['cities/currency']]: {
|
|
77
|
+
[Cardinality['1-1']]: Route['city/currency'],
|
|
78
|
+
},
|
|
79
|
+
|
|
80
|
+
[Route['cities/timezone']]: {
|
|
81
|
+
[Cardinality['1-1']]: Route['city/timezone'],
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
[Route['cities/venues']]: {
|
|
85
|
+
[Cardinality['1-N']]: Route['city/venues'],
|
|
86
|
+
},
|
|
87
|
+
|
|
88
|
+
[Route['countries']]: {
|
|
89
|
+
[Cardinality['1']]: Route['country'],
|
|
90
|
+
},
|
|
91
|
+
|
|
92
|
+
[Route['currencies']]: {
|
|
93
|
+
[Cardinality['1']]: Route['currency'],
|
|
94
|
+
},
|
|
95
|
+
|
|
96
|
+
[Route['games']]: {
|
|
97
|
+
[Cardinality['1']]: Route['game'],
|
|
98
|
+
},
|
|
99
|
+
|
|
100
|
+
[Route['games/city']]: {
|
|
101
|
+
[Cardinality['1-1']]: Route['game/city'],
|
|
102
|
+
},
|
|
103
|
+
|
|
104
|
+
[Route['games/registrations']]: {
|
|
105
|
+
[Cardinality['1']]: Route['game/registrations'],
|
|
106
|
+
},
|
|
107
|
+
|
|
108
|
+
[Route['games/summary']]: {
|
|
109
|
+
[Cardinality['1']]: Route['game/summary'],
|
|
110
|
+
},
|
|
111
|
+
|
|
112
|
+
[Route['games/theme']]: {
|
|
113
|
+
[Cardinality['1-1']]: Route['game/theme'],
|
|
114
|
+
},
|
|
115
|
+
|
|
116
|
+
[Route['games/venue']]: {
|
|
117
|
+
[Cardinality['1-1']]: Route['game/venue'],
|
|
118
|
+
},
|
|
119
|
+
|
|
120
|
+
[Route['registrations']]: {
|
|
121
|
+
[Cardinality['1']]: Route['registration'],
|
|
122
|
+
},
|
|
123
|
+
|
|
124
|
+
[Route['registrations/city']]: {
|
|
125
|
+
[Cardinality['1-1']]: Route['registration/city'],
|
|
126
|
+
},
|
|
127
|
+
|
|
128
|
+
[Route['registrations/game']]: {
|
|
129
|
+
[Cardinality['1-1']]: Route['registration/game'],
|
|
130
|
+
},
|
|
131
|
+
|
|
132
|
+
[Route['registrations/game/theme']]: {
|
|
133
|
+
[Cardinality['1-1']]: Route['registration/game/theme'],
|
|
134
|
+
},
|
|
135
|
+
|
|
136
|
+
[Route['roles']]: {
|
|
137
|
+
[Cardinality['1']]: Route['role'],
|
|
138
|
+
},
|
|
139
|
+
|
|
140
|
+
[Route['themes']]: {
|
|
141
|
+
[Cardinality['1']]: Route['theme'],
|
|
142
|
+
},
|
|
143
|
+
|
|
144
|
+
[Route['themes/cover']]: {
|
|
145
|
+
[Cardinality['1']]: Route['theme/cover'],
|
|
146
|
+
},
|
|
147
|
+
|
|
148
|
+
[Route['timezones']]: {
|
|
149
|
+
[Cardinality['1']]: Route['timezone'],
|
|
150
|
+
},
|
|
151
|
+
|
|
152
|
+
[Route['user/cities']]: {
|
|
153
|
+
[Cardinality['1']]: Route['user/cities'],
|
|
154
|
+
},
|
|
155
|
+
|
|
156
|
+
[Route['users']]: {
|
|
157
|
+
[Cardinality['1']]: Route['user'],
|
|
158
|
+
},
|
|
159
|
+
|
|
160
|
+
[Route['users/cities']]: {
|
|
161
|
+
[Cardinality['1']]: Route['user/cities'],
|
|
162
|
+
},
|
|
163
|
+
|
|
164
|
+
[Route['users/role']]: {
|
|
165
|
+
[Cardinality['1']]: Route['user/role'],
|
|
166
|
+
},
|
|
167
|
+
|
|
168
|
+
[Route['venues']]: {
|
|
169
|
+
[Cardinality['1']]: Route['venue'],
|
|
170
|
+
},
|
|
171
|
+
|
|
172
|
+
[Route['venues/city']]: {
|
|
173
|
+
[Cardinality['1']]: Route['venue/city'],
|
|
174
|
+
},
|
|
175
|
+
})
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RoutePathname } from './route-pathname.js'
|
|
2
|
+
import { Route } from './route.js'
|
|
3
|
+
|
|
4
|
+
export const RoutePathnameParams = (() => {
|
|
5
|
+
/** @type {Record<keyof typeof Route, string[]>} */
|
|
6
|
+
let object = {}
|
|
7
|
+
|
|
8
|
+
for (const route in RoutePathname)
|
|
9
|
+
object[route] = RoutePathname[route].match(/(:(\w)+)/g)
|
|
10
|
+
|
|
11
|
+
return Object.freeze(object)
|
|
12
|
+
})()
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Route } from './route.js'
|
|
2
|
+
|
|
3
|
+
export const RoutePathname = Object.freeze({
|
|
4
|
+
[Route['checkin']]: 'checkin',
|
|
5
|
+
[Route['cities']]: 'cities',
|
|
6
|
+
[Route['cities/country']]: 'cities/country',
|
|
7
|
+
[Route['cities/currency']]: 'cities/currency',
|
|
8
|
+
[Route['cities/timezone']]: 'cities/timezone',
|
|
9
|
+
[Route['cities/venues']]: 'cities/venues',
|
|
10
|
+
[Route['city']]: 'city/:city',
|
|
11
|
+
[Route['city/country']]: 'city/:city/country',
|
|
12
|
+
[Route['city/currency']]: 'city/:city/currency',
|
|
13
|
+
[Route['city/timezone']]: 'city/:city/timezone',
|
|
14
|
+
[Route['city/venue']]: 'city/:city/venue/:venue',
|
|
15
|
+
[Route['city/venues']]: 'city/:city/venues',
|
|
16
|
+
[Route['countries']]: 'countries',
|
|
17
|
+
[Route['country']]: 'country/:country',
|
|
18
|
+
[Route['currencies']]: 'currencies',
|
|
19
|
+
[Route['currency']]: 'currency/:currency',
|
|
20
|
+
[Route['game']]: 'game/:game',
|
|
21
|
+
[Route['game/city']]: 'game/:game/city',
|
|
22
|
+
[Route['game/registration']]: 'game/:game/registration/:registration',
|
|
23
|
+
[Route['game/registrations']]: 'game/:game/registrations',
|
|
24
|
+
[Route['game/registrations/export']]: 'game/:game/registrations/export',
|
|
25
|
+
[Route['game/summary']]: 'game/:game/summary',
|
|
26
|
+
[Route['game/theme']]: 'game/:game/theme',
|
|
27
|
+
[Route['game/venue']]: 'game/:game/venue',
|
|
28
|
+
[Route['games']]: 'games',
|
|
29
|
+
[Route['games/city']]: 'games/city',
|
|
30
|
+
[Route['games/registrations']]: 'games/registrations',
|
|
31
|
+
[Route['games/registrations/export']]: 'games/registrations/export',
|
|
32
|
+
[Route['games/summary']]: 'games/summary',
|
|
33
|
+
[Route['games/theme']]: 'games/theme',
|
|
34
|
+
[Route['games/venue']]: 'games/venue',
|
|
35
|
+
[Route['registration']]: 'registration/:registration',
|
|
36
|
+
[Route['registration/cancellation']]: 'registration/:registration/cancellation',
|
|
37
|
+
[Route['registration/channel']]: 'registration/:registration/channel',
|
|
38
|
+
[Route['registration/confirmation']]: 'registration/:registration/confirmation',
|
|
39
|
+
[Route['registration/export']]: 'registration/:registration/export',
|
|
40
|
+
[Route['registration/city']]: 'registration/:registration/city',
|
|
41
|
+
[Route['registration/game']]: 'registration/:registration/game',
|
|
42
|
+
[Route['registration/game/theme']]: 'registration/:registration/game/theme',
|
|
43
|
+
[Route['registration/mailing']]: 'registration/:registration/mailing',
|
|
44
|
+
[Route['registrations']]: 'registrations',
|
|
45
|
+
[Route['registrations/city']]: 'registrations/city',
|
|
46
|
+
[Route['registrations/game']]: 'registrations/game',
|
|
47
|
+
[Route['registrations/game/theme']]: 'registrations/game/theme',
|
|
48
|
+
[Route['registrations/export']]: 'registrations/export',
|
|
49
|
+
[Route['role']]: 'role/:role',
|
|
50
|
+
[Route['roles']]: 'roles',
|
|
51
|
+
[Route['theme']]: 'theme/:theme',
|
|
52
|
+
[Route['theme/cover']]: 'theme/:theme/cover',
|
|
53
|
+
[Route['themes']]: 'themes',
|
|
54
|
+
[Route['themes/cover']]: 'themes/cover',
|
|
55
|
+
[Route['timezone']]: 'timezone/:timezone',
|
|
56
|
+
[Route['timezones']]: 'timezones',
|
|
57
|
+
[Route['user']]: 'user/:user',
|
|
58
|
+
[Route['user/cities']]: 'user/:user/cities',
|
|
59
|
+
[Route['user/city']]: 'user/:user/city/:city',
|
|
60
|
+
[Route['user/password']]: 'user/:user/password',
|
|
61
|
+
[Route['user/role']]: 'user/:user/role',
|
|
62
|
+
[Route['users']]: 'users',
|
|
63
|
+
[Route['users/cities']]: 'users/cities',
|
|
64
|
+
[Route['users/password']]: 'users/password',
|
|
65
|
+
[Route['users/role']]: 'users/role',
|
|
66
|
+
[Route['venue']]: 'venue/:venue',
|
|
67
|
+
[Route['venue/city']]: 'venue/:venue/city',
|
|
68
|
+
[Route['venues']]: 'venues',
|
|
69
|
+
[Route['venues/city']]: 'venues/city',
|
|
70
|
+
})
|