@twinfinity/permission 5.0.3-ci.28538
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.d.ts +12 -0
- package/dist/BuildInfo.d.ts.map +1 -0
- package/dist/BuildInfo.js +15 -0
- package/dist/BuildInfo.js.map +1 -0
- package/dist/PermissionClient.d.ts +19 -0
- package/dist/PermissionClient.d.ts.map +1 -0
- package/dist/PermissionClient.js +149 -0
- package/dist/PermissionClient.js.map +1 -0
- package/dist/errors.d.ts +24 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +45 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types.d.ts +48 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/docs/.nojekyll +1 -0
- package/docs/assets/hierarchy.js +1 -0
- package/docs/assets/highlight.css +22 -0
- package/docs/assets/icons.js +18 -0
- package/docs/assets/icons.svg +1 -0
- package/docs/assets/main.js +60 -0
- package/docs/assets/navigation.js +1 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1633 -0
- package/docs/classes/PermissionClient.html +6 -0
- package/docs/classes/PermissionConflictError.html +4 -0
- package/docs/classes/PermissionError.html +4 -0
- package/docs/classes/PermissionForbiddenError.html +3 -0
- package/docs/classes/PermissionNotFoundError.html +3 -0
- package/docs/classes/PermissionValidationError.html +3 -0
- package/docs/enums/PrincipalType.html +4 -0
- package/docs/hierarchy.html +1 -0
- package/docs/index.html +1 -0
- package/docs/interfaces/DeleteGroupRequest.html +2 -0
- package/docs/interfaces/Group.html +8 -0
- package/docs/interfaces/IPermissionClient.html +5 -0
- package/docs/interfaces/PaginatedResponse.html +3 -0
- package/docs/interfaces/Pagination.html +4 -0
- package/docs/interfaces/PermissionErrorBody.html +4 -0
- package/docs/interfaces/PutGroupRequest.html +5 -0
- package/docs/interfaces/User.html +6 -0
- package/package.json +55 -0
- package/src/BuildInfo.ts +28 -0
- package/src/PermissionClient.ts +219 -0
- package/src/errors.ts +55 -0
- package/src/index.ts +3 -0
- package/src/tsconfig.json +12 -0
- package/src/types.ts +51 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type BuildType = 'Dev' | 'Prod';
|
|
2
|
+
export interface BuildInfo {
|
|
3
|
+
readonly major: number;
|
|
4
|
+
readonly minor: number;
|
|
5
|
+
readonly patch: number;
|
|
6
|
+
readonly id: number;
|
|
7
|
+
readonly commit: string;
|
|
8
|
+
readonly version: string;
|
|
9
|
+
readonly buildType: BuildType;
|
|
10
|
+
}
|
|
11
|
+
export declare const BUILD_INFO: Readonly<BuildInfo>;
|
|
12
|
+
//# sourceMappingURL=BuildInfo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildInfo.d.ts","sourceRoot":"","sources":["../src/BuildInfo.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AAEvC,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CACjC;AAiBD,eAAO,MAAM,UAAU,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const gBi = {
|
|
2
|
+
major: 5,
|
|
3
|
+
minor: 0,
|
|
4
|
+
patch: 3,
|
|
5
|
+
id: 28538,
|
|
6
|
+
commit: '8df82701',
|
|
7
|
+
version: '',
|
|
8
|
+
buildType: 'Prod'
|
|
9
|
+
};
|
|
10
|
+
gBi.version = `${gBi.major}.${gBi.minor}.${gBi.patch}.${gBi.id}-[${gBi.commit}]`;
|
|
11
|
+
if (gBi.commit === 'unknownCommit') {
|
|
12
|
+
gBi.buildType = 'Dev';
|
|
13
|
+
}
|
|
14
|
+
export const BUILD_INFO = Object.freeze(gBi);
|
|
15
|
+
//# sourceMappingURL=BuildInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildInfo.js","sourceRoot":"","sources":["../src/BuildInfo.ts"],"names":[],"mappings":"AAYA,MAAM,GAAG,GAAc;IACnB,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;IACb,EAAE,EAAE,MAAM;IACV,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,MAAM;CACpB,CAAC;AAED,GAAG,CAAC,OAAkB,GAAG,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC;AAC7F,IAAI,GAAG,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;IAChC,GAAG,CAAC,SAAuB,GAAG,KAAK,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TwinfinityHttpClient } from '@twinfinity/authentication';
|
|
2
|
+
import type { PaginatedResponse, User, Group, PutGroupRequest, DeleteGroupRequest } from './types';
|
|
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>>;
|
|
6
|
+
putGroup(id: string, request: PutGroupRequest, signal?: AbortSignal): Promise<Group>;
|
|
7
|
+
deleteGroup(id: string, request: DeleteGroupRequest, signal?: AbortSignal): Promise<Group>;
|
|
8
|
+
}
|
|
9
|
+
export declare class PermissionClient implements IPermissionClient {
|
|
10
|
+
private readonly _httpClient;
|
|
11
|
+
private readonly _usersUrl;
|
|
12
|
+
private readonly _groupsUrl;
|
|
13
|
+
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>>;
|
|
16
|
+
putGroup(id: string, request: PutGroupRequest, signal?: AbortSignal): Promise<Group>;
|
|
17
|
+
deleteGroup(id: string, request: DeleteGroupRequest, signal?: AbortSignal): Promise<Group>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=PermissionClient.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { HttpMethod } from '@twinfinity/authentication';
|
|
2
|
+
import { PermissionValidationError, PermissionError, PermissionForbiddenError, PermissionConflictError, PermissionNotFoundError } from './errors';
|
|
3
|
+
function isErrorBody(value) {
|
|
4
|
+
return typeof value === 'object' && value !== null && 'detail' in value && 'cause' in value;
|
|
5
|
+
}
|
|
6
|
+
async function readErrorBody(response) {
|
|
7
|
+
try {
|
|
8
|
+
const json = await response.json();
|
|
9
|
+
return isErrorBody(json) ? json : undefined;
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class PermissionClient {
|
|
16
|
+
_httpClient;
|
|
17
|
+
_usersUrl;
|
|
18
|
+
_groupsUrl;
|
|
19
|
+
constructor(baseUrl, _httpClient) {
|
|
20
|
+
this._httpClient = _httpClient;
|
|
21
|
+
const base = String(baseUrl).replace(/\/+$/, '');
|
|
22
|
+
this._usersUrl = `${base}/_ps/users`;
|
|
23
|
+
this._groupsUrl = `${base}/_ps/groups`;
|
|
24
|
+
}
|
|
25
|
+
async listUsers(page = undefined, limit = 500, signal) {
|
|
26
|
+
const params = new URLSearchParams();
|
|
27
|
+
if (page !== undefined)
|
|
28
|
+
params.set('page', page);
|
|
29
|
+
params.set('limit', limit.toString());
|
|
30
|
+
const url = `${this._usersUrl}?${params}`;
|
|
31
|
+
const response = await this._httpClient.fetch(HttpMethod.Get, url, {
|
|
32
|
+
signal
|
|
33
|
+
});
|
|
34
|
+
if (response.ok) {
|
|
35
|
+
return (await response.json());
|
|
36
|
+
}
|
|
37
|
+
if (response.status === 400) {
|
|
38
|
+
const body = await readErrorBody(response);
|
|
39
|
+
throw new PermissionValidationError(body?.detail ?? 'User listing validation failed', body);
|
|
40
|
+
}
|
|
41
|
+
if (response.status === 403) {
|
|
42
|
+
const body = await readErrorBody(response);
|
|
43
|
+
throw new PermissionForbiddenError(body?.detail ?? 'Insufficient permissions to list users', body);
|
|
44
|
+
}
|
|
45
|
+
const errorText = await response.text();
|
|
46
|
+
throw new PermissionError(`Failed to list users: ${response.status} ${response.statusText} - ${errorText}`, response.status, response.statusText);
|
|
47
|
+
}
|
|
48
|
+
async listGroups(page = undefined, limit = 500, signal) {
|
|
49
|
+
const params = new URLSearchParams();
|
|
50
|
+
if (page !== undefined)
|
|
51
|
+
params.set('page', page);
|
|
52
|
+
params.set('limit', limit.toString());
|
|
53
|
+
const url = `${this._groupsUrl}?${params}`;
|
|
54
|
+
const response = await this._httpClient.fetch(HttpMethod.Get, url, {
|
|
55
|
+
signal
|
|
56
|
+
});
|
|
57
|
+
if (response.ok) {
|
|
58
|
+
return (await response.json());
|
|
59
|
+
}
|
|
60
|
+
if (response.status === 400) {
|
|
61
|
+
const body = await readErrorBody(response);
|
|
62
|
+
throw new PermissionValidationError(body?.detail ?? 'Group listing validation failed', body);
|
|
63
|
+
}
|
|
64
|
+
if (response.status === 403) {
|
|
65
|
+
const body = await readErrorBody(response);
|
|
66
|
+
throw new PermissionForbiddenError(body?.detail ?? 'Insufficient permissions to list groups', body);
|
|
67
|
+
}
|
|
68
|
+
const errorText = await response.text();
|
|
69
|
+
throw new PermissionError(`Failed to list groups: ${response.status} ${response.statusText} - ${errorText}`, response.status, response.statusText);
|
|
70
|
+
}
|
|
71
|
+
async putGroup(id, request, signal) {
|
|
72
|
+
const url = `${this._groupsUrl}/${encodeURIComponent(id)}`;
|
|
73
|
+
const response = await this._httpClient.fetch(HttpMethod.Put, url, {
|
|
74
|
+
headers: { 'Content-Type': 'application/json' },
|
|
75
|
+
body: JSON.stringify(request),
|
|
76
|
+
signal
|
|
77
|
+
});
|
|
78
|
+
if (response.ok) {
|
|
79
|
+
return (await response.json());
|
|
80
|
+
}
|
|
81
|
+
if (response.status === 404) {
|
|
82
|
+
const body = await readErrorBody(response);
|
|
83
|
+
throw new PermissionNotFoundError(body?.detail ?? `Group '${id}' not found`, body);
|
|
84
|
+
}
|
|
85
|
+
if (response.status === 409) {
|
|
86
|
+
let json;
|
|
87
|
+
try {
|
|
88
|
+
json = await response.json();
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
throw new PermissionConflictError('Group conflict', undefined);
|
|
92
|
+
}
|
|
93
|
+
const body = isErrorBody(json) ? json : undefined;
|
|
94
|
+
const data = body !== undefined && typeof json === 'object' && json !== null && 'currentState' in json
|
|
95
|
+
? json.currentState
|
|
96
|
+
: undefined;
|
|
97
|
+
throw new PermissionConflictError(body?.detail ?? 'Group conflict', data, body);
|
|
98
|
+
}
|
|
99
|
+
if (response.status === 403) {
|
|
100
|
+
const body = await readErrorBody(response);
|
|
101
|
+
throw new PermissionForbiddenError(body?.detail ?? 'Insufficient permissions to create or update group', body);
|
|
102
|
+
}
|
|
103
|
+
if (response.status === 400) {
|
|
104
|
+
const body = await readErrorBody(response);
|
|
105
|
+
throw new PermissionValidationError(body?.detail ?? 'Group validation failed', body);
|
|
106
|
+
}
|
|
107
|
+
const errorText = await response.text();
|
|
108
|
+
throw new PermissionError(`Failed to put group: ${response.status} ${response.statusText} - ${errorText}`, response.status, response.statusText);
|
|
109
|
+
}
|
|
110
|
+
async deleteGroup(id, request, signal) {
|
|
111
|
+
const url = `${this._groupsUrl}/${encodeURIComponent(id)}`;
|
|
112
|
+
const response = await this._httpClient.fetch(HttpMethod.Delete, url, {
|
|
113
|
+
headers: { 'If-Match': request.etag },
|
|
114
|
+
signal
|
|
115
|
+
});
|
|
116
|
+
if (response.ok) {
|
|
117
|
+
return (await response.json());
|
|
118
|
+
}
|
|
119
|
+
if (response.status === 404) {
|
|
120
|
+
const body = await readErrorBody(response);
|
|
121
|
+
throw new PermissionNotFoundError(body?.detail ?? `Group '${id}' not found`, body);
|
|
122
|
+
}
|
|
123
|
+
if (response.status === 409) {
|
|
124
|
+
let json;
|
|
125
|
+
try {
|
|
126
|
+
json = await response.json();
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
throw new PermissionConflictError('Group was modified by another user', undefined);
|
|
130
|
+
}
|
|
131
|
+
const body = isErrorBody(json) ? json : undefined;
|
|
132
|
+
const data = body !== undefined && typeof json === 'object' && json !== null && 'currentState' in json
|
|
133
|
+
? json.currentState
|
|
134
|
+
: undefined;
|
|
135
|
+
throw new PermissionConflictError(body?.detail ?? 'Group was modified by another user', data, body);
|
|
136
|
+
}
|
|
137
|
+
if (response.status === 403) {
|
|
138
|
+
const body = await readErrorBody(response);
|
|
139
|
+
throw new PermissionForbiddenError(body?.detail ?? 'Insufficient permissions to delete group', body);
|
|
140
|
+
}
|
|
141
|
+
if (response.status === 400) {
|
|
142
|
+
const body = await readErrorBody(response);
|
|
143
|
+
throw new PermissionValidationError(body?.detail ?? 'Group deletion validation failed', body);
|
|
144
|
+
}
|
|
145
|
+
const errorText = await response.text();
|
|
146
|
+
throw new PermissionError(`Failed to delete group: ${response.status} ${response.statusText} - ${errorText}`, response.status, response.statusText);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=PermissionClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PermissionClient.js","sourceRoot":"","sources":["../src/PermissionClient.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { PermissionErrorBody } from './types';
|
|
2
|
+
export declare class PermissionValidationError extends Error {
|
|
3
|
+
readonly body: PermissionErrorBody | undefined;
|
|
4
|
+
constructor(message: string, body?: PermissionErrorBody);
|
|
5
|
+
}
|
|
6
|
+
export declare class PermissionError extends Error {
|
|
7
|
+
readonly status: number;
|
|
8
|
+
readonly statusText: string;
|
|
9
|
+
constructor(message: string, status: number, statusText: string);
|
|
10
|
+
}
|
|
11
|
+
export declare class PermissionNotFoundError extends Error {
|
|
12
|
+
readonly body: PermissionErrorBody | undefined;
|
|
13
|
+
constructor(message: string, body?: PermissionErrorBody);
|
|
14
|
+
}
|
|
15
|
+
export declare class PermissionForbiddenError extends Error {
|
|
16
|
+
readonly body: PermissionErrorBody | undefined;
|
|
17
|
+
constructor(message: string, body?: PermissionErrorBody);
|
|
18
|
+
}
|
|
19
|
+
export declare class PermissionConflictError<T = unknown> extends Error {
|
|
20
|
+
readonly data: T | undefined;
|
|
21
|
+
readonly body: PermissionErrorBody | undefined;
|
|
22
|
+
constructor(message: string, data: T | undefined, body?: PermissionErrorBody);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,qBAAa,yBAA0B,SAAQ,KAAK;IAChD,SAAgB,IAAI,EAAE,mBAAmB,GAAG,SAAS,CAAC;gBAE1C,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,mBAAmB;CAK1D;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACtC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAEvB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAMlE;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAC9C,SAAgB,IAAI,EAAE,mBAAmB,GAAG,SAAS,CAAC;gBAE1C,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,mBAAmB;CAK1D;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IAC/C,SAAgB,IAAI,EAAE,mBAAmB,GAAG,SAAS,CAAC;gBAE1C,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,mBAAmB;CAK1D;AAED,qBAAa,uBAAuB,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,KAAK;IAC3D,SAAgB,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IACpC,SAAgB,IAAI,EAAE,mBAAmB,GAAG,SAAS,CAAC;gBAE1C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,mBAAmB;CAM/E"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export class PermissionValidationError extends Error {
|
|
2
|
+
body;
|
|
3
|
+
constructor(message, body) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.name = 'PermissionValidationError';
|
|
6
|
+
this.body = body;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class PermissionError extends Error {
|
|
10
|
+
status;
|
|
11
|
+
statusText;
|
|
12
|
+
constructor(message, status, statusText) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.name = 'PermissionError';
|
|
15
|
+
this.status = status;
|
|
16
|
+
this.statusText = statusText;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export class PermissionNotFoundError extends Error {
|
|
20
|
+
body;
|
|
21
|
+
constructor(message, body) {
|
|
22
|
+
super(message);
|
|
23
|
+
this.name = 'PermissionNotFoundError';
|
|
24
|
+
this.body = body;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export class PermissionForbiddenError extends Error {
|
|
28
|
+
body;
|
|
29
|
+
constructor(message, body) {
|
|
30
|
+
super(message);
|
|
31
|
+
this.name = 'PermissionForbiddenError';
|
|
32
|
+
this.body = body;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export class PermissionConflictError extends Error {
|
|
36
|
+
data;
|
|
37
|
+
body;
|
|
38
|
+
constructor(message, data, body) {
|
|
39
|
+
super(message);
|
|
40
|
+
this.name = 'PermissionConflictError';
|
|
41
|
+
this.data = data;
|
|
42
|
+
this.body = body;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAChC,IAAI,CAAkC;IAEtD,YAAY,OAAe,EAAE,IAA0B;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ;AAED,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACtB,MAAM,CAAS;IACf,UAAU,CAAS;IAEnC,YAAY,OAAe,EAAE,MAAc,EAAE,UAAkB;QAC3D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;CACJ;AAED,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAC9B,IAAI,CAAkC;IAEtD,YAAY,OAAe,EAAE,IAA0B;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ;AAED,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAC/B,IAAI,CAAkC;IAEtD,YAAY,OAAe,EAAE,IAA0B;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ;AAED,MAAM,OAAO,uBAAqC,SAAQ,KAAK;IAC3C,IAAI,CAAgB;IACpB,IAAI,CAAkC;IAEtD,YAAY,OAAe,EAAE,IAAmB,EAAE,IAA0B;QACxE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
|