n8n-nodes-smbclient 1.1.2 → 1.1.4

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/.gitattributes ADDED
@@ -0,0 +1,5 @@
1
+ # Shell scripts must keep LF endings, otherwise the CRLF shebang breaks
2
+ # `exec` inside Linux/Docker ("No such file or directory"). This matters on
3
+ # Windows checkouts where core.autocrlf would otherwise rewrite them.
4
+ *.sh text eol=lf
5
+ docker/entrypoint.sh text eol=lf
@@ -11,7 +11,7 @@ jobs:
11
11
  build:
12
12
  runs-on: ubuntu-latest
13
13
  steps:
14
- - uses: actions/checkout@v6
14
+ - uses: actions/checkout@v7
15
15
  - uses: pnpm/action-setup@v6
16
16
  with:
17
17
  version: latest
@@ -24,7 +24,7 @@ jobs:
24
24
  needs: build
25
25
  runs-on: ubuntu-latest
26
26
  steps:
27
- - uses: actions/checkout@v6
27
+ - uses: actions/checkout@v7
28
28
  - uses: pnpm/action-setup@v6
29
29
  with:
30
30
  version: latest
@@ -1,36 +1,78 @@
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
- name: Build and Publish Node.js Package
5
-
6
- on: workflow_dispatch
7
-
8
- jobs:
9
- build:
10
- runs-on: ubuntu-latest
11
- steps:
12
- - uses: actions/checkout@v6
13
- - uses: pnpm/action-setup@v6
14
- with:
15
- version: latest
16
- - uses: actions/setup-node@v6
17
- with:
18
- node-version: 24
19
- - run: pnpm install --frozen-lockfile
20
-
21
- publish-npm:
22
- needs: build
23
- runs-on: ubuntu-latest
24
- steps:
25
- - uses: actions/checkout@v6
26
- - uses: pnpm/action-setup@v6
27
- with:
28
- version: latest
29
- - uses: actions/setup-node@v6
30
- with:
31
- node-version: 24
32
- registry-url: https://registry.npmjs.org/
33
- - run: pnpm install --frozen-lockfile
34
- - run: pnpm publish --no-git-checks
35
- env:
36
- NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
1
+ # Manually-triggered release: bump the version, commit/tag it, then publish to npm.
2
+ #
3
+ # Trigger it from the Actions tab ("Run workflow") and supply `version`:
4
+ # - an explicit semver, e.g. "1.2.0"
5
+ # - or a bump keyword: "patch" | "minor" | "major"
6
+ #
7
+ # The workflow writes that version into package.json, commits it back to the
8
+ # branch and creates a matching `vX.Y.Z` tag, then publishes — so you never have
9
+ # to edit package.json by hand for a release.
10
+ #
11
+ # Requires the NPM_TOKEN secret (an npm automation token with publish rights).
12
+
13
+ name: Version Bump and Publish
14
+
15
+ on:
16
+ workflow_dispatch:
17
+ inputs:
18
+ version:
19
+ description: 'Version to release (explicit semver like 1.2.0, or patch/minor/major)'
20
+ required: true
21
+ type: string
22
+
23
+ # Needed so the workflow can push the version-bump commit and tag back.
24
+ permissions:
25
+ contents: write
26
+
27
+ jobs:
28
+ publish-npm:
29
+ runs-on: ubuntu-latest
30
+ steps:
31
+ - uses: actions/checkout@v7
32
+ with:
33
+ # Use a token that can push the bump commit/tag back to the repo.
34
+ token: ${{ secrets.GITHUB_TOKEN }}
35
+
36
+ - uses: pnpm/action-setup@v6
37
+ with:
38
+ version: latest
39
+
40
+ - uses: actions/setup-node@v6
41
+ with:
42
+ node-version: 24
43
+ registry-url: https://registry.npmjs.org/
44
+
45
+ - run: pnpm install --frozen-lockfile
46
+
47
+ # Write the requested version into package.json (no tag/commit yet — we do
48
+ # that ourselves below so the message and tag are under our control).
49
+ - name: Set version
50
+ id: bump
51
+ run: |
52
+ # `pnpm version` prints a human message ("Releasing pkg: x → y"), not
53
+ # the bare version, so read the result back from package.json instead.
54
+ pnpm version "${{ inputs.version }}" --no-git-tag-version
55
+ NEW_VERSION=$(node -p "require('./package.json').version")
56
+ echo "version=v${NEW_VERSION}" >> "$GITHUB_OUTPUT"
57
+ echo "Releasing v${NEW_VERSION}"
58
+
59
+ # Commit the bump and tag it, then push both back to the triggering branch.
60
+ # NOTE: this pushes directly to the branch the workflow ran on. If that
61
+ # branch is protected (required reviews/checks), the default GITHUB_TOKEN
62
+ # push will be rejected — run releases from an unprotected branch or swap
63
+ # in a PAT/deploy key with bypass rights.
64
+ - name: Commit and tag
65
+ run: |
66
+ git config user.name 'github-actions[bot]'
67
+ git config user.email 'github-actions[bot]@users.noreply.github.com'
68
+ TAG="${{ steps.bump.outputs.version }}"
69
+ git commit -am "chore(release): ${TAG}"
70
+ git tag -a "${TAG}" -m "${TAG}"
71
+ git push origin HEAD
72
+ git push origin "${TAG}"
73
+
74
+ # `prepublishOnly` (build + strict lint) runs automatically here.
75
+ - name: Publish to npm
76
+ run: pnpm publish --no-git-checks
77
+ env:
78
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
@@ -4,11 +4,12 @@ exports.SmbClientWrapper = void 0;
4
4
  exports.getReadableError = getReadableError;
