n8n-nodes-smbclient 1.1.4 → 1.2.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/.github/workflows/npm-publish.yml +61 -38
- package/.github/workflows/one-shot-npm-publish.yml +62 -13
- package/.github/workflows/security-cve.yml +53 -0
- package/CLAUDE.md +1 -1
- package/LICENSE.md +1 -0
- package/dist/nodes/Smb2/Smb2.node.js +0 -1
- package/dist/nodes/Smb2/Smb2.node.js.map +1 -1
- package/dist/package.json +15 -15
- package/docker/Dockerfile +1 -1
- package/docker/entrypoint.sh +0 -0
- package/eslint.config.mjs +0 -2
- package/nodes/Smb2/Smb2.node.ts +0 -1
- package/package.json +20 -22
- package/pnpm-workspace.yaml +15 -6
- package/renovate.json +10 -1
- package/scripts/copy-icons.js +23 -0
- package/gulpfile.js +0 -16
|
@@ -1,38 +1,61 @@
|
|
|
1
|
-
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
|
|
2
|
-
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
- uses: actions/
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
1
|
+
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
|
|
2
|
+
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
|
|
3
|
+
#
|
|
4
|
+
# Nothing is published unless the CVE gate (security-cve.yml) passes first.
|
|
5
|
+
|
|
6
|
+
name: Build and Publish Node.js Package
|
|
7
|
+
|
|
8
|
+
on:
|
|
9
|
+
release:
|
|
10
|
+
types: [created]
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
actions: read
|
|
14
|
+
contents: read
|
|
15
|
+
security-events: write
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
# Hard gate: re-scan the exact code being released. A known vulnerability
|
|
19
|
+
# here blocks build + publish.
|
|
20
|
+
cve-scan:
|
|
21
|
+
uses: ./.github/workflows/security-cve.yml
|
|
22
|
+
permissions:
|
|
23
|
+
actions: read
|
|
24
|
+
contents: read
|
|
25
|
+
security-events: write
|
|
26
|
+
|
|
27
|
+
build:
|
|
28
|
+
needs: cve-scan
|
|
29
|
+
runs-on: ubuntu-latest
|
|
30
|
+
steps:
|
|
31
|
+
- uses: actions/checkout@v7
|
|
32
|
+
- uses: pnpm/action-setup@v6
|
|
33
|
+
with:
|
|
34
|
+
version: latest
|
|
35
|
+
- uses: actions/setup-node@v7
|
|
36
|
+
with:
|
|
37
|
+
node-version: 24
|
|
38
|
+
- run: pnpm install --frozen-lockfile
|
|
39
|
+
|
|
40
|
+
publish-npm:
|
|
41
|
+
needs: build
|
|
42
|
+
runs-on: ubuntu-latest
|
|
43
|
+
# `id-token: write` lets npm mint the provenance statement n8n requires
|
|
44
|
+
# for verified community nodes.
|
|
45
|
+
permissions:
|
|
46
|
+
contents: read
|
|
47
|
+
id-token: write
|
|
48
|
+
steps:
|
|
49
|
+
- uses: actions/checkout@v7
|
|
50
|
+
- uses: pnpm/action-setup@v6
|
|
51
|
+
with:
|
|
52
|
+
version: latest
|
|
53
|
+
- uses: actions/setup-node@v7
|
|
54
|
+
with:
|
|
55
|
+
node-version: 24
|
|
56
|
+
registry-url: https://registry.npmjs.org/
|
|
57
|
+
- run: pnpm install --frozen-lockfile
|
|
58
|
+
# npm (not pnpm) so `--provenance` is honoured regardless of pnpm version.
|
|
59
|
+
- run: npm publish --provenance --access public
|
|
60
|
+
env:
|
|
61
|
+
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
|
|
@@ -20,24 +20,47 @@ on:
|
|
|
20
20
|
required: true
|
|
21
21
|
type: string
|
|
22
22
|
|
|
23
|
-
#
|
|
23
|
+
# `contents: write` so the workflow can push the version-bump commit and tag back;
|
|
24
|
+
# the rest is for the CVE gate's SARIF upload.
|
|
24
25
|
permissions:
|
|
26
|
+
actions: read
|
|
25
27
|
contents: write
|
|
28
|
+
security-events: write
|
|
26
29
|
|
|
27
30
|
jobs:
|
|
31
|
+
# Hard gate: no bump, no tag, no publish if a known vulnerability is found.
|
|
32
|
+
cve-scan:
|
|
33
|
+
uses: ./.github/workflows/security-cve.yml
|
|
34
|
+
permissions:
|
|
35
|
+
actions: read
|
|
36
|
+
contents: read
|
|
37
|
+
security-events: write
|
|
38
|
+
|
|
28
39
|
publish-npm:
|
|
40
|
+
needs: cve-scan
|
|
29
41
|
runs-on: ubuntu-latest
|
|
42
|
+
# `id-token: write` lets npm mint the provenance statement n8n requires
|
|
43
|
+
# for verified community nodes.
|
|
44
|
+
permissions:
|
|
45
|
+
contents: write
|
|
46
|
+
id-token: write
|
|
30
47
|
steps:
|
|
31
48
|
- uses: actions/checkout@v7
|
|
32
49
|
with:
|
|
33
|
-
#
|
|
34
|
-
|
|
50
|
+
# Push the bump commit and tag over SSH using a write-enabled deploy
|
|
51
|
+
# key. The default GITHUB_TOKEN cannot do this: the "CVE gate" ruleset
|
|
52
|
+
# requires the "OSV Dependency Scan / osv-scan" check on main, and a
|
|
53
|
+
# freshly created bump commit has no such check, so the push is
|
|
54
|
+
# rejected with GH013. Deploy keys are the ruleset's bypass actor
|
|
55
|
+
# (GitHub only allows the GitHub Actions app as a bypass actor on
|
|
56
|
+
# organisation-owned repos, not personal ones).
|
|
57
|
+
ssh-key: ${{ secrets.RELEASE_DEPLOY_KEY }}
|
|
35
58
|
|
|
36
59
|
- uses: pnpm/action-setup@v6
|
|
37
60
|
with:
|
|
38
61
|
version: latest
|
|
39
62
|
|
|
40
|
-
- uses: actions/setup-node@
|
|
63
|
+
- uses: actions/setup-node@v7
|
|
41
64
|
with:
|
|
42
65
|
node-version: 24
|
|
43
66
|
registry-url: https://registry.npmjs.org/
|
|
@@ -46,12 +69,25 @@ jobs:
|
|
|
46
69
|
|
|
47
70
|
# Write the requested version into package.json (no tag/commit yet — we do
|
|
48
71
|
# that ourselves below so the message and tag are under our control).
|
|
72
|
+
#
|
|
73
|
+
# If the requested version is already the one in package.json, skip the
|
|
74
|
+
# bump: this lets a release whose publish step failed be re-run with the
|
|
75
|
+
# same version instead of burning a new one.
|
|
49
76
|
- name: Set version
|
|
50
77
|
id: bump
|
|
78
|
+
env:
|
|
79
|
+
REQUESTED_VERSION: ${{ inputs.version }}
|
|
51
80
|
run: |
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
81
|
+
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
|
82
|
+
if [ "${REQUESTED_VERSION#v}" = "${CURRENT_VERSION}" ]; then
|
|
83
|
+
echo "package.json is already at ${CURRENT_VERSION}; skipping the bump"
|
|
84
|
+
echo "changed=false" >> "$GITHUB_OUTPUT"
|
|
85
|
+
else
|
|
86
|
+
# `pnpm version` prints a human message ("Releasing pkg: x → y"), not
|
|
87
|
+
# the bare version, so read the result back from package.json instead.
|
|
88
|
+
pnpm version "${REQUESTED_VERSION}" --no-git-tag-version
|
|
89
|
+
echo "changed=true" >> "$GITHUB_OUTPUT"
|
|
90
|
+
fi
|
|
55
91
|
NEW_VERSION=$(node -p "require('./package.json').version")
|
|
56
92
|
echo "version=v${NEW_VERSION}" >> "$GITHUB_OUTPUT"
|
|
57
93
|
echo "Releasing v${NEW_VERSION}"
|
|
@@ -61,18 +97,31 @@ jobs:
|
|
|
61
97
|
# branch is protected (required reviews/checks), the default GITHUB_TOKEN
|
|
62
98
|
# push will be rejected — run releases from an unprotected branch or swap
|
|
63
99
|
# in a PAT/deploy key with bypass rights.
|
|
100
|
+
#
|
|
101
|
+
# When the bump was skipped there is nothing to commit; the tag is only
|
|
102
|
+
# created if it does not exist yet, and an existing tag is never moved.
|
|
64
103
|
- name: Commit and tag
|
|
104
|
+
env:
|
|
105
|
+
TAG: ${{ steps.bump.outputs.version }}
|
|
106
|
+
CHANGED: ${{ steps.bump.outputs.changed }}
|
|
65
107
|
run: |
|
|
66
108
|
git config user.name 'github-actions[bot]'
|
|
67
109
|
git config user.email 'github-actions[bot]@users.noreply.github.com'
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
110
|
+
if [ "${CHANGED}" = "true" ]; then
|
|
111
|
+
git commit -am "chore(release): ${TAG}"
|
|
112
|
+
git tag -a "${TAG}" -m "${TAG}"
|
|
113
|
+
git push origin HEAD
|
|
114
|
+
git push origin "${TAG}"
|
|
115
|
+
elif [ -n "$(git ls-remote --tags origin "refs/tags/${TAG}")" ]; then
|
|
116
|
+
echo "::notice::Tag ${TAG} already exists and was left where it is; publishing from ${GITHUB_SHA}"
|
|
117
|
+
else
|
|
118
|
+
git tag -a "${TAG}" -m "${TAG}"
|
|
119
|
+
git push origin "${TAG}"
|
|
120
|
+
fi
|
|
73
121
|
|
|
74
122
|
# `prepublishOnly` (build + strict lint) runs automatically here.
|
|
75
123
|
- name: Publish to npm
|
|
76
|
-
|
|
124
|
+
# npm (not pnpm) so `--provenance` is honoured regardless of pnpm version.
|
|
125
|
+
run: npm publish --provenance --access public
|
|
77
126
|
env:
|
|
78
127
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
name: CVE Security Scan
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
# Scan every PR targeting main.
|
|
5
|
+
pull_request:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
|
|
9
|
+
# Re-scan once the code actually lands on main.
|
|
10
|
+
push:
|
|
11
|
+
branches:
|
|
12
|
+
- main
|
|
13
|
+
|
|
14
|
+
# Weekly sweep: catches vulnerabilities disclosed after the code was merged,
|
|
15
|
+
# without needing any new commit. Mondays at 06:00 UTC.
|
|
16
|
+
schedule:
|
|
17
|
+
- cron: '0 6 * * 1'
|
|
18
|
+
|
|
19
|
+
# Allow the release workflows to use this workflow as a hard gate.
|
|
20
|
+
workflow_call:
|
|
21
|
+
|
|
22
|
+
# Useful if you want to manually re-check the repository.
|
|
23
|
+
workflow_dispatch:
|
|
24
|
+
|
|
25
|
+
permissions:
|
|
26
|
+
actions: read
|
|
27
|
+
contents: read
|
|
28
|
+
security-events: write
|
|
29
|
+
|
|
30
|
+
jobs:
|
|
31
|
+
osv-scan:
|
|
32
|
+
name: OSV Dependency Scan
|
|
33
|
+
|
|
34
|
+
uses: google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml@v2.5.1
|
|
35
|
+
|
|
36
|
+
permissions:
|
|
37
|
+
actions: read
|
|
38
|
+
contents: read
|
|
39
|
+
security-events: write
|
|
40
|
+
|
|
41
|
+
with:
|
|
42
|
+
# Recursively inspect the repository.
|
|
43
|
+
# OSV automatically detects pnpm-lock.yaml.
|
|
44
|
+
scan-args: |-
|
|
45
|
+
--recursive
|
|
46
|
+
./
|
|
47
|
+
|
|
48
|
+
# Fail the GitHub Action if a known vulnerability is found.
|
|
49
|
+
fail-on-vuln: true
|
|
50
|
+
|
|
51
|
+
# Upload results to:
|
|
52
|
+
# GitHub -> Security -> Code scanning
|
|
53
|
+
upload-sarif: true
|
package/CLAUDE.md
CHANGED
|
@@ -9,7 +9,7 @@ An [n8n](https://n8n.io/) community node package that lets workflows interact wi
|
|
|
9
9
|
## Commands
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
npm run build # rimraf dist + tsc compile +
|
|
12
|
+
npm run build # rimraf dist + tsc compile + scripts/copy-icons.js copies icons into dist/
|
|
13
13
|
npm run dev # tsc --watch
|
|
14
14
|
npm run lint # eslint on nodes, credentials, package.json (n8n-nodes-base rules)
|
|
15
15
|
npm run lintfix # eslint --fix
|
package/LICENSE.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Smb2.node.js","sourceRoot":"","sources":["../../../nodes/Smb2/Smb2.node.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Smb2.node.js","sourceRoot":"","sources":["../../../nodes/Smb2/Smb2.node.ts"],"names":[],"mappings":"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"}
|
package/dist/package.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-smbclient",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Transfer files via Samba (SMB2) and smbclient package with n8n, some of the base work are based on https://github.com/drudge/n8n-nodes-smb work.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n-community-node-package",
|
|
7
7
|
"n8n-nodes-smbclient",
|
|
8
8
|
"smb",
|
|
9
|
-
"smb",
|
|
10
9
|
"samba",
|
|
11
10
|
"binary",
|
|
12
11
|
"file",
|
|
@@ -14,18 +13,27 @@
|
|
|
14
13
|
"node",
|
|
15
14
|
"n8n"
|
|
16
15
|
],
|
|
16
|
+
"license": "MIT",
|
|
17
|
+
"author": {
|
|
18
|
+
"name": "JimmyMtl",
|
|
19
|
+
"email": "j.mtlk.pro@outlook.fr"
|
|
20
|
+
},
|
|
17
21
|
"engines": {
|
|
18
22
|
"node": ">=20.15"
|
|
19
23
|
},
|
|
20
|
-
"
|
|
24
|
+
"homepage": "https://github.com/JimmyMtl/n8n-nodes-smbclient",
|
|
25
|
+
"repository": {
|
|
26
|
+
"type": "git",
|
|
27
|
+
"url": "git+https://github.com/JimmyMtl/n8n-nodes-smbclient.git"
|
|
28
|
+
},
|
|
21
29
|
"main": "index.js",
|
|
22
30
|
"scripts": {
|
|
23
|
-
"build": "npx rimraf dist && tsc &&
|
|
31
|
+
"build": "npx rimraf dist && tsc && node scripts/copy-icons.js",
|
|
24
32
|
"dev": "tsc --watch",
|
|
25
33
|
"format": "prettier nodes credentials --write",
|
|
26
34
|
"lint": "eslint nodes credentials package.json",
|
|
27
35
|
"lintfix": "eslint nodes credentials package.json --fix",
|
|
28
|
-
"prepublishOnly": "npm run build && npm run lint
|
|
36
|
+
"prepublishOnly": "npm run build && npm run lint",
|
|
29
37
|
"release": "npx standard-version"
|
|
30
38
|
},
|
|
31
39
|
"n8n": {
|
|
@@ -44,20 +52,12 @@
|
|
|
44
52
|
"@types/node": "^24.12.4",
|
|
45
53
|
"@typescript-eslint/parser": "^8.59.1",
|
|
46
54
|
"eslint": "^10.3.0",
|
|
47
|
-
"eslint-plugin-n8n-nodes-base": "^
|
|
55
|
+
"eslint-plugin-n8n-nodes-base": "^2.0.0",
|
|
48
56
|
"globals": "^17.6.0",
|
|
49
|
-
"gulp": "^5.0.1",
|
|
50
57
|
"prettier": "^3.8.3",
|
|
51
|
-
"typescript": "
|
|
58
|
+
"typescript": "~6.0.3"
|
|
52
59
|
},
|
|
53
60
|
"peerDependencies": {
|
|
54
61
|
"n8n-workflow": "^1.115.0 || ^2.0.0"
|
|
55
|
-
},
|
|
56
|
-
"dependencies": {
|
|
57
|
-
"tmp-promise": "^3.0.3"
|
|
58
|
-
},
|
|
59
|
-
"overrides": {
|
|
60
|
-
"form-data": "^4.0.4",
|
|
61
|
-
"axios": "1.18.1"
|
|
62
62
|
}
|
|
63
63
|
}
|
package/docker/Dockerfile
CHANGED
package/docker/entrypoint.sh
CHANGED
|
File without changes
|
package/eslint.config.mjs
CHANGED
|
@@ -53,8 +53,6 @@ export default defineConfig([
|
|
|
53
53
|
),
|
|
54
54
|
rules: {
|
|
55
55
|
"n8n-nodes-base/community-package-json-name-still-default": "off",
|
|
56
|
-
"n8n-nodes-base/community-package-json-license-missing": "off",
|
|
57
|
-
"n8n-nodes-base/community-package-json-author-missing": "off",
|
|
58
56
|
},
|
|
59
57
|
},
|
|
60
58
|
|
package/nodes/Smb2/Smb2.node.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-smbclient",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Transfer files via Samba (SMB2) and smbclient package with n8n, some of the base work are based on https://github.com/drudge/n8n-nodes-smb work.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n-community-node-package",
|
|
7
7
|
"n8n-nodes-smbclient",
|
|
8
8
|
"smb",
|
|
9
|
-
"smb",
|
|
10
9
|
"samba",
|
|
11
10
|
"binary",
|
|
12
11
|
"file",
|
|
@@ -14,14 +13,29 @@
|
|
|
14
13
|
"node",
|
|
15
14
|
"n8n"
|
|
16
15
|
],
|
|
16
|
+
"license": "MIT",
|
|
17
|
+
"author": {
|
|
18
|
+
"name": "JimmyMtl",
|
|
19
|
+
"email": "j.mtlk.pro@outlook.fr"
|
|
20
|
+
},
|
|
17
21
|
"engines": {
|
|
18
22
|
"node": ">=20.15"
|
|
19
23
|
},
|
|
24
|
+
"homepage": "https://github.com/JimmyMtl/n8n-nodes-smbclient",
|
|
20
25
|
"repository": {
|
|
21
26
|
"type": "git",
|
|
22
|
-
"url": "https://github.com/JimmyMtl/n8n-nodes-smbclient"
|
|
27
|
+
"url": "git+https://github.com/JimmyMtl/n8n-nodes-smbclient.git"
|
|
23
28
|
},
|
|
24
29
|
"main": "index.js",
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "npx rimraf dist && tsc && node scripts/copy-icons.js",
|
|
32
|
+
"dev": "tsc --watch",
|
|
33
|
+
"format": "prettier nodes credentials --write",
|
|
34
|
+
"lint": "eslint nodes credentials package.json",
|
|
35
|
+
"lintfix": "eslint nodes credentials package.json --fix",
|
|
36
|
+
"prepublishOnly": "npm run build && npm run lint",
|
|
37
|
+
"release": "npx standard-version"
|
|
38
|
+
},
|
|
25
39
|
"n8n": {
|
|
26
40
|
"n8nNodesApiVersion": 1,
|
|
27
41
|
"credentials": [
|
|
@@ -38,28 +52,12 @@
|
|
|
38
52
|
"@types/node": "^24.12.4",
|
|
39
53
|
"@typescript-eslint/parser": "^8.59.1",
|
|
40
54
|
"eslint": "^10.3.0",
|
|
41
|
-
"eslint-plugin-n8n-nodes-base": "^
|
|
55
|
+
"eslint-plugin-n8n-nodes-base": "^2.0.0",
|
|
42
56
|
"globals": "^17.6.0",
|
|
43
|
-
"gulp": "^5.0.1",
|
|
44
57
|
"prettier": "^3.8.3",
|
|
45
|
-
"typescript": "
|
|
58
|
+
"typescript": "~6.0.3"
|
|
46
59
|
},
|
|
47
60
|
"peerDependencies": {
|
|
48
61
|
"n8n-workflow": "^1.115.0 || ^2.0.0"
|
|
49
|
-
},
|
|
50
|
-
"dependencies": {
|
|
51
|
-
"tmp-promise": "^3.0.3"
|
|
52
|
-
},
|
|
53
|
-
"overrides": {
|
|
54
|
-
"form-data": "^4.0.4",
|
|
55
|
-
"axios": "1.18.1"
|
|
56
|
-
},
|
|
57
|
-
"scripts": {
|
|
58
|
-
"build": "npx rimraf dist && tsc && gulp build:icons",
|
|
59
|
-
"dev": "tsc --watch",
|
|
60
|
-
"format": "prettier nodes credentials --write",
|
|
61
|
-
"lint": "eslint nodes credentials package.json",
|
|
62
|
-
"lintfix": "eslint nodes credentials package.json --fix",
|
|
63
|
-
"release": "npx standard-version"
|
|
64
62
|
}
|
|
65
|
-
}
|
|
63
|
+
}
|
package/pnpm-workspace.yaml
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
# pnpm settings (moved out of the deprecated `pnpm` field in package.json).
|
|
2
|
-
|
|
3
|
-
# Refuse to resolve/lock any package version published less than this many
|
|
4
|
-
# minutes ago. Mirrors the CI supply-chain policy so `pnpm install` locally
|
|
5
|
-
# picks the same compliant versions CI will accept, instead of the newest
|
|
6
|
-
# release (which may still be inside the cutoff and fail --frozen-lockfile).
|
|
7
1
|
minimumReleaseAge: 1440
|
|
8
2
|
|
|
9
3
|
# Packages allowed to run install scripts.
|
|
@@ -16,3 +10,18 @@ onlyBuiltDependencies:
|
|
|
16
10
|
allowBuilds:
|
|
17
11
|
eslint-plugin-n8n-nodes-base: true
|
|
18
12
|
isolated-vm: true
|
|
13
|
+
|
|
14
|
+
# Force patched versions of transitive dependencies flagged by the OSV scan
|
|
15
|
+
# (see .github/workflows/security-cve.yml). Each entry pins the lowest release
|
|
16
|
+
# that carries the fix; drop an entry once the direct dependency pulls in a
|
|
17
|
+
# patched version on its own.
|
|
18
|
+
#
|
|
19
|
+
# All of these are dev-only, coming in via eslint; the package has no
|
|
20
|
+
# runtime dependencies.
|
|
21
|
+
overrides:
|
|
22
|
+
brace-expansion@1: ^5.0.12 # GHSA-mh99-v99m-4gvg, GHSA-rgw5-rvv9-x895
|
|
23
|
+
brace-expansion@5: ^5.0.12 # GHSA-mh99-v99m-4gvg, GHSA-rgw5-rvv9-x895, GHSA-6j4f-fj2g-mc7p, GHSA-qhr7-859c-m2p7, GHSA-q2hr-2g5m-vwhr
|
|
24
|
+
form-data: ^4.0.6 # GHSA-hmw2-7cc7-3qxx
|
|
25
|
+
js-yaml@4: ^5.0.0 # GHSA-5p4m-2wfm-xmqj
|
|
26
|
+
lodash: ^4.18.0 # GHSA-f23m-r3pf-42rh, GHSA-r5fr-rjxr-66jc
|
|
27
|
+
uuid@10: ^14.0.0 # GHSA-w5hq-g745-h8pq
|
package/renovate.json
CHANGED
|
@@ -3,5 +3,14 @@
|
|
|
3
3
|
"extends": [
|
|
4
4
|
"config:recommended"
|
|
5
5
|
],
|
|
6
|
-
"minimumReleaseAge": "3 days"
|
|
6
|
+
"minimumReleaseAge": "3 days",
|
|
7
|
+
"packageRules": [
|
|
8
|
+
{
|
|
9
|
+
"description": "typescript-eslint peers on `typescript >=4.8.4 <6.1.0`, so TypeScript 7 breaks `npm run lint` (and therefore `prepublishOnly`). PR #107 bumped us to v7 and did exactly that. Hold at 6.0.x until typescript-eslint widens its peer range, then drop this rule.",
|
|
10
|
+
"matchPackageNames": [
|
|
11
|
+
"typescript"
|
|
12
|
+
],
|
|
13
|
+
"allowedVersions": "<6.1.0"
|
|
14
|
+
}
|
|
15
|
+
]
|
|
7
16
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Copies node and credential icons into dist/, preserving the folder layout.
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
const path = require('path');
|
|
4
|
+
|
|
5
|
+
const ICON_EXTENSIONS = new Set(['.png', '.svg']);
|
|
6
|
+
|
|
7
|
+
function copyIcons(sourceDir, destinationDir) {
|
|
8
|
+
for (const entry of fs.readdirSync(sourceDir, { withFileTypes: true })) {
|
|
9
|
+
const source = path.join(sourceDir, entry.name);
|
|
10
|
+
const destination = path.join(destinationDir, entry.name);
|
|
11
|
+
|
|
12
|
+
if (entry.isDirectory()) {
|
|
13
|
+
copyIcons(source, destination);
|
|
14
|
+
} else if (ICON_EXTENSIONS.has(path.extname(entry.name).toLowerCase())) {
|
|
15
|
+
fs.mkdirSync(destinationDir, { recursive: true });
|
|
16
|
+
fs.copyFileSync(source, destination);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
for (const dir of ['nodes', 'credentials']) {
|
|
22
|
+
copyIcons(path.resolve(dir), path.resolve('dist', dir));
|
|
23
|
+
}
|
package/gulpfile.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
const path = require('path');
|
|
2
|
-
const { task, src, dest } = require('gulp');
|
|
3
|
-
|
|
4
|
-
task('build:icons', copyIcons);
|
|
5
|
-
|
|
6
|
-
function copyIcons() {
|
|
7
|
-
const nodeSource = path.resolve('nodes', '**', '*.{png,svg}');
|
|
8
|
-
const nodeDestination = path.resolve('dist', 'nodes');
|
|
9
|
-
|
|
10
|
-
src(nodeSource).pipe(dest(nodeDestination));
|
|
11
|
-
|
|
12
|
-
const credSource = path.resolve('credentials', '**', '*.{png,svg}');
|
|
13
|
-
const credDestination = path.resolve('dist', 'credentials');
|
|
14
|
-
|
|
15
|
-
return src(credSource).pipe(dest(credDestination));
|
|
16
|
-
}
|