powerlines 0.42.11 → 0.42.13

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.
@@ -46,6 +46,7 @@ import { LogLevelLabel } from "@storm-software/config-tools/types";
46
46
  import { getEnvPaths } from "@stryke/env/get-env-paths";
47
47
  import { murmurhash } from "@stryke/hash";
48
48
  import { hashDirectory } from "@stryke/hash/node";
49
+ import { deepClone } from "@stryke/helpers/deep-clone";
49
50
  import { getUnique, getUniqueBy } from "@stryke/helpers/get-unique";
50
51
  import { fetchRequest } from "@stryke/http/fetch";
51
52
  import { joinPaths as joinPaths$1 } from "@stryke/path/join";
@@ -72,7 +73,7 @@ import { setParseImpl } from "unplugin";
72
73
 
73
74
  //#region package.json
74
75
  var name = "powerlines";
75
- var version = "0.42.10";
76
+ var version = "0.42.12";
76
77
 
77
78
  //#endregion
78
79
  //#region src/_internal/helpers/generate-types.ts
@@ -2009,6 +2010,19 @@ var PowerlinesContext = class PowerlinesContext {
2009
2010
  }).filter(Boolean);
2010
2011
  }
2011
2012
  /**
2013
+ * Creates a clone of the current context with the same configuration and workspace settings. This can be useful for running multiple builds in parallel or for creating isolated contexts for different parts of the build process.
2014
+ *
2015
+ * @remarks
2016
+ * The cloned context will have the same configuration and workspace settings as the original context, but will have a different build ID, release ID, and timestamp. The virtual file system and caches will also be separate between the original and cloned contexts.
2017
+ *
2018
+ * @returns A promise that resolves to the cloned context.
2019
+ */
2020
+ async clone() {
2021
+ const clone = await PowerlinesContext.from(this.workspaceConfig.workspaceRoot, this.config);
2022
+ await clone.withUserConfig(this.config);
2023
+ return this.copyTo(clone);
2024
+ }
2025
+ /**
2012
2026
  * A function to perform HTTP fetch requests
2013
2027
  *
2014
2028
  * @remarks
@@ -2464,6 +2478,25 @@ var PowerlinesContext = class PowerlinesContext {
2464
2478
  */
2465
2479
  logger;
2466
2480
  /**
2481
+ * Creates a clone of the current context with the same configuration and workspace settings. This can be useful for running multiple builds in parallel or for creating isolated contexts for different parts of the build process.
2482
+ *
2483
+ * @remarks
2484
+ * The cloned context will have the same configuration and workspace settings as the original context, but will have a different build ID, release ID, and timestamp. The virtual file system and caches will also be separate between the original and cloned contexts.
2485
+ *
2486
+ * @returns The cloned context.
2487
+ */
2488
+ copyTo(context) {
2489
+ context.dependencies = deepClone(this.dependencies);
2490
+ context.devDependencies = deepClone(this.devDependencies);
2491
+ context.meta = deepClone(this.meta);
2492
+ context.persistedMeta = this.persistedMeta ? deepClone(this.persistedMeta) : void 0;
2493
+ context.packageJson = deepClone(this.packageJson);
2494
+ context.projectJson = this.projectJson ? deepClone(this.projectJson) : void 0;
2495
+ context.tsconfig = deepClone(this.tsconfig);
2496
+ context.$$internal = this.$$internal;
2497
+ return context;
2498
+ }
2499
+ /**
2467
2500
  * Initialize the context with the provided configuration options
2468
2501
  *
2469
2502
  * @param config - The partial user configuration to use for initialization.
@@ -2815,6 +2848,19 @@ var PowerlinesEnvironmentContext = class PowerlinesEnvironmentContext extends Po
2815
2848
  get hooks() {
2816
2849
  return this.#hooks;
2817
2850
  }
2851
+ /**
2852
+ * Creates a clone of the current context with the same configuration and workspace settings. This can be useful for running multiple builds in parallel or for creating isolated contexts for different parts of the build process.
2853
+ *
2854
+ * @remarks
2855
+ * The cloned context will have the same configuration and workspace settings as the original context, but will have a different build ID, release ID, and timestamp. The virtual file system and caches will also be separate between the original and cloned contexts.
2856
+ *
2857
+ * @returns A promise that resolves to the cloned context.
2858
+ */
2859
+ async clone() {
2860
+ const clone = await PowerlinesEnvironmentContext.fromConfig(this.workspaceConfig, this.config);
2861
+ await clone.withUserConfig(this.config);
2862
+ return this.copyTo(clone);
2863
+ }
2818
2864
  async addPlugin(plugin) {
2819
2865
  let resolvedPlugin = plugin;
2820
2866
  if (isFunction(plugin.applyToEnvironment)) {
@@ -2957,6 +3003,18 @@ var PowerlinesEnvironmentContext = class PowerlinesEnvironmentContext extends Po
2957
3003
  super(workspaceConfig);
2958
3004
  this.resolvedConfig = config;
2959
3005
  }
3006
+ /**
3007
+ * Creates a clone of the current context with the same configuration and workspace settings. This can be useful for running multiple builds in parallel or for creating isolated contexts for different parts of the build process.
3008
+ *
3009
+ * @remarks
3010
+ * The cloned context will have the same configuration and workspace settings as the original context, but will have a different build ID, release ID, and timestamp. The virtual file system and caches will also be separate between the original and cloned contexts.
3011
+ *
3012
+ * @returns The cloned context.
3013
+ */
3014
+ copyTo(context) {
3015
+ context.plugins = this.plugins;
3016
+ return super.copyTo(context);
3017
+ }
2960
3018
  };
2961
3019
 
2962
3020
  //#endregion
@@ -3015,6 +3073,19 @@ var PowerlinesAPIContext = class PowerlinesAPIContext extends PowerlinesContext
3015
3073
  super(workspaceConfig);
3016
3074
  }
3017
3075
  /**
3076
+ * Creates a clone of the current context with the same configuration and workspace settings. This can be useful for running multiple builds in parallel or for creating isolated contexts for different parts of the build process.
3077
+ *
3078
+ * @remarks
3079
+ * The cloned context will have the same configuration and workspace settings as the original context, but will have a different build ID, release ID, and timestamp. The virtual file system and caches will also be separate between the original and cloned contexts.
3080
+ *
3081
+ * @returns A promise that resolves to the cloned context.
3082
+ */
3083
+ async clone() {
3084
+ const clone = await PowerlinesAPIContext.from(this.workspaceConfig.workspaceRoot, this.config);
3085
+ await clone.withUserConfig(this.config);
3086
+ return this.copyTo(clone);
3087
+ }
3088
+ /**
3018
3089
  * Initialize the context with the provided configuration options
3019
3090
  *
3020
3091
  * @param config - The partial user configuration to use for initialization.
@@ -3730,4 +3801,4 @@ ${formatTypes(types)}
3730
3801
 
3731
3802
  //#endregion
3732
3803
  export { createUnpluginFactory as a, FileMetadata as c, FileSystem as d, _capnpFileId as f, createPluginContext as i, FileMetadata_KeyValuePair as l, version as m, PowerlinesAPIContext as n, PowerlinesContext as o, name as p, PowerlinesEnvironmentContext as r, FileId as s, PowerlinesAPI as t, FileStorage as u };
3733
- //# sourceMappingURL=api-DNNDv-om.mjs.map
3804
+ //# sourceMappingURL=api-CscdAGGS.mjs.map