@verbatims/sdk 1.0.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.
- package/LICENSE +21 -0
- package/README.md +61 -0
- package/dist/client.d.ts +35 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +156 -0
- package/dist/client.js.map +1 -0
- package/dist/errors.d.ts +26 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +51 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/pagination.d.ts +9 -0
- package/dist/pagination.d.ts.map +1 -0
- package/dist/pagination.js +16 -0
- package/dist/pagination.js.map +1 -0
- package/dist/resources/authors.d.ts +145 -0
- package/dist/resources/authors.d.ts.map +1 -0
- package/dist/resources/authors.js +48 -0
- package/dist/resources/authors.js.map +1 -0
- package/dist/resources/collections.d.ts +57 -0
- package/dist/resources/collections.d.ts.map +1 -0
- package/dist/resources/collections.js +32 -0
- package/dist/resources/collections.js.map +1 -0
- package/dist/resources/index.d.ts +7 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +7 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/quotes.d.ts +226 -0
- package/dist/resources/quotes.d.ts.map +1 -0
- package/dist/resources/quotes.js +69 -0
- package/dist/resources/quotes.js.map +1 -0
- package/dist/resources/references.d.ts +135 -0
- package/dist/resources/references.d.ts.map +1 -0
- package/dist/resources/references.js +46 -0
- package/dist/resources/references.js.map +1 -0
- package/dist/resources/search.d.ts +36 -0
- package/dist/resources/search.d.ts.map +1 -0
- package/dist/resources/search.js +27 -0
- package/dist/resources/search.js.map +1 -0
- package/dist/resources/tags.d.ts +39 -0
- package/dist/resources/tags.d.ts.map +1 -0
- package/dist/resources/tags.js +26 -0
- package/dist/resources/tags.js.map +1 -0
- package/dist/types.d.ts +203 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +23 -0
- package/dist/types.js.map +1 -0
- package/nuxt/composables.ts +31 -0
- package/nuxt/module.ts +31 -0
- package/package.json +85 -0
- package/src/__tests__/client.test.ts +304 -0
- package/src/__tests__/errors.test.ts +85 -0
- package/src/__tests__/pagination.test.ts +100 -0
- package/src/client.ts +213 -0
- package/src/errors.ts +54 -0
- package/src/index.ts +58 -0
- package/src/pagination.ts +25 -0
- package/src/resources/__tests__/resources.test.ts +386 -0
- package/src/resources/authors.ts +58 -0
- package/src/resources/collections.ts +45 -0
- package/src/resources/index.ts +6 -0
- package/src/resources/quotes.ts +80 -0
- package/src/resources/references.ts +56 -0
- package/src/resources/search.ts +34 -0
- package/src/resources/tags.ts +32 -0
- package/src/types.ts +221 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"references.js","sourceRoot":"","sources":["../../src/resources/references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGxC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CAAA;AAEF,MAAM,2BAA2B,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;AAC/E,MAAM,6BAA6B,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAA;AAIxE,MAAM,OAAO,kBAAkB;IACT;IAApB,YAAoB,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;IAAG,CAAC;IAE/C,KAAK,CAAC,IAAI,CAAC,MAA6B;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,MAAiC,EAAE,EAAE,2BAA2B,CAAC,CAAA;IACnH,CAAC;IAED,QAAQ,CAAC,MAA6B;QACpC,OAAO,QAAQ,CAAgB,CAAC,IAAI,EAAE,EAAE,CACtC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,UAAU,EAAE,CAAC,CAAC,UAAU;SACzB,CAAC,CAAC,CACJ,CAAA;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,EAAE,6BAA6B,CAAC,CAAA;IAChF,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAyB;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,6BAA6B,CAAC,CAAA;IACjF,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAAyB;QAChD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,6BAA6B,CAAC,CAAA;IACtF,CAAC;CACF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
|
+
import type { VerbatimsClient } from '../client';
|
|
3
|
+
import type { SearchParams } from '../types';
|
|
4
|
+
declare const searchResultSchema: z.ZodObject<{
|
|
5
|
+
id: z.ZodNumber;
|
|
6
|
+
type: z.ZodString;
|
|
7
|
+
name: z.ZodString;
|
|
8
|
+
description: z.ZodOptional<z.ZodString>;
|
|
9
|
+
match: z.ZodOptional<z.ZodString>;
|
|
10
|
+
}, z.core.$strip>;
|
|
11
|
+
type SearchResultItem = z.infer<typeof searchResultSchema>;
|
|
12
|
+
export declare class SearchResource {
|
|
13
|
+
private client;
|
|
14
|
+
constructor(client: VerbatimsClient);
|
|
15
|
+
query(params: SearchParams): Promise<{
|
|
16
|
+
success: true;
|
|
17
|
+
data?: {
|
|
18
|
+
id: number;
|
|
19
|
+
type: string;
|
|
20
|
+
name: string;
|
|
21
|
+
description?: string | undefined;
|
|
22
|
+
match?: string | undefined;
|
|
23
|
+
}[] | undefined;
|
|
24
|
+
message?: string | undefined;
|
|
25
|
+
pagination?: {
|
|
26
|
+
page: number;
|
|
27
|
+
limit: number;
|
|
28
|
+
total: number;
|
|
29
|
+
totalPages: number;
|
|
30
|
+
hasMore: boolean;
|
|
31
|
+
} | undefined;
|
|
32
|
+
}>;
|
|
33
|
+
paginate(params: SearchParams): AsyncGenerator<SearchResultItem>;
|
|
34
|
+
}
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/resources/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAGhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE5C,QAAA,MAAM,kBAAkB;;;;;;iBAMtB,CAAA;AAEF,KAAK,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAI1D,qBAAa,cAAc;IACb,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,eAAe;IAErC,KAAK,CAAC,MAAM,EAAE,YAAY;;;;;;;;;;;;;;;;;;IAIhC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAAC,gBAAgB,CAAC;CAQjE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
|
+
import { apiResponseSchema } from '../types';
|
|
3
|
+
import { paginate } from '../pagination';
|
|
4
|
+
const searchResultSchema = z.object({
|
|
5
|
+
id: z.number(),
|
|
6
|
+
type: z.string(),
|
|
7
|
+
name: z.string(),
|
|
8
|
+
description: z.string().optional(),
|
|
9
|
+
match: z.string().optional(),
|
|
10
|
+
});
|
|
11
|
+
const searchResponseSchema = apiResponseSchema(z.array(searchResultSchema));
|
|
12
|
+
export class SearchResource {
|
|
13
|
+
client;
|
|
14
|
+
constructor(client) {
|
|
15
|
+
this.client = client;
|
|
16
|
+
}
|
|
17
|
+
async query(params) {
|
|
18
|
+
return this.client.get('/search', { params: params }, searchResponseSchema);
|
|
19
|
+
}
|
|
20
|
+
paginate(params) {
|
|
21
|
+
return paginate((page) => this.query({ ...params, page }).then(r => ({
|
|
22
|
+
data: r.data,
|
|
23
|
+
pagination: r.pagination,
|
|
24
|
+
})));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/resources/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGxC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAA;AAIF,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAA;AAE3E,MAAM,OAAO,cAAc;IACL;IAApB,YAAoB,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;IAAG,CAAC;IAE/C,KAAK,CAAC,KAAK,CAAC,MAAoB;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,MAA4C,EAAE,EAAE,oBAAoB,CAAC,CAAA;IACnH,CAAC;IAED,QAAQ,CAAC,MAAoB;QAC3B,OAAO,QAAQ,CAAmB,CAAC,IAAI,EAAE,EAAE,CACzC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,UAAU,EAAE,CAAC,CAAC,UAAU;SACzB,CAAC,CAAC,CACJ,CAAA;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
|
+
import type { VerbatimsClient } from '../client';
|
|
3
|
+
declare const tagSchema: z.ZodObject<{
|
|
4
|
+
id: z.ZodNumber;
|
|
5
|
+
name: z.ZodString;
|
|
6
|
+
color: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
7
|
+
usage_count: z.ZodOptional<z.ZodNumber>;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
type TagItem = z.infer<typeof tagSchema>;
|
|
10
|
+
export declare class TagsResource {
|
|
11
|
+
private client;
|
|
12
|
+
constructor(client: VerbatimsClient);
|
|
13
|
+
list(params?: {
|
|
14
|
+
page?: number;
|
|
15
|
+
limit?: number;
|
|
16
|
+
}): Promise<{
|
|
17
|
+
success: true;
|
|
18
|
+
data?: {
|
|
19
|
+
id: number;
|
|
20
|
+
name: string;
|
|
21
|
+
color?: string | null | undefined;
|
|
22
|
+
usage_count?: number | undefined;
|
|
23
|
+
}[] | undefined;
|
|
24
|
+
message?: string | undefined;
|
|
25
|
+
pagination?: {
|
|
26
|
+
page: number;
|
|
27
|
+
limit: number;
|
|
28
|
+
total: number;
|
|
29
|
+
totalPages: number;
|
|
30
|
+
hasMore: boolean;
|
|
31
|
+
} | undefined;
|
|
32
|
+
}>;
|
|
33
|
+
paginate(params?: {
|
|
34
|
+
page?: number;
|
|
35
|
+
limit?: number;
|
|
36
|
+
}): AsyncGenerator<TagItem>;
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=tags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/resources/tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAIhD,QAAA,MAAM,SAAS;;;;;iBAKb,CAAA;AAEF,KAAK,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AAIxC,qBAAa,YAAY;IACX,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,eAAe;IAErC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;;IAIrD,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAAC,OAAO,CAAC;CAQ9E"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
|
+
import { apiResponseSchema } from '../types';
|
|
3
|
+
import { paginate } from '../pagination';
|
|
4
|
+
const tagSchema = z.object({
|
|
5
|
+
id: z.number(),
|
|
6
|
+
name: z.string(),
|
|
7
|
+
color: z.string().nullable().optional(),
|
|
8
|
+
usage_count: z.number().optional(),
|
|
9
|
+
});
|
|
10
|
+
const tagListResponseSchema = apiResponseSchema(z.array(tagSchema));
|
|
11
|
+
export class TagsResource {
|
|
12
|
+
client;
|
|
13
|
+
constructor(client) {
|
|
14
|
+
this.client = client;
|
|
15
|
+
}
|
|
16
|
+
async list(params) {
|
|
17
|
+
return this.client.get('/tags', { params: params }, tagListResponseSchema);
|
|
18
|
+
}
|
|
19
|
+
paginate(params) {
|
|
20
|
+
return paginate((page) => this.list({ ...params, page }).then(r => ({
|
|
21
|
+
data: r.data,
|
|
22
|
+
pagination: r.pagination,
|
|
23
|
+
})));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=tags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/resources/tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAA;AAIF,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAA;AAEnE,MAAM,OAAO,YAAY;IACH;IAApB,YAAoB,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;IAAG,CAAC;IAE/C,KAAK,CAAC,IAAI,CAAC,MAA0C;QACnD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAiC,EAAE,EAAE,qBAAqB,CAAC,CAAA;IACvG,CAAC;IAED,QAAQ,CAAC,MAA0C;QACjD,OAAO,QAAQ,CAAU,CAAC,IAAI,EAAE,EAAE,CAChC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,UAAU,EAAE,CAAC,CAAC,UAAU;SACzB,CAAC,CAAC,CACJ,CAAA;IACH,CAAC;CACF"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
|
+
export declare const paginationMetaSchema: z.ZodObject<{
|
|
3
|
+
page: z.ZodNumber;
|
|
4
|
+
limit: z.ZodNumber;
|
|
5
|
+
total: z.ZodNumber;
|
|
6
|
+
totalPages: z.ZodNumber;
|
|
7
|
+
hasMore: z.ZodBoolean;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
export declare function apiResponseSchema<T extends z.ZodTypeAny>(dataSchema: T): z.ZodObject<{
|
|
10
|
+
success: z.ZodLiteral<true>;
|
|
11
|
+
data: z.ZodOptional<T>;
|
|
12
|
+
message: z.ZodOptional<z.ZodString>;
|
|
13
|
+
pagination: z.ZodOptional<z.ZodObject<{
|
|
14
|
+
page: z.ZodNumber;
|
|
15
|
+
limit: z.ZodNumber;
|
|
16
|
+
total: z.ZodNumber;
|
|
17
|
+
totalPages: z.ZodNumber;
|
|
18
|
+
hasMore: z.ZodBoolean;
|
|
19
|
+
}, z.core.$strip>>;
|
|
20
|
+
}, z.core.$strip>;
|
|
21
|
+
export declare const errorResponseSchema: z.ZodObject<{
|
|
22
|
+
success: z.ZodLiteral<false>;
|
|
23
|
+
message: z.ZodOptional<z.ZodString>;
|
|
24
|
+
errors: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
25
|
+
}, z.core.$strip>;
|
|
26
|
+
export type PaginationMeta = z.infer<typeof paginationMetaSchema>;
|
|
27
|
+
export interface ApiResponse<T = unknown> {
|
|
28
|
+
success: boolean;
|
|
29
|
+
data?: T;
|
|
30
|
+
message?: string;
|
|
31
|
+
pagination?: PaginationMeta;
|
|
32
|
+
}
|
|
33
|
+
export interface QuoteAuthor {
|
|
34
|
+
id: number;
|
|
35
|
+
name: string;
|
|
36
|
+
is_fictional?: boolean;
|
|
37
|
+
image_url?: string | null;
|
|
38
|
+
description?: string | null;
|
|
39
|
+
}
|
|
40
|
+
export interface QuoteReferenceInfo {
|
|
41
|
+
id: number;
|
|
42
|
+
name: string;
|
|
43
|
+
primary_type?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface QuoteWithRelations {
|
|
46
|
+
id: number;
|
|
47
|
+
name: string;
|
|
48
|
+
language: string;
|
|
49
|
+
author_id?: number;
|
|
50
|
+
reference_id?: number;
|
|
51
|
+
status: string;
|
|
52
|
+
views_count: number;
|
|
53
|
+
likes_count: number;
|
|
54
|
+
shares_count: number;
|
|
55
|
+
is_featured?: boolean;
|
|
56
|
+
created_at: string;
|
|
57
|
+
updated_at: string;
|
|
58
|
+
author?: QuoteAuthor;
|
|
59
|
+
reference?: QuoteReferenceInfo;
|
|
60
|
+
tags?: Array<{
|
|
61
|
+
id?: number;
|
|
62
|
+
name: string;
|
|
63
|
+
color?: string | null;
|
|
64
|
+
}>;
|
|
65
|
+
}
|
|
66
|
+
export interface Author {
|
|
67
|
+
id: number;
|
|
68
|
+
name: string;
|
|
69
|
+
is_fictional?: boolean;
|
|
70
|
+
image_url?: string | null;
|
|
71
|
+
job?: string | null;
|
|
72
|
+
description?: string | null;
|
|
73
|
+
birth_date?: string | null;
|
|
74
|
+
birth_location?: string | null;
|
|
75
|
+
death_date?: string | null;
|
|
76
|
+
death_location?: string | null;
|
|
77
|
+
views_count: number;
|
|
78
|
+
likes_count: number;
|
|
79
|
+
shares_count: number;
|
|
80
|
+
quotes_count?: number;
|
|
81
|
+
created_at: string;
|
|
82
|
+
updated_at: string;
|
|
83
|
+
}
|
|
84
|
+
export interface QuoteReference {
|
|
85
|
+
id: number;
|
|
86
|
+
name: string;
|
|
87
|
+
primary_type: string;
|
|
88
|
+
secondary_type?: string | null;
|
|
89
|
+
original_language?: string;
|
|
90
|
+
release_date?: string | null;
|
|
91
|
+
description?: string | null;
|
|
92
|
+
image_url?: string | null;
|
|
93
|
+
views_count: number;
|
|
94
|
+
likes_count: number;
|
|
95
|
+
shares_count: number;
|
|
96
|
+
quotes_count?: number;
|
|
97
|
+
created_at: string;
|
|
98
|
+
updated_at: string;
|
|
99
|
+
}
|
|
100
|
+
export interface ListQuotesParams {
|
|
101
|
+
page?: number;
|
|
102
|
+
limit?: number;
|
|
103
|
+
language?: string;
|
|
104
|
+
author_id?: number;
|
|
105
|
+
reference_id?: number;
|
|
106
|
+
search?: string;
|
|
107
|
+
tag?: string;
|
|
108
|
+
sort_by?: string;
|
|
109
|
+
sort_order?: 'asc' | 'desc';
|
|
110
|
+
}
|
|
111
|
+
export interface ListAuthorsParams {
|
|
112
|
+
page?: number;
|
|
113
|
+
limit?: number;
|
|
114
|
+
search?: string;
|
|
115
|
+
}
|
|
116
|
+
export interface ListReferencesParams {
|
|
117
|
+
page?: number;
|
|
118
|
+
limit?: number;
|
|
119
|
+
search?: string;
|
|
120
|
+
type?: string;
|
|
121
|
+
}
|
|
122
|
+
export interface SearchParams {
|
|
123
|
+
q: string;
|
|
124
|
+
type?: 'quotes' | 'authors' | 'references';
|
|
125
|
+
page?: number;
|
|
126
|
+
limit?: number;
|
|
127
|
+
}
|
|
128
|
+
export interface CreateQuoteData {
|
|
129
|
+
name: string;
|
|
130
|
+
language?: string;
|
|
131
|
+
author_id?: number;
|
|
132
|
+
reference_id?: number;
|
|
133
|
+
new_author?: {
|
|
134
|
+
name: string;
|
|
135
|
+
is_fictional?: boolean;
|
|
136
|
+
job?: string | null;
|
|
137
|
+
description?: string | null;
|
|
138
|
+
};
|
|
139
|
+
new_reference?: {
|
|
140
|
+
name: string;
|
|
141
|
+
primary_type: string;
|
|
142
|
+
original_language?: string;
|
|
143
|
+
description?: string | null;
|
|
144
|
+
release_date?: string | null;
|
|
145
|
+
};
|
|
146
|
+
tags?: number[];
|
|
147
|
+
}
|
|
148
|
+
export interface UpdateQuoteData {
|
|
149
|
+
name?: string;
|
|
150
|
+
language?: string;
|
|
151
|
+
author_id?: number | null;
|
|
152
|
+
reference_id?: number | null;
|
|
153
|
+
}
|
|
154
|
+
export interface CreateAuthorData {
|
|
155
|
+
name: string;
|
|
156
|
+
is_fictional?: boolean;
|
|
157
|
+
job?: string | null;
|
|
158
|
+
description?: string | null;
|
|
159
|
+
birth_date?: string | null;
|
|
160
|
+
birth_location?: string | null;
|
|
161
|
+
death_date?: string | null;
|
|
162
|
+
death_location?: string | null;
|
|
163
|
+
image_url?: string | null;
|
|
164
|
+
socials?: Record<string, string> | null;
|
|
165
|
+
}
|
|
166
|
+
export interface UpdateAuthorData {
|
|
167
|
+
name?: string;
|
|
168
|
+
is_fictional?: boolean;
|
|
169
|
+
job?: string | null;
|
|
170
|
+
description?: string | null;
|
|
171
|
+
birth_date?: string | null;
|
|
172
|
+
birth_location?: string | null;
|
|
173
|
+
death_date?: string | null;
|
|
174
|
+
death_location?: string | null;
|
|
175
|
+
image_url?: string | null;
|
|
176
|
+
socials?: Record<string, string> | null;
|
|
177
|
+
}
|
|
178
|
+
export interface CreateReferenceData {
|
|
179
|
+
name: string;
|
|
180
|
+
primary_type: string;
|
|
181
|
+
secondary_type?: string | null;
|
|
182
|
+
description?: string | null;
|
|
183
|
+
release_date?: string | null;
|
|
184
|
+
original_language?: string;
|
|
185
|
+
image_url?: string | null;
|
|
186
|
+
urls?: Record<string, string> | null;
|
|
187
|
+
}
|
|
188
|
+
export interface UpdateReferenceData {
|
|
189
|
+
name?: string;
|
|
190
|
+
primary_type?: string;
|
|
191
|
+
secondary_type?: string | null;
|
|
192
|
+
description?: string | null;
|
|
193
|
+
release_date?: string | null;
|
|
194
|
+
original_language?: string;
|
|
195
|
+
image_url?: string | null;
|
|
196
|
+
urls?: Record<string, string> | null;
|
|
197
|
+
}
|
|
198
|
+
export interface CreateCollectionData {
|
|
199
|
+
name: string;
|
|
200
|
+
description?: string | null;
|
|
201
|
+
is_public?: boolean;
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
|
+
// --- Zod schemas for response validation ---
|
|
3
|
+
export const paginationMetaSchema = z.object({
|
|
4
|
+
page: z.number(),
|
|
5
|
+
limit: z.number(),
|
|
6
|
+
total: z.number(),
|
|
7
|
+
totalPages: z.number(),
|
|
8
|
+
hasMore: z.boolean(),
|
|
9
|
+
});
|
|
10
|
+
export function apiResponseSchema(dataSchema) {
|
|
11
|
+
return z.object({
|
|
12
|
+
success: z.literal(true),
|
|
13
|
+
data: dataSchema.optional(),
|
|
14
|
+
message: z.string().optional(),
|
|
15
|
+
pagination: paginationMetaSchema.optional(),
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
export const errorResponseSchema = z.object({
|
|
19
|
+
success: z.literal(false),
|
|
20
|
+
message: z.string().optional(),
|
|
21
|
+
errors: z.array(z.string()).optional(),
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,8CAA8C;AAE9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;CACrB,CAAC,CAAA;AAEF,MAAM,UAAU,iBAAiB,CAAyB,UAAa;IACrE,OAAO,CAAC,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACxB,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;QAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,UAAU,EAAE,oBAAoB,CAAC,QAAQ,EAAE;KAC5C,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { VerbatimsClient } from '../src/index'
|
|
2
|
+
import type { ListQuotesParams, SearchParams } from '../src/types'
|
|
3
|
+
|
|
4
|
+
let _client: VerbatimsClient | null = null
|
|
5
|
+
|
|
6
|
+
export function useVerbatimsClient(): VerbatimsClient {
|
|
7
|
+
if (_client) return _client
|
|
8
|
+
|
|
9
|
+
const config = useRuntimeConfig()
|
|
10
|
+
const apiKey = config.verbatimsApiKey as string
|
|
11
|
+
const baseUrl = (config.public as Record<string, unknown>)?.verbatimsApiBaseUrl as string ?? '/api/v1'
|
|
12
|
+
|
|
13
|
+
_client = new VerbatimsClient(apiKey, { baseUrl })
|
|
14
|
+
return _client
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export async function useQuotes(filters?: ListQuotesParams) {
|
|
18
|
+
const client = useVerbatimsClient()
|
|
19
|
+
return client.quotes.list(filters)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export async function useSearchQuotes(params: SearchParams) {
|
|
23
|
+
const client = useVerbatimsClient()
|
|
24
|
+
return client.search.query(params)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (import.meta.hot) {
|
|
28
|
+
import.meta.hot.on('vite:beforeFullReload', () => {
|
|
29
|
+
_client = null
|
|
30
|
+
})
|
|
31
|
+
}
|
package/nuxt/module.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { defineNuxtModule, addImportsSources } from 'nuxt/kit'
|
|
2
|
+
import { fileURLToPath } from 'node:url'
|
|
3
|
+
|
|
4
|
+
export default defineNuxtModule({
|
|
5
|
+
meta: {
|
|
6
|
+
name: '@verbatims/sdk/nuxt',
|
|
7
|
+
configKey: 'verbatims',
|
|
8
|
+
},
|
|
9
|
+
defaults: {
|
|
10
|
+
apiKey: '',
|
|
11
|
+
apiBaseUrl: '/api/v1',
|
|
12
|
+
},
|
|
13
|
+
setup(options, nuxt) {
|
|
14
|
+
nuxt.options.runtimeConfig.verbatimsApiKey = options.apiKey
|
|
15
|
+
nuxt.options.runtimeConfig.public = nuxt.options.runtimeConfig.public || {}
|
|
16
|
+
;(nuxt.options.runtimeConfig.public as Record<string, unknown>).verbatimsApiBaseUrl = options.apiBaseUrl
|
|
17
|
+
|
|
18
|
+
const composablesPath = fileURLToPath(new URL('./composables.ts', import.meta.url))
|
|
19
|
+
|
|
20
|
+
addImportsSources([
|
|
21
|
+
{
|
|
22
|
+
from: composablesPath,
|
|
23
|
+
imports: [
|
|
24
|
+
'useVerbatimsClient',
|
|
25
|
+
'useQuotes',
|
|
26
|
+
'useSearchQuotes',
|
|
27
|
+
],
|
|
28
|
+
},
|
|
29
|
+
])
|
|
30
|
+
},
|
|
31
|
+
})
|
package/package.json
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@verbatims/sdk",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "TypeScript SDK for the Verbatims quotes API",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"import": "./src/index.ts",
|
|
9
|
+
"types": "./src/index.ts"
|
|
10
|
+
},
|
|
11
|
+
"./nuxt": {
|
|
12
|
+
"import": "./nuxt/module.ts",
|
|
13
|
+
"types": "./nuxt/module.ts"
|
|
14
|
+
},
|
|
15
|
+
"./nuxt/module": {
|
|
16
|
+
"import": "./nuxt/module.ts",
|
|
17
|
+
"types": "./nuxt/module.ts"
|
|
18
|
+
},
|
|
19
|
+
"./nuxt/composables": {
|
|
20
|
+
"import": "./nuxt/composables.ts",
|
|
21
|
+
"types": "./nuxt/composables.ts"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"src",
|
|
26
|
+
"nuxt",
|
|
27
|
+
"dist",
|
|
28
|
+
"README.md",
|
|
29
|
+
"LICENSE"
|
|
30
|
+
],
|
|
31
|
+
"scripts": {
|
|
32
|
+
"dev": "nuxt dev",
|
|
33
|
+
"build": "tsc",
|
|
34
|
+
"build:demo": "nuxt build",
|
|
35
|
+
"typecheck": "tsc --noEmit",
|
|
36
|
+
"test": "vitest run",
|
|
37
|
+
"test:watch": "vitest",
|
|
38
|
+
"preview": "nuxt preview",
|
|
39
|
+
"prepublishOnly": "tsc"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"zod": "^4.4.3"
|
|
43
|
+
},
|
|
44
|
+
"peerDependencies": {
|
|
45
|
+
"nuxt": "^4.0.0"
|
|
46
|
+
},
|
|
47
|
+
"peerDependenciesMeta": {
|
|
48
|
+
"nuxt": {
|
|
49
|
+
"optional": true
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"@iconify-json/lucide": "^1.2.118",
|
|
54
|
+
"@iconify-json/radix-icons": "^1.2.6",
|
|
55
|
+
"@iconify-json/tabler": "^1.2.37",
|
|
56
|
+
"@nuxtjs/google-fonts": "^3.2.0",
|
|
57
|
+
"@semantic-release/changelog": "^6.0.3",
|
|
58
|
+
"@semantic-release/git": "^10.0.1",
|
|
59
|
+
"@una-ui/nuxt": "^1.0.0-alpha.22",
|
|
60
|
+
"@unocss/nuxt": "^66.7.5",
|
|
61
|
+
"conventional-changelog-conventionalcommits": "^10.2.1",
|
|
62
|
+
"nuxt": "^4.5.0",
|
|
63
|
+
"semantic-release": "^24.2.9",
|
|
64
|
+
"shiki": "^4.3.1",
|
|
65
|
+
"typescript": "^5.9.0",
|
|
66
|
+
"vitest": "^4.1.10"
|
|
67
|
+
},
|
|
68
|
+
"repository": {
|
|
69
|
+
"type": "git",
|
|
70
|
+
"url": "git+https://github.com/rootasjey/verbatims-sdk.git"
|
|
71
|
+
},
|
|
72
|
+
"keywords": [
|
|
73
|
+
"verbatims",
|
|
74
|
+
"quotes",
|
|
75
|
+
"api",
|
|
76
|
+
"sdk"
|
|
77
|
+
],
|
|
78
|
+
"overrides": {
|
|
79
|
+
"@semantic-release/npm": "^13.1.5"
|
|
80
|
+
},
|
|
81
|
+
"publishConfig": {
|
|
82
|
+
"access": "public"
|
|
83
|
+
},
|
|
84
|
+
"license": "MIT"
|
|
85
|
+
}
|