@twinfinity/permission 6.0.0 → 6.0.1-ci.28952

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/BuildInfo.js CHANGED
@@ -1,9 +1,9 @@
1
1
  const gBi = {
2
2
  major: 6,
3
3
  minor: 0,
4
- patch: 0,
5
- id: 28602,
6
- commit: '3f17c79a',
4
+ patch: 1,
5
+ id: 28952,
6
+ commit: '87429314',
7
7
  version: '',
8
8
  buildType: 'Prod'
9
9
  };
@@ -1,19 +1,27 @@
1
1
  import { TwinfinityHttpClient } from '@twinfinity/authentication';
2
- import type { PaginatedResponse, User, Group, PutGroupRequest, DeleteGroupRequest } from './types';
2
+ import type { PaginatedResponse, User, Group, GroupMember, PutGroupRequest, DeleteGroupRequest } from './types';
3
3
  export interface IPermissionClient {
4
- listUsers(page?: string, limit?: number, signal?: AbortSignal): Promise<PaginatedResponse<User>>;
5
- listGroups(page?: string, limit?: number, signal?: AbortSignal): Promise<PaginatedResponse<Group>>;
4
+ listUsers(page?: string, limit?: number, q?: string, signal?: AbortSignal): Promise<PaginatedResponse<User>>;
5
+ listGroups(page?: string, limit?: number, q?: string, signal?: AbortSignal): Promise<PaginatedResponse<Group>>;
6
6
  putGroup(id: string, request: PutGroupRequest, signal?: AbortSignal): Promise<Group>;
7
7
  deleteGroup(id: string, request: DeleteGroupRequest, signal?: AbortSignal): Promise<Group>;
8
+ listGroupMembers(groupId: string, page?: string, limit?: number, signal?: AbortSignal): Promise<PaginatedResponse<User>>;
9
+ addGroupMember(groupId: string, userId: string, signal?: AbortSignal): Promise<GroupMember>;
10
+ removeGroupMember(groupId: string, userId: string, signal?: AbortSignal): Promise<GroupMember>;
11
+ listUserGroups(userId: string, page?: string, limit?: number, signal?: AbortSignal): Promise<PaginatedResponse<Group>>;
8
12
  }
9
13
  export declare class PermissionClient implements IPermissionClient {
10
14
  private readonly _httpClient;
11
15
  private readonly _usersUrl;
12
16
  private readonly _groupsUrl;
13
17
  constructor(baseUrl: string | URL, _httpClient: TwinfinityHttpClient);
14
- listUsers(page?: string | undefined, limit?: number, signal?: AbortSignal): Promise<PaginatedResponse<User>>;
15
- listGroups(page?: string | undefined, limit?: number, signal?: AbortSignal): Promise<PaginatedResponse<Group>>;
18
+ listUsers(page?: string | undefined, limit?: number, q?: string, signal?: AbortSignal): Promise<PaginatedResponse<User>>;
19
+ listGroups(page?: string | undefined, limit?: number, q?: string, signal?: AbortSignal): Promise<PaginatedResponse<Group>>;
16
20
  putGroup(id: string, request: PutGroupRequest, signal?: AbortSignal): Promise<Group>;
21
+ listGroupMembers(groupId: string, page?: string | undefined, limit?: number, signal?: AbortSignal): Promise<PaginatedResponse<User>>;
22
+ addGroupMember(groupId: string, userId: string, signal?: AbortSignal): Promise<GroupMember>;
23
+ removeGroupMember(groupId: string, userId: string, signal?: AbortSignal): Promise<GroupMember>;
24
+ listUserGroups(userId: string, page?: string | undefined, limit?: number, signal?: AbortSignal): Promise<PaginatedResponse<Group>>;
17
25
  deleteGroup(id: string, request: DeleteGroupRequest, signal?: AbortSignal): Promise<Group>;
18
26
  }
