@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.
Files changed (2) hide show
  1. package/README.md +79 -21
  2. package/package.json +30 -23
package/README.md CHANGED
@@ -2,45 +2,103 @@
2
2
 
3
3
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
4
  [![codecov](https://codecov.io/gh/lasuillard-s/raindrop-client/graph/badge.svg?token=bPq2geqXLe)](https://codecov.io/gh/lasuillard-s/raindrop-client)
5
- [![NPM Version](https://img.shields.io/npm/v/%40lasuillard%2Fraindrop-client)](https://www.npmjs.com/package/@lasuillard/raindrop-client)
5
+ [![npm version](https://img.shields.io/npm/v/%40lasuillard%2Fraindrop-client)](https://www.npmjs.com/package/@lasuillard/raindrop-client)
6
6
 
7
- Axios client built with OpenAPI generator for Raindrop.io ☔
7
+ An Axios client for Raindrop.io, generated with OpenAPI Generator.
8
8
 
9
9
  ## ✨ Features
10
10
 
11
- Primary features and goals are:
11
+ raindrop-client is a TypeScript package with these features:
12
12
 
13
- - Provide unofficial OpenAPI schema for Raindrop.io
14
- - Fill the gap between official documentation and reality(response) with schema testing
15
- - Generated client package for Axios with extra functionalities
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
- ## 🚀 Installation
18
+ ## 🚀 How to use
18
19
 
19
- If you wish to use client package, install it:
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
- ## 🛠️ Generate your own client
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
- You can use OpenAPI schema in this repository to generate your own client. Following is example using [openapitools/openapi-generator-cli](https://www.npmjs.com/package/@openapitools/openapi-generator-cli):
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
- ```bash
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
- You may need Java installed as openapi-generator-cli uses it.
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 terms of the MIT license.
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.1",
4
- "description": "Axios client built with OpenAPI generator for Raindrop.io.",
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.4.16",
76
+ "@biomejs/biome": "2.5.0",
66
77
  "@codecov/vite-plugin": "2.0.1",
67
- "@openapitools/openapi-generator-cli": "2.34.0",
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.1",
72
- "@vitest/coverage-v8": "4.1.7",
73
- "@vitest/ui": "4.1.7",
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": "^8.5.1",
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.7"
84
- },
85
- "dependencies": {
86
- "axios": "^1.6.8"
87
- },
88
- "overrides": {
89
- "vite": "$vite"
96
+ "vitest": "4.1.9"
90
97
  }
91
98
  }