UNPKG

storybook

Version:

Storybook: Develop, document, and test UI components in isolation

519 lines (511 loc) • 18.5 kB
import CJS_COMPAT_NODE_URL_q99y7iqlbzn from 'node:url'; import CJS_COMPAT_NODE_PATH_q99y7iqlbzn from 'node:path'; import CJS_COMPAT_NODE_MODULE_q99y7iqlbzn from "node:module"; var __filename = CJS_COMPAT_NODE_URL_q99y7iqlbzn.fileURLToPath(import.meta.url); var __dirname = CJS_COMPAT_NODE_PATH_q99y7iqlbzn.dirname(__filename); var require = CJS_COMPAT_NODE_MODULE_q99y7iqlbzn.createRequire(import.meta.url); // ------------------------------------------------------------ // end of CJS compatibility banner, injected by Storybook's esbuild configuration // ------------------------------------------------------------ import { __commonJS, __name, __require, __toESM } from "./chunk-MB5KTO7X.js"; // ../node_modules/app-root-dir/lib/index.js var require_lib = __commonJS({ "../node_modules/app-root-dir/lib/index.js"(exports) { var GLOBAL_KEY = "app-root-dir"; var _rootDir; exports.get = function() { var dir = global[GLOBAL_KEY]; if (dir) { return dir; } if (_rootDir === void 0) { var fs2 = __require("fs"); var path2 = __require("path"); var NODE_MODULES = path2.sep + "node_modules" + path2.sep; var cwd = process.cwd(); var pos = cwd.indexOf(NODE_MODULES); if (pos !== -1) { _rootDir = cwd.substring(0, pos); } else if (fs2.existsSync(path2.join(cwd, "package.json"))) { _rootDir = cwd; } else { pos = __dirname.indexOf(NODE_MODULES); if (pos === -1) { _rootDir = path2.normalize(path2.join(__dirname, "..")); } else { _rootDir = __dirname.substring(0, pos); } } } return _rootDir; }; exports.set = function(dir) { global[GLOBAL_KEY] = _rootDir = dir; }; } }); // ../node_modules/dotenv/package.json var require_package = __commonJS({ "../node_modules/dotenv/package.json"(exports, module) { module.exports = { name: "dotenv", version: "16.6.1", description: "Loads environment variables from .env file", main: "lib/main.js", types: "lib/main.d.ts", exports: { ".": { types: "./lib/main.d.ts", require: "./lib/main.js", default: "./lib/main.js" }, "./config": "./config.js", "./config.js": "./config.js", "./lib/env-options": "./lib/env-options.js", "./lib/env-options.js": "./lib/env-options.js", "./lib/cli-options": "./lib/cli-options.js", "./lib/cli-options.js": "./lib/cli-options.js", "./package.json": "./package.json" }, scripts: { "dts-check": "tsc --project tests/types/tsconfig.json", lint: "standard", pretest: "npm run lint && npm run dts-check", test: "tap run --allow-empty-coverage --disable-coverage --timeout=60000", "test:coverage": "tap run --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov", prerelease: "npm test", release: "standard-version" }, repository: { type: "git", url: "git://github.com/motdotla/dotenv.git" }, homepage: "https://github.com/motdotla/dotenv#readme", funding: "https://dotenvx.com", keywords: [ "dotenv", "env", ".env", "environment", "variables", "config", "settings" ], readmeFilename: "README.md", license: "BSD-2-Clause", devDependencies: { "@types/node": "^18.11.3", decache: "^4.6.2", sinon: "^14.0.1", standard: "^17.0.0", "standard-version": "^9.5.0", tap: "^19.2.0", typescript: "^4.8.4" }, engines: { node: ">=12" }, browser: { fs: false } }; } }); // ../node_modules/dotenv/lib/main.js var require_main = __commonJS({ "../node_modules/dotenv/lib/main.js"(exports, module) { var fs2 = __require("fs"); var path2 = __require("path"); var os = __require("os"); var crypto = __require("crypto"); var packageJson = require_package(); var version = packageJson.version; var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg; function parse(src) { const obj = {}; let lines = src.toString(); lines = lines.replace(/\r\n?/mg, "\n"); let match; while ((match = LINE.exec(lines)) != null) { const key = match[1]; let value = match[2] || ""; value = value.trim(); const maybeQuote = value[0]; value = value.replace(/^(['"`])([\s\S]*)\1$/mg, "$2"); if (maybeQuote === '"') { value = value.replace(/\\n/g, "\n"); value = value.replace(/\\r/g, "\r"); } obj[key] = value; } return obj; } __name(parse, "parse"); function _parseVault(options) { options = options || {}; const vaultPath = _vaultPath(options); options.path = vaultPath; const result = DotenvModule.configDotenv(options); if (!result.parsed) { const err = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`); err.code = "MISSING_DATA"; throw err; } const keys = _dotenvKey(options).split(","); const length = keys.length; let decrypted; for (let i = 0; i < length; i++) { try { const key = keys[i].trim(); const attrs = _instructions(result, key); decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key); break; } catch (error) { if (i + 1 >= length) { throw error; } } } return DotenvModule.parse(decrypted); } __name(_parseVault, "_parseVault"); function _warn(message) { console.log(`[dotenv@${version}][WARN] ${message}`); } __name(_warn, "_warn"); function _debug(message) { console.log(`[dotenv@${version}][DEBUG] ${message}`); } __name(_debug, "_debug"); function _log(message) { console.log(`[dotenv@${version}] ${message}`); } __name(_log, "_log"); function _dotenvKey(options) { if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) { return options.DOTENV_KEY; } if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) { return process.env.DOTENV_KEY; } return ""; } __name(_dotenvKey, "_dotenvKey"); function _instructions(result, dotenvKey) { let uri; try { uri = new URL(dotenvKey); } catch (error) { if (error.code === "ERR_INVALID_URL") { const err = new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development"); err.code = "INVALID_DOTENV_KEY"; throw err; } throw error; } const key = uri.password; if (!key) { const err = new Error("INVALID_DOTENV_KEY: Missing key part"); err.code = "INVALID_DOTENV_KEY"; throw err; } const environment = uri.searchParams.get("environment"); if (!environment) { const err = new Error("INVALID_DOTENV_KEY: Missing environment part"); err.code = "INVALID_DOTENV_KEY"; throw err; } const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`; const ciphertext = result.parsed[environmentKey]; if (!ciphertext) { const err = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`); err.code = "NOT_FOUND_DOTENV_ENVIRONMENT"; throw err; } return { ciphertext, key }; } __name(_instructions, "_instructions"); function _vaultPath(options) { let possibleVaultPath = null; if (options && options.path && options.path.length > 0) { if (Array.isArray(options.path)) { for (const filepath of options.path) { if (fs2.existsSync(filepath)) { possibleVaultPath = filepath.endsWith(".vault") ? filepath : `${filepath}.vault`; } } } else { possibleVaultPath = options.path.endsWith(".vault") ? options.path : `${options.path}.vault`; } } else { possibleVaultPath = path2.resolve(process.cwd(), ".env.vault"); } if (fs2.existsSync(possibleVaultPath)) { return possibleVaultPath; } return null; } __name(_vaultPath, "_vaultPath"); function _resolveHome(envPath) { return envPath[0] === "~" ? path2.join(os.homedir(), envPath.slice(1)) : envPath; } __name(_resolveHome, "_resolveHome"); function _configVault(options) { const debug = Boolean(options && options.debug); const quiet = options && "quiet" in options ? options.quiet : true; if (debug || !quiet) { _log("Loading env from encrypted .env.vault"); } const parsed = DotenvModule._parseVault(options); let processEnv = process.env; if (options && options.processEnv != null) { processEnv = options.processEnv; } DotenvModule.populate(processEnv, parsed, options); return { parsed }; } __name(_configVault, "_configVault"); function configDotenv(options) { const dotenvPath = path2.resolve(process.cwd(), ".env"); let encoding = "utf8"; const debug = Boolean(options && options.debug); const quiet = options && "quiet" in options ? options.quiet : true; if (options && options.encoding) { encoding = options.encoding; } else { if (debug) { _debug("No encoding is specified. UTF-8 is used by default"); } } let optionPaths = [dotenvPath]; if (options && options.path) { if (!Array.isArray(options.path)) { optionPaths = [_resolveHome(options.path)]; } else { optionPaths = []; for (const filepath of options.path) { optionPaths.push(_resolveHome(filepath)); } } } let lastError; const parsedAll = {}; for (const path3 of optionPaths) { try { const parsed = DotenvModule.parse(fs2.readFileSync(path3, { encoding })); DotenvModule.populate(parsedAll, parsed, options); } catch (e) { if (debug) { _debug(`Failed to load ${path3} ${e.message}`); } lastError = e; } } let processEnv = process.env; if (options && options.processEnv != null) { processEnv = options.processEnv; } DotenvModule.populate(processEnv, parsedAll, options); if (debug || !quiet) { const keysCount = Object.keys(parsedAll).length; const shortPaths = []; for (const filePath of optionPaths) { try { const relative = path2.relative(process.cwd(), filePath); shortPaths.push(relative); } catch (e) { if (debug) { _debug(`Failed to load ${filePath} ${e.message}`); } lastError = e; } } _log(`injecting env (${keysCount}) from ${shortPaths.join(",")}`); } if (lastError) { return { parsed: parsedAll, error: lastError }; } else { return { parsed: parsedAll }; } } __name(configDotenv, "configDotenv"); function config(options) { if (_dotenvKey(options).length === 0) { return DotenvModule.configDotenv(options); } const vaultPath = _vaultPath(options); if (!vaultPath) { _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`); return DotenvModule.configDotenv(options); } return DotenvModule._configVault(options); } __name(config, "config"); function decrypt(encrypted, keyStr) { const key = Buffer.from(keyStr.slice(-64), "hex"); let ciphertext = Buffer.from(encrypted, "base64"); const nonce = ciphertext.subarray(0, 12); const authTag = ciphertext.subarray(-16); ciphertext = ciphertext.subarray(12, -16); try { const aesgcm = crypto.createDecipheriv("aes-256-gcm", key, nonce); aesgcm.setAuthTag(authTag); return `${aesgcm.update(ciphertext)}${aesgcm.final()}`; } catch (error) { const isRange = error instanceof RangeError; const invalidKeyLength = error.message === "Invalid key length"; const decryptionFailed = error.message === "Unsupported state or unable to authenticate data"; if (isRange || invalidKeyLength) { const err = new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)"); err.code = "INVALID_DOTENV_KEY"; throw err; } else if (decryptionFailed) { const err = new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY"); err.code = "DECRYPTION_FAILED"; throw err; } else { throw error; } } } __name(decrypt, "decrypt"); function populate(processEnv, parsed, options = {}) { const debug = Boolean(options && options.debug); const override = Boolean(options && options.override); if (typeof parsed !== "object") { const err = new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate"); err.code = "OBJECT_REQUIRED"; throw err; } for (const key of Object.keys(parsed)) { if (Object.prototype.hasOwnProperty.call(processEnv, key)) { if (override === true) { processEnv[key] = parsed[key]; } if (debug) { if (override === true) { _debug(`"${key}" is already defined and WAS overwritten`); } else { _debug(`"${key}" is already defined and was NOT overwritten`); } } } else { processEnv[key] = parsed[key]; } } } __name(populate, "populate"); var DotenvModule = { configDotenv, _configVault, _parseVault, config, decrypt, parse, populate }; module.exports.configDotenv = DotenvModule.configDotenv; module.exports._configVault = DotenvModule._configVault; module.exports._parseVault = DotenvModule._parseVault; module.exports.config = DotenvModule.config; module.exports.decrypt = DotenvModule.decrypt; module.exports.parse = DotenvModule.parse; module.exports.populate = DotenvModule.populate; module.exports = DotenvModule; } }); // ../node_modules/lazy-universal-dotenv/node_modules/dotenv-expand/lib/main.js var require_main2 = __commonJS({ "../node_modules/lazy-universal-dotenv/node_modules/dotenv-expand/lib/main.js"(exports, module) { "use strict"; function _searchLast(str, rgx) { const matches = Array.from(str.matchAll(rgx)); return matches.length > 0 ? matches.slice(-1)[0].index : -1; } __name(_searchLast, "_searchLast"); function _interpolate(envValue, environment, config) { const lastUnescapedDollarSignIndex = _searchLast(envValue, /(?!(?<=\\))\$/g); if (lastUnescapedDollarSignIndex === -1) return envValue; const rightMostGroup = envValue.slice(lastUnescapedDollarSignIndex); const matchGroup = /((?!(?<=\\))\${?([\w]+)(?::-([^}\\]*))?}?)/; const match = rightMostGroup.match(matchGroup); if (match != null) { const [, group, variableName, defaultValue] = match; return _interpolate( envValue.replace( group, environment[variableName] || defaultValue || config.parsed[variableName] || "" ), environment, config ); } return envValue; } __name(_interpolate, "_interpolate"); function _resolveEscapeSequences(value) { return value.replace(/\\\$/g, "$"); } __name(_resolveEscapeSequences, "_resolveEscapeSequences"); function expand(config) { const environment = config.ignoreProcessEnv ? {} : process.env; for (const configKey in config.parsed) { const value = Object.prototype.hasOwnProperty.call(environment, configKey) ? environment[configKey] : config.parsed[configKey]; config.parsed[configKey] = _resolveEscapeSequences( _interpolate(value, environment, config) ); } for (const processKey in config.parsed) { environment[processKey] = config.parsed[processKey]; } return config; } __name(expand, "expand"); module.exports.expand = expand; } }); // ../node_modules/lazy-universal-dotenv/lib/index.mjs var import_app_root_dir = __toESM(require_lib(), 1); var import_dotenv = __toESM(require_main(), 1); var import_dotenv_expand = __toESM(require_main2(), 1); import fs from "fs"; import path from "path"; var dotEnvBase = path.join(import_app_root_dir.default.get(), ".env"); function getEnvironment({ nodeEnv, buildTarget } = {}) { let raw = {}; const stringified = {}; const webpack = { "process.env": stringified }; const NODE_ENV = typeof nodeEnv === "undefined" ? process.env.NODE_ENV : nodeEnv; const BUILD_TARGET = typeof nodeEnv === "undefined" ? process.env.BUILD_TARGET : buildTarget; const dotenvFiles = [ BUILD_TARGET && NODE_ENV && `${dotEnvBase}.${BUILD_TARGET}.${NODE_ENV}.local`, BUILD_TARGET && NODE_ENV && `${dotEnvBase}.${BUILD_TARGET}.${NODE_ENV}`, BUILD_TARGET && NODE_ENV !== "test" && `${dotEnvBase}.${BUILD_TARGET}.local`, BUILD_TARGET && `${dotEnvBase}.${BUILD_TARGET}`, NODE_ENV && `${dotEnvBase}.${NODE_ENV}.local`, NODE_ENV && `${dotEnvBase}.${NODE_ENV}`, NODE_ENV !== "test" && `${dotEnvBase}.local`, dotEnvBase ].filter(Boolean); dotenvFiles.forEach((dotenvFile) => { if (fs.existsSync(dotenvFile)) { const config = import_dotenv.default.config({ path: dotenvFile }); raw = Object.assign({}, raw, import_dotenv_expand.default.expand(config).parsed); } }); Object.keys(raw).forEach((key) => { stringified[key] = JSON.stringify(raw[key]); }); return { raw, stringified, webpack }; } __name(getEnvironment, "getEnvironment"); export { getEnvironment };