@trackunit/iris-app-build-utilities 1.12.72 → 1.12.73

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 CHANGED
@@ -1,3 +1,10 @@
1
+ ## 1.12.73 (2026-03-12)
2
+
3
+ ### 🧱 Updated Dependencies
4
+
5
+ - Updated iris-app-api to 1.14.67
6
+ - Updated shared-utils to 1.13.64
7
+
1
8
  ## 1.12.72 (2026-03-11)
2
9
 
3
10
  ### 🧱 Updated Dependencies
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trackunit/iris-app-build-utilities",
3
- "version": "1.12.72",
3
+ "version": "1.12.73",
4
4
  "license": "SEE LICENSE IN LICENSE.txt",
5
5
  "repository": "https://github.com/Trackunit/manager",
6
6
  "engines": {
@@ -15,9 +15,9 @@
15
15
  "tslib": "^2.6.2",
16
16
  "csp-header": "^5.2.1",
17
17
  "@rspack/core": "1.6.7",
18
- "@trackunit/iris-app-api": "1.14.66",
18
+ "@trackunit/iris-app-api": "1.14.67",
19
19
  "@nx/devkit": "22.4.4",
20
- "@trackunit/shared-utils": "1.13.63",
20
+ "@trackunit/shared-utils": "1.13.64",
21
21
  "http-proxy-middleware": "3.0.5",
22
22
  "pacote": "^21.0.4",
23
23
  "semver": "7.5.4"
@@ -1,5 +1,5 @@
1
1
  import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { ServerlessPortMap } from "./spawnServerlessExtensions";
2
+ import type { ServersidePortMap } from "./spawnServersideExtensions";
3
3
  type MiddlewareRequest = IncomingMessage & {
4
4
  originalUrl?: string;
5
5
  };
@@ -7,7 +7,7 @@ type MiddlewareResponse = ServerResponse<IncomingMessage>;
7
7
  type MiddlewareNext = () => void;
8
8
  type ProxyHandler = (req: MiddlewareRequest, res: MiddlewareResponse, next: MiddlewareNext) => void;
9
9
  /**
10
- * Creates /invoke middleware that routes to local serverless processes when available.
10
+ * Creates /invoke middleware that routes to local serverside processes when available.
11
11
  */
12
- export declare const createInvokeProxyMiddleware: (serverlessPortMap: ServerlessPortMap | undefined) => ProxyHandler;
12
+ export declare const createInvokeProxyMiddleware: (serversidePortMap: ServersidePortMap | undefined) => ProxyHandler;
13
13
  export {};
@@ -24,7 +24,7 @@ const createLocalExtensionProxy = (target, extensionId) => {
24
24
  (0, consoleUtils_1.logError)(`[Proxy] Error proxying to ${extensionId}: ${err.message}`);
25
25
  if ("writeHead" in proxyRes && "end" in proxyRes) {
26
26
  proxyRes.writeHead(502, { "Content-Type": "application/json" });
27
- proxyRes.end(JSON.stringify({ error: `Serverless extension ${extensionId} unavailable` }));
27
+ proxyRes.end(JSON.stringify({ error: `Serverside extension ${extensionId} unavailable` }));
28
28
  }
29
29
  },
30
30
  },
@@ -44,15 +44,15 @@ const getOrCreateLocalProxy = (cache, extensionId, port) => {
44
44
  return newProxy;
45
45
  };
46
46
  /**
47
- * Creates /invoke middleware that routes to local serverless processes when available.
47
+ * Creates /invoke middleware that routes to local serverside processes when available.
48
48
  */
