@fraym/auth 0.7.1 → 0.31.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 +6 -216
- package/dist/config/config.js +1 -37
- package/dist/eslint.config.js +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -17
- package/dist/management/client.d.ts +7 -6
- package/dist/management/client.js +1 -56
- package/dist/management/createUser.d.ts +3 -2
- package/dist/management/createUser.js +1 -27
- package/dist/management/deleteRole.d.ts +3 -2
- package/dist/management/deleteRole.js +1 -18
- package/dist/management/deleteUser.d.ts +3 -2
- package/dist/management/deleteUser.js +1 -18
- package/dist/management/eventMetadata.d.ts +7 -0
- package/dist/management/eventMetadata.js +1 -0
- package/dist/management/getRoles.d.ts +1 -1
- package/dist/management/getRoles.js +1 -17
- package/dist/management/getUsers.d.ts +1 -1
- package/dist/management/getUsers.js +1 -30
- package/dist/management/updateUser.d.ts +3 -2
- package/dist/management/updateUser.js +1 -25
- package/dist/management/upsertRole.d.ts +3 -2
- package/dist/management/upsertRole.js +1 -25
- package/dist/util/token.d.ts +1 -1
- package/dist/util/token.js +1 -64
- package/package.json +12 -29
package/README.md
CHANGED
|
@@ -1,221 +1,11 @@
|
|
|
1
|
-
# auth
|
|
1
|
+
# auth
|
|
2
2
|
|
|
3
|
-
Client implementation in
|
|
3
|
+
Client implementation in JavaScript for the Freym service [auth](https://github.com/fraym/auth).
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Docs
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
npm i @fraym/auth
|
|
9
|
-
```
|
|
7
|
+
Please have a look at our [documentation](https://docs.freym.becklyn.app/docs/services/auth/introduction).
|
|
10
8
|
|
|
11
|
-
##
|
|
9
|
+
## License
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
There is a sandbox available at `http://auth:3000/management/graphql/sandbox`.
|
|
15
|
-
|
|
16
|
-
You need to add the `Tenant-Id` header in order to use the graphQL Endpoint and the sandbox.
|
|
17
|
-
|
|
18
|
-
### Config
|
|
19
|
-
|
|
20
|
-
Use a `.env` file or env variables to configure cte clients and the command:
|
|
21
|
-
|
|
22
|
-
```env
|
|
23
|
-
AUTH_SERVER_ADDRESS=127.0.0.1:9000
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## JWT functions
|
|
27
|
-
|
|
28
|
-
### Create a new JWT for usage with fraym
|
|
29
|
-
|
|
30
|
-
```typescript
|
|
31
|
-
const jwt = await generateJwt(appSecret, tenantId, scopes, data, expirationTime);
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Parameters:
|
|
35
|
-
|
|
36
|
-
- `appSecret`: the secret used to sign the jwt
|
|
37
|
-
- `tenantId`: the id of the tenant to use
|
|
38
|
-
- `scopes`: (optional) list of scopes available in this token
|
|
39
|
-
- `data`: (optional) data added to the `data` field of the token
|
|
40
|
-
- `expirationTime`: (optional) string is resolved to a time span and added to the current timestamp to calculate the expiration time
|
|
41
|
-
|
|
42
|
-
### Add data to an existing JWT
|
|
43
|
-
|
|
44
|
-
Note: this will validate the existing token first.
|
|
45
|
-
|
|
46
|
-
```typescript
|
|
47
|
-
const jwt = await addDataToJwt(appSecret, token, data);
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
Parameters:
|
|
51
|
-
|
|
52
|
-
- `appSecret`: the secret used to sign the jwt
|
|
53
|
-
- `token`: the existing jwt
|
|
54
|
-
- `data`: (optional) data added to the `data` field of the token, existing fields in the data object will be overwritten
|
|
55
|
-
|
|
56
|
-
### Validate the token and get associated data
|
|
57
|
-
|
|
58
|
-
Get scopes:
|
|
59
|
-
|
|
60
|
-
```typescript
|
|
61
|
-
const { scopes, userId, exp } = await getTokenData(appSecret, token, requireUserId);
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
Parameters:
|
|
65
|
-
|
|
66
|
-
- `appSecret`: the secret used to sign the jwt
|
|
67
|
-
- `token`: the existing jwt
|
|
68
|
-
- `requireUserId`: (optional, default: `true`) If set to true the function will throw an error if it cannot determine the id of the user that owns the jwt
|
|
69
|
-
|
|
70
|
-
## Client Usage
|
|
71
|
-
|
|
72
|
-
### Create the client
|
|
73
|
-
|
|
74
|
-
```typescript
|
|
75
|
-
const managementClient = await newManagementClient();
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## Get all roles
|
|
79
|
-
|
|
80
|
-
```typescript
|
|
81
|
-
const roles = await managementClient.getRoles("TENANT_ID");
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## Upsert a role
|
|
85
|
-
|
|
86
|
-
You can create roles without providing a role-id. The id of the new role will be returned:
|
|
87
|
-
|
|
88
|
-
```typescript
|
|
89
|
-
const roleId = await managementClient.upsertRole("TENANT_ID", [
|
|
90
|
-
{
|
|
91
|
-
scopeName: "PERMISSION_NAME",
|
|
92
|
-
// optional: clientId: If none is given the default client will be used
|
|
93
|
-
},
|
|
94
|
-
]);
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
You can also upsert a role by providing the role-id:
|
|
98
|
-
|
|
99
|
-
```typescript
|
|
100
|
-
const roleId = await managementClient.upsertRole(
|
|
101
|
-
"TENANT_ID",
|
|
102
|
-
[
|
|
103
|
-
{
|
|
104
|
-
scopeName: "PERMISSION_NAME",
|
|
105
|
-
// optional: clientId: If none is given the default client will be used
|
|
106
|
-
},
|
|
107
|
-
],
|
|
108
|
-
"ROLE_ID"
|
|
109
|
-
);
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
## Delete a role
|
|
113
|
-
|
|
114
|
-
```typescript
|
|
115
|
-
await managementClient.deleteRole("TENANT_ID", "ROLE_ID");
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
## Create a user
|
|
119
|
-
|
|
120
|
-
When creating a user and not providing a `password`, the create function will return a `setInitialPasswordToken`. This string can be used to authorize the initial password change of a user. Use it within the graphql api to change the passwort of a user.
|
|
121
|
-
|
|
122
|
-
Required parameters:
|
|
123
|
-
|
|
124
|
-
```typescript
|
|
125
|
-
const { id, setInitialPasswordToken } = await managementClient.createUser("TENANT_ID", "E-MAIL", [
|
|
126
|
-
"ROLE_ID",
|
|
127
|
-
]);
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
With all optional parameters:
|
|
131
|
-
|
|
132
|
-
```typescript
|
|
133
|
-
const isActive = true;
|
|
134
|
-
const blockedUntil = new Date();
|
|
135
|
-
const {id, setInitialPasswordToken} = await managementClient.createUser("TENANT_ID", "E-MAIL", ["ROLE_ID"]. "LOGIN_NAME", "DISPLAY_NAME", "PASSWORD", isActive, blockedUntil);
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
`LOGIN_NAME`: A name used for login instead of the email address.
|
|
139
|
-
`DISPLAY_NAME`: A name to display in the applications.
|
|
140
|
-
`PASSWORD`: Set the initial password of the user or leave empty if you want the user to set it.
|
|
141
|
-
`isActive`: Activate or deactivate a user.
|
|
142
|
-
`blockedUntil`: Block a user until a specific date.
|
|
143
|
-
|
|
144
|
-
## Update a user
|
|
145
|
-
|
|
146
|
-
When updating a user and not providing a `password`, the password will stay the same. Otherwise it will be changed to the given password.
|
|
147
|
-
|
|
148
|
-
Required parameters:
|
|
149
|
-
|
|
150
|
-
```typescript
|
|
151
|
-
await managementClient.updateUser("TENANT_ID", "USER_ID", "E-MAIL", ["ROLE_ID"]);
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
With all optional parameters:
|
|
155
|
-
|
|
156
|
-
```typescript
|
|
157
|
-
const isActive = true;
|
|
158
|
-
const blockedUntil = new Date();
|
|
159
|
-
await managementClient.createUser("TENANT_ID", "USER_ID", "E-MAIL", ["ROLE_ID"]. "LOGIN_NAME", "DISPLAY_NAME", "PASSWORD", isActive, blockedUntil);
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
`LOGIN_NAME`: A name used for login instead of the email address.
|
|
163
|
-
`DISPLAY_NAME`: A name to display in the applications.
|
|
164
|
-
`PASSWORD`: Use this to reset the password of a user.
|
|
165
|
-
`isActive`: Activate or deactivate a user.
|
|
166
|
-
`blockedUntil`: Block a user until a specific date.
|
|
167
|
-
|
|
168
|
-
## Delete a user
|
|
169
|
-
|
|
170
|
-
```typescript
|
|
171
|
-
await managementClient.deleteUser("TENANT_ID", "USER_ID");
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
## Get all users
|
|
175
|
-
|
|
176
|
-
```typescript
|
|
177
|
-
const users = await managementClient.getUsers("TENANT_ID");
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
### Gracefully close the clients
|
|
181
|
-
|
|
182
|
-
You won't lose any data if you don't. Use it for your peace of mind.
|
|
183
|
-
|
|
184
|
-
```typescript
|
|
185
|
-
client.close();
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
## Development
|
|
189
|
-
|
|
190
|
-
You'll need the following apps for a smooth development experience:
|
|
191
|
-
|
|
192
|
-
- minikube
|
|
193
|
-
- lens
|
|
194
|
-
- okteto
|
|
195
|
-
- helm
|
|
196
|
-
|
|
197
|
-
### Running the dev environment
|
|
198
|
-
|
|
199
|
-
- Start minikube if not already done:
|
|
200
|
-
|
|
201
|
-
```shell
|
|
202
|
-
minikube start
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
- add mongodb and minio to your lokal kubernetes
|
|
206
|
-
- use Makefiles in `./.dev/*`
|
|
207
|
-
- copy `.env.build` to `.env.build.local`
|
|
208
|
-
- add your personal access token (needs read access for private fraym org repositories)
|
|
209
|
-
- deploy the app to your cluster
|
|
210
|
-
|
|
211
|
-
```
|
|
212
|
-
make init
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
- start okteto
|
|
216
|
-
|
|
217
|
-
```
|
|
218
|
-
make dev
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
- connect your IDE to that okteto instance
|
|
11
|
+
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
|
package/dist/config/config.js
CHANGED
|
@@ -1,37 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useConfigDefaults = exports.getEnvConfig = void 0;
|
|
4
|
-
const dotenv_1 = require("dotenv");
|
|
5
|
-
const getEnvConfig = () => {
|
|
6
|
-
var _a;
|
|
7
|
-
(0, dotenv_1.config)();
|
|
8
|
-
const serverAddress = (_a = process.env.AUTH_SERVER_ADDRESS) !== null && _a !== void 0 ? _a : "";
|
|
9
|
-
let keepaliveInterval;
|
|
10
|
-
let keepaliveTimeout;
|
|
11
|
-
const keepaliveIntervalString = process.env.AUTH_CONNECTION_KEEPALIVE_INTERVAL;
|
|
12
|
-
const keepaliveTimeoutString = process.env.AUTH_CONNECTION_KEEPALIVE_INTERVAL;
|
|
13
|
-
if (keepaliveIntervalString) {
|
|
14
|
-
keepaliveInterval = parseInt(keepaliveIntervalString, 10);
|
|
15
|
-
}
|
|
16
|
-
if (keepaliveTimeoutString) {
|
|
17
|
-
keepaliveTimeout = parseInt(keepaliveTimeoutString, 10);
|
|
18
|
-
}
|
|
19
|
-
return {
|
|
20
|
-
serverAddress,
|
|
21
|
-
keepaliveInterval,
|
|
22
|
-
keepaliveTimeout,
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
exports.getEnvConfig = getEnvConfig;
|
|
26
|
-
const useConfigDefaults = (config) => {
|
|
27
|
-
var _a, _b;
|
|
28
|
-
if (!config) {
|
|
29
|
-
config = (0, exports.getEnvConfig)();
|
|
30
|
-
}
|
|
31
|
-
return {
|
|
32
|
-
serverAddress: config.serverAddress,
|
|
33
|
-
keepaliveTimeout: (_a = config.keepaliveTimeout) !== null && _a !== void 0 ? _a : 3 * 1000,
|
|
34
|
-
keepaliveInterval: (_b = config.keepaliveInterval) !== null && _b !== void 0 ? _b : 40 * 1000,
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
exports.useConfigDefaults = useConfigDefaults;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{getEnvConfig:function(){return getEnvConfig},useConfigDefaults:function(){return useConfigDefaults}});var _dotenv=require("dotenv");var getEnvConfig=function(){(0,_dotenv.config)();var _process_env_AUTH_SERVER_ADDRESS;var serverAddress=(_process_env_AUTH_SERVER_ADDRESS=process.env.AUTH_SERVER_ADDRESS)!==null&&_process_env_AUTH_SERVER_ADDRESS!==void 0?_process_env_AUTH_SERVER_ADDRESS:"";var keepaliveInterval;var keepaliveTimeout;var keepaliveIntervalString=process.env.AUTH_CONNECTION_KEEPALIVE_INTERVAL;var keepaliveTimeoutString=process.env.AUTH_CONNECTION_KEEPALIVE_INTERVAL;if(keepaliveIntervalString){keepaliveInterval=parseInt(keepaliveIntervalString,10)}if(keepaliveTimeoutString){keepaliveTimeout=parseInt(keepaliveTimeoutString,10)}return{serverAddress:serverAddress,keepaliveInterval:keepaliveInterval,keepaliveTimeout:keepaliveTimeout}};var useConfigDefaults=function(config){if(!config){config=getEnvConfig()}var _config_keepaliveTimeout,_config_keepaliveInterval;return{serverAddress:config.serverAddress,keepaliveTimeout:(_config_keepaliveTimeout=config.keepaliveTimeout)!==null&&_config_keepaliveTimeout!==void 0?_config_keepaliveTimeout:3*1e3,keepaliveInterval:(_config_keepaliveInterval=config.keepaliveInterval)!==null&&_config_keepaliveInterval!==void 0?_config_keepaliveInterval:40*1e3}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _base=require("@becklyn/eslint/base");function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_without_holes(arr){if(Array.isArray(arr))return _array_like_to_array(arr)}function _iterable_to_array(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}var _default=_to_consumable_array(_base.config);
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from "./management/client";
|
|
2
|
-
export { ClientConfig } from "./config/config";
|
|
2
|
+
export type { ClientConfig } from "./config/config";
|
package/dist/index.js
CHANGED
|
@@ -1,17 +1 @@
|
|
|
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
|
-
__exportStar(require("./management/client"), exports);
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});_export_star(require("./management/client"),exports);function _export_star(from,to){Object.keys(from).forEach(function(k){if(k!=="default"&&!Object.prototype.hasOwnProperty.call(to,k)){Object.defineProperty(to,k,{enumerable:true,get:function(){return from[k]}})}});return from}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { ClientConfig } from "
|
|
1
|
+
import { ClientConfig } from "@/config/config";
|
|
2
2
|
import { CreateUserResponse } from "./createUser";
|
|
3
|
+
import { EventMetadata } from "./eventMetadata";
|
|
3
4
|
import { Role } from "./getRoles";
|
|
4
5
|
import { User } from "./getUsers";
|
|
5
6
|
import { UpsertRoleScope } from "./upsertRole";
|
|
6
7
|
export interface ManagementClient {
|
|
7
|
-
upsertRole: (tenantId: string, allowedScopes: UpsertRoleScope[], id?: string) => Promise<string>;
|
|
8
|
-
deleteRole: (tenantId: string, id: string) => Promise<void>;
|
|
8
|
+
upsertRole: (tenantId: string, allowedScopes: UpsertRoleScope[], id?: string, eventMetadata?: Partial<EventMetadata>) => Promise<string>;
|
|
9
|
+
deleteRole: (tenantId: string, id: string, eventMetadata?: Partial<EventMetadata>) => Promise<void>;
|
|
9
10
|
getRoles: (tenantId: string) => Promise<Role[]>;
|
|
10
|
-
createUser: (tenantId: string, email: string, assignedRoleIds: string[], login?: string, displayName?: string, password?: string, active?: boolean, blockedUntil?: Date) => Promise<CreateUserResponse>;
|
|
11
|
-
updateUser: (tenantId: string, id: string, email: string, assignedRoleIds: string[], login?: string, displayName?: string, password?: string, active?: boolean, blockedUntil?: Date) => Promise<void>;
|
|
12
|
-
deleteUser: (tenantId: string, id: string) => Promise<void>;
|
|
11
|
+
createUser: (tenantId: string, email: string, assignedRoleIds: string[], login?: string, displayName?: string, password?: string, active?: boolean, blockedUntil?: Date, eventMetadata?: Partial<EventMetadata>) => Promise<CreateUserResponse>;
|
|
12
|
+
updateUser: (tenantId: string, id: string, email: string, assignedRoleIds: string[], login?: string, displayName?: string, password?: string, active?: boolean, blockedUntil?: Date, eventMetadata?: Partial<EventMetadata>) => Promise<void>;
|
|
13
|
+
deleteUser: (tenantId: string, id: string, eventMetadata?: Partial<EventMetadata>) => Promise<void>;
|
|
13
14
|
getUsers: (tenantId: string) => Promise<User[]>;
|
|
14
15
|
close: () => Promise<void>;
|
|
15
16
|
}
|
|
@@ -1,56 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.newManagementClient = void 0;
|
|
4
|
-
const management_1 = require("@fraym/proto/freym/auth/management");
|
|
5
|
-
const grpc_js_1 = require("@grpc/grpc-js");
|
|
6
|
-
const config_1 = require("../config/config");
|
|
7
|
-
const createUser_1 = require("./createUser");
|
|
8
|
-
const deleteRole_1 = require("./deleteRole");
|
|
9
|
-
const deleteUser_1 = require("./deleteUser");
|
|
10
|
-
const getRoles_1 = require("./getRoles");
|
|
11
|
-
const getUsers_1 = require("./getUsers");
|
|
12
|
-
const updateUser_1 = require("./updateUser");
|
|
13
|
-
const upsertRole_1 = require("./upsertRole");
|
|
14
|
-
const newManagementClient = async (config) => {
|
|
15
|
-
const currentConfig = (0, config_1.useConfigDefaults)(config);
|
|
16
|
-
const serviceClient = new management_1.ServiceClient(currentConfig.serverAddress, grpc_js_1.credentials.createInsecure(), {
|
|
17
|
-
"grpc.keepalive_time_ms": currentConfig.keepaliveInterval,
|
|
18
|
-
"grpc.keepalive_timeout_ms": currentConfig.keepaliveTimeout,
|
|
19
|
-
"grpc.keepalive_permit_without_calls": 1,
|
|
20
|
-
});
|
|
21
|
-
const upsertRole = async (tenantId, allowedScopes, id = "") => {
|
|
22
|
-
return await (0, upsertRole_1.createOrUpdateRole)(tenantId, id, allowedScopes, serviceClient);
|
|
23
|
-
};
|
|
24
|
-
const deleteRole = async (tenantId, id) => {
|
|
25
|
-
return await (0, deleteRole_1.deleteExistingRole)(tenantId, id, serviceClient);
|
|
26
|
-
};
|
|
27
|
-
const getRoles = async (tenantId) => {
|
|
28
|
-
return await (0, getRoles_1.getAllRoles)(tenantId, serviceClient);
|
|
29
|
-
};
|
|
30
|
-
const createUser = async (tenantId, email, assignedRoleIds, login = "", displayName = "", password = "", active = false, blockedUntil = new Date(0)) => {
|
|
31
|
-
return await (0, createUser_1.createNewUser)(tenantId, login, email, displayName, password, assignedRoleIds, active, blockedUntil, serviceClient);
|
|
32
|
-
};
|
|
33
|
-
const updateUser = async (tenantId, id, email, assignedRoleIds, login = "", displayName = "", password = "", active = false, blockedUntil = new Date(0)) => {
|
|
34
|
-
return await (0, updateUser_1.updateExistingUser)(tenantId, id, login, email, displayName, password, assignedRoleIds, active, blockedUntil, serviceClient);
|
|
35
|
-
};
|
|
36
|
-
const deleteUser = async (tenantId, id) => {
|
|
37
|
-
return await (0, deleteUser_1.deleteExistingUser)(tenantId, id, serviceClient);
|
|
38
|
-
};
|
|
39
|
-
const getUsers = async (tenantId) => {
|
|
40
|
-
return await (0, getUsers_1.getAllUsers)(tenantId, serviceClient);
|
|
41
|
-
};
|
|
42
|
-
const close = async () => {
|
|
43
|
-
serviceClient.close();
|
|
44
|
-
};
|
|
45
|
-
return {
|
|
46
|
-
upsertRole,
|
|
47
|
-
deleteRole,
|
|
48
|
-
getRoles,
|
|
49
|
-
createUser,
|
|
50
|
-
updateUser,
|
|
51
|
-
deleteUser,
|
|
52
|
-
getUsers,
|
|
53
|
-
close,
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
exports.newManagementClient = newManagementClient;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"newManagementClient",{enumerable:true,get:function(){return newManagementClient}});var _indexfreymauthmanagement=require("@fraym/proto/dist/index.freym.auth.management");var _config=require("../config/config");var _grpcjs=require("@grpc/grpc-js");var _createUser=require("./createUser");var _deleteRole=require("./deleteRole");var _deleteUser=require("./deleteUser");var _getRoles=require("./getRoles");var _getUsers=require("./getUsers");var _updateUser=require("./updateUser");var _upsertRole=require("./upsertRole");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{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;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var newManagementClient=/*#__PURE__*/function(){var _ref=_async_to_generator(function(config){var currentConfig,serviceClient,upsertRole,deleteRole,getRoles,createUser,updateUser,deleteUser,getUsers,close;return _ts_generator(this,function(_state){currentConfig=(0,_config.useConfigDefaults)(config);serviceClient=new _indexfreymauthmanagement.ServiceClient(currentConfig.serverAddress,_grpcjs.credentials.createInsecure(),{"grpc.keepalive_time_ms":currentConfig.keepaliveInterval,"grpc.keepalive_timeout_ms":currentConfig.keepaliveTimeout,"grpc.keepalive_permit_without_calls":1});upsertRole=/*#__PURE__*/function(){var _ref=_async_to_generator(function(tenantId,allowedScopes){var id,eventMetadata;var _arguments=arguments;return _ts_generator(this,function(_state){switch(_state.label){case 0:id=_arguments.length>2&&_arguments[2]!==void 0?_arguments[2]:"",eventMetadata=_arguments.length>3&&_arguments[3]!==void 0?_arguments[3]:null;return[4,(0,_upsertRole.createOrUpdateRole)(tenantId,id,allowedScopes,eventMetadata,serviceClient)];case 1:return[2,_state.sent()]}})});return function upsertRole(tenantId,allowedScopes){return _ref.apply(this,arguments)}}();deleteRole=/*#__PURE__*/function(){var _ref=_async_to_generator(function(tenantId,id){var eventMetadata;var _arguments=arguments;return _ts_generator(this,function(_state){switch(_state.label){case 0:eventMetadata=_arguments.length>2&&_arguments[2]!==void 0?_arguments[2]:null;return[4,(0,_deleteRole.deleteExistingRole)(tenantId,id,eventMetadata,serviceClient)];case 1:return[2,_state.sent()]}})});return function deleteRole(tenantId,id){return _ref.apply(this,arguments)}}();getRoles=/*#__PURE__*/function(){var _ref=_async_to_generator(function(tenantId){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_getRoles.getAllRoles)(tenantId,serviceClient)];case 1:return[2,_state.sent()]}})});return function getRoles(tenantId){return _ref.apply(this,arguments)}}();createUser=/*#__PURE__*/function(){var _ref=_async_to_generator(function(tenantId,email,assignedRoleIds){var login,displayName,password,active,blockedUntil,eventMetadata;var _arguments=arguments;return _ts_generator(this,function(_state){switch(_state.label){case 0:login=_arguments.length>3&&_arguments[3]!==void 0?_arguments[3]:"",displayName=_arguments.length>4&&_arguments[4]!==void 0?_arguments[4]:"",password=_arguments.length>5&&_arguments[5]!==void 0?_arguments[5]:"",active=_arguments.length>6&&_arguments[6]!==void 0?_arguments[6]:false,blockedUntil=_arguments.length>7&&_arguments[7]!==void 0?_arguments[7]:new Date(0),eventMetadata=_arguments.length>8&&_arguments[8]!==void 0?_arguments[8]:null;return[4,(0,_createUser.createNewUser)(tenantId,login,email,displayName,password,assignedRoleIds,active,blockedUntil,eventMetadata,serviceClient)];case 1:return[2,_state.sent()]}})});return function createUser(tenantId,email,assignedRoleIds){return _ref.apply(this,arguments)}}();updateUser=/*#__PURE__*/function(){var _ref=_async_to_generator(function(tenantId,id,email,assignedRoleIds){var login,displayName,password,active,blockedUntil,eventMetadata;var _arguments=arguments;return _ts_generator(this,function(_state){switch(_state.label){case 0:login=_arguments.length>4&&_arguments[4]!==void 0?_arguments[4]:"",displayName=_arguments.length>5&&_arguments[5]!==void 0?_arguments[5]:"",password=_arguments.length>6&&_arguments[6]!==void 0?_arguments[6]:"",active=_arguments.length>7&&_arguments[7]!==void 0?_arguments[7]:false,blockedUntil=_arguments.length>8&&_arguments[8]!==void 0?_arguments[8]:new Date(0),eventMetadata=_arguments.length>9&&_arguments[9]!==void 0?_arguments[9]:null;return[4,(0,_updateUser.updateExistingUser)(tenantId,id,login,email,displayName,password,assignedRoleIds,active,blockedUntil,eventMetadata,serviceClient)];case 1:return[2,_state.sent()]}})});return function updateUser(tenantId,id,email,assignedRoleIds){return _ref.apply(this,arguments)}}();deleteUser=/*#__PURE__*/function(){var _ref=_async_to_generator(function(tenantId,id){var eventMetadata;var _arguments=arguments;return _ts_generator(this,function(_state){switch(_state.label){case 0:eventMetadata=_arguments.length>2&&_arguments[2]!==void 0?_arguments[2]:null;return[4,(0,_deleteUser.deleteExistingUser)(tenantId,id,eventMetadata,serviceClient)];case 1:return[2,_state.sent()]}})});return function deleteUser(tenantId,id){return _ref.apply(this,arguments)}}();getUsers=/*#__PURE__*/function(){var _ref=_async_to_generator(function(tenantId){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_getUsers.getAllUsers)(tenantId,serviceClient)];case 1:return[2,_state.sent()]}})});return function getUsers(tenantId){return _ref.apply(this,arguments)}}();close=/*#__PURE__*/function(){var _ref=_async_to_generator(function(){return _ts_generator(this,function(_state){serviceClient.close();return[2]})});return function close(){return _ref.apply(this,arguments)}}();return[2,{upsertRole:upsertRole,deleteRole:deleteRole,getRoles:getRoles,createUser:createUser,updateUser:updateUser,deleteUser:deleteUser,getUsers:getUsers,close:close}]})});return function newManagementClient(config){return _ref.apply(this,arguments)}}();
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ServiceClient } from "@fraym/proto/freym
|
|
1
|
+
import { ServiceClient } from "@fraym/proto/dist/index.freym.auth.management";
|
|
2
|
+
import { EventMetadata } from "./eventMetadata";
|
|
2
3
|
export interface CreateUserResponse {
|
|
3
4
|
id: string;
|
|
4
5
|
setInitialPasswordToken: string;
|
|
5
6
|
}
|
|
6
|
-
export declare const createNewUser: (tenantId: string, login: string, email: string, displayName: string, password: string, assignedRoleIds: string[], active: boolean, blockedUntil: Date, serviceClient: ServiceClient) => Promise<CreateUserResponse>;
|
|
7
|
+
export declare const createNewUser: (tenantId: string, login: string, email: string, displayName: string, password: string, assignedRoleIds: string[], active: boolean, blockedUntil: Date, eventMetadata: Partial<EventMetadata> | null, serviceClient: ServiceClient) => Promise<CreateUserResponse>;
|
|
@@ -1,27 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createNewUser = void 0;
|
|
4
|
-
const createNewUser = async (tenantId, login, email, displayName, password, assignedRoleIds, active, blockedUntil, serviceClient) => {
|
|
5
|
-
return new Promise((resolve, reject) => {
|
|
6
|
-
serviceClient.createUser({
|
|
7
|
-
tenantId,
|
|
8
|
-
login,
|
|
9
|
-
email,
|
|
10
|
-
displayName,
|
|
11
|
-
password,
|
|
12
|
-
active,
|
|
13
|
-
assignedRoleIds,
|
|
14
|
-
blockedUntil: blockedUntil.getTime().toString(),
|
|
15
|
-
}, (error, response) => {
|
|
16
|
-
if (error) {
|
|
17
|
-
reject(error.message);
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
resolve({
|
|
21
|
-
id: response.id,
|
|
22
|
-
setInitialPasswordToken: response.setInitialPasswordToken,
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
|
-
exports.createNewUser = createNewUser;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"createNewUser",{enumerable:true,get:function(){return createNewUser}});var _eventMetadata=require("./eventMetadata");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{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;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var createNewUser=/*#__PURE__*/function(){var _ref=_async_to_generator(function(tenantId,login,email,displayName,password,assignedRoleIds,active,blockedUntil,eventMetadata,serviceClient){return _ts_generator(this,function(_state){return[2,new Promise(function(resolve,reject){serviceClient.createUser({tenantId:tenantId,login:login,email:email,displayName:displayName,password:password,active:active,assignedRoleIds:assignedRoleIds,blockedUntil:blockedUntil.getTime().toString(),eventMetadata:(0,_eventMetadata.fillMetadataWithDefaults)(eventMetadata)},function(error,response){if(error){reject(error.message);return}resolve({id:response.id,setInitialPasswordToken:response.setInitialPasswordToken})})})]})});return function createNewUser(tenantId,login,email,displayName,password,assignedRoleIds,active,blockedUntil,eventMetadata,serviceClient){return _ref.apply(this,arguments)}}();
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import { ServiceClient } from "@fraym/proto/freym
|
|
2
|
-
|
|
1
|
+
import { ServiceClient } from "@fraym/proto/dist/index.freym.auth.management";
|
|
2
|
+
import { EventMetadata } from "./eventMetadata";
|
|
3
|
+
export declare const deleteExistingRole: (tenantId: string, id: string, eventMetadata: Partial<EventMetadata> | null, serviceClient: ServiceClient) => Promise<void>;
|
|
@@ -1,18 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deleteExistingRole = void 0;
|
|
4
|
-
const deleteExistingRole = async (tenantId, id, serviceClient) => {
|
|
5
|
-
return new Promise((resolve, reject) => {
|
|
6
|
-
serviceClient.deleteRole({
|
|
7
|
-
tenantId,
|
|
8
|
-
id,
|
|
9
|
-
}, error => {
|
|
10
|
-
if (error) {
|
|
11
|
-
reject(error.message);
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
resolve();
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
};
|
|
18
|
-
exports.deleteExistingRole = deleteExistingRole;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"deleteExistingRole",{enumerable:true,get:function(){return deleteExistingRole}});var _eventMetadata=require("./eventMetadata");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{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;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var deleteExistingRole=/*#__PURE__*/function(){var _ref=_async_to_generator(function(tenantId,id,eventMetadata,serviceClient){return _ts_generator(this,function(_state){return[2,new Promise(function(resolve,reject){serviceClient.deleteRole({tenantId:tenantId,id:id,eventMetadata:(0,_eventMetadata.fillMetadataWithDefaults)(eventMetadata)},function(error){if(error){reject(error.message);return}resolve()})})]})});return function deleteExistingRole(tenantId,id,eventMetadata,serviceClient){return _ref.apply(this,arguments)}}();
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import { ServiceClient } from "@fraym/proto/freym
|
|
2
|
-
|
|
1
|
+
import { ServiceClient } from "@fraym/proto/dist/index.freym.auth.management";
|
|
2
|
+
import { EventMetadata } from "./eventMetadata";
|
|
3
|
+
export declare const deleteExistingUser: (tenantId: string, id: string, eventMetadata: Partial<EventMetadata> | null, serviceClient: ServiceClient) => Promise<void>;
|
|
@@ -1,18 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deleteExistingUser = void 0;
|
|
4
|
-
const deleteExistingUser = async (tenantId, id, serviceClient) => {
|
|
5
|
-
return new Promise((resolve, reject) => {
|
|
6
|
-
serviceClient.deleteUser({
|
|
7
|
-
tenantId,
|
|
8
|
-
id,
|
|
9
|
-
}, error => {
|
|
10
|
-
if (error) {
|
|
11
|
-
reject(error.message);
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
resolve();
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
};
|
|
18
|
-
exports.deleteExistingUser = deleteExistingUser;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"deleteExistingUser",{enumerable:true,get:function(){return deleteExistingUser}});var _eventMetadata=require("./eventMetadata");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{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;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var deleteExistingUser=/*#__PURE__*/function(){var _ref=_async_to_generator(function(tenantId,id,eventMetadata,serviceClient){return _ts_generator(this,function(_state){return[2,new Promise(function(resolve,reject){serviceClient.deleteUser({tenantId:tenantId,id:id,eventMetadata:(0,_eventMetadata.fillMetadataWithDefaults)(eventMetadata)},function(error){if(error){reject(error.message);return}resolve()})})]})});return function deleteExistingUser(tenantId,id,eventMetadata,serviceClient){return _ref.apply(this,arguments)}}();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"fillMetadataWithDefaults",{enumerable:true,get:function(){return fillMetadataWithDefaults}});var fillMetadataWithDefaults=function(metadata){if(!metadata){return{causationId:"",correlationId:"",deploymentId:"",userId:""}}return{causationId:metadata.causationId||"",correlationId:metadata.correlationId||"",deploymentId:metadata.deploymentId||"",userId:metadata.userId||""}};
|
|
@@ -1,17 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getAllRoles = void 0;
|
|
4
|
-
const getAllRoles = async (tenantId, serviceClient) => {
|
|
5
|
-
return new Promise((resolve, reject) => {
|
|
6
|
-
serviceClient.getRoles({
|
|
7
|
-
tenantId,
|
|
8
|
-
}, (error, response) => {
|
|
9
|
-
if (error) {
|
|
10
|
-
reject(error.message);
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
resolve(response.roles);
|
|
14
|
-
});
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
exports.getAllRoles = getAllRoles;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"getAllRoles",{enumerable:true,get:function(){return getAllRoles}});function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{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;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var getAllRoles=/*#__PURE__*/function(){var _ref=_async_to_generator(function(tenantId,serviceClient){return _ts_generator(this,function(_state){return[2,new Promise(function(resolve,reject){serviceClient.getRoles({tenantId:tenantId},function(error,response){if(error){reject(error.message);return}resolve(response.roles)})})]})});return function getAllRoles(tenantId,serviceClient){return _ref.apply(this,arguments)}}();
|
|
@@ -1,30 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getAllUsers = void 0;
|
|
4
|
-
const getAllUsers = async (tenantId, serviceClient) => {
|
|
5
|
-
return new Promise((resolve, reject) => {
|
|
6
|
-
serviceClient.getUsers({
|
|
7
|
-
tenantId,
|
|
8
|
-
}, (error, response) => {
|
|
9
|
-
if (error) {
|
|
10
|
-
reject(error.message);
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
resolve(response.users.map(user => {
|
|
14
|
-
const newUser = {
|
|
15
|
-
active: user.active,
|
|
16
|
-
assignedRoleIds: user.assignedRoleIds,
|
|
17
|
-
blockedUntil: parseInt(user.blockedUntil),
|
|
18
|
-
displayName: user.displayName,
|
|
19
|
-
email: user.email,
|
|
20
|
-
failedAttempts: parseInt(user.failedAttempts),
|
|
21
|
-
id: user.id,
|
|
22
|
-
lastAttempt: parseInt(user.lastAttempt),
|
|
23
|
-
login: user.login,
|
|
24
|
-
};
|
|
25
|
-
return newUser;
|
|
26
|
-
}));
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
exports.getAllUsers = getAllUsers;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"getAllUsers",{enumerable:true,get:function(){return getAllUsers}});function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{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;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var getAllUsers=/*#__PURE__*/function(){var _ref=_async_to_generator(function(tenantId,serviceClient){return _ts_generator(this,function(_state){return[2,new Promise(function(resolve,reject){serviceClient.getUsers({tenantId:tenantId},function(error,response){if(error){reject(error.message);return}resolve(response.users.map(function(user){var newUser={active:user.active,assignedRoleIds:user.assignedRoleIds,blockedUntil:parseInt(user.blockedUntil),displayName:user.displayName,email:user.email,failedAttempts:parseInt(user.failedAttempts),id:user.id,lastAttempt:parseInt(user.lastAttempt),login:user.login};return newUser}))})})]})});return function getAllUsers(tenantId,serviceClient){return _ref.apply(this,arguments)}}();
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import { ServiceClient } from "@fraym/proto/freym
|
|
2
|
-
|
|
1
|
+
import { ServiceClient } from "@fraym/proto/dist/index.freym.auth.management";
|
|
2
|
+
import { EventMetadata } from "./eventMetadata";
|
|
3
|
+
export declare const updateExistingUser: (tenantId: string, id: string, login: string, email: string, displayName: string, password: string, assignedRoleIds: string[], active: boolean, blockedUntil: Date, eventMetadata: Partial<EventMetadata> | null, serviceClient: ServiceClient) => Promise<void>;
|
|
@@ -1,25 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updateExistingUser = void 0;
|
|
4
|
-
const updateExistingUser = async (tenantId, id, login, email, displayName, password, assignedRoleIds, active, blockedUntil, serviceClient) => {
|
|
5
|
-
return new Promise((resolve, reject) => {
|
|
6
|
-
serviceClient.updateUser({
|
|
7
|
-
tenantId,
|
|
8
|
-
id,
|
|
9
|
-
login,
|
|
10
|
-
email,
|
|
11
|
-
displayName,
|
|
12
|
-
password,
|
|
13
|
-
active,
|
|
14
|
-
assignedRoleIds,
|
|
15
|
-
blockedUntil: blockedUntil.getTime().toString(),
|
|
16
|
-
}, error => {
|
|
17
|
-
if (error) {
|
|
18
|
-
reject(error.message);
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
resolve();
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
exports.updateExistingUser = updateExistingUser;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"updateExistingUser",{enumerable:true,get:function(){return updateExistingUser}});var _eventMetadata=require("./eventMetadata");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{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;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var updateExistingUser=/*#__PURE__*/function(){var _ref=_async_to_generator(function(tenantId,id,login,email,displayName,password,assignedRoleIds,active,blockedUntil,eventMetadata,serviceClient){return _ts_generator(this,function(_state){return[2,new Promise(function(resolve,reject){serviceClient.updateUser({tenantId:tenantId,id:id,login:login,email:email,displayName:displayName,password:password,active:active,assignedRoleIds:assignedRoleIds,blockedUntil:blockedUntil.getTime().toString(),eventMetadata:(0,_eventMetadata.fillMetadataWithDefaults)(eventMetadata)},function(error){if(error){reject(error.message);return}resolve()})})]})});return function updateExistingUser(tenantId,id,login,email,displayName,password,assignedRoleIds,active,blockedUntil,eventMetadata,serviceClient){return _ref.apply(this,arguments)}}();
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ServiceClient } from "@fraym/proto/freym
|
|
1
|
+
import { ServiceClient } from "@fraym/proto/dist/index.freym.auth.management";
|
|
2
|
+
import { EventMetadata } from "./eventMetadata";
|
|
2
3
|
export interface UpsertRoleScope {
|
|
3
4
|
scopeName: string;
|
|
4
5
|
clientId?: string;
|
|
5
6
|
}
|
|
6
|
-
export declare const createOrUpdateRole: (tenantId: string, id: string, allowedScopes: UpsertRoleScope[], serviceClient: ServiceClient) => Promise<string>;
|
|
7
|
+
export declare const createOrUpdateRole: (tenantId: string, id: string, allowedScopes: UpsertRoleScope[], eventMetadata: Partial<EventMetadata> | null, serviceClient: ServiceClient) => Promise<string>;
|
|
@@ -1,25 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createOrUpdateRole = void 0;
|
|
4
|
-
const createOrUpdateRole = async (tenantId, id, allowedScopes, serviceClient) => {
|
|
5
|
-
return new Promise((resolve, reject) => {
|
|
6
|
-
serviceClient.upsertRole({
|
|
7
|
-
tenantId,
|
|
8
|
-
id,
|
|
9
|
-
allowedScopes: allowedScopes.map(scope => {
|
|
10
|
-
var _a;
|
|
11
|
-
return {
|
|
12
|
-
scopeName: scope.scopeName,
|
|
13
|
-
clientId: (_a = scope.clientId) !== null && _a !== void 0 ? _a : "",
|
|
14
|
-
};
|
|
15
|
-
}),
|
|
16
|
-
}, (error, response) => {
|
|
17
|
-
if (error) {
|
|
18
|
-
reject(error.message);
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
resolve(response.id);
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
exports.createOrUpdateRole = createOrUpdateRole;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"createOrUpdateRole",{enumerable:true,get:function(){return createOrUpdateRole}});var _eventMetadata=require("./eventMetadata");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{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;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var createOrUpdateRole=/*#__PURE__*/function(){var _ref=_async_to_generator(function(tenantId,id,allowedScopes,eventMetadata,serviceClient){return _ts_generator(this,function(_state){return[2,new Promise(function(resolve,reject){serviceClient.upsertRole({tenantId:tenantId,id:id,allowedScopes:allowedScopes.map(function(scope){var _scope_clientId;return{scopeName:scope.scopeName,clientId:(_scope_clientId=scope.clientId)!==null&&_scope_clientId!==void 0?_scope_clientId:""}}),eventMetadata:(0,_eventMetadata.fillMetadataWithDefaults)(eventMetadata)},function(error,response){if(error){reject(error.message);return}resolve(response.id)})})]})});return function createOrUpdateRole(tenantId,id,allowedScopes,eventMetadata,serviceClient){return _ref.apply(this,arguments)}}();
|
package/dist/util/token.d.ts
CHANGED
package/dist/util/token.js
CHANGED
|
@@ -1,64 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTokenData = exports.addDataToJwt = exports.generateJwt = void 0;
|
|
4
|
-
const jose_1 = require("jose");
|
|
5
|
-
const alg = "HS256";
|
|
6
|
-
const generateJwt = async (appSecret, tenantId, scopes = [], data = {}, expirationTime = "5m") => {
|
|
7
|
-
const secret = new TextEncoder().encode(appSecret);
|
|
8
|
-
return await new jose_1.SignJWT({
|
|
9
|
-
type: "access_token",
|
|
10
|
-
tenantId,
|
|
11
|
-
scopes,
|
|
12
|
-
data,
|
|
13
|
-
})
|
|
14
|
-
.setProtectedHeader({
|
|
15
|
-
alg,
|
|
16
|
-
typ: "JWT",
|
|
17
|
-
})
|
|
18
|
-
.setIssuedAt()
|
|
19
|
-
.setNotBefore("0s")
|
|
20
|
-
.setIssuer("auth")
|
|
21
|
-
.setAudience(["fraym"])
|
|
22
|
-
.setExpirationTime(expirationTime)
|
|
23
|
-
.sign(secret);
|
|
24
|
-
};
|
|
25
|
-
exports.generateJwt = generateJwt;
|
|
26
|
-
const addDataToJwt = async (appSecret, token, data) => {
|
|
27
|
-
var _a;
|
|
28
|
-
const secret = new TextEncoder().encode(appSecret);
|
|
29
|
-
const { payload, protectedHeader } = await (0, jose_1.jwtVerify)(token, secret, {
|
|
30
|
-
clockTolerance: "10 seconds",
|
|
31
|
-
});
|
|
32
|
-
if (!payload.exp) {
|
|
33
|
-
throw Error("expiration time is missing in JWT");
|
|
34
|
-
}
|
|
35
|
-
const newData = (_a = payload.data) !== null && _a !== void 0 ? _a : {};
|
|
36
|
-
for (let key in data) {
|
|
37
|
-
newData[key] = data[key];
|
|
38
|
-
}
|
|
39
|
-
return new jose_1.SignJWT(Object.assign(Object.assign({}, payload), { data: newData }))
|
|
40
|
-
.setProtectedHeader(protectedHeader)
|
|
41
|
-
.sign(secret);
|
|
42
|
-
};
|
|
43
|
-
exports.addDataToJwt = addDataToJwt;
|
|
44
|
-
const getTokenData = async (appSecret, token, requireUserId = true) => {
|
|
45
|
-
var _a, _b, _c;
|
|
46
|
-
const secret = new TextEncoder().encode(appSecret);
|
|
47
|
-
const { payload } = await (0, jose_1.jwtVerify)(token, secret, {
|
|
48
|
-
clockTolerance: "10 seconds",
|
|
49
|
-
});
|
|
50
|
-
if (!payload.exp) {
|
|
51
|
-
throw Error("expiration time is missing in JWT");
|
|
52
|
-
}
|
|
53
|
-
if (requireUserId && !payload.sub) {
|
|
54
|
-
throw Error("user id (subject) is missing in JWT");
|
|
55
|
-
}
|
|
56
|
-
return {
|
|
57
|
-
tenantId: (_a = payload.tenantId) !== null && _a !== void 0 ? _a : "",
|
|
58
|
-
scopes: (_b = payload.scopes) !== null && _b !== void 0 ? _b : [],
|
|
59
|
-
userId: (_c = payload.sub) !== null && _c !== void 0 ? _c : "",
|
|
60
|
-
exp: payload.exp,
|
|
61
|
-
data: payload.data,
|
|
62
|
-
};
|
|
63
|
-
};
|
|
64
|
-
exports.getTokenData = getTokenData;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{addDataToJwt:function(){return addDataToJwt},generateJwt:function(){return generateJwt},getTokenData:function(){return getTokenData}});var _jose=require("jose");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _ts_generator(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{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;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var alg="HS256";var generateJwt=/*#__PURE__*/function(){var _ref=_async_to_generator(function(appSecret,tenantId){var scopes,data,expirationTime,secret;var _arguments=arguments;return _ts_generator(this,function(_state){switch(_state.label){case 0:scopes=_arguments.length>2&&_arguments[2]!==void 0?_arguments[2]:[],data=_arguments.length>3&&_arguments[3]!==void 0?_arguments[3]:{},expirationTime=_arguments.length>4&&_arguments[4]!==void 0?_arguments[4]:"5m";secret=new TextEncoder().encode(appSecret);return[4,new _jose.SignJWT({type:"access_token",tenantId:tenantId,scopes:scopes,data:data}).setProtectedHeader({alg:alg,typ:"JWT"}).setIssuedAt().setNotBefore("0s").setIssuer("auth").setAudience(["fraym"]).setExpirationTime(expirationTime).sign(secret)];case 1:return[2,_state.sent()]}})});return function generateJwt(appSecret,tenantId){return _ref.apply(this,arguments)}}();var addDataToJwt=/*#__PURE__*/function(){var _ref=_async_to_generator(function(appSecret,token,data){var secret,_ref,payload,protectedHeader,_payload_data,newData,key;return _ts_generator(this,function(_state){switch(_state.label){case 0:secret=new TextEncoder().encode(appSecret);return[4,(0,_jose.jwtVerify)(token,secret,{clockTolerance:"10 seconds"})];case 1:_ref=_state.sent(),payload=_ref.payload,protectedHeader=_ref.protectedHeader;if(!payload.exp){throw Error("expiration time is missing in JWT")}newData=(_payload_data=payload.data)!==null&&_payload_data!==void 0?_payload_data:{};for(var key in data){newData[key]=data[key]}return[2,new _jose.SignJWT(_object_spread_props(_object_spread({},payload),{data:newData})).setProtectedHeader(protectedHeader).sign(secret)]}})});return function addDataToJwt(appSecret,token,data){return _ref.apply(this,arguments)}}();var getTokenData=/*#__PURE__*/function(){var _ref=_async_to_generator(function(appSecret,token){var requireUserId,secret,payload,_payload_tenantId,_payload_scopes,_payload_sub,_payload_data;var _arguments=arguments;return _ts_generator(this,function(_state){switch(_state.label){case 0:requireUserId=_arguments.length>2&&_arguments[2]!==void 0?_arguments[2]:true;secret=new TextEncoder().encode(appSecret);return[4,(0,_jose.jwtVerify)(token,secret,{clockTolerance:"10 seconds"})];case 1:payload=_state.sent().payload;if(!payload.exp){throw Error("expiration time is missing in JWT")}if(requireUserId&&!payload.sub){throw Error("user id (subject) is missing in JWT")}return[2,{tenantId:(_payload_tenantId=payload.tenantId)!==null&&_payload_tenantId!==void 0?_payload_tenantId:"",scopes:(_payload_scopes=payload.scopes)!==null&&_payload_scopes!==void 0?_payload_scopes:[],userId:(_payload_sub=payload.sub)!==null&&_payload_sub!==void 0?_payload_sub:"",exp:payload.exp,data:(_payload_data=payload.data)!==null&&_payload_data!==void 0?_payload_data:null}]}})});return function getTokenData(appSecret,token){return _ref.apply(this,arguments)}}();
|
package/package.json
CHANGED
|
@@ -1,48 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fraym/auth",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.31.0",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"homepage": "https://github.com/fraym/
|
|
5
|
+
"homepage": "https://github.com/fraym/freym-api",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
|
-
"url": "git+https://github.com/fraym/
|
|
8
|
+
"url": "git+https://github.com/fraym/freym-api.git"
|
|
9
9
|
},
|
|
10
|
-
"description": "
|
|
10
|
+
"description": "JS client implementation of the auth service of Freym",
|
|
11
11
|
"scripts": {
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"build": "npm run clean && tsc",
|
|
16
|
-
"clean": "rm -rf dist",
|
|
17
|
-
"prepublishOnly": "npm test && npm run lint && npm run build",
|
|
18
|
-
"preversion": "npm run lint",
|
|
19
|
-
"cmd": "dist/cmd/auth.js"
|
|
12
|
+
"build": "rm -rf dist && tsc && npx swc . -d dist",
|
|
13
|
+
"lint": "eslint && prettier --check \"**/*.{ts,tsx,json,scss,css}\"",
|
|
14
|
+
"fix": "eslint --fix && prettier --write \"**/*.{ts,tsx,json,scss,css}\""
|
|
20
15
|
},
|
|
21
16
|
"files": [
|
|
22
17
|
"dist/**/*"
|
|
23
18
|
],
|
|
24
19
|
"engines": {
|
|
25
|
-
"node": ">=
|
|
20
|
+
"node": ">=20"
|
|
26
21
|
},
|
|
27
22
|
"main": "dist/index.js",
|
|
28
23
|
"types": "dist/index.d.ts",
|
|
29
24
|
"dependencies": {
|
|
30
|
-
"@fraym/proto": "^0.
|
|
31
|
-
"@
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"dotenv": "^16.3.1",
|
|
35
|
-
"graphql": "^16.8.0",
|
|
36
|
-
"jose": "^4.14.6",
|
|
37
|
-
"yargs": "^17.7.2"
|
|
38
|
-
},
|
|
39
|
-
"devDependencies": {
|
|
40
|
-
"@becklyn/prettier": "^1.0.2",
|
|
41
|
-
"@types/uuid": "^8.3.4",
|
|
42
|
-
"@types/yargs": "^17.0.24",
|
|
43
|
-
"prettier": "^2.8.8",
|
|
44
|
-
"typescript": "^4.9.5",
|
|
45
|
-
"uuid": "^9.0.1"
|
|
25
|
+
"@fraym/proto": "^0.31.0",
|
|
26
|
+
"@grpc/grpc-js": "^1.12.6",
|
|
27
|
+
"dotenv": "^16.4.7",
|
|
28
|
+
"jose": "^5.9.6"
|
|
46
29
|
},
|
|
47
30
|
"prettier": "@becklyn/prettier"
|
|
48
31
|
}
|