@powerlines/plugin-napi-rs 0.2.0 → 0.2.2

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.
@@ -1,5 +1,4 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
2
  let _stryke_path_append = require("@stryke/path/append");
4
3
  let _stryke_path_file_path_fns = require("@stryke/path/file-path-fns");
5
4
  let powerlines_plugin_utils = require("powerlines/plugin-utils");
package/dist/index.cjs CHANGED
@@ -1,13 +1,10 @@
1
1
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
2
- const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
3
2
  const require_types_targets = require('./types/targets.cjs');
4
3
  const require_helpers_format_path = require('./helpers/format-path.cjs');
5
4
  const require_to_array = require('./node_modules/.pnpm/@stryke_convert@0.7.0/node_modules/@stryke/convert/dist/to-array.cjs');
6
5
  let _stryke_path_append = require("@stryke/path/append");
7
6
  let powerlines_plugin_utils = require("powerlines/plugin-utils");
8
7
  let _napi_rs_cli = require("@napi-rs/cli");
9
- let _powerlines_plugin_alloy = require("@powerlines/plugin-alloy");
10
- _powerlines_plugin_alloy = require_runtime.__toESM(_powerlines_plugin_alloy);
11
8
  let _stryke_type_checks_is_string = require("@stryke/type-checks/is-string");
12
9
  let defu = require("defu");
13
10
 
@@ -18,7 +15,7 @@ let defu = require("defu");
18
15
  * @see https://napi.rs/docs
19
16
  */
