@live-change/access-control-frontend 0.9.131 → 0.9.133
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/front/locales/en.json +39 -0
- package/front/locales/pl.json +36 -0
- package/front/src/components/InsufficientAccess.vue +4 -2
- package/front/src/configuration/AccessControl.vue +3 -1
- package/front/src/configuration/AccessInvitations.vue +4 -2
- package/front/src/configuration/AccessList.vue +4 -2
- package/front/src/configuration/AccessRequests.vue +8 -6
- package/front/src/configuration/PublicAccess.vue +3 -1
- package/front/src/invite/InviteDialog.vue +18 -18
- package/index.js +2 -1
- package/package.json +19 -19
package/front/locales/en.json
CHANGED
|
@@ -1,4 +1,43 @@
|
|
|
1
1
|
{
|
|
2
|
+
"access": {
|
|
3
|
+
"notAuthorized": "Not authorized",
|
|
4
|
+
"insufficientPrivileges": "You do not have sufficient privileges to use this feature of this object.",
|
|
5
|
+
"accessRequests": "Access Requests",
|
|
6
|
+
"accessInvitations": "Access Invitations",
|
|
7
|
+
"authorized": "Authorized",
|
|
8
|
+
"accessRequestSaved": "Access request saved",
|
|
9
|
+
"accessRequestDeleted": "Access Request Deleted",
|
|
10
|
+
"accessRequestAccepted": "Access Request accepted",
|
|
11
|
+
"confirmDeleteAccessRequest": "Do you want to delete user \"{name}\" access request?",
|
|
12
|
+
"accessInviteSaved": "Access invite saved",
|
|
13
|
+
"invitationDeleted": "Invitation Deleted",
|
|
14
|
+
"confirmDeleteInvitation": "Do you want to delete invitation for \"{name}\"?",
|
|
15
|
+
"accessSaved": "Access saved",
|
|
16
|
+
"accessRevoked": "Access Revoked",
|
|
17
|
+
"confirmRevokeAccess": "Do you want to revoke access for \"{name}\"?",
|
|
18
|
+
"publicAccessSaved": "Public access saved"
|
|
19
|
+
},
|
|
20
|
+
"invite": {
|
|
21
|
+
"inviteUserWithEmail": "Invite user with email",
|
|
22
|
+
"inviteWithEmail": "Invite with email",
|
|
23
|
+
"singleUser": "Single user",
|
|
24
|
+
"multipleUsers": "Multiple users",
|
|
25
|
+
"emailAddress": "Email address",
|
|
26
|
+
"emailAddressesMultiple": "Email addresses (newline or comma separated)",
|
|
27
|
+
"roles": "Roles",
|
|
28
|
+
"messageOptional": "Message ( optional )",
|
|
29
|
+
"inviteEmail": "Invite email",
|
|
30
|
+
"inviteEmails": "Invite emails",
|
|
31
|
+
"invitationSent": "Invitation sent!",
|
|
32
|
+
"invitationsWereSent": "Invitations were sent!",
|
|
33
|
+
"invitationWillBeSent": "Invitation will be sent!",
|
|
34
|
+
"inviteMultipleEmails": "Invite {count} emails",
|
|
35
|
+
"inviteSingleEmail": "Invite {email}"
|
|
36
|
+
},
|
|
37
|
+
"common": {
|
|
38
|
+
"rejected": "Rejected",
|
|
39
|
+
"rejectedDetail": "You have rejected"
|
|
40
|
+
},
|
|
2
41
|
"notifications": {
|
|
3
42
|
"types": {
|
|
4
43
|
"accessControl_Invitation": {
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"access": {
|
|
3
|
+
"notAuthorized": "Brak autoryzacji",
|
|
4
|
+
"insufficientPrivileges": "Nie masz wystarczających uprawnień do korzystania z tej funkcji tego obiektu.",
|
|
5
|
+
"accessRequests": "Prośby o dostęp",
|
|
6
|
+
"accessInvitations": "Zaproszenia dostępu",
|
|
7
|
+
"authorized": "Autoryzowani",
|
|
8
|
+
"accessRequestSaved": "Prośba o dostęp zapisana",
|
|
9
|
+
"accessRequestDeleted": "Prośba o dostęp usunięta",
|
|
10
|
+
"accessRequestAccepted": "Prośba o dostęp zaakceptowana",
|
|
11
|
+
"confirmDeleteAccessRequest": "Czy chcesz usunąć prośbę o dostęp użytkownika \"{name}\"?",
|
|
12
|
+
"accessInviteSaved": "Zaproszenie dostępu zapisane",
|
|
13
|
+
"publicAccessSaved": "Dostęp publiczny zapisany"
|
|
14
|
+
},
|
|
15
|
+
"invite": {
|
|
16
|
+
"inviteUserWithEmail": "Zaproś użytkownika przez email",
|
|
17
|
+
"inviteWithEmail": "Zaproś przez email",
|
|
18
|
+
"singleUser": "Jeden użytkownik",
|
|
19
|
+
"multipleUsers": "Wielu użytkowników",
|
|
20
|
+
"emailAddress": "Adres email",
|
|
21
|
+
"emailAddressesMultiple": "Adresy email (oddzielone nową linią lub przecinkiem)",
|
|
22
|
+
"roles": "Role",
|
|
23
|
+
"messageOptional": "Wiadomość (opcjonalna)",
|
|
24
|
+
"inviteEmail": "Zaproś email",
|
|
25
|
+
"inviteEmails": "Zaproś emaile",
|
|
26
|
+
"invitationSent": "Zaproszenie wysłane!",
|
|
27
|
+
"invitationsWereSent": "Zaproszenia zostały wysłane!",
|
|
28
|
+
"invitationWillBeSent": "Zaproszenie zostanie wysłane!",
|
|
29
|
+
"inviteMultipleEmails": "Zaproś {count} emaili",
|
|
30
|
+
"inviteSingleEmail": "Zaproś {email}"
|
|
31
|
+
},
|
|
32
|
+
"common": {
|
|
33
|
+
"rejected": "Odrzucone",
|
|
34
|
+
"rejectedDetail": "Odrzuciłeś"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -2,15 +2,17 @@
|
|
|
2
2
|
<div class="flex items-start p-6 bg-pink-100 rounded-border border border-pink-300 mb-6">
|
|
3
3
|
<i class="pi pi-times-circle text-pink-900 text-2xl mr-4" />
|
|
4
4
|
<div class="mr-4">
|
|
5
|
-
<div class="text-pink-900 font-medium text-xl mb-4 leading-none">
|
|
5
|
+
<div class="text-pink-900 font-medium text-xl mb-4 leading-none">{{ t('access.notAuthorized') }}</div>
|
|
6
6
|
<p class="m-0 p-0 text-pink-700">
|
|
7
|
-
|
|
7
|
+
{{ t('access.insufficientPrivileges') }}
|
|
8
8
|
</p>
|
|
9
9
|
</div>
|
|
10
10
|
</div>
|
|
11
11
|
</template>
|
|
12
12
|
|
|
13
13
|
<script setup>
|
|
14
|
+
import { useI18n } from 'vue-i18n'
|
|
15
|
+
const { t } = useI18n()
|
|
14
16
|
</script>
|
|
15
17
|
|
|
16
18
|
<style scoped>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<div v-if="myRoles.length > 0">
|
|
4
4
|
|
|
5
5
|
<div class="text-center">
|
|
6
|
-
<Button label="
|
|
6
|
+
<Button :label="t('invite.inviteWithEmail')" icon="pi pi-envelope" class="p-button mb-6"
|
|
7
7
|
@click="inviteDialog = true" :disabled="!canInvite" />
|
|
8
8
|
</div>
|
|
9
9
|
|
|
@@ -114,6 +114,8 @@
|
|
|
114
114
|
})
|
|
115
115
|
|
|
116
116
|
import { computed, watch, ref, onMounted } from 'vue'
|
|
117
|
+
import { useI18n } from 'vue-i18n'
|
|
118
|
+
const { t } = useI18n()
|
|
117
119
|
|
|
118
120
|
const isMounted = ref(false)
|
|
119
121
|
onMounted(() => isMounted.value = true)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div v-if="synchronizedAccessInvitations.length > 0" class="mb-6">
|
|
3
|
-
<div class="text-surface-900 dark:text-surface-0 font-medium text-xl mb-2">
|
|
3
|
+
<div class="text-surface-900 dark:text-surface-0 font-medium text-xl mb-2">{{ t('access.accessInvitations') }}</div>
|
|
4
4
|
<div v-for="access of synchronizedAccessInvitations" :key="access.to"
|
|
5
5
|
class="flex flex-row flex-wrap items-center">
|
|
6
6
|
<div class="col-span-12 md:col-span-6 py-1">
|
|
@@ -44,6 +44,8 @@
|
|
|
44
44
|
import { synchronized, synchronizedList } from "@live-change/vue3-components"
|
|
45
45
|
|
|
46
46
|
import { computed, watch, ref, onMounted } from 'vue'
|
|
47
|
+
import { useI18n } from 'vue-i18n'
|
|
48
|
+
const { t } = useI18n()
|
|
47
49
|
|
|
48
50
|
const { object, objectType, availableRoles, multiRole, disabled } = defineProps({
|
|
49
51
|
object: {
|
|
@@ -94,7 +96,7 @@
|
|
|
94
96
|
identifiers: { object, objectType },
|
|
95
97
|
objectIdentifiers: ({ to, sessionOrUser, sessionOrUserType }) =>
|
|
96
98
|
({ accessInvitation: to, sessionOrUser, sessionOrUserType, object, objectType }),
|
|
97
|
-
onSave: () => toast.add({ severity: 'info', summary: '
|
|
99
|
+
onSave: () => toast.add({ severity: 'info', summary: t('access.accessInviteSaved'), life: 1500 }),
|
|
98
100
|
recursive: true
|
|
99
101
|
})
|
|
100
102
|
const synchronizedAccessInvitations = synchronizedAccessInvitationsList.value
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div v-if="synchronizedAccesses.length > 0" class="mb-6">
|
|
3
|
-
<div class="text-surface-900 dark:text-surface-0 font-medium text-xl mb-2">
|
|
3
|
+
<div class="text-surface-900 dark:text-surface-0 font-medium text-xl mb-2">{{ t('access.authorized') }}</div>
|
|
4
4
|
<div v-for="access of synchronizedAccesses" :key="access.to"
|
|
5
5
|
class="flex flex-row flex-wrap items-center">
|
|
6
6
|
<div class="col-span-12 md:col-span-6 py-1">
|
|
@@ -47,6 +47,8 @@
|
|
|
47
47
|
import { synchronized, synchronizedList } from "@live-change/vue3-components"
|
|
48
48
|
|
|
49
49
|
import { computed, watch, ref, onMounted } from 'vue'
|
|
50
|
+
import { useI18n } from 'vue-i18n'
|
|
51
|
+
const { t } = useI18n()
|
|
50
52
|
|
|
51
53
|
const { object, objectType, availableRoles, multiRole, disabled } = defineProps({
|
|
52
54
|
object: {
|
|
@@ -97,7 +99,7 @@
|
|
|
97
99
|
identifiers: { object, objectType },
|
|
98
100
|
objectIdentifiers: ({ to, sessionOrUser, sessionOrUserType }) =>
|
|
99
101
|
({ access: to, sessionOrUser, sessionOrUserType, object, objectType }),
|
|
100
|
-
onSave: () => toast.add({ severity: 'info', summary: '
|
|
102
|
+
onSave: () => toast.add({ severity: 'info', summary: t('access.accessSaved'), life: 1500 }),
|
|
101
103
|
recursive: true
|
|
102
104
|
})
|
|
103
105
|
const synchronizedAccesses = synchronizedAccessesList.value
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div v-if="synchronizedAccessRequests.length > 0" class="mb-6">
|
|
3
|
-
<div class="text-surface-900 dark:text-surface-0 font-medium text-xl mb-2">
|
|
3
|
+
<div class="text-surface-900 dark:text-surface-0 font-medium text-xl mb-2">{{ t('access.accessRequests') }}</div>
|
|
4
4
|
<div v-for="access of synchronizedAccessRequests" :key="access.to"
|
|
5
5
|
class="flex flex-row flex-wrap items-center">
|
|
6
6
|
<div class="col-span-12 md:col-span-6 py-1">
|
|
@@ -51,6 +51,8 @@
|
|
|
51
51
|
import { synchronized, synchronizedList } from "@live-change/vue3-components"
|
|
52
52
|
|
|
53
53
|
import { computed, watch, ref, onMounted } from 'vue'
|
|
54
|
+
import { useI18n } from 'vue-i18n'
|
|
55
|
+
const { t } = useI18n()
|
|
54
56
|
|
|
55
57
|
const { object, objectType, availableRoles, multiRole, disabled } = defineProps({
|
|
56
58
|
object: {
|
|
@@ -106,7 +108,7 @@
|
|
|
106
108
|
identifiers: { object, objectType },
|
|
107
109
|
objectIdentifiers: ({ to, sessionOrUser, sessionOrUserType }) =>
|
|
108
110
|
({ accessRequest: to, sessionOrUser, sessionOrUserType, object, objectType }),
|
|
109
|
-
onSave: () => toast.add({ severity: 'info', summary: '
|
|
111
|
+
onSave: () => toast.add({ severity: 'info', summary: t('access.accessRequestSaved'), life: 1500 }),
|
|
110
112
|
recursive: true
|
|
111
113
|
})
|
|
112
114
|
const synchronizedAccessRequests = synchronizedAccessRequestsList.value
|
|
@@ -115,16 +117,16 @@
|
|
|
115
117
|
console.log("DELETE ACCESS REQUEST", accessRequest)
|
|
116
118
|
confirm.require({
|
|
117
119
|
target: event.currentTarget,
|
|
118
|
-
message:
|
|
120
|
+
message: t('access.confirmDeleteAccessRequest', { name: accessRequest.identification.name }),
|
|
119
121
|
icon: 'pi pi-info-circle',
|
|
120
122
|
acceptClass: 'p-button-danger',
|
|
121
123
|
accept: async () => {
|
|
122
124
|
await synchronizedAccessRequestsList.delete(accessRequest)
|
|
123
125
|
//accessRequest.delete()
|
|
124
|
-
toast.add({ severity:'info', summary: '
|
|
126
|
+
toast.add({ severity:'info', summary: t('access.accessRequestDeleted'), life: 1500 })
|
|
125
127
|
},
|
|
126
128
|
reject: () => {
|
|
127
|
-
toast.add({ severity:'error', summary: '
|
|
129
|
+
toast.add({ severity:'error', summary: t('common.rejected'), detail: t('common.rejectedDetail'), life: 3000 })
|
|
128
130
|
}
|
|
129
131
|
})
|
|
130
132
|
}
|
|
@@ -134,7 +136,7 @@
|
|
|
134
136
|
await accessControlApi.acceptAccessRequest({
|
|
135
137
|
...accessRequest, access: accessRequest.to
|
|
136
138
|
})
|
|
137
|
-
toast.add({ severity:'info', summary: '
|
|
139
|
+
toast.add({ severity:'info', summary: t('access.accessRequestAccepted'), life: 1500 })
|
|
138
140
|
}
|
|
139
141
|
|
|
140
142
|
</script>
|
|
@@ -67,6 +67,8 @@
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
import { computed, watch, ref, onMounted } from 'vue'
|
|
70
|
+
import { useI18n } from 'vue-i18n'
|
|
71
|
+
const { t } = useI18n()
|
|
70
72
|
|
|
71
73
|
const {
|
|
72
74
|
object, objectType,
|
|
@@ -135,7 +137,7 @@
|
|
|
135
137
|
update: accessControlApi.setOrUpdatePublicAccess,
|
|
136
138
|
identifiers: { object, objectType },
|
|
137
139
|
recursive: true,
|
|
138
|
-
onSave: () => toast.add({ severity: 'info', summary: '
|
|
140
|
+
onSave: () => toast.add({ severity: 'info', summary: t('access.publicAccessSaved'), life: 1500 })
|
|
139
141
|
}).value
|
|
140
142
|
|
|
141
143
|
</script>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
:modal="true" class="w-full sm:w-9/12 md:w-8/12 lg:w-6/12">
|
|
4
4
|
<template #header>
|
|
5
5
|
<div class="flex flex-wrap w-full">
|
|
6
|
-
<div class="text-xl">
|
|
6
|
+
<div class="text-xl">{{ t('invite.inviteUserWithEmail') }}</div>
|
|
7
7
|
</div>
|
|
8
8
|
</template>
|
|
9
9
|
|
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
|
|
14
14
|
<Tabs v-model:value="tabIndex" class="w-full">
|
|
15
15
|
<TabList>
|
|
16
|
-
<Tab value="0">
|
|
17
|
-
<Tab value="1">
|
|
16
|
+
<Tab value="0">{{ t('invite.singleUser') }}</Tab>
|
|
17
|
+
<Tab value="1">{{ t('invite.multipleUsers') }}</Tab>
|
|
18
18
|
</TabList>
|
|
19
19
|
<TabPanels>
|
|
20
20
|
<TabPanel value="0">
|
|
21
21
|
|
|
22
|
-
<command-form service="accessControl" action="inviteEmail"
|
|
22
|
+
<command-form service="accessControl" action="inviteEmail"
|
|
23
23
|
ref="inviteForm"
|
|
24
24
|
v-slot="{ data }"
|
|
25
25
|
:parameters="{ objectType, object }"
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<div class="col-span-12 md:col-span-6 mb-2">
|
|
31
31
|
<div class="p-field">
|
|
32
32
|
<label for="email" class="block text-surface-900 dark:text-surface-0 font-medium mb-2">
|
|
33
|
-
|
|
33
|
+
{{ t('invite.emailAddress') }}
|
|
34
34
|
</label>
|
|
35
35
|
<InputText id="email" type="text" class="w-full"
|
|
36
36
|
aria-describedby="email-help" :invalid="!!data.emailError"
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
<div class="col-span-12 md:col-span-6 mb-2">
|
|
44
44
|
<div class="p-field ">
|
|
45
45
|
<label for="inviteAccess" class="block text-surface-900 dark:text-surface-0 font-medium mb-2">
|
|
46
|
-
|
|
46
|
+
{{ t('invite.roles') }}
|
|
47
47
|
</label>
|
|
48
48
|
<Dropdown v-if="!multiRole" id="inviteAccess" class="w-14em w-full"
|
|
49
49
|
:options="['none'].concat(availableRoles)"
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
</div>
|
|
65
65
|
<div class="p-field">
|
|
66
66
|
<label for="inviteMessage" class="block text-surface-900 dark:text-surface-0 font-medium mb-2">
|
|
67
|
-
|
|
67
|
+
{{ t('invite.messageOptional') }}
|
|
68
68
|
</label>
|
|
69
69
|
<Textarea id="inviteMessage" v-model="data.message" :autoResize="true" rows="3" class="w-full" />
|
|
70
70
|
</div>
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
|
|
84
84
|
<div class="p-field mb-4">
|
|
85
85
|
<label for="email" class="block text-surface-900 dark:text-surface-0 font-medium mb-2">
|
|
86
|
-
|
|
86
|
+
{{ t('invite.emailAddressesMultiple') }}
|
|
87
87
|
</label>
|
|
88
88
|
<Textarea id="emailsText" type="text" class="w-full"
|
|
89
89
|
rows="4"
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
</div>
|
|
96
96
|
<div class="p-field mb-4">
|
|
97
97
|
<label for="inviteAccess" class="block text-surface-900 dark:text-surface-0 font-medium mb-2">
|
|
98
|
-
|
|
98
|
+
{{ t('invite.roles') }}
|
|
99
99
|
</label>
|
|
100
100
|
<Dropdown v-if="!multiRole" id="inviteAccess" class="w-14em w-full"
|
|
101
101
|
:options="['none'].concat(availableRoles)"
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
</div>
|
|
115
115
|
<div class="p-field mb-1">
|
|
116
116
|
<label for="inviteMessage" class="block text-surface-900 dark:text-surface-0 font-medium mb-2">
|
|
117
|
-
|
|
117
|
+
{{ t('invite.messageOptional') }}
|
|
118
118
|
</label>
|
|
119
119
|
<Textarea id="inviteMessage" v-model="data.message" :autoResize="true" rows="3" class="w-full" />
|
|
120
120
|
</div>
|
|
@@ -137,10 +137,10 @@
|
|
|
137
137
|
</WorkingZone>
|
|
138
138
|
|
|
139
139
|
<template #footer>
|
|
140
|
-
<Button v-if="tabIndex
|
|
141
|
-
|
|
140
|
+
<Button v-if="tabIndex == 0"
|
|
141
|
+
:label="t('invite.inviteEmail')" icon="pi pi-envelope" autofocus @click="inviteForm.submit()" />
|
|
142
142
|
<Button v-else
|
|
143
|
-
label="
|
|
143
|
+
:label="t('invite.inviteEmails')" icon="pi pi-envelope" autofocus @click="inviteManyForm.submit()" />
|
|
144
144
|
</template>
|
|
145
145
|
|
|
146
146
|
|
|
@@ -214,7 +214,7 @@
|
|
|
214
214
|
const inviteForm = ref()
|
|
215
215
|
function handleInvited({ parameters, result }) {
|
|
216
216
|
visible.value = false
|
|
217
|
-
toast.add({ severity: 'success', summary: '
|
|
217
|
+
toast.add({ severity: 'success', summary: t('invite.invitationSent'), life: 1500 })
|
|
218
218
|
console.log("INVITED", arguments)
|
|
219
219
|
}
|
|
220
220
|
|
|
@@ -225,19 +225,19 @@
|
|
|
225
225
|
if(!tmv) {
|
|
226
226
|
inviteTask.value = null
|
|
227
227
|
visible.value = false
|
|
228
|
-
toast.add({ severity: 'success', summary: '
|
|
228
|
+
toast.add({ severity: 'success', summary: t('invite.invitationsWereSent'), life: 1500 })
|
|
229
229
|
}
|
|
230
230
|
})
|
|
231
231
|
|
|
232
232
|
const taskTypes = {
|
|
233
233
|
inviteManyEmail: {
|
|
234
234
|
label(task) {
|
|
235
|
-
return '
|
|
235
|
+
return t('invite.inviteMultipleEmails', { count: task.properties.contacts.length })
|
|
236
236
|
}
|
|
237
237
|
},
|
|
238
238
|
inviteEmail: {
|
|
239
239
|
label(task) {
|
|
240
|
-
return '
|
|
240
|
+
return t('invite.inviteSingleEmail', { email: task.properties.email })
|
|
241
241
|
}
|
|
242
242
|
}
|
|
243
243
|
}
|
|
@@ -248,7 +248,7 @@
|
|
|
248
248
|
const { task } = result
|
|
249
249
|
inviteTask.value = task
|
|
250
250
|
taskModalVisible.value = true
|
|
251
|
-
toast.add({ severity: 'info', summary: '
|
|
251
|
+
toast.add({ severity: 'info', summary: t('invite.invitationWillBeSent'), life: 1500 })
|
|
252
252
|
}
|
|
253
253
|
|
|
254
254
|
</script>
|
package/index.js
CHANGED
|
@@ -20,5 +20,6 @@ import configurationRoutes from "./front/src/configuration/routes.js"
|
|
|
20
20
|
export { inviteRoutes, configurationRoutes }
|
|
21
21
|
|
|
22
22
|
import en from "./front/locales/en.json"
|
|
23
|
-
|
|
23
|
+
import pl from "./front/locales/pl.json"
|
|
24
|
+
const locales = { en, pl }
|
|
24
25
|
export { locales }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@live-change/access-control-frontend",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.133",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"memDev": "node server/start.js memDev --enableSessions --initScript ./init.js --dbAccess",
|
|
6
6
|
"localDevInit": "rm tmp.db; lcli localDev --enableSessions --initScript ./init.js",
|
|
@@ -21,22 +21,22 @@
|
|
|
21
21
|
},
|
|
22
22
|
"type": "module",
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@live-change/access-control-service": "^0.9.
|
|
25
|
-
"@live-change/cli": "^0.9.
|
|
26
|
-
"@live-change/dao": "^0.9.
|
|
27
|
-
"@live-change/dao-vue3": "^0.9.
|
|
28
|
-
"@live-change/dao-websocket": "^0.9.
|
|
29
|
-
"@live-change/db-admin": "^0.9.
|
|
30
|
-
"@live-change/framework": "^0.9.
|
|
31
|
-
"@live-change/frontend-base": "^0.9.
|
|
32
|
-
"@live-change/password-authentication-service": "^0.9.
|
|
33
|
-
"@live-change/secret-code-service": "^0.9.
|
|
34
|
-
"@live-change/secret-link-service": "^0.9.
|
|
35
|
-
"@live-change/session-service": "^0.9.
|
|
36
|
-
"@live-change/user-frontend": "^0.9.
|
|
37
|
-
"@live-change/user-service": "^0.9.
|
|
38
|
-
"@live-change/vue3-components": "^0.9.
|
|
39
|
-
"@live-change/vue3-ssr": "^0.9.
|
|
24
|
+
"@live-change/access-control-service": "^0.9.133",
|
|
25
|
+
"@live-change/cli": "^0.9.133",
|
|
26
|
+
"@live-change/dao": "^0.9.133",
|
|
27
|
+
"@live-change/dao-vue3": "^0.9.133",
|
|
28
|
+
"@live-change/dao-websocket": "^0.9.133",
|
|
29
|
+
"@live-change/db-admin": "^0.9.133",
|
|
30
|
+
"@live-change/framework": "^0.9.133",
|
|
31
|
+
"@live-change/frontend-base": "^0.9.133",
|
|
32
|
+
"@live-change/password-authentication-service": "^0.9.133",
|
|
33
|
+
"@live-change/secret-code-service": "^0.9.133",
|
|
34
|
+
"@live-change/secret-link-service": "^0.9.133",
|
|
35
|
+
"@live-change/session-service": "^0.9.133",
|
|
36
|
+
"@live-change/user-frontend": "^0.9.133",
|
|
37
|
+
"@live-change/user-service": "^0.9.133",
|
|
38
|
+
"@live-change/vue3-components": "^0.9.133",
|
|
39
|
+
"@live-change/vue3-ssr": "^0.9.133",
|
|
40
40
|
"@vueuse/core": "^12.3.0",
|
|
41
41
|
"codeceptjs-assert": "^0.0.5",
|
|
42
42
|
"compression": "^1.7.5",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"vue3-scroll-border": "0.1.7"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@live-change/codeceptjs-helper": "^0.9.
|
|
56
|
+
"@live-change/codeceptjs-helper": "^0.9.133",
|
|
57
57
|
"codeceptjs": "^3.6.10",
|
|
58
58
|
"generate-password": "1.7.1",
|
|
59
59
|
"playwright": "1.49.1",
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
"author": "Michał Łaszczewski <michal@laszczewski.pl>",
|
|
65
65
|
"license": "BSD-3-Clause",
|
|
66
66
|
"description": "",
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "455a7c9d204a89196f6599c42acd8eaeb45532e1"
|
|
68
68
|
}
|