npm package diff

Package: @forge/bundler

Versions: 4.20.1-next.6 - 4.20.1-next.7

File: package/out/config/node.js

Index: package/out/config/node.js
===================================================================
--- package/out/config/node.js
+++ package/out/config/node.js
@@ -1,183 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.getNodeRuntimeBuildConfig = exports.getWrapperProvider = exports.NetworkWrapperProvider = exports.LocalWrapperProvider = exports.ParseWrapperCDNIndexError = exports.WrapperNetworkError = exports.LocalWrapperNotFoundError = exports.NODE_RUNTIME_VERSION_FILE = exports.NODE_WEBPACK_USER_CODE_DIR = exports.NODE_WEBPACK_CONFIG_NAME = void 0;
-const tslib_1 = require("tslib");
-const cheerio_1 = tslib_1.__importDefault(require("cheerio"));
-const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
-const cli_shared_1 = require("@forge/cli-shared");
-const common_1 = require("./common");
-const path_1 = tslib_1.__importDefault(require("path"));
-exports.NODE_WEBPACK_CONFIG_NAME = 'node-runtime';
-exports.NODE_WEBPACK_USER_CODE_DIR = 'bundled';
-exports.NODE_RUNTIME_VERSION_FILE = 'runtime.json';
-var RuntimeCDN;
-(function (RuntimeCDN) {
-    RuntimeCDN["DEV"] = "https://forge-node-runtime.stg-east.frontend.public.atl-paas.net/";
-    RuntimeCDN["STG"] = "https://forge-node-runtime.stg-east.frontend.public.atl-paas.net/";
-    RuntimeCDN["PROD"] = "https://forge-node-runtime.prod-east.frontend.public.atl-paas.net/";
-    RuntimeCDN["FEDRAMP_MODERATE_STAGING"] = "https://forge-node-runtime.prod-east.frontend.public.atl-paas.net/";
-    RuntimeCDN["FEDRAMP_MODERATE_PROD"] = "https://forge-node-runtime.prod-east.frontend.public.atl-paas.net/";
-})(RuntimeCDN || (RuntimeCDN = {}));
-class LocalWrapperNotFoundError extends cli_shared_1.UserError {
-    constructor() {
-        super('Local node runtime wrapper not found.');
-    }
-}
-exports.LocalWrapperNotFoundError = LocalWrapperNotFoundError;
-class WrapperNetworkError extends cli_shared_1.BaseError {
-    constructor(message, requestId) {
-        super(undefined, message);
-    }
-}
-exports.WrapperNetworkError = WrapperNetworkError;
-class ParseWrapperCDNIndexError extends cli_shared_1.BaseError {
-    constructor(message, requestId) {
-        super(requestId, message);
-    }
-}
-exports.ParseWrapperCDNIndexError = ParseWrapperCDNIndexError;
-var ScriptType;
-(function (ScriptType) {
-    ScriptType["WRAPPER"] = "wrapper";
-    ScriptType["LOADER"] = "loader";
-})(ScriptType || (ScriptType = {}));
-class LocalWrapperProvider {
-    filesystemReader;
-    runtimePath;
-    constructor(filesystemReader, runtimePath) {
-        this.filesystemReader = filesystemReader;
-        this.runtimePath = runtimePath;
-    }
-    async getNodeRuntimeWrapper() {
-        const wrapper = await this.filesystemReader.readFileAsync(path_1.default.join(this.runtimePath, 'dist/wrapper.js'));
-        if (!wrapper) {
-            throw new LocalWrapperNotFoundError();
-        }
-        return {
-            script: wrapper,
-            version: 'local-wrapper'
-        };
-    }
-    async getNodeRuntimeLoader() {
-        const loader = await this.filesystemReader.readFileAsync(path_1.default.join(this.runtimePath, 'dist/loader.js'));
-        if (!loader) {
-            throw new LocalWrapperNotFoundError();
-        }
-        return {
-            script: loader,
-            version: 'local-loader'
-        };
-    }
-}
-exports.LocalWrapperProvider = LocalWrapperProvider;
-class NetworkWrapperProvider {
-    statsigService;
-    wrapper;
-    loader;
-    cdnUrl;
-    constructor(statsigService) {
-        this.statsigService = statsigService;
-        this.cdnUrl = (0, cli_shared_1.getEnvironmentConfig)(RuntimeCDN);
-    }
-    async getScriptPathFromIndex(htmlContent, requestId, scriptType) {
-        const html = cheerio_1.default.load(htmlContent);
-        const scriptPath = html('script')
-            ?.get()
-            ?.find((asset) => asset.attribs['src']?.includes(scriptType))?.attribs['src'];
-        if (typeof scriptPath !== 'string') {
-            throw new ParseWrapperCDNIndexError(`Unable to parse source of runtime ${scriptType}.`, requestId);
-        }
-        return new URL(scriptPath, this.cdnUrl).toString();
-    }
-    getFileFromCDN = async (scriptType) => {
-        try {
-            const indexResponse = await (0, node_fetch_1.default)(this.cdnUrl);
-            if (!indexResponse.ok) {
-                throw new WrapperNetworkError(`Failed to fetch runtime component: ${this.cdnUrl} ${indexResponse.status}.`, (0, cli_shared_1.getAtlassianTraceId)(indexResponse.headers));
-            }
-            const scriptUrl = await this.getScriptPathFromIndex(await indexResponse.text(), (0, cli_shared_1.getAtlassianTraceId)(indexResponse.headers), scriptType);
-            const response = await (0, node_fetch_1.default)(scriptUrl);
-            if (!response.ok) {
-                throw new WrapperNetworkError(`Failed to fetch runtime component: ${scriptUrl.toString()} ${response.status}.`, (0, cli_shared_1.getAtlassianTraceId)(response.headers));
-            }
-            const script = await response.text();
-            return {
-                script,
-                version: new URL(scriptUrl).pathname
-            };
-        }
-        catch (e) {
-            if (e instanceof ParseWrapperCDNIndexError) {
-                throw e;
-            }
-            throw new WrapperNetworkError(e instanceof Error ? e.message : 'Networking error when retrieving runtime component, retry the command.');
-        }
-    };
-    async getNodeRuntimeWrapper() {
-        if (!this.wrapper) {
-            this.wrapper = await this.getFileFromCDN(ScriptType.WRAPPER);
-        }
-        return this.wrapper;
-    }
-    async getNodeRuntimeLoader() {
-        if (!this.loader) {
-            if (await this.statsigService.testForgeCliBundleRuntimeLoaderGate()) {
-                this.loader = await this.getFileFromCDN(ScriptType.LOADER);
-            }
-        }
-        return this.loader;
-    }
-}
-exports.NetworkWrapperProvider = NetworkWrapperProvider;
-const getWrapperProvider = ({ fileSystemReader, statsigService }) => {
-    if (process.env.FORGE_RUNTIME_PATH) {
-        return new LocalWrapperProvider(fileSystemReader, process.env.FORGE_RUNTIME_PATH);
-    }
-    return new NetworkWrapperProvider(statsigService);
-};
-exports.getWrapperProvider = getWrapperProvider;
-const getNodeRuntimeBuildConfig = (wrapperProvider) => (entrypoints, config) => {
-    const webpackConfig = (0, common_1.getCommonWebpackConfig)(entrypoints, config);
-    const newEntries = {};
-    for (const [entryKey, entryPath] of Object.entries(webpackConfig.entry)) {
-        newEntries[`${exports.NODE_WEBPACK_USER_CODE_DIR}/${entryKey}`] = entryPath;
-    }
-    webpackConfig.entry = newEntries;
-    webpackConfig.target = 'node18';
-    webpackConfig.output.filename = '[name].cjs';
-    webpackConfig.name = exports.NODE_WEBPACK_CONFIG_NAME;
-    webpackConfig.module.rules.push({
-        test: /\.m?js$/,
-        resolve: {
-            fullySpecified: false
-        }
-    });
-    webpackConfig.plugins.push({
-        apply: (compiler) => {
-            compiler.hooks.make.tapPromise('AfterEmitPlugin', async (compilation) => {
-                const { RawSource } = compiler.webpack.sources;
-                const wrapper = await wrapperProvider.getNodeRuntimeWrapper();
-                const loader = await wrapperProvider.getNodeRuntimeLoader();
-                if (loader) {
-                    const loaderSource = new RawSource(loader.script);
-                    for (const entrypoint of entrypoints) {
-                        compilation.emitAsset(`${entrypoint.name}.cjs`, loaderSource);
-                    }
-                    const wrapperSource = new RawSource(wrapper.script);
-                    compilation.emitAsset('__forge_wrapper__.cjs', wrapperSource);
-                }
-                else {
-                    const source = new RawSource(wrapper.script);
-                    for (const entrypoint of entrypoints) {
-                        compilation.emitAsset(`${entrypoint.name}.cjs`, source);
-                    }
-                }
-                compilation.emitAsset(exports.NODE_RUNTIME_VERSION_FILE, new RawSource(JSON.stringify({
-                    version: loader ? loader.version : wrapper.version
-                }, null, 2)));
-            });
-        }
-    });
-    return webpackConfig;
-};
-exports.getNodeRuntimeBuildConfig = getNodeRuntimeBuildConfig;