cauthy-auth 0.28.0 → 0.30.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/README.md +52 -1
- package/dist/{cauthy-XkIbG5gE.d.mts → cauthy-BXgsZ-Um.d.mts} +19 -1
- package/dist/{cauthy-DGAy45G2.d.ts → cauthy-CHENs452.d.ts} +19 -1
- package/dist/cli.js +155 -54
- package/dist/client.d.mts +47 -7
- package/dist/client.d.ts +47 -7
- package/dist/client.js +23 -1
- package/dist/client.js.map +1 -1
- package/dist/client.mjs +23 -1
- package/dist/client.mjs.map +1 -1
- package/dist/express.d.mts +2 -2
- package/dist/express.d.ts +2 -2
- package/dist/fastify.d.mts +2 -2
- package/dist/fastify.d.ts +2 -2
- package/dist/hono.d.mts +2 -2
- package/dist/hono.d.ts +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +352 -131
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +350 -131
- package/dist/index.mjs.map +1 -1
- package/dist/next.d.mts +2 -2
- package/dist/next.d.ts +2 -2
- package/dist/react.d.mts +214 -18
- package/dist/react.d.ts +214 -18
- package/dist/react.js +129 -32
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +129 -32
- package/dist/react.mjs.map +1 -1
- package/dist/svelte.d.mts +2 -2
- package/dist/svelte.d.ts +2 -2
- package/dist/svelte.js +37 -2
- package/dist/svelte.js.map +1 -1
- package/dist/svelte.mjs +37 -2
- package/dist/svelte.mjs.map +1 -1
- package/dist/{system-BxMsSIu1.d.mts → system-0mHrdAgO.d.mts} +312 -112
- package/dist/{system-DTIeDXDP.d.ts → system-BIYbS7h2.d.ts} +312 -112
- package/dist/vue.d.mts +2 -2
- package/dist/vue.d.ts +2 -2
- package/dist/vue.js +37 -2
- package/dist/vue.js.map +1 -1
- package/dist/vue.mjs +37 -2
- package/dist/vue.mjs.map +1 -1
- package/package.json +1 -1
package/dist/vue.mjs
CHANGED
|
@@ -257,6 +257,12 @@ function checkOrganization(value, required = false) {
|
|
|
257
257
|
if (v.length > MAX_ORGANIZATION) return { field: "organization", code: "too_long", message: `Use at most ${MAX_ORGANIZATION} characters.` };
|
|
258
258
|
return null;
|
|
259
259
|
}
|
|
260
|
+
function checkOrganizationName(value) {
|
|
261
|
+
const v = typeof value === "string" ? value.trim() : "";
|
|
262
|
+
if (v === "") return { field: "name", code: "required", message: "Enter the organization's name." };
|
|
263
|
+
if (v.length > MAX_ORGANIZATION) return { field: "name", code: "too_long", message: `Use at most ${MAX_ORGANIZATION} characters.` };
|
|
264
|
+
return null;
|
|
265
|
+
}
|
|
260
266
|
function checkCode(value) {
|
|
261
267
|
const v = typeof value === "string" ? value.trim() : "";
|
|
262
268
|
if (v === "") return { field: "code", code: "required", message: "Enter the code." };
|
|
@@ -509,7 +515,23 @@ function createAuthClient(options = {}) {
|
|
|
509
515
|
add: (id, f) => post("/me/organizations/members/add", { organizationId: id, email: f.email, role: f.role, name: f.name ?? "", locale: f.locale ?? "" }, checkEmail(f.email)),
|
|
510
516
|
setRole: (id, userId, role) => post("/me/organizations/members/role", { organizationId: id, userId, role }, null),
|
|
511
517
|
remove: (id, userId) => post("/me/organizations/members/remove", { organizationId: id, userId }, null),
|
|
512
|
-
inviteAgain: (id, userId, f = {}) => post("/me/organizations/members/invite", { organizationId: id, userId, locale: f.locale ?? "" }, null)
|
|
518
|
+
inviteAgain: (id, userId, f = {}) => post("/me/organizations/members/invite", { organizationId: id, userId, locale: f.locale ?? "" }, null),
|
|
519
|
+
rename: (id, name) => post("/me/organizations/rename", { organizationId: id, name }, checkOrganizationName(name)),
|
|
520
|
+
archive: (id) => post("/me/organizations/archive", { organizationId: id }, null),
|
|
521
|
+
delete: (id) => post("/me/organizations/delete", { organizationId: id }, null),
|
|
522
|
+
async check(q) {
|
|
523
|
+
const organizationId = typeof q.organization === "string" ? q.organization : q.organization?.id ?? "";
|
|
524
|
+
const r = await post("/me/organizations/check", {
|
|
525
|
+
organizationId,
|
|
526
|
+
resource: q.resource,
|
|
527
|
+
action: q.action,
|
|
528
|
+
...q.attributes !== void 0 ? { attributes: q.attributes } : {},
|
|
529
|
+
...q.resourceId !== void 0 ? { resourceId: q.resourceId } : {},
|
|
530
|
+
...q.ownerId !== void 0 ? { ownerId: q.ownerId } : {}
|
|
531
|
+
}, null);
|
|
532
|
+
if (!r.ok) return { allowed: false, reason: r.error.message, error: r.error };
|
|
533
|
+
return { allowed: r.allowed === true, reason: String(r.reason ?? ""), ...r.rule ? { rule: r.rule } : {} };
|
|
534
|
+
}
|
|
513
535
|
},
|
|
514
536
|
account: {
|
|
515
537
|
async get() {
|
|
@@ -713,7 +735,9 @@ function can(organization, resource, action) {
|
|
|
713
735
|
if ((organization.denied ?? []).some((d) => matches(d, resource, action))) return false;
|
|
714
736
|
return organization.permissions.some((p) => matches(p, resource, action));
|
|
715
737
|
}
|
|
716
|
-
function definePolicy(
|
|
738
|
+
function definePolicy(given) {
|
|
739
|
+
const roles = Array.isArray(given) ? given : given.roles;
|
|
740
|
+
const resources = Array.isArray(given) ? [] : given.catalog ?? [];
|
|
717
741
|
const entry = (p) => `${p.resource}:${p.action}`;
|
|
718
742
|
const byName = new Map(roles.map((r) => [r.role, r]));
|
|
719
743
|
const split = (permission) => {
|
|
@@ -728,6 +752,12 @@ function definePolicy(roles) {
|
|
|
728
752
|
...r.inherits ? { inherits: [...r.inherits] } : {},
|
|
729
753
|
...r.permissions ? { permissions: r.permissions.map((p) => ({ ...p })) } : {}
|
|
730
754
|
})),
|
|
755
|
+
catalog: resources.map((c) => ({
|
|
756
|
+
resource: c.resource,
|
|
757
|
+
...c.description !== void 0 ? { description: c.description } : {},
|
|
758
|
+
actions: [...c.actions],
|
|
759
|
+
...c.attributes ? { attributes: { ...c.attributes } } : {}
|
|
760
|
+
})),
|
|
731
761
|
roleNames: roles.map((r) => r.role),
|
|
732
762
|
permissions: [...new Set(roles.flatMap((r) => (r.permissions ?? []).map(entry)))],
|
|
733
763
|
can(organization, permission) {
|
|
@@ -749,6 +779,11 @@ function definePolicy(roles) {
|
|
|
749
779
|
};
|
|
750
780
|
walk(role);
|
|
751
781
|
return [...out];
|
|
782
|
+
},
|
|
783
|
+
// The types did the work; this only hands the question on, as a method of
|
|
784
|
+
// the asker so it keeps its `this`.
|
|
785
|
+
check(asker, ...args) {
|
|
786
|
+
return asker.check(...args);
|
|
752
787
|
}
|
|
753
788
|
};
|
|
754
789
|
}
|