@trackunit/iris-app-build-utilities 2.1.19 → 2.1.20
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/CHANGELOG.md +7 -0
- package/package.json +3 -5
- package/src/index.d.ts +0 -1
- package/src/index.js +0 -1
- package/src/getIrisAppDevServer.d.ts +0 -10
- package/src/getIrisAppDevServer.js +0 -119
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trackunit/iris-app-build-utilities",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.20",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
5
5
|
"repository": "https://github.com/Trackunit/manager",
|
|
6
6
|
"engines": {
|
|
@@ -11,13 +11,11 @@
|
|
|
11
11
|
"typescript": "6.0.2",
|
|
12
12
|
"@graphql-codegen/cli": "^5.0.3",
|
|
13
13
|
"@nx/react": "22.7.5",
|
|
14
|
-
"webpack-dev-server": "5.2.1",
|
|
15
14
|
"tslib": "^2.6.2",
|
|
16
15
|
"csp-header": "^6.3.1",
|
|
17
|
-
"@
|
|
18
|
-
"@trackunit/iris-app-api": "2.1.18",
|
|
16
|
+
"@trackunit/iris-app-api": "2.1.19",
|
|
19
17
|
"@nx/devkit": "22.7.5",
|
|
20
|
-
"@trackunit/shared-utils": "1.15.
|
|
18
|
+
"@trackunit/shared-utils": "1.15.81",
|
|
21
19
|
"http-proxy-middleware": "3.0.5",
|
|
22
20
|
"marked": "14.1.2",
|
|
23
21
|
"pacote": "^21.0.4",
|
package/src/index.d.ts
CHANGED
|
@@ -6,7 +6,6 @@ export * from "./getAvailablePort";
|
|
|
6
6
|
export * from "./getCopyPatterns";
|
|
7
7
|
export * from "./getExposedExtensions";
|
|
8
8
|
export * from "./getGraphqlCodeGenConfig";
|
|
9
|
-
export * from "./getIrisAppDevServer";
|
|
10
9
|
export * from "./getSharedDependencies";
|
|
11
10
|
export * from "./getTailwindContentForApp";
|
|
12
11
|
export * from "./injectFullDescriptionImages";
|
package/src/index.js
CHANGED
|
@@ -9,7 +9,6 @@ tslib_1.__exportStar(require("./getAvailablePort"), exports);
|
|
|
9
9
|
tslib_1.__exportStar(require("./getCopyPatterns"), exports);
|
|
10
10
|
tslib_1.__exportStar(require("./getExposedExtensions"), exports);
|
|
11
11
|
tslib_1.__exportStar(require("./getGraphqlCodeGenConfig"), exports);
|
|
12
|
-
tslib_1.__exportStar(require("./getIrisAppDevServer"), exports);
|
|
13
12
|
tslib_1.__exportStar(require("./getSharedDependencies"), exports);
|
|
14
13
|
tslib_1.__exportStar(require("./getTailwindContentForApp"), exports);
|
|
15
14
|
tslib_1.__exportStar(require("./injectFullDescriptionImages"), exports);
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { DevServer as RspackDevServer } from "@rspack/core";
|
|
2
|
-
import type { Configuration as WebpackDevServerConfiguration } from "webpack-dev-server";
|
|
3
|
-
import type { ServersidePortMap } from "./spawnServersideExtensions";
|
|
4
|
-
export interface DevServerOptions {
|
|
5
|
-
serversidePortMap?: ServersidePortMap;
|
|
6
|
-
}
|
|
7
|
-
/** Generates a dev server configuration for webpack. */
|
|
8
|
-
export declare const getIrisAppWebpackDevServer: (webpackDevServerConfiguration?: WebpackDevServerConfiguration, options?: DevServerOptions) => Promise<WebpackDevServerConfiguration>;
|
|
9
|
-
/** Generates a dev server configuration for rspack. */
|
|
10
|
-
export declare const getIrisAppRspackDevServer: (rspackDevServerConfiguration?: RspackDevServer, options?: DevServerOptions) => Promise<RspackDevServer>;
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getIrisAppRspackDevServer = exports.getIrisAppWebpackDevServer = void 0;
|
|
4
|
-
const createInvokeProxyMiddleware_1 = require("./createInvokeProxyMiddleware");
|
|
5
|
-
const devServerUtils_1 = require("./devServerUtils");
|
|
6
|
-
const getAvailablePort_1 = require("./getAvailablePort");
|
|
7
|
-
/** Sets CORS headers on the response. */
|
|
8
|
-
const setCorsHeaders = (response, headers) => {
|
|
9
|
-
response.header("Access-Control-Allow-Origin", (0, devServerUtils_1.getOrigin)(headers));
|
|
10
|
-
response.header("Access-Control-Allow-Headers", devServerUtils_1.CORS_ALLOWED_HEADERS);
|
|
11
|
-
};
|
|
12
|
-
/** CORS preflight middleware - responds to non-GET requests with allowed methods. */
|
|
13
|
-
const corsPreflightMiddleware = (req, res, next) => {
|
|
14
|
-
if (req.method === "GET") {
|
|
15
|
-
next();
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
res.end("GET, HEAD");
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
/** CORS origin header middleware - sets Access-Control-Allow-Origin on all requests. */
|
|
22
|
-
const createCorsOriginHandler = () => {
|
|
23
|
-
return (request, response, next) => {
|
|
24
|
-
response.header("Access-Control-Allow-Origin", (0, devServerUtils_1.getOrigin)(request.headers));
|
|
25
|
-
next();
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
/** Creates the /manifestAndToken endpoint handler. */
|
|
29
|
-
const createManifestAndTokenHandler = (port) => {
|
|
30
|
-
return async (request, response) => {
|
|
31
|
-
setCorsHeaders(response, request.headers);
|
|
32
|
-
try {
|
|
33
|
-
const resp = await fetch(`http://localhost:${port}/manifest.json`);
|
|
34
|
-
const body = await resp.json();
|
|
35
|
-
response.send({ manifest: body });
|
|
36
|
-
}
|
|
37
|
-
catch (e) {
|
|
38
|
-
// eslint-disable-next-line no-console
|
|
39
|
-
console.error("ERROR: ", e);
|
|
40
|
-
response.status(500);
|
|
41
|
-
response.send(e);
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
};
|
|
45
|
-
/** Creates the /extensionloader.js endpoint handler. */
|
|
46
|
-
const createExtensionLoaderHandler = () => {
|
|
47
|
-
return async (request, response) => {
|
|
48
|
-
setCorsHeaders(response, request.headers);
|
|
49
|
-
try {
|
|
50
|
-
const url = process.env.LOCAL === "true"
|
|
51
|
-
? "http://localhost:3000/extensionloader.js"
|
|
52
|
-
: "https://iris.trackunit.app/extensionloader.js";
|
|
53
|
-
const resp = await fetch(url);
|
|
54
|
-
const body = await resp.text();
|
|
55
|
-
response.send(body);
|
|
56
|
-
}
|
|
57
|
-
catch (e) {
|
|
58
|
-
// eslint-disable-next-line no-console
|
|
59
|
-
console.error("ERROR: ", e);
|
|
60
|
-
response.status(500);
|
|
61
|
-
response.send(e);
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
};
|
|
65
|
-
/** Registers all middlewares on the dev server app. */
|
|
66
|
-
const registerMiddlewares = (app, middlewares, port, options) => {
|
|
67
|
-
// Register /invoke proxy
|
|
68
|
-
app.use("/invoke", (0, createInvokeProxyMiddleware_1.createInvokeProxyMiddleware)(options.serversidePortMap));
|
|
69
|
-
// Register CORS origin handler on all routes
|
|
70
|
-
app.use("/", createCorsOriginHandler());
|
|
71
|
-
// Register endpoint handlers
|
|
72
|
-
app.use("/manifestAndToken", createManifestAndTokenHandler(port));
|
|
73
|
-
app.use("/extensionloader.js", createExtensionLoaderHandler());
|
|
74
|
-
// Add CORS preflight to middleware array
|
|
75
|
-
middlewares.push({
|
|
76
|
-
name: "cors-preflight",
|
|
77
|
-
path: "/",
|
|
78
|
-
middleware: corsPreflightMiddleware,
|
|
79
|
-
});
|
|
80
|
-
return middlewares;
|
|
81
|
-
};
|
|
82
|
-
/** Creates the base Iris App dev server configuration. */
|
|
83
|
-
const createIrisAppDevServerConfig = async (port, options = {}) => ({
|
|
84
|
-
port,
|
|
85
|
-
historyApiFallback: true,
|
|
86
|
-
headers: devServerUtils_1.CORS_HEADERS,
|
|
87
|
-
onListening: () => {
|
|
88
|
-
/* noop */
|
|
89
|
-
},
|
|
90
|
-
setupMiddlewares: (middlewares, devServer) => {
|
|
91
|
-
if (devServer.app) {
|
|
92
|
-
return registerMiddlewares(devServer.app, middlewares, port, options);
|
|
93
|
-
}
|
|
94
|
-
return middlewares;
|
|
95
|
-
},
|
|
96
|
-
});
|
|
97
|
-
/** Generates a dev server configuration for webpack. */
|
|
98
|
-
const getIrisAppWebpackDevServer = async (webpackDevServerConfiguration = {}, options = {}) => {
|
|
99
|
-
const port = await (0, getAvailablePort_1.getAvailablePort)(devServerUtils_1.IRIS_APP_PORT_MIN, devServerUtils_1.IRIS_APP_PORT_MAX);
|
|
100
|
-
const baseConfig = await createIrisAppDevServerConfig(port, options);
|
|
101
|
-
// Type assertion required: webpack-dev-server and rspack have nominally different but
|
|
102
|
-
// structurally identical DevServer types. This is a known limitation acknowledged by
|
|
103
|
-
// the rspack team. See: https://github.com/web-infra-dev/rspack/blob/main/packages/rspack-dev-server/src/server.ts
|
|
104
|
-
// eslint-disable-next-line @trackunit/no-typescript-assertion
|
|
105
|
-
return { ...baseConfig, ...webpackDevServerConfiguration };
|
|
106
|
-
};
|
|
107
|
-
exports.getIrisAppWebpackDevServer = getIrisAppWebpackDevServer;
|
|
108
|
-
/** Generates a dev server configuration for rspack. */
|
|
109
|
-
const getIrisAppRspackDevServer = async (rspackDevServerConfiguration = {}, options = {}) => {
|
|
110
|
-
const port = await (0, getAvailablePort_1.getAvailablePort)(devServerUtils_1.IRIS_APP_PORT_MIN, devServerUtils_1.IRIS_APP_PORT_MAX);
|
|
111
|
-
const baseConfig = await createIrisAppDevServerConfig(port, options);
|
|
112
|
-
// Type assertion required: webpack-dev-server and rspack have nominally different but
|
|
113
|
-
// structurally identical DevServer types. This is a known limitation acknowledged by
|
|
114
|
-
// the rspack team. See: https://github.com/web-infra-dev/rspack/blob/main/packages/rspack-dev-server/src/server.ts
|
|
115
|
-
// eslint-disable-next-line @trackunit/no-typescript-assertion
|
|
116
|
-
return { ...baseConfig, ...rspackDevServerConfiguration };
|
|
117
|
-
};
|
|
118
|
-
exports.getIrisAppRspackDevServer = getIrisAppRspackDevServer;
|
|
119
|
-
//# sourceMappingURL=getIrisAppDevServer.js.map
|