n8n-nodes-smbclient 1.1.2 → 1.1.3
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 +5 -0
- package/.github/workflows/one-shot-npm-publish.yml +78 -36
- package/dist/nodes/Smb2/SmbClientWrapper.js +51 -32
- package/dist/nodes/Smb2/SmbClientWrapper.js.map +1 -1
- package/dist/package.json +1 -1
- package/docker/Dockerfile +1 -1
- package/docker-compose.yml +11 -0
- package/nodes/Smb2/SmbClientWrapper.ts +80 -35
- package/package.json +1 -1
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
|
|
@@ -1,36 +1,78 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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@v6
|
|
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
|
-
|
|
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
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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
|
|
109
|
-
if (
|
|
110
|
-
|
|
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 : '')
|
|
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:
|
|
115
|
-
createTime: (
|
|
116
|
-
accessTime: (
|
|
117
|
-
writeTime: (
|
|
118
|
-
changeTime: (
|
|
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":"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"}
|
|
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.
|
|
3
|
+
"version": "1.1.3",
|
|
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",
|
package/docker/Dockerfile
CHANGED
package/docker-compose.yml
CHANGED
|
@@ -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 {
|
|
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
|
|
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
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
})
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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
|
|
140
|
-
if (
|
|
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
|
-
|
|
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:
|
|
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.
|
|
3
|
+
"version": "1.1.3",
|
|
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",
|