@powerlines/nx 0.13.126 → 0.13.128
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/src/_virtual/_rolldown/runtime.js +14 -0
- package/dist/src/_virtual/_rolldown/runtime.mjs +28 -0
- package/dist/src/base/base-executor.d.mts +1 -1
- package/dist/src/base/base-executor.d.mts.map +1 -1
- package/dist/src/base/base-executor.d.ts.map +1 -1
- package/dist/src/base/base-executor.js +2 -2
- package/dist/src/base/base-executor.mjs +5 -2
- package/dist/src/base/base-executor.mjs.map +1 -1
- package/dist/src/base/base-executor.schema.d.mts.map +1 -1
- package/dist/src/base/base-executor.schema.d.ts.map +1 -1
- package/dist/src/base/base-executor.test.d.mts +2 -0
- package/dist/src/base/base-executor.test.d.ts +1 -0
- package/dist/src/base/base-executor.test.js +25 -0
- package/dist/src/base/base-executor.test.mjs +33 -0
- package/dist/src/base/base-executor.test.mjs.map +1 -0
- package/dist/src/base/base-executor.untyped.js +10 -1
- package/dist/src/base/base-executor.untyped.mjs +168 -162
- package/dist/src/base/base-executor.untyped.mjs.map +1 -1
- package/dist/src/base/base-executor.untyped.test.d.mts +2 -0
- package/dist/src/base/base-executor.untyped.test.d.ts +1 -0
- package/dist/src/base/base-executor.untyped.test.js +23 -0
- package/dist/src/base/base-executor.untyped.test.mjs +31 -0
- package/dist/src/base/base-executor.untyped.test.mjs.map +1 -0
- package/dist/src/base/index.mjs +9 -3
- package/dist/src/base/index.mjs.map +1 -0
- package/dist/src/{base-executor-CHEFLBQ-.js → base-executor-BzcSvyaJ.js} +2 -2
- package/dist/src/{base-executor-B1RffQX6.mjs → base-executor-nribES6I.mjs} +2 -2
- package/dist/src/base-executor-nribES6I.mjs.map +1 -0
- package/dist/src/executors/build/executor.d.mts.map +1 -1
- package/dist/src/executors/build/executor.d.ts.map +1 -1
- package/dist/src/executors/build/executor.js +1 -1
- package/dist/src/executors/build/executor.mjs +1 -1
- package/dist/src/executors/clean/executor.d.mts.map +1 -1
- package/dist/src/executors/clean/executor.d.ts.map +1 -1
- package/dist/src/executors/clean/executor.js +1 -1
- package/dist/src/executors/clean/executor.mjs +1 -1
- package/dist/src/executors/docs/executor.d.mts.map +1 -1
- package/dist/src/executors/docs/executor.d.ts.map +1 -1
- package/dist/src/executors/docs/executor.js +1 -1
- package/dist/src/executors/docs/executor.mjs +1 -1
- package/dist/src/executors/lint/executor.d.mts.map +1 -1
- package/dist/src/executors/lint/executor.d.ts.map +1 -1
- package/dist/src/executors/lint/executor.js +1 -1
- package/dist/src/executors/lint/executor.mjs +1 -1
- package/dist/src/executors/prepare/executor.d.mts.map +1 -1
- package/dist/src/executors/prepare/executor.d.ts.map +1 -1
- package/dist/src/executors/prepare/executor.js +1 -1
- package/dist/src/executors/prepare/executor.mjs +1 -1
- package/dist/src/helpers/constants.mjs +33 -30
- package/dist/src/helpers/constants.mjs.map +1 -1
- package/dist/src/helpers/constants.test.d.mts +2 -0
- package/dist/src/helpers/constants.test.d.ts +1 -0
- package/dist/src/helpers/constants.test.js +35 -0
- package/dist/src/helpers/constants.test.mjs +43 -0
- package/dist/src/helpers/constants.test.mjs.map +1 -0
- package/dist/src/helpers/index.mjs +9 -3
- package/dist/src/helpers/index.mjs.map +1 -0
- package/dist/src/helpers/plugin-utilities.d.mts.map +1 -1
- package/dist/src/helpers/plugin-utilities.d.ts.map +1 -1
- package/dist/src/helpers/plugin-utilities.mjs +7 -2
- package/dist/src/helpers/plugin-utilities.mjs.map +1 -1
- package/dist/src/helpers/plugin-utilities.test.d.mts +2 -0
- package/dist/src/helpers/plugin-utilities.test.d.ts +1 -0
- package/dist/src/helpers/plugin-utilities.test.js +50 -0
- package/dist/src/helpers/plugin-utilities.test.mjs +59 -0
- package/dist/src/helpers/plugin-utilities.test.mjs.map +1 -0
- package/dist/src/index.mjs +4 -3
- package/dist/src/types/index.mjs +8 -1
- package/dist/src/types/index.mjs.map +1 -0
- package/dist/src/types/plugin.js +13 -0
- package/dist/src/types/plugin.mjs +10 -1
- package/dist/src/types/plugin.mjs.map +1 -0
- package/dist/src/types/plugin.test.d.mts +2 -0
- package/dist/src/types/plugin.test.d.ts +1 -0
- package/dist/src/types/plugin.test.js +23 -0
- package/dist/src/types/plugin.test.mjs +31 -0
- package/dist/src/types/plugin.test.mjs.map +1 -0
- package/package.json +18 -18
- package/dist/src/base-executor-B1RffQX6.mjs.map +0 -1
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
import __tsdown_shims_path from 'node:path'
|
|
4
|
+
import __tsdown_shims_url from 'node:url'
|
|
5
|
+
|
|
6
|
+
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
+
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
+
|
|
9
|
+
import { __commonJSMin } from "../_virtual/_rolldown/runtime.mjs";
|
|
10
|
+
import { CONFIG_INPUTS, init_constants } from "./constants.mjs";
|
|
11
|
+
import { getNxPluginInputs, getNxTargetInputs, init_plugin_utilities } from "./plugin-utilities.mjs";
|
|
12
|
+
import { describe, expect, it } from "vitest";
|
|
13
|
+
|
|
14
|
+
//#region src/helpers/plugin-utilities.test.ts
|
|
15
|
+
var require_plugin_utilities_test = /* @__PURE__ */ __commonJSMin((() => {
|
|
16
|
+
init_constants();
|
|
17
|
+
init_plugin_utilities();
|
|
18
|
+
describe("getNxTargetInputs", () => {
|
|
19
|
+
it("returns an array of strings", () => {
|
|
20
|
+
const result = getNxTargetInputs("vite");
|
|
21
|
+
expect(Array.isArray(result)).toBe(true);
|
|
22
|
+
expect(result.length).toBeGreaterThan(0);
|
|
23
|
+
});
|
|
24
|
+
it("replaces {framework} placeholder with the given framework name", () => {
|
|
25
|
+
const result = getNxTargetInputs("vite");
|
|
26
|
+
for (const input of result) {
|
|
27
|
+
expect(input).not.toContain("{framework}");
|
|
28
|
+
expect(input).toContain("vite");
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
it("returns the same number of items as CONFIG_INPUTS", () => {
|
|
32
|
+
expect(getNxTargetInputs("webpack").length).toBe(CONFIG_INPUTS.length);
|
|
33
|
+
});
|
|
34
|
+
it("works with different framework names", () => {
|
|
35
|
+
const vitResult = getNxTargetInputs("vite");
|
|
36
|
+
const webpackResult = getNxTargetInputs("webpack");
|
|
37
|
+
expect(vitResult[0]).not.toBe(webpackResult[0]);
|
|
38
|
+
expect(vitResult[0]).toContain("vite");
|
|
39
|
+
expect(webpackResult[0]).toContain("webpack");
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
describe("getNxPluginInputs", () => {
|
|
43
|
+
it("returns a string", () => {
|
|
44
|
+
expect(typeof getNxPluginInputs("vite")).toBe("string");
|
|
45
|
+
});
|
|
46
|
+
it("contains the framework name", () => {
|
|
47
|
+
expect(getNxPluginInputs("rollup")).toContain("rollup");
|
|
48
|
+
});
|
|
49
|
+
it("uses glob pattern format starting with **/", () => {
|
|
50
|
+
expect(getNxPluginInputs("vite")).toMatch(/^\*\*\/\{/);
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
}));
|
|
54
|
+
|
|
55
|
+
//#endregion
|
|
56
|
+
export default require_plugin_utilities_test();
|
|
57
|
+
|
|
58
|
+
export { };
|
|
59
|
+
//# sourceMappingURL=plugin-utilities.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-utilities.test.mjs","names":[],"sources":["../../../src/helpers/plugin-utilities.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { CONFIG_INPUTS } from \"./constants\";\nimport { getNxPluginInputs, getNxTargetInputs } from \"./plugin-utilities\";\n\ndescribe(\"getNxTargetInputs\", () => {\n it(\"returns an array of strings\", () => {\n const result = getNxTargetInputs(\"vite\");\n expect(Array.isArray(result)).toBe(true);\n expect(result.length).toBeGreaterThan(0);\n });\n\n it(\"replaces {framework} placeholder with the given framework name\", () => {\n const result = getNxTargetInputs(\"vite\");\n for (const input of result) {\n expect(input).not.toContain(\"{framework}\");\n expect(input).toContain(\"vite\");\n }\n });\n\n it(\"returns the same number of items as CONFIG_INPUTS\", () => {\n const result = getNxTargetInputs(\"webpack\");\n expect(result.length).toBe(CONFIG_INPUTS.length);\n });\n\n it(\"works with different framework names\", () => {\n const vitResult = getNxTargetInputs(\"vite\");\n const webpackResult = getNxTargetInputs(\"webpack\");\n expect(vitResult[0]).not.toBe(webpackResult[0]);\n expect(vitResult[0]).toContain(\"vite\");\n expect(webpackResult[0]).toContain(\"webpack\");\n });\n});\n\ndescribe(\"getNxPluginInputs\", () => {\n it(\"returns a string\", () => {\n const result = getNxPluginInputs(\"vite\");\n expect(typeof result).toBe(\"string\");\n });\n\n it(\"contains the framework name\", () => {\n const result = getNxPluginInputs(\"rollup\");\n expect(result).toContain(\"rollup\");\n });\n\n it(\"uses glob pattern format starting with **/\", () => {\n const result = getNxPluginInputs(\"vite\");\n expect(result).toMatch(/^\\*\\*\\/\\{/);\n });\n});\n"],"mappings":";;;;;;;;;;;;;;;gBAC2C;uBAC8B;CAEzE,SAAS,2BAA2B;EAClC,GAAG,qCAAqC;GACtC,MAAM,SAAS,kBAAkB,MAAM;GACvC,OAAO,MAAM,QAAQ,MAAM,CAAC,EAAE,KAAK,IAAI;GACvC,OAAO,OAAO,MAAM,EAAE,gBAAgB,CAAC;EACzC,CAAC;EAED,GAAG,wEAAwE;GACzE,MAAM,SAAS,kBAAkB,MAAM;GACvC,KAAK,MAAM,SAAS,QAAQ;IAC1B,OAAO,KAAK,EAAE,IAAI,UAAU,aAAa;IACzC,OAAO,KAAK,EAAE,UAAU,MAAM;GAChC;EACF,CAAC;EAED,GAAG,2DAA2D;GAE5D,OADe,kBAAkB,SACrB,EAAE,MAAM,EAAE,KAAK,cAAc,MAAM;EACjD,CAAC;EAED,GAAG,8CAA8C;GAC/C,MAAM,YAAY,kBAAkB,MAAM;GAC1C,MAAM,gBAAgB,kBAAkB,SAAS;GACjD,OAAO,UAAU,EAAE,EAAE,IAAI,KAAK,cAAc,EAAE;GAC9C,OAAO,UAAU,EAAE,EAAE,UAAU,MAAM;GACrC,OAAO,cAAc,EAAE,EAAE,UAAU,SAAS;EAC9C,CAAC;CACH,CAAC;CAED,SAAS,2BAA2B;EAClC,GAAG,0BAA0B;GAE3B,OAAO,OADQ,kBAAkB,MACd,CAAC,EAAE,KAAK,QAAQ;EACrC,CAAC;EAED,GAAG,qCAAqC;GAEtC,OADe,kBAAkB,QACrB,CAAC,EAAE,UAAU,QAAQ;EACnC,CAAC;EAED,GAAG,oDAAoD;GAErD,OADe,kBAAkB,MACrB,CAAC,EAAE,QAAQ,WAAW;EACpC,CAAC;CACH,CAAC"}
|
package/dist/src/index.mjs
CHANGED
|
@@ -6,10 +6,11 @@ import __tsdown_shims_url from 'node:url'
|
|
|
6
6
|
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
7
|
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
8
|
|
|
9
|
-
import { withExecutor } from "./base/base-executor.mjs";
|
|
9
|
+
import { init_base_executor, withExecutor } from "./base/base-executor.mjs";
|
|
10
10
|
import "./base/index.mjs";
|
|
11
|
-
import { CONFIG_INPUTS } from "./helpers/constants.mjs";
|
|
12
|
-
import { createNxPlugin, getNxPluginInputs, getNxTargetInputs } from "./helpers/plugin-utilities.mjs";
|
|
11
|
+
import { CONFIG_INPUTS, init_constants } from "./helpers/constants.mjs";
|
|
12
|
+
import { createNxPlugin, getNxPluginInputs, getNxTargetInputs, init_plugin_utilities } from "./helpers/plugin-utilities.mjs";
|
|
13
13
|
import "./helpers/index.mjs";
|
|
14
|
+
import "./types/index.mjs";
|
|
14
15
|
|
|
15
16
|
export { CONFIG_INPUTS, createNxPlugin, getNxPluginInputs, getNxTargetInputs, withExecutor };
|
package/dist/src/types/index.mjs
CHANGED
|
@@ -6,4 +6,11 @@ import __tsdown_shims_url from 'node:url'
|
|
|
6
6
|
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
7
|
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
import { init_plugin } from "./plugin.mjs";
|
|
10
|
+
|
|
11
|
+
//#region src/types/index.ts
|
|
12
|
+
init_plugin();
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
export { };
|
|
16
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/types/index.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nexport * from \"./plugin\";\n"],"mappings":""}
|
package/dist/src/types/plugin.js
CHANGED
|
@@ -6,3 +6,16 @@ import __tsdown_shims_url from 'node:url'
|
|
|
6
6
|
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
7
|
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
8
|
|
|
9
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
10
|
+
const require_runtime = require('../_virtual/_rolldown/runtime.js');
|
|
11
|
+
|
|
12
|
+
//#region src/types/plugin.ts
|
|
13
|
+
var plugin_exports = /* @__PURE__ */ require_runtime.__exportAll({});
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
Object.defineProperty(exports, 'plugin_exports', {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () {
|
|
19
|
+
return plugin_exports;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
@@ -6,4 +6,13 @@ import __tsdown_shims_url from 'node:url'
|
|
|
6
6
|
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
7
|
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
import { __esmMin, __exportAll } from "../_virtual/_rolldown/runtime.mjs";
|
|
10
|
+
|
|
11
|
+
//#region src/types/plugin.ts
|
|
12
|
+
var plugin_exports = /* @__PURE__ */ __exportAll({});
|
|
13
|
+
var init_plugin = __esmMin((() => {}));
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
init_plugin();
|
|
17
|
+
export { init_plugin, plugin_exports };
|
|
18
|
+
//# sourceMappingURL=plugin.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.mjs","names":[],"sources":["../../../src/types/plugin.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nexport interface NxPluginOptions {\n /**\n * Configuration options for the clean target added by the Nx plugin\n */\n clean?:\n | false\n | {\n /**\n * The name of the clean target to use when cleaning the project\n *\n * @defaultValue \"clean\"\n */\n targetName?: string;\n\n /**\n * An indicator to control the behavior of Nx caching for the target\n *\n * @defaultValue true\n */\n cache?: boolean;\n\n /**\n * The name of the clean configuration to use when cleaning the project\n *\n * @defaultValue \"production\"\n */\n defaultConfiguration?: \"production\" | \"test\" | \"development\";\n\n /**\n * An array specifying any other target identifiers the clean target depends on\n *\n * @defaultValue [\"^clean\"]\n */\n dependsOn?: string[];\n\n /**\n * An array specifying any input files or globs to consider when determining if the clean target needs to be re-run\n */\n inputs?:\n | string[]\n | \"production\"\n | \"allProjectFiles\"\n | \"sharedGlobals\"\n | \"testing\"\n | \"linting\"\n | \"documentation\"\n | \"rust\"\n | \"typescript\";\n\n /**\n * An array specifying the output files or globs generated by the clean target\n */\n outputs?: string[];\n\n /**\n * The executor to use for the clean target\n *\n * @defaultValue \"\\@powerlines/nx:clean\"\n */\n executor?: string;\n };\n\n /**\n * Configuration options for the prepare target added by the Nx plugin\n */\n prepare?:\n | false\n | {\n /**\n * The name of the prepare target to use when preparing the project\n *\n * @defaultValue \"prepare\"\n */\n targetName?: string;\n\n /**\n * An indicator to control the behavior of Nx caching for the target\n *\n * @defaultValue true\n */\n cache?: boolean;\n\n /**\n * The name of the prepare configuration to use when preparing the project\n *\n * @defaultValue \"production\"\n */\n defaultConfiguration?: \"production\" | \"test\" | \"development\";\n\n /**\n * An array specifying any other target identifiers the prepare target depends on\n *\n * @defaultValue [\"^build\", \"clean\"]\n */\n dependsOn?: string[];\n\n /**\n * An array specifying any input files or globs to consider when determining if the prepare target needs to be re-run\n */\n inputs?:\n | string[]\n | \"production\"\n | \"allProjectFiles\"\n | \"sharedGlobals\"\n | \"testing\"\n | \"linting\"\n | \"documentation\"\n | \"rust\"\n | \"typescript\";\n\n /**\n * An array specifying the output files or globs generated by the prepare target\n */\n outputs?: string[];\n\n /**\n * The executor to use for the prepare target\n *\n * @defaultValue \"\\@powerlines/nx:prepare\"\n */\n executor?: string;\n };\n\n /**\n * Configuration options for the lint target added by the Nx plugin\n */\n lint?:\n | false\n | {\n /**\n * The name of the lint target to use when linting the project\n *\n * @defaultValue \"lint\"\n */\n targetName?: string;\n\n /**\n * An indicator to control the behavior of Nx caching for the target\n *\n * @defaultValue true\n */\n cache?: boolean;\n\n /**\n * The name of the lint configuration to use when linting the project\n *\n * @defaultValue \"production\"\n */\n defaultConfiguration?: \"production\" | \"test\" | \"development\";\n\n /**\n * An array specifying any other target identifiers the lint target depends on\n *\n * @defaultValue [\"^lint\"]\n */\n dependsOn?: string[];\n\n /**\n * An array specifying any input files or globs to consider when determining if the lint target needs to be re-run\n */\n inputs?:\n | string[]\n | \"production\"\n | \"allProjectFiles\"\n | \"sharedGlobals\"\n | \"testing\"\n | \"linting\"\n | \"documentation\"\n | \"rust\"\n | \"typescript\";\n\n /**\n * An array specifying the output files or globs generated by the lint target\n */\n outputs?: string[];\n\n /**\n * The executor to use for the lint target\n *\n * @defaultValue \"\\@powerlines/nx:lint\"\n */\n executor?: string;\n };\n\n /**\n * Configuration options for the build target added by the Nx plugin\n */\n build?:\n | false\n | {\n /**\n * The name of the build target to use when building the project\n *\n * @defaultValue \"build\"\n */\n targetName?: string;\n\n /**\n * An indicator to control the behavior of Nx caching for the target\n *\n * @defaultValue true\n */\n cache?: boolean;\n\n /**\n * The name of the build configuration to use when building the project\n *\n * @defaultValue \"production\"\n */\n defaultConfiguration?: \"production\" | \"test\" | \"development\";\n\n /**\n * An array specifying any other target identifiers the build target depends on\n *\n * @defaultValue [\"^build\"]\n */\n dependsOn?: string[];\n\n /**\n * An array specifying any input files or globs to consider when determining if the build target needs to be re-run\n */\n inputs?:\n | string[]\n | \"production\"\n | \"allProjectFiles\"\n | \"sharedGlobals\"\n | \"testing\"\n | \"linting\"\n | \"documentation\"\n | \"rust\"\n | \"typescript\";\n\n /**\n * An array specifying the output files or globs generated by the build target\n */\n outputs?: string[];\n\n /**\n * The executor to use for the build target\n *\n * @defaultValue \"\\@powerlines/nx:build\"\n */\n executor?: string;\n };\n\n /**\n * Configuration options for the docs target added by the Nx plugin\n */\n docs?:\n | false\n | {\n /**\n * The name of the docs target to use when generating documentation for the project\n *\n * @defaultValue \"docs\"\n */\n targetName?: string;\n\n /**\n * An indicator to control the behavior of Nx caching for the target\n *\n * @defaultValue true\n */\n cache?: boolean;\n\n /**\n * The name of the docs configuration to use when generating documentation for the project\n *\n * @defaultValue \"production\"\n */\n defaultConfiguration?: \"production\" | \"test\" | \"development\";\n\n /**\n * An array specifying any other target identifiers the docs target depends on\n *\n * @defaultValue [\"^docs\", \"build\"]\n */\n dependsOn?: string[];\n\n /**\n * An array specifying any input files or globs to consider when determining if the docs target needs to be re-run\n */\n inputs?:\n | string[]\n | \"production\"\n | \"allProjectFiles\"\n | \"sharedGlobals\"\n | \"testing\"\n | \"linting\"\n | \"documentation\"\n | \"rust\"\n | \"typescript\";\n\n /**\n * An array specifying the output files or globs generated by the docs target\n */\n outputs?: string[];\n\n /**\n * The executor to use for the docs target\n *\n * @defaultValue \"\\@powerlines/nx:docs\"\n */\n executor?: string;\n };\n\n /**\n * Configuration options for the deploy target added by the Nx plugin\n */\n deploy?:\n | false\n | {\n /**\n * The name of the deploy target to use when deploying the project\n *\n * @defaultValue \"deploy\"\n */\n targetName?: string;\n\n /**\n * An indicator to control the behavior of Nx caching for the target\n *\n * @defaultValue false\n */\n cache?: boolean;\n\n /**\n * The name of the deploy configuration to use when deploying the project\n *\n * @defaultValue \"production\"\n */\n defaultConfiguration?: \"production\" | \"test\" | \"development\";\n\n /**\n * An array specifying any other target identifiers the deploy target depends on\n *\n * @defaultValue [\"^deploy\", \"build\"]\n */\n dependsOn?: string[];\n\n /**\n * An array specifying any input files or globs to consider when determining if the deploy target needs to be re-run\n */\n inputs?:\n | string[]\n | \"production\"\n | \"allProjectFiles\"\n | \"sharedGlobals\"\n | \"rust\"\n | \"typescript\";\n\n /**\n * An array specifying the output files or globs generated by the deploy target\n */\n outputs?: string[];\n\n /**\n * The executor to use for the deploy target\n *\n * @defaultValue \"\\@powerlines/nx:deploy\"\n */\n executor?: string;\n };\n\n /**\n * Whether to enable verbose logging for the Nx plugin.\n *\n * @remarks\n * If enabled, the plugin will log more detailed information about its operations, which can be useful for debugging and troubleshooting.\n *\n * @defaultValue false\n */\n verboseOutput?: boolean;\n\n /**\n * Enable resolver debug logging for the plugin\n *\n * @defaultValue false\n */\n debug?: boolean;\n\n /**\n * An indicator to control the behavior of Nx caching for all of the targets\n *\n * @remarks\n * The `cache` value on the target specific options will override the value provided in this field.\n *\n * @defaultValue true\n */\n cache?: boolean;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
import __tsdown_shims_path from 'node:path'
|
|
4
|
+
import __tsdown_shims_url from 'node:url'
|
|
5
|
+
|
|
6
|
+
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
+
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
+
|
|
9
|
+
const require_types_plugin = require('./plugin.js');
|
|
10
|
+
let vitest = require("vitest");
|
|
11
|
+
|
|
12
|
+
//#region src/types/plugin.test.ts
|
|
13
|
+
(0, vitest.describe)("devkit/nx/src/types/plugin.ts", () => {
|
|
14
|
+
(0, vitest.it)("loads module exports", () => {
|
|
15
|
+
(0, vitest.expect)(require_types_plugin.plugin_exports).toBeDefined();
|
|
16
|
+
(0, vitest.expect)(typeof require_types_plugin.plugin_exports).toBe("object");
|
|
17
|
+
});
|
|
18
|
+
(0, vitest.it)("has at least one runtime export", () => {
|
|
19
|
+
(0, vitest.expect)(Object.keys(require_types_plugin.plugin_exports).length).toBeGreaterThan(0);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
import __tsdown_shims_path from 'node:path'
|
|
4
|
+
import __tsdown_shims_url from 'node:url'
|
|
5
|
+
|
|
6
|
+
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
+
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
+
|
|
9
|
+
import { __commonJSMin } from "../_virtual/_rolldown/runtime.mjs";
|
|
10
|
+
import { init_plugin, plugin_exports } from "./plugin.mjs";
|
|
11
|
+
import { describe, expect, it } from "vitest";
|
|
12
|
+
|
|
13
|
+
//#region src/types/plugin.test.ts
|
|
14
|
+
var require_plugin_test = /* @__PURE__ */ __commonJSMin((() => {
|
|
15
|
+
init_plugin();
|
|
16
|
+
describe("devkit/nx/src/types/plugin.ts", () => {
|
|
17
|
+
it("loads module exports", () => {
|
|
18
|
+
expect(plugin_exports).toBeDefined();
|
|
19
|
+
expect(typeof plugin_exports).toBe("object");
|
|
20
|
+
});
|
|
21
|
+
it("has at least one runtime export", () => {
|
|
22
|
+
expect(Object.keys(plugin_exports).length).toBeGreaterThan(0);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
}));
|
|
26
|
+
|
|
27
|
+
//#endregion
|
|
28
|
+
export default require_plugin_test();
|
|
29
|
+
|
|
30
|
+
export { };
|
|
31
|
+
//# sourceMappingURL=plugin.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.test.mjs","names":["moduleExports"],"sources":["../../../src/types/plugin.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport * as moduleExports from \"./plugin\";\n\ndescribe(\"devkit/nx/src/types/plugin.ts\", () => {\n it(\"loads module exports\", () => {\n expect(moduleExports).toBeDefined();\n expect(typeof moduleExports).toBe(\"object\");\n });\n\n it(\"has at least one runtime export\", () => {\n expect(Object.keys(moduleExports).length).toBeGreaterThan(0);\n });\n});\n"],"mappings":";;;;;;;;;;;;;;aACyC;CAEzC,SAAS,uCAAuC;EAC9C,GAAG,8BAA8B;GAC/B,OAAOA,cAAa,EAAE,YAAY;GAClC,OAAO,OAAOA,cAAa,EAAE,KAAK,QAAQ;EAC5C,CAAC;EAED,GAAG,yCAAyC;GAC1C,OAAO,OAAO,KAAKA,cAAa,EAAE,MAAM,EAAE,gBAAgB,CAAC;EAC7D,CAAC;CACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powerlines/nx",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.128",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A Nx plugin to support Powerlines development in Nx monorepos.",
|
|
6
6
|
"repository": {
|
|
@@ -174,27 +174,27 @@
|
|
|
174
174
|
],
|
|
175
175
|
"dependencies": {
|
|
176
176
|
"@nx/devkit": "^22.7.5",
|
|
177
|
-
"@storm-software/build-tools": "^0.158.
|
|
178
|
-
"@storm-software/config": "^1.137.
|
|
179
|
-
"@storm-software/config-tools": "^1.190.
|
|
180
|
-
"@storm-software/workspace-tools": "^1.296.
|
|
181
|
-
"@stryke/env": "^0.20.
|
|
182
|
-
"@stryke/fs": "^0.33.
|
|
183
|
-
"@stryke/hash": "^0.13.
|
|
184
|
-
"@stryke/helpers": "^0.10.
|
|
185
|
-
"@stryke/path": "^0.29.
|
|
186
|
-
"@stryke/string-format": "^0.17.
|
|
187
|
-
"@stryke/type-checks": "^0.6.
|
|
177
|
+
"@storm-software/build-tools": "^0.158.197",
|
|
178
|
+
"@storm-software/config": "^1.137.69",
|
|
179
|
+
"@storm-software/config-tools": "^1.190.37",
|
|
180
|
+
"@storm-software/workspace-tools": "^1.296.15",
|
|
181
|
+
"@stryke/env": "^0.20.97",
|
|
182
|
+
"@stryke/fs": "^0.33.80",
|
|
183
|
+
"@stryke/hash": "^0.13.33",
|
|
184
|
+
"@stryke/helpers": "^0.10.20",
|
|
185
|
+
"@stryke/path": "^0.29.7",
|
|
186
|
+
"@stryke/string-format": "^0.17.22",
|
|
187
|
+
"@stryke/type-checks": "^0.6.13",
|
|
188
188
|
"defu": "^6.1.7",
|
|
189
189
|
"jiti": "^2.7.0",
|
|
190
|
-
"powerlines": "^0.47.
|
|
190
|
+
"powerlines": "^0.47.89"
|
|
191
191
|
},
|
|
192
192
|
"devDependencies": {
|
|
193
193
|
"@nx/workspace": "22.7.5",
|
|
194
|
-
"@storm-software/testing-tools": "^1.119.
|
|
195
|
-
"@storm-software/tsup": "^0.2.
|
|
196
|
-
"@storm-software/untyped": "^0.24.
|
|
197
|
-
"@stryke/types": "^0.12.
|
|
194
|
+
"@storm-software/testing-tools": "^1.119.190",
|
|
195
|
+
"@storm-software/tsup": "^0.2.195",
|
|
196
|
+
"@storm-software/untyped": "^0.24.179",
|
|
197
|
+
"@stryke/types": "^0.12.8",
|
|
198
198
|
"@types/node": "^25.9.1",
|
|
199
199
|
"eslint-flat-config-utils": "^2.1.4",
|
|
200
200
|
"jsonc-eslint-parser": "^2.4.2",
|
|
@@ -206,5 +206,5 @@
|
|
|
206
206
|
"publishConfig": { "access": "public" },
|
|
207
207
|
"executors": "./executors.json",
|
|
208
208
|
"generators": "./generators.json",
|
|
209
|
-
"gitHead": "
|
|
209
|
+
"gitHead": "0b8ebdde5e6e57b8a983e447e0fbb94469a5bd1a"
|
|
210
210
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base-executor-B1RffQX6.mjs","names":[],"sources":["../../src/base/base-executor.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { ExecutorContext, PromiseExecutor } from \"@nx/devkit\";\nimport { writeError } from \"@storm-software/config-tools/logger\";\nimport { StormWorkspaceConfig } from \"@storm-software/config/types\";\nimport { withRunExecutor } from \"@storm-software/workspace-tools/base/base-executor\";\nimport { BaseExecutorResult } from \"@storm-software/workspace-tools/types\";\nimport { omit } from \"@stryke/helpers/omit\";\nimport { joinPaths } from \"@stryke/path/join\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { isError } from \"@stryke/type-checks/is-error\";\nimport { isSet } from \"@stryke/type-checks/is-set\";\nimport { isSetArray } from \"@stryke/type-checks/is-set-array\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport type { DeepPartial } from \"@stryke/types/base\";\nimport defu from \"defu\";\nimport { createJiti } from \"jiti\";\nimport type {\n ExecutionApiParams,\n ExecutionOptions,\n FrameworkOptions,\n InlineConfig,\n Mode,\n OutputConfig\n} from \"powerlines\";\nimport { formatExecutionId } from \"powerlines\";\nimport { BaseExecutorSchema } from \"./base-executor.schema\";\n\nexport type PowerlinesExecutorContext<\n TExecutorSchema extends BaseExecutorSchema = BaseExecutorSchema\n> = ExecutorContext & {\n projectName: string;\n command: string;\n options: TExecutorSchema;\n inlineConfig: InlineConfig;\n workspaceConfig: StormWorkspaceConfig;\n};\n\nexport type PowerlinesExecutorApi = (\n inlineConfig: InlineConfig\n) => Promise<void>;\n\nexport interface WithExecutorOptions {\n /**\n * The import path for the executor API module, which is used to dynamically import the API function that will be called during execution. This value should be a string representing the module path, and it defaults to \"powerlines/api\" if not provided. The specified module should export a default function that matches the expected signature for the executor API, which will be invoked with the execution parameters when the executor is run.\n *\n * @defaultValue \"powerlines/api\"\n */\n importPath?: string;\n\n /**\n * Default options to be merged with the execution options, which can be used to provide default values for certain execution parameters or to override specific options for all executions of the executor. This value should be an object that matches the shape of the `ExecutionOptions` type, and it will be merged with the options provided during execution to create the final set of options that will be passed to the executor API function.\n *\n * @remarks\n * This can be useful for setting default values for options that are commonly used across multiple executions, or for providing a consistent set of options for all executions of the executor without requiring the caller to specify them each time.\n */\n defaultOptions?: DeepPartial<ExecutionOptions>;\n\n /**\n * Details about the framework being used in the current execution, which can be used by plugins and other parts of the system to customize behavior based on the framework.\n *\n * @remarks\n * This should only be used by framework plugins to ensure the correct framework name is applied\n *\n * @defaultValue\n * ```ts\n * {\n * name: \"powerlines\",\n * orgId: \"storm-software\"\n * }\n * ```\n */\n framework?: FrameworkOptions;\n}\n\n/**\n * A utility function to create a Powerlines executor that can be used with the `withRunExecutor` function.\n *\n * @remarks\n * This function is designed to simplify the creation of Powerlines executors by providing a consistent interface and error handling.\n *\n * @param command - The command that the executor will handle (e.g., \"new\", \"prepare\", \"build\", etc.).\n * @param executorFn - The function that will be executed when the command is run.\n * @param options - Additional options for configuring the executor, such as the import path for the API module and default execution options.\n * @returns A Promise that resolves to the result of the executor function.\n */\nexport function withExecutor<\n TExecutorSchema extends BaseExecutorSchema = BaseExecutorSchema\n>(\n command: string,\n executorFn: (\n context: PowerlinesExecutorContext<TExecutorSchema>,\n api: PowerlinesExecutorApi\n ) =>\n | Promise<BaseExecutorResult | null | undefined>\n | BaseExecutorResult\n | null\n | undefined,\n options: WithExecutorOptions = {}\n): PromiseExecutor<TExecutorSchema> {\n const {\n importPath = \"powerlines/api\",\n defaultOptions = {},\n framework = {} as FrameworkOptions\n } = options;\n\n framework.name ??= \"powerlines\";\n framework.orgId ??= \"storm-software\";\n\n return withRunExecutor(\n `${titleCase(framework.name)} - ${titleCase(command)} executor`,\n async (\n options: TExecutorSchema,\n context: ExecutorContext,\n workspaceConfig: StormWorkspaceConfig\n ): Promise<BaseExecutorResult | null | undefined> => {\n if (!context.projectName) {\n throw new Error(\n `The ${titleCase(framework.name)} - ${titleCase(\n command\n )} executor requires \\`projectName\\` on the context object.`\n );\n }\n\n if (\n !context.projectName ||\n !context.projectsConfigurations?.projects ||\n !context.projectsConfigurations.projects[context.projectName] ||\n !context.projectsConfigurations.projects[context.projectName]?.root\n ) {\n throw new Error(\n `The ${titleCase(framework.name)} - ${titleCase(\n command\n )} executor requires \\`projectsConfigurations\\` on the context object.`\n );\n }\n\n const projectConfig =\n context.projectsConfigurations.projects[context.projectName]!;\n\n const jiti = createJiti(context.root, {\n cache: false,\n tsconfigPaths: true\n });\n const api = await jiti\n .import<{\n default: (params: ExecutionApiParams) => Promise<void>;\n }>(jiti.esmResolve(importPath))\n .then(mod => mod.default);\n\n try {\n return await Promise.resolve(\n executorFn(\n defu(\n {\n projectName: context.projectName,\n options,\n workspaceConfig,\n command,\n inlineConfig: defu(\n {\n name: context.projectName,\n command,\n root: projectConfig.root,\n configFile: options.configFile || options.config,\n configIndex: options.configIndex,\n projectType: projectConfig.projectType,\n mode: options.mode as Mode,\n output: {\n path: options.outputPath,\n copy:\n options.copyPath === false\n ? false\n : {\n path: options.copyPath,\n assets: options.assets\n },\n minify: options.minify,\n sourceMap: options.sourceMap\n } as OutputConfig,\n resolve:\n isSetArray(options.external) ||\n isSetArray(options.noExternal) ||\n isSet(options.skipNodeModulesBundle)\n ? {\n external: isSetArray(options.external)\n ? options.external\n : undefined,\n noExternal: isSetArray(options.noExternal)\n ? options.noExternal\n : undefined,\n skipNodeModulesBundle: isSet(\n options.skipNodeModulesBundle\n )\n ? options.skipNodeModulesBundle\n : undefined\n }\n : undefined,\n define: isSetObject(options.define)\n ? options.define\n : undefined,\n assets: isSetObject(options.assets)\n ? options.assets\n : undefined\n },\n omit(options, [\n \"config\",\n \"configFile\",\n \"outputPath\",\n \"copyPath\",\n \"sourceMap\",\n \"minify\",\n \"format\",\n \"external\",\n \"noExternal\",\n \"skipNodeModulesBundle\",\n \"mode\",\n \"define\",\n \"assets\"\n ])\n ) as InlineConfig\n },\n context\n ),\n async (inlineConfig: InlineConfig) =>\n api({\n options: defu(defaultOptions, {\n executionId: formatExecutionId(\n inlineConfig.name ||\n context.projectName ||\n projectConfig.root,\n command,\n options.configIndex ?? 0\n ),\n cwd: context.root,\n root: projectConfig.root,\n configFile:\n options.configFile ||\n options.config ||\n joinPaths(\n projectConfig.root,\n `${kebabCase(framework.name)}.config.ts`\n ),\n configIndex: options.configIndex,\n framework\n }) as ExecutionOptions,\n command,\n inlineConfig\n })\n )\n );\n } catch (error) {\n writeError(\n `An error occurred while executing the ${titleCase(\n framework.name\n )} - ${titleCase(command)} executor: ${\n isError(error)\n ? `${error.message}\n\n${error.stack}`\n : \"Unknown error\"\n }`\n );\n\n return { success: false };\n }\n },\n {\n skipReadingConfig: false,\n hooks: {\n applyDefaultOptions: (options: Partial<TExecutorSchema>) => {\n options.copyPath ??= \"dist/{projectRoot}\";\n\n return options as TExecutorSchema;\n }\n }\n }\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAuGA,SAAgB,aAGd,SACA,YAQA,UAA+B,CAAC,GACE;CAClC,MAAM,EACJ,aAAa,kBACb,iBAAiB,CAAC,GAClB,YAAY,CAAC,MACX;CAEJ,UAAU,SAAS;CACnB,UAAU,UAAU;CAEpB,OAAO,gBACL,GAAG,UAAU,UAAU,IAAI,EAAE,KAAK,UAAU,OAAO,EAAE,YACrD,OACE,SACA,SACA,oBACmD;EACnD,IAAI,CAAC,QAAQ,aACX,MAAM,IAAI,MACR,OAAO,UAAU,UAAU,IAAI,EAAE,KAAK,UACpC,OACF,EAAE,0DACJ;EAGF,IACE,CAAC,QAAQ,eACT,CAAC,QAAQ,wBAAwB,YACjC,CAAC,QAAQ,uBAAuB,SAAS,QAAQ,gBACjD,CAAC,QAAQ,uBAAuB,SAAS,QAAQ,cAAc,MAE/D,MAAM,IAAI,MACR,OAAO,UAAU,UAAU,IAAI,EAAE,KAAK,UACpC,OACF,EAAE,qEACJ;EAGF,MAAM,gBACJ,QAAQ,uBAAuB,SAAS,QAAQ;EAElD,MAAM,OAAO,WAAW,QAAQ,MAAM;GACpC,OAAO;GACP,eAAe;EACjB,CAAC;EACD,MAAM,MAAM,MAAM,KACf,OAEE,KAAK,WAAW,UAAU,CAAC,EAC7B,MAAK,QAAO,IAAI,OAAO;EAE1B,IAAI;GACF,OAAO,MAAM,QAAQ,QACnB,WACE,KACE;IACE,aAAa,QAAQ;IACrB;IACA;IACA;IACA,cAAc,KACZ;KACE,MAAM,QAAQ;KACd;KACA,MAAM,cAAc;KACpB,YAAY,QAAQ,cAAc,QAAQ;KAC1C,aAAa,QAAQ;KACrB,aAAa,cAAc;KAC3B,MAAM,QAAQ;KACd,QAAQ;MACN,MAAM,QAAQ;MACd,MACE,QAAQ,aAAa,QACjB,QACA;OACE,MAAM,QAAQ;OACd,QAAQ,QAAQ;MAClB;MACN,QAAQ,QAAQ;MAChB,WAAW,QAAQ;KACrB;KACA,SACE,WAAW,QAAQ,QAAQ,KAC3B,WAAW,QAAQ,UAAU,KAC7B,MAAM,QAAQ,qBAAqB,IAC/B;MACE,UAAU,WAAW,QAAQ,QAAQ,IACjC,QAAQ,WACR;MACJ,YAAY,WAAW,QAAQ,UAAU,IACrC,QAAQ,aACR;MACJ,uBAAuB,MACrB,QAAQ,qBACV,IACI,QAAQ,wBACR;KACN,IACA;KACN,QAAQ,YAAY,QAAQ,MAAM,IAC9B,QAAQ,SACR;KACJ,QAAQ,YAAY,QAAQ,MAAM,IAC9B,QAAQ,SACR;IACN,GACA,KAAK,SAAS;KACZ;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;IACF,CAAC,CACH;GACF,GACA,OACF,GACA,OAAO,iBACL,IAAI;IACF,SAAS,KAAK,gBAAgB;KAC5B,aAAa,kBACX,aAAa,QACX,QAAQ,eACR,cAAc,MAChB,SACA,QAAQ,eAAe,CACzB;KACA,KAAK,QAAQ;KACb,MAAM,cAAc;KACpB,YACE,QAAQ,cACR,QAAQ,UACR,UACE,cAAc,MACd,GAAG,UAAU,UAAU,IAAI,EAAE,WAC/B;KACF,aAAa,QAAQ;KACrB;IACF,CAAC;IACD;IACA;GACF,CAAC,CACL,CACF;EACF,SAAS,OAAO;GACd,WACE,yCAAyC,UACvC,UAAU,IACZ,EAAE,KAAK,UAAU,OAAO,EAAE,aACxB,QAAQ,KAAK,IACT,GAAG,MAAM,QAAQ;;EAE/B,MAAM,UACQ,iBAER;GAEA,OAAO,EAAE,SAAS,MAAM;EAC1B;CACF,GACA;EACE,mBAAmB;EACnB,OAAO,EACL,sBAAsB,YAAsC;GAC1D,QAAQ,aAAa;GAErB,OAAO;EACT,EACF;CACF,CACF;AACF"}
|