sfiledl 2.2.2 → 2.2.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.
Files changed (3) hide show
  1. package/package.json +2 -3
  2. package/readme.md +110 -44
  3. package/changelog +0 -805
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sfiledl",
3
- "version": "2.2.2",
3
+ "version": "2.2.4",
4
4
  "description": "Implement and automate downloading of any file from sfile.co with javascripts library, written entirely in typescripts",
5
5
  "type": "module",
6
6
  "main": "./build/lib.cjs",
@@ -10,8 +10,7 @@
10
10
  "files": [
11
11
  "build",
12
12
  "readme.md",
13
- "license",
14
- "changelog"
13
+ "license"
15
14
  ],
16
15
  "sideEffects": false,
17
16
  "engines": {
package/readme.md CHANGED
@@ -2,10 +2,48 @@
2
2
 
3
3
  > Automate file downloads from [sfile.co](https://sfile.co/) — reliable, retry‑aware, and fully typed.
4
4
 
5
- [![npm version](https://img.shields.io/npm/v/sfiledl)](https://www.npmjs.com/package/sfiledl)
6
- [![License](https://img.shields.io/npm/l/sfiledl)](https://github.com/neuxdotdev/sfiledl/blob/main/license)
7
- [![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue)](https://www.typescriptlang.org)
8
- [![Playwright](https://img.shields.io/badge/Playwright-1.40-green)](https://playwright.dev)
5
+ <p align="center">
6
+ <a href="https://www.npmjs.com/package/sfiledl"><img src="https://img.shields.io/npm/v/sfiledl.svg?style=flat-square&logo=npm" alt="npm version"></a>
7
+ <a href="https://www.npmjs.com/package/sfiledl"><img src="https://img.shields.io/npm/dm/sfiledl?style=flat-square&logo=npm" alt="npm downloads"></a>
8
+ <a href="https://github.com/neuxdotdev/sfiledl/blob/main/license"><img src="https://img.shields.io/github/license/neuxdotdev/sfiledl?style=flat-square" alt="license"></a>
9
+ <a href="https://github.com/neuxdotdev/sfiledl/actions"><img src="https://img.shields.io/github/actions/workflow/status/neuxdotdev/sfiledl/build.yml?branch=main&style=flat-square&logo=github" alt="build"></a>
10
+ <a href="https://www.typescriptlang.org"><img src="https://img.shields.io/badge/TypeScript-6.0-blue?style=flat-square&logo=typescript" alt="TypeScript"></a>
11
+ <a href="https://playwright.dev"><img src="https://img.shields.io/badge/Playwright-1.59-green?style=flat-square&logo=playwright" alt="Playwright"></a>
12
+ <a href="https://bun.sh"><img src="https://img.shields.io/badge/Bun-1.3+-black?style=flat-square&logo=bun" alt="Bun"></a>
13
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node-%3E%3D24-green?style=flat-square&logo=node.js" alt="Node"></a>
14
+ <a href="https://prettier.io"><img src="https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square&logo=prettier" alt="code style"></a>
15
+ <a href="http://makeapullrequest.com"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square" alt="PRs welcome"></a>
16
+ </p>
17
+
18
+ <p align="center">
19
+ <a href="https://github.com/neuxdotdev/sfiledl/actions/workflows/build.yml"><img src="https://github.com/neuxdotdev/sfiledl/actions/workflows/build.yml/badge.svg" alt="Build"></a>
20
+ <a href="https://github.com/neuxdotdev/sfiledl/actions/workflows/pages/pages-build-deployment"><img src="https://github.com/neuxdotdev/sfiledl/actions/workflows/pages/pages-build-deployment/badge.svg" alt="pages-build-deployment"></a>
21
+ <a href="https://github.com/neuxdotdev/sfiledl/actions/workflows/rmcm-install.yml"><img src="https://github.com/neuxdotdev/sfiledl/actions/workflows/rmcm-install.yml/badge.svg" alt="Setup RMCM"></a>
22
+ </p>
23
+
24
+ ---
25
+
26
+ ## Table of Contents
27
+
28
+ - [Installation](#installation)
29
+ - [Quick Start](#quick-start)
30
+ - [API Reference](#api-reference)
31
+ - [downloadSfile](#downloadsfile)
32
+ - [downloadSfileSafe](#downloadsfilesafe)
33
+ - [createDownloader](#createdownloader)
34
+ - [DownloadOptions](#downloadoptions)
35
+ - [DownloadResult](#downloadresult)
36
+ - [Error Handling](#error-handling)
37
+ - [Error Types](#error-types)
38
+ - [Retryable Errors](#retryable-errors)
39
+ - [Debug Mode & Artifacts](#debug-mode--artifacts)
40
+ - [Logging & Correlation](#logging--correlation)
41
+ - [Progress Tracking](#progress-tracking)
42
+ - [Development](#development)
43
+ - [Project Structure](#project-structure)
44
+ - [Scripts](#scripts)
45
+ - [Contributing](#contributing)
46
+ - [License](#license)
9
47
 
10
48
  ---
11
49
 
@@ -22,6 +60,8 @@ npm install sfiledl
22
60
  bunx playwright install chromium # or npx playwright install chromium
23
61
  ```
24
62
 
63
+ **Prerequisites:** Node.js >=24 or Bun >=1.3.
64
+
25
65
  ---
26
66
 
27
67
  ## Quick Start
@@ -80,46 +120,42 @@ Creates a reusable downloader with preset options.
80
120
  ```typescript
81
121
  const dl = createDownloader({ headless: false, debug: true })
82
122
  const result = await dl.download('https://sfile.co/file/xyz', './out')
83
- // or safe variant:
123
+
124
+ // safe variant
84
125
  const safeResult = await dl.downloadSafe(url, './out')
85
- // chain new defaults:
126
+
127
+ // chain new defaults
86
128
  const quietDl = dl.withOptions({ debug: false })
87
129
  ```
88
130
 
89
131
  ### `DownloadOptions`
90
132
 
91
- ```typescript
92
- interface DownloadOptions {
93
- headless?: boolean // default: true
94
- debug?: boolean // default: false
95
- userAgent?: string // custom UA (default: Chrome on Windows)
96
- timeout?: number // navigation & download timeout (ms) default: 60000
97
- downloadButtonTimeout?: number // wait for button timeout default: 30000
98
- retries?: number // total attempts default: 3
99
- retryDelay?: number // base delay before exponential backoff default: 1000
100
- onProgress?: (
101
- percent: number,
102
- total: 100,
103
- meta: { stage: string; message: string; attempt?: number },
104
- ) => void
105
- correlationId?: string // for tracing across logs
106
- saveDebugArtifacts?: boolean // save screenshot/html on error – default: true
107
- logFile?: string // write structured logs to file
108
- }
109
- ```
133
+ All options are optional.
134
+
135
+ | Option | Type | Default | Description |
136
+ | ----------------------- | -------------------------------- | -------------------- | --------------------------------------------------------------- |
137
+ | `headless` | `boolean` | `true` | Run browser in headless mode. |
138
+ | `debug` | `boolean` | `false` | Enable verbose logging and debug artifacts. |
139
+ | `userAgent` | `string` | Chrome on Windows UA | Custom user agent string. |
140
+ | `timeout` | `number` (ms) | `60000` | Navigation and download timeout. |
141
+ | `downloadButtonTimeout` | `number` (ms) | `30000` | Timeout for download button to appear. |
142
+ | `retries` | `number` | `3` | Total attempts (including first). |
143
+ | `retryDelay` | `number` (ms) | `1000` | Base delay before exponential backoff. |
144
+ | `onProgress` | `(percent, total, meta) => void` | `undefined` | Progress callback. See [Progress Tracking](#progress-tracking). |
145
+ | `correlationId` | `string` | auto-generated UUID | ID for tracing across logs. |
146
+ | `saveDebugArtifacts` | `boolean` | `true` | Save screenshot and HTML on error. |
147
+ | `logFile` | `string` | `undefined` | Write structured logs to file. |
110
148
 
111
149
  ### `DownloadResult`
112
150
 
113
- ```typescript
114
- interface DownloadResult {
115
- filePath: string // absolute path to saved file
116
- size: number // bytes
117
- method: 'direct' | 'fallback'
118
- correlationId?: string
119
- durationMs?: number
120
- attempts?: number
121
- }
122
- ```
151
+ | Property | Type | Description |
152
+ | --------------- | -------------------------- | -------------------------------------------- |
153
+ | `filePath` | `string` | Absolute path to saved file. |
154
+ | `size` | `number` (bytes) | File size. |
155
+ | `method` | `'direct'` or `'fallback'` | How the file was captured. |
156
+ | `correlationId` | `string` (optional) | The ID used for logging. |
157
+ | `durationMs` | `number` (optional) | Total time from start to finish. |
158
+ | `attempts` | `number` (optional) | Number of attempts made (including retries). |
123
159
 
124
160
  ---
125
161
 
@@ -149,7 +185,7 @@ try {
149
185
  }
150
186
  ```
151
187
 
152
- ### Error types
188
+ ### Error Types
153
189
 
154
190
  | Class | Code | Retryable | When |
155
191
  | ----------------- | ------------------ | --------- | -------------------------------------------------------------- |
@@ -234,16 +270,46 @@ bun run rebuild
234
270
  bun run test
235
271
  ```
236
272
 
273
+ ### Project Structure
274
+
275
+ ```
276
+ .
277
+ ├── lib
278
+ │ ├── browser
279
+ │ │ ├── browser-manager.ts
280
+ │ │ └── page-interactions.ts
281
+ │ ├── config
282
+ │ │ ├── defaults.ts
283
+ │ │ └── schema.ts
284
+ │ ├── core
285
+ │ │ ├── downloader.ts
286
+ │ │ └── validator.ts
287
+ │ ├── errors
288
+ │ │ ├── base.ts
289
+ │ │ ├── errors.ts
290
+ │ │ └── index.ts
291
+ │ ├── utils
292
+ │ │ ├── helpers.ts
293
+ │ │ ├── logger.ts
294
+ │ │ └── result.ts
295
+ │ └── lib.ts
296
+ ├── build # generated output (CJS, ESM, types)
297
+ ├── package.json
298
+ └── tsconfig.json
299
+ ```
300
+
237
301
  ### Scripts
238
302
 
239
- | Command | Description |
240
- | ---------------------- | ------------------------------ |
241
- | `bun run clean` | Remove `build/` and cache |
242
- | `bun run typecheck` | Run `tsc --noEmit` |
243
- | `bun run build:ts` | Compile TypeScript to `build/` |
244
- | `bun run build:bundle` | Bundle with Rollup |
245
- | `bun run rebuild` | Full rebuild pipeline |
246
- | `bun run format` | Format all files with Prettier |
303
+ | Command | Description |
304
+ | ---------------------- | --------------------------------------------------- |
305
+ | `bun run clean` | Remove `build/` and cache |
306
+ | `bun run typecheck` | Run `tsc --noEmit` |
307
+ | `bun run build:ts` | Compile TypeScript to `build/` |
308
+ | `bun run build:bundle` | Bundle with Rollup |
309
+ | `bun run build` | Clean + typecheck + build:ts + build:bundle |
310
+ | `bun run rebuild` | Full rebuild pipeline (clean-code + build + format) |
311
+ | `bun run format` | Format all files with Prettier |
312
+ | `bun run test` | Run tests (requires test files) |
247
313
 
248
314
  ---
249
315
 
package/changelog DELETED
@@ -1,805 +0,0 @@
1
- commit acab839504531f5938b5777a884ca8b07ad600e8
2
- Author: neuxdotdev <neuxdev1@gmail.com>
3
- Date: Thu Apr 2 15:51:41 2026 +0700
4
-
5
- docs: remkae readme
6
-
7
- commit 79b7c856357a6098c1fc41aef071c25d4d4d6340
8
- Author: neuxdotdev <neuxdev1@gmail.com>
9
- Date: Thu Apr 2 15:44:21 2026 +0700
10
-
11
- add changelog
12
-
13
- commit bee596315d96e819de09fc3c41be8dbf48a0cff6
14
- Author: neuxdotdev <neuxdev1@gmail.com>
15
- Date: Thu Apr 2 15:43:57 2026 +0700
16
-
17
- update to v 2.2.0
18
-
19
- commit 1815dceedf75d9bcf6792d434e29c13f1df3febb
20
- Author: neuxdotdev <neuxdev1@gmail.com>
21
- Date: Thu Apr 2 15:43:35 2026 +0700
22
-
23
- release v2.2.0
24
-
25
- commit d6c9f4ba721946e3ad1fbf03e62c303b2b0db4e2
26
- Author: neuxdotdev <neuxdev1@gmail.com>
27
- Date: Thu Apr 2 15:42:30 2026 +0700
28
-
29
- chore: add homepage adn remake email addres
30
-
31
- commit 4d496d12961ac124dc925023edd09f3b2ed4ca5d
32
- Author: neuxdotdev <neuxdev1@gmail.com>
33
- Date: Thu Apr 2 14:41:42 2026 +0700
34
-
35
- docs: add license documentation
36
-
37
- commit 1ef8bc47f743ae5d9635f8a9a523339270f059b3
38
- Author: neuxdotdev <neuxdev1@gmail.com>
39
- Date: Thu Apr 2 14:38:30 2026 +0700
40
-
41
- chore(deps): install docsify-cli
42
-
43
- commit 3957dff22a80224a94e773c483b5c9e1ef1b862d
44
- Author: neuxdotdev <neuxdev1@gmail.com>
45
- Date: Thu Apr 2 14:37:47 2026 +0700
46
-
47
- docs: add documentation
48
-
49
- commit ac756423e300f61657cd12684b65b1193598de39
50
- Author: neuxdotdev <neuxdev1@gmail.com>
51
- Date: Thu Apr 2 14:29:09 2026 +0700
52
-
53
- chore(ci): remove --forzed flags
54
-
55
- commit ea96232f1d174bf637ca02b3ba5e15f6cd1e8379
56
- Author: neuxdotdev <neuxdev1@gmail.com>
57
- Date: Thu Apr 2 14:16:02 2026 +0700
58
-
59
- chore(ci): remove --forzed flags
60
-
61
- commit b5f26e7d68db524dde16e415f389513a5aa1d625
62
- Author: neuxdotdev <neuxdev1@gmail.com>
63
- Date: Thu Apr 2 14:14:00 2026 +0700
64
-
65
- chore: make all deps to latest version
66
-
67
- commit aec077df776784f2454d4f02137a0e4da2b47c3f
68
- Author: neuxdotdev <neuxdev1@gmail.com>
69
- Date: Thu Apr 2 14:13:43 2026 +0700
70
-
71
- chore: make all deps to latest version
72
-
73
- commit 3d97ed023174f7b516911f08ff13b8591cb383a4
74
- Author: neuxdotdev <neuxdev1@gmail.com>
75
- Date: Thu Apr 2 14:09:48 2026 +0700
76
-
77
- refactor(scripts): remove format-build.js — no longer needed
78
-
79
- commit a58bb5ac7fb2264404366473ad7fd29cb004d82d
80
- Author: neuxdotdev <neuxdev1@gmail.com>
81
- Date: Thu Apr 2 14:09:48 2026 +0700
82
-
83
- refactor(build): remove rollup.config.mjs — build system simplified
84
-
85
- commit 6d382fcdba8c4d7cf66603227fc5c16de012100a
86
- Author: neuxdotdev <neuxdev1@gmail.com>
87
- Date: Thu Apr 2 14:09:47 2026 +0700
88
-
89
- chore(lock): sync bun.lock with new dev dependency
90
-
91
- commit 3600641dfaa04be4b72c4a5030a0518df7f77e5b
92
- Author: neuxdotdev <neuxdev1@gmail.com>
93
- Date: Thu Apr 2 14:09:47 2026 +0700
94
-
95
- chore(deps): add @types/rollup-plugin-peer-deps-external for type safety
96
-
97
- commit 2d7e364aad740865ebfaf1b9e93527d2a239b7d9
98
- Author: neuxdotdev <neuxdev1@gmail.com>
99
- Date: Thu Apr 2 11:53:26 2026 +0700
100
-
101
- docs: edit changelog
102
-
103
- commit c2d0e21d0e8bbae449db5ba6e6af0b6f572b3374
104
- Author: neuxdotdev <neuxdev1@gmail.com>
105
- Date: Thu Apr 2 11:52:54 2026 +0700
106
-
107
- chore: make all deps to latest version
108
-
109
- commit c383258c2f9f74541c8d5a254d1fe4f7bf45f79e
110
- Author: neuxdotdev <neuxdev1@gmail.com>
111
- Date: Thu Apr 2 11:45:20 2026 +0700
112
-
113
- docs: edit readme.md
114
-
115
- commit 70c7736412b06fb7d4660d2f0b8d6769efa6ae88
116
- Author: neuxdotdev <neuxdev1@gmail.com>
117
- Date: Thu Apr 2 11:34:23 2026 +0700
118
-
119
- docs: update changelog
120
-
121
- commit 549aec09f8297318fcf52d69bc8262d78d769e0d
122
- Author: neuxdotdev <neuxdev1@gmail.com>
123
- Date: Thu Apr 2 11:31:54 2026 +0700
124
-
125
- chore(release): bump version to 2.1.1 for new download implementation
126
-
127
- commit 54147f326795e40dd6e8e6f08e70fb7323ab2f25
128
- Author: neuxdotdev <neuxdev1@gmail.com>
129
- Date: Thu Apr 2 11:31:54 2026 +0700
130
-
131
- refactor(lib): simplify entry point to re-export core modules only
132
-
133
- commit c82f51154fa17e8533b32c85c218644f46d2067a
134
- Author: neuxdotdev <neuxdev1@gmail.com>
135
- Date: Thu Apr 2 11:31:50 2026 +0700
136
-
137
- feat(core): implement downloadSfile function with direct/fallback download strategies
138
-
139
- commit 84a9e5db96eee8cd195a46b934f792d8c94461c0
140
- Author: neuxdotdev <neuxdev1@gmail.com>
141
- Date: Thu Apr 2 11:31:45 2026 +0700
142
-
143
- feat(browser): implement BrowserManager for Playwright lifecycle and fallback handling
144
-
145
- commit 8fb98f7b6da4717e27ddf019f1962fe25734cc45
146
- Author: neuxdotdev <neuxdev1@gmail.com>
147
- Date: Thu Apr 2 11:31:44 2026 +0700
148
-
149
- feat(browser): implement SfilePageInteractions for button wait and URL extraction
150
-
151
- commit 0e5fa3e6fa007baaf2baa60ce6be475792ae7376
152
- Author: neuxdotdev <neuxdev1@gmail.com>
153
- Date: Thu Apr 2 11:31:40 2026 +0700
154
-
155
- feat(config): define DownloadOptions, DownloadResult types and normalizeOptions
156
-
157
- commit 0271fcd44dc7d6ad5889e94f67af50f21afe23f6
158
- Author: neuxdotdev <neuxdev1@gmail.com>
159
- Date: Thu Apr 2 11:31:39 2026 +0700
160
-
161
- feat(config): add DEFAULTS constants for browser and timeout settings
162
-
163
- commit 5c2b9514892096756f817d9c7302b80a4c0bdbdc
164
- Author: neuxdotdev <neuxdev1@gmail.com>
165
- Date: Thu Apr 2 11:31:34 2026 +0700
166
-
167
- feat(errors): export all error classes from index
168
-
169
- commit 39e37b2392132c6e2f50544f363b6fef18a3693f
170
- Author: neuxdotdev <neuxdev1@gmail.com>
171
- Date: Thu Apr 2 11:31:34 2026 +0700
172
-
173
- feat(errors): implement ValidationError, NetworkError, FileError, BrowserError
174
-
175
- commit 113aa52b8c10c3dceae6dab54fb793a713c85d48
176
- Author: neuxdotdev <neuxdev1@gmail.com>
177
- Date: Thu Apr 2 11:31:34 2026 +0700
178
-
179
- feat(errors): create abstract AppError base class with metadata
180
-
181
- commit 632e1716941f317ef34e33131e8db22a745e812b
182
- Author: neuxdotdev <neuxdev1@gmail.com>
183
- Date: Thu Apr 2 11:31:28 2026 +0700
184
-
185
- feat(utils): add Result type and ok/err helper functions
186
-
187
- commit 404af4c69d443e1722bb74aa9e5dbc4391dcd77e
188
- Author: neuxdotdev <neuxdev1@gmail.com>
189
- Date: Thu Apr 2 11:31:28 2026 +0700
190
-
191
- feat(utils): implement Logger class with level-based filtering
192
-
193
- commit a590df93fe4476306a694f9475ae1ce27af74fd0
194
- Author: neuxdotdev <neuxdev1@gmail.com>
195
- Date: Thu Apr 2 11:31:27 2026 +0700
196
-
197
- feat(utils): add helper functions for filename sanitization and sleep
198
-
199
- commit 02745291f00d47110f673b1b923f108e55e331fc
200
- Author: neuxdotdev <neuxdev1@gmail.com>
201
- Date: Thu Apr 2 02:02:27 2026 +0700
202
-
203
- remake prepublish scripts
204
-
205
- commit a88b254acafbad32719b67c096fb3420ed813aa0
206
- Author: neuxdotdev <neuxdev1@gmail.com>
207
- Date: Thu Apr 2 02:01:54 2026 +0700
208
-
209
- release: v2.0.1
210
-
211
- delete ci for auto publihs
212
-
213
- commit c63b25ce873bcba391cf66dc52c3c04fb8eb9306
214
- Author: neuxdotdev <neuxdev1@gmail.com>
215
- Date: Thu Apr 2 01:50:16 2026 +0700
216
-
217
- ci(workflows): fix auto publish package
218
-
219
- commit 5de5d98d1d8516953e6964492392b35c94423445
220
- Author: neuxdotdev <neuxdev1@gmail.com>
221
- Date: Thu Apr 2 01:45:32 2026 +0700
222
-
223
- ci(workflows): fix auto publish package
224
-
225
- commit f92403bb7eda91517bf3e217c6979c1776877b4c
226
- Author: neuxdotdev <neuxdev1@gmail.com>
227
- Date: Thu Apr 2 01:42:37 2026 +0700
228
-
229
- ci(workflows): fix auto publish package
230
-
231
- commit c2af5f7e443cd77202c25143f94d1474f3319f1f
232
- Author: neuxdotdev <neuxdev1@gmail.com>
233
- Date: Thu Apr 2 01:41:46 2026 +0700
234
-
235
- ci(workflows): fix auto publish package
236
-
237
- commit 2f641bb1f6ce0bfacb636f41c00692cf959099f0
238
- Author: neuxdotdev <neuxdev1@gmail.com>
239
- Date: Thu Apr 2 01:37:32 2026 +0700
240
-
241
- ci(workflows): fix auto publish package
242
-
243
- commit b92a8f34aa55e695bffe3b8e36e9665b6b6b5942
244
- Author: neuxdotdev <neuxdev1@gmail.com>
245
- Date: Thu Apr 2 01:22:00 2026 +0700
246
-
247
- feat(lib): implement library status system and development warnings
248
-
249
- Major refactor to support framework architecture transition from CLI.
250
-
251
- New Features:
252
- - Add LibraryStatus enum (UNDER_CONSTRUCTION, STABLE, DEPRECATED) for type-safe status management
253
- - Extract stripAnsi() utility to module level for reuse across functions
254
- - Add isDevelopmentVersion() type guard for runtime status checks
255
- - Implement singleton pattern in LibStatus with getInstance() method
256
- - Add warning suppression via MY_SUPER_FRAMEWORK_SUPPRESS_WARNING env variable
257
- - Add suppressWarning() method for programmatic control (e.g., testing)
258
- - Add assertStable() function to throw errors in production when using unstable versions
259
- - Add comprehensive JSDoc comments for all public APIs
260
-
261
- Improvements:
262
- - Warning now displays only once per process via warningDisplayed flag
263
- - Early-return guards for console availability and duplicate warnings
264
- - Updated LIB_INFO to use enum instead of string literals for better type safety
265
- - Replace IIFE with conditional check using isDevelopmentVersion() for clarity
266
- - Update version metadata: previousVersion 1.0.2 → currentVersion 2.0.0-dev
267
-
268
- Breaking Changes:
269
- - stripAnsi() moved from private class method to module-level function
270
- - isStable() and ensureStable() now reference LibraryStatus enum values
271
- - initFramework() error message format updated to include migration path
272
-
273
- Migration Guide:
274
- - CLI users: This version is UNDER_CONSTRUCTION. Do not use in production.
275
- - Framework users: Use assertStable() at app startup to enforce version safety
276
- - Test authors: Set MY_SUPER_FRAMEWORK_SUPPRESS_WARNING=true to disable console warnings
277
-
278
- BREAKING CHANGE: Library architecture changed from CLI to Framework. API stability not guaranteed until v2.0.0 stable release.
279
-
280
- Ref: Complete architectural refactor from sfiledl CLI to MySuperFramework library.
281
-
282
- commit c1bb34f97788ddd25d136fd87c356e788f4d6794
283
- Author: neuxdotdev <neuxdev1@gmail.com>
284
- Date: Thu Apr 2 01:21:54 2026 +0700
285
-
286
- ci(build): switch rebuild script to build in workflow
287
-
288
- Update build step to use 'bun run build' instead of 'bun run rebuild'.
289
-
290
- Rationale:
291
- - 'build' script is sufficient for CI environment
292
- - 'rebuild' includes clean-code formatting which is handled separately
293
- - Reduces CI runtime by skipping redundant formatting steps
294
-
295
- Ref: Aligns with streamlined CI pipeline strategy.
296
-
297
- commit 76ac40bc17ebf9ff81604ee99630126798d88ae9
298
- Author: neuxdotdev <neuxdev1@gmail.com>
299
- Date: Thu Apr 2 01:13:16 2026 +0700
300
-
301
- chore(lib): add breaking news release major version 2.0.0
302
-
303
- so this verison is a news only
304
-
305
- commit 2f888799c39cdc3db0fe2b379c87e91c08e5ddf4
306
- Author: neuxdotdev <neuxdev1@gmail.com>
307
- Date: Thu Apr 2 01:05:14 2026 +0700
308
-
309
- docs(license): Add GNU Affero General Public License v3
310
-
311
- Added the GNU Affero General Public License version 3 to the project.
312
-
313
- commit 68c5106aedd4544107f36a7dd9de218bd14a9a34
314
- Author: neuxdotdev <neuxdev1@gmail.com>
315
- Date: Thu Apr 2 01:01:35 2026 +0700
316
-
317
- ci(workflows): new workflows fucntion
318
-
319
- commit 719fd3ddbaea9a96df2a5292f57db0ff417d0bcb
320
- Author: neuxdotdev <neuxdev1@gmail.com>
321
- Date: Thu Apr 2 00:59:04 2026 +0700
322
-
323
- Delete a.md
324
-
325
- commit 5cb6f9172345f93be7900f827007a13ca5c31a2b
326
- Author: neuxdotdev <neuxdev1@gmail.com>
327
- Date: Thu Apr 2 00:58:39 2026 +0700
328
-
329
- ci(workflows): new workflows fucntion
330
-
331
- commit f69098a04942b02c285e45d8ce5c3bb27f53f5ec
332
- Author: neuxdotdev <neuxdev1@gmail.com>
333
- Date: Thu Apr 2 00:52:19 2026 +0700
334
-
335
- chore(deps): regenerate bun.lock for consistency
336
-
337
- commit 0488670d8d06cec191e2219e77b19ba8116cea99
338
- Author: neuxdotdev <neuxdev1@gmail.com>
339
- Date: Thu Apr 2 00:49:31 2026 +0700
340
-
341
- Delete sfiledl.config.json
342
-
343
- commit 3d7952aa87aa2d0122a0168f9b1b40058c60f116
344
- Author: neuxdotdev <neuxdev1@gmail.com>
345
- Date: Thu Apr 2 00:47:34 2026 +0700
346
-
347
- ci: linting code
348
-
349
- commit 1ee556e6df53130d9eabe0673075267074ca28e9
350
- Author: neuxdotdev <neuxdev1@gmail.com>
351
- Date: Thu Apr 2 00:44:07 2026 +0700
352
-
353
- docs(readme): add trailing newline to file
354
-
355
- Append newline character at end of readme file to comply
356
- with POSIX text file standards and improve git diff readability.
357
-
358
- This is a cosmetic change that does not affect content or rendering.
359
-
360
- Ref: https://stackoverflow.com/questions/729692/why-should-text-files-end-with-a-newline
361
-
362
- commit 514d5b6c28a960ea1f8d16264ce2cb384cc7b310
363
- Author: neuxdotdev <neuxdev1@gmail.com>
364
- Date: Thu Apr 2 00:43:58 2026 +0700
365
-
366
- ci(workflows): remove legacy release workflow
367
-
368
- Delete release.yml as it has been superseded by the new
369
- modular workflow structure (build.yml + publish.yml).
370
-
371
- The new workflow architecture provides:
372
- - Better separation of concerns (build vs publish)
373
- - Reusable rmcm-install sub-workflow
374
- - Proper caching strategy for faster CI runs
375
- - Conditional publishing based on build success
376
-
377
- BREAKING CHANGE: Legacy release workflow is no longer available. Use build.yml + publish.yml instead.
378
-
379
- commit bcb4d2d4c23cb31db61d270fb16633f3dde40785
380
- Author: neuxdotdev <neuxdev1@gmail.com>
381
- Date: Thu Apr 2 00:43:50 2026 +0700
382
-
383
- ci(workflows): add build workflow with rmcm setup and caching
384
-
385
- Create new build.yml workflow to handle CI/CD build process.
386
-
387
- Features:
388
- - Call reusable rmcm-install workflow for tool setup
389
- - Setup Bun and Rust toolchains for build environment
390
- - Implement caching for Cargo binaries and Bun dependencies
391
- - Run 'bun run rebuild' script for clean build pipeline
392
- - Upload build artifacts for downstream workflows
393
-
394
- The workflow triggers on push/PR to main/master branches
395
- and exposes build-status output for dependent workflows.
396
-
397
- Ref: Enables modular CI pipeline with build → publish dependency chain.
398
-
399
- commit 5779dbfe6ebd95f5df49615e6c784460e677799e
400
- Author: neuxdotdev <neuxdev1@gmail.com>
401
- Date: Thu Apr 2 00:25:19 2026 +0700
402
-
403
- docs: remake readme
404
-
405
- commit 84b4f39f2cd1875397f2abd307db755a2144a515
406
- Author: neuxdotdev <neuxdev1@gmail.com>
407
- Date: Thu Apr 2 00:24:11 2026 +0700
408
-
409
- ci: add test and auto publish to package maager
410
-
411
- commit fc2be2ee0432a19c1848a01c1fae554db496bb86
412
- Author: neuxdotdev <neuxdev1@gmail.com>
413
- Date: Thu Apr 2 00:23:33 2026 +0700
414
-
415
- chore: add new strukture
416
-
417
- commit b2c20cfb0a820d313000d748cd8fa179afe8ecb2
418
- Author: neuxdotdev <neuxdev1@gmail.com>
419
- Date: Thu Apr 2 00:23:16 2026 +0700
420
-
421
- Delete bun.js.yml
422
-
423
- commit 528c2abf077ee6e5b9bc759f4d6aab3c7a8931bf
424
- Author: neuxdotdev <neuxdev1@gmail.com>
425
- Date: Thu Apr 2 00:22:49 2026 +0700
426
-
427
- config(ts): update rootDir and include patterns for lib
428
-
429
- Set compilerOptions.rootDir to 'lib' to align with new source structure.
430
- Update 'include' array to strictly cover 'lib/**/*' and remove 'dev/index.ts'.
431
- This ensures type checking and emission only process files within the new lib directory.
432
-
433
- Ref: Structural refactor consistency across tooling.
434
-
435
- commit 6f6c0c98b57f1ce3e14b8d3e22c5c56f1e2affdf
436
- Author: neuxdotdev <neuxdev1@gmail.com>
437
- Date: Thu Apr 2 00:22:44 2026 +0700
438
-
439
- build(rollup): align build paths with new lib structure
440
-
441
- Migrate TypeScript plugin rootDir from 'src' to 'lib'.
442
- Update replace plugin include pattern to target 'lib/**/*'.
443
- Change source map filename pattern from 'index.*' to 'lib.*'.
444
- Update output file configurations for ESM and CJS formats to use 'lib.*' naming.
445
- Switch input entry points for both lib and dts configs from 'src/index.ts' to 'lib/lib.ts'.
446
-
447
- Ref: Ensures build output matches package.json exports configuration.
448
-
449
- commit 139b39bc4a8056c1bfca4796c2fcc2a4e6a87830
450
- Author: neuxdotdev <neuxdev1@gmail.com>
451
- Date: Thu Apr 2 00:22:38 2026 +0700
452
-
453
- refactor(pkg): update exports, engines, and project metadata
454
-
455
- Update package description to better reflect library automation capabilities.
456
- Change main/module/types entry points from 'index.*' to 'lib.*' to match new build output.
457
- Update engines requirement: Node.js >=24 and Bun >=1.3.
458
- Remove 'bin' configuration as CLI entry point is adjusted or deprecated.
459
- Update scripts 'clean-code' and 'prepublishOnly' to reference 'lib' directory and 'lib.mjs'.
460
-
461
- BREAKING CHANGE: Minimum Node.js version is now >=24. Export paths changed from index.* to lib.*. CLI bin entry removed.
462
-
463
- commit 692ab5e3e318be6fe1db62c47f10bf9fd2536846
464
- Author: neuxdotdev <neuxdev1@gmail.com>
465
- Date: Thu Apr 2 00:20:48 2026 +0700
466
-
467
- refactor(structure): remove legacy utils result module
468
-
469
- Delete src/lib/utils/result.ts as part of migrating source root from src/lib to lib.
470
- Functionality is either moved or deprecated in the new structure.
471
-
472
- Ref: Structural cleanup.
473
-
474
- commit fbaa61605c4d085370f2dcff29278f4304457c88
475
- Author: neuxdotdev <neuxdev1@gmail.com>
476
- Date: Thu Apr 2 00:20:48 2026 +0700
477
-
478
- refactor(structure): remove legacy utils logger module
479
-
480
- Delete src/lib/utils/logger.ts as part of migrating source root from src/lib to lib.
481
- Functionality is either moved or deprecated in the new structure.
482
-
483
- Ref: Structural cleanup.
484
-
485
- commit c99799579c816e2f41110d4da1464b2cdcae14c4
486
- Author: neuxdotdev <neuxdev1@gmail.com>
487
- Date: Thu Apr 2 00:20:48 2026 +0700
488
-
489
- refactor(structure): remove legacy utils helpers module
490
-
491
- Delete src/lib/utils/helpers.ts as part of migrating source root from src/lib to lib.
492
- Functionality is either moved or deprecated in the new structure.
493
-
494
- Ref: Structural cleanup.
495
-
496
- commit ae8fbcdb91b0f521894926adc2b52193e95ecd43
497
- Author: neuxdotdev <neuxdev1@gmail.com>
498
- Date: Thu Apr 2 00:20:48 2026 +0700
499
-
500
- refactor(structure): remove legacy lib entry point
501
-
502
- Delete src/lib/index.ts as part of migrating source root from src/lib to lib.
503
- New entry point is established at lib/lib.ts.
504
-
505
- Ref: Structural cleanup.
506
-
507
- commit b646f515a9f967018bd2a008bb911b5e0998845e
508
- Author: neuxdotdev <neuxdev1@gmail.com>
509
- Date: Thu Apr 2 00:20:48 2026 +0700
510
-
511
- refactor(structure): remove legacy error index module
512
-
513
- Delete src/lib/errors/index.ts as part of migrating source root from src/lib to lib.
514
- Functionality is either moved or deprecated in the new structure.
515
-
516
- Ref: Structural cleanup.
517
-
518
- commit a527d378447d161e1550f4b23060201eb7cc5b1c
519
- Author: neuxdotdev <neuxdev1@gmail.com>
520
- Date: Thu Apr 2 00:20:48 2026 +0700
521
-
522
- refactor(structure): remove legacy error definitions module
523
-
524
- Delete src/lib/errors/errors.ts as part of migrating source root from src/lib to lib.
525
- Functionality is either moved or deprecated in the new structure.
526
-
527
- Ref: Structural cleanup.
528
-
529
- commit 27817d9e980d534c7d321e9f980d08e8712dcd4f
530
- Author: neuxdotdev <neuxdev1@gmail.com>
531
- Date: Thu Apr 2 00:20:47 2026 +0700
532
-
533
- refactor(structure): remove legacy error base module
534
-
535
- Delete src/lib/errors/base.ts as part of migrating source root from src/lib to lib.
536
- Functionality is either moved or deprecated in the new structure.
537
-
538
- Ref: Structural cleanup.
539
-
540
- commit 8c3a4f001b8e8fd35f80a5e344c7e5cfee5d6666
541
- Author: neuxdotdev <neuxdev1@gmail.com>
542
- Date: Thu Apr 2 00:20:47 2026 +0700
543
-
544
- refactor(structure): remove legacy core validator module
545
-
546
- Delete src/lib/core/validator.ts as part of migrating source root from src/lib to lib.
547
- Functionality is either moved or deprecated in the new structure.
548
-
549
- Ref: Structural cleanup.
550
-
551
- commit ed7aa52f05a291897615c3b69578f51ac44d7f7e
552
- Author: neuxdotdev <neuxdev1@gmail.com>
553
- Date: Thu Apr 2 00:20:47 2026 +0700
554
-
555
- refactor(structure): remove legacy core downloader module
556
-
557
- Delete src/lib/core/downloader.ts as part of migrating source root from src/lib to lib.
558
- Functionality is either moved or deprecated in the new structure.
559
-
560
- Ref: Structural cleanup.
561
-
562
- commit 1e5bfe64e945852dc58d6ada06f7b3552276d3ff
563
- Author: neuxdotdev <neuxdev1@gmail.com>
564
- Date: Thu Apr 2 00:20:47 2026 +0700
565
-
566
- refactor(structure): remove legacy config schema module
567
-
568
- Delete src/lib/config/schema.ts as part of migrating source root from src/lib to lib.
569
- Functionality is either moved or deprecated in the new structure.
570
-
571
- Ref: Structural cleanup.
572
-
573
- commit 85c856f8ec601bda7a389eacbd8952b7cbcae05f
574
- Author: neuxdotdev <neuxdev1@gmail.com>
575
- Date: Thu Apr 2 00:20:47 2026 +0700
576
-
577
- refactor(structure): remove legacy config defaults module
578
-
579
- Delete src/lib/config/defaults.ts as part of migrating source root from src/lib to lib.
580
- Functionality is either moved or deprecated in the new structure.
581
-
582
- Ref: Structural cleanup.
583
-
584
- commit 8b985f60d5ab361845dc7be81e237c598ad7ed20
585
- Author: neuxdotdev <neuxdev1@gmail.com>
586
- Date: Thu Apr 2 00:20:47 2026 +0700
587
-
588
- refactor(structure): remove legacy page-interactions module
589
-
590
- Delete src/lib/browser/page-interactions.ts as part of migrating source root from src/lib to lib.
591
- Functionality is either moved or deprecated in the new structure.
592
-
593
- Ref: Structural cleanup.
594
-
595
- commit 14c345d795337b53d3c3bc6cf667bd3ab47a3b35
596
- Author: neuxdotdev <neuxdev1@gmail.com>
597
- Date: Thu Apr 2 00:20:46 2026 +0700
598
-
599
- refactor(structure): remove legacy browser-manager module
600
-
601
- Delete src/lib/browser/browser-manager.ts as part of migrating source root from src/lib to lib.
602
- Functionality is either moved or deprecated in the new structure.
603
-
604
- Ref: Structural cleanup.
605
-
606
- commit 9838ad6ae4cffdd354e495e9c0107561a5de0abb
607
- Author: neuxdotdev <neuxdev1@gmail.com>
608
- Date: Thu Apr 2 00:08:30 2026 +0700
609
-
610
- chore: delete types becouse they are automaticly build whit rollop and another scripts
611
-
612
- commit fdb845ac8d65a234796b4f1a34326db75a2e0326
613
- Author: neuxdotdev <neuxdev1@gmail.com>
614
- Date: Thu Apr 2 00:07:01 2026 +0700
615
-
616
- chore(clean): lint code and make beutifuly
617
-
618
- commit b9ad3920a56a4e71ad9f83e20bfaf162abe2e848
619
- Author: neuxdotdev <neuxdev1@gmail.com>
620
- Date: Thu Apr 2 00:06:15 2026 +0700
621
-
622
- chore: add simple new scafolding
623
-
624
- commit 3302791a12b4e5adec1e0f3eb5ee8d9eb962d914
625
- Author: neuxdotdev <neuxdev1@gmail.com>
626
- Date: Thu Apr 2 00:05:44 2026 +0700
627
-
628
- refactor(main): migration from cli to libary
629
-
630
- commit 89566d5b62e3499ac0fee5611a0561c05e82ba74
631
- Author: neuxdotdev <neuxdev1@gmail.com>
632
- Date: Tue Mar 31 18:17:03 2026 +0700
633
-
634
- release v1.0.2
635
-
636
- commit 26300dc7e38351fb537557fb5c3cfefa12040ab6
637
- Author: neuxdotdev <neuxdev1@gmail.com>
638
- Date: Tue Mar 31 18:09:45 2026 +0700
639
-
640
- release v1.0.1
641
-
642
- commit 011980a0cf2ed43815249fc4abaa96d5a7c5d97e
643
- Author: neuxdotdev <neuxdev1@gmail.com>
644
- Date: Tue Mar 31 17:52:29 2026 +0700
645
-
646
- chore(CI): add bun test and building
647
-
648
- commit e2dd933f70facd7fb2f32a2e7cb5805a0420996c
649
- Author: neuxdotdev <neuxdev1@gmail.com>
650
- Date: Tue Mar 31 17:51:20 2026 +0700
651
-
652
- chore(CI): add bun test and building
653
-
654
- commit 61cc94c9719267c6549f6b5279c75994fece0e49
655
- Author: neuxdotdev <neuxdev1@gmail.com>
656
- Date: Tue Mar 31 17:47:02 2026 +0700
657
-
658
- Update Node.js CI workflow to include Bun support
659
-
660
- commit d5e71a6e8056c57466085ba7bf30a1709c22c62b
661
- Author: neuxdotdev <neuxdev1@gmail.com>
662
- Date: Tue Mar 31 17:39:49 2026 +0700
663
-
664
- release v1.0.0
665
-
666
- commit 080451c7a87fdcd8e7ee4c15886718f6d78b03cf
667
- Author: neuxdotdev <neuxdev1@gmail.com>
668
- Date: Tue Mar 31 15:27:06 2026 +0700
669
-
670
- remove this constraint for the CLI tool, as users should be able to download files to any writable location
671
-
672
- commit 03dbe129a4f4c3049df4953c14be1dd557d53bce
673
- Author: neuxdotdev <neuxdev1@gmail.com>
674
- Date: Tue Mar 31 15:22:47 2026 +0700
675
-
676
- add readme
677
-
678
- commit f75ad055ed13a4c8a74c051c8cce16f2676bd94c
679
- Author: neuxdotdev <neuxdev1@gmail.com>
680
- Date: Tue Mar 31 15:16:38 2026 +0700
681
-
682
- add license
683
-
684
- commit cb5a042c6f6a8dc0147e2dbaeaa0997a6485de87
685
- Author: neuxdotdev <neuxdev1@gmail.com>
686
- Date: Tue Mar 31 15:11:02 2026 +0700
687
-
688
- Changes to be committed:
689
- modified: package.json
690
- renamed: src/browser.js -> src/lib/browser.js
691
- renamed: src/config.js -> src/lib/config.js
692
- renamed: src/downloader.js -> src/lib/downloader.js
693
- renamed: src/logger.js -> src/lib/logger.js
694
- renamed: src/utils.js -> src/lib/utils.js
695
- renamed: src/validators.js -> src/lib/validators.js
696
- renamed: index.js -> src/main.js
697
- modified: yarn.lock
698
-
699
- commit f849b5771d659c103a69886782b9cc92e9edb336
700
- Author: neuxdotdev <neuxdev1@gmail.com>
701
- Date: Tue Mar 31 11:06:41 2026 +0700
702
-
703
- Update validators.js
704
-
705
- commit fa70706a675f40f57aa1de955d2b9512271b9575
706
- Author: neuxdotdev <neuxdev1@gmail.com>
707
- Date: Tue Mar 31 11:06:38 2026 +0700
708
-
709
- Update utils.js
710
-
711
- commit a28e47f1b46a088d338b8efd9c3cdc36748a0050
712
- Author: neuxdotdev <neuxdev1@gmail.com>
713
- Date: Tue Mar 31 11:06:35 2026 +0700
714
-
715
- Update logger.js
716
-
717
- commit 975448f4134ab043675f2aa91d633152d2a73656
718
- Author: neuxdotdev <neuxdev1@gmail.com>
719
- Date: Tue Mar 31 10:58:34 2026 +0700
720
-
721
- Update downloader.js
722
-
723
- commit 973b9b119405a1f8c01eefbc3ac9937acab15838
724
- Author: neuxdotdev <neuxdev1@gmail.com>
725
- Date: Tue Mar 31 10:58:29 2026 +0700
726
-
727
- Update config.js
728
-
729
- commit 2c68d353680390886f6862ce2ee7acb761f9dbb5
730
- Author: neuxdotdev <neuxdev1@gmail.com>
731
- Date: Tue Mar 31 10:58:24 2026 +0700
732
-
733
- Update browser.js
734
-
735
- commit 069a2bd7be6580ee7dac620278284aee1e5c3bae
736
- Author: neuxdotdev <neuxdev1@gmail.com>
737
- Date: Tue Mar 31 10:58:17 2026 +0700
738
-
739
- Update index.js
740
-
741
- commit 79962bdde8e1311d9148c059f77c860b3a6d7d69
742
- Author: neuxdotdev <neuxdev1@gmail.com>
743
- Date: Tue Mar 31 02:48:34 2026 +0700
744
-
745
- Update sfiledl.config.json
746
-
747
- commit 730d6f4da3541c17aafb015279ba7f49392487bd
748
- Author: neuxdotdev <neuxdev1@gmail.com>
749
- Date: Tue Mar 31 02:48:29 2026 +0700
750
-
751
- Update .gitignore
752
-
753
- commit bbdba5e372db33bb2d6171b5d2164d9a4292e363
754
- Author: neuxdotdev <neuxdev1@gmail.com>
755
- Date: Tue Mar 31 02:48:07 2026 +0700
756
-
757
- Create package.json
758
-
759
- commit bebaacbde5af4bdf46844867aa5dda355d488993
760
- Author: neuxdotdev <neuxdev1@gmail.com>
761
- Date: Tue Mar 31 02:48:03 2026 +0700
762
-
763
- Create yarn.lock
764
-
765
- commit 7dfe7fc5b193ef0530c409c3cbe501947a7e0149
766
- Author: neuxdotdev <neuxdev1@gmail.com>
767
- Date: Tue Mar 31 02:47:54 2026 +0700
768
-
769
- Create .prettierrc.json
770
-
771
- commit fe6a57f580353a2f64ac2685a533ce6de4a503ef
772
- Author: neuxdotdev <neuxdev1@gmail.com>
773
- Date: Tue Mar 31 02:47:49 2026 +0700
774
-
775
- Create .prettierignore
776
-
777
- commit 47d2f1d5e9d03994302775d98628a4cc87685c05
778
- Author: neuxdotdev <neuxdev1@gmail.com>
779
- Date: Tue Mar 31 02:47:42 2026 +0700
780
-
781
- Create .gitignore
782
-
783
- commit c9738dc10c7082d16846d270230bdbd8896c1c3d
784
- Author: neuxdotdev <neuxdev1@gmail.com>
785
- Date: Tue Mar 31 02:47:38 2026 +0700
786
-
787
- Create .editorconfig
788
-
789
- commit b73fec1ed483c0898055375a290ee0b6020de7af
790
- Author: neuxdotdev <neuxdev1@gmail.com>
791
- Date: Tue Mar 31 02:41:08 2026 +0700
792
-
793
- Delete sfiledljs.config.json
794
-
795
- commit 7662a283e097c3adb1b548efb73ab4efa9cb33f1
796
- Author: neuxdotdev <neuxdev1@gmail.com>
797
- Date: Tue Mar 31 02:40:57 2026 +0700
798
-
799
- chore(conf): add default cofig
800
-
801
- commit 89167992700d6c31a917e930a0c90c0d1b541ce6
802
- Author: neuxdotdev <neuxdev1@gmail.com>
803
- Date: Tue Mar 31 02:24:29 2026 +0700
804
-
805
- chore(v1): make development version (unstable)