@powerlines/plugin-napi-rs 0.2.172 → 0.2.174
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/helpers/format-path.d.mts.map +1 -1
- package/dist/helpers/format-path.mjs.map +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types/plugin.d.mts.map +1 -1
- package/dist/types/plugin.mjs.map +1 -1
- package/dist/types/targets.d.mts.map +1 -1
- package/dist/types/targets.mjs.map +1 -1
- package/dist/types/wasm.d.mts.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-path.d.mts","names":[],"sources":["../../src/helpers/format-path.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"format-path.d.mts","names":[],"sources":["../../src/helpers/format-path.ts"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-path.mjs","names":[],"sources":[
|
|
1
|
+
{"version":3,"file":"format-path.mjs","names":[],"sources":[],"mappings":""}
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.tsx"],"mappings":""}
|
package/dist/index.mjs.map
CHANGED
|
@@ -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 { 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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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.mts","names":[],"sources":["../../src/types/plugin.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.d.mts","names":[],"sources":["../../src/types/plugin.ts"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.mjs","names":[],"sources":[
|
|
1
|
+
{"version":3,"file":"plugin.mjs","names":[],"sources":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targets.d.mts","names":[],"sources":["../../src/types/targets.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"targets.d.mts","names":[],"sources":["../../src/types/targets.ts"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targets.mjs","names":[],"sources":[
|
|
1
|
+
{"version":3,"file":"targets.mjs","names":[],"sources":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm.d.mts","names":[],"sources":["../../src/types/wasm.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"wasm.d.mts","names":[],"sources":["../../src/types/wasm.ts"],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powerlines/plugin-napi-rs",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.174",
|
|
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",
|
|
138
138
|
"@alloy-js/typescript": "^0.23.0",
|
|
139
139
|
"@napi-rs/cli": "^3.7.0",
|
|
140
|
-
"@powerlines/plugin-alloy": "0.26.
|
|
141
|
-
"@powerlines/plugin-automd": "0.1.
|
|
142
|
-
"@powerlines/plugin-plugin": "0.12.
|
|
140
|
+
"@powerlines/plugin-alloy": "0.26.217",
|
|
141
|
+
"@powerlines/plugin-automd": "0.1.585",
|
|
142
|
+
"@powerlines/plugin-plugin": "0.12.536",
|
|
143
143
|
"@stryke/convert": "^0.7.15",
|
|
144
144
|
"@stryke/fs": "^0.33.85",
|
|
145
145
|
"@stryke/path": "^0.29.11",
|
|
@@ -148,11 +148,11 @@
|
|
|
148
148
|
"@stryke/types": "^0.12.12",
|
|
149
149
|
"automd": "^0.4.3",
|
|
150
150
|
"defu": "^6.1.7",
|
|
151
|
-
"powerlines": "0.47.
|
|
151
|
+
"powerlines": "0.47.124"
|
|
152
152
|
},
|
|
153
153
|
"devDependencies": { "@types/node": "^25.9.1" },
|
|
154
154
|
"peerDependencies": { "@napi-rs/wasm-runtime": ">=1.1.4" },
|
|
155
155
|
"peerDependenciesMeta": { "@napi-rs/wasm-runtime": { "optional": true } },
|
|
156
156
|
"publishConfig": { "access": "public" },
|
|
157
|
-
"gitHead": "
|
|
157
|
+
"gitHead": "1530c8cbb090f1f728d112475074eb3a86070557"
|
|
158
158
|
}
|