@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
package/dist/client.js ADDED
@@ -0,0 +1,310 @@
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, createImageUrlBuilder } from './media/url-builder.js';
12
+ export class TrokkyClient {
13
+ constructor(config) {
14
+ // Initialize core components
15
+ this.http = new HttpClient(config);
16
+ this.cache = new CacheManager(config.cacheMaxAge);
17
+ this.documents = new DocumentClient(this.http, this.cache);
18
+ this.media = new MediaHelper(this.http);
19
+ this.shortcodes = new ShortcodeResolver(this.http, this.media);
20
+ }
21
+ // Authentication methods (delegate to http client)
22
+ /**
23
+ * Authenticate with username and password
24
+ */
25
+ async authenticate(credentials) {
26
+ return this.http.authenticate(credentials);
27
+ }
28
+ /**
29
+ * Refresh authentication token
30
+ */
31
+ async refreshAuth() {
32
+ return this.http.refreshAuth();
33
+ }
34
+ /**
35
+ * Logout and clear tokens
36
+ */
37
+ async logout() {
38
+ await this.http.logout();
39
+ this.cache.clear(); // Clear cache on logout
40
+ }
41
+ /**
42
+ * Check if client is authenticated
43
+ */
44
+ isAuthenticated() {
45
+ return this.http.isAuthenticated();
46
+ }
47
+ /**
48
+ * Get current authentication tokens
49
+ */
50
+ getTokens() {
51
+ return this.http.getTokens();
52
+ }
53
+ /**
54
+ * Set authentication tokens
55
+ */
56
+ setTokens(tokens) {
57
+ this.http.setTokens(tokens);
58
+ }
59
+ /**
60
+ * Set API token for authentication (alternative to JWT)
61
+ */
62
+ setApiToken(token) {
63
+ this.http.setApiToken(token);
64
+ }
65
+ /**
66
+ * Get current API token
67
+ */
68
+ getApiToken() {
69
+ return this.http.getApiToken();
70
+ }
71
+ /**
72
+ * Clear API token
73
+ */
74
+ clearApiToken() {
75
+ this.http.clearApiToken();
76
+ }
77
+ // Document methods (delegate to document client)
78
+ /**
79
+ * Get document by ID
80
+ */
81
+ async getDocument(type, id, useCache = true) {
82
+ return this.documents.getById(type, id, useCache);
83
+ }
84
+ /**
85
+ * Query documents
86
+ */
87
+ async queryDocuments(type, options = {}, useCache = true) {
88
+ return this.documents.query(type, options, useCache);
89
+ }
90
+ /**
91
+ * Create new document
92
+ */
93
+ async createDocument(type, data) {
94
+ return this.documents.create(type, data);
95
+ }
96
+ /**
97
+ * Update document
98
+ */
99
+ async updateDocument(type, id, data) {
100
+ return this.documents.update(type, id, data);
101
+ }
102
+ /**
103
+ * Replace document
104
+ */
105
+ async replaceDocument(type, id, data) {
106
+ return this.documents.replace(type, id, data);
107
+ }
108
+ /**
109
+ * Delete document
110
+ */
111
+ async deleteDocument(type, id) {
112
+ return this.documents.delete(type, id);
113
+ }
114
+ /**
115
+ * Search documents
116
+ */
117
+ async searchDocuments(type, searchTerm, fields, options = {}) {
118
+ return this.documents.search(type, searchTerm, fields, options);
119
+ }
120
+ /**
121
+ * Count documents
122
+ */
123
+ async countDocuments(type, filter) {
124
+ return this.documents.count(type, filter);
125
+ }
126
+ /**
127
+ * Check if document exists
128
+ */
129
+ async documentExists(type, id) {
130
+ return this.documents.exists(type, id);
131
+ }
132
+ // Media methods (delegate to http client)
133
+ /**
134
+ * Upload file
135
+ */
136
+ async uploadFile(file, filename) {
137
+ return this.http.upload(file, filename);
138
+ }
139
+ /**
140
+ * Get media by ID
141
+ */
142
+ async getMedia(id) {
143
+ return this.http.get(`/media/${id}`);
144
+ }
145
+ /**
146
+ * Delete media
147
+ */
148
+ async deleteMedia(id) {
149
+ return this.http.delete(`/media/${id}`);
150
+ }
151
+ // API Token Management methods
152
+ /**
153
+ * List API tokens
154
+ */
155
+ async listApiTokens() {
156
+ return this.http.listApiTokens();
157
+ }
158
+ /**
159
+ * Create API token
160
+ */
161
+ async createApiToken(data) {
162
+ return this.http.createApiToken(data);
163
+ }
164
+ /**
165
+ * Get API token by ID
166
+ */
167
+ async getApiTokenById(id) {
168
+ return this.http.getApiTokenById(id);
169
+ }
170
+ /**
171
+ * Update API token
172
+ */
173
+ async updateApiToken(id, data) {
174
+ return this.http.updateApiToken(id, data);
175
+ }
176
+ /**
177
+ * Delete API token
178
+ */
179
+ async deleteApiToken(id) {
180
+ return this.http.deleteApiToken(id);
181
+ }
182
+ // Content methods with shortcode support
183
+ /**
184
+ * Resolve shortcodes in content to HTML
185
+ * Converts environment-agnostic shortcodes to actual HTML for display
186
+ */
187
+ resolveContent(content) {
188
+ return this.shortcodes.resolveContent(content);
189
+ }
190
+ /**
191
+ * Check if content contains shortcodes
192
+ */
193
+ hasShortcodes(content) {
194
+ return this.shortcodes.hasShortcodes(content);
195
+ }
196
+ /**
197
+ * Extract media dependencies from content
198
+ * Useful for preloading or understanding content requirements
199
+ */
200
+ extractContentMedia(content) {
201
+ return this.shortcodes.extractImageShortcodes(content);
202
+ }
203
+ /**
204
+ * Preload all media in content for faster rendering
205
+ */
206
+ async preloadContentMedia(content) {
207
+ return this.shortcodes.preloadContentMedia(content);
208
+ }
209
+ // Utility methods
210
+ /**
211
+ * Test API connection
212
+ */
213
+ async ping() {
214
+ return this.http.get('/ping');
215
+ }
216
+ /**
217
+ * Get API health status
218
+ */
219
+ async health() {
220
+ return this.http.get('/health');
221
+ }
222
+ /**
223
+ * Clear client cache
224
+ */
225
+ clearCache() {
226
+ this.cache.clear();
227
+ }
228
+ /**
229
+ * Get cache statistics
230
+ */
231
+ getCacheStats() {
232
+ return {
233
+ size: this.cache.size()
234
+ };
235
+ }
236
+ /**
237
+ * Destroy client and cleanup resources
238
+ */
239
+ destroy() {
240
+ this.cache.destroy();
241
+ }
242
+ // ============================================
243
+ // Fluent Query Builder API
244
+ // ============================================
245
+ /**
246
+ * Start a fluent query for a collection type
247
+ *
248
+ * @example
249
+ * ```typescript
250
+ * const articles = await client
251
+ * .from('article')
252
+ * .published()
253
+ * .expand('category')
254
+ * .sort({ _createdAt: 'desc' })
255
+ * .limit(10)
256
+ * .fetch()
257
+ * ```
258
+ */
259
+ from(type) {
260
+ return new QueryBuilder(this.http, this.cache, type);
261
+ }
262
+ /**
263
+ * Fetch a singleton document (e.g., homepage, settings)
264
+ *
265
+ * @example
266
+ * ```typescript
267
+ * const homepage = await client.singleton('homepage').fetch()
268
+ * const settings = await client.singleton('settings', 'site-settings').fetch()
269
+ * ```
270
+ */
271
+ singleton(type, id) {
272
+ return new SingletonBuilder(this.http, this.cache, type, id);
273
+ }
274
+ // ============================================
275
+ // Fluent Image URL Builder API
276
+ // ============================================
277
+ /**
278
+ * Create an image URL builder for a media field
279
+ *
280
+ * @example
281
+ * ```typescript
282
+ * const url = client.imageUrl(article.featuredImage)
283
+ * .width(800)
284
+ * .height(400)
285
+ * .format('webp')
286
+ * .url()
287
+ * ```
288
+ */
289
+ imageUrl(source) {
290
+ return new ImageUrlBuilder({
291
+ baseUrl: this.http.getBaseUrl()
292
+ }).image(source);
293
+ }
294
+ /**
295
+ * Create a reusable image URL builder factory
296
+ *
297
+ * @example
298
+ * ```typescript
299
+ * const urlFor = client.createImageUrlBuilder()
300
+ * const url = urlFor(article.image).width(800).url()
301
+ * ```
302
+ */
303
+ createImageUrlBuilder(options) {
304
+ return createImageUrlBuilder({
305
+ baseUrl: this.http.getBaseUrl(),
306
+ proxyPath: options?.proxyPath
307
+ });
308
+ }
309
+ }
310
+ //# 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,57 @@
1
+ /**
2
+ * Document Client
3
+ * High-level API for document operations
4
+ */
5
+ import type { QueryOptions, DocumentResult, CollectionResult, BaseDocument } from '../types/index.js';
6
+ import type { HttpClient } from '../http/client.js';
7
+ import type { CacheManager } from '../cache/manager.js';
8
+ export declare class DocumentClient {
9
+ private http;
10
+ private cache;
11
+ constructor(http: HttpClient, cache: CacheManager);
12
+ /**
13
+ * Get document by ID
14
+ */
15
+ getById<T extends BaseDocument>(type: string, id: string, useCache?: boolean): Promise<DocumentResult<T>>;
16
+ /**
17
+ * Query documents
18
+ */
19
+ query<T extends BaseDocument>(type: string, options?: QueryOptions, useCache?: boolean): Promise<CollectionResult<T>>;
20
+ /**
21
+ * Create new document
22
+ */
23
+ create<T extends BaseDocument>(type: string, data: Omit<T, '_id' | '_type' | '_createdAt' | '_updatedAt' | '_version'>): Promise<DocumentResult<T>>;
24
+ /**
25
+ * Update document
26
+ */
27
+ update<T extends BaseDocument>(type: string, id: string, data: Partial<Omit<T, '_id' | '_type' | '_createdAt' | '_updatedAt' | '_version'>>): Promise<DocumentResult<T>>;
28
+ /**
29
+ * Replace document
30
+ */
31
+ replace<T extends BaseDocument>(type: string, id: string, data: Omit<T, '_id' | '_type' | '_createdAt' | '_updatedAt' | '_version'>): Promise<DocumentResult<T>>;
32
+ /**
33
+ * Delete document
34
+ */
35
+ delete(type: string, id: string): Promise<void>;
36
+ /**
37
+ * Get all documents of a type (paginated)
38
+ */
39
+ getAll<T extends BaseDocument>(type: string, limit?: number, useCache?: boolean): Promise<CollectionResult<T>>;
40
+ /**
41
+ * Search documents
42
+ */
43
+ search<T extends BaseDocument>(type: string, searchTerm: string, fields?: string[], options?: Omit<QueryOptions, 'filter'>): Promise<CollectionResult<T>>;
44
+ /**
45
+ * Count documents
46
+ */
47
+ count(type: string, filter?: Record<string, any>): Promise<number>;
48
+ /**
49
+ * Check if document exists
50
+ */
51
+ exists(type: string, id: string): Promise<boolean>;
52
+ /**
53
+ * Invalidate cache for a document type
54
+ */
55
+ private invalidateTypeCache;
56
+ }
57
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/document/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,YAAY,EACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,qBAAa,cAAc;IAEvB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,KAAK;gBADL,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,YAAY;IAG7B;;OAEG;IACG,OAAO,CAAC,CAAC,SAAS,YAAY,EAClC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,QAAQ,UAAO,GACd,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAiB7B;;OAEG;IACG,KAAK,CAAC,CAAC,SAAS,YAAY,EAChC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,YAAiB,EAC1B,QAAQ,UAAO,GACd,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IA6C/B;;OAEG;IACG,MAAM,CAAC,CAAC,SAAS,YAAY,EACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC,GACxE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAc7B;;OAEG;IACG,MAAM,CAAC,CAAC,SAAS,YAAY,EACjC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC,CAAC,GACjF,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAa7B;;OAEG;IACG,OAAO,CAAC,CAAC,SAAS,YAAY,EAClC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC,GACxE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAkB7B;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrD;;OAEG;IACG,MAAM,CAAC,CAAC,SAAS,YAAY,EACjC,IAAI,EAAE,MAAM,EACZ,KAAK,SAAM,EACX,QAAQ,UAAO,GACd,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAI/B;;OAEG;IACG,MAAM,CAAC,CAAC,SAAS,YAAY,EACjC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,OAAO,GAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAM,GACzC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAY/B;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAYxE;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUxD;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAQ5B"}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Document Client
3
+ * High-level API for document operations
4
+ */
5
+ export class DocumentClient {
6
+ constructor(http, cache) {
7
+ this.http = http;
8
+ this.cache = cache;
9
+ }
10
+ /**
11
+ * Get document by ID
12
+ */
13
+ async getById(type, id, useCache = true) {
14
+ const cacheKey = this.cache.generateKey(`collections/${type}/${id}`);
15
+ if (useCache) {
16
+ const cached = this.cache.get(cacheKey);
17
+ if (cached)
18
+ return cached;
19
+ }
20
+ const result = await this.http.get(`/collections/${type}/${id}`);
21
+ if (useCache) {
22
+ this.cache.set(cacheKey, result);
23
+ }
24
+ return result;
25
+ }
26
+ /**
27
+ * Query documents
28
+ */
29
+ async query(type, options = {}, useCache = true) {
30
+ const cacheKey = this.cache.generateKey(`collections/${type}`, options);
31
+ if (useCache) {
32
+ const cached = this.cache.get(cacheKey);
33
+ if (cached)
34
+ return cached;
35
+ }
36
+ const queryParams = new URLSearchParams();
37
+ if (options.filter) {
38
+ queryParams.set('filter', JSON.stringify(options.filter));
39
+ }
40
+ if (options.sort) {
41
+ // Convert sort object to server expected format
42
+ if (typeof options.sort === 'object') {
43
+ Object.entries(options.sort).forEach(([field, direction]) => {
44
+ const dir = direction === -1 || direction === 'desc' ? 'desc' : 'asc';
45
+ queryParams.append('sort', `${field}.${dir}`);
46
+ });
47
+ }
48
+ else {
49
+ // If it's already a string, use as-is
50
+ queryParams.set('sort', options.sort.toString());
51
+ }
52
+ }
53
+ if (options.limit) {
54
+ queryParams.set('limit', options.limit.toString());
55
+ }
56
+ if (options.offset) {
57
+ queryParams.set('offset', options.offset.toString());
58
+ }
59
+ if (options.select) {
60
+ queryParams.set('select', options.select.join(','));
61
+ }
62
+ const endpoint = `/collections/${type}${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
63
+ const result = await this.http.get(endpoint);
64
+ if (useCache) {
65
+ this.cache.set(cacheKey, result);
66
+ }
67
+ return result;
68
+ }
69
+ /**
70
+ * Create new document
71
+ */
72
+ async create(type, data) {
73
+ const payload = {
74
+ ...data,
75
+ _type: type
76
+ };
77
+ const result = await this.http.post(`/collections/${type}`, payload);
78
+ // Invalidate type cache
79
+ this.invalidateTypeCache(type);
80
+ return result;
81
+ }
82
+ /**
83
+ * Update document
84
+ */
85
+ async update(type, id, data) {
86
+ const result = await this.http.patch(`/collections/${type}/${id}`, data);
87
+ // Update cache
88
+ const cacheKey = this.cache.generateKey(`collections/${type}/${id}`);
89
+ this.cache.set(cacheKey, result);
90
+ // Invalidate type cache
91
+ this.invalidateTypeCache(type);
92
+ return result;
93
+ }
94
+ /**
95
+ * Replace document
96
+ */
97
+ async replace(type, id, data) {
98
+ const payload = {
99
+ ...data,
100
+ _type: type
101
+ };
102
+ const result = await this.http.put(`/collections/${type}/${id}`, payload);
103
+ // Update cache
104
+ const cacheKey = this.cache.generateKey(`collections/${type}/${id}`);
105
+ this.cache.set(cacheKey, result);
106
+ // Invalidate type cache
107
+ this.invalidateTypeCache(type);
108
+ return result;
109
+ }
110
+ /**
111
+ * Delete document
112
+ */
113
+ async delete(type, id) {
114
+ await this.http.delete(`/collections/${type}/${id}`);
115
+ // Remove from cache
116
+ const cacheKey = this.cache.generateKey(`collections/${type}/${id}`);
117
+ this.cache.delete(cacheKey);
118
+ // Invalidate type cache
119
+ this.invalidateTypeCache(type);
120
+ }
121
+ /**
122
+ * Get all documents of a type (paginated)
123
+ */
124
+ async getAll(type, limit = 100, useCache = true) {
125
+ return this.query(type, { limit }, useCache);
126
+ }
127
+ /**
128
+ * Search documents
129
+ */
130
+ async search(type, searchTerm, fields, options = {}) {
131
+ const filter = {
132
+ $text: { $search: searchTerm }
133
+ };
134
+ if (fields && fields.length > 0) {
135
+ filter.$text.$searchFields = fields;
136
+ }
137
+ return this.query(type, { ...options, filter }, false); // Don't cache search results
138
+ }
139
+ /**
140
+ * Count documents
141
+ */
142
+ async count(type, filter) {
143
+ const queryParams = new URLSearchParams();
144
+ if (filter) {
145
+ queryParams.set('filter', JSON.stringify(filter));
146
+ }
147
+ const endpoint = `/collections/${type}/count${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
148
+ const result = await this.http.get(endpoint);
149
+ return result.count;
150
+ }
151
+ /**
152
+ * Check if document exists
153
+ */
154
+ async exists(type, id) {
155
+ try {
156
+ await this.http.get(`/collections/${type}/${id}/exists`);
157
+ return true;
158
+ }
159
+ catch (error) {
160
+ if (error.status === 404)
161
+ return false;
162
+ throw error;
163
+ }
164
+ }
165
+ /**
166
+ * Invalidate cache for a document type
167
+ */
168
+ invalidateTypeCache(type) {
169
+ // In a more sophisticated implementation, we'd track cache keys by type
170
+ // For now, we'll clear all cache entries that start with the type
171
+ const keysToDelete = [];
172
+ // This is a simplified approach - in production you'd want better cache key management
173
+ this.cache.clear(); // For now, just clear all cache
174
+ }
175
+ }
176
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/document/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Document Generator with Faker.js Integration
3
+ * Generates realistic test documents based on Trokky schemas
4
+ */
5
+ import type { DocumentGeneratorOptions, DocumentSchema, BaseDocument } from '../types/index.js';
6
+ export declare class DocumentGenerator {
7
+ private options;
8
+ private schemas;
9
+ private generatedDocuments;
10
+ constructor(options: DocumentGeneratorOptions);
11
+ /**
12
+ * Generate documents from schema URL
13
+ */
14
+ generateFromUrl(): Promise<Record<string, BaseDocument[]>>;
15
+ /**
16
+ * Generate documents from provided schemas
17
+ */
18
+ generateFromSchemas(schemas: DocumentSchema[]): Promise<Record<string, BaseDocument[]>>;
19
+ /**
20
+ * Generate documents for all schemas
21
+ */
22
+ private generateDocuments;
23
+ /**
24
+ * Generate a single document based on schema
25
+ */
26
+ private generateDocument;
27
+ /**
28
+ * Generate value for a specific field
29
+ */
30
+ private generateFieldValue;
31
+ private generateStringValue;
32
+ private generateSlugValue;
33
+ private generateNumberValue;
34
+ private generateArrayValue;
35
+ private generateObjectValue;
36
+ private generateReferenceValue;
37
+ private generateMediaValue;
38
+ private generateRichTextValue;
39
+ private fillReferences;
40
+ private generateId;
41
+ private fetchSchemas;
42
+ private writeToFiles;
43
+ private generateTypeScriptFile;
44
+ private capitalize;
45
+ }
46
+ /**
47
+ * Convenience function to generate documents
48
+ */
49
+ export declare function generateDocuments(options: DocumentGeneratorOptions): Promise<Record<string, BaseDocument[]>>;
50
+ //# sourceMappingURL=document-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-generator.d.ts","sourceRoot":"","sources":["../../src/generator/document-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsBH,OAAO,KAAK,EACV,wBAAwB,EACxB,cAAc,EAEd,YAAY,EACb,MAAM,mBAAmB,CAAA;AAE1B,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,kBAAkB,CAAqC;gBAEnD,OAAO,EAAE,wBAAwB;IAiB7C;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAKhE;;OAEG;IACG,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAI7F;;OAEG;YACW,iBAAiB;IAoC/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyD1B,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,qBAAqB;IAuB7B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,UAAU;YAIJ,YAAY;YAcZ,YAAY;IAuB1B,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,UAAU;CAGnB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAQlH"}