@balena/pinejs 16.0.0-build--batch-f2ffc3d6bcb9f3294fd4fc9de3c21bfe167e100d-1 → 16.0.0-build-fisehara-update-sbvr-types-cfbbecbb0387e87e17e14be8991be73d1a4efdd0-1
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 +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
@@ -3,15 +3,17 @@ import type * as Express from 'express';
|
|
3
3
|
import './sbvr-loader';
|
4
4
|
import * as dbModule from '../database-layer/db';
|
5
5
|
import * as configLoader from '../config-loader/config-loader';
|
6
|
-
import * as migratorUtils from '../migrator/utils';
|
6
|
+
import type * as migratorUtils from '../migrator/utils';
|
7
7
|
export * as dbModule from '../database-layer/db';
|
8
8
|
export { PinejsSessionStore } from '../pinejs-session-store/pinejs-session-store';
|
9
|
+
export { mountLoginRouter } from '../passport-pinejs/mount-login-router';
|
9
10
|
export * as sbvrUtils from '../sbvr-api/sbvr-utils';
|
10
11
|
export * as permissions from '../sbvr-api/permissions';
|
11
12
|
export * as errors from '../sbvr-api/errors';
|
12
13
|
export * as env from '../config-loader/env';
|
13
14
|
export * as types from '../sbvr-api/common-types';
|
14
15
|
export * as hooks from '../sbvr-api/hooks';
|
16
|
+
export * as webResourceHandler from '../webresource-handler';
|
15
17
|
export type { configLoader as ConfigLoader };
|
16
18
|
export type { migratorUtils as Migrator };
|
17
19
|
declare let envDatabaseOptions: dbModule.DatabaseOptions<string>;
|
@@ -1,21 +1,47 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.init = exports.hooks = exports.types = exports.env = exports.errors = exports.permissions = exports.sbvrUtils = exports.PinejsSessionStore = exports.dbModule = void 0;
|
26
|
+
exports.init = exports.webResourceHandler = exports.hooks = exports.types = exports.env = exports.errors = exports.permissions = exports.sbvrUtils = exports.mountLoginRouter = exports.PinejsSessionStore = exports.dbModule = void 0;
|
4
27
|
require("./sbvr-loader");
|
5
|
-
const dbModule = require("../database-layer/db");
|
6
|
-
const configLoader = require("../config-loader/config-loader");
|
7
|
-
const migrator = require("../migrator/sync");
|
8
|
-
const sbvrUtils = require("../sbvr-api/sbvr-utils");
|
28
|
+
const dbModule = __importStar(require("../database-layer/db"));
|
29
|
+
const configLoader = __importStar(require("../config-loader/config-loader"));
|
30
|
+
const migrator = __importStar(require("../migrator/sync"));
|
31
|
+
const sbvrUtils = __importStar(require("../sbvr-api/sbvr-utils"));
|
9
32
|
const env_1 = require("../config-loader/env");
|
10
|
-
exports.dbModule = require("../database-layer/db");
|
33
|
+
exports.dbModule = __importStar(require("../database-layer/db"));
|
11
34
|
var pinejs_session_store_1 = require("../pinejs-session-store/pinejs-session-store");
|
12
35
|
Object.defineProperty(exports, "PinejsSessionStore", { enumerable: true, get: function () { return pinejs_session_store_1.PinejsSessionStore; } });
|
13
|
-
|
14
|
-
exports
|
15
|
-
exports.
|
16
|
-
exports.
|
17
|
-
exports.
|
18
|
-
exports.
|
36
|
+
var mount_login_router_1 = require("../passport-pinejs/mount-login-router");
|
37
|
+
Object.defineProperty(exports, "mountLoginRouter", { enumerable: true, get: function () { return mount_login_router_1.mountLoginRouter; } });
|
38
|
+
exports.sbvrUtils = __importStar(require("../sbvr-api/sbvr-utils"));
|
39
|
+
exports.permissions = __importStar(require("../sbvr-api/permissions"));
|
40
|
+
exports.errors = __importStar(require("../sbvr-api/errors"));
|
41
|
+
exports.env = __importStar(require("../config-loader/env"));
|
42
|
+
exports.types = __importStar(require("../sbvr-api/common-types"));
|
43
|
+
exports.hooks = __importStar(require("../sbvr-api/hooks"));
|
44
|
+
exports.webResourceHandler = __importStar(require("../webresource-handler"));
|
19
45
|
let envDatabaseOptions;
|
20
46
|
if (dbModule.engines.websql != null) {
|
21
47
|
envDatabaseOptions = {
|
@@ -51,7 +77,7 @@ const init = async (app, config, databaseOptions = envDatabaseOptions) => {
|
|
51
77
|
await cfgLoader.loadConfig(migrator.config);
|
52
78
|
const promises = [];
|
53
79
|
if (process.env.SBVR_SERVER_ENABLED) {
|
54
|
-
const sbvrServer = await
|
80
|
+
const sbvrServer = await import('../data-server/sbvr-server.js');
|
55
81
|
const transactions = require('../http-transactions/transactions');
|
56
82
|
promises.push(cfgLoader.loadConfig(sbvrServer.config));
|
57
83
|
promises.push(cfgLoader
|
@@ -62,6 +88,7 @@ const init = async (app, config, databaseOptions = envDatabaseOptions) => {
|
|
62
88
|
promises.push(cfgLoader.loadApplicationConfig(config));
|
63
89
|
}
|
64
90
|
await Promise.all(promises);
|
91
|
+
await sbvrUtils.postSetup(app, db);
|
65
92
|
return cfgLoader;
|
66
93
|
}
|
67
94
|
catch (err) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/server-glue/module.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/server-glue/module.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sbvr-loader.js","sourceRoot":"","sources":["../../src/server-glue/sbvr-loader.ts"],"names":[],"mappings":";;AAEA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;
|
1
|
+
{"version":3,"file":"sbvr-loader.js","sourceRoot":"","sources":["../../src/server-glue/sbvr-loader.ts"],"names":[],"mappings":";;AAEA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QAW/D,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC;IAC9B,CAAC;IAGD,MAAM,EAAE,GAAc,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,MAAkB,EAAE,QAAgB,EAAE,EAAE,CAC1E,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACvD,CAAC"}
|
@@ -1,15 +1,41 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
27
|
+
};
|
2
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
29
|
exports.initialised = exports.ExtendedSBVRParser = exports.PinejsSessionStore = exports.sbvrUtils = void 0;
|
4
|
-
const Pinejs = require("./module");
|
30
|
+
const Pinejs = __importStar(require("./module"));
|
5
31
|
var module_1 = require("./module");
|
6
32
|
Object.defineProperty(exports, "sbvrUtils", { enumerable: true, get: function () { return module_1.sbvrUtils; } });
|
7
33
|
Object.defineProperty(exports, "PinejsSessionStore", { enumerable: true, get: function () { return module_1.PinejsSessionStore; } });
|
8
34
|
var extended_sbvr_parser_1 = require("../extended-sbvr-parser/extended-sbvr-parser");
|
9
35
|
Object.defineProperty(exports, "ExtendedSBVRParser", { enumerable: true, get: function () { return extended_sbvr_parser_1.ExtendedSBVRParser; } });
|
10
|
-
const
|
11
|
-
const
|
12
|
-
const app =
|
36
|
+
const mount_login_router_1 = require("../passport-pinejs/mount-login-router");
|
37
|
+
const express_1 = __importDefault(require("express"));
|
38
|
+
const app = (0, express_1.default)();
|
13
39
|
switch (app.get('env')) {
|
14
40
|
case 'production':
|
15
41
|
console.log = () => {
|
@@ -23,7 +49,6 @@ if (!process.browser) {
|
|
23
49
|
const serveStatic = require('serve-static');
|
24
50
|
const cookieParser = require('cookie-parser');
|
25
51
|
const bodyParser = require('body-parser');
|
26
|
-
const multer = require('multer');
|
27
52
|
const methodOverride = require('method-override');
|
28
53
|
const expressSession = require('express-session');
|
29
54
|
app.use(compression());
|
@@ -31,7 +56,6 @@ if (!process.browser) {
|
|
31
56
|
app.use('/', serveStatic(path.join(root, 'static')));
|
32
57
|
app.use(cookieParser());
|
33
58
|
app.use(bodyParser());
|
34
|
-
app.use(multer().any());
|
35
59
|
app.use(methodOverride());
|
36
60
|
app.use(expressSession({
|
37
61
|
secret: 'A pink cat jumped over a rainbow',
|
@@ -54,39 +78,7 @@ if (!process.browser) {
|
|
54
78
|
}
|
55
79
|
exports.initialised = Pinejs.init(app)
|
56
80
|
.then(async (configLoader) => {
|
57
|
-
await
|
58
|
-
configLoader.loadConfig(passportPinejs.config),
|
59
|
-
configLoader.loadConfig(Pinejs.PinejsSessionStore.config),
|
60
|
-
]);
|
61
|
-
if (typeof process === 'undefined' ||
|
62
|
-
process == null ||
|
63
|
-
!process.env.DISABLE_DEFAULT_AUTH) {
|
64
|
-
app.post('/login', passportPinejs.login((err, user, req, res) => {
|
65
|
-
if (err) {
|
66
|
-
console.error('Error logging in', err);
|
67
|
-
res.status(500).end();
|
68
|
-
}
|
69
|
-
else if (user === false) {
|
70
|
-
if (req.xhr === true) {
|
71
|
-
res.status(401).end();
|
72
|
-
}
|
73
|
-
else {
|
74
|
-
res.redirect('/login.html');
|
75
|
-
}
|
76
|
-
}
|
77
|
-
else {
|
78
|
-
if (req.xhr === true) {
|
79
|
-
res.status(200).end();
|
80
|
-
}
|
81
|
-
else {
|
82
|
-
res.redirect('/');
|
83
|
-
}
|
84
|
-
}
|
85
|
-
}));
|
86
|
-
app.get('/logout', passportPinejs.logout, (_req, res) => {
|
87
|
-
res.redirect('/');
|
88
|
-
});
|
89
|
-
}
|
81
|
+
await (0, mount_login_router_1.mountLoginRouter)(configLoader, app);
|
90
82
|
app.listen(process.env.PORT || 1337, () => {
|
91
83
|
console.info('Server started');
|
92
84
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server-glue/server.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server-glue/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,iDAAmC;AACnC,mCAAyD;AAAhD,mGAAA,SAAS,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAEtC,qFAAkF;AAAzE,0HAAA,kBAAkB,OAAA;AAE3B,8EAAyE;AAEzE,sDAA8B;AAE9B,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;AAEtB,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IACxB,KAAK,YAAY;QAChB,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE;QAEnB,CAAC,CAAC;QACF,MAAM;AACR,CAAC;AAED,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAEtB,MAAM,QAAQ,GAAoB,OAAO,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,IAAI,GAAgB,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAuB,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAuB,OAAO,CAAC,cAAc,CAAC,CAAC;IAChE,MAAM,YAAY,GAAwB,OAAO,CAAC,eAAe,CAAC,CAAC;IACnE,MAAM,UAAU,GAAsB,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7D,MAAM,cAAc,GAA0B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACzE,MAAM,cAAc,GAA0B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAGzE,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IAEvB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IAC1C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAErD,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IACxB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACtB,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IAC1B,GAAG,CAAC,GAAG,CACN,cAAc,CAAC;QACd,MAAM,EAAE,kCAAkC;QAC1C,KAAK,EAAE,IAAI,MAAM,CAAC,kBAAkB,EAAE;KACtC,CAAC,CACF,CAAC;IACF,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/B,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAE5B,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC;QACxC,GAAG,CAAC,MAAM,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;QAClD,GAAG,CAAC,MAAM,CACT,8BAA8B,EAC9B,8CAA8C,CAC9C,CAAC;QACF,GAAG,CAAC,MAAM,CACT,8BAA8B,EAC9B,gGAAgG,CAChG,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,EAAE,CAAC;IACR,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,EAAE,CAAC;IACR,CAAC,CAAC,CAAC;AACJ,CAAC;AAEY,QAAA,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;KACzC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE;IAC5B,MAAM,IAAA,qCAAgB,EAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAE1C,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,GAAG,EAAE;QACzC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACd,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import type { WebResourceType as WebResource } from '@balena/sbvr-types';
|
2
|
+
import type { IncomingFile, UploadResponse, WebResourceHandler } from '..';
|
3
|
+
export declare class NoopHandler implements WebResourceHandler {
|
4
|
+
handleFile(resource: IncomingFile): Promise<UploadResponse>;
|
5
|
+
removeFile(): Promise<void>;
|
6
|
+
onPreRespond(webResource: WebResource): Promise<WebResource>;
|
7
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.NoopHandler = void 0;
|
4
|
+
class NoopHandler {
|
5
|
+
async handleFile(resource) {
|
6
|
+
resource.stream.resume();
|
7
|
+
return {
|
8
|
+
filename: 'noop',
|
9
|
+
size: 0,
|
10
|
+
};
|
11
|
+
}
|
12
|
+
async removeFile() {
|
13
|
+
return;
|
14
|
+
}
|
15
|
+
async onPreRespond(webResource) {
|
16
|
+
return webResource;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
exports.NoopHandler = NoopHandler;
|
20
|
+
//# sourceMappingURL=NoopHandler.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"NoopHandler.js","sourceRoot":"","sources":["../../../src/webresource-handler/handlers/NoopHandler.ts"],"names":[],"mappings":";;;AAGA,MAAa,WAAW;IAChB,KAAK,CAAC,UAAU,CAAC,QAAsB;QAE7C,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACzB,OAAO;YACN,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,CAAC;SACP,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,UAAU;QACtB,OAAO;IACR,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,WAAwB;QACjD,OAAO,WAAW,CAAC;IACpB,CAAC;CACD;AAjBD,kCAiBC"}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { type IncomingFile, type UploadResponse, type WebResourceHandler } from '..';
|
2
|
+
import type { WebResourceType as WebResource } from '@balena/sbvr-types';
|
3
|
+
export interface S3HandlerProps {
|
4
|
+
region: string;
|
5
|
+
accessKey: string;
|
6
|
+
secretKey: string;
|
7
|
+
endpoint: string;
|
8
|
+
bucket: string;
|
9
|
+
maxSize?: number;
|
10
|
+
signedUrlExpireTimeSeconds?: number;
|
11
|
+
signedUrlCacheExpireTimeSeconds?: number;
|
12
|
+
}
|
13
|
+
export declare class S3Handler implements WebResourceHandler {
|
14
|
+
private readonly config;
|
15
|
+
private readonly bucket;
|
16
|
+
private readonly maxFileSize;
|
17
|
+
protected readonly signedUrlExpireTimeSeconds: number;
|
18
|
+
protected readonly signedUrlCacheExpireTimeSeconds: number;
|
19
|
+
protected cachedGetSignedUrl: (fileKey: string) => Promise<string>;
|
20
|
+
private client;
|
21
|
+
constructor(config: S3HandlerProps);
|
22
|
+
handleFile(resource: IncomingFile): Promise<UploadResponse>;
|
23
|
+
removeFile(href: string): Promise<void>;
|
24
|
+
onPreRespond(webResource: WebResource): Promise<WebResource>;
|
25
|
+
private s3SignUrl;
|
26
|
+
private getS3URL;
|
27
|
+
private getKeyFromHref;
|
28
|
+
}
|
@@ -0,0 +1,97 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.S3Handler = void 0;
|
7
|
+
const __1 = require("..");
|
8
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
9
|
+
const lib_storage_1 = require("@aws-sdk/lib-storage");
|
10
|
+
const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
|
11
|
+
const crypto_1 = require("crypto");
|
12
|
+
const memoizee_1 = __importDefault(require("memoizee"));
|
13
|
+
class S3Handler {
|
14
|
+
constructor(config) {
|
15
|
+
this.config = {
|
16
|
+
region: config.region,
|
17
|
+
credentials: {
|
18
|
+
accessKeyId: config.accessKey,
|
19
|
+
secretAccessKey: config.secretKey,
|
20
|
+
},
|
21
|
+
endpoint: config.endpoint,
|
22
|
+
forcePathStyle: true,
|
23
|
+
};
|
24
|
+
this.signedUrlExpireTimeSeconds =
|
25
|
+
config.signedUrlExpireTimeSeconds ?? 86400;
|
26
|
+
this.signedUrlCacheExpireTimeSeconds =
|
27
|
+
config.signedUrlCacheExpireTimeSeconds ?? 82800;
|
28
|
+
this.maxFileSize = config.maxSize ?? 52428800;
|
29
|
+
this.bucket = config.bucket;
|
30
|
+
this.client = new client_s3_1.S3Client(this.config);
|
31
|
+
this.cachedGetSignedUrl = (0, memoizee_1.default)(this.s3SignUrl, {
|
32
|
+
maxAge: this.signedUrlCacheExpireTimeSeconds * 1000,
|
33
|
+
});
|
34
|
+
}
|
35
|
+
async handleFile(resource) {
|
36
|
+
let size = 0;
|
37
|
+
const key = `${resource.fieldname}_${(0, crypto_1.randomUUID)()}_${resource.originalname}`;
|
38
|
+
const params = {
|
39
|
+
Bucket: this.bucket,
|
40
|
+
Key: key,
|
41
|
+
Body: resource.stream,
|
42
|
+
ContentType: resource.mimetype,
|
43
|
+
};
|
44
|
+
const upload = new lib_storage_1.Upload({ client: this.client, params });
|
45
|
+
upload.on('httpUploadProgress', async (ev) => {
|
46
|
+
size = ev.total ?? ev.loaded;
|
47
|
+
if (size > this.maxFileSize) {
|
48
|
+
await upload.abort();
|
49
|
+
}
|
50
|
+
});
|
51
|
+
try {
|
52
|
+
await upload.done();
|
53
|
+
}
|
54
|
+
catch (err) {
|
55
|
+
resource.stream.resume();
|
56
|
+
if (size > this.maxFileSize) {
|
57
|
+
throw new __1.FileSizeExceededError(this.maxFileSize);
|
58
|
+
}
|
59
|
+
throw new __1.WebResourceError(err);
|
60
|
+
}
|
61
|
+
const filename = this.getS3URL(key);
|
62
|
+
return { size, filename };
|
63
|
+
}
|
64
|
+
async removeFile(href) {
|
65
|
+
const fileKey = this.getKeyFromHref(href);
|
66
|
+
const command = new client_s3_1.DeleteObjectCommand({
|
67
|
+
Bucket: this.bucket,
|
68
|
+
Key: fileKey,
|
69
|
+
});
|
70
|
+
await this.client.send(command);
|
71
|
+
}
|
72
|
+
async onPreRespond(webResource) {
|
73
|
+
if (webResource.href != null) {
|
74
|
+
const fileKey = this.getKeyFromHref(webResource.href);
|
75
|
+
webResource.href = await this.cachedGetSignedUrl(fileKey);
|
76
|
+
}
|
77
|
+
return webResource;
|
78
|
+
}
|
79
|
+
s3SignUrl(fileKey) {
|
80
|
+
const command = new client_s3_1.GetObjectCommand({
|
81
|
+
Bucket: this.bucket,
|
82
|
+
Key: fileKey,
|
83
|
+
});
|
84
|
+
return (0, s3_request_presigner_1.getSignedUrl)(this.client, command, {
|
85
|
+
expiresIn: this.signedUrlExpireTimeSeconds,
|
86
|
+
});
|
87
|
+
}
|
88
|
+
getS3URL(key) {
|
89
|
+
return `${this.config.endpoint}/${this.bucket}/${key}`;
|
90
|
+
}
|
91
|
+
getKeyFromHref(href) {
|
92
|
+
const hrefWithoutParams = (0, __1.normalizeHref)(href);
|
93
|
+
return hrefWithoutParams.substring(hrefWithoutParams.lastIndexOf('/') + 1);
|
94
|
+
}
|
95
|
+
}
|
96
|
+
exports.S3Handler = S3Handler;
|
97
|
+
//# sourceMappingURL=S3Handler.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"S3Handler.js","sourceRoot":"","sources":["../../../src/webresource-handler/handlers/S3Handler.ts"],"names":[],"mappings":";;;;;;AAAA,0BAOY;AACZ,kDAM4B;AAC5B,sDAA8C;AAC9C,wEAA6D;AAE7D,mCAAoC;AAEpC,wDAA+B;AAa/B,MAAa,SAAS;IAWrB,YAAY,MAAsB;QACjC,IAAI,CAAC,MAAM,GAAG;YACb,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE;gBACZ,WAAW,EAAE,MAAM,CAAC,SAAS;gBAC7B,eAAe,EAAE,MAAM,CAAC,SAAS;aACjC;YACD,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,cAAc,EAAE,IAAI;SACpB,CAAC;QAEF,IAAI,CAAC,0BAA0B;YAC9B,MAAM,CAAC,0BAA0B,IAAI,KAAK,CAAC;QAC5C,IAAI,CAAC,+BAA+B;YACnC,MAAM,CAAC,+BAA+B,IAAI,KAAK,CAAC;QAEjD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,oBAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAIxC,IAAI,CAAC,kBAAkB,GAAG,IAAA,kBAAO,EAAC,IAAI,CAAC,SAAS,EAAE;YACjD,MAAM,EAAE,IAAI,CAAC,+BAA+B,GAAG,IAAI;SACnD,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,QAAsB;QAC7C,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,SAAS,IAAI,IAAA,mBAAU,GAAE,IAChD,QAAQ,CAAC,YACV,EAAE,CAAC;QACH,MAAM,MAAM,GAA0B;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,QAAQ,CAAC,MAAM;YACrB,WAAW,EAAE,QAAQ,CAAC,QAAQ;SAC9B,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,oBAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAE3D,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YAC5C,IAAI,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,MAAO,CAAC;YAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC7B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACJ,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YACnB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACzB,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC7B,MAAM,IAAI,yBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,IAAI,oBAAgB,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,IAAY;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAE1C,MAAM,OAAO,GAAG,IAAI,+BAAmB,CAAC;YACvC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,OAAO;SACZ,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,WAAwB;QACjD,IAAI,WAAW,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACtD,WAAW,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,WAAW,CAAC;IACpB,CAAC;IAEO,SAAS,CAAC,OAAe;QAChC,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,OAAO;SACZ,CAAC,CAAC;QACH,OAAO,IAAA,mCAAY,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE;YACzC,SAAS,EAAE,IAAI,CAAC,0BAA0B;SAC1C,CAAC,CAAC;IACJ,CAAC;IAEO,QAAQ,CAAC,GAAW;QAC3B,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;IACxD,CAAC;IAEO,cAAc,CAAC,IAAY;QAClC,MAAM,iBAAiB,GAAG,IAAA,iBAAa,EAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,iBAAiB,CAAC,SAAS,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;CACD;AA7GD,8BA6GC"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./NoopHandler"), exports);
|
18
|
+
__exportStar(require("./S3Handler"), exports);
|
19
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/webresource-handler/handlers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,8CAA4B"}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import type * as Express from 'express';
|
3
|
+
import type * as stream from 'node:stream';
|
4
|
+
import type { WebResourceType as WebResource } from '@balena/sbvr-types';
|
5
|
+
import { TypedError } from 'typed-error';
|
6
|
+
export * from './handlers';
|
7
|
+
export interface IncomingFile {
|
8
|
+
fieldname: string;
|
9
|
+
originalname: string;
|
10
|
+
encoding: string;
|
11
|
+
mimetype: string;
|
12
|
+
stream: stream.Readable;
|
13
|
+
}
|
14
|
+
export interface UploadResponse {
|
15
|
+
size: number;
|
16
|
+
filename: string;
|
17
|
+
}
|
18
|
+
export interface WebResourceHandler {
|
19
|
+
handleFile: (resource: IncomingFile) => Promise<UploadResponse>;
|
20
|
+
removeFile: (fileReference: string) => Promise<void>;
|
21
|
+
onPreRespond: (webResource: WebResource) => Promise<WebResource>;
|
22
|
+
}
|
23
|
+
export declare class WebResourceError extends TypedError {
|
24
|
+
}
|
25
|
+
export declare class FileSizeExceededError extends WebResourceError {
|
26
|
+
name: string;
|
27
|
+
constructor(maxSize: number);
|
28
|
+
}
|
29
|
+
export declare const setupWebresourceHandler: (handler: WebResourceHandler) => void;
|
30
|
+
export declare const getWebresourceHandler: () => WebResourceHandler | undefined;
|
31
|
+
export declare const getUploaderMiddlware: (handler: WebResourceHandler) => Express.RequestHandler;
|
32
|
+
export declare const normalizeHref: (href: string) => string;
|
33
|
+
export declare const getDefaultHandler: () => WebResourceHandler;
|
34
|
+
export declare const setupUploadHooks: (handler: WebResourceHandler, apiRoot: string, resourceName: string) => void;
|