@powerlines/engine 0.43.31 → 0.44.1

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.
Files changed (31) hide show
  1. package/dist/_internal/worker.cjs +187 -169
  2. package/dist/_internal/worker.d.cts.map +1 -1
  3. package/dist/_internal/worker.d.mts.map +1 -1
  4. package/dist/_internal/worker.mjs +188 -170
  5. package/dist/_internal/worker.mjs.map +1 -1
  6. package/dist/api.cjs +6 -5
  7. package/dist/api.d.cts.map +1 -1
  8. package/dist/api.d.mts.map +1 -1
  9. package/dist/api.mjs +4 -3
  10. package/dist/api.mjs.map +1 -1
  11. package/dist/{base-context-CPoqO4io.cjs → base-context-DkGTyGX0.cjs} +34 -44
  12. package/dist/{base-context-SmQ6OfXm.mjs → base-context-Dv5OTHxZ.mjs} +35 -45
  13. package/dist/base-context-Dv5OTHxZ.mjs.map +1 -0
  14. package/dist/context/index.cjs +3 -3
  15. package/dist/context/index.d.cts +40 -36
  16. package/dist/context/index.d.cts.map +1 -1
  17. package/dist/context/index.d.mts +40 -36
  18. package/dist/context/index.d.mts.map +1 -1
  19. package/dist/context/index.mjs +3 -3
  20. package/dist/{engine-context-CEu21ZZf.cjs → engine-context-CDSR7PHF.cjs} +1 -1
  21. package/dist/{engine-context-D7CWyTsr.mjs → engine-context-CytME-Ht.mjs} +2 -2
  22. package/dist/{engine-context-D7CWyTsr.mjs.map → engine-context-CytME-Ht.mjs.map} +1 -1
  23. package/dist/{execution-context-DsT6s1du.cjs → execution-context-B-CVP76S.cjs} +148 -105
  24. package/dist/{execution-context-C_7IC8er.mjs → execution-context-F7RyGqff.mjs} +150 -107
  25. package/dist/execution-context-F7RyGqff.mjs.map +1 -0
  26. package/dist/index.cjs +8 -12
  27. package/dist/index.mjs +8 -12
  28. package/dist/index.mjs.map +1 -1
  29. package/package.json +3 -3
  30. package/dist/base-context-SmQ6OfXm.mjs.map +0 -1
  31. package/dist/execution-context-C_7IC8er.mjs.map +0 -1
@@ -1,14 +1,13 @@
1
1
  const require_chunk = require('./chunk-C0xms8kb.cjs');
2
2
  let _stryke_fs_resolve = require("@stryke/fs/resolve");
3
- let _storm_software_config_tools_types = require("@storm-software/config-tools/types");
4
3
  let _stryke_type_checks_is_string = require("@stryke/type-checks/is-string");
5
4
  let _powerlines_core_lib_config = require("@powerlines/core/lib/config");
6
- let _powerlines_core_lib_logger = require("@powerlines/core/lib/logger");
5
+ let _powerlines_core_plugin_utils = require("@powerlines/core/plugin-utils");
6
+ let _powerlines_core_plugin_utils_logging = require("@powerlines/core/plugin-utils/logging");
7
7
  let _stryke_env_get_env_paths = require("@stryke/env/get-env-paths");
8
8
  let _stryke_json_storm_json = require("@stryke/json/storm-json");
9
9
  let _stryke_path_is_equal = require("@stryke/path/is-equal");
10
10
  let _stryke_path_replace = require("@stryke/path/replace");
11
- let _stryke_type_checks_is_null = require("@stryke/type-checks/is-null");
12
11
  let chalk = require("chalk");
13
12
  chalk = require_chunk.__toESM(chalk, 1);
14
13
  let date_fns_formatDistanceToNowStrict = require("date-fns/formatDistanceToNowStrict");
