rimelight-components 2.1.37 → 2.1.38
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/dist/module.d.mts +9 -0
- package/dist/module.d.ts +9 -0
- package/dist/module.json +1 -1
- package/dist/module.mjs +15 -1
- package/dist/runtime/auth/index.d.ts +3 -0
- package/dist/runtime/auth/index.js +3 -0
- package/dist/runtime/auth/index.mjs +3 -0
- package/dist/runtime/auth/permissions.d.ts +201 -0
- package/dist/runtime/auth/permissions.js +32 -0
- package/dist/runtime/auth/permissions.mjs +32 -0
- package/dist/runtime/auth/restricted-usernames.d.ts +25 -0
- package/dist/runtime/auth/restricted-usernames.js +236 -0
- package/dist/runtime/auth/restricted-usernames.mjs +236 -0
- package/dist/runtime/auth/utils.d.ts +10 -0
- package/dist/runtime/auth/utils.js +20 -0
- package/dist/runtime/auth/utils.mjs +20 -0
- package/dist/runtime/components/FloatingToolsOverlay.d.vue.ts +3 -0
- package/dist/runtime/components/FloatingToolsOverlay.vue +74 -0
- package/dist/runtime/components/FloatingToolsOverlay.vue.d.ts +3 -0
- package/dist/runtime/components/app/Footer.vue +1 -1
- package/dist/runtime/components/app/Header.vue +1 -1
- package/dist/runtime/components/app/Image.vue +1 -1
- package/dist/runtime/components/app/Logo.vue +1 -1
- package/dist/runtime/components/app/NewsletterSignup.vue +1 -1
- package/dist/runtime/components/app/ScrollToTop.vue +1 -1
- package/dist/runtime/components/cards/TeamCard.vue +1 -1
- package/dist/runtime/components/content/Callout.vue +1 -1
- package/dist/runtime/components/content/Section.vue +1 -1
- package/dist/runtime/components/dashboard/NotificationsSlideover.d.vue.ts +3 -0
- package/dist/runtime/components/dashboard/NotificationsSlideover.vue +49 -0
- package/dist/runtime/components/dashboard/NotificationsSlideover.vue.d.ts +3 -0
- package/dist/runtime/components/dashboard/QuickActions.d.vue.ts +3 -0
- package/dist/runtime/components/dashboard/QuickActions.vue +36 -0
- package/dist/runtime/components/dashboard/QuickActions.vue.d.ts +3 -0
- package/dist/runtime/components/dashboard/TeamsMenu.d.vue.ts +6 -0
- package/dist/runtime/components/dashboard/TeamsMenu.vue +77 -0
- package/dist/runtime/components/dashboard/TeamsMenu.vue.d.ts +6 -0
- package/dist/runtime/components/dashboard/customers/AddModal.d.vue.ts +3 -0
- package/dist/runtime/components/dashboard/customers/AddModal.vue +45 -0
- package/dist/runtime/components/dashboard/customers/AddModal.vue.d.ts +3 -0
- package/dist/runtime/components/dashboard/customers/DeleteModal.d.vue.ts +16 -0
- package/dist/runtime/components/dashboard/customers/DeleteModal.vue +28 -0
- package/dist/runtime/components/dashboard/customers/DeleteModal.vue.d.ts +16 -0
- package/dist/runtime/components/dashboard/floating-tools/FocusTimerTool.d.vue.ts +3 -0
- package/dist/runtime/components/dashboard/floating-tools/FocusTimerTool.vue +37 -0
- package/dist/runtime/components/dashboard/floating-tools/FocusTimerTool.vue.d.ts +3 -0
- package/dist/runtime/components/headings/H1.d.vue.ts +13 -0
- package/dist/runtime/components/headings/H1.vue +9 -0
- package/dist/runtime/components/headings/H1.vue.d.ts +13 -0
- package/dist/runtime/components/headings/H2.d.vue.ts +13 -0
- package/dist/runtime/components/headings/H2.vue +9 -0
- package/dist/runtime/components/headings/H2.vue.d.ts +13 -0
- package/dist/runtime/components/headings/H3.d.vue.ts +13 -0
- package/dist/runtime/components/headings/H3.vue +9 -0
- package/dist/runtime/components/headings/H3.vue.d.ts +13 -0
- package/dist/runtime/components/headings/H4.d.vue.ts +13 -0
- package/dist/runtime/components/headings/H4.vue +9 -0
- package/dist/runtime/components/headings/H4.vue.d.ts +13 -0
- package/dist/runtime/components/headings/H5.d.vue.ts +13 -0
- package/dist/runtime/components/headings/H5.vue +9 -0
- package/dist/runtime/components/headings/H5.vue.d.ts +13 -0
- package/dist/runtime/components/headings/H6.d.vue.ts +13 -0
- package/dist/runtime/components/headings/H6.vue +9 -0
- package/dist/runtime/components/headings/H6.vue.d.ts +13 -0
- package/dist/runtime/components/modals/ConfirmModal.d.vue.ts +3 -0
- package/dist/runtime/components/modals/ConfirmModal.vue +36 -0
- package/dist/runtime/components/modals/ConfirmModal.vue.d.ts +3 -0
- package/dist/runtime/components/nodes/LinkNode.vue +1 -1
- package/dist/runtime/components/nodes/TextNode.vue +1 -1
- package/dist/runtime/components/notes/NoteCard.d.vue.ts +31 -0
- package/dist/runtime/components/notes/NoteCard.vue +86 -0
- package/dist/runtime/components/notes/NoteCard.vue.d.ts +31 -0
- package/dist/runtime/components/notes/NoteModal.d.vue.ts +35 -0
- package/dist/runtime/components/notes/NoteModal.vue +224 -0
- package/dist/runtime/components/notes/NoteModal.vue.d.ts +35 -0
- package/dist/runtime/components/page/PageMention.vue +1 -1
- package/dist/runtime/components/page/PageSurround.vue +1 -1
- package/dist/runtime/components/page/PageTOC.vue +1 -1
- package/dist/runtime/components/swatches/ColorSwatch.vue +1 -1
- package/dist/runtime/components/swatches/FontSwatch.vue +1 -1
- package/dist/runtime/components/swatches/ImageSwatch.vue +1 -1
- package/dist/runtime/components/utilities/Placeholder.vue +1 -1
- package/dist/runtime/composables/app/index.d.ts +4 -0
- package/dist/runtime/composables/app/index.js +4 -0
- package/dist/runtime/composables/app/index.mjs +4 -0
- package/dist/runtime/composables/app/useApi.d.ts +9 -0
- package/dist/runtime/composables/app/useApi.js +56 -0
- package/dist/runtime/composables/app/useApi.mjs +56 -0
- package/dist/runtime/composables/app/useConfirm.d.ts +18 -0
- package/dist/runtime/composables/app/useConfirm.js +56 -0
- package/dist/runtime/composables/app/useConfirm.mjs +56 -0
- package/dist/runtime/composables/components/index.d.ts +1 -0
- package/dist/runtime/composables/components/index.js +1 -0
- package/dist/runtime/composables/components/index.mjs +1 -0
- package/dist/runtime/composables/dashboard/index.d.ts +5 -0
- package/dist/runtime/composables/dashboard/index.js +5 -0
- package/dist/runtime/composables/dashboard/index.mjs +5 -0
- package/dist/runtime/composables/dashboard/useDashboard.d.ts +3 -0
- package/dist/runtime/composables/dashboard/useDashboard.js +18 -0
- package/dist/runtime/composables/dashboard/useDashboard.mjs +18 -0
- package/dist/runtime/composables/dashboard/useFloatingTools.d.ts +19 -0
- package/dist/runtime/composables/dashboard/useFloatingTools.js +44 -0
- package/dist/runtime/composables/dashboard/useFloatingTools.mjs +44 -0
- package/dist/runtime/composables/dashboard/useFocusTimer.d.ts +44 -0
- package/dist/runtime/composables/dashboard/useFocusTimer.js +141 -0
- package/dist/runtime/composables/dashboard/useFocusTimer.mjs +141 -0
- package/dist/runtime/composables/dashboard/useNotes.d.ts +9 -0
- package/dist/runtime/composables/dashboard/useNotes.js +57 -0
- package/dist/runtime/composables/dashboard/useNotes.mjs +57 -0
- package/dist/runtime/composables/dashboard/useQuickActions.d.ts +15 -0
- package/dist/runtime/composables/dashboard/useQuickActions.js +19 -0
- package/dist/runtime/composables/dashboard/useQuickActions.mjs +19 -0
- package/dist/runtime/composables/index.d.ts +4 -7
- package/dist/runtime/composables/index.js +4 -7
- package/dist/runtime/composables/index.mjs +4 -7
- package/dist/runtime/composables/pages/index.d.ts +4 -0
- package/dist/runtime/composables/pages/index.js +4 -0
- package/dist/runtime/composables/pages/index.mjs +4 -0
- package/dist/runtime/composables/{useBlockEditor.d.ts → pages/useBlockEditor.d.ts} +131 -131
- package/dist/runtime/composables/{useInfobox.d.ts → pages/useInfobox.d.ts} +1 -1
- package/dist/runtime/composables/{usePageEditor.d.ts → pages/usePageEditor.d.ts} +1 -1
- package/dist/runtime/composables/{usePageRegistry.d.ts → pages/usePageRegistry.d.ts} +2 -2
- package/dist/runtime/db/auth.d.ts +2096 -0
- package/dist/runtime/db/auth.js +268 -0
- package/dist/runtime/db/auth.mjs +268 -0
- package/dist/runtime/db/index.d.ts +1 -0
- package/dist/runtime/db/index.js +1 -0
- package/dist/runtime/db/index.mjs +1 -0
- package/dist/runtime/types/index.d.ts +1 -0
- package/dist/runtime/types/index.js +1 -0
- package/dist/runtime/types/index.mjs +1 -0
- package/dist/runtime/types/utils.d.ts +51 -0
- package/dist/runtime/types/utils.js +0 -0
- package/dist/runtime/types/utils.mjs +0 -0
- package/package.json +3 -1
- /package/dist/runtime/composables/{useDateRange.d.ts → app/useDateRange.d.ts} +0 -0
- /package/dist/runtime/composables/{useDateRange.js → app/useDateRange.js} +0 -0
- /package/dist/runtime/composables/{useDateRange.mjs → app/useDateRange.mjs} +0 -0
- /package/dist/runtime/composables/{useHeaderStack.d.ts → app/useHeaderStack.d.ts} +0 -0
- /package/dist/runtime/composables/{useHeaderStack.js → app/useHeaderStack.js} +0 -0
- /package/dist/runtime/composables/{useHeaderStack.mjs → app/useHeaderStack.mjs} +0 -0
- /package/dist/runtime/composables/{useRC.d.ts → components/useRC.d.ts} +0 -0
- /package/dist/runtime/composables/{useRC.js → components/useRC.js} +0 -0
- /package/dist/runtime/composables/{useRC.mjs → components/useRC.mjs} +0 -0
- /package/dist/runtime/composables/{useBlockEditor.js → pages/useBlockEditor.js} +0 -0
- /package/dist/runtime/composables/{useBlockEditor.mjs → pages/useBlockEditor.mjs} +0 -0
- /package/dist/runtime/composables/{useInfobox.js → pages/useInfobox.js} +0 -0
- /package/dist/runtime/composables/{useInfobox.mjs → pages/useInfobox.mjs} +0 -0
- /package/dist/runtime/composables/{usePageEditor.js → pages/usePageEditor.js} +0 -0
- /package/dist/runtime/composables/{usePageEditor.mjs → pages/usePageEditor.mjs} +0 -0
- /package/dist/runtime/composables/{usePageRegistry.js → pages/usePageRegistry.js} +0 -0
- /package/dist/runtime/composables/{usePageRegistry.mjs → pages/usePageRegistry.mjs} +0 -0
package/dist/module.d.mts
CHANGED
|
@@ -25,6 +25,15 @@ interface ModuleOptions {
|
|
|
25
25
|
declare const _default: _nuxt_schema.NuxtModule<ModuleOptions, {
|
|
26
26
|
enabled: boolean;
|
|
27
27
|
prefix: string;
|
|
28
|
+
auth: {
|
|
29
|
+
restrictedUsernames: string[];
|
|
30
|
+
adminEmailDomain: string | null;
|
|
31
|
+
session: {
|
|
32
|
+
expiresIn: number;
|
|
33
|
+
updateAge: number;
|
|
34
|
+
freshAge: number;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
28
37
|
callouts: {
|
|
29
38
|
info: {
|
|
30
39
|
icon: string;
|
package/dist/module.d.ts
CHANGED
|
@@ -25,6 +25,15 @@ interface ModuleOptions {
|
|
|
25
25
|
declare const _default: _nuxt_schema.NuxtModule<ModuleOptions, {
|
|
26
26
|
enabled: boolean;
|
|
27
27
|
prefix: string;
|
|
28
|
+
auth: {
|
|
29
|
+
restrictedUsernames: string[];
|
|
30
|
+
adminEmailDomain: string | null;
|
|
31
|
+
session: {
|
|
32
|
+
expiresIn: number;
|
|
33
|
+
updateAge: number;
|
|
34
|
+
freshAge: number;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
28
37
|
callouts: {
|
|
29
38
|
info: {
|
|
30
39
|
icon: string;
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -4,12 +4,24 @@ import { readdirSync } from 'node:fs';
|
|
|
4
4
|
import { basename } from 'node:path';
|
|
5
5
|
|
|
6
6
|
const name = "rimelight-components";
|
|
7
|
-
const version = "2.1.
|
|
7
|
+
const version = "2.1.38";
|
|
8
8
|
const homepage = "https://rimelight.com/tools/rimelight-components";
|
|
9
9
|
|
|
10
10
|
const defaultOptions = {
|
|
11
11
|
enabled: true,
|
|
12
12
|
prefix: "RC",
|
|
13
|
+
auth: {
|
|
14
|
+
restrictedUsernames: [],
|
|
15
|
+
adminEmailDomain: null,
|
|
16
|
+
session: {
|
|
17
|
+
expiresIn: 60 * 60 * 24 * 7,
|
|
18
|
+
// 7 days
|
|
19
|
+
updateAge: 60 * 60 * 24,
|
|
20
|
+
// 1 day
|
|
21
|
+
freshAge: 60 * 15
|
|
22
|
+
// 15 minutes
|
|
23
|
+
}
|
|
24
|
+
},
|
|
13
25
|
callouts: {
|
|
14
26
|
info: {
|
|
15
27
|
icon: "lucide:shield-alert",
|
|
@@ -190,6 +202,8 @@ const module$1 = defineNuxtModule().with({
|
|
|
190
202
|
nuxt.options.alias["rimelight-components/composables"] = resolve("./runtime/composables");
|
|
191
203
|
nuxt.options.alias["rimelight-components/types"] = resolve("./runtime/types");
|
|
192
204
|
nuxt.options.alias["rimelight-components/utils"] = resolve("./runtime/utils");
|
|
205
|
+
nuxt.options.alias["rimelight-components/auth"] = resolve("./runtime/auth");
|
|
206
|
+
nuxt.options.alias["rimelight-components/db"] = resolve("./runtime/db");
|
|
193
207
|
addComponentsDir({
|
|
194
208
|
path: resolve("./runtime/components/"),
|
|
195
209
|
pathPrefix: false,
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
export declare const statement: {
|
|
2
|
+
readonly admin: readonly ["access"];
|
|
3
|
+
readonly organization: readonly ["create", "update", "delete"];
|
|
4
|
+
readonly team: readonly ["create", "update", "delete"];
|
|
5
|
+
readonly project: readonly ["create", "share", "update", "delete"];
|
|
6
|
+
readonly blogPost: readonly ["create", "edit", "publish", "delete"];
|
|
7
|
+
readonly member: readonly ["create", "update", "delete"];
|
|
8
|
+
readonly invitation: readonly ["create", "cancel"];
|
|
9
|
+
readonly ac: readonly ["create", "read", "update", "delete"];
|
|
10
|
+
};
|
|
11
|
+
export declare const ac: {
|
|
12
|
+
newRole<K extends "admin" | "organization" | "team" | "project" | "blogPost" | "member" | "invitation" | "ac">(statements: import("better-auth/plugins").Subset<K, {
|
|
13
|
+
readonly admin: readonly ["access"];
|
|
14
|
+
readonly organization: readonly ["create", "update", "delete"];
|
|
15
|
+
readonly team: readonly ["create", "update", "delete"];
|
|
16
|
+
readonly project: readonly ["create", "share", "update", "delete"];
|
|
17
|
+
readonly blogPost: readonly ["create", "edit", "publish", "delete"];
|
|
18
|
+
readonly member: readonly ["create", "update", "delete"];
|
|
19
|
+
readonly invitation: readonly ["create", "cancel"];
|
|
20
|
+
readonly ac: readonly ["create", "read", "update", "delete"];
|
|
21
|
+
}>): {
|
|
22
|
+
authorize<K_1 extends K>(request: K_1 extends infer T extends K_2 ? { [key in T]?: import("better-auth/plugins").Subset<K, {
|
|
23
|
+
readonly admin: readonly ["access"];
|
|
24
|
+
readonly organization: readonly ["create", "update", "delete"];
|
|
25
|
+
readonly team: readonly ["create", "update", "delete"];
|
|
26
|
+
readonly project: readonly ["create", "share", "update", "delete"];
|
|
27
|
+
readonly blogPost: readonly ["create", "edit", "publish", "delete"];
|
|
28
|
+
readonly member: readonly ["create", "update", "delete"];
|
|
29
|
+
readonly invitation: readonly ["create", "cancel"];
|
|
30
|
+
readonly ac: readonly ["create", "read", "update", "delete"];
|
|
31
|
+
}>[key] | {
|
|
32
|
+
actions: import("better-auth/plugins").Subset<K, {
|
|
33
|
+
readonly admin: readonly ["access"];
|
|
34
|
+
readonly organization: readonly ["create", "update", "delete"];
|
|
35
|
+
readonly team: readonly ["create", "update", "delete"];
|
|
36
|
+
readonly project: readonly ["create", "share", "update", "delete"];
|
|
37
|
+
readonly blogPost: readonly ["create", "edit", "publish", "delete"];
|
|
38
|
+
readonly member: readonly ["create", "update", "delete"];
|
|
39
|
+
readonly invitation: readonly ["create", "cancel"];
|
|
40
|
+
readonly ac: readonly ["create", "read", "update", "delete"];
|
|
41
|
+
}>[key];
|
|
42
|
+
connector: "OR" | "AND";
|
|
43
|
+
} | undefined; } : never, connector?: "OR" | "AND"): import("better-auth/plugins").AuthorizeResponse;
|
|
44
|
+
statements: import("better-auth/plugins").Subset<K, {
|
|
45
|
+
readonly admin: readonly ["access"];
|
|
46
|
+
readonly organization: readonly ["create", "update", "delete"];
|
|
47
|
+
readonly team: readonly ["create", "update", "delete"];
|
|
48
|
+
readonly project: readonly ["create", "share", "update", "delete"];
|
|
49
|
+
readonly blogPost: readonly ["create", "edit", "publish", "delete"];
|
|
50
|
+
readonly member: readonly ["create", "update", "delete"];
|
|
51
|
+
readonly invitation: readonly ["create", "cancel"];
|
|
52
|
+
readonly ac: readonly ["create", "read", "update", "delete"];
|
|
53
|
+
}>;
|
|
54
|
+
};
|
|
55
|
+
statements: {
|
|
56
|
+
readonly admin: readonly ["access"];
|
|
57
|
+
readonly organization: readonly ["create", "update", "delete"];
|
|
58
|
+
readonly team: readonly ["create", "update", "delete"];
|
|
59
|
+
readonly project: readonly ["create", "share", "update", "delete"];
|
|
60
|
+
readonly blogPost: readonly ["create", "edit", "publish", "delete"];
|
|
61
|
+
readonly member: readonly ["create", "update", "delete"];
|
|
62
|
+
readonly invitation: readonly ["create", "cancel"];
|
|
63
|
+
readonly ac: readonly ["create", "read", "update", "delete"];
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
export declare const owner: {
|
|
67
|
+
authorize<K_1 extends "organization" | "team" | "project" | "blogPost" | "member" | "invitation" | "ac">(request: K_1 extends infer T extends K ? { [key in T]?: import("better-auth/plugins").Subset<"organization" | "team" | "project" | "blogPost" | "member" | "invitation" | "ac", {
|
|
68
|
+
readonly admin: readonly ["access"];
|
|
69
|
+
readonly organization: readonly ["create", "update", "delete"];
|
|
70
|
+
readonly team: readonly ["create", "update", "delete"];
|
|
71
|
+
readonly project: readonly ["create", "share", "update", "delete"];
|
|
72
|
+
readonly blogPost: readonly ["create", "edit", "publish", "delete"];
|
|
73
|
+
readonly member: readonly ["create", "update", "delete"];
|
|
74
|
+
readonly invitation: readonly ["create", "cancel"];
|
|
75
|
+
readonly ac: readonly ["create", "read", "update", "delete"];
|
|
76
|
+
}>[key] | {
|
|
77
|
+
actions: import("better-auth/plugins").Subset<"organization" | "team" | "project" | "blogPost" | "member" | "invitation" | "ac", {
|
|
78
|
+
readonly admin: readonly ["access"];
|
|
79
|
+
readonly organization: readonly ["create", "update", "delete"];
|
|
80
|
+
readonly team: readonly ["create", "update", "delete"];
|
|
81
|
+
readonly project: readonly ["create", "share", "update", "delete"];
|
|
82
|
+
readonly blogPost: readonly ["create", "edit", "publish", "delete"];
|
|
83
|
+
readonly member: readonly ["create", "update", "delete"];
|
|
84
|
+
readonly invitation: readonly ["create", "cancel"];
|
|
85
|
+
readonly ac: readonly ["create", "read", "update", "delete"];
|
|
86
|
+
}>[key];
|
|
87
|
+
connector: "OR" | "AND";
|
|
88
|
+
} | undefined; } : never, connector?: "OR" | "AND"): import("better-auth/plugins").AuthorizeResponse;
|
|
89
|
+
statements: import("better-auth/plugins").Subset<"organization" | "team" | "project" | "blogPost" | "member" | "invitation" | "ac", {
|
|
90
|
+
readonly admin: readonly ["access"];
|
|
91
|
+
readonly organization: readonly ["create", "update", "delete"];
|
|
92
|
+
readonly team: readonly ["create", "update", "delete"];
|
|
93
|
+
readonly project: readonly ["create", "share", "update", "delete"];
|
|
94
|
+
readonly blogPost: readonly ["create", "edit", "publish", "delete"];
|
|
95
|
+
readonly member: readonly ["create", "update", "delete"];
|
|
96
|
+
readonly invitation: readonly ["create", "cancel"];
|
|
97
|
+
readonly ac: readonly ["create", "read", "update", "delete"];
|
|
98
|
+
}>;
|
|
99
|
+
};
|
|
100
|
+
export declare const admin: {
|
|
101
|
+
authorize<K_1 extends "admin" | "organization" | "team" | "project" | "member" | "invitation" | "ac">(request: K_1 extends infer T extends K ? { [key in T]?: import("better-auth/plugins").Subset<"admin" | "organization" | "team" | "project" | "member" | "invitation" | "ac", {
|
|
102
|
+
readonly admin: readonly ["access"];
|
|
103
|
+
readonly organization: readonly ["create", "update", "delete"];
|
|
104
|
+
readonly team: readonly ["create", "update", "delete"];
|
|
105
|
+
readonly project: readonly ["create", "share", "update", "delete"];
|
|
106
|
+
readonly blogPost: readonly ["create", "edit", "publish", "delete"];
|
|
107
|
+
readonly member: readonly ["create", "update", "delete"];
|
|
108
|
+
readonly invitation: readonly ["create", "cancel"];
|
|
109
|
+
readonly ac: readonly ["create", "read", "update", "delete"];
|
|
110
|
+
}>[key] | {
|
|
111
|
+
actions: import("better-auth/plugins").Subset<"admin" | "organization" | "team" | "project" | "member" | "invitation" | "ac", {
|
|
112
|
+
readonly admin: readonly ["access"];
|
|
113
|
+
readonly organization: readonly ["create", "update", "delete"];
|
|
114
|
+
readonly team: readonly ["create", "update", "delete"];
|
|
115
|
+
readonly project: readonly ["create", "share", "update", "delete"];
|
|
116
|
+
readonly blogPost: readonly ["create", "edit", "publish", "delete"];
|
|
117
|
+
readonly member: readonly ["create", "update", "delete"];
|
|
118
|
+
readonly invitation: readonly ["create", "cancel"];
|
|
119
|
+
readonly ac: readonly ["create", "read", "update", "delete"];
|
|
120
|
+
}>[key];
|
|
121
|
+
connector: "OR" | "AND";
|
|
122
|
+
} | undefined; } : never, connector?: "OR" | "AND"): import("better-auth/plugins").AuthorizeResponse;
|
|
123
|
+
statements: import("better-auth/plugins").Subset<"admin" | "organization" | "team" | "project" | "member" | "invitation" | "ac", {
|
|
124
|
+
readonly admin: readonly ["access"];
|
|
125
|
+
readonly organization: readonly ["create", "update", "delete"];
|
|
126
|
+
readonly team: readonly ["create", "update", "delete"];
|
|
127
|
+
readonly project: readonly ["create", "share", "update", "delete"];
|
|
128
|
+
readonly blogPost: readonly ["create", "edit", "publish", "delete"];
|
|
129
|
+
readonly member: readonly ["create", "update", "delete"];
|
|
130
|
+
readonly invitation: readonly ["create", "cancel"];
|
|
131
|
+
readonly ac: readonly ["create", "read", "update", "delete"];
|
|
132
|
+
}>;
|
|
133
|
+
};
|
|
134
|
+
export declare const member: {
|
|
135
|
+
authorize<K_1 extends "project">(request: K_1 extends infer T extends K ? { [key in T]?: import("better-auth/plugins").Subset<"project", {
|
|
136
|
+
readonly admin: readonly ["access"];
|
|
137
|
+
readonly organization: readonly ["create", "update", "delete"];
|
|
138
|
+
readonly team: readonly ["create", "update", "delete"];
|
|
139
|
+
readonly project: readonly ["create", "share", "update", "delete"];
|
|
140
|
+
readonly blogPost: readonly ["create", "edit", "publish", "delete"];
|
|
141
|
+
readonly member: readonly ["create", "update", "delete"];
|
|
142
|
+
readonly invitation: readonly ["create", "cancel"];
|
|
143
|
+
readonly ac: readonly ["create", "read", "update", "delete"];
|
|
144
|
+
}>[key] | {
|
|
145
|
+
actions: import("better-auth/plugins").Subset<"project", {
|
|
146
|
+
readonly admin: readonly ["access"];
|
|
147
|
+
readonly organization: readonly ["create", "update", "delete"];
|
|
148
|
+
readonly team: readonly ["create", "update", "delete"];
|
|
149
|
+
readonly project: readonly ["create", "share", "update", "delete"];
|
|
150
|
+
readonly blogPost: readonly ["create", "edit", "publish", "delete"];
|
|
151
|
+
readonly member: readonly ["create", "update", "delete"];
|
|
152
|
+
readonly invitation: readonly ["create", "cancel"];
|
|
153
|
+
readonly ac: readonly ["create", "read", "update", "delete"];
|
|
154
|
+
}>[key];
|
|
155
|
+
connector: "OR" | "AND";
|
|
156
|
+
} | undefined; } : never, connector?: "OR" | "AND"): import("better-auth/plugins").AuthorizeResponse;
|
|
157
|
+
statements: import("better-auth/plugins").Subset<"project", {
|
|
158
|
+
readonly admin: readonly ["access"];
|
|
159
|
+
readonly organization: readonly ["create", "update", "delete"];
|
|
160
|
+
readonly team: readonly ["create", "update", "delete"];
|
|
161
|
+
readonly project: readonly ["create", "share", "update", "delete"];
|
|
162
|
+
readonly blogPost: readonly ["create", "edit", "publish", "delete"];
|
|
163
|
+
readonly member: readonly ["create", "update", "delete"];
|
|
164
|
+
readonly invitation: readonly ["create", "cancel"];
|
|
165
|
+
readonly ac: readonly ["create", "read", "update", "delete"];
|
|
166
|
+
}>;
|
|
167
|
+
};
|
|
168
|
+
export declare const user: {
|
|
169
|
+
authorize<K_1 extends "project">(request: K_1 extends infer T extends K ? { [key in T]?: import("better-auth/plugins").Subset<"project", {
|
|
170
|
+
readonly admin: readonly ["access"];
|
|
171
|
+
readonly organization: readonly ["create", "update", "delete"];
|
|
172
|
+
readonly team: readonly ["create", "update", "delete"];
|
|
173
|
+
readonly project: readonly ["create", "share", "update", "delete"];
|
|
174
|
+
readonly blogPost: readonly ["create", "edit", "publish", "delete"];
|
|
175
|
+
readonly member: readonly ["create", "update", "delete"];
|
|
176
|
+
readonly invitation: readonly ["create", "cancel"];
|
|
177
|
+
readonly ac: readonly ["create", "read", "update", "delete"];
|
|
178
|
+
}>[key] | {
|
|
179
|
+
actions: import("better-auth/plugins").Subset<"project", {
|
|
180
|
+
readonly admin: readonly ["access"];
|
|
181
|
+
readonly organization: readonly ["create", "update", "delete"];
|
|
182
|
+
readonly team: readonly ["create", "update", "delete"];
|
|
183
|
+
readonly project: readonly ["create", "share", "update", "delete"];
|
|
184
|
+
readonly blogPost: readonly ["create", "edit", "publish", "delete"];
|
|
185
|
+
readonly member: readonly ["create", "update", "delete"];
|
|
186
|
+
readonly invitation: readonly ["create", "cancel"];
|
|
187
|
+
readonly ac: readonly ["create", "read", "update", "delete"];
|
|
188
|
+
}>[key];
|
|
189
|
+
connector: "OR" | "AND";
|
|
190
|
+
} | undefined; } : never, connector?: "OR" | "AND"): import("better-auth/plugins").AuthorizeResponse;
|
|
191
|
+
statements: import("better-auth/plugins").Subset<"project", {
|
|
192
|
+
readonly admin: readonly ["access"];
|
|
193
|
+
readonly organization: readonly ["create", "update", "delete"];
|
|
194
|
+
readonly team: readonly ["create", "update", "delete"];
|
|
195
|
+
readonly project: readonly ["create", "share", "update", "delete"];
|
|
196
|
+
readonly blogPost: readonly ["create", "edit", "publish", "delete"];
|
|
197
|
+
readonly member: readonly ["create", "update", "delete"];
|
|
198
|
+
readonly invitation: readonly ["create", "cancel"];
|
|
199
|
+
readonly ac: readonly ["create", "read", "update", "delete"];
|
|
200
|
+
}>;
|
|
201
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { createAccessControl } from "better-auth/plugins/access";
|
|
2
|
+
import { adminAc, defaultStatements, ownerAc } from "better-auth/plugins/organization/access";
|
|
3
|
+
const customStatements = {
|
|
4
|
+
admin: ["access"],
|
|
5
|
+
organization: ["create", "update", "delete"],
|
|
6
|
+
team: ["create", "update", "delete"],
|
|
7
|
+
project: ["create", "share", "update", "delete"],
|
|
8
|
+
blogPost: ["create", "edit", "publish", "delete"]
|
|
9
|
+
};
|
|
10
|
+
export const statement = {
|
|
11
|
+
...defaultStatements,
|
|
12
|
+
...customStatements
|
|
13
|
+
};
|
|
14
|
+
export const ac = createAccessControl(statement);
|
|
15
|
+
export const owner = ac.newRole({
|
|
16
|
+
...ownerAc.statements,
|
|
17
|
+
team: ["create", "update", "delete"],
|
|
18
|
+
project: ["create", "update", "delete"],
|
|
19
|
+
blogPost: ["create", "edit", "publish", "delete"]
|
|
20
|
+
});
|
|
21
|
+
export const admin = ac.newRole({
|
|
22
|
+
...adminAc.statements,
|
|
23
|
+
admin: ["access"],
|
|
24
|
+
team: ["create", "update", "delete"],
|
|
25
|
+
project: ["create", "update"]
|
|
26
|
+
});
|
|
27
|
+
export const member = ac.newRole({
|
|
28
|
+
project: ["create"]
|
|
29
|
+
});
|
|
30
|
+
export const user = ac.newRole({
|
|
31
|
+
project: ["create"]
|
|
32
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { createAccessControl } from "better-auth/plugins/access";
|
|
2
|
+
import { adminAc, defaultStatements, ownerAc } from "better-auth/plugins/organization/access";
|
|
3
|
+
const customStatements = {
|
|
4
|
+
admin: ["access"],
|
|
5
|
+
organization: ["create", "update", "delete"],
|
|
6
|
+
team: ["create", "update", "delete"],
|
|
7
|
+
project: ["create", "share", "update", "delete"],
|
|
8
|
+
blogPost: ["create", "edit", "publish", "delete"]
|
|
9
|
+
};
|
|
10
|
+
export const statement = {
|
|
11
|
+
...defaultStatements,
|
|
12
|
+
...customStatements
|
|
13
|
+
};
|
|
14
|
+
export const ac = createAccessControl(statement);
|
|
15
|
+
export const owner = ac.newRole({
|
|
16
|
+
...ownerAc.statements,
|
|
17
|
+
team: ["create", "update", "delete"],
|
|
18
|
+
project: ["create", "update", "delete"],
|
|
19
|
+
blogPost: ["create", "edit", "publish", "delete"]
|
|
20
|
+
});
|
|
21
|
+
export const admin = ac.newRole({
|
|
22
|
+
...adminAc.statements,
|
|
23
|
+
admin: ["access"],
|
|
24
|
+
team: ["create", "update", "delete"],
|
|
25
|
+
project: ["create", "update"]
|
|
26
|
+
});
|
|
27
|
+
export const member = ac.newRole({
|
|
28
|
+
project: ["create"]
|
|
29
|
+
});
|
|
30
|
+
export const user = ac.newRole({
|
|
31
|
+
project: ["create"]
|
|
32
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates a "Skeleton" of the username.
|
|
3
|
+
* If two usernames have the same skeleton, they are visually too similar.
|
|
4
|
+
*/
|
|
5
|
+
export declare const generateUsernameSkeleton: (input: string) => string;
|
|
6
|
+
/**
|
|
7
|
+
* Normalizes a string by:
|
|
8
|
+
* 1. Converting to lowercase.
|
|
9
|
+
* 2. Mapping homoglyphs/leetspeak to base characters.
|
|
10
|
+
* 3. Removing all non-alphanumeric characters.
|
|
11
|
+
*/
|
|
12
|
+
export declare const normalizeUsername: (input: string) => string;
|
|
13
|
+
export declare const STANDARD_RESTRICTED_GROUPS: {
|
|
14
|
+
readonly STAFF_ROLES: readonly ["admin", "administrator", "moderator", "mod", "staff", "support", "help", "official", "verified", "system", "root", "bot", "security", "community", "manager", "dev", "developer", "designer", "gamemaster", "gm", "assistant", "coordinator", "representative", "agent", "supervisor", "executive", "ambassador", "expert", "specialist", "advocate", "internal", "employee", "associate", "webmaster", "sysop", "operator", "host", "referee", "council", "ceo", "founder", "owner"];
|
|
15
|
+
readonly LEGAL_FINANCIAL: readonly ["checkout", "subscribe", "subscription", "premium", "vip", "store", "shop", "marketplace", "wallet", "refund", "invoice", "payout", "rewards", "prize", "giveaway", "claims", "verification", "billing", "payment", "sales", "marketing", "legal", "compliance", "privacy", "tos", "terms", "copyright", "trademark", "dmca", "abuse", "report"];
|
|
16
|
+
readonly TECHNICAL: readonly ["null", "undefined", "nan", "none", "everyone", "all", "guest", "user", "test", "tester", "account", "api", "webhook", "index", "config", "settings", "profile", "auth", "login", "signup", "signin", "logout", "signout", "localhost", "ftp", "smtp", "pop3", "imap", "dns", "proxy", "cdn", "static", "assets", "media", "upload", "download", "docs", "manual", "guide", "tutorial", "error", "404", "500", "maintenance", "update", "patch", "changelog", "status", "db", "database", "sql", "query", "health", "ping", "metrics", "logs", "no-reply", "noreply", "donotreply", "security-alert", "mail", "email", "postmaster"];
|
|
17
|
+
readonly LEETSPEAK: readonly ["4dmin", "@dmin", "st4ff", "m0d", "m0derator", "4dm1n", "4dmin1strator", "m0d3rator", "st4f", "5upport", "0fficial", "v3rified", "5ystem", "r00t", "b0t", "s3curity", "d3v", "d3veloper", "@dministrator", "adm1n", "adm1nistrator"];
|
|
18
|
+
};
|
|
19
|
+
export declare const STANDARD_RESTRICTED_USERNAMES: string[];
|
|
20
|
+
/**
|
|
21
|
+
* Creates a restricted username set with optional app-specific additions.
|
|
22
|
+
* Use this in your app to extend the standard set.
|
|
23
|
+
*/
|
|
24
|
+
export declare const createRestrictedSet: (appSpecificUsernames?: string[]) => Set<string>;
|
|
25
|
+
export declare const RESTRICTED_SET: Set<string>;
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
const HOMOGLYPH_MAP = {
|
|
2
|
+
"0": "o",
|
|
3
|
+
"1": "i",
|
|
4
|
+
"3": "e",
|
|
5
|
+
"4": "a",
|
|
6
|
+
"5": "s",
|
|
7
|
+
"7": "t",
|
|
8
|
+
"8": "b",
|
|
9
|
+
"9": "g",
|
|
10
|
+
"@": "a",
|
|
11
|
+
"!": "i",
|
|
12
|
+
$: "s",
|
|
13
|
+
"|": "i"
|
|
14
|
+
};
|
|
15
|
+
const SKELETON_MAP = {
|
|
16
|
+
// Leetspeak & Numbers
|
|
17
|
+
"0": "o",
|
|
18
|
+
"1": "i",
|
|
19
|
+
"3": "e",
|
|
20
|
+
"4": "a",
|
|
21
|
+
"5": "s",
|
|
22
|
+
"6": "g",
|
|
23
|
+
"7": "t",
|
|
24
|
+
"8": "b",
|
|
25
|
+
"9": "g",
|
|
26
|
+
// Special Characters
|
|
27
|
+
"@": "a",
|
|
28
|
+
$: "s",
|
|
29
|
+
"!": "i",
|
|
30
|
+
"|": "i",
|
|
31
|
+
"+": "t",
|
|
32
|
+
"(": "c",
|
|
33
|
+
"[": "c",
|
|
34
|
+
"{": "c",
|
|
35
|
+
// Cyrillic Homoglyphs
|
|
36
|
+
\u0430: "a",
|
|
37
|
+
\u0435: "e",
|
|
38
|
+
\u0456: "i",
|
|
39
|
+
\u0458: "j",
|
|
40
|
+
\u043E: "o",
|
|
41
|
+
\u0440: "p",
|
|
42
|
+
\u0441: "c",
|
|
43
|
+
\u0443: "y",
|
|
44
|
+
\u0445: "x",
|
|
45
|
+
// Greek Homoglyphs
|
|
46
|
+
\u03B1: "a",
|
|
47
|
+
\u03B5: "e",
|
|
48
|
+
\u03B9: "i",
|
|
49
|
+
\u03BF: "o",
|
|
50
|
+
\u03C1: "p",
|
|
51
|
+
\u03C5: "y",
|
|
52
|
+
\u03C7: "x"
|
|
53
|
+
};
|
|
54
|
+
export const generateUsernameSkeleton = (input) => {
|
|
55
|
+
const normalized = input.normalize("NFKD");
|
|
56
|
+
return normalized.toLowerCase().split("").map((char) => {
|
|
57
|
+
if (char.match(/[\u0300-\u036f]/)) return "";
|
|
58
|
+
return SKELETON_MAP[char] || char;
|
|
59
|
+
}).join("").replace(/[^a-z0-9]/g, "");
|
|
60
|
+
};
|
|
61
|
+
export const normalizeUsername = (input) => {
|
|
62
|
+
return input.toLowerCase().split("").map((char) => HOMOGLYPH_MAP[char] || char).join("").replace(/[^a-z0-9]/g, "");
|
|
63
|
+
};
|
|
64
|
+
export const STANDARD_RESTRICTED_GROUPS = {
|
|
65
|
+
STAFF_ROLES: [
|
|
66
|
+
"admin",
|
|
67
|
+
"administrator",
|
|
68
|
+
"moderator",
|
|
69
|
+
"mod",
|
|
70
|
+
"staff",
|
|
71
|
+
"support",
|
|
72
|
+
"help",
|
|
73
|
+
"official",
|
|
74
|
+
"verified",
|
|
75
|
+
"system",
|
|
76
|
+
"root",
|
|
77
|
+
"bot",
|
|
78
|
+
"security",
|
|
79
|
+
"community",
|
|
80
|
+
"manager",
|
|
81
|
+
"dev",
|
|
82
|
+
"developer",
|
|
83
|
+
"designer",
|
|
84
|
+
"gamemaster",
|
|
85
|
+
"gm",
|
|
86
|
+
"assistant",
|
|
87
|
+
"coordinator",
|
|
88
|
+
"representative",
|
|
89
|
+
"agent",
|
|
90
|
+
"supervisor",
|
|
91
|
+
"executive",
|
|
92
|
+
"ambassador",
|
|
93
|
+
"expert",
|
|
94
|
+
"specialist",
|
|
95
|
+
"advocate",
|
|
96
|
+
"internal",
|
|
97
|
+
"employee",
|
|
98
|
+
"associate",
|
|
99
|
+
"webmaster",
|
|
100
|
+
"sysop",
|
|
101
|
+
"operator",
|
|
102
|
+
"host",
|
|
103
|
+
"referee",
|
|
104
|
+
"council",
|
|
105
|
+
"ceo",
|
|
106
|
+
"founder",
|
|
107
|
+
"owner"
|
|
108
|
+
],
|
|
109
|
+
LEGAL_FINANCIAL: [
|
|
110
|
+
"checkout",
|
|
111
|
+
"subscribe",
|
|
112
|
+
"subscription",
|
|
113
|
+
"premium",
|
|
114
|
+
"vip",
|
|
115
|
+
"store",
|
|
116
|
+
"shop",
|
|
117
|
+
"marketplace",
|
|
118
|
+
"wallet",
|
|
119
|
+
"refund",
|
|
120
|
+
"invoice",
|
|
121
|
+
"payout",
|
|
122
|
+
"rewards",
|
|
123
|
+
"prize",
|
|
124
|
+
"giveaway",
|
|
125
|
+
"claims",
|
|
126
|
+
"verification",
|
|
127
|
+
"billing",
|
|
128
|
+
"payment",
|
|
129
|
+
"sales",
|
|
130
|
+
"marketing",
|
|
131
|
+
"legal",
|
|
132
|
+
"compliance",
|
|
133
|
+
"privacy",
|
|
134
|
+
"tos",
|
|
135
|
+
"terms",
|
|
136
|
+
"copyright",
|
|
137
|
+
"trademark",
|
|
138
|
+
"dmca",
|
|
139
|
+
"abuse",
|
|
140
|
+
"report"
|
|
141
|
+
],
|
|
142
|
+
TECHNICAL: [
|
|
143
|
+
"null",
|
|
144
|
+
"undefined",
|
|
145
|
+
"nan",
|
|
146
|
+
"none",
|
|
147
|
+
"everyone",
|
|
148
|
+
"all",
|
|
149
|
+
"guest",
|
|
150
|
+
"user",
|
|
151
|
+
"test",
|
|
152
|
+
"tester",
|
|
153
|
+
"account",
|
|
154
|
+
"api",
|
|
155
|
+
"webhook",
|
|
156
|
+
"index",
|
|
157
|
+
"config",
|
|
158
|
+
"settings",
|
|
159
|
+
"profile",
|
|
160
|
+
"auth",
|
|
161
|
+
"login",
|
|
162
|
+
"signup",
|
|
163
|
+
"signin",
|
|
164
|
+
"logout",
|
|
165
|
+
"signout",
|
|
166
|
+
"localhost",
|
|
167
|
+
"ftp",
|
|
168
|
+
"smtp",
|
|
169
|
+
"pop3",
|
|
170
|
+
"imap",
|
|
171
|
+
"dns",
|
|
172
|
+
"proxy",
|
|
173
|
+
"cdn",
|
|
174
|
+
"static",
|
|
175
|
+
"assets",
|
|
176
|
+
"media",
|
|
177
|
+
"upload",
|
|
178
|
+
"download",
|
|
179
|
+
"docs",
|
|
180
|
+
"manual",
|
|
181
|
+
"guide",
|
|
182
|
+
"tutorial",
|
|
183
|
+
"error",
|
|
184
|
+
"404",
|
|
185
|
+
"500",
|
|
186
|
+
"maintenance",
|
|
187
|
+
"update",
|
|
188
|
+
"patch",
|
|
189
|
+
"changelog",
|
|
190
|
+
"status",
|
|
191
|
+
"db",
|
|
192
|
+
"database",
|
|
193
|
+
"sql",
|
|
194
|
+
"query",
|
|
195
|
+
"health",
|
|
196
|
+
"ping",
|
|
197
|
+
"metrics",
|
|
198
|
+
"logs",
|
|
199
|
+
"no-reply",
|
|
200
|
+
"noreply",
|
|
201
|
+
"donotreply",
|
|
202
|
+
"security-alert",
|
|
203
|
+
"mail",
|
|
204
|
+
"email",
|
|
205
|
+
"postmaster"
|
|
206
|
+
],
|
|
207
|
+
LEETSPEAK: [
|
|
208
|
+
"4dmin",
|
|
209
|
+
"@dmin",
|
|
210
|
+
"st4ff",
|
|
211
|
+
"m0d",
|
|
212
|
+
"m0derator",
|
|
213
|
+
"4dm1n",
|
|
214
|
+
"4dmin1strator",
|
|
215
|
+
"m0d3rator",
|
|
216
|
+
"st4f",
|
|
217
|
+
"5upport",
|
|
218
|
+
"0fficial",
|
|
219
|
+
"v3rified",
|
|
220
|
+
"5ystem",
|
|
221
|
+
"r00t",
|
|
222
|
+
"b0t",
|
|
223
|
+
"s3curity",
|
|
224
|
+
"d3v",
|
|
225
|
+
"d3veloper",
|
|
226
|
+
"@dministrator",
|
|
227
|
+
"adm1n",
|
|
228
|
+
"adm1nistrator"
|
|
229
|
+
]
|
|
230
|
+
};
|
|
231
|
+
export const STANDARD_RESTRICTED_USERNAMES = Object.values(STANDARD_RESTRICTED_GROUPS).flat().map((name) => normalizeUsername(name));
|
|
232
|
+
export const createRestrictedSet = (appSpecificUsernames = []) => {
|
|
233
|
+
const normalizedAppSpecific = appSpecificUsernames.map((name) => normalizeUsername(name));
|
|
234
|
+
return /* @__PURE__ */ new Set([...STANDARD_RESTRICTED_USERNAMES, ...normalizedAppSpecific]);
|
|
235
|
+
};
|
|
236
|
+
export const RESTRICTED_SET = new Set(STANDARD_RESTRICTED_USERNAMES);
|