@brigadasos/nadeshiko-sdk 1.4.3-dev.0ffbf39 → 1.4.3-dev.2ba18e0

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 CHANGED
@@ -14,14 +14,16 @@ Install the internal build (includes internal endpoints) via the `internal` dist
14
14
  bun add @brigadasos/nadeshiko-sdk@internal
15
15
  ```
16
16
 
17
- ## Use the public SDK
17
+ ## Authentication
18
18
 
19
- The client sends your API key as `Authorization: Bearer <apiKey>`.
19
+ ### API key (server-to-server)
20
+
21
+ Use an API key for endpoints that don't require a user session. The key is sent as `Authorization: Bearer <apiKey>`.
20
22
 
21
23
  ```typescript
22
- import { createClient, searchSegments } from '@brigadasos/nadeshiko-sdk';
24
+ import { createNadeshikoClient, searchSegments } from '@brigadasos/nadeshiko-sdk';
23
25
 
24
- const client = createClient({
26
+ const client = createNadeshikoClient({
25
27
  apiKey: process.env.NADESHIKO_API_KEY!,
26
28
  baseUrl: 'PRODUCTION',
27
29
  });
@@ -30,22 +32,44 @@ const result = await searchSegments({
30
32
  client,
31
33
  body: { query: '彼女' },
32
34
  });
35
+ ```
33
36
 
34
- if (result.error) {
35
- console.error(result.error.code, result.error.detail);
36
- } else {
37
- console.log(result.data);
37
+ ### Session token (user-authenticated endpoints)
38
+
39
+ Endpoints under `/v1/user/*` and `/v1/collections/*` require a user session. Pass a `sessionToken` getter that returns the value of the `nadeshiko.session_token` cookie — called fresh on every request.
40
+
41
+ **Nuxt / Nitro server routes:**
42
+
43
+ ```typescript
44
+ // server/utils/nadeshiko.ts
45
+ import { createNadeshikoClient } from '@brigadasos/nadeshiko-sdk';
46
+ import type { H3Event } from 'h3';
47
+
48
+ export function useNadeshikoClient(event: H3Event) {
49
+ return createNadeshikoClient({
50
+ sessionToken: () => getCookie(event, 'nadeshiko.session_token'),
51
+ });
38
52
  }
39
53
  ```
40
54
 
55
+ ```typescript
56
+ // server/api/preferences.get.ts
57
+ export default defineEventHandler(async (event) => {
58
+ const client = useNadeshikoClient(event);
59
+ return client.getUserPreferences();
60
+ });
61
+ ```
62
+
63
+ **Browser (no configuration needed):** the default `sessionToken` getter reads `nadeshiko.session_token` from `document.cookie` automatically.
64
+
41
65
  ### Error handling
42
66
 
43
67
  Every response returns a discriminated union with either `data` or `error`. The `error` object follows the [RFC 7807](https://tools.ietf.org/html/rfc7807) Problem Details format, so you always get a machine-readable `code` and a human-readable `detail`.
44
68
 
45
69
  ```typescript
46
- import { createClient, searchSegments } from '@brigadasos/nadeshiko-sdk';
70
+ import { createNadeshikoClient, searchSegments } from '@brigadasos/nadeshiko-sdk';
47
71
 
48
- const client = createClient({
72
+ const client = createNadeshikoClient({
49
73
  apiKey: process.env.NADESHIKO_API_KEY!,
50
74
  baseUrl: 'PRODUCTION',
51
75
  });
@@ -1 +1 @@
1
- {"version":3,"file":"client.gen.d.ts","sourceRoot":"","sources":["../../../generated/dev/client.gen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,MAAM,EAA8B,MAAM,UAAU,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,aAAa,GAAG,cAAc,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AAEzJ,eAAO,MAAM,MAAM,2BAAmF,CAAC"}
1
+ {"version":3,"file":"client.gen.d.ts","sourceRoot":"","sources":["../../../generated/dev/client.gen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,MAAM,EAA8B,MAAM,UAAU,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,aAAa,GAAG,cAAc,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AAEzJ,eAAO,MAAM,MAAM,2BAAsF,CAAC"}