@ferchy/aimc-n8n-toolkit 0.1.0 → 0.1.1

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 (2) hide show
  1. package/README.md +86 -17
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,19 +1,30 @@
1
1
  # AIMC Toolkit for n8n
2
2
 
3
- AIMC Toolkit is a community node package for n8n with two focused nodes:
3
+ AIMC Toolkit is a community node package for n8n that brings two focused nodes into your workflows:
4
4
 
5
- - **AIMC Code**: Run JavaScript with a curated library toolbox.
6
- - **AIMC Media**: FFmpeg-based media operations (convert, compress, extract audio, merge, metadata).
5
+ - **AIMC Code**: run JavaScript with a practical toolbox of libraries.
6
+ - **AIMC Media**: FFmpeg-powered media operations without extra glue nodes.
7
+
8
+ ## Why I Built This
9
+
10
+ I kept hitting the same ceiling in n8n: simple transformations became long chains of Set, IF, and Code nodes, and media tasks required custom scripts or external services. AIMC Toolkit is my answer to that: a reliable, minimal package that removes busywork and keeps workflows fast and readable.
11
+
12
+ ## Who This Is For
13
+
14
+ - **Automation builders** who want fewer nodes and faster iterations.
15
+ - **Agencies** handling content workflows, clips, and format conversions.
16
+ - **Founders and teams** building internal tooling on n8n.
17
+ - **Power users** who want a better code node and real media ops.
7
18
 
8
19
  ## Why AIMC Toolkit
9
20
 
10
- - **Faster workflows**: replace multiple utility nodes with one code node.
11
- - **Media ready**: common FFmpeg tasks in a single, consistent UI.
12
- - **Practical libraries**: data parsing, validation, formatting, and web utilities built-in.
21
+ - **Fewer nodes, cleaner flows**: consolidate multiple steps into one code node.
22
+ - **Media ready**: convert, compress, merge, and inspect media in one place.
23
+ - **Practical libraries**: parsing, validation, dates, and web utilities built in.
13
24
 
14
25
  ## Installation
15
26
 
16
- ### Community Nodes
27
+ ### Community Nodes (Recommended)
17
28
  1. Open **Settings > Community Nodes** in n8n.
18
29
  2. Install: `@ferchy/aimc-n8n-toolkit`.
19
30
 
@@ -30,12 +41,21 @@ AIMC Media will use the first available option:
30
41
  2. Optional `ffmpeg-static` / `ffprobe-static`
31
42
  3. System FFmpeg on `PATH`
32
43
 
33
- Recommended for servers:
44
+ ### Docker (n8n official image)
45
+ ```bash
46
+ docker exec <container> apk add --no-cache ffmpeg
47
+ ```
48
+
49
+ ### Debian/Ubuntu
34
50
  ```bash
35
- # Debian/Ubuntu
36
51
  apt-get update && apt-get install -y ffmpeg
37
52
  ```
38
53
 
54
+ ### macOS (Homebrew)
55
+ ```bash
56
+ brew install ffmpeg
57
+ ```
58
+
39
59
  ## Nodes
40
60
 
41
61
  ### AIMC Code
@@ -43,8 +63,9 @@ apt-get update && apt-get install -y ffmpeg
43
63
  **Features**
44
64
  - Run once for all items or once per item.
45
65
  - Access libraries as globals (`axios`, `_`, `zod`) or via `libs`.
66
+ - Built-in helpers (`utils.now`, `utils.safeJson`, `utils.toArray`).
46
67
 
47
- **Example**
68
+ **Example: normalize data**
48
69
  ```javascript
49
70
  const rows = $input.all().map((i) => i.json);
50
71
  const ids = rows.map(() => nanoid());
@@ -57,9 +78,26 @@ return rows.map((row, index) => ({
57
78
  }));
58
79
  ```
59
80
 
60
- **Library snapshot**
61
- `axios`, `lodash`, `zod`, `joi`, `yup`, `dayjs`, `date-fns`, `cheerio`, `papaparse`,
62
- `yaml`, `xml2js`, `qs`, `form-data`, `uuid`, `nanoid`, and more.
81
+ **Example: fetch + parse**
82
+ ```javascript
83
+ const response = await axios.get('https://example.com/feed.xml');
84
+ const parsed = await xml2js.parseStringPromise(response.data);
85
+
86
+ return parsed;
87
+ ```
88
+
89
+ **Library Categories**
90
+
91
+ - **HTTP + Web**: `axios`, `qs`, `form-data`, `cheerio`, `html-to-text`
92
+ - **Validation**: `zod`, `joi`, `yup`, `validator`, `ajv`
93
+ - **Data + Parsing**: `yaml`, `toml`, `xml2js`, `fast-xml-parser`, `papaparse`
94
+ - **Dates + Time**: `dayjs`, `date-fns`, `date-fns-tz`, `moment-timezone`, `cron-parser`, `ms`
95
+ - **Text + Search**: `fuse.js`, `string-similarity`, `slug`, `pluralize`, `marked`
96
+ - **IDs + Utils**: `uuid`, `nanoid`, `bytes`
97
+ - **Language**: `franc-min`, `compromise`
98
+ - **Media Helpers**: `qrcode`, `ytdl-core`
99
+
100
+ If you need the full list in the README, tell me and I will add it.
63
101
 
64
102
  ### AIMC Media
65
103
 
@@ -70,16 +108,37 @@ return rows.map((row, index) => ({
70
108
  - Merge Video + Audio
71
109
  - Metadata (ffprobe)
72
110
 
73
- **Example**
74
- Convert a video to WebM and scale it:
75
- ```text
111
+ **Key Options**
112
+ - **Input Mode**: Binary or File Path
113
+ - **Output Mode**: Binary or File Path
114
+ - **Output Format**: mp4, webm, mov, mp3, wav, and more
115
+ - **Extra FFmpeg Args**: one per line for advanced control
116
+
117
+ **Example: convert and scale**
118
+ ```
76
119
  Operation: Convert / Transcode
77
120
  Output Format: WebM
78
121
  Additional Output Options:
79
122
  -vf scale=1280:-2
80
123
  ```
81
124
 
82
- **Large files**
125
+ **Example: compress**
126
+ ```
127
+ Operation: Compress
128
+ CRF: 24
129
+ Preset: fast
130
+ Audio Bitrate: 128k
131
+ ```
132
+
133
+ **Example: merge video + audio**
134
+ ```
135
+ Operation: Merge Video + Audio
136
+ Input Mode: File Path
137
+ Video File Path: /path/to/video.mp4
138
+ Audio File Path: /path/to/audio.mp3
139
+ ```
140
+
141
+ **Large Files**
83
142
  Use **Input Mode = File Path** to avoid loading big files into memory.
84
143
 
85
144
  ## Configuration
@@ -89,6 +148,16 @@ Environment variables:
89
148
  - `FFMPEG_PATH`: custom FFmpeg binary path
90
149
  - `FFPROBE_PATH`: custom ffprobe binary path
91
150
 
151
+ ## Troubleshooting
152
+
153
+ - **FFmpeg not found**: install FFmpeg or set `FFMPEG_PATH`.
154
+ - **Large files**: use File Path input mode.
155
+ - **Binary output missing**: check `Output Mode` and `Output Binary Property`.
156
+
157
+ ## Support
158
+
159
+ If you need help or want a feature added, open a GitHub issue once the repo is live.
160
+
92
161
  ## License
93
162
 
94
163
  MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ferchy/aimc-n8n-toolkit",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "AIMC Toolkit nodes for n8n: code execution and media operations.",
5
5
  "license": "MIT",
6
6
  "author": "Ferchy",