scimgateway 6.1.1 → 6.1.3
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 +66 -96
- package/bun.lock +10 -10
- package/lib/helper-rest.ts +244 -248
- package/lib/plugin-ldap.ts +418 -412
- package/lib/plugin-loki.ts +11 -4
- package/lib/plugin-mongodb.ts +23 -13
- package/lib/scimgateway.ts +225 -62
- package/lib/utils-scim.ts +15 -7
- package/lib/utils.ts +9 -1
- package/package.json +4 -4
- package/test/lib/plugin-mongodb_test.ts_excluded +214 -38
package/README.md
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
# SCIM Gateway
|
|
2
2
|
|
|
3
|
-
[](https://app.travis-ci.com/github/jelhub/scimgateway) [](https://www.npmjs.com/package/scimgateway)[](https://www.npmjs.com/package/scimgateway) [](https://elshaug.xyz/docs/scimgateway#disqus_thread) [](https://github.com/jelhub/scimgateway)
|
|
3
|
+
[](https://app.travis-ci.com/github/jelhub/scimgateway) [](https://www.npmjs.com/package/scimgateway)[](https://www.npmjs.com/package/scimgateway) [](https://elshaug.xyz/docs/scimgateway#disqus_thread) [](https://github.com/jelhub/scimgateway)
|
|
4
4
|
|
|
5
|
-
---
|
|
6
|
-
Author
|
|
5
|
+
---
|
|
6
|
+
**Author:** Jarle Elshaug
|
|
7
7
|
|
|
8
|
-
Validated through
|
|
8
|
+
**Validated through IdPs:**
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
* Symantec/Broadcom Identity Manager
|
|
11
|
+
* Microsoft Entra ID
|
|
12
|
+
* One Identity Manager
|
|
13
|
+
* Okta
|
|
14
|
+
* Omada
|
|
15
|
+
* SailPoint/IdentityNow
|
|
16
|
+
---
|
|
16
17
|
|
|
17
18
|
Latest news:
|
|
18
19
|
|
|
@@ -20,7 +21,7 @@ Latest news:
|
|
|
20
21
|
- Major release **v6.0.0** introduces changes to API method response bodies (not SCIM-related) and a new method `publicApi()` for handling public path `/pub/api` requests with no authentication required. In addition, the configuration option `bearerJwtAzure.tenantIdGUID` has been replaced by `bearerJwt.azureTenantId`. See the version history for details.
|
|
21
22
|
- Support for Entra ID [Federated Identity Credentials](https://learn.microsoft.com/en-us/graph/api/resources/federatedidentitycredentials-overview?view=graph-rest-1.0) has been added through internal JWKS (JSON Web Key Set), allowing SCIM Gateway to access Microsoft Entra–protected resources without the need to manage secrets
|
|
22
23
|
- External JWKS (JSON Web Key Set) is now supported by JWT authentication, allowing external applications to access SCIM Gateway without the need to manage secrets
|
|
23
|
-
- [Azure Relay](https://learn.microsoft.com/en-us/azure/azure-relay/relay-what-is-it) is now supported for secure and hassle-free outbound communication — with just one minute of configuration
|
|
24
|
+
- [Azure Relay](https://learn.microsoft.com/en-us/azure/azure-relay/relay-what-is-it) is now supported for secure and hassle-free outbound-only communication — with just one minute of configuration
|
|
24
25
|
- [ETag](https://datatracker.ietf.org/doc/html/rfc7644#section-3.14) is now supported
|
|
25
26
|
- [Bulk Operations](https://datatracker.ietf.org/doc/html/rfc7644#section-3.7) is now supported
|
|
26
27
|
- Remote real-time log subscription for centralized logging and monitoring. Using browser `https://<host>/logger`, curl or custom client API - see configuration notes
|
|
@@ -42,6 +43,8 @@ Latest news:
|
|
|
42
43
|
- Includes API Gateway for none SCIM/provisioning - becomes what you want it to become
|
|
43
44
|
- Running SCIM Gateway as a Docker container
|
|
44
45
|
|
|
46
|
+
---
|
|
47
|
+
|
|
45
48
|
## Overview
|
|
46
49
|
|
|
47
50
|
SCIM Gateway facilitates user management using the standardized REST-based SCIM 1.1 or 2.0 protocol, offering easier, more powerful, and consistent provisioning while avoiding vendor lock-in. Acting as a translator for incoming SCIM requests, the gateway seamlessly enables CRUD functionality (create, read, update, and delete) for users and groups. By implementing endpoint-specific protocols, it ensures provisioning across diverse destinations. With the gateway, your destinations become SCIM-compatible interfaces, streamlining integration and simplifying user management.
|
|
@@ -54,8 +57,8 @@ The following fully functional plugins are included for demonstration and produc
|
|
|
54
57
|
|
|
55
58
|
| Plugin | Endpoint Type | Description |
|
|
56
59
|
| :--- | :--- | :--- |
|
|
57
|
-
| **Loki** | NoSQL Database |
|
|
58
|
-
| **MongoDB** | NoSQL Database |
|
|
60
|
+
| **Loki** | NoSQL Database | Transforms the SCIM Gateway into a standalone SCIM endpoint utilizing the internal [LokiJS](https://github.com/techfort/LokiJS) database. Includes two test users and groups |
|
|
61
|
+
| **MongoDB** | NoSQL Database | Similar to the Loki plugin, but using an externally managed MongoDB database, showcasing multi-tenant and multi-endpoint capabilities via `baseEntity` |
|
|
59
62
|
| **Entra ID** | REST Webservices | Entra ID user provisioning via Microsoft Graph API |
|
|
60
63
|
| **SCIM** | REST Webservice | Using plugin Loki as a SCIM provisioning endpoint. May become a SCIM version-gateway (e.g., 1.1 => 2.0) |
|
|
61
64
|
| **API** | REST Webservices | A non-SCIM plugin demonstrating API Gateway functionality for custom REST specifications |
|
|
@@ -65,6 +68,7 @@ The following fully functional plugins are included for demonstration and produc
|
|
|
65
68
|
| **LDAP** | Directory | A fully functional LDAP plugin pre-configured for Microsoft Active Directory |
|
|
66
69
|
|
|
67
70
|
## Installation
|
|
71
|
+
To get started with SCIM Gateway, follow the instructions below.
|
|
68
72
|
|
|
69
73
|
#### Install Bun
|
|
70
74
|
|
|
@@ -91,7 +95,7 @@ index.ts, lib and config directories containing example plugins are copied to yo
|
|
|
91
95
|
Start a browser
|
|
92
96
|
|
|
93
97
|
http://localhost:8880/ping
|
|
94
|
-
=>
|
|
98
|
+
=> Returns a health check with a "hello" response
|
|
95
99
|
|
|
96
100
|
http://localhost:8880/Users
|
|
97
101
|
http://localhost:8880/Groups
|
|
@@ -126,7 +130,7 @@ The recommended upgrade method is to rename the existing package folder, perform
|
|
|
126
130
|
- Minor Upgrade: `bun install scimgateway`
|
|
127
131
|
- Major Upgrade: `bun install scimgateway@latest` (Use with caution, as it may break compatibility with existing custom plugins)
|
|
128
132
|
|
|
129
|
-
##### Avoid (re-)adding the
|
|
133
|
+
##### Avoid (re-)adding the example plugins created during `postinstall`
|
|
130
134
|
|
|
131
135
|
For production we do not need example plugins to be incuded by the `postinstall` job
|
|
132
136
|
Bun will by default exlude any `postinstall` jobs unless we have trusted the scimgateway package using the `bun pm trust scimgateway` that updates package.json `{ trustedDependencies: ["scimgateway"] }`
|
|
@@ -135,7 +139,7 @@ For Node.js (and also Bun), we might set the property `scimgateway_postinstall_s
|
|
|
135
139
|
|
|
136
140
|
## Configuration
|
|
137
141
|
|
|
138
|
-
|
|
142
|
+
The `index.ts` file defines the plugins to be started.
|
|
139
143
|
|
|
140
144
|
// start one or more plugins:
|
|
141
145
|
import './lib/plugin-entra-id.ts'
|
|
@@ -143,7 +147,7 @@ For Node.js (and also Bun), we might set the property `scimgateway_postinstall_s
|
|
|
143
147
|
|
|
144
148
|
|
|
145
149
|
Each endpoint plugin needs a TypeScript file (.ts) and a configuration file (.json).
|
|
146
|
-
|
|
150
|
+
They both must have the **same naming prefix**. For the Entra ID endpoint, the corresponding files are:
|
|
147
151
|
>lib\plugin-entra-id.ts
|
|
148
152
|
>config\plugin-entra-id.json
|
|
149
153
|
|
|
@@ -158,39 +162,39 @@ A plugin configuration file has two main JSON objects: `scimgateway` and `endpoi
|
|
|
158
162
|
}
|
|
159
163
|
}
|
|
160
164
|
|
|
161
|
-
`scimgateway`: Contains fixed attributes used by the core gateway functionality
|
|
165
|
+
`scimgateway`: Contains fixed attributes used by the core gateway functionality, such as port, logging, and authentication.
|
|
162
166
|
|
|
163
|
-
`endpoint`: Contains customized definitions required by the plugin code for communication with the destination system
|
|
167
|
+
`endpoint`: Contains customized definitions required by the plugin code for communication with the destination system, including host, port, and credentials.
|
|
164
168
|
|
|
165
|
-
- **port
|
|
169
|
+
- **port**: The gateway will listen on this port number. Clients, such as a provisioning server, will use this port to communicate with the gateway.
|
|
166
170
|
|
|
167
|
-
- **localhostonly
|
|
171
|
+
- **localhostonly**: Set to `true` to accept incoming requests only from localhost (127.0.0.1). Set to `false` to accept requests from all clients.
|
|
168
172
|
|
|
169
|
-
- **chainingBaseUrl
|
|
173
|
+
- **chainingBaseUrl**: The base URL for chaining another gateway, with the syntax `http(s)://host:port`. When defined, the gateway behaves like a reverse proxy, validating authorization unless PassThrough mode is enabled. See `Configuration notes` for details.
|
|
170
174
|
|
|
171
|
-
- **idleTimeout
|
|
175
|
+
- **idleTimeout**: The number of seconds to wait before timing out a connection due to inactivity. The default value is 120 seconds.
|
|
172
176
|
|
|
173
|
-
- **scim.version
|
|
177
|
+
- **scim.version**: Specifies the SCIM protocol version to use, either "1.1" or "2.0". The default is "2.0".
|
|
174
178
|
|
|
175
|
-
- **scim.skipTypeConvert
|
|
179
|
+
- **scim.skipTypeConvert**: When set to `true`, multivalue attributes with types (e.g., emails, phoneNumbers, ims, photos, addresses, entitlements, and x509Certificates, but not roles, groups, and members) will not be converted into "type converted objects" when sent to `modifyUser` and `createUser`. This is useful for simplifying attribute checks and for the `endpointMapper` method used by `plugin-ldap` and `plugin-entra-id`. For example:
|
|
176
180
|
|
|
177
181
|
"emails": {
|
|
178
182
|
"work": {"value": "jsmith@example.com", "type": "work"},
|
|
179
183
|
"home": {"value": "", "type": "home", "operation": "delete"},
|
|
180
184
|
"undefined": {"value": "jsmith@hotmail.com"}
|
|
181
185
|
}
|
|
182
|
-
|
|
183
|
-
skipTypeConvert set to true gives attribute "as-is": array, allow duplicate types including blank, but values to be deleted have been marked with "operation": "delete"
|
|
184
186
|
|
|
187
|
+
When `skipTypeConvert` is set to `true`, the attribute is provided "as-is" as an array, allowing duplicate types including blank types. Values to be deleted are marked with `"operation": "delete"`.
|
|
188
|
+
|
|
185
189
|
"emails": [
|
|
186
190
|
{"value": "jsmith@example.com", "type": "work"},
|
|
187
191
|
{"value": "john.smith.org", "type": "home", "operation": "delete"},
|
|
188
192
|
{"value": "jsmith@hotmail.com"}
|
|
189
193
|
]
|
|
190
194
|
|
|
191
|
-
- **scim.skipMetaLocation
|
|
195
|
+
- **scim.skipMetaLocation**: When set to `true`, the `meta.location` attribute, which contains the protocol and hostname from the request URL, will be excluded from the response (e.g., `"{...,meta":{"location":"https://my-company.com/<...>"}}`). This is useful when using a reverse proxy and not including the `X-Forwarded-Proto` and `X-Forwarded-Host` headers, as the originator will be the proxy and the internal protocol and hostname should not be exposed.
|
|
192
196
|
|
|
193
|
-
- **scim.groupMemberOfUser
|
|
197
|
+
- **scim.groupMemberOfUser**: When set to `true`, and the request body contains groups, the `groups` attribute will remain on the user object (groups are members of the user). The default behavior is for the user to be a member of the groups, which uses the `modifyGroup` method to maintain group members.
|
|
194
198
|
|
|
195
199
|
- **scim.usePutSoftSync** - true or false, default false. `PUT /Users/bjensen` will replace the user bjensen with body content. If set to `true`, only PUT body content will be replaced. Any additional existing user attributes and groups supported by plugin will remain as-is.
|
|
196
200
|
|
|
@@ -1169,36 +1173,6 @@ Endpoint configuration example:
|
|
|
1169
1173
|
|
|
1170
1174
|
For details, please see section "CA Identity Manager as IdP using SCIM Gateway"
|
|
1171
1175
|
|
|
1172
|
-
## SCIM Gateway REST API
|
|
1173
|
-
|
|
1174
|
-
Create = POST http://localhost:8880/Users
|
|
1175
|
-
(body contains the user information)
|
|
1176
|
-
|
|
1177
|
-
Update = PATCH http://localhost:8880/Users/<id>
|
|
1178
|
-
(body contains the attributes to be updated)
|
|
1179
|
-
|
|
1180
|
-
Search/Read = GET http://localhost:8880/Users?userName eq
|
|
1181
|
-
"userID"&attributes=<comma separated list of scim-schema defined attributes>
|
|
1182
|
-
|
|
1183
|
-
Search/explore all users:
|
|
1184
|
-
GET http://localhost:8880/Users?attributes=userName
|
|
1185
|
-
|
|
1186
|
-
Delete = DELETE http://localhost:8880/Users/<id>
|
|
1187
|
-
|
|
1188
|
-
Discovery:
|
|
1189
|
-
|
|
1190
|
-
GET http://localhost:8880/ServiceProviderConfigs
|
|
1191
|
-
Specification compliance, authentication schemes, data models.
|
|
1192
|
-
|
|
1193
|
-
GET http://localhost:8880/Schemas
|
|
1194
|
-
Introspect resources and attribute extensions.
|
|
1195
|
-
|
|
1196
|
-
Note:
|
|
1197
|
-
|
|
1198
|
-
- userName (mandatory) = UserID
|
|
1199
|
-
- id (mandatory) = Unique id. Could be set to the same as UserID but don't have to.
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
1176
|
## API Gateway
|
|
1203
1177
|
|
|
1204
1178
|
SCIM Gateway also works as an API Gateway when using url `/api` or `/<baseEntity>/api`
|
|
@@ -1213,35 +1187,33 @@ Following methods for the none SCIM based api-plugin are supported:
|
|
|
1213
1187
|
PATCH /api/{id} + body
|
|
1214
1188
|
DELETE /api/{id}
|
|
1215
1189
|
|
|
1216
|
-
These methods can also be
|
|
1190
|
+
These methods can also be included in standard SCIM plugins
|
|
1217
1191
|
Please see example plugin: **plugin-api.ts**
|
|
1218
1192
|
|
|
1219
|
-
|
|
1220
1193
|
## How to build your own plugins
|
|
1221
|
-
For
|
|
1194
|
+
For coding editor you may use [Visual Studio Code](https://code.visualstudio.com/ "Visual Studio Code")
|
|
1222
1195
|
|
|
1223
1196
|
Preparation:
|
|
1224
1197
|
|
|
1225
1198
|
* Copy "best matching" example plugin e.g. `lib\plugin-mssql.ts` and `config\plugin-mssql.json` and rename both copies to your plugin name prefix e.g. plugin-mine.ts and plugin-mine.json
|
|
1226
1199
|
* Edit plugin-mine.json and define a unique port number for the gateway setting
|
|
1227
|
-
* Edit index.ts and include your plugin in the startup e.g. `
|
|
1228
|
-
* Start SCIM Gateway and verify
|
|
1200
|
+
* Edit index.ts and include your plugin in the startup e.g. `import './lib/plugin-mine.ts'`
|
|
1201
|
+
* Start SCIM Gateway and verify
|
|
1229
1202
|
|
|
1230
|
-
|
|
1203
|
+
We are now ready for custom coding by editing plugin-mine.ts
|
|
1231
1204
|
Coding should be done step by step and each step should be verified and tested before starting the next
|
|
1232
1205
|
|
|
1233
1206
|
1. **Turn off group functionality** - getGroups to return empty response (gateway automatically use getGroups for some of the methods if groups not included)
|
|
1234
1207
|
Please see plugin-saphana that do not use groups.
|
|
1235
1208
|
2. **getUsers** (test provisioning retrieve all accounts and single account)
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1209
|
+
3. **createUser** (test provisioning new account)
|
|
1210
|
+
4. **deleteUser** (test provisioning delete account)
|
|
1211
|
+
5. **modifyUser** (test provisioning modify account)
|
|
1212
|
+
6. **Turn on group functionality** - getGroups having logic for returning groups if groups are supported
|
|
1240
1213
|
7. **getGroups** (test provisioning retrieve groups)
|
|
1241
1214
|
8. **modifyGroup** (test provisioning modify group members)
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1215
|
+
9. **createGroup** (test provisioning new group)
|
|
1216
|
+
10. **deleteGroup** (test provisioning delete account)
|
|
1245
1217
|
|
|
1246
1218
|
Template used by CA Provisioning role should only include endpoint supported attributes defined in our plugin. Template should therefore have no links to global user for none supported attributes (e.g. remove %UT% from "Job Title" if our endpoint/code do not support title)
|
|
1247
1219
|
|
|
@@ -1293,33 +1265,14 @@ advanced options - **Synchronized** = enabled (toggled on)
|
|
|
1293
1265
|
Plugins should have following initialization:
|
|
1294
1266
|
|
|
1295
1267
|
// start - mandatory plugin initialization
|
|
1296
|
-
|
|
1297
|
-
try {
|
|
1298
|
-
return (await import('scimgateway')).ScimGateway
|
|
1299
|
-
} catch (err) {
|
|
1300
|
-
const source = './scimgateway.ts'
|
|
1301
|
-
return (await import(source)).ScimGateway
|
|
1302
|
-
}
|
|
1303
|
-
})()
|
|
1268
|
+
import { ScimGateway, HelperRest } from 'scimgateway'
|
|
1304
1269
|
const scimgateway = new ScimGateway()
|
|
1270
|
+
const helper = new HelperRest(scimgateway)
|
|
1305
1271
|
const config = scimgateway.getConfig()
|
|
1306
1272
|
scimgateway.authPassThroughAllowed = false
|
|
1307
1273
|
// end - mandatory plugin initialization
|
|
1308
|
-
|
|
1309
|
-
If using REST, we could also include the HelperRest:
|
|
1310
1274
|
|
|
1311
|
-
|
|
1312
|
-
...
|
|
1313
|
-
const HelperRest: typeof import('scimgateway').HelperRest = await (async () => {
|
|
1314
|
-
try {
|
|
1315
|
-
return (await import('scimgateway')).HelperRest
|
|
1316
|
-
} catch (err) {
|
|
1317
|
-
const source = './scimgateway.ts'
|
|
1318
|
-
return (await import(source)).HelperRest
|
|
1319
|
-
}
|
|
1320
|
-
})()
|
|
1321
|
-
...
|
|
1322
|
-
// end - mandatory plugin initialization
|
|
1275
|
+
HelperRest could included and used by REST plugins
|
|
1323
1276
|
|
|
1324
1277
|
Plugins should include following SCIM Gateway methods:
|
|
1325
1278
|
|
|
@@ -1350,6 +1303,25 @@ MIT © [Jarle Elshaug](https://www.elshaug.xyz)
|
|
|
1350
1303
|
|
|
1351
1304
|
## Change log
|
|
1352
1305
|
|
|
1306
|
+
### v6.1.3
|
|
1307
|
+
|
|
1308
|
+
[Fixed]
|
|
1309
|
+
|
|
1310
|
+
- azure relay, recover on failure
|
|
1311
|
+
- plugin-ldap, some improvements for Active Directory and the use of objectGUID/mS-DS-ConsistencyGuid
|
|
1312
|
+
- plugin-mongodb, group meta.version not standarized
|
|
1313
|
+
- when modifying group members, if an error occurs, the gateway now checks whether it was caused by adding an existing member or removing a non-existing member. In such cases, it returns 200 OK instead of an error.
|
|
1314
|
+
|
|
1315
|
+
[Improved]
|
|
1316
|
+
- Dependencies bump
|
|
1317
|
+
|
|
1318
|
+
### v6.1.2
|
|
1319
|
+
|
|
1320
|
+
[Fixed]
|
|
1321
|
+
|
|
1322
|
+
- SMTP mail functionality failed because of an updated dependency
|
|
1323
|
+
- endpointMapper failed when `mapTo` included multiple comma-separated attributes and one of them was a multivalued attribute, e.g. `{ "mail": { "mapTo": "userName,emails.work.value" } }`
|
|
1324
|
+
|
|
1353
1325
|
### v6.1.1
|
|
1354
1326
|
|
|
1355
1327
|
[Fixed]
|
|
@@ -3572,5 +3544,3 @@ This plugin now replace previous `plugin-testmode`
|
|
|
3572
3544
|
|
|
3573
3545
|
### v0.2.0
|
|
3574
3546
|
Initial version
|
|
3575
|
-
|
|
3576
|
-
|
package/bun.lock
CHANGED
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
"https-proxy-agent": "^7.0.6",
|
|
17
17
|
"hyco-https": "^1.4.5",
|
|
18
18
|
"is-in-subnet": "^4.0.1",
|
|
19
|
-
"jose": "^6.1.
|
|
19
|
+
"jose": "^6.1.1",
|
|
20
20
|
"ldapjs": "^3.0.7",
|
|
21
21
|
"lokijs": "^1.5.12",
|
|
22
|
-
"mongodb": "^
|
|
22
|
+
"mongodb": "^7.0.0",
|
|
23
23
|
"node-machine-id": "1.1.12",
|
|
24
|
-
"nodemailer": "^7.0.
|
|
24
|
+
"nodemailer": "^7.0.10",
|
|
25
25
|
"saml": "^3.0.1",
|
|
26
26
|
"tsx": "^4.20.6",
|
|
27
27
|
},
|
|
@@ -233,7 +233,7 @@
|
|
|
233
233
|
|
|
234
234
|
"@ldapjs/protocol": ["@ldapjs/protocol@1.2.1", "", {}, "sha512-O89xFDLW2gBoZWNXuXpBSM32/KealKCTb3JGtJdtUQc7RjAk8XzrRgyz02cPAwGKwKPxy0ivuC7UP9bmN87egQ=="],
|
|
235
235
|
|
|
236
|
-
"@mongodb-js/saslprep": ["@mongodb-js/saslprep@1.3.
|
|
236
|
+
"@mongodb-js/saslprep": ["@mongodb-js/saslprep@1.3.2", "", { "dependencies": { "sparse-bitfield": "^3.0.3" } }, "sha512-QgA5AySqB27cGTXBFmnpifAi7HxoGUeezwo6p9dI03MuDB6Pp33zgclqVb6oVK3j6I9Vesg0+oojW2XxB59SGg=="],
|
|
237
237
|
|
|
238
238
|
"@nats-io/jetstream": ["@nats-io/jetstream@3.2.0", "", { "dependencies": { "@nats-io/nats-core": "3.2.0" } }, "sha512-6H/vMjTMPsFEXKGK7dqScwHEtP1ZedZrwbCdRQuYDIVq4WLqZOD6ryeEZ/gMAP7YKLy82G6IixGUm2DVsDPCMw=="],
|
|
239
239
|
|
|
@@ -357,7 +357,7 @@
|
|
|
357
357
|
|
|
358
358
|
"@types/webidl-conversions": ["@types/webidl-conversions@7.0.3", "", {}, "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA=="],
|
|
359
359
|
|
|
360
|
-
"@types/whatwg-url": ["@types/whatwg-url@
|
|
360
|
+
"@types/whatwg-url": ["@types/whatwg-url@13.0.0", "", { "dependencies": { "@types/webidl-conversions": "*" } }, "sha512-N8WXpbE6Wgri7KUSvrmQcqrMllKZ9uxkYWMt+mCSGwNc0Hsw9VQTW7ApqI4XNrx6/SaM2QQJCzMPDEXE058s+Q=="],
|
|
361
361
|
|
|
362
362
|
"@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.46.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "8.46.0", "@typescript-eslint/type-utils": "8.46.0", "@typescript-eslint/utils": "8.46.0", "@typescript-eslint/visitor-keys": "8.46.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.46.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-hA8gxBq4ukonVXPy0OKhiaUh/68D0E88GSmtC1iAEnGaieuDi38LhS7jdCHRLi6ErJBNDGCzvh5EnzdPwUc0DA=="],
|
|
363
363
|
|
|
@@ -421,7 +421,7 @@
|
|
|
421
421
|
|
|
422
422
|
"braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="],
|
|
423
423
|
|
|
424
|
-
"bson": ["bson@
|
|
424
|
+
"bson": ["bson@7.0.0", "", {}, "sha512-Kwc6Wh4lQ5OmkqqKhYGKIuELXl+EPYSCObVE6bWsp1T/cGkOCBN0I8wF/T44BiuhHyNi1mmKVPXk60d41xZ7kw=="],
|
|
425
425
|
|
|
426
426
|
"buffer": ["buffer@6.0.3", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="],
|
|
427
427
|
|
|
@@ -617,7 +617,7 @@
|
|
|
617
617
|
|
|
618
618
|
"isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
|
|
619
619
|
|
|
620
|
-
"jose": ["jose@6.1.
|
|
620
|
+
"jose": ["jose@6.1.1", "", {}, "sha512-GWSqjfOPf4cWOkBzw5THBjtGPhXKqYnfRBzh4Ni+ArTrQQ9unvmsA3oFLqaYKoKe5sjWmGu5wVKg9Ft1i+LQfg=="],
|
|
621
621
|
|
|
622
622
|
"js-md4": ["js-md4@0.3.2", "", {}, "sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA=="],
|
|
623
623
|
|
|
@@ -673,9 +673,9 @@
|
|
|
673
673
|
|
|
674
674
|
"moment": ["moment@2.30.1", "", {}, "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="],
|
|
675
675
|
|
|
676
|
-
"mongodb": ["mongodb@
|
|
676
|
+
"mongodb": ["mongodb@7.0.0", "", { "dependencies": { "@mongodb-js/saslprep": "^1.3.0", "bson": "^7.0.0", "mongodb-connection-string-url": "^7.0.0" }, "peerDependencies": { "@aws-sdk/credential-providers": "^3.806.0", "@mongodb-js/zstd": "^7.0.0", "gcp-metadata": "^7.0.1", "kerberos": "^7.0.0", "mongodb-client-encryption": ">=7.0.0 <7.1.0", "snappy": "^7.3.2", "socks": "^2.8.6" }, "optionalPeers": ["@aws-sdk/credential-providers", "@mongodb-js/zstd", "gcp-metadata", "kerberos", "mongodb-client-encryption", "snappy", "socks"] }, "sha512-vG/A5cQrvGGvZm2mTnCSz1LUcbOPl83hfB6bxULKQ8oFZauyox/2xbZOoGNl+64m8VBrETkdGCDBdOsCr3F3jg=="],
|
|
677
677
|
|
|
678
|
-
"mongodb-connection-string-url": ["mongodb-connection-string-url@
|
|
678
|
+
"mongodb-connection-string-url": ["mongodb-connection-string-url@7.0.0", "", { "dependencies": { "@types/whatwg-url": "^13.0.0", "whatwg-url": "^14.1.0" } }, "sha512-irhhjRVLE20hbkRl4zpAYLnDMM+zIZnp0IDB9akAFFUZp/3XdOfwwddc7y6cNvF2WCEtfTYRwYbIfYa2kVY0og=="],
|
|
679
679
|
|
|
680
680
|
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
|
|
681
681
|
|
|
@@ -685,7 +685,7 @@
|
|
|
685
685
|
|
|
686
686
|
"node-machine-id": ["node-machine-id@1.1.12", "", {}, "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ=="],
|
|
687
687
|
|
|
688
|
-
"nodemailer": ["nodemailer@7.0.
|
|
688
|
+
"nodemailer": ["nodemailer@7.0.10", "", {}, "sha512-Us/Se1WtT0ylXgNFfyFSx4LElllVLJXQjWi2Xz17xWw7amDKO2MLtFnVp1WACy7GkVGs+oBlRopVNUzlrGSw1w=="],
|
|
689
689
|
|
|
690
690
|
"once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
|
|
691
691
|
|