@or-sdk/permissions 1.0.1-beta.3156.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 ADDED
@@ -0,0 +1 @@
1
+ ## Installation:
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
28
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.Permissions = void 0;
55
+ var base_1 = require("@or-sdk/base");
56
+ var constants_1 = require("./constants");
57
+ var Permissions = (function (_super) {
58
+ __extends(Permissions, _super);
59
+ function Permissions(params) {
60
+ var token = params.token, discoveryUrl = params.discoveryUrl, permissionsUrl = params.permissionsUrl;
61
+ return _super.call(this, {
62
+ token: token,
63
+ discoveryUrl: discoveryUrl,
64
+ serviceUrl: permissionsUrl,
65
+ serviceKey: constants_1.SERVICE_KEY,
66
+ }) || this;
67
+ }
68
+ Permissions.prototype.getCurrentUserPermissionsByService = function (service) {
69
+ return __awaiter(this, void 0, void 0, function () {
70
+ var data;
71
+ return __generator(this, function (_a) {
72
+ switch (_a.label) {
73
+ case 0: return [4, this.callApiV2({
74
+ method: 'GET',
75
+ route: '/v1/permissions',
76
+ params: { service: service },
77
+ })];
78
+ case 1:
79
+ data = _a.sent();
80
+ return [2, data];
81
+ }
82
+ });
83
+ });
84
+ };
85
+ Permissions.prototype.getAllCurrentUserPermissions = function () {
86
+ return __awaiter(this, void 0, void 0, function () {
87
+ var data;
88
+ return __generator(this, function (_a) {
89
+ switch (_a.label) {
90
+ case 0: return [4, this.callApiV2({
91
+ method: 'GET',
92
+ route: '/v1/permissions/all',
93
+ })];
94
+ case 1:
95
+ data = _a.sent();
96
+ return [2, data];
97
+ }
98
+ });
99
+ });
100
+ };
101
+ Permissions.prototype.updateEntityPermissions = function (data) {
102
+ return __awaiter(this, void 0, void 0, function () {
103
+ var response;
104
+ return __generator(this, function (_a) {
105
+ switch (_a.label) {
106
+ case 0: return [4, this.callApiV2({
107
+ method: 'PUT',
108
+ route: '/v1/permissions',
109
+ data: data,
110
+ })];
111
+ case 1:
112
+ response = _a.sent();
113
+ return [2, response];
114
+ }
115
+ });
116
+ });
117
+ };
118
+ Permissions.prototype.getAllUserPermissions = function (userid) {
119
+ return __awaiter(this, void 0, void 0, function () {
120
+ var response;
121
+ return __generator(this, function (_a) {
122
+ switch (_a.label) {
123
+ case 0: return [4, this.callApiV2({
124
+ method: 'GET',
125
+ route: "/v1/permissions/all/".concat(userid),
126
+ })];
127
+ case 1:
128
+ response = _a.sent();
129
+ return [2, response];
130
+ }
131
+ });
132
+ });
133
+ };
134
+ return Permissions;
135
+ }(base_1.Base));
136
+ exports.Permissions = Permissions;
137
+ //# sourceMappingURL=Permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Permissions.js","sourceRoot":"","sources":["../../src/Permissions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAoC;AAEpC,yCAA0C;AAU1C;IAAiC,+BAAI;IAUnC,qBAAY,MAAyB;QAC3B,IAAA,KAAK,GAAmC,MAAM,MAAzC,EAAE,YAAY,GAAqB,MAAM,aAA3B,EAAE,cAAc,GAAK,MAAM,eAAX,CAAY;QAEvD,OAAA,MAAK,YAAC;YACJ,KAAK,OAAA;YACL,YAAY,cAAA;YACZ,UAAU,EAAE,cAAc;YAC1B,UAAU,EAAE,uBAAW;SACxB,CAAC,SAAC;IACL,CAAC;IAEK,wDAAkC,GAAxC,UAAyC,OAAe;;;;;4BACzC,WAAM,IAAI,CAAC,SAAS,CAA+B;4BAC9D,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,iBAAiB;4BACxB,MAAM,EAAE,EAAE,OAAO,SAAA,EAAE;yBACpB,CAAC,EAAA;;wBAJI,IAAI,GAAG,SAIX;wBACF,WAAO,IAAI,EAAC;;;;KACb;IAEK,kDAA4B,GAAlC;;;;;4BACe,WAAM,IAAI,CAAC,SAAS,CAA4B;4BAC3D,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,qBAAqB;yBAC7B,CAAC,EAAA;;wBAHI,IAAI,GAAG,SAGX;wBACF,WAAO,IAAI,EAAC;;;;KACb;IAEK,6CAAuB,GAA7B,UAA8B,IAA6B;;;;;4BACxC,WAAM,IAAI,CAAC,SAAS,CAA4B;4BAC/D,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,iBAAiB;4BACxB,IAAI,MAAA;yBACL,CAAC,EAAA;;wBAJI,QAAQ,GAAG,SAIf;wBACF,WAAO,QAAQ,EAAC;;;;KACjB;IAEK,2CAAqB,GAA3B,UAA4B,MAAc;;;;;4BACvB,WAAM,IAAI,CAAC,SAAS,CAA4B;4BAC/D,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,8BAAuB,MAAM,CAAE;yBACvC,CAAC,EAAA;;wBAHI,QAAQ,GAAG,SAGf;wBACF,WAAO,QAAQ,EAAC;;;;KACjB;IACH,kBAAC;AAAD,CAAC,AAtDD,CAAiC,WAAI,GAsDpC;AAtDY,kCAAW"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SERVICE_KEY = void 0;
4
+ exports.SERVICE_KEY = 'permissions-api';
5
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,iBAAiB,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Permissions = void 0;
18
+ var Permissions_1 = require("./Permissions");
19
+ Object.defineProperty(exports, "Permissions", { enumerable: true, get: function () { return Permissions_1.Permissions; } });
20
+ __exportStar(require("./types"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,0CAAwB"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EntityType = void 0;
4
+ var EntityType;
5
+ (function (EntityType) {
6
+ EntityType["SingleUser"] = "SingleUser";
7
+ EntityType["MultiUser"] = "MultiUser";
8
+ })(EntityType || (exports.EntityType = EntityType = {}));
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAEA,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,uCAAyB,CAAA;IACzB,qCAAuB,CAAA;AACzB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB"}
@@ -0,0 +1,61 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { Base } from '@or-sdk/base';
11
+ import { SERVICE_KEY } from './constants';
12
+ export class Permissions extends Base {
13
+ constructor(params) {
14
+ const { token, discoveryUrl, permissionsUrl } = params;
15
+ super({
16
+ token,
17
+ discoveryUrl,
18
+ serviceUrl: permissionsUrl,
19
+ serviceKey: SERVICE_KEY,
20
+ });
21
+ }
22
+ getCurrentUserPermissionsByService(service) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ const data = yield this.callApiV2({
25
+ method: 'GET',
26
+ route: '/v1/permissions',
27
+ params: { service },
28
+ });
29
+ return data;
30
+ });
31
+ }
32
+ getAllCurrentUserPermissions() {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ const data = yield this.callApiV2({
35
+ method: 'GET',
36
+ route: '/v1/permissions/all',
37
+ });
38
+ return data;
39
+ });
40
+ }
41
+ updateEntityPermissions(data) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ const response = yield this.callApiV2({
44
+ method: 'PUT',
45
+ route: '/v1/permissions',
46
+ data,
47
+ });
48
+ return response;
49
+ });
50
+ }
51
+ getAllUserPermissions(userid) {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ const response = yield this.callApiV2({
54
+ method: 'GET',
55
+ route: `/v1/permissions/all/${userid}`,
56
+ });
57
+ return response;
58
+ });
59
+ }
60
+ }
61
+ //# sourceMappingURL=Permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Permissions.js","sourceRoot":"","sources":["../../src/Permissions.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAU1C,MAAM,OAAO,WAAY,SAAQ,IAAI;IAUnC,YAAY,MAAyB;QACnC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;QAEvD,KAAK,CAAC;YACJ,KAAK;YACL,YAAY;YACZ,UAAU,EAAE,cAAc;YAC1B,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC;IACL,CAAC;IAEK,kCAAkC,CAAC,OAAe;;YACtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAA+B;gBAC9D,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,EAAE,OAAO,EAAE;aACpB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAEK,4BAA4B;;YAChC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAA4B;gBAC3D,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,qBAAqB;aAC7B,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAEK,uBAAuB,CAAC,IAA6B;;YACzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAA4B;gBAC/D,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,iBAAiB;gBACxB,IAAI;aACL,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAEK,qBAAqB,CAAC,MAAc;;YACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAA4B;gBAC/D,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,uBAAuB,MAAM,EAAE;aACvC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;CACF"}
@@ -0,0 +1,2 @@
1
+ export const SERVICE_KEY = 'permissions-api';
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Permissions } from './Permissions';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,cAAc,SAAS,CAAC"}
@@ -0,0 +1,6 @@
1
+ export var EntityType;
2
+ (function (EntityType) {
3
+ EntityType["SingleUser"] = "SingleUser";
4
+ EntityType["MultiUser"] = "MultiUser";
5
+ })(EntityType || (EntityType = {}));
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,uCAAyB,CAAA;IACzB,qCAAuB,CAAA;AACzB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB"}
@@ -0,0 +1,10 @@
1
+ import { Base } from '@or-sdk/base';
2
+ import { GetAllPermissionsResponse, GetPermissionByServiceResult, PermissionsConfig, UpdateEntityPermissions } from './types';
3
+ export declare class Permissions extends Base {
4
+ constructor(params: PermissionsConfig);
5
+ getCurrentUserPermissionsByService(service: string): Promise<GetPermissionByServiceResult>;
6
+ getAllCurrentUserPermissions(): Promise<GetAllPermissionsResponse>;
7
+ updateEntityPermissions(data: UpdateEntityPermissions): Promise<GetAllPermissionsResponse>;
8
+ getAllUserPermissions(userid: string): Promise<GetAllPermissionsResponse>;
9
+ }
10
+ //# sourceMappingURL=Permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Permissions.d.ts","sourceRoot":"","sources":["../../src/Permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,OAAO,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAS9H,qBAAa,WAAY,SAAQ,IAAI;gBAUvB,MAAM,EAAE,iBAAiB;IAW/B,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAS1F,4BAA4B,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAQlE,uBAAuB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAS1F,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAOhF"}
@@ -0,0 +1,2 @@
1
+ export declare const SERVICE_KEY = "permissions-api";
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,oBAAoB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Permissions } from './Permissions';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,cAAc,SAAS,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { Token } from '@or-sdk/base';
2
+ export declare enum EntityType {
3
+ SingleUser = "SingleUser",
4
+ MultiUser = "MultiUser"
5
+ }
6
+ export type PermissionsConfig = {
7
+ token: Token;
8
+ permissionsUrl: string;
9
+ discoveryUrl?: string;
10
+ };
11
+ export type GetPermissionByServiceResult = {
12
+ [key: string]: boolean;
13
+ };
14
+ export type ServicePermission = {
15
+ name: string;
16
+ effect: boolean;
17
+ };
18
+ export type ServiceWithPermissions = {
19
+ serviceName: string;
20
+ permissions: ServicePermission[];
21
+ };
22
+ export type GetAllPermissionsResponse = ServiceWithPermissions[];
23
+ export type PermissionOverride = {
24
+ permissionName: string;
25
+ effect: boolean;
26
+ };
27
+ export type UpdateEntityPermissions = {
28
+ entityType: EntityType;
29
+ entityId: string;
30
+ permissions: {
31
+ [serviceName: string]: PermissionOverride[];
32
+ };
33
+ };
34
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,oBAAY,UAAU;IACpB,UAAU,eAAe;IACzB,SAAS,cAAc;CACxB;AAED,MAAM,MAAM,iBAAiB,GAAG;IAI9B,KAAK,EAAE,KAAK,CAAC;IAIb,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,iBAAiB,EAAE,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,sBAAsB,EAAE,CAAC;AAEjE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE;QACX,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAAC;KAC7C,CAAC;CACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "@or-sdk/permissions",
3
+ "version": "1.0.1-beta.3156.0",
4
+ "license": "Apache-2.0",
5
+ "main": "dist/cjs/index.js",
6
+ "module": "dist/esm/index.js",
7
+ "types": "dist/types/index.d.ts",
8
+ "scripts": {
9
+ "build": "pnpm clean && pnpm build:esm && pnpm build:cjs",
10
+ "build:cjs": "tsc --project tsconfig.json",
11
+ "build:esm": "tsc --project tsconfig.esm.json",
12
+ "build:types": "tsc --project tsconfig.types.json",
13
+ "build:watch": "concurrently -r --hide 1,2 \"pnpm build:watch:cjs\" \"pnpm build:watch:esm\" \"pnpm build:watch:types\"",
14
+ "build:watch:cjs": "tsc --project tsconfig.json -w",
15
+ "build:watch:esm": "tsc --project tsconfig.esm.json -w",
16
+ "build:watch:types": "tsc --project tsconfig.types.json -w",
17
+ "clean": "rm -rf ./dist",
18
+ "dev": "pnpm build:watch:esm"
19
+ },
20
+ "dependencies": {
21
+ "@or-sdk/base": "^0.39.2"
22
+ },
23
+ "devDependencies": {
24
+ "concurrently": "9.0.1",
25
+ "typescript": "5.6.2"
26
+ },
27
+ "publishConfig": {
28
+ "access": "public"
29
+ }
30
+ }
@@ -0,0 +1,67 @@
1
+ import { Base } from '@or-sdk/base';
2
+
3
+ import { SERVICE_KEY } from './constants';
4
+ import { GetAllPermissionsResponse, GetPermissionByServiceResult, PermissionsConfig, UpdateEntityPermissions } from './types';
5
+
6
+ /**
7
+ * OneReach Permissions service client
8
+ * ## Installation:
9
+ * ```
10
+ * $ npm i @or-sdk/permissions
11
+ * ```
12
+ */
13
+ export class Permissions extends Base {
14
+ /**
15
+ * ```typescript
16
+ * import { Permissions } from '@or-sdk/permissions'
17
+ * const permissions = new Permissions({
18
+ * token: 'my-account-token-string',
19
+ * permissionsUrl: 'http://example.permissions/endpoint'
20
+ * });
21
+ * ```
22
+ */
23
+ constructor(params: PermissionsConfig) {
24
+ const { token, discoveryUrl, permissionsUrl } = params;
25
+
26
+ super({
27
+ token,
28
+ discoveryUrl,
29
+ serviceUrl: permissionsUrl,
30
+ serviceKey: SERVICE_KEY,
31
+ });
32
+ }
33
+
34
+ async getCurrentUserPermissionsByService(service: string): Promise<GetPermissionByServiceResult> {
35
+ const data = await this.callApiV2<GetPermissionByServiceResult>({
36
+ method: 'GET',
37
+ route: '/v1/permissions',
38
+ params: { service },
39
+ });
40
+ return data;
41
+ }
42
+
43
+ async getAllCurrentUserPermissions(): Promise<GetAllPermissionsResponse> {
44
+ const data = await this.callApiV2<GetAllPermissionsResponse>({
45
+ method: 'GET',
46
+ route: '/v1/permissions/all',
47
+ });
48
+ return data;
49
+ }
50
+
51
+ async updateEntityPermissions(data: UpdateEntityPermissions): Promise<GetAllPermissionsResponse> {
52
+ const response = await this.callApiV2<GetAllPermissionsResponse>({
53
+ method: 'PUT',
54
+ route: '/v1/permissions',
55
+ data,
56
+ });
57
+ return response;
58
+ }
59
+
60
+ async getAllUserPermissions(userid: string): Promise<GetAllPermissionsResponse> {
61
+ const response = await this.callApiV2<GetAllPermissionsResponse>({
62
+ method: 'GET',
63
+ route: `/v1/permissions/all/${userid}`,
64
+ });
65
+ return response;
66
+ }
67
+ }
@@ -0,0 +1,2 @@
1
+ export const SERVICE_KEY = 'permissions-api';
2
+
package/src/index.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { Permissions } from './Permissions';
2
+ export * from './types';
package/src/types.ts ADDED
@@ -0,0 +1,47 @@
1
+ import { Token } from '@or-sdk/base';
2
+
3
+ export enum EntityType {
4
+ SingleUser = 'SingleUser',
5
+ MultiUser = 'MultiUser',
6
+ }
7
+
8
+ export type PermissionsConfig = {
9
+ /**
10
+ * token
11
+ */
12
+ token: Token;
13
+ /**
14
+ * function which return token
15
+ */
16
+ permissionsUrl: string;
17
+ discoveryUrl?: string;
18
+ };
19
+
20
+ export type GetPermissionByServiceResult = {
21
+ [key: string]: boolean;
22
+ };
23
+
24
+ export type ServicePermission = {
25
+ name: string;
26
+ effect: boolean;
27
+ };
28
+
29
+ export type ServiceWithPermissions = {
30
+ serviceName: string;
31
+ permissions: ServicePermission[];
32
+ };
33
+
34
+ export type GetAllPermissionsResponse = ServiceWithPermissions[];
35
+
36
+ export type PermissionOverride = {
37
+ permissionName: string;
38
+ effect: boolean;
39
+ };
40
+
41
+ export type UpdateEntityPermissions = {
42
+ entityType: EntityType;
43
+ entityId: string;
44
+ permissions: {
45
+ [serviceName: string]: PermissionOverride[];
46
+ };
47
+ };
@@ -0,0 +1,8 @@
1
+ {
2
+ "extends": "./tsconfig.esm.json",
3
+ "compilerOptions": {
4
+ "declarationDir": "./dist/types",
5
+ "rootDir": "./src",
6
+ "declaration": true
7
+ }
8
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "./dist/esm",
5
+ "declarationDir": "./dist/types",
6
+ "module": "ES6",
7
+ "target": "es6",
8
+ "rootDir": "./src",
9
+ "declaration": true,
10
+ "declarationMap": true
11
+ }
12
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "./dist/cjs/",
5
+ "rootDir": "./src"
6
+ }
7
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "./dist/types/",
5
+ "rootDir": "./src",
6
+ "declaration": true,
7
+ "declarationMap": true,
8
+ "emitDeclarationOnly": true
9
+ }
10
+ }