@carddex/sdk 0.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,85 @@
1
+ import type { Card, CardWithRelations, CardListParams, CardPrice, Set, CardMeta, PaginatedResponse, CardDexClientOptions, WebhookSubscription } from './types.js';
2
+ export declare class CardDexClient {
3
+ private baseUrl;
4
+ private headers;
5
+ constructor(options?: CardDexClientOptions);
6
+ private fetch;
7
+ cards: {
8
+ list: (params?: CardListParams) => Promise<PaginatedResponse<Card>>;
9
+ get: (id: string, include?: CardListParams["include"]) => Promise<{
10
+ data: CardWithRelations;
11
+ }>;
12
+ random: () => Promise<{
13
+ data: CardWithRelations;
14
+ }>;
15
+ prices: (id: string, variantId?: string) => Promise<{
16
+ data: any[];
17
+ }>;
18
+ priceHistory: (id: string, options?: {
19
+ variantId?: string;
20
+ days?: number;
21
+ }) => Promise<{
22
+ data: any[];
23
+ }>;
24
+ rarities: () => Promise<{
25
+ data: string[];
26
+ }>;
27
+ };
28
+ sets: {
29
+ list: () => Promise<{
30
+ data: Set[];
31
+ }>;
32
+ get: (id: string) => Promise<{
33
+ data: Set;
34
+ }>;
35
+ cards: (id: string, params?: {
36
+ page?: number;
37
+ pageSize?: number;
38
+ }) => Promise<PaginatedResponse<Card>>;
39
+ };
40
+ prices: {
41
+ top: (limit?: number) => Promise<{
42
+ data: CardPrice[];
43
+ }>;
44
+ trends: (limit?: number) => Promise<{
45
+ data: CardPrice[];
46
+ }>;
47
+ };
48
+ meta: {
49
+ formats: () => Promise<{
50
+ data: {
51
+ id: string;
52
+ name: string;
53
+ }[];
54
+ }>;
55
+ top: (format: "standard" | "expanded" | "unlimited", limit?: number) => Promise<{
56
+ data: CardMeta[];
57
+ }>;
58
+ };
59
+ webhooks: {
60
+ subscribe: (url: string, events?: string[]) => Promise<{
61
+ data: WebhookSubscription;
62
+ }>;
63
+ list: () => Promise<{
64
+ data: WebhookSubscription[];
65
+ }>;
66
+ unsubscribe: (id: string) => Promise<{
67
+ data: {
68
+ message: string;
69
+ };
70
+ }>;
71
+ };
72
+ auth: {
73
+ register: (email: string, name?: string) => Promise<{
74
+ data: {
75
+ api_key: string;
76
+ tier: string;
77
+ rate_limit: number;
78
+ };
79
+ }>;
80
+ usage: () => Promise<{
81
+ data: any;
82
+ }>;
83
+ };
84
+ }
85
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAClD,GAAG,EAAE,QAAQ,EAAE,iBAAiB,EAAE,oBAAoB,EACtD,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAIpB,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAyB;gBAE5B,OAAO,GAAE,oBAAyB;YAQhC,KAAK;IAcnB,KAAK;wBACY,cAAc,KAAQ,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;kBAqB3D,MAAM,YAAY,cAAc,CAAC,SAAS,CAAC,KAAG,OAAO,CAAC;YAAE,IAAI,EAAE,iBAAiB,CAAA;SAAE,CAAC;sBAKhF,OAAO,CAAC;YAAE,IAAI,EAAE,iBAAiB,CAAA;SAAE,CAAC;qBAGnC,MAAM,cAAc,MAAM,KAAG,OAAO,CAAC;YAAE,IAAI,EAAE,GAAG,EAAE,CAAA;SAAE,CAAC;2BAK/C,MAAM,YAAW;YAAE,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,KAAQ,OAAO,CAAC;YAAE,IAAI,EAAE,GAAG,EAAE,CAAA;SAAE,CAAC;wBAO3F,OAAO,CAAC;YAAE,IAAI,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;MAEzC;IAIF,IAAI;oBACQ,OAAO,CAAC;YAAE,IAAI,EAAE,GAAG,EAAE,CAAA;SAAE,CAAC;kBAGxB,MAAM,KAAG,OAAO,CAAC;YAAE,IAAI,EAAE,GAAG,CAAA;SAAE,CAAC;oBAG7B,MAAM,WAAU;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,KAAQ,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;MAMxG;IAIF,MAAM;iCACe,OAAO,CAAC;YAAE,IAAI,EAAE,SAAS,EAAE,CAAA;SAAE,CAAC;oCAG3B,OAAO,CAAC;YAAE,IAAI,EAAE,SAAS,EAAE,CAAA;SAAE,CAAC;MAEpD;IAIF,IAAI;uBACW,OAAO,CAAC;YAAE,IAAI,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,EAAE,CAAA;SAAE,CAAC;sBAGhD,UAAU,GAAG,UAAU,GAAG,WAAW,qBAAe,OAAO,CAAC;YAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;SAAE,CAAC;MAE/F;IAIF,QAAQ;yBACW,MAAM,WAAU,MAAM,EAAE,KAAwB,OAAO,CAAC;YAAE,IAAI,EAAE,mBAAmB,CAAA;SAAE,CAAC;oBAM7F,OAAO,CAAC;YAAE,IAAI,EAAE,mBAAmB,EAAE,CAAA;SAAE,CAAC;0BAGhC,MAAM,KAAG,OAAO,CAAC;YAAE,IAAI,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC;MAEjE;IAIF,IAAI;0BACgB,MAAM,SAAS,MAAM,KAAG,OAAO,CAAC;YAAE,IAAI,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAC;gBAAC,UAAU,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC;qBAMvG,OAAO,CAAC;YAAE,IAAI,EAAE,GAAG,CAAA;SAAE,CAAC;MAEjC;CACH"}
package/dist/client.js ADDED
@@ -0,0 +1,119 @@
1
+ const DEFAULT_BASE_URL = 'https://carddex-api.emfurgalski.workers.dev';
2
+ export class CardDexClient {
3
+ constructor(options = {}) {
4
+ // ── Cards ─────────────────────────────────────────────────────────────────
5
+ this.cards = {
6
+ list: (params = {}) => {
7
+ const sp = new URLSearchParams();
8
+ if (params.q)
9
+ sp.set('q', params.q);
10
+ if (params.name)
11
+ sp.set('name', params.name);
12
+ if (params.set)
13
+ sp.set('set', params.set);
14
+ if (params.type)
15
+ sp.set('type', params.type);
16
+ if (params.supertype)
17
+ sp.set('supertype', params.supertype);
18
+ if (params.rarity)
19
+ sp.set('rarity', params.rarity);
20
+ if (params.artist)
21
+ sp.set('artist', params.artist);
22
+ if (params.hp_gte != null)
23
+ sp.set('hp_gte', String(params.hp_gte));
24
+ if (params.hp_lte != null)
25
+ sp.set('hp_lte', String(params.hp_lte));
26
+ if (params.variant_type)
27
+ sp.set('variant_type', params.variant_type);
28
+ if (params.edition)
29
+ sp.set('edition', params.edition);
30
+ if (params.sort)
31
+ sp.set('sort', params.sort);
32
+ if (params.order)
33
+ sp.set('order', params.order);
34
+ if (params.page != null)
35
+ sp.set('page', String(params.page));
36
+ if (params.pageSize != null)
37
+ sp.set('pageSize', String(params.pageSize));
38
+ if (params.include?.length)
39
+ sp.set('include', params.include.join(','));
40
+ return this.fetch(`/v1/cards?${sp}`);
41
+ },
42
+ get: (id, include) => {
43
+ const sp = include?.length ? `?include=${include.join(',')}` : '';
44
+ return this.fetch(`/v1/cards/${id}${sp}`);
45
+ },
46
+ random: () => this.fetch('/v1/cards/random'),
47
+ prices: (id, variantId) => {
48
+ const sp = variantId ? `?variant_id=${variantId}` : '';
49
+ return this.fetch(`/v1/cards/${id}/prices${sp}`);
50
+ },
51
+ priceHistory: (id, options = {}) => {
52
+ const sp = new URLSearchParams();
53
+ if (options.variantId)
54
+ sp.set('variant_id', options.variantId);
55
+ if (options.days)
56
+ sp.set('days', String(options.days));
57
+ return this.fetch(`/v1/cards/${id}/prices/history?${sp}`);
58
+ },
59
+ rarities: () => this.fetch('/v1/cards/rarities'),
60
+ };
61
+ // ── Sets ──────────────────────────────────────────────────────────────────
62
+ this.sets = {
63
+ list: () => this.fetch('/v1/sets'),
64
+ get: (id) => this.fetch(`/v1/sets/${id}`),
65
+ cards: (id, params = {}) => {
66
+ const sp = new URLSearchParams();
67
+ if (params.page)
68
+ sp.set('page', String(params.page));
69
+ if (params.pageSize)
70
+ sp.set('pageSize', String(params.pageSize));
71
+ return this.fetch(`/v1/sets/${id}/cards?${sp}`);
72
+ },
73
+ };
74
+ // ── Prices ────────────────────────────────────────────────────────────────
75
+ this.prices = {
76
+ top: (limit = 10) => this.fetch(`/v1/prices/top?limit=${limit}`),
77
+ trends: (limit = 10) => this.fetch(`/v1/prices/trends?limit=${limit}`),
78
+ };
79
+ // ── Meta ──────────────────────────────────────────────────────────────────
80
+ this.meta = {
81
+ formats: () => this.fetch('/v1/meta/formats'),
82
+ top: (format, limit = 20) => this.fetch(`/v1/meta/${format}/top?limit=${limit}`),
83
+ };
84
+ // ── Webhooks ──────────────────────────────────────────────────────────────
85
+ this.webhooks = {
86
+ subscribe: (url, events = ['prices.updated']) => this.fetch('/v1/webhooks/subscribe', {
87
+ method: 'POST',
88
+ body: JSON.stringify({ url, events }),
89
+ }),
90
+ list: () => this.fetch('/v1/webhooks'),
91
+ unsubscribe: (id) => this.fetch(`/v1/webhooks/${id}`, { method: 'DELETE' }),
92
+ };
93
+ // ── Auth ──────────────────────────────────────────────────────────────────
94
+ this.auth = {
95
+ register: (email, name) => this.fetch('/v1/auth/register', {
96
+ method: 'POST',
97
+ body: JSON.stringify({ email, name }),
98
+ }),
99
+ usage: () => this.fetch('/v1/auth/usage'),
100
+ };
101
+ this.baseUrl = (options.baseUrl ?? DEFAULT_BASE_URL).replace(/\/$/, '');
102
+ this.headers = {
103
+ 'Content-Type': 'application/json',
104
+ ...(options.apiKey ? { 'X-API-Key': options.apiKey } : {}),
105
+ };
106
+ }
107
+ async fetch(path, init) {
108
+ const res = await fetch(`${this.baseUrl}${path}`, {
109
+ ...init,
110
+ headers: { ...this.headers, ...(init?.headers ?? {}) },
111
+ });
112
+ const body = await res.json();
113
+ if (!res.ok) {
114
+ throw new Error(body?.error?.message ?? `CardDex API error ${res.status}`);
115
+ }
116
+ return body;
117
+ }
118
+ }
119
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { CardDexClient } from './client.js';
2
+ export type { Card, CardWithRelations, CardAttack, CardAbility, CardWeakness, CardResistance, CardImage, CardPrice, CardVariant, CardMeta, Set, PaginatedResponse, PaginationMeta, CardListParams, CardDexClientOptions, WebhookSubscription, } from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EACV,IAAI,EACJ,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACd,SAAS,EACT,SAAS,EACT,WAAW,EACX,QAAQ,EACR,GAAG,EACH,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { CardDexClient } from './client.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,161 @@
1
+ export interface Set {
2
+ id: string;
3
+ name: string;
4
+ series: string | null;
5
+ release_date: string | null;
6
+ total_cards: number | null;
7
+ logo_url: string | null;
8
+ symbol_url: string | null;
9
+ set_code: string | null;
10
+ created_at: string;
11
+ updated_at: string;
12
+ }
13
+ export interface Card {
14
+ id: string;
15
+ set_id: string;
16
+ name: string;
17
+ number: string;
18
+ supertype: string;
19
+ subtypes: string[] | null;
20
+ hp: number | null;
21
+ types: string[] | null;
22
+ rarity: string | null;
23
+ artist: string | null;
24
+ regulation_mark: string | null;
25
+ flavor_text: string | null;
26
+ rules: string[] | null;
27
+ evolves_from: string | null;
28
+ evolves_to: string[] | null;
29
+ retreat_cost: number;
30
+ legalities: Record<string, string> | null;
31
+ cardmarket_id: number | null;
32
+ tcgplayer_id: number | null;
33
+ version_code: string | null;
34
+ image_url: string | null;
35
+ created_at: string;
36
+ updated_at: string;
37
+ }
38
+ export interface CardAttack {
39
+ id: number;
40
+ card_id: string;
41
+ name: string;
42
+ cost: string[] | null;
43
+ damage: string | null;
44
+ text: string | null;
45
+ sort_order: number | null;
46
+ }
47
+ export interface CardAbility {
48
+ id: number;
49
+ card_id: string;
50
+ name: string;
51
+ text: string | null;
52
+ type: string | null;
53
+ }
54
+ export interface CardWeakness {
55
+ id: number;
56
+ card_id: string;
57
+ type: string;
58
+ value: string;
59
+ }
60
+ export interface CardResistance {
61
+ id: number;
62
+ card_id: string;
63
+ type: string;
64
+ value: string;
65
+ }
66
+ export interface CardImage {
67
+ id: number;
68
+ card_id: string;
69
+ language: string;
70
+ small_url: string | null;
71
+ large_url: string | null;
72
+ }
73
+ export interface CardPrice {
74
+ id: number;
75
+ card_id: string;
76
+ variant_id: string | null;
77
+ source: string;
78
+ currency: string;
79
+ trend_price: number | null;
80
+ avg_price: number | null;
81
+ low_price: number | null;
82
+ avg_1d: number | null;
83
+ avg_7d: number | null;
84
+ avg_30d: number | null;
85
+ price_change_1d: number | null;
86
+ price_change_7d: number | null;
87
+ price_change_30d: number | null;
88
+ recorded_at: string;
89
+ }
90
+ export interface CardVariant {
91
+ id: string;
92
+ card_id: string;
93
+ variant_type: string;
94
+ edition: string | null;
95
+ rarity: string | null;
96
+ image_url: string | null;
97
+ artist: string | null;
98
+ ball_type: string | null;
99
+ source: string;
100
+ created_at: string;
101
+ updated_at: string;
102
+ }
103
+ export interface CardMeta {
104
+ id: number;
105
+ card_id: string;
106
+ format: string;
107
+ tier: string | null;
108
+ usage_rate: number | null;
109
+ deck_appearances: number | null;
110
+ updated_at: string;
111
+ }
112
+ export interface CardWithRelations extends Card {
113
+ attacks?: CardAttack[];
114
+ abilities?: CardAbility[];
115
+ weaknesses?: CardWeakness[];
116
+ resistances?: CardResistance[];
117
+ images?: CardImage[];
118
+ prices?: CardPrice[];
119
+ variants?: CardVariant[];
120
+ meta?: CardMeta[];
121
+ }
122
+ export interface PaginationMeta {
123
+ total: number;
124
+ page: number;
125
+ pageSize: number;
126
+ totalPages: number;
127
+ }
128
+ export interface PaginatedResponse<T> {
129
+ data: T[];
130
+ meta: PaginationMeta;
131
+ }
132
+ export interface CardListParams {
133
+ q?: string;
134
+ name?: string;
135
+ set?: string;
136
+ type?: string;
137
+ supertype?: string;
138
+ rarity?: string;
139
+ artist?: string;
140
+ hp_gte?: number;
141
+ hp_lte?: number;
142
+ variant_type?: string;
143
+ edition?: string;
144
+ sort?: 'name' | 'number' | 'hp' | 'rarity' | 'set';
145
+ order?: 'asc' | 'desc';
146
+ page?: number;
147
+ pageSize?: number;
148
+ include?: Array<'attacks' | 'abilities' | 'weaknesses' | 'resistances' | 'images' | 'prices' | 'variants' | 'meta' | 'rulings' | 'synergies' | 'translations'>;
149
+ }
150
+ export interface CardDexClientOptions {
151
+ apiKey?: string;
152
+ baseUrl?: string;
153
+ }
154
+ export interface WebhookSubscription {
155
+ id: string;
156
+ url: string;
157
+ events: string[];
158
+ is_active: boolean;
159
+ created_at: string;
160
+ }
161
+ //# 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@carddex/sdk",
3
+ "version": "0.1.0",
4
+ "description": "TypeScript SDK for the CardDex Pokémon TCG API",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ }
13
+ },
14
+ "files": ["dist"],
15
+ "scripts": {
16
+ "build": "tsc",
17
+ "prepublishOnly": "npm run build"
18
+ },
19
+ "keywords": ["pokemon", "tcg", "api", "sdk"],
20
+ "license": "MIT",
21
+ "devDependencies": {
22
+ "typescript": "^5.7.0"
23
+ }
24
+ }