@or-sdk/permissions-lambda 1.0.1-beta.3259.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 +14 -0
- package/dist/cjs/PermissionsLambda.js +150 -0
- package/dist/cjs/PermissionsLambda.js.map +1 -0
- package/dist/cjs/constants.js +9 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/index.js +21 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/PermissionsLambda.js +81 -0
- package/dist/esm/PermissionsLambda.js.map +1 -0
- package/dist/esm/constants.js +6 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/types/PermissionsLambda.d.ts +14 -0
- package/dist/types/PermissionsLambda.d.ts.map +1 -0
- package/dist/types/constants.d.ts +5 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/types.d.ts +45 -0
- package/dist/types/types.d.ts.map +1 -0
- package/package.json +30 -0
- package/src/PermissionsLambda.ts +98 -0
- package/src/constants.ts +4 -0
- package/src/index.ts +2 -0
- package/src/types.ts +55 -0
- package/tsconfig.dev.json +8 -0
- package/tsconfig.esm.json +12 -0
- package/tsconfig.json +7 -0
- package/tsconfig.types.json +10 -0
package/README.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
## Installation:
|
|
2
|
+
```
|
|
3
|
+
$ npm i @or-sdk/permissions-lambda
|
|
4
|
+
```
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
## Usage:
|
|
8
|
+
```typescript
|
|
9
|
+
import { PermissionsLambda } from '@or-sdk/payments'
|
|
10
|
+
|
|
11
|
+
const paymentsApi = new Payments({
|
|
12
|
+
token: 'my-account-token-string',
|
|
13
|
+
paymentsUrl: 'http://example.payments]/endpoint'
|
|
14
|
+
});
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
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);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
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;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.PermissionsLambda = void 0;
|
|
40
|
+
var client_lambda_1 = require("@aws-sdk/client-lambda");
|
|
41
|
+
var PermissionsLambda = (function () {
|
|
42
|
+
function PermissionsLambda(params) {
|
|
43
|
+
this.lambda = new client_lambda_1.Lambda(params.isLocal ? {
|
|
44
|
+
apiVersion: '2015-03-31',
|
|
45
|
+
endpoint: 'http://localhost:3005',
|
|
46
|
+
} : {});
|
|
47
|
+
this.functionName = params.functionName;
|
|
48
|
+
}
|
|
49
|
+
PermissionsLambda.prototype.invoke = function (event) {
|
|
50
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
51
|
+
var response, buf;
|
|
52
|
+
return __generator(this, function (_a) {
|
|
53
|
+
switch (_a.label) {
|
|
54
|
+
case 0: return [4, this.lambda.invoke({
|
|
55
|
+
FunctionName: this.functionName,
|
|
56
|
+
Payload: Buffer.from(JSON.stringify({
|
|
57
|
+
action: event.action,
|
|
58
|
+
payload: event.payload,
|
|
59
|
+
})),
|
|
60
|
+
})];
|
|
61
|
+
case 1:
|
|
62
|
+
response = _a.sent();
|
|
63
|
+
buf = Buffer.from((response === null || response === void 0 ? void 0 : response.Payload) || []);
|
|
64
|
+
return [2, JSON.parse(buf.toString())];
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
PermissionsLambda.prototype.registerServicePermissions = function (data) {
|
|
70
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
71
|
+
return __generator(this, function (_a) {
|
|
72
|
+
switch (_a.label) {
|
|
73
|
+
case 0: return [4, this.invoke({
|
|
74
|
+
action: 'register-service',
|
|
75
|
+
payload: data,
|
|
76
|
+
})];
|
|
77
|
+
case 1: return [2, _a.sent()];
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
PermissionsLambda.prototype.getUserPermissionsByService = function (data) {
|
|
83
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
84
|
+
return __generator(this, function (_a) {
|
|
85
|
+
switch (_a.label) {
|
|
86
|
+
case 0: return [4, this.invoke({
|
|
87
|
+
action: 'find-all-by-service',
|
|
88
|
+
payload: data,
|
|
89
|
+
})];
|
|
90
|
+
case 1: return [2, _a.sent()];
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
PermissionsLambda.prototype.getAllUserPermissions = function (data) {
|
|
96
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
97
|
+
return __generator(this, function (_a) {
|
|
98
|
+
switch (_a.label) {
|
|
99
|
+
case 0: return [4, this.invoke({
|
|
100
|
+
action: 'find-all',
|
|
101
|
+
payload: data,
|
|
102
|
+
})];
|
|
103
|
+
case 1: return [2, _a.sent()];
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
PermissionsLambda.prototype.updateEntityPermissions = function (data) {
|
|
109
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
110
|
+
return __generator(this, function (_a) {
|
|
111
|
+
switch (_a.label) {
|
|
112
|
+
case 0: return [4, this.invoke({
|
|
113
|
+
action: 'update-entity',
|
|
114
|
+
payload: data,
|
|
115
|
+
})];
|
|
116
|
+
case 1: return [2, _a.sent()];
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
PermissionsLambda.prototype.getAllUserPermissionsByUserId = function (data) {
|
|
122
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
123
|
+
return __generator(this, function (_a) {
|
|
124
|
+
switch (_a.label) {
|
|
125
|
+
case 0: return [4, this.invoke({
|
|
126
|
+
action: 'find-all-by-user-id',
|
|
127
|
+
payload: data,
|
|
128
|
+
})];
|
|
129
|
+
case 1: return [2, _a.sent()];
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
PermissionsLambda.prototype.checkPermissionsScope = function (data) {
|
|
135
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
136
|
+
return __generator(this, function (_a) {
|
|
137
|
+
switch (_a.label) {
|
|
138
|
+
case 0: return [4, this.invoke({
|
|
139
|
+
action: 'check-scope',
|
|
140
|
+
payload: data,
|
|
141
|
+
})];
|
|
142
|
+
case 1: return [2, _a.sent()];
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
};
|
|
147
|
+
return PermissionsLambda;
|
|
148
|
+
}());
|
|
149
|
+
exports.PermissionsLambda = PermissionsLambda;
|
|
150
|
+
//# sourceMappingURL=PermissionsLambda.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PermissionsLambda.js","sourceRoot":"","sources":["../../src/PermissionsLambda.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAAgD;AAoBhD;IAaE,2BAAY,MAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,sBAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACxC,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,uBAAuB;SAClC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IAC1C,CAAC;IAEa,kCAAM,GAApB,UAAqB,KAAkB;;;;;4BACpB,WAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;4BACxC,YAAY,EAAE,IAAI,CAAC,YAAY;4BAC/B,OAAO,EAAE,MAAM,CAAC,IAAI,CAClB,IAAI,CAAC,SAAS,CAAC;gCACb,MAAM,EAAE,KAAK,CAAC,MAAM;gCACpB,OAAO,EAAE,KAAK,CAAC,OAAO;6BACvB,CAAC,CACH;yBACF,CAAC,EAAA;;wBARI,QAAQ,GAAG,SAQf;wBAEI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,KAAI,EAAE,CAAC,CAAC;wBACjD,WAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAC;;;;KACnC;IAEK,sDAA0B,GAAhC,UAAiC,IAA2B;;;;4BACnD,WAAM,IAAI,CAAC,MAAM,CAAC;4BACvB,MAAM,EAAE,kBAAkB;4BAC1B,OAAO,EAAE,IAAI;yBACd,CAAC,EAAA;4BAHF,WAAO,SAGL,EAAC;;;;KACJ;IAEK,uDAA2B,GAAjC,UAAkC,IAA8B;;;;4BACvD,WAAM,IAAI,CAAC,MAAM,CAAC;4BACvB,MAAM,EAAE,qBAAqB;4BAC7B,OAAO,EAAE,IAAI;yBACd,CAAC,EAAA;4BAHF,WAAO,SAGL,EAAC;;;;KACJ;IAEK,iDAAqB,GAA3B,UAA4B,IAAiC;;;;4BACpD,WAAM,IAAI,CAAC,MAAM,CAAC;4BACvB,MAAM,EAAE,UAAU;4BAClB,OAAO,EAAE,IAAI;yBACd,CAAC,EAAA;4BAHF,WAAO,SAGL,EAAC;;;;KACJ;IAEK,mDAAuB,GAA7B,UAA8B,IAA6B;;;;4BAClD,WAAM,IAAI,CAAC,MAAM,CAAC;4BACvB,MAAM,EAAE,eAAe;4BACvB,OAAO,EAAE,IAAI;yBACd,CAAC,EAAA;4BAHF,WAAO,SAGL,EAAC;;;;KACJ;IAEK,yDAA6B,GAAnC,UAAoC,IAAmC;;;;4BAC9D,WAAM,IAAI,CAAC,MAAM,CAAC;4BACvB,MAAM,EAAE,qBAAqB;4BAC7B,OAAO,EAAE,IAAI;yBACd,CAAC,EAAA;4BAHF,WAAO,SAGL,EAAC;;;;KACJ;IAEK,iDAAqB,GAA3B,UAA4B,IAAc;;;;4BACjC,WAAM,IAAI,CAAC,MAAM,CAAC;4BACvB,MAAM,EAAE,aAAa;4BACrB,OAAO,EAAE,IAAI;yBACd,CAAC,EAAA;4BAHF,WAAO,SAGL,EAAC;;;;KACJ;IACH,wBAAC;AAAD,CAAC,AA7ED,IA6EC;AA7EY,8CAAiB"}
|
|
@@ -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=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,uCAAyB,CAAA;IACzB,qCAAuB,CAAA;AACzB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB"}
|
|
@@ -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.PermissionsLambda = void 0;
|
|
18
|
+
var PermissionsLambda_1 = require("./PermissionsLambda");
|
|
19
|
+
Object.defineProperty(exports, "PermissionsLambda", { enumerable: true, get: function () { return PermissionsLambda_1.PermissionsLambda; } });
|
|
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,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,0CAAwB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,81 @@
|
|
|
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 { Lambda } from '@aws-sdk/client-lambda';
|
|
11
|
+
export class PermissionsLambda {
|
|
12
|
+
constructor(params) {
|
|
13
|
+
this.lambda = new Lambda(params.isLocal ? {
|
|
14
|
+
apiVersion: '2015-03-31',
|
|
15
|
+
endpoint: 'http://localhost:3005',
|
|
16
|
+
} : {});
|
|
17
|
+
this.functionName = params.functionName;
|
|
18
|
+
}
|
|
19
|
+
invoke(event) {
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
const response = yield this.lambda.invoke({
|
|
22
|
+
FunctionName: this.functionName,
|
|
23
|
+
Payload: Buffer.from(JSON.stringify({
|
|
24
|
+
action: event.action,
|
|
25
|
+
payload: event.payload,
|
|
26
|
+
})),
|
|
27
|
+
});
|
|
28
|
+
const buf = Buffer.from((response === null || response === void 0 ? void 0 : response.Payload) || []);
|
|
29
|
+
return JSON.parse(buf.toString());
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
registerServicePermissions(data) {
|
|
33
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
return yield this.invoke({
|
|
35
|
+
action: 'register-service',
|
|
36
|
+
payload: data,
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
getUserPermissionsByService(data) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
return yield this.invoke({
|
|
43
|
+
action: 'find-all-by-service',
|
|
44
|
+
payload: data,
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
getAllUserPermissions(data) {
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
return yield this.invoke({
|
|
51
|
+
action: 'find-all',
|
|
52
|
+
payload: data,
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
updateEntityPermissions(data) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
return yield this.invoke({
|
|
59
|
+
action: 'update-entity',
|
|
60
|
+
payload: data,
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
getAllUserPermissionsByUserId(data) {
|
|
65
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
66
|
+
return yield this.invoke({
|
|
67
|
+
action: 'find-all-by-user-id',
|
|
68
|
+
payload: data,
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
checkPermissionsScope(data) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
return yield this.invoke({
|
|
75
|
+
action: 'check-scope',
|
|
76
|
+
payload: data,
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=PermissionsLambda.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PermissionsLambda.js","sourceRoot":"","sources":["../../src/PermissionsLambda.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAoBhD,MAAM,OAAO,iBAAiB;IAa5B,YAAY,MAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACxC,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,uBAAuB;SAClC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IAC1C,CAAC;IAEa,MAAM,CAAC,KAAkB;;YACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACxC,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,OAAO,EAAE,MAAM,CAAC,IAAI,CAClB,IAAI,CAAC,SAAS,CAAC;oBACb,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC,CACH;aACF,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,KAAI,EAAE,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpC,CAAC;KAAA;IAEK,0BAA0B,CAAC,IAA2B;;YAC1D,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC;gBACvB,MAAM,EAAE,kBAAkB;gBAC1B,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,2BAA2B,CAAC,IAA8B;;YAC9D,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC;gBACvB,MAAM,EAAE,qBAAqB;gBAC7B,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,qBAAqB,CAAC,IAAiC;;YAC3D,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC;gBACvB,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,uBAAuB,CAAC,IAA6B;;YACzD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC;gBACvB,MAAM,EAAE,eAAe;gBACvB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,6BAA6B,CAAC,IAAmC;;YACrE,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC;gBACvB,MAAM,EAAE,qBAAqB;gBAC7B,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,qBAAqB,CAAC,IAAc;;YACxC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC;gBACvB,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;KAAA;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,uCAAyB,CAAA;IACzB,qCAAuB,CAAA;AACzB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { GetAllUserPermissionsParams, GetUserPermissionsParams, LambdaConfig, Permission, RegisterServiceParams, UpdateEntityPermissions, UserPermissionByAccountParams } from './types';
|
|
2
|
+
export declare class PermissionsLambda {
|
|
3
|
+
private readonly lambda;
|
|
4
|
+
private readonly functionName;
|
|
5
|
+
constructor(params: LambdaConfig);
|
|
6
|
+
private invoke;
|
|
7
|
+
registerServicePermissions(data: RegisterServiceParams): Promise<Permission[]>;
|
|
8
|
+
getUserPermissionsByService(data: GetUserPermissionsParams): Promise<any>;
|
|
9
|
+
getAllUserPermissions(data: GetAllUserPermissionsParams): Promise<any>;
|
|
10
|
+
updateEntityPermissions(data: UpdateEntityPermissions): Promise<any>;
|
|
11
|
+
getAllUserPermissionsByUserId(data: UserPermissionByAccountParams): Promise<any>;
|
|
12
|
+
checkPermissionsScope(data: string[]): Promise<any>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=PermissionsLambda.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PermissionsLambda.d.ts","sourceRoot":"","sources":["../../src/PermissionsLambda.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,YAAY,EAEZ,UAAU,EACV,qBAAqB,EACrB,uBAAuB,EACvB,6BAA6B,EAC9B,MAAM,SAAS,CAAC;AASjB,qBAAa,iBAAiB;IAU5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,MAAM,EAAE,YAAY;YAQlB,MAAM;IAed,0BAA0B,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAO9E,2BAA2B,CAAC,IAAI,EAAE,wBAAwB;IAO1D,qBAAqB,CAAC,IAAI,EAAE,2BAA2B;IAOvD,uBAAuB,CAAC,IAAI,EAAE,uBAAuB;IAOrD,6BAA6B,CAAC,IAAI,EAAE,6BAA6B;IAOjE,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE;CAM3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,UAAU,eAAe;IACzB,SAAS,cAAc;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { EntityType } from './constants';
|
|
2
|
+
export type LambdaConfig = {
|
|
3
|
+
isLocal: boolean;
|
|
4
|
+
functionName: string;
|
|
5
|
+
};
|
|
6
|
+
export type LambdaEvent = {
|
|
7
|
+
action: string;
|
|
8
|
+
payload: any;
|
|
9
|
+
};
|
|
10
|
+
export type Permission = {
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
defaultEffect: boolean;
|
|
14
|
+
metadata?: unknown;
|
|
15
|
+
};
|
|
16
|
+
export type RegisterServiceParams = {
|
|
17
|
+
service: string;
|
|
18
|
+
serviceLabel: string;
|
|
19
|
+
permissions: Permission[];
|
|
20
|
+
};
|
|
21
|
+
export type GetUserPermissionsParams = {
|
|
22
|
+
multiUserId: string;
|
|
23
|
+
userId: string;
|
|
24
|
+
service: string;
|
|
25
|
+
};
|
|
26
|
+
export type PermissionOverride = {
|
|
27
|
+
permissionName: string;
|
|
28
|
+
effect: boolean;
|
|
29
|
+
};
|
|
30
|
+
export type UpdateEntityPermissions = {
|
|
31
|
+
entityType: EntityType;
|
|
32
|
+
entityId: string;
|
|
33
|
+
permissions: {
|
|
34
|
+
[serviceName: string]: PermissionOverride[];
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
export type GetAllUserPermissionsParams = {
|
|
38
|
+
multiUserId: string;
|
|
39
|
+
userId: string;
|
|
40
|
+
};
|
|
41
|
+
export type UserPermissionByAccountParams = {
|
|
42
|
+
userId: string;
|
|
43
|
+
accountId: string;
|
|
44
|
+
};
|
|
45
|
+
//# 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,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,GAAG,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAGF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAGF,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;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@or-sdk/permissions-lambda",
|
|
3
|
+
"version": "1.0.1-beta.3259.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
|
+
"@aws-sdk/client-lambda": "3.726.0"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"concurrently": "9.0.1",
|
|
25
|
+
"typescript": "5.6.2"
|
|
26
|
+
},
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "public"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Lambda } from '@aws-sdk/client-lambda';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
GetAllUserPermissionsParams,
|
|
5
|
+
GetUserPermissionsParams,
|
|
6
|
+
LambdaConfig,
|
|
7
|
+
LambdaEvent,
|
|
8
|
+
Permission,
|
|
9
|
+
RegisterServiceParams,
|
|
10
|
+
UpdateEntityPermissions,
|
|
11
|
+
UserPermissionByAccountParams,
|
|
12
|
+
} from './types';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* OneReach PermissionsLambda service client
|
|
16
|
+
* ## Installation:
|
|
17
|
+
* ```
|
|
18
|
+
* $ npm i @or-sdk/permissions-lambda
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export class PermissionsLambda {
|
|
22
|
+
/**
|
|
23
|
+
* ```typescript
|
|
24
|
+
* import { PermissionsLambda } from '@or-sdk/permissions-lambda'
|
|
25
|
+
* const permissionsLambda = new PermissionsLambda({
|
|
26
|
+
* isLocal: false,
|
|
27
|
+
* functionName: permissions-core-function-name
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
private readonly lambda: Lambda;
|
|
32
|
+
private readonly functionName: string;
|
|
33
|
+
|
|
34
|
+
constructor(params: LambdaConfig) {
|
|
35
|
+
this.lambda = new Lambda(params.isLocal ? {
|
|
36
|
+
apiVersion: '2015-03-31',
|
|
37
|
+
endpoint: 'http://localhost:3005',
|
|
38
|
+
} : {});
|
|
39
|
+
this.functionName = params.functionName;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
private async invoke(event: LambdaEvent) {
|
|
43
|
+
const response = await this.lambda.invoke({
|
|
44
|
+
FunctionName: this.functionName,
|
|
45
|
+
Payload: Buffer.from(
|
|
46
|
+
JSON.stringify({
|
|
47
|
+
action: event.action,
|
|
48
|
+
payload: event.payload,
|
|
49
|
+
})
|
|
50
|
+
),
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
const buf = Buffer.from(response?.Payload || []);
|
|
54
|
+
return JSON.parse(buf.toString());
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
async registerServicePermissions(data: RegisterServiceParams): Promise<Permission[]> {
|
|
58
|
+
return await this.invoke({
|
|
59
|
+
action: 'register-service',
|
|
60
|
+
payload: data,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async getUserPermissionsByService(data: GetUserPermissionsParams) {
|
|
65
|
+
return await this.invoke({
|
|
66
|
+
action: 'find-all-by-service',
|
|
67
|
+
payload: data,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
async getAllUserPermissions(data: GetAllUserPermissionsParams) {
|
|
72
|
+
return await this.invoke({
|
|
73
|
+
action: 'find-all',
|
|
74
|
+
payload: data,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
async updateEntityPermissions(data: UpdateEntityPermissions) {
|
|
79
|
+
return await this.invoke({
|
|
80
|
+
action: 'update-entity',
|
|
81
|
+
payload: data,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
async getAllUserPermissionsByUserId(data: UserPermissionByAccountParams) {
|
|
86
|
+
return await this.invoke({
|
|
87
|
+
action: 'find-all-by-user-id',
|
|
88
|
+
payload: data,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
async checkPermissionsScope(data: string[]) {
|
|
93
|
+
return await this.invoke({
|
|
94
|
+
action: 'check-scope',
|
|
95
|
+
payload: data,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
package/src/constants.ts
ADDED
package/src/index.ts
ADDED
package/src/types.ts
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { EntityType } from './constants';
|
|
2
|
+
|
|
3
|
+
export type LambdaConfig = {
|
|
4
|
+
isLocal: boolean;
|
|
5
|
+
functionName: string;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export type LambdaEvent = {
|
|
9
|
+
action: string;
|
|
10
|
+
payload: any;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export type Permission = {
|
|
14
|
+
name: string;
|
|
15
|
+
description: string;
|
|
16
|
+
defaultEffect: boolean;
|
|
17
|
+
metadata?: unknown;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export type RegisterServiceParams = {
|
|
21
|
+
service: string;
|
|
22
|
+
serviceLabel: string;
|
|
23
|
+
permissions: Permission[];
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export type GetUserPermissionsParams = {
|
|
27
|
+
multiUserId: string;
|
|
28
|
+
userId: string;
|
|
29
|
+
service: string;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
export type PermissionOverride = {
|
|
34
|
+
permissionName: string;
|
|
35
|
+
effect: boolean;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
export type UpdateEntityPermissions = {
|
|
40
|
+
entityType: EntityType;
|
|
41
|
+
entityId: string;
|
|
42
|
+
permissions: {
|
|
43
|
+
[serviceName: string]: PermissionOverride[];
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export type GetAllUserPermissionsParams = {
|
|
48
|
+
multiUserId: string;
|
|
49
|
+
userId: string;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export type UserPermissionByAccountParams = {
|
|
53
|
+
userId: string;
|
|
54
|
+
accountId: string;
|
|
55
|
+
};
|
package/tsconfig.json
ADDED