@trokky/client 2.0.3

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.
Files changed (86) hide show
  1. package/README.md +833 -0
  2. package/dist/cache/manager.d.ts +47 -0
  3. package/dist/cache/manager.d.ts.map +1 -0
  4. package/dist/cache/manager.js +100 -0
  5. package/dist/cache/manager.js.map +1 -0
  6. package/dist/cli/index.d.ts +7 -0
  7. package/dist/cli/index.d.ts.map +1 -0
  8. package/dist/cli/index.js +159 -0
  9. package/dist/cli/index.js.map +1 -0
  10. package/dist/client.d.ts +221 -0
  11. package/dist/client.d.ts.map +1 -0
  12. package/dist/client.js +310 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/document/client.d.ts +57 -0
  15. package/dist/document/client.d.ts.map +1 -0
  16. package/dist/document/client.js +176 -0
  17. package/dist/document/client.js.map +1 -0
  18. package/dist/generator/document-generator.d.ts +50 -0
  19. package/dist/generator/document-generator.d.ts.map +1 -0
  20. package/dist/generator/document-generator.js +329 -0
  21. package/dist/generator/document-generator.js.map +1 -0
  22. package/dist/generator/index.d.ts +121 -0
  23. package/dist/generator/index.d.ts.map +1 -0
  24. package/dist/generator/index.js +559 -0
  25. package/dist/generator/index.js.map +1 -0
  26. package/dist/http/client.d.ts +117 -0
  27. package/dist/http/client.d.ts.map +1 -0
  28. package/dist/http/client.js +411 -0
  29. package/dist/http/client.js.map +1 -0
  30. package/dist/index.d.ts +22 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +21 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/media/helper.d.ts +89 -0
  35. package/dist/media/helper.d.ts.map +1 -0
  36. package/dist/media/helper.js +197 -0
  37. package/dist/media/helper.js.map +1 -0
  38. package/dist/media/url-builder.d.ts +142 -0
  39. package/dist/media/url-builder.d.ts.map +1 -0
  40. package/dist/media/url-builder.js +280 -0
  41. package/dist/media/url-builder.js.map +1 -0
  42. package/dist/query/builder.d.ts +270 -0
  43. package/dist/query/builder.d.ts.map +1 -0
  44. package/dist/query/builder.js +731 -0
  45. package/dist/query/builder.js.map +1 -0
  46. package/dist/query/index.d.ts +6 -0
  47. package/dist/query/index.d.ts.map +1 -0
  48. package/dist/query/index.js +5 -0
  49. package/dist/query/index.js.map +1 -0
  50. package/dist/react/hooks.d.ts +42 -0
  51. package/dist/react/hooks.d.ts.map +1 -0
  52. package/dist/react/hooks.js +59 -0
  53. package/dist/react/hooks.js.map +1 -0
  54. package/dist/react/index.d.ts +6 -0
  55. package/dist/react/index.d.ts.map +1 -0
  56. package/dist/react/index.js +6 -0
  57. package/dist/react/index.js.map +1 -0
  58. package/dist/server/index.d.ts +9 -0
  59. package/dist/server/index.d.ts.map +1 -0
  60. package/dist/server/index.js +8 -0
  61. package/dist/server/index.js.map +1 -0
  62. package/dist/server/media-proxy.d.ts +102 -0
  63. package/dist/server/media-proxy.d.ts.map +1 -0
  64. package/dist/server/media-proxy.js +160 -0
  65. package/dist/server/media-proxy.js.map +1 -0
  66. package/dist/shortcodes/index.d.ts +11 -0
  67. package/dist/shortcodes/index.d.ts.map +1 -0
  68. package/dist/shortcodes/index.js +10 -0
  69. package/dist/shortcodes/index.js.map +1 -0
  70. package/dist/shortcodes/parser.d.ts +32 -0
  71. package/dist/shortcodes/parser.d.ts.map +1 -0
  72. package/dist/shortcodes/parser.js +88 -0
  73. package/dist/shortcodes/parser.js.map +1 -0
  74. package/dist/shortcodes/resolver.d.ts +57 -0
  75. package/dist/shortcodes/resolver.d.ts.map +1 -0
  76. package/dist/shortcodes/resolver.js +97 -0
  77. package/dist/shortcodes/resolver.js.map +1 -0
  78. package/dist/shortcodes/types.d.ts +17 -0
  79. package/dist/shortcodes/types.d.ts.map +1 -0
  80. package/dist/shortcodes/types.js +6 -0
  81. package/dist/shortcodes/types.js.map +1 -0
  82. package/dist/types/index.d.ts +134 -0
  83. package/dist/types/index.d.ts.map +1 -0
  84. package/dist/types/index.js +6 -0
  85. package/dist/types/index.js.map +1 -0
  86. package/package.json +101 -0
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Cache Manager
3
+ * Simple in-memory cache with TTL support
4
+ */
5
+ export declare class CacheManager {
6
+ private defaultMaxAge;
7
+ private cache;
8
+ private cleanupInterval;
9
+ constructor(defaultMaxAge?: number);
10
+ /**
11
+ * Get cached data
12
+ */
13
+ get<T>(key: string): T | null;
14
+ /**
15
+ * Set cached data with optional TTL
16
+ */
17
+ set<T>(key: string, data: T, maxAge?: number): void;
18
+ /**
19
+ * Delete cached data
20
+ */
21
+ delete(key: string): boolean;
22
+ /**
23
+ * Clear all cached data
24
+ */
25
+ clear(): void;
26
+ /**
27
+ * Check if key exists and is not expired
28
+ */
29
+ has(key: string): boolean;
30
+ /**
31
+ * Get cache size
32
+ */
33
+ size(): number;
34
+ /**
35
+ * Generate cache key for API requests
36
+ */
37
+ generateKey(endpoint: string, params?: any): string;
38
+ /**
39
+ * Remove expired entries
40
+ */
41
+ private cleanup;
42
+ /**
43
+ * Destroy cache manager and cleanup interval
44
+ */
45
+ destroy(): void;
46
+ }
47
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/cache/manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,qBAAa,YAAY;IAIX,OAAO,CAAC,aAAa;IAHjC,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,eAAe,CAA8B;gBAEjC,aAAa,GAAE,MAAe;IAOlD;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAa7B;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAUnD;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,MAAM;IAcnD;;OAEG;IACH,OAAO,CAAC,OAAO;IAUf;;OAEG;IACH,OAAO,IAAI,IAAI;CAOhB"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Cache Manager
3
+ * Simple in-memory cache with TTL support
4
+ */
5
+ export class CacheManager {
6
+ constructor(defaultMaxAge = 300000) {
7
+ this.defaultMaxAge = defaultMaxAge;
8
+ this.cache = new Map();
9
+ this.cleanupInterval = null;
10
+ // Start cleanup every minute
11
+ this.cleanupInterval = setInterval(() => {
12
+ this.cleanup();
13
+ }, 60000);
14
+ }
15
+ /**
16
+ * Get cached data
17
+ */
18
+ get(key) {
19
+ const entry = this.cache.get(key);
20
+ if (!entry)
21
+ return null;
22
+ // Check if expired
23
+ if (Date.now() - entry.timestamp > entry.maxAge) {
24
+ this.cache.delete(key);
25
+ return null;
26
+ }
27
+ return entry.data;
28
+ }
29
+ /**
30
+ * Set cached data with optional TTL
31
+ */
32
+ set(key, data, maxAge) {
33
+ const entry = {
34
+ data,
35
+ timestamp: Date.now(),
36
+ maxAge: maxAge || this.defaultMaxAge
37
+ };
38
+ this.cache.set(key, entry);
39
+ }
40
+ /**
41
+ * Delete cached data
42
+ */
43
+ delete(key) {
44
+ return this.cache.delete(key);
45
+ }
46
+ /**
47
+ * Clear all cached data
48
+ */
49
+ clear() {
50
+ this.cache.clear();
51
+ }
52
+ /**
53
+ * Check if key exists and is not expired
54
+ */
55
+ has(key) {
56
+ return this.get(key) !== null;
57
+ }
58
+ /**
59
+ * Get cache size
60
+ */
61
+ size() {
62
+ return this.cache.size;
63
+ }
64
+ /**
65
+ * Generate cache key for API requests
66
+ */
67
+ generateKey(endpoint, params) {
68
+ const base = endpoint.replace(/^\/+|\/+$/g, ''); // Remove leading/trailing slashes
69
+ if (!params)
70
+ return base;
71
+ // Sort params for consistent keys
72
+ const sortedParams = Object.keys(params)
73
+ .sort()
74
+ .map(key => `${key}=${JSON.stringify(params[key])}`)
75
+ .join('&');
76
+ return `${base}?${sortedParams}`;
77
+ }
78
+ /**
79
+ * Remove expired entries
80
+ */
81
+ cleanup() {
82
+ const now = Date.now();
83
+ for (const [key, entry] of this.cache.entries()) {
84
+ if (now - entry.timestamp > entry.maxAge) {
85
+ this.cache.delete(key);
86
+ }
87
+ }
88
+ }
89
+ /**
90
+ * Destroy cache manager and cleanup interval
91
+ */
92
+ destroy() {
93
+ if (this.cleanupInterval) {
94
+ clearInterval(this.cleanupInterval);
95
+ this.cleanupInterval = null;
96
+ }
97
+ this.clear();
98
+ }
99
+ }
100
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/cache/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Trokky Client CLI
4
+ * Command-line tool for generating types and test data
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;GAGG"}
@@ -0,0 +1,159 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Trokky Client CLI
4
+ * Command-line tool for generating types and test data
5
+ */
6
+ import { program } from 'commander';
7
+ import { TypeGenerator, generateTypesFromPath } from '../generator/index.js';
8
+ import { DocumentGenerator } from '../generator/document-generator.js';
9
+ // Types command
10
+ program
11
+ .command('generate-types')
12
+ .description('Generate TypeScript types from Trokky schemas')
13
+ .option('-p, --schema-path <path>', 'Local path to schemas directory (e.g., ../cms/schemas)')
14
+ .option('-u, --schema-url <url>', 'Schema URL to fetch from (alternative to --schema-path)')
15
+ .option('-o, --output-dir <dir>', 'Output directory for generated types', './src/types/trokky')
16
+ .option('-n, --namespace <name>', 'TypeScript namespace', 'Trokky')
17
+ .option('-e, --extension <ext>', 'File extension (ts|d.ts)', 'ts')
18
+ .option('--no-validation', 'Skip validation schema generation')
19
+ .option('-t, --auth-token <token>', 'Authentication token (for --schema-url)')
20
+ .option('--username <username>', 'Username for authentication (for --schema-url)')
21
+ .option('--password <password>', 'Password for authentication (for --schema-url)')
22
+ .action(async (options) => {
23
+ try {
24
+ // Prefer local schema path over URL
25
+ if (options.schemaPath) {
26
+ console.log(`Reading schemas from: ${options.schemaPath}`);
27
+ await generateTypesFromPath({
28
+ schemaPath: options.schemaPath,
29
+ outputDir: options.outputDir,
30
+ namespace: options.namespace,
31
+ fileExtension: options.extension,
32
+ includeValidation: options.validation
33
+ });
34
+ }
35
+ else if (options.schemaUrl) {
36
+ console.log(`Fetching schemas from: ${options.schemaUrl}`);
37
+ const generatorOptions = {
38
+ schemaUrl: options.schemaUrl,
39
+ outputDir: options.outputDir,
40
+ namespace: options.namespace,
41
+ fileExtension: options.extension,
42
+ includeValidation: options.validation,
43
+ authToken: options.authToken,
44
+ username: options.username,
45
+ password: options.password
46
+ };
47
+ const generator = new TypeGenerator(generatorOptions);
48
+ await generator.generateFromUrl();
49
+ }
50
+ else {
51
+ console.error('Error: Please provide either --schema-path or --schema-url');
52
+ console.log('\nExamples:');
53
+ console.log(' npx trokky-client generate-types --schema-path ../cms/schemas -o ./src/types/cms');
54
+ console.log(' npx trokky-client generate-types --schema-url http://localhost:3000/api/collections -o ./src/types/cms');
55
+ process.exit(1);
56
+ }
57
+ console.log('TypeScript types generated successfully!');
58
+ console.log(`Output: ${options.outputDir}`);
59
+ }
60
+ catch (error) {
61
+ console.error('Failed to generate types:', error);
62
+ process.exit(1);
63
+ }
64
+ });
65
+ // Documents command
66
+ program
67
+ .command('generate-documents')
68
+ .description('Generate test documents with faker.js')
69
+ .option('-u, --schema-url <url>', 'Schema URL to fetch from')
70
+ .option('-o, --output-dir <dir>', 'Output directory for generated documents', './generated')
71
+ .option('-c, --count <number>', 'Number of documents per schema', '10')
72
+ .option('-l, --locale <locale>', 'Faker locale', 'en')
73
+ .option('-s, --seed <number>', 'Random seed for consistent generation')
74
+ .option('-f, --format <format>', 'Output format (json|typescript|both)', 'json')
75
+ .option('--no-references', 'Skip reference field generation')
76
+ .action(async (options) => {
77
+ try {
78
+ const generatorOptions = {
79
+ schemaUrl: options.schemaUrl,
80
+ outputDir: options.outputDir,
81
+ count: parseInt(options.count),
82
+ locale: options.locale,
83
+ seed: options.seed ? parseInt(options.seed) : undefined,
84
+ format: options.format,
85
+ generateReferences: options.references
86
+ };
87
+ const generator = new DocumentGenerator(generatorOptions);
88
+ const documents = await generator.generateFromUrl();
89
+ console.log('✅ Test documents generated successfully!');
90
+ console.log(`📊 Generated collections:`);
91
+ for (const [collection, docs] of Object.entries(documents)) {
92
+ console.log(` • ${collection}: ${docs.length} documents`);
93
+ }
94
+ }
95
+ catch (error) {
96
+ console.error('❌ Failed to generate documents:', error);
97
+ process.exit(1);
98
+ }
99
+ });
100
+ // Combined command
101
+ program
102
+ .command('generate-all')
103
+ .description('Generate both types and test documents')
104
+ .option('-u, --schema-url <url>', 'Schema URL to fetch from')
105
+ .option('--types-dir <dir>', 'Types output directory', './src/types/trokky')
106
+ .option('--docs-dir <dir>', 'Documents output directory', './generated')
107
+ .option('-c, --count <number>', 'Number of documents per schema', '10')
108
+ .option('-l, --locale <locale>', 'Faker locale', 'en')
109
+ .option('-s, --seed <number>', 'Random seed for consistent generation')
110
+ .action(async (options) => {
111
+ try {
112
+ console.log('🚀 Generating TypeScript types...');
113
+ // Generate types
114
+ const typeGenerator = new TypeGenerator({
115
+ schemaUrl: options.schemaUrl,
116
+ outputDir: options.typesDir,
117
+ namespace: 'Trokky',
118
+ fileExtension: 'ts',
119
+ includeValidation: true
120
+ });
121
+ await typeGenerator.generateFromUrl();
122
+ console.log('✅ Types generated!');
123
+ console.log('🚀 Generating test documents...');
124
+ // Generate documents
125
+ const docGenerator = new DocumentGenerator({
126
+ schemaUrl: options.schemaUrl,
127
+ outputDir: options.docsDir,
128
+ count: parseInt(options.count),
129
+ locale: options.locale,
130
+ seed: options.seed ? parseInt(options.seed) : undefined,
131
+ format: 'both',
132
+ generateReferences: true
133
+ });
134
+ const documents = await docGenerator.generateFromUrl();
135
+ console.log('✅ Everything generated successfully!');
136
+ console.log('\n📋 Summary:');
137
+ console.log(` 📁 Types: ${options.typesDir}`);
138
+ console.log(` 📁 Documents: ${options.docsDir}`);
139
+ console.log(` 📊 Collections: ${Object.keys(documents).length}`);
140
+ for (const [collection, docs] of Object.entries(documents)) {
141
+ console.log(` • ${collection}: ${docs.length} documents`);
142
+ }
143
+ }
144
+ catch (error) {
145
+ console.error('❌ Failed to generate:', error);
146
+ process.exit(1);
147
+ }
148
+ });
149
+ // Version and help
150
+ program
151
+ .version('0.1.0')
152
+ .description('Trokky Client CLI - Generate types and test data from schemas');
153
+ // Parse arguments
154
+ program.parse();
155
+ // Show help if no command provided
156
+ if (!process.argv.slice(2).length) {
157
+ program.outputHelp();
158
+ }
159
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,221 @@
1
+ /**
2
+ * Main Trokky Client
3
+ * High-level client that orchestrates all SDK functionality
4
+ */
5
+ import { HttpClient } from './http/client.js';
6
+ import { CacheManager } from './cache/manager.js';
7
+ import { DocumentClient } from './document/client.js';
8
+ import { MediaHelper } from './media/helper.js';
9
+ import { ShortcodeResolver } from './shortcodes/resolver.js';
10
+ import { QueryBuilder, SingletonBuilder } from './query/builder.js';
11
+ import { ImageUrlBuilder } from './media/url-builder.js';
12
+ import type { ClientConfig, AuthConfig, AuthTokens, QueryOptions, DocumentResult, CollectionResult, MediaResult, BaseDocument, MediaFieldValue } from './types/index.js';
13
+ export declare class TrokkyClient {
14
+ readonly http: HttpClient;
15
+ readonly cache: CacheManager;
16
+ readonly documents: DocumentClient;
17
+ readonly media: MediaHelper;
18
+ readonly shortcodes: ShortcodeResolver;
19
+ constructor(config: ClientConfig);
20
+ /**
21
+ * Authenticate with username and password
22
+ */
23
+ authenticate(credentials: AuthConfig): Promise<AuthTokens>;
24
+ /**
25
+ * Refresh authentication token
26
+ */
27
+ refreshAuth(): Promise<AuthTokens>;
28
+ /**
29
+ * Logout and clear tokens
30
+ */
31
+ logout(): Promise<void>;
32
+ /**
33
+ * Check if client is authenticated
34
+ */
35
+ isAuthenticated(): boolean;
36
+ /**
37
+ * Get current authentication tokens
38
+ */
39
+ getTokens(): AuthTokens | null;
40
+ /**
41
+ * Set authentication tokens
42
+ */
43
+ setTokens(tokens: AuthTokens): void;
44
+ /**
45
+ * Set API token for authentication (alternative to JWT)
46
+ */
47
+ setApiToken(token: string): void;
48
+ /**
49
+ * Get current API token
50
+ */
51
+ getApiToken(): string | null;
52
+ /**
53
+ * Clear API token
54
+ */
55
+ clearApiToken(): void;
56
+ /**
57
+ * Get document by ID
58
+ */
59
+ getDocument<T extends BaseDocument>(type: string, id: string, useCache?: boolean): Promise<DocumentResult<T>>;
60
+ /**
61
+ * Query documents
62
+ */
63
+ queryDocuments<T extends BaseDocument>(type: string, options?: QueryOptions, useCache?: boolean): Promise<CollectionResult<T>>;
64
+ /**
65
+ * Create new document
66
+ */
67
+ createDocument<T extends BaseDocument>(type: string, data: Omit<T, '_id' | '_type' | '_createdAt' | '_updatedAt' | '_version'>): Promise<DocumentResult<T>>;
68
+ /**
69
+ * Update document
70
+ */
71
+ updateDocument<T extends BaseDocument>(type: string, id: string, data: Partial<Omit<T, '_id' | '_type' | '_createdAt' | '_updatedAt' | '_version'>>): Promise<DocumentResult<T>>;
72
+ /**
73
+ * Replace document
74
+ */
75
+ replaceDocument<T extends BaseDocument>(type: string, id: string, data: Omit<T, '_id' | '_type' | '_createdAt' | '_updatedAt' | '_version'>): Promise<DocumentResult<T>>;
76
+ /**
77
+ * Delete document
78
+ */
79
+ deleteDocument(type: string, id: string): Promise<void>;
80
+ /**
81
+ * Search documents
82
+ */
83
+ searchDocuments<T extends BaseDocument>(type: string, searchTerm: string, fields?: string[], options?: Omit<QueryOptions, 'filter'>): Promise<CollectionResult<T>>;
84
+ /**
85
+ * Count documents
86
+ */
87
+ countDocuments(type: string, filter?: Record<string, any>): Promise<number>;
88
+ /**
89
+ * Check if document exists
90
+ */
91
+ documentExists(type: string, id: string): Promise<boolean>;
92
+ /**
93
+ * Upload file
94
+ */
95
+ uploadFile(file: File | Buffer, filename?: string): Promise<MediaResult>;
96
+ /**
97
+ * Get media by ID
98
+ */
99
+ getMedia(id: string): Promise<MediaResult>;
100
+ /**
101
+ * Delete media
102
+ */
103
+ deleteMedia(id: string): Promise<void>;
104
+ /**
105
+ * List API tokens
106
+ */
107
+ listApiTokens(): Promise<any>;
108
+ /**
109
+ * Create API token
110
+ */
111
+ createApiToken(data: any): Promise<any>;
112
+ /**
113
+ * Get API token by ID
114
+ */
115
+ getApiTokenById(id: string): Promise<any>;
116
+ /**
117
+ * Update API token
118
+ */
119
+ updateApiToken(id: string, data: any): Promise<any>;
120
+ /**
121
+ * Delete API token
122
+ */
123
+ deleteApiToken(id: string): Promise<void>;
124
+ /**
125
+ * Resolve shortcodes in content to HTML
126
+ * Converts environment-agnostic shortcodes to actual HTML for display
127
+ */
128
+ resolveContent(content: string): string;
129
+ /**
130
+ * Check if content contains shortcodes
131
+ */
132
+ hasShortcodes(content: string): boolean;
133
+ /**
134
+ * Extract media dependencies from content
135
+ * Useful for preloading or understanding content requirements
136
+ */
137
+ extractContentMedia(content: string): import("./index.js").TrokkyImageShortcode[];
138
+ /**
139
+ * Preload all media in content for faster rendering
140
+ */
141
+ preloadContentMedia(content: string): Promise<void>;
142
+ /**
143
+ * Test API connection
144
+ */
145
+ ping(): Promise<{
146
+ status: string;
147
+ timestamp: string;
148
+ }>;
149
+ /**
150
+ * Get API health status
151
+ */
152
+ health(): Promise<{
153
+ status: string;
154
+ services: Record<string, string>;
155
+ }>;
156
+ /**
157
+ * Clear client cache
158
+ */
159
+ clearCache(): void;
160
+ /**
161
+ * Get cache statistics
162
+ */
163
+ getCacheStats(): {
164
+ size: number;
165
+ };
166
+ /**
167
+ * Destroy client and cleanup resources
168
+ */
169
+ destroy(): void;
170
+ /**
171
+ * Start a fluent query for a collection type
172
+ *
173
+ * @example
174
+ * ```typescript
175
+ * const articles = await client
176
+ * .from('article')
177
+ * .published()
178
+ * .expand('category')
179
+ * .sort({ _createdAt: 'desc' })
180
+ * .limit(10)
181
+ * .fetch()
182
+ * ```
183
+ */
184
+ from<T extends BaseDocument = BaseDocument>(type: string): QueryBuilder<T>;
185
+ /**
186
+ * Fetch a singleton document (e.g., homepage, settings)
187
+ *
188
+ * @example
189
+ * ```typescript
190
+ * const homepage = await client.singleton('homepage').fetch()
191
+ * const settings = await client.singleton('settings', 'site-settings').fetch()
192
+ * ```
193
+ */
194
+ singleton<T extends BaseDocument = BaseDocument>(type: string, id?: string): SingletonBuilder<T>;
195
+ /**
196
+ * Create an image URL builder for a media field
197
+ *
198
+ * @example
199
+ * ```typescript
200
+ * const url = client.imageUrl(article.featuredImage)
201
+ * .width(800)
202
+ * .height(400)
203
+ * .format('webp')
204
+ * .url()
205
+ * ```
206
+ */
207
+ imageUrl(source: MediaFieldValue | string | null | undefined): ImageUrlBuilder;
208
+ /**
209
+ * Create a reusable image URL builder factory
210
+ *
211
+ * @example
212
+ * ```typescript
213
+ * const urlFor = client.createImageUrlBuilder()
214
+ * const url = urlFor(article.image).width(800).url()
215
+ * ```
216
+ */
217
+ createImageUrlBuilder(options?: {
218
+ proxyPath?: string;
219
+ }): (source: MediaFieldValue | string | null | undefined) => ImageUrlBuilder;
220
+ }
221
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}