5
5
  exports.connectToSmbServer = connectToSmbServer;
6
6
  const n8n_workflow_1 = require("n8n-workflow");
7
- const node_util_1 = require("node:util");
8
7
  const node_child_process_1 = require("node:child_process");
9
8
  const util_1 = require("util");
10
9
  const debug = (0, util_1.debuglog)('n8n-nodes-smbclient');
11
10
  const SMB_FAILURE_RE = /NT_STATUS_(?!OK\b|NO_MORE_FILES\b|NO_MORE_ENTRIES\b)[A-Z0-9_]+/;
11
+ const BENIGN_WARNING_RE = /^.*NT_STATUS_\w+\s+getting shadow copy data.*$/gim;
12
+ const stripBenignWarnings = (s) => s.replace(BENIGN_WARNING_RE, '');
12
13
  const SMB_ERROR_HINTS = [
13
14
  [/EACCES/i, 'Access Denied - Check your permissions for this file/folder'],
14
15
  [/ENOENT/i, 'File/Path Not Found'],
@@ -28,7 +29,6 @@ function getReadableError(error) {
28
29
  }
29
30
  return msg;
30
31
  }
31
- const execFileAsync = (0, node_util_1.promisify)(node_child_process_1.execFile);
32
32
  const redactCmd = (s) => {
33
33
  if (!s)
34
34
  return s;
@@ -75,47 +75,66 @@ class SmbClientWrapper {
75
75
  ]);
76
76
  throw new n8n_workflow_1.NodeOperationError(this.node, `smbclient failed. cmd="${safeCmd}" stderr="${safeErr}"`);
77
77
  }
