@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
@@ -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":"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"}
|
@@ -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":"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"}
|
@@ -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;
|