19
27
  //# sourceMappingURL=PermissionClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionClient.d.ts","sourceRoot":"","sources":["../src/PermissionClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAc,MAAM,4BAA4B,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAuB,MAAM,SAAS,CAAC;AASxH,MAAM,WAAW,iBAAiB;IAC9B,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IACjG,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IACnG,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACrF,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;CAC9F;AAeD,qBAAa,gBAAiB,YAAW,iBAAiB;IAMlD,OAAO,CAAC,QAAQ,CAAC,WAAW;IALhC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAGhC,OAAO,EAAE,MAAM,GAAG,GAAG,EACJ,WAAW,EAAE,oBAAoB;IAOhD,SAAS,CACX,IAAI,GAAE,MAAM,GAAG,SAAqB,EACpC,KAAK,SAAM,EACX,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAiC7B,UAAU,CACZ,IAAI,GAAE,MAAM,GAAG,SAAqB,EACpC,KAAK,SAAM,EACX,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAiC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IAqDpF,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;CAgDnG"}
1
+ {"version":3,"file":"PermissionClient.d.ts","sourceRoot":"","sources":["../src/PermissionClient.ts"],"names":[],"mappings":"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"}
@@ -8,10 +8,22 @@ async function readErrorBody(response) {
8
8
  const json = await response.json();
9
9
  return isErrorBody(json) ? json : undefined;
10
10
  }
11
- catch {
11
+ catch (err) {
12
+ if (err instanceof Error && err.name === 'AbortError')
13
+ throw err;
12
14
  return undefined;
13
15
  }
14
16
  }
