gdelt-ts-client 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 @@
1
+ {"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/types/query-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Type guards and response validation for the GDELT API client
3
+ */
4
+ import { IArticleListResponse, IImageCollageResponse, ITimelineResponse, ITimelineBreakdownResponse, IToneChartResponse, IWordCloudResponse, IGdeltApiResponse } from '../interfaces/api-responses';
5
+ /**
6
+ * Type guard to check if a response is a valid GDELT API response
7
+ */
8
+ export declare function isGdeltApiResponse(response: unknown): response is IGdeltApiResponse;
9
+ /**
10
+ * Type guard to check if a response has the expected object structure
11
+ */
12
+ export declare function isValidResponseObject(response: unknown): response is Record<string, unknown>;
13
+ /**
14
+ * Type guard to validate an article list response
15
+ */
16
+ export declare function isArticleListResponse(response: unknown): response is IArticleListResponse;
17
+ /**
18
+ * Type guard to validate an image collage response
19
+ */
20
+ export declare function isImageCollageResponse(response: unknown): response is IImageCollageResponse;
21
+ /**
22
+ * Type guard to validate a timeline response
23
+ */
24
+ export declare function isTimelineResponse(response: unknown): response is ITimelineResponse;
25
+ /**
26
+ * Type guard to validate a timeline breakdown response
27
+ */
28
+ export declare function isTimelineBreakdownResponse(response: unknown): response is ITimelineBreakdownResponse;
29
+ /**
30
+ * Type guard to validate a tone chart response
31
+ */
32
+ export declare function isToneChartResponse(response: unknown): response is IToneChartResponse;
33
+ /**
34
+ * Type guard to validate a word cloud response
35
+ */
36
+ export declare function isWordCloudResponse(response: unknown): response is IWordCloudResponse;
37
+ /**
38
+ * Type guard to check if response is a string error message
39
+ */
40
+ export declare function isStringErrorResponse(response: unknown): response is string;
41
+ /**
42
+ * Type guard to check if response is an error object
43
+ */
44
+ export declare function isErrorResponse(response: unknown): response is {
45
+ error: string;
46
+ code?: string;
47
+ };
48
+ /**
49
+ * Validates that a response has the minimum required properties
50
+ */
51
+ export declare function hasMinimumResponseStructure<T extends IGdeltApiResponse>(response: unknown, requiredFields: (keyof T)[]): response is T;
52
+ /**
53
+ * Validates array properties within a response
54
+ */
55
+ export declare function validateArrayProperty<T>(obj: unknown, propertyName: string, itemValidator?: (item: unknown) => item is T): obj is Record<string, T[]>;
56
+ /**
57
+ * Validates numeric properties within a response
58
+ */
59
+ export declare function validateNumericProperty(obj: unknown, propertyName: string, min?: number, max?: number): boolean;
60
+ /**
61
+ * Type guard that validates and ensures response has count property
62
+ */
63
+ export declare function ensureResponseWithCount<T extends IGdeltApiResponse>(response: T): response is T & {
64
+ count: number;
65
+ };
66
+ /**
67
+ * Type guard that validates and ensures response has articles array
68
+ */
69
+ export declare function ensureResponseWithArticles<T extends IGdeltApiResponse>(response: T): response is T & {
70
+ articles: unknown[];
71
+ };
72
+ /**
73
+ * Type guard that validates and ensures response has images array
74
+ */
75
+ export declare function ensureResponseWithImages<T extends IGdeltApiResponse>(response: T): response is T & {
76
+ images: unknown[];
77
+ };
78
+ /**
79
+ * Comprehensive response validator that checks multiple conditions
80
+ */
81
+ export interface ResponseValidationOptions {
82
+ requireStatus?: boolean;
83
+ requireCount?: boolean;
84
+ allowNull?: boolean;
85
+ strictArrayValidation?: boolean;
86
+ }
87
+ /**
88
+ * Main response validation function with configurable options
89
+ */
90
+ export declare function validateResponse<T extends IGdeltApiResponse>(response: unknown, typeGuard: (response: unknown) => response is T, options?: ResponseValidationOptions): response is T;
91
+ export declare const TypeGuards: {
92
+ readonly isGdeltApiResponse: typeof isGdeltApiResponse;
93
+ readonly isValidResponseObject: typeof isValidResponseObject;
94
+ readonly isArticleListResponse: typeof isArticleListResponse;
95
+ readonly isImageCollageResponse: typeof isImageCollageResponse;
96
+ readonly isTimelineResponse: typeof isTimelineResponse;
97
+ readonly isTimelineBreakdownResponse: typeof isTimelineBreakdownResponse;
98
+ readonly isToneChartResponse: typeof isToneChartResponse;
99
+ readonly isWordCloudResponse: typeof isWordCloudResponse;
100
+ readonly isStringErrorResponse: typeof isStringErrorResponse;
101
+ readonly isErrorResponse: typeof isErrorResponse;
102
+ readonly hasMinimumResponseStructure: typeof hasMinimumResponseStructure;
103
+ readonly validateArrayProperty: typeof validateArrayProperty;
104
+ readonly validateNumericProperty: typeof validateNumericProperty;
105
+ readonly ensureResponseWithCount: typeof ensureResponseWithCount;
106
+ readonly ensureResponseWithArticles: typeof ensureResponseWithArticles;
107
+ readonly ensureResponseWithImages: typeof ensureResponseWithImages;
108
+ readonly validateResponse: typeof validateResponse;
109
+ };
110
+ //# sourceMappingURL=type-guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-guards.d.ts","sourceRoot":"","sources":["../../src/types/type-guards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,271 @@
1
+ "use strict";
2
+ /**
3
+ * Type guards and response validation for the GDELT API client
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TypeGuards = void 0;
7
+ exports.isGdeltApiResponse = isGdeltApiResponse;
8
+ exports.isValidResponseObject = isValidResponseObject;
9
+ exports.isArticleListResponse = isArticleListResponse;
10
+ exports.isImageCollageResponse = isImageCollageResponse;
11
+ exports.isTimelineResponse = isTimelineResponse;
12
+ exports.isTimelineBreakdownResponse = isTimelineBreakdownResponse;
13
+ exports.isToneChartResponse = isToneChartResponse;
14
+ exports.isWordCloudResponse = isWordCloudResponse;
15
+ exports.isStringErrorResponse = isStringErrorResponse;
16
+ exports.isErrorResponse = isErrorResponse;
17
+ exports.hasMinimumResponseStructure = hasMinimumResponseStructure;
18
+ exports.validateArrayProperty = validateArrayProperty;
19
+ exports.validateNumericProperty = validateNumericProperty;
20
+ exports.ensureResponseWithCount = ensureResponseWithCount;
21
+ exports.ensureResponseWithArticles = ensureResponseWithArticles;
22
+ exports.ensureResponseWithImages = ensureResponseWithImages;
23
+ exports.validateResponse = validateResponse;
24
+ // ===== BASE RESPONSE TYPE GUARDS =====
25
+ /**
26
+ * Type guard to check if a response is a valid GDELT API response
27
+ */
28
+ function isGdeltApiResponse(response) {
29
+ return (typeof response === 'object' &&
30
+ response !== null &&
31
+ 'status' in response &&
32
+ typeof response.status === 'string');
33
+ }
34
+ /**
35
+ * Type guard to check if a response has the expected object structure
36
+ */
37
+ function isValidResponseObject(response) {
38
+ return typeof response === 'object' && response !== null;
39
+ }
40
+ // ===== SPECIFIC RESPONSE TYPE GUARDS =====
41
+ /**
42
+ * Type guard to validate an article list response
43
+ */
44
+ function isArticleListResponse(response) {
45
+ if (!isGdeltApiResponse(response)) {
46
+ return false;
47
+ }
48
+ const articleResponse = response;
49
+ return ('articles' in articleResponse &&
50
+ Array.isArray(articleResponse.articles) &&
51
+ // Validate that each article has required properties
52
+ articleResponse.articles.every(article => article === null || (typeof article === 'object' &&
53
+ article !== null &&
54
+ 'url' in article &&
55
+ typeof article.url === 'string')));
56
+ }
57
+ /**
58
+ * Type guard to validate an image collage response
59
+ */
60
+ function isImageCollageResponse(response) {
61
+ if (!isGdeltApiResponse(response)) {
62
+ return false;
63
+ }
64
+ const imageResponse = response;
65
+ return ('images' in imageResponse &&
66
+ Array.isArray(imageResponse.images) &&
67
+ // Validate that each image has required properties
68
+ imageResponse.images.every(image => image === null || (typeof image === 'object' &&
69
+ image !== null &&
70
+ 'url' in image &&
71
+ typeof image.url === 'string')));
72
+ }
73
+ /**
74
+ * Type guard to validate a timeline response
75
+ */
76
+ function isTimelineResponse(response) {
77
+ if (!isGdeltApiResponse(response)) {
78
+ return false;
79
+ }
80
+ const timelineResponse = response;
81
+ return ('timeline' in timelineResponse &&
82
+ Array.isArray(timelineResponse.timeline) &&
83
+ // Validate that each timeline point has required properties
84
+ timelineResponse.timeline.every(point => point === null || (typeof point === 'object' &&
85
+ point !== null &&
86
+ 'date' in point &&
87
+ 'value' in point &&
88
+ typeof point.date === 'string' &&
89
+ typeof point.value === 'number')));
90
+ }
91
+ /**
92
+ * Type guard to validate a timeline breakdown response
93
+ */
94
+ function isTimelineBreakdownResponse(response) {
95
+ if (!isGdeltApiResponse(response)) {
96
+ return false;
97
+ }
98
+ const breakdownResponse = response;
99
+ return ('data' in breakdownResponse &&
100
+ Array.isArray(breakdownResponse.data) &&
101
+ // Validate breakdown data structure
102
+ breakdownResponse.data.every(item => item === null || (typeof item === 'object' &&
103
+ item !== null &&
104
+ 'date' in item &&
105
+ typeof item.date === 'string')));
106
+ }
107
+ /**
108
+ * Type guard to validate a tone chart response
109
+ */
110
+ function isToneChartResponse(response) {
111
+ if (!isGdeltApiResponse(response)) {
112
+ return false;
113
+ }
114
+ const toneResponse = response;
115
+ return ('tonechart' in toneResponse &&
116
+ Array.isArray(toneResponse.tonechart) &&
117
+ // Validate that each tone chart entry has required properties
118
+ toneResponse.tonechart.every(entry => entry === null || (typeof entry === 'object' &&
119
+ entry !== null &&
120
+ 'bin' in entry &&
121
+ 'count' in entry &&
122
+ typeof entry.bin === 'number' &&
123
+ typeof entry.count === 'number')));
124
+ }
125
+ /**
126
+ * Type guard to validate a word cloud response
127
+ */
128
+ function isWordCloudResponse(response) {
129
+ if (!isGdeltApiResponse(response)) {
130
+ return false;
131
+ }
132
+ const wordCloudResponse = response;
133
+ return ('words' in wordCloudResponse &&
134
+ Array.isArray(wordCloudResponse.words) &&
135
+ // Validate that each word entry has required properties
136
+ wordCloudResponse.words.every(word => word === null || (typeof word === 'object' &&
137
+ word !== null &&
138
+ 'word' in word &&
139
+ 'count' in word &&
140
+ typeof word.word === 'string' &&
141
+ typeof word.count === 'number')));
142
+ }
143
+ // ===== ENHANCED ERROR TYPE GUARDS =====
144
+ /**
145
+ * Type guard to check if response is a string error message
146
+ */
147
+ function isStringErrorResponse(response) {
148
+ return typeof response === 'string';
149
+ }
150
+ /**
151
+ * Type guard to check if response is an error object
152
+ */
153
+ function isErrorResponse(response) {
154
+ return (typeof response === 'object' &&
155
+ response !== null &&
156
+ 'error' in response &&
157
+ typeof response.error === 'string');
158
+ }
159
+ // ===== VALIDATION HELPER FUNCTIONS =====
160
+ /**
161
+ * Validates that a response has the minimum required properties
162
+ */
163
+ function hasMinimumResponseStructure(response, requiredFields) {
164
+ if (!isGdeltApiResponse(response)) {
165
+ return false;
166
+ }
167
+ return requiredFields.every(field => field in response);
168
+ }
169
+ /**
170
+ * Validates array properties within a response
171
+ */
172
+ function validateArrayProperty(obj, propertyName, itemValidator) {
173
+ if (!isValidResponseObject(obj) || !(propertyName in obj)) {
174
+ return false;
175
+ }
176
+ const property = (obj)[propertyName];
177
+ if (!Array.isArray(property)) {
178
+ return false;
179
+ }
180
+ if (itemValidator) {
181
+ return property.every(itemValidator);
182
+ }
183
+ return true;
184
+ }
185
+ /**
186
+ * Validates numeric properties within a response
187
+ */
188
+ function validateNumericProperty(obj, propertyName, min, max) {
189
+ if (!isValidResponseObject(obj) || !(propertyName in obj)) {
190
+ return false;
191
+ }
192
+ const property = (obj)[propertyName];
193
+ if (typeof property !== 'number' || !Number.isFinite(property)) {
194
+ return false;
195
+ }
196
+ if (min !== undefined && property < min) {
197
+ return false;
198
+ }
199
+ if (max !== undefined && property > max) {
200
+ return false;
201
+ }
202
+ return true;
203
+ }
204
+ // ===== RESPONSE TRANSFORMATION TYPE GUARDS =====
205
+ /**
206
+ * Type guard that validates and ensures response has count property
207
+ */
208
+ function ensureResponseWithCount(response) {
209
+ if ('count' in response && typeof response.count === 'number') {
210
+ return true;
211
+ }
212
+ return false;
213
+ }
214
+ /**
215
+ * Type guard that validates and ensures response has articles array
216
+ */
217
+ function ensureResponseWithArticles(response) {
218
+ return ('articles' in response &&
219
+ Array.isArray(response.articles));
220
+ }
221
+ /**
222
+ * Type guard that validates and ensures response has images array
223
+ */
224
+ function ensureResponseWithImages(response) {
225
+ return ('images' in response &&
226
+ Array.isArray(response.images));
227
+ }
228
+ /**
229
+ * Main response validation function with configurable options
230
+ */
231
+ function validateResponse(response, typeGuard, options = {}) {
232
+ const { requireStatus = true, requireCount = false } = options;
233
+ // Basic structure validation
234
+ if (!isValidResponseObject(response)) {
235
+ return false;
236
+ }
237
+ // Status validation
238
+ if (requireStatus && !('status' in response)) {
239
+ return false;
240
+ }
241
+ // Count validation
242
+ if (requireCount && !ensureResponseWithCount(response)) {
243
+ return false;
244
+ }
245
+ // Apply the specific type guard
246
+ if (!typeGuard(response)) {
247
+ return false;
248
+ }
249
+ return true;
250
+ }
251
+ // ===== EXPORT ALL TYPE GUARDS =====
252
+ exports.TypeGuards = {
253
+ isGdeltApiResponse,
254
+ isValidResponseObject,
255
+ isArticleListResponse,
256
+ isImageCollageResponse,
257
+ isTimelineResponse,
258
+ isTimelineBreakdownResponse,
259
+ isToneChartResponse,
260
+ isWordCloudResponse,
261
+ isStringErrorResponse,
262
+ isErrorResponse,
263
+ hasMinimumResponseStructure,
264
+ validateArrayProperty,
265
+ validateNumericProperty,
266
+ ensureResponseWithCount,
267
+ ensureResponseWithArticles,
268
+ ensureResponseWithImages,
269
+ validateResponse
270
+ };
271
+ //# sourceMappingURL=type-guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-guards.js","sourceRoot":"","sources":["../../src/types/type-guards.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "gdelt-ts-client",
3
+ "version": "1.0.0",
4
+ "description": "TypeScript client for the GDELT API with full type support",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "clean": "rimraf dist",
13
+ "prebuild": "npm run clean",
14
+ "lint": "eslint src/**/*.ts",
15
+ "lint:fix": "eslint src/**/*.ts --fix",
16
+ "test": "jest",
17
+ "test:watch": "jest --watch",
18
+ "test:coverage": "jest --coverage",
19
+ "prepare": "npm run build"
20
+ },
21
+ "dependencies": {
22
+ "axios": "^1.10.0",
23
+ "gdelt-ts-client": "file:gdelt-ts-client-1.0.0.tgz"
24
+ },
25
+ "devDependencies": {
26
+ "@eslint/js": "^9.31.0",
27
+ "@types/jest": "^30.0.0",
28
+ "@typescript-eslint/eslint-plugin": "^8.37.0",
29
+ "@typescript-eslint/parser": "^8.37.0",
30
+ "eslint": "^9.31.0",
31
+ "globals": "^13.24.0",
32
+ "jest": "^30.0.4",
33
+ "rimraf": "^5.0.10",
34
+ "ts-jest": "^29.4.0",
35
+ "typescript": "^5.5.3"
36
+ },
37
+ "keywords": [
38
+ "gdelt",
39
+ "api",
40
+ "client",
41
+ "typescript",
42
+ "news",
43
+ "data",
44
+ "analytics"
45
+ ],
46
+ "publishConfig": {
47
+ "access": "public"
48
+ },
49
+ "engines": {
50
+ "node": ">=18.0.0"
51
+ },
52
+ "private": false,
53
+ "license": "MIT"
54
+ }