@ms-cloudpack/create-express-app 1.6.28 → 1.6.29
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/lib/createExpressApp.d.ts +1 -0
- package/lib/createExpressApp.d.ts.map +1 -1
- package/lib/createExpressApp.js +2 -2
- package/lib/createExpressApp.js.map +1 -1
- package/lib/parseHttpsConfig.d.ts +1 -1
- package/lib/parseHttpsConfig.d.ts.map +1 -1
- package/lib/parseHttpsConfig.js +5 -2
- package/lib/parseHttpsConfig.js.map +1 -1
- package/package.json +3 -2
|
@@ -6,6 +6,7 @@ export declare function createExpressApp(options: {
|
|
|
6
6
|
requireSpecifiedPort?: boolean;
|
|
7
7
|
hostname?: string;
|
|
8
8
|
requestHeaders?: Record<string, string>;
|
|
9
|
+
cwd: string;
|
|
9
10
|
sslOptions?: HttpsConfig;
|
|
10
11
|
setupCallback?: (app: Express, baseUrl: string) => void | Promise<void>;
|
|
11
12
|
publicDir?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createExpressApp.d.ts","sourceRoot":"","sources":["../src/createExpressApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAMnC,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,WAAW,CAAC;IAEzB,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC;IACV,GAAG,EAAE,OAAO,CAAC;IAEb,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IAEZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,
|
|
1
|
+
{"version":3,"file":"createExpressApp.d.ts","sourceRoot":"","sources":["../src/createExpressApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAMnC,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,WAAW,CAAC;IAEzB,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC;IACV,GAAG,EAAE,OAAO,CAAC;IAEb,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IAEZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CA6FD;AAED,YAAY,EAAE,OAAO,EAAE,CAAC"}
|
package/lib/createExpressApp.js
CHANGED
|
@@ -6,7 +6,7 @@ import https from 'https';
|
|
|
6
6
|
import { parseHttpsConfig } from './parseHttpsConfig.js';
|
|
7
7
|
import { getDomain } from './getDomain.js';
|
|
8
8
|
export async function createExpressApp(options) {
|
|
9
|
-
const { setupCallback, hostname, requestHeaders = {}, sslOptions, requireSpecifiedPort, publicDir, portRange: ports, middlewareMode, } = options;
|
|
9
|
+
const { setupCallback, hostname, requestHeaders = {}, cwd, sslOptions, requireSpecifiedPort, publicDir, portRange: ports, middlewareMode, } = options;
|
|
10
10
|
const portRange = typeof ports === 'number' ? [ports] : ports;
|
|
11
11
|
if (requireSpecifiedPort && (portRange === undefined || portRange.length === 0)) {
|
|
12
12
|
throw new Error('No port specified');
|
|
@@ -43,7 +43,7 @@ export async function createExpressApp(options) {
|
|
|
43
43
|
await setupCallback?.(app, url);
|
|
44
44
|
if (!middlewareMode && sslOptions && Object.keys(sslOptions).length !== 0) {
|
|
45
45
|
// Create an HTTPS server.
|
|
46
|
-
const httpsServer = https.createServer(parseHttpsConfig(sslOptions), app);
|
|
46
|
+
const httpsServer = https.createServer(parseHttpsConfig(sslOptions, cwd), app);
|
|
47
47
|
server = httpsServer.listen(port, domain);
|
|
48
48
|
}
|
|
49
49
|
else if (!middlewareMode) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createExpressApp.js","sourceRoot":"","sources":["../src/createExpressApp.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,aAAa,CAAC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,OAAyB,MAAM,SAAS,CAAC;AAChD,OAAO,OAAO,MAAM,UAAU,CAAC;AAE/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"createExpressApp.js","sourceRoot":"","sources":["../src/createExpressApp.ts"],"names":[],"mappings":"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","sourcesContent":["import type { HttpsConfig } from '@ms-cloudpack/common-types';\nimport compression from 'compression';\nimport cors from 'cors';\nimport express, { type Express } from 'express';\nimport getPort from 'get-port';\nimport type { Server } from 'http';\nimport https from 'https';\nimport type { Socket } from 'net';\nimport { parseHttpsConfig } from './parseHttpsConfig.js';\nimport { getDomain } from './getDomain.js';\n\nexport async function createExpressApp(options: {\n portRange?: number | number[];\n requireSpecifiedPort?: boolean;\n hostname?: string;\n requestHeaders?: Record<string, string>;\n cwd: string;\n sslOptions?: HttpsConfig;\n /* @deprecated - use returned app.*/\n setupCallback?: (app: Express, baseUrl: string) => void | Promise<void>;\n publicDir?: string;\n middlewareMode?: boolean;\n server?: Server;\n}): Promise<{\n app: Express;\n /* The server will be undefined if middlewareMode is true and server is not provided. */\n server: Server | undefined;\n close: () => Promise<void>;\n url: string;\n /* @deprecated - use url.*/\n baseUrl: string;\n protocol: 'http' | 'https';\n domain: string;\n port: number;\n}> {\n const {\n setupCallback,\n hostname,\n requestHeaders = {},\n cwd,\n sslOptions,\n requireSpecifiedPort,\n publicDir,\n portRange: ports,\n middlewareMode,\n } = options;\n\n const portRange = typeof ports === 'number' ? [ports] : ports;\n\n if (requireSpecifiedPort && (portRange === undefined || portRange.length === 0)) {\n throw new Error('No port specified');\n }\n\n // Get the available port.\n const port = await getPort({\n port: portRange,\n });\n\n if (requireSpecifiedPort && portRange && !portRange.includes(port)) {\n throw new Error('Specified port not available');\n }\n\n const app = express();\n\n // Use cors.\n app.use(cors());\n\n // Use compression.\n app.use(compression());\n\n app.use((_, res, next) => {\n for (const [headerName, headerValue] of Object.entries(requestHeaders)) {\n res.setHeader(headerName, headerValue);\n }\n next();\n });\n\n if (publicDir !== undefined) {\n app.use(express.static(publicDir, { index: false }));\n }\n\n const domain = getDomain(hostname);\n let server = options.server;\n const protocol = sslOptions && Object.keys(sslOptions).length !== 0 ? 'https' : 'http';\n let url = `${protocol}://${domain}`;\n\n if ((protocol === 'https' && port !== 443) || (protocol === 'http' && port !== 80)) {\n url += `:${port}`;\n }\n // Call setup callback with the app.\n await setupCallback?.(app, url);\n\n if (!middlewareMode && sslOptions && Object.keys(sslOptions).length !== 0) {\n // Create an HTTPS server.\n const httpsServer = https.createServer(parseHttpsConfig(sslOptions, cwd), app);\n server = httpsServer.listen(port, domain);\n } else if (!middlewareMode) {\n // Create an HTTP server.\n server = app.listen(port, domain);\n }\n\n // Track the server connections.\n const sockets = new Set<Socket>();\n\n server?.on('connection', (socket) => {\n sockets.add(socket);\n socket.on('close', () => {\n sockets.delete(socket);\n });\n });\n\n return {\n app,\n server,\n async close() {\n for (const socket of sockets) {\n socket.destroy();\n }\n sockets.clear();\n await new Promise<void>((resolve, reject) => server?.close((err) => (err ? reject(err) : resolve())));\n },\n url,\n baseUrl: url,\n protocol,\n domain,\n port,\n };\n}\n\nexport type { Express };\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { HttpsConfig } from '@ms-cloudpack/common-types';
|
|
2
|
-
export declare function parseHttpsConfig(config: HttpsConfig): HttpsConfig;
|
|
2
|
+
export declare function parseHttpsConfig(config: HttpsConfig, cwd: string): HttpsConfig;
|
|
3
3
|
//# sourceMappingURL=parseHttpsConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseHttpsConfig.d.ts","sourceRoot":"","sources":["../src/parseHttpsConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parseHttpsConfig.d.ts","sourceRoot":"","sources":["../src/parseHttpsConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAS9D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CAsB9E"}
|
package/lib/parseHttpsConfig.js
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
|
+
import path from 'path';
|
|
1
2
|
import fs from 'fs';
|
|
2
3
|
import { pathSymbolReplacement } from '@ms-cloudpack/path-utilities';
|
|
4
|
+
import { slash } from '@ms-cloudpack/path-string-parsing';
|
|
3
5
|
/*
|
|
4
6
|
* Read certificates files in Https Config and return the contents.
|
|
5
7
|
*/
|
|
6
|
-
export function parseHttpsConfig(config) {
|
|
8
|
+
export function parseHttpsConfig(config, cwd) {
|
|
7
9
|
const sslOptions = {};
|
|
8
10
|
for (const [key, value] of Object.entries(config)) {
|
|
9
11
|
// Read the file contents for the certificates.
|
|
10
12
|
if (['ca', 'cert', 'key', 'pfx'].includes(key) && typeof value === 'string') {
|
|
11
|
-
|
|
13
|
+
// Get a standard path with expanded path symbols.
|
|
14
|
+
const certFilePath = slash(path.resolve(cwd, pathSymbolReplacement(value)));
|
|
12
15
|
if (fs.existsSync(certFilePath)) {
|
|
13
16
|
sslOptions[key] = fs.readFileSync(certFilePath);
|
|
14
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseHttpsConfig.js","sourceRoot":"","sources":["../src/parseHttpsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"parseHttpsConfig.js","sourceRoot":"","sources":["../src/parseHttpsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAI1D;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAmB,EAAE,GAAW;IAC/D,MAAM,UAAU,GAAyC,EAAE,CAAC;IAE5D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,+CAA+C;QAC/C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5E,kDAAkD;YAClD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE5E,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,0EAA0E,YAAY,4EAA4E,CACnK,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,4CAA4C;YAC5C,UAAU,CAAC,GAAG,CAAC,GAAG,KAA6B,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC","sourcesContent":["import path from 'path';\nimport fs from 'fs';\nimport type { HttpsConfig } from '@ms-cloudpack/common-types';\nimport { pathSymbolReplacement } from '@ms-cloudpack/path-utilities';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\n\ntype ValueOf<T> = T[keyof T];\n\n/*\n * Read certificates files in Https Config and return the contents.\n */\nexport function parseHttpsConfig(config: HttpsConfig, cwd: string): HttpsConfig {\n const sslOptions: Record<string, ValueOf<HttpsConfig>> = {};\n\n for (const [key, value] of Object.entries(config)) {\n // Read the file contents for the certificates.\n if (['ca', 'cert', 'key', 'pfx'].includes(key) && typeof value === 'string') {\n // Get a standard path with expanded path symbols.\n const certFilePath = slash(path.resolve(cwd, pathSymbolReplacement(value)));\n\n if (fs.existsSync(certFilePath)) {\n sslOptions[key] = fs.readFileSync(certFilePath);\n } else {\n throw new Error(\n `The specified certificate to be used for the web server is missing at \"${certFilePath}\". Make sure the path is correct, the file exists, and try starting again.`,\n );\n }\n } else {\n // If not a certificate, just use the value.\n sslOptions[key] = value as ValueOf<HttpsConfig>;\n }\n }\n return sslOptions;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ms-cloudpack/create-express-app",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.29",
|
|
4
4
|
"description": "Helper for creating an express app server, abstracting a common plugin setup.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@ms-cloudpack/common-types": "^0.13.0",
|
|
18
|
-
"@ms-cloudpack/path-
|
|
18
|
+
"@ms-cloudpack/path-string-parsing": "^1.2.3",
|
|
19
|
+
"@ms-cloudpack/path-utilities": "^2.7.26",
|
|
19
20
|
"@types/express": "^4.17.16",
|
|
20
21
|
"compression": "^1.7.4",
|
|
21
22
|
"cors": "^2.8.5",
|