17
+ async function readBodyText(response) {
18
+ try {
19
+ return await response.text();
20
+ }
21
+ catch (err) {
22
+ if (err instanceof Error && err.name === 'AbortError')
23
+ throw err;
24
+ return '';
25
+ }
26
+ }
15
27
  export class PermissionClient {
16
28
  _httpClient;
17
29
  _usersUrl;
@@ -22,11 +34,13 @@ export class PermissionClient {
22
34
  this._usersUrl = `${base}/_ps/users`;
23
35
  this._groupsUrl = `${base}/_ps/groups`;
24
36
  }
25
- async listUsers(page = undefined, limit = 500, signal) {
37
+ async listUsers(page = undefined, limit = 500, q, signal) {
26
38
  const params = new URLSearchParams();
27
39
  if (page !== undefined)
28
40
  params.set('page', page);
29
41
  params.set('limit', limit.toString());
42
+ if (q)
43
+ params.set('q', q);
30
44
  const url = `${this._usersUrl}?${params}`;
31
45
  const response = await this._httpClient.fetch(HttpMethod.Get, url, {
32
46
  signal
@@ -42,14 +56,16 @@ export class PermissionClient {
42
56
  const body = await readErrorBody(response);
43
57
  throw new PermissionForbiddenError(body?.detail ?? 'Insufficient permissions to list users', body);
44
58
  }
45
- const errorText = await response.text();
59
+ const errorText = await readBodyText(response);
46
60
  throw new PermissionError(`Failed to list users: ${response.status} ${response.statusText} - ${errorText}`, response.status, response.statusText);
47
61
  }
48
- async listGroups(page = undefined, limit = 500, signal) {
62
+ async listGroups(page = undefined, limit = 500, q, signal) {
49
63
  const params = new URLSearchParams();
50
64
  if (page !== undefined)
51
65
  params.set('page', page);
52
66
  params.set('limit', limit.toString());
67
+ if (q)
68
+ params.set('q', q);
53
69
  const url = `${this._groupsUrl}?${params}`;
54
70
  const response = await this._httpClient.fetch(HttpMethod.Get, url, {
55
71
  signal
@@ -65,7 +81,7 @@ export class PermissionClient {
65
81
  const body = await readErrorBody(response);
66
82
  throw new PermissionForbiddenError(body?.detail ?? 'Insufficient permissions to list groups', body);
67
83
  }
68
- const errorText = await response.text();
84
+ const errorText = await readBodyText(response);
69
85
  throw new PermissionError(`Failed to list groups: ${response.status} ${response.statusText} - ${errorText}`, response.status, response.statusText);
70
86
  }
71
87
  async putGroup(id, request, signal) {
@@ -87,7 +103,9 @@ export class PermissionClient {
87
103
  try {
88
104
  json = await response.json();
89
105
  }
90
- catch {
106
+ catch (err) {
107
+ if (err instanceof Error && err.name === 'AbortError')
108
+ throw err;
91
109
  throw new PermissionConflictError('Group conflict', undefined);
92
110
  }
93
111
  const body = isErrorBody(json) ? json : undefined;
@@ -104,9 +122,109 @@ export class PermissionClient {
104
122
  const body = await readErrorBody(response);
105
123
  throw new PermissionValidationError(body?.detail ?? 'Group validation failed', body);
106
124
  }
107
- const errorText = await response.text();
125
+ const errorText = await readBodyText(response);
108
126
  throw new PermissionError(`Failed to put group: ${response.status} ${response.statusText} - ${errorText}`, response.status, response.statusText);
109
127
  }
128
+ async listGroupMembers(groupId, page = undefined, limit = 500, signal) {
129
+ const params = new URLSearchParams();
130
+ if (page !== undefined)
131
+ params.set('page', page);
132
+ params.set('limit', limit.toString());
133
+ const url = `${this._groupsUrl}/${encodeURIComponent(groupId)}/members?${params}`;
134
+ const response = await this._httpClient.fetch(HttpMethod.Get, url, { signal });
135
+ if (response.ok) {
136
+ return (await response.json());
137
+ }
138
+ if (response.status === 404) {
139
+ const body = await readErrorBody(response);
140
+ throw new PermissionNotFoundError(body?.detail ?? `Group '${groupId}' not found`, body);
141
+ }
142
+ if (response.status === 400) {
143
+ const body = await readErrorBody(response);
144
+ throw new PermissionValidationError(body?.detail ?? 'Group member listing validation failed', body);
145
+ }
146
+ if (response.status === 403) {
147
+ const body = await readErrorBody(response);
148
+ throw new PermissionForbiddenError(body?.detail ?? 'Insufficient permissions to list group members', body);
149
+ }
150
+ const errorText = await readBodyText(response);
151
+ throw new PermissionError(`Failed to list group members: ${response.status} ${response.statusText} - ${errorText}`, response.status, response.statusText);
152
+ }
153
+ async addGroupMember(groupId, userId, signal) {
154
+ const url = `${this._groupsUrl}/${encodeURIComponent(groupId)}/members/${encodeURIComponent(userId)}`;
155
+ const response = await this._httpClient.fetch(HttpMethod.Put, url, { signal });
156
+ if (response.ok) {
157
+ return (await response.json());
158
+ }
159
+ if (response.status === 404) {
160
+ const body = await readErrorBody(response);
161
+ throw new PermissionNotFoundError(body?.detail ?? 'Group or user not found', body);
162
+ }
163
+ if (response.status === 400) {
164
+ const body = await readErrorBody(response);
165
+ throw new PermissionValidationError(body?.detail ?? 'Cannot modify this group', body);
166
+ }
167
+ if (response.status === 403) {
168
+ const body = await readErrorBody(response);
169
+ throw new PermissionForbiddenError(body?.detail ?? 'Insufficient permissions to add group member', body);
170
+ }
171
+ if (response.status === 409) {
172
+ const body = await readErrorBody(response);
173
+ throw new PermissionConflictError(body?.detail ?? 'Group membership was modified concurrently, please retry', undefined, body);
174
+ }
175
+ const errorText = await readBodyText(response);
176
+ throw new PermissionError(`Failed to add group member: ${response.status} ${response.statusText} - ${errorText}`, response.status, response.statusText);
177
+ }
178
+ async removeGroupMember(groupId, userId, signal) {
179
+ const url = `${this._groupsUrl}/${encodeURIComponent(groupId)}/members/${encodeURIComponent(userId)}`;
180
+ const response = await this._httpClient.fetch(HttpMethod.Delete, url, { signal });
181
+ if (response.ok) {
182
+ return (await response.json());
183
+ }
184
+ if (response.status === 404) {
185
+ const body = await readErrorBody(response);
186
+ throw new PermissionNotFoundError(body?.detail ?? 'Group, user, or membership not found', body);
187
+ }
188
+ if (response.status === 400) {
189
+ const body = await readErrorBody(response);
190
+ throw new PermissionValidationError(body?.detail ?? 'Cannot modify this group', body);
191
+ }
192
+ if (response.status === 403) {
193
+ const body = await readErrorBody(response);
194
+ throw new PermissionForbiddenError(body?.detail ?? 'Insufficient permissions to remove group member', body);
195
+ }
196
+ if (response.status === 409) {
197
+ const body = await readErrorBody(response);
198
+ throw new PermissionConflictError(body?.detail ?? 'Group membership was modified concurrently, please retry', undefined, body);
199
+ }
200
+ const errorText = await readBodyText(response);
201
+ throw new PermissionError(`Failed to remove group member: ${response.status} ${response.statusText} - ${errorText}`, response.status, response.statusText);
202
+ }
203
+ async listUserGroups(userId, page = undefined, limit = 500, signal) {
204
+ const params = new URLSearchParams();
205
+ if (page !== undefined)
206
+ params.set('page', page);
207
+ params.set('limit', limit.toString());
208
+ const url = `${this._usersUrl}/${encodeURIComponent(userId)}/groups?${params}`;
209
+ const response = await this._httpClient.fetch(HttpMethod.Get, url, { signal });
210
+ if (response.ok) {
211
+ return (await response.json());
212
+ }
213
+ if (response.status === 404) {
214
+ const body = await readErrorBody(response);
215
+ throw new PermissionNotFoundError(body?.detail ?? `User '${userId}' not found`, body);
216
+ }
217
+ if (response.status === 400) {
218
+ const body = await readErrorBody(response);
219
+ throw new PermissionValidationError(body?.detail ?? 'User group listing validation failed', body);
220
+ }
221
+ if (response.status === 403) {
222
+ const body = await readErrorBody(response);
223
+ throw new PermissionForbiddenError(body?.detail ?? 'Insufficient permissions to list user groups', body);
224
+ }
225
+ const errorText = await readBodyText(response);
226
+ throw new PermissionError(`Failed to list user groups: ${response.status} ${response.statusText} - ${errorText}`, response.status, response.statusText);
227
+ }
110
228
  async deleteGroup(id, request, signal) {
111
229
  const url = `${this._groupsUrl}/${encodeURIComponent(id)}`;
112
230
  const response = await this._httpClient.fetch(HttpMethod.Delete, url, {
@@ -125,7 +243,9 @@ export class PermissionClient {
125
243
  try {
126
244
  json = await response.json();
127
245
  }
128
- catch {
246
+ catch (err) {
247
+ if (err instanceof Error && err.name === 'AbortError')
248
+ throw err;
129
249
  throw new PermissionConflictError('Group was modified by another user', undefined);
130
250
  }
131
251
  const body = isErrorBody(json) ? json : undefined;
@@ -142,7 +262,7 @@ export class PermissionClient {
142
262
  const body = await readErrorBody(response);
143
263
  throw new PermissionValidationError(body?.detail ?? 'Group deletion validation failed', body);
144
264
  }
145
- const errorText = await response.text();
265
+ const errorText = await readBodyText(response);
146
266
  throw new PermissionError(`Failed to delete group: ${response.status} ${response.statusText} - ${errorText}`, response.status, response.statusText);
147
267
  }
148
268
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionClient.js","sourceRoot":"","sources":["../src/PermissionClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE9E,OAAO,EACH,yBAAyB,EACzB,eAAe,EACf,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EAC1B,MAAM,UAAU,CAAC;AASlB,SAAS,WAAW,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,QAAQ,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,CAAC;AAChG,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAkB;IAC3C,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AAED,MAAM,OAAO,gBAAgB;IAMJ;IALJ,SAAS,CAAS;IAClB,UAAU,CAAS;IAEpC,YACI,OAAqB,EACJ,WAAiC;QAAjC,gBAAW,GAAX,WAAW,CAAsB;QAElD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,GAAG,IAAI,YAAY,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,GAAG,IAAI,aAAa,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,SAAS,CACX,OAA2B,SAAS,EACpC,KAAK,GAAG,GAAG,EACX,MAAoB;QAEpB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEtC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE,CAAC;QAE1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE;YAC/D,MAAM;SACT,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA4B,CAAC;QAC9D,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,IAAI,yBAAyB,CAAC,IAAI,EAAE,MAAM,IAAI,gCAAgC,EAAE,IAAI,CAAC,CAAC;QAChG,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,IAAI,wBAAwB,CAAC,IAAI,EAAE,MAAM,IAAI,wCAAwC,EAAE,IAAI,CAAC,CAAC;QACvG,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,eAAe,CACrB,yBAAyB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,MAAM,SAAS,EAAE,EAChF,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,UAAU,CACtB,CAAC;IACN,CAAC;IAED,KAAK,CAAC,UAAU,CACZ,OAA2B,SAAS,EACpC,KAAK,GAAG,GAAG,EACX,MAAoB;QAEpB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEtC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,EAAE,CAAC;QAE3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE;YAC/D,MAAM;SACT,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA6B,CAAC;QAC/D,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,IAAI,yBAAyB,CAAC,IAAI,EAAE,MAAM,IAAI,iCAAiC,EAAE,IAAI,CAAC,CAAC;QACjG,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,IAAI,wBAAwB,CAAC,IAAI,EAAE,MAAM,IAAI,yCAAyC,EAAE,IAAI,CAAC,CAAC;QACxG,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,eAAe,CACrB,0BAA0B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,MAAM,SAAS,EAAE,EACjF,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,UAAU,CACtB,CAAC;IACN,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU,EAAE,OAAwB,EAAE,MAAoB;QACrE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE;YAC/D,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC7B,MAAM;SACT,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAU,CAAC;QAC5C,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,IAAI,uBAAuB,CAAC,IAAI,EAAE,MAAM,IAAI,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACvF,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,IAAI,IAAa,CAAC;YAClB,IAAI,CAAC;gBACD,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACL,MAAM,IAAI,uBAAuB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAClD,MAAM,IAAI,GACN,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,cAAc,IAAI,IAAI;gBACrF,CAAC,CAAE,IAAgC,CAAC,YAAY;gBAChD,CAAC,CAAC,SAAS,CAAC;YACpB,MAAM,IAAI,uBAAuB,CAAC,IAAI,EAAE,MAAM,IAAI,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,IAAI,wBAAwB,CAC9B,IAAI,EAAE,MAAM,IAAI,oDAAoD,EACpE,IAAI,CACP,CAAC;QACN,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,IAAI,yBAAyB,CAAC,IAAI,EAAE,MAAM,IAAI,yBAAyB,EAAE,IAAI,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,eAAe,CACrB,wBAAwB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,MAAM,SAAS,EAAE,EAC/E,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,UAAU,CACtB,CAAC;IACN,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAU,EAAE,OAA2B,EAAE,MAAoB;QAC3E,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE;YAClE,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE;YACrC,MAAM;SACT,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAU,CAAC;QAC5C,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,IAAI,uBAAuB,CAAC,IAAI,EAAE,MAAM,IAAI,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACvF,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,IAAI,IAAa,CAAC;YAClB,IAAI,CAAC;gBACD,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACL,MAAM,IAAI,uBAAuB,CAAC,oCAAoC,EAAE,SAAS,CAAC,CAAC;YACvF,CAAC;YACD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAClD,MAAM,IAAI,GACN,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,cAAc,IAAI,IAAI;gBACrF,CAAC,CAAE,IAAgC,CAAC,YAAY;gBAChD,CAAC,CAAC,SAAS,CAAC;YACpB,MAAM,IAAI,uBAAuB,CAAC,IAAI,EAAE,MAAM,IAAI,oCAAoC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACxG,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,IAAI,wBAAwB,CAAC,IAAI,EAAE,MAAM,IAAI,0CAA0C,EAAE,IAAI,CAAC,CAAC;QACzG,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,IAAI,yBAAyB,CAAC,IAAI,EAAE,MAAM,IAAI,kCAAkC,EAAE,IAAI,CAAC,CAAC;QAClG,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,eAAe,CACrB,2BAA2B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,MAAM,SAAS,EAAE,EAClF,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,UAAU,CACtB,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"PermissionClient.js","sourceRoot":"","sources":["../src/PermissionClient.ts"],"names":[],"mappings":"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"}