@push.rocks/smartrust 1.3.1 → 1.4.0
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/.smartconfig.json +37 -0
- package/dist_ts/00_commitinfo_data.js +3 -3
- package/dist_ts/classes.rustbinarylocator.d.ts +1 -0
- package/dist_ts/classes.rustbinarylocator.js +15 -1
- package/license +19 -0
- package/package.json +38 -8
- package/readme.md +2 -4
- package/ts/00_commitinfo_data.ts +2 -2
- package/ts/classes.rustbinarylocator.ts +15 -0
- package/.gitea/workflows/default_nottags.yaml +0 -66
- package/.gitea/workflows/default_tags.yaml +0 -124
- package/.vscode/launch.json +0 -11
- package/.vscode/settings.json +0 -26
- package/changelog.md +0 -78
- package/npmextra.json +0 -24
- package/test/helpers/mock-rust-binary.mjs +0 -104
- package/test/helpers/mock-socket-server.mjs +0 -124
- package/test/test.linescanner.node.ts +0 -89
- package/test/test.rustbinarylocator.node.ts +0 -98
- package/test/test.rustbridge.node.ts +0 -440
- package/test/test.sockettransport.node.ts +0 -312
- package/test/test.ts +0 -12
- package/tsconfig.json +0 -12
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"@git.zone/cli": {
|
|
3
|
+
"projectType": "npm",
|
|
4
|
+
"module": {
|
|
5
|
+
"githost": "code.foss.global",
|
|
6
|
+
"gitscope": "push.rocks",
|
|
7
|
+
"gitrepo": "smartrust",
|
|
8
|
+
"description": "A type-safe bridge between JavaScript engines and Rust binaries.",
|
|
9
|
+
"npmPackagename": "@push.rocks/smartrust",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"projectDomain": "push.rocks",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"rust",
|
|
14
|
+
"typescript",
|
|
15
|
+
"ipc",
|
|
16
|
+
"bridge",
|
|
17
|
+
"stdio",
|
|
18
|
+
"socket",
|
|
19
|
+
"binary",
|
|
20
|
+
"transport"
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"release": {
|
|
24
|
+
"accessLevel": "public",
|
|
25
|
+
"registries": [
|
|
26
|
+
"https://verdaccio.lossless.digital",
|
|
27
|
+
"https://registry.npmjs.org"
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"@git.zone/tsdoc": {
|
|
32
|
+
"legal": "\n## License and Legal Information\n\nThis repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [license](./license) file.\n\n**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.\n\n### Trademarks\n\nThis project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH or third parties, and are not included within the scope of the MIT license granted herein.\n\nUse of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines or the guidelines of the respective third-party owners, and any usage must be approved in writing. Third-party trademarks used herein are the property of their respective owners and used only in a descriptive manner, e.g. for an implementation of an API or similar.\n\n### Company Information\n\nTask Venture Capital GmbH\nRegistered at District Court Bremen HRB 35230 HB, Germany\n\nFor any legal inquiries or further information, please contact us via email at hello@task.vc.\n\nBy using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.\n"
|
|
33
|
+
},
|
|
34
|
+
"@ship.zone/szci": {
|
|
35
|
+
"npmGlobalTools": []
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@push.rocks/smartrust',
|
|
6
|
-
version: '1.
|
|
7
|
-
description: '
|
|
6
|
+
version: '1.4.0',
|
|
7
|
+
description: 'A type-safe bridge between JavaScript engines and Rust binaries.'
|
|
8
8
|
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx1QkFBdUI7SUFDN0IsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLGtFQUFrRTtDQUNoRixDQUFBIn0=
|
|
@@ -70,11 +70,18 @@ export class RustBinaryLocator {
|
|
|
70
70
|
plugins.path.resolve(process.cwd(), `rust/target/release/${binaryName}`),
|
|
71
71
|
plugins.path.resolve(process.cwd(), `rust/target/debug/${binaryName}`),
|
|
72
72
|
];
|
|
73
|
+
const platformSuffix = this.getPlatformSuffix();
|
|
73
74
|
for (const localPath of localPaths) {
|
|
74
75
|
if (await this.isExecutable(localPath)) {
|
|
75
76
|
this.logger.log('info', `Binary found at local path: ${localPath}`);
|
|
76
77
|
return localPath;
|
|
77
78
|
}
|
|
79
|
+
// Also try with platform suffix (tsrust convention: binaryName_linux_amd64)
|
|
80
|
+
const suffixedPath = `${localPath}_${platformSuffix}`;
|
|
81
|
+
if (await this.isExecutable(suffixedPath)) {
|
|
82
|
+
this.logger.log('info', `Binary found at local path (platform-suffixed): ${suffixedPath}`);
|
|
83
|
+
return suffixedPath;
|
|
84
|
+
}
|
|
78
85
|
}
|
|
79
86
|
// 5. System PATH
|
|
80
87
|
if (this.options.searchSystemPath !== false) {
|
|
@@ -123,6 +130,13 @@ export class RustBinaryLocator {
|
|
|
123
130
|
}
|
|
124
131
|
}
|
|
125
132
|
}
|
|
133
|
+
getPlatformSuffix() {
|
|
134
|
+
const archMap = { x64: 'amd64', arm64: 'arm64' };
|
|
135
|
+
const platformMap = { linux: 'linux', darwin: 'darwin', win32: 'windows' };
|
|
136
|
+
const platform = platformMap[process.platform] || process.platform;
|
|
137
|
+
const arch = archMap[process.arch] || process.arch;
|
|
138
|
+
return `${platform}_${arch}`;
|
|
139
|
+
}
|
|
126
140
|
async findInPath(binaryName) {
|
|
127
141
|
const pathDirs = (process.env.PATH || '').split(plugins.path.delimiter);
|
|
128
142
|
for (const dir of pathDirs) {
|
|
@@ -134,4 +148,4 @@ export class RustBinaryLocator {
|
|
|
134
148
|
return null;
|
|
135
149
|
}
|
|
136
150
|
}
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5ydXN0YmluYXJ5bG9jYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2NsYXNzZXMucnVzdGJpbmFyeWxvY2F0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFHeEMsTUFBTSxhQUFhLEdBQXNCO0lBQ3ZDLEdBQUcsS0FBSSxDQUFDO0NBQ1QsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBQ3BCLE9BQU8sQ0FBd0I7SUFDL0IsTUFBTSxDQUFvQjtJQUMxQixVQUFVLEdBQWtCLElBQUksQ0FBQztJQUV6QyxZQUFZLE9BQThCLEVBQUUsTUFBMEI7UUFDcEUsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLElBQUksYUFBYSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsVUFBVTtRQUNyQixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLFVBQVU7UUFDZixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRU8sS0FBSyxDQUFDLFlBQVk7UUFDeEIsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFcEMsbUNBQW1DO1FBQ25DLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1QixJQUFJLE1BQU0sSUFB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
|
package/license
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Copyright (c) 2014 Task Venture Capital GmbH (hello@task.vc)
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
5
|
+
in the Software without restriction, including without limitation the rights
|
|
6
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
8
|
+
furnished to do so, subject to the following conditions:
|
|
9
|
+
|
|
10
|
+
The above copyright notice and this permission notice shall be included in all
|
|
11
|
+
copies or substantial portions of the Software.
|
|
12
|
+
|
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
19
|
+
SOFTWARE.
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@push.rocks/smartrust",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"private": false,
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "A type-safe bridge between JavaScript engines and Rust binaries.",
|
|
6
6
|
"main": "dist_ts/index.js",
|
|
7
7
|
"typings": "dist_ts/index.d.ts",
|
|
8
8
|
"type": "module",
|
|
@@ -10,16 +10,46 @@
|
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"scripts": {
|
|
12
12
|
"test": "(tstest test/ --verbose --logfile --timeout 60)",
|
|
13
|
-
"build": "(tsbuild tsfolders
|
|
13
|
+
"build": "(tsbuild tsfolders)",
|
|
14
14
|
"buildDocs": "(tsdoc)"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
|
-
"@git.zone/tsbuild": "^4.
|
|
18
|
-
"@git.zone/tsrun": "^2.0.
|
|
19
|
-
"@git.zone/tstest": "^3.
|
|
20
|
-
"@types/node": "^25.
|
|
17
|
+
"@git.zone/tsbuild": "^4.4.0",
|
|
18
|
+
"@git.zone/tsrun": "^2.0.2",
|
|
19
|
+
"@git.zone/tstest": "^3.6.3",
|
|
20
|
+
"@types/node": "^25.6.0"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@push.rocks/smartpath": "^6.0.0"
|
|
24
|
-
}
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"ts/**/*",
|
|
27
|
+
"dist/**/*",
|
|
28
|
+
"dist_*/**/*",
|
|
29
|
+
"dist_ts/**/*",
|
|
30
|
+
"assets/**/*",
|
|
31
|
+
"cli.js",
|
|
32
|
+
".smartconfig.json",
|
|
33
|
+
"license",
|
|
34
|
+
"readme.md"
|
|
35
|
+
],
|
|
36
|
+
"keywords": [
|
|
37
|
+
"rust",
|
|
38
|
+
"typescript",
|
|
39
|
+
"ipc",
|
|
40
|
+
"bridge",
|
|
41
|
+
"stdio",
|
|
42
|
+
"socket",
|
|
43
|
+
"binary",
|
|
44
|
+
"transport"
|
|
45
|
+
],
|
|
46
|
+
"homepage": "https://code.foss.global/push.rocks/smartrust#readme",
|
|
47
|
+
"repository": {
|
|
48
|
+
"type": "git",
|
|
49
|
+
"url": "https://code.foss.global/push.rocks/smartrust.git"
|
|
50
|
+
},
|
|
51
|
+
"bugs": {
|
|
52
|
+
"url": "https://code.foss.global/push.rocks/smartrust/issues"
|
|
53
|
+
},
|
|
54
|
+
"packageManager": "pnpm@10.28.2"
|
|
25
55
|
}
|
package/readme.md
CHANGED
|
@@ -9,9 +9,7 @@ For reporting bugs, issues, or security vulnerabilities, please visit [community
|
|
|
9
9
|
## Install 📦
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
|
|
13
|
-
# or
|
|
14
|
-
pnpm install @push.rocks/smartrust
|
|
12
|
+
pnpm add @push.rocks/smartrust
|
|
15
13
|
```
|
|
16
14
|
|
|
17
15
|
## Overview 🔭
|
|
@@ -556,7 +554,7 @@ fn main() {
|
|
|
556
554
|
|
|
557
555
|
## License and Legal Information
|
|
558
556
|
|
|
559
|
-
This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [
|
|
557
|
+
This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [license](./license) file.
|
|
560
558
|
|
|
561
559
|
**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.
|
|
562
560
|
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -81,11 +81,18 @@ export class RustBinaryLocator {
|
|
|
81
81
|
plugins.path.resolve(process.cwd(), `rust/target/release/${binaryName}`),
|
|
82
82
|
plugins.path.resolve(process.cwd(), `rust/target/debug/${binaryName}`),
|
|
83
83
|
];
|
|
84
|
+
const platformSuffix = this.getPlatformSuffix();
|
|
84
85
|
for (const localPath of localPaths) {
|
|
85
86
|
if (await this.isExecutable(localPath)) {
|
|
86
87
|
this.logger.log('info', `Binary found at local path: ${localPath}`);
|
|
87
88
|
return localPath;
|
|
88
89
|
}
|
|
90
|
+
// Also try with platform suffix (tsrust convention: binaryName_linux_amd64)
|
|
91
|
+
const suffixedPath = `${localPath}_${platformSuffix}`;
|
|
92
|
+
if (await this.isExecutable(suffixedPath)) {
|
|
93
|
+
this.logger.log('info', `Binary found at local path (platform-suffixed): ${suffixedPath}`);
|
|
94
|
+
return suffixedPath;
|
|
95
|
+
}
|
|
89
96
|
}
|
|
90
97
|
|
|
91
98
|
// 5. System PATH
|
|
@@ -137,6 +144,14 @@ export class RustBinaryLocator {
|
|
|
137
144
|
}
|
|
138
145
|
}
|
|
139
146
|
|
|
147
|
+
private getPlatformSuffix(): string {
|
|
148
|
+
const archMap: Record<string, string> = { x64: 'amd64', arm64: 'arm64' };
|
|
149
|
+
const platformMap: Record<string, string> = { linux: 'linux', darwin: 'darwin', win32: 'windows' };
|
|
150
|
+
const platform = platformMap[process.platform] || process.platform;
|
|
151
|
+
const arch = archMap[process.arch] || process.arch;
|
|
152
|
+
return `${platform}_${arch}`;
|
|
153
|
+
}
|
|
154
|
+
|
|
140
155
|
private async findInPath(binaryName: string): Promise<string | null> {
|
|
141
156
|
const pathDirs = (process.env.PATH || '').split(plugins.path.delimiter);
|
|
142
157
|
for (const dir of pathDirs) {
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
name: Default (not tags)
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
tags-ignore:
|
|
6
|
-
- '**'
|
|
7
|
-
|
|
8
|
-
env:
|
|
9
|
-
IMAGE: code.foss.global/host.today/ht-docker-node:npmci
|
|
10
|
-
NPMCI_COMPUTED_REPOURL: https://${{gitea.repository_owner}}:${{secrets.GITEA_TOKEN}}@code.foss.global/${{gitea.repository}}.git
|
|
11
|
-
NPMCI_TOKEN_NPM: ${{secrets.NPMCI_TOKEN_NPM}}
|
|
12
|
-
NPMCI_TOKEN_NPM2: ${{secrets.NPMCI_TOKEN_NPM2}}
|
|
13
|
-
NPMCI_GIT_GITHUBTOKEN: ${{secrets.NPMCI_GIT_GITHUBTOKEN}}
|
|
14
|
-
NPMCI_URL_CLOUDLY: ${{secrets.NPMCI_URL_CLOUDLY}}
|
|
15
|
-
|
|
16
|
-
jobs:
|
|
17
|
-
security:
|
|
18
|
-
runs-on: ubuntu-latest
|
|
19
|
-
continue-on-error: true
|
|
20
|
-
container:
|
|
21
|
-
image: ${{ env.IMAGE }}
|
|
22
|
-
|
|
23
|
-
steps:
|
|
24
|
-
- uses: actions/checkout@v3
|
|
25
|
-
|
|
26
|
-
- name: Install pnpm and npmci
|
|
27
|
-
run: |
|
|
28
|
-
pnpm install -g pnpm
|
|
29
|
-
pnpm install -g @ship.zone/npmci
|
|
30
|
-
|
|
31
|
-
- name: Run npm prepare
|
|
32
|
-
run: npmci npm prepare
|
|
33
|
-
|
|
34
|
-
- name: Audit production dependencies
|
|
35
|
-
run: |
|
|
36
|
-
npmci command npm config set registry https://registry.npmjs.org
|
|
37
|
-
npmci command pnpm audit --audit-level=high --prod
|
|
38
|
-
continue-on-error: true
|
|
39
|
-
|
|
40
|
-
- name: Audit development dependencies
|
|
41
|
-
run: |
|
|
42
|
-
npmci command npm config set registry https://registry.npmjs.org
|
|
43
|
-
npmci command pnpm audit --audit-level=high --dev
|
|
44
|
-
continue-on-error: true
|
|
45
|
-
|
|
46
|
-
test:
|
|
47
|
-
if: ${{ always() }}
|
|
48
|
-
needs: security
|
|
49
|
-
runs-on: ubuntu-latest
|
|
50
|
-
container:
|
|
51
|
-
image: ${{ env.IMAGE }}
|
|
52
|
-
|
|
53
|
-
steps:
|
|
54
|
-
- uses: actions/checkout@v3
|
|
55
|
-
|
|
56
|
-
- name: Test stable
|
|
57
|
-
run: |
|
|
58
|
-
npmci node install stable
|
|
59
|
-
npmci npm install
|
|
60
|
-
npmci npm test
|
|
61
|
-
|
|
62
|
-
- name: Test build
|
|
63
|
-
run: |
|
|
64
|
-
npmci node install stable
|
|
65
|
-
npmci npm install
|
|
66
|
-
npmci npm build
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
name: Default (tags)
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
tags:
|
|
6
|
-
- '*'
|
|
7
|
-
|
|
8
|
-
env:
|
|
9
|
-
IMAGE: code.foss.global/host.today/ht-docker-node:npmci
|
|
10
|
-
NPMCI_COMPUTED_REPOURL: https://${{gitea.repository_owner}}:${{secrets.GITEA_TOKEN}}@code.foss.global/${{gitea.repository}}.git
|
|
11
|
-
NPMCI_TOKEN_NPM: ${{secrets.NPMCI_TOKEN_NPM}}
|
|
12
|
-
NPMCI_TOKEN_NPM2: ${{secrets.NPMCI_TOKEN_NPM2}}
|
|
13
|
-
NPMCI_GIT_GITHUBTOKEN: ${{secrets.NPMCI_GIT_GITHUBTOKEN}}
|
|
14
|
-
NPMCI_URL_CLOUDLY: ${{secrets.NPMCI_URL_CLOUDLY}}
|
|
15
|
-
|
|
16
|
-
jobs:
|
|
17
|
-
security:
|
|
18
|
-
runs-on: ubuntu-latest
|
|
19
|
-
continue-on-error: true
|
|
20
|
-
container:
|
|
21
|
-
image: ${{ env.IMAGE }}
|
|
22
|
-
|
|
23
|
-
steps:
|
|
24
|
-
- uses: actions/checkout@v3
|
|
25
|
-
|
|
26
|
-
- name: Prepare
|
|
27
|
-
run: |
|
|
28
|
-
pnpm install -g pnpm
|
|
29
|
-
pnpm install -g @ship.zone/npmci
|
|
30
|
-
npmci npm prepare
|
|
31
|
-
|
|
32
|
-
- name: Audit production dependencies
|
|
33
|
-
run: |
|
|
34
|
-
npmci command npm config set registry https://registry.npmjs.org
|
|
35
|
-
npmci command pnpm audit --audit-level=high --prod
|
|
36
|
-
continue-on-error: true
|
|
37
|
-
|
|
38
|
-
- name: Audit development dependencies
|
|
39
|
-
run: |
|
|
40
|
-
npmci command npm config set registry https://registry.npmjs.org
|
|
41
|
-
npmci command pnpm audit --audit-level=high --dev
|
|
42
|
-
continue-on-error: true
|
|
43
|
-
|
|
44
|
-
test:
|
|
45
|
-
if: ${{ always() }}
|
|
46
|
-
needs: security
|
|
47
|
-
runs-on: ubuntu-latest
|
|
48
|
-
container:
|
|
49
|
-
image: ${{ env.IMAGE }}
|
|
50
|
-
|
|
51
|
-
steps:
|
|
52
|
-
- uses: actions/checkout@v3
|
|
53
|
-
|
|
54
|
-
- name: Prepare
|
|
55
|
-
run: |
|
|
56
|
-
pnpm install -g pnpm
|
|
57
|
-
pnpm install -g @ship.zone/npmci
|
|
58
|
-
npmci npm prepare
|
|
59
|
-
|
|
60
|
-
- name: Test stable
|
|
61
|
-
run: |
|
|
62
|
-
npmci node install stable
|
|
63
|
-
npmci npm install
|
|
64
|
-
npmci npm test
|
|
65
|
-
|
|
66
|
-
- name: Test build
|
|
67
|
-
run: |
|
|
68
|
-
npmci node install stable
|
|
69
|
-
npmci npm install
|
|
70
|
-
npmci npm build
|
|
71
|
-
|
|
72
|
-
release:
|
|
73
|
-
needs: test
|
|
74
|
-
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
|
|
75
|
-
runs-on: ubuntu-latest
|
|
76
|
-
container:
|
|
77
|
-
image: ${{ env.IMAGE }}
|
|
78
|
-
|
|
79
|
-
steps:
|
|
80
|
-
- uses: actions/checkout@v3
|
|
81
|
-
|
|
82
|
-
- name: Prepare
|
|
83
|
-
run: |
|
|
84
|
-
pnpm install -g pnpm
|
|
85
|
-
pnpm install -g @ship.zone/npmci
|
|
86
|
-
npmci npm prepare
|
|
87
|
-
|
|
88
|
-
- name: Release
|
|
89
|
-
run: |
|
|
90
|
-
npmci node install stable
|
|
91
|
-
npmci npm publish
|
|
92
|
-
|
|
93
|
-
metadata:
|
|
94
|
-
needs: test
|
|
95
|
-
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
|
|
96
|
-
runs-on: ubuntu-latest
|
|
97
|
-
container:
|
|
98
|
-
image: ${{ env.IMAGE }}
|
|
99
|
-
continue-on-error: true
|
|
100
|
-
|
|
101
|
-
steps:
|
|
102
|
-
- uses: actions/checkout@v3
|
|
103
|
-
|
|
104
|
-
- name: Prepare
|
|
105
|
-
run: |
|
|
106
|
-
pnpm install -g pnpm
|
|
107
|
-
pnpm install -g @ship.zone/npmci
|
|
108
|
-
npmci npm prepare
|
|
109
|
-
|
|
110
|
-
- name: Code quality
|
|
111
|
-
run: |
|
|
112
|
-
npmci command npm install -g typescript
|
|
113
|
-
npmci npm install
|
|
114
|
-
|
|
115
|
-
- name: Trigger
|
|
116
|
-
run: npmci trigger
|
|
117
|
-
|
|
118
|
-
- name: Build docs and upload artifacts
|
|
119
|
-
run: |
|
|
120
|
-
npmci node install stable
|
|
121
|
-
npmci npm install
|
|
122
|
-
pnpm install -g @git.zone/tsdoc
|
|
123
|
-
npmci command tsdoc
|
|
124
|
-
continue-on-error: true
|
package/.vscode/launch.json
DELETED
package/.vscode/settings.json
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"json.schemas": [
|
|
3
|
-
{
|
|
4
|
-
"fileMatch": ["/npmextra.json"],
|
|
5
|
-
"schema": {
|
|
6
|
-
"type": "object",
|
|
7
|
-
"properties": {
|
|
8
|
-
"npmci": {
|
|
9
|
-
"type": "object",
|
|
10
|
-
"description": "settings for npmci"
|
|
11
|
-
},
|
|
12
|
-
"gitzone": {
|
|
13
|
-
"type": "object",
|
|
14
|
-
"description": "settings for gitzone",
|
|
15
|
-
"properties": {
|
|
16
|
-
"projectType": {
|
|
17
|
-
"type": "string",
|
|
18
|
-
"enum": ["website", "element", "service", "npm", "wcc"]
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
]
|
|
26
|
-
}
|
package/changelog.md
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## 2026-02-26 - 1.3.1 - fix(readme)
|
|
4
|
-
document socket transport and clarify stdio/socket differences in README
|
|
5
|
-
|
|
6
|
-
- Add 'Two Transport Modes' section documenting stdio (spawn) and socket (connect) modes
|
|
7
|
-
- Add examples for connect(), socket usage, and auto-reconnect with exponential backoff
|
|
8
|
-
- Clarify protocol is transport-agnostic and update ready/stream/event descriptions
|
|
9
|
-
- Update event docs: mark stderr as stdio-only and add 'reconnected' event for socket transports
|
|
10
|
-
- Clarify kill() behavior for both stdio and socket transports
|
|
11
|
-
- Add API reference entries for SocketTransport, StdioTransport, ISocketConnectOptions, IRustTransport, and LineScanner
|
|
12
|
-
- Add platform notes, architecture diagram, and minimal Rust/socket usage guidance
|
|
13
|
-
|
|
14
|
-
## 2026-02-26 - 1.3.0 - feat(transport)
|
|
15
|
-
introduce transport abstraction and socket-mode support for RustBridge
|
|
16
|
-
|
|
17
|
-
- Add IRustTransport interface and two transport implementations: StdioTransport (spawns child process and uses stdin/stdout) and SocketTransport (connects to Unix socket / Windows named pipe).
|
|
18
|
-
- Refactor RustBridge to use a transport abstraction (connectWithTransport) and add connect(socketPath) to attach to an existing daemon via socket.
|
|
19
|
-
- Introduce LineScanner: a buffer-based newline scanner used by both transports to handle large/newline-delimited messages and avoid OOMs.
|
|
20
|
-
- Add socket connection options (autoReconnect, reconnectBaseDelayMs, reconnectMaxDelayMs, maxReconnectAttempts) and implement auto-reconnect/backoff behavior in SocketTransport.
|
|
21
|
-
- Implement backpressure-aware write semantics and proper disconnect/cleanup for both transports; RustBridge.kill() now disconnects the transport instead of directly managing processes.
|
|
22
|
-
- Add tests and tooling: socket transport tests, line scanner tests, and a mock-socket-server.mjs helper script for testing socket mode.
|
|
23
|
-
- Export new symbols (StdioTransport, SocketTransport, LineScanner) and update plugins to expose net; update interfaces to export transport types.
|
|
24
|
-
|
|
25
|
-
## 2026-02-12 - 1.2.1 - fix(rust-binary-locator)
|
|
26
|
-
auto-fix missing execute permission for located Rust binaries
|
|
27
|
-
|
|
28
|
-
- If a located binary exists but lacks the execute bit, attempt to chmod it to 0o755 and treat it as executable.
|
|
29
|
-
- Logs an info message when the auto-fix is applied: 'Auto-fixed missing execute permission on: <filePath>'.
|
|
30
|
-
- Addresses cases where npm/pnpm installs remove the execute permission from bundled binaries.
|
|
31
|
-
|
|
32
|
-
## 2026-02-11 - 1.2.0 - feat(rustbridge)
|
|
33
|
-
add streaming responses and robust large-payload/backpressure handling to RustBridge
|
|
34
|
-
|
|
35
|
-
- Introduce StreamingResponse type and export it (for-await-of iterator + .result promise)
|
|
36
|
-
- Add sendCommandStreaming API to send streaming commands and receive chunks + final result
|
|
37
|
-
- Implement buffer-based stdout newline scanner to handle large messages and avoid readline limits
|
|
38
|
-
- Add backpressure-aware writeToStdin to wait for drain when writing large outbound payloads
|
|
39
|
-
- Add maxPayloadSize option and enforce outbound/inbound size checks to prevent OOMs
|
|
40
|
-
- Add streamTimeoutMs (inactivity timeout) and reset timeout on each received chunk
|
|
41
|
-
- Improve stderr handling (cross-chunk buffering and trimmed emits)
|
|
42
|
-
- Update mock test binary and extensive tests for streaming, large payloads, concurrency, and error cases
|
|
43
|
-
- Add TypeScript types for streaming commands (TStreamingCommandKeys, TExtractChunk, IManagementStreamChunk)
|
|
44
|
-
|
|
45
|
-
## 2026-02-10 - 1.1.2 - fix(rust-binary-locator)
|
|
46
|
-
use import.meta.resolve and url.fileURLToPath to locate bundled Rust binary in ESM environments
|
|
47
|
-
|
|
48
|
-
- Replace require.resolve with import.meta.resolve to support ESM module resolution
|
|
49
|
-
- Convert resolved file URL to a filesystem path using url.fileURLToPath
|
|
50
|
-
- Export the url module from ts/plugins to provide fileURLToPath
|
|
51
|
-
|
|
52
|
-
## 2026-02-10 - 1.1.1 - fix(readme)
|
|
53
|
-
update README with comprehensive documentation, usage examples, API reference, installation instructions, and legal/company information
|
|
54
|
-
|
|
55
|
-
- Rewrote readme.md (≈ +298 −3 lines) to add detailed install, overview, IPC protocol, command definition examples, usage, API reference, issue reporting & security guidance, and legal/trademark/company information.
|
|
56
|
-
- Documentation-only change — no source code modified.
|
|
57
|
-
- Current package version is 1.1.0; recommend a patch release
|
|
58
|
-
|
|
59
|
-
## 2026-02-10 - 1.1.0 - feat(rustbridge)
|
|
60
|
-
add RustBridge and RustBinaryLocator with typed IPC interfaces, plugins, tests and mock runner; export from index; add npm registries
|
|
61
|
-
|
|
62
|
-
- Introduce RustBridge: spawn and manage a child binary, JSON-over-stdin/stdout request/response handling, events, timeouts, pending request tracking, kill/cleanup logic.
|
|
63
|
-
- Introduce RustBinaryLocator: multi-strategy binary discovery (explicit path, env var, platform-specific package, local build paths, system PATH) with caching and logger hooks.
|
|
64
|
-
- Add IPC and config TypeScript interfaces (IManagementRequest/Response/Event, ICommandDefinition, IBinaryLocatorOptions, IRustBridgeOptions) and re-export via interfaces/index.ts.
|
|
65
|
-
- Update ts/plugins.ts to export fs, child_process, readline and events for easier native integration.
|
|
66
|
-
- Add tests for RustBridge and RustBinaryLocator plus a test helper mock-rust-binary.mjs to simulate the IPC protocol and exercise commands, events, timeouts and locator behaviors.
|
|
67
|
-
- Update ts/index.ts to export RustBridge and RustBinaryLocator and export interfaces; update npmextra.json to include internal Verdaccio registry alongside npmjs.org.
|
|
68
|
-
|
|
69
|
-
## 2026-02-08 - 1.0.2 - fix()
|
|
70
|
-
no changes
|
|
71
|
-
|
|
72
|
-
- No changes detected in git diff; no release necessary.
|
|
73
|
-
|
|
74
|
-
## 2026-02-08 - 1.0.1 - initial release
|
|
75
|
-
Initial release of the project.
|
|
76
|
-
|
|
77
|
-
- Initial commit creating the project repository and baseline files.
|
|
78
|
-
- Tagged as version 1.0.1.
|
package/npmextra.json
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"@git.zone/cli": {
|
|
3
|
-
"projectType": "npm",
|
|
4
|
-
"module": {
|
|
5
|
-
"githost": "code.foss.global",
|
|
6
|
-
"gitscope": "push.rocks",
|
|
7
|
-
"gitrepo": "smartrust",
|
|
8
|
-
"description": "a bridge between JS engines and rust",
|
|
9
|
-
"npmPackagename": "@push.rocks/smartrust",
|
|
10
|
-
"license": "MIT",
|
|
11
|
-
"projectDomain": "push.rocks"
|
|
12
|
-
},
|
|
13
|
-
"release": {
|
|
14
|
-
"accessLevel": "public",
|
|
15
|
-
"registries": [
|
|
16
|
-
"https://verdaccio.lossless.digital",
|
|
17
|
-
"https://registry.npmjs.org"
|
|
18
|
-
]
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
"@ship.zone/szci": {
|
|
22
|
-
"npmGlobalTools": []
|
|
23
|
-
}
|
|
24
|
-
}
|