@dereekb/firebase-server 13.11.4 → 13.11.5
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/mailgun/package.json +9 -9
- package/model/package.json +9 -9
- package/oidc/index.cjs.js +189 -16
- package/oidc/index.esm.js +189 -16
- package/oidc/package.json +10 -10
- package/package.json +10 -10
- package/test/package.json +11 -11
- package/zoho/package.json +9 -9
package/mailgun/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/firebase-server/mailgun",
|
|
3
|
-
"version": "13.11.
|
|
3
|
+
"version": "13.11.5",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@dereekb/analytics": "13.11.
|
|
6
|
-
"@dereekb/firebase": "13.11.
|
|
7
|
-
"@dereekb/firebase-server": "13.11.
|
|
8
|
-
"@dereekb/date": "13.11.
|
|
9
|
-
"@dereekb/nestjs": "13.11.
|
|
10
|
-
"@dereekb/model": "13.11.
|
|
11
|
-
"@dereekb/rxjs": "13.11.
|
|
12
|
-
"@dereekb/util": "13.11.
|
|
5
|
+
"@dereekb/analytics": "13.11.5",
|
|
6
|
+
"@dereekb/firebase": "13.11.5",
|
|
7
|
+
"@dereekb/firebase-server": "13.11.5",
|
|
8
|
+
"@dereekb/date": "13.11.5",
|
|
9
|
+
"@dereekb/nestjs": "13.11.5",
|
|
10
|
+
"@dereekb/model": "13.11.5",
|
|
11
|
+
"@dereekb/rxjs": "13.11.5",
|
|
12
|
+
"@dereekb/util": "13.11.5"
|
|
13
13
|
},
|
|
14
14
|
"exports": {
|
|
15
15
|
"./package.json": "./package.json",
|
package/model/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/firebase-server/model",
|
|
3
|
-
"version": "13.11.
|
|
3
|
+
"version": "13.11.5",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@dereekb/analytics": "13.11.
|
|
6
|
-
"@dereekb/date": "13.11.
|
|
7
|
-
"@dereekb/firebase": "13.11.
|
|
8
|
-
"@dereekb/firebase-server": "13.11.
|
|
9
|
-
"@dereekb/model": "13.11.
|
|
10
|
-
"@dereekb/nestjs": "13.11.
|
|
11
|
-
"@dereekb/rxjs": "13.11.
|
|
12
|
-
"@dereekb/util": "13.11.
|
|
5
|
+
"@dereekb/analytics": "13.11.5",
|
|
6
|
+
"@dereekb/date": "13.11.5",
|
|
7
|
+
"@dereekb/firebase": "13.11.5",
|
|
8
|
+
"@dereekb/firebase-server": "13.11.5",
|
|
9
|
+
"@dereekb/model": "13.11.5",
|
|
10
|
+
"@dereekb/nestjs": "13.11.5",
|
|
11
|
+
"@dereekb/rxjs": "13.11.5",
|
|
12
|
+
"@dereekb/util": "13.11.5",
|
|
13
13
|
"@nestjs/common": "^11.1.19",
|
|
14
14
|
"@nestjs/config": "^4.0.4",
|
|
15
15
|
"archiver": "^7.0.1",
|
package/oidc/index.cjs.js
CHANGED
|
@@ -2583,7 +2583,7 @@ function _define_property$a(obj, key, value) {
|
|
|
2583
2583
|
}
|
|
2584
2584
|
return obj;
|
|
2585
2585
|
}
|
|
2586
|
-
function _instanceof$
|
|
2586
|
+
function _instanceof$2(left, right) {
|
|
2587
2587
|
"@swc/helpers - instanceof";
|
|
2588
2588
|
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
2589
2589
|
return !!right[Symbol.hasInstance](left);
|
|
@@ -2992,7 +2992,7 @@ var GRANTABLE_MODELS = new Set(GRANTABLE_MODEL_NAMES);
|
|
|
2992
2992
|
* @returns the decrypted adapter payload, or undefined if the entry has expired
|
|
2993
2993
|
*/ key: "_toPayload",
|
|
2994
2994
|
value: function _toPayload(data) {
|
|
2995
|
-
var expiresDate = data.expiresAt ? _instanceof$
|
|
2995
|
+
var expiresDate = data.expiresAt ? _instanceof$2(data.expiresAt, Date) ? data.expiresAt : data.expiresAt.toDate() : undefined;
|
|
2996
2996
|
var isExpired = expiresDate != null && expiresDate < new Date();
|
|
2997
2997
|
return isExpired ? undefined : encryptionService.decryptAdapterPayload(data.payload);
|
|
2998
2998
|
}
|
|
@@ -4160,7 +4160,7 @@ function _define_property$6(obj, key, value) {
|
|
|
4160
4160
|
}
|
|
4161
4161
|
return obj;
|
|
4162
4162
|
}
|
|
4163
|
-
function _instanceof(left, right) {
|
|
4163
|
+
function _instanceof$1(left, right) {
|
|
4164
4164
|
"@swc/helpers - instanceof";
|
|
4165
4165
|
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
4166
4166
|
return !!right[Symbol.hasInstance](left);
|
|
@@ -4324,7 +4324,7 @@ function _ts_generator$4(thisArg, body) {
|
|
|
4324
4324
|
];
|
|
4325
4325
|
case 3:
|
|
4326
4326
|
err = _state.sent();
|
|
4327
|
-
if (_instanceof(err, common.UnauthorizedException)) {
|
|
4327
|
+
if (_instanceof$1(err, common.UnauthorizedException)) {
|
|
4328
4328
|
throw err;
|
|
4329
4329
|
}
|
|
4330
4330
|
this.logger.error('Bearer token verification failed', err);
|
|
@@ -4927,6 +4927,14 @@ function _define_property$3(obj, key, value) {
|
|
|
4927
4927
|
}
|
|
4928
4928
|
return obj;
|
|
4929
4929
|
}
|
|
4930
|
+
function _instanceof(left, right) {
|
|
4931
|
+
"@swc/helpers - instanceof";
|
|
4932
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
4933
|
+
return !!right[Symbol.hasInstance](left);
|
|
4934
|
+
} else {
|
|
4935
|
+
return left instanceof right;
|
|
4936
|
+
}
|
|
4937
|
+
}
|
|
4930
4938
|
function _iterable_to_array_limit(arr, i) {
|
|
4931
4939
|
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
4932
4940
|
if (_i == null) return;
|
|
@@ -5064,6 +5072,14 @@ function _ts_generator$2(thisArg, body) {
|
|
|
5064
5072
|
};
|
|
5065
5073
|
}
|
|
5066
5074
|
}
|
|
5075
|
+
/**
|
|
5076
|
+
* OIDC scopes that the server always grants on consent when they were
|
|
5077
|
+
* requested, regardless of whether the frontend included them in
|
|
5078
|
+
* `grantedOIDCScopes`. `openid` is required for any OIDC flow, so the
|
|
5079
|
+
* UI shows it as non-deselectable and the server enforces it here.
|
|
5080
|
+
*/ var ALWAYS_GRANTED_OIDC_SCOPES = [
|
|
5081
|
+
'openid'
|
|
5082
|
+
];
|
|
5067
5083
|
// MARK: Interaction Controller
|
|
5068
5084
|
/**
|
|
5069
5085
|
* Controller for OIDC interaction endpoints (login/consent).
|
|
@@ -5218,7 +5234,7 @@ function _ts_generator$2(thisArg, body) {
|
|
|
5218
5234
|
* @throws {HttpException} 400 when the consent interaction cannot be completed.
|
|
5219
5235
|
*/ function postConsent(uid, body, res) {
|
|
5220
5236
|
return _async_to_generator$2(function() {
|
|
5221
|
-
var _ref, _ref1, redirectTo, interaction, prompt, params, session, clientId, requestedRawTtl, clientPayload, clientMaxSessionTtl, expiresInSeconds, grant, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _step_value, indicator, scopes, grantId, redirectTo1;
|
|
5237
|
+
var _ref, _ref1, _prompt_details_missingOIDCScope, _prompt_details_missingOIDCClaims, _prompt_details_missingResourceScopes, redirectTo, interaction, prompt, params, session, clientId, requestedRawTtl, clientPayload, clientMaxSessionTtl, expiresInSeconds, grant, missingOIDCScope, _resolveEffectiveSubset, granted, rejected, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, value, missingOIDCClaims, _resolveEffectiveSubset1, granted1, rejected1, missingResourceScopes, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, _step_value, indicator, scopes, _body_grantedResourceScopes, requestedSubset, _resolveEffectiveSubset2, granted2, rejected2, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, value1, grantId, redirectTo1, err;
|
|
5222
5238
|
return _ts_generator$2(this, function(_state) {
|
|
5223
5239
|
switch(_state.label){
|
|
5224
5240
|
case 0:
|
|
@@ -5288,18 +5304,17 @@ function _ts_generator$2(thisArg, body) {
|
|
|
5288
5304
|
];
|
|
5289
5305
|
case 7:
|
|
5290
5306
|
grant = _state.sent();
|
|
5291
|
-
|
|
5292
|
-
|
|
5293
|
-
|
|
5294
|
-
|
|
5295
|
-
|
|
5296
|
-
|
|
5297
|
-
if (prompt.details.missingResourceScopes) {
|
|
5307
|
+
missingOIDCScope = (_prompt_details_missingOIDCScope = prompt.details.missingOIDCScope) !== null && _prompt_details_missingOIDCScope !== void 0 ? _prompt_details_missingOIDCScope : [];
|
|
5308
|
+
if (missingOIDCScope.length > 0) {
|
|
5309
|
+
_resolveEffectiveSubset = resolveEffectiveSubset(missingOIDCScope, body.grantedOIDCScopes, ALWAYS_GRANTED_OIDC_SCOPES), granted = _resolveEffectiveSubset.granted, rejected = _resolveEffectiveSubset.rejected;
|
|
5310
|
+
if (granted.length > 0) {
|
|
5311
|
+
grant.addOIDCScope(granted.join(' '));
|
|
5312
|
+
}
|
|
5298
5313
|
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
5299
5314
|
try {
|
|
5300
|
-
for(_iterator =
|
|
5301
|
-
|
|
5302
|
-
grant.
|
|
5315
|
+
for(_iterator = rejected[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
5316
|
+
value = _step.value;
|
|
5317
|
+
grant.rejectOIDCScope(value);
|
|
5303
5318
|
}
|
|
5304
5319
|
} catch (err) {
|
|
5305
5320
|
_didIteratorError = true;
|
|
@@ -5316,6 +5331,62 @@ function _ts_generator$2(thisArg, body) {
|
|
|
5316
5331
|
}
|
|
5317
5332
|
}
|
|
5318
5333
|
}
|
|
5334
|
+
missingOIDCClaims = (_prompt_details_missingOIDCClaims = prompt.details.missingOIDCClaims) !== null && _prompt_details_missingOIDCClaims !== void 0 ? _prompt_details_missingOIDCClaims : [];
|
|
5335
|
+
if (missingOIDCClaims.length > 0) {
|
|
5336
|
+
_resolveEffectiveSubset1 = resolveEffectiveSubset(missingOIDCClaims, body.grantedOIDCClaims), granted1 = _resolveEffectiveSubset1.granted, rejected1 = _resolveEffectiveSubset1.rejected;
|
|
5337
|
+
if (granted1.length > 0) {
|
|
5338
|
+
grant.addOIDCClaims(granted1);
|
|
5339
|
+
}
|
|
5340
|
+
if (rejected1.length > 0) {
|
|
5341
|
+
grant.rejectOIDCClaims(rejected1);
|
|
5342
|
+
}
|
|
5343
|
+
}
|
|
5344
|
+
missingResourceScopes = (_prompt_details_missingResourceScopes = prompt.details.missingResourceScopes) !== null && _prompt_details_missingResourceScopes !== void 0 ? _prompt_details_missingResourceScopes : {};
|
|
5345
|
+
_iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
5346
|
+
try {
|
|
5347
|
+
for(_iterator1 = Object.entries(missingResourceScopes)[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
|
|
5348
|
+
_step_value = _sliced_to_array(_step1.value, 2), indicator = _step_value[0], scopes = _step_value[1];
|
|
5349
|
+
;
|
|
5350
|
+
requestedSubset = (_body_grantedResourceScopes = body.grantedResourceScopes) === null || _body_grantedResourceScopes === void 0 ? void 0 : _body_grantedResourceScopes[indicator];
|
|
5351
|
+
_resolveEffectiveSubset2 = resolveEffectiveSubset(scopes, requestedSubset), granted2 = _resolveEffectiveSubset2.granted, rejected2 = _resolveEffectiveSubset2.rejected;
|
|
5352
|
+
if (granted2.length > 0) {
|
|
5353
|
+
grant.addResourceScope(indicator, granted2.join(' '));
|
|
5354
|
+
}
|
|
5355
|
+
_iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = undefined;
|
|
5356
|
+
try {
|
|
5357
|
+
for(_iterator2 = rejected2[Symbol.iterator](); !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
|
|
5358
|
+
value1 = _step2.value;
|
|
5359
|
+
grant.rejectResourceScope(indicator, value1);
|
|
5360
|
+
}
|
|
5361
|
+
} catch (err) {
|
|
5362
|
+
_didIteratorError2 = true;
|
|
5363
|
+
_iteratorError2 = err;
|
|
5364
|
+
} finally{
|
|
5365
|
+
try {
|
|
5366
|
+
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
5367
|
+
_iterator2.return();
|
|
5368
|
+
}
|
|
5369
|
+
} finally{
|
|
5370
|
+
if (_didIteratorError2) {
|
|
5371
|
+
throw _iteratorError2;
|
|
5372
|
+
}
|
|
5373
|
+
}
|
|
5374
|
+
}
|
|
5375
|
+
}
|
|
5376
|
+
} catch (err) {
|
|
5377
|
+
_didIteratorError1 = true;
|
|
5378
|
+
_iteratorError1 = err;
|
|
5379
|
+
} finally{
|
|
5380
|
+
try {
|
|
5381
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
5382
|
+
_iterator1.return();
|
|
5383
|
+
}
|
|
5384
|
+
} finally{
|
|
5385
|
+
if (_didIteratorError1) {
|
|
5386
|
+
throw _iteratorError1;
|
|
5387
|
+
}
|
|
5388
|
+
}
|
|
5389
|
+
}
|
|
5319
5390
|
return [
|
|
5320
5391
|
4,
|
|
5321
5392
|
grant.save()
|
|
@@ -5342,7 +5413,10 @@ function _ts_generator$2(thisArg, body) {
|
|
|
5342
5413
|
11
|
|
5343
5414
|
];
|
|
5344
5415
|
case 10:
|
|
5345
|
-
_state.sent();
|
|
5416
|
+
err = _state.sent();
|
|
5417
|
+
if (_instanceof(err, common.HttpException)) {
|
|
5418
|
+
throw err;
|
|
5419
|
+
}
|
|
5346
5420
|
throw new common.HttpException('Consent interaction failed', common.HttpStatus.BAD_REQUEST);
|
|
5347
5421
|
case 11:
|
|
5348
5422
|
return [
|
|
@@ -5426,6 +5500,105 @@ exports.OidcInteractionController = __decorate([
|
|
|
5426
5500
|
__param(2, common.Inject(OidcAccountService)),
|
|
5427
5501
|
__param(3, common.Inject(exports.OidcService))
|
|
5428
5502
|
], exports.OidcInteractionController);
|
|
5503
|
+
/**
|
|
5504
|
+
* Resolves the effective set to grant — and the complementary set to
|
|
5505
|
+
* reject — from a missing set, an optional caller-provided subset, and
|
|
5506
|
+
* an optional list of always-granted entries.
|
|
5507
|
+
*
|
|
5508
|
+
* Throws `400 BAD_REQUEST` if the requested subset contains entries that
|
|
5509
|
+
* are not in the missing set (no privilege escalation).
|
|
5510
|
+
*
|
|
5511
|
+
* - When `requestedSubset` is undefined → grants everything in `missing` (back-compat); rejects nothing.
|
|
5512
|
+
* - When `requestedSubset` is provided → grants exactly that subset; rejects every other missing entry so
|
|
5513
|
+
* oidc-provider does not re-prompt for them.
|
|
5514
|
+
* - Always-granted entries are union'd into `granted` (clamped to `missing`).
|
|
5515
|
+
*
|
|
5516
|
+
* @param missing - Entries the OIDC prompt indicated were missing for this consent.
|
|
5517
|
+
* @param requestedSubset - Optional subset the caller wants to grant; must be a subset of `missing`.
|
|
5518
|
+
* @param alwaysGranted - Entries that must be granted whenever they appear in `missing`, regardless of `requestedSubset`.
|
|
5519
|
+
* @returns `granted` to add to the grant and `rejected` to record on the grant.
|
|
5520
|
+
*/ function resolveEffectiveSubset(missing, requestedSubset) {
|
|
5521
|
+
var alwaysGranted = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [];
|
|
5522
|
+
var missingSet = new Set(missing);
|
|
5523
|
+
var baseSelection;
|
|
5524
|
+
if (requestedSubset === undefined) {
|
|
5525
|
+
baseSelection = missing;
|
|
5526
|
+
} else {
|
|
5527
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
5528
|
+
try {
|
|
5529
|
+
for(var _iterator = requestedSubset[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
5530
|
+
var value = _step.value;
|
|
5531
|
+
if (!missingSet.has(value)) {
|
|
5532
|
+
throw new common.HttpException('Granted value "'.concat(value, '" is not in the requested set.'), common.HttpStatus.BAD_REQUEST);
|
|
5533
|
+
}
|
|
5534
|
+
}
|
|
5535
|
+
} catch (err) {
|
|
5536
|
+
_didIteratorError = true;
|
|
5537
|
+
_iteratorError = err;
|
|
5538
|
+
} finally{
|
|
5539
|
+
try {
|
|
5540
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
5541
|
+
_iterator.return();
|
|
5542
|
+
}
|
|
5543
|
+
} finally{
|
|
5544
|
+
if (_didIteratorError) {
|
|
5545
|
+
throw _iteratorError;
|
|
5546
|
+
}
|
|
5547
|
+
}
|
|
5548
|
+
}
|
|
5549
|
+
baseSelection = requestedSubset;
|
|
5550
|
+
}
|
|
5551
|
+
var grantedSet = new Set(baseSelection);
|
|
5552
|
+
var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
5553
|
+
try {
|
|
5554
|
+
for(var _iterator1 = alwaysGranted[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
|
|
5555
|
+
var value1 = _step1.value;
|
|
5556
|
+
if (missingSet.has(value1)) {
|
|
5557
|
+
grantedSet.add(value1);
|
|
5558
|
+
}
|
|
5559
|
+
}
|
|
5560
|
+
} catch (err) {
|
|
5561
|
+
_didIteratorError1 = true;
|
|
5562
|
+
_iteratorError1 = err;
|
|
5563
|
+
} finally{
|
|
5564
|
+
try {
|
|
5565
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
5566
|
+
_iterator1.return();
|
|
5567
|
+
}
|
|
5568
|
+
} finally{
|
|
5569
|
+
if (_didIteratorError1) {
|
|
5570
|
+
throw _iteratorError1;
|
|
5571
|
+
}
|
|
5572
|
+
}
|
|
5573
|
+
}
|
|
5574
|
+
var rejected = [];
|
|
5575
|
+
var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = undefined;
|
|
5576
|
+
try {
|
|
5577
|
+
for(var _iterator2 = missing[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
|
|
5578
|
+
var value2 = _step2.value;
|
|
5579
|
+
if (!grantedSet.has(value2)) {
|
|
5580
|
+
rejected.push(value2);
|
|
5581
|
+
}
|
|
5582
|
+
}
|
|
5583
|
+
} catch (err) {
|
|
5584
|
+
_didIteratorError2 = true;
|
|
5585
|
+
_iteratorError2 = err;
|
|
5586
|
+
} finally{
|
|
5587
|
+
try {
|
|
5588
|
+
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
5589
|
+
_iterator2.return();
|
|
5590
|
+
}
|
|
5591
|
+
} finally{
|
|
5592
|
+
if (_didIteratorError2) {
|
|
5593
|
+
throw _iteratorError2;
|
|
5594
|
+
}
|
|
5595
|
+
}
|
|
5596
|
+
}
|
|
5597
|
+
return {
|
|
5598
|
+
granted: Array.from(grantedSet),
|
|
5599
|
+
rejected: rejected
|
|
5600
|
+
};
|
|
5601
|
+
}
|
|
5429
5602
|
|
|
5430
5603
|
function asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, key, arg) {
|
|
5431
5604
|
try {
|
package/oidc/index.esm.js
CHANGED
|
@@ -2581,7 +2581,7 @@ function _define_property$a(obj, key, value) {
|
|
|
2581
2581
|
}
|
|
2582
2582
|
return obj;
|
|
2583
2583
|
}
|
|
2584
|
-
function _instanceof$
|
|
2584
|
+
function _instanceof$2(left, right) {
|
|
2585
2585
|
"@swc/helpers - instanceof";
|
|
2586
2586
|
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
2587
2587
|
return !!right[Symbol.hasInstance](left);
|
|
@@ -2990,7 +2990,7 @@ var GRANTABLE_MODELS = new Set(GRANTABLE_MODEL_NAMES);
|
|
|
2990
2990
|
* @returns the decrypted adapter payload, or undefined if the entry has expired
|
|
2991
2991
|
*/ key: "_toPayload",
|
|
2992
2992
|
value: function _toPayload(data) {
|
|
2993
|
-
var expiresDate = data.expiresAt ? _instanceof$
|
|
2993
|
+
var expiresDate = data.expiresAt ? _instanceof$2(data.expiresAt, Date) ? data.expiresAt : data.expiresAt.toDate() : undefined;
|
|
2994
2994
|
var isExpired = expiresDate != null && expiresDate < new Date();
|
|
2995
2995
|
return isExpired ? undefined : encryptionService.decryptAdapterPayload(data.payload);
|
|
2996
2996
|
}
|
|
@@ -4158,7 +4158,7 @@ function _define_property$6(obj, key, value) {
|
|
|
4158
4158
|
}
|
|
4159
4159
|
return obj;
|
|
4160
4160
|
}
|
|
4161
|
-
function _instanceof(left, right) {
|
|
4161
|
+
function _instanceof$1(left, right) {
|
|
4162
4162
|
"@swc/helpers - instanceof";
|
|
4163
4163
|
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
4164
4164
|
return !!right[Symbol.hasInstance](left);
|
|
@@ -4322,7 +4322,7 @@ function _ts_generator$4(thisArg, body) {
|
|
|
4322
4322
|
];
|
|
4323
4323
|
case 3:
|
|
4324
4324
|
err = _state.sent();
|
|
4325
|
-
if (_instanceof(err, UnauthorizedException)) {
|
|
4325
|
+
if (_instanceof$1(err, UnauthorizedException)) {
|
|
4326
4326
|
throw err;
|
|
4327
4327
|
}
|
|
4328
4328
|
this.logger.error('Bearer token verification failed', err);
|
|
@@ -4925,6 +4925,14 @@ function _define_property$3(obj, key, value) {
|
|
|
4925
4925
|
}
|
|
4926
4926
|
return obj;
|
|
4927
4927
|
}
|
|
4928
|
+
function _instanceof(left, right) {
|
|
4929
|
+
"@swc/helpers - instanceof";
|
|
4930
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
4931
|
+
return !!right[Symbol.hasInstance](left);
|
|
4932
|
+
} else {
|
|
4933
|
+
return left instanceof right;
|
|
4934
|
+
}
|
|
4935
|
+
}
|
|
4928
4936
|
function _iterable_to_array_limit(arr, i) {
|
|
4929
4937
|
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
4930
4938
|
if (_i == null) return;
|
|
@@ -5062,6 +5070,14 @@ function _ts_generator$2(thisArg, body) {
|
|
|
5062
5070
|
};
|
|
5063
5071
|
}
|
|
5064
5072
|
}
|
|
5073
|
+
/**
|
|
5074
|
+
* OIDC scopes that the server always grants on consent when they were
|
|
5075
|
+
* requested, regardless of whether the frontend included them in
|
|
5076
|
+
* `grantedOIDCScopes`. `openid` is required for any OIDC flow, so the
|
|
5077
|
+
* UI shows it as non-deselectable and the server enforces it here.
|
|
5078
|
+
*/ var ALWAYS_GRANTED_OIDC_SCOPES = [
|
|
5079
|
+
'openid'
|
|
5080
|
+
];
|
|
5065
5081
|
// MARK: Interaction Controller
|
|
5066
5082
|
/**
|
|
5067
5083
|
* Controller for OIDC interaction endpoints (login/consent).
|
|
@@ -5216,7 +5232,7 @@ function _ts_generator$2(thisArg, body) {
|
|
|
5216
5232
|
* @throws {HttpException} 400 when the consent interaction cannot be completed.
|
|
5217
5233
|
*/ function postConsent(uid, body, res) {
|
|
5218
5234
|
return _async_to_generator$2(function() {
|
|
5219
|
-
var _ref, _ref1, redirectTo, interaction, prompt, params, session, clientId, requestedRawTtl, clientPayload, clientMaxSessionTtl, expiresInSeconds, grant, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _step_value, indicator, scopes, grantId, redirectTo1;
|
|
5235
|
+
var _ref, _ref1, _prompt_details_missingOIDCScope, _prompt_details_missingOIDCClaims, _prompt_details_missingResourceScopes, redirectTo, interaction, prompt, params, session, clientId, requestedRawTtl, clientPayload, clientMaxSessionTtl, expiresInSeconds, grant, missingOIDCScope, _resolveEffectiveSubset, granted, rejected, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, value, missingOIDCClaims, _resolveEffectiveSubset1, granted1, rejected1, missingResourceScopes, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, _step_value, indicator, scopes, _body_grantedResourceScopes, requestedSubset, _resolveEffectiveSubset2, granted2, rejected2, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, value1, grantId, redirectTo1, err;
|
|
5220
5236
|
return _ts_generator$2(this, function(_state) {
|
|
5221
5237
|
switch(_state.label){
|
|
5222
5238
|
case 0:
|
|
@@ -5286,18 +5302,17 @@ function _ts_generator$2(thisArg, body) {
|
|
|
5286
5302
|
];
|
|
5287
5303
|
case 7:
|
|
5288
5304
|
grant = _state.sent();
|
|
5289
|
-
|
|
5290
|
-
|
|
5291
|
-
|
|
5292
|
-
|
|
5293
|
-
|
|
5294
|
-
|
|
5295
|
-
if (prompt.details.missingResourceScopes) {
|
|
5305
|
+
missingOIDCScope = (_prompt_details_missingOIDCScope = prompt.details.missingOIDCScope) !== null && _prompt_details_missingOIDCScope !== void 0 ? _prompt_details_missingOIDCScope : [];
|
|
5306
|
+
if (missingOIDCScope.length > 0) {
|
|
5307
|
+
_resolveEffectiveSubset = resolveEffectiveSubset(missingOIDCScope, body.grantedOIDCScopes, ALWAYS_GRANTED_OIDC_SCOPES), granted = _resolveEffectiveSubset.granted, rejected = _resolveEffectiveSubset.rejected;
|
|
5308
|
+
if (granted.length > 0) {
|
|
5309
|
+
grant.addOIDCScope(granted.join(' '));
|
|
5310
|
+
}
|
|
5296
5311
|
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
5297
5312
|
try {
|
|
5298
|
-
for(_iterator =
|
|
5299
|
-
|
|
5300
|
-
grant.
|
|
5313
|
+
for(_iterator = rejected[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
5314
|
+
value = _step.value;
|
|
5315
|
+
grant.rejectOIDCScope(value);
|
|
5301
5316
|
}
|
|
5302
5317
|
} catch (err) {
|
|
5303
5318
|
_didIteratorError = true;
|
|
@@ -5314,6 +5329,62 @@ function _ts_generator$2(thisArg, body) {
|
|
|
5314
5329
|
}
|
|
5315
5330
|
}
|
|
5316
5331
|
}
|
|
5332
|
+
missingOIDCClaims = (_prompt_details_missingOIDCClaims = prompt.details.missingOIDCClaims) !== null && _prompt_details_missingOIDCClaims !== void 0 ? _prompt_details_missingOIDCClaims : [];
|
|
5333
|
+
if (missingOIDCClaims.length > 0) {
|
|
5334
|
+
_resolveEffectiveSubset1 = resolveEffectiveSubset(missingOIDCClaims, body.grantedOIDCClaims), granted1 = _resolveEffectiveSubset1.granted, rejected1 = _resolveEffectiveSubset1.rejected;
|
|
5335
|
+
if (granted1.length > 0) {
|
|
5336
|
+
grant.addOIDCClaims(granted1);
|
|
5337
|
+
}
|
|
5338
|
+
if (rejected1.length > 0) {
|
|
5339
|
+
grant.rejectOIDCClaims(rejected1);
|
|
5340
|
+
}
|
|
5341
|
+
}
|
|
5342
|
+
missingResourceScopes = (_prompt_details_missingResourceScopes = prompt.details.missingResourceScopes) !== null && _prompt_details_missingResourceScopes !== void 0 ? _prompt_details_missingResourceScopes : {};
|
|
5343
|
+
_iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
5344
|
+
try {
|
|
5345
|
+
for(_iterator1 = Object.entries(missingResourceScopes)[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
|
|
5346
|
+
_step_value = _sliced_to_array(_step1.value, 2), indicator = _step_value[0], scopes = _step_value[1];
|
|
5347
|
+
;
|
|
5348
|
+
requestedSubset = (_body_grantedResourceScopes = body.grantedResourceScopes) === null || _body_grantedResourceScopes === void 0 ? void 0 : _body_grantedResourceScopes[indicator];
|
|
5349
|
+
_resolveEffectiveSubset2 = resolveEffectiveSubset(scopes, requestedSubset), granted2 = _resolveEffectiveSubset2.granted, rejected2 = _resolveEffectiveSubset2.rejected;
|
|
5350
|
+
if (granted2.length > 0) {
|
|
5351
|
+
grant.addResourceScope(indicator, granted2.join(' '));
|
|
5352
|
+
}
|
|
5353
|
+
_iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = undefined;
|
|
5354
|
+
try {
|
|
5355
|
+
for(_iterator2 = rejected2[Symbol.iterator](); !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
|
|
5356
|
+
value1 = _step2.value;
|
|
5357
|
+
grant.rejectResourceScope(indicator, value1);
|
|
5358
|
+
}
|
|
5359
|
+
} catch (err) {
|
|
5360
|
+
_didIteratorError2 = true;
|
|
5361
|
+
_iteratorError2 = err;
|
|
5362
|
+
} finally{
|
|
5363
|
+
try {
|
|
5364
|
+
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
5365
|
+
_iterator2.return();
|
|
5366
|
+
}
|
|
5367
|
+
} finally{
|
|
5368
|
+
if (_didIteratorError2) {
|
|
5369
|
+
throw _iteratorError2;
|
|
5370
|
+
}
|
|
5371
|
+
}
|
|
5372
|
+
}
|
|
5373
|
+
}
|
|
5374
|
+
} catch (err) {
|
|
5375
|
+
_didIteratorError1 = true;
|
|
5376
|
+
_iteratorError1 = err;
|
|
5377
|
+
} finally{
|
|
5378
|
+
try {
|
|
5379
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
5380
|
+
_iterator1.return();
|
|
5381
|
+
}
|
|
5382
|
+
} finally{
|
|
5383
|
+
if (_didIteratorError1) {
|
|
5384
|
+
throw _iteratorError1;
|
|
5385
|
+
}
|
|
5386
|
+
}
|
|
5387
|
+
}
|
|
5317
5388
|
return [
|
|
5318
5389
|
4,
|
|
5319
5390
|
grant.save()
|
|
@@ -5340,7 +5411,10 @@ function _ts_generator$2(thisArg, body) {
|
|
|
5340
5411
|
11
|
|
5341
5412
|
];
|
|
5342
5413
|
case 10:
|
|
5343
|
-
_state.sent();
|
|
5414
|
+
err = _state.sent();
|
|
5415
|
+
if (_instanceof(err, HttpException)) {
|
|
5416
|
+
throw err;
|
|
5417
|
+
}
|
|
5344
5418
|
throw new HttpException('Consent interaction failed', HttpStatus.BAD_REQUEST);
|
|
5345
5419
|
case 11:
|
|
5346
5420
|
return [
|
|
@@ -5424,6 +5498,105 @@ OidcInteractionController = __decorate([
|
|
|
5424
5498
|
__param(2, Inject(OidcAccountService)),
|
|
5425
5499
|
__param(3, Inject(OidcService))
|
|
5426
5500
|
], OidcInteractionController);
|
|
5501
|
+
/**
|
|
5502
|
+
* Resolves the effective set to grant — and the complementary set to
|
|
5503
|
+
* reject — from a missing set, an optional caller-provided subset, and
|
|
5504
|
+
* an optional list of always-granted entries.
|
|
5505
|
+
*
|
|
5506
|
+
* Throws `400 BAD_REQUEST` if the requested subset contains entries that
|
|
5507
|
+
* are not in the missing set (no privilege escalation).
|
|
5508
|
+
*
|
|
5509
|
+
* - When `requestedSubset` is undefined → grants everything in `missing` (back-compat); rejects nothing.
|
|
5510
|
+
* - When `requestedSubset` is provided → grants exactly that subset; rejects every other missing entry so
|
|
5511
|
+
* oidc-provider does not re-prompt for them.
|
|
5512
|
+
* - Always-granted entries are union'd into `granted` (clamped to `missing`).
|
|
5513
|
+
*
|
|
5514
|
+
* @param missing - Entries the OIDC prompt indicated were missing for this consent.
|
|
5515
|
+
* @param requestedSubset - Optional subset the caller wants to grant; must be a subset of `missing`.
|
|
5516
|
+
* @param alwaysGranted - Entries that must be granted whenever they appear in `missing`, regardless of `requestedSubset`.
|
|
5517
|
+
* @returns `granted` to add to the grant and `rejected` to record on the grant.
|
|
5518
|
+
*/ function resolveEffectiveSubset(missing, requestedSubset) {
|
|
5519
|
+
var alwaysGranted = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [];
|
|
5520
|
+
var missingSet = new Set(missing);
|
|
5521
|
+
var baseSelection;
|
|
5522
|
+
if (requestedSubset === undefined) {
|
|
5523
|
+
baseSelection = missing;
|
|
5524
|
+
} else {
|
|
5525
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
5526
|
+
try {
|
|
5527
|
+
for(var _iterator = requestedSubset[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
5528
|
+
var value = _step.value;
|
|
5529
|
+
if (!missingSet.has(value)) {
|
|
5530
|
+
throw new HttpException('Granted value "'.concat(value, '" is not in the requested set.'), HttpStatus.BAD_REQUEST);
|
|
5531
|
+
}
|
|
5532
|
+
}
|
|
5533
|
+
} catch (err) {
|
|
5534
|
+
_didIteratorError = true;
|
|
5535
|
+
_iteratorError = err;
|
|
5536
|
+
} finally{
|
|
5537
|
+
try {
|
|
5538
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
5539
|
+
_iterator.return();
|
|
5540
|
+
}
|
|
5541
|
+
} finally{
|
|
5542
|
+
if (_didIteratorError) {
|
|
5543
|
+
throw _iteratorError;
|
|
5544
|
+
}
|
|
5545
|
+
}
|
|
5546
|
+
}
|
|
5547
|
+
baseSelection = requestedSubset;
|
|
5548
|
+
}
|
|
5549
|
+
var grantedSet = new Set(baseSelection);
|
|
5550
|
+
var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
5551
|
+
try {
|
|
5552
|
+
for(var _iterator1 = alwaysGranted[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
|
|
5553
|
+
var value1 = _step1.value;
|
|
5554
|
+
if (missingSet.has(value1)) {
|
|
5555
|
+
grantedSet.add(value1);
|
|
5556
|
+
}
|
|
5557
|
+
}
|
|
5558
|
+
} catch (err) {
|
|
5559
|
+
_didIteratorError1 = true;
|
|
5560
|
+
_iteratorError1 = err;
|
|
5561
|
+
} finally{
|
|
5562
|
+
try {
|
|
5563
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
5564
|
+
_iterator1.return();
|
|
5565
|
+
}
|
|
5566
|
+
} finally{
|
|
5567
|
+
if (_didIteratorError1) {
|
|
5568
|
+
throw _iteratorError1;
|
|
5569
|
+
}
|
|
5570
|
+
}
|
|
5571
|
+
}
|
|
5572
|
+
var rejected = [];
|
|
5573
|
+
var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = undefined;
|
|
5574
|
+
try {
|
|
5575
|
+
for(var _iterator2 = missing[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
|
|
5576
|
+
var value2 = _step2.value;
|
|
5577
|
+
if (!grantedSet.has(value2)) {
|
|
5578
|
+
rejected.push(value2);
|
|
5579
|
+
}
|
|
5580
|
+
}
|
|
5581
|
+
} catch (err) {
|
|
5582
|
+
_didIteratorError2 = true;
|
|
5583
|
+
_iteratorError2 = err;
|
|
5584
|
+
} finally{
|
|
5585
|
+
try {
|
|
5586
|
+
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
5587
|
+
_iterator2.return();
|
|
5588
|
+
}
|
|
5589
|
+
} finally{
|
|
5590
|
+
if (_didIteratorError2) {
|
|
5591
|
+
throw _iteratorError2;
|
|
5592
|
+
}
|
|
5593
|
+
}
|
|
5594
|
+
}
|
|
5595
|
+
return {
|
|
5596
|
+
granted: Array.from(grantedSet),
|
|
5597
|
+
rejected: rejected
|
|
5598
|
+
};
|
|
5599
|
+
}
|
|
5427
5600
|
|
|
5428
5601
|
function asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, key, arg) {
|
|
5429
5602
|
try {
|
package/oidc/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/firebase-server/oidc",
|
|
3
|
-
"version": "13.11.
|
|
3
|
+
"version": "13.11.5",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@dereekb/analytics": "13.11.
|
|
6
|
-
"@dereekb/date": "13.11.
|
|
7
|
-
"@dereekb/firebase": "13.11.
|
|
8
|
-
"@dereekb/firebase-server": "13.11.
|
|
9
|
-
"@dereekb/model": "13.11.
|
|
10
|
-
"@dereekb/nestjs": "13.11.
|
|
11
|
-
"@dereekb/rxjs": "13.11.
|
|
12
|
-
"@dereekb/util": "13.11.
|
|
13
|
-
"@dereekb/zoho": "13.11.
|
|
5
|
+
"@dereekb/analytics": "13.11.5",
|
|
6
|
+
"@dereekb/date": "13.11.5",
|
|
7
|
+
"@dereekb/firebase": "13.11.5",
|
|
8
|
+
"@dereekb/firebase-server": "13.11.5",
|
|
9
|
+
"@dereekb/model": "13.11.5",
|
|
10
|
+
"@dereekb/nestjs": "13.11.5",
|
|
11
|
+
"@dereekb/rxjs": "13.11.5",
|
|
12
|
+
"@dereekb/util": "13.11.5",
|
|
13
|
+
"@dereekb/zoho": "13.11.5",
|
|
14
14
|
"@nestjs/common": "^11.1.19",
|
|
15
15
|
"@nestjs/config": "^4.0.4",
|
|
16
16
|
"express": "^5.2.1",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/firebase-server",
|
|
3
|
-
"version": "13.11.
|
|
3
|
+
"version": "13.11.5",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"exports": {
|
|
6
6
|
"./test": {
|
|
@@ -44,15 +44,15 @@
|
|
|
44
44
|
"main": "./index.cjs.js",
|
|
45
45
|
"types": "./src/index.d.ts",
|
|
46
46
|
"peerDependencies": {
|
|
47
|
-
"@dereekb/analytics": "13.11.
|
|
48
|
-
"@dereekb/date": "13.11.
|
|
49
|
-
"@dereekb/dbx-core": "13.11.
|
|
50
|
-
"@dereekb/firebase": "13.11.
|
|
51
|
-
"@dereekb/model": "13.11.
|
|
52
|
-
"@dereekb/nestjs": "13.11.
|
|
53
|
-
"@dereekb/rxjs": "13.11.
|
|
54
|
-
"@dereekb/util": "13.11.
|
|
55
|
-
"@dereekb/zoho": "13.11.
|
|
47
|
+
"@dereekb/analytics": "13.11.5",
|
|
48
|
+
"@dereekb/date": "13.11.5",
|
|
49
|
+
"@dereekb/dbx-core": "13.11.5",
|
|
50
|
+
"@dereekb/firebase": "13.11.5",
|
|
51
|
+
"@dereekb/model": "13.11.5",
|
|
52
|
+
"@dereekb/nestjs": "13.11.5",
|
|
53
|
+
"@dereekb/rxjs": "13.11.5",
|
|
54
|
+
"@dereekb/util": "13.11.5",
|
|
55
|
+
"@dereekb/zoho": "13.11.5",
|
|
56
56
|
"@google-cloud/firestore": "^7.11.6",
|
|
57
57
|
"@google-cloud/storage": "^7.19.0",
|
|
58
58
|
"@nestjs/common": "^11.1.19",
|
package/test/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/firebase-server/test",
|
|
3
|
-
"version": "13.11.
|
|
3
|
+
"version": "13.11.5",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@dereekb/analytics": "13.11.
|
|
6
|
-
"@dereekb/date": "13.11.
|
|
7
|
-
"@dereekb/firebase": "13.11.
|
|
8
|
-
"@dereekb/firebase-server": "13.11.
|
|
9
|
-
"@dereekb/firebase-server/oidc": "13.11.
|
|
10
|
-
"@dereekb/model": "13.11.
|
|
11
|
-
"@dereekb/nestjs": "13.11.
|
|
12
|
-
"@dereekb/rxjs": "13.11.
|
|
13
|
-
"@dereekb/util": "13.11.
|
|
5
|
+
"@dereekb/analytics": "13.11.5",
|
|
6
|
+
"@dereekb/date": "13.11.5",
|
|
7
|
+
"@dereekb/firebase": "13.11.5",
|
|
8
|
+
"@dereekb/firebase-server": "13.11.5",
|
|
9
|
+
"@dereekb/firebase-server/oidc": "13.11.5",
|
|
10
|
+
"@dereekb/model": "13.11.5",
|
|
11
|
+
"@dereekb/nestjs": "13.11.5",
|
|
12
|
+
"@dereekb/rxjs": "13.11.5",
|
|
13
|
+
"@dereekb/util": "13.11.5",
|
|
14
14
|
"@google-cloud/firestore": "^7.11.6",
|
|
15
15
|
"@google-cloud/storage": "^7.19.0",
|
|
16
16
|
"@nestjs/common": "^11.1.19",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"supertest": "^7.2.2"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@dereekb/nestjs": "13.11.
|
|
26
|
+
"@dereekb/nestjs": "13.11.5"
|
|
27
27
|
},
|
|
28
28
|
"exports": {
|
|
29
29
|
"./package.json": "./package.json",
|
package/zoho/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/firebase-server/zoho",
|
|
3
|
-
"version": "13.11.
|
|
3
|
+
"version": "13.11.5",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@dereekb/analytics": "13.11.
|
|
6
|
-
"@dereekb/date": "13.11.
|
|
7
|
-
"@dereekb/model": "13.11.
|
|
8
|
-
"@dereekb/nestjs": "13.11.
|
|
9
|
-
"@dereekb/rxjs": "13.11.
|
|
10
|
-
"@dereekb/firebase": "13.11.
|
|
11
|
-
"@dereekb/util": "13.11.
|
|
12
|
-
"@dereekb/zoho": "13.11.
|
|
5
|
+
"@dereekb/analytics": "13.11.5",
|
|
6
|
+
"@dereekb/date": "13.11.5",
|
|
7
|
+
"@dereekb/model": "13.11.5",
|
|
8
|
+
"@dereekb/nestjs": "13.11.5",
|
|
9
|
+
"@dereekb/rxjs": "13.11.5",
|
|
10
|
+
"@dereekb/firebase": "13.11.5",
|
|
11
|
+
"@dereekb/util": "13.11.5",
|
|
12
|
+
"@dereekb/zoho": "13.11.5"
|
|
13
13
|
},
|
|
14
14
|
"exports": {
|
|
15
15
|
"./package.json": "./package.json",
|