@abraca/dabra 0.8.0 → 0.9.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/dist/abracadabra-provider.cjs +10 -2
- package/dist/abracadabra-provider.cjs.map +1 -1
- package/dist/abracadabra-provider.esm.js +10 -2
- package/dist/abracadabra-provider.esm.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/package.json +1 -1
- package/src/AbracadabraProvider.ts +11 -3
- package/src/types.ts +3 -2
package/dist/index.d.ts
CHANGED
|
@@ -636,7 +636,7 @@ declare enum WebSocketStatus {
|
|
|
636
636
|
Connected = "connected",
|
|
637
637
|
Disconnected = "disconnected"
|
|
638
638
|
}
|
|
639
|
-
type AuthorizedScope = "read-write" | "readonly";
|
|
639
|
+
type AuthorizedScope = "service" | "admin" | "owner" | "editor" | "viewer" | "read-write" | "readonly";
|
|
640
640
|
interface OutgoingMessageInterface {
|
|
641
641
|
encoder: Encoder;
|
|
642
642
|
type?: MessageType;
|
|
@@ -702,7 +702,7 @@ type StatesArray = {
|
|
|
702
702
|
clientId: number;
|
|
703
703
|
[key: string | number]: any;
|
|
704
704
|
}[];
|
|
705
|
-
type EffectiveRole = "owner" | "editor" | "viewer" | null;
|
|
705
|
+
type EffectiveRole = "service" | "admin" | "owner" | "editor" | "viewer" | null;
|
|
706
706
|
/**
|
|
707
707
|
* Ed25519 identity for passwordless crypto auth.
|
|
708
708
|
*
|
|
@@ -731,6 +731,7 @@ interface UserProfile {
|
|
|
731
731
|
username: string;
|
|
732
732
|
email: string | null;
|
|
733
733
|
displayName: string | null;
|
|
734
|
+
role: string;
|
|
734
735
|
}
|
|
735
736
|
interface DocumentMeta {
|
|
736
737
|
id: string;
|
package/package.json
CHANGED
|
@@ -208,8 +208,16 @@ export class AbracadabraProvider extends AbracadabraBaseProvider {
|
|
|
208
208
|
override authenticatedHandler(scope: string) {
|
|
209
209
|
super.authenticatedHandler(scope);
|
|
210
210
|
|
|
211
|
-
|
|
212
|
-
|
|
211
|
+
const roleMap: Record<string, import("./types.ts").EffectiveRole> = {
|
|
212
|
+
service: "service",
|
|
213
|
+
admin: "admin",
|
|
214
|
+
owner: "owner",
|
|
215
|
+
editor: "editor",
|
|
216
|
+
viewer: "viewer",
|
|
217
|
+
"read-write": "editor",
|
|
218
|
+
readonly: "viewer",
|
|
219
|
+
};
|
|
220
|
+
this.effectiveRole = roleMap[scope] ?? "viewer";
|
|
213
221
|
|
|
214
222
|
this.offlineStore?.savePermissionSnapshot(this.effectiveRole);
|
|
215
223
|
}
|
|
@@ -283,7 +291,7 @@ export class AbracadabraProvider extends AbracadabraBaseProvider {
|
|
|
283
291
|
}
|
|
284
292
|
|
|
285
293
|
get canWrite(): boolean {
|
|
286
|
-
return this.effectiveRole
|
|
294
|
+
return this.effectiveRole != null && this.effectiveRole !== "viewer";
|
|
287
295
|
}
|
|
288
296
|
|
|
289
297
|
/** The AbracadabraClient instance for REST API access, if configured. */
|
package/src/types.ts
CHANGED
|
@@ -40,7 +40,7 @@ export enum WebSocketStatus {
|
|
|
40
40
|
Disconnected = "disconnected",
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
export type AuthorizedScope = "read-write" | "readonly";
|
|
43
|
+
export type AuthorizedScope = "service" | "admin" | "owner" | "editor" | "viewer" | "read-write" | "readonly";
|
|
44
44
|
|
|
45
45
|
export interface OutgoingMessageInterface {
|
|
46
46
|
encoder: Encoder;
|
|
@@ -128,7 +128,7 @@ export type StatesArray = { clientId: number; [key: string | number]: any }[];
|
|
|
128
128
|
|
|
129
129
|
// ── Abracadabra extensions ────────────────────────────────────────────────────
|
|
130
130
|
|
|
131
|
-
export type EffectiveRole = "owner" | "editor" | "viewer" | null;
|
|
131
|
+
export type EffectiveRole = "service" | "admin" | "owner" | "editor" | "viewer" | null;
|
|
132
132
|
|
|
133
133
|
/**
|
|
134
134
|
* Ed25519 identity for passwordless crypto auth.
|
|
@@ -165,6 +165,7 @@ export interface UserProfile {
|
|
|
165
165
|
username: string;
|
|
166
166
|
email: string | null;
|
|
167
167
|
displayName: string | null;
|
|
168
|
+
role: string;
|
|
168
169
|
}
|
|
169
170
|
|
|
170
171
|
export interface DocumentMeta {
|