20
17
  const plugin = (options = {}) => {
21
- return [(0, _powerlines_plugin_alloy.default)(), {
18
+ return [{
22
19
  name: "napi-rs",
23
20
  config() {
24
21
  return { napi: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.tsx"],"mappings":";;;;;;;YAiCY,MAAA;IACR,IAAA,GAAO,iBAAA;EAAA;AAAA;;;;;;cASE,MAAA,oBAA2B,iBAAA,GAAoB,iBAAA,EAC1D,OAAA,GAAS,iBAAA,KA8OJ,MAAA,CAAO,QAAA"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.tsx"],"mappings":";;;;;;;YAgCY,MAAA;IACR,IAAA,GAAO,iBAAA;EAAA;AAAA;;;;;;cASE,MAAA,oBAA2B,iBAAA,GAAoB,iBAAA,EAC1D,OAAA,GAAS,iBAAA,KA2OJ,MAAA,CAAO,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.tsx"],"mappings":";;;;;;;YAiCY,MAAA;IACR,IAAA,GAAO,iBAAA;EAAA;AAAA;;;;;;cASE,MAAA,oBAA2B,iBAAA,GAAoB,iBAAA,EAC1D,OAAA,GAAS,iBAAA,KA8OJ,MAAA,CAAO,QAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.tsx"],"mappings":";;;;;;;YAgCY,MAAA;IACR,IAAA,GAAO,iBAAA;EAAA;AAAA;;;;;;cASE,MAAA,oBAA2B,iBAAA,GAAoB,iBAAA,EAC1D,OAAA,GAAS,iBAAA,KA2OJ,MAAA,CAAO,QAAA"}
package/dist/index.mjs CHANGED
@@ -4,7 +4,6 @@ import { toArray } from "./node_modules/.pnpm/@stryke_convert@0.7.0/node_modules
4
4
  import { appendPath } from "@stryke/path/append";
5
5
  import { isVerbose } from "powerlines/plugin-utils";
6
6
  import { NapiCli, parseTriple } from "@napi-rs/cli";
7
- import alloy from "@powerlines/plugin-alloy";
8
7
  import { isString } from "@stryke/type-checks/is-string";
9
8
  import { defu } from "defu";
10
9
 
@@ -15,7 +14,7 @@ import { defu } from "defu";
15
14
  * @see https://napi.rs/docs
16
15
  */
17
16
  const plugin = (options = {}) => {
18
- return [alloy(), {
17
+ return [{
19
18
  name: "napi-rs",
20
19
  config() {
21
20
  return { napi: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.tsx"],"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 { NapiCli, parseTriple } from \"@napi-rs/cli\";\nimport alloy from \"@powerlines/plugin-alloy\";\nimport { toArray } from \"@stryke/convert/to-array\";\nimport { appendPath } from \"@stryke/path/append\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport { defu } from \"defu\";\nimport { Plugin } from \"powerlines\";\nimport { isVerbose } from \"powerlines/plugin-utils\";\nimport { formatPath } from \"./helpers/format-path\";\nimport { DEFAULT_TARGETS, Target } from \"./types\";\nimport type { NapiPluginContext, NapiPluginOptions } from \"./types/plugin\";\n\nexport type * from \"./types\";\n\ndeclare module \"powerlines\" {\n interface Config {\n napi?: NapiPluginOptions;\n }\n}\n\n/**\n * A Powerlines plugin for integrating with N-API Rust modules, providing features such as automatic generation of bindings and runtime integration with N-API Rust modules.\n *\n * @see https://napi.rs/docs\n */\nexport const plugin = <TContext extends NapiPluginContext = NapiPluginContext>(\n options: NapiPluginOptions = {}\n) => {\n return [\n alloy(),\n {\n name: \"napi-rs\",\n config() {\n return {\n napi: {\n dts: \"binding.d.ts\",\n jsBinding: \"binding.js\",\n outputDir: this.config.root,\n platform: true,\n strip: false,\n ...options\n }\n };\n },\n async configResolved() {\n if (\n !this.config.napi.target &&\n this.additionalArgs.target &&\n (isString(this.additionalArgs.target) ||\n (Array.isArray(this.additionalArgs.target) &&\n this.additionalArgs.target.length > 0))\n ) {\n this.config.napi.target = parseTriple(\n (Array.isArray(this.additionalArgs.target) &&\n this.additionalArgs.target.length > 0\n ? this.additionalArgs.target[0]\n : String(this.additionalArgs.target))!\n );\n } else {\n this.config.napi.target = isString(this.config.napi.target)\n ? parseTriple(this.config.napi.target)\n : this.config.napi.target;\n }\n\n if (!this.config.napi.targets) {\n if (\n this.additionalArgs.targets &&\n (isString(this.additionalArgs.targets) ||\n (Array.isArray(this.additionalArgs.targets) &&\n this.additionalArgs.targets.length > 0))\n ) {\n this.config.napi.targets = toArray(this.additionalArgs.targets).map(\n (target: string) => parseTriple(target)\n );\n } else {\n this.config.napi.targets = DEFAULT_TARGETS.map(target =>\n parseTriple(target)\n );\n }\n }\n\n if (\n !this.config.napi.profile &&\n this.additionalArgs.profile &&\n (isString(this.additionalArgs.profile) ||\n (Array.isArray(this.additionalArgs.profile) &&\n this.additionalArgs.profile.length > 0))\n ) {\n this.config.napi.profile = (\n Array.isArray(this.additionalArgs.profile) &&\n this.additionalArgs.profile.length > 0\n ? this.additionalArgs.profile[0]\n : String(this.additionalArgs.profile)\n )!;\n }\n\n if (!this.config.napi.release && this.additionalArgs.release) {\n this.config.napi.release = Boolean(this.additionalArgs.release);\n }\n\n if (\n !this.config.napi.configPath &&\n this.additionalArgs.configPath &&\n (isString(this.additionalArgs.configPath) ||\n (Array.isArray(this.additionalArgs.configPath) &&\n this.additionalArgs.configPath.length > 0))\n ) {\n this.config.napi.configPath = (\n Array.isArray(this.additionalArgs.configPath) &&\n this.additionalArgs.configPath.length > 0\n ? this.additionalArgs.configPath[0]\n : String(this.additionalArgs.configPath)\n )!;\n }\n\n if (\n !this.config.napi.manifestPath &&\n this.additionalArgs.manifestPath &&\n (isString(this.additionalArgs.manifestPath) ||\n (Array.isArray(this.additionalArgs.manifestPath) &&\n this.additionalArgs.manifestPath.length > 0))\n ) {\n this.config.napi.manifestPath = (\n Array.isArray(this.additionalArgs.manifestPath) &&\n this.additionalArgs.manifestPath.length > 0\n ? this.additionalArgs.manifestPath[0]\n : String(this.additionalArgs.manifestPath)\n )!;\n }\n\n if (\n !this.config.napi.npmDir &&\n this.additionalArgs.npmDir &&\n (isString(this.additionalArgs.npmDir) ||\n (Array.isArray(this.additionalArgs.npmDir) &&\n this.additionalArgs.npmDir.length > 0))\n ) {\n this.config.napi.npmDir = (\n Array.isArray(this.additionalArgs.npmDir) &&\n this.additionalArgs.npmDir.length > 0\n ? this.additionalArgs.npmDir[0]\n : String(this.additionalArgs.npmDir)\n )!;\n }\n\n if (!this.config.napi.packageJsonPath) {\n if (\n this.additionalArgs.packageJsonPath &&\n (isString(this.additionalArgs.packageJsonPath) ||\n (Array.isArray(this.additionalArgs.packageJsonPath) &&\n this.additionalArgs.packageJsonPath.length > 0))\n ) {\n this.config.napi.packageJsonPath = (\n Array.isArray(this.additionalArgs.packageJsonPath) &&\n this.additionalArgs.packageJsonPath.length > 0\n ? this.additionalArgs.packageJsonPath[0]\n : String(this.additionalArgs.packageJsonPath)\n )!;\n }\n\n if (!this.config.napi.packageJsonPath) {\n this.config.napi.packageJsonPath = appendPath(\n this.config.root,\n \"package.json\"\n );\n }\n }\n\n if (this.config.napi.target?.platform === \"wasm\") {\n this.dependencies[\"@napi-rs/wasm-runtime\"] = \"^1.1.4\";\n }\n\n let packageJson = {} as Record<string, any>;\n let originalPackageJson = {} as Record<string, any>;\n\n if (this.fs.existsSync(this.config.napi.packageJsonPath)) {\n packageJson = JSON.parse(\n (await this.fs.read(this.config.napi.packageJsonPath)) || \"{}\"\n );\n }\n\n originalPackageJson = { ...packageJson };\n packageJson.napi = {\n binaryName: this.config.napi.binaryName,\n packageName: this.config.napi.packageName,\n targets: (this.config.napi.targets as Target[])?.map(\n target => target.triple\n ),\n npmClient: this.config.napi.npmClient,\n constEnum: this.config.napi.constEnum,\n dtsHeader: this.config.napi.dtsHeader,\n dtsHeaderFile: this.config.napi.dtsHeaderFile,\n ...packageJson.napi,\n wasm:\n this.config.napi.target?.platform === \"wasm\"\n ? defu(\n packageJson.napi?.wasm ?? {},\n this.config.napi.wasm ?? {},\n { initialMemory: 16384 }\n )\n : undefined\n };\n\n if (\n JSON.stringify(packageJson) !== JSON.stringify(originalPackageJson)\n ) {\n await this.fs.write(\n this.config.napi.packageJsonPath,\n JSON.stringify(packageJson, null, 2)\n );\n }\n },\n async prepare() {\n this.debug(\n `Preparing the N-API Rust runtime artifacts for the Powerlines project.`\n );\n\n this.napi = new NapiCli();\n\n if (this.config.napi.npmDir) {\n await this.napi.createNpmDirs({\n cwd: appendPath(this.config.root, this.config.cwd),\n npmDir: formatPath(this, this.config.napi.npmDir),\n configPath: formatPath(this, this.config.napi.configPath),\n packageJsonPath: formatPath(this, this.config.napi.packageJsonPath)\n });\n }\n },\n async build() {\n this.debug(\n `Building the N-API Rust runtime artifacts for the Powerlines project.`\n );\n\n const { task } = await this.napi.build({\n cwd: appendPath(this.config.root, this.config.cwd),\n package: this.config.napi.packageName,\n outputDir: formatPath(this, this.config.napi.outputDir),\n configPath: formatPath(this, this.config.napi.configPath),\n manifestPath: formatPath(this, this.config.napi.manifestPath),\n packageJsonPath: formatPath(this, this.config.napi.packageJsonPath),\n target: this.config.napi.target?.triple,\n profile: this.config.napi.profile,\n release:\n this.config.napi.release ?? this.config.mode === \"production\",\n features: this.config.napi.features,\n noDefaultFeatures: this.config.napi.noDefaultFeatures,\n strip: this.config.napi.strip,\n platform: this.config.napi.platform,\n noDtsHeader: this.config.napi.noDtsHeader,\n jsBinding: this.config.napi.jsBinding,\n dts: this.config.napi.dts,\n dtsCache: this.config.napi.dtsCache ?? !this.config.skipCache,\n verbose: isVerbose(this)\n });\n\n const outputs = await task;\n for (const output of outputs) {\n const code = await this.fs.read(output.path);\n if (code) {\n await this.fs.write(output.path, code);\n }\n }\n }\n }\n ] as Plugin<TContext>[];\n};\n\nexport default plugin;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.tsx"],"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 { NapiCli, parseTriple } from \"@napi-rs/cli\";\nimport { toArray } from \"@stryke/convert/to-array\";\nimport { appendPath } from \"@stryke/path/append\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport { defu } from \"defu\";\nimport { Plugin } from \"powerlines\";\nimport { isVerbose } from \"powerlines/plugin-utils\";\nimport { formatPath } from \"./helpers/format-path\";\nimport { DEFAULT_TARGETS } from \"./types\";\nimport type { NapiPluginContext, NapiPluginOptions } from \"./types/plugin\";\n\nexport type * from \"./types\";\n\ndeclare module \"powerlines\" {\n interface Config {\n napi?: NapiPluginOptions;\n }\n}\n\n/**\n * A Powerlines plugin for integrating with N-API Rust modules, providing features such as automatic generation of bindings and runtime integration with N-API Rust modules.\n *\n * @see https://napi.rs/docs\n */\nexport const plugin = <TContext extends NapiPluginContext = NapiPluginContext>(\n options: NapiPluginOptions = {}\n) => {\n return [\n {\n name: \"napi-rs\",\n config() {\n return {\n napi: {\n dts: \"binding.d.ts\",\n jsBinding: \"binding.js\",\n outputDir: this.config.root,\n platform: true,\n strip: false,\n ...options\n }\n };\n },\n async configResolved() {\n if (\n !this.config.napi.target &&\n this.additionalArgs.target &&\n (isString(this.additionalArgs.target) ||\n (Array.isArray(this.additionalArgs.target) &&\n this.additionalArgs.target.length > 0))\n ) {\n this.config.napi.target = parseTriple(\n (Array.isArray(this.additionalArgs.target) &&\n this.additionalArgs.target.length > 0\n ? this.additionalArgs.target[0]\n : String(this.additionalArgs.target))!\n );\n } else {\n this.config.napi.target = isString(this.config.napi.target)\n ? parseTriple(this.config.napi.target)\n : this.config.napi.target;\n }\n\n if (!this.config.napi.targets) {\n if (\n this.additionalArgs.targets &&\n (isString(this.additionalArgs.targets) ||\n (Array.isArray(this.additionalArgs.targets) &&\n this.additionalArgs.targets.length > 0))\n ) {\n this.config.napi.targets = toArray(this.additionalArgs.targets).map(\n (target: string) => parseTriple(target)\n );\n } else {\n this.config.napi.targets = DEFAULT_TARGETS.map(target =>\n parseTriple(target)\n );\n }\n }\n\n if (\n !this.config.napi.profile &&\n this.additionalArgs.profile &&\n (isString(this.additionalArgs.profile) ||\n (Array.isArray(this.additionalArgs.profile) &&\n this.additionalArgs.profile.length > 0))\n ) {\n this.config.napi.profile = (\n Array.isArray(this.additionalArgs.profile) &&\n this.additionalArgs.profile.length > 0\n ? this.additionalArgs.profile[0]\n : String(this.additionalArgs.profile)\n )!;\n }\n\n if (!this.config.napi.release && this.additionalArgs.release) {\n this.config.napi.release = Boolean(this.additionalArgs.release);\n }\n\n if (\n !this.config.napi.configPath &&\n this.additionalArgs.configPath &&\n (isString(this.additionalArgs.configPath) ||\n (Array.isArray(this.additionalArgs.configPath) &&\n this.additionalArgs.configPath.length > 0))\n ) {\n this.config.napi.configPath = (\n Array.isArray(this.additionalArgs.configPath) &&\n this.additionalArgs.configPath.length > 0\n ? this.additionalArgs.configPath[0]\n : String(this.additionalArgs.configPath)\n )!;\n }\n\n if (\n !this.config.napi.manifestPath &&\n this.additionalArgs.manifestPath &&\n (isString(this.additionalArgs.manifestPath) ||\n (Array.isArray(this.additionalArgs.manifestPath) &&\n this.additionalArgs.manifestPath.length > 0))\n ) {\n this.config.napi.manifestPath = (\n Array.isArray(this.additionalArgs.manifestPath) &&\n this.additionalArgs.manifestPath.length > 0\n ? this.additionalArgs.manifestPath[0]\n : String(this.additionalArgs.manifestPath)\n )!;\n }\n\n if (\n !this.config.napi.npmDir &&\n this.additionalArgs.npmDir &&\n (isString(this.additionalArgs.npmDir) ||\n (Array.isArray(this.additionalArgs.npmDir) &&\n this.additionalArgs.npmDir.length > 0))\n ) {\n this.config.napi.npmDir = (\n Array.isArray(this.additionalArgs.npmDir) &&\n this.additionalArgs.npmDir.length > 0\n ? this.additionalArgs.npmDir[0]\n : String(this.additionalArgs.npmDir)\n )!;\n }\n\n if (!this.config.napi.packageJsonPath) {\n if (\n this.additionalArgs.packageJsonPath &&\n (isString(this.additionalArgs.packageJsonPath) ||\n (Array.isArray(this.additionalArgs.packageJsonPath) &&\n this.additionalArgs.packageJsonPath.length > 0))\n ) {\n this.config.napi.packageJsonPath = (\n Array.isArray(this.additionalArgs.packageJsonPath) &&\n this.additionalArgs.packageJsonPath.length > 0\n ? this.additionalArgs.packageJsonPath[0]\n : String(this.additionalArgs.packageJsonPath)\n )!;\n }\n\n if (!this.config.napi.packageJsonPath) {\n this.config.napi.packageJsonPath = appendPath(\n this.config.root,\n \"package.json\"\n );\n }\n }\n\n if (this.config.napi.target?.platform === \"wasm\") {\n this.dependencies[\"@napi-rs/wasm-runtime\"] = \"^1.1.4\";\n }\n\n let packageJson = {} as Record<string, any>;\n let originalPackageJson = {} as Record<string, any>;\n\n if (this.fs.existsSync(this.config.napi.packageJsonPath)) {\n packageJson = JSON.parse(\n (await this.fs.read(this.config.napi.packageJsonPath)) || \"{}\"\n );\n }\n\n originalPackageJson = { ...packageJson };\n packageJson.napi = {\n binaryName: this.config.napi.binaryName,\n packageName: this.config.napi.packageName,\n targets: this.config.napi.targets?.map(target => target.triple),\n npmClient: this.config.napi.npmClient,\n constEnum: this.config.napi.constEnum,\n dtsHeader: this.config.napi.dtsHeader,\n dtsHeaderFile: this.config.napi.dtsHeaderFile,\n ...packageJson.napi,\n wasm:\n this.config.napi.target?.platform === \"wasm\"\n ? defu(\n packageJson.napi?.wasm ?? {},\n this.config.napi.wasm ?? {},\n { initialMemory: 16384 }\n )\n : undefined\n };\n\n if (\n JSON.stringify(packageJson) !== JSON.stringify(originalPackageJson)\n ) {\n await this.fs.write(\n this.config.napi.packageJsonPath,\n JSON.stringify(packageJson, null, 2)\n );\n }\n },\n async prepare() {\n this.debug(\n `Preparing the N-API Rust runtime artifacts for the Powerlines project.`\n );\n\n this.napi = new NapiCli();\n\n if (this.config.napi.npmDir) {\n await this.napi.createNpmDirs({\n cwd: appendPath(this.config.root, this.config.cwd),\n npmDir: formatPath(this, this.config.napi.npmDir),\n configPath: formatPath(this, this.config.napi.configPath),\n packageJsonPath: formatPath(this, this.config.napi.packageJsonPath)\n });\n }\n },\n async build() {\n this.debug(\n `Building the N-API Rust runtime artifacts for the Powerlines project.`\n );\n\n const { task } = await this.napi.build({\n cwd: appendPath(this.config.root, this.config.cwd),\n package: this.config.napi.packageName,\n outputDir: formatPath(this, this.config.napi.outputDir),\n configPath: formatPath(this, this.config.napi.configPath),\n manifestPath: formatPath(this, this.config.napi.manifestPath),\n packageJsonPath: formatPath(this, this.config.napi.packageJsonPath),\n target: this.config.napi.target?.triple,\n profile: this.config.napi.profile,\n release:\n this.config.napi.release ?? this.config.mode === \"production\",\n features: this.config.napi.features,\n noDefaultFeatures: this.config.napi.noDefaultFeatures,\n strip: this.config.napi.strip,\n platform: this.config.napi.platform,\n noDtsHeader: this.config.napi.noDtsHeader,\n jsBinding: this.config.napi.jsBinding,\n dts: this.config.napi.dts,\n dtsCache: this.config.napi.dtsCache ?? !this.config.skipCache,\n verbose: isVerbose(this)\n });\n\n const outputs = await task;\n for (const output of outputs) {\n const code = await this.fs.read(output.path);\n if (code) {\n await this.fs.write(output.path, code);\n }\n }\n }\n }\n ] as Plugin<TContext>[];\n};\n\nexport default plugin;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powerlines/plugin-napi-rs",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "private": false,
5
5
  "description": "A package containing a Powerlines plugin for integrating with N-API Rust modules.",
6
6
  "keywords": ["napi-rs", "powerlines", "storm-software", "powerlines-plugin"],
@@ -137,9 +137,9 @@
137
137
  "@alloy-js/markdown": "0.23.0-dev.1",
138
138
  "@alloy-js/typescript": "0.23.0-dev.4",
139
139
  "@napi-rs/cli": "^3.6.2",
140
- "@powerlines/plugin-alloy": "^0.26.43",
141
- "@powerlines/plugin-automd": "^0.1.425",
142
- "@powerlines/plugin-plugin": "^0.12.376",
140
+ "@powerlines/plugin-alloy": "^0.26.45",
141
+ "@powerlines/plugin-automd": "^0.1.427",
142
+ "@powerlines/plugin-plugin": "^0.12.378",
143
143
  "@stryke/fs": "^0.33.67",
144
144
  "@stryke/path": "^0.27.5",
145
145
  "@stryke/string-format": "^0.17.10",
@@ -147,12 +147,12 @@
147
147
  "@stryke/types": "^0.11.4",
148
148
  "automd": "^0.4.3",
149
149
  "defu": "^6.1.7",
150
- "powerlines": "^0.43.24"
150
+ "powerlines": "^0.14.5"
151
151
  },
152
152
  "devDependencies": { "@types/node": "^25.6.0" },
153
153
  "peerDependencies": { "@napi-rs/wasm-runtime": ">=1.1.4" },
154
154
  "peerDependenciesMeta": { "@napi-rs/wasm-runtime": { "optional": true } },
155
155
  "publishConfig": { "access": "public" },
156
156
  "inlinedDependencies": { "@stryke/convert": "0.7.0" },
157
- "gitHead": "f148d4759d20c66a7f05f248680578f4329e8f3b"
157
+ "gitHead": "767acfdcdffbeb3c6129f8883cacfbc75369ee1b"
158
158
  }
@@ -1,29 +0,0 @@
1
- //#region \0rolldown/runtime.js
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") {
10
- for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
11
- key = keys[i];
12
- if (!__hasOwnProp.call(to, key) && key !== except) {
13
- __defProp(to, key, {
14
- get: ((k) => from[k]).bind(null, key),
15
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
- });
17
- }
18
- }
19
- }
20
- return to;
21
- };
22
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
23
- value: mod,
24
- enumerable: true
25
- }) : target, mod));
26
-
27
- //#endregion
28
-
29
- exports.__toESM = __toESM;