@powerlines/engine 0.14.5 → 0.15.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 (195) hide show
  1. package/dist/api/build.cjs +66 -0
  2. package/dist/api/build.d.cts +14 -0
  3. package/dist/api/build.d.cts.map +1 -0
  4. package/dist/api/build.d.mts +14 -0
  5. package/dist/api/build.d.mts.map +1 -0
  6. package/dist/api/build.mjs +64 -0
  7. package/dist/api/build.mjs.map +1 -0
  8. package/dist/api/clean.cjs +29 -0
  9. package/dist/api/clean.d.cts +14 -0
  10. package/dist/api/clean.d.cts.map +1 -0
  11. package/dist/api/clean.d.mts +14 -0
  12. package/dist/api/clean.d.mts.map +1 -0
  13. package/dist/api/clean.mjs +28 -0
  14. package/dist/api/clean.mjs.map +1 -0
  15. package/dist/api/create.cjs +59 -0
  16. package/dist/api/create.d.cts +14 -0
  17. package/dist/api/create.d.cts.map +1 -0
  18. package/dist/api/create.d.mts +14 -0
  19. package/dist/api/create.d.mts.map +1 -0
  20. package/dist/api/create.mjs +57 -0
  21. package/dist/api/create.mjs.map +1 -0
  22. package/dist/api/deploy.cjs +25 -0
  23. package/dist/api/deploy.d.cts +17 -0
  24. package/dist/api/deploy.d.cts.map +1 -0
  25. package/dist/api/deploy.d.mts +17 -0
  26. package/dist/api/deploy.d.mts.map +1 -0
  27. package/dist/api/deploy.mjs +24 -0
  28. package/dist/api/deploy.mjs.map +1 -0
  29. package/dist/api/docs.cjs +25 -0
  30. package/dist/api/docs.d.cts +17 -0
  31. package/dist/api/docs.d.cts.map +1 -0
  32. package/dist/api/docs.d.mts +17 -0
  33. package/dist/api/docs.d.mts.map +1 -0
  34. package/dist/api/docs.mjs +24 -0
  35. package/dist/api/docs.mjs.map +1 -0
  36. package/dist/api/lint.cjs +28 -0
  37. package/dist/api/lint.d.cts +17 -0
  38. package/dist/api/lint.d.cts.map +1 -0
  39. package/dist/api/lint.d.mts +17 -0
  40. package/dist/api/lint.d.mts.map +1 -0
  41. package/dist/api/lint.mjs +27 -0
  42. package/dist/api/lint.mjs.map +1 -0
  43. package/dist/api/prepare.cjs +69 -0
  44. package/dist/api/prepare.d.cts +14 -0
  45. package/dist/api/prepare.d.cts.map +1 -0
  46. package/dist/api/prepare.d.mts +14 -0
  47. package/dist/api/prepare.d.mts.map +1 -0
  48. package/dist/api/prepare.mjs +68 -0
  49. package/dist/api/prepare.mjs.map +1 -0
  50. package/dist/api/test.cjs +28 -0
  51. package/dist/api/test.d.cts +17 -0
  52. package/dist/api/test.d.cts.map +1 -0
  53. package/dist/api/test.d.mts +17 -0
  54. package/dist/api/test.d.mts.map +1 -0
  55. package/dist/api/test.mjs +27 -0
  56. package/dist/api/test.mjs.map +1 -0
  57. package/dist/api/types.cjs +71 -0
  58. package/dist/api/types.d.cts +17 -0
  59. package/dist/api/types.d.cts.map +1 -0
  60. package/dist/api/types.d.mts +17 -0
  61. package/dist/api/types.d.mts.map +1 -0
  62. package/dist/api/types.mjs +70 -0
  63. package/dist/api/types.mjs.map +1 -0
  64. package/dist/api-6w4hZL6n.d.cts +135 -0
  65. package/dist/api-6w4hZL6n.d.cts.map +1 -0
  66. package/dist/api-Cdw4v0W4.d.mts +135 -0
  67. package/dist/api-Cdw4v0W4.d.mts.map +1 -0
  68. package/dist/config-BNe23XHx.d.mts +204 -0
  69. package/dist/config-BNe23XHx.d.mts.map +1 -0
  70. package/dist/config-D6xUniHh.d.cts +204 -0
  71. package/dist/config-D6xUniHh.d.cts.map +1 -0
  72. package/dist/context/engine-context.cjs +175 -0
  73. package/dist/context/engine-context.d.cts +2 -0
  74. package/dist/context/engine-context.d.mts +2 -0
  75. package/dist/context/engine-context.mjs +173 -0
  76. package/dist/context/engine-context.mjs.map +1 -0
  77. package/dist/context/index.cjs +2 -9
  78. package/dist/context/index.d.cts +2 -660
  79. package/dist/context/index.d.mts +2 -660
  80. package/dist/context/index.mjs +2 -4
  81. package/dist/context-DzgsMSWr.d.mts +149 -0
  82. package/dist/context-DzgsMSWr.d.mts.map +1 -0
  83. package/dist/context-epL7NPvL.d.cts +149 -0
  84. package/dist/context-epL7NPvL.d.cts.map +1 -0
  85. package/dist/engine-context-DEotmVzB.d.mts +54 -0
  86. package/dist/engine-context-DEotmVzB.d.mts.map +1 -0
  87. package/dist/engine-context-Dw8odBCo.d.cts +54 -0
  88. package/dist/engine-context-Dw8odBCo.d.cts.map +1 -0
  89. package/dist/engine.cjs +268 -0
  90. package/dist/engine.d.cts +143 -0
  91. package/dist/engine.d.cts.map +1 -0
  92. package/dist/engine.d.mts +143 -0
  93. package/dist/engine.d.mts.map +1 -0
  94. package/dist/engine.mjs +264 -0
  95. package/dist/engine.mjs.map +1 -0
  96. package/dist/execution-host.cjs +44 -0
  97. package/dist/execution-host.d.cts +14 -0
  98. package/dist/execution-host.d.cts.map +1 -0
  99. package/dist/execution-host.d.mts +14 -0
  100. package/dist/execution-host.d.mts.map +1 -0
  101. package/dist/execution-host.mjs +36 -0
  102. package/dist/execution-host.mjs.map +1 -0
  103. package/dist/helpers/create-execution-host.cjs +51 -0
  104. package/dist/helpers/create-execution-host.d.cts +21 -0
  105. package/dist/helpers/create-execution-host.d.cts.map +1 -0
  106. package/dist/helpers/create-execution-host.d.mts +21 -0
  107. package/dist/helpers/create-execution-host.d.mts.map +1 -0
  108. package/dist/helpers/create-execution-host.mjs +50 -0
  109. package/dist/helpers/create-execution-host.mjs.map +1 -0
  110. package/dist/helpers/execution-host-worker.cjs +308 -0
  111. package/dist/helpers/execution-host-worker.d.cts +68 -0
  112. package/dist/helpers/execution-host-worker.d.cts.map +1 -0
  113. package/dist/helpers/execution-host-worker.d.mts +68 -0
  114. package/dist/helpers/execution-host-worker.d.mts.map +1 -0
  115. package/dist/helpers/execution-host-worker.mjs +307 -0
  116. package/dist/helpers/execution-host-worker.mjs.map +1 -0
  117. package/dist/helpers/finalize.cjs +27 -0
  118. package/dist/helpers/finalize.d.cts +12 -0
  119. package/dist/helpers/finalize.d.cts.map +1 -0
  120. package/dist/helpers/finalize.d.mts +12 -0
  121. package/dist/helpers/finalize.d.mts.map +1 -0
  122. package/dist/helpers/finalize.mjs +26 -0
  123. package/dist/helpers/finalize.mjs.map +1 -0
  124. package/dist/helpers/rpc.cjs +140 -0
  125. package/dist/helpers/rpc.d.cts +7 -0
  126. package/dist/helpers/rpc.d.cts.map +1 -0
  127. package/dist/helpers/rpc.d.mts +7 -0
  128. package/dist/helpers/rpc.d.mts.map +1 -0
  129. package/dist/helpers/rpc.mjs +139 -0
  130. package/dist/helpers/rpc.mjs.map +1 -0
  131. package/dist/index-CNgSR_kt.d.mts +1 -0
  132. package/dist/index-D_TYgLX3.d.cts +1 -0
  133. package/dist/index.cjs +13 -567
  134. package/dist/index.d.cts +9 -126
  135. package/dist/index.d.mts +9 -126
  136. package/dist/index.mjs +7 -567
  137. package/package.json +101 -129
  138. package/dist/_internal/worker.cjs +0 -4843
  139. package/dist/_internal/worker.d.cts +0 -38
  140. package/dist/_internal/worker.d.cts.map +0 -1
  141. package/dist/_internal/worker.d.mts +0 -38
  142. package/dist/_internal/worker.d.mts.map +0 -1
  143. package/dist/_internal/worker.mjs +0 -4804
  144. package/dist/_internal/worker.mjs.map +0 -1
  145. package/dist/api.cjs +0 -1274
  146. package/dist/api.d.cts +0 -265
  147. package/dist/api.d.cts.map +0 -1
  148. package/dist/api.d.mts +0 -265
  149. package/dist/api.d.mts.map +0 -1
  150. package/dist/api.mjs +0 -1270
  151. package/dist/api.mjs.map +0 -1
  152. package/dist/base-context-BUnL_9z8.mjs +0 -241
  153. package/dist/base-context-BUnL_9z8.mjs.map +0 -1
  154. package/dist/base-context-CFvO2N9I.cjs +0 -248
  155. package/dist/context/index.d.cts.map +0 -1
  156. package/dist/context/index.d.mts.map +0 -1
  157. package/dist/engine-context-BuD9AGfd.mjs +0 -41
  158. package/dist/engine-context-BuD9AGfd.mjs.map +0 -1
  159. package/dist/engine-context-NO6enYev.cjs +0 -45
  160. package/dist/execution-context-BgGV4xyW.cjs +0 -2614
  161. package/dist/execution-context-D_CXpe9I.mjs +0 -2570
  162. package/dist/execution-context-D_CXpe9I.mjs.map +0 -1
  163. package/dist/fs-D1nIP45P.mjs +0 -226
  164. package/dist/fs-D1nIP45P.mjs.map +0 -1
  165. package/dist/fs-XogSgMqT.cjs +0 -262
  166. package/dist/index.d.cts.map +0 -1
  167. package/dist/index.d.mts.map +0 -1
  168. package/dist/index.mjs.map +0 -1
  169. package/dist/schemas.cjs +0 -9
  170. package/dist/schemas.d.cts +0 -127
  171. package/dist/schemas.d.cts.map +0 -1
  172. package/dist/schemas.d.mts +0 -127
  173. package/dist/schemas.d.mts.map +0 -1
  174. package/dist/schemas.mjs +0 -3
  175. package/dist/storage/index.cjs +0 -9
  176. package/dist/storage/index.d.cts +0 -419
  177. package/dist/storage/index.d.cts.map +0 -1
  178. package/dist/storage/index.d.mts +0 -419
  179. package/dist/storage/index.d.mts.map +0 -1
  180. package/dist/storage/index.mjs +0 -3
  181. package/dist/ts-morph-BaLPVAdB.cjs +0 -114
  182. package/dist/ts-morph-D0CaA37w.mjs +0 -102
  183. package/dist/ts-morph-D0CaA37w.mjs.map +0 -1
  184. package/dist/tsconfig-Cstsoprg.mjs +0 -155
  185. package/dist/tsconfig-Cstsoprg.mjs.map +0 -1
  186. package/dist/tsconfig-DeyWQC2N.cjs +0 -198
  187. package/dist/typescript/index.cjs +0 -13
  188. package/dist/typescript/index.d.cts +0 -106
  189. package/dist/typescript/index.d.cts.map +0 -1
  190. package/dist/typescript/index.d.mts +0 -106
  191. package/dist/typescript/index.d.mts.map +0 -1
  192. package/dist/typescript/index.mjs +0 -4
  193. package/dist/virtual-BNdKVkRw.cjs +0 -548
  194. package/dist/virtual-gIlTc3Lj.mjs +0 -513
  195. package/dist/virtual-gIlTc3Lj.mjs.map +0 -1
