proofio-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.
@@ -0,0 +1,217 @@
1
+ /**
2
+ * TypeScript Types für Proofio SDK
3
+ *
4
+ * Alle API Response Types basierend auf der tatsächlichen API-Struktur
5
+ */
6
+ /**
7
+ * Generic API Response
8
+ */
9
+ export interface Response<T> {
10
+ data: T;
11
+ status: number;
12
+ headers: Record<string, string>;
13
+ }
14
+ /**
15
+ * Request Options
16
+ */
17
+ export interface RequestOptions {
18
+ queryParams?: Record<string, string | number | boolean | undefined>;
19
+ headers?: Record<string, string>;
20
+ }
21
+ /**
22
+ * Pagination Options
23
+ */
24
+ export interface PaginationOptions {
25
+ limit?: number;
26
+ offset?: number;
27
+ }
28
+ /**
29
+ * Review Filter Options
30
+ */
31
+ export interface ReviewFilterOptions extends PaginationOptions {
32
+ minRating?: number;
33
+ maxRating?: number;
34
+ sentiment?: 'positive' | 'neutral' | 'negative';
35
+ language?: string;
36
+ sourceId?: string;
37
+ since?: string;
38
+ }
39
+ /**
40
+ * Review
41
+ */
42
+ export interface Review {
43
+ id: string;
44
+ projectId: string;
45
+ sourceId: string;
46
+ rating: number;
47
+ text?: string;
48
+ title?: string;
49
+ authorName?: string;
50
+ authorAvatar?: string;
51
+ language?: string;
52
+ date: string;
53
+ sentiment?: 'positive' | 'neutral' | 'negative';
54
+ verified?: boolean;
55
+ source?: {
56
+ name: string;
57
+ type: string;
58
+ };
59
+ }
60
+ /**
61
+ * Rating Distribution
62
+ */
63
+ export interface RatingDistribution {
64
+ 1: number;
65
+ 2: number;
66
+ 3: number;
67
+ 4: number;
68
+ 5: number;
69
+ }
70
+ /**
71
+ * Sentiment Distribution
72
+ */
73
+ export interface SentimentDistribution {
74
+ positive: number;
75
+ neutral: number;
76
+ negative: number;
77
+ }
78
+ /**
79
+ * Source Breakdown Item
80
+ */
81
+ export interface SourceBreakdownItem {
82
+ id: string;
83
+ total: number;
84
+ averageRating: number;
85
+ type?: string;
86
+ name?: string;
87
+ }
88
+ /**
89
+ * Trend Data Point
90
+ */
91
+ export interface TrendDataPoint {
92
+ date: string;
93
+ count: number;
94
+ avgRating: number;
95
+ }
96
+ /**
97
+ * Top Topic
98
+ */
99
+ export interface TopTopic {
100
+ word: string;
101
+ count: number;
102
+ }
103
+ /**
104
+ * Insight Summary (from aggregations endpoint)
105
+ */
106
+ export interface InsightSummary {
107
+ totalReviews: number;
108
+ averageRating: number;
109
+ ratingDistribution: RatingDistribution;
110
+ sentimentDistribution: SentimentDistribution;
111
+ sources: SourceBreakdownItem[];
112
+ aiSummary?: {
113
+ summary: string;
114
+ generatedAt: string;
115
+ reviewCount: number;
116
+ };
117
+ }
118
+ /**
119
+ * Insight Trends (from dashboard aggregations)
120
+ */
121
+ export interface InsightTrends {
122
+ totalReviews: number;
123
+ averageRating: number;
124
+ ratingDistribution: RatingDistribution;
125
+ sentimentDistribution: SentimentDistribution;
126
+ thisWeekCount: number;
127
+ thisWeekChange: number;
128
+ positivePercentage: number;
129
+ reviewVolume: {
130
+ last7Days: number;
131
+ last30Days: number;
132
+ last90Days: number;
133
+ total: number;
134
+ };
135
+ sourceBreakdown: Record<string, {
136
+ count: number;
137
+ avgRating: number;
138
+ sentiment: SentimentDistribution;
139
+ }>;
140
+ sourcesMap: Record<string, {
141
+ name: string;
142
+ type: string;
143
+ }>;
144
+ trendOverTime: TrendDataPoint[];
145
+ topTopics: TopTopic[];
146
+ keyTakeaways: string[];
147
+ recentChanges: Array<{
148
+ type: string;
149
+ message: string;
150
+ date: string;
151
+ }>;
152
+ lastSync: string | null;
153
+ }
154
+ /**
155
+ * Competitor Comparison
156
+ */
157
+ export interface CompetitorComparison {
158
+ summary: string;
159
+ strengths: string[];
160
+ weaknesses: string[];
161
+ opportunities: string[];
162
+ threats: string[];
163
+ keyDifferences: Array<{
164
+ aspect: string;
165
+ yourProduct: string;
166
+ competitor: string;
167
+ }>;
168
+ recommendations: string[];
169
+ generatedAt: string;
170
+ reviewCount: {
171
+ yourProduct: number;
172
+ competitor: number;
173
+ };
174
+ }
175
+ /**
176
+ * Widget Stats
177
+ */
178
+ export interface WidgetStats {
179
+ totalReviews: number;
180
+ averageRating: number;
181
+ platforms: number;
182
+ }
183
+ /**
184
+ * Widget Settings
185
+ */
186
+ export interface WidgetSettings {
187
+ language: 'de' | 'en';
188
+ theme: 'light' | 'dark';
189
+ showAiBadge: boolean;
190
+ showBranding: boolean;
191
+ }
192
+ /**
193
+ * Widget Data
194
+ */
195
+ export interface WidgetData {
196
+ stats: WidgetStats;
197
+ settings: WidgetSettings;
198
+ }
199
+ /**
200
+ * Widget Config Options
201
+ */
202
+ export interface WidgetConfigOptions {
203
+ language?: 'de' | 'en';
204
+ theme?: 'light' | 'dark';
205
+ showAiBadge?: boolean;
206
+ showBranding?: boolean;
207
+ }
208
+ /**
209
+ * API Error Response
210
+ */
211
+ export interface ApiError {
212
+ error: string;
213
+ message?: string;
214
+ code?: string;
215
+ requestId?: string;
216
+ }
217
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Proofio Error Handling
3
+ *
4
+ * Normalized error class for all SDK errors
5
+ */
6
+ export interface ProofioErrorData {
7
+ message: string;
8
+ status: number;
9
+ code: string;
10
+ requestId?: string;
11
+ retryAfter?: number;
12
+ rateLimitRemaining?: number;
13
+ rateLimitReset?: number;
14
+ }
15
+ export declare class ProofioError extends Error {
16
+ readonly status: number;
17
+ readonly code: string;
18
+ readonly requestId?: string;
19
+ readonly retryAfter?: number;
20
+ readonly rateLimitRemaining?: number;
21
+ readonly rateLimitReset?: number;
22
+ constructor(data: ProofioErrorData);
23
+ /**
24
+ * Check if error is retryable
25
+ */
26
+ isRetryable(): boolean;
27
+ /**
28
+ * Convert to JSON (sanitized, no sensitive data)
29
+ */
30
+ toJSON(): Record<string, any>;
31
+ }
32
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,qBAAa,YAAa,SAAQ,KAAK;IACrC,SAAgB,MAAM,EAAE,MAAM,CAAA;IAC9B,SAAgB,IAAI,EAAE,MAAM,CAAA;IAC5B,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClC,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnC,SAAgB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3C,SAAgB,cAAc,CAAC,EAAE,MAAM,CAAA;gBAE3B,IAAI,EAAE,gBAAgB;IAgBlC;;OAEG;IACH,WAAW,IAAI,OAAO;IAStB;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAY9B"}
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "proofio-sdk",
3
+ "version": "1.0.0",
4
+ "description": "Official Proofio JavaScript/TypeScript SDK",
5
+ "main": "dist/cjs/index.js",
6
+ "module": "dist/esm/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/esm/index.js",
11
+ "require": "./dist/cjs/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "README.md"
18
+ ],
19
+ "scripts": {
20
+ "build": "npm run build:esm && npm run build:cjs && npm run build:types",
21
+ "build:esm": "tsc -p tsconfig.esm.json",
22
+ "build:cjs": "tsc -p tsconfig.cjs.json",
23
+ "build:types": "tsc --emitDeclarationOnly --outDir dist",
24
+ "clean": "rimraf dist",
25
+ "prepublishOnly": "npm run clean && npm run build"
26
+ },
27
+ "keywords": [
28
+ "proofio",
29
+ "reviews",
30
+ "api",
31
+ "sdk",
32
+ "typescript",
33
+ "javascript"
34
+ ],
35
+ "author": "Proofio",
36
+ "license": "MIT",
37
+ "engines": {
38
+ "node": ">=18.0.0"
39
+ },
40
+ "devDependencies": {
41
+ "@types/node": "^20.0.0",
42
+ "rimraf": "^6.1.2",
43
+ "typescript": "^5.3.0"
44
+ }
45
+ }