@@ -47,7 +46,6 @@ function createResolver(options) {
47
46
  //#region src/context/base-context.ts
48
47
  var PowerlinesBaseContext = class PowerlinesBaseContext {
49
48
  #timestamp = Date.now();
50
- #logLevel = "info";
51
49
  /**
52
50
  * The path to the Powerlines package
53
51
  */
@@ -69,27 +67,22 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
69
67
  */
70
68
  configFile;
71
69
  /**
70
+ * The logger instance for the context, which can be used to create log messages with consistent formatting and metadata. This logger is extended by plugin contexts to include additional metadata such as the plugin name and category, which can be used to filter and format log messages in a more granular way.
71
+ */
72
+ get logger() {
73
+ return this.createLogger({
74
+ ...this.configFile.config,
75
+ ...this.options
76
+ });
77
+ }
78
+ /**
72
79
  * A timestamp representing when the context was initialized
73
80
  */
74
81
  get timestamp() {
75
- return new Date(this.#timestamp);
82
+ return this.#timestamp;
76
83
  }
77
84
  get logLevel() {
78
- return this.#logLevel || "info";
79
- }
80
- set logLevel(level) {
81
- this.#logLevel = level;
82
- }
83
- /**
84
- * The logger function
85
- */
86
- get log() {
87
- const level = this.logLevel || "info";
88
- if (!this.logger || this.logger.level !== level) this.logger = {
89
- log: this.createLog(),
90
- level
91
- };
92
- return this.logger.log;
85
+ return (0, _powerlines_core_plugin_utils.resolveLogLevel)(this.options.logLevel, this.options.mode);
93
86
  }
94
87
  /**
95
88
  * The environment paths for the project
@@ -120,7 +113,7 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
120
113
  * @param message - The message to log.
121
114
  */
122
115
  fatal(message) {
123
- this.log(_storm_software_config_tools_types.LogLevelLabel.FATAL, (0, _stryke_type_checks_is_string.isString)(message) ? message : _stryke_json_storm_json.StormJSON.stringify(message));
116
+ this.logger.error((0, _stryke_type_checks_is_string.isString)(message) ? message : _stryke_json_storm_json.StormJSON.stringify(message));
124
117
  }
125
118
  /**
126
119
  * A logging function for error messages
@@ -128,7 +121,7 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
128
121
  * @param message - The message to log.
129
122
  */
130
123
  error(message) {
131
- this.log(_storm_software_config_tools_types.LogLevelLabel.ERROR, (0, _stryke_type_checks_is_string.isString)(message) ? message : _stryke_json_storm_json.StormJSON.stringify(message));
124
+ this.logger.error((0, _stryke_type_checks_is_string.isString)(message) ? message : _stryke_json_storm_json.StormJSON.stringify(message));
132
125
  }
133
126
  /**
134
127
  * A logging function for warning messages
@@ -136,7 +129,7 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
136
129
  * @param message - The message to log.
137
130
  */
138
131
  warn(message) {
139
- this.log(_storm_software_config_tools_types.LogLevelLabel.WARN, (0, _stryke_type_checks_is_string.isString)(message) ? message : _stryke_json_storm_json.StormJSON.stringify(message));
132
+ this.logger.warn((0, _stryke_type_checks_is_string.isString)(message) ? message : _stryke_json_storm_json.StormJSON.stringify(message));
140
133
  }
141
134
  /**
142
135
  * A logging function for informational messages
@@ -144,7 +137,7 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
144
137
  * @param message - The message to log.
145
138
  */
146
139
  info(message) {
147
- this.log(_storm_software_config_tools_types.LogLevelLabel.INFO, (0, _stryke_type_checks_is_string.isString)(message) ? message : _stryke_json_storm_json.StormJSON.stringify(message));
140
+ this.logger.info((0, _stryke_type_checks_is_string.isString)(message) ? message : _stryke_json_storm_json.StormJSON.stringify(message));
148
141
  }
149
142
  /**
150
143
  * A logging function for debug messages
@@ -152,7 +145,7 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
152
145
  * @param message - The message to log.
153
146
  */
154
147
  debug(message) {
155
- this.log(_storm_software_config_tools_types.LogLevelLabel.DEBUG, (0, _stryke_type_checks_is_string.isString)(message) ? message : _stryke_json_storm_json.StormJSON.stringify(message));
148
+ this.logger.debug((0, _stryke_type_checks_is_string.isString)(message) ? message : _stryke_json_storm_json.StormJSON.stringify(message));
156
149
  }
157
150
  /**
158
151
  * A logging function for trace messages
@@ -160,7 +153,7 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
160
153
  * @param message - The message to log.
161
154
  */
162
155
  trace(message) {
163
- this.log(_storm_software_config_tools_types.LogLevelLabel.TRACE, (0, _stryke_type_checks_is_string.isString)(message) ? message : _stryke_json_storm_json.StormJSON.stringify(message));
156
+ this.logger.trace((0, _stryke_type_checks_is_string.isString)(message) ? message : _stryke_json_storm_json.StormJSON.stringify(message));
164
157
  }
165
158
  /**
166
159
  * A function to create a timer for measuring the duration of asynchronous operations
@@ -180,35 +173,31 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
180
173
  const startDuration = performance.now();
181
174
  return () => {
182
175
  const duration = performance.now() - startDuration;
183
- this.log(_storm_software_config_tools_types.LogLevelLabel.PERFORMANCE, `${chalk.default.bold.cyanBright(name)} completed in ${chalk.default.bold.cyanBright(duration < 1e3 ? `${duration.toFixed(2)} milliseconds` : (0, date_fns_formatDistanceToNowStrict.formatDistanceToNowStrict)(startDate))}`);
176
+ this.logger.info({
177
+ meta: { category: "performance" },
178
+ message: `${chalk.default.bold.cyanBright(name)} completed in ${chalk.default.bold.cyanBright(duration < 1e3 ? `${duration.toFixed(2)} milliseconds` : (0, date_fns_formatDistanceToNowStrict.formatDistanceToNowStrict)(startDate))}`
179
+ });
184
180
  };
185
181
  }
186
182
  /**
187
183
  * Create a new logger instance
188
184
  *
189
- * @param source - The source name to use for the logger instance, which can be used to identify the origin of log messages in the logs for better traceability. This is typically the name of the plugin or module that is creating the logger instance.
190
- * @returns A logger function
185
+ * @param options - The configuration options to use for the logger instance, which can be used to customize the appearance and behavior of the log messages generated by the logger. This is typically the name of the plugin or module that is creating the logger instance.
186
+ * @returns A logger client instance that can be used to generate log messages with consistent formatting and metadata.
191
187
  */
192
- createLog(source = null) {
193
- return (0, _powerlines_core_lib_logger.createLog)(source, {
194
- ...this.options,
195
- logLevel: (0, _stryke_type_checks_is_null.isNull)(this.logLevel) ? "silent" : this.logLevel
196
- });
188
+ createLogger(options, callback) {
189
+ return (0, _powerlines_core_plugin_utils_logging.createLogger)(this.options.name || this.options.framework || "powerlines", options, callback);
197
190
  }
198
191
  /**
199
- * Extend the current logger instance with a new source
192
+ * Extend the base logger with additional configuration options
200
193
  *
201
- * @param source - The source name to use for the extended logger instance, which can be used to identify the origin of log messages in the logs for better traceability. This is typically the name of the plugin or module that is creating the logger instance.
202
- * @returns A logger function
194
+ * @param options - The configuration options to extend the base logger with, which can be used to add additional metadata or customize the appearance of log messages generated by the logger. This is typically the name of the plugin or module that is creating the logger instance, as well as any additional metadata such as the plugin category or environment.
195
+ * @returns A new logger client instance that extends the base logger with the provided configuration options.
203
196
  */
204
- extendLog(source) {
205
- return (0, _powerlines_core_lib_logger.extendLog)(this.log, source);
197
+ extendLogger(options) {
198
+ return (0, _powerlines_core_plugin_utils_logging.extendLogger)(this.logger, options);
206
199
  }
207
200
  /**
208
- * A logger function specific to this context
209
- */
210
- logger;
211
- /**
212
201
  * Initialize the context with the provided configuration options
213
202
  *
214
203
  * @remarks
@@ -217,7 +206,7 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
217
206
  * @param options - The configuration options to initialize the context with
218
207
  */
219
208
  async init(options = {}) {
220
- this.inputOptions = options;
209
+ this.inputOptions = { ...options };
221
210
  if (!this.powerlinesPath) {
222
211
  const powerlinesPath = await (0, _stryke_fs_resolve.resolvePackage)("powerlines");
223
212
  if (!powerlinesPath) throw new Error("Could not resolve `powerlines` package location.");
@@ -229,6 +218,7 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
229
218
  root,
230
219
  cwd,
231
220
  mode: options.mode,
221
+ logLevel: options.logLevel,
232
222
  framework: options.framework,
233
223
  organization: options.organization,
234
224
  configFile: options.configFile
@@ -1,13 +1,12 @@
1
1
  import { resolvePackage } from "@stryke/fs/resolve";
2
- import { LogLevelLabel } from "@storm-software/config-tools/types";
3
2
  import { isString } from "@stryke/type-checks/is-string";
4
3
  import { loadUserConfigFile } from "@powerlines/core/lib/config";
5
- import { createLog, extendLog } from "@powerlines/core/lib/logger";
4
+ import { resolveLogLevel } from "@powerlines/core/plugin-utils";
5
+ import { createLogger as createLogger$1, extendLogger } from "@powerlines/core/plugin-utils/logging";
6
6
  import { getEnvPaths } from "@stryke/env/get-env-paths";
7
7
  import { StormJSON } from "@stryke/json/storm-json";
8
8
  import { isEqual } from "@stryke/path/is-equal";
9
9
  import { replacePath } from "@stryke/path/replace";
10
- import { isNull } from "@stryke/type-checks/is-null";
11
10
  import chalk from "chalk";
12
11
  import { formatDistanceToNowStrict } from "date-fns/formatDistanceToNowStrict";
13
12
  import defu from "defu";
@@ -44,7 +43,6 @@ function createResolver(options) {
44
43
  //#region src/context/base-context.ts
45
44
  var PowerlinesBaseContext = class PowerlinesBaseContext {
46
45
  #timestamp = Date.now();
47
- #logLevel = "info";
48
46
  /**
49
47
  * The path to the Powerlines package
50
48
  */
@@ -66,27 +64,22 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
66
64
  */
67
65
  configFile;
68
66
  /**
67
+ * The logger instance for the context, which can be used to create log messages with consistent formatting and metadata. This logger is extended by plugin contexts to include additional metadata such as the plugin name and category, which can be used to filter and format log messages in a more granular way.
68
+ */
69
+ get logger() {
70
+ return this.createLogger({
71
+ ...this.configFile.config,
72
+ ...this.options
73
+ });
74
+ }
75
+ /**
69
76
  * A timestamp representing when the context was initialized
70
77
  */
71
78
  get timestamp() {
72
- return new Date(this.#timestamp);
79
+ return this.#timestamp;
73
80
  }
74
81
  get logLevel() {
75
- return this.#logLevel || "info";
76
- }
77
- set logLevel(level) {
78
- this.#logLevel = level;
79
- }
80
- /**
81
- * The logger function
82
- */
83
- get log() {
84
- const level = this.logLevel || "info";
85
- if (!this.logger || this.logger.level !== level) this.logger = {
86
- log: this.createLog(),
87
- level
88
- };
89
- return this.logger.log;
82
+ return resolveLogLevel(this.options.logLevel, this.options.mode);
90
83
  }
91
84
  /**
92
85
  * The environment paths for the project
@@ -117,7 +110,7 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
117
110
  * @param message - The message to log.
118
111
  */
119
112
  fatal(message) {
120
- this.log(LogLevelLabel.FATAL, isString(message) ? message : StormJSON.stringify(message));
113
+ this.logger.error(isString(message) ? message : StormJSON.stringify(message));
121
114
  }
122
115
  /**
123
116
  * A logging function for error messages
@@ -125,7 +118,7 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
125
118
  * @param message - The message to log.
126
119
  */
127
120
  error(message) {
128
- this.log(LogLevelLabel.ERROR, isString(message) ? message : StormJSON.stringify(message));
121
+ this.logger.error(isString(message) ? message : StormJSON.stringify(message));
129
122
  }
130
123
  /**
131
124
  * A logging function for warning messages
@@ -133,7 +126,7 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
133
126
  * @param message - The message to log.
134
127
  */
135
128
  warn(message) {
136
- this.log(LogLevelLabel.WARN, isString(message) ? message : StormJSON.stringify(message));
129
+ this.logger.warn(isString(message) ? message : StormJSON.stringify(message));
137
130
  }
138
131
  /**
139
132
  * A logging function for informational messages
@@ -141,7 +134,7 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
141
134
  * @param message - The message to log.
142
135
  */
143
136
  info(message) {
144
- this.log(LogLevelLabel.INFO, isString(message) ? message : StormJSON.stringify(message));
137
+ this.logger.info(isString(message) ? message : StormJSON.stringify(message));
145
138
  }
146
139
  /**
147
140
  * A logging function for debug messages
@@ -149,7 +142,7 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
149
142
  * @param message - The message to log.
150
143
  */
151
144
  debug(message) {
152
- this.log(LogLevelLabel.DEBUG, isString(message) ? message : StormJSON.stringify(message));
145
+ this.logger.debug(isString(message) ? message : StormJSON.stringify(message));
153
146
  }
154
147
  /**
155
148
  * A logging function for trace messages
@@ -157,7 +150,7 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
157
150
  * @param message - The message to log.
158
151
  */
159
152
  trace(message) {
160
- this.log(LogLevelLabel.TRACE, isString(message) ? message : StormJSON.stringify(message));
153
+ this.logger.trace(isString(message) ? message : StormJSON.stringify(message));
161
154
  }
162
155
  /**
163
156
  * A function to create a timer for measuring the duration of asynchronous operations
@@ -177,35 +170,31 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
177
170
  const startDuration = performance.now();
178
171
  return () => {
179
172
  const duration = performance.now() - startDuration;
180
- this.log(LogLevelLabel.PERFORMANCE, `${chalk.bold.cyanBright(name)} completed in ${chalk.bold.cyanBright(duration < 1e3 ? `${duration.toFixed(2)} milliseconds` : formatDistanceToNowStrict(startDate))}`);
173
+ this.logger.info({
174
+ meta: { category: "performance" },
175
+ message: `${chalk.bold.cyanBright(name)} completed in ${chalk.bold.cyanBright(duration < 1e3 ? `${duration.toFixed(2)} milliseconds` : formatDistanceToNowStrict(startDate))}`
176
+ });
181
177
  };
182
178
  }
183
179
  /**
184
180
  * Create a new logger instance
185
181
  *
186
- * @param source - The source name to use for the logger instance, which can be used to identify the origin of log messages in the logs for better traceability. This is typically the name of the plugin or module that is creating the logger instance.
187
- * @returns A logger function
182
+ * @param options - The configuration options to use for the logger instance, which can be used to customize the appearance and behavior of the log messages generated by the logger. This is typically the name of the plugin or module that is creating the logger instance.
183
+ * @returns A logger client instance that can be used to generate log messages with consistent formatting and metadata.
188
184
  */
189
- createLog(source = null) {
190
- return createLog(source, {
191
- ...this.options,
192
- logLevel: isNull(this.logLevel) ? "silent" : this.logLevel
193
- });
185
+ createLogger(options, callback) {
186
+ return createLogger$1(this.options.name || this.options.framework || "powerlines", options, callback);
194
187
  }
195
188
  /**
196
- * Extend the current logger instance with a new source
189
+ * Extend the base logger with additional configuration options
197
190
  *
198
- * @param source - The source name to use for the extended logger instance, which can be used to identify the origin of log messages in the logs for better traceability. This is typically the name of the plugin or module that is creating the logger instance.
199
- * @returns A logger function
191
+ * @param options - The configuration options to extend the base logger with, which can be used to add additional metadata or customize the appearance of log messages generated by the logger. This is typically the name of the plugin or module that is creating the logger instance, as well as any additional metadata such as the plugin category or environment.
192
+ * @returns A new logger client instance that extends the base logger with the provided configuration options.
200
193
  */
201
- extendLog(source) {
202
- return extendLog(this.log, source);
194
+ extendLogger(options) {
195
+ return extendLogger(this.logger, options);
203
196
  }
204
197
  /**
205
- * A logger function specific to this context
206
- */
207
- logger;
208
- /**
209
198
  * Initialize the context with the provided configuration options
210
199
  *
211
200
  * @remarks
@@ -214,7 +203,7 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
214
203
  * @param options - The configuration options to initialize the context with
215
204
  */
216
205
  async init(options = {}) {
217
- this.inputOptions = options;
206
+ this.inputOptions = { ...options };
218
207
  if (!this.powerlinesPath) {
219
208
  const powerlinesPath = await resolvePackage("powerlines");
220
209
  if (!powerlinesPath) throw new Error("Could not resolve `powerlines` package location.");
@@ -226,6 +215,7 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
226
215
  root,
227
216
  cwd,
228
217
  mode: options.mode,
218
+ logLevel: options.logLevel,
229
219
  framework: options.framework,
230
220
  organization: options.organization,
231
221
  configFile: options.configFile
@@ -246,4 +236,4 @@ var PowerlinesBaseContext = class PowerlinesBaseContext {
246
236
 
247
237
  //#endregion
248
238
  export { PowerlinesBaseContext as t };
249
- //# sourceMappingURL=base-context-SmQ6OfXm.mjs.map
239
+ //# sourceMappingURL=base-context-Dv5OTHxZ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-context-Dv5OTHxZ.mjs","names":["#timestamp","createLogger"],"sources":["../src/_internal/helpers/resolver.ts","../src/context/base-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 type { ResolvedConfig, Resolver } from \"@powerlines/core\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport defu from \"defu\";\nimport { JitiOptions, createJiti } from \"jiti\";\n\nexport type CreateResolverOptions = Omit<\n JitiOptions,\n \"fsCache\" | \"moduleCache\" | \"interopDefault\"\n> &\n Pick<ResolvedConfig, \"mode\" | \"logLevel\" | \"skipCache\"> & {\n workspaceRoot: string;\n root: string;\n cacheDir: string;\n };\n\n/**\n * Create a Jiti resolver for the given workspace and project root.\n *\n * @param options - The options for creating the resolver.\n * @returns A Jiti instance configured for the specified workspace and project root.\n */\nfunction resolveOptions(options: CreateResolverOptions): JitiOptions {\n return defu(options, {\n interopDefault: true,\n fsCache:\n options.mode !== \"development\"\n ? joinPaths(options.cacheDir, \"jiti\")\n : false,\n moduleCache: options.mode !== \"development\"\n });\n}\n\n/**\n * Create a Jiti resolver for the given workspace and project root.\n *\n * @param options - The options for creating the resolver.\n * @returns A Jiti instance configured for the specified workspace and project root.\n */\nexport function createResolver(options: CreateResolverOptions): Resolver {\n const baseResolver = createJiti(\n joinPaths(options.workspaceRoot, options.root),\n resolveOptions(options)\n ) as Resolver;\n baseResolver.plugin = createJiti(\n joinPaths(options.workspaceRoot, options.root),\n resolveOptions(options)\n );\n\n return baseResolver;\n}\n","/* -------------------------------------------------------------------\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 type {\n BaseContext,\n EngineOptions,\n Logger,\n LoggerMessage,\n LoggerOptions,\n LogLevelResolvedConfig,\n LogMessage,\n ParsedUserConfig,\n ResolvedEngineOptions,\n Resolver\n} from \"@powerlines/core\";\nimport { loadUserConfigFile } from \"@powerlines/core/lib/config\";\nimport { resolveLogLevel } from \"@powerlines/core/plugin-utils\";\nimport {\n createLogger,\n extendLogger\n} from \"@powerlines/core/plugin-utils/logging\";\nimport { EnvPaths, getEnvPaths } from \"@stryke/env/get-env-paths\";\nimport { resolvePackage } from \"@stryke/fs/resolve\";\nimport { StormJSON } from \"@stryke/json/storm-json\";\nimport { isEqual } from \"@stryke/path/is-equal\";\nimport { replacePath } from \"@stryke/path/replace\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport chalk from \"chalk\";\nimport { formatDistanceToNowStrict } from \"date-fns/formatDistanceToNowStrict\";\nimport defu from \"defu\";\nimport { createResolver } from \"../_internal/helpers/resolver\";\n\nexport class PowerlinesBaseContext implements BaseContext {\n #timestamp: number = Date.now();\n\n /**\n * The path to the Powerlines package\n */\n public powerlinesPath!: string;\n\n /**\n * The module resolver for the project\n */\n public resolver!: Resolver;\n\n /**\n * The options provided to the Powerlines process\n */\n public options!: ResolvedEngineOptions;\n\n /**\n * The input options used to initialize the context, which may be used when cloning the context to ensure the same configuration is applied to the new context\n */\n public inputOptions: Partial<EngineOptions> = {};\n\n /**\n * The parsed configuration file for the project\n */\n public configFile!: ParsedUserConfig;\n\n /**\n * The logger instance for the context, which can be used to create log messages with consistent formatting and metadata. This logger is extended by plugin contexts to include additional metadata such as the plugin name and category, which can be used to filter and format log messages in a more granular way.\n */\n public get logger(): Logger {\n return this.createLogger({ ...this.configFile.config, ...this.options });\n }\n\n /**\n * A timestamp representing when the context was initialized\n */\n public get timestamp(): number {\n return this.#timestamp;\n }\n\n public get logLevel(): LogLevelResolvedConfig {\n return resolveLogLevel(this.options.logLevel, this.options.mode);\n }\n\n /**\n * The environment paths for the project\n */\n public get envPaths(): EnvPaths {\n return getEnvPaths({\n orgId: this.options.organization,\n appId: this.options.framework || \"powerlines\",\n workspaceRoot: this.options.cwd\n });\n }\n\n /**\n * 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.\n *\n * @remarks\n * 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.\n *\n * @returns A promise that resolves to the cloned context.\n */\n public async clone(): Promise<BaseContext> {\n const clone = new PowerlinesBaseContext();\n await clone.init(this.options);\n\n return clone;\n }\n\n /**\n * A logging function for fatal messages\n *\n * @param message - The message to log.\n */\n public fatal(message: string | LogMessage) {\n this.logger.error(\n isString(message) ? message : StormJSON.stringify(message)\n );\n }\n\n /**\n * A logging function for error messages\n *\n * @param message - The message to log.\n */\n public error(message: string | LogMessage) {\n this.logger.error(\n isString(message) ? message : StormJSON.stringify(message)\n );\n }\n\n /**\n * A logging function for warning messages\n *\n * @param message - The message to log.\n */\n public warn(message: string | LogMessage) {\n this.logger.warn(\n isString(message) ? message : StormJSON.stringify(message)\n );\n }\n\n /**\n * A logging function for informational messages\n *\n * @param message - The message to log.\n */\n public info(message: string | LogMessage) {\n this.logger.info(\n isString(message) ? message : StormJSON.stringify(message)\n );\n }\n\n /**\n * A logging function for debug messages\n *\n * @param message - The message to log.\n */\n public debug(message: string | LogMessage) {\n this.logger.debug(\n isString(message) ? message : StormJSON.stringify(message)\n );\n }\n\n /**\n * A logging function for trace messages\n *\n * @param message - The message to log.\n */\n public trace(message: string | LogMessage) {\n this.logger.trace(\n isString(message) ? message : StormJSON.stringify(message)\n );\n }\n\n /**\n * A function to create a timer for measuring the duration of asynchronous operations\n *\n * @example\n * ```ts\n * const stopTimer = context.timer(\"Your Async Operation\");\n * await performAsyncOperation();\n * stopTimer(); // \"Your Async Operation completed in 123.45 milliseconds\"\n * ```\n *\n * @param name - The name of the timer.\n * @returns A function that, when called, stops the timer and logs the duration.\n */\n public timer(name: string): () => void {\n const startDate = Date.now();\n const startDuration = performance.now();\n\n return () => {\n const duration = performance.now() - startDuration;\n this.logger.info({\n meta: {\n category: \"performance\"\n },\n message: `${chalk.bold.cyanBright(name)} completed in ${chalk.bold.cyanBright(\n duration < 1000\n ? `${duration.toFixed(2)} milliseconds`\n : formatDistanceToNowStrict(startDate)\n )}`\n });\n };\n }\n\n /**\n * Create a new logger instance\n *\n * @param options - The configuration options to use for the logger instance, which can be used to customize the appearance and behavior of the log messages generated by the logger. This is typically the name of the plugin or module that is creating the logger instance.\n * @returns A logger client instance that can be used to generate log messages with consistent formatting and metadata.\n */\n public createLogger(\n options: LoggerOptions,\n callback?: (message: string | LoggerMessage) => void\n ): Logger {\n return createLogger(\n this.options.name || this.options.framework || \"powerlines\",\n options,\n callback\n );\n }\n\n /**\n * Extend the base logger with additional configuration options\n *\n * @param options - The configuration options to extend the base logger with, which can be used to add additional metadata or customize the appearance of log messages generated by the logger. This is typically the name of the plugin or module that is creating the logger instance, as well as any additional metadata such as the plugin category or environment.\n * @returns A new logger client instance that extends the base logger with the provided configuration options.\n */\n public extendLogger(options: LoggerOptions): Logger {\n return extendLogger(this.logger, options);\n }\n\n /**\n * Initialize the context with the provided configuration options\n *\n * @remarks\n * This method will set up the resolver and load the user configuration file based on the provided options. It is called during the construction of the context and can also be called when cloning the context to ensure that the new context has the same configuration and resolver setup.\n *\n * @param options - The configuration options to initialize the context with\n */\n protected async init(options: Partial<EngineOptions> = {}) {\n this.inputOptions = { ...options };\n\n if (!this.powerlinesPath) {\n const powerlinesPath = await resolvePackage(\"powerlines\");\n if (!powerlinesPath) {\n throw new Error(\"Could not resolve `powerlines` package location.\");\n }\n this.powerlinesPath = powerlinesPath;\n }\n\n const cwd = options.cwd || this.options?.cwd || process.cwd();\n const root = replacePath(\n (options.root || this.options?.root) &&\n (options.root || this.options.root).replace(/^\\.\\/?/, \"\") &&\n !isEqual(options.root || this.options.root, cwd)\n ? options.root || this.options.root\n : \".\",\n cwd\n );\n\n this.options = defu(\n {\n root,\n cwd,\n mode: options.mode,\n logLevel: options.logLevel,\n framework: options.framework,\n organization: options.organization,\n configFile: options.configFile\n },\n this.options ?? {},\n {\n mode: \"production\",\n framework: \"powerlines\"\n }\n ) as ResolvedEngineOptions;\n\n this.resolver = createResolver({\n workspaceRoot: cwd,\n root,\n cacheDir: this.envPaths.cache,\n mode: this.options.mode,\n logLevel: this.logLevel\n });\n\n this.configFile = await loadUserConfigFile(this.options, this.resolver);\n }\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_base_context = require('../base-context-CPoqO4io.cjs');
3
- const require_engine_context = require('../engine-context-CEu21ZZf.cjs');
4
- const require_execution_context = require('../execution-context-DsT6s1du.cjs');
2
+ const require_base_context = require('../base-context-DkGTyGX0.cjs');
3
+ const require_engine_context = require('../engine-context-CDSR7PHF.cjs');
4
+ const require_execution_context = require('../execution-context-B-CVP76S.cjs');
5
5
 
6
6
  exports.PowerlinesBaseContext = require_base_context.PowerlinesBaseContext;
7
7
  exports.PowerlinesContext = require_execution_context.PowerlinesContext;
@@ -1,6 +1,5 @@
1
- import { BaseContext, Context, EmitEntryOptions, EmitOptions, EngineContext, EngineOptions, EnvironmentContext, EnvironmentContextPlugin, EnvironmentResolvedConfig, ExecutionContext, ExecutionOptions, ExecutionState, FetchOptions, HooksList, InlineConfig, LogFn, LogLevel, Logger, MetaInfo, ParseOptions, ParsedTypeScriptConfig, ParsedUserConfig, Plugin, PluginContext, ResolveOptions, ResolveResult, ResolvedConfig, ResolvedEngineOptions, ResolvedEntryTypeDefinition, ResolvedExecutionOptions, Resolver, SelectHookResult, SelectHooksOptions, TransformResult, VirtualFile, VirtualFileSystemInterface } from "@powerlines/core";
1
+ import { BaseContext, Context, EmitEntryOptions, EmitOptions, EngineContext, EngineOptions, EnvironmentContext, EnvironmentContextPlugin, EnvironmentResolvedConfig, ExecutionContext, ExecutionOptions, ExecutionState, FetchOptions, HooksList, InlineConfig, LogLevelResolvedConfig, LogMessage, Logger, LoggerMessage, LoggerOptions, MetaInfo, ParseOptions, ParsedTypeScriptConfig, ParsedUserConfig, Plugin, PluginContext, ResolveOptions, ResolveResult, ResolvedConfig, ResolvedEngineOptions, ResolvedEntryTypeDefinition, ResolvedExecutionOptions, Resolver, SelectHookResult, SelectHooksOptions, TransformResult, VirtualFile, VirtualFileSystemInterface } from "@powerlines/core";
2
2
  import { EnvPaths } from "@stryke/env/get-env-paths";
3
- import { UnpluginMessage } from "unplugin";
4
3
  import { Unstable_ContextInternal, Unstable_EnvironmentContext, Unstable_PluginContext } from "@powerlines/core/types/_internal";
5
4
  import { PackageJson } from "@stryke/types/package-json";
6
5
  import { FlatCache } from "flat-cache";
@@ -32,15 +31,14 @@ declare class PowerlinesBaseContext implements BaseContext {
32
31
  */
33
32
  configFile: ParsedUserConfig;
34
33
  /**
35
- * A timestamp representing when the context was initialized
34
+ * The logger instance for the context, which can be used to create log messages with consistent formatting and metadata. This logger is extended by plugin contexts to include additional metadata such as the plugin name and category, which can be used to filter and format log messages in a more granular way.
36
35
  */
37
- get timestamp(): Date;
38
- get logLevel(): LogLevel | null;
39
- set logLevel(level: LogLevel | null);
36
+ get logger(): Logger;
40
37
  /**
41
- * The logger function
38
+ * A timestamp representing when the context was initialized
42
39
  */
43
- get log(): LogFn;
40
+ get timestamp(): number;
41
+ get logLevel(): LogLevelResolvedConfig;
44
42
  /**
45
43
  * The environment paths for the project
46
44
  */
@@ -59,37 +57,37 @@ declare class PowerlinesBaseContext implements BaseContext {
59
57
  *
60
58
  * @param message - The message to log.
61
59
  */
62
- fatal(message: string | UnpluginMessage): void;
60
+ fatal(message: string | LogMessage): void;
63
61
  /**
64
62
  * A logging function for error messages
65
63
  *
66
64
  * @param message - The message to log.
67
65
  */
68
- error(message: string | UnpluginMessage): void;
66
+ error(message: string | LogMessage): void;
69
67
  /**
70
68
  * A logging function for warning messages
71
69
  *
72
70
  * @param message - The message to log.
73
71
  */
74
- warn(message: string | UnpluginMessage): void;
72
+ warn(message: string | LogMessage): void;
75
73
  /**
76
74
  * A logging function for informational messages
77
75
  *
78
76
  * @param message - The message to log.
79
77
  */
80
- info(message: string | UnpluginMessage): void;
78
+ info(message: string | LogMessage): void;
81
79
  /**
82
80
  * A logging function for debug messages
83
81
  *
84
82
  * @param message - The message to log.
85
83
  */
86
- debug(message: string | UnpluginMessage): void;
84
+ debug(message: string | LogMessage): void;
87
85
  /**
88
86
  * A logging function for trace messages
89
87
  *
90
88
  * @param message - The message to log.
91
89
  */
92
- trace(message: string | UnpluginMessage): void;
90
+ trace(message: string | LogMessage): void;
93
91
  /**
94
92
  * A function to create a timer for measuring the duration of asynchronous operations
95
93
  *
@@ -107,21 +105,17 @@ declare class PowerlinesBaseContext implements BaseContext {
107
105
  /**
108
106
  * Create a new logger instance
109
107
  *
110
- * @param source - The source name to use for the logger instance, which can be used to identify the origin of log messages in the logs for better traceability. This is typically the name of the plugin or module that is creating the logger instance.
111
- * @returns A logger function
108
+ * @param options - The configuration options to use for the logger instance, which can be used to customize the appearance and behavior of the log messages generated by the logger. This is typically the name of the plugin or module that is creating the logger instance.
109
+ * @returns A logger client instance that can be used to generate log messages with consistent formatting and metadata.
112
110
  */
113
- createLog(source?: string | null): LogFn;
111
+ createLogger(options: LoggerOptions, callback?: (message: string | LoggerMessage) => void): Logger;
114
112
  /**
115
- * Extend the current logger instance with a new source
113
+ * Extend the base logger with additional configuration options
116
114
  *
117
- * @param source - The source name to use for the extended logger instance, which can be used to identify the origin of log messages in the logs for better traceability. This is typically the name of the plugin or module that is creating the logger instance.
118
- * @returns A logger function
115
+ * @param options - The configuration options to extend the base logger with, which can be used to add additional metadata or customize the appearance of log messages generated by the logger. This is typically the name of the plugin or module that is creating the logger instance, as well as any additional metadata such as the plugin category or environment.
116
+ * @returns A new logger client instance that extends the base logger with the provided configuration options.
119
117
  */
120
- extendLog(source: string): LogFn;
121
- /**
122
- * A logger function specific to this context
123
- */
124
- protected logger: Logger;
118
+ extendLogger(options: LoggerOptions): Logger;
125
119
  /**
126
120
  * Initialize the context with the provided configuration options
127
121
  *
@@ -264,6 +258,10 @@ declare class PowerlinesContext<TResolvedConfig extends ResolvedConfig = Resolve
264
258
  * This includes both the built-in module aliases as well as any custom aliases defined in the build configuration.
265
259
  */
266
260
  get alias(): Record<string, string>;
261
+ /**
262
+ * The logger instance for the context, which can be used to create log messages with consistent formatting and metadata. This logger is extended by plugin contexts to include additional metadata such as the plugin name and category, which can be used to filter and format log messages in a more granular way.
263
+ */
264
+ get logger(): Logger;
267
265
  /**
268
266
  * Gets the parser cache.
269
267
  */
@@ -516,18 +514,17 @@ declare class PowerlinesEnvironmentContext<TResolvedConfig extends ResolvedConfi
516
514
  /**
517
515
  * Create a new logger instance
518
516
  *
519
- * @param source - The source name to use for the logger instance, which can be used to identify the origin of log messages in the logs for better traceability. This is typically the name of the plugin or module that is creating the logger instance.
520
- * @returns A logger function
517
+ * @param options - The configuration options to use for the logger instance, which can be used to customize the appearance and behavior of the log messages generated by the logger. This is typically the name of the plugin or module that is creating the logger instance.
518
+ * @returns A logger client instance that can be used to generate log messages with consistent formatting and metadata.
521
519
  */
522
- createLog(source?: string | null): LogFn;
520
+ createLogger(options: LoggerOptions, callback?: (message: string | LoggerMessage) => void): Logger;
523
521
  /**
524
- * Extend the current logger instance with a new name
522
+ * Extend the base logger with additional configuration options
525
523
  *
526
- * @param source - The name of the source to use for the extended logger instance
527
- * @param plugin - An optional plugin name to use for the extended logger instance, which can be used to identify the origin of log messages in the logs for better traceability. This is typically the name of the plugin or module that is creating the logger instance.
528
- * @returns A logger function
524
+ * @param options - The configuration options to extend the base logger with, which can be used to add additional metadata or customize the appearance of log messages generated by the logger. This is typically the name of the plugin or module that is creating the logger instance, as well as any additional metadata such as the plugin category or environment.
525
+ * @returns A new logger client instance that extends the base logger with the provided configuration options.
529
526
  */
530
- extendLog(source: string, plugin?: string): LogFn;
527
+ extendLogger(options: LoggerOptions): Logger;
531
528
  /**
532
529
  * 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.
533
530
  *
@@ -611,10 +608,17 @@ declare class PowerlinesExecutionContext<TResolvedConfig extends ResolvedConfig
611
608
  /**
612
609
  * Create a new logger instance
613
610
  *
614
- * @param source - The source name to use for the logger instance, which can be used to identify the origin of log messages in the logs for better traceability. This is typically the name of the plugin or module that is creating the logger instance.
615
- * @returns A logger function
611
+ * @param options - The configuration options to use for the logger instance, which can be used to customize the appearance and behavior of the log messages generated by the logger. This is typically the name of the plugin or module that is creating the logger instance.
612
+ * @returns A logger client instance that can be used to generate log messages with consistent formatting and metadata.
613
+ */
614
+ createLogger(options: LoggerOptions, callback?: (message: string | LoggerMessage) => void): Logger;
615
+ /**
616
+ * Extend the base logger with additional configuration options
617
+ *
618
+ * @param options - The configuration options to extend the base logger with, which can be used to add additional metadata or customize the appearance of log messages generated by the logger. This is typically the name of the plugin or module that is creating the logger instance, as well as any additional metadata such as the plugin category or environment.
619
+ * @returns A new logger client instance that extends the base logger with the provided configuration options.
616
620
  */
617
- createLog(source?: string | null): LogFn;
621
+ extendLogger(options: LoggerOptions): Logger;
618
622
  /**
619
623
  * 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.
620
624
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/context/base-context.ts","../../src/context/context.ts","../../src/context/engine-context.ts","../../src/context/environment-context.ts","../../src/context/execution-context.ts","../../src/context/plugin-context.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/context/base-context.ts","../../src/context/context.ts","../../src/context/engine-context.ts","../../src/context/environment-context.ts","../../src/context/execution-context.ts","../../src/context/plugin-context.ts"],"mappings":"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"}