n8n-nodes-smbclient 1.1.6 → 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.
@@ -40,6 +40,11 @@ jobs:
40
40
  publish-npm:
41
41
  needs: build
42
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
43
48
  steps:
44
49
  - uses: actions/checkout@v7
45
50
  - uses: pnpm/action-setup@v6
@@ -50,6 +55,7 @@ jobs:
50
55
  node-version: 24
51
56
  registry-url: https://registry.npmjs.org/
52
57
  - run: pnpm install --frozen-lockfile
53
- - run: pnpm publish --no-git-checks
58
+ # npm (not pnpm) so `--provenance` is honoured regardless of pnpm version.
59
+ - run: npm publish --provenance --access public
54
60
  env:
55
61
  NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
@@ -39,11 +39,22 @@ jobs:
39
39
  publish-npm:
40
40
  needs: cve-scan
41
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
42
47
  steps:
43
48
  - uses: actions/checkout@v7
44
49
  with:
45
- # Use a token that can push the bump commit/tag back to the repo.
46
- token: ${{ secrets.GITHUB_TOKEN }}
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 }}
47
58
 
48
59
  - uses: pnpm/action-setup@v6
49
60
  with:
@@ -58,12 +69,25 @@ jobs:
58
69
 
59
70
  # Write the requested version into package.json (no tag/commit yet — we do
60
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.
61
76
  - name: Set version
62
77
  id: bump
78
+ env:
79
+ REQUESTED_VERSION: ${{ inputs.version }}
63
80
  run: |
64
- # `pnpm version` prints a human message ("Releasing pkg: x → y"), not
65
- # the bare version, so read the result back from package.json instead.
66
- pnpm version "${{ inputs.version }}" --no-git-tag-version
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
67
91
  NEW_VERSION=$(node -p "require('./package.json').version")
68
92
  echo "version=v${NEW_VERSION}" >> "$GITHUB_OUTPUT"
69
93
  echo "Releasing v${NEW_VERSION}"
@@ -73,18 +97,31 @@ jobs:
73
97
  # branch is protected (required reviews/checks), the default GITHUB_TOKEN
74
98
  # push will be rejected — run releases from an unprotected branch or swap
75
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.
76
103
  - name: Commit and tag
104
+ env:
105
+ TAG: ${{ steps.bump.outputs.version }}
106
+ CHANGED: ${{ steps.bump.outputs.changed }}
77
107
  run: |
78
108
  git config user.name 'github-actions[bot]'
79
109
  git config user.email 'github-actions[bot]@users.noreply.github.com'
80
- TAG="${{ steps.bump.outputs.version }}"
81
- git commit -am "chore(release): ${TAG}"
82
- git tag -a "${TAG}" -m "${TAG}"
83
- git push origin HEAD
84
- git push origin "${TAG}"
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
85
121
 
86
122
  # `prepublishOnly` (build + strict lint) runs automatically here.
87
123
  - name: Publish to npm
88
- run: pnpm publish --no-git-checks
124
+ # npm (not pnpm) so `--provenance` is honoured regardless of pnpm version.
125
+ run: npm publish --provenance --access public
89
126
  env:
90
127
  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
@@ -31,7 +31,7 @@ jobs:
31
31
  osv-scan:
32
32
  name: OSV Dependency Scan
33
33
 
34
- uses: google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml@v2.5.0
34
+ uses: google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml@v2.5.1
35
35
 
36
36
  permissions:
37
37
  actions: read
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 + gulp copies icons into dist/
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,4 +1,5 @@
1
1
  Copyright 2025 Nick Penree <nick@penree.com>
2
+ Copyright 2025-2026 JimmyMtl
2
3
 
3
4
  Permission is hereby granted, free of charge, to any person obtaining a copy of
4
5
  this software and associated documentation files (the "Software"), to deal in
@@ -206,7 +206,6 @@ class Smb2 {
206
206
  }
207
207
  }
208
208
  catch (err) {
209
- console.error(err);
210
209
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), (err === null || err === void 0 ? void 0 : err.message) || 'SMB operation failed');
211
210
  }
212
211
  finally {
@@ -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.1.6",
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,13 +13,22 @@
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
- "repository": "https://github.com/JimmyMtl/n8n-nodes-smbclient",
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 && gulp build:icons",
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",
@@ -46,18 +54,10 @@
46
54
  "eslint": "^10.3.0",
47
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
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.6",
61
- "axios": "1.19.0"
62
62
  }
63
63
  }
package/docker/Dockerfile CHANGED
@@ -8,7 +8,7 @@
8
8
  # into the final image.
9
9
 
10
10
  # Declared before the first FROM so it can be used in the stage-2 FROM line.
11
- ARG N8N_VERSION=2.35.3
11
+ ARG N8N_VERSION=2.39.2
12
12
 
13
13
  # ---- Stage 1: collect smbclient + its dependency files ----
14
14
  FROM alpine:3.24 AS smb
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
 
@@ -220,7 +220,6 @@ export class Smb2 implements INodeType {
220
220
  out.push(await handler(this, i, client));
221
221
  }
222
222
  } catch (err) {
223
- console.error(err);
224
223
  throw new NodeOperationError(
225
224
  this.getNode(),
226
225
  (err as Error)?.message || 'SMB operation failed',
package/package.json CHANGED
@@ -1,12 +1,11 @@
1
1
  {
2
2
  "name": "n8n-nodes-smbclient",
3
- "version": "1.1.6",
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": [
@@ -40,26 +54,10 @@
40
54
  "eslint": "^10.3.0",
41
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
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.6",
55
- "axios": "1.19.0"
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
+ }
@@ -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.
@@ -22,14 +16,12 @@ allowBuilds:
22
16
  # that carries the fix; drop an entry once the direct dependency pulls in a
23
17
  # patched version on its own.
24
18
  #
25
- # `tmp` is the only one that reaches published consumers — it arrives through
26
- # our single runtime dependency, tmp-promise. The rest are dev-only, coming in
27
- # via eslint/gulp.
19
+ # All of these are dev-only, coming in via eslint; the package has no
20
+ # runtime dependencies.
28
21
  overrides:
29
- brace-expansion@1: ^1.1.18 # GHSA-mh99-v99m-4gvg, GHSA-rgw5-rvv9-x895
30
- brace-expansion@5: ^5.0.9 # GHSA-mh99-v99m-4gvg, GHSA-rgw5-rvv9-x895
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
31
24
  form-data: ^4.0.6 # GHSA-hmw2-7cc7-3qxx
32
- js-yaml@4: ^4.3.1 # GHSA-5p4m-2wfm-xmqj
25
+ js-yaml@4: ^5.0.0 # GHSA-5p4m-2wfm-xmqj
33
26
  lodash: ^4.18.0 # GHSA-f23m-r3pf-42rh, GHSA-r5fr-rjxr-66jc
34
- tmp: ^0.2.6 # GHSA-ph9p-34f9-6g65 (runtime, via tmp-promise)
35
- uuid@10: ^11.1.1 # GHSA-w5hq-g745-h8pq
27
+ uuid@10: ^14.0.0 # GHSA-w5hq-g745-h8pq
@@ -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
- }