@nekosuneprojects/nekosunevrtools 1.1.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.
@@ -0,0 +1,33 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - master
8
+ pull_request:
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ jobs:
14
+ build:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - name: Checkout
18
+ uses: actions/checkout@v4
19
+
20
+ - name: Setup Node.js
21
+ uses: actions/setup-node@v4
22
+ with:
23
+ node-version: 20
24
+ cache: npm
25
+
26
+ - name: Install dependencies
27
+ run: npm ci
28
+
29
+ - name: Syntax checks
30
+ run: npm run check
31
+
32
+ - name: Pack dry run
33
+ run: npm pack --dry-run
@@ -0,0 +1,35 @@
1
+ name: Publish GitHub Packages
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+ workflow_dispatch:
7
+
8
+ permissions:
9
+ contents: read
10
+ packages: write
11
+
12
+ jobs:
13
+ publish-gpr:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - name: Checkout
17
+ uses: actions/checkout@v4
18
+
19
+ - name: Setup Node.js
20
+ uses: actions/setup-node@v4
21
+ with:
22
+ node-version: 20
23
+ registry-url: https://npm.pkg.github.com
24
+ cache: npm
25
+
26
+ - name: Install dependencies
27
+ run: npm ci
28
+
29
+ - name: Syntax checks
30
+ run: npm run check
31
+
32
+ - name: Publish to GitHub Packages
33
+ run: npm publish
34
+ env:
35
+ NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,34 @@
1
+ name: Publish NPM
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+ workflow_dispatch:
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ publish-npm:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - name: Checkout
16
+ uses: actions/checkout@v4
17
+
18
+ - name: Setup Node.js
19
+ uses: actions/setup-node@v4
20
+ with:
21
+ node-version: 20
22
+ registry-url: https://registry.npmjs.org
23
+ cache: npm
24
+
25
+ - name: Install dependencies
26
+ run: npm ci
27
+
28
+ - name: Syntax checks
29
+ run: npm run check
30
+
31
+ - name: Publish to npm
32
+ run: npm publish --access public
33
+ env:
34
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
package/README.md ADDED
@@ -0,0 +1,201 @@
1
+ # nekosunevrtools
2
+
3
+ Node.js SDK + CLI for:
4
+
5
+ - File upload platforms (`upfiles`, `fileio`, `catbox`, `transfersh`)
6
+ - Monetized short links (AdLinkFly-compatible APIs, including many adfly-like networks)
7
+ - Video upload-to-earn provider integration (`doodstream`)
8
+ - Live progress callbacks + Discord webhook embed progress bars
9
+
10
+ ## Install
11
+
12
+ ```bash
13
+ npm install @nekosuneprojects/nekosunevrtools
14
+ ```
15
+
16
+ ## SDK Usage
17
+
18
+ ### Category namespaces
19
+
20
+ ```js
21
+ const sdk = require("@nekosuneprojects/nekosunevrtools");
22
+
23
+ // Requested style:
24
+ // sdk.upload.providers.upfiles
25
+ // sdk.shorturl.providers["adlinkfly-compatible"]
26
+ // sdk.video.providers.doodstream
27
+ ```
28
+
29
+ ### Upload with progress
30
+
31
+ ```js
32
+ const { UploadClient } = require("@nekosuneprojects/nekosunevrtools");
33
+
34
+ const client = new UploadClient({
35
+ platform: "upfiles",
36
+ apiKey: process.env.UPFILES_API_KEY
37
+ });
38
+
39
+ const result = await client.upload("C:/path/file.zip", {
40
+ onProgress(p) {
41
+ console.log(`${p.phase} ${p.percent}%`);
42
+ }
43
+ });
44
+
45
+ console.log(result.url);
46
+ ```
47
+
48
+ ### Shorten URL for earnings
49
+
50
+ ```js
51
+ const { EarningsClient } = require("@nekosuneprojects/nekosunevrtools");
52
+
53
+ const earn = new EarningsClient();
54
+ const short = await earn.shortenUrl("https://example.com/my-file", {
55
+ provider: "adlinkfly-compatible",
56
+ preset: "shrinkme",
57
+ apiKey: process.env.SHRINKME_API_KEY
58
+ });
59
+
60
+ console.log(short.shortUrl);
61
+ ```
62
+
63
+ ### Upload then auto-shorten
64
+
65
+ ```js
66
+ const { EarningsClient } = require("@nekosuneprojects/nekosunevrtools");
67
+
68
+ const earn = new EarningsClient({
69
+ upload: {
70
+ platform: "upfiles",
71
+ apiKey: process.env.UPFILES_API_KEY
72
+ }
73
+ });
74
+
75
+ const result = await earn.uploadAndShorten("C:/path/file.zip", {
76
+ shortenerProvider: "adlinkfly-compatible",
77
+ shortenerPreset: "shrinkme",
78
+ shortenerApiKey: process.env.SHRINKME_API_KEY
79
+ });
80
+
81
+ console.log(result.upload.url);
82
+ console.log(result.shortlink.shortUrl);
83
+ ```
84
+
85
+ ### Video upload-to-earn (DoodStream)
86
+
87
+ ```js
88
+ const { EarningsClient } = require("@nekosuneprojects/nekosunevrtools");
89
+
90
+ const earn = new EarningsClient();
91
+ const video = await earn.uploadVideo("C:/videos/movie.mp4", {
92
+ provider: "doodstream",
93
+ apiKey: process.env.DOODSTREAM_API_KEY,
94
+ onProgress(p) {
95
+ console.log(`${p.percent}%`);
96
+ }
97
+ });
98
+
99
+ console.log(video.watchUrl);
100
+ ```
101
+
102
+ ## CLI Usage
103
+
104
+ ### Upload files
105
+
106
+ ```bash
107
+ nekosunevrtools upload --file ./archive.zip --platform upfiles --apikey YOUR_UPFILES_KEY
108
+ ```
109
+
110
+ ### Create monetized short link
111
+
112
+ ```bash
113
+ nekosunevrtools shorten --url "https://example.com/file" --shortener-preset shrinkme --apikey YOUR_SHRINKME_KEY
114
+ ```
115
+
116
+ ### Upload then monetize link
117
+
118
+ ```bash
119
+ nekosunevrtools upload-shorten \
120
+ --file ./archive.zip \
121
+ --upload-platform upfiles \
122
+ --apikey YOUR_UPFILES_KEY \
123
+ --shortener-preset shrinkme \
124
+ --shortener-apikey YOUR_SHRINKME_KEY
125
+ ```
126
+
127
+ ### Video upload-to-earn
128
+
129
+ ```bash
130
+ nekosunevrtools video-upload --file ./video.mp4 --video-provider doodstream --apikey YOUR_DOODSTREAM_KEY
131
+ ```
132
+
133
+ ### Discord embed progress bar
134
+
135
+ ```bash
136
+ nekosunevrtools upload \
137
+ --file ./video.mp4 \
138
+ --platform upfiles \
139
+ --apikey YOUR_UPFILES_KEY \
140
+ --discord-webhook "https://discord.com/api/webhooks/ID/TOKEN" \
141
+ --discord-title "Upload Status"
142
+ ```
143
+
144
+ ### List built-in shortener presets
145
+
146
+ ```bash
147
+ nekosunevrtools list-shorteners
148
+ ```
149
+
150
+ ## AdLinkFly-compatible presets
151
+
152
+ Use `--shortener-preset <name>` or SDK `preset`:
153
+
154
+ - `shrtfly`
155
+ - `exei`
156
+ - `shrinkme`
157
+ - `shrinkearn`
158
+ - `clksh`
159
+ - `lnkc`
160
+ - `zinkme`
161
+ - `short2url`
162
+ - `urlnama`
163
+ - `adshorti`
164
+ - `shrtbr`
165
+ - `linkmonetizado`
166
+ - `clicksfly`
167
+ - `urlsfly`
168
+ - `wefly`
169
+ - `adbull`
170
+ - `linksly`
171
+ - `droplink`
172
+ - `adbitfly`
173
+ - `earnlink`
174
+ - `easycut`
175
+ - `megaurl`
176
+ - `shortzon`
177
+ - `shortiio`
178
+ - `adlinkcash`
179
+ - `adlinkic`
180
+ - `shorte`
181
+ - `link1s`
182
+ - `cutpay`
183
+ - `adz7short`
184
+
185
+ You can also use custom base URL:
186
+
187
+ ```bash
188
+ nekosunevrtools shorten --url "https://example.com" --base-url "https://yourdomain.com/api" --apikey YOUR_KEY
189
+ ```
190
+
191
+ ## Notes
192
+
193
+ - Not every short-link/video platform has a public API. This package provides a pluggable system so you can add more.
194
+ - API/provider availability and payout rules can change by platform and country.
195
+
196
+ ## Publish
197
+
198
+ ```bash
199
+ npm login
200
+ npm publish --access public
201
+ ```
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { runCli } = require("../src/cli");
4
+
5
+ runCli()
6
+ .then((code) => {
7
+ process.exitCode = typeof code === "number" ? code : 0;
8
+ })
9
+ .catch((error) => {
10
+ const message = error && error.message ? error.message : String(error);
11
+ process.stderr.write(`${message}\n`);
12
+ process.exitCode = 1;
13
+ });
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@nekosuneprojects/nekosunevrtools",
3
+ "version": "1.1.0",
4
+ "description": "Multi-platform file upload client for Node.js with pluggable adapters, progress events, and CLI support.",
5
+ "main": "src/index.js",
6
+ "types": "src/index.d.ts",
7
+ "bin": {
8
+ "nekosunevrtools": "bin/nekosunevrtools.js"
9
+ },
10
+ "scripts": {
11
+ "check": "node --check src/index.js && node --check src/upload/client.js && node --check src/upload/providers.js && node --check src/upload/provider/upfiles.js && node --check src/upload/provider/fileio.js && node --check src/upload/provider/catbox.js && node --check src/upload/provider/transfersh.js && node --check src/shorturl/providers.js && node --check src/shorturl/provider/adlinkfly-compatible.js && node --check src/shorturl/provider/presets.js && node --check src/video/providers.js && node --check src/video/provider/doodstream.js && node --check src/upload-client.js && node --check src/earnings.js && node --check src/cli.js && node --check src/utils/file.js && node --check bin/nekosunevrtools.js"
12
+ },
13
+ "keywords": [
14
+ "upload",
15
+ "file-upload",
16
+ "upfiles",
17
+ "api-client",
18
+ "cli",
19
+ "discord",
20
+ "nodejs"
21
+ ],
22
+ "author": "",
23
+ "license": "MIT",
24
+ "dependencies": {
25
+ "axios": "^1.8.4",
26
+ "form-data": "^4.0.1"
27
+ },
28
+ "engines": {
29
+ "node": ">=18.0.0"
30
+ }
31
+ }