n8n-nodes-smbclient 1.0.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.
Files changed (38) hide show
  1. package/.editorconfig +20 -0
  2. package/.github/workflows/npm-publish.yml +32 -0
  3. package/.github/workflows/one-shot-npm-publish.yml +30 -0
  4. package/.prettierrc.js +51 -0
  5. package/LICENSE.md +19 -0
  6. package/Readme.md +131 -0
  7. package/credentials/Smb2Api.credentials.ts +72 -0
  8. package/credentials/smb2.svg +36 -0
  9. package/dist/credentials/Smb2Api.credentials.d.ts +7 -0
  10. package/dist/credentials/Smb2Api.credentials.js +72 -0
  11. package/dist/credentials/Smb2Api.credentials.js.map +1 -0
  12. package/dist/credentials/smb2.svg +36 -0
  13. package/dist/nodes/Smb2/Smb2.node.d.ts +5 -0
  14. package/dist/nodes/Smb2/Smb2.node.js +174 -0
  15. package/dist/nodes/Smb2/Smb2.node.js.map +1 -0
  16. package/dist/nodes/Smb2/Smb2.node.json +19 -0
  17. package/dist/nodes/Smb2/SmbClientWrapper.d.ts +22 -0
  18. package/dist/nodes/Smb2/SmbClientWrapper.js +231 -0
  19. package/dist/nodes/Smb2/SmbClientWrapper.js.map +1 -0
  20. package/dist/nodes/Smb2/SmbEntryHelpers.d.ts +6 -0
  21. package/dist/nodes/Smb2/SmbEntryHelpers.js +102 -0
  22. package/dist/nodes/Smb2/SmbEntryHelpers.js.map +1 -0
  23. package/dist/nodes/Smb2/interfaces.d.ts +31 -0
  24. package/dist/nodes/Smb2/interfaces.js +3 -0
  25. package/dist/nodes/Smb2/interfaces.js.map +1 -0
  26. package/dist/nodes/Smb2/smb2.svg +36 -0
  27. package/dist/package.json +67 -0
  28. package/eslint.config.mjs +174 -0
  29. package/gulpfile.js +16 -0
  30. package/index.js +0 -0
  31. package/nodes/Smb2/Smb2.node.json +19 -0
  32. package/nodes/Smb2/Smb2.node.ts +184 -0
  33. package/nodes/Smb2/SmbClientWrapper.ts +285 -0
  34. package/nodes/Smb2/SmbEntryHelpers.ts +129 -0
  35. package/nodes/Smb2/interfaces.ts +39 -0
  36. package/nodes/Smb2/smb2.svg +36 -0
  37. package/package.json +67 -0
  38. package/tsconfig.json +30 -0