78
- async runOne(cmd) {
78
+ runOne(cmd) {
79
79
  const args = [...this.buildBaseArgs(), '-c', cmd];
80
80
  const { username, password, domain } = this.auth;
81
81
  const rawCmd = [this.smbclientPath, ...args].join(' ');
82
82
  const safeCmd = maskSecrets(redactCmd(rawCmd), [username, password, domain]);
83
- let stdout = '';
84
- let stderr = '';
85
- try {
86
- ({ stdout, stderr } = await execFileAsync(this.smbclientPath, args, {
87
- maxBuffer: 10 * 1024 * 1024,
88
- }));
89
- }
90
- catch (err) {
91
- stdout = typeof (err === null || err === void 0 ? void 0 : err.stdout) === 'string' ? err.stdout : '';
92
- stderr = typeof (err === null || err === void 0 ? void 0 : err.stderr) === 'string' ? err.stderr : '';
93
- const couldNotRun = typeof (err === null || err === void 0 ? void 0 : err.code) !== 'number' || (err === null || err === void 0 ? void 0 : err.killed) === true;
94
- if (couldNotRun || SMB_FAILURE_RE.test(`${stdout}\n${stderr}`)) {
95
- this.fail(safeCmd, stderr.trim() || stdout.trim() || (err === null || err === void 0 ? void 0 : err.message));
96
- }
97
- }
98
- if (SMB_FAILURE_RE.test(`${stdout}\n${stderr}`)) {
99
- this.fail(safeCmd, stderr.trim() || stdout.trim());
100
- }
101
- return stdout !== null && stdout !== void 0 ? stdout : '';
83
+ return new Promise((resolve, reject) => {
84
+ const child = (0, node_child_process_1.spawn)(this.smbclientPath, args, { windowsHide: true });
85
+ const outChunks = [];
86
+ const errChunks = [];
87
+ let spawnError;
88
+ child.stdout.on('data', (c) => outChunks.push(c));
89
+ child.stderr.on('data', (c) => errChunks.push(c));
90
+ child.on('error', (e) => {
91
+ spawnError = e;
92
+ });
93
+ child.on('close', (code, signal) => {
94
+ const stdout = Buffer.concat(outChunks).toString('utf8');
95
+ const stderr = Buffer.concat(errChunks).toString('utf8');
96
+ const couldNotRun = !!spawnError || signal != null;
97
+ const diagnostics = stripBenignWarnings(`${stdout}\n${stderr}`);
98
+ try {
99
+ if (couldNotRun || SMB_FAILURE_RE.test(diagnostics)) {
100
+ this.fail(safeCmd, stripBenignWarnings(stderr).trim() ||
101
+ stdout.trim() ||
102
+ (spawnError === null || spawnError === void 0 ? void 0 : spawnError.message) ||
103
+ `smbclient exited (code=${code}, signal=${signal})`);
104
+ }
105
+ resolve(stdout);
106
+ }
107
+ catch (err) {
108
+ reject(err);
109
+ }
110
+ });
111
+ });
102
112
  }
103
113
  async stat(remotePath) {
104
- var _a, _b, _c, _d, _e;
114
+ var _a, _b, _c, _d, _e, _f;
105
115
  const out = await this.runOne(`allinfo "${remotePath}"`);
106
116
  const info = new Map();
107
117
  for (const line of out.split('\n')) {
108
- const [k, v] = line.split('|');
109
- if (k && v !== undefined)
110
- info.set(k.trim().toUpperCase(), v.trim());
118
+ const idx = line.indexOf(':');
119
+ if (idx === -1)
120
+ continue;
121
+ const key = line.slice(0, idx).trim().toUpperCase();
122
+ const value = line.slice(idx + 1).trim();
123
+ if (key)
124
+ info.set(key, value);
111
125
  }
112
- const attrs = ((_a = info.get('ATTRIBUTES')) !== null && _a !== void 0 ? _a : '').split('').filter(Boolean);
126
+ const attrs = ((_a = info.get('ATTRIBUTES')) !== null && _a !== void 0 ? _a : '')
127
+ .split('(')[0]
128
+ .trim()
129
+ .split('')
130
+ .filter((c) => /[A-Za-z]/.test(c));
131
+ const sizeMatch = ((_b = info.get('STREAM')) !== null && _b !== void 0 ? _b : '').match(/(\d+)\s*bytes/i);
113
132
  return {
114
- size: info.get('SIZE') ? Number(info.get('SIZE')) : undefined,
115
- createTime: (_b = info.get('CREATE_TIME')) !== null && _b !== void 0 ? _b : undefined,
116
- accessTime: (_c = info.get('ACCESS_TIME')) !== null && _c !== void 0 ? _c : undefined,
117
- writeTime: (_d = info.get('WRITE_TIME')) !== null && _d !== void 0 ? _d : undefined,
118
- changeTime: (_e = info.get('CHANGE_TIME')) !== null && _e !== void 0 ? _e : undefined,
133
+ size: sizeMatch ? Number(sizeMatch[1]) : undefined,
134
+ createTime: (_c = info.get('CREATE_TIME')) !== null && _c !== void 0 ? _c : undefined,
135
+ accessTime: (_d = info.get('ACCESS_TIME')) !== null && _d !== void 0 ? _d : undefined,
136
+ writeTime: (_e = info.get('WRITE_TIME')) !== null && _e !== void 0 ? _e : undefined,
137
+ changeTime: (_f = info.get('CHANGE_TIME')) !== null && _f !== void 0 ? _f : undefined,
119
138
  attributes: attrs,
120
139
  isDirectory: attrs.includes('D'),
121
140
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SmbClientWrapper.js","sourceRoot":"","sources":["../../../nodes/Smb2/SmbClientWrapper.ts"],"names":[],"mappings":";;;AAkCA,4CAQC;AA4PD,gDA2BC;AAjUD,+CAMsB;AACtB,yCAAsC;AACtC,2DAA8C;AAE9C,+BAAgC;AAEhC,MAAM,KAAK,GAAG,IAAA,eAAQ,EAAC,qBAAqB,CAAC,CAAC;AAS9C,MAAM,cAAc,GAAG,gEAAgE,CAAC;AAExF,MAAM,eAAe,GAA4B;IAChD,CAAC,SAAS,EAAE,6DAA6D,CAAC;IAC1E,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAClC,CAAC,UAAU,EAAE,iBAAiB,CAAC;IAC/B,CAAC,WAAW,EAAE,sBAAsB,CAAC;IACrC,CAAC,eAAe,EAAE,sDAAsD,CAAC;IACzE,CAAC,gBAAgB,EAAE,2DAA2D,CAAC;IAC/E,CAAC,mBAAmB,EAAE,qEAAqE,CAAC;CAE5F,CAAC;AAEF,SAAgB,gBAAgB,CAAC,KAAU;;IAC1C,MAAM,GAAG,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,mCAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,eAAe,EAAE,CAAC;QAC9C,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,GAAG,QAAQ,KAAK,GAAG,GAAG,CAAC;QAC/B,CAAC;IACF,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,MAAM,aAAa,GAAG,IAAA,qBAAS,EAAC,6BAAQ,CAAC,CAAC;AAC1C,MAAM,SAAS,GAAG,CAAC,CAAS,EAAU,EAAE;IACvC,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACjB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,CAAC,CAAC;AACV,CAAC,CAAC;AACF,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,OAAkC,EAAU,EAAE;IACjF,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,MAAa,gBAAgB;IAC5B,YACS,IAAqB,EACrB,gBAAwB,WAAW,EACnC,IAAW;QAFX,SAAI,GAAJ,IAAI,CAAiB;QACrB,kBAAa,GAAb,aAAa,CAAsB;QACnC,SAAI,GAAJ,IAAI,CAAO;IACjB,CAAC;IAEI,aAAa;QACpB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAG9D,IAAI,QAAQ,GAAG,GAAG,CAAC;QACnB,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,QAAQ,GAAG,GAAG,QAAQ,IAAI,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,EAAE,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACP,QAAQ,GAAG,GAAG,MAAM,IAAI,QAAQ,IAAI,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,EAAE,CAAC;YACtD,CAAC;QACF,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,KAAK,EAAE,CAAC;QACzC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAEO,IAAI,CAAC,OAAe,EAAE,MAAc;QAC3C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACjD,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,0BAA0B,EAAE;YAChF,QAAQ;YACR,QAAQ;YACR,MAAM;SACN,CAAC,CAAC;QAGH,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,OAAO,aAAa,OAAO,GAAG,CAAC,CAAC;IACnG,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,GAAW;QAC/B,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAElD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAEjD,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QAE7E,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC;YACJ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE;gBACnE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;aAC3B,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAMnB,MAAM,GAAG,OAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,CAAA,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,MAAM,GAAG,OAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,CAAA,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,MAAM,WAAW,GAAG,OAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAA,KAAK,QAAQ,IAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,MAAK,IAAI,CAAC;YAC1E,IAAI,WAAW,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,KAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAA,CAAC,CAAC;YACpE,CAAC;QACF,CAAC;QAID,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,UAAkB;;QAC5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,UAAU,GAAG,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS;gBAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,MAAA,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,mCAAI,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvE,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YAC7D,UAAU,EAAE,MAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,mCAAI,SAAS;YAChD,UAAU,EAAE,MAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,mCAAI,SAAS;YAChD,SAAS,EAAE,MAAA,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,mCAAI,SAAS;YAC9C,UAAU,EAAE,MAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,mCAAI,SAAS;YAChD,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;SAChC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAW;QACrB,MAAM,aAAa,GAAG,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAEjD,MAAM,OAAO,GACZ,aAAa,IAAI,aAAa,KAAK,GAAG,IAAI,aAAa,KAAK,GAAG;YAC9D,CAAC,CAAC,OAAO,OAAO,OAAO;YACvB,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvC,MAAM,KAAK,GAAG,GAAG;aACf,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CAAC;QAElB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;;YAEjC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAG9B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACtB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACnC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACtB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACtB,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC;oBAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAClD,OAAO;wBACN,IAAI;wBACJ,IAAI;wBACJ,IAAI;wBACJ,IAAI;wBACJ,UAAU;wBACV,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;qBACrB,CAAC;gBACnB,CAAC;gBAGD,OAAO;oBACN,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,CAAC;oBACP,UAAU,EAAE,EAAE;oBACd,WAAW,EAAE,KAAK;iBACF,CAAC;YACnB,CAAC;YAKD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAGlC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACvC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACvC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACtC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACxC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAEvC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,UAAU,GAAG,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAE1D,OAAO;oBACN,IAAI;oBACJ,IAAI;oBACJ,IAAI,EAAE,GAAG,OAAO,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE;oBAClD,IAAI;oBACJ,UAAU;oBACV,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;iBACrB,CAAC;YACnB,CAAC;YAGD,OAAO;gBACN,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,CAAC;gBACP,UAAU,EAAE,EAAE;gBACd,WAAW,EAAE,KAAK;aACF,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,IAAI,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAC;YAGzB,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;YAG5D,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxF,OAAO,KAAK,CAAC;YACd,CAAC;YAGD,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,OAAO,KAAK,CAAC;YACd,CAAC;YAED,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,UAAkB,EAAE,SAAiB;QAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,UAAU,MAAM,SAAS,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAiB,EAAE,UAAkB;QAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,SAAS,MAAM,UAAU,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAiB;QAC5B,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,SAAS,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAiB;QAC5B,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,SAAS,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,UAAkB;QAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,UAAU,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,OAAe;QAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,OAAO,MAAM,OAAO,GAAG,CAAC,CAAC;IACvD,CAAC;IAGD,KAAK,CAAC,KAAK;IAEX,CAAC;IAEO,YAAY,CAAC,KAAa;QACjC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;CACD;AAtOD,4CAsOC;AAEM,KAAK,UAAU,kBAAkB;;IAGvC,IAAI,CAAC;QACJ,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAA+B,CAAC;QAEzF,KAAK,CACJ,mCAAmC,EACnC,WAAW,CAAC,IAAI,EAChB,WAAW,CAAC,KAAK,EACjB,MAAA,WAAW,CAAC,MAAM,mCAAI,EAAE,EACxB,WAAW,CAAC,QAAQ,CACpB,CAAC;QACF,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,EAAE,WAAW,CAAW,CAAC;QACvF,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,WAAW,EAAE,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAGhF,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEtB,OAAO,EAAE,MAAM,EAAE,CAAC;IACnB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACrB,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAClC,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,IAAI,2BAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE;YAC7C,OAAO,EAAE,oCAAoC,aAAa,EAAE;SAC5D,CAAC,CAAC;IACJ,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"SmbClientWrapper.js","sourceRoot":"","sources":["../../../nodes/Smb2/SmbClientWrapper.ts"],"names":[],"mappings":"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"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-smbclient",
3
- "version": "1.1.2",
3
+ "version": "1.1.4",
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",
@@ -58,6 +58,6 @@
58
58
  },
59
59
  "overrides": {
60
60
  "form-data": "^4.0.4",
61
- "axios": "1.17.0"
61
+ "axios": "1.18.1"
62
62
  }
63
63
  }
package/docker/Dockerfile CHANGED
@@ -8,10 +8,10 @@
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.23.3
11
+ ARG N8N_VERSION=2.29.5
12
12
 
13
13
  # ---- Stage 1: collect smbclient + its dependency files ----
14
- FROM alpine:3.23 AS smb
14
+ FROM alpine:3.24 AS smb
15
15
  RUN set -eux; \
16
16
  apk add --no-cache samba-client 2>&1 | tee /tmp/apk.log; \
17
17
  smbclient --version; \
@@ -17,6 +17,17 @@ name: n8n-nodes-smbclient-dev
17
17
  #
18
18
  # After editing the node code: `npm run build`, then
19
19
  # REINSTALL_SMB_NODE=true docker compose up -d --force-recreate n8n
20
+ #
21
+ # Connecting to the share from your host (the `smb` service publishes 1445:445):
22
+ # - smbclient supports an explicit port, so from WSL / Git-Bash / Linux:
23
+ # smbclient //localhost/n8nshare -p 1445 -U 'n8n%n8npass'
24
+ # - Windows Explorer / `net use` cannot use a custom port (UNC has no port
25
+ # syntax) and Windows already binds 445 for its own file sharing, so you
26
+ # cannot simply republish this service as "445:445". To map a drive letter
27
+ # you must first free 445 (stop the "Server"/LanmanServer service), change
28
+ # the published port below to "445:445", then:
29
+ # net use Z: \\localhost\n8nshare /user:n8n n8npass
30
+ # Re-enable LanmanServer afterwards.
20
31
 
21
32
  services:
22
33
  n8n:
@@ -5,8 +5,7 @@ import {
5
5
  NodeApiError,
6
6
  NodeOperationError,
7
7
  } from 'n8n-workflow';
8
- import { promisify } from 'node:util';
9
- import { execFile } from 'node:child_process';
8
+ import { spawn } from 'node:child_process';
10
9
  import { Smb2Credentials, SmbListEntry, SmbStat } from './interfaces';
11
10
  import { debuglog } from 'util';
12
11
 
@@ -21,6 +20,15 @@ const debug = debuglog('n8n-nodes-smbclient');
21
20
  // end-of-listing markers emitted during normal `ls`/`del` wildcard expansion.
22
21
  const SMB_FAILURE_RE = /NT_STATUS_(?!OK\b|NO_MORE_FILES\b|NO_MORE_ENTRIES\b)[A-Z0-9_]+/;
23
22
 
23
+ // smbclient also prints NT_STATUS_* lines to stderr that carry a status code but
24
+ // do NOT mean the requested operation failed. The main offender is the VFS
25
+ // "shadow copy" probe that many Samba builds run on `allinfo`, e.g.:
26
+ // NT_STATUS_INVALID_DEVICE_REQUEST getting shadow copy data for \file.txt
27
+ // These benign lines must be stripped before failure detection, otherwise a
28
+ // perfectly good `stat` would be reported as an error.
29
+ const BENIGN_WARNING_RE = /^.*NT_STATUS_\w+\s+getting shadow copy data.*$/gim;
30
+ const stripBenignWarnings = (s: string): string => s.replace(BENIGN_WARNING_RE, '');
31
+
24
32
  const SMB_ERROR_HINTS: Array<[RegExp, string]> = [
25
33
  [/EACCES/i, 'Access Denied - Check your permissions for this file/folder'],
26
34
  [/ENOENT/i, 'File/Path Not Found'],
@@ -42,7 +50,6 @@ export function getReadableError(error: any): string {
42
50
  return msg;
43
51
  }
44
52
 
45
- const execFileAsync = promisify(execFile);
46
53
  const redactCmd = (s: string): string => {
47
54
  if (!s) return s;
48
55
  s = s.replace(/-U\s+\S+/g, '-U ***');
@@ -95,7 +102,7 @@ export class SmbClientWrapper {
95
102
  throw new NodeOperationError(this.node, `smbclient failed. cmd="${safeCmd}" stderr="${safeErr}"`);
96
103
  }
97
104
 
98
- private async runOne(cmd: string): Promise<string> {
105
+ private runOne(cmd: string): Promise<string> {
99
106
  const args = [...this.buildBaseArgs(), '-c', cmd];
100
107
 
101
108
  const { username, password, domain } = this.auth;
@@ -103,45 +110,83 @@ export class SmbClientWrapper {
103
110
  const rawCmd = [this.smbclientPath, ...args].join(' ');
104
111
  const safeCmd = maskSecrets(redactCmd(rawCmd), [username, password, domain]);
105
112
 
106
- let stdout = '';
107
- let stderr = '';
108
- try {
109
- ({ stdout, stderr } = await execFileAsync(this.smbclientPath, args, {
110
- maxBuffer: 10 * 1024 * 1024,
111
- }));
112
- } catch (err: any) {
113
- // execFile rejects both when smbclient can't be run (spawn error,
114
- // timeout/kill) and when it merely exits non-zero. The latter is not a
115
- // reliable failure signal, so only treat it as an error when smbclient
116
- // could not run at all, or when its output reports a real NT_STATUS_*
117
- // failure. Otherwise keep its output and fall through as success.
118
- stdout = typeof err?.stdout === 'string' ? err.stdout : '';
119
- stderr = typeof err?.stderr === 'string' ? err.stderr : '';
120
- const couldNotRun = typeof err?.code !== 'number' || err?.killed === true;
121
- if (couldNotRun || SMB_FAILURE_RE.test(`${stdout}\n${stderr}`)) {
122
- this.fail(safeCmd, stderr.trim() || stdout.trim() || err?.message);
123
- }
124
- }
125
-
126
- // smbclient sometimes reports a failed command in its output while still
127
- // exiting cleanly, so check the output regardless of the exit code.
128
- if (SMB_FAILURE_RE.test(`${stdout}\n${stderr}`)) {
129
- this.fail(safeCmd, stderr.trim() || stdout.trim());
130
- }
131
-
132
- return stdout ?? '';
113
+ // We stream stdout/stderr through `spawn` rather than buffering with
114
+ // `execFile`'s fixed `maxBuffer`: large directory listings (e.g. 160k+
115
+ // files) easily exceed any sane cap and would otherwise fail with
116
+ // ERR_CHILD_PROCESS_STDIO_MAXBUFFER. Output is bounded only by heap.
117
+ return new Promise<string>((resolve, reject) => {
118
+ const child = spawn(this.smbclientPath, args, { windowsHide: true });
119
+
120
+ const outChunks: Buffer[] = [];
121
+ const errChunks: Buffer[] = [];
122
+ let spawnError: Error | undefined;
123
+
124
+ child.stdout.on('data', (c: Buffer) => outChunks.push(c));
125
+ child.stderr.on('data', (c: Buffer) => errChunks.push(c));
126
+ child.on('error', (e: Error) => {
127
+ spawnError = e;
128
+ });
129
+
130
+ child.on('close', (code: number | null, signal: string | null) => {
131
+ const stdout = Buffer.concat(outChunks).toString('utf8');
132
+ const stderr = Buffer.concat(errChunks).toString('utf8');
133
+
134
+ // smbclient's exit code is unreliable (it can exit non-zero on
135
+ // success), so we do NOT key failure off `code`. We only fail when
136
+ // the process could not run at all (spawn error or it was killed by a
137
+ // signal) or when its output contains a real NT_STATUS_* error.
138
+ const couldNotRun = !!spawnError || signal != null;
139
+ const diagnostics = stripBenignWarnings(`${stdout}\n${stderr}`);
140
+ try {
141
+ if (couldNotRun || SMB_FAILURE_RE.test(diagnostics)) {
142
+ this.fail(
143
+ safeCmd,
144
+ stripBenignWarnings(stderr).trim() ||
145
+ stdout.trim() ||
146
+ spawnError?.message ||
147
+ `smbclient exited (code=${code}, signal=${signal})`,
148
+ );
149
+ }
150
+ resolve(stdout);
151
+ } catch (err) {
152
+ reject(err);
153
+ }
154
+ });
155
+ });
133
156
  }
134
157
 
135
158
  async stat(remotePath: string): Promise<SmbStat> {
136
159
  const out = await this.runOne(`allinfo "${remotePath}"`);
160
+
161
+ // `allinfo` output is colon-delimited "key: value" (NOT pipe-delimited —
162
+ // the `-g` flag has no effect on it), e.g.:
163
+ // altname: SOMEFI~1.PDF
164
+ // create_time: Thu Sep 4 14:39:03 2025 CEST
165
+ // attributes: A (20)
166
+ // stream: [::$DATA], 2058 bytes
167
+ // Time values contain colons, so we split on the FIRST colon only.
137
168
  const info = new Map<string, string>();
138
169
  for (const line of out.split('\n')) {
139
- const [k, v] = line.split('|');
140
- if (k && v !== undefined) info.set(k.trim().toUpperCase(), v.trim());
170
+ const idx = line.indexOf(':');
171
+ if (idx === -1) continue;
172
+ const key = line.slice(0, idx).trim().toUpperCase();
173
+ const value = line.slice(idx + 1).trim();
174
+ if (key) info.set(key, value);
141
175
  }
142
- const attrs = (info.get('ATTRIBUTES') ?? '').split('').filter(Boolean);
176
+
177
+ // "A (20)" -> letter flags only ("A"); drop the trailing "(hex)" annotation.
178
+ const attrs = (info.get('ATTRIBUTES') ?? '')
179
+ .split('(')[0]
180
+ .trim()
181
+ .split('')
182
+ .filter((c) => /[A-Za-z]/.test(c));
183
+
184
+ // There is no `size` key — the byte count lives in the stream line, e.g.
185
+ // "[::$DATA], 2058 bytes" (absent for directories).
186
+ const sizeMatch = (info.get('STREAM') ?? '').match(/(\d+)\s*bytes/i);
187
+
143
188
  return {
144
- size: info.get('SIZE') ? Number(info.get('SIZE')) : undefined,
189
+ size: sizeMatch ? Number(sizeMatch[1]) : undefined,
145
190
  createTime: info.get('CREATE_TIME') ?? undefined,
146
191
  accessTime: info.get('ACCESS_TIME') ?? undefined,
147
192
  writeTime: info.get('WRITE_TIME') ?? undefined,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-smbclient",
3
- "version": "1.1.2",
3
+ "version": "1.1.4",
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",
@@ -52,7 +52,7 @@
52
52
  },
53
53
  "overrides": {
54
54
  "form-data": "^4.0.4",
55
- "axios": "1.17.0"
55
+ "axios": "1.18.1"
56
56
  },
57
57
  "scripts": {
58
58
  "build": "npx rimraf dist && tsc && gulp build:icons",