@powerlines/nx 0.11.87 → 0.11.89
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.
- package/CHANGELOG.md +12 -0
- package/dist/{chunk-JQQWHSDW.js → chunk-7XKSRDAW.js} +2 -2
- package/dist/{chunk-SKLNP5UN.mjs → chunk-BDNUU3BE.mjs} +1 -1
- package/dist/{chunk-ML2F77YJ.mjs → chunk-CAEN6BUA.mjs} +110 -157
- package/dist/{chunk-4XOSJQ2L.js → chunk-EC2PIJZV.js} +122 -169
- package/dist/{chunk-2EVSW3PI.mjs → chunk-GL3WER2K.mjs} +1 -1
- package/dist/{chunk-SHJFN377.js → chunk-HVQITMUW.js} +2 -2
- package/dist/{chunk-A6ZFPH2S.js → chunk-LPQFKWO2.js} +2 -2
- package/dist/{chunk-5CYEAIEZ.js → chunk-QUUIIQ7T.js} +2 -2
- package/dist/{chunk-CKLF6WS7.js → chunk-W2XT4AIC.js} +2 -2
- package/dist/{chunk-TISA64TJ.mjs → chunk-W3ZC4BPH.mjs} +1 -1
- package/dist/{chunk-EIQ37LFN.mjs → chunk-ZRX53Q2Y.mjs} +1 -1
- package/dist/{chunk-655IF4XR.mjs → chunk-ZS2VR33L.mjs} +1 -1
- package/dist/executors.js +11 -11
- package/dist/executors.mjs +6 -6
- package/dist/index.js +11 -11
- package/dist/index.mjs +6 -6
- package/dist/src/base/base-executor.js +2 -2
- package/dist/src/base/base-executor.mjs +1 -1
- package/dist/src/executors/build/executor.js +4 -4
- package/dist/src/executors/build/executor.mjs +2 -2
- package/dist/src/executors/clean/executor.js +4 -4
- package/dist/src/executors/clean/executor.mjs +2 -2
- package/dist/src/executors/docs/executor.js +4 -4
- package/dist/src/executors/docs/executor.mjs +2 -2
- package/dist/src/executors/lint/executor.js +4 -4
- package/dist/src/executors/lint/executor.mjs +2 -2
- package/dist/src/executors/prepare/executor.js +4 -4
- package/dist/src/executors/prepare/executor.mjs +2 -2
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
# Changelog for Powerlines - Nx
|
|
4
4
|
|
|
5
|
+
## [0.11.88](https://github.com/storm-software/powerlines/releases/tag/nx%400.11.88) (01/15/2026)
|
|
6
|
+
|
|
7
|
+
### Updated Dependencies
|
|
8
|
+
|
|
9
|
+
- Updated **powerlines** to **v0.37.32**
|
|
10
|
+
|
|
11
|
+
## [0.11.87](https://github.com/storm-software/powerlines/releases/tag/nx%400.11.87) (01/14/2026)
|
|
12
|
+
|
|
13
|
+
### Updated Dependencies
|
|
14
|
+
|
|
15
|
+
- Updated **powerlines** to **v0.37.31**
|
|
16
|
+
|
|
5
17
|
## [0.11.86](https://github.com/storm-software/powerlines/releases/tag/nx%400.11.86) (01/14/2026)
|
|
6
18
|
|
|
7
19
|
### Updated Dependencies
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkEC2PIJZV_js = require('./chunk-EC2PIJZV.js');
|
|
4
4
|
var chunkSHUYVCID_js = require('./chunk-SHUYVCID.js');
|
|
5
5
|
|
|
6
6
|
// src/executors/lint/executor.ts
|
|
@@ -11,7 +11,7 @@ async function executorFn(context, api) {
|
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
13
|
chunkSHUYVCID_js.__name(executorFn, "executorFn");
|
|
14
|
-
var executor =
|
|
14
|
+
var executor = chunkEC2PIJZV_js.withExecutor("lint", executorFn);
|
|
15
15
|
var executor_default = executor;
|
|
16
16
|
|
|
17
17
|
exports.executorFn = executorFn;
|
|
@@ -7,7 +7,6 @@ import defu6, { createDefu, defu } from 'defu';
|
|
|
7
7
|
import { relativeToWorkspaceRoot } from '@stryke/fs/get-workspace-root';
|
|
8
8
|
import { transformAsync } from '@babel/core';
|
|
9
9
|
import { formatLogMessage } from '@storm-software/config-tools/logger/console';
|
|
10
|
-
import { LogLevelLabel } from '@storm-software/config-tools/types';
|
|
11
10
|
import { toArray } from '@stryke/convert/to-array';
|
|
12
11
|
import { createDirectorySync, createDirectory } from '@stryke/fs/helpers';
|
|
13
12
|
import { install } from '@stryke/fs/install';
|
|
@@ -29,6 +28,7 @@ import chalk5 from 'chalk';
|
|
|
29
28
|
import Handlebars from 'handlebars';
|
|
30
29
|
import { declare } from '@babel/helper-plugin-utils';
|
|
31
30
|
import * as t from '@babel/types';
|
|
31
|
+
import { LogLevelLabel } from '@storm-software/config-tools/types';
|
|
32
32
|
import ts, { flattenDiagnosticMessageText } from 'typescript';
|
|
33
33
|
import { InMemoryFileSystemHost, Project } from 'ts-morph';
|
|
34
34
|
import { getPackageName, hasPackageVersion, getPackageVersion } from '@stryke/string-format/package';
|
|
@@ -75,6 +75,9 @@ import { unlinkSync } from 'node:fs';
|
|
|
75
75
|
import { unlink } from 'node:fs/promises';
|
|
76
76
|
import { resolve } from 'node:path';
|
|
77
77
|
|
|
78
|
+
// ../powerlines/package.json
|
|
79
|
+
var package_default = {
|
|
80
|
+
version: "0.37.32"};
|
|
78
81
|
function resolveModulePath(nodePath, state) {
|
|
79
82
|
if (!t.isStringLiteral(nodePath.node)) {
|
|
80
83
|
return;
|
|
@@ -905,19 +908,39 @@ function resolveEntry(context, typeDefinition) {
|
|
|
905
908
|
};
|
|
906
909
|
}
|
|
907
910
|
__name(resolveEntry, "resolveEntry");
|
|
911
|
+
function isTypeDefinition(entry) {
|
|
912
|
+
return !isString(entry) && entry.file !== void 0;
|
|
913
|
+
}
|
|
914
|
+
__name(isTypeDefinition, "isTypeDefinition");
|
|
915
|
+
function isResolvedEntryTypeDefinition(entry) {
|
|
916
|
+
return isTypeDefinition(entry) && entry.input !== void 0 && entry.output !== void 0;
|
|
917
|
+
}
|
|
918
|
+
__name(isResolvedEntryTypeDefinition, "isResolvedEntryTypeDefinition");
|
|
908
919
|
function resolveEntriesSync(context, typeDefinitions) {
|
|
909
|
-
return typeDefinitions.map((entry) =>
|
|
910
|
-
|
|
911
|
-
|
|
920
|
+
return typeDefinitions.map((entry) => {
|
|
921
|
+
if (isResolvedEntryTypeDefinition(entry)) {
|
|
922
|
+
return {
|
|
923
|
+
...entry,
|
|
924
|
+
file: replacePathTokens(context, entry.file)
|
|
925
|
+
};
|
|
926
|
+
}
|
|
927
|
+
let typeDefinition;
|
|
928
|
+
if (isString(entry)) {
|
|
929
|
+
typeDefinition = parseTypeDefinition(replacePathTokens(context, entry));
|
|
930
|
+
} else {
|
|
931
|
+
typeDefinition = entry;
|
|
932
|
+
typeDefinition.file = replacePathTokens(context, typeDefinition.file);
|
|
933
|
+
}
|
|
934
|
+
const filePath = appendPath(typeDefinition.file, context.config.projectRoot);
|
|
912
935
|
if (isFile(filePath)) {
|
|
913
936
|
return resolveEntry(context, {
|
|
914
937
|
file: replacePath(filePath, context.config.projectRoot),
|
|
915
|
-
name:
|
|
938
|
+
name: typeDefinition.name
|
|
916
939
|
});
|
|
917
940
|
}
|
|
918
941
|
return listFilesSync(filePath).map((file) => resolveEntry(context, {
|
|
919
942
|
file,
|
|
920
|
-
name:
|
|
943
|
+
name: typeDefinition.name
|
|
921
944
|
}));
|
|
922
945
|
}).flat().filter(Boolean);
|
|
923
946
|
}
|
|
@@ -1847,12 +1870,12 @@ var VirtualFileSystem = class _VirtualFileSystem {
|
|
|
1847
1870
|
}
|
|
1848
1871
|
let metadata;
|
|
1849
1872
|
if (fs._hasMetadata()) {
|
|
1850
|
-
metadata = fs.metadata.find((meta) => meta.id === (id?.id ?? file.path));
|
|
1873
|
+
metadata = fs.metadata.find((meta) => meta.id === result.#normalizeId(id?.id ?? file.path));
|
|
1851
1874
|
}
|
|
1852
1875
|
await result.write(file.path, file.code, {
|
|
1853
1876
|
meta: {
|
|
1854
|
-
id: id?.id
|
|
1855
|
-
type: metadata?.type,
|
|
1877
|
+
id: result.#normalizeId(id?.id ?? metadata?.id ?? file.path),
|
|
1878
|
+
type: metadata?.type || "normal",
|
|
1856
1879
|
properties: metadata?._hasProperties() ? metadata?.properties.values().reduce((ret, kvp) => {
|
|
1857
1880
|
ret[kvp.key] = kvp.value;
|
|
1858
1881
|
return ret;
|
|
@@ -1863,37 +1886,6 @@ var VirtualFileSystem = class _VirtualFileSystem {
|
|
|
1863
1886
|
}
|
|
1864
1887
|
}));
|
|
1865
1888
|
}
|
|
1866
|
-
if (result.#metadata && Object.keys(result.#metadata).length > 0) {
|
|
1867
|
-
result.#log(LogLevelLabel.DEBUG, `Preparing to load ${Object.keys(result.#metadata).length} previously stored metadata records...`);
|
|
1868
|
-
const entry = Object.entries(result.#metadata).filter(([, meta]) => meta && meta.type === "entry").map(([path, meta]) => {
|
|
1869
|
-
if (meta.properties) {
|
|
1870
|
-
const typeDefinition = {
|
|
1871
|
-
file: path
|
|
1872
|
-
};
|
|
1873
|
-
if (isSetString(meta.properties.name)) {
|
|
1874
|
-
typeDefinition.name = meta.properties.name;
|
|
1875
|
-
}
|
|
1876
|
-
if (isSetString(meta.properties["input.file"]) || isSetString(meta.properties["input.name"])) {
|
|
1877
|
-
typeDefinition.input ??= {};
|
|
1878
|
-
if (isSetString(meta.properties["input.file"])) {
|
|
1879
|
-
typeDefinition.input.file = meta.properties["input.file"];
|
|
1880
|
-
}
|
|
1881
|
-
if (isSetString(meta.properties["input.name"])) {
|
|
1882
|
-
typeDefinition.input.name = meta.properties["input.name"];
|
|
1883
|
-
}
|
|
1884
|
-
}
|
|
1885
|
-
if (isSetString(meta.properties.output)) {
|
|
1886
|
-
typeDefinition.output = meta.properties.output;
|
|
1887
|
-
}
|
|
1888
|
-
return typeDefinition;
|
|
1889
|
-
}
|
|
1890
|
-
return null;
|
|
1891
|
-
}).filter(Boolean);
|
|
1892
|
-
result.#log(LogLevelLabel.DEBUG, `Loaded ${entry.length} entry type definitions from VFS metadata.`);
|
|
1893
|
-
context.entry = entry;
|
|
1894
|
-
} else {
|
|
1895
|
-
result.#log(LogLevelLabel.DEBUG, "No previously stored metadata records were found on the local system.");
|
|
1896
|
-
}
|
|
1897
1889
|
} else {
|
|
1898
1890
|
const message = new $.Message();
|
|
1899
1891
|
result = new _VirtualFileSystem(context, message.initRoot(FileSystem));
|
|
@@ -1924,11 +1916,11 @@ var VirtualFileSystem = class _VirtualFileSystem {
|
|
|
1924
1916
|
}
|
|
1925
1917
|
let metadata;
|
|
1926
1918
|
if (fs._hasMetadata()) {
|
|
1927
|
-
metadata = fs.metadata.find((meta) => meta.id === (id?.id ?? file.path));
|
|
1919
|
+
metadata = fs.metadata.find((meta) => meta.id === result.#normalizeId(id?.id ?? file.path));
|
|
1928
1920
|
}
|
|
1929
1921
|
result.writeSync(file.path, file.code, {
|
|
1930
1922
|
meta: {
|
|
1931
|
-
id: id?.id
|
|
1923
|
+
id: result.#normalizeId(id?.id ?? metadata?.id ?? file.path),
|
|
1932
1924
|
type: metadata?.type,
|
|
1933
1925
|
properties: metadata?._hasProperties() ? metadata?.properties.values().reduce((ret, kvp) => {
|
|
1934
1926
|
ret[kvp.key] = kvp.value;
|
|
@@ -1940,37 +1932,6 @@ var VirtualFileSystem = class _VirtualFileSystem {
|
|
|
1940
1932
|
}
|
|
1941
1933
|
});
|
|
1942
1934
|
}
|
|
1943
|
-
if (result.#metadata && Object.keys(result.#metadata).length > 0) {
|
|
1944
|
-
result.#log(LogLevelLabel.DEBUG, `Preparing to load ${Object.keys(result.#metadata).length} previously stored metadata records...`);
|
|
1945
|
-
const entry = Object.entries(result.#metadata).filter(([, meta]) => meta && meta.type === "entry").map(([path, meta]) => {
|
|
1946
|
-
if (meta.properties) {
|
|
1947
|
-
const typeDefinition = {
|
|
1948
|
-
file: path
|
|
1949
|
-
};
|
|
1950
|
-
if (isSetString(meta.properties.name)) {
|
|
1951
|
-
typeDefinition.name = meta.properties.name;
|
|
1952
|
-
}
|
|
1953
|
-
if (isSetString(meta.properties["input.file"]) || isSetString(meta.properties["input.name"])) {
|
|
1954
|
-
typeDefinition.input ??= {};
|
|
1955
|
-
if (isSetString(meta.properties["input.file"])) {
|
|
1956
|
-
typeDefinition.input.file = meta.properties["input.file"];
|
|
1957
|
-
}
|
|
1958
|
-
if (isSetString(meta.properties["input.name"])) {
|
|
1959
|
-
typeDefinition.input.name = meta.properties["input.name"];
|
|
1960
|
-
}
|
|
1961
|
-
}
|
|
1962
|
-
if (isSetString(meta.properties.output)) {
|
|
1963
|
-
typeDefinition.output = meta.properties.output;
|
|
1964
|
-
}
|
|
1965
|
-
return typeDefinition;
|
|
1966
|
-
}
|
|
1967
|
-
return null;
|
|
1968
|
-
}).filter(Boolean);
|
|
1969
|
-
result.#log(LogLevelLabel.DEBUG, `Loaded ${entry.length} entry type definitions from VFS metadata.`);
|
|
1970
|
-
context.entry = entry;
|
|
1971
|
-
} else {
|
|
1972
|
-
result.#log(LogLevelLabel.DEBUG, "No previously stored metadata records were found on the local system.");
|
|
1973
|
-
}
|
|
1974
1935
|
} else {
|
|
1975
1936
|
const message = new $.Message();
|
|
1976
1937
|
result = new _VirtualFileSystem(context, message.initRoot(FileSystem));
|
|
@@ -2107,20 +2068,6 @@ var VirtualFileSystem = class _VirtualFileSystem {
|
|
|
2107
2068
|
};
|
|
2108
2069
|
return ret;
|
|
2109
2070
|
}, {});
|
|
2110
|
-
if (context.config.skipCache !== true) {
|
|
2111
|
-
Object.entries(this.#metadata).filter(([, value]) => value.type === "entry").forEach(([id, value]) => {
|
|
2112
|
-
this.#context.entry ??= [];
|
|
2113
|
-
this.#context.entry.push({
|
|
2114
|
-
file: id,
|
|
2115
|
-
name: value.properties.name,
|
|
2116
|
-
output: value.properties.output,
|
|
2117
|
-
input: value.properties["input.file"] ? {
|
|
2118
|
-
file: value.properties["input.file"],
|
|
2119
|
-
name: value.properties["input.name"]
|
|
2120
|
-
} : void 0
|
|
2121
|
-
});
|
|
2122
|
-
});
|
|
2123
|
-
}
|
|
2124
2071
|
}
|
|
2125
2072
|
this.#ids = {};
|
|
2126
2073
|
this.#paths = {};
|
|
@@ -2838,9 +2785,7 @@ var PowerlinesContext = class _PowerlinesContext {
|
|
|
2838
2785
|
*
|
|
2839
2786
|
* @internal
|
|
2840
2787
|
*/
|
|
2841
|
-
#internal = {
|
|
2842
|
-
entry: []
|
|
2843
|
-
};
|
|
2788
|
+
#internal = {};
|
|
2844
2789
|
#workspaceConfig;
|
|
2845
2790
|
#checksum = null;
|
|
2846
2791
|
#buildId = uuid();
|
|
@@ -2961,13 +2906,8 @@ var PowerlinesContext = class _PowerlinesContext {
|
|
|
2961
2906
|
* The resolved entry type definitions for the project
|
|
2962
2907
|
*/
|
|
2963
2908
|
get entry() {
|
|
2964
|
-
|
|
2965
|
-
|
|
2966
|
-
/**
|
|
2967
|
-
* Sets the resolved entry type definitions for the project
|
|
2968
|
-
*/
|
|
2969
|
-
set entry(value) {
|
|
2970
|
-
this.$$internal.entry = value;
|
|
2909
|
+
const entry = this._entry;
|
|
2910
|
+
return resolveEntriesSync(this, !entry || entry.length === 0 ? toArray(this.config.entry) : entry);
|
|
2971
2911
|
}
|
|
2972
2912
|
/**
|
|
2973
2913
|
* The TypeScript configuration parsed from the tsconfig file
|
|
@@ -3167,6 +3107,35 @@ var PowerlinesContext = class _PowerlinesContext {
|
|
|
3167
3107
|
return this.#requestCache;
|
|
3168
3108
|
}
|
|
3169
3109
|
/**
|
|
3110
|
+
* The entry points that exist in the Powerlines virtual file system
|
|
3111
|
+
*/
|
|
3112
|
+
get _entry() {
|
|
3113
|
+
return Object.entries(this.fs.metadata).filter(([, meta]) => meta && meta.type === "entry").map(([path, meta]) => {
|
|
3114
|
+
if (meta.properties) {
|
|
3115
|
+
const typeDefinition = {
|
|
3116
|
+
file: path
|
|
3117
|
+
};
|
|
3118
|
+
if (isSetString(meta.properties.name)) {
|
|
3119
|
+
typeDefinition.name = meta.properties.name;
|
|
3120
|
+
}
|
|
3121
|
+
if (isSetString(meta.properties["input.file"]) || isSetString(meta.properties["input.name"])) {
|
|
3122
|
+
typeDefinition.input ??= {};
|
|
3123
|
+
if (isSetString(meta.properties["input.file"])) {
|
|
3124
|
+
typeDefinition.input.file = meta.properties["input.file"];
|
|
3125
|
+
}
|
|
3126
|
+
if (isSetString(meta.properties["input.name"])) {
|
|
3127
|
+
typeDefinition.input.name = meta.properties["input.name"];
|
|
3128
|
+
}
|
|
3129
|
+
}
|
|
3130
|
+
if (isSetString(meta.properties.output)) {
|
|
3131
|
+
typeDefinition.output = meta.properties.output;
|
|
3132
|
+
}
|
|
3133
|
+
return typeDefinition;
|
|
3134
|
+
}
|
|
3135
|
+
return void 0;
|
|
3136
|
+
}).filter(Boolean);
|
|
3137
|
+
}
|
|
3138
|
+
/**
|
|
3170
3139
|
* A function to perform HTTP fetch requests
|
|
3171
3140
|
*
|
|
3172
3141
|
* @remarks
|
|
@@ -3424,14 +3393,6 @@ var PowerlinesContext = class _PowerlinesContext {
|
|
|
3424
3393
|
*/
|
|
3425
3394
|
async emitEntry(code, path, options = {}) {
|
|
3426
3395
|
const entryPath = appendPath(replacePath(replacePath(replacePath(path, this.entryPath), this.config.projectRoot), this.workspaceConfig.workspaceRoot), this.entryPath);
|
|
3427
|
-
if (this.$$internal.entry) {
|
|
3428
|
-
this.$$internal.entry.push({
|
|
3429
|
-
name: options.name,
|
|
3430
|
-
file: entryPath,
|
|
3431
|
-
input: options.input,
|
|
3432
|
-
output: options.output
|
|
3433
|
-
});
|
|
3434
|
-
}
|
|
3435
3396
|
return this.emit(code, entryPath, defu6({
|
|
3436
3397
|
meta: {
|
|
3437
3398
|
type: "entry",
|
|
@@ -3456,14 +3417,6 @@ var PowerlinesContext = class _PowerlinesContext {
|
|
|
3456
3417
|
*/
|
|
3457
3418
|
emitEntrySync(code, path, options = {}) {
|
|
3458
3419
|
const entryPath = appendPath(replacePath(replacePath(replacePath(path, this.entryPath), this.config.projectRoot), this.workspaceConfig.workspaceRoot), this.entryPath);
|
|
3459
|
-
if (this.$$internal.entry) {
|
|
3460
|
-
this.$$internal.entry.push({
|
|
3461
|
-
name: options?.name,
|
|
3462
|
-
file: entryPath,
|
|
3463
|
-
input: options?.input,
|
|
3464
|
-
output: options?.output
|
|
3465
|
-
});
|
|
3466
|
-
}
|
|
3467
3420
|
return this.emitSync(code, entryPath, defu6({
|
|
3468
3421
|
meta: {
|
|
3469
3422
|
type: "entry",
|
|
@@ -4413,14 +4366,14 @@ var PowerlinesAPI = class _PowerlinesAPI {
|
|
|
4413
4366
|
const api = new _PowerlinesAPI(await PowerlinesAPIContext.from(workspaceRoot, config));
|
|
4414
4367
|
api.#context.$$internal = {
|
|
4415
4368
|
api,
|
|
4416
|
-
addPlugin: api.#addPlugin.bind(api)
|
|
4417
|
-
entry: []
|
|
4369
|
+
addPlugin: api.#addPlugin.bind(api)
|
|
4418
4370
|
};
|
|
4371
|
+
api.context.info(`\u{1F50C} The Powerlines v${package_default.version} engine has started`);
|
|
4419
4372
|
for (const plugin of api.context.config.plugins ?? []) {
|
|
4420
4373
|
await api.#addPlugin(plugin);
|
|
4421
4374
|
}
|
|
4422
4375
|
if (api.context.plugins.length === 0) {
|
|
4423
|
-
api.context.
|
|
4376
|
+
api.context.warn("No Powerlines plugins were specified in the options. Please ensure this is correct, as it is generally not recommended.");
|
|
4424
4377
|
}
|
|
4425
4378
|
const pluginConfig = await api.callHook("config", {
|
|
4426
4379
|
environment: await api.context.getEnvironment(),
|
|
@@ -4443,11 +4396,11 @@ var PowerlinesAPI = class _PowerlinesAPI {
|
|
|
4443
4396
|
async prepare(inlineConfig = {
|
|
4444
4397
|
command: "prepare"
|
|
4445
4398
|
}) {
|
|
4446
|
-
this.context.
|
|
4447
|
-
this.context.
|
|
4399
|
+
this.context.info(" \u{1F3D7}\uFE0F Preparing the Powerlines project");
|
|
4400
|
+
this.context.debug(" \u2699\uFE0F Aggregating configuration options for the Powerlines project");
|
|
4448
4401
|
await this.context.withInlineConfig(inlineConfig);
|
|
4449
4402
|
await this.#executeEnvironments(async (context) => {
|
|
4450
|
-
context.
|
|
4403
|
+
context.debug(`Initializing the processing options for the Powerlines project.`);
|
|
4451
4404
|
await this.callHook("configResolved", {
|
|
4452
4405
|
environment: context,
|
|
4453
4406
|
order: "pre"
|
|
@@ -4457,7 +4410,7 @@ var PowerlinesAPI = class _PowerlinesAPI {
|
|
|
4457
4410
|
environment: context,
|
|
4458
4411
|
order: "normal"
|
|
4459
4412
|
});
|
|
4460
|
-
context.
|
|
4413
|
+
context.debug(`The configuration provided ${toArray(context.config.entry).length} entry point(s), Powerlines has found ${context.entry.length} entry files(s) for the ${context.config.title} project${context.entry.length > 0 && context.entry.length < 10 ? `:
|
|
4461
4414
|
${context.entry.map((entry) => `- ${entry.file}${entry.output ? ` -> ${entry.output}` : ""}`).join(" \n")}` : ""}.`);
|
|
4462
4415
|
await resolveTsconfig(context);
|
|
4463
4416
|
await installDependencies(context);
|
|
@@ -4465,7 +4418,7 @@ ${context.entry.map((entry) => `- ${entry.file}${entry.output ? ` -> ${entry.out
|
|
|
4465
4418
|
environment: context,
|
|
4466
4419
|
order: "post"
|
|
4467
4420
|
});
|
|
4468
|
-
context.
|
|
4421
|
+
context.trace(`Powerlines configuration has been resolved:
|
|
4469
4422
|
|
|
4470
4423
|
${formatLogMessage(context.config)}`);
|
|
4471
4424
|
if (!context.fs.existsSync(context.cachePath)) {
|
|
@@ -4483,11 +4436,11 @@ ${formatLogMessage(context.config)}`);
|
|
|
4483
4436
|
order: "normal"
|
|
4484
4437
|
});
|
|
4485
4438
|
if (context.config.output.dts !== false) {
|
|
4486
|
-
context.
|
|
4439
|
+
context.debug(`Preparing the TypeScript definitions for the Powerlines project.`);
|
|
4487
4440
|
if (context.fs.existsSync(context.dtsPath)) {
|
|
4488
4441
|
await context.fs.remove(context.dtsPath);
|
|
4489
4442
|
}
|
|
4490
|
-
context.
|
|
4443
|
+
context.debug("Transforming built-ins runtime modules files.");
|
|
4491
4444
|
const builtinFilePaths = await Promise.all((await context.getBuiltins()).map(async (file) => {
|
|
4492
4445
|
const result2 = await transformAsync(file.code.toString(), {
|
|
4493
4446
|
highlightCode: true,
|
|
@@ -4520,7 +4473,7 @@ ${formatLogMessage(context.config)}`);
|
|
|
4520
4473
|
context.warn(`File ID is missing for a built-in runtime file at ${file.path}.`);
|
|
4521
4474
|
file.id = replacePath(replacePath(file.path, context.workspaceConfig.workspaceRoot), context.builtinsPath);
|
|
4522
4475
|
}
|
|
4523
|
-
context.
|
|
4476
|
+
context.trace(`Writing transformed built-in runtime file ${file.id}.`);
|
|
4524
4477
|
await context.emitBuiltin(result2.code, file.id);
|
|
4525
4478
|
return file.path;
|
|
4526
4479
|
}));
|
|
@@ -4539,9 +4492,9 @@ ${formatLogMessage(context.config)}`);
|
|
|
4539
4492
|
[]
|
|
4540
4493
|
// [joinPaths(typescriptPath, "lib", "lib.esnext.full.d.ts")]
|
|
4541
4494
|
);
|
|
4542
|
-
context.
|
|
4495
|
+
context.debug("Parsing TypeScript configuration for the Powerlines project.");
|
|
4543
4496
|
let types = await emitTypes(context, files);
|
|
4544
|
-
context.
|
|
4497
|
+
context.debug(`Generating TypeScript declaration file ${context.dtsPath}.`);
|
|
4545
4498
|
const directives = [];
|
|
4546
4499
|
const asNextParam = /* @__PURE__ */ __name((previousResult) => isObject(previousResult) ? previousResult.code : previousResult, "asNextParam");
|
|
4547
4500
|
let result = await this.callHook("types", {
|
|
@@ -4618,7 +4571,7 @@ ${formatTypes(types)}
|
|
|
4618
4571
|
if (!context.tsconfig) {
|
|
4619
4572
|
throw new Error("Failed to parse the TypeScript configuration file.");
|
|
4620
4573
|
}
|
|
4621
|
-
this.context.
|
|
4574
|
+
this.context.debug("Formatting files generated during the prepare step.");
|
|
4622
4575
|
await Promise.all([
|
|
4623
4576
|
formatFolder(context, context.builtinsPath),
|
|
4624
4577
|
formatFolder(context, context.entryPath)
|
|
@@ -4630,7 +4583,7 @@ ${formatTypes(types)}
|
|
|
4630
4583
|
await writeMetaFile(context);
|
|
4631
4584
|
context.persistedMeta = context.meta;
|
|
4632
4585
|
});
|
|
4633
|
-
this.context.
|
|
4586
|
+
this.context.info("\u2714 Powerlines preparation has completed successfully");
|
|
4634
4587
|
}
|
|
4635
4588
|
/**
|
|
4636
4589
|
* Create a new Powerlines project
|
|
@@ -4642,17 +4595,17 @@ ${formatTypes(types)}
|
|
|
4642
4595
|
* @returns A promise that resolves when the project has been created
|
|
4643
4596
|
*/
|
|
4644
4597
|
async new(inlineConfig) {
|
|
4645
|
-
this.context.
|
|
4598
|
+
this.context.info("\u{1F195} Creating a new Powerlines project");
|
|
4646
4599
|
await this.prepare(inlineConfig);
|
|
4647
4600
|
await this.#executeEnvironments(async (context) => {
|
|
4648
|
-
context.
|
|
4601
|
+
context.debug("Initializing the processing options for the Powerlines project.");
|
|
4649
4602
|
await this.callHook("new", {
|
|
4650
4603
|
environment: context,
|
|
4651
4604
|
order: "pre"
|
|
4652
4605
|
});
|
|
4653
4606
|
const files = await listFiles(joinPaths$1(context.powerlinesPath, "files/common/**/*.hbs"));
|
|
4654
4607
|
for (const file of files) {
|
|
4655
|
-
context.
|
|
4608
|
+
context.trace(`Adding template file to project: ${file}`);
|
|
4656
4609
|
const template = Handlebars.compile(file);
|
|
4657
4610
|
await context.fs.write(joinPaths$1(context.config.projectRoot, file.replace(".hbs", "")), template(context));
|
|
4658
4611
|
}
|
|
@@ -4663,14 +4616,14 @@ ${formatTypes(types)}
|
|
|
4663
4616
|
if (context.config.projectType === "application") {
|
|
4664
4617
|
const files2 = await listFiles(joinPaths$1(context.powerlinesPath, "files/application/**/*.hbs"));
|
|
4665
4618
|
for (const file of files2) {
|
|
4666
|
-
context.
|
|
4619
|
+
context.trace(`Adding application template file: ${file}`);
|
|
4667
4620
|
const template = Handlebars.compile(file);
|
|
4668
4621
|
await context.fs.write(joinPaths$1(context.config.projectRoot, file.replace(".hbs", "")), template(context));
|
|
4669
4622
|
}
|
|
4670
4623
|
} else {
|
|
4671
4624
|
const files2 = await listFiles(joinPaths$1(context.powerlinesPath, "files/library/**/*.hbs"));
|
|
4672
4625
|
for (const file of files2) {
|
|
4673
|
-
context.
|
|
4626
|
+
context.trace(`Adding library template file: ${file}`);
|
|
4674
4627
|
const template = Handlebars.compile(file);
|
|
4675
4628
|
await context.fs.write(joinPaths$1(context.config.projectRoot, file.replace(".hbs", "")), template(context));
|
|
4676
4629
|
}
|
|
@@ -4680,7 +4633,7 @@ ${formatTypes(types)}
|
|
|
4680
4633
|
order: "post"
|
|
4681
4634
|
});
|
|
4682
4635
|
});
|
|
4683
|
-
this.context.
|
|
4636
|
+
this.context.debug("\u2714 Powerlines new command completed successfully");
|
|
4684
4637
|
}
|
|
4685
4638
|
/**
|
|
4686
4639
|
* Clean any previously prepared artifacts
|
|
@@ -4694,10 +4647,10 @@ ${formatTypes(types)}
|
|
|
4694
4647
|
async clean(inlineConfig = {
|
|
4695
4648
|
command: "clean"
|
|
4696
4649
|
}) {
|
|
4697
|
-
this.context.
|
|
4650
|
+
this.context.info("\u{1F9F9} Cleaning the previous Powerlines artifacts");
|
|
4698
4651
|
await this.prepare(inlineConfig);
|
|
4699
4652
|
await this.#executeEnvironments(async (context) => {
|
|
4700
|
-
|
|
4653
|
+
context.debug("Cleaning the project's dist and artifacts directories.");
|
|
4701
4654
|
await context.fs.remove(joinPaths$1(context.workspaceConfig.workspaceRoot, context.config.output.buildPath));
|
|
4702
4655
|
await context.fs.remove(joinPaths$1(context.workspaceConfig.workspaceRoot, context.config.projectRoot, context.config.output.artifactsPath));
|
|
4703
4656
|
await this.callHook("clean", {
|
|
@@ -4705,7 +4658,7 @@ ${formatTypes(types)}
|
|
|
4705
4658
|
sequential: false
|
|
4706
4659
|
});
|
|
4707
4660
|
});
|
|
4708
|
-
this.context.
|
|
4661
|
+
this.context.debug("\u2714 Powerlines cleaning completed successfully");
|
|
4709
4662
|
}
|
|
4710
4663
|
/**
|
|
4711
4664
|
* Lint the project
|
|
@@ -4716,7 +4669,7 @@ ${formatTypes(types)}
|
|
|
4716
4669
|
async lint(inlineConfig = {
|
|
4717
4670
|
command: "lint"
|
|
4718
4671
|
}) {
|
|
4719
|
-
this.context.
|
|
4672
|
+
this.context.info("\u{1F4CB} Linting the Powerlines project");
|
|
4720
4673
|
await this.prepare(inlineConfig);
|
|
4721
4674
|
await this.#executeEnvironments(async (context) => {
|
|
4722
4675
|
if (context.config.lint !== false) {
|
|
@@ -4726,7 +4679,7 @@ ${formatTypes(types)}
|
|
|
4726
4679
|
});
|
|
4727
4680
|
}
|
|
4728
4681
|
});
|
|
4729
|
-
this.context.
|
|
4682
|
+
this.context.debug("\u2714 Powerlines linting completed successfully");
|
|
4730
4683
|
}
|
|
4731
4684
|
/**
|
|
4732
4685
|
* Build the project
|
|
@@ -4740,7 +4693,7 @@ ${formatTypes(types)}
|
|
|
4740
4693
|
async build(inlineConfig = {
|
|
4741
4694
|
command: "build"
|
|
4742
4695
|
}) {
|
|
4743
|
-
this.context.
|
|
4696
|
+
this.context.info("\u{1F4E6} Building the Powerlines project");
|
|
4744
4697
|
await this.prepare(inlineConfig);
|
|
4745
4698
|
if (this.context.config.singleBuild) {
|
|
4746
4699
|
await this.#handleBuild(await this.#context.toEnvironment());
|
|
@@ -4749,7 +4702,7 @@ ${formatTypes(types)}
|
|
|
4749
4702
|
await this.#handleBuild(context);
|
|
4750
4703
|
});
|
|
4751
4704
|
}
|
|
4752
|
-
this.context.
|
|
4705
|
+
this.context.debug("\u2714 Powerlines build completed successfully");
|
|
4753
4706
|
}
|
|
4754
4707
|
/**
|
|
4755
4708
|
* Prepare the documentation for the project
|
|
@@ -4760,10 +4713,10 @@ ${formatTypes(types)}
|
|
|
4760
4713
|
async docs(inlineConfig = {
|
|
4761
4714
|
command: "docs"
|
|
4762
4715
|
}) {
|
|
4763
|
-
this.context.
|
|
4716
|
+
this.context.info("\u{1F4D3} Generating documentation for the Powerlines project");
|
|
4764
4717
|
await this.prepare(inlineConfig);
|
|
4765
4718
|
await this.#executeEnvironments(async (context) => {
|
|
4766
|
-
context.
|
|
4719
|
+
context.debug("Writing documentation for the Powerlines project artifacts.");
|
|
4767
4720
|
await this.prepare(inlineConfig);
|
|
4768
4721
|
await this.#executeEnvironments(async (context2) => {
|
|
4769
4722
|
await this.callHook("docs", {
|
|
@@ -4771,7 +4724,7 @@ ${formatTypes(types)}
|
|
|
4771
4724
|
});
|
|
4772
4725
|
});
|
|
4773
4726
|
});
|
|
4774
|
-
this
|
|
4727
|
+
this.context.debug("\u2714 Powerlines documentation generation completed successfully");
|
|
4775
4728
|
}
|
|
4776
4729
|
/**
|
|
4777
4730
|
* Deploy the project source code
|
|
@@ -4784,14 +4737,14 @@ ${formatTypes(types)}
|
|
|
4784
4737
|
async deploy(inlineConfig = {
|
|
4785
4738
|
command: "deploy"
|
|
4786
4739
|
}) {
|
|
4787
|
-
this.context.
|
|
4740
|
+
this.context.info("\u{1F680} Deploying the Powerlines project");
|
|
4788
4741
|
await this.prepare(inlineConfig);
|
|
4789
4742
|
await this.#executeEnvironments(async (context) => {
|
|
4790
4743
|
await this.callHook("deploy", {
|
|
4791
4744
|
environment: context
|
|
4792
4745
|
});
|
|
4793
4746
|
});
|
|
4794
|
-
this.context.
|
|
4747
|
+
this.context.debug("\u2714 Powerlines deploy completed successfully");
|
|
4795
4748
|
}
|
|
4796
4749
|
/**
|
|
4797
4750
|
* Finalization process
|
|
@@ -4802,14 +4755,14 @@ ${formatTypes(types)}
|
|
|
4802
4755
|
* @returns A promise that resolves when the finalization process has completed
|
|
4803
4756
|
*/
|
|
4804
4757
|
async finalize() {
|
|
4805
|
-
this.context.
|
|
4758
|
+
this.context.info("\u{1F3C1} Powerlines finalization processes started");
|
|
4806
4759
|
await this.#executeEnvironments(async (context) => {
|
|
4807
4760
|
await this.callHook("finalize", {
|
|
4808
4761
|
environment: context
|
|
4809
4762
|
});
|
|
4810
4763
|
await context.fs.dispose();
|
|
4811
4764
|
});
|
|
4812
|
-
this.context.
|
|
4765
|
+
this.context.debug("\u2714 Powerlines finalization completed successfully");
|
|
4813
4766
|
}
|
|
4814
4767
|
/**
|
|
4815
4768
|
* Invokes the configured plugin hooks
|
|
@@ -4850,12 +4803,12 @@ ${formatTypes(types)}
|
|
|
4850
4803
|
const sourcePath = appendPath(context.config.output.buildPath, context.workspaceConfig.workspaceRoot);
|
|
4851
4804
|
const destinationPath = joinPaths$1(appendPath(context.config.output.outputPath, context.workspaceConfig.workspaceRoot), "dist");
|
|
4852
4805
|
if (context.fs.existsSync(sourcePath) && sourcePath !== destinationPath) {
|
|
4853
|
-
context.
|
|
4806
|
+
context.debug(`Copying build output files from project's build directory (${context.config.output.buildPath}) to the workspace's output directory (${context.config.output.outputPath}).`);
|
|
4854
4807
|
await context.fs.copy(sourcePath, destinationPath);
|
|
4855
4808
|
}
|
|
4856
4809
|
}
|
|
4857
4810
|
await Promise.all(context.config.output.assets.map(async (asset) => {
|
|
4858
|
-
context.
|
|
4811
|
+
context.trace(`Copying asset(s): ${chalk5.redBright(context.workspaceConfig.workspaceRoot === asset.input ? asset.glob : joinPaths$1(replacePath(asset.input, context.workspaceConfig.workspaceRoot), asset.glob))} -> ${chalk5.greenBright(joinPaths$1(replacePath(asset.output, context.workspaceConfig.workspaceRoot), asset.glob))} ${Array.isArray(asset.ignore) && asset.ignore.length > 0 ? ` (ignoring: ${asset.ignore.map((i) => chalk5.yellowBright(i)).join(", ")})` : ""}`);
|
|
4859
4812
|
await context.fs.copy(asset, asset.output);
|
|
4860
4813
|
}));
|
|
4861
4814
|
await this.callHook("build", {
|
|
@@ -4870,12 +4823,12 @@ ${formatTypes(types)}
|
|
|
4870
4823
|
*/
|
|
4871
4824
|
async #getEnvironments() {
|
|
4872
4825
|
if (!this.context.config.environments || Object.keys(this.context.config.environments).length <= 1) {
|
|
4873
|
-
this.context.
|
|
4826
|
+
this.context.debug("No environments are configured for this Powerlines project. Using the default environment.");
|
|
4874
4827
|
return [
|
|
4875
4828
|
await this.context.getEnvironment()
|
|
4876
4829
|
];
|
|
4877
4830
|
}
|
|
4878
|
-
this.context.
|
|
4831
|
+
this.context.debug(`Found ${Object.keys(this.context.config.environments).length} configured environment(s) for this Powerlines project.`);
|
|
4879
4832
|
return (await Promise.all(Object.entries(this.context.config.environments).map(async ([name, config]) => {
|
|
4880
4833
|
const environment = await this.context.getEnvironmentSafe(name);
|
|
4881
4834
|
if (!environment) {
|
|
@@ -4911,7 +4864,7 @@ ${formatTypes(types)}
|
|
|
4911
4864
|
return;
|
|
4912
4865
|
}
|
|
4913
4866
|
for (const plugin of result) {
|
|
4914
|
-
this.context.
|
|
4867
|
+
this.context.debug(`Successfully initialized the ${chalk5.bold.cyanBright(plugin.name)} plugin`);
|
|
4915
4868
|
await this.context.addPlugin(plugin);
|
|
4916
4869
|
}
|
|
4917
4870
|
}
|
|
@@ -4998,10 +4951,10 @@ Please ensure the value is one of the following:
|
|
|
4998
4951
|
const result = [];
|
|
4999
4952
|
for (const plugin of plugins) {
|
|
5000
4953
|
if (checkDedupe(plugin, this.context.plugins)) {
|
|
5001
|
-
this.context.
|
|
4954
|
+
this.context.trace(`Duplicate ${chalk5.bold.cyanBright(plugin.name)} plugin dependency detected - Skipping initialization.`);
|
|
5002
4955
|
} else {
|
|
5003
4956
|
result.push(plugin);
|
|
5004
|
-
this.context.
|
|
4957
|
+
this.context.trace(`Initializing the ${chalk5.bold.cyanBright(plugin.name)} plugin...`);
|
|
5005
4958
|
}
|
|
5006
4959
|
}
|
|
5007
4960
|
return result;
|
|
@@ -5018,12 +4971,12 @@ Please ensure the value is one of the following:
|
|
|
5018
4971
|
]
|
|
5019
4972
|
});
|
|
5020
4973
|
if (!isInstalled && this.context.config.skipInstalls !== true) {
|
|
5021
|
-
this.#context.
|
|
4974
|
+
this.#context.warn(`The plugin package "${pluginPath}" is not installed. It will be installed automatically.`);
|
|
5022
4975
|
const result = await install(pluginPath, {
|
|
5023
4976
|
cwd: this.context.config.projectRoot
|
|
5024
4977
|
});
|
|
5025
4978
|
if (isNumber(result.exitCode) && result.exitCode > 0) {
|
|
5026
|
-
this.#context.
|
|
4979
|
+
this.#context.error(result.stderr);
|
|
5027
4980
|
throw new Error(`An error occurred while installing the build plugin package "${pluginPath}" `);
|
|
5028
4981
|
}
|
|
5029
4982
|
}
|