49
- const createInvokeProxyMiddleware = (serverlessPortMap) => {
49
+ const createInvokeProxyMiddleware = (serversidePortMap) => {
50
50
  const localProxyCache = new Map();
51
51
  const remoteProxy = createRemoteIrisProxy();
52
52
  return (req, res, next) => {
53
53
  const fullPath = req.originalUrl ?? `/invoke${req.url ?? ""}`;
54
54
  const extensionId = (0, devServerUtils_1.parseExtensionIdFromPath)(fullPath);
55
- const localPort = (0, devServerUtils_1.getLocalPort)(extensionId, serverlessPortMap);
55
+ const localPort = (0, devServerUtils_1.getLocalPort)(extensionId, serversidePortMap);
56
56
  if (localPort !== undefined && extensionId !== undefined) {
57
57
  const endpointPath = (0, devServerUtils_1.extractEndpointPath)(fullPath);
58
58
  (0, consoleUtils_1.logInfo)(`[Proxy] ${fullPath} -> ${(0, devServerUtils_1.buildLocalTarget)(localPort)}${endpointPath}`);
@@ -50,10 +50,10 @@ export declare const getOrigin: (headers: {
50
50
  * Determines if a request should be routed to a local extension.
51
51
  *
52
52
  * @param extensionId - The parsed extension ID
53
- * @param serverlessPortMap - Map of extension IDs to local ports
53
+ * @param serversidePortMap - Map of extension IDs to local ports
54
54
  * @returns {number | undefined} The local port if available, undefined otherwise
55
55
  */
56
- export declare const getLocalPort: (extensionId: string | undefined, serverlessPortMap: Map<string, number> | undefined) => number | undefined;
56
+ export declare const getLocalPort: (extensionId: string | undefined, serversidePortMap: Map<string, number> | undefined) => number | undefined;
57
57
  /**
58
58
  * Builds the local proxy target URL.
59
59
  *
@@ -66,14 +66,14 @@ exports.getOrigin = getOrigin;
66
66
  * Determines if a request should be routed to a local extension.
67
67
  *
68
68
  * @param extensionId - The parsed extension ID
69
- * @param serverlessPortMap - Map of extension IDs to local ports
69
+ * @param serversidePortMap - Map of extension IDs to local ports
70
70
  * @returns {number | undefined} The local port if available, undefined otherwise
71
71
  */
72
- const getLocalPort = (extensionId, serverlessPortMap) => {
72
+ const getLocalPort = (extensionId, serversidePortMap) => {
73
73
  if (extensionId === undefined) {
74
74
  return undefined;
75
75
  }
76
- return serverlessPortMap?.get(extensionId);
76
+ return serversidePortMap?.get(extensionId);
77
77
  };
78
78
  exports.getLocalPort = getLocalPort;
79
79
  /**
@@ -1,8 +1,8 @@
1
1
  import type { DevServer as RspackDevServer } from "@rspack/core";
2
2
  import type { Configuration as WebpackDevServerConfiguration } from "webpack-dev-server";
3
- import type { ServerlessPortMap } from "./spawnServerlessExtensions";
3
+ import type { ServersidePortMap } from "./spawnServersideExtensions";
4
4
  export interface DevServerOptions {
5
- serverlessPortMap?: ServerlessPortMap;
5
+ serversidePortMap?: ServersidePortMap;
6
6
  }
7
7
  /** Generates a dev server configuration for webpack. */
8
8
  export declare const getIrisAppWebpackDevServer: (webpackDevServerConfiguration?: WebpackDevServerConfiguration, options?: DevServerOptions) => Promise<WebpackDevServerConfiguration>;
@@ -65,7 +65,7 @@ const createExtensionLoaderHandler = () => {
65
65
  /** Registers all middlewares on the dev server app. */
66
66
  const registerMiddlewares = (app, middlewares, port, options) => {
67
67
  // Register /invoke proxy
68
- app.use("/invoke", (0, createInvokeProxyMiddleware_1.createInvokeProxyMiddleware)(options.serverlessPortMap));
68
+ app.use("/invoke", (0, createInvokeProxyMiddleware_1.createInvokeProxyMiddleware)(options.serversidePortMap));
69
69
  // Register CORS origin handler on all routes
70
70
  app.use("/", createCorsOriginHandler());
71
71
  // Register endpoint handlers
package/src/index.d.ts CHANGED
@@ -13,4 +13,4 @@ export * from "./plugin-shared/consoleUtils";
13
13
  export * from "./plugin-shared/customFieldUtil";
14
14
  export * from "./plugin-shared/extensionUtil";
15
15
  export * from "./plugin-shared/indexHtmlUtil";
16
- export * from "./spawnServerlessExtensions";
16
+ export * from "./spawnServersideExtensions";
package/src/index.js CHANGED
@@ -16,5 +16,5 @@ tslib_1.__exportStar(require("./plugin-shared/consoleUtils"), exports);
16
16
  tslib_1.__exportStar(require("./plugin-shared/customFieldUtil"), exports);
17
17
  tslib_1.__exportStar(require("./plugin-shared/extensionUtil"), exports);
18
18
  tslib_1.__exportStar(require("./plugin-shared/indexHtmlUtil"), exports);
19
- tslib_1.__exportStar(require("./spawnServerlessExtensions"), exports);
19
+ tslib_1.__exportStar(require("./spawnServersideExtensions"), exports);
20
20
  //# sourceMappingURL=index.js.map
@@ -1,12 +1,12 @@
1
1
  /**
2
- * Pure utility functions for serverless extension spawning.
2
+ * Pure utility functions for serverside extension spawning.
3
3
  * These functions are side-effect free and easily testable.
4
4
  */
5
- /** Port range for serverless extension dev servers */
6
- export declare const SERVERLESS_PORT_MIN = 22230;
7
- export declare const SERVERLESS_PORT_MAX = 22239;
8
- /** Serverless extension type constant */
9
- export declare const SERVERLESS_EXTENSION_TYPE: "SERVERSIDE_API_EXTENSION";
5
+ /** Port range for serverside extension dev servers */
6
+ export declare const SERVERSIDE_PORT_MIN = 22230;
7
+ export declare const SERVERSIDE_PORT_MAX = 22239;
8
+ /** Serverside extension type constant */
9
+ export declare const SERVERSIDE_EXTENSION_TYPE: "SERVERSIDE_API_EXTENSION";
10
10
  /**
11
11
  * Creates the spawn command arguments for an extension.
12
12
  *
@@ -18,7 +18,7 @@ export declare const createSpawnCommand: (extensionId: string) => {
18
18
  args: Array<string>;
19
19
  };
20
20
  /**
21
- * Creates spawn options for a serverless extension process.
21
+ * Creates spawn options for a serverside extension process.
22
22
  *
23
23
  * @param workspaceRoot - The NX workspace root directory
24
24
  * @param port - The port to run the extension on
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  /**
3
- * Pure utility functions for serverless extension spawning.
3
+ * Pure utility functions for serverside extension spawning.
4
4
  * These functions are side-effect free and easily testable.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.analyzeProcessExit = exports.splitBufferToLines = exports.formatLogLine = exports.createSpawnOptions = exports.createSpawnCommand = exports.SERVERLESS_EXTENSION_TYPE = exports.SERVERLESS_PORT_MAX = exports.SERVERLESS_PORT_MIN = void 0;
8
- /** Port range for serverless extension dev servers */
9
- exports.SERVERLESS_PORT_MIN = 22230;
10
- exports.SERVERLESS_PORT_MAX = 22239;
11
- /** Serverless extension type constant */
12
- exports.SERVERLESS_EXTENSION_TYPE = "SERVERSIDE_API_EXTENSION";
7
+ exports.analyzeProcessExit = exports.splitBufferToLines = exports.formatLogLine = exports.createSpawnOptions = exports.createSpawnCommand = exports.SERVERSIDE_EXTENSION_TYPE = exports.SERVERSIDE_PORT_MAX = exports.SERVERSIDE_PORT_MIN = void 0;
8
+ /** Port range for serverside extension dev servers */
9
+ exports.SERVERSIDE_PORT_MIN = 22230;
10
+ exports.SERVERSIDE_PORT_MAX = 22239;
11
+ /** Serverside extension type constant */
12
+ exports.SERVERSIDE_EXTENSION_TYPE = "SERVERSIDE_API_EXTENSION";
13
13
  /**
14
14
  * Creates the spawn command arguments for an extension.
15
15
  *
@@ -22,7 +22,7 @@ const createSpawnCommand = (extensionId) => ({
22
22
  });
23
23
  exports.createSpawnCommand = createSpawnCommand;
24
24
  /**
25
- * Creates spawn options for a serverless extension process.
25
+ * Creates spawn options for a serverside extension process.
26
26
  *
27
27
  * @param workspaceRoot - The NX workspace root directory
28
28
  * @param port - The port to run the extension on
@@ -70,12 +70,12 @@ exports.splitBufferToLines = splitBufferToLines;
70
70
  */
71
71
  const analyzeProcessExit = (extensionId, code, signal) => {
72
72
  if (code !== null && code !== 0) {
73
- return { isError: true, message: `[Serverless] ${extensionId} exited with code ${code}` };
73
+ return { isError: true, message: `[Serverside] ${extensionId} exited with code ${code}` };
74
74
  }
75
75
  if (signal) {
76
- return { isError: false, message: `[Serverless] ${extensionId} terminated by signal ${signal}` };
76
+ return { isError: false, message: `[Serverside] ${extensionId} terminated by signal ${signal}` };
77
77
  }
78
78
  return { isError: false, message: null };
79
79
  };
80
80
  exports.analyzeProcessExit = analyzeProcessExit;
81
- //# sourceMappingURL=serverlessUtils.js.map
81
+ //# sourceMappingURL=serversideUtils.js.map
@@ -1,16 +1,16 @@
1
1
  import type { IrisAppManifest } from "@trackunit/iris-app-api";
2
2
  import { ChildProcess } from "child_process";
3
- export type ServerlessPortMap = Map<string, number>;
4
- export interface SpawnedServerlessExtensions {
5
- portMap: ServerlessPortMap;
3
+ export type ServersidePortMap = Map<string, number>;
4
+ export interface SpawnedServersideExtensions {
5
+ portMap: ServersidePortMap;
6
6
  processes: Array<ChildProcess>;
7
7
  cleanup: () => void;
8
8
  }
9
9
  /**
10
- * Spawns serve processes for all serverless function extensions in the manifest.
10
+ * Spawns serve processes for all serverside function extensions in the manifest.
11
11
  *
12
12
  * @param manifest The Iris App manifest containing extensions
13
13
  * @param workspaceRoot The root directory of the NX workspace
14
- * @returns {Promise<SpawnedServerlessExtensions>} Object containing port map, spawned processes, and cleanup function
14
+ * @returns {Promise<SpawnedServersideExtensions>} Object containing port map, spawned processes, and cleanup function
15
15
  */
16
- export declare const spawnServerlessExtensions: (manifest: IrisAppManifest, workspaceRoot: string) => Promise<SpawnedServerlessExtensions>;
16
+ export declare const spawnServersideExtensions: (manifest: IrisAppManifest, workspaceRoot: string) => Promise<SpawnedServersideExtensions>;
@@ -1,21 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.spawnServerlessExtensions = void 0;
3
+ exports.spawnServersideExtensions = void 0;
4
4
  const child_process_1 = require("child_process");
5
5
  const getAvailablePort_1 = require("./getAvailablePort");
6
- const serverlessUtils_1 = require("./serverlessUtils");
6
+ const serversideUtils_1 = require("./serversideUtils");
7
7
  /**
8
- * Spawns serve processes for all serverless function extensions in the manifest.
8
+ * Spawns serve processes for all serverside function extensions in the manifest.
9
9
  *
10
10
  * @param manifest The Iris App manifest containing extensions
11
11
  * @param workspaceRoot The root directory of the NX workspace
12
- * @returns {Promise<SpawnedServerlessExtensions>} Object containing port map, spawned processes, and cleanup function
12
+ * @returns {Promise<SpawnedServersideExtensions>} Object containing port map, spawned processes, and cleanup function
13
13
  */
14
- const spawnServerlessExtensions = async (manifest, workspaceRoot) => {
14
+ const spawnServersideExtensions = async (manifest, workspaceRoot) => {
15
15
  const portMap = new Map();
16
16
  const processes = [];
17
- const serverlessExtensions = manifest.extensions.filter(ext => ext.type === serverlessUtils_1.SERVERLESS_EXTENSION_TYPE);
18
- if (serverlessExtensions.length === 0) {
17
+ const serversideExtensions = manifest.extensions.filter(ext => ext.type === serversideUtils_1.SERVERSIDE_EXTENSION_TYPE);
18
+ if (serversideExtensions.length === 0) {
19
19
  return {
20
20
  portMap,
21
21
  processes,
@@ -23,47 +23,47 @@ const spawnServerlessExtensions = async (manifest, workspaceRoot) => {
23
23
  };
24
24
  }
25
25
  // eslint-disable-next-line no-console
26
- console.log(`\n[Serverless] Found ${serverlessExtensions.length} serverless extension(s)`);
27
- let nextPort = serverlessUtils_1.SERVERLESS_PORT_MIN;
28
- for (const extension of serverlessExtensions) {
26
+ console.log(`\n[Serverside] Found ${serversideExtensions.length} serverside extension(s)`);
27
+ let nextPort = serversideUtils_1.SERVERSIDE_PORT_MIN;
28
+ for (const extension of serversideExtensions) {
29
29
  const extensionId = extension.id;
30
30
  // Find available port
31
31
  let port;
32
32
  try {
33
- port = await (0, getAvailablePort_1.getAvailablePort)(nextPort, serverlessUtils_1.SERVERLESS_PORT_MAX);
33
+ port = await (0, getAvailablePort_1.getAvailablePort)(nextPort, serversideUtils_1.SERVERSIDE_PORT_MAX);
34
34
  nextPort = port + 1;
35
35
  }
36
36
  catch {
37
37
  // eslint-disable-next-line no-console
38
- console.error(`[Serverless] No available ports for ${extensionId}, skipping`);
38
+ console.error(`[Serverside] No available ports for ${extensionId}, skipping`);
39
39
  continue;
40
40
  }
41
41
  // eslint-disable-next-line no-console
42
- console.log(`[Serverless] Starting ${extensionId} on port ${port}`);
43
- const { command, args } = (0, serverlessUtils_1.createSpawnCommand)(extensionId);
44
- const spawnOptions = (0, serverlessUtils_1.createSpawnOptions)(workspaceRoot, port, process.env);
42
+ console.log(`[Serverside] Starting ${extensionId} on port ${port}`);
43
+ const { command, args } = (0, serversideUtils_1.createSpawnCommand)(extensionId);
44
+ const spawnOptions = (0, serversideUtils_1.createSpawnOptions)(workspaceRoot, port, process.env);
45
45
  const child = (0, child_process_1.spawn)(command, args, spawnOptions);
46
46
  // Prefix output with extension name
47
47
  child.stdout.on("data", (data) => {
48
- const lines = (0, serverlessUtils_1.splitBufferToLines)(data);
48
+ const lines = (0, serversideUtils_1.splitBufferToLines)(data);
49
49
  for (const line of lines) {
50
50
  // eslint-disable-next-line no-console
51
- console.log((0, serverlessUtils_1.formatLogLine)(extensionId, line));
51
+ console.log((0, serversideUtils_1.formatLogLine)(extensionId, line));
52
52
  }
53
53
  });
54
54
  child.stderr.on("data", (data) => {
55
- const lines = (0, serverlessUtils_1.splitBufferToLines)(data);
55
+ const lines = (0, serversideUtils_1.splitBufferToLines)(data);
56
56
  for (const line of lines) {
57
57
  // eslint-disable-next-line no-console
58
- console.error((0, serverlessUtils_1.formatLogLine)(extensionId, line));
58
+ console.error((0, serversideUtils_1.formatLogLine)(extensionId, line));
59
59
  }
60
60
  });
61
61
  child.on("error", err => {
62
62
  // eslint-disable-next-line no-console
63
- console.error(`[Serverless] Failed to start ${extensionId}: ${err.message}`);
63
+ console.error(`[Serverside] Failed to start ${extensionId}: ${err.message}`);
64
64
  });
65
65
  child.on("exit", (code, signal) => {
66
- const { isError, message } = (0, serverlessUtils_1.analyzeProcessExit)(extensionId, code, signal);
66
+ const { isError, message } = (0, serversideUtils_1.analyzeProcessExit)(extensionId, code, signal);
67
67
  if (message !== null) {
68
68
  if (isError) {
69
69
  // eslint-disable-next-line no-console
@@ -95,5 +95,5 @@ const spawnServerlessExtensions = async (manifest, workspaceRoot) => {
95
95
  process.on("SIGTERM", cleanup);
96
96
  return { portMap, processes, cleanup };
97
97
  };
98
- exports.spawnServerlessExtensions = spawnServerlessExtensions;
99
- //# sourceMappingURL=spawnServerlessExtensions.js.map
98
+ exports.spawnServersideExtensions = spawnServersideExtensions;
99
+ //# sourceMappingURL=spawnServersideExtensions.js.map