@balena/pinejs 16.0.0-build--batch-f2ffc3d6bcb9f3294fd4fc9de3c21bfe167e100d-1 → 16.0.0-build-fisehara-update-sbvr-types-b58e72aca3193964afac96c955fde178fe39d077-1
Sign up to get free protection for your applications and to get access to all the features.
- package/.pinejs-cache.json +1 -1
- package/.versionbot/CHANGELOG.yml +2168 -11
- package/CHANGELOG.md +815 -2
- package/Gruntfile.ts +9 -6
- package/README.md +10 -0
- package/build/browser.ts +2 -2
- package/build/config.ts +1 -1
- package/build/module.ts +2 -2
- package/build/server.ts +2 -2
- package/docker-compose.npm-test.yml +21 -3
- package/out/bin/abstract-sql-compiler.js +5 -5
- package/out/bin/abstract-sql-compiler.js.map +1 -1
- package/out/bin/odata-compiler.js +10 -10
- package/out/bin/odata-compiler.js.map +1 -1
- package/out/bin/sbvr-compiler.js +34 -11
- package/out/bin/sbvr-compiler.js.map +1 -1
- package/out/bin/utils.js +25 -2
- package/out/bin/utils.js.map +1 -1
- package/out/config-loader/config-loader.d.ts +4 -2
- package/out/config-loader/config-loader.js +54 -13
- package/out/config-loader/config-loader.js.map +1 -1
- package/out/config-loader/env.d.ts +2 -1
- package/out/config-loader/env.js +5 -2
- package/out/config-loader/env.js.map +1 -1
- package/out/data-server/sbvr-server.d.ts +1 -1
- package/out/data-server/sbvr-server.js +3 -1
- package/out/data-server/sbvr-server.js.map +1 -1
- package/out/database-layer/db.js +40 -14
- package/out/database-layer/db.js.map +1 -1
- package/out/express-emulator/express.js +5 -3
- package/out/express-emulator/express.js.map +1 -1
- package/out/http-transactions/transactions.d.ts +1 -1
- package/out/http-transactions/transactions.js +10 -5
- package/out/http-transactions/transactions.js.map +1 -1
- package/out/migrator/async.js +32 -5
- package/out/migrator/async.js.map +1 -1
- package/out/migrator/sync.d.ts +2 -1
- package/out/migrator/sync.js +29 -3
- package/out/migrator/sync.js.map +1 -1
- package/out/migrator/utils.d.ts +6 -3
- package/out/migrator/utils.js +30 -4
- package/out/migrator/utils.js.map +1 -1
- package/out/odata-metadata/odata-metadata-generator.js +4 -1
- package/out/odata-metadata/odata-metadata-generator.js.map +1 -1
- package/out/passport-pinejs/mount-login-router.d.ts +3 -0
- package/out/passport-pinejs/mount-login-router.js +65 -0
- package/out/passport-pinejs/mount-login-router.js.map +1 -0
- package/out/passport-pinejs/passport-pinejs.d.ts +2 -1
- package/out/passport-pinejs/passport-pinejs.js +28 -2
- package/out/passport-pinejs/passport-pinejs.js.map +1 -1
- package/out/pinejs-session-store/pinejs-session-store.js +30 -7
- package/out/pinejs-session-store/pinejs-session-store.js.map +1 -1
- package/out/sbvr-api/abstract-sql.d.ts +2 -2
- package/out/sbvr-api/abstract-sql.js +35 -9
- package/out/sbvr-api/abstract-sql.js.map +1 -1
- package/out/sbvr-api/cached-compile.js +9 -6
- package/out/sbvr-api/cached-compile.js.map +1 -1
- package/out/sbvr-api/common-types.d.ts +1 -1
- package/out/sbvr-api/control-flow.js +5 -2
- package/out/sbvr-api/control-flow.js.map +1 -1
- package/out/sbvr-api/express-extension.d.ts +10 -7
- package/out/sbvr-api/express-extension.js +1 -0
- package/out/sbvr-api/hooks.d.ts +5 -1
- package/out/sbvr-api/hooks.js +12 -10
- package/out/sbvr-api/hooks.js.map +1 -1
- package/out/sbvr-api/odata-response.d.ts +5 -2
- package/out/sbvr-api/odata-response.js +36 -6
- package/out/sbvr-api/odata-response.js.map +1 -1
- package/out/sbvr-api/permissions.d.ts +6 -7
- package/out/sbvr-api/permissions.js +69 -38
- package/out/sbvr-api/permissions.js.map +1 -1
- package/out/sbvr-api/sbvr-utils.d.ts +20 -9
- package/out/sbvr-api/sbvr-utils.js +134 -136
- package/out/sbvr-api/sbvr-utils.js.map +1 -1
- package/out/sbvr-api/translations.d.ts +2 -2
- package/out/sbvr-api/translations.js +17 -10
- package/out/sbvr-api/translations.js.map +1 -1
- package/out/sbvr-api/uri-parser.d.ts +7 -10
- package/out/sbvr-api/uri-parser.js +46 -19
- package/out/sbvr-api/uri-parser.js.map +1 -1
- package/out/server-glue/global-ext.d.ts +2 -1
- package/out/server-glue/module.d.ts +3 -1
- package/out/server-glue/module.js +40 -13
- package/out/server-glue/module.js.map +1 -1
- package/out/server-glue/sbvr-loader.js.map +1 -1
- package/out/server-glue/server.js +31 -39
- package/out/server-glue/server.js.map +1 -1
- package/out/webresource-handler/handlers/NoopHandler.d.ts +7 -0
- package/out/webresource-handler/handlers/NoopHandler.js +20 -0
- package/out/webresource-handler/handlers/NoopHandler.js.map +1 -0
- package/out/webresource-handler/handlers/S3Handler.d.ts +28 -0
- package/out/webresource-handler/handlers/S3Handler.js +97 -0
- package/out/webresource-handler/handlers/S3Handler.js.map +1 -0
- package/out/webresource-handler/handlers/index.d.ts +2 -0
- package/out/webresource-handler/handlers/index.js +19 -0
- package/out/webresource-handler/handlers/index.js.map +1 -0
- package/out/webresource-handler/index.d.ts +34 -0
- package/out/webresource-handler/index.js +307 -0
- package/out/webresource-handler/index.js.map +1 -0
- package/package.json +68 -62
- package/src/bin/abstract-sql-compiler.ts +7 -9
- package/src/bin/odata-compiler.ts +12 -15
- package/src/bin/sbvr-compiler.ts +14 -18
- package/src/bin/utils.ts +1 -1
- package/src/config-loader/config-loader.ts +44 -10
- package/src/config-loader/env.ts +1 -1
- package/src/data-server/sbvr-server.js +3 -1
- package/src/database-layer/db.ts +23 -19
- package/src/express-emulator/express.js +5 -3
- package/src/extended-sbvr-parser/extended-sbvr-parser.ts +1 -1
- package/src/http-transactions/transactions.js +10 -5
- package/src/migrator/async.ts +7 -6
- package/src/migrator/sync.ts +10 -7
- package/src/migrator/utils.ts +11 -5
- package/src/odata-metadata/odata-metadata-generator.ts +2 -2
- package/src/passport-pinejs/mount-login-router.ts +46 -0
- package/src/passport-pinejs/passport-pinejs.ts +7 -3
- package/src/pinejs-session-store/pinejs-session-store.ts +6 -6
- package/src/sbvr-api/abstract-sql.ts +5 -5
- package/src/sbvr-api/cached-compile.ts +1 -2
- package/src/sbvr-api/common-types.ts +1 -1
- package/src/sbvr-api/control-flow.ts +1 -1
- package/src/sbvr-api/express-extension.ts +12 -8
- package/src/sbvr-api/hooks.ts +11 -11
- package/src/sbvr-api/odata-response.ts +56 -9
- package/src/sbvr-api/permissions.ts +44 -35
- package/src/sbvr-api/sbvr-utils.ts +118 -172
- package/src/sbvr-api/translations.ts +9 -6
- package/src/sbvr-api/uri-parser.ts +22 -28
- package/src/server-glue/global-ext.d.ts +2 -1
- package/src/server-glue/module.ts +8 -2
- package/src/server-glue/sbvr-loader.ts +1 -1
- package/src/server-glue/server.ts +11 -49
- package/src/webresource-handler/handlers/NoopHandler.ts +21 -0
- package/src/webresource-handler/handlers/S3Handler.ts +143 -0
- package/src/webresource-handler/handlers/index.ts +2 -0
- package/src/webresource-handler/index.ts +450 -0
- package/tsconfig.dev.json +2 -1
- package/tsconfig.json +1 -1
- package/typings/lf-to-abstract-sql.d.ts +1 -1
- package/typings/memoizee.d.ts +3 -4
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cached-compile.js","sourceRoot":"","sources":["../../src/sbvr-api/cached-compile.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"cached-compile.js","sourceRoot":"","sources":["../../src/sbvr-api/cached-compile.ts"],"names":[],"mappings":";;;;;;AAEA,oDAAuB;AAEvB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,oBAAoB,CAAC;AACxE,IAAI,KAAK,GAML,IAAI,CAAC;AACT,IAAI,EAAyB,CAAC;AAC9B,IAAI,CAAC;IACJ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;AAEb,CAAC;AAED,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,MAAM,SAAS,GAAG,gBAAC,CAAC,QAAQ,CAAC,GAAG,EAAE;IACjC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAChB,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;YAC9D,IAAI,GAAG,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;YACjD,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;AACF,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAEvB,MAAM,UAAU,GAAG,gBAAC,CAAC,QAAQ,CAAC,GAAG,EAAE;IAClC,KAAK,GAAG,IAAI,CAAC;AACd,CAAC,EAAE,kBAAkB,GAAG,CAAC,CAAC,CAAC;AAEpB,MAAM,aAAa,GAAG,CAC5B,IAAY,EACZ,OAAe,EACf,GAAQ,EACR,EAAW,EACP,EAAE;IACN,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACnB,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC;gBACJ,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;YAEb,CAAC;QACF,CAAC;QACD,KAAK,KAAK,EAAE,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,MAAM,GAAG,gBAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACpB,MAAM,GAAG,EAAE,EAAE,CAAC;QACd,gBAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC1B,SAAS,EAAE,CAAC;IACb,CAAC;IAKD,UAAU,EAAE,CAAC;IACb,OAAO,gBAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC,CAAC;AA7BW,QAAA,aAAa,iBA6BxB"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
export { AnyObject, Dictionary } from 'pinejs-client-core';
|
1
|
+
export type { AnyObject, Dictionary } from 'pinejs-client-core';
|
2
2
|
type Overwrite<T, U> = Pick<T, Exclude<keyof T, keyof U>> & U;
|
3
3
|
export type RequiredField<T, F extends keyof T> = Overwrite<T, Required<Pick<T, F>>>;
|
4
4
|
export type OptionalField<T, F extends keyof T> = Overwrite<T, Partial<Pick<T, F>>>;
|
@@ -1,7 +1,10 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
6
|
exports.timeout = exports.TimeoutError = exports.fromCallback = exports.delay = exports.getMappingFn = exports.settleMapSeries = exports.mapSeries = void 0;
|
4
|
-
const
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
5
8
|
const typed_error_1 = require("typed-error");
|
6
9
|
const mapSeries = async (a, fn) => {
|
7
10
|
const results = [];
|
@@ -21,7 +24,7 @@ const settleMapSeries = async (a, fn) => await (0, exports.mapSeries)(a, async (
|
|
21
24
|
});
|
22
25
|
exports.settleMapSeries = settleMapSeries;
|
23
26
|
const ensureError = (err) => {
|
24
|
-
if (err instanceof Error ||
|
27
|
+
if (err instanceof Error || lodash_1.default.isError(err)) {
|
25
28
|
return err;
|
26
29
|
}
|
27
30
|
return new Error(err);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"control-flow.js","sourceRoot":"","sources":["../../src/sbvr-api/control-flow.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"control-flow.js","sourceRoot":"","sources":["../../src/sbvr-api/control-flow.ts"],"names":[],"mappings":"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"}
|
@@ -1,9 +1,12 @@
|
|
1
|
-
declare
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
1
|
+
declare global {
|
2
|
+
namespace Express {
|
3
|
+
type PineUser = import('./sbvr-utils').User;
|
4
|
+
interface User extends PineUser {
|
5
|
+
}
|
6
|
+
interface Request {
|
7
|
+
user?: User;
|
8
|
+
apiKey?: import('./sbvr-utils').ApiKey;
|
9
|
+
}
|
8
10
|
}
|
9
11
|
}
|
12
|
+
export {};
|
package/out/sbvr-api/hooks.d.ts
CHANGED
@@ -3,7 +3,7 @@ import type { Tx } from '../database-layer/db';
|
|
3
3
|
import type { ODataRequest, ParsedODataRequest } from './uri-parser';
|
4
4
|
import type { AnyObject } from 'pinejs-client-core';
|
5
5
|
import type { TypedError } from 'typed-error';
|
6
|
-
import { PinejsClient, User, ApiKey, Response } from './sbvr-utils';
|
6
|
+
import { type PinejsClient, type User, type ApiKey, type Response } from './sbvr-utils';
|
7
7
|
export interface HookReq {
|
8
8
|
user?: User;
|
9
9
|
apiKey?: ApiKey;
|
@@ -15,6 +15,7 @@ export interface HookReq {
|
|
15
15
|
custom?: AnyObject;
|
16
16
|
tx?: Tx;
|
17
17
|
hooks?: InstantiatedHooks;
|
18
|
+
is?: (type: string | string[]) => string | false | null;
|
18
19
|
}
|
19
20
|
export interface HookArgs {
|
20
21
|
req: HookReq;
|
@@ -39,6 +40,7 @@ export interface Hooks {
|
|
39
40
|
response: Response;
|
40
41
|
}) => HookResponse;
|
41
42
|
'POSTRUN-ERROR'?: (options: HookArgs & {
|
43
|
+
tx: Tx;
|
42
44
|
error: TypedError | any;
|
43
45
|
}) => HookResponse;
|
44
46
|
}
|
@@ -99,6 +101,7 @@ export declare const addHook: (method: keyof typeof apiHooks, vocabulary: string
|
|
99
101
|
response: Response;
|
100
102
|
}) => HookResponse> | undefined;
|
101
103
|
'POSTRUN-ERROR'?: HookBlueprint<(options: HookArgs & {
|
104
|
+
tx: Tx;
|
102
105
|
error: TypedError | any;
|
103
106
|
}) => HookResponse> | undefined;
|
104
107
|
} | ({
|
@@ -117,6 +120,7 @@ export declare const addHook: (method: keyof typeof apiHooks, vocabulary: string
|
|
117
120
|
response: Response;
|
118
121
|
}) => HookResponse) | undefined;
|
119
122
|
'POSTRUN-ERROR'?: ((options: HookArgs & {
|
123
|
+
tx: Tx;
|
120
124
|
error: TypedError | any;
|
121
125
|
}) => HookResponse) | undefined;
|
122
126
|
} & {
|
package/out/sbvr-api/hooks.js
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
6
|
exports.runHooks = exports.addPureHook = exports.addSideEffectHook = exports.addHook = exports.getHooks = exports.rollbackRequestHooks = void 0;
|
4
|
-
const
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
5
8
|
const control_flow_1 = require("./control-flow");
|
6
|
-
const
|
9
|
+
const memoizee_1 = __importDefault(require("memoizee"));
|
7
10
|
const sbvr_utils_1 = require("./sbvr-utils");
|
8
11
|
const hookNames = [
|
9
12
|
'PREPARSE',
|
@@ -31,7 +34,7 @@ class SideEffectHook extends Hook {
|
|
31
34
|
}
|
32
35
|
registerRollback(fn) {
|
33
36
|
if (this.rolledBack) {
|
34
|
-
(async () => {
|
37
|
+
void (async () => {
|
35
38
|
try {
|
36
39
|
await fn();
|
37
40
|
}
|
@@ -61,12 +64,12 @@ const rollbackRequestHooks = (hooksList) => {
|
|
61
64
|
if (sideEffectHooks.length === 0) {
|
62
65
|
return;
|
63
66
|
}
|
64
|
-
(0, control_flow_1.settleMapSeries)(sideEffectHooks, async (hook) => {
|
67
|
+
void (0, control_flow_1.settleMapSeries)(sideEffectHooks, async (hook) => {
|
65
68
|
await hook.rollback();
|
66
69
|
});
|
67
70
|
};
|
68
71
|
exports.rollbackRequestHooks = rollbackRequestHooks;
|
69
|
-
const instantiateHooks = (hooks) =>
|
72
|
+
const instantiateHooks = (hooks) => lodash_1.default.mapValues(hooks, (typeHooks) => {
|
70
73
|
return typeHooks.map((hook) => {
|
71
74
|
if (hook.sideEffects) {
|
72
75
|
return new SideEffectHook(hook);
|
@@ -77,7 +80,7 @@ const instantiateHooks = (hooks) => _.mapValues(hooks, (typeHooks) => {
|
|
77
80
|
});
|
78
81
|
});
|
79
82
|
const mergeHooks = (a, b) => {
|
80
|
-
return
|
83
|
+
return lodash_1.default.mergeWith({}, a, b, (x, y) => {
|
81
84
|
if (Array.isArray(x)) {
|
82
85
|
return x.concat(y);
|
83
86
|
}
|
@@ -102,7 +105,7 @@ const getVocabHooks = (methodHooks, vocabulary, resourceName, includeAllVocab) =
|
|
102
105
|
}
|
103
106
|
return mergeHooks(vocabHooks, getResourceHooks(methodHooks['all'], resourceName));
|
104
107
|
};
|
105
|
-
const getMethodHooks =
|
108
|
+
const getMethodHooks = (0, memoizee_1.default)((method, vocabulary, resourceName, includeAllVocab) => mergeHooks(getVocabHooks(apiHooks[method], vocabulary, resourceName, includeAllVocab), getVocabHooks(apiHooks['all'], vocabulary, resourceName, includeAllVocab)), { primitive: true });
|
106
109
|
const getHooks = (request, includeAllVocab) => {
|
107
110
|
let { resourceName } = request;
|
108
111
|
if (resourceName != null) {
|
@@ -204,7 +207,7 @@ exports.addPureHook = addPureHook;
|
|
204
207
|
const defineApi = (modelName, args) => {
|
205
208
|
const { req, tx } = args;
|
206
209
|
Object.defineProperty(args, 'api', {
|
207
|
-
get:
|
210
|
+
get: lodash_1.default.once(() => sbvr_utils_1.api[modelName].clone({
|
208
211
|
passthrough: { req, tx },
|
209
212
|
})),
|
210
213
|
});
|
@@ -213,8 +216,7 @@ const getReadOnlyArgs = (modelName, args) => {
|
|
213
216
|
if (args.tx == null || args.tx.isReadOnly()) {
|
214
217
|
return args;
|
215
218
|
}
|
216
|
-
|
217
|
-
readOnlyArgs = { ...args, tx: args.tx.asReadOnly() };
|
219
|
+
const readOnlyArgs = { ...args, tx: args.tx.asReadOnly() };
|
218
220
|
if (args.request != null) {
|
219
221
|
defineApi(modelName, readOnlyArgs);
|
220
222
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/sbvr-api/hooks.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/sbvr-api/hooks.ts"],"names":[],"mappings":"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"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import type { AbstractSqlModel } from '@balena/abstract-sql-compiler';
|
1
2
|
declare module '@balena/abstract-sql-compiler' {
|
2
3
|
interface AbstractSqlTable {
|
3
4
|
fetchProcessingFields?: {
|
@@ -6,11 +7,13 @@ declare module '@balena/abstract-sql-compiler' {
|
|
6
7
|
localFields?: {
|
7
8
|
[odataName: string]: true;
|
8
9
|
};
|
10
|
+
webresourceFields?: {
|
11
|
+
[odataName: string]: true;
|
12
|
+
};
|
9
13
|
}
|
10
14
|
}
|
11
|
-
import type { AbstractSqlModel } from '@balena/abstract-sql-compiler';
|
12
15
|
import type { Result, Row } from '../database-layer/db';
|
13
|
-
import { SbvrType } from '@balena/sbvr-types';
|
16
|
+
import { type SbvrType } from '@balena/sbvr-types';
|
14
17
|
export declare const resourceURI: (vocab: string, resourceName: string, id: string | number) => string | undefined;
|
15
18
|
export declare const process: (vocab: string, abstractSqlModel: AbstractSqlModel, resourceName: string, rows: Result['rows'], { includeMetadata }: {
|
16
19
|
includeMetadata: boolean;
|
@@ -1,10 +1,14 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
6
|
exports.prepareModel = exports.process = exports.resourceURI = void 0;
|
4
7
|
const odata_to_abstract_sql_1 = require("@balena/odata-to-abstract-sql");
|
5
|
-
const sbvr_types_1 = require("@balena/sbvr-types");
|
6
|
-
const
|
8
|
+
const sbvr_types_1 = __importDefault(require("@balena/sbvr-types"));
|
9
|
+
const lodash_1 = __importDefault(require("lodash"));
|
7
10
|
const sbvr_utils_1 = require("./sbvr-utils");
|
11
|
+
const webresource_handler_1 = require("../webresource-handler");
|
8
12
|
const checkForExpansion = async (vocab, abstractSqlModel, parentResourceName, fieldName, row, opts) => {
|
9
13
|
let field = row[fieldName];
|
10
14
|
if (field == null) {
|
@@ -59,8 +63,20 @@ const getLocalFields = (table) => {
|
|
59
63
|
}
|
60
64
|
return table.localFields;
|
61
65
|
};
|
66
|
+
const getWebResourceFields = (table) => {
|
67
|
+
if (table.webresourceFields == null) {
|
68
|
+
table.webresourceFields = {};
|
69
|
+
for (const { fieldName, dataType } of table.fields) {
|
70
|
+
if (dataType === 'WebResource') {
|
71
|
+
const odataName = (0, odata_to_abstract_sql_1.sqlNameToODataName)(fieldName);
|
72
|
+
table.webresourceFields[odataName] = true;
|
73
|
+
}
|
74
|
+
}
|
75
|
+
}
|
76
|
+
return table.webresourceFields;
|
77
|
+
};
|
62
78
|
const getFetchProcessingFields = (table) => {
|
63
|
-
return (table.fetchProcessingFields ??=
|
79
|
+
return (table.fetchProcessingFields ??= (0, lodash_1.default)(table.fields)
|
64
80
|
.filter(({ dataType }) => sbvr_types_1.default[dataType]
|
65
81
|
?.fetchProcessing != null)
|
66
82
|
.map(({ fieldName, dataType }) => {
|
@@ -89,12 +105,15 @@ const process = async (vocab, abstractSqlModel, resourceName, rows, { includeMet
|
|
89
105
|
vocabulary: vocab,
|
90
106
|
resourceName,
|
91
107
|
});
|
108
|
+
const configuredWebResourceHandler = (0, webresource_handler_1.getWebresourceHandler)();
|
92
109
|
const table = abstractSqlModel.tables[sqlResourceName];
|
93
110
|
const fieldNames = Object.keys(rows[0]);
|
94
111
|
const fetchProcessingFields = getFetchProcessingFields(table);
|
95
|
-
const processedFields = fieldNames.filter((fieldName) =>
|
112
|
+
const processedFields = fieldNames.filter((fieldName) => Object.prototype.hasOwnProperty.call(fetchProcessingFields, fieldName));
|
96
113
|
const localFields = getLocalFields(table);
|
97
|
-
const expandableFields = fieldNames.filter((fieldName) => !
|
114
|
+
const expandableFields = fieldNames.filter((fieldName) => !Object.prototype.hasOwnProperty.call(localFields, fieldName));
|
115
|
+
const webresourceFields = getWebResourceFields(table);
|
116
|
+
const requiredSigningFields = fieldNames.filter((fieldName) => Object.prototype.hasOwnProperty.call(webresourceFields, fieldName));
|
98
117
|
const odataIdField = (0, odata_to_abstract_sql_1.sqlNameToODataName)(table.idField);
|
99
118
|
for (const row of rows) {
|
100
119
|
for (const fieldName of processedFields) {
|
@@ -106,6 +125,16 @@ const process = async (vocab, abstractSqlModel, resourceName, rows, { includeMet
|
|
106
125
|
};
|
107
126
|
}
|
108
127
|
}
|
128
|
+
if (requiredSigningFields.length > 0 &&
|
129
|
+
configuredWebResourceHandler != null) {
|
130
|
+
await Promise.all(rows.map(async (row) => {
|
131
|
+
await Promise.all(requiredSigningFields.map(async (fieldName) => {
|
132
|
+
if (row[fieldName] != null) {
|
133
|
+
row[fieldName] = await configuredWebResourceHandler.onPreRespond(row[fieldName]);
|
134
|
+
}
|
135
|
+
}));
|
136
|
+
}));
|
137
|
+
}
|
109
138
|
if (expandableFields.length > 0) {
|
110
139
|
await Promise.all(rows.map(async (row) => {
|
111
140
|
await Promise.all(expandableFields.map(async (fieldName) => {
|
@@ -117,9 +146,10 @@ const process = async (vocab, abstractSqlModel, resourceName, rows, { includeMet
|
|
117
146
|
};
|
118
147
|
exports.process = process;
|
119
148
|
const prepareModel = (abstractSqlModel) => {
|
120
|
-
|
149
|
+
lodash_1.default.forEach(abstractSqlModel.tables, (table) => {
|
121
150
|
getLocalFields(table);
|
122
151
|
getFetchProcessingFields(table);
|
152
|
+
getWebResourceFields(table);
|
123
153
|
});
|
124
154
|
};
|
125
155
|
exports.prepareModel = prepareModel;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"odata-response.js","sourceRoot":"","sources":["../../src/sbvr-api/odata-response.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"odata-response.js","sourceRoot":"","sources":["../../src/sbvr-api/odata-response.ts"],"names":[],"mappings":"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"}
|
@@ -3,9 +3,9 @@ import type * as Express from 'express';
|
|
3
3
|
import type { Tx } from '../database-layer/db';
|
4
4
|
import type { ApiKey, User } from '../sbvr-api/sbvr-utils';
|
5
5
|
import * as sbvrUtils from '../sbvr-api/sbvr-utils';
|
6
|
-
import { HookReq } from './hooks';
|
6
|
+
import { type HookReq } from './hooks';
|
7
7
|
import { PermissionError, PermissionParsingError } from './errors';
|
8
|
-
import { ODataRequest } from './uri-parser';
|
8
|
+
import { type ODataRequest } from './uri-parser';
|
9
9
|
export { PermissionError, PermissionParsingError };
|
10
10
|
export interface PermissionReq {
|
11
11
|
user?: User;
|
@@ -19,15 +19,14 @@ interface NestedCheckOr<T> {
|
|
19
19
|
interface NestedCheckAnd<T> {
|
20
20
|
and: NestedCheckArray<T>;
|
21
21
|
}
|
22
|
-
|
23
|
-
}
|
22
|
+
type NestedCheckArray<T> = Array<NestedCheck<T>>;
|
24
23
|
type NestedCheck<T> = NestedCheckOr<T> | NestedCheckAnd<T> | NestedCheckArray<T> | T;
|
25
24
|
type PermissionCheck = NestedCheck<string>;
|
26
25
|
type MappedType<I, O> = O extends NestedCheck<infer T> ? Exclude<Exclude<I, string> | T, boolean> : Exclude<Exclude<I, string> | O, boolean>;
|
27
26
|
type MappedNestedCheck<T extends NestedCheck<I>, I, O> = T extends NestedCheckOr<I> ? NestedCheckOr<MappedType<I, O>> : T extends NestedCheckAnd<I> ? NestedCheckAnd<MappedType<I, O>> : T extends NestedCheckArray<I> ? NestedCheckArray<MappedType<I, O>> : Exclude<I, string> | O;
|
28
|
-
export declare function nestedCheck<I extends
|
29
|
-
export declare function nestedCheck<I extends
|
30
|
-
export declare function nestedCheck<I extends
|
27
|
+
export declare function nestedCheck<I extends string, O>(check: I, stringCallback: (s: string) => O): O;
|
28
|
+
export declare function nestedCheck<I extends boolean, O>(check: I, stringCallback: (s: string) => O): boolean;
|
29
|
+
export declare function nestedCheck<I extends NonNullable<unknown>, O>(check: NestedCheck<I>, stringCallback: (s: string) => O): Exclude<I, string> | O | MappedNestedCheck<typeof check, I, O>;
|
31
30
|
export declare const checkPassword: (username: string, password: string) => Promise<{
|
32
31
|
id: number;
|
33
32
|
actor: number;
|