@balena/pinejs 14.60.1 → 14.61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.pinejs-cache.json +1 -1
- package/.versionbot/CHANGELOG.yml +13 -1
- package/CHANGELOG.md +5 -0
- package/VERSION +1 -1
- package/out/bin/odata-compiler.js +4 -1
- package/out/bin/odata-compiler.js.map +1 -1
- package/out/config-loader/config-loader.d.ts +5 -2
- package/out/config-loader/config-loader.js +32 -16
- package/out/config-loader/config-loader.js.map +1 -1
- package/out/sbvr-api/abstract-sql.js +3 -1
- package/out/sbvr-api/abstract-sql.js.map +1 -1
- package/out/sbvr-api/hooks.d.ts +3 -3
- package/out/sbvr-api/hooks.js +44 -29
- package/out/sbvr-api/hooks.js.map +1 -1
- package/out/sbvr-api/permissions.js +5 -3
- package/out/sbvr-api/permissions.js.map +1 -1
- package/out/sbvr-api/sbvr-utils.d.ts +8 -2
- package/out/sbvr-api/sbvr-utils.js +124 -56
- package/out/sbvr-api/sbvr-utils.js.map +1 -1
- package/out/sbvr-api/translations.d.ts +6 -0
- package/out/sbvr-api/translations.js +136 -0
- package/out/sbvr-api/translations.js.map +1 -0
- package/out/sbvr-api/uri-parser.d.ts +4 -1
- package/out/sbvr-api/uri-parser.js +2 -0
- package/out/sbvr-api/uri-parser.js.map +1 -1
- package/package.json +2 -2
- package/src/bin/odata-compiler.ts +4 -2
- package/src/config-loader/config-loader.ts +62 -24
- package/src/sbvr-api/abstract-sql.ts +2 -1
- package/src/sbvr-api/hooks.ts +80 -33
- package/src/sbvr-api/permissions.ts +9 -3
- package/src/sbvr-api/sbvr-utils.ts +193 -77
- package/src/sbvr-api/translations.ts +219 -0
- package/src/sbvr-api/uri-parser.ts +6 -1
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
- commits:
|
|
2
|
+
- subject: Add support for models that are translated to other (newer) models
|
|
3
|
+
hash: aa7339a60e050deb73839dc3142b6fb810b83c57
|
|
4
|
+
body: ""
|
|
5
|
+
footer:
|
|
6
|
+
Change-type: minor
|
|
7
|
+
change-type: minor
|
|
8
|
+
author: Pagan Gazzard
|
|
9
|
+
nested: []
|
|
10
|
+
version: 14.61.0
|
|
11
|
+
title: ""
|
|
12
|
+
date: 2023-02-03T17:06:38.135Z
|
|
1
13
|
- commits:
|
|
2
14
|
- subject: "chore(deps): update dependency grunt to 1.6.1"
|
|
3
15
|
hash: 8887bb76b142d47a50b3a1c9f65a78af09d0a1a1
|
|
@@ -12,7 +24,7 @@
|
|
|
12
24
|
nested: []
|
|
13
25
|
version: 14.60.1
|
|
14
26
|
title: ""
|
|
15
|
-
date: 2023-01-31T16:
|
|
27
|
+
date: 2023-01-31T16:16:45.140Z
|
|
16
28
|
- commits:
|
|
17
29
|
- subject: 'Revert "chore(deps): update node.js to v19"'
|
|
18
30
|
hash: 89555686d14cf155cd8d4cb23e10392b7672be9d
|
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file
|
|
|
4
4
|
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
|
|
5
5
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
|
6
6
|
|
|
7
|
+
# v14.61.0
|
|
8
|
+
## (2023-02-03)
|
|
9
|
+
|
|
10
|
+
* Add support for models that are translated to other (newer) models [Pagan Gazzard]
|
|
11
|
+
|
|
7
12
|
# v14.60.1
|
|
8
13
|
## (2023-01-31)
|
|
9
14
|
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
14.
|
|
1
|
+
14.61.0
|
|
@@ -5,17 +5,20 @@ const commander_1 = require("commander");
|
|
|
5
5
|
const generateAbstractSqlQuery = (modelFile, odata) => {
|
|
6
6
|
const { memoizedParseOdata, translateUri } = require('../sbvr-api/uri-parser');
|
|
7
7
|
const odataAST = memoizedParseOdata(odata);
|
|
8
|
+
const vocabulary = '';
|
|
8
9
|
return translateUri({
|
|
9
10
|
engine: commander_1.program.opts().engine,
|
|
10
11
|
method: 'GET',
|
|
11
12
|
url: odata,
|
|
12
13
|
resourceName: odataAST.tree.resource,
|
|
14
|
+
originalResourceName: odataAST.tree.resource,
|
|
13
15
|
odataQuery: odataAST.tree,
|
|
14
16
|
odataBinds: odataAST.binds,
|
|
15
17
|
values: {},
|
|
16
|
-
vocabulary
|
|
18
|
+
vocabulary,
|
|
17
19
|
abstractSqlModel: (0, utils_1.getAbstractSqlModelFromFile)(modelFile),
|
|
18
20
|
custom: {},
|
|
21
|
+
translateVersions: [vocabulary],
|
|
19
22
|
});
|
|
20
23
|
};
|
|
21
24
|
const parseOData = (odata, outputFile) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odata-compiler.js","sourceRoot":"","sources":["../../src/bin/odata-compiler.ts"],"names":[],"mappings":";;AAAA,mCAAyE;
|
|
1
|
+
{"version":3,"file":"odata-compiler.js","sourceRoot":"","sources":["../../src/bin/odata-compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type * as Express from 'express';
|
|
2
|
-
import type { AbstractSqlModel } from '@balena/abstract-sql-compiler';
|
|
2
|
+
import type { AbstractSqlModel, Definition } from '@balena/abstract-sql-compiler';
|
|
3
3
|
import type { Database } from '../database-layer/db';
|
|
4
|
-
import type { Resolvable } from '../sbvr-api/common-types';
|
|
4
|
+
import type { Dictionary, Resolvable } from '../sbvr-api/common-types';
|
|
5
5
|
import { Migrations } from '../migrator/utils';
|
|
6
6
|
import * as sbvrUtils from '../sbvr-api/sbvr-utils';
|
|
7
|
+
import { AliasValidNodeType } from '../sbvr-api/translations';
|
|
7
8
|
export type SetupFunction = (app: Express.Application, sbvrUtilsInstance: typeof sbvrUtils, db: Database) => Resolvable<void>;
|
|
8
9
|
export interface Model {
|
|
9
10
|
apiRoot?: string;
|
|
@@ -21,6 +22,8 @@ export interface Model {
|
|
|
21
22
|
logging?: {
|
|
22
23
|
[key in keyof Console | 'default']?: boolean;
|
|
23
24
|
};
|
|
25
|
+
translateTo?: Model['apiRoot'];
|
|
26
|
+
translations?: Dictionary<Definition | Dictionary<string | AliasValidNodeType>>;
|
|
24
27
|
}
|
|
25
28
|
export interface User {
|
|
26
29
|
username: string;
|
|
@@ -78,25 +78,41 @@ const setup = (app) => {
|
|
|
78
78
|
}
|
|
79
79
|
}));
|
|
80
80
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const message = `Failed to execute ${model.modelName} model from ${model.modelFile}`;
|
|
93
|
-
if (_.isError(err)) {
|
|
94
|
-
err.message = message;
|
|
95
|
-
throw err;
|
|
81
|
+
const modelPromises = _(data.models)
|
|
82
|
+
.filter((model) => (model.abstractSql != null || model.modelText != null) &&
|
|
83
|
+
model.apiRoot != null)
|
|
84
|
+
.keyBy((model) => model.apiRoot)
|
|
85
|
+
.mapValues(async (model) => {
|
|
86
|
+
try {
|
|
87
|
+
const { translateTo, translations } = model;
|
|
88
|
+
if (translateTo != null) {
|
|
89
|
+
await null;
|
|
90
|
+
if (modelPromises[translateTo] == null) {
|
|
91
|
+
throw new Error(`Cannot translate to non-existent version '${translateTo}'`);
|
|
96
92
|
}
|
|
97
|
-
|
|
93
|
+
await modelPromises[translateTo];
|
|
94
|
+
}
|
|
95
|
+
else if (translations != null) {
|
|
96
|
+
throw new Error('Cannot have translations without a translateTo target');
|
|
98
97
|
}
|
|
98
|
+
await sbvrUtils.executeModel(tx, model);
|
|
99
|
+
const apiRoute = `/${model.apiRoot}/*`;
|
|
100
|
+
app.options(apiRoute, (_req, res) => res.status(200).end());
|
|
101
|
+
app.all(apiRoute, sbvrUtils.handleODataRequest);
|
|
102
|
+
console.info('Successfully executed ' + model.modelName + ' model.');
|
|
99
103
|
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
const message = `Failed to execute '${model.modelName}' model from '${model.modelFile}'`;
|
|
106
|
+
if (_.isError(err)) {
|
|
107
|
+
err.message = `${message} due to: ${err.message}`;
|
|
108
|
+
throw err;
|
|
109
|
+
}
|
|
110
|
+
throw new Error(message);
|
|
111
|
+
}
|
|
112
|
+
})
|
|
113
|
+
.value();
|
|
114
|
+
await Promise.all(Object.values(modelPromises));
|
|
115
|
+
await Promise.all(data.models.map(async (model) => {
|
|
100
116
|
if (model.customServerCode != null) {
|
|
101
117
|
let customCode;
|
|
102
118
|
if (typeof model.customServerCode === 'string') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config-loader/config-loader.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config-loader/config-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,6 +50,7 @@ const getAndCheckBindValues = async (request, bindings) => {
|
|
|
50
50
|
const { odataBinds, values, engine } = request;
|
|
51
51
|
const sqlModelTables = sbvrUtils.getAbstractSqlModel(request).tables;
|
|
52
52
|
return await Promise.all(bindings.map(async (binding) => {
|
|
53
|
+
var _a;
|
|
53
54
|
let fieldName = '';
|
|
54
55
|
let field;
|
|
55
56
|
let value;
|
|
@@ -66,7 +67,8 @@ const getAndCheckBindValues = async (request, bindings) => {
|
|
|
66
67
|
value = (0, exports.resolveOdataBind)(odataBinds, value);
|
|
67
68
|
const sqlTableName = (0, odata_to_abstract_sql_1.odataNameToSqlName)(tableName);
|
|
68
69
|
const sqlFieldName = (0, odata_to_abstract_sql_1.odataNameToSqlName)(fieldName);
|
|
69
|
-
const
|
|
70
|
+
const table = sqlModelTables[sqlTableName];
|
|
71
|
+
const maybeField = ((_a = table.modifyFields) !== null && _a !== void 0 ? _a : table.fields).find((f) => f.fieldName === sqlFieldName);
|
|
70
72
|
if (maybeField == null) {
|
|
71
73
|
throw new Error(`Could not find field '${fieldName}'`);
|
|
72
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-sql.js","sourceRoot":"","sources":["../../src/sbvr-api/abstract-sql.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAE5B,qEAAqE;AACrE,yEAIuC;AACvC,0CAA2C;AAC3C,oCAAoC;AACpC,4CAA4C;AAC5C,qCAAgE;AAChE,0CAA0C;AAG1C,MAAM,sBAAsB,GAAG,OAAO,CACrC,CAAC,MAAmC,EAAE,EAAE,CACvC,GAAG,CAAC,WAAW,CACd,qBAAqB,EACrB,CAAC,gBAAsD,EAAE,EAAE;IAC1D,MAAM,QAAQ,GACb,mBAAmB,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC3D,MAAM,cAAc,GACnB,mBAAmB,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACjE,IAAI,cAAc,IAAI,IAAI,EAAE;QAC3B,UAAU,CAAC,cAAc,CAAC,CAAC;KAC3B;IACD,OAAO;QACN,QAAQ;QACR,cAAc;KACd,CAAC;AACH,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACd,EACF,EAAE,SAAS,EAAE,IAAI,EAAE,CACnB,CAAC;AAEK,MAAM,cAAc,GAAG,CAAC,OAAqB,EAAE,EAAE;IACvD,IAAI,OAAO,CAAC,gBAAgB,IAAI,IAAI,EAAE;QACrC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,MAAM,IAAI,4BAAmB,CAAC,8BAA8B,CAAC,CAAC;SAC9D;QACD,IAAI;YACH,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAClE,OAAO,CAAC,gBAAgB,CACxB,CAAC;YACF,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC5B,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;SACxC;QAAC,OAAO,GAAQ,EAAE;YAClB,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAC7C,kCAAkC,EAClC,OAAO,CAAC,gBAAgB,EACxB,GAAG,CACH,CAAC;YACF,MAAM,IAAI,4BAAmB,CAAC,GAAG,CAAC,CAAC;SACnC;KACD;IACD,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AAtBW,QAAA,cAAc,kBAsBzB;AAEK,MAAM,gBAAgB,GAAG,CAAC,UAAsB,EAAE,KAAU,EAAE,EAAE;IACtE,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAA,uCAAe,EAAC,KAAK,CAAC,EAAE;QACzE,CAAC,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACnC;IACD,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B;AAEK,MAAM,qBAAqB,GAAG,KAAK,EACzC,OAEC,EACD,QAAuC,EACtC,EAAE;IACH,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC/C,MAAM,cAAc,GAAG,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACrE,OAAO,MAAM,OAAO,CAAC,GAAG,CACvB,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"abstract-sql.js","sourceRoot":"","sources":["../../src/sbvr-api/abstract-sql.ts"],"names":[],"mappings":"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"}
|
package/out/sbvr-api/hooks.d.ts
CHANGED
|
@@ -62,10 +62,10 @@ declare class Hook<T extends HookFn> {
|
|
|
62
62
|
constructor(hook: HookBlueprint<T>);
|
|
63
63
|
run(...args: any[]): Promise<void>;
|
|
64
64
|
}
|
|
65
|
-
export declare const rollbackRequestHooks: <T extends InstantiatedHooks>(hooks: T | undefined) => void;
|
|
65
|
+
export declare const rollbackRequestHooks: <T extends InstantiatedHooks>(hooksList: [modelName: string, hooks: T][] | undefined) => void;
|
|
66
66
|
export type HookMethod = keyof typeof apiHooks;
|
|
67
67
|
export declare const getHooks: {
|
|
68
|
-
(request: Pick<OptionalField<ParsedODataRequest, 'resourceName'>, 'resourceName' | 'method' | 'vocabulary'
|
|
68
|
+
(request: Pick<OptionalField<ParsedODataRequest, 'resourceName'>, 'resourceName' | 'method' | 'vocabulary'>, includeAllVocab: boolean): InstantiatedHooks;
|
|
69
69
|
clear(): void;
|
|
70
70
|
};
|
|
71
71
|
interface VocabHooks {
|
|
@@ -129,5 +129,5 @@ export declare const addHook: (method: keyof typeof apiHooks, vocabulary: string
|
|
|
129
129
|
export declare const addSideEffectHook: (method: HookMethod, apiRoot: string, resourceName: string, hooks: Hooks) => void;
|
|
130
130
|
export declare const addPureHook: (method: HookMethod, apiRoot: string, resourceName: string, hooks: Hooks) => void;
|
|
131
131
|
type RunHookArgs<T extends keyof Hooks> = Omit<Parameters<NonNullable<Hooks[T]>>[0], 'api'>;
|
|
132
|
-
export declare const runHooks: <T extends keyof Hooks>(hookName: T, hooksList: InstantiatedHooks | undefined, args: RunHookArgs<T>) => Promise<void>;
|
|
132
|
+
export declare const runHooks: <T extends keyof Hooks>(hookName: T, hooksList: Array<[modelName: string, hooks: InstantiatedHooks]> | undefined, args: RunHookArgs<T>) => Promise<void>;
|
|
133
133
|
export {};
|
package/out/sbvr-api/hooks.js
CHANGED
|
@@ -51,12 +51,12 @@ class SideEffectHook extends Hook {
|
|
|
51
51
|
await (0, control_flow_1.settleMapSeries)(this.rollbackFns, (fn) => fn());
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
const rollbackRequestHooks = (
|
|
55
|
-
if (
|
|
54
|
+
const rollbackRequestHooks = (hooksList) => {
|
|
55
|
+
if (hooksList == null) {
|
|
56
56
|
return;
|
|
57
57
|
}
|
|
58
|
-
const sideEffectHooks =
|
|
59
|
-
.flatMap((v) => v)
|
|
58
|
+
const sideEffectHooks = hooksList
|
|
59
|
+
.flatMap(([, v]) => Object.values(v).flat())
|
|
60
60
|
.filter((hook) => hook instanceof SideEffectHook);
|
|
61
61
|
if (sideEffectHooks.length === 0) {
|
|
62
62
|
return;
|
|
@@ -92,19 +92,24 @@ const getResourceHooks = (vocabHooks, resourceName) => {
|
|
|
92
92
|
}
|
|
93
93
|
return mergeHooks(vocabHooks[resourceName], vocabHooks['all']);
|
|
94
94
|
};
|
|
95
|
-
const getVocabHooks = (methodHooks, vocabulary, resourceName) => {
|
|
95
|
+
const getVocabHooks = (methodHooks, vocabulary, resourceName, includeAllVocab) => {
|
|
96
96
|
if (methodHooks == null) {
|
|
97
97
|
return {};
|
|
98
98
|
}
|
|
99
|
-
|
|
99
|
+
const vocabHooks = getResourceHooks(methodHooks[vocabulary], resourceName);
|
|
100
|
+
if (!includeAllVocab) {
|
|
101
|
+
return vocabHooks;
|
|
102
|
+
}
|
|
103
|
+
return mergeHooks(vocabHooks, getResourceHooks(methodHooks['all'], resourceName));
|
|
100
104
|
};
|
|
101
|
-
const getMethodHooks = memoize((method, vocabulary, resourceName) => mergeHooks(getVocabHooks(apiHooks[method], vocabulary, resourceName), getVocabHooks(apiHooks['all'], vocabulary, resourceName)), { primitive: true });
|
|
102
|
-
const getHooks = (request) => {
|
|
105
|
+
const getMethodHooks = memoize((method, vocabulary, resourceName, includeAllVocab) => mergeHooks(getVocabHooks(apiHooks[method], vocabulary, resourceName, includeAllVocab), getVocabHooks(apiHooks['all'], vocabulary, resourceName, includeAllVocab)), { primitive: true });
|
|
106
|
+
const getHooks = (request, includeAllVocab) => {
|
|
103
107
|
let { resourceName } = request;
|
|
104
108
|
if (resourceName != null) {
|
|
105
|
-
resourceName = (0, sbvr_utils_1.resolveSynonym)(request)
|
|
109
|
+
resourceName = (0, sbvr_utils_1.resolveSynonym)(request)
|
|
110
|
+
.replace(/\$.*$/, '');
|
|
106
111
|
}
|
|
107
|
-
return instantiateHooks(getMethodHooks(request.method, request.vocabulary, resourceName));
|
|
112
|
+
return instantiateHooks(getMethodHooks(request.method, request.vocabulary, resourceName, includeAllVocab));
|
|
108
113
|
};
|
|
109
114
|
exports.getHooks = getHooks;
|
|
110
115
|
exports.getHooks.clear = () => getMethodHooks.clear();
|
|
@@ -197,23 +202,22 @@ const addPureHook = (method, apiRoot, resourceName, hooks) => {
|
|
|
197
202
|
});
|
|
198
203
|
};
|
|
199
204
|
exports.addPureHook = addPureHook;
|
|
200
|
-
const defineApi = (args) => {
|
|
201
|
-
const {
|
|
202
|
-
const { vocabulary } = request;
|
|
205
|
+
const defineApi = (modelName, args) => {
|
|
206
|
+
const { req, tx } = args;
|
|
203
207
|
Object.defineProperty(args, 'api', {
|
|
204
|
-
get: _.once(() => sbvr_utils_1.api[
|
|
208
|
+
get: _.once(() => sbvr_utils_1.api[modelName].clone({
|
|
205
209
|
passthrough: { req, tx },
|
|
206
210
|
})),
|
|
207
211
|
});
|
|
208
212
|
};
|
|
209
|
-
const getReadOnlyArgs = (args) => {
|
|
213
|
+
const getReadOnlyArgs = (modelName, args) => {
|
|
210
214
|
if (args.tx == null || args.tx.isReadOnly()) {
|
|
211
215
|
return args;
|
|
212
216
|
}
|
|
213
217
|
let readOnlyArgs;
|
|
214
218
|
readOnlyArgs = { ...args, tx: args.tx.asReadOnly() };
|
|
215
219
|
if (args.request != null) {
|
|
216
|
-
defineApi(readOnlyArgs);
|
|
220
|
+
defineApi(modelName, readOnlyArgs);
|
|
217
221
|
}
|
|
218
222
|
return readOnlyArgs;
|
|
219
223
|
};
|
|
@@ -221,23 +225,34 @@ const runHooks = async (hookName, hooksList, args) => {
|
|
|
221
225
|
if (hooksList == null) {
|
|
222
226
|
return;
|
|
223
227
|
}
|
|
224
|
-
const hooks = hooksList
|
|
225
|
-
|
|
228
|
+
const hooks = hooksList
|
|
229
|
+
.map(([modelName, $hooks]) => [
|
|
230
|
+
modelName,
|
|
231
|
+
$hooks[hookName],
|
|
232
|
+
])
|
|
233
|
+
.filter((v) => v[1] != null && v[1].length > 0);
|
|
234
|
+
if (hooks.length === 0) {
|
|
226
235
|
return;
|
|
227
236
|
}
|
|
228
|
-
if (
|
|
229
|
-
|
|
237
|
+
if (['POSTRUN', 'PRERESPOND', 'POSTRUN-ERROR'].includes(hookName)) {
|
|
238
|
+
hooks.reverse();
|
|
230
239
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
240
|
+
for (const [modelName, modelHooks] of hooks) {
|
|
241
|
+
const modelArgs = { ...args };
|
|
242
|
+
let modelReadOnlyArgs;
|
|
243
|
+
if (args.request != null) {
|
|
244
|
+
defineApi(modelName, modelArgs);
|
|
236
245
|
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
246
|
+
await Promise.all(modelHooks.map(async (hook) => {
|
|
247
|
+
if (hook.readOnlyTx) {
|
|
248
|
+
modelReadOnlyArgs !== null && modelReadOnlyArgs !== void 0 ? modelReadOnlyArgs : (modelReadOnlyArgs = getReadOnlyArgs(modelName, args));
|
|
249
|
+
await hook.run(modelReadOnlyArgs);
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
await hook.run(modelArgs);
|
|
253
|
+
}
|
|
254
|
+
}));
|
|
255
|
+
}
|
|
241
256
|
};
|
|
242
257
|
exports.runHooks = runHooks;
|
|
243
258
|
//# sourceMappingURL=hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/sbvr-api/hooks.ts"],"names":[],"mappings":";;;AAOA,4BAA4B;AAC5B,iDAAiD;AACjD,oCAAoC;AACpC,6CAQsB;
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/sbvr-api/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,7 +54,7 @@ const $parsePermissions = env.createCache('parsePermissions', (filter) => {
|
|
|
54
54
|
}, {
|
|
55
55
|
primitive: true,
|
|
56
56
|
});
|
|
57
|
-
const
|
|
57
|
+
const rewriteODataBinds = ({ tree, extraBinds }, odataBinds) => {
|
|
58
58
|
const bindsLength = odataBinds.length;
|
|
59
59
|
odataBinds.push(...extraBinds);
|
|
60
60
|
return _.cloneDeepWith(tree, (value) => {
|
|
@@ -68,7 +68,7 @@ const rewriteBinds = ({ tree, extraBinds }, odataBinds) => {
|
|
|
68
68
|
};
|
|
69
69
|
const parsePermissions = (filter, odataBinds) => {
|
|
70
70
|
const odata = $parsePermissions(filter);
|
|
71
|
-
return
|
|
71
|
+
return rewriteODataBinds(odata, odataBinds);
|
|
72
72
|
};
|
|
73
73
|
const isAnd = (x) => typeof x === 'object' && 'and' in x;
|
|
74
74
|
const isOr = (x) => typeof x === 'object' && 'or' in x;
|
|
@@ -1081,7 +1081,8 @@ const getReqPermissions = async (req, odataBinds = []) => {
|
|
|
1081
1081
|
return getPermissionsLookup(actorPermissions, guestPermissions);
|
|
1082
1082
|
};
|
|
1083
1083
|
const addPermissions = async (req, request) => {
|
|
1084
|
-
const {
|
|
1084
|
+
const { resourceName, odataQuery, odataBinds } = request;
|
|
1085
|
+
const vocabulary = _.last(request.translateVersions);
|
|
1085
1086
|
let abstractSqlModel = sbvrUtils.getAbstractSqlModel(request);
|
|
1086
1087
|
let { permissionType } = request;
|
|
1087
1088
|
if (permissionType == null) {
|
|
@@ -1183,6 +1184,7 @@ const setup = () => {
|
|
|
1183
1184
|
}
|
|
1184
1185
|
const abstractSqlModel = sbvrUtils.getAbstractSqlModel(request);
|
|
1185
1186
|
request.resourceName = request.resourceName.slice(0, -'#canAccess'.length);
|
|
1187
|
+
request.originalResourceName = request.originalResourceName.slice(0, -'#canAccess'.length);
|
|
1186
1188
|
const resourceName = sbvrUtils.resolveSynonym(request);
|
|
1187
1189
|
const resourceTable = abstractSqlModel.tables[resourceName];
|
|
1188
1190
|
if (resourceTable == null) {
|