@lenne.tech/nest-server 11.27.5 → 11.27.7
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/.claude/rules/architecture.md +66 -0
- package/.claude/rules/better-auth.md +88 -2
- package/.claude/rules/configurable-features.md +2 -2
- package/.claude/rules/package-management.md +23 -14
- package/.claude/rules/testing.md +27 -9
- package/CLAUDE.md +12 -4
- package/FRAMEWORK-API.md +1 -1
- package/bin/migrate.js +84 -25
- package/dist/core/common/decorators/restricted.decorator.d.ts +4 -4
- package/dist/core/common/decorators/restricted.decorator.js +21 -22
- package/dist/core/common/decorators/restricted.decorator.js.map +1 -1
- package/dist/core/common/helpers/clone.helper.d.ts +6 -0
- package/dist/core/common/helpers/clone.helper.js +67 -0
- package/dist/core/common/helpers/clone.helper.js.map +1 -0
- package/dist/core/common/helpers/cookies.helper.d.ts +1 -0
- package/dist/core/common/helpers/cookies.helper.js +33 -16
- package/dist/core/common/helpers/cookies.helper.js.map +1 -1
- package/dist/core/common/helpers/db.helper.d.ts +2 -14
- package/dist/core/common/helpers/db.helper.js +13 -106
- package/dist/core/common/helpers/db.helper.js.map +1 -1
- package/dist/core/common/helpers/id.helper.d.ts +15 -0
- package/dist/core/common/helpers/id.helper.js +104 -0
- package/dist/core/common/helpers/id.helper.js.map +1 -0
- package/dist/core/common/helpers/input.helper.d.ts +1 -6
- package/dist/core/common/helpers/input.helper.js +11 -70
- package/dist/core/common/helpers/input.helper.js.map +1 -1
- package/dist/core/common/inputs/combined-filter.input.d.ts +1 -12
- package/dist/core/common/inputs/combined-filter.input.js +2 -51
- package/dist/core/common/inputs/combined-filter.input.js.map +1 -1
- package/dist/core/common/inputs/filter.input.d.ts +10 -1
- package/dist/core/common/inputs/filter.input.js +40 -5
- package/dist/core/common/inputs/filter.input.js.map +1 -1
- package/dist/core/common/services/config.service.js +5 -5
- package/dist/core/common/services/config.service.js.map +1 -1
- package/dist/core/modules/ai/core-ai.constants.d.ts +22 -0
- package/dist/core/modules/ai/core-ai.constants.js +26 -0
- package/dist/core/modules/ai/core-ai.constants.js.map +1 -0
- package/dist/core/modules/ai/index.d.ts +1 -0
- package/dist/core/modules/ai/index.js +1 -0
- package/dist/core/modules/ai/index.js.map +1 -1
- package/dist/core/modules/ai/interfaces/ai-interaction-record.interface.d.ts +17 -0
- package/dist/core/modules/ai/interfaces/ai-interaction-record.interface.js +3 -0
- package/dist/core/modules/ai/interfaces/ai-interaction-record.interface.js.map +1 -0
- package/dist/core/modules/ai/services/core-ai-budget.service.d.ts +1 -2
- package/dist/core/modules/ai/services/core-ai-budget.service.js +7 -5
- package/dist/core/modules/ai/services/core-ai-budget.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-connection-preference.service.d.ts +1 -2
- package/dist/core/modules/ai/services/core-ai-connection-preference.service.js +7 -5
- package/dist/core/modules/ai/services/core-ai-connection-preference.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-connection.service.d.ts +1 -2
- package/dist/core/modules/ai/services/core-ai-connection.service.js +7 -5
- package/dist/core/modules/ai/services/core-ai-connection.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-conversation.service.d.ts +1 -2
- package/dist/core/modules/ai/services/core-ai-conversation.service.js +7 -5
- package/dist/core/modules/ai/services/core-ai-conversation.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-interaction.service.d.ts +2 -3
- package/dist/core/modules/ai/services/core-ai-interaction.service.js +7 -5
- package/dist/core/modules/ai/services/core-ai-interaction.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-mode.service.d.ts +1 -2
- package/dist/core/modules/ai/services/core-ai-mode.service.js +7 -5
- package/dist/core/modules/ai/services/core-ai-mode.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-prompt-hint.service.d.ts +1 -3
- package/dist/core/modules/ai/services/core-ai-prompt-hint.service.js +7 -5
- package/dist/core/modules/ai/services/core-ai-prompt-hint.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-prompt.service.d.ts +1 -2
- package/dist/core/modules/ai/services/core-ai-prompt.service.js +7 -5
- package/dist/core/modules/ai/services/core-ai-prompt.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-slot.service.d.ts +1 -2
- package/dist/core/modules/ai/services/core-ai-slot.service.js +7 -5
- package/dist/core/modules/ai/services/core-ai-slot.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-tool-grant.service.d.ts +1 -2
- package/dist/core/modules/ai/services/core-ai-tool-grant.service.js +7 -5
- package/dist/core/modules/ai/services/core-ai-tool-grant.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-tool-policy.service.d.ts +1 -2
- package/dist/core/modules/ai/services/core-ai-tool-policy.service.js +7 -5
- package/dist/core/modules/ai/services/core-ai-tool-policy.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai.service.d.ts +2 -17
- package/dist/core/modules/ai/services/core-ai.service.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth-roles.guard.js +2 -2
- package/dist/core/modules/better-auth/better-auth-roles.guard.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth.config.js +12 -8
- package/dist/core/modules/better-auth/better-auth.config.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth.constants.d.ts +3 -0
- package/dist/core/modules/better-auth/core-better-auth.constants.js +7 -0
- package/dist/core/modules/better-auth/core-better-auth.constants.js.map +1 -0
- package/dist/core/modules/better-auth/core-better-auth.module.d.ts +1 -2
- package/dist/core/modules/better-auth/core-better-auth.module.js +23 -20
- package/dist/core/modules/better-auth/core-better-auth.module.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth.registry.d.ts +4 -0
- package/dist/core/modules/better-auth/core-better-auth.registry.js +16 -0
- package/dist/core/modules/better-auth/core-better-auth.registry.js.map +1 -0
- package/dist/core/modules/better-auth/core-better-auth.service.d.ts +1 -2
- package/dist/core/modules/better-auth/core-better-auth.service.js +7 -6
- package/dist/core/modules/better-auth/core-better-auth.service.js.map +1 -1
- package/dist/core/modules/better-auth/index.d.ts +1 -0
- package/dist/core/modules/better-auth/index.js +1 -0
- package/dist/core/modules/better-auth/index.js.map +1 -1
- package/dist/core/modules/migrate/migration-runner.d.ts +1 -0
- package/dist/core/modules/migrate/migration-runner.js +3 -2
- package/dist/core/modules/migrate/migration-runner.js.map +1 -1
- package/dist/core/modules/tus/tus.constants.d.ts +1 -0
- package/dist/core/modules/tus/tus.constants.js +5 -0
- package/dist/core/modules/tus/tus.constants.js.map +1 -0
- package/dist/core/modules/tus/tus.module.d.ts +1 -1
- package/dist/core/modules/tus/tus.module.js +8 -6
- package/dist/core/modules/tus/tus.module.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/docs/REQUEST-LIFECYCLE.md +17 -4
- package/migration-guides/11.27.5-to-11.27.6.md +359 -0
- package/migration-guides/11.27.6-to-11.27.7.md +374 -0
- package/package.json +11 -104
- package/src/core/common/decorators/restricted.decorator.ts +33 -8
- package/src/core/common/helpers/clone.helper.ts +110 -0
- package/src/core/common/helpers/cookies.helper.ts +101 -26
- package/src/core/common/helpers/db.helper.ts +14 -161
- package/src/core/common/helpers/id.helper.ts +198 -0
- package/src/core/common/helpers/input.helper.ts +12 -84
- package/src/core/common/inputs/combined-filter.input.ts +10 -57
- package/src/core/common/inputs/filter.input.ts +92 -1
- package/src/core/common/interfaces/server-options.interface.ts +35 -6
- package/src/core/common/services/config.service.ts +4 -1
- package/src/core/modules/ai/core-ai.constants.ts +92 -0
- package/src/core/modules/ai/index.ts +1 -0
- package/src/core/modules/ai/interfaces/ai-interaction-record.interface.ts +34 -0
- package/src/core/modules/ai/services/core-ai-budget.service.ts +8 -4
- package/src/core/modules/ai/services/core-ai-connection-preference.service.ts +8 -4
- package/src/core/modules/ai/services/core-ai-connection.service.ts +5 -6
- package/src/core/modules/ai/services/core-ai-conversation.service.ts +5 -6
- package/src/core/modules/ai/services/core-ai-interaction.service.ts +6 -7
- package/src/core/modules/ai/services/core-ai-mode.service.ts +8 -2
- package/src/core/modules/ai/services/core-ai-prompt-hint.service.ts +7 -4
- package/src/core/modules/ai/services/core-ai-prompt.service.ts +8 -2
- package/src/core/modules/ai/services/core-ai-slot.service.ts +7 -4
- package/src/core/modules/ai/services/core-ai-tool-grant.service.ts +8 -4
- package/src/core/modules/ai/services/core-ai-tool-policy.service.ts +8 -4
- package/src/core/modules/ai/services/core-ai.service.ts +8 -11
- package/src/core/modules/better-auth/README.md +10 -4
- package/src/core/modules/better-auth/better-auth-roles.guard.ts +11 -5
- package/src/core/modules/better-auth/better-auth.config.ts +90 -15
- package/src/core/modules/better-auth/core-better-auth.constants.ts +73 -0
- package/src/core/modules/better-auth/core-better-auth.module.ts +34 -8
- package/src/core/modules/better-auth/core-better-auth.registry.ts +53 -0
- package/src/core/modules/better-auth/core-better-auth.service.ts +19 -12
- package/src/core/modules/better-auth/index.ts +9 -0
- package/src/core/modules/migrate/migration-runner.ts +16 -2
- package/src/core/modules/tus/tus.constants.ts +25 -0
- package/src/core/modules/tus/tus.module.ts +7 -2
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.Restricted = Restricted;
|
|
4
|
+
exports.getRestricted = getRestricted;
|
|
5
|
+
exports.checkRestricted = checkRestricted;
|
|
4
6
|
const common_1 = require("@nestjs/common");
|
|
5
7
|
require("reflect-metadata");
|
|
6
8
|
const _ = require("lodash");
|
|
7
9
|
const role_enum_1 = require("../enums/role.enum");
|
|
8
|
-
const
|
|
10
|
+
const id_helper_1 = require("../helpers/id.helper");
|
|
9
11
|
const request_context_service_1 = require("../services/request-context.service");
|
|
10
12
|
const core_tenant_helpers_1 = require("../../modules/tenant/core-tenant.helpers");
|
|
11
13
|
const restrictedMetaKey = Symbol('restricted');
|
|
12
|
-
|
|
14
|
+
function Restricted(...rolesOrMember) {
|
|
13
15
|
return Reflect.metadata(restrictedMetaKey, rolesOrMember);
|
|
14
|
-
}
|
|
15
|
-
exports.Restricted = Restricted;
|
|
16
|
+
}
|
|
16
17
|
const restrictedMetadataCache = new WeakMap();
|
|
17
|
-
|
|
18
|
+
function getRestricted(object, propertyKey) {
|
|
18
19
|
if (!object) {
|
|
19
20
|
return null;
|
|
20
21
|
}
|
|
@@ -38,9 +39,8 @@ const getRestricted = (object, propertyKey) => {
|
|
|
38
39
|
: Reflect.getMetadata(restrictedMetaKey, object);
|
|
39
40
|
classCache.set(cacheKey, metadata);
|
|
40
41
|
return metadata;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const checkRestricted = (data, user, options = {}, processedObjects = new WeakSet()) => {
|
|
42
|
+
}
|
|
43
|
+
function checkRestricted(data, user, options = {}, processedObjects = new WeakSet()) {
|
|
44
44
|
const config = {
|
|
45
45
|
allowCreatorOfParent: true,
|
|
46
46
|
checkObjectItself: false,
|
|
@@ -70,7 +70,7 @@ const checkRestricted = (data, user, options = {}, processedObjects = new WeakSe
|
|
|
70
70
|
!Array.isArray(sample) &&
|
|
71
71
|
sample.constructor &&
|
|
72
72
|
sample.constructor !== Object) {
|
|
73
|
-
const classRestrictions =
|
|
73
|
+
const classRestrictions = getRestricted(sample.constructor) || [];
|
|
74
74
|
if (classRestrictions.length) {
|
|
75
75
|
const hasCreatorOrSelf = classRestrictions.some((r) => r === role_enum_1.RoleEnum.S_CREATOR ||
|
|
76
76
|
r === role_enum_1.RoleEnum.S_SELF ||
|
|
@@ -84,7 +84,7 @@ const checkRestricted = (data, user, options = {}, processedObjects = new WeakSe
|
|
|
84
84
|
r.roles === role_enum_1.RoleEnum.S_CREATOR ||
|
|
85
85
|
r.roles === role_enum_1.RoleEnum.S_SELF)));
|
|
86
86
|
if (!hasCreatorOrSelf) {
|
|
87
|
-
const sampleResult =
|
|
87
|
+
const sampleResult = checkRestricted(sample, user, config, processedObjects);
|
|
88
88
|
if (sampleResult === undefined || sampleResult === null) {
|
|
89
89
|
if (config.throwError) {
|
|
90
90
|
return data;
|
|
@@ -93,7 +93,7 @@ const checkRestricted = (data, user, options = {}, processedObjects = new WeakSe
|
|
|
93
93
|
}
|
|
94
94
|
const result = [sampleResult];
|
|
95
95
|
for (let i = 1; i < data.length; i++) {
|
|
96
|
-
result.push(
|
|
96
|
+
result.push(checkRestricted(data[i], user, config, processedObjects));
|
|
97
97
|
}
|
|
98
98
|
if (!config.throwError && config.removeUndefinedFromResultArray) {
|
|
99
99
|
return result.filter((item) => item !== undefined);
|
|
@@ -102,7 +102,7 @@ const checkRestricted = (data, user, options = {}, processedObjects = new WeakSe
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
|
-
let result = data.map((item) =>
|
|
105
|
+
let result = data.map((item) => checkRestricted(item, user, config, processedObjects));
|
|
106
106
|
if (!config.throwError && config.removeUndefinedFromResultArray) {
|
|
107
107
|
result = result.filter((item) => item !== undefined);
|
|
108
108
|
}
|
|
@@ -141,9 +141,9 @@ const checkRestricted = (data, user, options = {}, processedObjects = new WeakSe
|
|
|
141
141
|
if (roles.includes(role_enum_1.RoleEnum.S_EVERYONE) ||
|
|
142
142
|
user?.hasRole?.(roles) ||
|
|
143
143
|
(user?.id && roles.includes(role_enum_1.RoleEnum.S_USER)) ||
|
|
144
|
-
(roles.includes(role_enum_1.RoleEnum.S_SELF) && (0,
|
|
144
|
+
(roles.includes(role_enum_1.RoleEnum.S_SELF) && (0, id_helper_1.equalIds)(data, user)) ||
|
|
145
145
|
(roles.includes(role_enum_1.RoleEnum.S_CREATOR) &&
|
|
146
|
-
(('createdBy' in data && (0,
|
|
146
|
+
(('createdBy' in data && (0, id_helper_1.equalIds)(data.createdBy, user)) ||
|
|
147
147
|
(config.allowCreatorOfParent && !('createdBy' in data) && config.isCreatorOfParent))) ||
|
|
148
148
|
(roles.includes(role_enum_1.RoleEnum.S_VERIFIED) && (user?.verified || user?.verifiedAt || user?.emailVerified)) ||
|
|
149
149
|
(user?.id && (0, core_tenant_helpers_1.checkRoleAccess)(roles, user?.roles, request_context_service_1.RequestContext.get()?.tenantRole))) {
|
|
@@ -175,7 +175,7 @@ const checkRestricted = (data, user, options = {}, processedObjects = new WeakSe
|
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
|
-
if ((0,
|
|
178
|
+
if ((0, id_helper_1.getIncludedIds)(members, user)) {
|
|
179
179
|
valid = true;
|
|
180
180
|
}
|
|
181
181
|
}
|
|
@@ -185,7 +185,7 @@ const checkRestricted = (data, user, options = {}, processedObjects = new WeakSe
|
|
|
185
185
|
}
|
|
186
186
|
return valid;
|
|
187
187
|
};
|
|
188
|
-
const objectRestrictions =
|
|
188
|
+
const objectRestrictions = getRestricted(data.constructor) || [];
|
|
189
189
|
if (config.checkObjectItself) {
|
|
190
190
|
const objectIsValid = validateRestricted(objectRestrictions);
|
|
191
191
|
if (!objectIsValid) {
|
|
@@ -205,13 +205,13 @@ const checkRestricted = (data, user, options = {}, processedObjects = new WeakSe
|
|
|
205
205
|
if (data[propertyKey] === undefined && config.ignoreUndefined) {
|
|
206
206
|
continue;
|
|
207
207
|
}
|
|
208
|
-
const restricted =
|
|
208
|
+
const restricted = getRestricted(data, propertyKey) || [];
|
|
209
209
|
const concatenatedRestrictions = config.mergeRoles && objectRestrictions.length ? _.uniq(objectRestrictions.concat(restricted)) : restricted;
|
|
210
210
|
const valid = validateRestricted(concatenatedRestrictions);
|
|
211
211
|
if (valid) {
|
|
212
212
|
config.isCreatorOfParent =
|
|
213
|
-
(0,
|
|
214
|
-
data[propertyKey] =
|
|
213
|
+
(0, id_helper_1.equalIds)(data, user) || ('createdBy' in data ? (0, id_helper_1.equalIds)(data.createdBy, user) : config.isCreatorOfParent);
|
|
214
|
+
data[propertyKey] = checkRestricted(data[propertyKey], user, config, processedObjects);
|
|
215
215
|
}
|
|
216
216
|
else {
|
|
217
217
|
if (config.debug) {
|
|
@@ -224,6 +224,5 @@ const checkRestricted = (data, user, options = {}, processedObjects = new WeakSe
|
|
|
224
224
|
}
|
|
225
225
|
}
|
|
226
226
|
return data;
|
|
227
|
-
}
|
|
228
|
-
exports.checkRestricted = checkRestricted;
|
|
227
|
+
}
|
|
229
228
|
//# sourceMappingURL=restricted.decorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restricted.decorator.js","sourceRoot":"","sources":["../../../../src/core/common/decorators/restricted.decorator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"restricted.decorator.js","sourceRoot":"","sources":["../../../../src/core/common/decorators/restricted.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clone = clone;
|
|
4
|
+
exports.deepFreeze = deepFreeze;
|
|
5
|
+
const inspector = require("inspector");
|
|
6
|
+
const _ = require("lodash");
|
|
7
|
+
const rfdc = require("rfdc");
|
|
8
|
+
const util = require("util");
|
|
9
|
+
function clone(object, options) {
|
|
10
|
+
const config = {
|
|
11
|
+
checkResult: true,
|
|
12
|
+
circles: true,
|
|
13
|
+
debug: inspector.url() !== undefined,
|
|
14
|
+
proto: false,
|
|
15
|
+
...options,
|
|
16
|
+
};
|
|
17
|
+
try {
|
|
18
|
+
const cloned = rfdc(config)(object);
|
|
19
|
+
if (config.checkResult && !util.isDeepStrictEqual(object, cloned)) {
|
|
20
|
+
throw new Error('Cloned object differs from original object');
|
|
21
|
+
}
|
|
22
|
+
return cloned;
|
|
23
|
+
}
|
|
24
|
+
catch (e) {
|
|
25
|
+
if (!config.circles) {
|
|
26
|
+
if (config.debug) {
|
|
27
|
+
console.debug(e, config, object, 'automatic try to use rfdc with circles');
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
const clonedWithCircles = rfdc({
|
|
31
|
+
...config,
|
|
32
|
+
circles: true,
|
|
33
|
+
})(object);
|
|
34
|
+
if (config.checkResult && !util.isDeepStrictEqual(object, clonedWithCircles)) {
|
|
35
|
+
throw new Error('Cloned object differs from original object', { cause: e });
|
|
36
|
+
}
|
|
37
|
+
return clonedWithCircles;
|
|
38
|
+
}
|
|
39
|
+
catch (innerError) {
|
|
40
|
+
if (config.debug) {
|
|
41
|
+
console.debug(innerError, 'rfcd with circles did not work => automatic use of _.clone!');
|
|
42
|
+
}
|
|
43
|
+
return _.cloneDeep(object);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
if (config.debug) {
|
|
48
|
+
console.debug(e, config, object, 'automatic try to use _.clone instead rfdc');
|
|
49
|
+
}
|
|
50
|
+
return _.cloneDeep(object);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function deepFreeze(object, visited = new WeakSet()) {
|
|
55
|
+
if (!object || typeof object !== 'object') {
|
|
56
|
+
return object;
|
|
57
|
+
}
|
|
58
|
+
if (visited.has(object)) {
|
|
59
|
+
return object;
|
|
60
|
+
}
|
|
61
|
+
visited.add(object);
|
|
62
|
+
for (const [key, value] of Object.entries(object)) {
|
|
63
|
+
object[key] = deepFreeze(value, visited);
|
|
64
|
+
}
|
|
65
|
+
return Object.freeze(object);
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=clone.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clone.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/clone.helper.ts"],"names":[],"mappings":";;AAkDA,sBA0CC;AAKD,gCAYC;AAjFD,uCAAuC;AACvC,4BAA6B;AAC7B,6BAA8B;AAC9B,6BAA6B;AAmB7B,SAAgB,KAAK,CAAC,MAAW,EAAE,OAAuE;IACxG,MAAM,MAAM,GAAG;QACb,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,KAAK,SAAS;QACpC,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,wCAAwC,CAAC,CAAC;YAC7E,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,iBAAiB,GAAG,IAAI,CAAC;oBAC7B,GAAG,MAAM;oBACT,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC,MAAM,CAAC,CAAC;gBACX,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,CAAC;oBAC7E,MAAM,IAAI,KAAK,CAAC,4CAA4C,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9E,CAAC;gBACD,OAAO,iBAAiB,CAAC;YAC3B,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,6DAA6D,CAAC,CAAC;gBAC3F,CAAC;gBACD,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,2CAA2C,CAAC,CAAC;YAChF,CAAC;YACD,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC;AAKD,SAAgB,UAAU,CAAC,MAAW,EAAE,UAA2B,IAAI,OAAO,EAAE;IAC9E,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -21,6 +21,7 @@ export declare const LOCALHOST_URL_DEFAULTS: {
|
|
|
21
21
|
readonly appUrl: "http://localhost:3001";
|
|
22
22
|
};
|
|
23
23
|
export declare const LOCALHOST_URL_ENVS: readonly string[];
|
|
24
|
+
export declare function strippedApiHostname(hostname: string): string | undefined;
|
|
24
25
|
export declare function deriveAppUrlFromBaseUrl(baseUrl: string): string;
|
|
25
26
|
export interface IResolvedServerUrls {
|
|
26
27
|
appUrl: string | undefined;
|
|
@@ -9,6 +9,7 @@ exports.isCookiesEnabled = isCookiesEnabled;
|
|
|
9
9
|
exports.isExposeTokenInBodyEnabled = isExposeTokenInBodyEnabled;
|
|
10
10
|
exports.shouldConvertSessionTokenToJwt = shouldConvertSessionTokenToJwt;
|
|
11
11
|
exports.isCorsDisabled = isCorsDisabled;
|
|
12
|
+
exports.strippedApiHostname = strippedApiHostname;
|
|
12
13
|
exports.deriveAppUrlFromBaseUrl = deriveAppUrlFromBaseUrl;
|
|
13
14
|
exports.resolveServerUrls = resolveServerUrls;
|
|
14
15
|
exports.buildCorsConfig = buildCorsConfig;
|
|
@@ -90,7 +91,7 @@ exports.LOCALHOST_URL_DEFAULTS = {
|
|
|
90
91
|
};
|
|
91
92
|
exports.LOCALHOST_URL_ENVS = ['ci', 'e2e', 'local'];
|
|
92
93
|
const API_HOST_LABEL = 'api.';
|
|
93
|
-
function
|
|
94
|
+
function toHttpUrl(value) {
|
|
94
95
|
let url;
|
|
95
96
|
try {
|
|
96
97
|
url = new URL(value);
|
|
@@ -101,7 +102,10 @@ function toHttpOrigin(value) {
|
|
|
101
102
|
if (url.protocol !== 'http:' && url.protocol !== 'https:') {
|
|
102
103
|
return undefined;
|
|
103
104
|
}
|
|
104
|
-
return url
|
|
105
|
+
return url;
|
|
106
|
+
}
|
|
107
|
+
function toHttpOrigin(value) {
|
|
108
|
+
return toHttpUrl(value)?.origin;
|
|
105
109
|
}
|
|
106
110
|
function isLocalhostUrl(value) {
|
|
107
111
|
if (!value) {
|
|
@@ -115,24 +119,34 @@ function isLocalhostUrl(value) {
|
|
|
115
119
|
return false;
|
|
116
120
|
}
|
|
117
121
|
}
|
|
118
|
-
function
|
|
122
|
+
function strippedApiHostname(hostname) {
|
|
119
123
|
if (!hostname.startsWith(API_HOST_LABEL)) {
|
|
120
|
-
return
|
|
124
|
+
return undefined;
|
|
121
125
|
}
|
|
122
126
|
const remainder = hostname.slice(API_HOST_LABEL.length);
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
function deriveAppUrlFromBaseUrl(baseUrl) {
|
|
126
|
-
const origin = toHttpOrigin(baseUrl);
|
|
127
|
-
if (!origin) {
|
|
128
|
-
return baseUrl;
|
|
127
|
+
if (remainder !== 'localhost' && !remainder.includes('.')) {
|
|
128
|
+
return undefined;
|
|
129
129
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
130
|
+
return remainder;
|
|
131
|
+
}
|
|
132
|
+
function deriveAppOriginFromUrl(url) {
|
|
133
|
+
const stripped = strippedApiHostname(url.hostname);
|
|
134
|
+
if (stripped !== undefined) {
|
|
135
|
+
url.hostname = stripped;
|
|
133
136
|
}
|
|
134
137
|
return url.origin;
|
|
135
138
|
}
|
|
139
|
+
function separatesApiAndAppByHost(url) {
|
|
140
|
+
if (!url) {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
const stripped = strippedApiHostname(url.hostname);
|
|
144
|
+
return stripped !== undefined && stripped !== 'localhost';
|
|
145
|
+
}
|
|
146
|
+
function deriveAppUrlFromBaseUrl(baseUrl) {
|
|
147
|
+
const url = toHttpUrl(baseUrl);
|
|
148
|
+
return url ? deriveAppOriginFromUrl(url) : baseUrl;
|
|
149
|
+
}
|
|
136
150
|
function resolveServerUrls(input) {
|
|
137
151
|
const usesLocalhostDefaults = exports.LOCALHOST_URL_ENVS.includes(input.env ?? '');
|
|
138
152
|
let baseUrl = input.baseUrl;
|
|
@@ -144,11 +158,14 @@ function resolveServerUrls(input) {
|
|
|
144
158
|
if (input.appUrl) {
|
|
145
159
|
return { appUrl: input.appUrl, appUrlSource: 'explicit', baseUrl, baseUrlSource };
|
|
146
160
|
}
|
|
147
|
-
|
|
161
|
+
const mayDerive = input.deriveAppUrl !== false;
|
|
162
|
+
const parsedBaseUrl = baseUrl && mayDerive ? toHttpUrl(baseUrl) : undefined;
|
|
163
|
+
if (usesLocalhostDefaults && isLocalhostUrl(baseUrl) && !(mayDerive && separatesApiAndAppByHost(parsedBaseUrl))) {
|
|
148
164
|
return { appUrl: exports.LOCALHOST_URL_DEFAULTS.appUrl, appUrlSource: 'localhost-default', baseUrl, baseUrlSource };
|
|
149
165
|
}
|
|
150
|
-
if (baseUrl &&
|
|
151
|
-
|
|
166
|
+
if (baseUrl && mayDerive) {
|
|
167
|
+
const appUrl = parsedBaseUrl ? deriveAppOriginFromUrl(parsedBaseUrl) : baseUrl;
|
|
168
|
+
return { appUrl, appUrlSource: 'derived', baseUrl, baseUrlSource };
|
|
152
169
|
}
|
|
153
170
|
return { appUrl: undefined, appUrlSource: 'none', baseUrl, baseUrlSource };
|
|
154
171
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookies.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/cookies.helper.ts"],"names":[],"mappings":";;;AA4BA,kDAGC;AA+BD,kEAMC;AAiBD,kEAiBC;AAkBD,oDAiCC;AAgBD,4CAIC;AAWD,gEAGC;AAyBD,wEAUC;AAWD,wCAIC;
|
|
1
|
+
{"version":3,"file":"cookies.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/cookies.helper.ts"],"names":[],"mappings":";;;AA4BA,kDAGC;AA+BD,kEAMC;AAiBD,kEAiBC;AAkBD,oDAiCC;AAgBD,4CAIC;AAWD,gEAGC;AAyBD,wEAUC;AAWD,wCAIC;AAuGD,kDAWC;AA2DD,0DAGC;AAsCD,8CA6CC;AAqCD,0CA6CC;AArjBD,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;AAerE,SAAgB,mBAAmB,CAAC,GAAY;IAC9C,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC3D,OAAO,sBAAsB,CAAC;AAChC,CAAC;AA+BD,SAAgB,2BAA2B,CAAC,GAAY;IACtD,OAAO;QACL,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC;KACjC,CAAC;AACJ,CAAC;AAiBD,SAAgB,2BAA2B,CACzC,OAA6C,EAC7C,GAAuB;IAMvB,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CACb,iFAAiF;YAC/E,gFAAgF;YAChF,iFAAiF;YACjF,oFAAoF;YACpF,0BAA0B,CAC7B,CAAC;IACJ,CAAC;AACH,CAAC;AAkBD,SAAgB,oBAAoB,CAClC,GAAa,EACb,MAAS,EACT,OAA6C,EAC7C,GAAY;IAEZ,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,aAAa,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC;IAGvD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC;QACvC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC;IACvD,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC;IAGrE,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;QACD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC,YAAY,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAgBD,SAAgB,gBAAgB,CAAC,OAA6C;IAC5E,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC;IACtF,OAAO,IAAI,CAAC;AACd,CAAC;AAWD,SAAgB,0BAA0B,CAAC,OAA6C;IACtF,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC,iBAAiB,KAAK,IAAI,CAAC;IAC/F,OAAO,KAAK,CAAC;AACf,CAAC;AAyBD,SAAgB,8BAA8B,CAC5C,OAA6C,EAC7C,UAAmB;IAEnB,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9B,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAE9D,IAAI,cAAc,IAAI,CAAC,iBAAiB;QAAE,OAAO,KAAK,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC;AAWD,SAAgB,cAAc,CAAC,IAAuC;IACpE,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC;IAC7E,OAAO,KAAK,CAAC;AACf,CAAC;AAoBY,QAAA,sBAAsB,GAAG;IACpC,MAAM,EAAE,uBAAuB;IAC/B,MAAM,EAAE,uBAAuB;CACvB,CAAC;AAOE,QAAA,kBAAkB,GAAsB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAK5E,MAAM,cAAc,GAAG,MAAM,CAAC;AAW9B,SAAS,SAAS,CAAC,KAAa;IAC9B,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAMD,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;AAClC,CAAC;AAKD,SAAS,cAAc,CAAC,KAAyB;IAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,OAAO,CACL,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,OAAO,CAChH,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAkBD,SAAgB,mBAAmB,CAAC,QAAgB;IAClD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACzC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,SAAS,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAQD,SAAS,sBAAsB,CAAC,GAAQ;IACtC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED,OAAO,GAAG,CAAC,MAAM,CAAC;AACpB,CAAC;AAsBD,SAAS,wBAAwB,CAAC,GAAoB;IACpD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnD,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,WAAW,CAAC;AAC5D,CAAC;AAeD,SAAgB,uBAAuB,CAAC,OAAe;IACrD,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/B,OAAO,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACrD,CAAC;AAsCD,SAAgB,iBAAiB,CAAC,KAKjC;IACC,MAAM,qBAAqB,GAAG,0BAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IAE3E,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC5B,IAAI,aAAa,GAAyC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;IACxF,IAAI,CAAC,OAAO,IAAI,qBAAqB,EAAE,CAAC;QACtC,OAAO,GAAG,8BAAsB,CAAC,MAAM,CAAC;QACxC,aAAa,GAAG,mBAAmB,CAAC;IACtC,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IACpF,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC;IAO/C,MAAM,aAAa,GAAG,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAO5E,IAAI,qBAAqB,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,wBAAwB,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QAChH,OAAO,EAAE,MAAM,EAAE,8BAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAC9G,CAAC;IAED,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;QAGzB,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/E,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IACrE,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;AAC7E,CAAC;AAqCD,SAAgB,eAAe,CAAC,OAAgC;IAC9D,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,OAAO,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAGtE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;IAID,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC;QAC5C,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,GAAG,EAAE,OAAO,EAAE,GAAG;KAClB,CAAC,CAAC;IAMH,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QACpC,IAAI,GAAG;YAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IACtD,CAAC;IAGD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -1,35 +1,23 @@
|
|
|
1
1
|
import { FieldNode, GraphQLResolveInfo, SelectionNode } from 'graphql';
|
|
2
|
-
import { Document, Model, PopulateOptions, Query
|
|
2
|
+
import { Document, Model, PopulateOptions, Query } from 'mongoose';
|
|
3
3
|
import { CoreModel } from '../models/core-model.model';
|
|
4
4
|
import { FieldSelection } from '../types/field-selection.type';
|
|
5
5
|
import { IdsType } from '../types/ids.type';
|
|
6
6
|
import { StringOrObjectId } from '../types/string-or-object-id.type';
|
|
7
|
+
export { equalIds, getIncludedIds, getObjectIds, getStringIds } from './id.helper';
|
|
7
8
|
export declare function addIds(target: any, ids: StringOrObjectId | StringOrObjectId[], convert?: 'auto' | 'object' | 'string' | false, options?: {
|
|
8
9
|
unique?: boolean;
|
|
9
10
|
}): any[];
|
|
10
11
|
export declare function checkStringIds(ids: string | string[]): boolean;
|
|
11
|
-
export declare function equalIds(...ids: IdsType[]): boolean;
|
|
12
12
|
export declare function getElementsViaIds<T = any>(ids: any | any[], array: T[], options?: {
|
|
13
13
|
splice?: boolean;
|
|
14
14
|
unique?: boolean;
|
|
15
15
|
}): T[];
|
|
16
|
-
export declare function getIncludedIds(includes: IdsType, ids: IdsType, convert?: 'string'): string[];
|
|
17
|
-
export declare function getIncludedIds(includes: IdsType, ids: IdsType, convert?: 'object'): Types.ObjectId[];
|
|
18
16
|
export declare function getIndexesViaIds(ids: IdsType, array: IdsType): number[];
|
|
19
17
|
export declare function getJSONClone<T = any>(obj: T): Partial<T>;
|
|
20
18
|
export declare function getNextFieldNodes(nodes: readonly SelectionNode[]): FieldNode[];
|
|
21
|
-
export declare function getObjectIds(ids: any[]): Types.ObjectId[];
|
|
22
|
-
export declare function getObjectIds(ids: any): Types.ObjectId;
|
|
23
19
|
export declare function getPopulateOptions(info: GraphQLResolveInfo, dotSeparatedSelect?: string): PopulateOptions[];
|
|
24
20
|
export declare function getPopulatOptionsFromSelections(selectionNodes: readonly SelectionNode[]): PopulateOptions[];
|
|
25
|
-
export declare function getStringIds(elements: any[], options?: {
|
|
26
|
-
deep?: boolean;
|
|
27
|
-
unique?: boolean;
|
|
28
|
-
}): string[];
|
|
29
|
-
export declare function getStringIds(elements: any, options?: {
|
|
30
|
-
deep?: boolean;
|
|
31
|
-
unique?: boolean;
|
|
32
|
-
}): string;
|
|
33
21
|
export declare function objectIdsToStrings(element: any, prepared?: WeakMap<any, any>): any;
|
|
34
22
|
export declare function popAndMap<T extends CoreModel>(queryOrDocument: Document | Document[] | Query<any, any>, populate: FieldSelection, modelClass: new (...args: any[]) => T, mongooseModel?: Model<any>, options?: {
|
|
35
23
|
ignoreSelections?: boolean;
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getStringIds = exports.getObjectIds = exports.getIncludedIds = exports.equalIds = void 0;
|
|
3
4
|
exports.addIds = addIds;
|
|
4
5
|
exports.checkStringIds = checkStringIds;
|
|
5
|
-
exports.equalIds = equalIds;
|
|
6
6
|
exports.getElementsViaIds = getElementsViaIds;
|
|
7
|
-
exports.getIncludedIds = getIncludedIds;
|
|
8
7
|
exports.getIndexesViaIds = getIndexesViaIds;
|
|
9
8
|
exports.getJSONClone = getJSONClone;
|
|
10
9
|
exports.getNextFieldNodes = getNextFieldNodes;
|
|
11
|
-
exports.getObjectIds = getObjectIds;
|
|
12
10
|
exports.getPopulateOptions = getPopulateOptions;
|
|
13
11
|
exports.getPopulatOptionsFromSelections = getPopulatOptionsFromSelections;
|
|
14
|
-
exports.getStringIds = getStringIds;
|
|
15
12
|
exports.objectIdsToStrings = objectIdsToStrings;
|
|
16
13
|
exports.popAndMap = popAndMap;
|
|
17
14
|
exports.removeIds = removeIds;
|
|
18
15
|
exports.removeUnresolvedReferences = removeUnresolvedReferences;
|
|
19
16
|
exports.setPopulates = setPopulates;
|
|
20
|
-
const _ = require("lodash");
|
|
21
17
|
const mongoose_1 = require("mongoose");
|
|
18
|
+
const id_helper_1 = require("./id.helper");
|
|
22
19
|
const input_helper_1 = require("./input.helper");
|
|
20
|
+
var id_helper_2 = require("./id.helper");
|
|
21
|
+
Object.defineProperty(exports, "equalIds", { enumerable: true, get: function () { return id_helper_2.equalIds; } });
|
|
22
|
+
Object.defineProperty(exports, "getIncludedIds", { enumerable: true, get: function () { return id_helper_2.getIncludedIds; } });
|
|
23
|
+
Object.defineProperty(exports, "getObjectIds", { enumerable: true, get: function () { return id_helper_2.getObjectIds; } });
|
|
24
|
+
Object.defineProperty(exports, "getStringIds", { enumerable: true, get: function () { return id_helper_2.getStringIds; } });
|
|
23
25
|
function addIds(target, ids, convert = 'auto', options) {
|
|
24
26
|
const config = {
|
|
25
27
|
unique: true,
|
|
@@ -40,7 +42,7 @@ function addIds(target, ids, convert = 'auto', options) {
|
|
|
40
42
|
convert === 'auto' &&
|
|
41
43
|
((result[0] instanceof mongoose_1.Types.ObjectId && !(ids instanceof mongoose_1.Types.ObjectId)) ||
|
|
42
44
|
(typeof result[0] === 'string' && typeof ids !== 'string'))) {
|
|
43
|
-
const converted = result[0] instanceof mongoose_1.Types.ObjectId ? getObjectIds(ids) : getStringIds(ids);
|
|
45
|
+
const converted = result[0] instanceof mongoose_1.Types.ObjectId ? (0, id_helper_1.getObjectIds)(ids) : (0, id_helper_1.getStringIds)(ids);
|
|
44
46
|
result.push(...converted);
|
|
45
47
|
}
|
|
46
48
|
else {
|
|
@@ -49,7 +51,7 @@ function addIds(target, ids, convert = 'auto', options) {
|
|
|
49
51
|
}
|
|
50
52
|
if (['object', 'string'].includes(convert)) {
|
|
51
53
|
for (let i = 0; i < result.length; i++) {
|
|
52
|
-
result[i] = convert === 'string' ?
|
|
54
|
+
result[i] = convert === 'string' ? (0, id_helper_1.getStringIds)(result[i]) : (0, id_helper_1.getObjectIds)(result[i]);
|
|
53
55
|
}
|
|
54
56
|
}
|
|
55
57
|
return result;
|
|
@@ -69,16 +71,6 @@ function checkStringIds(ids) {
|
|
|
69
71
|
catch (e) { }
|
|
70
72
|
return false;
|
|
71
73
|
}
|
|
72
|
-
function equalIds(...ids) {
|
|
73
|
-
if (!ids) {
|
|
74
|
-
return false;
|
|
75
|
-
}
|
|
76
|
-
const compare = getStringIds(ids[0]);
|
|
77
|
-
if (!compare) {
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
return ids.every((id) => getStringIds(id) === compare);
|
|
81
|
-
}
|
|
82
74
|
function getElementsViaIds(ids, array, options = {}) {
|
|
83
75
|
const config = {
|
|
84
76
|
splice: false,
|
|
@@ -100,33 +92,11 @@ function getElementsViaIds(ids, array, options = {}) {
|
|
|
100
92
|
});
|
|
101
93
|
if (config.unique) {
|
|
102
94
|
return elements.filter((value, index, self) => {
|
|
103
|
-
return self.findIndex((e) => getStringIds(e)) === index;
|
|
95
|
+
return self.findIndex((e) => (0, id_helper_1.getStringIds)(e)) === index;
|
|
104
96
|
});
|
|
105
97
|
}
|
|
106
98
|
return elements;
|
|
107
99
|
}
|
|
108
|
-
function getIncludedIds(includes, ids, convert) {
|
|
109
|
-
if (!includes || !ids) {
|
|
110
|
-
return undefined;
|
|
111
|
-
}
|
|
112
|
-
if (!Array.isArray(includes)) {
|
|
113
|
-
includes = [includes];
|
|
114
|
-
}
|
|
115
|
-
if (!Array.isArray(ids)) {
|
|
116
|
-
ids = [ids];
|
|
117
|
-
}
|
|
118
|
-
let result = [];
|
|
119
|
-
const includesStrings = getStringIds(includes);
|
|
120
|
-
for (const id of ids) {
|
|
121
|
-
if (includesStrings.includes(getStringIds(id))) {
|
|
122
|
-
result.push(id);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
if (convert) {
|
|
126
|
-
result = convert === 'string' ? getStringIds(result) : getObjectIds(result);
|
|
127
|
-
}
|
|
128
|
-
return result.length ? result : null;
|
|
129
|
-
}
|
|
130
100
|
function getIndexesViaIds(ids, array) {
|
|
131
101
|
if (!ids) {
|
|
132
102
|
return [];
|
|
@@ -140,7 +110,7 @@ function getIndexesViaIds(ids, array) {
|
|
|
140
110
|
const indexes = [];
|
|
141
111
|
ids.forEach((id) => {
|
|
142
112
|
array.forEach((element, index) => {
|
|
143
|
-
if (equalIds(id, element)) {
|
|
113
|
+
if ((0, id_helper_1.equalIds)(id, element)) {
|
|
144
114
|
indexes.push(index);
|
|
145
115
|
}
|
|
146
116
|
});
|
|
@@ -162,12 +132,6 @@ function getNextFieldNodes(nodes) {
|
|
|
162
132
|
}
|
|
163
133
|
return result;
|
|
164
134
|
}
|
|
165
|
-
function getObjectIds(ids) {
|
|
166
|
-
if (Array.isArray(ids)) {
|
|
167
|
-
return ids.map((id) => new mongoose_1.Types.ObjectId(getStringId(id)));
|
|
168
|
-
}
|
|
169
|
-
return new mongoose_1.Types.ObjectId(getStringId(ids));
|
|
170
|
-
}
|
|
171
135
|
function getPopulateOptions(info, dotSeparatedSelect) {
|
|
172
136
|
const result = [];
|
|
173
137
|
if (!info?.fieldNodes?.length) {
|
|
@@ -241,34 +205,6 @@ function getPopulatOptionsFromSelections(selectionNodes) {
|
|
|
241
205
|
}
|
|
242
206
|
return populateOptions;
|
|
243
207
|
}
|
|
244
|
-
function getStringIds(elements, options) {
|
|
245
|
-
const { deep, unique } = {
|
|
246
|
-
deep: false,
|
|
247
|
-
unique: false,
|
|
248
|
-
...options,
|
|
249
|
-
};
|
|
250
|
-
if (!elements) {
|
|
251
|
-
return elements;
|
|
252
|
-
}
|
|
253
|
-
let ids = [];
|
|
254
|
-
if (!Array.isArray(elements)) {
|
|
255
|
-
return getStringId(elements);
|
|
256
|
-
}
|
|
257
|
-
for (const element of elements) {
|
|
258
|
-
if (Array.isArray(element)) {
|
|
259
|
-
if (deep) {
|
|
260
|
-
ids = ids.concat(getStringIds(element, { deep }));
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
else {
|
|
264
|
-
const id = getStringId(element);
|
|
265
|
-
if (id) {
|
|
266
|
-
ids.push(id);
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
return unique ? _.uniq(ids) : ids;
|
|
271
|
-
}
|
|
272
208
|
function objectIdsToStrings(element, prepared = new WeakMap()) {
|
|
273
209
|
if (!element) {
|
|
274
210
|
return element;
|
|
@@ -356,9 +292,9 @@ function removeIds(source, ids) {
|
|
|
356
292
|
if (!Array.isArray(source)) {
|
|
357
293
|
return [];
|
|
358
294
|
}
|
|
359
|
-
const stringIds = getStringIds(source);
|
|
295
|
+
const stringIds = (0, id_helper_1.getStringIds)(source);
|
|
360
296
|
ids.forEach((id) => {
|
|
361
|
-
const position = stringIds.indexOf(getStringIds(id));
|
|
297
|
+
const position = stringIds.indexOf((0, id_helper_1.getStringIds)(id));
|
|
362
298
|
if (position !== -1) {
|
|
363
299
|
source.splice(position, 1);
|
|
364
300
|
}
|
|
@@ -443,33 +379,4 @@ async function setPopulates(queryOrDocument, populateOptions, mongooseModel, opt
|
|
|
443
379
|
}
|
|
444
380
|
return queryOrDocument;
|
|
445
381
|
}
|
|
446
|
-
function getStringId(element) {
|
|
447
|
-
if (!element) {
|
|
448
|
-
return element;
|
|
449
|
-
}
|
|
450
|
-
if (element instanceof Buffer) {
|
|
451
|
-
return element.toString();
|
|
452
|
-
}
|
|
453
|
-
if (typeof element === 'string') {
|
|
454
|
-
return element;
|
|
455
|
-
}
|
|
456
|
-
if (typeof element === 'object') {
|
|
457
|
-
if (element instanceof mongoose_1.Types.ObjectId) {
|
|
458
|
-
return element.toHexString();
|
|
459
|
-
}
|
|
460
|
-
if (element.id) {
|
|
461
|
-
if (element.id instanceof Buffer && element.toHexString) {
|
|
462
|
-
return element.toHexString();
|
|
463
|
-
}
|
|
464
|
-
return getStringId(element.id);
|
|
465
|
-
}
|
|
466
|
-
else if (element._id) {
|
|
467
|
-
return getStringId(element._id);
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
if (typeof element.toString === 'function') {
|
|
471
|
-
return element.toString();
|
|
472
|
-
}
|
|
473
|
-
return undefined;
|
|
474
|
-
}
|
|
475
382
|
//# sourceMappingURL=db.helper.js.map
|