package/.editorconfig ADDED
@@ -0,0 +1,20 @@
1
+ root = true
2
+
3
+ [*]
4
+ charset = utf-8
5
+ indent_style = tab
6
+ indent_size = 2
7
+ end_of_line = lf
8
+ insert_final_newline = true
9
+ trim_trailing_whitespace = true
10
+
11
+ [package.json]
12
+ indent_style = space
13
+ indent_size = 2
14
+
15
+ [*.md]
16
+ trim_trailing_whitespace = false
17
+
18
+ [*.yml]
19
+ indent_style = space
20
+ indent_size = 2
@@ -0,0 +1,32 @@
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:
7
+ release:
8
+ types: [created]
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+ - uses: actions/setup-node@v4
16
+ with:
17
+ node-version: 20
18
+ - run: npm ci
19
+
20
+ publish-npm:
21
+ needs: build
22
+ runs-on: ubuntu-latest
23
+ steps:
24
+ - uses: actions/checkout@v4
25
+ - uses: actions/setup-node@v4
26
+ with:
27
+ node-version: 20
28
+ registry-url: https://registry.npmjs.org/
29
+ - run: npm ci
30
+ - run: npm publish
31
+ env:
32
+ NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
@@ -0,0 +1,30 @@
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@v4
13
+ - uses: actions/setup-node@v4
14
+ with:
15
+ node-version: 20
16
+ - run: npm ci
17
+
18
+ publish-npm:
19
+ needs: build
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+ - uses: actions/setup-node@v4
24
+ with:
25
+ node-version: 20
26
+ registry-url: https://registry.npmjs.org/
27
+ - run: npm ci
28
+ - run: npm publish
29
+ env:
30
+ NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
package/.prettierrc.js ADDED
@@ -0,0 +1,51 @@
1
+ module.exports = {
2
+ /**
3
+ * https://prettier.io/docs/en/options.html#semicolons
4
+ */
5
+ semi: true,
6
+
7
+ /**
8
+ * https://prettier.io/docs/en/options.html#trailing-commas
9
+ */
10
+ trailingComma: 'all',
11
+
12
+ /**
13
+ * https://prettier.io/docs/en/options.html#bracket-spacing
14
+ */
15
+ bracketSpacing: true,
16
+
17
+ /**
18
+ * https://prettier.io/docs/en/options.html#tabs
19
+ */
20
+ useTabs: true,
21
+
22
+ /**
23
+ * https://prettier.io/docs/en/options.html#tab-width
24
+ */
25
+ tabWidth: 2,
26
+
27
+ /**
28
+ * https://prettier.io/docs/en/options.html#arrow-function-parentheses
29
+ */
30
+ arrowParens: 'always',
31
+
32
+ /**
33
+ * https://prettier.io/docs/en/options.html#quotes
34
+ */
35
+ singleQuote: true,
36
+
37
+ /**
38
+ * https://prettier.io/docs/en/options.html#quote-props
39
+ */
40
+ quoteProps: 'as-needed',
41
+
42
+ /**
43
+ * https://prettier.io/docs/en/options.html#end-of-line
44
+ */
45
+ endOfLine: 'lf',
46
+
47
+ /**
48
+ * https://prettier.io/docs/en/options.html#print-width
49
+ */
50
+ printWidth: 100,
51
+ };
package/LICENSE.md ADDED
@@ -0,0 +1,19 @@
1
+ Copyright 2025 Nick Penree <nick@penree.com>
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
4
+ this software and associated documentation files (the "Software"), to deal in
5
+ the Software without restriction, including without limitation the rights to
6
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7
+ of the Software, and to permit persons to whom the Software is furnished to do
8
+ 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/Readme.md ADDED
@@ -0,0 +1,131 @@
1
+ # n8n-nodes-smbclient
2
+
3
+ This is a n8n community node that lets you interact with Samba/SMB2 file shares in your n8n workflows using
4
+ samba-client linux package. It enables
5
+ reading, writing, and managing files on SMB2-compatible network shares.
6
+
7
+ [N8N](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.
8
+
9
+ - [Installation](#installation)
10
+ - [Operations](#operations)
11
+ - [Credentials](#credentials)
12
+ - [Compatibility](#compatibility)
13
+ - [Resources](#resources)
14
+
15
+ ## Installation
16
+
17
+ Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community
18
+ nodes documentation.
19
+
20
+ > Be sure to have the samba-client package installed in your n8n instance/container.
21
+ > For example, in a Dockerfile based on n8n image, you can add:
22
+ > ```Dockerfile
23
+ > RUN apk add --no-cache samba-client
24
+ > ```
25
+ > This ensures that the samba-client is installed before n8n starts.
26
+ >
27
+ > Without this package, the SMB node will not function correctly.
28
+ >
29
+ > Make sure to rebuild your Docker image or restart your container after making these changes.
30
+ > You can verify the installation by running `smbclient --version` inside your n8n container.
31
+ >
32
+ > If the command returns the version of samba-client, the installation was successful.
33
+ >
34
+ > If you encounter any issues, refer to the samba-client documentation or seek help from the n8n community forums.
35
+ >
36
+ > Remember to keep your samba-client package updated to ensure compatibility and security.
37
+ >
38
+ > For Alpine-based images, use `apk add --no-cache samba-client`.
39
+ >
40
+ > For Debian/Ubuntu-based images, use `apt-get update && apt-get install -y smbclient`.
41
+ >
42
+ > For CentOS-based images, use `yum install -y samba-client`.
43
+ >
44
+ > Adjust the package manager commands based on your specific Linux distribution used in your n8n instance.
45
+ >
46
+ > Ensure that the samba-client version is compatible with your SMB server version to avoid connectivity issues.
47
+
48
+ ## Operations
49
+
50
+ The node supports the following operations:
51
+
52
+ - Download a file from the SMB share.
53
+
54
+ - Upload a file to the SMB share.
55
+
56
+ - List the contents of a directory on the SMB share.
57
+
58
+ - Delete a file or folder from the SMB share.
59
+
60
+ - Rename or moves a file or folder on the SMB share.
61
+
62
+ ## Credentials
63
+
64
+ You need the following credentials to connect to an SMB share:
65
+
66
+ - **Host**: The hostname or IP address of the SMB server
67
+ - **Share Name**: The name of the share to connect to
68
+ - **Username**: Username for authentication
69
+ - **Password**: Password for authentication
70
+ - **Domain**: (Optional) Domain name for Active Directory authentication
71
+
72
+ ## Compatibility
73
+
74
+ - /!\ **Requires** samba-client apk package installed on image /!\
75
+ - **Requires** n8n version 1.0.0 or later
76
+ - Node.js v18.10 or later
77
+ - Compatible with SMB2/SMB3 protocol
78
+
79
+ ## Resources
80
+
81
+ * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
82
+ * [SMB2 Protocol Documentation](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-smb/5606ad47-5ee0-437a-817e-70c366052962)
83
+ * [Samba Documentation](https://www.samba.org/samba/docs/)
84
+
85
+ ## Error Handling
86
+
87
+ The node provides detailed error messages for common SMB issues:
88
+
89
+ - Access denied errors
90
+ - Network connectivity issues
91
+ - File/path not found
92
+ - Share not found
93
+ - Authentication failures
94
+ - Quota issues
95
+ - File sharing violations
96
+
97
+ ## Running local (Development)
98
+
99
+ > Required podman and n8nio image setup
100
+
101
+ 1. Run build
102
+ 2. Launch a terminal to your podman container
103
+ 3. Go to nodes folder
104
+
105
+ ```shell
106
+ cd ~/.n8n/nodes
107
+ ```
108
+
109
+ 4. Update package.json in `~/.n8n/nodes` using `vim` and put the following line
110
+
111
+ ```json
112
+ {
113
+ "name": "installed-nodes",
114
+ "private": true,
115
+ "dependencies": {
116
+ "n8n-nodes-smbclient": "file:/opt/code-temp"
117
+ }
118
+ }
119
+ ```
120
+
121
+ > **Warning:** be sure to mount a volumes in your image, example with a docker-compose :
122
+ > ```yaml
123
+ > services:
124
+ > n8n:
125
+ > image: n8nio/n8n:1.118.0
126
+ > ports:
127
+ > - "5678:5678"
128
+ > volumes:
129
+ > - C:\_wksp\my-folder\n8n-nodes-smbclient:/opt/code-temp
130
+
131
+ 6. Restart your pod and voilà
@@ -0,0 +1,72 @@
1
+ import {
2
+ Icon,
3
+ ICredentialType,
4
+ INodeProperties,
5
+ } from 'n8n-workflow';
6
+
7
+ export class Smb2Api implements ICredentialType {
8
+ name = 'smb2Api';
9
+ displayName = 'Smbclient (SMB2) API';
10
+
11
+ icon: Icon = 'file:smb2.svg';
12
+ properties: INodeProperties[] = [
13
+ {
14
+ displayName: 'Server',
15
+ name: 'host',
16
+ type: 'string',
17
+ required: true,
18
+ default: '',
19
+ },
20
+ {
21
+ displayName: 'User Name',
22
+ name: 'username',
23
+ type: 'string',
24
+ required: true,
25
+ default: '',
26
+ },
27
+ {
28
+ displayName: 'Password',
29
+ name: 'password',
30
+ type: 'string',
31
+ typeOptions: {
32
+ password: true,
33
+ },
34
+ noDataExpression: true,
35
+ required: true,
36
+ default: '',
37
+ },
38
+ {
39
+ displayName: 'Domain',
40
+ name: 'domain',
41
+ type: 'string',
42
+ default: '',
43
+ },
44
+ {
45
+ displayName: 'Port',
46
+ name: 'port',
47
+ type: 'number',
48
+ default: 445,
49
+ },
50
+ {
51
+ displayName: 'Share Name',
52
+ name: 'share',
53
+ type: 'string',
54
+ required: true,
55
+ default: '',
56
+ },
57
+ {
58
+ displayName: 'Connect Timeout',
59
+ name: 'connectTimeout',
60
+ type: 'number',
61
+ description: 'Connection timeout in ms',
62
+ default: 15000,
63
+ },
64
+ {
65
+ displayName: 'Request Timeout',
66
+ name: 'requestTimeout',
67
+ description: 'Request timeout in ms',
68
+ type: 'number',
69
+ default: 15000,
70
+ },
71
+ ];
72
+ }
@@ -0,0 +1,36 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg id="Calque_1" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512">
3
+ <!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 141) -->
4
+ <defs>
5
+ <style>
6
+ .st0 {
7
+ fill: url(#Dégradé_sans_nom1);
8
+ }
9
+
10
+ .st1 {
11
+ fill: url(#Dégradé_sans_nom2);
12
+ }
13
+
14
+ .st2 {
15
+ fill: url(#Dégradé_sans_nom);
16
+ }
17
+
18
+ .st3 {
19
+ fill: url(#Dégradé_sans_nom3);
20
+ }
21
+ </style>
22
+ <linearGradient id="Dégradé_sans_nom" data-name="Dégradé sans nom" x1="-1301.41" y1="140.82" x2="-1300.41" y2="141.82" gradientTransform="translate(174550 -18839.5) scale(134)" gradientUnits="userSpaceOnUse">
23
+ <stop offset="0" stop-color="#4c9ded"/>
24
+ <stop offset="1" stop-color="#3178b5"/>
25
+ </linearGradient>
26
+ <linearGradient id="Dégradé_sans_nom1" data-name="Dégradé sans nom" x1="-1305.78" y1="138.8" x2="-1304.78" y2="139.8" gradientTransform="translate(418568.08 -11797.5) scale(320.43 87)" xlink:href="#Dégradé_sans_nom"/>
27
+ <linearGradient id="Dégradé_sans_nom2" data-name="Dégradé sans nom" x1="214.73" y1="-57.27" x2="452.27" y2="180.27" gradientTransform="translate(0 514) scale(1 -1)" xlink:href="#Dégradé_sans_nom"/>
28
+ <linearGradient id="Dégradé_sans_nom3" data-name="Dégradé sans nom" x1="0" y1="217" x2="325" y2="217" gradientTransform="matrix(1,0,0,1,0,0)" xlink:href="#Dégradé_sans_nom"/>
29
+ </defs>
30
+ <g id="Calque_1-2">
31
+ <path class="st2" d="M325,134v-6.6c0-3.18-1.26-6.23-3.5-8.48L206.37,3.52c-2.25-2.26-5.31-3.52-8.5-3.52h-6.87v134h134Z"/>
32
+ <path class="st0" d="M228.3,274c-5.89,0-11.3,3.23-14.09,8.42l-42.21,78.58h320.38l-48-79.28c-2.89-4.78-8.07-7.71-13.66-7.72h-202.42Z"/>
33
+ <path class="st1" d="M280.77,441.58c-1.74-.84-3.67-1.21-5.6-1.08h-4.95v9.59h5.47c2.59,0,4.38-.42,5.37-1.27,1.03-.93,1.58-2.28,1.49-3.66.12-1.43-.56-2.81-1.78-3.58ZM282.77,457.2c-.56-.86-1.39-1.5-2.36-1.83-1.42-.48-2.92-.7-4.42-.64h-5.74v11h6c2.67,0,4.53-.51,5.59-1.54,1.11-1.11,1.7-2.63,1.62-4.19.02-.98-.23-1.95-.72-2.8h.03ZM282.77,457.2c-.56-.86-1.39-1.5-2.36-1.83-1.42-.48-2.92-.7-4.42-.64h-5.74v11h6c2.67,0,4.53-.51,5.59-1.54,1.11-1.11,1.7-2.63,1.62-4.19.02-.98-.23-1.95-.72-2.8h.03ZM280.77,441.58c-1.74-.84-3.67-1.21-5.6-1.08h-4.95v9.59h5.47c2.59,0,4.38-.42,5.37-1.27,1.03-.93,1.58-2.28,1.49-3.66.12-1.43-.56-2.81-1.78-3.58ZM280.77,441.58c-1.74-.84-3.67-1.21-5.6-1.08h-4.95v9.59h5.47c2.59,0,4.38-.42,5.37-1.27,1.03-.93,1.58-2.28,1.49-3.66.12-1.43-.56-2.81-1.78-3.58ZM282.77,457.2c-.56-.86-1.39-1.5-2.36-1.83-1.42-.48-2.92-.7-4.42-.64h-5.74v11h6c2.67,0,4.53-.51,5.59-1.54,1.11-1.11,1.7-2.63,1.62-4.19.02-.98-.23-1.95-.72-2.8h.03ZM282.77,457.2c-.56-.86-1.39-1.5-2.36-1.83-1.42-.48-2.92-.7-4.42-.64h-5.74v11h6c2.67,0,4.53-.51,5.59-1.54,1.11-1.11,1.7-2.63,1.62-4.19.02-.98-.23-1.95-.72-2.8h.03ZM281.09,448.82c1.03-.93,1.58-2.28,1.49-3.66.12-1.43-.57-2.81-1.78-3.58-1.74-.84-3.67-1.21-5.6-1.08h-4.95v9.59h5.47c2.57,0,4.35-.42,5.34-1.27h.03ZM496,393H171c-8.84,0-16,7.16-16,16v87c0,8.84,7.16,16,16,16h325c8.84,0,16-7.16,16-16v-87c0-8.84-7.16-16-16-16ZM211.39,466.38c-1.07,1.55-2.58,2.74-4.33,3.43-2.14.84-4.42,1.24-6.72,1.19-1.22,0-2.43-.07-3.64-.21-1.1-.14-2.19-.35-3.27-.63-.97-.25-1.91-.59-2.82-1v-5.37c1.55.66,3.14,1.22,4.76,1.67,1.73.5,3.53.75,5.33.75,1.25.04,2.49-.16,3.66-.58.88-.32,1.64-.9,2.18-1.67.49-.75.74-1.63.72-2.53.04-.94-.26-1.86-.83-2.6-.69-.83-1.55-1.51-2.51-2-1.37-.71-2.78-1.36-4.22-1.92-1.12-.44-2.21-.96-3.26-1.55-1-.57-1.93-1.27-2.76-2.07-.82-.81-1.48-1.77-1.93-2.83-.5-1.21-.74-2.52-.71-3.83-.05-1.79.44-3.56,1.42-5.06,1-1.44,2.38-2.55,4-3.22,1.9-.78,3.94-1.16,6-1.12,1.74-.01,3.47.18,5.16.58,1.62.4,3.21.94,4.74,1.61l-1.77,4.58c-1.36-.56-2.75-1.03-4.16-1.41-1.33-.36-2.71-.54-4.09-.54-1.05-.03-2.1.16-3.07.55-2.21,1-3.18,3.61-2.18,5.81.1.22.22.43.36.64.63.79,1.42,1.43,2.33,1.88,1.06.57,2.42,1.2,4.08,1.9,1.7.68,3.34,1.52,4.89,2.5,1.26.78,2.32,1.86,3.08,3.13.76,1.39,1.13,2.96,1.07,4.55.06,1.9-.47,3.78-1.51,5.37ZM255.39,470.52h-5.44v-22.8c0-1.23.08-2.4.13-3.51s.11-2,.16-2.67h-.24l-10.37,29h-5l-10-29h-.21c0,.65.1,1.53.16,2.65s.12,2.32.17,3.62.07,2.51.07,3.67v19.08h-5.19v-34.82h8l9.64,27.77h.14l10-27.77h8l-.02,34.78ZM287.94,466c-1.07,1.53-2.57,2.72-4.31,3.4-2.11.82-4.36,1.22-6.63,1.16h-12.49v-34.82h10.35c4.49,0,7.88.65,10.16,1.95,2.28,1.3,3.42,3.55,3.43,6.76.01,1.23-.22,2.45-.7,3.59-.44,1.03-1.12,1.93-2,2.63-.97.72-2.09,1.2-3.28,1.39v.24c1.26.21,2.48.64,3.6,1.26,1.06.61,1.93,1.51,2.5,2.59.66,1.36.98,2.87.92,4.38.05,1.94-.49,3.85-1.55,5.47ZM317.81,470.56h-23.58v-4.21l9-9.13c1.74-1.78,3.18-3.31,4.3-4.61,1-1.11,1.85-2.34,2.53-3.67.56-1.19.84-2.48.83-3.79.1-1.41-.43-2.8-1.45-3.79-1.07-.9-2.43-1.37-3.83-1.3-1.44-.01-2.87.29-4.18.89-1.43.68-2.77,1.53-4,2.54l-3.07-3.71c.97-.82,2-1.57,3.08-2.24,1.16-.71,2.4-1.26,3.7-1.64,1.52-.44,3.1-.65,4.69-.62,1.97-.05,3.92.35,5.71,1.18,1.52.72,2.81,1.85,3.7,3.28.88,1.47,1.33,3.16,1.29,4.87.02,1.79-.36,3.56-1.11,5.19-.83,1.71-1.91,3.29-3.19,4.7-1.38,1.56-3,3.24-4.93,5.05l-6,5.85v.26h16.47l.04,4.9ZM372.74,476.78c-13.25,0-24-10.75-24-24s10.75-24,24-24,24,10.75,24,24c-.02,13.24-10.76,23.96-24,23.96v.04ZM444.74,476.78c-13.25,0-24-10.75-24-24s10.75-24,24-24,24,10.75,24,24c-.02,13.24-10.76,23.96-24,23.96v.04ZM280.38,455.37c-1.42-.48-2.92-.7-4.42-.64h-5.74v11h6c2.67,0,4.53-.51,5.59-1.54,1.11-1.11,1.7-2.63,1.62-4.19.02-.98-.22-1.96-.71-2.81-.56-.85-1.38-1.49-2.34-1.82ZM281.06,448.82c1.03-.93,1.58-2.28,1.49-3.66.12-1.43-.57-2.81-1.78-3.58-1.74-.84-3.67-1.21-5.6-1.08h-4.95v9.59h5.47c2.59,0,4.38-.42,5.37-1.27ZM280.77,441.58c-1.74-.84-3.67-1.21-5.6-1.08h-4.95v9.59h5.47c2.59,0,4.38-.42,5.37-1.27,1.03-.93,1.58-2.28,1.49-3.66.12-1.43-.56-2.81-1.78-3.58h0ZM282.77,457.2c-.56-.86-1.39-1.5-2.36-1.83-1.42-.48-2.92-.7-4.42-.64h-5.74v11h6c2.67,0,4.53-.51,5.59-1.54,1.11-1.11,1.7-2.63,1.62-4.19.02-.98-.23-1.95-.72-2.8h.03ZM282.77,457.2c-.56-.86-1.39-1.5-2.36-1.83-1.42-.48-2.92-.7-4.42-.64h-5.74v11h6c2.67,0,4.53-.51,5.59-1.54,1.11-1.11,1.7-2.63,1.62-4.19.02-.98-.23-1.95-.72-2.8h.03ZM280.77,441.58c-1.74-.84-3.67-1.21-5.6-1.08h-4.95v9.59h5.47c2.59,0,4.38-.42,5.37-1.27,1.03-.93,1.58-2.28,1.49-3.66.12-1.43-.56-2.81-1.78-3.58h0ZM280.77,441.58c-1.74-.84-3.67-1.21-5.6-1.08h-4.95v9.59h5.47c2.59,0,4.38-.42,5.37-1.27,1.03-.93,1.58-2.28,1.49-3.66.12-1.43-.56-2.81-1.78-3.58h0ZM282.77,457.2c-.56-.86-1.39-1.5-2.36-1.83-1.42-.48-2.92-.7-4.42-.64h-5.74v11h6c2.67,0,4.53-.51,5.59-1.54,1.11-1.11,1.7-2.63,1.62-4.19.02-.98-.23-1.95-.72-2.8h.03ZM282.77,457.2c-.56-.86-1.39-1.5-2.36-1.83-1.42-.48-2.92-.7-4.42-.64h-5.74v11h6c2.67,0,4.53-.51,5.59-1.54,1.11-1.11,1.7-2.63,1.62-4.19.02-.98-.23-1.95-.72-2.8h.03ZM280.77,441.58c-1.74-.84-3.67-1.21-5.6-1.08h-4.95v9.59h5.47c2.59,0,4.38-.42,5.37-1.27,1.03-.93,1.58-2.28,1.49-3.66.12-1.43-.56-2.81-1.78-3.58h0Z"/>
34
+ <path class="st3" d="M325,166v76h-96.44c-17.67,0-33.91,9.7-42.28,25.26l-57.08,106.15c-4.06,7.56-6.19,16.01-6.2,24.59v36H12c-6.63,0-12-5.37-12-12V12C0,5.37,5.37,0,12,0h147v154c0,6.63,5.37,12,12,12h154Z"/>
35
+ </g>
36
+ </svg>
@@ -0,0 +1,7 @@
1
+ import { Icon, ICredentialType, INodeProperties } from 'n8n-workflow';
2
+ export declare class Smb2Api implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ icon: Icon;
6
+ properties: INodeProperties[];
7
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Smb2Api = void 0;
4
+ class Smb2Api {
5
+ constructor() {
6
+ this.name = 'smb2Api';
7
+ this.displayName = 'Smbclient (SMB2) API';
8
+ this.icon = 'file:smb2.svg';
9
+ this.properties = [
10
+ {
11
+ displayName: 'Server',
12
+ name: 'host',
13
+ type: 'string',
14
+ required: true,
15
+ default: '',
16
+ },
17
+ {
18
+ displayName: 'User Name',
19
+ name: 'username',
20
+ type: 'string',
21
+ required: true,
22
+ default: '',
23
+ },
24
+ {
25
+ displayName: 'Password',
26
+ name: 'password',
27
+ type: 'string',
28
+ typeOptions: {
29
+ password: true,
30
+ },
31
+ noDataExpression: true,
32
+ required: true,
33
+ default: '',
34
+ },
35
+ {
36
+ displayName: 'Domain',
37
+ name: 'domain',
38
+ type: 'string',
39
+ default: '',
40
+ },
41
+ {
42
+ displayName: 'Port',
43
+ name: 'port',
44
+ type: 'number',
45
+ default: 445,
46
+ },
47
+ {
48
+ displayName: 'Share Name',
49
+ name: 'share',
50
+ type: 'string',
51
+ required: true,
52
+ default: '',
53
+ },
54
+ {
55
+ displayName: 'Connect Timeout',
56
+ name: 'connectTimeout',
57
+ type: 'number',
58
+ description: 'Connection timeout in ms',
59
+ default: 15000,
60
+ },
61
+ {
62
+ displayName: 'Request Timeout',
63
+ name: 'requestTimeout',
64
+ description: 'Request timeout in ms',
65
+ type: 'number',
66
+ default: 15000,
67
+ },
68
+ ];
69
+ }
70
+ }
71
+ exports.Smb2Api = Smb2Api;
72
+ //# sourceMappingURL=Smb2Api.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Smb2Api.credentials.js","sourceRoot":"","sources":["../../credentials/Smb2Api.credentials.ts"],"names":[],"mappings":";;;AAMA,MAAa,OAAO;IAApB;QACC,SAAI,GAAG,SAAS,CAAC;QACjB,gBAAW,GAAG,sBAAsB,CAAC;QAErC,SAAI,GAAS,eAAe,CAAC;QAC7B,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,QAAQ;gBACrB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,EAAE;aACX;YACD;gBACC,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,EAAE;aACX;YACD;gBACC,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACZ,QAAQ,EAAE,IAAI;iBACd;gBACD,gBAAgB,EAAE,IAAI;gBACtB,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,EAAE;aACX;YACD;gBACC,WAAW,EAAE,QAAQ;gBACrB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;aACX;YACD;gBACC,WAAW,EAAE,MAAM;gBACnB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,GAAG;aACZ;YACD;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,EAAE;aACX;YACD;gBACC,WAAW,EAAE,iBAAiB;gBAC9B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0BAA0B;gBACvC,OAAO,EAAE,KAAK;aACd;YACD;gBACC,WAAW,EAAE,iBAAiB;gBAC9B,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,uBAAuB;gBACpC,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,KAAK;aACd;SACD,CAAC;IACH,CAAC;CAAA;AAjED,0BAiEC"}
@@ -0,0 +1,36 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg id="Calque_1" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512">
3
+ <!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 141) -->
4
+ <defs>
5
+ <style>
6
+ .st0 {
7
+ fill: url(#Dégradé_sans_nom1);
8
+ }
9
+
10
+ .st1 {
11
+ fill: url(#Dégradé_sans_nom2);
12
+ }
13
+
14
+ .st2 {
15
+ fill: url(#Dégradé_sans_nom);
16
+ }
17
+
18
+ .st3 {
19
+ fill: url(#Dégradé_sans_nom3);
20
+ }
21
+ </style>
22
+ <linearGradient id="Dégradé_sans_nom" data-name="Dégradé sans nom" x1="-1301.41" y1="140.82" x2="-1300.41" y2="141.82" gradientTransform="translate(174550 -18839.5) scale(134)" gradientUnits="userSpaceOnUse">
23
+ <stop offset="0" stop-color="#4c9ded"/>
24
+ <stop offset="1" stop-color="#3178b5"/>
25
+ </linearGradient>
26
+ <linearGradient id="Dégradé_sans_nom1" data-name="Dégradé sans nom" x1="-1305.78" y1="138.8" x2="-1304.78" y2="139.8" gradientTransform="translate(418568.08 -11797.5) scale(320.43 87)" xlink:href="#Dégradé_sans_nom"/>
27
+ <linearGradient id="Dégradé_sans_nom2" data-name="Dégradé sans nom" x1="214.73" y1="-57.27" x2="452.27" y2="180.27" gradientTransform="translate(0 514) scale(1 -1)" xlink:href="#Dégradé_sans_nom"/>
28
+ <linearGradient id="Dégradé_sans_nom3" data-name="Dégradé sans nom" x1="0" y1="217" x2="325" y2="217" gradientTransform="matrix(1,0,0,1,0,0)" xlink:href="#Dégradé_sans_nom"/>
29
+ </defs>
30
+ <g id="Calque_1-2">
31
+ <path class="st2" d="M325,134v-6.6c0-3.18-1.26-6.23-3.5-8.48L206.37,3.52c-2.25-2.26-5.31-3.52-8.5-3.52h-6.87v134h134Z"/>
32
+ <path class="st0" d="M228.3,274c-5.89,0-11.3,3.23-14.09,8.42l-42.21,78.58h320.38l-48-79.28c-2.89-4.78-8.07-7.71-13.66-7.72h-202.42Z"/>
33
+ <path class="st1" d="M280.77,441.58c-1.74-.84-3.67-1.21-5.6-1.08h-4.95v9.59h5.47c2.59,0,4.38-.42,5.37-1.27,1.03-.93,1.58-2.28,1.49-3.66.12-1.43-.56-2.81-1.78-3.58ZM282.77,457.2c-.56-.86-1.39-1.5-2.36-1.83-1.42-.48-2.92-.7-4.42-.64h-5.74v11h6c2.67,0,4.53-.51,5.59-1.54,1.11-1.11,1.7-2.63,1.62-4.19.02-.98-.23-1.95-.72-2.8h.03ZM282.77,457.2c-.56-.86-1.39-1.5-2.36-1.83-1.42-.48-2.92-.7-4.42-.64h-5.74v11h6c2.67,0,4.53-.51,5.59-1.54,1.11-1.11,1.7-2.63,1.62-4.19.02-.98-.23-1.95-.72-2.8h.03ZM280.77,441.58c-1.74-.84-3.67-1.21-5.6-1.08h-4.95v9.59h5.47c2.59,0,4.38-.42,5.37-1.27,1.03-.93,1.58-2.28,1.49-3.66.12-1.43-.56-2.81-1.78-3.58ZM280.77,441.58c-1.74-.84-3.67-1.21-5.6-1.08h-4.95v9.59h5.47c2.59,0,4.38-.42,5.37-1.27,1.03-.93,1.58-2.28,1.49-3.66.12-1.43-.56-2.81-1.78-3.58ZM282.77,457.2c-.56-.86-1.39-1.5-2.36-1.83-1.42-.48-2.92-.7-4.42-.64h-5.74v11h6c2.67,0,4.53-.51,5.59-1.54,1.11-1.11,1.7-2.63,1.62-4.19.02-.98-.23-1.95-.72-2.8h.03ZM282.77,457.2c-.56-.86-1.39-1.5-2.36-1.83-1.42-.48-2.92-.7-4.42-.64h-5.74v11h6c2.67,0,4.53-.51,5.59-1.54,1.11-1.11,1.7-2.63,1.62-4.19.02-.98-.23-1.95-.72-2.8h.03ZM281.09,448.82c1.03-.93,1.58-2.28,1.49-3.66.12-1.43-.57-2.81-1.78-3.58-1.74-.84-3.67-1.21-5.6-1.08h-4.95v9.59h5.47c2.57,0,4.35-.42,5.34-1.27h.03ZM496,393H171c-8.84,0-16,7.16-16,16v87c0,8.84,7.16,16,16,16h325c8.84,0,16-7.16,16-16v-87c0-8.84-7.16-16-16-16ZM211.39,466.38c-1.07,1.55-2.58,2.74-4.33,3.43-2.14.84-4.42,1.24-6.72,1.19-1.22,0-2.43-.07-3.64-.21-1.1-.14-2.19-.35-3.27-.63-.97-.25-1.91-.59-2.82-1v-5.37c1.55.66,3.14,1.22,4.76,1.67,1.73.5,3.53.75,5.33.75,1.25.04,2.49-.16,3.66-.58.88-.32,1.64-.9,2.18-1.67.49-.75.74-1.63.72-2.53.04-.94-.26-1.86-.83-2.6-.69-.83-1.55-1.51-2.51-2-1.37-.71-2.78-1.36-4.22-1.92-1.12-.44-2.21-.96-3.26-1.55-1-.57-1.93-1.27-2.76-2.07-.82-.81-1.48-1.77-1.93-2.83-.5-1.21-.74-2.52-.71-3.83-.05-1.79.44-3.56,1.42-5.06,1-1.44,2.38-2.55,4-3.22,1.9-.78,3.94-1.16,6-1.12,1.74-.01,3.47.18,5.16.58,1.62.4,3.21.94,4.74,1.61l-1.77,4.58c-1.36-.56-2.75-1.03-4.16-1.41-1.33-.36-2.71-.54-4.09-.54-1.05-.03-2.1.16-3.07.55-2.21,1-3.18,3.61-2.18,5.81.1.22.22.43.36.64.63.79,1.42,1.43,2.33,1.88,1.06.57,2.42,1.2,4.08,1.9,1.7.68,3.34,1.52,4.89,2.5,1.26.78,2.32,1.86,3.08,3.13.76,1.39,1.13,2.96,1.07,4.55.06,1.9-.47,3.78-1.51,5.37ZM255.39,470.52h-5.44v-22.8c0-1.23.08-2.4.13-3.51s.11-2,.16-2.67h-.24l-10.37,29h-5l-10-29h-.21c0,.65.1,1.53.16,2.65s.12,2.32.17,3.62.07,2.51.07,3.67v19.08h-5.19v-34.82h8l9.64,27.77h.14l10-27.77h8l-.02,34.78ZM287.94,466c-1.07,1.53-2.57,2.72-4.31,3.4-2.11.82-4.36,1.22-6.63,1.16h-12.49v-34.82h10.35c4.49,0,7.88.65,10.16,1.95,2.28,1.3,3.42,3.55,3.43,6.76.01,1.23-.22,2.45-.7,3.59-.44,1.03-1.12,1.93-2,2.63-.97.72-2.09,1.2-3.28,1.39v.24c1.26.21,2.48.64,3.6,1.26,1.06.61,1.93,1.51,2.5,2.59.66,1.36.98,2.87.92,4.38.05,1.94-.49,3.85-1.55,5.47ZM317.81,470.56h-23.58v-4.21l9-9.13c1.74-1.78,3.18-3.31,4.3-4.61,1-1.11,1.85-2.34,2.53-3.67.56-1.19.84-2.48.83-3.79.1-1.41-.43-2.8-1.45-3.79-1.07-.9-2.43-1.37-3.83-1.3-1.44-.01-2.87.29-4.18.89-1.43.68-2.77,1.53-4,2.54l-3.07-3.71c.97-.82,2-1.57,3.08-2.24,1.16-.71,2.4-1.26,3.7-1.64,1.52-.44,3.1-.65,4.69-.62,1.97-.05,3.92.35,5.71,1.18,1.52.72,2.81,1.85,3.7,3.28.88,1.47,1.33,3.16,1.29,4.87.02,1.79-.36,3.56-1.11,5.19-.83,1.71-1.91,3.29-3.19,4.7-1.38,1.56-3,3.24-4.93,5.05l-6,5.85v.26h16.47l.04,4.9ZM372.74,476.78c-13.25,0-24-10.75-24-24s10.75-24,24-24,24,10.75,24,24c-.02,13.24-10.76,23.96-24,23.96v.04ZM444.74,476.78c-13.25,0-24-10.75-24-24s10.75-24,24-24,24,10.75,24,24c-.02,13.24-10.76,23.96-24,23.96v.04ZM280.38,455.37c-1.42-.48-2.92-.7-4.42-.64h-5.74v11h6c2.67,0,4.53-.51,5.59-1.54,1.11-1.11,1.7-2.63,1.62-4.19.02-.98-.22-1.96-.71-2.81-.56-.85-1.38-1.49-2.34-1.82ZM281.06,448.82c1.03-.93,1.58-2.28,1.49-3.66.12-1.43-.57-2.81-1.78-3.58-1.74-.84-3.67-1.21-5.6-1.08h-4.95v9.59h5.47c2.59,0,4.38-.42,5.37-1.27ZM280.77,441.58c-1.74-.84-3.67-1.21-5.6-1.08h-4.95v9.59h5.47c2.59,0,4.38-.42,5.37-1.27,1.03-.93,1.58-2.28,1.49-3.66.12-1.43-.56-2.81-1.78-3.58h0ZM282.77,457.2c-.56-.86-1.39-1.5-2.36-1.83-1.42-.48-2.92-.7-4.42-.64h-5.74v11h6c2.67,0,4.53-.51,5.59-1.54,1.11-1.11,1.7-2.63,1.62-4.19.02-.98-.23-1.95-.72-2.8h.03ZM282.77,457.2c-.56-.86-1.39-1.5-2.36-1.83-1.42-.48-2.92-.7-4.42-.64h-5.74v11h6c2.67,0,4.53-.51,5.59-1.54,1.11-1.11,1.7-2.63,1.62-4.19.02-.98-.23-1.95-.72-2.8h.03ZM280.77,441.58c-1.74-.84-3.67-1.21-5.6-1.08h-4.95v9.59h5.47c2.59,0,4.38-.42,5.37-1.27,1.03-.93,1.58-2.28,1.49-3.66.12-1.43-.56-2.81-1.78-3.58h0ZM280.77,441.58c-1.74-.84-3.67-1.21-5.6-1.08h-4.95v9.59h5.47c2.59,0,4.38-.42,5.37-1.27,1.03-.93,1.58-2.28,1.49-3.66.12-1.43-.56-2.81-1.78-3.58h0ZM282.77,457.2c-.56-.86-1.39-1.5-2.36-1.83-1.42-.48-2.92-.7-4.42-.64h-5.74v11h6c2.67,0,4.53-.51,5.59-1.54,1.11-1.11,1.7-2.63,1.62-4.19.02-.98-.23-1.95-.72-2.8h.03ZM282.77,457.2c-.56-.86-1.39-1.5-2.36-1.83-1.42-.48-2.92-.7-4.42-.64h-5.74v11h6c2.67,0,4.53-.51,5.59-1.54,1.11-1.11,1.7-2.63,1.62-4.19.02-.98-.23-1.95-.72-2.8h.03ZM280.77,441.58c-1.74-.84-3.67-1.21-5.6-1.08h-4.95v9.59h5.47c2.59,0,4.38-.42,5.37-1.27,1.03-.93,1.58-2.28,1.49-3.66.12-1.43-.56-2.81-1.78-3.58h0Z"/>
34
+ <path class="st3" d="M325,166v76h-96.44c-17.67,0-33.91,9.7-42.28,25.26l-57.08,106.15c-4.06,7.56-6.19,16.01-6.2,24.59v36H12c-6.63,0-12-5.37-12-12V12C0,5.37,5.37,0,12,0h147v154c0,6.63,5.37,12,12,12h154Z"/>
35
+ </g>
36
+ </svg>
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class Smb2 implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }