@powerlines/core 0.48.16 → 0.48.18

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.
@@ -20,7 +20,7 @@ declare const LogCategories: {
20
20
  readonly BABEL: "babel";
21
21
  readonly COMMUNICATION: "communication";
22
22
  };
23
- declare const LOG_CATEGORIES_ARRAY: ("plugins" | "general" | "fs" | "performance" | "config" | "hooks" | "env" | "rpc" | "babel" | "communication")[];
23
+ declare const LOG_CATEGORIES_ARRAY: ("config" | "plugins" | "general" | "fs" | "performance" | "hooks" | "env" | "rpc" | "babel" | "communication")[];
24
24
  declare const LOG_CATEGORIES: readonly ["general", "fs", "performance", "config", "plugins", "hooks", "env", "rpc", "communication", "babel"];
25
25
  declare const DEFAULT_DEVELOPMENT_LOG_LEVEL: {
26
26
  readonly general: "debug";
@@ -20,7 +20,7 @@ declare const LogCategories: {
20
20
  readonly BABEL: "babel";
21
21
  readonly COMMUNICATION: "communication";
22
22
  };
23
- declare const LOG_CATEGORIES_ARRAY: ("plugins" | "general" | "fs" | "performance" | "config" | "hooks" | "env" | "rpc" | "babel" | "communication")[];
23
+ declare const LOG_CATEGORIES_ARRAY: ("config" | "plugins" | "general" | "fs" | "performance" | "hooks" | "env" | "rpc" | "babel" | "communication")[];
24
24
  declare const LOG_CATEGORIES: readonly ["general", "fs", "performance", "config", "plugins", "hooks", "env", "rpc", "communication", "babel"];
25
25
  declare const DEFAULT_DEVELOPMENT_LOG_LEVEL: {
26
26
  readonly general: "debug";
@@ -43,7 +43,6 @@ let bundle_require = require("bundle-require");
43
43
  let flat_cache = require("flat-cache");
44
44
  let _stryke_fs_get_workspace_root = require("@stryke/fs/get-workspace-root");
45
45
  let _stryke_hash_node = require("@stryke/hash/node");
46
- let _stryke_http_fetch = require("@stryke/http/fetch");
47
46
  let _stryke_path_is_equal = require("@stryke/path/is-equal");
48
47
  let compatx = require("compatx");
49
48
  let oxc_parser = require("oxc-parser");
@@ -382,11 +381,16 @@ var PowerlinesContext = class extends require_context_base_context.PowerlinesBas
382
381
  * @returns A promise that resolves to a response returned by the fetch.
383
382
  */
384
383
  async fetch(input, options = {}) {
384
+ const { skipCache, timeout = 3e4, signal, ...fetchOptions } = options;
385
+ const url = typeof input === "string" ? input : "url" in input ? input.url : input.toString();
385
386
  const cacheKey = (0, _stryke_hash.murmurhash)({
386
- input: input.toString(),
387
- options: JSON.stringify(options)
387
+ input: url,
388
+ options: JSON.stringify({
389
+ ...fetchOptions,
390
+ timeout
391
+ })
388
392
  });
389
- if (!this.config.skipCache && !options.skipCache) {
393
+ if (!this.config.skipCache && !skipCache) {
390
394
  const cached = this.requestCache.get(cacheKey);
391
395
  if (cached) return new undici.Response(cached.body, {
392
396
  status: cached.status,
@@ -396,21 +400,37 @@ var PowerlinesContext = class extends require_context_base_context.PowerlinesBas
396
400
  }
397
401
  const logger = this.extendLogger({ category: "communication" });
398
402
  const startTime = Date.now();
399
- logger.trace(`Sending fetch request (${options.method?.toUpperCase() || "GET"}): ${input.toString()}`);
400
- const response = await (0, _stryke_http_fetch.fetchRequest)(input, {
401
- timeout: 12e3,
402
- ...options
403
- });
403
+ logger.trace(`Sending fetch request (${fetchOptions.method?.toUpperCase() || "GET"}): ${url}`);
404
+ const requestController = new AbortController();
405
+ const timeoutMs = typeof timeout === "number" && Number.isFinite(timeout) ? timeout : 3e4;
406
+ const timeoutId = timeoutMs > 0 ? setTimeout(() => {
407
+ requestController.abort(/* @__PURE__ */ new Error(`Fetch request timed out after ${timeoutMs}ms`));
408
+ }, timeoutMs) : void 0;
409
+ const onAbort = () => {
410
+ requestController.abort(signal?.reason);
411
+ };
412
+ if (signal) if (signal.aborted) onAbort();
413
+ else signal.addEventListener("abort", onAbort, { once: true });
414
+ let response;
415
+ try {
416
+ response = await (0, undici.fetch)(input, {
417
+ ...fetchOptions,
418
+ signal: requestController.signal
419
+ });
420
+ } finally {
421
+ if (timeoutId) clearTimeout(timeoutId);
422
+ if (signal) signal.removeEventListener("abort", onAbort);
423
+ }
404
424
  const result = {
405
425
  body: await response.text(),
406
426
  status: response.status,
407
427
  statusText: response.statusText,
408
428
  headers: Object.fromEntries(response.headers.entries())
409
429
  };
410
- if (!this.config.skipCache && !options.skipCache) try {
430
+ if (!this.config.skipCache && !skipCache) try {
411
431
  this.requestCache.set(cacheKey, result);
412
432
  } catch {}
413
- logger.trace(`Fetch request (${options.method?.toUpperCase() || "GET"}) completed in ${Date.now() - startTime}ms: ${input.toString()} - ${response.status} / ${response.statusText} \n - Response Headers: ${JSON.stringify(result.headers)}\n - Response Body: ${typeof result.body === "string" ? result.body.length > 1e3 ? `${result.body.slice(0, 1e3)}... (truncated, total length: ${result.body.length})` : result.body : "[Non-string body]"}`);
433
+ logger.trace(`Fetch request (${fetchOptions.method?.toUpperCase() || "GET"}) completed in ${Date.now() - startTime}ms: ${url} - ${response.status} / ${response.statusText} \n - Response Headers: ${JSON.stringify(result.headers)}\n - Response Body: ${typeof result.body === "string" ? result.body.length > 1e3 ? `${result.body.slice(0, 1e3)}... (truncated, total length: ${result.body.length})` : result.body : "[Non-string body]"}`);
414
434
  return new undici.Response(result.body, {
415
435
  status: result.status,
416
436
  statusText: result.statusText,
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.cts","names":[],"sources":["../../src/context/context.ts"],"mappings":"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"}
1
+ {"version":3,"file":"context.d.cts","names":[],"sources":["../../src/context/context.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.mts","names":[],"sources":["../../src/context/context.ts"],"mappings":"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"}
1
+ {"version":3,"file":"context.d.mts","names":[],"sources":["../../src/context/context.ts"],"mappings":"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"}
@@ -40,11 +40,10 @@ import { match, tsconfigPathsToRegExp } from "bundle-require";
40
40
  import { create } from "flat-cache";
41
41
  import { relativeToWorkspaceRoot } from "@stryke/fs/get-workspace-root";
42
42
  import { hashDirectory } from "@stryke/hash/node";
43
- import { fetchRequest } from "@stryke/http/fetch";
44
43
  import { isEqual } from "@stryke/path/is-equal";
45
44
  import { resolveCompatibilityDates } from "compatx";
46
45
  import { parse } from "oxc-parser";
47
- import { Agent, Response, interceptors, setGlobalDispatcher } from "undici";
46
+ import { Agent, Response, fetch, interceptors, setGlobalDispatcher } from "undici";
48
47
 
49
48
  //#region src/context/context.ts
50
49
  setGlobalDispatcher(new Agent({ keepAliveTimeout: 1e4 }).compose(interceptors.retry({
@@ -379,11 +378,16 @@ var PowerlinesContext = class extends PowerlinesBaseContext {
379
378
  * @returns A promise that resolves to a response returned by the fetch.
380
379
  */
381
380
  async fetch(input, options = {}) {
381
+ const { skipCache, timeout = 3e4, signal, ...fetchOptions } = options;
382
+ const url = typeof input === "string" ? input : "url" in input ? input.url : input.toString();
382
383
  const cacheKey = murmurhash({
383
- input: input.toString(),
384
- options: JSON.stringify(options)
384
+ input: url,
385
+ options: JSON.stringify({
386
+ ...fetchOptions,
387
+ timeout
388
+ })
385
389
  });
386
- if (!this.config.skipCache && !options.skipCache) {
390
+ if (!this.config.skipCache && !skipCache) {
387
391
  const cached = this.requestCache.get(cacheKey);
388
392
  if (cached) return new Response(cached.body, {
389
393
  status: cached.status,
@@ -393,21 +397,37 @@ var PowerlinesContext = class extends PowerlinesBaseContext {
393
397
  }
394
398
  const logger = this.extendLogger({ category: "communication" });
395
399
  const startTime = Date.now();
396
- logger.trace(`Sending fetch request (${options.method?.toUpperCase() || "GET"}): ${input.toString()}`);
397
- const response = await fetchRequest(input, {
398
- timeout: 12e3,
399
- ...options
400
- });
400
+ logger.trace(`Sending fetch request (${fetchOptions.method?.toUpperCase() || "GET"}): ${url}`);
401
+ const requestController = new AbortController();
402
+ const timeoutMs = typeof timeout === "number" && Number.isFinite(timeout) ? timeout : 3e4;
403
+ const timeoutId = timeoutMs > 0 ? setTimeout(() => {
404
+ requestController.abort(/* @__PURE__ */ new Error(`Fetch request timed out after ${timeoutMs}ms`));
405
+ }, timeoutMs) : void 0;
406
+ const onAbort = () => {
407
+ requestController.abort(signal?.reason);
408
+ };
409
+ if (signal) if (signal.aborted) onAbort();
410
+ else signal.addEventListener("abort", onAbort, { once: true });
411
+ let response;
412
+ try {
413
+ response = await fetch(input, {
414
+ ...fetchOptions,
415
+ signal: requestController.signal
416
+ });
417
+ } finally {
418
+ if (timeoutId) clearTimeout(timeoutId);
419
+ if (signal) signal.removeEventListener("abort", onAbort);
420
+ }
401
421
  const result = {
402
422
  body: await response.text(),
403
423
  status: response.status,
404
424
  statusText: response.statusText,
405
425
  headers: Object.fromEntries(response.headers.entries())
406
426
  };
407
- if (!this.config.skipCache && !options.skipCache) try {
427
+ if (!this.config.skipCache && !skipCache) try {
408
428
  this.requestCache.set(cacheKey, result);
409
429
  } catch {}
410
- logger.trace(`Fetch request (${options.method?.toUpperCase() || "GET"}) completed in ${Date.now() - startTime}ms: ${input.toString()} - ${response.status} / ${response.statusText} \n - Response Headers: ${JSON.stringify(result.headers)}\n - Response Body: ${typeof result.body === "string" ? result.body.length > 1e3 ? `${result.body.slice(0, 1e3)}... (truncated, total length: ${result.body.length})` : result.body : "[Non-string body]"}`);
430
+ logger.trace(`Fetch request (${fetchOptions.method?.toUpperCase() || "GET"}) completed in ${Date.now() - startTime}ms: ${url} - ${response.status} / ${response.statusText} \n - Response Headers: ${JSON.stringify(result.headers)}\n - Response Body: ${typeof result.body === "string" ? result.body.length > 1e3 ? `${result.body.slice(0, 1e3)}... (truncated, total length: ${result.body.length})` : result.body : "[Non-string body]"}`);
411
431
  return new Response(result.body, {
412
432
  status: result.status,
413
433
  statusText: result.statusText,
@@ -1 +1 @@
1
- {"version":3,"file":"context.mjs","names":["#tsconfig","#fs","#checksum","#buildId","#releaseId","#configProxy","#parserCache","#requestCache"],"sources":["../../src/context/context.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { toArray } from \"@stryke/convert/to-array\";\nimport { EnvPaths, getEnvPaths } from \"@stryke/env/get-env-paths\";\nimport { relativeToWorkspaceRoot } from \"@stryke/fs/get-workspace-root\";\nimport { murmurhash } from \"@stryke/hash\";\nimport { hashDirectory } from \"@stryke/hash/node\";\nimport { getUnique, getUniqueBy } from \"@stryke/helpers/get-unique\";\nimport { omit } from \"@stryke/helpers/omit\";\nimport { fetchRequest } from \"@stryke/http/fetch\";\nimport { appendPath } from \"@stryke/path/append\";\nimport {\n findFileDotExtensionSafe,\n findFileExtensionSafe\n} from \"@stryke/path/file-path-fns\";\nimport { isEqual } from \"@stryke/path/is-equal\";\nimport { isParentPath } from \"@stryke/path/is-parent-path\";\nimport { joinPaths } from \"@stryke/path/join\";\nimport { replacePath } from \"@stryke/path/replace\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { isFunction } from \"@stryke/type-checks/is-function\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport { isUndefined } from \"@stryke/type-checks/is-undefined\";\nimport { TypeDefinition } from \"@stryke/types/configuration\";\nimport { PackageJson } from \"@stryke/types/package-json\";\nimport { uuid } from \"@stryke/unique-id/uuid\";\nimport { match, tsconfigPathsToRegExp } from \"bundle-require\";\nimport { resolveCompatibilityDates } from \"compatx\";\nimport defu from \"defu\";\nimport { create, FlatCache } from \"flat-cache\";\nimport { existsSync } from \"node:fs\";\nimport { parse, ParseResult } from \"oxc-parser\";\nimport { Range } from \"semver\";\nimport {\n Agent,\n BodyInit,\n interceptors,\n RequestInfo,\n Response,\n setGlobalDispatcher\n} from \"undici\";\nimport { UnpluginBuildContext } from \"unplugin\";\nimport {\n CACHE_HASH_LENGTH,\n DEFAULT_DEVELOPMENT_LOG_LEVEL,\n DEFAULT_PRODUCTION_LOG_LEVEL,\n DEFAULT_TEST_LOG_LEVEL,\n ROOT_HASH_LENGTH\n} from \"../constants\";\nimport {\n getDefaultMode,\n loadParsedConfig,\n resolvePackageConfigs\n} from \"../lib/config\";\nimport { getConfigProps } from \"../lib/context-helpers\";\nimport {\n getUniqueInputs,\n isTypeDefinition,\n resolveInputsSync\n} from \"../lib/entry\";\nimport { callHook } from \"../lib/hooks\";\nimport { getPrefixedRootHash } from \"../lib/meta\";\nimport { createResolver } from \"../lib/resolver\";\nimport { getTsconfigFilePath } from \"../lib/typescript/tsconfig\";\nimport { VirtualFileSystem } from \"../lib/vfs\";\nimport {\n getPackageJsonOrganization,\n getWorkspaceName\n} from \"../plugin-utils/context-helpers\";\nimport { formatConfig } from \"../plugin-utils/format\";\nimport { isDuplicate, isPlugin } from \"../plugin-utils/helpers\";\nimport { createLogger, resolveLogLevel } from \"../plugin-utils/logging\";\nimport { mergeConfig } from \"../plugin-utils/merge\";\nimport { replacePathTokens } from \"../plugin-utils/paths\";\nimport {\n CopyConfig,\n ExecutionOptions,\n FrameworkOptions,\n InferOverridableConfig,\n ParsedUserConfig,\n PluginConfig,\n ResolvedAssetGlob,\n ResolvedConfig,\n ResolvedCopyConfig,\n ResolvedEntryTypeDefinition,\n ResolvedOutputConfig\n} from \"../types/config\";\nimport {\n Context,\n EmitEntryOptions,\n EmitOptions,\n EnvironmentContext,\n ExecutionContext,\n FetchOptions,\n MetaInfo,\n ParseOptions,\n PluginContext,\n Resolver,\n ResolveResult,\n TransformResult\n} from \"../types/context\";\nimport {\n ResolveOptions,\n VirtualFile,\n VirtualFileSystemInterface\n} from \"../types/fs\";\nimport {\n CallHookOptions,\n InferHookParameters,\n InferHookReturnType\n} from \"../types/hooks\";\nimport {\n Logger,\n LoggerOptions,\n LogLevelResolvedConfig\n} from \"../types/logging\";\nimport { ParsedTypeScriptConfig } from \"../types/tsconfig\";\nimport { PowerlinesBaseContext } from \"./base-context\";\n\nconst agent = new Agent({ keepAliveTimeout: 10000 });\nsetGlobalDispatcher(\n agent.compose(\n interceptors.retry({\n maxRetries: 3,\n minTimeout: 1000,\n maxTimeout: 10000,\n timeoutFactor: 2,\n retryAfter: true\n })\n )\n);\n\nconst UNRESOLVED_CONFIG_NAMES = [\n \"userConfig\",\n \"inlineConfig\",\n \"pluginConfig\",\n \"environmentConfig\"\n];\n\nexport class PowerlinesContext<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig,\n TSystemContext = unknown\n>\n extends PowerlinesBaseContext<TSystemContext>\n implements Context<TResolvedConfig, TSystemContext>\n{\n #checksum: string | null = null;\n\n #buildId: string = uuid();\n\n #releaseId: string = uuid();\n\n #fs!: VirtualFileSystemInterface;\n\n #tsconfig!: ParsedTypeScriptConfig;\n\n #parserCache!: FlatCache;\n\n #requestCache!: FlatCache;\n\n #configProxy!: TResolvedConfig;\n\n public resolver!: Resolver;\n\n /**\n * The parsed `package.json` file for the project\n */\n public packageJson!: PackageJson;\n\n /**\n * The parsed `project.json` file for the project\n */\n public projectJson: Record<string, any> | undefined = undefined;\n\n /**\n * The parsed configuration file for the project\n */\n public configFile!: ParsedUserConfig;\n\n /**\n * An object containing the dependencies that should be installed for the project\n */\n public dependencies: Record<string, string | Range> = {};\n\n /**\n * An object containing the development dependencies that should be installed for the project\n */\n public devDependencies: Record<string, string | Range> = {};\n\n /**\n * The persisted meta information about the current build\n */\n public persistedMeta: MetaInfo | undefined = undefined;\n\n /**\n * The resolved tsconfig file paths for the project\n */\n public resolvePatterns: RegExp[] = [];\n\n /**\n * The resolved configuration for this context\n */\n protected resolvedConfig: TResolvedConfig = {} as TResolvedConfig;\n\n /**\n * The configuration options that were overridden by plugins during the build process, which may include additional properties or modifications made during the configuration loading process.\n */\n protected overriddenConfig: InferOverridableConfig<TResolvedConfig> =\n {} as InferOverridableConfig<TResolvedConfig>;\n\n /**\n * The configuration options provided inline during execution, such as CLI flags or other parameters that may be relevant to the command being executed. These options can be used to override or supplement the configuration options defined in a configuration file on disk, and are typically provided as part of the execution context when running a Powerlines command.\n */\n protected inlineConfig: TResolvedConfig[\"inlineConfig\"] =\n {} as TResolvedConfig[\"inlineConfig\"];\n\n /**\n * The configuration options read from a configuration file on disk, which may be used to resolve the final configuration for the context. This typically includes the user configuration options defined in the `powerlines.config.ts` file, as well as any inline configuration options provided during execution.\n */\n protected userConfig: TResolvedConfig[\"userConfig\"] = {};\n\n /**\n * The configuration options provided by plugins added by the user (and other plugins)\n */\n protected pluginConfig: TResolvedConfig[\"pluginConfig\"] = {};\n\n /**\n * The configuration options provided by the environment\n */\n protected environmentConfig: any = {};\n\n /**\n * The resolved entry type definitions for the project\n */\n public get entry(): ResolvedEntryTypeDefinition[] {\n const entry = this.resolvedEntry;\n\n return resolveInputsSync(\n this,\n entry && entry.length > 0\n ? entry\n : Array.isArray(this.config.input) ||\n (isSetObject(this.config.input) &&\n !isTypeDefinition(this.config.input))\n ? this.config.input\n : toArray(this.config.input).flat()\n );\n }\n\n /**\n * The TypeScript configuration parsed from the tsconfig file\n */\n public get tsconfig(): ParsedTypeScriptConfig {\n if (!this.#tsconfig) {\n this.tsconfig = {\n tsconfigFilePath: this.config.tsconfig\n } as ParsedTypeScriptConfig;\n }\n\n return this.#tsconfig;\n }\n\n /**\n * Sets the TypeScript configuration parsed from the tsconfig file\n */\n public set tsconfig(value: ParsedTypeScriptConfig) {\n this.#tsconfig = value;\n this.resolvePatterns = tsconfigPathsToRegExp(value?.options?.paths ?? {});\n }\n\n /**\n * The virtual file system interface for the project\n */\n public get fs(): VirtualFileSystemInterface {\n if (!this.#fs) {\n this.#fs = VirtualFileSystem.createSync(this);\n }\n\n return this.#fs;\n }\n\n /**\n * Get the checksum of the project's current state\n */\n public get checksum(): string | null {\n return this.#checksum;\n }\n\n /**\n * Invokes the configured plugin hooks\n *\n * @remarks\n * By default, it will call the `\"pre\"`, `\"normal\"`, and `\"post\"` ordered hooks in sequence\n *\n * @param hook - The hook to call\n * @param options - The options to provide to the hook\n * @param args - The arguments to pass to the hook\n * @returns The result of the hook call\n */\n public callHook = async <TKey extends string>(\n hook: TKey,\n options: CallHookOptions & {\n environment?: string | EnvironmentContext<any>;\n },\n ...args: InferHookParameters<PluginContext<any>, TKey>\n ): Promise<InferHookReturnType<PluginContext<any>, TKey> | undefined> =>\n callHook<TKey, TResolvedConfig>(\n this as unknown as ExecutionContext<TResolvedConfig>,\n hook,\n options,\n ...args\n );\n\n /**\n * The meta information about the current build\n */\n public get meta() {\n return {\n executionId: this.#buildId,\n releaseId: this.#releaseId,\n checksum: this.#checksum,\n timestamp: this.timestamp,\n rootHash: murmurhash(\n {\n workspaceRoot: this.config?.cwd,\n root: this.config?.root\n },\n {\n maxLength: ROOT_HASH_LENGTH\n }\n ),\n configHash: murmurhash(this.config, {\n maxLength: CACHE_HASH_LENGTH\n })\n } as MetaInfo;\n }\n\n /**\n * The resolved configuration options\n */\n public get config(): TResolvedConfig {\n if (!this.#configProxy) {\n this.#configProxy = this.createConfigProxy();\n }\n\n return this.#configProxy;\n }\n\n /**\n * Get the path to the artifacts directory for the project\n */\n public get artifactsPath(): string {\n return joinPaths(\n this.config.cwd,\n this.config.root,\n this.config.output?.artifactsPath ||\n `.${this.config.framework?.name || \"powerlines\"}`\n );\n }\n\n /**\n * Get the path to the builtin modules used by the project\n */\n public get builtinsPath(): string {\n return joinPaths(this.artifactsPath, \"builtins\");\n }\n\n /**\n * Get the path to the entry directory for the project\n */\n public get entryPath(): string {\n return joinPaths(this.artifactsPath, \"entry\");\n }\n\n /**\n * Get the path to the infrastructure modules used by the project\n */\n public get infrastructurePath(): string {\n return joinPaths(this.artifactsPath, \"infrastructure\");\n }\n\n /**\n * Get the path to the data directory for the project\n */\n public get dataPath(): string {\n return joinPaths(\n this.envPaths.data,\n \"projects\",\n getPrefixedRootHash(this.config.name, this.meta.rootHash)\n );\n }\n\n /**\n * Get the path to the cache directory for the project\n */\n public get cachePath(): string {\n return joinPaths(\n this.envPaths.cache,\n \"projects\",\n murmurhash(\n {\n checksum: this.#checksum,\n config: this.meta.configHash\n },\n {\n maxLength: CACHE_HASH_LENGTH\n }\n )\n );\n }\n\n /**\n * Get the path to the generated declaration file for the project\n */\n public get typesPath(): string {\n return this.config.output.types\n ? appendPath(this.config.output.types, this.config.cwd)\n : joinPaths(this.config.cwd, this.config.root, \"powerlines.d.ts\");\n }\n\n /**\n * Get the project root relative to the workspace root\n */\n public get relativeToWorkspaceRoot() {\n return relativeToWorkspaceRoot(this.config.root);\n }\n\n /**\n * The builtin module id that exist in the Powerlines virtual file system\n */\n public get builtins(): string[] {\n return Object.values(this.fs.metadata)\n .filter(meta => meta && meta.type === \"builtin\")\n .map(meta => meta?.id)\n .filter(Boolean);\n }\n\n /**\n * Additional arguments provided during execution of the command, such as CLI flags or other parameters that may be relevant to the command being executed.\n */\n public get additionalArgs(): Record<string, string | string[]> {\n return Object.entries(this.config.inlineConfig.additionalArgs ?? {}).reduce(\n (ret, [key, value]) => {\n const formattedKey = key.replace(/^--?/, \"\");\n\n if (ret[formattedKey]) {\n if (Array.isArray(ret[formattedKey])) {\n if (Array.isArray(value)) {\n ret[formattedKey] = [...toArray(ret[formattedKey]), ...value];\n } else {\n ret[formattedKey] = [...toArray(ret[formattedKey]), value];\n }\n } else {\n ret[formattedKey] = [\n ret[formattedKey],\n ...(Array.isArray(value) ? value : [value])\n ];\n }\n } else {\n ret[formattedKey] = value;\n }\n return ret;\n },\n {} as Record<string, string | string[]>\n );\n }\n\n /**\n * The alias mappings for the project used during module resolution\n *\n * @remarks\n * This includes both the built-in module aliases as well as any custom aliases defined in the build configuration.\n */\n public get alias(): Record<string, string> {\n return this.builtins.reduce(\n (ret, id) => {\n const moduleId = `${\n this.config?.framework?.name || \"powerlines\"\n }:${id.replace(/^.*:/, \"\")}`;\n if (!ret[moduleId]) {\n const path = this.fs.paths[id];\n if (path) {\n ret[moduleId] = path;\n }\n }\n\n return ret;\n },\n this.config.resolve.alias\n ? Array.isArray(this.config.resolve.alias)\n ? this.config.resolve.alias.reduce(\n (ret, alias) => {\n if (!ret[alias.find.toString()]) {\n ret[alias.find.toString()] = alias.replacement;\n }\n\n return ret;\n },\n {} as Record<string, string>\n )\n : this.config.resolve.alias\n : {}\n );\n }\n\n public override get logger(): Logger {\n return this.createLogger();\n }\n\n /**\n * The log level for the context, which determines the minimum level of log messages that will be emitted by the logger. This is resolved based on the configuration options provided by the user, and can be set to different levels for development, production, and test environments. The log level can also be overridden by plugins or other parts of the build process to provide more granular control over logging output.\n */\n public get logLevel(): LogLevelResolvedConfig {\n return resolveLogLevel(this.config.logLevel, this.config.mode);\n }\n\n /**\n * The environment paths for the project, which provide the locations of various directories and files used by the Powerlines framework. These paths are resolved based on the organization ID, application ID, and workspace root directory, and can be used to access configuration files, cache directories, and other resources in a consistent manner.\n */\n public override get envPaths(): EnvPaths {\n return getEnvPaths({\n orgId: kebabCase(this.config.framework?.orgId || \"storm-software\"),\n appId: kebabCase(this.config.framework?.name || \"powerlines\"),\n workspaceRoot: this.config.cwd\n });\n }\n\n /**\n * Gets the parser cache.\n */\n protected get parserCache(): FlatCache {\n if (!this.#parserCache) {\n this.#parserCache = create({\n cacheId: \"parser\",\n cacheDir: this.cachePath,\n ttl: 2 * 60 * 60 * 1000,\n lruSize: 5000,\n persistInterval: 250\n });\n }\n\n return this.#parserCache;\n }\n\n /**\n * Gets the request cache.\n */\n protected get requestCache(): FlatCache {\n if (!this.#requestCache) {\n this.#requestCache = create({\n cacheId: \"http\",\n cacheDir: this.cachePath,\n ttl: 6 * 60 * 60 * 1000,\n lruSize: 5000,\n persistInterval: 250\n });\n }\n\n return this.#requestCache;\n }\n\n /**\n * The entry points that exist in the Powerlines virtual file system\n */\n protected get resolvedEntry(): ResolvedEntryTypeDefinition[] {\n return Object.entries(this.fs.metadata)\n .filter(([, meta]) => meta && meta.type === \"entry\")\n .map(([path, meta]) => {\n const typeDefinition = {\n file: path\n } as ResolvedEntryTypeDefinition;\n\n if (meta.properties) {\n if (isSetString(meta.properties.file)) {\n typeDefinition.file = meta.properties.file;\n }\n if (isSetString(meta.properties.name)) {\n typeDefinition.name = meta.properties.name;\n }\n if (\n isSetString(meta.properties[\"input.file\"]) ||\n isSetString(meta.properties[\"input.name\"])\n ) {\n typeDefinition.input ??= {} as TypeDefinition;\n if (isSetString(meta.properties[\"input.file\"])) {\n typeDefinition.input.file = meta.properties[\"input.file\"];\n }\n if (isSetString(meta.properties[\"input.name\"])) {\n typeDefinition.input.name = meta.properties[\"input.name\"];\n }\n }\n if (isSetString(meta.properties.output)) {\n typeDefinition.output = meta.properties.output;\n }\n }\n\n return typeDefinition;\n })\n .filter(Boolean);\n }\n\n /**\n * Creates a new Context instance.\n *\n * @param options - The options to use for creating the context, including the resolved configuration and workspace settings.\n */\n protected constructor(public override options: ExecutionOptions) {\n super(options);\n }\n\n public override createLogger(options: LoggerOptions = {}) {\n return createLogger(\n this.config.name || this.options.root,\n {\n logLevel: this.logLevel,\n ...options\n },\n this.options.logFn\n );\n }\n\n /**\n * A function to perform HTTP fetch requests\n *\n * @remarks\n * This function uses a caching layer to avoid duplicate requests during the Powerlines process.\n *\n * @example\n * ```ts\n * const response = await context.fetch(\"https://api.example.com/data\");\n * const data = await response.json();\n * ```\n *\n * @see https://github.com/nodejs/undici\n *\n * @param input - The URL to fetch.\n * @param options - The fetch request options.\n * @returns A promise that resolves to a response returned by the fetch.\n */\n public async fetch(\n input: RequestInfo,\n options: FetchOptions = {}\n ): Promise<Response> {\n const cacheKey = murmurhash({\n input: input.toString(),\n options: JSON.stringify(options)\n });\n\n if (!this.config.skipCache && !options.skipCache) {\n const cached = this.requestCache.get<\n {\n body: BodyInit;\n } & Pick<Response, \"status\" | \"statusText\" | \"headers\">\n >(cacheKey);\n if (cached) {\n return new Response(cached.body, {\n status: cached.status,\n statusText: cached.statusText,\n headers: cached.headers\n });\n }\n }\n\n const logger = this.extendLogger({ category: \"communication\" });\n const startTime = Date.now();\n\n logger.trace(\n `Sending fetch request (${\n options.method?.toUpperCase() || \"GET\"\n }): ${input.toString()}`\n );\n\n const response = await fetchRequest(input, { timeout: 12_000, ...options });\n const result = {\n body: await response.text(),\n status: response.status,\n statusText: response.statusText,\n headers: Object.fromEntries(response.headers.entries())\n };\n\n if (!this.config.skipCache && !options.skipCache) {\n try {\n this.requestCache.set(cacheKey, result);\n } catch {\n // Do nothing\n }\n }\n\n logger.trace(\n `Fetch request (${\n options.method?.toUpperCase() || \"GET\"\n }) completed in ${Date.now() - startTime}ms: ${input.toString()} - ${\n response.status\n } / ${response.statusText} \\n - Response Headers: ${JSON.stringify(\n result.headers\n )}\\n - Response Body: ${\n typeof result.body === \"string\"\n ? result.body.length > 1000\n ? `${result.body.slice(0, 1000)}... (truncated, total length: ${\n result.body.length\n })`\n : result.body\n : \"[Non-string body]\"\n }`\n );\n\n return new Response(result.body, {\n status: result.status,\n statusText: result.statusText,\n headers: result.headers\n });\n }\n\n /**\n * Parse code using [Oxc-Parser](https://github.com/oxc/oxc) into an (ESTree-compatible)[https://github.com/estree/estree] AST object.\n *\n * @remarks\n * This function can be used to parse TypeScript code into an AST for further analysis or transformation.\n *\n * @example\n * ```ts\n * const ast = context.parse(\"const x: number = 42;\");\n * ```\n *\n * @see https://rollupjs.org/plugin-development/#this-parse\n * @see https://github.com/oxc/oxc\n *\n * @param code - The source code to parse.\n * @param options - The options to pass to the parser.\n * @returns An (ESTree-compatible)[https://github.com/estree/estree] AST object.\n */\n public async parse(code: string, options: ParseOptions = {}) {\n const cacheKey = murmurhash({\n code,\n options\n });\n\n let result!: ParseResult;\n if (!this.config.skipCache) {\n result = this.parserCache.get<ParseResult>(cacheKey);\n if (result) {\n return result;\n }\n }\n\n result = await parse(`source.${options.lang || \"ts\"}`, code, {\n ...options,\n sourceType: \"module\",\n showSemanticErrors: this.config.mode === \"development\"\n });\n\n if (!this.config.skipCache) {\n this.parserCache.set(cacheKey, result);\n }\n\n return result;\n }\n\n /**\n * A helper function to resolve modules in the Virtual File System\n *\n * @remarks\n * This function can be used to resolve modules relative to the project root directory.\n *\n * @example\n * ```ts\n * const resolved = await context.resolve(\"some-module\", \"/path/to/importer\");\n * ```\n *\n * @param id - The module to resolve.\n * @param importer - An optional path to the importer module.\n * @param options - Additional resolution options.\n * @returns A promise that resolves to the resolved module path.\n */\n public async resolve(\n id: string,\n importer?: string,\n options: ResolveOptions = {}\n ): Promise<ResolveResult | undefined> {\n let moduleId = id;\n if (this.config.resolve.alias) {\n if (Array.isArray(this.config.resolve.alias)) {\n const alias = this.config.resolve.alias.find(a =>\n match(moduleId, [a.find])\n );\n if (alias) {\n moduleId = alias.replacement;\n }\n } else if (\n isSetObject(this.config.resolve.alias) &&\n this.config.resolve.alias[id]\n ) {\n moduleId = this.config.resolve.alias[id];\n }\n }\n\n if (\n this.fs.isResolvableId(moduleId) ||\n (importer && this.fs.isResolvableId(importer))\n ) {\n let resolvedImporter = importer;\n if (importer && this.fs.isResolvableId(importer)) {\n resolvedImporter = await this.fs.resolve(\n importer,\n undefined,\n defu(\n {\n conditions: this.config.resolve.conditions,\n extensions: this.config.resolve.extensions\n },\n options\n )\n );\n }\n\n const result = await this.fs.resolve(\n moduleId,\n resolvedImporter,\n defu(\n {\n conditions: this.config.resolve.conditions,\n extensions: this.config.resolve.extensions\n },\n options\n )\n );\n if (!result) {\n return undefined;\n }\n\n const external = Boolean(\n !match(moduleId, this.config.resolve.noExternal) &&\n (match(moduleId, this.config.resolve.external) ||\n moduleId.startsWith(\"node:\") ||\n ((!this.fs.isVirtual(moduleId, importer, options) ||\n (this.fs.isVirtual(moduleId, importer, options) &&\n this.config.projectType !== \"application\")) &&\n this.config.resolve.skipNodeModulesBundle &&\n !/^[A-Z]:[/\\\\]|^\\.{0,2}\\/|^\\.{1,2}$/.test(moduleId)))\n );\n\n return {\n id: result,\n external,\n virtual: !external\n };\n }\n\n if (this.config.resolve.skipNodeModulesBundle) {\n if (\n match(moduleId, this.resolvePatterns) ||\n match(moduleId, this.config.resolve.noExternal)\n ) {\n return undefined;\n }\n\n if (\n match(moduleId, this.config.resolve.external) ||\n moduleId.startsWith(\"node:\")\n ) {\n return { id: moduleId, external: true, virtual: false };\n }\n\n // Exclude any other import that looks like a Node module\n if (!/^[A-Z]:[/\\\\]|^\\.{0,2}\\/|^\\.{1,2}$/.test(moduleId)) {\n return {\n id: moduleId,\n external: true,\n virtual: false\n };\n }\n } else {\n if (match(moduleId, this.config.resolve.noExternal)) {\n return undefined;\n }\n\n if (\n match(moduleId, this.config.resolve.external) ||\n moduleId.startsWith(\"node:\")\n ) {\n return { id: moduleId, external: true, virtual: false };\n }\n }\n\n return undefined;\n }\n\n /**\n * A helper function to load modules from the Virtual File System\n *\n * @remarks\n * This function can be used to load modules relative to the project root directory.\n *\n * @example\n * ```ts\n * const module = await context.load(\"some-module\", \"/path/to/importer\");\n * ```\n *\n * @param id - The module to load.\n * @returns A promise that resolves to the loaded module.\n */\n public async load(id: string): Promise<TransformResult | undefined> {\n const resolvedId = await this.fs.resolve(id);\n if (!resolvedId) {\n return undefined;\n }\n\n const code = await this.fs.read(resolvedId);\n if (!code) {\n return undefined;\n }\n\n return { code, map: null };\n }\n\n /**\n * Get the builtin virtual files that exist in the Powerlines virtual file system\n */\n public async getBuiltins() {\n return Promise.all(\n Object.entries(this.fs.metadata)\n .filter(([, meta]) => meta && meta.type === \"builtin\")\n .map(async ([id, meta]) => {\n const code = await this.fs.read(id);\n const path = this.fs.paths[id];\n\n return { ...meta, path, code } as VirtualFile;\n })\n );\n }\n\n /**\n * Resolves a file and writes it to the VFS if it does not already exist\n *\n * @param code - The source code of the file\n * @param path - The path to write the file to\n * @param options - Additional options for writing the file\n */\n public async emit(\n code: string,\n path: string,\n options: EmitOptions = {}\n ): Promise<void> {\n const filePath = options.extension\n ? findFileExtensionSafe(path)\n ? options.extension.startsWith(\".\")\n ? path.replace(findFileDotExtensionSafe(path), options.extension)\n : path.replace(findFileExtensionSafe(path), options.extension)\n : options.extension.startsWith(\".\")\n ? `${path}${options.extension}`\n : `${path}.${options.extension}`\n : findFileExtensionSafe(path)\n ? path\n : `${path}.ts`;\n\n if (\n isFunction((this as unknown as UnpluginBuildContext).emitFile) &&\n options.emitWithBundler\n ) {\n return (this as unknown as UnpluginBuildContext).emitFile({\n needsCodeReference: options.needsCodeReference,\n originalFileName: options.originalFileName,\n fileName: filePath,\n source: code,\n type: \"asset\"\n });\n }\n\n return this.fs.write(filePath, code, options);\n }\n\n /**\n * Synchronously resolves a file and writes it to the VFS if it does not already exist\n *\n * @param code - The source code of the file\n * @param path - The path to write the file to\n * @param options - Additional options for writing the file\n */\n public emitSync(code: string, path: string, options: EmitOptions = {}) {\n const filePath = options.extension\n ? findFileExtensionSafe(path)\n ? options.extension.startsWith(\".\")\n ? path.replace(findFileDotExtensionSafe(path), options.extension)\n : path.replace(findFileExtensionSafe(path), options.extension)\n : options.extension.startsWith(\".\")\n ? `${path}${options.extension}`\n : `${path}.${options.extension}`\n : findFileExtensionSafe(path)\n ? path\n : `${path}.ts`;\n\n if (\n isFunction((this as unknown as UnpluginBuildContext).emitFile) &&\n options.emitWithBundler\n ) {\n return (this as unknown as UnpluginBuildContext).emitFile({\n needsCodeReference: options.needsCodeReference,\n originalFileName: options.originalFileName,\n fileName: filePath,\n source: code,\n type: \"asset\"\n });\n }\n\n return this.fs.writeSync(filePath, code, options);\n }\n\n /**\n * Resolves a entry virtual file and writes it to the VFS if it does not already exist\n *\n * @param code - The source code of the entry file\n * @param path - A path to write the entry file to\n * @param options - Optional write file options\n */\n public async emitEntry(\n code: string,\n path: string,\n options: EmitEntryOptions = {}\n ): Promise<void> {\n return this.emit(\n code,\n appendPath(path, this.entryPath),\n defu(\n {\n meta: {\n type: \"entry\",\n properties: {\n file: appendPath(path, this.entryPath),\n name: options?.name,\n output: options?.output,\n \"input.file\": options?.input?.file,\n \"input.name\": options?.input?.name\n }\n }\n },\n omit(options, [\"name\"])\n )\n );\n }\n\n /**\n * Synchronously resolves a entry virtual file and writes it to the VFS if it does not already exist\n *\n * @param code - The source code of the entry file\n * @param path - A path to write the entry file to\n * @param options - Optional write file options\n */\n public emitEntrySync(\n code: string,\n path: string,\n options: EmitEntryOptions = {}\n ): void {\n return this.emitSync(\n code,\n appendPath(path, this.entryPath),\n defu(\n {\n meta: {\n type: \"entry\",\n properties: {\n file: appendPath(path, this.entryPath),\n name: options?.name,\n output: options?.output,\n \"input.file\": options?.input?.file,\n \"input.name\": options?.input?.name\n }\n }\n },\n omit(options, [\"name\"])\n )\n );\n }\n\n /**\n * Resolves a builtin virtual file and writes it to the VFS if it does not already exist\n *\n * @param code - The source code of the builtin file\n * @param id - The unique identifier of the builtin file\n * @param options - Optional write file options\n */\n public async emitBuiltin(\n code: string,\n id: string,\n options: EmitOptions = {}\n ): Promise<void> {\n if (!this.builtinsPath) {\n throw new Error(\n `The builtins path is not set. Cannot emit builtin file with id \"${id}\".`\n );\n }\n\n if (!isSetString(id)) {\n throw new Error(\n `The builtin id must be a non-empty string. Received: ${String(id)}`\n );\n }\n\n return this.emit(\n code,\n appendPath(id, this.builtinsPath),\n defu(options, { meta: { type: \"builtin\", id } })\n );\n }\n\n /**\n * Synchronously resolves a builtin virtual file and writes it to the VFS if it does not already exist\n *\n * @param code - The source code of the builtin file\n * @param id - The unique identifier of the builtin file\n * @param options - Optional write file options\n */\n public emitBuiltinSync(code: string, id: string, options: EmitOptions = {}) {\n if (!this.builtinsPath) {\n throw new Error(\n `The builtins path is not set. Cannot emit builtin file with id \"${id}\".`\n );\n }\n\n if (!isSetString(id)) {\n throw new Error(\n `The builtin id must be a non-empty string. Received: ${String(id)}`\n );\n }\n\n return this.emitSync(\n code,\n appendPath(id, this.builtinsPath),\n defu(options, { meta: { type: \"builtin\", id } })\n );\n }\n\n /**\n * Resolves a builtin virtual file and writes it to the VFS if it does not already exist\n *\n * @param code - The source code of the builtin file\n * @param id - The unique identifier of the builtin file\n * @param options - Optional write file options\n */\n public async emitInfrastructure(\n code: string,\n id: string,\n options: EmitOptions = {}\n ): Promise<void> {\n if (!this.infrastructurePath) {\n throw new Error(\n `The infrastructure path is not set. Cannot emit infrastructure file with id \"${id}\".`\n );\n }\n\n if (!isSetString(id)) {\n throw new Error(\n `The infrastructure id must be a non-empty string. Received: ${String(id)}`\n );\n }\n\n return this.emit(\n code,\n appendPath(id, this.infrastructurePath),\n defu(options, { meta: { type: \"infrastructure\", id } })\n );\n }\n\n /**\n * Synchronously resolves an infrastructure virtual file and writes it to the VFS if it does not already exist\n *\n * @param code - The source code of the infrastructure file\n * @param id - The unique identifier of the infrastructure file\n * @param options - Optional write file options\n */\n public emitInfrastructureSync(\n code: string,\n id: string,\n options: EmitOptions = {}\n ) {\n if (!this.infrastructurePath) {\n throw new Error(\n `The infrastructure path is not set. Cannot emit infrastructure file with id \"${id}\".`\n );\n }\n\n if (!isSetString(id)) {\n throw new Error(\n `The infrastructure id must be a non-empty string. Received: ${String(id)}`\n );\n }\n\n return this.emitSync(\n code,\n appendPath(id, this.infrastructurePath),\n defu(options, { meta: { type: \"infrastructure\", id } })\n );\n }\n\n /**\n * Generates a checksum representing the current context state\n *\n * @param path - The root directory of the project to generate the checksum for\n * @returns A promise that resolves to a string representing the checksum\n */\n public async generateChecksum(path?: string): Promise<string> {\n return hashDirectory(\n path || appendPath(this.options.root, this.options.cwd)\n );\n }\n\n /**\n * A setter function to populate the inline config values provided during execution of the command, such as CLI flags or other parameters that may be relevant to the command being executed. This function can be used to update the context with the inline configuration values, which may be used during the configuration resolution process to ensure that the final configuration reflects both the user configuration and any inline configuration provided during execution.\n *\n * @param config - The inline configuration values to set.\n * @returns A promise that resolves when the inline configuration values have been set.\n */\n public async setInlineConfig(\n config: TResolvedConfig[\"inlineConfig\"]\n ): Promise<void> {\n this.logger.debug({\n meta: { category: \"config\" },\n message: `Updating inline configuration object: \\n${formatConfig(config)}`\n });\n\n this.inlineConfig = config;\n this.#checksum = await this.generateChecksum();\n\n this.configFile = await loadParsedConfig(\n this.options.cwd,\n this.options.root,\n this.options.framework?.name || \"powerlines\",\n this.options.framework?.orgId || \"storm-software\",\n config\n );\n\n const result =\n this.configFile.config &&\n toArray(this.configFile.config).length > this.options.configIndex\n ? toArray(this.configFile.config)[this.options.configIndex]!\n : this.configFile.config;\n if (!result) {\n this.logger.warn(\n `No configuration found in ${\n this.options.configFile\n } for execution index ${this.options.configIndex}.`\n );\n } else {\n await this.setUserConfig(\n (isFunction(result)\n ? await Promise.resolve(\n result({\n cwd: this.cwd,\n root: this.options.root,\n mode:\n this.inlineConfig.mode ||\n (await getDefaultMode(this.cwd, this.options.root)),\n command: this.inlineConfig.command\n })\n )\n : result) as TResolvedConfig[\"userConfig\"]\n );\n }\n\n await this.resolveConfig();\n }\n\n /**\n * A setter function to populate the plugin config values provided during execution of the command, such as CLI flags or other parameters that may be relevant to the command being executed. This function can be used to update the context with the plugin configuration values, which may be used during the configuration resolution process to ensure that the final configuration reflects both the user configuration and any plugin configuration provided during execution.\n *\n * @param config - The plugin configuration values to set.\n * @returns A promise that resolves when the plugin configuration values have been set.\n */\n public async setPluginConfig(\n config: TResolvedConfig[\"pluginConfig\"]\n ): Promise<void> {\n this.logger.debug({\n meta: { category: \"config\" },\n message: `Updating plugin configuration object: \\n${formatConfig(config)}`\n });\n\n this.pluginConfig = config;\n await this.resolveConfig();\n }\n\n /**\n * A function to merge the various configuration objects (initial, user, inline, and plugin) into a single resolved configuration object that can be used throughout the Powerlines process. This function takes into account the different sources of configuration and their respective priorities, ensuring that the final configuration reflects the intended settings for the project. The merged configuration is then returned as a new object that can be accessed through the `config` property of the context.\n *\n * @returns The merged configuration object that combines the initial, user, inline, and plugin configurations.\n */\n protected mergeConfig(): TResolvedConfig {\n return mergeConfig(\n {\n inlineConfig: this.inlineConfig,\n userConfig: this.userConfig,\n pluginConfig: this.pluginConfig,\n environmentConfig: this.environmentConfig\n },\n getConfigProps<TResolvedConfig>(this.overriddenConfig),\n this.options,\n getConfigProps<TResolvedConfig>(this.inlineConfig),\n getConfigProps<TResolvedConfig>(this.userConfig),\n getConfigProps<TResolvedConfig>(this.pluginConfig),\n {\n version: this.packageJson?.version,\n description: this.packageJson?.description,\n environments: {},\n resolve: {}\n }\n ) as TResolvedConfig;\n }\n\n /**\n * A setter function to populate the user config values provided during execution of the command, such as CLI flags or other parameters that may be relevant to the command being executed. This function can be used to update the context with the user configuration values, which may be used during the configuration resolution process to ensure that the final configuration reflects both the user configuration and any inline configuration provided during execution.\n *\n * @param config - The user configuration values to set.\n * @returns A promise that resolves when the user configuration values have been set.\n */\n protected async setUserConfig(\n config: TResolvedConfig[\"userConfig\"]\n ): Promise<void> {\n this.logger.debug({\n meta: { category: \"config\" },\n message: `Updating user configuration object: \\n${formatConfig(config)}`\n });\n\n this.userConfig = config;\n await this.resolveConfig();\n }\n\n /**\n * Initialize the context with the provided configuration options\n */\n protected async resolveConfig(): Promise<void> {\n const mergedConfig = this.mergeConfig();\n\n this.logger.trace({\n meta: { category: \"config\" },\n message: `Pre-setup Powerlines configuration object: \\n --- Merged Config --- \\n${formatConfig(\n mergedConfig\n )} \\n\\n --- User Config --- \\n${formatConfig(\n this.userConfig\n )} \\n\\n --- Inline Config --- \\n${formatConfig(\n this.inlineConfig\n )} \\n\\n --- Plugin Config --- \\n${formatConfig(\n this.pluginConfig\n )} \\n\\n --- Environment Config --- \\n${formatConfig(\n this.environmentConfig\n )} \\n\\n --- Overridden Config --- \\n${formatConfig(\n this.overriddenConfig\n )}`\n });\n\n mergedConfig.output = defu(mergedConfig.output ?? {}, {\n copy: {\n assets: [\n {\n glob: \"LICENSE\"\n },\n {\n input: mergedConfig.root,\n glob: \"*.md\"\n },\n {\n input: mergedConfig.root,\n glob: \"package.json\"\n }\n ]\n },\n dts: true\n }) as ResolvedOutputConfig;\n\n if (isUndefined(mergedConfig.mode)) {\n mergedConfig.mode = await getDefaultMode(this.cwd, mergedConfig.root);\n }\n\n if (\n isUndefined(mergedConfig.framework) ||\n !isSetString(mergedConfig.framework.name)\n ) {\n mergedConfig.framework ??= {} as FrameworkOptions;\n mergedConfig.framework.name ??=\n (await getWorkspaceName(this)) || \"powerlines\";\n }\n\n if (isUndefined(mergedConfig.platform)) {\n mergedConfig.platform = \"neutral\";\n }\n\n mergedConfig.compatibilityDate = resolveCompatibilityDates(\n mergedConfig.compatibilityDate,\n \"latest\"\n );\n\n if (\n (!this.packageJson &&\n existsSync(\n joinPaths(\n appendPath(mergedConfig.root, mergedConfig.cwd),\n \"package.json\"\n )\n )) ||\n (!this.projectJson &&\n existsSync(\n joinPaths(\n appendPath(mergedConfig.root, mergedConfig.cwd),\n \"project.json\"\n )\n ))\n ) {\n const result = await resolvePackageConfigs(\n mergedConfig.cwd,\n mergedConfig.root\n );\n if (result) {\n if (result.packageJson) {\n this.packageJson = result.packageJson;\n }\n if (result.projectJson) {\n this.projectJson = result.projectJson;\n }\n\n if (this.packageJson) {\n mergedConfig.framework ??= {} as FrameworkOptions;\n mergedConfig.framework.name ??=\n (await getWorkspaceName(this)) || \"powerlines\";\n mergedConfig.framework.orgId ??=\n getPackageJsonOrganization(this.packageJson) || \"storm-software\";\n }\n }\n }\n\n if (isUndefined(mergedConfig.projectType)) {\n mergedConfig.projectType = this.projectJson?.projectType || \"application\";\n }\n\n this.resolvedConfig = mergedConfig;\n this.#configProxy = this.createConfigProxy();\n\n mergedConfig.input = getUniqueInputs(mergedConfig.input);\n\n if (\n mergedConfig.name?.startsWith(\"@\") &&\n mergedConfig.name.split(\"/\").filter(Boolean).length > 1\n ) {\n mergedConfig.name = mergedConfig.name.split(\"/\").filter(Boolean)[1]!;\n }\n\n mergedConfig.title ??= titleCase(mergedConfig.name);\n\n if (mergedConfig.resolve.external) {\n mergedConfig.resolve.external = getUnique(mergedConfig.resolve.external);\n }\n if (mergedConfig.resolve.noExternal) {\n mergedConfig.resolve.noExternal = getUnique(\n mergedConfig.resolve.noExternal\n );\n }\n\n mergedConfig.plugins = (mergedConfig.plugins ?? [])\n .flatMap(plugin => toArray(plugin))\n .filter(Boolean)\n .reduce((ret, plugin) => {\n if (\n isPlugin(plugin) &&\n isDuplicate(\n plugin,\n ret.filter(p => isPlugin(p))\n )\n ) {\n return ret;\n }\n\n ret.push(plugin);\n\n return ret;\n }, [] as PluginConfig[]);\n\n if (isUndefined(mergedConfig.logLevel)) {\n if (mergedConfig.mode === \"development\") {\n mergedConfig.logLevel = DEFAULT_DEVELOPMENT_LOG_LEVEL;\n } else if (mergedConfig.mode === \"test\") {\n mergedConfig.logLevel = DEFAULT_TEST_LOG_LEVEL;\n } else {\n mergedConfig.logLevel = DEFAULT_PRODUCTION_LOG_LEVEL;\n }\n }\n\n mergedConfig.logLevel = resolveLogLevel(mergedConfig.logLevel);\n\n if (isSetString(mergedConfig.tsconfig)) {\n mergedConfig.tsconfig = replacePath(\n replacePathTokens(this, mergedConfig.tsconfig),\n mergedConfig.cwd\n );\n } else {\n mergedConfig.tsconfig = getTsconfigFilePath(\n mergedConfig.cwd,\n mergedConfig.root\n );\n }\n\n // #region Configure output\n\n mergedConfig.output.format = getUnique(\n toArray(\n mergedConfig.output?.format ??\n (mergedConfig.projectType === \"library\" ? [\"cjs\", \"esm\"] : [\"esm\"])\n )\n );\n\n if (isSetString(mergedConfig.output.path)) {\n mergedConfig.output.path = appendPath(\n replacePathTokens(this, mergedConfig.output.path),\n mergedConfig.cwd\n );\n } else {\n mergedConfig.output.path = appendPath(\n joinPaths(mergedConfig.root, \"dist\"),\n mergedConfig.cwd\n );\n }\n\n mergedConfig.output.copy ??= {} as ResolvedCopyConfig;\n if (mergedConfig.output.copy !== false) {\n if (!mergedConfig.root.replace(/^\\.\\/?/, \"\")) {\n mergedConfig.output.copy.path = isSetString(\n mergedConfig.output.copy.path\n )\n ? appendPath(\n replacePathTokens(this, mergedConfig.output.copy.path),\n mergedConfig.cwd\n )\n : mergedConfig.output.path;\n } else {\n mergedConfig.output.copy.path = appendPath(\n replacePathTokens(\n this,\n isSetString(mergedConfig.output.copy.path)\n ? mergedConfig.output.copy.path\n : joinPaths(\"dist\", mergedConfig.root)\n ),\n mergedConfig.cwd\n );\n }\n }\n\n if (mergedConfig.output.types !== false) {\n mergedConfig.output.types = appendPath(\n replacePathTokens(\n this,\n mergedConfig.output.types ||\n joinPaths(\n mergedConfig.root,\n `${mergedConfig.framework?.name ?? \"powerlines\"}.d.ts`\n )\n ),\n mergedConfig.cwd\n );\n }\n\n if (\n mergedConfig.output.copy &&\n mergedConfig.output.copy.path &&\n mergedConfig.output.copy.assets &&\n Array.isArray(mergedConfig.output.copy.assets)\n ) {\n mergedConfig.output.copy.assets = getUniqueBy(\n mergedConfig.output.copy.assets.map(asset => {\n return {\n glob: isSetObject(asset) ? asset.glob : asset,\n input:\n isString(asset) ||\n !asset.input ||\n asset.input === \".\" ||\n asset.input === \"/\" ||\n asset.input === \"./\"\n ? mergedConfig.cwd\n : isParentPath(asset.input, mergedConfig.cwd) ||\n isEqual(asset.input, mergedConfig.cwd)\n ? asset.input\n : appendPath(asset.input, mergedConfig.cwd),\n output:\n isSetObject(asset) && isSetString(asset.output)\n ? isParentPath(asset.output, mergedConfig.cwd)\n ? asset.output\n : appendPath(\n joinPaths(\n (mergedConfig.output.copy as CopyConfig).path,\n replacePath(\n replacePath(\n asset.output,\n replacePath(\n (mergedConfig.output.copy as CopyConfig).path,\n mergedConfig.cwd\n )\n ),\n (mergedConfig.output.copy as CopyConfig).path\n )\n ),\n mergedConfig.cwd\n )\n : appendPath(\n (mergedConfig.output.copy as CopyConfig).path,\n mergedConfig.cwd\n ),\n ignore:\n isSetObject(asset) && asset.ignore\n ? toArray(asset.ignore)\n : undefined\n };\n }),\n (a: ResolvedAssetGlob) => `${a.input}-${a.glob}-${a.output}`\n );\n }\n\n if (isUndefined(mergedConfig.output?.sourceMap)) {\n if (mergedConfig.mode === \"development\") {\n mergedConfig.output.sourceMap = true;\n } else {\n mergedConfig.output.sourceMap = false;\n }\n }\n\n if (isUndefined(mergedConfig.output?.minify)) {\n if (mergedConfig.mode === \"production\") {\n mergedConfig.output.minify = true;\n } else {\n mergedConfig.output.minify = false;\n }\n }\n\n if (isUndefined(mergedConfig.output?.artifactsPath)) {\n mergedConfig.output.artifactsPath = `.${\n mergedConfig.framework?.name ?? \"powerlines\"\n }`;\n }\n\n if (mergedConfig.output.copy && mergedConfig.output.copy.assets) {\n mergedConfig.output.copy.assets = mergedConfig.output.copy.assets.map(\n asset => ({\n ...asset,\n glob: replacePathTokens(this, asset.glob),\n ignore: asset.ignore\n ? asset.ignore.map(ignore => replacePathTokens(this, ignore))\n : undefined,\n input: replacePathTokens(this, asset.input),\n output: replacePathTokens(this, asset.output)\n })\n );\n }\n\n if (\n (isSetString(mergedConfig.output?.storage) &&\n mergedConfig.output.storage === \"virtual\") ||\n (isSetObject(mergedConfig.output?.storage) &&\n Object.values(mergedConfig.output.storage).every(\n adapter => adapter.preset === \"virtual\"\n ))\n ) {\n mergedConfig.output.overwrite = true;\n }\n\n // #endregion Configure output\n\n this.resolvedConfig = mergedConfig;\n this.#configProxy = this.createConfigProxy();\n\n this.resolver = createResolver({\n cwd: this.resolvedConfig.cwd,\n root: this.resolvedConfig.root,\n cacheDir: this.envPaths.cache,\n mode: this.resolvedConfig.mode\n });\n\n this.logger.info({\n meta: { category: \"config\" },\n message: `Resolved Powerlines configuration object: \\n${formatConfig(\n this.resolvedConfig\n )}`\n });\n\n this.#fs ??= await VirtualFileSystem.create(this);\n }\n\n private createConfigProxy(): TResolvedConfig {\n return new Proxy(this.resolvedConfig, {\n /**\n * A trap for the `delete` operator.\n * @param target - The original object which is being proxied.\n * @param key - The name or `Symbol` of the property to delete.\n * @returns A `boolean` indicating whether or not the property was deleted.\n */\n deleteProperty: (target: TResolvedConfig, key) => {\n if (UNRESOLVED_CONFIG_NAMES.includes(key.toString())) {\n throw new Error(\n `Cannot delete property ${key.toString()} from config - it is only intended to be used as a reference.`\n );\n }\n\n Reflect.deleteProperty(this.overriddenConfig, key);\n return Reflect.deleteProperty(target, key);\n },\n\n /**\n * A trap for getting a property value.\n * @param target - The original object which is being proxied.\n * @param key - The name or `Symbol` of the property to get.\n * @param receiver - The proxy or an object that inherits from the proxy.\n */\n get: (target: TResolvedConfig, key, receiver) => {\n if (UNRESOLVED_CONFIG_NAMES.includes(key.toString())) {\n if (key === \"cwd\") {\n return this.cwd;\n }\n if (key === \"userConfig\") {\n return this.userConfig;\n }\n if (key === \"inlineConfig\") {\n return this.inlineConfig;\n }\n if (key === \"pluginConfig\") {\n return this.pluginConfig;\n }\n if (key === \"environmentConfig\") {\n return this.environmentConfig;\n }\n }\n\n return Reflect.get(target, key, receiver);\n },\n\n /**\n * A trap for the `in` operator.\n * @param target - The original object which is being proxied.\n * @param key - The name or `Symbol` of the property to check for existence.\n */\n has: (target: TResolvedConfig, key: string | symbol): boolean => {\n return (\n Reflect.has(target, key) ||\n UNRESOLVED_CONFIG_NAMES.includes(key.toString())\n );\n },\n\n /**\n * A trap for `Reflect.ownKeys()`.\n * @param target - The original object which is being proxied.\n */\n ownKeys: (target: TResolvedConfig): ArrayLike<string | symbol> => {\n return getUnique([\n ...Reflect.ownKeys(target),\n ...UNRESOLVED_CONFIG_NAMES\n ]);\n },\n\n /**\n * A trap for setting a property value.\n * @param target - The original object which is being proxied.\n * @param key - The name or `Symbol` of the property to set.\n * @param newValue - The new value to assign to the property.\n * @param receiver - The object to which the assignment was originally directed.\n * @returns A `boolean` indicating whether or not the property was set.\n */\n set: (\n target: TResolvedConfig,\n key: string | symbol,\n newValue: any,\n receiver: any\n ): boolean => {\n if (UNRESOLVED_CONFIG_NAMES.includes(key.toString())) {\n throw new Error(\n `Cannot change property ${key.toString()} from config - it is only intended to be used as a reference.`\n );\n }\n\n Reflect.set(this.overriddenConfig, key, newValue, receiver);\n return Reflect.set(target, key, newValue, receiver);\n }\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2IA,oBACE,IAFgB,MAAM,EAAE,kBAAkB,IAAM,CAE5C,EAAE,QACJ,aAAa,MAAM;CACjB,YAAY;CACZ,YAAY;CACZ,YAAY;CACZ,eAAe;CACf,YAAY;AACd,CAAC,CACH,CACF;AAEA,MAAM,0BAA0B;CAC9B;CACA;CACA;CACA;AACF;AAEA,IAAa,oBAAb,cAIU,sBAEV;CA6cwC;CA5ctC,YAA2B;CAE3B,WAAmB,KAAK;CAExB,aAAqB,KAAK;CAE1B;CAEA;CAEA;CAEA;CAEA;CAEA,AAAO;;;;CAKP,AAAO;;;;CAKP,AAAO,cAA+C;;;;CAKtD,AAAO;;;;CAKP,AAAO,eAA+C,CAAC;;;;CAKvD,AAAO,kBAAkD,CAAC;;;;CAK1D,AAAO,gBAAsC;;;;CAK7C,AAAO,kBAA4B,CAAC;;;;CAKpC,AAAU,iBAAkC,CAAC;;;;CAK7C,AAAU,mBACR,CAAC;;;;CAKH,AAAU,eACR,CAAC;;;;CAKH,AAAU,aAA4C,CAAC;;;;CAKvD,AAAU,eAAgD,CAAC;;;;CAK3D,AAAU,oBAAyB,CAAC;;;;CAKpC,IAAW,QAAuC;EAChD,MAAM,QAAQ,KAAK;EAEnB,OAAO,kBACL,MACA,SAAS,MAAM,SAAS,IACpB,QACA,MAAM,QAAQ,KAAK,OAAO,KAAK,KAC5B,YAAY,KAAK,OAAO,KAAK,KAC5B,CAAC,iBAAiB,KAAK,OAAO,KAAK,IACrC,KAAK,OAAO,QACZ,QAAQ,KAAK,OAAO,KAAK,EAAE,KAAK,CACxC;CACF;;;;CAKA,IAAW,WAAmC;EAC5C,IAAI,CAAC,KAAKA,WACR,KAAK,WAAW,EACd,kBAAkB,KAAK,OAAO,SAChC;EAGF,OAAO,KAAKA;CACd;;;;CAKA,IAAW,SAAS,OAA+B;EACjD,KAAKA,YAAY;EACjB,KAAK,kBAAkB,sBAAsB,OAAO,SAAS,SAAS,CAAC,CAAC;CAC1E;;;;CAKA,IAAW,KAAiC;EAC1C,IAAI,CAAC,KAAKC,KACR,KAAKA,MAAM,kBAAkB,WAAW,IAAI;EAG9C,OAAO,KAAKA;CACd;;;;CAKA,IAAW,WAA0B;EACnC,OAAO,KAAKC;CACd;;;;;;;;;;;;CAaA,AAAO,WAAW,OAChB,MACA,SAGA,GAAG,SAEH,SACE,MACA,MACA,SACA,GAAG,IACL;;;;CAKF,IAAW,OAAO;EAChB,OAAO;GACL,aAAa,KAAKC;GAClB,WAAW,KAAKC;GAChB,UAAU,KAAKF;GACf,WAAW,KAAK;GAChB,UAAU,WACR;IACE,eAAe,KAAK,QAAQ;IAC5B,MAAM,KAAK,QAAQ;GACrB,GACA,EACE,cACF,CACF;GACA,YAAY,WAAW,KAAK,QAAQ,EAClC,cACF,CAAC;EACH;CACF;;;;CAKA,IAAW,SAA0B;EACnC,IAAI,CAAC,KAAKG,cACR,KAAKA,eAAe,KAAK,kBAAkB;EAG7C,OAAO,KAAKA;CACd;;;;CAKA,IAAW,gBAAwB;EACjC,OAAO,UACL,KAAK,OAAO,KACZ,KAAK,OAAO,MACZ,KAAK,OAAO,QAAQ,iBAClB,IAAI,KAAK,OAAO,WAAW,QAAQ,cACvC;CACF;;;;CAKA,IAAW,eAAuB;EAChC,OAAO,UAAU,KAAK,eAAe,UAAU;CACjD;;;;CAKA,IAAW,YAAoB;EAC7B,OAAO,UAAU,KAAK,eAAe,OAAO;CAC9C;;;;CAKA,IAAW,qBAA6B;EACtC,OAAO,UAAU,KAAK,eAAe,gBAAgB;CACvD;;;;CAKA,IAAW,WAAmB;EAC5B,OAAO,UACL,KAAK,SAAS,MACd,YACA,oBAAoB,KAAK,OAAO,MAAM,KAAK,KAAK,QAAQ,CAC1D;CACF;;;;CAKA,IAAW,YAAoB;EAC7B,OAAO,UACL,KAAK,SAAS,OACd,YACA,WACE;GACE,UAAU,KAAKH;GACf,QAAQ,KAAK,KAAK;EACpB,GACA,EACE,cACF,CACF,CACF;CACF;;;;CAKA,IAAW,YAAoB;EAC7B,OAAO,KAAK,OAAO,OAAO,QACtB,WAAW,KAAK,OAAO,OAAO,OAAO,KAAK,OAAO,GAAG,IACpD,UAAU,KAAK,OAAO,KAAK,KAAK,OAAO,MAAM,iBAAiB;CACpE;;;;CAKA,IAAW,0BAA0B;EACnC,OAAO,wBAAwB,KAAK,OAAO,IAAI;CACjD;;;;CAKA,IAAW,WAAqB;EAC9B,OAAO,OAAO,OAAO,KAAK,GAAG,QAAQ,EAClC,QAAO,SAAQ,QAAQ,KAAK,SAAS,SAAS,EAC9C,KAAI,SAAQ,MAAM,EAAE,EACpB,OAAO,OAAO;CACnB;;;;CAKA,IAAW,iBAAoD;EAC7D,OAAO,OAAO,QAAQ,KAAK,OAAO,aAAa,kBAAkB,CAAC,CAAC,EAAE,QAClE,KAAK,CAAC,KAAK,WAAW;GACrB,MAAM,eAAe,IAAI,QAAQ,QAAQ,EAAE;GAE3C,IAAI,IAAI,eACN,IAAI,MAAM,QAAQ,IAAI,aAAa,GACjC,IAAI,MAAM,QAAQ,KAAK,GACrB,IAAI,gBAAgB,CAAC,GAAG,QAAQ,IAAI,aAAa,GAAG,GAAG,KAAK;QAE5D,IAAI,gBAAgB,CAAC,GAAG,QAAQ,IAAI,aAAa,GAAG,KAAK;QAG3D,IAAI,gBAAgB,CAClB,IAAI,eACJ,GAAI,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK,CAC3C;QAGF,IAAI,gBAAgB;GAEtB,OAAO;EACT,GACA,CAAC,CACH;CACF;;;;;;;CAQA,IAAW,QAAgC;EACzC,OAAO,KAAK,SAAS,QAClB,KAAK,OAAO;GACX,MAAM,WAAW,GACf,KAAK,QAAQ,WAAW,QAAQ,aACjC,GAAG,GAAG,QAAQ,QAAQ,EAAE;GACzB,IAAI,CAAC,IAAI,WAAW;IAClB,MAAM,OAAO,KAAK,GAAG,MAAM;IAC3B,IAAI,MACF,IAAI,YAAY;GAEpB;GAEA,OAAO;EACT,GACA,KAAK,OAAO,QAAQ,QAChB,MAAM,QAAQ,KAAK,OAAO,QAAQ,KAAK,IACrC,KAAK,OAAO,QAAQ,MAAM,QACvB,KAAK,UAAU;GACd,IAAI,CAAC,IAAI,MAAM,KAAK,SAAS,IAC3B,IAAI,MAAM,KAAK,SAAS,KAAK,MAAM;GAGrC,OAAO;EACT,GACA,CAAC,CACH,IACA,KAAK,OAAO,QAAQ,QACtB,CAAC,CACP;CACF;CAEA,IAAoB,SAAiB;EACnC,OAAO,KAAK,aAAa;CAC3B;;;;CAKA,IAAW,WAAmC;EAC5C,OAAO,gBAAgB,KAAK,OAAO,UAAU,KAAK,OAAO,IAAI;CAC/D;;;;CAKA,IAAoB,WAAqB;EACvC,OAAO,YAAY;GACjB,OAAO,UAAU,KAAK,OAAO,WAAW,SAAS,gBAAgB;GACjE,OAAO,UAAU,KAAK,OAAO,WAAW,QAAQ,YAAY;GAC5D,eAAe,KAAK,OAAO;EAC7B,CAAC;CACH;;;;CAKA,IAAc,cAAyB;EACrC,IAAI,CAAC,KAAKI,cACR,KAAKA,eAAe,OAAO;GACzB,SAAS;GACT,UAAU,KAAK;GACf,KAAK,OAAc;GACnB,SAAS;GACT,iBAAiB;EACnB,CAAC;EAGH,OAAO,KAAKA;CACd;;;;CAKA,IAAc,eAA0B;EACtC,IAAI,CAAC,KAAKC,eACR,KAAKA,gBAAgB,OAAO;GAC1B,SAAS;GACT,UAAU,KAAK;GACf,KAAK,MAAS,KAAK;GACnB,SAAS;GACT,iBAAiB;EACnB,CAAC;EAGH,OAAO,KAAKA;CACd;;;;CAKA,IAAc,gBAA+C;EAC3D,OAAO,OAAO,QAAQ,KAAK,GAAG,QAAQ,EACnC,QAAQ,GAAG,UAAU,QAAQ,KAAK,SAAS,OAAO,EAClD,KAAK,CAAC,MAAM,UAAU;GACrB,MAAM,iBAAiB,EACrB,MAAM,KACR;GAEA,IAAI,KAAK,YAAY;IACnB,IAAI,YAAY,KAAK,WAAW,IAAI,GAClC,eAAe,OAAO,KAAK,WAAW;IAExC,IAAI,YAAY,KAAK,WAAW,IAAI,GAClC,eAAe,OAAO,KAAK,WAAW;IAExC,IACE,YAAY,KAAK,WAAW,aAAa,KACzC,YAAY,KAAK,WAAW,aAAa,GACzC;KACA,eAAe,UAAU,CAAC;KAC1B,IAAI,YAAY,KAAK,WAAW,aAAa,GAC3C,eAAe,MAAM,OAAO,KAAK,WAAW;KAE9C,IAAI,YAAY,KAAK,WAAW,aAAa,GAC3C,eAAe,MAAM,OAAO,KAAK,WAAW;IAEhD;IACA,IAAI,YAAY,KAAK,WAAW,MAAM,GACpC,eAAe,SAAS,KAAK,WAAW;GAE5C;GAEA,OAAO;EACT,CAAC,EACA,OAAO,OAAO;CACnB;;;;;;CAOA,AAAU,YAAY,AAAgB,SAA2B;EAC/D,MAAM,OAAO;EADuB;CAEtC;CAEA,AAAgB,aAAa,UAAyB,CAAC,GAAG;EACxD,OAAO,aACL,KAAK,OAAO,QAAQ,KAAK,QAAQ,MACjC;GACE,UAAU,KAAK;GACf,GAAG;EACL,GACA,KAAK,QAAQ,KACf;CACF;;;;;;;;;;;;;;;;;;;CAoBA,MAAa,MACX,OACA,UAAwB,CAAC,GACN;EACnB,MAAM,WAAW,WAAW;GAC1B,OAAO,MAAM,SAAS;GACtB,SAAS,KAAK,UAAU,OAAO;EACjC,CAAC;EAED,IAAI,CAAC,KAAK,OAAO,aAAa,CAAC,QAAQ,WAAW;GAChD,MAAM,SAAS,KAAK,aAAa,IAI/B,QAAQ;GACV,IAAI,QACF,OAAO,IAAI,SAAS,OAAO,MAAM;IAC/B,QAAQ,OAAO;IACf,YAAY,OAAO;IACnB,SAAS,OAAO;GAClB,CAAC;EAEL;EAEA,MAAM,SAAS,KAAK,aAAa,EAAE,UAAU,gBAAgB,CAAC;EAC9D,MAAM,YAAY,KAAK,IAAI;EAE3B,OAAO,MACL,0BACE,QAAQ,QAAQ,YAAY,KAAK,MAClC,KAAK,MAAM,SAAS,GACvB;EAEA,MAAM,WAAW,MAAM,aAAa,OAAO;GAAE,SAAS;GAAQ,GAAG;EAAQ,CAAC;EAC1E,MAAM,SAAS;GACb,MAAM,MAAM,SAAS,KAAK;GAC1B,QAAQ,SAAS;GACjB,YAAY,SAAS;GACrB,SAAS,OAAO,YAAY,SAAS,QAAQ,QAAQ,CAAC;EACxD;EAEA,IAAI,CAAC,KAAK,OAAO,aAAa,CAAC,QAAQ,WACrC,IAAI;GACF,KAAK,aAAa,IAAI,UAAU,MAAM;EACxC,QAAQ,CAER;EAGF,OAAO,MACL,kBACE,QAAQ,QAAQ,YAAY,KAAK,MAClC,iBAAiB,KAAK,IAAI,IAAI,UAAU,MAAM,MAAM,SAAS,EAAE,KAC9D,SAAS,OACV,KAAK,SAAS,WAAW,0BAA0B,KAAK,UACvD,OAAO,OACT,EAAE,sBACA,OAAO,OAAO,SAAS,WACnB,OAAO,KAAK,SAAS,MACnB,GAAG,OAAO,KAAK,MAAM,GAAG,GAAI,EAAE,gCAC5B,OAAO,KAAK,OACb,KACD,OAAO,OACT,qBAER;EAEA,OAAO,IAAI,SAAS,OAAO,MAAM;GAC/B,QAAQ,OAAO;GACf,YAAY,OAAO;GACnB,SAAS,OAAO;EAClB,CAAC;CACH;;;;;;;;;;;;;;;;;;;CAoBA,MAAa,MAAM,MAAc,UAAwB,CAAC,GAAG;EAC3D,MAAM,WAAW,WAAW;GAC1B;GACA;EACF,CAAC;EAED,IAAI;EACJ,IAAI,CAAC,KAAK,OAAO,WAAW;GAC1B,SAAS,KAAK,YAAY,IAAiB,QAAQ;GACnD,IAAI,QACF,OAAO;EAEX;EAEA,SAAS,MAAM,MAAM,UAAU,QAAQ,QAAQ,QAAQ,MAAM;GAC3D,GAAG;GACH,YAAY;GACZ,oBAAoB,KAAK,OAAO,SAAS;EAC3C,CAAC;EAED,IAAI,CAAC,KAAK,OAAO,WACf,KAAK,YAAY,IAAI,UAAU,MAAM;EAGvC,OAAO;CACT;;;;;;;;;;;;;;;;;CAkBA,MAAa,QACX,IACA,UACA,UAA0B,CAAC,GACS;EACpC,IAAI,WAAW;EACf,IAAI,KAAK,OAAO,QAAQ,OACtB;OAAI,MAAM,QAAQ,KAAK,OAAO,QAAQ,KAAK,GAAG;IAC5C,MAAM,QAAQ,KAAK,OAAO,QAAQ,MAAM,MAAK,MAC3C,MAAM,UAAU,CAAC,EAAE,IAAI,CAAC,CAC1B;IACA,IAAI,OACF,WAAW,MAAM;GAErB,OAAO,IACL,YAAY,KAAK,OAAO,QAAQ,KAAK,KACrC,KAAK,OAAO,QAAQ,MAAM,KAE1B,WAAW,KAAK,OAAO,QAAQ,MAAM;EACvC;EAGF,IACE,KAAK,GAAG,eAAe,QAAQ,KAC9B,YAAY,KAAK,GAAG,eAAe,QAAQ,GAC5C;GACA,IAAI,mBAAmB;GACvB,IAAI,YAAY,KAAK,GAAG,eAAe,QAAQ,GAC7C,mBAAmB,MAAM,KAAK,GAAG,QAC/B,UACA,QACA,KACE;IACE,YAAY,KAAK,OAAO,QAAQ;IAChC,YAAY,KAAK,OAAO,QAAQ;GAClC,GACA,OACF,CACF;GAGF,MAAM,SAAS,MAAM,KAAK,GAAG,QAC3B,UACA,kBACA,KACE;IACE,YAAY,KAAK,OAAO,QAAQ;IAChC,YAAY,KAAK,OAAO,QAAQ;GAClC,GACA,OACF,CACF;GACA,IAAI,CAAC,QACH;GAGF,MAAM,WAAW,QACf,CAAC,MAAM,UAAU,KAAK,OAAO,QAAQ,UAAU,MAC9C,MAAM,UAAU,KAAK,OAAO,QAAQ,QAAQ,KAC3C,SAAS,WAAW,OAAO,MACzB,CAAC,KAAK,GAAG,UAAU,UAAU,UAAU,OAAO,KAC7C,KAAK,GAAG,UAAU,UAAU,UAAU,OAAO,KAC5C,KAAK,OAAO,gBAAgB,kBAC9B,KAAK,OAAO,QAAQ,yBACpB,CAAC,oCAAoC,KAAK,QAAQ,EACxD;GAEA,OAAO;IACL,IAAI;IACJ;IACA,SAAS,CAAC;GACZ;EACF;EAEA,IAAI,KAAK,OAAO,QAAQ,uBAAuB;GAC7C,IACE,MAAM,UAAU,KAAK,eAAe,KACpC,MAAM,UAAU,KAAK,OAAO,QAAQ,UAAU,GAE9C;GAGF,IACE,MAAM,UAAU,KAAK,OAAO,QAAQ,QAAQ,KAC5C,SAAS,WAAW,OAAO,GAE3B,OAAO;IAAE,IAAI;IAAU,UAAU;IAAM,SAAS;GAAM;GAIxD,IAAI,CAAC,oCAAoC,KAAK,QAAQ,GACpD,OAAO;IACL,IAAI;IACJ,UAAU;IACV,SAAS;GACX;EAEJ,OAAO;GACL,IAAI,MAAM,UAAU,KAAK,OAAO,QAAQ,UAAU,GAChD;GAGF,IACE,MAAM,UAAU,KAAK,OAAO,QAAQ,QAAQ,KAC5C,SAAS,WAAW,OAAO,GAE3B,OAAO;IAAE,IAAI;IAAU,UAAU;IAAM,SAAS;GAAM;EAE1D;CAGF;;;;;;;;;;;;;;;CAgBA,MAAa,KAAK,IAAkD;EAClE,MAAM,aAAa,MAAM,KAAK,GAAG,QAAQ,EAAE;EAC3C,IAAI,CAAC,YACH;EAGF,MAAM,OAAO,MAAM,KAAK,GAAG,KAAK,UAAU;EAC1C,IAAI,CAAC,MACH;EAGF,OAAO;GAAE;GAAM,KAAK;EAAK;CAC3B;;;;CAKA,MAAa,cAAc;EACzB,OAAO,QAAQ,IACb,OAAO,QAAQ,KAAK,GAAG,QAAQ,EAC5B,QAAQ,GAAG,UAAU,QAAQ,KAAK,SAAS,SAAS,EACpD,IAAI,OAAO,CAAC,IAAI,UAAU;GACzB,MAAM,OAAO,MAAM,KAAK,GAAG,KAAK,EAAE;GAClC,MAAM,OAAO,KAAK,GAAG,MAAM;GAE3B,OAAO;IAAE,GAAG;IAAM;IAAM;GAAK;EAC/B,CAAC,CACL;CACF;;;;;;;;CASA,MAAa,KACX,MACA,MACA,UAAuB,CAAC,GACT;EACf,MAAM,WAAW,QAAQ,YACrB,sBAAsB,IAAI,IACxB,QAAQ,UAAU,WAAW,GAAG,IAC9B,KAAK,QAAQ,yBAAyB,IAAI,GAAG,QAAQ,SAAS,IAC9D,KAAK,QAAQ,sBAAsB,IAAI,GAAG,QAAQ,SAAS,IAC7D,QAAQ,UAAU,WAAW,GAAG,IAC9B,GAAG,OAAO,QAAQ,cAClB,GAAG,KAAK,GAAG,QAAQ,cACvB,sBAAsB,IAAI,IACxB,OACA,GAAG,KAAK;EAEd,IACE,WAAY,KAAyC,QAAQ,KAC7D,QAAQ,iBAER,OAAQ,KAAyC,SAAS;GACxD,oBAAoB,QAAQ;GAC5B,kBAAkB,QAAQ;GAC1B,UAAU;GACV,QAAQ;GACR,MAAM;EACR,CAAC;EAGH,OAAO,KAAK,GAAG,MAAM,UAAU,MAAM,OAAO;CAC9C;;;;;;;;CASA,AAAO,SAAS,MAAc,MAAc,UAAuB,CAAC,GAAG;EACrE,MAAM,WAAW,QAAQ,YACrB,sBAAsB,IAAI,IACxB,QAAQ,UAAU,WAAW,GAAG,IAC9B,KAAK,QAAQ,yBAAyB,IAAI,GAAG,QAAQ,SAAS,IAC9D,KAAK,QAAQ,sBAAsB,IAAI,GAAG,QAAQ,SAAS,IAC7D,QAAQ,UAAU,WAAW,GAAG,IAC9B,GAAG,OAAO,QAAQ,cAClB,GAAG,KAAK,GAAG,QAAQ,cACvB,sBAAsB,IAAI,IACxB,OACA,GAAG,KAAK;EAEd,IACE,WAAY,KAAyC,QAAQ,KAC7D,QAAQ,iBAER,OAAQ,KAAyC,SAAS;GACxD,oBAAoB,QAAQ;GAC5B,kBAAkB,QAAQ;GAC1B,UAAU;GACV,QAAQ;GACR,MAAM;EACR,CAAC;EAGH,OAAO,KAAK,GAAG,UAAU,UAAU,MAAM,OAAO;CAClD;;;;;;;;CASA,MAAa,UACX,MACA,MACA,UAA4B,CAAC,GACd;EACf,OAAO,KAAK,KACV,MACA,WAAW,MAAM,KAAK,SAAS,GAC/B,KACE,EACE,MAAM;GACJ,MAAM;GACN,YAAY;IACV,MAAM,WAAW,MAAM,KAAK,SAAS;IACrC,MAAM,SAAS;IACf,QAAQ,SAAS;IACjB,cAAc,SAAS,OAAO;IAC9B,cAAc,SAAS,OAAO;GAChC;EACF,EACF,GACA,KAAK,SAAS,CAAC,MAAM,CAAC,CACxB,CACF;CACF;;;;;;;;CASA,AAAO,cACL,MACA,MACA,UAA4B,CAAC,GACvB;EACN,OAAO,KAAK,SACV,MACA,WAAW,MAAM,KAAK,SAAS,GAC/B,KACE,EACE,MAAM;GACJ,MAAM;GACN,YAAY;IACV,MAAM,WAAW,MAAM,KAAK,SAAS;IACrC,MAAM,SAAS;IACf,QAAQ,SAAS;IACjB,cAAc,SAAS,OAAO;IAC9B,cAAc,SAAS,OAAO;GAChC;EACF,EACF,GACA,KAAK,SAAS,CAAC,MAAM,CAAC,CACxB,CACF;CACF;;;;;;;;CASA,MAAa,YACX,MACA,IACA,UAAuB,CAAC,GACT;EACf,IAAI,CAAC,KAAK,cACR,MAAM,IAAI,MACR,mEAAmE,GAAG,GACxE;EAGF,IAAI,CAAC,YAAY,EAAE,GACjB,MAAM,IAAI,MACR,wDAAwD,OAAO,EAAE,GACnE;EAGF,OAAO,KAAK,KACV,MACA,WAAW,IAAI,KAAK,YAAY,GAChC,KAAK,SAAS,EAAE,MAAM;GAAE,MAAM;GAAW;EAAG,EAAE,CAAC,CACjD;CACF;;;;;;;;CASA,AAAO,gBAAgB,MAAc,IAAY,UAAuB,CAAC,GAAG;EAC1E,IAAI,CAAC,KAAK,cACR,MAAM,IAAI,MACR,mEAAmE,GAAG,GACxE;EAGF,IAAI,CAAC,YAAY,EAAE,GACjB,MAAM,IAAI,MACR,wDAAwD,OAAO,EAAE,GACnE;EAGF,OAAO,KAAK,SACV,MACA,WAAW,IAAI,KAAK,YAAY,GAChC,KAAK,SAAS,EAAE,MAAM;GAAE,MAAM;GAAW;EAAG,EAAE,CAAC,CACjD;CACF;;;;;;;;CASA,MAAa,mBACX,MACA,IACA,UAAuB,CAAC,GACT;EACf,IAAI,CAAC,KAAK,oBACR,MAAM,IAAI,MACR,gFAAgF,GAAG,GACrF;EAGF,IAAI,CAAC,YAAY,EAAE,GACjB,MAAM,IAAI,MACR,+DAA+D,OAAO,EAAE,GAC1E;EAGF,OAAO,KAAK,KACV,MACA,WAAW,IAAI,KAAK,kBAAkB,GACtC,KAAK,SAAS,EAAE,MAAM;GAAE,MAAM;GAAkB;EAAG,EAAE,CAAC,CACxD;CACF;;;;;;;;CASA,AAAO,uBACL,MACA,IACA,UAAuB,CAAC,GACxB;EACA,IAAI,CAAC,KAAK,oBACR,MAAM,IAAI,MACR,gFAAgF,GAAG,GACrF;EAGF,IAAI,CAAC,YAAY,EAAE,GACjB,MAAM,IAAI,MACR,+DAA+D,OAAO,EAAE,GAC1E;EAGF,OAAO,KAAK,SACV,MACA,WAAW,IAAI,KAAK,kBAAkB,GACtC,KAAK,SAAS,EAAE,MAAM;GAAE,MAAM;GAAkB;EAAG,EAAE,CAAC,CACxD;CACF;;;;;;;CAQA,MAAa,iBAAiB,MAAgC;EAC5D,OAAO,cACL,QAAQ,WAAW,KAAK,QAAQ,MAAM,KAAK,QAAQ,GAAG,CACxD;CACF;;;;;;;CAQA,MAAa,gBACX,QACe;EACf,KAAK,OAAO,MAAM;GAChB,MAAM,EAAE,UAAU,SAAS;GAC3B,SAAS,2CAA2C,aAAa,MAAM;EACzE,CAAC;EAED,KAAK,eAAe;EACpB,KAAKL,YAAY,MAAM,KAAK,iBAAiB;EAE7C,KAAK,aAAa,MAAM,iBACtB,KAAK,QAAQ,KACb,KAAK,QAAQ,MACb,KAAK,QAAQ,WAAW,QAAQ,cAChC,KAAK,QAAQ,WAAW,SAAS,kBACjC,MACF;EAEA,MAAM,SACJ,KAAK,WAAW,UAChB,QAAQ,KAAK,WAAW,MAAM,EAAE,SAAS,KAAK,QAAQ,cAClD,QAAQ,KAAK,WAAW,MAAM,EAAE,KAAK,QAAQ,eAC7C,KAAK,WAAW;EACtB,IAAI,CAAC,QACH,KAAK,OAAO,KACV,6BACE,KAAK,QAAQ,WACd,uBAAuB,KAAK,QAAQ,YAAY,EACnD;OAEA,MAAM,KAAK,cACR,WAAW,MAAM,IACd,MAAM,QAAQ,QACZ,OAAO;GACL,KAAK,KAAK;GACV,MAAM,KAAK,QAAQ;GACnB,MACE,KAAK,aAAa,QACjB,MAAM,eAAe,KAAK,KAAK,KAAK,QAAQ,IAAI;GACnD,SAAS,KAAK,aAAa;EAC7B,CAAC,CACH,IACA,MACN;EAGF,MAAM,KAAK,cAAc;CAC3B;;;;;;;CAQA,MAAa,gBACX,QACe;EACf,KAAK,OAAO,MAAM;GAChB,MAAM,EAAE,UAAU,SAAS;GAC3B,SAAS,2CAA2C,aAAa,MAAM;EACzE,CAAC;EAED,KAAK,eAAe;EACpB,MAAM,KAAK,cAAc;CAC3B;;;;;;CAOA,AAAU,cAA+B;EACvC,OAAO,YACL;GACE,cAAc,KAAK;GACnB,YAAY,KAAK;GACjB,cAAc,KAAK;GACnB,mBAAmB,KAAK;EAC1B,GACA,eAAgC,KAAK,gBAAgB,GACrD,KAAK,SACL,eAAgC,KAAK,YAAY,GACjD,eAAgC,KAAK,UAAU,GAC/C,eAAgC,KAAK,YAAY,GACjD;GACE,SAAS,KAAK,aAAa;GAC3B,aAAa,KAAK,aAAa;GAC/B,cAAc,CAAC;GACf,SAAS,CAAC;EACZ,CACF;CACF;;;;;;;CAQA,MAAgB,cACd,QACe;EACf,KAAK,OAAO,MAAM;GAChB,MAAM,EAAE,UAAU,SAAS;GAC3B,SAAS,yCAAyC,aAAa,MAAM;EACvE,CAAC;EAED,KAAK,aAAa;EAClB,MAAM,KAAK,cAAc;CAC3B;;;;CAKA,MAAgB,gBAA+B;EAC7C,MAAM,eAAe,KAAK,YAAY;EAEtC,KAAK,OAAO,MAAM;GAChB,MAAM,EAAE,UAAU,SAAS;GAC3B,SAAS,yEAAyE,aAChF,YACF,EAAE,8BAA8B,aAC9B,KAAK,UACP,EAAE,gCAAgC,aAChC,KAAK,YACP,EAAE,gCAAgC,aAChC,KAAK,YACP,EAAE,qCAAqC,aACrC,KAAK,iBACP,EAAE,oCAAoC,aACpC,KAAK,gBACP;EACF,CAAC;EAED,aAAa,SAAS,KAAK,aAAa,UAAU,CAAC,GAAG;GACpD,MAAM,EACJ,QAAQ;IACN,EACE,MAAM,UACR;IACA;KACE,OAAO,aAAa;KACpB,MAAM;IACR;IACA;KACE,OAAO,aAAa;KACpB,MAAM;IACR;GACF,EACF;GACA,KAAK;EACP,CAAC;EAED,IAAI,YAAY,aAAa,IAAI,GAC/B,aAAa,OAAO,MAAM,eAAe,KAAK,KAAK,aAAa,IAAI;EAGtE,IACE,YAAY,aAAa,SAAS,KAClC,CAAC,YAAY,aAAa,UAAU,IAAI,GACxC;GACA,aAAa,cAAc,CAAC;GAC5B,aAAa,UAAU,SACpB,MAAM,iBAAiB,IAAI,KAAM;EACtC;EAEA,IAAI,YAAY,aAAa,QAAQ,GACnC,aAAa,WAAW;EAG1B,aAAa,oBAAoB,0BAC/B,aAAa,mBACb,QACF;EAEA,IACG,CAAC,KAAK,eACL,WACE,UACE,WAAW,aAAa,MAAM,aAAa,GAAG,GAC9C,cACF,CACF,KACD,CAAC,KAAK,eACL,WACE,UACE,WAAW,aAAa,MAAM,aAAa,GAAG,GAC9C,cACF,CACF,GACF;GACA,MAAM,SAAS,MAAM,sBACnB,aAAa,KACb,aAAa,IACf;GACA,IAAI,QAAQ;IACV,IAAI,OAAO,aACT,KAAK,cAAc,OAAO;IAE5B,IAAI,OAAO,aACT,KAAK,cAAc,OAAO;IAG5B,IAAI,KAAK,aAAa;KACpB,aAAa,cAAc,CAAC;KAC5B,aAAa,UAAU,SACpB,MAAM,iBAAiB,IAAI,KAAM;KACpC,aAAa,UAAU,UACrB,2BAA2B,KAAK,WAAW,KAAK;IACpD;GACF;EACF;EAEA,IAAI,YAAY,aAAa,WAAW,GACtC,aAAa,cAAc,KAAK,aAAa,eAAe;EAG9D,KAAK,iBAAiB;EACtB,KAAKG,eAAe,KAAK,kBAAkB;EAE3C,aAAa,QAAQ,gBAAgB,aAAa,KAAK;EAEvD,IACE,aAAa,MAAM,WAAW,GAAG,KACjC,aAAa,KAAK,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE,SAAS,GAEtD,aAAa,OAAO,aAAa,KAAK,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE;EAGnE,aAAa,UAAU,UAAU,aAAa,IAAI;EAElD,IAAI,aAAa,QAAQ,UACvB,aAAa,QAAQ,WAAW,UAAU,aAAa,QAAQ,QAAQ;EAEzE,IAAI,aAAa,QAAQ,YACvB,aAAa,QAAQ,aAAa,UAChC,aAAa,QAAQ,UACvB;EAGF,aAAa,WAAW,aAAa,WAAW,CAAC,GAC9C,SAAQ,WAAU,QAAQ,MAAM,CAAC,EACjC,OAAO,OAAO,EACd,QAAQ,KAAK,WAAW;GACvB,IACE,SAAS,MAAM,KACf,YACE,QACA,IAAI,QAAO,MAAK,SAAS,CAAC,CAAC,CAC7B,GAEA,OAAO;GAGT,IAAI,KAAK,MAAM;GAEf,OAAO;EACT,GAAG,CAAC,CAAmB;EAEzB,IAAI,YAAY,aAAa,QAAQ,GACnC,IAAI,aAAa,SAAS,eACxB,aAAa,WAAW;OACnB,IAAI,aAAa,SAAS,QAC/B,aAAa,WAAW;OAExB,aAAa,WAAW;EAI5B,aAAa,WAAW,gBAAgB,aAAa,QAAQ;EAE7D,IAAI,YAAY,aAAa,QAAQ,GACnC,aAAa,WAAW,YACtB,kBAAkB,MAAM,aAAa,QAAQ,GAC7C,aAAa,GACf;OAEA,aAAa,WAAW,oBACtB,aAAa,KACb,aAAa,IACf;EAKF,aAAa,OAAO,SAAS,UAC3B,QACE,aAAa,QAAQ,WAClB,aAAa,gBAAgB,YAAY,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,EACrE,CACF;EAEA,IAAI,YAAY,aAAa,OAAO,IAAI,GACtC,aAAa,OAAO,OAAO,WACzB,kBAAkB,MAAM,aAAa,OAAO,IAAI,GAChD,aAAa,GACf;OAEA,aAAa,OAAO,OAAO,WACzB,UAAU,aAAa,MAAM,MAAM,GACnC,aAAa,GACf;EAGF,aAAa,OAAO,SAAS,CAAC;EAC9B,IAAI,aAAa,OAAO,SAAS,OAC/B,IAAI,CAAC,aAAa,KAAK,QAAQ,UAAU,EAAE,GACzC,aAAa,OAAO,KAAK,OAAO,YAC9B,aAAa,OAAO,KAAK,IAC3B,IACI,WACE,kBAAkB,MAAM,aAAa,OAAO,KAAK,IAAI,GACrD,aAAa,GACf,IACA,aAAa,OAAO;OAExB,aAAa,OAAO,KAAK,OAAO,WAC9B,kBACE,MACA,YAAY,aAAa,OAAO,KAAK,IAAI,IACrC,aAAa,OAAO,KAAK,OACzB,UAAU,QAAQ,aAAa,IAAI,CACzC,GACA,aAAa,GACf;EAIJ,IAAI,aAAa,OAAO,UAAU,OAChC,aAAa,OAAO,QAAQ,WAC1B,kBACE,MACA,aAAa,OAAO,SAClB,UACE,aAAa,MACb,GAAG,aAAa,WAAW,QAAQ,aAAa,MAClD,CACJ,GACA,aAAa,GACf;EAGF,IACE,aAAa,OAAO,QACpB,aAAa,OAAO,KAAK,QACzB,aAAa,OAAO,KAAK,UACzB,MAAM,QAAQ,aAAa,OAAO,KAAK,MAAM,GAE7C,aAAa,OAAO,KAAK,SAAS,YAChC,aAAa,OAAO,KAAK,OAAO,KAAI,UAAS;GAC3C,OAAO;IACL,MAAM,YAAY,KAAK,IAAI,MAAM,OAAO;IACxC,OACE,SAAS,KAAK,KACd,CAAC,MAAM,SACP,MAAM,UAAU,OAChB,MAAM,UAAU,OAChB,MAAM,UAAU,OACZ,aAAa,MACb,aAAa,MAAM,OAAO,aAAa,GAAG,KACxC,QAAQ,MAAM,OAAO,aAAa,GAAG,IACrC,MAAM,QACN,WAAW,MAAM,OAAO,aAAa,GAAG;IAChD,QACE,YAAY,KAAK,KAAK,YAAY,MAAM,MAAM,IAC1C,aAAa,MAAM,QAAQ,aAAa,GAAG,IACzC,MAAM,SACN,WACE,UACG,aAAa,OAAO,KAAoB,MACzC,YACE,YACE,MAAM,QACN,YACG,aAAa,OAAO,KAAoB,MACzC,aAAa,GACf,CACF,GACC,aAAa,OAAO,KAAoB,IAC3C,CACF,GACA,aAAa,GACf,IACF,WACG,aAAa,OAAO,KAAoB,MACzC,aAAa,GACf;IACN,QACE,YAAY,KAAK,KAAK,MAAM,SACxB,QAAQ,MAAM,MAAM,IACpB;GACR;EACF,CAAC,IACA,MAAyB,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,QACtD;EAGF,IAAI,YAAY,aAAa,QAAQ,SAAS,GAC5C,IAAI,aAAa,SAAS,eACxB,aAAa,OAAO,YAAY;OAEhC,aAAa,OAAO,YAAY;EAIpC,IAAI,YAAY,aAAa,QAAQ,MAAM,GACzC,IAAI,aAAa,SAAS,cACxB,aAAa,OAAO,SAAS;OAE7B,aAAa,OAAO,SAAS;EAIjC,IAAI,YAAY,aAAa,QAAQ,aAAa,GAChD,aAAa,OAAO,gBAAgB,IAClC,aAAa,WAAW,QAAQ;EAIpC,IAAI,aAAa,OAAO,QAAQ,aAAa,OAAO,KAAK,QACvD,aAAa,OAAO,KAAK,SAAS,aAAa,OAAO,KAAK,OAAO,KAChE,WAAU;GACR,GAAG;GACH,MAAM,kBAAkB,MAAM,MAAM,IAAI;GACxC,QAAQ,MAAM,SACV,MAAM,OAAO,KAAI,WAAU,kBAAkB,MAAM,MAAM,CAAC,IAC1D;GACJ,OAAO,kBAAkB,MAAM,MAAM,KAAK;GAC1C,QAAQ,kBAAkB,MAAM,MAAM,MAAM;EAC9C,EACF;EAGF,IACG,YAAY,aAAa,QAAQ,OAAO,KACvC,aAAa,OAAO,YAAY,aACjC,YAAY,aAAa,QAAQ,OAAO,KACvC,OAAO,OAAO,aAAa,OAAO,OAAO,EAAE,OACzC,YAAW,QAAQ,WAAW,SAChC,GAEF,aAAa,OAAO,YAAY;EAKlC,KAAK,iBAAiB;EACtB,KAAKA,eAAe,KAAK,kBAAkB;EAE3C,KAAK,WAAW,eAAe;GAC7B,KAAK,KAAK,eAAe;GACzB,MAAM,KAAK,eAAe;GAC1B,UAAU,KAAK,SAAS;GACxB,MAAM,KAAK,eAAe;EAC5B,CAAC;EAED,KAAK,OAAO,KAAK;GACf,MAAM,EAAE,UAAU,SAAS;GAC3B,SAAS,+CAA+C,aACtD,KAAK,cACP;EACF,CAAC;EAED,KAAKJ,QAAQ,MAAM,kBAAkB,OAAO,IAAI;CAClD;CAEA,AAAQ,oBAAqC;EAC3C,OAAO,IAAI,MAAM,KAAK,gBAAgB;;;;;;;GAOpC,iBAAiB,QAAyB,QAAQ;IAChD,IAAI,wBAAwB,SAAS,IAAI,SAAS,CAAC,GACjD,MAAM,IAAI,MACR,0BAA0B,IAAI,SAAS,EAAE,8DAC3C;IAGF,QAAQ,eAAe,KAAK,kBAAkB,GAAG;IACjD,OAAO,QAAQ,eAAe,QAAQ,GAAG;GAC3C;;;;;;;GAQA,MAAM,QAAyB,KAAK,aAAa;IAC/C,IAAI,wBAAwB,SAAS,IAAI,SAAS,CAAC,GAAG;KACpD,IAAI,QAAQ,OACV,OAAO,KAAK;KAEd,IAAI,QAAQ,cACV,OAAO,KAAK;KAEd,IAAI,QAAQ,gBACV,OAAO,KAAK;KAEd,IAAI,QAAQ,gBACV,OAAO,KAAK;KAEd,IAAI,QAAQ,qBACV,OAAO,KAAK;IAEhB;IAEA,OAAO,QAAQ,IAAI,QAAQ,KAAK,QAAQ;GAC1C;;;;;;GAOA,MAAM,QAAyB,QAAkC;IAC/D,OACE,QAAQ,IAAI,QAAQ,GAAG,KACvB,wBAAwB,SAAS,IAAI,SAAS,CAAC;GAEnD;;;;;GAMA,UAAU,WAAwD;IAChE,OAAO,UAAU,CACf,GAAG,QAAQ,QAAQ,MAAM,GACzB,GAAG,uBACL,CAAC;GACH;;;;;;;;;GAUA,MACE,QACA,KACA,UACA,aACY;IACZ,IAAI,wBAAwB,SAAS,IAAI,SAAS,CAAC,GACjD,MAAM,IAAI,MACR,0BAA0B,IAAI,SAAS,EAAE,8DAC3C;IAGF,QAAQ,IAAI,KAAK,kBAAkB,KAAK,UAAU,QAAQ;IAC1D,OAAO,QAAQ,IAAI,QAAQ,KAAK,UAAU,QAAQ;GACpD;EACF,CAAC;CACH;AACF"}
1
+ {"version":3,"file":"context.mjs","names":["#tsconfig","#fs","#checksum","#buildId","#releaseId","#configProxy","#parserCache","#requestCache"],"sources":["../../src/context/context.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { toArray } from \"@stryke/convert/to-array\";\nimport { EnvPaths, getEnvPaths } from \"@stryke/env/get-env-paths\";\nimport { relativeToWorkspaceRoot } from \"@stryke/fs/get-workspace-root\";\nimport { murmurhash } from \"@stryke/hash\";\nimport { hashDirectory } from \"@stryke/hash/node\";\nimport { getUnique, getUniqueBy } from \"@stryke/helpers/get-unique\";\nimport { omit } from \"@stryke/helpers/omit\";\nimport { appendPath } from \"@stryke/path/append\";\nimport {\n findFileDotExtensionSafe,\n findFileExtensionSafe\n} from \"@stryke/path/file-path-fns\";\nimport { isEqual } from \"@stryke/path/is-equal\";\nimport { isParentPath } from \"@stryke/path/is-parent-path\";\nimport { joinPaths } from \"@stryke/path/join\";\nimport { replacePath } from \"@stryke/path/replace\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { isFunction } from \"@stryke/type-checks/is-function\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport { isUndefined } from \"@stryke/type-checks/is-undefined\";\nimport { TypeDefinition } from \"@stryke/types/configuration\";\nimport { PackageJson } from \"@stryke/types/package-json\";\nimport { uuid } from \"@stryke/unique-id/uuid\";\nimport { match, tsconfigPathsToRegExp } from \"bundle-require\";\nimport { resolveCompatibilityDates } from \"compatx\";\nimport defu from \"defu\";\nimport { create, FlatCache } from \"flat-cache\";\nimport { existsSync } from \"node:fs\";\nimport { parse, ParseResult } from \"oxc-parser\";\nimport { Range } from \"semver\";\nimport {\n Agent,\n BodyInit,\n fetch,\n interceptors,\n RequestInfo,\n Response,\n setGlobalDispatcher,\n RequestInit as UndiciRequestInit\n} from \"undici\";\nimport { UnpluginBuildContext } from \"unplugin\";\nimport {\n CACHE_HASH_LENGTH,\n DEFAULT_DEVELOPMENT_LOG_LEVEL,\n DEFAULT_PRODUCTION_LOG_LEVEL,\n DEFAULT_TEST_LOG_LEVEL,\n ROOT_HASH_LENGTH\n} from \"../constants\";\nimport {\n getDefaultMode,\n loadParsedConfig,\n resolvePackageConfigs\n} from \"../lib/config\";\nimport { getConfigProps } from \"../lib/context-helpers\";\nimport {\n getUniqueInputs,\n isTypeDefinition,\n resolveInputsSync\n} from \"../lib/entry\";\nimport { callHook } from \"../lib/hooks\";\nimport { getPrefixedRootHash } from \"../lib/meta\";\nimport { createResolver } from \"../lib/resolver\";\nimport { getTsconfigFilePath } from \"../lib/typescript/tsconfig\";\nimport { VirtualFileSystem } from \"../lib/vfs\";\nimport {\n getPackageJsonOrganization,\n getWorkspaceName\n} from \"../plugin-utils/context-helpers\";\nimport { formatConfig } from \"../plugin-utils/format\";\nimport { isDuplicate, isPlugin } from \"../plugin-utils/helpers\";\nimport { createLogger, resolveLogLevel } from \"../plugin-utils/logging\";\nimport { mergeConfig } from \"../plugin-utils/merge\";\nimport { replacePathTokens } from \"../plugin-utils/paths\";\nimport {\n CopyConfig,\n ExecutionOptions,\n FrameworkOptions,\n InferOverridableConfig,\n ParsedUserConfig,\n PluginConfig,\n ResolvedAssetGlob,\n ResolvedConfig,\n ResolvedCopyConfig,\n ResolvedEntryTypeDefinition,\n ResolvedOutputConfig\n} from \"../types/config\";\nimport {\n Context,\n EmitEntryOptions,\n EmitOptions,\n EnvironmentContext,\n ExecutionContext,\n FetchOptions,\n MetaInfo,\n ParseOptions,\n PluginContext,\n Resolver,\n ResolveResult,\n TransformResult\n} from \"../types/context\";\nimport {\n ResolveOptions,\n VirtualFile,\n VirtualFileSystemInterface\n} from \"../types/fs\";\nimport {\n CallHookOptions,\n InferHookParameters,\n InferHookReturnType\n} from \"../types/hooks\";\nimport {\n Logger,\n LoggerOptions,\n LogLevelResolvedConfig\n} from \"../types/logging\";\nimport { ParsedTypeScriptConfig } from \"../types/tsconfig\";\nimport { PowerlinesBaseContext } from \"./base-context\";\n\nconst agent = new Agent({ keepAliveTimeout: 10000 });\nsetGlobalDispatcher(\n agent.compose(\n interceptors.retry({\n maxRetries: 3,\n minTimeout: 1000,\n maxTimeout: 10000,\n timeoutFactor: 2,\n retryAfter: true\n })\n )\n);\n\nconst UNRESOLVED_CONFIG_NAMES = [\n \"userConfig\",\n \"inlineConfig\",\n \"pluginConfig\",\n \"environmentConfig\"\n];\n\nexport class PowerlinesContext<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig,\n TSystemContext = unknown\n>\n extends PowerlinesBaseContext<TSystemContext>\n implements Context<TResolvedConfig, TSystemContext>\n{\n #checksum: string | null = null;\n\n #buildId: string = uuid();\n\n #releaseId: string = uuid();\n\n #fs!: VirtualFileSystemInterface;\n\n #tsconfig!: ParsedTypeScriptConfig;\n\n #parserCache!: FlatCache;\n\n #requestCache!: FlatCache;\n\n #configProxy!: TResolvedConfig;\n\n public resolver!: Resolver;\n\n /**\n * The parsed `package.json` file for the project\n */\n public packageJson!: PackageJson;\n\n /**\n * The parsed `project.json` file for the project\n */\n public projectJson: Record<string, any> | undefined = undefined;\n\n /**\n * The parsed configuration file for the project\n */\n public configFile!: ParsedUserConfig;\n\n /**\n * An object containing the dependencies that should be installed for the project\n */\n public dependencies: Record<string, string | Range> = {};\n\n /**\n * An object containing the development dependencies that should be installed for the project\n */\n public devDependencies: Record<string, string | Range> = {};\n\n /**\n * The persisted meta information about the current build\n */\n public persistedMeta: MetaInfo | undefined = undefined;\n\n /**\n * The resolved tsconfig file paths for the project\n */\n public resolvePatterns: RegExp[] = [];\n\n /**\n * The resolved configuration for this context\n */\n protected resolvedConfig: TResolvedConfig = {} as TResolvedConfig;\n\n /**\n * The configuration options that were overridden by plugins during the build process, which may include additional properties or modifications made during the configuration loading process.\n */\n protected overriddenConfig: InferOverridableConfig<TResolvedConfig> =\n {} as InferOverridableConfig<TResolvedConfig>;\n\n /**\n * The configuration options provided inline during execution, such as CLI flags or other parameters that may be relevant to the command being executed. These options can be used to override or supplement the configuration options defined in a configuration file on disk, and are typically provided as part of the execution context when running a Powerlines command.\n */\n protected inlineConfig: TResolvedConfig[\"inlineConfig\"] =\n {} as TResolvedConfig[\"inlineConfig\"];\n\n /**\n * The configuration options read from a configuration file on disk, which may be used to resolve the final configuration for the context. This typically includes the user configuration options defined in the `powerlines.config.ts` file, as well as any inline configuration options provided during execution.\n */\n protected userConfig: TResolvedConfig[\"userConfig\"] = {};\n\n /**\n * The configuration options provided by plugins added by the user (and other plugins)\n */\n protected pluginConfig: TResolvedConfig[\"pluginConfig\"] = {};\n\n /**\n * The configuration options provided by the environment\n */\n protected environmentConfig: any = {};\n\n /**\n * The resolved entry type definitions for the project\n */\n public get entry(): ResolvedEntryTypeDefinition[] {\n const entry = this.resolvedEntry;\n\n return resolveInputsSync(\n this,\n entry && entry.length > 0\n ? entry\n : Array.isArray(this.config.input) ||\n (isSetObject(this.config.input) &&\n !isTypeDefinition(this.config.input))\n ? this.config.input\n : toArray(this.config.input).flat()\n );\n }\n\n /**\n * The TypeScript configuration parsed from the tsconfig file\n */\n public get tsconfig(): ParsedTypeScriptConfig {\n if (!this.#tsconfig) {\n this.tsconfig = {\n tsconfigFilePath: this.config.tsconfig\n } as ParsedTypeScriptConfig;\n }\n\n return this.#tsconfig;\n }\n\n /**\n * Sets the TypeScript configuration parsed from the tsconfig file\n */\n public set tsconfig(value: ParsedTypeScriptConfig) {\n this.#tsconfig = value;\n this.resolvePatterns = tsconfigPathsToRegExp(value?.options?.paths ?? {});\n }\n\n /**\n * The virtual file system interface for the project\n */\n public get fs(): VirtualFileSystemInterface {\n if (!this.#fs) {\n this.#fs = VirtualFileSystem.createSync(this);\n }\n\n return this.#fs;\n }\n\n /**\n * Get the checksum of the project's current state\n */\n public get checksum(): string | null {\n return this.#checksum;\n }\n\n /**\n * Invokes the configured plugin hooks\n *\n * @remarks\n * By default, it will call the `\"pre\"`, `\"normal\"`, and `\"post\"` ordered hooks in sequence\n *\n * @param hook - The hook to call\n * @param options - The options to provide to the hook\n * @param args - The arguments to pass to the hook\n * @returns The result of the hook call\n */\n public callHook = async <TKey extends string>(\n hook: TKey,\n options: CallHookOptions & {\n environment?: string | EnvironmentContext<any>;\n },\n ...args: InferHookParameters<PluginContext<any>, TKey>\n ): Promise<InferHookReturnType<PluginContext<any>, TKey> | undefined> =>\n callHook<TKey, TResolvedConfig>(\n this as unknown as ExecutionContext<TResolvedConfig>,\n hook,\n options,\n ...args\n );\n\n /**\n * The meta information about the current build\n */\n public get meta() {\n return {\n executionId: this.#buildId,\n releaseId: this.#releaseId,\n checksum: this.#checksum,\n timestamp: this.timestamp,\n rootHash: murmurhash(\n {\n workspaceRoot: this.config?.cwd,\n root: this.config?.root\n },\n {\n maxLength: ROOT_HASH_LENGTH\n }\n ),\n configHash: murmurhash(this.config, {\n maxLength: CACHE_HASH_LENGTH\n })\n } as MetaInfo;\n }\n\n /**\n * The resolved configuration options\n */\n public get config(): TResolvedConfig {\n if (!this.#configProxy) {\n this.#configProxy = this.createConfigProxy();\n }\n\n return this.#configProxy;\n }\n\n /**\n * Get the path to the artifacts directory for the project\n */\n public get artifactsPath(): string {\n return joinPaths(\n this.config.cwd,\n this.config.root,\n this.config.output?.artifactsPath ||\n `.${this.config.framework?.name || \"powerlines\"}`\n );\n }\n\n /**\n * Get the path to the builtin modules used by the project\n */\n public get builtinsPath(): string {\n return joinPaths(this.artifactsPath, \"builtins\");\n }\n\n /**\n * Get the path to the entry directory for the project\n */\n public get entryPath(): string {\n return joinPaths(this.artifactsPath, \"entry\");\n }\n\n /**\n * Get the path to the infrastructure modules used by the project\n */\n public get infrastructurePath(): string {\n return joinPaths(this.artifactsPath, \"infrastructure\");\n }\n\n /**\n * Get the path to the data directory for the project\n */\n public get dataPath(): string {\n return joinPaths(\n this.envPaths.data,\n \"projects\",\n getPrefixedRootHash(this.config.name, this.meta.rootHash)\n );\n }\n\n /**\n * Get the path to the cache directory for the project\n */\n public get cachePath(): string {\n return joinPaths(\n this.envPaths.cache,\n \"projects\",\n murmurhash(\n {\n checksum: this.#checksum,\n config: this.meta.configHash\n },\n {\n maxLength: CACHE_HASH_LENGTH\n }\n )\n );\n }\n\n /**\n * Get the path to the generated declaration file for the project\n */\n public get typesPath(): string {\n return this.config.output.types\n ? appendPath(this.config.output.types, this.config.cwd)\n : joinPaths(this.config.cwd, this.config.root, \"powerlines.d.ts\");\n }\n\n /**\n * Get the project root relative to the workspace root\n */\n public get relativeToWorkspaceRoot() {\n return relativeToWorkspaceRoot(this.config.root);\n }\n\n /**\n * The builtin module id that exist in the Powerlines virtual file system\n */\n public get builtins(): string[] {\n return Object.values(this.fs.metadata)\n .filter(meta => meta && meta.type === \"builtin\")\n .map(meta => meta?.id)\n .filter(Boolean);\n }\n\n /**\n * Additional arguments provided during execution of the command, such as CLI flags or other parameters that may be relevant to the command being executed.\n */\n public get additionalArgs(): Record<string, string | string[]> {\n return Object.entries(this.config.inlineConfig.additionalArgs ?? {}).reduce(\n (ret, [key, value]) => {\n const formattedKey = key.replace(/^--?/, \"\");\n\n if (ret[formattedKey]) {\n if (Array.isArray(ret[formattedKey])) {\n if (Array.isArray(value)) {\n ret[formattedKey] = [...toArray(ret[formattedKey]), ...value];\n } else {\n ret[formattedKey] = [...toArray(ret[formattedKey]), value];\n }\n } else {\n ret[formattedKey] = [\n ret[formattedKey],\n ...(Array.isArray(value) ? value : [value])\n ];\n }\n } else {\n ret[formattedKey] = value;\n }\n return ret;\n },\n {} as Record<string, string | string[]>\n );\n }\n\n /**\n * The alias mappings for the project used during module resolution\n *\n * @remarks\n * This includes both the built-in module aliases as well as any custom aliases defined in the build configuration.\n */\n public get alias(): Record<string, string> {\n return this.builtins.reduce(\n (ret, id) => {\n const moduleId = `${\n this.config?.framework?.name || \"powerlines\"\n }:${id.replace(/^.*:/, \"\")}`;\n if (!ret[moduleId]) {\n const path = this.fs.paths[id];\n if (path) {\n ret[moduleId] = path;\n }\n }\n\n return ret;\n },\n this.config.resolve.alias\n ? Array.isArray(this.config.resolve.alias)\n ? this.config.resolve.alias.reduce(\n (ret, alias) => {\n if (!ret[alias.find.toString()]) {\n ret[alias.find.toString()] = alias.replacement;\n }\n\n return ret;\n },\n {} as Record<string, string>\n )\n : this.config.resolve.alias\n : {}\n );\n }\n\n public override get logger(): Logger {\n return this.createLogger();\n }\n\n /**\n * The log level for the context, which determines the minimum level of log messages that will be emitted by the logger. This is resolved based on the configuration options provided by the user, and can be set to different levels for development, production, and test environments. The log level can also be overridden by plugins or other parts of the build process to provide more granular control over logging output.\n */\n public get logLevel(): LogLevelResolvedConfig {\n return resolveLogLevel(this.config.logLevel, this.config.mode);\n }\n\n /**\n * The environment paths for the project, which provide the locations of various directories and files used by the Powerlines framework. These paths are resolved based on the organization ID, application ID, and workspace root directory, and can be used to access configuration files, cache directories, and other resources in a consistent manner.\n */\n public override get envPaths(): EnvPaths {\n return getEnvPaths({\n orgId: kebabCase(this.config.framework?.orgId || \"storm-software\"),\n appId: kebabCase(this.config.framework?.name || \"powerlines\"),\n workspaceRoot: this.config.cwd\n });\n }\n\n /**\n * Gets the parser cache.\n */\n protected get parserCache(): FlatCache {\n if (!this.#parserCache) {\n this.#parserCache = create({\n cacheId: \"parser\",\n cacheDir: this.cachePath,\n ttl: 2 * 60 * 60 * 1000,\n lruSize: 5000,\n persistInterval: 250\n });\n }\n\n return this.#parserCache;\n }\n\n /**\n * Gets the request cache.\n */\n protected get requestCache(): FlatCache {\n if (!this.#requestCache) {\n this.#requestCache = create({\n cacheId: \"http\",\n cacheDir: this.cachePath,\n ttl: 6 * 60 * 60 * 1000,\n lruSize: 5000,\n persistInterval: 250\n });\n }\n\n return this.#requestCache;\n }\n\n /**\n * The entry points that exist in the Powerlines virtual file system\n */\n protected get resolvedEntry(): ResolvedEntryTypeDefinition[] {\n return Object.entries(this.fs.metadata)\n .filter(([, meta]) => meta && meta.type === \"entry\")\n .map(([path, meta]) => {\n const typeDefinition = {\n file: path\n } as ResolvedEntryTypeDefinition;\n\n if (meta.properties) {\n if (isSetString(meta.properties.file)) {\n typeDefinition.file = meta.properties.file;\n }\n if (isSetString(meta.properties.name)) {\n typeDefinition.name = meta.properties.name;\n }\n if (\n isSetString(meta.properties[\"input.file\"]) ||\n isSetString(meta.properties[\"input.name\"])\n ) {\n typeDefinition.input ??= {} as TypeDefinition;\n if (isSetString(meta.properties[\"input.file\"])) {\n typeDefinition.input.file = meta.properties[\"input.file\"];\n }\n if (isSetString(meta.properties[\"input.name\"])) {\n typeDefinition.input.name = meta.properties[\"input.name\"];\n }\n }\n if (isSetString(meta.properties.output)) {\n typeDefinition.output = meta.properties.output;\n }\n }\n\n return typeDefinition;\n })\n .filter(Boolean);\n }\n\n /**\n * Creates a new Context instance.\n *\n * @param options - The options to use for creating the context, including the resolved configuration and workspace settings.\n */\n protected constructor(public override options: ExecutionOptions) {\n super(options);\n }\n\n public override createLogger(options: LoggerOptions = {}) {\n return createLogger(\n this.config.name || this.options.root,\n {\n logLevel: this.logLevel,\n ...options\n },\n this.options.logFn\n );\n }\n\n /**\n * A function to perform HTTP fetch requests\n *\n * @remarks\n * This function uses a caching layer to avoid duplicate requests during the Powerlines process.\n *\n * @example\n * ```ts\n * const response = await context.fetch(\"https://api.example.com/data\");\n * const data = await response.json();\n * ```\n *\n * @see https://github.com/nodejs/undici\n *\n * @param input - The URL to fetch.\n * @param options - The fetch request options.\n * @returns A promise that resolves to a response returned by the fetch.\n */\n public async fetch(\n input: RequestInfo,\n options: FetchOptions = {}\n ): Promise<Response> {\n const { skipCache, timeout = 30000, signal, ...fetchOptions } = options;\n const url =\n typeof input === \"string\"\n ? input\n : \"url\" in input\n ? input.url\n : input.toString();\n\n const cacheKey = murmurhash({\n input: url,\n options: JSON.stringify({\n ...fetchOptions,\n timeout\n })\n });\n\n if (!this.config.skipCache && !skipCache) {\n const cached = this.requestCache.get<\n {\n body: BodyInit;\n } & Pick<Response, \"status\" | \"statusText\" | \"headers\">\n >(cacheKey);\n if (cached) {\n return new Response(cached.body, {\n status: cached.status,\n statusText: cached.statusText,\n headers: cached.headers\n });\n }\n }\n\n const logger = this.extendLogger({ category: \"communication\" });\n const startTime = Date.now();\n\n logger.trace(\n `Sending fetch request (${\n fetchOptions.method?.toUpperCase() || \"GET\"\n }): ${url}`\n );\n\n const requestController = new AbortController();\n const timeoutMs =\n typeof timeout === \"number\" && Number.isFinite(timeout) ? timeout : 30000;\n const timeoutId =\n timeoutMs > 0\n ? setTimeout(() => {\n requestController.abort(\n new Error(`Fetch request timed out after ${timeoutMs}ms`)\n );\n }, timeoutMs)\n : undefined;\n\n const onAbort = () => {\n requestController.abort(signal?.reason);\n };\n\n if (signal) {\n if (signal.aborted) {\n onAbort();\n } else {\n signal.addEventListener(\"abort\", onAbort, { once: true });\n }\n }\n\n let response: Response;\n try {\n response = await fetch(input, {\n ...(fetchOptions as UndiciRequestInit),\n signal: requestController.signal\n });\n } finally {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (signal) {\n signal.removeEventListener(\"abort\", onAbort);\n }\n }\n\n const result = {\n body: await response.text(),\n status: response.status,\n statusText: response.statusText,\n headers: Object.fromEntries(response.headers.entries())\n };\n\n if (!this.config.skipCache && !skipCache) {\n try {\n this.requestCache.set(cacheKey, result);\n } catch {\n // Do nothing\n }\n }\n\n logger.trace(\n `Fetch request (${\n fetchOptions.method?.toUpperCase() || \"GET\"\n }) completed in ${Date.now() - startTime}ms: ${url} - ${\n response.status\n } / ${response.statusText} \\n - Response Headers: ${JSON.stringify(\n result.headers\n )}\\n - Response Body: ${\n typeof result.body === \"string\"\n ? result.body.length > 1000\n ? `${result.body.slice(0, 1000)}... (truncated, total length: ${\n result.body.length\n })`\n : result.body\n : \"[Non-string body]\"\n }`\n );\n\n return new Response(result.body, {\n status: result.status,\n statusText: result.statusText,\n headers: result.headers\n });\n }\n\n /**\n * Parse code using [Oxc-Parser](https://github.com/oxc/oxc) into an (ESTree-compatible)[https://github.com/estree/estree] AST object.\n *\n * @remarks\n * This function can be used to parse TypeScript code into an AST for further analysis or transformation.\n *\n * @example\n * ```ts\n * const ast = context.parse(\"const x: number = 42;\");\n * ```\n *\n * @see https://rollupjs.org/plugin-development/#this-parse\n * @see https://github.com/oxc/oxc\n *\n * @param code - The source code to parse.\n * @param options - The options to pass to the parser.\n * @returns An (ESTree-compatible)[https://github.com/estree/estree] AST object.\n */\n public async parse(code: string, options: ParseOptions = {}) {\n const cacheKey = murmurhash({\n code,\n options\n });\n\n let result!: ParseResult;\n if (!this.config.skipCache) {\n result = this.parserCache.get<ParseResult>(cacheKey);\n if (result) {\n return result;\n }\n }\n\n result = await parse(`source.${options.lang || \"ts\"}`, code, {\n ...options,\n sourceType: \"module\",\n showSemanticErrors: this.config.mode === \"development\"\n });\n\n if (!this.config.skipCache) {\n this.parserCache.set(cacheKey, result);\n }\n\n return result;\n }\n\n /**\n * A helper function to resolve modules in the Virtual File System\n *\n * @remarks\n * This function can be used to resolve modules relative to the project root directory.\n *\n * @example\n * ```ts\n * const resolved = await context.resolve(\"some-module\", \"/path/to/importer\");\n * ```\n *\n * @param id - The module to resolve.\n * @param importer - An optional path to the importer module.\n * @param options - Additional resolution options.\n * @returns A promise that resolves to the resolved module path.\n */\n public async resolve(\n id: string,\n importer?: string,\n options: ResolveOptions = {}\n ): Promise<ResolveResult | undefined> {\n let moduleId = id;\n if (this.config.resolve.alias) {\n if (Array.isArray(this.config.resolve.alias)) {\n const alias = this.config.resolve.alias.find(a =>\n match(moduleId, [a.find])\n );\n if (alias) {\n moduleId = alias.replacement;\n }\n } else if (\n isSetObject(this.config.resolve.alias) &&\n this.config.resolve.alias[id]\n ) {\n moduleId = this.config.resolve.alias[id];\n }\n }\n\n if (\n this.fs.isResolvableId(moduleId) ||\n (importer && this.fs.isResolvableId(importer))\n ) {\n let resolvedImporter = importer;\n if (importer && this.fs.isResolvableId(importer)) {\n resolvedImporter = await this.fs.resolve(\n importer,\n undefined,\n defu(\n {\n conditions: this.config.resolve.conditions,\n extensions: this.config.resolve.extensions\n },\n options\n )\n );\n }\n\n const result = await this.fs.resolve(\n moduleId,\n resolvedImporter,\n defu(\n {\n conditions: this.config.resolve.conditions,\n extensions: this.config.resolve.extensions\n },\n options\n )\n );\n if (!result) {\n return undefined;\n }\n\n const external = Boolean(\n !match(moduleId, this.config.resolve.noExternal) &&\n (match(moduleId, this.config.resolve.external) ||\n moduleId.startsWith(\"node:\") ||\n ((!this.fs.isVirtual(moduleId, importer, options) ||\n (this.fs.isVirtual(moduleId, importer, options) &&\n this.config.projectType !== \"application\")) &&\n this.config.resolve.skipNodeModulesBundle &&\n !/^[A-Z]:[/\\\\]|^\\.{0,2}\\/|^\\.{1,2}$/.test(moduleId)))\n );\n\n return {\n id: result,\n external,\n virtual: !external\n };\n }\n\n if (this.config.resolve.skipNodeModulesBundle) {\n if (\n match(moduleId, this.resolvePatterns) ||\n match(moduleId, this.config.resolve.noExternal)\n ) {\n return undefined;\n }\n\n if (\n match(moduleId, this.config.resolve.external) ||\n moduleId.startsWith(\"node:\")\n ) {\n return { id: moduleId, external: true, virtual: false };\n }\n\n // Exclude any other import that looks like a Node module\n if (!/^[A-Z]:[/\\\\]|^\\.{0,2}\\/|^\\.{1,2}$/.test(moduleId)) {\n return {\n id: moduleId,\n external: true,\n virtual: false\n };\n }\n } else {\n if (match(moduleId, this.config.resolve.noExternal)) {\n return undefined;\n }\n\n if (\n match(moduleId, this.config.resolve.external) ||\n moduleId.startsWith(\"node:\")\n ) {\n return { id: moduleId, external: true, virtual: false };\n }\n }\n\n return undefined;\n }\n\n /**\n * A helper function to load modules from the Virtual File System\n *\n * @remarks\n * This function can be used to load modules relative to the project root directory.\n *\n * @example\n * ```ts\n * const module = await context.load(\"some-module\", \"/path/to/importer\");\n * ```\n *\n * @param id - The module to load.\n * @returns A promise that resolves to the loaded module.\n */\n public async load(id: string): Promise<TransformResult | undefined> {\n const resolvedId = await this.fs.resolve(id);\n if (!resolvedId) {\n return undefined;\n }\n\n const code = await this.fs.read(resolvedId);\n if (!code) {\n return undefined;\n }\n\n return { code, map: null };\n }\n\n /**\n * Get the builtin virtual files that exist in the Powerlines virtual file system\n */\n public async getBuiltins() {\n return Promise.all(\n Object.entries(this.fs.metadata)\n .filter(([, meta]) => meta && meta.type === \"builtin\")\n .map(async ([id, meta]) => {\n const code = await this.fs.read(id);\n const path = this.fs.paths[id];\n\n return { ...meta, path, code } as VirtualFile;\n })\n );\n }\n\n /**\n * Resolves a file and writes it to the VFS if it does not already exist\n *\n * @param code - The source code of the file\n * @param path - The path to write the file to\n * @param options - Additional options for writing the file\n */\n public async emit(\n code: string,\n path: string,\n options: EmitOptions = {}\n ): Promise<void> {\n const filePath = options.extension\n ? findFileExtensionSafe(path)\n ? options.extension.startsWith(\".\")\n ? path.replace(findFileDotExtensionSafe(path), options.extension)\n : path.replace(findFileExtensionSafe(path), options.extension)\n : options.extension.startsWith(\".\")\n ? `${path}${options.extension}`\n : `${path}.${options.extension}`\n : findFileExtensionSafe(path)\n ? path\n : `${path}.ts`;\n\n if (\n isFunction((this as unknown as UnpluginBuildContext).emitFile) &&\n options.emitWithBundler\n ) {\n return (this as unknown as UnpluginBuildContext).emitFile({\n needsCodeReference: options.needsCodeReference,\n originalFileName: options.originalFileName,\n fileName: filePath,\n source: code,\n type: \"asset\"\n });\n }\n\n return this.fs.write(filePath, code, options);\n }\n\n /**\n * Synchronously resolves a file and writes it to the VFS if it does not already exist\n *\n * @param code - The source code of the file\n * @param path - The path to write the file to\n * @param options - Additional options for writing the file\n */\n public emitSync(code: string, path: string, options: EmitOptions = {}) {\n const filePath = options.extension\n ? findFileExtensionSafe(path)\n ? options.extension.startsWith(\".\")\n ? path.replace(findFileDotExtensionSafe(path), options.extension)\n : path.replace(findFileExtensionSafe(path), options.extension)\n : options.extension.startsWith(\".\")\n ? `${path}${options.extension}`\n : `${path}.${options.extension}`\n : findFileExtensionSafe(path)\n ? path\n : `${path}.ts`;\n\n if (\n isFunction((this as unknown as UnpluginBuildContext).emitFile) &&\n options.emitWithBundler\n ) {\n return (this as unknown as UnpluginBuildContext).emitFile({\n needsCodeReference: options.needsCodeReference,\n originalFileName: options.originalFileName,\n fileName: filePath,\n source: code,\n type: \"asset\"\n });\n }\n\n return this.fs.writeSync(filePath, code, options);\n }\n\n /**\n * Resolves a entry virtual file and writes it to the VFS if it does not already exist\n *\n * @param code - The source code of the entry file\n * @param path - A path to write the entry file to\n * @param options - Optional write file options\n */\n public async emitEntry(\n code: string,\n path: string,\n options: EmitEntryOptions = {}\n ): Promise<void> {\n return this.emit(\n code,\n appendPath(path, this.entryPath),\n defu(\n {\n meta: {\n type: \"entry\",\n properties: {\n file: appendPath(path, this.entryPath),\n name: options?.name,\n output: options?.output,\n \"input.file\": options?.input?.file,\n \"input.name\": options?.input?.name\n }\n }\n },\n omit(options, [\"name\"])\n )\n );\n }\n\n /**\n * Synchronously resolves a entry virtual file and writes it to the VFS if it does not already exist\n *\n * @param code - The source code of the entry file\n * @param path - A path to write the entry file to\n * @param options - Optional write file options\n */\n public emitEntrySync(\n code: string,\n path: string,\n options: EmitEntryOptions = {}\n ): void {\n return this.emitSync(\n code,\n appendPath(path, this.entryPath),\n defu(\n {\n meta: {\n type: \"entry\",\n properties: {\n file: appendPath(path, this.entryPath),\n name: options?.name,\n output: options?.output,\n \"input.file\": options?.input?.file,\n \"input.name\": options?.input?.name\n }\n }\n },\n omit(options, [\"name\"])\n )\n );\n }\n\n /**\n * Resolves a builtin virtual file and writes it to the VFS if it does not already exist\n *\n * @param code - The source code of the builtin file\n * @param id - The unique identifier of the builtin file\n * @param options - Optional write file options\n */\n public async emitBuiltin(\n code: string,\n id: string,\n options: EmitOptions = {}\n ): Promise<void> {\n if (!this.builtinsPath) {\n throw new Error(\n `The builtins path is not set. Cannot emit builtin file with id \"${id}\".`\n );\n }\n\n if (!isSetString(id)) {\n throw new Error(\n `The builtin id must be a non-empty string. Received: ${String(id)}`\n );\n }\n\n return this.emit(\n code,\n appendPath(id, this.builtinsPath),\n defu(options, { meta: { type: \"builtin\", id } })\n );\n }\n\n /**\n * Synchronously resolves a builtin virtual file and writes it to the VFS if it does not already exist\n *\n * @param code - The source code of the builtin file\n * @param id - The unique identifier of the builtin file\n * @param options - Optional write file options\n */\n public emitBuiltinSync(code: string, id: string, options: EmitOptions = {}) {\n if (!this.builtinsPath) {\n throw new Error(\n `The builtins path is not set. Cannot emit builtin file with id \"${id}\".`\n );\n }\n\n if (!isSetString(id)) {\n throw new Error(\n `The builtin id must be a non-empty string. Received: ${String(id)}`\n );\n }\n\n return this.emitSync(\n code,\n appendPath(id, this.builtinsPath),\n defu(options, { meta: { type: \"builtin\", id } })\n );\n }\n\n /**\n * Resolves a builtin virtual file and writes it to the VFS if it does not already exist\n *\n * @param code - The source code of the builtin file\n * @param id - The unique identifier of the builtin file\n * @param options - Optional write file options\n */\n public async emitInfrastructure(\n code: string,\n id: string,\n options: EmitOptions = {}\n ): Promise<void> {\n if (!this.infrastructurePath) {\n throw new Error(\n `The infrastructure path is not set. Cannot emit infrastructure file with id \"${id}\".`\n );\n }\n\n if (!isSetString(id)) {\n throw new Error(\n `The infrastructure id must be a non-empty string. Received: ${String(id)}`\n );\n }\n\n return this.emit(\n code,\n appendPath(id, this.infrastructurePath),\n defu(options, { meta: { type: \"infrastructure\", id } })\n );\n }\n\n /**\n * Synchronously resolves an infrastructure virtual file and writes it to the VFS if it does not already exist\n *\n * @param code - The source code of the infrastructure file\n * @param id - The unique identifier of the infrastructure file\n * @param options - Optional write file options\n */\n public emitInfrastructureSync(\n code: string,\n id: string,\n options: EmitOptions = {}\n ) {\n if (!this.infrastructurePath) {\n throw new Error(\n `The infrastructure path is not set. Cannot emit infrastructure file with id \"${id}\".`\n );\n }\n\n if (!isSetString(id)) {\n throw new Error(\n `The infrastructure id must be a non-empty string. Received: ${String(id)}`\n );\n }\n\n return this.emitSync(\n code,\n appendPath(id, this.infrastructurePath),\n defu(options, { meta: { type: \"infrastructure\", id } })\n );\n }\n\n /**\n * Generates a checksum representing the current context state\n *\n * @param path - The root directory of the project to generate the checksum for\n * @returns A promise that resolves to a string representing the checksum\n */\n public async generateChecksum(path?: string): Promise<string> {\n return hashDirectory(\n path || appendPath(this.options.root, this.options.cwd)\n );\n }\n\n /**\n * A setter function to populate the inline config values provided during execution of the command, such as CLI flags or other parameters that may be relevant to the command being executed. This function can be used to update the context with the inline configuration values, which may be used during the configuration resolution process to ensure that the final configuration reflects both the user configuration and any inline configuration provided during execution.\n *\n * @param config - The inline configuration values to set.\n * @returns A promise that resolves when the inline configuration values have been set.\n */\n public async setInlineConfig(\n config: TResolvedConfig[\"inlineConfig\"]\n ): Promise<void> {\n this.logger.debug({\n meta: { category: \"config\" },\n message: `Updating inline configuration object: \\n${formatConfig(config)}`\n });\n\n this.inlineConfig = config;\n this.#checksum = await this.generateChecksum();\n\n this.configFile = await loadParsedConfig(\n this.options.cwd,\n this.options.root,\n this.options.framework?.name || \"powerlines\",\n this.options.framework?.orgId || \"storm-software\",\n config\n );\n\n const result =\n this.configFile.config &&\n toArray(this.configFile.config).length > this.options.configIndex\n ? toArray(this.configFile.config)[this.options.configIndex]!\n : this.configFile.config;\n if (!result) {\n this.logger.warn(\n `No configuration found in ${\n this.options.configFile\n } for execution index ${this.options.configIndex}.`\n );\n } else {\n await this.setUserConfig(\n (isFunction(result)\n ? await Promise.resolve(\n result({\n cwd: this.cwd,\n root: this.options.root,\n mode:\n this.inlineConfig.mode ||\n (await getDefaultMode(this.cwd, this.options.root)),\n command: this.inlineConfig.command\n })\n )\n : result) as TResolvedConfig[\"userConfig\"]\n );\n }\n\n await this.resolveConfig();\n }\n\n /**\n * A setter function to populate the plugin config values provided during execution of the command, such as CLI flags or other parameters that may be relevant to the command being executed. This function can be used to update the context with the plugin configuration values, which may be used during the configuration resolution process to ensure that the final configuration reflects both the user configuration and any plugin configuration provided during execution.\n *\n * @param config - The plugin configuration values to set.\n * @returns A promise that resolves when the plugin configuration values have been set.\n */\n public async setPluginConfig(\n config: TResolvedConfig[\"pluginConfig\"]\n ): Promise<void> {\n this.logger.debug({\n meta: { category: \"config\" },\n message: `Updating plugin configuration object: \\n${formatConfig(config)}`\n });\n\n this.pluginConfig = config;\n await this.resolveConfig();\n }\n\n /**\n * A function to merge the various configuration objects (initial, user, inline, and plugin) into a single resolved configuration object that can be used throughout the Powerlines process. This function takes into account the different sources of configuration and their respective priorities, ensuring that the final configuration reflects the intended settings for the project. The merged configuration is then returned as a new object that can be accessed through the `config` property of the context.\n *\n * @returns The merged configuration object that combines the initial, user, inline, and plugin configurations.\n */\n protected mergeConfig(): TResolvedConfig {\n return mergeConfig(\n {\n inlineConfig: this.inlineConfig,\n userConfig: this.userConfig,\n pluginConfig: this.pluginConfig,\n environmentConfig: this.environmentConfig\n },\n getConfigProps<TResolvedConfig>(this.overriddenConfig),\n this.options,\n getConfigProps<TResolvedConfig>(this.inlineConfig),\n getConfigProps<TResolvedConfig>(this.userConfig),\n getConfigProps<TResolvedConfig>(this.pluginConfig),\n {\n version: this.packageJson?.version,\n description: this.packageJson?.description,\n environments: {},\n resolve: {}\n }\n ) as TResolvedConfig;\n }\n\n /**\n * A setter function to populate the user config values provided during execution of the command, such as CLI flags or other parameters that may be relevant to the command being executed. This function can be used to update the context with the user configuration values, which may be used during the configuration resolution process to ensure that the final configuration reflects both the user configuration and any inline configuration provided during execution.\n *\n * @param config - The user configuration values to set.\n * @returns A promise that resolves when the user configuration values have been set.\n */\n protected async setUserConfig(\n config: TResolvedConfig[\"userConfig\"]\n ): Promise<void> {\n this.logger.debug({\n meta: { category: \"config\" },\n message: `Updating user configuration object: \\n${formatConfig(config)}`\n });\n\n this.userConfig = config;\n await this.resolveConfig();\n }\n\n /**\n * Initialize the context with the provided configuration options\n */\n protected async resolveConfig(): Promise<void> {\n const mergedConfig = this.mergeConfig();\n\n this.logger.trace({\n meta: { category: \"config\" },\n message: `Pre-setup Powerlines configuration object: \\n --- Merged Config --- \\n${formatConfig(\n mergedConfig\n )} \\n\\n --- User Config --- \\n${formatConfig(\n this.userConfig\n )} \\n\\n --- Inline Config --- \\n${formatConfig(\n this.inlineConfig\n )} \\n\\n --- Plugin Config --- \\n${formatConfig(\n this.pluginConfig\n )} \\n\\n --- Environment Config --- \\n${formatConfig(\n this.environmentConfig\n )} \\n\\n --- Overridden Config --- \\n${formatConfig(\n this.overriddenConfig\n )}`\n });\n\n mergedConfig.output = defu(mergedConfig.output ?? {}, {\n copy: {\n assets: [\n {\n glob: \"LICENSE\"\n },\n {\n input: mergedConfig.root,\n glob: \"*.md\"\n },\n {\n input: mergedConfig.root,\n glob: \"package.json\"\n }\n ]\n },\n dts: true\n }) as ResolvedOutputConfig;\n\n if (isUndefined(mergedConfig.mode)) {\n mergedConfig.mode = await getDefaultMode(this.cwd, mergedConfig.root);\n }\n\n if (\n isUndefined(mergedConfig.framework) ||\n !isSetString(mergedConfig.framework.name)\n ) {\n mergedConfig.framework ??= {} as FrameworkOptions;\n mergedConfig.framework.name ??=\n (await getWorkspaceName(this)) || \"powerlines\";\n }\n\n if (isUndefined(mergedConfig.platform)) {\n mergedConfig.platform = \"neutral\";\n }\n\n mergedConfig.compatibilityDate = resolveCompatibilityDates(\n mergedConfig.compatibilityDate,\n \"latest\"\n );\n\n if (\n (!this.packageJson &&\n existsSync(\n joinPaths(\n appendPath(mergedConfig.root, mergedConfig.cwd),\n \"package.json\"\n )\n )) ||\n (!this.projectJson &&\n existsSync(\n joinPaths(\n appendPath(mergedConfig.root, mergedConfig.cwd),\n \"project.json\"\n )\n ))\n ) {\n const result = await resolvePackageConfigs(\n mergedConfig.cwd,\n mergedConfig.root\n );\n if (result) {\n if (result.packageJson) {\n this.packageJson = result.packageJson;\n }\n if (result.projectJson) {\n this.projectJson = result.projectJson;\n }\n\n if (this.packageJson) {\n mergedConfig.framework ??= {} as FrameworkOptions;\n mergedConfig.framework.name ??=\n (await getWorkspaceName(this)) || \"powerlines\";\n mergedConfig.framework.orgId ??=\n getPackageJsonOrganization(this.packageJson) || \"storm-software\";\n }\n }\n }\n\n if (isUndefined(mergedConfig.projectType)) {\n mergedConfig.projectType = this.projectJson?.projectType || \"application\";\n }\n\n this.resolvedConfig = mergedConfig;\n this.#configProxy = this.createConfigProxy();\n\n mergedConfig.input = getUniqueInputs(mergedConfig.input);\n\n if (\n mergedConfig.name?.startsWith(\"@\") &&\n mergedConfig.name.split(\"/\").filter(Boolean).length > 1\n ) {\n mergedConfig.name = mergedConfig.name.split(\"/\").filter(Boolean)[1]!;\n }\n\n mergedConfig.title ??= titleCase(mergedConfig.name);\n\n if (mergedConfig.resolve.external) {\n mergedConfig.resolve.external = getUnique(mergedConfig.resolve.external);\n }\n if (mergedConfig.resolve.noExternal) {\n mergedConfig.resolve.noExternal = getUnique(\n mergedConfig.resolve.noExternal\n );\n }\n\n mergedConfig.plugins = (mergedConfig.plugins ?? [])\n .flatMap(plugin => toArray(plugin))\n .filter(Boolean)\n .reduce((ret, plugin) => {\n if (\n isPlugin(plugin) &&\n isDuplicate(\n plugin,\n ret.filter(p => isPlugin(p))\n )\n ) {\n return ret;\n }\n\n ret.push(plugin);\n\n return ret;\n }, [] as PluginConfig[]);\n\n if (isUndefined(mergedConfig.logLevel)) {\n if (mergedConfig.mode === \"development\") {\n mergedConfig.logLevel = DEFAULT_DEVELOPMENT_LOG_LEVEL;\n } else if (mergedConfig.mode === \"test\") {\n mergedConfig.logLevel = DEFAULT_TEST_LOG_LEVEL;\n } else {\n mergedConfig.logLevel = DEFAULT_PRODUCTION_LOG_LEVEL;\n }\n }\n\n mergedConfig.logLevel = resolveLogLevel(mergedConfig.logLevel);\n\n if (isSetString(mergedConfig.tsconfig)) {\n mergedConfig.tsconfig = replacePath(\n replacePathTokens(this, mergedConfig.tsconfig),\n mergedConfig.cwd\n );\n } else {\n mergedConfig.tsconfig = getTsconfigFilePath(\n mergedConfig.cwd,\n mergedConfig.root\n );\n }\n\n // #region Configure output\n\n mergedConfig.output.format = getUnique(\n toArray(\n mergedConfig.output?.format ??\n (mergedConfig.projectType === \"library\" ? [\"cjs\", \"esm\"] : [\"esm\"])\n )\n );\n\n if (isSetString(mergedConfig.output.path)) {\n mergedConfig.output.path = appendPath(\n replacePathTokens(this, mergedConfig.output.path),\n mergedConfig.cwd\n );\n } else {\n mergedConfig.output.path = appendPath(\n joinPaths(mergedConfig.root, \"dist\"),\n mergedConfig.cwd\n );\n }\n\n mergedConfig.output.copy ??= {} as ResolvedCopyConfig;\n if (mergedConfig.output.copy !== false) {\n if (!mergedConfig.root.replace(/^\\.\\/?/, \"\")) {\n mergedConfig.output.copy.path = isSetString(\n mergedConfig.output.copy.path\n )\n ? appendPath(\n replacePathTokens(this, mergedConfig.output.copy.path),\n mergedConfig.cwd\n )\n : mergedConfig.output.path;\n } else {\n mergedConfig.output.copy.path = appendPath(\n replacePathTokens(\n this,\n isSetString(mergedConfig.output.copy.path)\n ? mergedConfig.output.copy.path\n : joinPaths(\"dist\", mergedConfig.root)\n ),\n mergedConfig.cwd\n );\n }\n }\n\n if (mergedConfig.output.types !== false) {\n mergedConfig.output.types = appendPath(\n replacePathTokens(\n this,\n mergedConfig.output.types ||\n joinPaths(\n mergedConfig.root,\n `${mergedConfig.framework?.name ?? \"powerlines\"}.d.ts`\n )\n ),\n mergedConfig.cwd\n );\n }\n\n if (\n mergedConfig.output.copy &&\n mergedConfig.output.copy.path &&\n mergedConfig.output.copy.assets &&\n Array.isArray(mergedConfig.output.copy.assets)\n ) {\n mergedConfig.output.copy.assets = getUniqueBy(\n mergedConfig.output.copy.assets.map(asset => {\n return {\n glob: isSetObject(asset) ? asset.glob : asset,\n input:\n isString(asset) ||\n !asset.input ||\n asset.input === \".\" ||\n asset.input === \"/\" ||\n asset.input === \"./\"\n ? mergedConfig.cwd\n : isParentPath(asset.input, mergedConfig.cwd) ||\n isEqual(asset.input, mergedConfig.cwd)\n ? asset.input\n : appendPath(asset.input, mergedConfig.cwd),\n output:\n isSetObject(asset) && isSetString(asset.output)\n ? isParentPath(asset.output, mergedConfig.cwd)\n ? asset.output\n : appendPath(\n joinPaths(\n (mergedConfig.output.copy as CopyConfig).path,\n replacePath(\n replacePath(\n asset.output,\n replacePath(\n (mergedConfig.output.copy as CopyConfig).path,\n mergedConfig.cwd\n )\n ),\n (mergedConfig.output.copy as CopyConfig).path\n )\n ),\n mergedConfig.cwd\n )\n : appendPath(\n (mergedConfig.output.copy as CopyConfig).path,\n mergedConfig.cwd\n ),\n ignore:\n isSetObject(asset) && asset.ignore\n ? toArray(asset.ignore)\n : undefined\n };\n }),\n (a: ResolvedAssetGlob) => `${a.input}-${a.glob}-${a.output}`\n );\n }\n\n if (isUndefined(mergedConfig.output?.sourceMap)) {\n if (mergedConfig.mode === \"development\") {\n mergedConfig.output.sourceMap = true;\n } else {\n mergedConfig.output.sourceMap = false;\n }\n }\n\n if (isUndefined(mergedConfig.output?.minify)) {\n if (mergedConfig.mode === \"production\") {\n mergedConfig.output.minify = true;\n } else {\n mergedConfig.output.minify = false;\n }\n }\n\n if (isUndefined(mergedConfig.output?.artifactsPath)) {\n mergedConfig.output.artifactsPath = `.${\n mergedConfig.framework?.name ?? \"powerlines\"\n }`;\n }\n\n if (mergedConfig.output.copy && mergedConfig.output.copy.assets) {\n mergedConfig.output.copy.assets = mergedConfig.output.copy.assets.map(\n asset => ({\n ...asset,\n glob: replacePathTokens(this, asset.glob),\n ignore: asset.ignore\n ? asset.ignore.map(ignore => replacePathTokens(this, ignore))\n : undefined,\n input: replacePathTokens(this, asset.input),\n output: replacePathTokens(this, asset.output)\n })\n );\n }\n\n if (\n (isSetString(mergedConfig.output?.storage) &&\n mergedConfig.output.storage === \"virtual\") ||\n (isSetObject(mergedConfig.output?.storage) &&\n Object.values(mergedConfig.output.storage).every(\n adapter => adapter.preset === \"virtual\"\n ))\n ) {\n mergedConfig.output.overwrite = true;\n }\n\n // #endregion Configure output\n\n this.resolvedConfig = mergedConfig;\n this.#configProxy = this.createConfigProxy();\n\n this.resolver = createResolver({\n cwd: this.resolvedConfig.cwd,\n root: this.resolvedConfig.root,\n cacheDir: this.envPaths.cache,\n mode: this.resolvedConfig.mode\n });\n\n this.logger.info({\n meta: { category: \"config\" },\n message: `Resolved Powerlines configuration object: \\n${formatConfig(\n this.resolvedConfig\n )}`\n });\n\n this.#fs ??= await VirtualFileSystem.create(this);\n }\n\n private createConfigProxy(): TResolvedConfig {\n return new Proxy(this.resolvedConfig, {\n /**\n * A trap for the `delete` operator.\n * @param target - The original object which is being proxied.\n * @param key - The name or `Symbol` of the property to delete.\n * @returns A `boolean` indicating whether or not the property was deleted.\n */\n deleteProperty: (target: TResolvedConfig, key) => {\n if (UNRESOLVED_CONFIG_NAMES.includes(key.toString())) {\n throw new Error(\n `Cannot delete property ${key.toString()} from config - it is only intended to be used as a reference.`\n );\n }\n\n Reflect.deleteProperty(this.overriddenConfig, key);\n return Reflect.deleteProperty(target, key);\n },\n\n /**\n * A trap for getting a property value.\n * @param target - The original object which is being proxied.\n * @param key - The name or `Symbol` of the property to get.\n * @param receiver - The proxy or an object that inherits from the proxy.\n */\n get: (target: TResolvedConfig, key, receiver) => {\n if (UNRESOLVED_CONFIG_NAMES.includes(key.toString())) {\n if (key === \"cwd\") {\n return this.cwd;\n }\n if (key === \"userConfig\") {\n return this.userConfig;\n }\n if (key === \"inlineConfig\") {\n return this.inlineConfig;\n }\n if (key === \"pluginConfig\") {\n return this.pluginConfig;\n }\n if (key === \"environmentConfig\") {\n return this.environmentConfig;\n }\n }\n\n return Reflect.get(target, key, receiver);\n },\n\n /**\n * A trap for the `in` operator.\n * @param target - The original object which is being proxied.\n * @param key - The name or `Symbol` of the property to check for existence.\n */\n has: (target: TResolvedConfig, key: string | symbol): boolean => {\n return (\n Reflect.has(target, key) ||\n UNRESOLVED_CONFIG_NAMES.includes(key.toString())\n );\n },\n\n /**\n * A trap for `Reflect.ownKeys()`.\n * @param target - The original object which is being proxied.\n */\n ownKeys: (target: TResolvedConfig): ArrayLike<string | symbol> => {\n return getUnique([\n ...Reflect.ownKeys(target),\n ...UNRESOLVED_CONFIG_NAMES\n ]);\n },\n\n /**\n * A trap for setting a property value.\n * @param target - The original object which is being proxied.\n * @param key - The name or `Symbol` of the property to set.\n * @param newValue - The new value to assign to the property.\n * @param receiver - The object to which the assignment was originally directed.\n * @returns A `boolean` indicating whether or not the property was set.\n */\n set: (\n target: TResolvedConfig,\n key: string | symbol,\n newValue: any,\n receiver: any\n ): boolean => {\n if (UNRESOLVED_CONFIG_NAMES.includes(key.toString())) {\n throw new Error(\n `Cannot change property ${key.toString()} from config - it is only intended to be used as a reference.`\n );\n }\n\n Reflect.set(this.overriddenConfig, key, newValue, receiver);\n return Reflect.set(target, key, newValue, receiver);\n }\n });\n }\n}\n"],"mappings":"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"}
@@ -2,13 +2,13 @@ import { ExecutionContext } from "../types/context.cjs";
2
2
  import { InferOverridableConfig, ResolvedConfig } from "../types/config.cjs";
3
3
  //#region src/lib/context-helpers.d.ts
4
4
  declare function getConfigProps<TResolvedConfig extends ResolvedConfig>(config?: TResolvedConfig["userConfig"] | TResolvedConfig["inlineConfig"] | TResolvedConfig["pluginConfig"] | InferOverridableConfig<TResolvedConfig>): ({
5
- input: import("@stryke/types/configuration").TypeDefinition | import("@stryke/types/configuration").TypeDefinitionParameter[] | Record<string, import("@stryke/types/configuration").TypeDefinitionParameter | import("@stryke/types/configuration").TypeDefinitionParameter[]> | TResolvedConfig["input"] | (Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] extends object ? Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] extends infer T ? T extends Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] ? T extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T : { [K in keyof T]?: (T[K] extends object ? T[K] extends infer T_1 ? T_1 extends T[K] ? T_1 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_1 : { [K_2 in keyof T_1]?: (T_1[K_2] extends object ? T_1[K_2] extends infer T_2 ? T_2 extends T_1[K_2] ? T_2 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_2 : { [K_3 in keyof T_2]?: (T_2[K_3] extends object ? T_2[K_3] extends infer T_3 ? T_3 extends T_2[K_3] ? T_3 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_3 : { [K_4 in keyof T_3]?: (T_3[K_4] extends object ? T_3[K_4] extends infer T_4 ? T_4 extends T_3[K_4] ? T_4 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_4 : { [K_5 in keyof T_4]?: (T_4[K_5] extends object ? T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_5 : { [K_6 in keyof T_5]?: (T_5[K_6] extends object ? T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_6 : { [K_7 in keyof T_6]?: (T_6[K_7] extends object ? T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_7 : { [K_8 in keyof T_7]?: (T_7[K_8] extends object ? T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_8 : { [K_9 in keyof T_8]?: (T_8[K_9] extends object ? T_8[K_9] : T_8[K_9]) | undefined } : never : never : T_7[K_8]) | undefined } : never : never : T_6[K_7]) | undefined } : never : never : T_5[K_6]) | undefined } : never : never : T_4[K_5]) | undefined } : never : never : T_3[K_4]) | undefined } : never : never : T_2[K_3]) | undefined } : never : never : T_1[K_2]) | undefined } : never : never : T[K]) | undefined } : never : never : Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"]) | undefined;
5
+ input: import("@stryke/types/configuration").TypeDefinition | import("@stryke/types/configuration").TypeDefinitionParameter[] | Record<string, import("@stryke/types/configuration").TypeDefinitionParameter | import("@stryke/types/configuration").TypeDefinitionParameter[]> | TResolvedConfig["input"] | (Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] extends object ? Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] extends infer T ? T extends Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] ? T extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T : { [K in keyof T]?: (T[K] extends object ? T[K] extends infer T_1 ? T_1 extends T[K] ? T_1 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_1 : { [K_2 in keyof T_1]?: (T_1[K_2] extends object ? T_1[K_2] extends infer T_2 ? T_2 extends T_1[K_2] ? T_2 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_2 : { [K_3 in keyof T_2]?: (T_2[K_3] extends object ? T_2[K_3] extends infer T_3 ? T_3 extends T_2[K_3] ? T_3 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_3 : { [K_4 in keyof T_3]?: (T_3[K_4] extends object ? T_3[K_4] extends infer T_4 ? T_4 extends T_3[K_4] ? T_4 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_4 : { [K_5 in keyof T_4]?: (T_4[K_5] extends object ? T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_5 : { [K_6 in keyof T_5]?: (T_5[K_6] extends object ? T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_6 : { [K_7 in keyof T_6]?: (T_6[K_7] extends object ? T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_7 : { [K_8 in keyof T_7]?: (T_7[K_8] extends object ? T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_8 : { [K_9 in keyof T_8]?: (T_8[K_9] extends object ? T_8[K_9] : T_8[K_9]) | undefined } : never : never : T_7[K_8]) | undefined } : never : never : T_6[K_7]) | undefined } : never : never : T_5[K_6]) | undefined } : never : never : T_4[K_5]) | undefined } : never : never : T_3[K_4]) | undefined } : never : never : T_2[K_3]) | undefined } : never : never : T_1[K_2]) | undefined } : never : never : T[K]) | undefined } : never : never : Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"]) | undefined;
6
6
  } & TResolvedConfig["userConfig"]) | ({
7
- input: import("@stryke/types/configuration").TypeDefinition | import("@stryke/types/configuration").TypeDefinitionParameter[] | Record<string, import("@stryke/types/configuration").TypeDefinitionParameter | import("@stryke/types/configuration").TypeDefinitionParameter[]> | TResolvedConfig["input"] | (Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] extends object ? Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] extends infer T_1 ? T_1 extends Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] ? T_1 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_1 : { [K_1 in keyof T_1]?: (T_1[K_1] extends object ? T_1[K_1] extends infer T_2 ? T_2 extends T_1[K_1] ? T_2 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_2 : { [K_3 in keyof T_2]?: (T_2[K_3] extends object ? T_2[K_3] extends infer T_3 ? T_3 extends T_2[K_3] ? T_3 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_3 : { [K_4 in keyof T_3]?: (T_3[K_4] extends object ? T_3[K_4] extends infer T_4 ? T_4 extends T_3[K_4] ? T_4 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_4 : { [K_5 in keyof T_4]?: (T_4[K_5] extends object ? T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_5 : { [K_6 in keyof T_5]?: (T_5[K_6] extends object ? T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_6 : { [K_7 in keyof T_6]?: (T_6[K_7] extends object ? T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_7 : { [K_8 in keyof T_7]?: (T_7[K_8] extends object ? T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_8 : { [K_9 in keyof T_8]?: (T_8[K_9] extends object ? T_8[K_9] extends infer T_9 ? T_9 extends T_8[K_9] ? T_9 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_9 : { [K_10 in keyof T_9]?: (T_9[K_10] extends object ? T_9[K_10] : T_9[K_10]) | undefined } : never : never : T_8[K_9]) | undefined } : never : never : T_7[K_8]) | undefined } : never : never : T_6[K_7]) | undefined } : never : never : T_5[K_6]) | undefined } : never : never : T_4[K_5]) | undefined } : never : never : T_3[K_4]) | undefined } : never : never : T_2[K_3]) | undefined } : never : never : T_1[K_1]) | undefined } : never : never : Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"]) | undefined;
7
+ input: import("@stryke/types/configuration").TypeDefinition | import("@stryke/types/configuration").TypeDefinitionParameter[] | Record<string, import("@stryke/types/configuration").TypeDefinitionParameter | import("@stryke/types/configuration").TypeDefinitionParameter[]> | TResolvedConfig["input"] | (Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] extends object ? Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] extends infer T_1 ? T_1 extends Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] ? T_1 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_1 : { [K_1 in keyof T_1]?: (T_1[K_1] extends object ? T_1[K_1] extends infer T_2 ? T_2 extends T_1[K_1] ? T_2 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_2 : { [K_3 in keyof T_2]?: (T_2[K_3] extends object ? T_2[K_3] extends infer T_3 ? T_3 extends T_2[K_3] ? T_3 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_3 : { [K_4 in keyof T_3]?: (T_3[K_4] extends object ? T_3[K_4] extends infer T_4 ? T_4 extends T_3[K_4] ? T_4 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_4 : { [K_5 in keyof T_4]?: (T_4[K_5] extends object ? T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_5 : { [K_6 in keyof T_5]?: (T_5[K_6] extends object ? T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_6 : { [K_7 in keyof T_6]?: (T_6[K_7] extends object ? T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_7 : { [K_8 in keyof T_7]?: (T_7[K_8] extends object ? T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_8 : { [K_9 in keyof T_8]?: (T_8[K_9] extends object ? T_8[K_9] extends infer T_9 ? T_9 extends T_8[K_9] ? T_9 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_9 : { [K_10 in keyof T_9]?: (T_9[K_10] extends object ? T_9[K_10] : T_9[K_10]) | undefined } : never : never : T_8[K_9]) | undefined } : never : never : T_7[K_8]) | undefined } : never : never : T_6[K_7]) | undefined } : never : never : T_5[K_6]) | undefined } : never : never : T_4[K_5]) | undefined } : never : never : T_3[K_4]) | undefined } : never : never : T_2[K_3]) | undefined } : never : never : T_1[K_1]) | undefined } : never : never : Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"]) | undefined;
8
8
  } & TResolvedConfig["inlineConfig"]) | ({
9
- input: import("@stryke/types/configuration").TypeDefinition | import("@stryke/types/configuration").TypeDefinitionParameter[] | Record<string, import("@stryke/types/configuration").TypeDefinitionParameter | import("@stryke/types/configuration").TypeDefinitionParameter[]> | TResolvedConfig["input"] | (Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] extends object ? Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] extends infer T_2 ? T_2 extends Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] ? T_2 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_2 : { [K_2 in keyof T_2]?: (T_2[K_2] extends object ? T_2[K_2] extends infer T_3 ? T_3 extends T_2[K_2] ? T_3 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_3 : { [K_4 in keyof T_3]?: (T_3[K_4] extends object ? T_3[K_4] extends infer T_4 ? T_4 extends T_3[K_4] ? T_4 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_4 : { [K_5 in keyof T_4]?: (T_4[K_5] extends object ? T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_5 : { [K_6 in keyof T_5]?: (T_5[K_6] extends object ? T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_6 : { [K_7 in keyof T_6]?: (T_6[K_7] extends object ? T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_7 : { [K_8 in keyof T_7]?: (T_7[K_8] extends object ? T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_8 : { [K_9 in keyof T_8]?: (T_8[K_9] extends object ? T_8[K_9] extends infer T_9 ? T_9 extends T_8[K_9] ? T_9 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_9 : { [K_10 in keyof T_9]?: (T_9[K_10] extends object ? T_9[K_10] extends infer T_10 ? T_10 extends T_9[K_10] ? T_10 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_10 : { [K_11 in keyof T_10]?: (T_10[K_11] extends object ? T_10[K_11] : T_10[K_11]) | undefined } : never : never : T_9[K_10]) | undefined } : never : never : T_8[K_9]) | undefined } : never : never : T_7[K_8]) | undefined } : never : never : T_6[K_7]) | undefined } : never : never : T_5[K_6]) | undefined } : never : never : T_4[K_5]) | undefined } : never : never : T_3[K_4]) | undefined } : never : never : T_2[K_2]) | undefined } : never : never : Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"]) | undefined;
9
+ input: import("@stryke/types/configuration").TypeDefinition | import("@stryke/types/configuration").TypeDefinitionParameter[] | Record<string, import("@stryke/types/configuration").TypeDefinitionParameter | import("@stryke/types/configuration").TypeDefinitionParameter[]> | TResolvedConfig["input"] | (Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] extends object ? Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] extends infer T_2 ? T_2 extends Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] ? T_2 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_2 : { [K_2 in keyof T_2]?: (T_2[K_2] extends object ? T_2[K_2] extends infer T_3 ? T_3 extends T_2[K_2] ? T_3 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_3 : { [K_4 in keyof T_3]?: (T_3[K_4] extends object ? T_3[K_4] extends infer T_4 ? T_4 extends T_3[K_4] ? T_4 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_4 : { [K_5 in keyof T_4]?: (T_4[K_5] extends object ? T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_5 : { [K_6 in keyof T_5]?: (T_5[K_6] extends object ? T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_6 : { [K_7 in keyof T_6]?: (T_6[K_7] extends object ? T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_7 : { [K_8 in keyof T_7]?: (T_7[K_8] extends object ? T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_8 : { [K_9 in keyof T_8]?: (T_8[K_9] extends object ? T_8[K_9] extends infer T_9 ? T_9 extends T_8[K_9] ? T_9 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_9 : { [K_10 in keyof T_9]?: (T_9[K_10] extends object ? T_9[K_10] extends infer T_10 ? T_10 extends T_9[K_10] ? T_10 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_10 : { [K_11 in keyof T_10]?: (T_10[K_11] extends object ? T_10[K_11] : T_10[K_11]) | undefined } : never : never : T_9[K_10]) | undefined } : never : never : T_8[K_9]) | undefined } : never : never : T_7[K_8]) | undefined } : never : never : T_6[K_7]) | undefined } : never : never : T_5[K_6]) | undefined } : never : never : T_4[K_5]) | undefined } : never : never : T_3[K_4]) | undefined } : never : never : T_2[K_2]) | undefined } : never : never : Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"]) | undefined;
10
10
  } & TResolvedConfig["pluginConfig"]) | ({
11
- input: import("@stryke/types/configuration").TypeDefinition | import("@stryke/types/configuration").TypeDefinitionParameter[] | Record<string, import("@stryke/types/configuration").TypeDefinitionParameter | import("@stryke/types/configuration").TypeDefinitionParameter[]> | TResolvedConfig["input"] | (Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] extends object ? Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] extends infer T_3 ? T_3 extends Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] ? T_3 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_3 : { [K_3 in keyof T_3]?: (T_3[K_3] extends object ? T_3[K_3] extends infer T_4 ? T_4 extends T_3[K_3] ? T_4 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_4 : { [K_5 in keyof T_4]?: (T_4[K_5] extends object ? T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_5 : { [K_6 in keyof T_5]?: (T_5[K_6] extends object ? T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_6 : { [K_7 in keyof T_6]?: (T_6[K_7] extends object ? T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_7 : { [K_8 in keyof T_7]?: (T_7[K_8] extends object ? T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_8 : { [K_9 in keyof T_8]?: (T_8[K_9] extends object ? T_8[K_9] extends infer T_9 ? T_9 extends T_8[K_9] ? T_9 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_9 : { [K_10 in keyof T_9]?: (T_9[K_10] extends object ? T_9[K_10] extends infer T_10 ? T_10 extends T_9[K_10] ? T_10 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_10 : { [K_11 in keyof T_10]?: (T_10[K_11] extends object ? T_10[K_11] extends infer T_11 ? T_11 extends T_10[K_11] ? T_11 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_11 : { [K_12 in keyof T_11]?: (T_11[K_12] extends object ? T_11[K_12] : T_11[K_12]) | undefined } : never : never : T_10[K_11]) | undefined } : never : never : T_9[K_10]) | undefined } : never : never : T_8[K_9]) | undefined } : never : never : T_7[K_8]) | undefined } : never : never : T_6[K_7]) | undefined } : never : never : T_5[K_6]) | undefined } : never : never : T_4[K_5]) | undefined } : never : never : T_3[K_3]) | undefined } : never : never : Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"]) | undefined;
11
+ input: import("@stryke/types/configuration").TypeDefinition | import("@stryke/types/configuration").TypeDefinitionParameter[] | Record<string, import("@stryke/types/configuration").TypeDefinitionParameter | import("@stryke/types/configuration").TypeDefinitionParameter[]> | TResolvedConfig["input"] | (Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] extends object ? Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] extends infer T_3 ? T_3 extends Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] ? T_3 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_3 : { [K_3 in keyof T_3]?: (T_3[K_3] extends object ? T_3[K_3] extends infer T_4 ? T_4 extends T_3[K_3] ? T_4 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_4 : { [K_5 in keyof T_4]?: (T_4[K_5] extends object ? T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_5 : { [K_6 in keyof T_5]?: (T_5[K_6] extends object ? T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_6 : { [K_7 in keyof T_6]?: (T_6[K_7] extends object ? T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_7 : { [K_8 in keyof T_7]?: (T_7[K_8] extends object ? T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_8 : { [K_9 in keyof T_8]?: (T_8[K_9] extends object ? T_8[K_9] extends infer T_9 ? T_9 extends T_8[K_9] ? T_9 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_9 : { [K_10 in keyof T_9]?: (T_9[K_10] extends object ? T_9[K_10] extends infer T_10 ? T_10 extends T_9[K_10] ? T_10 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_10 : { [K_11 in keyof T_10]?: (T_10[K_11] extends object ? T_10[K_11] extends infer T_11 ? T_11 extends T_10[K_11] ? T_11 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_11 : { [K_12 in keyof T_11]?: (T_11[K_12] extends object ? T_11[K_12] : T_11[K_12]) | undefined } : never : never : T_10[K_11]) | undefined } : never : never : T_9[K_10]) | undefined } : never : never : T_8[K_9]) | undefined } : never : never : T_7[K_8]) | undefined } : never : never : T_6[K_7]) | undefined } : never : never : T_5[K_6]) | undefined } : never : never : T_4[K_5]) | undefined } : never : never : T_3[K_3]) | undefined } : never : never : Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"]) | undefined;
12
12
  } & InferOverridableConfig<TResolvedConfig>);
13
13
  declare function resolvePluginConfig<TResolvedConfig extends ResolvedConfig = ResolvedConfig, TSystemContext = unknown, TContext extends ExecutionContext<TResolvedConfig, TSystemContext> = ExecutionContext<TResolvedConfig, TSystemContext>>(context: TContext): Promise<void>;
14
14
  //#endregion
@@ -2,13 +2,13 @@ import { ExecutionContext } from "../types/context.mjs";
2
2
  import { InferOverridableConfig, ResolvedConfig } from "../types/config.mjs";
3
3
  //#region src/lib/context-helpers.d.ts
4
4
  declare function getConfigProps<TResolvedConfig extends ResolvedConfig>(config?: TResolvedConfig["userConfig"] | TResolvedConfig["inlineConfig"] | TResolvedConfig["pluginConfig"] | InferOverridableConfig<TResolvedConfig>): ({
5
- input: import("@stryke/types/configuration").TypeDefinition | import("@stryke/types/configuration").TypeDefinitionParameter[] | Record<string, import("@stryke/types/configuration").TypeDefinitionParameter | import("@stryke/types/configuration").TypeDefinitionParameter[]> | TResolvedConfig["input"] | (Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] extends object ? Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] extends infer T ? T extends Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] ? T extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T : { [K in keyof T]?: (T[K] extends object ? T[K] extends infer T_1 ? T_1 extends T[K] ? T_1 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_1 : { [K_2 in keyof T_1]?: (T_1[K_2] extends object ? T_1[K_2] extends infer T_2 ? T_2 extends T_1[K_2] ? T_2 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_2 : { [K_3 in keyof T_2]?: (T_2[K_3] extends object ? T_2[K_3] extends infer T_3 ? T_3 extends T_2[K_3] ? T_3 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_3 : { [K_4 in keyof T_3]?: (T_3[K_4] extends object ? T_3[K_4] extends infer T_4 ? T_4 extends T_3[K_4] ? T_4 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_4 : { [K_5 in keyof T_4]?: (T_4[K_5] extends object ? T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_5 : { [K_6 in keyof T_5]?: (T_5[K_6] extends object ? T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_6 : { [K_7 in keyof T_6]?: (T_6[K_7] extends object ? T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_7 : { [K_8 in keyof T_7]?: (T_7[K_8] extends object ? T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_8 : { [K_9 in keyof T_8]?: (T_8[K_9] extends object ? T_8[K_9] : T_8[K_9]) | undefined } : never : never : T_7[K_8]) | undefined } : never : never : T_6[K_7]) | undefined } : never : never : T_5[K_6]) | undefined } : never : never : T_4[K_5]) | undefined } : never : never : T_3[K_4]) | undefined } : never : never : T_2[K_3]) | undefined } : never : never : T_1[K_2]) | undefined } : never : never : T[K]) | undefined } : never : never : Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"]) | undefined;
5
+ input: import("@stryke/types/configuration").TypeDefinition | import("@stryke/types/configuration").TypeDefinitionParameter[] | Record<string, import("@stryke/types/configuration").TypeDefinitionParameter | import("@stryke/types/configuration").TypeDefinitionParameter[]> | TResolvedConfig["input"] | (Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] extends object ? Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] extends infer T ? T extends Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] ? T extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T : { [K in keyof T]?: (T[K] extends object ? T[K] extends infer T_1 ? T_1 extends T[K] ? T_1 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_1 : { [K_2 in keyof T_1]?: (T_1[K_2] extends object ? T_1[K_2] extends infer T_2 ? T_2 extends T_1[K_2] ? T_2 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_2 : { [K_3 in keyof T_2]?: (T_2[K_3] extends object ? T_2[K_3] extends infer T_3 ? T_3 extends T_2[K_3] ? T_3 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_3 : { [K_4 in keyof T_3]?: (T_3[K_4] extends object ? T_3[K_4] extends infer T_4 ? T_4 extends T_3[K_4] ? T_4 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_4 : { [K_5 in keyof T_4]?: (T_4[K_5] extends object ? T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_5 : { [K_6 in keyof T_5]?: (T_5[K_6] extends object ? T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_6 : { [K_7 in keyof T_6]?: (T_6[K_7] extends object ? T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_7 : { [K_8 in keyof T_7]?: (T_7[K_8] extends object ? T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_8 : { [K_9 in keyof T_8]?: (T_8[K_9] extends object ? T_8[K_9] : T_8[K_9]) | undefined } : never : never : T_7[K_8]) | undefined } : never : never : T_6[K_7]) | undefined } : never : never : T_5[K_6]) | undefined } : never : never : T_4[K_5]) | undefined } : never : never : T_3[K_4]) | undefined } : never : never : T_2[K_3]) | undefined } : never : never : T_1[K_2]) | undefined } : never : never : T[K]) | undefined } : never : never : Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"]) | undefined;
6
6
  } & TResolvedConfig["userConfig"]) | ({
7
- input: import("@stryke/types/configuration").TypeDefinition | import("@stryke/types/configuration").TypeDefinitionParameter[] | Record<string, import("@stryke/types/configuration").TypeDefinitionParameter | import("@stryke/types/configuration").TypeDefinitionParameter[]> | TResolvedConfig["input"] | (Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] extends object ? Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] extends infer T_1 ? T_1 extends Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] ? T_1 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_1 : { [K_1 in keyof T_1]?: (T_1[K_1] extends object ? T_1[K_1] extends infer T_2 ? T_2 extends T_1[K_1] ? T_2 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_2 : { [K_3 in keyof T_2]?: (T_2[K_3] extends object ? T_2[K_3] extends infer T_3 ? T_3 extends T_2[K_3] ? T_3 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_3 : { [K_4 in keyof T_3]?: (T_3[K_4] extends object ? T_3[K_4] extends infer T_4 ? T_4 extends T_3[K_4] ? T_4 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_4 : { [K_5 in keyof T_4]?: (T_4[K_5] extends object ? T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_5 : { [K_6 in keyof T_5]?: (T_5[K_6] extends object ? T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_6 : { [K_7 in keyof T_6]?: (T_6[K_7] extends object ? T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_7 : { [K_8 in keyof T_7]?: (T_7[K_8] extends object ? T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_8 : { [K_9 in keyof T_8]?: (T_8[K_9] extends object ? T_8[K_9] extends infer T_9 ? T_9 extends T_8[K_9] ? T_9 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_9 : { [K_10 in keyof T_9]?: (T_9[K_10] extends object ? T_9[K_10] : T_9[K_10]) | undefined } : never : never : T_8[K_9]) | undefined } : never : never : T_7[K_8]) | undefined } : never : never : T_6[K_7]) | undefined } : never : never : T_5[K_6]) | undefined } : never : never : T_4[K_5]) | undefined } : never : never : T_3[K_4]) | undefined } : never : never : T_2[K_3]) | undefined } : never : never : T_1[K_1]) | undefined } : never : never : Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"]) | undefined;
7
+ input: import("@stryke/types/configuration").TypeDefinition | import("@stryke/types/configuration").TypeDefinitionParameter[] | Record<string, import("@stryke/types/configuration").TypeDefinitionParameter | import("@stryke/types/configuration").TypeDefinitionParameter[]> | TResolvedConfig["input"] | (Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] extends object ? Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] extends infer T_1 ? T_1 extends Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] ? T_1 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_1 : { [K_1 in keyof T_1]?: (T_1[K_1] extends object ? T_1[K_1] extends infer T_2 ? T_2 extends T_1[K_1] ? T_2 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_2 : { [K_3 in keyof T_2]?: (T_2[K_3] extends object ? T_2[K_3] extends infer T_3 ? T_3 extends T_2[K_3] ? T_3 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_3 : { [K_4 in keyof T_3]?: (T_3[K_4] extends object ? T_3[K_4] extends infer T_4 ? T_4 extends T_3[K_4] ? T_4 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_4 : { [K_5 in keyof T_4]?: (T_4[K_5] extends object ? T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_5 : { [K_6 in keyof T_5]?: (T_5[K_6] extends object ? T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_6 : { [K_7 in keyof T_6]?: (T_6[K_7] extends object ? T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_7 : { [K_8 in keyof T_7]?: (T_7[K_8] extends object ? T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_8 : { [K_9 in keyof T_8]?: (T_8[K_9] extends object ? T_8[K_9] extends infer T_9 ? T_9 extends T_8[K_9] ? T_9 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_9 : { [K_10 in keyof T_9]?: (T_9[K_10] extends object ? T_9[K_10] : T_9[K_10]) | undefined } : never : never : T_8[K_9]) | undefined } : never : never : T_7[K_8]) | undefined } : never : never : T_6[K_7]) | undefined } : never : never : T_5[K_6]) | undefined } : never : never : T_4[K_5]) | undefined } : never : never : T_3[K_4]) | undefined } : never : never : T_2[K_3]) | undefined } : never : never : T_1[K_1]) | undefined } : never : never : Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"]) | undefined;
8
8
  } & TResolvedConfig["inlineConfig"]) | ({
9
- input: import("@stryke/types/configuration").TypeDefinition | import("@stryke/types/configuration").TypeDefinitionParameter[] | Record<string, import("@stryke/types/configuration").TypeDefinitionParameter | import("@stryke/types/configuration").TypeDefinitionParameter[]> | TResolvedConfig["input"] | (Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] extends object ? Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] extends infer T_2 ? T_2 extends Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] ? T_2 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_2 : { [K_2 in keyof T_2]?: (T_2[K_2] extends object ? T_2[K_2] extends infer T_3 ? T_3 extends T_2[K_2] ? T_3 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_3 : { [K_4 in keyof T_3]?: (T_3[K_4] extends object ? T_3[K_4] extends infer T_4 ? T_4 extends T_3[K_4] ? T_4 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_4 : { [K_5 in keyof T_4]?: (T_4[K_5] extends object ? T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_5 : { [K_6 in keyof T_5]?: (T_5[K_6] extends object ? T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_6 : { [K_7 in keyof T_6]?: (T_6[K_7] extends object ? T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_7 : { [K_8 in keyof T_7]?: (T_7[K_8] extends object ? T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_8 : { [K_9 in keyof T_8]?: (T_8[K_9] extends object ? T_8[K_9] extends infer T_9 ? T_9 extends T_8[K_9] ? T_9 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_9 : { [K_10 in keyof T_9]?: (T_9[K_10] extends object ? T_9[K_10] extends infer T_10 ? T_10 extends T_9[K_10] ? T_10 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_10 : { [K_11 in keyof T_10]?: (T_10[K_11] extends object ? T_10[K_11] : T_10[K_11]) | undefined } : never : never : T_9[K_10]) | undefined } : never : never : T_8[K_9]) | undefined } : never : never : T_7[K_8]) | undefined } : never : never : T_6[K_7]) | undefined } : never : never : T_5[K_6]) | undefined } : never : never : T_4[K_5]) | undefined } : never : never : T_3[K_4]) | undefined } : never : never : T_2[K_2]) | undefined } : never : never : Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"]) | undefined;
9
+ input: import("@stryke/types/configuration").TypeDefinition | import("@stryke/types/configuration").TypeDefinitionParameter[] | Record<string, import("@stryke/types/configuration").TypeDefinitionParameter | import("@stryke/types/configuration").TypeDefinitionParameter[]> | TResolvedConfig["input"] | (Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] extends object ? Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] extends infer T_2 ? T_2 extends Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] ? T_2 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_2 : { [K_2 in keyof T_2]?: (T_2[K_2] extends object ? T_2[K_2] extends infer T_3 ? T_3 extends T_2[K_2] ? T_3 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_3 : { [K_4 in keyof T_3]?: (T_3[K_4] extends object ? T_3[K_4] extends infer T_4 ? T_4 extends T_3[K_4] ? T_4 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_4 : { [K_5 in keyof T_4]?: (T_4[K_5] extends object ? T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_5 : { [K_6 in keyof T_5]?: (T_5[K_6] extends object ? T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_6 : { [K_7 in keyof T_6]?: (T_6[K_7] extends object ? T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_7 : { [K_8 in keyof T_7]?: (T_7[K_8] extends object ? T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_8 : { [K_9 in keyof T_8]?: (T_8[K_9] extends object ? T_8[K_9] extends infer T_9 ? T_9 extends T_8[K_9] ? T_9 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_9 : { [K_10 in keyof T_9]?: (T_9[K_10] extends object ? T_9[K_10] extends infer T_10 ? T_10 extends T_9[K_10] ? T_10 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_10 : { [K_11 in keyof T_10]?: (T_10[K_11] extends object ? T_10[K_11] : T_10[K_11]) | undefined } : never : never : T_9[K_10]) | undefined } : never : never : T_8[K_9]) | undefined } : never : never : T_7[K_8]) | undefined } : never : never : T_6[K_7]) | undefined } : never : never : T_5[K_6]) | undefined } : never : never : T_4[K_5]) | undefined } : never : never : T_3[K_4]) | undefined } : never : never : T_2[K_2]) | undefined } : never : never : Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"]) | undefined;
10
10
  } & TResolvedConfig["pluginConfig"]) | ({
11
- input: import("@stryke/types/configuration").TypeDefinition | import("@stryke/types/configuration").TypeDefinitionParameter[] | Record<string, import("@stryke/types/configuration").TypeDefinitionParameter | import("@stryke/types/configuration").TypeDefinitionParameter[]> | TResolvedConfig["input"] | (Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] extends object ? Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] extends infer T_3 ? T_3 extends Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"] ? T_3 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_3 : { [K_3 in keyof T_3]?: (T_3[K_3] extends object ? T_3[K_3] extends infer T_4 ? T_4 extends T_3[K_3] ? T_4 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_4 : { [K_5 in keyof T_4]?: (T_4[K_5] extends object ? T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_5 : { [K_6 in keyof T_5]?: (T_5[K_6] extends object ? T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_6 : { [K_7 in keyof T_6]?: (T_6[K_7] extends object ? T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_7 : { [K_8 in keyof T_7]?: (T_7[K_8] extends object ? T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_8 : { [K_9 in keyof T_8]?: (T_8[K_9] extends object ? T_8[K_9] extends infer T_9 ? T_9 extends T_8[K_9] ? T_9 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_9 : { [K_10 in keyof T_9]?: (T_9[K_10] extends object ? T_9[K_10] extends infer T_10 ? T_10 extends T_9[K_10] ? T_10 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_10 : { [K_11 in keyof T_10]?: (T_10[K_11] extends object ? T_10[K_11] extends infer T_11 ? T_11 extends T_10[K_11] ? T_11 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_11 : { [K_12 in keyof T_11]?: (T_11[K_12] extends object ? T_11[K_12] : T_11[K_12]) | undefined } : never : never : T_10[K_11]) | undefined } : never : never : T_9[K_10]) | undefined } : never : never : T_8[K_9]) | undefined } : never : never : T_7[K_8]) | undefined } : never : never : T_6[K_7]) | undefined } : never : never : T_5[K_6]) | undefined } : never : never : T_4[K_5]) | undefined } : never : never : T_3[K_3]) | undefined } : never : never : Omit<TResolvedConfig, "cwd" | "configFile" | "command" | "userConfig" | "inlineConfig" | "pluginConfig">["input"]) | undefined;
11
+ input: import("@stryke/types/configuration").TypeDefinition | import("@stryke/types/configuration").TypeDefinitionParameter[] | Record<string, import("@stryke/types/configuration").TypeDefinitionParameter | import("@stryke/types/configuration").TypeDefinitionParameter[]> | TResolvedConfig["input"] | (Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] extends object ? Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] extends infer T_3 ? T_3 extends Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"] ? T_3 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_3 : { [K_3 in keyof T_3]?: (T_3[K_3] extends object ? T_3[K_3] extends infer T_4 ? T_4 extends T_3[K_3] ? T_4 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_4 : { [K_5 in keyof T_4]?: (T_4[K_5] extends object ? T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_5 : { [K_6 in keyof T_5]?: (T_5[K_6] extends object ? T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_6 : { [K_7 in keyof T_6]?: (T_6[K_7] extends object ? T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_7 : { [K_8 in keyof T_7]?: (T_7[K_8] extends object ? T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_8 : { [K_9 in keyof T_8]?: (T_8[K_9] extends object ? T_8[K_9] extends infer T_9 ? T_9 extends T_8[K_9] ? T_9 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_9 : { [K_10 in keyof T_9]?: (T_9[K_10] extends object ? T_9[K_10] extends infer T_10 ? T_10 extends T_9[K_10] ? T_10 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_10 : { [K_11 in keyof T_10]?: (T_10[K_11] extends object ? T_10[K_11] extends infer T_11 ? T_11 extends T_10[K_11] ? T_11 extends import("@stryke/types/base").BrowserNativeObject | import("@stryke/types/base").NestedValue<object> ? T_11 : { [K_12 in keyof T_11]?: (T_11[K_12] extends object ? T_11[K_12] : T_11[K_12]) | undefined } : never : never : T_10[K_11]) | undefined } : never : never : T_9[K_10]) | undefined } : never : never : T_8[K_9]) | undefined } : never : never : T_7[K_8]) | undefined } : never : never : T_6[K_7]) | undefined } : never : never : T_5[K_6]) | undefined } : never : never : T_4[K_5]) | undefined } : never : never : T_3[K_3]) | undefined } : never : never : Omit<TResolvedConfig, "cwd" | "configFile" | "pluginConfig" | "command" | "userConfig" | "inlineConfig">["input"]) | undefined;
12
12
  } & InferOverridableConfig<TResolvedConfig>);
13
13
  declare function resolvePluginConfig<TResolvedConfig extends ResolvedConfig = ResolvedConfig, TSystemContext = unknown, TContext extends ExecutionContext<TResolvedConfig, TSystemContext> = ExecutionContext<TResolvedConfig, TSystemContext>>(context: TContext): Promise<void>;
14
14
  //#endregion
@@ -6,7 +6,6 @@ import { ParsedTypeScriptConfig } from "./tsconfig.cjs";
6
6
  import { EnvironmentResolvedConfig, ExecutionOptions, Options, PluginConfig, ResolvedConfig, ResolvedEntryTypeDefinition, UserConfig } from "./config.cjs";
7
7
  import { EnvPaths } from "@stryke/env/get-env-paths";
8
8
  import { DeepPartial } from "@stryke/types/base";
9
- import { FetchRequestOptions } from "@stryke/http/fetch";
10
9
  import { PackageJson } from "@stryke/types/package-json";
11
10
  import { Jiti } from "jiti";
12
11
  import MagicString, { SourceMap } from "magic-string";
@@ -93,11 +92,17 @@ interface InitContextOptions {
93
92
  /**
94
93
  * Options for fetch requests made via the context's {@link Context.fetch} method
95
94
  */
96
- interface FetchOptions extends FetchRequestOptions {
95
+ interface FetchOptions extends RequestInit {
97
96
  /**
98
97
  * An indicator specifying that the request should bypass any caching
99
98
  */
100
99
  skipCache?: boolean;
100
+ /**
101
+ * The maximum time in milliseconds to wait for the request to complete.
102
+ *
103
+ * @defaultValue 30000
104
+ */
105
+ timeout?: number;
101
106
  }
102
107
  /**
103
108
  * Options for parsing code using [Oxc-Parser](https://github.com/oxc/oxc)
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.cts","names":[],"sources":["../../src/types/context.ts"],"mappings":"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"}
1
+ {"version":3,"file":"context.d.cts","names":[],"sources":["../../src/types/context.ts"],"mappings":";;;;;;;;;;;;;;;;;;KAuDY,QAAA,GAAW,MAAM;EAAjB;;;EAIV,QAAA;EAJqB;;;EASrB,WAAA;EAUA;;;EALA,SAAA;EAeU;AAGZ;;EAbE,SAAA;EAaoC;;;EARpC,QAAA;EASY;AAAA;AAGd;EAPE,UAAA;AAAA;AAAA,UAGe,QAAA,SAAiB,IAAI;EACpC,MAAA,EAAQ,IAAA;AAAA;AAAA,UAGO,iBAAA;EACf,IAAA;EACA,GAAA,EAAK,SAAS;AAAA;;;;UAMC,UAAA;EASf;;;EALA,EAAA;EAeS;;AAAe;EAVxB,IAAA,EAAM,WAAA;EAamB;;;EARzB,GAAA;EASmB;;;EAJnB,MAAA,GAAS,iBAAe;AAAA;AAAA,KAGd,eAAA,GAAkB,IAAA,CAAK,QAAA;EACjC,WAAA,QAAmB,OAAA;EACnB,aAAA,GAAgB,MAAA,EAAQ,UAAA,KAAe,OAAA,CAAQ,UAAA;EAC/C,qBAAA,QAA6B,OAAA;AAAA;AAAA,UAGd,kBAAA;EACf,KAAK;AAAA;;;;UAMU,kBAAA;EAVc;;AAAO;AAGtC;;EAaE,cAAc;AAAA;AAZT;AAMP;;AANO,UAkBU,YAAA,SAAqB,WAAW;EANjC;AAAA;AAMhB;EAIE,SAAA;;;;;;EAOA,OAAA;AAAA;AAMF;;;AAAA,UAAiB,YAAA,SAAqB,aAAa;EAIvB;AAG5B;;EAHE,0BAA0B;AAAA;AAAA,UAGX,WAAA,SAAoB,YAAA;EAgBjC;;;EAZF,SAAA;EAJ+C;;;EAS/C,eAAA;EAEA,kBAAA,GAAqB,UAAA,CACnB,oBAAA;EAGF,gBAAA,GAAmB,UAAA,CACjB,oBAAA;AAAA;;;;KAOQ,gBAAA,GAAmB,WAAA,GAC7B,IAAA,CAAK,2BAAA;AAAA,UAEU,aAAA,SAAsB,gBAAgB;EAH3C;;;EAOV,OAAO;AAAA;;;;;;;UASQ,WAAA,+BAA0C,IAAA,CACzD,QAAA,CAAS,OAAA;EAhBuB;AAElC;;EAoBE,MAAA,EAAQ,cAAA;EApB6B;AAI9B;AAST;EAYE,SAAA;EAZ0B;;;EAiB1B,QAAA,EAAU,QAAA;EAAA;;;EAKV,cAAA;EAeuC;;;EAVvC,OAAA,EAAS,OAAA;EAyBgB;;;EApBzB,MAAA,EAAQ,MAAA;EAqDuC;;;EAhD/C,KAAA,GAAQ,OAAA,WAAkB,UAAA,GAAa,KAAA;EAwDkB;;;EAnDzD,KAAA,GAAQ,OAAA,WAAkB,UAAA,GAAa,KAAA;EA1CZ;;;EA+C3B,IAAA,GAAO,OAAA,WAAkB,UAAA;EAxCzB;;;EA6CA,IAAA,GAAO,OAAA,WAAkB,UAAA;EAnCf;;;EAwCV,KAAA,GAAQ,OAAA,WAAkB,UAAA;EAzB1B;;;EA8BA,KAAA,GAAQ,OAAA,WAAkB,UAAA;EAzBa;;;;;;;;;;;;;EAwCvC,KAAA,GAAQ,IAAA;EApBA;;;;;;EA4BR,YAAA,GAAe,OAAA,EAAS,aAAA,EAAe,KAAA,GAAQ,KAAA,KAAU,MAAA;EAAjC;;;;;;EAQxB,YAAA,GAAe,OAAA,EAAS,aAAA,EAAe,KAAA,GAAQ,KAAA,KAAU,MAAA;AAAA;;;;;AAAM;AASjE;UAAiB,iBAAA,yBACS,cAAA,GAAiB,cAAA,gCAEjC,WAAA,CAAY,cAAA;EAHY;;;EAOhC,OAAA,EAAS,gBAAA;EAAA;;;EAKT,MAAA,EAAQ,IAAA,CAAK,eAAA;EAUG;;;EALhB,IAAA,EAAM,QAAA;EAwDqB;;;EAnD3B,aAAA,GAAgB,QAAA;EAqDL;;;EAAA,SAhDF,QAAA;EAkDP;;;EAAA,SA7CO,SAAA;EAwDkB;;;EAAA,SAnDlB,aAAA;EAkEgC;;;EAAA,SA7DhC,YAAA;EA4EC;;;EAAA,SAvED,SAAA;EAkHM;;;EAAA,SA7GN,kBAAA;EAiIuB;;;EAAA,SA5HvB,SAAA;EAkJI;;;;;;;;;;;EArIb,QAAA,wBACE,IAAA,EAAM,IAAA,EACN,OAAA,EAAS,eAAA;IACP,WAAA,YAAuB,kBAAA,CAAmB,eAAA;EAAA,MAEzC,IAAA,EAAM,mBAAA,CAAoB,aAAA,CAAc,eAAA,GAAkB,IAAA,MAC1D,OAAA,CACH,mBAAA,CAAoB,aAAA,CAAc,eAAA,GAAkB,IAAA;EAoN1C;;;EA9MZ,EAAA,EAAI,0BAAA;EAgPoB;;;EA3OxB,WAAA,EAAa,WAAA,GAAc,MAAA;EAvF3B;;;EA4FA,WAAA,GAAc,MAAA;EA1FN;;;EA+FR,YAAA,EAAc,MAAA,kBAAwB,KAAA;EAtFtC;;;EA2FA,eAAA,EAAiB,MAAA,kBAAwB,KAAA;EAtFnC;;;EA2FN,QAAA,EAAU,sBAAA;EA5ED;;;EAiFT,KAAA,EAAO,2BAAA;EA7DE;;;EAkET,QAAA,EAAU,QAAA;EA/CF;;;EAoDR,QAAA;EAlD2B;;;;;;EA0D3B,KAAA,EAAO,MAAA;EAxDwD;;;EA6D/D,eAAA,EAAiB,MAAA;EA3DmB;;;EAgEpC,cAAA,EAAgB,MAAA;EArDhB;;;;;;;;;;;;;;;;;;EAyEA,KAAA,GAAQ,KAAA,EAAO,WAAA,EAAa,OAAA,GAAU,YAAA,KAAiB,OAAA,CAAQ,QAAA;EA9BxD;;;;;;;;;;;;;;;;;;EAkDP,KAAA,GAAQ,IAAA,UAAc,OAAA,GAAU,YAAA,KAAiB,OAAA,CAAQ,WAAA;EAmBvD;;;;;;;;;;;;;;;;EADF,OAAA,GACE,EAAA,UACA,QAAA,WACA,OAAA,GAAU,cAAA,KACP,OAAA,CAAQ,aAAA;EA8BsB;;;;;;;;;;;;;;EAdnC,IAAA,GAAO,EAAA,aAAe,OAAA,CAAQ,iBAAA;EA6CE;;;EAxChC,WAAA,QAAmB,OAAA,CAAQ,WAAA;EAkDzB;;;;;;;EAzCF,IAAA,GAAO,IAAA,UAAc,IAAA,UAAc,OAAA,GAAU,WAAA,KAAgB,OAAA;EAwDjD;;;;;;;EA/CZ,QAAA,GAAW,IAAA,UAAc,IAAA,UAAc,OAAA,GAAU,WAAA;EAsEjD;;;;;;;EA7DA,WAAA,GACE,IAAA,UACA,EAAA,UACA,OAAA,GAAU,WAAA,KACP,OAAA;EAoE0B;AASjC;;;;;;EApEE,eAAA,GAAkB,IAAA,UAAc,EAAA,UAAY,OAAA,GAAU,WAAA;EAwEtD;;;;;;;EA/DA,SAAA,GACE,IAAA,UACA,IAAA,UACA,OAAA,GAAU,gBAAA,KACP,OAAA;EAyFsB;;;;;;;EAhF3B,aAAA,GACE,IAAA,UACA,IAAA,UACA,OAAA,GAAU,gBAAA;EAgFA;;;;;;;EAtEZ,kBAAA,GACE,IAAA,UACA,EAAA,UACA,OAAA,GAAU,WAAA,KACP,OAAA;EAiCa;;;;;;;EAxBlB,sBAAA,GACE,IAAA,UACA,EAAA,UACA,OAAA,GAAU,WAAA;EAmC0C;;;;;EA3BtD,gBAAA,QAAwB,OAAA;AAAA;;;;;;;KASd,OAAA,yBACc,cAAA,GAAiB,cAAA,0BAEvC,IAAA,CACF,iBAAA,CAAkB,eAAA,EAAiB,cAAA;EAiCtB;;;EA3Bb,MAAA,EAAQ,eAAA;EA2BsD;AAGhE;;;;;EAtBE,eAAA,GAAkB,MAAA,EAAQ,WAAA,CAAY,UAAA,MAAgB,OAAA;EAyBrB;;;;;;;;;;;EAZjC,QAAA,wBACE,IAAA,EAAM,IAAA,EACN,OAAA,EAAS,eAAA;IACP,WAAA,YAAuB,kBAAA;EAAA,MAEtB,IAAA,EAAM,mBAAA,CAAoB,aAAA,YAAyB,IAAA,MACnD,OAAA,CAAQ,mBAAA,CAAoB,aAAA,YAAyB,IAAA;AAAA;AAAA,UAG3C,gBAAA,yBACS,cAAA,GAAiB,cAAA,gCAEjC,OAAA,CAAQ,eAAA,EAAiB,cAAA;EAqE5B;;;EAAA,SAjEI,EAAA;EA2EwC;;;;;;EAnEjD,OAAA,EAAS,MAAA,CAAO,aAAA,CAAc,eAAA,EAAiB,cAAA;EAuFV;;;EAlFrC,YAAA,EAAc,MAAA,SAEZ,kBAAA,CAAmB,eAAA,EAAiB,cAAA;EAiFjC;;;;;;;;;;;;;;EAhEL,cAAA,GACE,IAAA,cACG,OAAA,CAAQ,kBAAA,CAAmB,eAAA,EAAiB,cAAA;EA1BnB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuD9B,kBAAA,GACE,IAAA,cACG,OAAA,CAAQ,kBAAA,CAAmB,eAAA,EAAiB,cAAA;EAiB5B;;;;;;EATrB,iBAAA,GACE,WAAA,EAAa,yBAAA,CAA0B,eAAA,qBACpC,OAAA,CAAQ,kBAAA,CAAmB,eAAA,EAAiB,cAAA;EAoBZ;;;;;EAbrC,aAAA,QAAqB,OAAA,CACnB,kBAAA,CAAmB,eAAA,EAAiB,cAAA;EAgBvB;;;;;;;;EALf,kBAAA,GACE,MAAA,EAAQ,YAAA,CAAa,aAAA,CAAc,eAAA,EAAiB,cAAA,OACjD,OAAA;AAAA;AAAA,UAGU,iBAAA,yBACS,cAAA,GAAiB,cAAA,gCAEjC,MAAA,CAAO,aAAA,CAAc,eAAA,EAAiB,cAAA;EAAtC;;;;;;;;EASR,WAAA;IAT6B;;;IAAA,SAalB,EAAA;IAQA;;;;;AAAsD;IAAtD,SAAA,OAAA,EAAS,aAAA,CAAc,eAAA,EAAiB,cAAA;EAAA;AAAA;AAAA,KAIzC,oBAAA,kBACO,aAAA,yBAEf,aAAA,CAAc,QAAA,EAAU,IAAA;EAC1B,OAAA,EAAS,QAAA;AAAA;AAAA,KAGC,gBAAA,kBACO,aAAA,yBAEf,oBAAA,CAAqB,QAAA,EAAU,IAAA;AAAA,UAElB,kBAAA,yBACS,cAAA,GAAiB,cAAA,gCAEjC,OAAA,CAAQ,yBAAA,CAA0B,eAAA,GAAkB,cAAA;EAX3C;;;EAAA,SAeR,EAAA;EAjBT;;;;;;EAyBA,OAAA,EAAS,iBAAA,CAAkB,eAAA,EAAiB,cAAA;EAvB3B;AAGnB;;EAyBE,KAAA,EAAO,SAAA,CAAU,aAAA,CAAc,eAAA,EAAiB,cAAA;EAxB/B;;;;;;;;EAkCjB,kBAAA,EAAoB,gBAAA,CAAiB,eAAA,EAAiB,cAAA;EAhCpD;;;EAqCF,WAAA,wBACE,GAAA,EAAK,IAAA,EACL,OAAA,GAAU,kBAAA,KACP,gBAAA,CAAiB,aAAA,CAAc,eAAA,EAAiB,cAAA,GAAiB,IAAA;EAxCjC;AAEvC;;;;;;;EAgDE,kBAAA,GACE,MAAA,EAAQ,YAAA,CAAa,aAAA,CAAc,eAAA,EAAiB,cAAA,OACjD,OAAA;AAAA;AAAA,UAGU,aAAA,6BACa,cAAA,GAAiB,cAAA,gCAErC,OAAA,CAAQ,yBAAA,CAA0B,eAAA,GAAkB,cAAA;EAzCnD;;;EAAA,SA6CA,EAAA;EAxCF;;;EAAA,SA6CE,WAAA,EAAa,kBAAA;AAAA;AAAA,KAGZ,kBAAA,yBACc,cAAA,GAAiB,cAAA,IACvC,oBAAA,GAAuB,aAAA,CAAc,eAAA;AAAA,KAE7B,wBAAA,kBAA0C,aAAA,IACpD,oBAAA,GAAuB,QAAA"}
@@ -8,7 +8,6 @@ import { EnvPaths } from "@stryke/env/get-env-paths";
8
8
  import { Jiti } from "jiti";
9
9
  import { ExternalIdResult, UnpluginBuildContext } from "unplugin";
10
10
  import MagicString, { SourceMap } from "magic-string";
11
- import { FetchRequestOptions } from "@stryke/http/fetch";
12
11
  import { ParseResult, ParserOptions } from "oxc-parser";
13
12
  import { RequestInfo, Response } from "undici";
14
13
  import { DeepPartial } from "@stryke/types/base";
@@ -93,11 +92,17 @@ interface InitContextOptions {
93
92
  /**
94
93
  * Options for fetch requests made via the context's {@link Context.fetch} method
95
94
  */
96
- interface FetchOptions extends FetchRequestOptions {
95
+ interface FetchOptions extends RequestInit {
97
96
  /**
98
97
  * An indicator specifying that the request should bypass any caching
99
98
  */
100
99
  skipCache?: boolean;
100
+ /**
101
+ * The maximum time in milliseconds to wait for the request to complete.
102
+ *
103
+ * @defaultValue 30000
104
+ */
105
+ timeout?: number;
101
106
  }
102
107
  /**
103
108
  * Options for parsing code using [Oxc-Parser](https://github.com/oxc/oxc)
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.mts","names":[],"sources":["../../src/types/context.ts"],"mappings":"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"}
1
+ {"version":3,"file":"context.d.mts","names":[],"sources":["../../src/types/context.ts"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powerlines/core",
3
- "version": "0.48.16",
3
+ "version": "0.48.18",
4
4
  "private": false,
5
5
  "description": "An internal core package for Powerlines - please use the `powerlines` package for public usage.",
6
6
  "homepage": "https://stormsoftware.com",
@@ -327,8 +327,8 @@
327
327
  "@donedeal0/superdiff": "^3.2.0",
328
328
  "@jridgewell/sourcemap-codec": "^1.5.5",
329
329
  "@rolldown/pluginutils": "1.0.0-rc.18",
330
- "@storm-software/config": "^1.137.62",
331
- "@storm-software/config-tools": "^1.190.30",
330
+ "@storm-software/config": "^1.137.65",
331
+ "@storm-software/config-tools": "^1.190.33",
332
332
  "@stryke/capnp": "^0.12.103",
333
333
  "@stryke/convert": "^0.7.8",
334
334
  "@stryke/env": "^0.20.94",
@@ -362,7 +362,7 @@
362
362
  "unplugin-combine": "^2.4.0"
363
363
  },
364
364
  "devDependencies": {
365
- "@storm-software/testing-tools": "^1.119.183",
365
+ "@storm-software/testing-tools": "^1.119.186",
366
366
  "@stryke/types": "^0.12.5",
367
367
  "@types/bun": "^1.3.14",
368
368
  "@types/diff-match-patch": "^1.0.36",
@@ -375,5 +375,5 @@
375
375
  "undici-types": "^7.26.0"
376
376
  },
377
377
  "publishConfig": { "access": "public" },
378
- "gitHead": "d17a01b5c54562a22b817d886953571888e0f4a3"
378
+ "gitHead": "c8d684b669671f6b19bc57dba25dd3bf1872e66a"
379
379
  }