@powerlines/plugin-crypto 0.10.95 → 0.10.97
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/dist/_virtual/rolldown_runtime.cjs +37 -1
- package/dist/_virtual/rolldown_runtime.mjs +29 -1
- package/dist/components/crypto.cjs +24 -10
- package/dist/components/crypto.mjs +24 -10
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.mjs +3 -1
- package/dist/deepkit/schemas/reflection.cjs +3998 -1
- package/dist/deepkit/schemas/reflection.mjs +3996 -1
- package/dist/deepkit/schemas/reflection2.cjs +4112 -1
- package/dist/deepkit/schemas/reflection2.mjs +4110 -1
- package/dist/deepkit/src/capnp.cjs +913 -1
- package/dist/deepkit/src/capnp.mjs +911 -1
- package/dist/deepkit/src/esbuild-plugin.cjs +47 -4
- package/dist/deepkit/src/esbuild-plugin.mjs +46 -4
- package/dist/deepkit/src/reflect-type.cjs +22 -1
- package/dist/deepkit/src/reflect-type.mjs +20 -1
- package/dist/deepkit/src/resolve-reflections.cjs +16 -1
- package/dist/deepkit/src/resolve-reflections.mjs +15 -1
- package/dist/deepkit/src/transformer.cjs +52 -1
- package/dist/deepkit/src/transformer.mjs +49 -1
- package/dist/deepkit/src/transpile.cjs +29 -1
- package/dist/deepkit/src/transpile.mjs +27 -1
- package/dist/deepkit/src/utilities.cjs +66 -1
- package/dist/deepkit/src/utilities.mjs +65 -1
- package/dist/deepkit/src/vendor/type-compiler/index.cjs +38 -1
- package/dist/deepkit/src/vendor/type-compiler/index.mjs +19 -1
- package/dist/deepkit/src/vendor/type.cjs +20 -1
- package/dist/deepkit/src/vendor/type.mjs +11 -1
- package/dist/index.cjs +46 -1
- package/dist/index.mjs +41 -1
- package/dist/plugin-alloy/src/core/components/output.cjs +38 -1
- package/dist/plugin-alloy/src/core/components/output.mjs +37 -1
- package/dist/plugin-alloy/src/core/contexts/context.cjs +11 -1
- package/dist/plugin-alloy/src/core/contexts/context.mjs +10 -1
- package/dist/plugin-alloy/src/index.cjs +90 -2
- package/dist/plugin-alloy/src/index.mjs +88 -2
- package/dist/plugin-alloy/src/types/components.d.mts +1 -1
- package/dist/plugin-alloy/src/types/plugin.d.cts +3 -3
- package/dist/plugin-alloy/src/types/plugin.d.mts +3 -3
- package/dist/plugin-automd/src/index.cjs +101 -1
- package/dist/plugin-automd/src/index.mjs +98 -1
- package/dist/plugin-babel/src/helpers/ast-utils.cjs +10 -1
- package/dist/plugin-babel/src/helpers/ast-utils.mjs +9 -1
- package/dist/plugin-babel/src/helpers/create-plugin.cjs +41 -1
- package/dist/plugin-babel/src/helpers/create-plugin.mjs +39 -1
- package/dist/plugin-babel/src/helpers/filters.cjs +23 -1
- package/dist/plugin-babel/src/helpers/filters.mjs +21 -1
- package/dist/plugin-babel/src/helpers/index.cjs +5 -1
- package/dist/plugin-babel/src/helpers/index.mjs +7 -1
- package/dist/plugin-babel/src/helpers/module-helpers.cjs +38 -1
- package/dist/plugin-babel/src/helpers/module-helpers.mjs +35 -1
- package/dist/plugin-babel/src/helpers/options.cjs +50 -1
- package/dist/plugin-babel/src/helpers/options.mjs +47 -1
- package/dist/plugin-babel/src/index.cjs +91 -1
- package/dist/plugin-babel/src/index.mjs +89 -1
- package/dist/plugin-env/src/babel/index.cjs +1 -1
- package/dist/plugin-env/src/babel/index.mjs +3 -1
- package/dist/plugin-env/src/babel/plugin.cjs +120 -4
- package/dist/plugin-env/src/babel/plugin.mjs +118 -4
- package/dist/plugin-env/src/components/docs.cjs +9 -1
- package/dist/plugin-env/src/components/docs.mjs +11 -1
- package/dist/plugin-env/src/components/env.cjs +349 -11
- package/dist/plugin-env/src/components/env.mjs +347 -9
- package/dist/plugin-env/src/components/index.cjs +2 -1
- package/dist/plugin-env/src/components/index.mjs +4 -1
- package/dist/plugin-env/src/helpers/automd-generator.cjs +22 -1
- package/dist/plugin-env/src/helpers/automd-generator.mjs +21 -1
- package/dist/plugin-env/src/helpers/create-reflection-resource.cjs +55 -1
- package/dist/plugin-env/src/helpers/create-reflection-resource.mjs +54 -1
- package/dist/plugin-env/src/helpers/index.cjs +6 -1
- package/dist/plugin-env/src/helpers/index.mjs +8 -1
- package/dist/plugin-env/src/helpers/load.cjs +83 -1
- package/dist/plugin-env/src/helpers/load.mjs +80 -1
- package/dist/plugin-env/src/helpers/persistence.cjs +200 -1
- package/dist/plugin-env/src/helpers/persistence.mjs +189 -1
- package/dist/plugin-env/src/helpers/reflect.cjs +125 -1
- package/dist/plugin-env/src/helpers/reflect.mjs +117 -1
- package/dist/plugin-env/src/helpers/source-file-env.cjs +24 -1
- package/dist/plugin-env/src/helpers/source-file-env.mjs +23 -1
- package/dist/plugin-env/src/helpers/template-helpers.cjs +2 -1
- package/dist/plugin-env/src/helpers/template-helpers.mjs +4 -1
- package/dist/plugin-env/src/index.cjs +167 -5
- package/dist/plugin-env/src/index.mjs +165 -5
- package/dist/powerlines/src/lib/build/esbuild.cjs +102 -14
- package/dist/powerlines/src/lib/build/esbuild.mjs +100 -14
- package/dist/powerlines/src/lib/entry.cjs +12 -1
- package/dist/powerlines/src/lib/entry.mjs +14 -1
- package/dist/powerlines/src/lib/logger.cjs +41 -1
- package/dist/powerlines/src/lib/logger.mjs +39 -1
- package/dist/powerlines/src/lib/utilities/bundle.cjs +35 -1
- package/dist/powerlines/src/lib/utilities/bundle.mjs +34 -1
- package/dist/powerlines/src/lib/utilities/file-header.cjs +19 -7
- package/dist/powerlines/src/lib/utilities/file-header.mjs +18 -7
- package/dist/powerlines/src/lib/utilities/resolve.cjs +30 -1
- package/dist/powerlines/src/lib/utilities/resolve.mjs +29 -1
- package/dist/powerlines/src/plugin-utils/paths.cjs +1 -1
- package/dist/powerlines/src/plugin-utils/paths.mjs +3 -1
- package/dist/powerlines/src/types/build.d.mts +2 -0
- package/dist/powerlines/src/types/config.d.mts +1 -1
- package/dist/powerlines/src/types/context.d.cts +43 -2
- package/dist/powerlines/src/types/context.d.mts +43 -2
- package/dist/powerlines/src/types/fs.d.cts +14 -0
- package/dist/powerlines/src/types/fs.d.mts +14 -0
- package/dist/powerlines/src/types/resolved.d.mts +1 -0
- package/dist/types/index.mjs +1 -1
- package/dist/types/plugin.mjs +1 -1
- package/package.json +6 -6
- package/dist/plugin-alloy/src/vendor/index.cjs +0 -1
- package/dist/plugin-alloy/src/vendor/index.d.cts +0 -7
- package/dist/plugin-alloy/src/vendor/index.d.mts +0 -7
- package/dist/plugin-alloy/src/vendor/index.mjs +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1 +1,46 @@
|
|
|
1
|
-
Object.defineProperty(exports
|
|
1
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
2
|
+
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
3
|
+
const require_index = require('./plugin-env/src/index.cjs');
|
|
4
|
+
const require_crypto = require('./components/crypto.cjs');
|
|
5
|
+
require('./components/index.cjs');
|
|
6
|
+
let __noble_ciphers_utils_js = require("@noble/ciphers/utils.js");
|
|
7
|
+
let defu = require("defu");
|
|
8
|
+
defu = require_rolldown_runtime.__toESM(defu);
|
|
9
|
+
let __storm_software_config_tools_types = require("@storm-software/config-tools/types");
|
|
10
|
+
|
|
11
|
+
//#region src/index.ts
|
|
12
|
+
/**
|
|
13
|
+
* A Powerlines plugin to assist in developing other Powerlines plugins.
|
|
14
|
+
*/
|
|
15
|
+
function plugin(options = {}) {
|
|
16
|
+
return [require_index.default(options.env), {
|
|
17
|
+
name: "crypto",
|
|
18
|
+
config() {
|
|
19
|
+
return { crypto: (0, defu.default)(options, { salt: `${(this.config.name ?? this.workspaceConfig?.name) || this.packageJson?.name}-application` }) };
|
|
20
|
+
},
|
|
21
|
+
configResolved() {
|
|
22
|
+
this.dependencies["@noble/ciphers"] = "^2.0.1";
|
|
23
|
+
this.dependencies["@noble/hashes"] = "^2.0.1";
|
|
24
|
+
this.config.crypto.salt ??= this.env.parsed.SALT;
|
|
25
|
+
if (!this.config.crypto.salt) {
|
|
26
|
+
this.log(__storm_software_config_tools_types.LogLevelLabel.WARN, `No salt provided to the Crypto plugin - a salt value will be generated automatically. Please note: It's highly recommended to provide a unique salt value via the \`salt\` plugin option or the \`SALT\` environment variable.`);
|
|
27
|
+
this.config.crypto.salt = (0, __noble_ciphers_utils_js.bytesToHex)((0, __noble_ciphers_utils_js.randomBytes)(12));
|
|
28
|
+
}
|
|
29
|
+
this.config.crypto.encryptionKey ??= this.env.parsed.ENCRYPTION_KEY;
|
|
30
|
+
if (!this.config.crypto.encryptionKey) {
|
|
31
|
+
this.log(__storm_software_config_tools_types.LogLevelLabel.WARN, `No encryption key provided to the Crypto plugin - a secure key will be generated automatically. Please note: it's highly recommended to provide a secure encryption key via the \`encryptionKey\` plugin option or the \`ENCRYPTION_KEY\` environment variable.`);
|
|
32
|
+
this.config.crypto.encryptionKey = (0, __noble_ciphers_utils_js.bytesToHex)((0, __noble_ciphers_utils_js.randomBytes)(32));
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
async prepare() {
|
|
36
|
+
this.log(__storm_software_config_tools_types.LogLevelLabel.TRACE, `Preparing the Crypto runtime artifacts for the Powerlines project.`);
|
|
37
|
+
await this.emitBuiltin(await Promise.resolve(require_crypto.cryptoModule(this)), "crypto", "crypto.ts");
|
|
38
|
+
}
|
|
39
|
+
}];
|
|
40
|
+
}
|
|
41
|
+
var src_default = plugin;
|
|
42
|
+
|
|
43
|
+
//#endregion
|
|
44
|
+
exports.cryptoModule = require_crypto.cryptoModule;
|
|
45
|
+
exports.default = src_default;
|
|
46
|
+
exports.plugin = plugin;
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1,41 @@
|
|
|
1
|
-
import
|
|
1
|
+
import src_default$1 from "./plugin-env/src/index.mjs";
|
|
2
|
+
import { cryptoModule } from "./components/crypto.mjs";
|
|
3
|
+
import "./components/index.mjs";
|
|
4
|
+
import { bytesToHex, randomBytes } from "@noble/ciphers/utils.js";
|
|
5
|
+
import defu from "defu";
|
|
6
|
+
import { LogLevelLabel } from "@storm-software/config-tools/types";
|
|
7
|
+
|
|
8
|
+
//#region src/index.ts
|
|
9
|
+
/**
|
|
10
|
+
* A Powerlines plugin to assist in developing other Powerlines plugins.
|
|
11
|
+
*/
|
|
12
|
+
function plugin(options = {}) {
|
|
13
|
+
return [src_default$1(options.env), {
|
|
14
|
+
name: "crypto",
|
|
15
|
+
config() {
|
|
16
|
+
return { crypto: defu(options, { salt: `${(this.config.name ?? this.workspaceConfig?.name) || this.packageJson?.name}-application` }) };
|
|
17
|
+
},
|
|
18
|
+
configResolved() {
|
|
19
|
+
this.dependencies["@noble/ciphers"] = "^2.0.1";
|
|
20
|
+
this.dependencies["@noble/hashes"] = "^2.0.1";
|
|
21
|
+
this.config.crypto.salt ??= this.env.parsed.SALT;
|
|
22
|
+
if (!this.config.crypto.salt) {
|
|
23
|
+
this.log(LogLevelLabel.WARN, `No salt provided to the Crypto plugin - a salt value will be generated automatically. Please note: It's highly recommended to provide a unique salt value via the \`salt\` plugin option or the \`SALT\` environment variable.`);
|
|
24
|
+
this.config.crypto.salt = bytesToHex(randomBytes(12));
|
|
25
|
+
}
|
|
26
|
+
this.config.crypto.encryptionKey ??= this.env.parsed.ENCRYPTION_KEY;
|
|
27
|
+
if (!this.config.crypto.encryptionKey) {
|
|
28
|
+
this.log(LogLevelLabel.WARN, `No encryption key provided to the Crypto plugin - a secure key will be generated automatically. Please note: it's highly recommended to provide a secure encryption key via the \`encryptionKey\` plugin option or the \`ENCRYPTION_KEY\` environment variable.`);
|
|
29
|
+
this.config.crypto.encryptionKey = bytesToHex(randomBytes(32));
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
async prepare() {
|
|
33
|
+
this.log(LogLevelLabel.TRACE, `Preparing the Crypto runtime artifacts for the Powerlines project.`);
|
|
34
|
+
await this.emitBuiltin(await Promise.resolve(cryptoModule(this)), "crypto", "crypto.ts");
|
|
35
|
+
}
|
|
36
|
+
}];
|
|
37
|
+
}
|
|
38
|
+
var src_default = plugin;
|
|
39
|
+
|
|
40
|
+
//#endregion
|
|
41
|
+
export { cryptoModule, src_default as default, plugin };
|
|
@@ -1 +1,38 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_rolldown_runtime = require('../../../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_context = require('../contexts/context.cjs');
|
|
3
|
+
let __alloy_js_core = require("@alloy-js/core");
|
|
4
|
+
let __stryke_path_replace = require("@stryke/path/replace");
|
|
5
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
|
+
|
|
7
|
+
//#region ../plugin-alloy/src/core/components/output.tsx
|
|
8
|
+
/**
|
|
9
|
+
* Output component for rendering the Powerlines plugin's output files via templates.
|
|
10
|
+
*/
|
|
11
|
+
function Output(props) {
|
|
12
|
+
const [{ children, context, meta, basePath }, rest] = (0, __alloy_js_core.splitProps)(props, [
|
|
13
|
+
"children",
|
|
14
|
+
"context",
|
|
15
|
+
"meta",
|
|
16
|
+
"basePath"
|
|
17
|
+
]);
|
|
18
|
+
const contextRef = (0, __alloy_js_core.ref)(context);
|
|
19
|
+
const metaRef = (0, __alloy_js_core.ref)(meta ?? {});
|
|
20
|
+
const basePathRef = (0, __alloy_js_core.computed)(() => basePath ? (0, __stryke_path_replace.replacePath)(basePath, contextRef.value.workspaceConfig.workspaceRoot) : contextRef.value.workspaceConfig.workspaceRoot);
|
|
21
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__alloy_js_core.Output, {
|
|
22
|
+
...rest,
|
|
23
|
+
basePath: basePathRef.value,
|
|
24
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_context.PowerlinesContext.Provider, {
|
|
25
|
+
value: {
|
|
26
|
+
ref: contextRef,
|
|
27
|
+
meta: metaRef
|
|
28
|
+
},
|
|
29
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__alloy_js_core.Show, {
|
|
30
|
+
when: Boolean(contextRef.value),
|
|
31
|
+
children
|
|
32
|
+
})
|
|
33
|
+
})
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
exports.Output = Output;
|
|
@@ -1 +1,37 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import { PowerlinesContext } from "../contexts/context.mjs";
|
|
2
|
+
import { Output, Show, computed, ref, splitProps } from "@alloy-js/core";
|
|
3
|
+
import { replacePath } from "@stryke/path/replace";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region ../plugin-alloy/src/core/components/output.tsx
|
|
7
|
+
/**
|
|
8
|
+
* Output component for rendering the Powerlines plugin's output files via templates.
|
|
9
|
+
*/
|
|
10
|
+
function Output$1(props) {
|
|
11
|
+
const [{ children, context, meta, basePath }, rest] = splitProps(props, [
|
|
12
|
+
"children",
|
|
13
|
+
"context",
|
|
14
|
+
"meta",
|
|
15
|
+
"basePath"
|
|
16
|
+
]);
|
|
17
|
+
const contextRef = ref(context);
|
|
18
|
+
const metaRef = ref(meta ?? {});
|
|
19
|
+
const basePathRef = computed(() => basePath ? replacePath(basePath, contextRef.value.workspaceConfig.workspaceRoot) : contextRef.value.workspaceConfig.workspaceRoot);
|
|
20
|
+
return /* @__PURE__ */ jsx(Output, {
|
|
21
|
+
...rest,
|
|
22
|
+
basePath: basePathRef.value,
|
|
23
|
+
children: /* @__PURE__ */ jsx(PowerlinesContext.Provider, {
|
|
24
|
+
value: {
|
|
25
|
+
ref: contextRef,
|
|
26
|
+
meta: metaRef
|
|
27
|
+
},
|
|
28
|
+
children: /* @__PURE__ */ jsx(Show, {
|
|
29
|
+
when: Boolean(contextRef.value),
|
|
30
|
+
children
|
|
31
|
+
})
|
|
32
|
+
})
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
//#endregion
|
|
37
|
+
export { Output$1 as Output };
|
|
@@ -1 +1,11 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_rolldown_runtime = require('../../../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
let __alloy_js_core = require("@alloy-js/core");
|
|
3
|
+
|
|
4
|
+
//#region ../plugin-alloy/src/core/contexts/context.ts
|
|
5
|
+
/**
|
|
6
|
+
* The Powerlines context used in template rendering.
|
|
7
|
+
*/
|
|
8
|
+
const PowerlinesContext = (0, __alloy_js_core.createNamedContext)("powerlines");
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
exports.PowerlinesContext = PowerlinesContext;
|
|
@@ -1 +1,10 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import { createNamedContext } from "@alloy-js/core";
|
|
2
|
+
|
|
3
|
+
//#region ../plugin-alloy/src/core/contexts/context.ts
|
|
4
|
+
/**
|
|
5
|
+
* The Powerlines context used in template rendering.
|
|
6
|
+
*/
|
|
7
|
+
const PowerlinesContext = createNamedContext("powerlines");
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
export { PowerlinesContext };
|
|
@@ -1,2 +1,90 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
1
|
+
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_output = require('./core/components/output.cjs');
|
|
3
|
+
let __alloy_js_core = require("@alloy-js/core");
|
|
4
|
+
let __alloy_js_rollup_plugin = require("@alloy-js/rollup-plugin");
|
|
5
|
+
__alloy_js_rollup_plugin = require_rolldown_runtime.__toESM(__alloy_js_rollup_plugin);
|
|
6
|
+
let __stryke_json_storm_json = require("@stryke/json/storm-json");
|
|
7
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
+
|
|
9
|
+
//#region ../plugin-alloy/src/index.tsx
|
|
10
|
+
/**
|
|
11
|
+
* Alloy-js plugin for Powerlines.
|
|
12
|
+
*
|
|
13
|
+
* @param options - The Alloy-js plugin user configuration options.
|
|
14
|
+
* @returns A Powerlines plugin that integrates Alloy-js transformations.
|
|
15
|
+
*/
|
|
16
|
+
const plugin = (options = {}) => {
|
|
17
|
+
return [{
|
|
18
|
+
name: "alloy:config",
|
|
19
|
+
config() {
|
|
20
|
+
return {
|
|
21
|
+
alloy: {
|
|
22
|
+
typescript: true,
|
|
23
|
+
...options
|
|
24
|
+
},
|
|
25
|
+
build: {
|
|
26
|
+
inputOptions: { transform: { jsx: {
|
|
27
|
+
runtime: "classic",
|
|
28
|
+
pragma: "Alloy.createElement",
|
|
29
|
+
importSource: "@alloy-js/core"
|
|
30
|
+
} } },
|
|
31
|
+
plugins: [(0, __alloy_js_rollup_plugin.default)()]
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
},
|
|
35
|
+
async configResolved() {
|
|
36
|
+
if (this.tsconfig.tsconfigJson.compilerOptions?.jsx !== "preserve" || this.tsconfig.tsconfigJson.compilerOptions?.jsxImportSource !== "@alloy-js/core") {
|
|
37
|
+
this.tsconfig.tsconfigJson.compilerOptions ??= {};
|
|
38
|
+
if (this.tsconfig.tsconfigJson.compilerOptions.jsx !== "preserve") this.tsconfig.tsconfigJson.compilerOptions.jsx = "preserve";
|
|
39
|
+
if (this.tsconfig.tsconfigJson.compilerOptions.jsxImportSource !== "@alloy-js/core") this.tsconfig.tsconfigJson.compilerOptions.jsxImportSource = "@alloy-js/core";
|
|
40
|
+
await this.fs.write(this.tsconfig.tsconfigFilePath, __stryke_json_storm_json.StormJSON.stringify(this.tsconfig.tsconfigJson));
|
|
41
|
+
}
|
|
42
|
+
this.dependencies["@alloy-js/core"] = "^0.22.0";
|
|
43
|
+
if (this.config.alloy?.typescript !== false) this.dependencies["@alloy-js/typescript"] = "^0.22.0";
|
|
44
|
+
if (this.config.alloy?.json === true) this.dependencies["@alloy-js/json"] = "^0.22.0";
|
|
45
|
+
if (this.config.alloy?.markdown === true) this.dependencies["@alloy-js/markdown"] = "^0.22.0";
|
|
46
|
+
}
|
|
47
|
+
}, {
|
|
48
|
+
name: "alloy:update-context",
|
|
49
|
+
configResolved: {
|
|
50
|
+
order: "pre",
|
|
51
|
+
async handler() {
|
|
52
|
+
this.render = async (children) => {
|
|
53
|
+
const meta = {};
|
|
54
|
+
await (0, __alloy_js_core.traverseOutput)(await (0, __alloy_js_core.renderAsync)(/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_output.Output, {
|
|
55
|
+
context: this,
|
|
56
|
+
meta,
|
|
57
|
+
basePath: this.workspaceConfig.workspaceRoot,
|
|
58
|
+
children
|
|
59
|
+
})), {
|
|
60
|
+
visitDirectory: (directory) => {
|
|
61
|
+
if (this.fs.existsSync(directory.path)) return;
|
|
62
|
+
this.fs.mkdirSync(directory.path);
|
|
63
|
+
},
|
|
64
|
+
visitFile: (file) => {
|
|
65
|
+
if ("contents" in file) {
|
|
66
|
+
const metadata = meta[file.path] ?? {};
|
|
67
|
+
if (metadata.kind === "builtin") {
|
|
68
|
+
if (!metadata.id) throw new Error(`Built-in file "${file.path}" is missing its ID in the render metadata.`);
|
|
69
|
+
this.emitBuiltinSync(file.contents, metadata.id, file.path, {
|
|
70
|
+
skipFormat: metadata.skipFormat,
|
|
71
|
+
storage: metadata.storage
|
|
72
|
+
});
|
|
73
|
+
} else if (metadata.kind === "entry") this.emitEntrySync(file.contents, file.path, {
|
|
74
|
+
skipFormat: metadata.skipFormat,
|
|
75
|
+
storage: metadata.storage,
|
|
76
|
+
...metadata.typeDefinition ?? {}
|
|
77
|
+
});
|
|
78
|
+
else this.emitSync(file.path, file.contents, metadata);
|
|
79
|
+
} else this.fs.copySync(file.sourcePath, file.path);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}];
|
|
86
|
+
};
|
|
87
|
+
var src_default = plugin;
|
|
88
|
+
|
|
89
|
+
//#endregion
|
|
90
|
+
exports.default = src_default;
|
|
@@ -1,2 +1,88 @@
|
|
|
1
|
-
import{
|
|
2
|
-
|
|
1
|
+
import { Output as Output$1 } from "./core/components/output.mjs";
|
|
2
|
+
import { renderAsync, traverseOutput } from "@alloy-js/core";
|
|
3
|
+
import alloy from "@alloy-js/rollup-plugin";
|
|
4
|
+
import { StormJSON } from "@stryke/json/storm-json";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
|
|
7
|
+
//#region ../plugin-alloy/src/index.tsx
|
|
8
|
+
/**
|
|
9
|
+
* Alloy-js plugin for Powerlines.
|
|
10
|
+
*
|
|
11
|
+
* @param options - The Alloy-js plugin user configuration options.
|
|
12
|
+
* @returns A Powerlines plugin that integrates Alloy-js transformations.
|
|
13
|
+
*/
|
|
14
|
+
const plugin = (options = {}) => {
|
|
15
|
+
return [{
|
|
16
|
+
name: "alloy:config",
|
|
17
|
+
config() {
|
|
18
|
+
return {
|
|
19
|
+
alloy: {
|
|
20
|
+
typescript: true,
|
|
21
|
+
...options
|
|
22
|
+
},
|
|
23
|
+
build: {
|
|
24
|
+
inputOptions: { transform: { jsx: {
|
|
25
|
+
runtime: "classic",
|
|
26
|
+
pragma: "Alloy.createElement",
|
|
27
|
+
importSource: "@alloy-js/core"
|
|
28
|
+
} } },
|
|
29
|
+
plugins: [alloy()]
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
},
|
|
33
|
+
async configResolved() {
|
|
34
|
+
if (this.tsconfig.tsconfigJson.compilerOptions?.jsx !== "preserve" || this.tsconfig.tsconfigJson.compilerOptions?.jsxImportSource !== "@alloy-js/core") {
|
|
35
|
+
this.tsconfig.tsconfigJson.compilerOptions ??= {};
|
|
36
|
+
if (this.tsconfig.tsconfigJson.compilerOptions.jsx !== "preserve") this.tsconfig.tsconfigJson.compilerOptions.jsx = "preserve";
|
|
37
|
+
if (this.tsconfig.tsconfigJson.compilerOptions.jsxImportSource !== "@alloy-js/core") this.tsconfig.tsconfigJson.compilerOptions.jsxImportSource = "@alloy-js/core";
|
|
38
|
+
await this.fs.write(this.tsconfig.tsconfigFilePath, StormJSON.stringify(this.tsconfig.tsconfigJson));
|
|
39
|
+
}
|
|
40
|
+
this.dependencies["@alloy-js/core"] = "^0.22.0";
|
|
41
|
+
if (this.config.alloy?.typescript !== false) this.dependencies["@alloy-js/typescript"] = "^0.22.0";
|
|
42
|
+
if (this.config.alloy?.json === true) this.dependencies["@alloy-js/json"] = "^0.22.0";
|
|
43
|
+
if (this.config.alloy?.markdown === true) this.dependencies["@alloy-js/markdown"] = "^0.22.0";
|
|
44
|
+
}
|
|
45
|
+
}, {
|
|
46
|
+
name: "alloy:update-context",
|
|
47
|
+
configResolved: {
|
|
48
|
+
order: "pre",
|
|
49
|
+
async handler() {
|
|
50
|
+
this.render = async (children) => {
|
|
51
|
+
const meta = {};
|
|
52
|
+
await traverseOutput(await renderAsync(/* @__PURE__ */ jsx(Output$1, {
|
|
53
|
+
context: this,
|
|
54
|
+
meta,
|
|
55
|
+
basePath: this.workspaceConfig.workspaceRoot,
|
|
56
|
+
children
|
|
57
|
+
})), {
|
|
58
|
+
visitDirectory: (directory) => {
|
|
59
|
+
if (this.fs.existsSync(directory.path)) return;
|
|
60
|
+
this.fs.mkdirSync(directory.path);
|
|
61
|
+
},
|
|
62
|
+
visitFile: (file) => {
|
|
63
|
+
if ("contents" in file) {
|
|
64
|
+
const metadata = meta[file.path] ?? {};
|
|
65
|
+
if (metadata.kind === "builtin") {
|
|
66
|
+
if (!metadata.id) throw new Error(`Built-in file "${file.path}" is missing its ID in the render metadata.`);
|
|
67
|
+
this.emitBuiltinSync(file.contents, metadata.id, file.path, {
|
|
68
|
+
skipFormat: metadata.skipFormat,
|
|
69
|
+
storage: metadata.storage
|
|
70
|
+
});
|
|
71
|
+
} else if (metadata.kind === "entry") this.emitEntrySync(file.contents, file.path, {
|
|
72
|
+
skipFormat: metadata.skipFormat,
|
|
73
|
+
storage: metadata.storage,
|
|
74
|
+
...metadata.typeDefinition ?? {}
|
|
75
|
+
});
|
|
76
|
+
else this.emitSync(file.path, file.contents, metadata);
|
|
77
|
+
} else this.fs.copySync(file.sourcePath, file.path);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}];
|
|
84
|
+
};
|
|
85
|
+
var src_default = plugin;
|
|
86
|
+
|
|
87
|
+
//#endregion
|
|
88
|
+
export { src_default as default };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { UserConfig } from "../../../powerlines/src/types/config.cjs";
|
|
2
2
|
import { ResolvedConfig } from "../../../powerlines/src/types/resolved.cjs";
|
|
3
3
|
import { PluginContext } from "../../../powerlines/src/types/context.cjs";
|
|
4
|
-
import {
|
|
4
|
+
import { Children, PrintTreeOptions } from "@alloy-js/core";
|
|
5
5
|
|
|
6
6
|
//#region ../plugin-alloy/src/types/plugin.d.ts
|
|
7
|
-
type AlloyPluginOptions = Partial<
|
|
7
|
+
type AlloyPluginOptions = Partial<PrintTreeOptions> & {
|
|
8
8
|
/**
|
|
9
9
|
* If true, the Alloy framework is used to generate Typescript output files.
|
|
10
10
|
*
|
|
@@ -31,7 +31,7 @@ type AlloyPluginResolvedConfig = ResolvedConfig & {
|
|
|
31
31
|
alloy: AlloyPluginOptions;
|
|
32
32
|
};
|
|
33
33
|
type AlloyPluginContext<TResolvedConfig extends AlloyPluginResolvedConfig = AlloyPluginResolvedConfig> = PluginContext<TResolvedConfig> & {
|
|
34
|
-
render: <TContext extends AlloyPluginContext>(this: TContext, children:
|
|
34
|
+
render: <TContext extends AlloyPluginContext>(this: TContext, children: Children) => Promise<void>;
|
|
35
35
|
};
|
|
36
36
|
//#endregion
|
|
37
37
|
export { AlloyPluginContext, AlloyPluginOptions, AlloyPluginResolvedConfig, AlloyPluginUserConfig };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { UserConfig } from "../../../powerlines/src/types/config.mjs";
|
|
2
2
|
import { ResolvedConfig } from "../../../powerlines/src/types/resolved.mjs";
|
|
3
3
|
import { PluginContext } from "../../../powerlines/src/types/context.mjs";
|
|
4
|
-
import {
|
|
4
|
+
import { Children, PrintTreeOptions } from "@alloy-js/core";
|
|
5
5
|
|
|
6
6
|
//#region ../plugin-alloy/src/types/plugin.d.ts
|
|
7
|
-
type AlloyPluginOptions = Partial<
|
|
7
|
+
type AlloyPluginOptions = Partial<PrintTreeOptions> & {
|
|
8
8
|
/**
|
|
9
9
|
* If true, the Alloy framework is used to generate Typescript output files.
|
|
10
10
|
*
|
|
@@ -31,7 +31,7 @@ type AlloyPluginResolvedConfig = ResolvedConfig & {
|
|
|
31
31
|
alloy: AlloyPluginOptions;
|
|
32
32
|
};
|
|
33
33
|
type AlloyPluginContext<TResolvedConfig extends AlloyPluginResolvedConfig = AlloyPluginResolvedConfig> = PluginContext<TResolvedConfig> & {
|
|
34
|
-
render: <TContext extends AlloyPluginContext>(this: TContext, children:
|
|
34
|
+
render: <TContext extends AlloyPluginContext>(this: TContext, children: Children) => Promise<void>;
|
|
35
35
|
};
|
|
36
36
|
//#endregion
|
|
37
37
|
export { AlloyPluginContext, AlloyPluginOptions, AlloyPluginResolvedConfig, AlloyPluginUserConfig };
|
|
@@ -1 +1,101 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
let __stryke_path_replace = require("@stryke/path/replace");
|
|
3
|
+
let __stryke_convert_to_array = require("@stryke/convert/to-array");
|
|
4
|
+
let __stryke_fs_is_file = require("@stryke/fs/is-file");
|
|
5
|
+
let __stryke_fs_list_files = require("@stryke/fs/list-files");
|
|
6
|
+
let __stryke_path_append = require("@stryke/path/append");
|
|
7
|
+
let __stryke_path_is_type = require("@stryke/path/is-type");
|
|
8
|
+
let __stryke_path_join_paths = require("@stryke/path/join-paths");
|
|
9
|
+
let automd = require("automd");
|
|
10
|
+
let c12 = require("c12");
|
|
11
|
+
let defu = require("defu");
|
|
12
|
+
defu = require_rolldown_runtime.__toESM(defu);
|
|
13
|
+
let markdown_toc = require("markdown-toc");
|
|
14
|
+
markdown_toc = require_rolldown_runtime.__toESM(markdown_toc);
|
|
15
|
+
|
|
16
|
+
//#region ../plugin-automd/src/index.ts
|
|
17
|
+
/**
|
|
18
|
+
* AutoMD Plugin
|
|
19
|
+
*
|
|
20
|
+
* @remarks
|
|
21
|
+
* A Powerlines plugin to use the AutoMD markdown transformer during the prepare task.
|
|
22
|
+
*
|
|
23
|
+
* @see https://automd.unjs.io/
|
|
24
|
+
*
|
|
25
|
+
* @param options - The plugin options.
|
|
26
|
+
* @returns A Powerlines plugin instance.
|
|
27
|
+
*/
|
|
28
|
+
const plugin = (options = {}) => {
|
|
29
|
+
return {
|
|
30
|
+
name: "automd",
|
|
31
|
+
async config() {
|
|
32
|
+
const config = await (0, automd.loadConfig)((0, __stryke_path_join_paths.joinPaths)(this.workspaceConfig.workspaceRoot, this.config.projectRoot), options);
|
|
33
|
+
if (!config.prefix || !Array.isArray(config.prefix)) config.prefix = (0, __stryke_convert_to_array.toArray)(config.prefix ?? []);
|
|
34
|
+
if (!config.prefix.includes("automd")) config.prefix.push("automd");
|
|
35
|
+
if (!config.prefix.includes("powerlines")) config.prefix.push("powerlines");
|
|
36
|
+
return { automd: (0, defu.default)(config ?? {}, {
|
|
37
|
+
configFile: options.configFile,
|
|
38
|
+
allowIssues: true,
|
|
39
|
+
dir: this.config.projectRoot,
|
|
40
|
+
watch: false,
|
|
41
|
+
input: "README.md",
|
|
42
|
+
toc: {
|
|
43
|
+
maxDepth: 6,
|
|
44
|
+
bullets: "-"
|
|
45
|
+
}
|
|
46
|
+
}) };
|
|
47
|
+
},
|
|
48
|
+
async configResolved() {
|
|
49
|
+
if (this.config.framework && !(0, __stryke_convert_to_array.toArray)(this.config.automd.prefix).includes(this.config.framework)) this.config.automd.prefix = (0, __stryke_convert_to_array.toArray)(this.config.automd.prefix).concat(this.config.framework);
|
|
50
|
+
if (this.config.automd.configFile) {
|
|
51
|
+
const { config } = await (0, c12.loadConfig)({
|
|
52
|
+
cwd: this.config.automd.dir,
|
|
53
|
+
configFile: this.config.automd.configFile,
|
|
54
|
+
defaults: {
|
|
55
|
+
ignore: [
|
|
56
|
+
"**/node_modules",
|
|
57
|
+
"**/dist",
|
|
58
|
+
"**/.*"
|
|
59
|
+
],
|
|
60
|
+
dir: this.config.automd.dir
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
this.config.automd = (0, automd.resolveConfig)((0, defu.default)(this.config.automd, {
|
|
64
|
+
...config,
|
|
65
|
+
prefix: (0, __stryke_convert_to_array.toArray)(config.prefix ?? [])
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
68
|
+
this.config.automd.input = (await Promise.all((0, __stryke_convert_to_array.toArray)(this.config.automd.input).map(async (input) => {
|
|
69
|
+
if (input.includes("*")) return (0, __stryke_fs_list_files.listFiles)((0, __stryke_path_is_type.isAbsolutePath)(input) ? input : (0, __stryke_path_append.appendPath)(input, this.config.projectRoot), { ignore: this.config.automd.ignore });
|
|
70
|
+
return (0, __stryke_path_is_type.isAbsolutePath)(input) ? input : (0, __stryke_path_append.appendPath)(input, this.config.projectRoot);
|
|
71
|
+
}))).flat();
|
|
72
|
+
if (this.config.automd.output && !(0, __stryke_path_is_type.isAbsolutePath)(this.config.automd.output)) this.config.automd.output = (0, __stryke_path_append.appendPath)(this.config.automd.output, this.config.projectRoot);
|
|
73
|
+
this.config.automd.generators ??= {};
|
|
74
|
+
if (this.config.automd.toc !== false) this.config.automd.generators.toc ??= {
|
|
75
|
+
name: "toc",
|
|
76
|
+
generate: (ctx) => {
|
|
77
|
+
const opts = this.config.automd.toc ?? {};
|
|
78
|
+
return { contents: (0, markdown_toc.default)(ctx.block.md, {
|
|
79
|
+
...opts,
|
|
80
|
+
maxdepth: opts.maxDepth,
|
|
81
|
+
first1: opts.firstH1
|
|
82
|
+
}).content };
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
},
|
|
86
|
+
async docs() {
|
|
87
|
+
await Promise.all((0, __stryke_convert_to_array.toArray)(this.config.automd.input).map(async (input) => {
|
|
88
|
+
const contents = await this.fs.read(input);
|
|
89
|
+
if (contents) {
|
|
90
|
+
const result = await (0, automd.transform)(contents, this.config.automd);
|
|
91
|
+
if (result.hasIssues && this.config.automd.allowIssues === false) throw new Error(`AutoMD found issues in file "${input}". Please resolve the issues or set \`allowIssues\` to true in the plugin configuration to ignore them.`);
|
|
92
|
+
if (result.hasChanged) await this.fs.write((0, __stryke_path_append.appendPath)(this.config.automd.output ? (0, __stryke_fs_is_file.isDirectory)(this.config.automd.output) ? (0, __stryke_path_replace.replacePath)(input, this.config.automd.output) : this.config.automd.output : input, this.config.projectRoot), result.contents);
|
|
93
|
+
}
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
var src_default = plugin;
|
|
99
|
+
|
|
100
|
+
//#endregion
|
|
101
|
+
exports.default = src_default;
|