@api-client/core 0.5.8 → 0.5.9

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.
@@ -150,6 +150,7 @@ export class Environment {
150
150
  result.server = server.toJSON();
151
151
  }
152
152
  if (this.security) {
153
+ // TODO: When this is defined then call toJSON().
153
154
  result.security = this.security;
154
155
  }
155
156
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"Environment.js","sourceRoot":"","sources":["../../../src/models/Environment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Environment.js","sourceRoot":"","sources":["../../../src/models/Environment.ts"],"names":[],"mappings":"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"}
@@ -351,7 +351,7 @@ export class Request {
351
351
  result.actions = this.actions.toJSON();
352
352
  }
353
353
  if (this.clientCertificate) {
354
- result.clientCertificate = this.clientCertificate;
354
+ result.clientCertificate = { ...this.clientCertificate };
355
355
  }
356
356
  return result;
357
357
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Request.js","sourceRoot":"","sources":["../../../src/models/Request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Request.js","sourceRoot":"","sources":["../../../src/models/Request.ts"],"names":[],"mappings":"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"}
@@ -70,9 +70,10 @@ export class RequestAuthorization {
70
70
  this.valid = valid;
71
71
  }
72
72
  toJSON() {
73
+ const { config = {} } = this;
73
74
  const result = {
74
75
  kind: Kind,
75
- config: this.config || {},
76
+ config: { ...config },
76
77
  enabled: this.enabled || false,
77
78
  type: this.type || '',
78
79
  valid: this.valid || true,
@@ -1 +1 @@
1
- {"version":3,"file":"RequestAuthorization.js","sourceRoot":"","sources":["../../../src/models/RequestAuthorization.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,IAAI,GAAG,2BAA2B,CAAC;AA0BhD,MAAM,OAAO,oBAAoB;IAC/B,IAAI,GAAG,IAAI,CAAC;IACZ;;OAEG;IACH,MAAM,CAA+B;IACrC;;OAEG;IACH,IAAI,CAAqB;IACzB;;OAEG;IACH,OAAO,CAAW;IAClB;;;OAGG;IACH,KAAK,CAAW;IAEhB,MAAM,CAAC,eAAe,CAAC,IAAuB,EAAE,MAAmC,EAAE,KAAK,GAAC,IAAI;QAC7F,OAAO,IAAI,oBAAoB,CAAC;YAC9B,IAAI,EAAE,IAAI;YACV,MAAM;YACN,OAAO,EAAE,IAAI;YACb,IAAI;YACJ,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAAyB;QACzC,OAAO,IAAI,oBAAoB,CAAC;YAC9B,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,IAAI,CAAC,IAAyB;YACpC,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,YAAY,KAAoC;QAC9C,IAAI,IAA2B,CAAC;QAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC1B;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACpC,IAAI,GAAG,KAAK,CAAC;SACd;aAAM;YACL,IAAI,GAAG;gBACL,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,EAAuB;gBAC7B,KAAK,EAAE,IAAI;aACZ,CAAC;SACH;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAA2B;QAC7B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,MAAM,MAAM,GAAyB;YACnC,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAuB;YAC1C,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;SAC1B,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"RequestAuthorization.js","sourceRoot":"","sources":["../../../src/models/RequestAuthorization.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,IAAI,GAAG,2BAA2B,CAAC;AA0BhD,MAAM,OAAO,oBAAoB;IAC/B,IAAI,GAAG,IAAI,CAAC;IACZ;;OAEG;IACH,MAAM,CAA+B;IACrC;;OAEG;IACH,IAAI,CAAqB;IACzB;;OAEG;IACH,OAAO,CAAW;IAClB;;;OAGG;IACH,KAAK,CAAW;IAEhB,MAAM,CAAC,eAAe,CAAC,IAAuB,EAAE,MAAmC,EAAE,KAAK,GAAC,IAAI;QAC7F,OAAO,IAAI,oBAAoB,CAAC;YAC9B,IAAI,EAAE,IAAI;YACV,MAAM;YACN,OAAO,EAAE,IAAI;YACb,IAAI;YACJ,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAAyB;QACzC,OAAO,IAAI,oBAAoB,CAAC;YAC9B,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,IAAI,CAAC,IAAyB;YACpC,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,YAAY,KAAoC;QAC9C,IAAI,IAA2B,CAAC;QAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC1B;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACpC,IAAI,GAAG,KAAK,CAAC;SACd;aAAM;YACL,IAAI,GAAG;gBACL,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,EAAuB;gBAC7B,KAAK,EAAE,IAAI;aACZ,CAAC;SACH;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAA2B;QAC7B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,MAAM,GAAC,EAAE,EAAE,GAAG,IAAI,CAAC;QAC3B,MAAM,MAAM,GAAyB;YACnC,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAuB;YAC1C,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;SAC1B,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -46,7 +46,7 @@ export interface ICapabilities {
46
46
  */
47
47
  canAddChildren: boolean;
48
48
  /**
49
- * Whether the user can delete the file.
49
+ * Whether the user can permanently delete the file.
50
50
  *
51
51
  * The permission to edit can be inherited from a containing space so not visible
52
52
  * in the file's permissions.
@@ -1,4 +1,4 @@
1
- import { IPermission } from './Permission.js';
1
+ import { IPermission, PermissionRole } from './Permission.js';
2
2
  import { IModification } from './Modification.js';
3
3
  import { IDeletion } from './Deletion.js';
4
4
  import { IUser } from './User.js';
@@ -61,6 +61,11 @@ export interface IStoredFile {
61
61
  * This is a readonly field and it is ignored when creating / updating the file.
62
62
  */
63
63
  capabilities?: ICapabilities;
64
+ /**
65
+ * The color of the icon to render for this file in the file explorer.
66
+ * This should be a hex format, e.g.: #c00 for red.
67
+ */
68
+ iconColor?: string;
64
69
  }
65
70
  /**
66
71
  * An interface describing an object in the data store that
@@ -78,6 +83,14 @@ export interface IFile extends IStoredFile {
78
83
  */
79
84
  permissions: IPermission[];
80
85
  }
86
+ declare const parentsSymbol: unique symbol;
87
+ declare const deletedSymbol: unique symbol;
88
+ declare const deletedInfoSymbol: unique symbol;
89
+ declare const ownerSymbol: unique symbol;
90
+ declare const lastModifiedSymbol: unique symbol;
91
+ declare const capabilitiesSymbol: unique symbol;
92
+ declare const permissionsSymbol: unique symbol;
93
+ declare const permissionIdsSymbol: unique symbol;
81
94
  export declare class StoredFile {
82
95
  /**
83
96
  * The kind of the File
@@ -91,6 +104,7 @@ export declare class StoredFile {
91
104
  * The name of the environment.
92
105
  */
93
106
  info: Thing;
107
+ [parentsSymbol]: string[];
94
108
  /**
95
109
  * The list of parents of the object. It is an ordered list of parents
96
110
  * from the top (first element) to the lowest parent in the tree (last element).
@@ -98,36 +112,53 @@ export declare class StoredFile {
98
112
  * This property cannot be manipulated directly by the client. Should be treated as
99
113
  * opaque value.
100
114
  */
101
- parents: string[];
115
+ get parents(): string[];
116
+ [permissionIdsSymbol]: ReadonlyArray<string>;
102
117
  /**
103
118
  * The list of permissions to this file object.
104
119
  *
105
120
  * This property cannot be manipulated directly by the client. Should be treated as
106
121
  * opaque value.
107
122
  */
108
- permissionIds: string[];
123
+ get permissionIds(): ReadonlyArray<string>;
124
+ [deletedSymbol]?: boolean;
109
125
  /**
110
126
  * Whether the file object is deleted.
111
127
  */
112
- deleted?: boolean;
128
+ get deleted(): boolean;
129
+ [deletedInfoSymbol]?: Readonly<IDeletion>;
113
130
  /**
114
131
  * The information about the delete information.
115
132
  * Always set when the `delete` is true.
116
133
  */
117
- deletedInfo?: IDeletion;
134
+ get deletedInfo(): Readonly<IDeletion> | undefined;
135
+ [ownerSymbol]: string;
118
136
  /**
119
137
  * The owner of this space. The id of the User object.
120
138
  * Set to `default` when there are no users in the system (no authentication).
121
139
  */
122
- owner: string;
140
+ get owner(): string;
141
+ [lastModifiedSymbol]: Readonly<IModification>;
123
142
  /**
124
143
  * The last modification made to this file.
125
144
  */
126
- lastModified: IModification;
145
+ get lastModified(): Readonly<IModification>;
127
146
  /**
128
147
  * An arbitrary list of labels applied to the file.
129
148
  */
130
149
  labels?: string[];
150
+ [capabilitiesSymbol]?: Readonly<ICapabilities>;
151
+ /**
152
+ * This is populated when reading a file from the store.
153
+ * A list of actions the user can perform on the file.
154
+ *
155
+ * This is a readonly field and it is ignored when creating / updating the file.
156
+ */
157
+ get capabilities(): Readonly<ICapabilities> | undefined;
158
+ /**
159
+ * The color of the icon to render for this file in the file explorer.
160
+ */
161
+ iconColor?: string;
131
162
  new(init: IStoredFile): void;
132
163
  toJSON(): IStoredFile;
133
164
  /**
@@ -155,15 +186,35 @@ export declare class StoredFile {
155
186
  * @param user The user that deletes the entity.
156
187
  */
157
188
  setDeleted(user: IUser): void;
189
+ /**
190
+ * Creates the Capabilities object for a file giving user level.
191
+ *
192
+ * @param file The file object to create the capabilities to. The object is not mutated.
193
+ * @param role The user role to the file.
194
+ */
195
+ static createFileCapabilities(file: IStoredFile | StoredFile, role?: PermissionRole): ICapabilities;
196
+ createFileCapabilities(role: PermissionRole): ICapabilities;
197
+ /**
198
+ * Mutates the file object by setting the `byMe` properties (on deleted and modified info)
199
+ *
200
+ * Note, this can be done only on file schema (IFile). The `File` object has
201
+ * this properties frozen.
202
+ *
203
+ * @param file The file to mutate
204
+ * @param user The user key to compare.
205
+ */
206
+ static updateByMeMeta(file: IFile, user: string): void;
158
207
  }
159
208
  export declare class File extends StoredFile {
209
+ [permissionsSymbol]: ReadonlyArray<IPermission>;
160
210
  /**
161
211
  * Populated by the server when reading the file. The list of permissions to the object.
162
212
  *
163
213
  * This property cannot be manipulated directly by the client. Should be treated as
164
214
  * opaque value.
165
215
  */
166
- permissions: IPermission[];
216
+ get permissions(): ReadonlyArray<IPermission>;
167
217
  new(init: IFile): void;
168
218
  toJSON(): IFile;
169
219
  }
220
+ export {};
@@ -1,7 +1,16 @@
1
+ import { Permission } from './Permission.js';
1
2
  import { Kind as UserKind } from './User.js';
2
3
  import { Thing } from '../Thing.js';
3
4
  import v4 from '../../lib/uuid.js';
4
5
  export const DefaultOwner = 'default';
6
+ const parentsSymbol = Symbol('parents');
7
+ const deletedSymbol = Symbol('deleted');
8
+ const deletedInfoSymbol = Symbol('deletedInfo');
9
+ const ownerSymbol = Symbol('owner');
10
+ const lastModifiedSymbol = Symbol('lastModified');
11
+ const capabilitiesSymbol = Symbol('capabilities');
12
+ const permissionsSymbol = Symbol('permissions');
13
+ const permissionIdsSymbol = Symbol('permissionIds');
5
14
  export class StoredFile {
6
15
  /**
7
16
  * The kind of the File
@@ -15,6 +24,7 @@ export class StoredFile {
15
24
  * The name of the environment.
16
25
  */
17
26
  info = Thing.fromName('');
27
+ [parentsSymbol] = [];
18
28
  /**
19
29
  * The list of parents of the object. It is an ordered list of parents
20
30
  * from the top (first element) to the lowest parent in the tree (last element).
@@ -22,38 +32,69 @@ export class StoredFile {
22
32
  * This property cannot be manipulated directly by the client. Should be treated as
23
33
  * opaque value.
24
34
  */
25
- parents = [];
35
+ get parents() {
36
+ return this[parentsSymbol];
37
+ }
38
+ [permissionIdsSymbol] = [];
26
39
  /**
27
40
  * The list of permissions to this file object.
28
41
  *
29
42
  * This property cannot be manipulated directly by the client. Should be treated as
30
43
  * opaque value.
31
44
  */
32
- permissionIds = [];
45
+ get permissionIds() {
46
+ return this[permissionIdsSymbol];
47
+ }
48
+ [deletedSymbol];
33
49
  /**
34
50
  * Whether the file object is deleted.
35
51
  */
36
- deleted;
52
+ get deleted() {
53
+ return this[deletedSymbol] || false;
54
+ }
55
+ [deletedInfoSymbol];
37
56
  /**
38
57
  * The information about the delete information.
39
58
  * Always set when the `delete` is true.
40
59
  */
41
- deletedInfo;
60
+ get deletedInfo() {
61
+ return this[deletedInfoSymbol];
62
+ }
63
+ [ownerSymbol] = DefaultOwner;
42
64
  /**
43
65
  * The owner of this space. The id of the User object.
44
66
  * Set to `default` when there are no users in the system (no authentication).
45
67
  */
46
- owner = DefaultOwner;
68
+ get owner() {
69
+ return this[ownerSymbol];
70
+ }
71
+ [lastModifiedSymbol] = { user: '', time: 0, byMe: false };
47
72
  /**
48
73
  * The last modification made to this file.
49
74
  */
50
- lastModified = { user: '', time: 0, byMe: false };
75
+ get lastModified() {
76
+ return this[lastModifiedSymbol];
77
+ }
51
78
  /**
52
79
  * An arbitrary list of labels applied to the file.
53
80
  */
54
81
  labels;
82
+ [capabilitiesSymbol];
83
+ /**
84
+ * This is populated when reading a file from the store.
85
+ * A list of actions the user can perform on the file.
86
+ *
87
+ * This is a readonly field and it is ignored when creating / updating the file.
88
+ */
89
+ get capabilities() {
90
+ return this[capabilitiesSymbol];
91
+ }
92
+ /**
93
+ * The color of the icon to render for this file in the file explorer.
94
+ */
95
+ iconColor;
55
96
  new(init) {
56
- const { key = v4(), info, kind, parents = [], permissionIds = [], deleted, deletedInfo, owner = DefaultOwner, lastModified, labels } = init;
97
+ const { key = v4(), info, kind, parents = [], permissionIds = [], deleted, deletedInfo, owner = DefaultOwner, lastModified, labels, iconColor } = init;
57
98
  this.key = key;
58
99
  this.kind = kind;
59
100
  if (info) {
@@ -62,24 +103,30 @@ export class StoredFile {
62
103
  else {
63
104
  this.info = Thing.fromName('');
64
105
  }
65
- this.parents = parents;
66
- this.permissionIds = permissionIds;
67
- this.owner = owner;
68
- this.lastModified = lastModified ? { ...lastModified } : { user: '', time: 0, byMe: false };
106
+ this[parentsSymbol] = [...parents];
107
+ this[permissionIdsSymbol] = [...permissionIds];
108
+ this[ownerSymbol] = owner;
109
+ this[lastModifiedSymbol] = lastModified ? Object.freeze({ ...lastModified }) : Object.freeze({ user: '', time: 0, byMe: false });
69
110
  if (typeof deleted === 'boolean') {
70
- this.deleted = deleted;
71
- this.deletedInfo = deletedInfo ? { ...deletedInfo } : undefined;
111
+ this[deletedSymbol] = deleted;
112
+ this[deletedInfoSymbol] = deletedInfo ? Object.freeze({ ...deletedInfo }) : undefined;
72
113
  }
73
114
  else {
74
- this.deleted = undefined;
75
- this.deletedInfo = undefined;
115
+ this[deletedSymbol] = undefined;
116
+ this[deletedInfoSymbol] = undefined;
76
117
  }
77
118
  if (Array.isArray(labels)) {
78
- this.labels = labels;
119
+ this.labels = [...labels];
79
120
  }
80
121
  else {
81
122
  this.labels = undefined;
82
123
  }
124
+ if (iconColor) {
125
+ this.iconColor = iconColor;
126
+ }
127
+ else {
128
+ this.iconColor = undefined;
129
+ }
83
130
  }
84
131
  toJSON() {
85
132
  const { owner = DefaultOwner } = this;
@@ -87,17 +134,20 @@ export class StoredFile {
87
134
  key: this.key,
88
135
  kind: this.kind,
89
136
  info: this.info.toJSON(),
90
- parents: this.parents,
91
- permissionIds: this.permissionIds,
92
- lastModified: this.lastModified,
137
+ parents: [...this.parents],
138
+ permissionIds: [...this.permissionIds],
139
+ lastModified: { ...this.lastModified },
93
140
  owner,
94
141
  };
95
142
  if (this.deleted) {
96
143
  result.deleted = this.deleted;
97
- result.deletedInfo = this.deletedInfo;
144
+ result.deletedInfo = { ...this.deletedInfo };
98
145
  }
99
146
  if (Array.isArray(this.labels)) {
100
- result.labels = this.labels;
147
+ result.labels = [...this.labels];
148
+ }
149
+ if (this.iconColor) {
150
+ result.iconColor = this.iconColor;
101
151
  }
102
152
  return result;
103
153
  }
@@ -114,7 +164,7 @@ export class StoredFile {
114
164
  if (user.kind !== UserKind) {
115
165
  throw new Error(`Invalid value for the user when setting "lastModified".`);
116
166
  }
117
- this.lastModified = {
167
+ this[lastModifiedSymbol] = {
118
168
  byMe: false,
119
169
  time: Date.now(),
120
170
  user: user.key,
@@ -159,32 +209,99 @@ export class StoredFile {
159
209
  if (user.kind !== UserKind) {
160
210
  throw new Error(`Invalid value for the user when setting "lastModified".`);
161
211
  }
162
- this.deleted = true;
163
- this.deletedInfo = {
212
+ this[deletedSymbol] = true;
213
+ this[deletedInfoSymbol] = {
164
214
  byMe: false,
165
215
  time: Date.now(),
166
216
  user: user.key,
167
217
  name: user.name,
168
218
  };
169
219
  }
220
+ /**
221
+ * Creates the Capabilities object for a file giving user level.
222
+ *
223
+ * @param file The file object to create the capabilities to. The object is not mutated.
224
+ * @param role The user role to the file.
225
+ */
226
+ static createFileCapabilities(file, role) {
227
+ const isCommenter = Permission.hasRole('commenter', role);
228
+ const isOwner = Permission.hasRole('owner', role);
229
+ const isReader = Permission.hasRole('reader', role);
230
+ const isWriter = Permission.hasRole('writer', role);
231
+ const result = {
232
+ canEdit: isWriter,
233
+ canComment: isCommenter,
234
+ // This is open to discussion. Technically sharing is writing to a file resource.
235
+ // However, should we allow to share the file by a user that has read access?
236
+ canShare: isWriter,
237
+ // not yet supported in the store
238
+ canCopy: false,
239
+ // not yet supported in the store. Currently the user can read revisions when they have read access to the file.
240
+ canReadRevisions: isReader,
241
+ canAddChildren: false,
242
+ // debatable, can writer permanently delete a file?
243
+ canDelete: isOwner,
244
+ canListChildren: false,
245
+ canRename: isWriter,
246
+ // debatable, can writer trash a file?
247
+ canTrash: isOwner,
248
+ canUntrash: isOwner,
249
+ canReadMedia: false,
250
+ };
251
+ // Do not use the `WorkspaceKind` reference here as it's circular and creates
252
+ // an error.
253
+ if (file.kind === 'Core#Space' && isWriter) {
254
+ result.canAddChildren = true;
255
+ }
256
+ if (file.kind === 'Core#Space') {
257
+ result.canListChildren = isReader;
258
+ }
259
+ if (file.kind !== 'Core#Space') {
260
+ result.canReadMedia = isReader;
261
+ }
262
+ return result;
263
+ }
264
+ createFileCapabilities(role) {
265
+ return File.createFileCapabilities(this, role);
266
+ }
267
+ /**
268
+ * Mutates the file object by setting the `byMe` properties (on deleted and modified info)
269
+ *
270
+ * Note, this can be done only on file schema (IFile). The `File` object has
271
+ * this properties frozen.
272
+ *
273
+ * @param file The file to mutate
274
+ * @param user The user key to compare.
275
+ */
276
+ static updateByMeMeta(file, user) {
277
+ if (file.deletedInfo) {
278
+ file.deletedInfo.byMe = file.deletedInfo.user === user;
279
+ }
280
+ if (file.lastModified) {
281
+ file.lastModified.byMe = file.lastModified.user === user;
282
+ }
283
+ }
170
284
  }
171
285
  export class File extends StoredFile {
286
+ [permissionsSymbol] = [];
172
287
  /**
173
288
  * Populated by the server when reading the file. The list of permissions to the object.
174
289
  *
175
290
  * This property cannot be manipulated directly by the client. Should be treated as
176
291
  * opaque value.
177
292
  */
178
- permissions = [];
293
+ get permissions() {
294
+ return this[permissionsSymbol];
295
+ }
179
296
  new(init) {
180
297
  super.new(init);
181
298
  const { permissions = [] } = init;
182
- this.permissions = permissions;
299
+ this[permissionsSymbol] = permissions.map(i => ({ ...i }));
183
300
  }
184
301
  toJSON() {
185
302
  const result = {
186
303
  ...super.toJSON(),
187
- permissions: this.permissions,
304
+ permissions: [...this.permissions],
188
305
  };
189
306
  return result;
190
307
  }
@@ -1 +1 @@
1
- {"version":3,"file":"File.js","sourceRoot":"","sources":["../../../../src/models/store/File.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"File.js","sourceRoot":"","sources":["../../../../src/models/store/File.ts"],"names":[],"mappings":"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"}
@@ -132,6 +132,7 @@ export declare class Permission {
132
132
  *
133
133
  * @param role The user role to set.
134
134
  * @param user The user id that has the role.
135
+ * @param addingUser The key of the user that created this permission
135
136
  */
136
137
  static fromUserRole(role: PermissionRole, user: string, addingUser: string): Permission;
137
138
  /**
@@ -139,13 +140,14 @@ export declare class Permission {
139
140
  *
140
141
  * @param role The group role to set.
141
142
  * @param group The group id that has the role.
143
+ * @param addingUser The key of the user that created this permission
142
144
  */
143
145
  static fromGroupRole(role: PermissionRole, group: string, addingUser: string): Permission;
144
146
  /**
145
147
  * Creates a Permission object for a group.
146
148
  *
147
149
  * @param role The group role to set.
148
- * @param group The group id that has the role.
150
+ * @param addingUser The key of the user that created this permission
149
151
  */
150
152
  static fromAnyoneRole(role: PermissionRole, addingUser: string): Permission;
151
153
  /**
@@ -163,6 +165,19 @@ export declare class Permission {
163
165
  * Checks whether the input is a definition of an user space.
164
166
  */
165
167
  static isPermission(input: unknown): boolean;
168
+ /**
169
+ * Checks whether the current user role meets the minimum required role.
170
+ *
171
+ * @param minimumLevel The minimum requested role
172
+ * @param currentRole The user role. When not set it always returns false.
173
+ * @returns True if the `currentRole` is at least the `minimumRole`
174
+ */
175
+ static hasRole(minimumLevel: PermissionRole, currentRole?: PermissionRole): boolean;
176
+ /**
177
+ * Link to the `Permission.hasRole(minimumLevel, currentRole)`.
178
+ * @see {@link Permission.hasRole}
179
+ */
180
+ hasRole(minimumLevel: PermissionRole, currentRole: PermissionRole): boolean;
166
181
  toJSON(): IPermission;
167
182
  }
168
183
  /**
@@ -1,5 +1,6 @@
1
1
  import v4 from '../../lib/uuid.js';
2
2
  export const Kind = 'Core#Permission';
3
+ const orderedRoles = ["reader", "commenter", "writer", "owner"];
3
4
  export class Permission {
4
5
  kind = Kind;
5
6
  /**
@@ -65,6 +66,7 @@ export class Permission {
65
66
  *
66
67
  * @param role The user role to set.
67
68
  * @param user The user id that has the role.
69
+ * @param addingUser The key of the user that created this permission
68
70
  */
69
71
  static fromUserRole(role, user, addingUser) {
70
72
  const init = {
@@ -82,6 +84,7 @@ export class Permission {
82
84
  *
83
85
  * @param role The group role to set.
84
86
  * @param group The group id that has the role.
87
+ * @param addingUser The key of the user that created this permission
85
88
  */
86
89
  static fromGroupRole(role, group, addingUser) {
87
90
  const init = {
@@ -98,7 +101,7 @@ export class Permission {
98
101
  * Creates a Permission object for a group.
99
102
  *
100
103
  * @param role The group role to set.
101
- * @param group The group id that has the role.
104
+ * @param addingUser The key of the user that created this permission
102
105
  */
103
106
  static fromAnyoneRole(role, addingUser) {
104
107
  const init = {
@@ -189,6 +192,29 @@ export class Permission {
189
192
  }
190
193
  return true;
191
194
  }
195
+ /**
196
+ * Checks whether the current user role meets the minimum required role.
197
+ *
198
+ * @param minimumLevel The minimum requested role
199
+ * @param currentRole The user role. When not set it always returns false.
200
+ * @returns True if the `currentRole` is at least the `minimumRole`
201
+ */
202
+ static hasRole(minimumLevel, currentRole) {
203
+ if (!currentRole) {
204
+ return false;
205
+ }
206
+ const currentAccessIndex = orderedRoles.indexOf(currentRole);
207
+ const requestedAccessIndex = orderedRoles.indexOf(minimumLevel);
208
+ // the current must be at least at the index of requested.
209
+ return currentAccessIndex >= requestedAccessIndex;
210
+ }
211
+ /**
212
+ * Link to the `Permission.hasRole(minimumLevel, currentRole)`.
213
+ * @see {@link Permission.hasRole}
214
+ */
215
+ hasRole(minimumLevel, currentRole) {
216
+ return Permission.hasRole(minimumLevel, currentRole);
217
+ }
192
218
  toJSON() {
193
219
  const result = {
194
220
  kind: Kind,
@@ -1 +1 @@
1
- {"version":3,"file":"Permission.js","sourceRoot":"","sources":["../../../../src/models/store/Permission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Permission.js","sourceRoot":"","sources":["../../../../src/models/store/Permission.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@api-client/core",
3
3
  "description": "The API Client's core client library. Works in NodeJS and in a ES enabled browser.",
4
- "version": "0.5.8",
4
+ "version": "0.5.9",
5
5
  "license": "Apache-2.0",
6
6
  "main": "build/index.js",
7
7
  "module": "build/index.js",
@@ -197,6 +197,7 @@ export class Environment {
197
197
  result.server = server.toJSON();
198
198
  }
199
199
  if (this.security) {
200
+ // TODO: When this is defined then call toJSON().
200
201
  result.security = this.security;
201
202
  }
202
203
  return result;
@@ -401,7 +401,7 @@ export class Request {
401
401
  result.actions = this.actions.toJSON();
402
402
  }
403
403
  if (this.clientCertificate) {
404
- result.clientCertificate = this.clientCertificate;
404
+ result.clientCertificate = { ...this.clientCertificate };
405
405
  }
406
406
  return result;
407
407
  }
@@ -101,9 +101,10 @@ export class RequestAuthorization {
101
101
  }
102
102
 
103
103
  toJSON(): IRequestAuthorization {
104
+ const { config={} } = this;
104
105
  const result:IRequestAuthorization = {
105
106
  kind: Kind,
106
- config: this.config || {},
107
+ config: { ...config },
107
108
  enabled: this.enabled || false,
108
109
  type: this.type || '' as AuthorizationType,
109
110
  valid: this.valid || true,
@@ -46,7 +46,7 @@ export interface ICapabilities {
46
46
  */
47
47
  canAddChildren: boolean;
48
48
  /**
49
- * Whether the user can delete the file.
49
+ * Whether the user can permanently delete the file.
50
50
  *
51
51
  * The permission to edit can be inherited from a containing space so not visible
52
52
  * in the file's permissions.
@@ -1,4 +1,4 @@
1
- import { IPermission } from './Permission.js';
1
+ import { IPermission, Permission, PermissionRole } from './Permission.js';
2
2
  import { IModification } from './Modification.js';
3
3
  import { IDeletion } from './Deletion.js';
4
4
  import { IUser, Kind as UserKind } from './User.js';
@@ -64,6 +64,11 @@ export interface IStoredFile {
64
64
  * This is a readonly field and it is ignored when creating / updating the file.
65
65
  */
66
66
  capabilities?: ICapabilities;
67
+ /**
68
+ * The color of the icon to render for this file in the file explorer.
69
+ * This should be a hex format, e.g.: #c00 for red.
70
+ */
71
+ iconColor?: string;
67
72
  }
68
73
 
69
74
  /**
@@ -83,6 +88,15 @@ export interface IFile extends IStoredFile {
83
88
  permissions: IPermission[];
84
89
  }
85
90
 
91
+ const parentsSymbol = Symbol('parents');
92
+ const deletedSymbol = Symbol('deleted');
93
+ const deletedInfoSymbol = Symbol('deletedInfo');
94
+ const ownerSymbol = Symbol('owner');
95
+ const lastModifiedSymbol = Symbol('lastModified');
96
+ const capabilitiesSymbol = Symbol('capabilities');
97
+ const permissionsSymbol = Symbol('permissions');
98
+ const permissionIdsSymbol = Symbol('permissionIds');
99
+
86
100
  export class StoredFile {
87
101
  /**
88
102
  * The kind of the File
@@ -96,6 +110,9 @@ export class StoredFile {
96
110
  * The name of the environment.
97
111
  */
98
112
  info: Thing = Thing.fromName('');
113
+
114
+ [parentsSymbol]: string[] = [];
115
+
99
116
  /**
100
117
  * The list of parents of the object. It is an ordered list of parents
101
118
  * from the top (first element) to the lowest parent in the tree (last element).
@@ -103,39 +120,84 @@ export class StoredFile {
103
120
  * This property cannot be manipulated directly by the client. Should be treated as
104
121
  * opaque value.
105
122
  */
106
- parents: string[] = [];
123
+ get parents(): string[] {
124
+ return this[parentsSymbol];
125
+ }
126
+
127
+ [permissionIdsSymbol]: ReadonlyArray<string> = [];
128
+
107
129
  /**
108
130
  * The list of permissions to this file object.
109
131
  *
110
132
  * This property cannot be manipulated directly by the client. Should be treated as
111
133
  * opaque value.
112
134
  */
113
- permissionIds: string[] = [];
135
+ get permissionIds(): ReadonlyArray<string> {
136
+ return this[permissionIdsSymbol];
137
+ }
138
+
139
+ [deletedSymbol]?: boolean;
140
+
114
141
  /**
115
142
  * Whether the file object is deleted.
116
143
  */
117
- deleted?: boolean;
144
+ get deleted(): boolean {
145
+ return this[deletedSymbol] || false;
146
+ }
147
+
148
+ [deletedInfoSymbol]?: Readonly<IDeletion>;
149
+
118
150
  /**
119
151
  * The information about the delete information.
120
152
  * Always set when the `delete` is true.
121
153
  */
122
- deletedInfo?: IDeletion;
154
+ get deletedInfo(): Readonly<IDeletion> | undefined {
155
+ return this[deletedInfoSymbol];
156
+ }
157
+
158
+ [ownerSymbol]: string = DefaultOwner;
159
+
123
160
  /**
124
161
  * The owner of this space. The id of the User object.
125
162
  * Set to `default` when there are no users in the system (no authentication).
126
163
  */
127
- owner = DefaultOwner;
164
+ get owner(): string {
165
+ return this[ownerSymbol];
166
+ }
167
+
168
+ [lastModifiedSymbol]: Readonly<IModification> = { user: '', time: 0, byMe: false };
169
+
128
170
  /**
129
171
  * The last modification made to this file.
130
172
  */
131
- lastModified: IModification = { user: '', time: 0, byMe: false };
173
+ get lastModified(): Readonly<IModification> {
174
+ return this[lastModifiedSymbol];
175
+ }
176
+
132
177
  /**
133
178
  * An arbitrary list of labels applied to the file.
134
179
  */
135
180
  labels?: string[];
136
181
 
182
+ [capabilitiesSymbol]?: Readonly<ICapabilities>;
183
+
184
+ /**
185
+ * This is populated when reading a file from the store.
186
+ * A list of actions the user can perform on the file.
187
+ *
188
+ * This is a readonly field and it is ignored when creating / updating the file.
189
+ */
190
+ get capabilities(): Readonly<ICapabilities> | undefined {
191
+ return this[capabilitiesSymbol];
192
+ }
193
+
194
+ /**
195
+ * The color of the icon to render for this file in the file explorer.
196
+ */
197
+ iconColor?: string;
198
+
137
199
  new(init: IStoredFile): void {
138
- const { key = v4(), info, kind, parents=[], permissionIds=[], deleted, deletedInfo, owner = DefaultOwner, lastModified, labels } = init;
200
+ const { key = v4(), info, kind, parents=[], permissionIds=[], deleted, deletedInfo, owner = DefaultOwner, lastModified, labels, iconColor } = init;
139
201
  this.key = key;
140
202
  this.kind = kind;
141
203
  if (info) {
@@ -143,22 +205,27 @@ export class StoredFile {
143
205
  } else {
144
206
  this.info = Thing.fromName('');
145
207
  }
146
- this.parents = parents;
147
- this.permissionIds = permissionIds;
148
- this.owner = owner;
149
- this.lastModified = lastModified ? { ...lastModified } : { user: '', time: 0, byMe: false };
208
+ this[parentsSymbol] = [...parents];
209
+ this[permissionIdsSymbol] = [...permissionIds];
210
+ this[ownerSymbol] = owner;
211
+ this[lastModifiedSymbol] = lastModified ? Object.freeze({ ...lastModified }) : Object.freeze({ user: '', time: 0, byMe: false });
150
212
  if (typeof deleted === 'boolean') {
151
- this.deleted = deleted;
152
- this.deletedInfo = deletedInfo ? { ...deletedInfo } : undefined;
213
+ this[deletedSymbol] = deleted;
214
+ this[deletedInfoSymbol] = deletedInfo ? Object.freeze({ ...deletedInfo }) : undefined;
153
215
  } else {
154
- this.deleted = undefined;
155
- this.deletedInfo = undefined;
216
+ this[deletedSymbol] = undefined;
217
+ this[deletedInfoSymbol] = undefined;
156
218
  }
157
219
  if (Array.isArray(labels)) {
158
- this.labels = labels;
220
+ this.labels = [...labels];
159
221
  } else {
160
222
  this.labels = undefined;
161
223
  }
224
+ if (iconColor) {
225
+ this.iconColor = iconColor;
226
+ } else {
227
+ this.iconColor = undefined;
228
+ }
162
229
  }
163
230
 
164
231
  toJSON(): IStoredFile {
@@ -167,17 +234,20 @@ export class StoredFile {
167
234
  key: this.key,
168
235
  kind: this.kind,
169
236
  info: this.info.toJSON(),
170
- parents: this.parents,
171
- permissionIds: this.permissionIds,
172
- lastModified: this.lastModified,
237
+ parents: [...this.parents],
238
+ permissionIds: [...this.permissionIds],
239
+ lastModified: { ...this.lastModified },
173
240
  owner,
174
241
  };
175
242
  if (this.deleted) {
176
243
  result.deleted = this.deleted;
177
- result.deletedInfo = this.deletedInfo;
244
+ result.deletedInfo = { ...this.deletedInfo } as IDeletion;
178
245
  }
179
246
  if (Array.isArray(this.labels)) {
180
- result.labels = this.labels;
247
+ result.labels = [...this.labels];
248
+ }
249
+ if (this.iconColor) {
250
+ result.iconColor = this.iconColor;
181
251
  }
182
252
  return result;
183
253
  }
@@ -195,7 +265,7 @@ export class StoredFile {
195
265
  if (user.kind !== UserKind) {
196
266
  throw new Error(`Invalid value for the user when setting "lastModified".`);
197
267
  }
198
- this.lastModified = {
268
+ this[lastModifiedSymbol] = {
199
269
  byMe: false,
200
270
  time: Date.now(),
201
271
  user: user.key,
@@ -242,35 +312,106 @@ export class StoredFile {
242
312
  if (user.kind !== UserKind) {
243
313
  throw new Error(`Invalid value for the user when setting "lastModified".`);
244
314
  }
245
- this.deleted = true;
246
- this.deletedInfo = {
315
+ this[deletedSymbol] = true;
316
+ this[deletedInfoSymbol] = {
247
317
  byMe: false,
248
318
  time: Date.now(),
249
319
  user: user.key,
250
320
  name: user.name,
251
321
  };
252
322
  }
323
+
324
+ /**
325
+ * Creates the Capabilities object for a file giving user level.
326
+ *
327
+ * @param file The file object to create the capabilities to. The object is not mutated.
328
+ * @param role The user role to the file.
329
+ */
330
+ static createFileCapabilities(file: IStoredFile | StoredFile, role?: PermissionRole): ICapabilities {
331
+ const isCommenter = Permission.hasRole('commenter', role);
332
+ const isOwner = Permission.hasRole('owner', role);
333
+ const isReader = Permission.hasRole('reader', role);
334
+ const isWriter = Permission.hasRole('writer', role);
335
+ const result: ICapabilities = {
336
+ canEdit: isWriter,
337
+ canComment: isCommenter,
338
+ // This is open to discussion. Technically sharing is writing to a file resource.
339
+ // However, should we allow to share the file by a user that has read access?
340
+ canShare: isWriter,
341
+ // not yet supported in the store
342
+ canCopy: false,
343
+ // not yet supported in the store. Currently the user can read revisions when they have read access to the file.
344
+ canReadRevisions: isReader,
345
+ canAddChildren: false,
346
+ // debatable, can writer permanently delete a file?
347
+ canDelete: isOwner,
348
+ canListChildren: false,
349
+ canRename: isWriter,
350
+ // debatable, can writer trash a file?
351
+ canTrash: isOwner,
352
+ canUntrash: isOwner,
353
+ canReadMedia: false,
354
+ };
355
+ // Do not use the `WorkspaceKind` reference here as it's circular and creates
356
+ // an error.
357
+ if (file.kind === 'Core#Space' && isWriter) {
358
+ result.canAddChildren = true;
359
+ }
360
+ if (file.kind === 'Core#Space') {
361
+ result.canListChildren = isReader;
362
+ }
363
+ if (file.kind !== 'Core#Space') {
364
+ result.canReadMedia = isReader;
365
+ }
366
+ return result;
367
+ }
368
+
369
+ createFileCapabilities(role: PermissionRole): ICapabilities {
370
+ return File.createFileCapabilities(this, role);
371
+ }
372
+
373
+ /**
374
+ * Mutates the file object by setting the `byMe` properties (on deleted and modified info)
375
+ *
376
+ * Note, this can be done only on file schema (IFile). The `File` object has
377
+ * this properties frozen.
378
+ *
379
+ * @param file The file to mutate
380
+ * @param user The user key to compare.
381
+ */
382
+ static updateByMeMeta(file: IFile, user: string): void {
383
+ if (file.deletedInfo) {
384
+ file.deletedInfo.byMe = file.deletedInfo.user === user;
385
+ }
386
+ if (file.lastModified) {
387
+ file.lastModified.byMe = file.lastModified.user === user;
388
+ }
389
+ }
253
390
  }
254
391
 
255
392
  export class File extends StoredFile {
393
+ [permissionsSymbol]: ReadonlyArray<IPermission> = [];
394
+
256
395
  /**
257
396
  * Populated by the server when reading the file. The list of permissions to the object.
258
397
  *
259
398
  * This property cannot be manipulated directly by the client. Should be treated as
260
399
  * opaque value.
261
400
  */
262
- permissions: IPermission[] = [];
401
+ get permissions(): ReadonlyArray<IPermission> {
402
+ return this[permissionsSymbol];
403
+ }
263
404
 
264
405
  new(init: IFile): void {
265
406
  super.new(init);
266
407
  const { permissions=[] } = init;
267
- this.permissions = permissions;
408
+ this[permissionsSymbol] = permissions.map(i => ({ ...i }));
268
409
  }
269
410
 
270
411
  toJSON(): IFile {
271
412
  const result: IFile = {
272
413
  ...super.toJSON(),
273
- permissions: this.permissions,
414
+ permissions: [...this.permissions],
274
415
  };
275
416
  return result;
276
417
  }
@@ -4,6 +4,7 @@ export const Kind = 'Core#Permission';
4
4
 
5
5
  export type PermissionType = 'user' | 'group' | 'anyone';
6
6
  export type PermissionRole = 'owner' | 'reader' | 'commenter' | 'writer';
7
+ const orderedRoles: PermissionRole[] = ["reader", "commenter", "writer", "owner"];
7
8
 
8
9
  interface IBasePermission {
9
10
  /**
@@ -64,7 +65,7 @@ interface IBasePermission {
64
65
  /**
65
66
  * A schema describing a permission to a store object.
66
67
  */
67
- export interface IPermission extends IBasePermission{
68
+ export interface IPermission extends IBasePermission {
68
69
  kind: typeof Kind;
69
70
  /**
70
71
  * The data store key of the permission.
@@ -141,6 +142,7 @@ export class Permission {
141
142
  *
142
143
  * @param role The user role to set.
143
144
  * @param user The user id that has the role.
145
+ * @param addingUser The key of the user that created this permission
144
146
  */
145
147
  static fromUserRole(role: PermissionRole, user: string, addingUser: string): Permission {
146
148
  const init: IPermission = {
@@ -159,6 +161,7 @@ export class Permission {
159
161
  *
160
162
  * @param role The group role to set.
161
163
  * @param group The group id that has the role.
164
+ * @param addingUser The key of the user that created this permission
162
165
  */
163
166
  static fromGroupRole(role: PermissionRole, group: string, addingUser: string): Permission {
164
167
  const init: IPermission = {
@@ -176,7 +179,7 @@ export class Permission {
176
179
  * Creates a Permission object for a group.
177
180
  *
178
181
  * @param role The group role to set.
179
- * @param group The group id that has the role.
182
+ * @param addingUser The key of the user that created this permission
180
183
  */
181
184
  static fromAnyoneRole(role: PermissionRole, addingUser: string): Permission {
182
185
  const init: IPermission = {
@@ -267,6 +270,31 @@ export class Permission {
267
270
  return true;
268
271
  }
269
272
 
273
+ /**
274
+ * Checks whether the current user role meets the minimum required role.
275
+ *
276
+ * @param minimumLevel The minimum requested role
277
+ * @param currentRole The user role. When not set it always returns false.
278
+ * @returns True if the `currentRole` is at least the `minimumRole`
279
+ */
280
+ static hasRole(minimumLevel: PermissionRole, currentRole?: PermissionRole): boolean {
281
+ if (!currentRole) {
282
+ return false;
283
+ }
284
+ const currentAccessIndex = orderedRoles.indexOf(currentRole);
285
+ const requestedAccessIndex = orderedRoles.indexOf(minimumLevel);
286
+ // the current must be at least at the index of requested.
287
+ return currentAccessIndex >= requestedAccessIndex;
288
+ }
289
+
290
+ /**
291
+ * Link to the `Permission.hasRole(minimumLevel, currentRole)`.
292
+ * @see {@link Permission.hasRole}
293
+ */
294
+ hasRole(minimumLevel: PermissionRole, currentRole: PermissionRole): boolean {
295
+ return Permission.hasRole(minimumLevel, currentRole);
296
+ }
297
+
270
298
  toJSON(): IPermission {
271
299
  const result: IPermission = {
272
300
  kind: Kind,