@@ -0,0 +1,268 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_chunk = require('./chunk-C0xms8kb.cjs');
3
+ const require_context_engine_context = require('./context/engine-context.cjs');
4
+ const require_helpers_execution_host_worker = require('./helpers/execution-host-worker.cjs');
5
+ let _powerlines_core_constants = require("@powerlines/core/constants");
6
+ let devframe_node = require("devframe/node");
7
+ let get_port_please = require("get-port-please");
8
+ let h3 = require("h3");
9
+ let node_events = require("node:events");
10
+ let sirv = require("sirv");
11
+ sirv = require_chunk.__toESM(sirv, 1);
12
+
13
+ //#region src/engine.ts
14
+ /**
15
+ * The Powerlines process' orchestration and coordination API.
16
+ *
17
+ * @public
18
+ */
19
+ var PowerlinesEngine = class {
20
+ /**
21
+ * The Powerlines context
22
+ */
23
+ #context;
24
+ /**
25
+ * The execution host, which provides methods to call the execution API functions from the engine context. This allows the engine to invoke commands and other API functions during the execution of Powerlines commands, enabling communication between the engine and the execution contexts.
26
+ */
27
+ #host;
28
+ /**
29
+ * The Powerlines context
30
+ */
31
+ get context() {
32
+ return this.#context;
33
+ }
34
+ /**
35
+ * The execution host, which provides methods to call the execution API functions from the engine context. This allows the engine to invoke commands and other API functions during the execution of Powerlines commands, enabling communication between the engine and the execution contexts.
36
+ */
37
+ get host() {
38
+ return this.#host;
39
+ }
40
+ /**
41
+ * Create a new Powerlines Engine instance
42
+ *
43
+ * @param context - The Powerlines context
44
+ * @param host - The API host for the execution workers
45
+ * @returns A new instance of the Powerlines Engine
46
+ */
47
+ constructor(context, host) {
48
+ this.#context = context;
49
+ this.#host = host;
50
+ }
51
+ /**
52
+ * Create a new Powerlines project
53
+ *
54
+ * @remarks
55
+ * This method will create a new Powerlines project in the current directory.
56
+ *
57
+ * @param inlineConfig - The inline configuration for the create command
58
+ * @returns A promise that resolves when the project has been created
59
+ */
60
+ async create(inlineConfig) {
61
+ const timer = this.context.timer("Create");
62
+ this.context.info("🆕 Creating a new project");
63
+ await this.execute("create", inlineConfig);
64
+ this.context.debug("✔ Create command completed successfully");
65
+ timer();
66
+ }
67
+ /**
68
+ * Generate the Powerlines typescript declaration file
69
+ *
70
+ * @remarks
71
+ * This method will only generate the typescript declaration file for the Powerlines project. It is generally recommended to run the full `prepare` command, which will run this method as part of its process.
72
+ *
73
+ * @param inlineConfig - The inline configuration for the types command
74
+ */
75
+ async types(inlineConfig) {
76
+ const timer = this.context.timer("Types");
77
+ this.context.info("🏗️ Generating typescript declarations for the project");
78
+ await this.execute("types", inlineConfig);
79
+ this.context.debug("✔ Types generation has completed successfully");
80
+ timer();
81
+ }
82
+ /**
83
+ * Prepare the Powerlines API
84
+ *
85
+ * @remarks
86
+ * This method will prepare the Powerlines API for use, initializing any necessary resources.
87
+ *
88
+ * @param inlineConfig - The inline configuration for the prepare command
89
+ */
90
+ async prepare(inlineConfig) {
91
+ const timer = this.context.timer("Prepare");
92
+ this.context.info("🏗️ Preparing the project");
93
+ await this.execute("prepare", inlineConfig);
94
+ this.context.debug("✔ Preparation has completed successfully");
95
+ timer();
96
+ }
97
+ /**
98
+ * Clean any previously prepared artifacts
99
+ *
100
+ * @remarks
101
+ * This method will remove the previous Powerlines artifacts from the project.
102
+ *
103
+ * @param inlineConfig - The inline configuration for the clean command
104
+ * @returns A promise that resolves when the clean command has completed
105
+ */
106
+ async clean(inlineConfig) {
107
+ const timer = this.context.timer("Clean");
108
+ this.context.info("🧹 Cleaning the previous artifacts");
109
+ await this.execute("clean", inlineConfig);
110
+ this.context.debug("✔ Cleaning completed successfully");
111
+ timer();
112
+ }
113
+ /**
114
+ * Lint the project
115
+ *
116
+ * @param inlineConfig - The inline configuration for the lint command
117
+ * @returns A promise that resolves when the lint command has completed
118
+ */
119
+ async lint(inlineConfig) {
120
+ const timer = this.context.timer("Lint");
121
+ this.context.info("📝 Linting the project");
122
+ await this.execute("lint", inlineConfig);
123
+ this.context.debug("✔ Linting completed successfully");
124
+ timer();
125
+ }
126
+ /**
127
+ * Test the project
128
+ *
129
+ * @remarks
130
+ * This method will run the tests for the Powerlines project.
131
+ *
132
+ * @param inlineConfig - The inline configuration for the test command
133
+ * @returns A promise that resolves when the test command has completed
134
+ */
135
+ async test(inlineConfig) {
136
+ const timer = this.context.timer("Test");
137
+ this.context.info("🧪 Running tests for the project");
138
+ await this.execute("test", inlineConfig);
139
+ this.context.debug("✔ Testing completed successfully");
140
+ timer();
141
+ }
142
+ /**
143
+ * Build the project
144
+ *
145
+ * @remarks
146
+ * This method will build the Powerlines project, generating the necessary artifacts.
147
+ *
148
+ * @param inlineConfig - The inline configuration for the build command
149
+ * @returns A promise that resolves when the build command has completed
150
+ */
151
+ async build(inlineConfig) {
152
+ const timer = this.context.timer("Build");
153
+ this.context.info("📦 Building the project");
154
+ await this.execute("build", inlineConfig);
155
+ this.context.debug("✔ Build completed successfully");
156
+ timer();
157
+ }
158
+ /**
159
+ * Prepare the documentation for the project
160
+ *
161
+ * @param inlineConfig - The inline configuration for the docs command
162
+ * @returns A promise that resolves when the documentation generation has completed
163
+ */
164
+ async docs(inlineConfig) {
165
+ const timer = this.context.timer("Docs");
166
+ this.context.info("📓 Generating documentation for the project");
167
+ await this.execute("docs", inlineConfig);
168
+ this.context.debug("✔ Documentation generation completed successfully");
169
+ timer();
170
+ }
171
+ /**
172
+ * Deploy the project source code
173
+ *
174
+ * @remarks
175
+ * This method will prepare and build the Powerlines project, generating the necessary artifacts for the deployment.
176
+ *
177
+ * @param inlineConfig - The inline configuration for the deploy command
178
+ * @returns A promise that resolves when the deploy command has completed
179
+ */
180
+ async deploy(inlineConfig) {
181
+ const timer = this.context.timer("Deploy");
182
+ this.context.info("🚀 Deploying the project");
183
+ await this.execute("deploy", inlineConfig);
184
+ this.context.debug("✔ Deployment completed successfully");
185
+ timer();
186
+ }
187
+ /**
188
+ * Finalization/cleanup processing for the Powerlines API
189
+ *
190
+ * @remarks
191
+ * This step includes any final processes or clean up required by Powerlines. It will be run after each Powerlines command.
192
+ *
193
+ * @returns A promise that resolves when the finalization process has completed
194
+ */
195
+ async finalize() {
196
+ const timer = this.context.timer("Finalize");
197
+ this.context.info("🏁 Finalization processes started");
198
+ await this.host.end();
199
+ this.context.debug("✔ Finalization completed successfully");
200
+ timer();
201
+ }
202
+ /**
203
+ * Asynchronous disposal method for the Powerlines Engine, which will call the finalize method to perform any necessary cleanup when the engine is disposed of.
204
+ */
205
+ async [Symbol.asyncDispose]() {
206
+ return this.finalize();
207
+ }
208
+ /**
209
+ * Execute a Powerlines command based on the provided execution path and inline configuration, loading the necessary executions from the context and managing their lifecycle.
210
+ *
211
+ * @remarks
212
+ * This method will load the executions for the specified command and inline configuration, then execute each one while managing their lifecycle, including handling their completion and any errors that may occur during execution.
213
+ *
214
+ * @param method - The path to the execution configuration to load and run, which can be used to specify different execution configurations for different commands or scenarios.
215
+ * @param inlineConfig - Additional configuration options provided at runtime, which can override or supplement the options defined in the user configuration file.
216
+ * @returns A promise that resolves when all executions for the specified command have completed
217
+ */
218
+ async execute(method, inlineConfig) {
219
+ await Promise.all((await this.context.loadExecutions(method, inlineConfig)).map(async (execution) => {
220
+ try {
221
+ await this.host[method]({
222
+ options: execution.options,
223
+ inlineConfig
224
+ });
225
+ } catch (error) {
226
+ this.context.error(`Execution of method "${method}" failed for execution with invocation ID "${execution.invocationId}" and execution ID "${execution.options.executionId}": \n\n${error instanceof Error ? error.stack || error.message : String(error)}`);
227
+ throw error;
228
+ } finally {
229
+ this.context.completeExecution(execution.invocationId, execution.options.executionId);
230
+ }
231
+ }));
232
+ }
233
+ };
234
+ async function createContext(options) {
235
+ const port = options.port ?? await (0, get_port_please.getPort)({
236
+ host: options.host || "localhost",
237
+ random: true
238
+ });
239
+ const app = (0, h3.createApp)();
240
+ const host = (0, devframe_node.createH3DevToolsHost)({
241
+ appName: options.framework?.name || "powerlines",
242
+ origin: `http://${options.host || "localhost"}:${port}`,
243
+ mount: (base, dir) => {
244
+ app.use(base, (0, h3.fromNodeMiddleware)((0, sirv.default)(dir, {
245
+ dev: true,
246
+ single: true
247
+ })));
248
+ }
249
+ });
250
+ return require_context_engine_context.PowerlinesEngineContext.from(options, host, {
251
+ backend: "websocket",
252
+ websocket: port
253
+ });
254
+ }
255
+ async function createEngine(options, executionHostPath = "@powerlines/engine/execution-host", executionMethods = _powerlines_core_constants.EXECUTION_API_METHODS) {
256
+ node_events.EventEmitter.setMaxListeners(100);
257
+ const context = await createContext(options);
258
+ return new PowerlinesEngine(context, await require_helpers_execution_host_worker.ExecutionHostWorker.from(executionHostPath, {
259
+ root: options.root,
260
+ context,
261
+ executionMethods
262
+ }));
263
+ }
264
+
265
+ //#endregion
266
+ exports.PowerlinesEngine = PowerlinesEngine;
267
+ exports.createContext = createContext;
268
+ exports.createEngine = createEngine;
@@ -0,0 +1,143 @@
1
+ import { n as EngineOptions } from "./config-D6xUniHh.cjs";
2
+ import { t as EngineContext } from "./context-epL7NPvL.cjs";
3
+ import { t as PowerlinesEngineContext } from "./engine-context-Dw8odBCo.cjs";
4
+ import { n as ExecutionHost, t as Engine } from "./api-6w4hZL6n.cjs";
5
+ import { BuildInlineConfig, CleanInlineConfig, CreateInlineConfig, DeployInlineConfig, DocsInlineConfig, InlineConfig, LintInlineConfig, PrepareInlineConfig, TestInlineConfig, TypesInlineConfig } from "@powerlines/core";
6
+ import { EXECUTION_API_METHODS } from "@powerlines/core/constants";
7
+
8
+ //#region src/engine.d.ts
9
+ /**
10
+ * The Powerlines process' orchestration and coordination API.
11
+ *
12
+ * @public
13
+ */
14
+ declare class PowerlinesEngine<TExecutionAPI extends ReadonlyArray<string> = typeof EXECUTION_API_METHODS> implements Engine<TExecutionAPI>, AsyncDisposable {
15
+ #private;
16
+ /**
17
+ * The Powerlines context
18
+ */
19
+ get context(): EngineContext;
20
+ /**
21
+ * The execution host, which provides methods to call the execution API functions from the engine context. This allows the engine to invoke commands and other API functions during the execution of Powerlines commands, enabling communication between the engine and the execution contexts.
22
+ */
23
+ get host(): ExecutionHost<TExecutionAPI>;
24
+ /**
25
+ * Create a new Powerlines Engine instance
26
+ *
27
+ * @param context - The Powerlines context
28
+ * @param host - The API host for the execution workers
29
+ * @returns A new instance of the Powerlines Engine
30
+ */
31
+ constructor(context: EngineContext, host: ExecutionHost<TExecutionAPI>);
32
+ /**
33
+ * Create a new Powerlines project
34
+ *
35
+ * @remarks
36
+ * This method will create a new Powerlines project in the current directory.
37
+ *
38
+ * @param inlineConfig - The inline configuration for the create command
39
+ * @returns A promise that resolves when the project has been created
40
+ */
41
+ create(inlineConfig: CreateInlineConfig): Promise<void>;
42
+ /**
43
+ * Generate the Powerlines typescript declaration file
44
+ *
45
+ * @remarks
46
+ * This method will only generate the typescript declaration file for the Powerlines project. It is generally recommended to run the full `prepare` command, which will run this method as part of its process.
47
+ *
48
+ * @param inlineConfig - The inline configuration for the types command
49
+ */
50
+ types(inlineConfig: TypesInlineConfig): Promise<void>;
51
+ /**
52
+ * Prepare the Powerlines API
53
+ *
54
+ * @remarks
55
+ * This method will prepare the Powerlines API for use, initializing any necessary resources.
56
+ *
57
+ * @param inlineConfig - The inline configuration for the prepare command
58
+ */
59
+ prepare(inlineConfig: PrepareInlineConfig): Promise<void>;
60
+ /**
61
+ * Clean any previously prepared artifacts
62
+ *
63
+ * @remarks
64
+ * This method will remove the previous Powerlines artifacts from the project.
65
+ *
66
+ * @param inlineConfig - The inline configuration for the clean command
67
+ * @returns A promise that resolves when the clean command has completed
68
+ */
69
+ clean(inlineConfig: CleanInlineConfig): Promise<void>;
70
+ /**
71
+ * Lint the project
72
+ *
73
+ * @param inlineConfig - The inline configuration for the lint command
74
+ * @returns A promise that resolves when the lint command has completed
75
+ */
76
+ lint(inlineConfig: LintInlineConfig): Promise<void>;
77
+ /**
78
+ * Test the project
79
+ *
80
+ * @remarks
81
+ * This method will run the tests for the Powerlines project.
82
+ *
83
+ * @param inlineConfig - The inline configuration for the test command
84
+ * @returns A promise that resolves when the test command has completed
85
+ */
86
+ test(inlineConfig: TestInlineConfig): Promise<void>;
87
+ /**
88
+ * Build the project
89
+ *
90
+ * @remarks
91
+ * This method will build the Powerlines project, generating the necessary artifacts.
92
+ *
93
+ * @param inlineConfig - The inline configuration for the build command
94
+ * @returns A promise that resolves when the build command has completed
95
+ */
96
+ build(inlineConfig: BuildInlineConfig): Promise<void>;
97
+ /**
98
+ * Prepare the documentation for the project
99
+ *
100
+ * @param inlineConfig - The inline configuration for the docs command
101
+ * @returns A promise that resolves when the documentation generation has completed
102
+ */
103
+ docs(inlineConfig: DocsInlineConfig): Promise<void>;
104
+ /**
105
+ * Deploy the project source code
106
+ *
107
+ * @remarks
108
+ * This method will prepare and build the Powerlines project, generating the necessary artifacts for the deployment.
109
+ *
110
+ * @param inlineConfig - The inline configuration for the deploy command
111
+ * @returns A promise that resolves when the deploy command has completed
112
+ */
113
+ deploy(inlineConfig: DeployInlineConfig): Promise<void>;
114
+ /**
115
+ * Finalization/cleanup processing for the Powerlines API
116
+ *
117
+ * @remarks
118
+ * This step includes any final processes or clean up required by Powerlines. It will be run after each Powerlines command.
119
+ *
120
+ * @returns A promise that resolves when the finalization process has completed
121
+ */
122
+ finalize(): Promise<void>;
123
+ /**
124
+ * Asynchronous disposal method for the Powerlines Engine, which will call the finalize method to perform any necessary cleanup when the engine is disposed of.
125
+ */
126
+ [Symbol.asyncDispose](): Promise<void>;
127
+ /**
128
+ * Execute a Powerlines command based on the provided execution path and inline configuration, loading the necessary executions from the context and managing their lifecycle.
129
+ *
130
+ * @remarks
131
+ * This method will load the executions for the specified command and inline configuration, then execute each one while managing their lifecycle, including handling their completion and any errors that may occur during execution.
132
+ *
133
+ * @param method - The path to the execution configuration to load and run, which can be used to specify different execution configurations for different commands or scenarios.
134
+ * @param inlineConfig - Additional configuration options provided at runtime, which can override or supplement the options defined in the user configuration file.
135
+ * @returns A promise that resolves when all executions for the specified command have completed
136
+ */
137
+ protected execute(method: TExecutionAPI[number], inlineConfig: InlineConfig): Promise<void>;
138
+ }
139
+ declare function createContext(options: EngineOptions): Promise<PowerlinesEngineContext<unknown>>;
140
+ declare function createEngine<TExecutionAPI extends ReadonlyArray<string>>(options: EngineOptions, executionHostPath?: string, executionMethods?: TExecutionAPI): Promise<PowerlinesEngine<TExecutionAPI>>;
141
+ //#endregion
142
+ export { PowerlinesEngine, createContext, createEngine };
143
+ //# sourceMappingURL=engine.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.cts","names":[],"sources":["../src/engine.ts"],"mappings":";;;;;;;;;;AA+CA;;;cAAa,gBAAA,uBACW,aAAA,kBAA+B,qBAAA,aAE1C,MAAA,CAAO,aAAA,GAAgB,eAAA;EAAA;EAAhB;;;EAAA,IAeP,OAAA,CAAA,GAAW,aAAA;EAmBX;;;EAAA,IAZA,IAAA,CAAA,GAAQ,aAAA,CAAc,aAAA;EA4BmB;;;;;;;cAhBlD,OAAA,EAAS,aAAA,EACT,IAAA,EAAM,aAAA,CAAc,aAAA;EAsF0B;;;;;;;;;EAvEnC,MAAA,CAAO,YAAA,EAAc,kBAAA,GAAkB,OAAA;EA+KlB;;;;;;;;EA7JrB,KAAA,CAAM,YAAA,EAAc,iBAAA,GAAiB,OAAA;EAtElD;;;;;;;;EAwFa,OAAA,CAAQ,YAAA,EAAc,mBAAA,GAAmB,OAAA;EAhE3C;;;;;;;;;EAmFE,KAAA,CAAM,YAAA,EAAc,iBAAA,GAAiB,OAAA;EAvDhB;;;;;;EAuErB,IAAA,CAAK,YAAA,EAAc,gBAAA,GAAgB,OAAA;EAnCnC;;;;;;;;;EAsDA,IAAA,CAAK,YAAA,EAAc,gBAAA,GAAgB,OAAA;EAnB9B;;;;;;;;;EAsCL,KAAA,CAAM,YAAA,EAAc,iBAAA,GAAiB,OAAA;EAgBrC;;;;;;EAAA,IAAA,CAAK,YAAA,EAAc,gBAAA,GAAgB,OAAA;EAmBI;;;;;;;;;EAAvC,MAAA,CAAO,YAAA,EAAc,kBAAA,GAAkB,OAAA;EA+ClD;;;;AAkCJ;;;;EA/De,QAAA,CAAA,GAAQ,OAAA;EA+DmC;;;EAAA,CAlD1C,MAAA,CAAO,YAAA,KAAa,OAAA;EAkDA;;;;;AAuBpC;;;;;EAvBoC,UApClB,OAAA,CACd,MAAA,EAAQ,aAAA,UACR,YAAA,EAAc,YAAA,GAAY,OAAA;AAAA;AAAA,iBAkCR,aAAA,CAAc,OAAA,EAAS,aAAA,GAAa,OAAA,CAAA,uBAAA;AAAA,iBAuBpC,YAAA,uBAAmC,aAAA,SAAA,CACvD,OAAA,EAAS,aAAA,EACT,iBAAA,WACA,gBAAA,GAAkB,aAAA,GAAiE,OAAA,CAAA,gBAAA,CAAA,aAAA"}
@@ -0,0 +1,143 @@
1
+ import { n as EngineOptions } from "./config-BNe23XHx.mjs";
2
+ import { t as EngineContext } from "./context-DzgsMSWr.mjs";
3
+ import { t as PowerlinesEngineContext } from "./engine-context-DEotmVzB.mjs";
4
+ import { n as ExecutionHost, t as Engine } from "./api-Cdw4v0W4.mjs";
5
+ import { EXECUTION_API_METHODS } from "@powerlines/core/constants";
6
+ import { BuildInlineConfig, CleanInlineConfig, CreateInlineConfig, DeployInlineConfig, DocsInlineConfig, InlineConfig, LintInlineConfig, PrepareInlineConfig, TestInlineConfig, TypesInlineConfig } from "@powerlines/core";
7
+
8
+ //#region src/engine.d.ts
9
+ /**
10
+ * The Powerlines process' orchestration and coordination API.
11
+ *
12
+ * @public
13
+ */
14
+ declare class PowerlinesEngine<TExecutionAPI extends ReadonlyArray<string> = typeof EXECUTION_API_METHODS> implements Engine<TExecutionAPI>, AsyncDisposable {
15
+ #private;
16
+ /**
17
+ * The Powerlines context
18
+ */
19
+ get context(): EngineContext;
20
+ /**
21
+ * The execution host, which provides methods to call the execution API functions from the engine context. This allows the engine to invoke commands and other API functions during the execution of Powerlines commands, enabling communication between the engine and the execution contexts.
22
+ */
23
+ get host(): ExecutionHost<TExecutionAPI>;
24
+ /**
25
+ * Create a new Powerlines Engine instance
26
+ *
27
+ * @param context - The Powerlines context
28
+ * @param host - The API host for the execution workers
29
+ * @returns A new instance of the Powerlines Engine
30
+ */
31
+ constructor(context: EngineContext, host: ExecutionHost<TExecutionAPI>);
32
+ /**
33
+ * Create a new Powerlines project
34
+ *
35
+ * @remarks
36
+ * This method will create a new Powerlines project in the current directory.
37
+ *
38
+ * @param inlineConfig - The inline configuration for the create command
39
+ * @returns A promise that resolves when the project has been created
40
+ */
41
+ create(inlineConfig: CreateInlineConfig): Promise<void>;
42
+ /**
43
+ * Generate the Powerlines typescript declaration file
44
+ *
45
+ * @remarks
46
+ * This method will only generate the typescript declaration file for the Powerlines project. It is generally recommended to run the full `prepare` command, which will run this method as part of its process.
47
+ *
48
+ * @param inlineConfig - The inline configuration for the types command
49
+ */
50
+ types(inlineConfig: TypesInlineConfig): Promise<void>;
51
+ /**
52
+ * Prepare the Powerlines API
53
+ *
54
+ * @remarks
55
+ * This method will prepare the Powerlines API for use, initializing any necessary resources.
56
+ *
57
+ * @param inlineConfig - The inline configuration for the prepare command
58
+ */
59
+ prepare(inlineConfig: PrepareInlineConfig): Promise<void>;
60
+ /**
61
+ * Clean any previously prepared artifacts
62
+ *
63
+ * @remarks
64
+ * This method will remove the previous Powerlines artifacts from the project.
65
+ *
66
+ * @param inlineConfig - The inline configuration for the clean command
67
+ * @returns A promise that resolves when the clean command has completed
68
+ */
69
+ clean(inlineConfig: CleanInlineConfig): Promise<void>;
70
+ /**
71
+ * Lint the project
72
+ *
73
+ * @param inlineConfig - The inline configuration for the lint command
74
+ * @returns A promise that resolves when the lint command has completed
75
+ */
76
+ lint(inlineConfig: LintInlineConfig): Promise<void>;
77
+ /**
78
+ * Test the project
79
+ *
80
+ * @remarks
81
+ * This method will run the tests for the Powerlines project.
82
+ *
83
+ * @param inlineConfig - The inline configuration for the test command
84
+ * @returns A promise that resolves when the test command has completed
85
+ */
86
+ test(inlineConfig: TestInlineConfig): Promise<void>;
87
+ /**
88
+ * Build the project
89
+ *
90
+ * @remarks
91
+ * This method will build the Powerlines project, generating the necessary artifacts.
92
+ *
93
+ * @param inlineConfig - The inline configuration for the build command
94
+ * @returns A promise that resolves when the build command has completed
95
+ */
96
+ build(inlineConfig: BuildInlineConfig): Promise<void>;
97
+ /**
98
+ * Prepare the documentation for the project
99
+ *
100
+ * @param inlineConfig - The inline configuration for the docs command
101
+ * @returns A promise that resolves when the documentation generation has completed
102
+ */
103
+ docs(inlineConfig: DocsInlineConfig): Promise<void>;
104
+ /**
105
+ * Deploy the project source code
106
+ *
107
+ * @remarks
108
+ * This method will prepare and build the Powerlines project, generating the necessary artifacts for the deployment.
109
+ *
110
+ * @param inlineConfig - The inline configuration for the deploy command
111
+ * @returns A promise that resolves when the deploy command has completed
112
+ */
113
+ deploy(inlineConfig: DeployInlineConfig): Promise<void>;
114
+ /**
115
+ * Finalization/cleanup processing for the Powerlines API
116
+ *
117
+ * @remarks
118
+ * This step includes any final processes or clean up required by Powerlines. It will be run after each Powerlines command.
119
+ *
120
+ * @returns A promise that resolves when the finalization process has completed
121
+ */
122
+ finalize(): Promise<void>;
123
+ /**
124
+ * Asynchronous disposal method for the Powerlines Engine, which will call the finalize method to perform any necessary cleanup when the engine is disposed of.
125
+ */
126
+ [Symbol.asyncDispose](): Promise<void>;
127
+ /**
128
+ * Execute a Powerlines command based on the provided execution path and inline configuration, loading the necessary executions from the context and managing their lifecycle.
129
+ *
130
+ * @remarks
131
+ * This method will load the executions for the specified command and inline configuration, then execute each one while managing their lifecycle, including handling their completion and any errors that may occur during execution.
132
+ *
133
+ * @param method - The path to the execution configuration to load and run, which can be used to specify different execution configurations for different commands or scenarios.
134
+ * @param inlineConfig - Additional configuration options provided at runtime, which can override or supplement the options defined in the user configuration file.
135
+ * @returns A promise that resolves when all executions for the specified command have completed
136
+ */
137
+ protected execute(method: TExecutionAPI[number], inlineConfig: InlineConfig): Promise<void>;
138
+ }
139
+ declare function createContext(options: EngineOptions): Promise<PowerlinesEngineContext<unknown>>;
140
+ declare function createEngine<TExecutionAPI extends ReadonlyArray<string>>(options: EngineOptions, executionHostPath?: string, executionMethods?: TExecutionAPI): Promise<PowerlinesEngine<TExecutionAPI>>;
141
+ //#endregion
142
+ export { PowerlinesEngine, createContext, createEngine };
143
+ //# sourceMappingURL=engine.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.mts","names":[],"sources":["../src/engine.ts"],"mappings":";;;;;;;;;;AA+CA;;;cAAa,gBAAA,uBACW,aAAA,kBAA+B,qBAAA,aAE1C,MAAA,CAAO,aAAA,GAAgB,eAAA;EAAA;EAAhB;;;EAAA,IAeP,OAAA,CAAA,GAAW,aAAA;EAmBX;;;EAAA,IAZA,IAAA,CAAA,GAAQ,aAAA,CAAc,aAAA;EA4BmB;;;;;;;cAhBlD,OAAA,EAAS,aAAA,EACT,IAAA,EAAM,aAAA,CAAc,aAAA;EAsF0B;;;;;;;;;EAvEnC,MAAA,CAAO,YAAA,EAAc,kBAAA,GAAkB,OAAA;EA+KlB;;;;;;;;EA7JrB,KAAA,CAAM,YAAA,EAAc,iBAAA,GAAiB,OAAA;EAtElD;;;;;;;;EAwFa,OAAA,CAAQ,YAAA,EAAc,mBAAA,GAAmB,OAAA;EAhE3C;;;;;;;;;EAmFE,KAAA,CAAM,YAAA,EAAc,iBAAA,GAAiB,OAAA;EAvDhB;;;;;;EAuErB,IAAA,CAAK,YAAA,EAAc,gBAAA,GAAgB,OAAA;EAnCnC;;;;;;;;;EAsDA,IAAA,CAAK,YAAA,EAAc,gBAAA,GAAgB,OAAA;EAnB9B;;;;;;;;;EAsCL,KAAA,CAAM,YAAA,EAAc,iBAAA,GAAiB,OAAA;EAgBrC;;;;;;EAAA,IAAA,CAAK,YAAA,EAAc,gBAAA,GAAgB,OAAA;EAmBI;;;;;;;;;EAAvC,MAAA,CAAO,YAAA,EAAc,kBAAA,GAAkB,OAAA;EA+ClD;;;;AAkCJ;;;;EA/De,QAAA,CAAA,GAAQ,OAAA;EA+DmC;;;EAAA,CAlD1C,MAAA,CAAO,YAAA,KAAa,OAAA;EAkDA;;;;;AAuBpC;;;;;EAvBoC,UApClB,OAAA,CACd,MAAA,EAAQ,aAAA,UACR,YAAA,EAAc,YAAA,GAAY,OAAA;AAAA;AAAA,iBAkCR,aAAA,CAAc,OAAA,EAAS,aAAA,GAAa,OAAA,CAAA,uBAAA;AAAA,iBAuBpC,YAAA,uBAAmC,aAAA,SAAA,CACvD,OAAA,EAAS,aAAA,EACT,iBAAA,WACA,gBAAA,GAAkB,aAAA,GAAiE,OAAA,CAAA,gBAAA,CAAA,aAAA"}