@lasuillard/raindrop-client 0.8.1 → 0.8.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/README.md +79 -21
- package/package.json +30 -23
package/README.md
CHANGED
|
@@ -2,45 +2,103 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://opensource.org/licenses/MIT)
|
|
4
4
|
[](https://codecov.io/gh/lasuillard-s/raindrop-client)
|
|
5
|
-
[](https://www.npmjs.com/package/@lasuillard/raindrop-client)
|
|
6
6
|
|
|
7
|
-
Axios client
|
|
7
|
+
An Axios client for Raindrop.io, generated with OpenAPI Generator.
|
|
8
8
|
|
|
9
9
|
## ✨ Features
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
raindrop-client is a TypeScript package with these features:
|
|
12
12
|
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
13
|
+
- **OpenAPI schema** for the Raindrop.io API
|
|
14
|
+
- **Generated Axios client** with typed request and response models
|
|
15
|
+
- **Convenience wrappers** for authentication, collections, raindrops, and tree helpers
|
|
16
|
+
- **Type-checked and recorded tests** to detect schema drift and behavior changes
|
|
16
17
|
|
|
17
|
-
## 🚀
|
|
18
|
+
## 🚀 How to use
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
Install raindrop-client from npm to use it in your own code:
|
|
20
21
|
|
|
21
22
|
```bash
|
|
22
23
|
npm install @lasuillard/raindrop-client
|
|
23
24
|
```
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
Interactive Node.js REPL example:
|
|
27
|
+
|
|
28
|
+
```js
|
|
29
|
+
> const { client: { Raindrop }, generated } = await import("@lasuillard/raindrop-client");
|
|
30
|
+
|
|
31
|
+
// Create a Raindrop client
|
|
32
|
+
> const accessToken = "<YOUR_ACCESS_TOKEN>";
|
|
33
|
+
> const client = new Raindrop(
|
|
34
|
+
| new generated.Configuration({ accessToken }),
|
|
35
|
+
| );
|
|
36
|
+
|
|
37
|
+
// Query the current user
|
|
38
|
+
> const { data: { user } } = await client.user.getCurrentUser();
|
|
39
|
+
> user
|
|
40
|
+
{
|
|
41
|
+
tfa: { enabled: false },
|
|
42
|
+
files: {
|
|
43
|
+
used: 0,
|
|
44
|
+
size: 100000000,
|
|
45
|
+
lastCheckPoint: '2026-06-21T02:55:34.718Z'
|
|
46
|
+
},
|
|
47
|
+
_id: 0000000,
|
|
48
|
+
fullName: '...',
|
|
49
|
+
name: '...',
|
|
50
|
+
email: '...',
|
|
51
|
+
avatar: '',
|
|
52
|
+
pro: false,
|
|
53
|
+
groups: [
|
|
54
|
+
{
|
|
55
|
+
title: 'raindrop-client',
|
|
56
|
+
hidden: false,
|
|
57
|
+
sort: 0,
|
|
58
|
+
collections: []
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
lastAction: '2026-06-21T02:56:27.772Z',
|
|
62
|
+
lastVisit: '2026-06-21T02:56:02.471Z',
|
|
63
|
+
registered: '2024-04-21T06:46:01.480Z',
|
|
64
|
+
lastUpdate: '2026-06-21T02:56:27.772Z',
|
|
65
|
+
config: {
|
|
66
|
+
default_collection_view: 'list',
|
|
67
|
+
raindrops_hide: [
|
|
68
|
+
'list_excerpt',
|
|
69
|
+
'simple_excerpt',
|
|
70
|
+
'grid_excerpt',
|
|
71
|
+
'masonry_excerpt'
|
|
72
|
+
],
|
|
73
|
+
raindrops_buttons: [ 'select', 'preview', 'edit', 'remove' ],
|
|
74
|
+
raindrops_search_by_score: true,
|
|
75
|
+
raindrops_search_incollection: false,
|
|
76
|
+
broken_level: 'default',
|
|
77
|
+
font_size: 0,
|
|
78
|
+
nested_view_legacy: true,
|
|
79
|
+
add_default_collection: -1,
|
|
80
|
+
acknowledge: [ 'onboard_upgrade' ],
|
|
81
|
+
last_collection: -1,
|
|
82
|
+
raindrops_sort: 'title',
|
|
83
|
+
ai_suggestions: true,
|
|
84
|
+
filters_hide: false,
|
|
85
|
+
ai_assistant: true
|
|
86
|
+
},
|
|
87
|
+
emailConfirmed: true,
|
|
88
|
+
password: true
|
|
89
|
+
}
|
|
90
|
+
```
|
|
26
91
|
|
|
27
|
-
|
|
92
|
+
For the full API surface, see the generated source under [`src/generated`](./src/generated) or the online documentation at [lasuillard-s.github.io/raindrop-client](https://lasuillard-s.github.io/raindrop-client/).
|
|
28
93
|
|
|
29
|
-
|
|
30
|
-
npm install --global @openapitools/openapi-generator-cli
|
|
31
|
-
openapi-generator-cli generate \
|
|
32
|
-
--input-spec https://raw.githubusercontent.com/lasuillard-s/raindrop-client/main/openapi.yaml \
|
|
33
|
-
--generator-name typescript-axios \
|
|
34
|
-
--skip-validate-spec \
|
|
35
|
-
--output ./out
|
|
36
|
-
```
|
|
94
|
+
## ⚠️ Limitations
|
|
37
95
|
|
|
38
|
-
|
|
96
|
+
Because this package is based on an unofficial OpenAPI specification, some endpoints or response shapes may differ from the live Raindrop.io API. Pro-only features are not covered by the schema.
|
|
39
97
|
|
|
40
98
|
## 💖 Contributing
|
|
41
99
|
|
|
42
|
-
Please refer to [CONTRIBUTING.md](./CONTRIBUTING.md)
|
|
100
|
+
Please refer to [CONTRIBUTING.md](./CONTRIBUTING.md) for more information on how to contribute to this project.
|
|
43
101
|
|
|
44
102
|
## 📜 License
|
|
45
103
|
|
|
46
|
-
This project is licensed under the
|
|
104
|
+
This project is licensed under the MIT License.
|
package/package.json
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lasuillard/raindrop-client",
|
|
3
|
-
"version": "0.8.
|
|
4
|
-
"
|
|
3
|
+
"version": "0.8.3",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public"
|
|
6
|
+
},
|
|
7
|
+
"description": "An Axios client for Raindrop.io, generated with OpenAPI Generator.",
|
|
5
8
|
"keywords": [
|
|
6
9
|
"raindrop.io",
|
|
7
10
|
"axios",
|
|
@@ -21,10 +24,6 @@
|
|
|
21
24
|
"bugs": {
|
|
22
25
|
"url": "https://github.com/lasuillard-s/raindrop-client/issues"
|
|
23
26
|
},
|
|
24
|
-
"engines": {
|
|
25
|
-
"node": ">=22"
|
|
26
|
-
},
|
|
27
|
-
"packageManager": "npm@11.16.0",
|
|
28
27
|
"files": [
|
|
29
28
|
"dist/",
|
|
30
29
|
"README.md",
|
|
@@ -44,9 +43,6 @@
|
|
|
44
43
|
"require": "./dist/index.js"
|
|
45
44
|
}
|
|
46
45
|
},
|
|
47
|
-
"publishConfig": {
|
|
48
|
-
"access": "public"
|
|
49
|
-
},
|
|
50
46
|
"scripts": {
|
|
51
47
|
"generate": "openapi-generator-cli generate --input-spec openapi.yaml --generator-name typescript-axios --output ./src/generated/ --skip-validate-spec --additional-properties enumPropertyNamingReplaceSpecialChar=true",
|
|
52
48
|
"dev": "vite",
|
|
@@ -59,33 +55,44 @@
|
|
|
59
55
|
"test": "npm run test:unit && npm run test:type",
|
|
60
56
|
"test:unit": "vitest --coverage --run --outputFile.junit=./junit.xml",
|
|
61
57
|
"test:type": "vitest --typecheck.only --run --outputFile.junit=./typecheck.junit.xml",
|
|
62
|
-
"make-docs": "typedoc --plugin typedoc-plugin-missing-exports src"
|
|
58
|
+
"make-docs": "typedoc --plugin typedoc-plugin-missing-exports --out ./typedoc src"
|
|
59
|
+
},
|
|
60
|
+
"peerDependencies": {
|
|
61
|
+
"axios": "1.*"
|
|
62
|
+
},
|
|
63
|
+
"devEngines": {
|
|
64
|
+
"runtime": {
|
|
65
|
+
"name": "node",
|
|
66
|
+
"version": ">=24",
|
|
67
|
+
"onFail": "error"
|
|
68
|
+
},
|
|
69
|
+
"packageManager": {
|
|
70
|
+
"name": "npm",
|
|
71
|
+
"version": ">=11",
|
|
72
|
+
"onFail": "error"
|
|
73
|
+
}
|
|
63
74
|
},
|
|
64
75
|
"devDependencies": {
|
|
65
|
-
"@biomejs/biome": "2.
|
|
76
|
+
"@biomejs/biome": "2.5.0",
|
|
66
77
|
"@codecov/vite-plugin": "2.0.1",
|
|
67
|
-
"@openapitools/openapi-generator-cli": "2.
|
|
78
|
+
"@openapitools/openapi-generator-cli": "2.39.0",
|
|
68
79
|
"@pollyjs/adapter-node-http": "6.0.6",
|
|
69
80
|
"@pollyjs/core": "6.0.6",
|
|
70
81
|
"@pollyjs/persister-fs": "6.0.6",
|
|
71
|
-
"@types/node": "25.9.
|
|
72
|
-
"@vitest/coverage-v8": "4.1.
|
|
73
|
-
"@vitest/ui": "4.1.
|
|
82
|
+
"@types/node": "25.9.4",
|
|
83
|
+
"@vitest/coverage-v8": "4.1.9",
|
|
84
|
+
"@vitest/ui": "4.1.9",
|
|
85
|
+
"axios": "1.18.1",
|
|
74
86
|
"axios-mock-adapter": "2.1.0",
|
|
75
87
|
"axios-rate-limit": "1.9.0",
|
|
88
|
+
"http-server": "14.1.1",
|
|
76
89
|
"slugify": "1.6.9",
|
|
77
90
|
"tslib": "2.8.1",
|
|
78
|
-
"tsup": "
|
|
91
|
+
"tsup": "8.5.1",
|
|
79
92
|
"typedoc": "0.28.19",
|
|
80
93
|
"typedoc-plugin-missing-exports": "4.1.3",
|
|
81
94
|
"typescript": "6.0.3",
|
|
82
95
|
"vite-tsconfig-paths": "6.1.1",
|
|
83
|
-
"vitest": "4.1.
|
|
84
|
-
},
|
|
85
|
-
"dependencies": {
|
|
86
|
-
"axios": "^1.6.8"
|
|
87
|
-
},
|
|
88
|
-
"overrides": {
|
|
89
|
-
"vite": "$vite"
|
|
96
|
+
"vitest": "4.1.9"
|
|
90
97
|
}
|
|
91
98
|
}
|