@rockster/core 0.0.2 → 0.0.4
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/access/access.module.d.ts +11 -0
- package/access/access.module.js +60 -0
- package/access/access.module.js.map +1 -0
- package/access/controllers/controllers.d.ts +6 -0
- package/access/controllers/controllers.js +16 -0
- package/access/controllers/controllers.js.map +1 -0
- package/access/controllers/scope-group-user.controller.d.ts +13 -0
- package/access/controllers/scope-group-user.controller.js +84 -0
- package/access/controllers/scope-group-user.controller.js.map +1 -0
- package/access/controllers/scope-group.controller.d.ts +19 -0
- package/access/controllers/scope-group.controller.js +123 -0
- package/access/controllers/scope-group.controller.js.map +1 -0
- package/access/controllers/scope-key.controller.d.ts +7 -0
- package/access/controllers/scope-key.controller.js +45 -0
- package/access/controllers/scope-key.controller.js.map +1 -0
- package/access/controllers/scope-owner.controller.d.ts +8 -0
- package/access/controllers/scope-owner.controller.js +66 -0
- package/access/controllers/scope-owner.controller.js.map +1 -0
- package/access/controllers/scope-user.controller.d.ts +14 -0
- package/access/controllers/scope-user.controller.js +95 -0
- package/access/controllers/scope-user.controller.js.map +1 -0
- package/access/entities/entities.d.ts +6 -0
- package/access/entities/entities.js +18 -0
- package/access/entities/entities.js.map +1 -0
- package/access/entities/index.d.ts +5 -0
- package/access/entities/index.js +22 -0
- package/access/entities/index.js.map +1 -0
- package/access/entities/scope-access.d.ts +9 -0
- package/access/entities/scope-access.js +58 -0
- package/access/entities/scope-access.js.map +1 -0
- package/access/entities/scope-group-user.d.ts +7 -0
- package/access/entities/scope-group-user.js +47 -0
- package/access/entities/scope-group-user.js.map +1 -0
- package/access/entities/scope-group.d.ts +9 -0
- package/access/entities/scope-group.js +56 -0
- package/access/entities/scope-group.js.map +1 -0
- package/access/entities/scope-key.d.ts +5 -0
- package/access/entities/scope-key.js +35 -0
- package/access/entities/scope-key.js.map +1 -0
- package/access/entities/scope-owner.d.ts +7 -0
- package/access/entities/scope-owner.js +45 -0
- package/access/entities/scope-owner.js.map +1 -0
- package/access/env.d.ts +10 -0
- package/access/env.js +10 -0
- package/access/env.js.map +1 -0
- package/access/functions/get-context-id-service.d.ts +1 -0
- package/access/functions/get-context-id-service.js +8 -0
- package/access/functions/get-context-id-service.js.map +1 -0
- package/access/functions/get-is-owner.d.ts +1 -0
- package/access/functions/get-is-owner.js +8 -0
- package/access/functions/get-is-owner.js.map +1 -0
- package/access/functions/get-user-keys.d.ts +2 -0
- package/access/functions/get-user-keys.js +10 -0
- package/access/functions/get-user-keys.js.map +1 -0
- package/access/functions/index.d.ts +3 -0
- package/access/functions/index.js +20 -0
- package/access/functions/index.js.map +1 -0
- package/access/functions/register-scope.d.ts +8 -0
- package/access/functions/register-scope.js +82 -0
- package/access/functions/register-scope.js.map +1 -0
- package/access/index.d.ts +5 -0
- package/access/index.js +22 -0
- package/access/index.js.map +1 -0
- package/access/interfaces/index.d.ts +2 -0
- package/access/interfaces/index.js +19 -0
- package/access/interfaces/index.js.map +1 -0
- package/access/interfaces/scope-service-registry.d.ts +6 -0
- package/access/interfaces/scope-service-registry.js +3 -0
- package/access/interfaces/scope-service-registry.js.map +1 -0
- package/access/interfaces/scope-service.d.ts +12 -0
- package/access/interfaces/scope-service.js +3 -0
- package/access/interfaces/scope-service.js.map +1 -0
- package/access/models/scope-context.d.ts +4 -0
- package/access/models/scope-context.js +27 -0
- package/access/models/scope-context.js.map +1 -0
- package/access/models/scope-keys-update.d.ts +7 -0
- package/access/models/scope-keys-update.js +38 -0
- package/access/models/scope-keys-update.js.map +1 -0
- package/access/models/scope-owner.d.ts +5 -0
- package/access/models/scope-owner.js +32 -0
- package/access/models/scope-owner.js.map +1 -0
- package/access/models/scope-user-mapped.d.ts +8 -0
- package/access/models/scope-user-mapped.js +42 -0
- package/access/models/scope-user-mapped.js.map +1 -0
- package/access/models/scope-user.d.ts +9 -0
- package/access/models/scope-user.js +49 -0
- package/access/models/scope-user.js.map +1 -0
- package/access/queries/scope-group-user.query.d.ts +1 -0
- package/access/queries/scope-group-user.query.js +26 -0
- package/access/queries/scope-group-user.query.js.map +1 -0
- package/access/queries/scope-group.query.d.ts +1 -0
- package/access/queries/scope-group.query.js +12 -0
- package/access/queries/scope-group.query.js.map +1 -0
- package/access/services/index.d.ts +6 -0
- package/access/services/index.js +23 -0
- package/access/services/index.js.map +1 -0
- package/access/services/scope-access.service.d.ts +11 -0
- package/access/services/scope-access.service.js +87 -0
- package/access/services/scope-access.service.js.map +1 -0
- package/access/services/scope-group-user.service.d.ts +8 -0
- package/access/services/scope-group-user.service.js +49 -0
- package/access/services/scope-group-user.service.js.map +1 -0
- package/access/services/scope-group.service.d.ts +7 -0
- package/access/services/scope-group.service.js +38 -0
- package/access/services/scope-group.service.js.map +1 -0
- package/access/services/scope-key.service.d.ts +9 -0
- package/access/services/scope-key.service.js +52 -0
- package/access/services/scope-key.service.js.map +1 -0
- package/access/services/scope-owner.service.d.ts +7 -0
- package/access/services/scope-owner.service.js +35 -0
- package/access/services/scope-owner.service.js.map +1 -0
- package/access/services/scope-service.d.ts +10 -0
- package/access/services/scope-service.js +52 -0
- package/access/services/scope-service.js.map +1 -0
- package/command/functions/execute-post.js +5 -7
- package/command/functions/execute-post.js.map +1 -1
- package/command/services/post-action-builder.js +2 -0
- package/command/services/post-action-builder.js.map +1 -1
- package/command/services/remove-action-builder.js +2 -0
- package/command/services/remove-action-builder.js.map +1 -1
- package/common/entities/base-entity.js +2 -0
- package/common/entities/base-entity.js.map +1 -1
- package/common/interfaces/enum/object-type.d.ts +2 -1
- package/common/interfaces/enum/object-type.js +1 -0
- package/common/interfaces/enum/object-type.js.map +1 -1
- package/controllers/constants/controller-transaction.d.ts +2 -0
- package/controllers/constants/controller-transaction.js +6 -0
- package/controllers/constants/controller-transaction.js.map +1 -0
- package/controllers/controller.controller.d.ts +1 -1
- package/controllers/controller.controller.js +4 -4
- package/controllers/controller.controller.js.map +1 -1
- package/controllers/decorators/controller.decorator.js +8 -0
- package/controllers/decorators/controller.decorator.js.map +1 -1
- package/controllers/decorators/index.d.ts +1 -0
- package/controllers/decorators/index.js +1 -0
- package/controllers/decorators/index.js.map +1 -1
- package/controllers/decorators/transaction.decorator.d.ts +7 -0
- package/controllers/decorators/transaction.decorator.js +23 -0
- package/controllers/decorators/transaction.decorator.js.map +1 -0
- package/controllers/interfaces/controller-object.d.ts +1 -0
- package/controllers/interfaces/controller-options.d.ts +1 -0
- package/controllers/interfaces/controller-property.d.ts +3 -0
- package/controllers/services/default-action-builder.js +32 -0
- package/controllers/services/default-action-builder.js.map +1 -1
- package/core/core.controller.d.ts +1 -0
- package/core/core.controller.js +9 -1
- package/core/core.controller.js.map +1 -1
- package/core/functions/create-interceptor.js +2 -2
- package/core/functions/create-interceptor.js.map +1 -1
- package/core/functions/resolve-action-transactional.d.ts +3 -0
- package/core/functions/resolve-action-transactional.js +10 -0
- package/core/functions/resolve-action-transactional.js.map +1 -0
- package/core/interfaces/action-def.d.ts +2 -5
- package/core/interfaces/action-handle.d.ts +5 -0
- package/core/interfaces/action-handle.js +3 -0
- package/core/interfaces/action-handle.js.map +1 -0
- package/core/interfaces/core-options.d.ts +1 -0
- package/core/interfaces/interceptor.d.ts +1 -1
- package/core/interfaces/object.d.ts +3 -2
- package/core/interfaces/request-context.d.ts +2 -2
- package/core/services/request-executor.d.ts +8 -0
- package/core/services/request-executor.js +88 -0
- package/core/services/request-executor.js.map +1 -1
- package/core/services/request-router.js +3 -3
- package/core/services/request-router.js.map +1 -1
- package/database/decorators/entity.decorator.d.ts +3 -1
- package/database/decorators/entity.decorator.js +14 -5
- package/database/decorators/entity.decorator.js.map +1 -1
- package/database/decorators/external-column.decorator.d.ts +17 -0
- package/database/decorators/external-column.decorator.js +30 -0
- package/database/decorators/external-column.decorator.js.map +1 -0
- package/database/decorators/index.d.ts +1 -0
- package/database/decorators/index.js +1 -0
- package/database/decorators/index.js.map +1 -1
- package/database/decorators/relation.decorator.d.ts +2 -2
- package/database/decorators/relation.decorator.js.map +1 -1
- package/database/extensions/select-query-builder.d.ts +1 -5
- package/database/extensions/select-query-builder.js.map +1 -1
- package/database/functions/find-relation.d.ts +2 -1
- package/database/functions/find-relation.js +3 -3
- package/database/functions/find-relation.js.map +1 -1
- package/database/functions/generate-entity-id.d.ts +2 -0
- package/database/functions/{generate-id.js → generate-entity-id.js} +3 -3
- package/database/functions/generate-entity-id.js.map +1 -0
- package/database/functions/get-relations.d.ts +1 -1
- package/database/functions/use-protector.js +1 -1
- package/database/functions/use-protector.js.map +1 -1
- package/database/functions/use-transaction.d.ts +1 -0
- package/database/functions/use-transaction.js +2 -6
- package/database/functions/use-transaction.js.map +1 -1
- package/database/interfaces/entity-dto-object.d.ts +7 -0
- package/database/interfaces/entity-dto-object.js +3 -0
- package/database/interfaces/entity-dto-object.js.map +1 -0
- package/database/interfaces/entity-property.d.ts +12 -0
- package/database/interfaces/path.d.ts +6 -2
- package/database/interfaces/virtual-select.d.ts +4 -0
- package/database/interfaces/virtual-select.js +3 -0
- package/database/interfaces/virtual-select.js.map +1 -0
- package/database/services/protect-builder.d.ts +3 -2
- package/database/services/protect-builder.js +2 -2
- package/database/services/protect-builder.js.map +1 -1
- package/database/services/repository.service.d.ts +1 -1
- package/database/services/repository.service.js +3 -6
- package/database/services/repository.service.js.map +1 -1
- package/docs/queries/docs-controller-action.query.d.ts +1 -1
- package/docs/queries/docs-controller.query.d.ts +1 -1
- package/docs/queries/docs-model.query.d.ts +1 -1
- package/docs/queries/docs-model.query.js +1 -1
- package/docs/queries/docs-model.query.js.map +1 -1
- package/docs/queries/docs-version.query.d.ts +1 -1
- package/docs/services/docs-version.service.js +6 -3
- package/docs/services/docs-version.service.js.map +1 -1
- package/forms/queries/form.query.d.ts +1 -1
- package/forms/queries/property.query.d.ts +1 -1
- package/global.js +1 -1
- package/global.js.map +1 -1
- package/http/http.controller.d.ts +2 -0
- package/http/http.controller.js +3 -2
- package/http/http.controller.js.map +1 -1
- package/index.d.ts +3 -1
- package/index.js +2 -6
- package/index.js.map +1 -1
- package/jobs/jobs.controller.js +2 -0
- package/jobs/jobs.controller.js.map +1 -1
- package/package.json +7 -6
- package/query/functions/add-join.js +8 -5
- package/query/functions/add-join.js.map +1 -1
- package/query/functions/collect-external-column-owners.d.ts +10 -0
- package/query/functions/collect-external-column-owners.js +100 -0
- package/query/functions/collect-external-column-owners.js.map +1 -0
- package/query/functions/create-query-builder.js +47 -18
- package/query/functions/create-query-builder.js.map +1 -1
- package/query/functions/create-query-cache-hash.d.ts +16 -0
- package/query/functions/create-query-cache-hash.js +70 -0
- package/query/functions/create-query-cache-hash.js.map +1 -0
- package/query/functions/create-query.d.ts +8 -3
- package/query/functions/create-query.js +12 -9
- package/query/functions/create-query.js.map +1 -1
- package/query/functions/describe-query-filter.js +3 -2
- package/query/functions/describe-query-filter.js.map +1 -1
- package/query/functions/execute-query.js +55 -9
- package/query/functions/execute-query.js.map +1 -1
- package/query/functions/expand-select-with-external-dependencies.d.ts +9 -0
- package/query/functions/expand-select-with-external-dependencies.js +34 -0
- package/query/functions/expand-select-with-external-dependencies.js.map +1 -0
- package/query/functions/external-column-owner-path.d.ts +5 -0
- package/query/functions/external-column-owner-path.js +18 -0
- package/query/functions/external-column-owner-path.js.map +1 -0
- package/query/functions/get-entity-object-class.d.ts +2 -0
- package/query/functions/get-entity-object-class.js +12 -0
- package/query/functions/get-entity-object-class.js.map +1 -0
- package/query/functions/get-native-select.js +3 -0
- package/query/functions/get-native-select.js.map +1 -1
- package/query/functions/load-properties.d.ts +20 -2
- package/query/functions/load-properties.js +119 -37
- package/query/functions/load-properties.js.map +1 -1
- package/query/functions/map-query-property-to-column-name.js +1 -1
- package/query/functions/map-query-property-to-column-name.js.map +1 -1
- package/query/functions/query-structure-cache.d.ts +24 -0
- package/query/functions/query-structure-cache.js +66 -0
- package/query/functions/query-structure-cache.js.map +1 -0
- package/query/interfaces/query.d.ts +44 -1
- package/query/services/query-action-builder.d.ts +4 -1
- package/query/services/query-action-builder.js +32 -12
- package/query/services/query-action-builder.js.map +1 -1
- package/security/env.js.map +1 -1
- package/security/requests/security.request.js +1 -1
- package/security/requests/security.request.js.map +1 -1
- package/tasks/decorators/task.decorator.js +3 -2
- package/tasks/decorators/task.decorator.js.map +1 -1
- package/tasks/functions/{create-task-message-receptor.d.ts → create-task-message-post.d.ts} +1 -1
- package/tasks/functions/{create-task-message-receptor.js → create-task-message-post.js} +8 -3
- package/tasks/functions/create-task-message-post.js.map +1 -0
- package/tasks/interfaces/task-object.d.ts +2 -2
- package/tasks/interfaces/task-post-intercept.d.ts +1 -8
- package/tasks/interfaces/task-runner.d.ts +2 -1
- package/tasks/interfaces/task-settings.d.ts +2 -0
- package/tasks/services/task-runner.service.js +5 -3
- package/tasks/services/task-runner.service.js.map +1 -1
- package/translations/controllers/translation.controller.js +12 -9
- package/translations/controllers/translation.controller.js.map +1 -1
- package/translations/functions/create-translation-values.js +2 -5
- package/translations/functions/create-translation-values.js.map +1 -1
- package/translations/migrations/1723760669185-CreateTranslationTables.js +3 -3
- package/translations/migrations/1723760669185-CreateTranslationTables.js.map +1 -1
- package/translations/queries/translation-config.query.d.ts +1 -1
- package/translations/queries/translation-values.query.d.ts +1 -1
- package/translations/queries/translation-values.query.js +1 -1
- package/translations/queries/translation-values.query.js.map +1 -1
- package/translations/translations.controller.d.ts +1 -1
- package/translations/translations.controller.js +4 -4
- package/translations/translations.controller.js.map +1 -1
- package/database/functions/generate-id.d.ts +0 -2
- package/database/functions/generate-id.js.map +0 -1
- package/tasks/functions/create-task-message-receptor.js.map +0 -1
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCachedNativeSelect = getCachedNativeSelect;
|
|
4
|
+
exports.setCachedNativeSelect = setCachedNativeSelect;
|
|
5
|
+
exports.getCachedJoinPlan = getCachedJoinPlan;
|
|
6
|
+
exports.setCachedJoinPlan = setCachedJoinPlan;
|
|
7
|
+
const MAX_ENTRIES = 500;
|
|
8
|
+
const cache = new Map();
|
|
9
|
+
const keyOrder = [];
|
|
10
|
+
const joinPlanCache = new Map();
|
|
11
|
+
const joinPlanKeyOrder = [];
|
|
12
|
+
function evictOne() {
|
|
13
|
+
const oldest = keyOrder.shift();
|
|
14
|
+
if (oldest != null)
|
|
15
|
+
cache.delete(oldest);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Returns cached native select (asArry, asMap) for the given structure hash, or undefined.
|
|
19
|
+
* Caller receives copies so cache entries are never mutated.
|
|
20
|
+
*/
|
|
21
|
+
function getCachedNativeSelect(structureHash) {
|
|
22
|
+
const entry = cache.get(structureHash);
|
|
23
|
+
if (!entry)
|
|
24
|
+
return undefined;
|
|
25
|
+
return {
|
|
26
|
+
asArry: [...entry.asArry],
|
|
27
|
+
asMap: new Map(entry.asMap),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Stores native select result for the given structure hash.
|
|
32
|
+
* Evicts oldest entry when at MAX_ENTRIES (LRU).
|
|
33
|
+
*/
|
|
34
|
+
function setCachedNativeSelect(structureHash, asArry, asMap) {
|
|
35
|
+
if (cache.has(structureHash))
|
|
36
|
+
return;
|
|
37
|
+
if (keyOrder.length >= MAX_ENTRIES)
|
|
38
|
+
evictOne();
|
|
39
|
+
keyOrder.push(structureHash);
|
|
40
|
+
cache.set(structureHash, { asArry, asMap });
|
|
41
|
+
}
|
|
42
|
+
function evictOneJoinPlan() {
|
|
43
|
+
const oldest = joinPlanKeyOrder.shift();
|
|
44
|
+
if (oldest != null)
|
|
45
|
+
joinPlanCache.delete(oldest);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Returns cached join plan (array of QueryPath) for the given join structure hash.
|
|
49
|
+
* Paths are applied to a fresh QB each request – we never cache the QB or EntityManager.
|
|
50
|
+
*/
|
|
51
|
+
function getCachedJoinPlan(joinStructureHash) {
|
|
52
|
+
return joinPlanCache.get(joinStructureHash);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Stores join plan (order of paths to apply) for the given join structure hash.
|
|
56
|
+
* Evicts oldest entry when at MAX_ENTRIES (LRU).
|
|
57
|
+
*/
|
|
58
|
+
function setCachedJoinPlan(joinStructureHash, paths) {
|
|
59
|
+
if (joinPlanCache.has(joinStructureHash))
|
|
60
|
+
return;
|
|
61
|
+
if (joinPlanKeyOrder.length >= MAX_ENTRIES)
|
|
62
|
+
evictOneJoinPlan();
|
|
63
|
+
joinPlanKeyOrder.push(joinStructureHash);
|
|
64
|
+
joinPlanCache.set(joinStructureHash, paths);
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=query-structure-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-structure-cache.js","sourceRoot":"./","sources":["query/functions/query-structure-cache.ts"],"names":[],"mappings":";;AAwBA,sDASC;AAMD,sDASC;AAWD,8CAEC;AAMD,8CAKC;AAtED,MAAM,WAAW,GAAG,GAAG,CAAC;AAOxB,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6B,CAAC;AACnD,MAAM,QAAQ,GAAa,EAAE,CAAC;AAE9B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;AACrD,MAAM,gBAAgB,GAAa,EAAE,CAAC;AAEtC,SAAS,QAAQ;IACd,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;IAChC,IAAI,MAAM,IAAI,IAAI;QAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CAClC,aAAqB;IAErB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO;QACJ,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QACzB,KAAK,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;KAC7B,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CAClC,aAAqB,EACrB,MAAgB,EAChB,KAA0B;IAE1B,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;QAAE,OAAO;IACrC,IAAI,QAAQ,CAAC,MAAM,IAAI,WAAW;QAAE,QAAQ,EAAE,CAAC;IAC/C,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7B,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,gBAAgB;IACtB,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAC;IACxC,IAAI,MAAM,IAAI,IAAI;QAAE,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,iBAAyB;IACxD,OAAO,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,iBAAyB,EAAE,KAAkB;IAC5E,IAAI,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAAE,OAAO;IACjD,IAAI,gBAAgB,CAAC,MAAM,IAAI,WAAW;QAAE,gBAAgB,EAAE,CAAC;IAC/D,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzC,aAAa,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -16,6 +16,33 @@ export type Query<Entity> = {
|
|
|
16
16
|
data?: Entity[];
|
|
17
17
|
page?: boolean;
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* One object graph node that owns ≥1 selected external property (same reference TypeORM returned;
|
|
21
|
+
* mutate in place so `transform` sees the values).
|
|
22
|
+
*/
|
|
23
|
+
export type ExternalColumnOwner = {
|
|
24
|
+
object: Record<string, unknown>;
|
|
25
|
+
/**
|
|
26
|
+
* Declared external column names on `object` (e.g. `person` when select is `user.person.id`).
|
|
27
|
+
* Not the nested leaf (`id`); the anchor property marked with ExternalColumn.
|
|
28
|
+
*/
|
|
29
|
+
properties: string[];
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Passed to {@link ExternalColumnBatchResolver} after `getMany()`, before `transform`.
|
|
33
|
+
* `owners` is deduped by object identity — batch-load once per unique node (e.g. all `InfraClient` rows).
|
|
34
|
+
*/
|
|
35
|
+
export type ExternalColumnResolvePayload<Entity = any> = {
|
|
36
|
+
roots: Entity[];
|
|
37
|
+
externalSelectPaths: string[];
|
|
38
|
+
owners: ExternalColumnOwner[];
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Called only when at least one external column is in the query select.
|
|
42
|
+
* Receives raw root rows from TypeORM and a flat list of owner objects that need those columns filled.
|
|
43
|
+
* Mutate `owners[].object` in place (or return new `roots`); then `transform` runs on `roots`.
|
|
44
|
+
*/
|
|
45
|
+
export type ExternalColumnBatchResolver<Entity = any, ContextData = any> = (payload: ExternalColumnResolvePayload<Entity>, context: IQueryContent<Entity, ContextData>) => Promise<Entity[]>;
|
|
19
46
|
export type IQueryContent<Entity, ContextData = any> = {
|
|
20
47
|
userId?: string;
|
|
21
48
|
nativeSelectAsArry?: string[];
|
|
@@ -41,13 +68,29 @@ export type QueryPath = {
|
|
|
41
68
|
parent?: QueryPath;
|
|
42
69
|
secure?: boolean;
|
|
43
70
|
entityAlias: string;
|
|
44
|
-
|
|
71
|
+
rootOrRelationPath?: string;
|
|
45
72
|
};
|
|
46
73
|
export type QueryProperty = {
|
|
47
74
|
path: QueryPath;
|
|
48
75
|
isUUID?: boolean;
|
|
49
76
|
isArray?: boolean;
|
|
50
77
|
isJson?: boolean;
|
|
78
|
+
/** When true, value is provided by external service; not selected from DB. */
|
|
79
|
+
isExternal?: boolean;
|
|
80
|
+
/** Resolved Injectable class from ExternalColumn(() => Resolver); used by executeQuery. */
|
|
81
|
+
externalResolver?: Instantiable;
|
|
82
|
+
/**
|
|
83
|
+
* Walk from each root row through these relation/embed keys to reach the owner of {@link externalColumnKey}.
|
|
84
|
+
* Empty when the owner is the root row.
|
|
85
|
+
*/
|
|
86
|
+
externalOwnerWalkSegments?: string[];
|
|
87
|
+
/** External property on that owner (object or scalar). */
|
|
88
|
+
externalColumnKey?: string;
|
|
89
|
+
/**
|
|
90
|
+
* Full query paths (e.g. `infraServer.client.clientId`) that must be added to the SQL select when this
|
|
91
|
+
* external path is selected — same entity row, declared via ExternalColumnOptions.selectDependencies.
|
|
92
|
+
*/
|
|
93
|
+
externalDependencyQueryPaths?: string[];
|
|
51
94
|
name: string;
|
|
52
95
|
type: PropertyType;
|
|
53
96
|
fullPath: string;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { ObjectNote, PropertyNote } from "@rockster/class-memory";
|
|
2
2
|
import { IControllerObject, IControllerProperty } from "../../controllers/interfaces";
|
|
3
|
-
import { ExecuteInterceptorHandle, IActionDocs, PendingAction, IRequestContext } from "../../core";
|
|
4
3
|
import { ExecutorData } from "@rockster/class-injector/interfaces";
|
|
5
4
|
import { Dictionary } from "@rockster/common";
|
|
5
|
+
import { ExecuteInterceptorHandle } from "../../core/interfaces/interceptor";
|
|
6
|
+
import { IActionDocs } from "../../core/interfaces/action-docs";
|
|
7
|
+
import { PendingAction } from "../../core/interfaces/pending-action";
|
|
8
|
+
import { IRequestContext } from "../../core/interfaces/request-context";
|
|
6
9
|
export declare class QueryActionBuilder {
|
|
7
10
|
protected beforeInterceptors: Dictionary<ExecuteInterceptorHandle>;
|
|
8
11
|
protected afterInterceptors: Dictionary<ExecuteInterceptorHandle>;
|
|
@@ -9,13 +9,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.QueryActionBuilder = void 0;
|
|
10
10
|
const class_injector_1 = require("@rockster/class-injector");
|
|
11
11
|
const interfaces_1 = require("../../controllers/interfaces");
|
|
12
|
-
const core_1 = require("../../core");
|
|
13
12
|
const class_pipe_1 = require("@rockster/class-pipe");
|
|
13
|
+
const common_1 = require("@rockster/common");
|
|
14
14
|
const constants_1 = require("../constants");
|
|
15
|
+
const interceptor_1 = require("../../core/interfaces/interceptor");
|
|
15
16
|
const constants_2 = require("../../controllers/constants");
|
|
16
17
|
const describe_query_filter_1 = require("../functions/describe-query-filter");
|
|
17
18
|
const web_socket_1 = require("../../web-socket");
|
|
18
19
|
const docs_1 = require("@rockster/common/docs");
|
|
20
|
+
const get_action_path_1 = require("../../core/functions/get-action-path");
|
|
21
|
+
const create_interceptor_1 = require("../../core/functions/create-interceptor");
|
|
22
|
+
const create_action_1 = require("../../core/functions/create-action");
|
|
23
|
+
const get_user_keys_1 = require("../../access/functions/get-user-keys");
|
|
24
|
+
const get_is_owner_1 = require("../../access/functions/get-is-owner");
|
|
25
|
+
const resolve_action_transactional_1 = require("../../core/functions/resolve-action-transactional");
|
|
19
26
|
let QueryActionBuilder = class QueryActionBuilder {
|
|
20
27
|
constructor() {
|
|
21
28
|
this.beforeInterceptors = {};
|
|
@@ -33,28 +40,26 @@ let QueryActionBuilder = class QueryActionBuilder {
|
|
|
33
40
|
for (const property of properties) {
|
|
34
41
|
const isSecure = !property.public;
|
|
35
42
|
const name = property.name || property.propertyKey;
|
|
36
|
-
const path = (0,
|
|
43
|
+
const path = (0, get_action_path_1.getActionPath)(object.alias, name);
|
|
37
44
|
this.beforeInterceptors[path] =
|
|
38
|
-
(0,
|
|
45
|
+
(0, create_interceptor_1.createExecuteInterceptors)([interceptor_1.commonInterceptor.onBeforeExecute], object, property);
|
|
39
46
|
this.afterInterceptors[path] =
|
|
40
|
-
(0,
|
|
47
|
+
(0, create_interceptor_1.createExecuteInterceptors)([interceptor_1.commonInterceptor.onAfterExecute], object, property);
|
|
41
48
|
this.beforeValidationInterceptors[path] =
|
|
42
|
-
(0,
|
|
43
|
-
(0,
|
|
49
|
+
(0, create_interceptor_1.createExecuteInterceptors)([interfaces_1.requestInterceptor.onBeforeValidation], object, property);
|
|
50
|
+
(0, create_action_1.createAction)({
|
|
44
51
|
objectClass: object.objectClass,
|
|
45
52
|
path: path,
|
|
46
53
|
name: name,
|
|
47
54
|
secure: isSecure,
|
|
55
|
+
transactional: (0, resolve_action_transactional_1.resolveActionTransactional)(object, property),
|
|
48
56
|
execute: async (action, context) => {
|
|
49
|
-
return this
|
|
50
|
-
.execute(action, context, data.executors[name], property);
|
|
57
|
+
return this.execute(action, context, data.executors[name], property);
|
|
51
58
|
},
|
|
52
59
|
onBefore: async (action, context) => {
|
|
53
|
-
return this
|
|
54
|
-
.onBefore(action, context, property);
|
|
60
|
+
return this.onBefore(action, context, property);
|
|
55
61
|
},
|
|
56
|
-
docs: this
|
|
57
|
-
.createDocs(object, property, name, path, isSecure)
|
|
62
|
+
docs: this.createDocs(object, property, name, path, isSecure)
|
|
58
63
|
});
|
|
59
64
|
}
|
|
60
65
|
}
|
|
@@ -81,6 +86,21 @@ let QueryActionBuilder = class QueryActionBuilder {
|
|
|
81
86
|
};
|
|
82
87
|
}
|
|
83
88
|
async onBefore(pending, context, property) {
|
|
89
|
+
if (property.keys?.has('query')) {
|
|
90
|
+
const userId = context.session.userId;
|
|
91
|
+
const key = property.keys.get('query');
|
|
92
|
+
const contextId = key.withId ? null : null;
|
|
93
|
+
const isOwner = await (0, get_is_owner_1.getIsOwner)(key.contextName, userId, contextId);
|
|
94
|
+
if (!isOwner) {
|
|
95
|
+
const userKeys = await (0, get_user_keys_1.getUserKeys)(userId, contextId);
|
|
96
|
+
if (!userKeys.includes(key.name)) {
|
|
97
|
+
throw new common_1.ForbiddenError({
|
|
98
|
+
message: `Query require permissions to execute`,
|
|
99
|
+
requirements: [key.name]
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
84
104
|
if (property.data) {
|
|
85
105
|
const payload = context.request[pending.requestRef];
|
|
86
106
|
await this.beforeValidationInterceptors[pending.path]({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-action-builder.js","sourceRoot":"./","sources":["query/services/query-action-builder.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6DAGkC;AAKlC,6DAIsC;
|
|
1
|
+
{"version":3,"file":"query-action-builder.js","sourceRoot":"./","sources":["query/services/query-action-builder.ts"],"names":[],"mappings":"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"}
|
package/security/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"./","sources":["security/env.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"./","sources":["security/env.ts"],"names":[],"mappings":";;;AAGa,QAAA,GAAG,GAAG;IAChB,QAAQ,EAAE,IAAuB;IACjC,MAAM,EAAE,IAA2B;IACnC,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAyB;CACpD,CAAC"}
|
|
@@ -13,13 +13,13 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.SecurityRequest = void 0;
|
|
16
|
-
const controllers_1 = require("../../controllers");
|
|
17
16
|
const auth_context_1 = require("../models/auth-context");
|
|
18
17
|
const auth_context_data_1 = require("../models/auth-context-data");
|
|
19
18
|
const get_user_permissions_payload_1 = require("../models/get-user-permissions-payload");
|
|
20
19
|
const get_user_permissions_response_1 = require("../models/get-user-permissions-response");
|
|
21
20
|
const set_user_permissions_payload_1 = require("../models/set-user-permissions-payload");
|
|
22
21
|
const authorization_service_1 = require("../services/authorization.service");
|
|
22
|
+
const controllers_1 = require("../../controllers");
|
|
23
23
|
let SecurityRequest = class SecurityRequest {
|
|
24
24
|
constructor(authorizationService) {
|
|
25
25
|
this.authorizationService = authorizationService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.request.js","sourceRoot":"./","sources":["security/requests/security.request.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"security.request.js","sourceRoot":"./","sources":["security/requests/security.request.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,yDAAqD;AACrD,mEAA8D;AAC9D,yFAAmF;AACnF,2FAAqF;AACrF,yFAAmF;AACnF,6EAAyE;AACzE,mDAK2B;AAGpB,IAAM,eAAe,GAArB,MAAM,eAAe;IAEzB,YACsB,oBAA0C;QAA1C,yBAAoB,GAApB,oBAAoB,CAAsB;IAC7D,CAAC;IAKE,AAAN,KAAK,CAAC,oBAAoB,CACL,OAAwB,EACzB,OAAwB;QAEzC,OAAO,IAAI;aACP,oBAAoB;aACpB,oBAAoB,CAClB,OAAO,EACP,OAAO,CAAC,OAAO,CAAC,MAAM,EACtB,OAAO,CAAC,aAAa,CACvB,CAAC;IACR,CAAC;IAGK,AAAN,KAAK,CAAC,kBAAkB,CACH,OAAwB,EACzB,OAAkC;QAEnD,OAAO,IAAI;aACP,oBAAoB;aACpB,qBAAqB,CACnB,OAAO,EACP,OAAO,CAAC,OAAO,CAAC,MAAM,EACtB,OAAO,CAAC,aAAa,CACvB,CAAC;IACR,CAAC;IAKK,AAAN,KAAK,CAAC,kBAAkB,CACH,OAAwB,EACzB,OAAkC;QAEnD,OAAO,IAAI;aACP,oBAAoB;aACpB,kBAAkB,CAChB,OAAO,EACP,OAAO,CAAC,OAAO,CAAC,MAAM,EACtB,OAAO,CAAC,aAAa,CACvB,CAAC;IACR,CAAC;CACH,CAAA;AAnDY,0CAAe;AASnB;IAHL,IAAA,oBAAM,EAAC;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,0BAAW;KAC7B,CAAC;IAEE,WAAA,IAAA,4BAAc,GAAE,CAAA;IAChB,WAAA,IAAA,2BAAa,GAAE,CAAA;;6CAAU,mCAAe;;2DAS3C;AAGK;IADL,IAAA,oBAAM,GAAE;IAEL,WAAA,IAAA,4BAAc,GAAE,CAAA;IAChB,WAAA,IAAA,2BAAa,GAAE,CAAA;;6CAAU,wDAAyB;;yDASrD;AAKK;IAHL,IAAA,oBAAM,EAAC;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,0DAA0B;KAC5C,CAAC;IAEE,WAAA,IAAA,4BAAc,GAAE,CAAA;IAChB,WAAA,IAAA,2BAAa,GAAE,CAAA;;6CAAU,wDAAyB;;yDASrD;0BAlDS,eAAe;IAD3B,IAAA,wBAAU,GAAE;qCAIkC,4CAAoB;GAHtD,eAAe,CAmD3B"}
|
|
@@ -5,7 +5,7 @@ const class_injector_1 = require("@rockster/class-injector");
|
|
|
5
5
|
const object_type_1 = require("../../common/interfaces/enum/object-type");
|
|
6
6
|
const create_task_message_find_1 = require("../functions/create-task-message-find");
|
|
7
7
|
const create_task_message_model_1 = require("../functions/create-task-message-model");
|
|
8
|
-
const
|
|
8
|
+
const create_task_message_post_1 = require("../functions/create-task-message-post");
|
|
9
9
|
const create_task_message_schema_1 = require("../functions/create-task-message-schema");
|
|
10
10
|
const create_task_naming_1 = require("../functions/create-task-naming");
|
|
11
11
|
const create_task_message_retry_1 = require("../functions/create-task-message-retry");
|
|
@@ -23,6 +23,7 @@ function Task(settings) {
|
|
|
23
23
|
};
|
|
24
24
|
let nextPartitionId = 0;
|
|
25
25
|
const object = core.storage.createObject(target);
|
|
26
|
+
object.postInterceptors = settings.postInterceptors;
|
|
26
27
|
object.naming = (0, create_task_naming_1.createTaskNaming)(object.objectKey);
|
|
27
28
|
object.type = object_type_1.ObjectType.task;
|
|
28
29
|
object.settings = mergedSettings;
|
|
@@ -40,7 +41,7 @@ function Task(settings) {
|
|
|
40
41
|
return nextPartitionId;
|
|
41
42
|
}
|
|
42
43
|
};
|
|
43
|
-
(0,
|
|
44
|
+
(0, create_task_message_post_1.createTaskMessagePost)(object);
|
|
44
45
|
(0, create_task_message_query_1.createTaskMessageQuery)(object);
|
|
45
46
|
(0, create_task_message_find_1.createTaskMessageFind)(object);
|
|
46
47
|
(0, create_task_message_retry_1.createTaskMessageRetry)(object);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.decorator.js","sourceRoot":"./","sources":["tasks/decorators/task.decorator.ts"],"names":[],"mappings":";;AAaA,
|
|
1
|
+
{"version":3,"file":"task.decorator.js","sourceRoot":"./","sources":["tasks/decorators/task.decorator.ts"],"names":[],"mappings":";;AAaA,oBAuCC;AApDD,6DAA0D;AAC1D,0EAAsE;AACtE,oFAA8E;AAC9E,sFAAgF;AAChF,oFAA8E;AAC9E,wFAAkF;AAClF,wEAAmE;AAGnE,sFAAgF;AAChF,sFAAgF;AAChF,gGAA0F;AAE1F,SAAgB,IAAI,CAAI,QAA0B;IAE/C,OAAO,CAAC,MAAM,EAAE,EAAE;QAEf,MAAM,cAAc,GAAG;YACpB,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,GAAG;YAClB,GAAG,QAAQ;SACO,CAAC;QAEtB,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAc,MAAM,CAAC,CAAC;QAC9D,MAAM,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QACpD,MAAM,CAAC,MAAM,GAAG,IAAA,qCAAgB,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,GAAG,wBAAU,CAAC,IAAI,CAAC;QAC9B,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC;QACjC,MAAM,CAAC,OAAO,GAAI,QAAQ,CAAC,KAAK,CAAC;QACjC,MAAM,CAAC,aAAa,GAAG,IAAA,oDAAuB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,CAAC,YAAY,GAAG,IAAA,kDAAsB,EAAC,MAAM,CAAC,CAAC;QACrD,MAAM,CAAC,iBAAiB,GAAG,IAAA,4DAA2B,EAAC,MAAM,CAAC,CAAC;QAC/D,MAAM,CAAC,eAAe,GAAG,GAAG,EAAE;YAC3B,eAAe,EAAE,CAAC;YAClB,IAAI,eAAe,GAAG,cAAc,CAAC,UAAU,EAAE,CAAC;gBAC/C,eAAe,GAAG,CAAC,CAAC;gBACpB,OAAO,CAAC,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACL,OAAO,eAAe,CAAC;YAC1B,CAAC;QACJ,CAAC,CAAC;QAEF,IAAA,gDAAqB,EAAC,MAAM,CAAC,CAAC;QAC9B,IAAA,kDAAsB,EAAC,MAAM,CAAC,CAAC;QAC/B,IAAA,gDAAqB,EAAC,MAAM,CAAC,CAAC;QAC9B,IAAA,kDAAsB,EAAC,MAAM,CAAC,CAAC;QAC/B,IAAA,+BAAc,EAAC,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ObjectNote } from "@rockster/class-memory";
|
|
2
2
|
import { ITaskObject } from "../interfaces/task-object";
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function createTaskMessagePost(object: ObjectNote<ITaskObject>): void;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.createTaskMessagePost = createTaskMessagePost;
|
|
4
4
|
const action_decorator_1 = require("../../controllers/decorators/actions/action.decorator");
|
|
5
5
|
const controllers_1 = require("../../controllers");
|
|
6
|
-
function
|
|
6
|
+
function createTaskMessagePost(object) {
|
|
7
7
|
const ObjectController = object.MessageController;
|
|
8
8
|
const actionName = object
|
|
9
9
|
.naming
|
|
@@ -14,6 +14,11 @@ function createTaskMessageReceptor(object) {
|
|
|
14
14
|
return this.create(object, actionContent, requestContext);
|
|
15
15
|
};
|
|
16
16
|
Reflect.defineMetadata('design:paramtypes', [Payload, object], ObjectController.prototype, actionName);
|
|
17
|
+
if (object.postInterceptors?.length > 0) {
|
|
18
|
+
object.postInterceptors.forEach((Interceptor) => {
|
|
19
|
+
Interceptor()(ObjectController.prototype, actionName);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
17
22
|
(0, action_decorator_1.Action)({
|
|
18
23
|
public: object.settings.public,
|
|
19
24
|
response: () => object.MessageModel
|
|
@@ -21,4 +26,4 @@ function createTaskMessageReceptor(object) {
|
|
|
21
26
|
(0, controllers_1.ActionContent)()(ObjectController.prototype, actionName, 0);
|
|
22
27
|
(0, controllers_1.RequestContext)()(ObjectController.prototype, actionName, 1);
|
|
23
28
|
}
|
|
24
|
-
//# sourceMappingURL=create-task-message-
|
|
29
|
+
//# sourceMappingURL=create-task-message-post.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-task-message-post.js","sourceRoot":"./","sources":["tasks/functions/create-task-message-post.ts"],"names":[],"mappings":";;AAQA,sDAsCC;AA5CD,4FAA+E;AAC/E,mDAG2B;AAE3B,SAAgB,qBAAqB,CAAC,MAA+B;IAElE,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAClD,MAAM,UAAU,GAAG,MAAM;SACrB,MAAM;SACN,UAAU,CAAC;IACf,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IAEjC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC;QACnC,UAAU,aAAa,EAAE,cAAc;YACpC,OAAO,IAAI,CAAC,MAAM,CACf,MAAM,EACN,aAAa,EACb,cAAc,CAChB,CAAC;QACL,CAAC,CAAC;IAEL,OAAO,CAAC,cAAc,CACnB,mBAAmB,EACnB,CAAC,OAAO,EAAE,MAAM,CAAC,EACjB,gBAAgB,CAAC,SAAS,EAC1B,UAAU,CACZ,CAAC;IAEF,IAAI,MAAM,CAAC,gBAAgB,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;YAC7C,WAAW,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACN,CAAC;IAED,IAAA,yBAAM,EAAC;QACJ,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;QAC9B,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY;KACrC,CAAC,CAAE,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC5C,IAAA,2BAAa,GAAE,CACX,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IAC/C,IAAA,4BAAc,GAAE,CACZ,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { IObject } from "../../core";
|
|
|
4
4
|
import { ITaskSettings } from "./task-settings";
|
|
5
5
|
import { PgTableWithColumns } from "drizzle-orm/pg-core";
|
|
6
6
|
import { ITaskNaming } from "./task-naming";
|
|
7
|
+
import { TaskPostIntercept } from "./task-post-intercept";
|
|
7
8
|
export interface ITaskObject extends IObject {
|
|
8
9
|
type: ObjectType.task;
|
|
9
10
|
settings: ITaskSettings<unknown>;
|
|
@@ -14,6 +15,5 @@ export interface ITaskObject extends IObject {
|
|
|
14
15
|
Query: MethodDecorator;
|
|
15
16
|
naming: ITaskNaming;
|
|
16
17
|
nextPartitionId: () => number;
|
|
17
|
-
|
|
18
|
-
searchIntercept?: boolean;
|
|
18
|
+
postInterceptors?: TaskPostIntercept[];
|
|
19
19
|
}
|
|
@@ -1,8 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export type TaskOnPostArgs<T> = {
|
|
3
|
-
requestContext: IRequestContext;
|
|
4
|
-
messages: T[];
|
|
5
|
-
};
|
|
6
|
-
export interface ITaskPostIntercept<T> {
|
|
7
|
-
onPost(args: TaskOnPostArgs<T>): Promise<void>;
|
|
8
|
-
}
|
|
1
|
+
export type TaskPostIntercept = () => (target: any, propertyKey: string) => void;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GetTypeCallback } from "@rockster/common";
|
|
2
|
+
import { TaskPostIntercept } from "./task-post-intercept";
|
|
2
3
|
export interface ITaskSettings<T> {
|
|
3
4
|
/**Executor for any message */
|
|
4
5
|
input: GetTypeCallback;
|
|
@@ -12,4 +13,5 @@ export interface ITaskSettings<T> {
|
|
|
12
13
|
retentionDays?: number;
|
|
13
14
|
/**limit: 100. Indicates how many messages the runner will recieve to proccess*/
|
|
14
15
|
messagesLimit?: number;
|
|
16
|
+
postInterceptors?: TaskPostIntercept[];
|
|
15
17
|
}
|
|
@@ -55,7 +55,7 @@ let TaskRunnerService = TaskRunnerService_1 = class TaskRunnerService {
|
|
|
55
55
|
await task
|
|
56
56
|
.runner
|
|
57
57
|
.onRun({
|
|
58
|
-
message: message
|
|
58
|
+
message: message
|
|
59
59
|
});
|
|
60
60
|
await task.repository.update({
|
|
61
61
|
id: message.id,
|
|
@@ -63,7 +63,8 @@ let TaskRunnerService = TaskRunnerService_1 = class TaskRunnerService {
|
|
|
63
63
|
}, {
|
|
64
64
|
status: tasks_1.TaskMessageStatus.completed,
|
|
65
65
|
lastModifiedAt: new Date(),
|
|
66
|
-
runtimeMs: stopwatch.stop()
|
|
66
|
+
runtimeMs: stopwatch.stop(),
|
|
67
|
+
payload: message.payload
|
|
67
68
|
});
|
|
68
69
|
}
|
|
69
70
|
catch (error) {
|
|
@@ -79,7 +80,8 @@ let TaskRunnerService = TaskRunnerService_1 = class TaskRunnerService {
|
|
|
79
80
|
attempts: message.attempts + 1,
|
|
80
81
|
runtimeMs: stopwatch.stop(),
|
|
81
82
|
internalError: taskError,
|
|
82
|
-
error: isExpose ? taskError : null
|
|
83
|
+
error: isExpose ? taskError : null,
|
|
84
|
+
payload: message.payload
|
|
83
85
|
});
|
|
84
86
|
}
|
|
85
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-runner.service.js","sourceRoot":"./","sources":["tasks/services/task-runner.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAGA,kFAA4E;AAE5E,4EAAwE;AACxE,kDAIgC;AAChC,6DAGkC;AAU3B,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAM3B,WAAW;QACR,mBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC;IACjC,CAAC;IAED;QANA,UAAK,GAAG,EAAkB,CAAC;QAOxB,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAA+B;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAA,+BAAc,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,IAAA,8BAAa,EAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACb,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,UAAU;SACxB,CAAC,CAAC;IACN,CAAC;IAES,KAAK,CAAC,eAAe;QAC5B,IAAI,CAAC;YACF,IAAI,mBAAiB,CAAC,OAAO;gBAAE,OAAO;YACtC,mBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,IAAA,8CAAoB,EAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtE,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAkC,CAAC;gBAC1F,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACxC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CACnD,CAAC;YACL,CAAC;YACD,mBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACd,mBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;QACrC,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,WAAW,CACxB,IAAgB,EAChB,OAAyB;QAEzB,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC;QAE7B,IAAI,CAAC;YACF,SAAS,CAAC,KAAK,EAAE,CAAC;YAElB,MAAM,IAAI;iBACN,MAAM;iBACN,KAAK,CAAC;gBACJ,OAAO,EAAE,OAAO
|
|
1
|
+
{"version":3,"file":"task-runner.service.js","sourceRoot":"./","sources":["tasks/services/task-runner.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,8 +23,11 @@ const get_values_request_1 = require("../models/get-values.request");
|
|
|
23
23
|
const get_values_response_1 = require("../models/get-values.response");
|
|
24
24
|
const translations_service_1 = require("../services/translations.service");
|
|
25
25
|
const translation_values_entity_1 = require("../entities/translation-values.entity");
|
|
26
|
-
const
|
|
27
|
-
const
|
|
26
|
+
const controller_decorator_1 = require("../../controllers/decorators/controller.decorator");
|
|
27
|
+
const post_action_decorator_1 = require("../../command/decorators/post-action.decorator");
|
|
28
|
+
const post_content_decorator_1 = require("../../command/decorators/post-content.decorator");
|
|
29
|
+
const action_content_decorator_1 = require("../../controllers/decorators/actions/action-content.decorator");
|
|
30
|
+
const action_decorator_1 = require("../../controllers/decorators/actions/action.decorator");
|
|
28
31
|
let TranslationController = class TranslationController {
|
|
29
32
|
constructor(translationsService) {
|
|
30
33
|
this.translationsService = translationsService;
|
|
@@ -52,19 +55,19 @@ let TranslationController = class TranslationController {
|
|
|
52
55
|
};
|
|
53
56
|
exports.TranslationController = TranslationController;
|
|
54
57
|
__decorate([
|
|
55
|
-
(0,
|
|
58
|
+
(0, post_action_decorator_1.PostAction)({
|
|
56
59
|
type: () => translation_config_entity_1.TranslationConfig
|
|
57
60
|
}),
|
|
58
|
-
__param(0, (0,
|
|
61
|
+
__param(0, (0, post_content_decorator_1.PostContent)()),
|
|
59
62
|
__metadata("design:type", Function),
|
|
60
63
|
__metadata("design:paramtypes", [Object]),
|
|
61
64
|
__metadata("design:returntype", Promise)
|
|
62
65
|
], TranslationController.prototype, "postConfig", null);
|
|
63
66
|
__decorate([
|
|
64
|
-
(0,
|
|
67
|
+
(0, post_action_decorator_1.PostAction)({
|
|
65
68
|
type: () => translation_values_entity_1.TranslationValues
|
|
66
69
|
}),
|
|
67
|
-
__param(0, (0,
|
|
70
|
+
__param(0, (0, post_content_decorator_1.PostContent)()),
|
|
68
71
|
__metadata("design:type", Function),
|
|
69
72
|
__metadata("design:paramtypes", [Object]),
|
|
70
73
|
__metadata("design:returntype", Promise)
|
|
@@ -84,17 +87,17 @@ __decorate([
|
|
|
84
87
|
__metadata("design:returntype", Promise)
|
|
85
88
|
], TranslationController.prototype, "queryValues", null);
|
|
86
89
|
__decorate([
|
|
87
|
-
(0,
|
|
90
|
+
(0, action_decorator_1.Action)({
|
|
88
91
|
response: () => get_values_response_1.GetValuesResponse,
|
|
89
92
|
public: true
|
|
90
93
|
}),
|
|
91
|
-
__param(0, (0,
|
|
94
|
+
__param(0, (0, action_content_decorator_1.ActionContent)()),
|
|
92
95
|
__metadata("design:type", Function),
|
|
93
96
|
__metadata("design:paramtypes", [get_values_request_1.GetValuesRequest]),
|
|
94
97
|
__metadata("design:returntype", Promise)
|
|
95
98
|
], TranslationController.prototype, "getValues", null);
|
|
96
99
|
exports.TranslationController = TranslationController = __decorate([
|
|
97
|
-
(0,
|
|
100
|
+
(0, controller_decorator_1.Controller)(),
|
|
98
101
|
__metadata("design:paramtypes", [translations_service_1.TranslationsService])
|
|
99
102
|
], TranslationController);
|
|
100
103
|
//# sourceMappingURL=translation.controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translation.controller.js","sourceRoot":"./","sources":["translations/controllers/translation.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,qFAA0E;AAC1E,uEAAmE;
|
|
1
|
+
{"version":3,"file":"translation.controller.js","sourceRoot":"./","sources":["translations/controllers/translation.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,qFAA0E;AAC1E,uEAAmE;AACnE,kFAA6E;AAE7E,uDAAsD;AACtD,kFAA6E;AAC7E,uEAAmE;AACnE,qEAAgE;AAChE,uEAAkE;AAClE,2EAAuE;AAEvE,qFAA0E;AAC1E,4FAA+E;AAC/E,0FAA4E;AAC5E,4FAA8E;AAC9E,4GAA8F;AAC9F,4FAA+E;AAGxE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAE/B,YACsB,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IAC3D,CAAC;IAKE,AAAN,KAAK,CAAC,UAAU,CACE,OAAwC;QAEvD,OAAO,IAAA,0BAAW,EAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAKK,AAAN,KAAK,CAAC,UAAU,CACE,OAAyC;QAExD,OAAO,IAAA,0BAAW,EAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAGK,AAAN,KAAK,CAAC,WAAW,CACE,OAAyC;QAEzD,OAAO,IAAA,4BAAY,EAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;IAGK,AAAN,KAAK,CAAC,WAAW,CACE,OAAyC;QAEzD,OAAO,IAAA,4BAAY,EAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;IAMK,AAAN,KAAK,CAAC,SAAS,CACK,OAAyB;QAE1C,MAAM,MAAM,GAAG,MAAM,IAAI;aACrB,mBAAmB;aACnB,SAAS,CACP,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,MAAM,CAChB,CAAC;QAEL,OAAO;YACJ,MAAM,EAAE,MAAM;SACK,CAAC;IAC1B,CAAC;CACH,CAAA;AAxDY,sDAAqB;AASzB;IAHL,IAAA,kCAAU,EAAC;QACT,IAAI,EAAE,GAAG,EAAE,CAAC,6CAAiB;KAC/B,CAAC;IAEE,WAAA,IAAA,oCAAW,GAAE,CAAA;;;;uDAGhB;AAKK;IAHL,IAAA,kCAAU,EAAC;QACT,IAAI,EAAE,GAAG,EAAE,CAAC,6CAAiB;KAC/B,CAAC;IAEE,WAAA,IAAA,oCAAW,GAAE,CAAA;;;;uDAGhB;AAGK;IADL,IAAA,iDAAsB,GAAE;IAErB,WAAA,IAAA,yBAAY,GAAE,CAAA;;;;wDAGjB;AAGK;IADL,IAAA,iDAAsB,GAAE;IAErB,WAAA,IAAA,yBAAY,GAAE,CAAA;;;;wDAGjB;AAMK;IAJL,IAAA,yBAAM,EAAC;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,uCAAiB;QACjC,MAAM,EAAE,IAAI;KACd,CAAC;IAEE,WAAA,IAAA,wCAAa,GAAE,CAAA;;qCAAU,qCAAgB;;sDAY5C;gCAvDS,qBAAqB;IADjC,IAAA,iCAAU,GAAE;qCAIiC,0CAAmB;GAHpD,qBAAqB,CAwDjC"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.createTranslationValues = void 0;
|
|
7
4
|
const transaction_context_1 = require("../../database/contexts/transaction-context");
|
|
8
|
-
const
|
|
5
|
+
const generate_entity_id_1 = require("../../database/functions/generate-entity-id");
|
|
9
6
|
const use_repository_1 = require("../../database/functions/use-repository");
|
|
10
7
|
const translation_values_entity_1 = require("../entities/translation-values.entity");
|
|
11
8
|
const check_can_use_1 = require("./check-can-use");
|
|
@@ -16,7 +13,7 @@ const createTranslationValues = async (values) => {
|
|
|
16
13
|
const repository = entityManager
|
|
17
14
|
? entityManager.getRepository(translation_values_entity_1.TranslationValues)
|
|
18
15
|
: (0, use_repository_1.useRepository)(translation_values_entity_1.TranslationValues);
|
|
19
|
-
(0,
|
|
16
|
+
values.id = (0, generate_entity_id_1.generateEntityId)(translation_values_entity_1.TranslationValues, values);
|
|
20
17
|
return repository.save(values);
|
|
21
18
|
};
|
|
22
19
|
exports.createTranslationValues = createTranslationValues;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-translation-values.js","sourceRoot":"./","sources":["translations/functions/create-translation-values.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-translation-values.js","sourceRoot":"./","sources":["translations/functions/create-translation-values.ts"],"names":[],"mappings":";;;AAAA,qFAAsF;AACtF,oFAA+E;AAC/E,4EAAwE;AACxE,qFAA0E;AAE1E,mDAA8C;AAEvC,MAAM,uBAAuB,GAAG,KAAK,EACzC,MAAsC,EACvC,EAAE;IACD,IAAA,2BAAW,GAAE,CAAC;IACd,MAAM,kBAAkB,GAAG,6CAAuB,CAAC,QAAQ,EAAE,CAAC;IAC9D,MAAM,aAAa,GAAG,kBAAkB,EAAE,aAAa,CAAC;IACxD,MAAM,UAAU,GAAG,aAAa;QAC7B,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,6CAAiB,CAAC;QAChD,CAAC,CAAC,IAAA,8BAAa,EAAC,6CAAiB,CAAC,CAAC;IACrC,MAA6B,CAAC,EAAE,GAAG,IAAA,qCAAgB,EAAC,6CAAiB,EAAE,MAAM,CAAC,CAAC;IAChF,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC,CAAA;AAXY,QAAA,uBAAuB,2BAWnC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CreateTranslationTables1723760669185 = void 0;
|
|
4
|
-
const
|
|
4
|
+
const execute_if_not_exists_table_1 = require("../../database/functions/execute-if-not-exists-table");
|
|
5
5
|
class CreateTranslationTables1723760669185 {
|
|
6
6
|
async up(queryRunner) {
|
|
7
|
-
await (0,
|
|
7
|
+
await (0, execute_if_not_exists_table_1.executeIfNotExistsTable)('translation_config', queryRunner, async () => {
|
|
8
8
|
await queryRunner.query(`
|
|
9
9
|
create table translation_config
|
|
10
10
|
(
|
|
@@ -20,7 +20,7 @@ class CreateTranslationTables1723760669185 {
|
|
|
20
20
|
on translation_config (reference_id);
|
|
21
21
|
`);
|
|
22
22
|
});
|
|
23
|
-
await (0,
|
|
23
|
+
await (0, execute_if_not_exists_table_1.executeIfNotExistsTable)('translation_values', queryRunner, async () => {
|
|
24
24
|
await queryRunner.query(`
|
|
25
25
|
create table translation_values
|
|
26
26
|
(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"1723760669185-CreateTranslationTables.js","sourceRoot":"./","sources":["translations/migrations/1723760669185-CreateTranslationTables.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"1723760669185-CreateTranslationTables.js","sourceRoot":"./","sources":["translations/migrations/1723760669185-CreateTranslationTables.ts"],"names":[],"mappings":";;;AACA,sGAA+F;AAE/F,MAAa,oCAAoC;IAEvC,KAAK,CAAC,EAAE,CAAC,WAAwB;QACrC,MAAM,IAAA,qDAAuB,EAC1B,oBAAoB,EACpB,WAAW,EACX,KAAK,IAAI,EAAE;YACR,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;;;;aAavB,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;QACN,MAAM,IAAA,qDAAuB,EAC1B,oBAAoB,EACpB,WAAW,EACX,KAAK,IAAI,EAAE;YACR,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;;aAWvB,CAAC,CAAC;QACN,CAAC,CACH,CAAA;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACvC,MAAM,WAAW,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACpE,MAAM,WAAW,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IACvE,CAAC;CACH;AA9CD,oFA8CC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const TranslationConfigQuery:
|
|
1
|
+
export declare const TranslationConfigQuery: import("../../query/functions/create-query").QueryDecoratorFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const TranslationValuesQuery:
|
|
1
|
+
export declare const TranslationValuesQuery: import("../../query/functions/create-query").QueryDecoratorFactory;
|
|
@@ -8,7 +8,7 @@ exports.TranslationValuesQuery = (0, create_query_1.createQuery)({
|
|
|
8
8
|
alias: 'translationValues',
|
|
9
9
|
target: () => translation_values_entity_1.TranslationValues,
|
|
10
10
|
paths: {
|
|
11
|
-
translationConfig: (0, create_query_1.
|
|
11
|
+
translationConfig: (0, create_query_1.joinOne)({
|
|
12
12
|
alias: 'translationConfig',
|
|
13
13
|
target: () => translation_config_entity_1.TranslationConfig
|
|
14
14
|
})
|