@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,88 @@
1
+ /**
2
+ * Shortcode Parser for Client-Side Usage
3
+ * Handles parsing and resolving shortcodes in client applications
4
+ */
5
+ /**
6
+ * Parse shortcode attributes from string
7
+ * Example: 'id="media-123" variant="thumbnail" alt="Alt text"'
8
+ */
9
+ export function parseShortcodeAttrs(attrString) {
10
+ const attrs = {};
11
+ // Match attribute="value" patterns
12
+ const attrRegex = /(\w+)="([^"]*)"/g;
13
+ let match;
14
+ while ((match = attrRegex.exec(attrString)) !== null) {
15
+ const [, key, value] = match;
16
+ attrs[key] = value;
17
+ }
18
+ return attrs;
19
+ }
20
+ /**
21
+ * Parse image shortcode to data object
22
+ */
23
+ export function parseImageShortcode(shortcode) {
24
+ const match = shortcode.match(/\[trokky-image\s+([^\]]+)\]/);
25
+ if (!match)
26
+ return null;
27
+ const attrs = parseShortcodeAttrs(match[1]);
28
+ if (!attrs.id)
29
+ return null;
30
+ return {
31
+ id: attrs.id,
32
+ variant: attrs.variant,
33
+ alt: attrs.alt,
34
+ title: attrs.title,
35
+ className: attrs.class || attrs.className,
36
+ width: attrs.width,
37
+ height: attrs.height
38
+ };
39
+ }
40
+ /**
41
+ * Convert shortcode to HTML image for display
42
+ * This resolves shortcodes to actual HTML for rendering
43
+ */
44
+ export function shortcodeToHtml(shortcode, mediaUrlResolver) {
45
+ const data = parseImageShortcode(shortcode);
46
+ if (!data)
47
+ return shortcode; // Return unchanged if not a valid shortcode
48
+ const src = mediaUrlResolver.getMediaUrl(data.id, data.variant);
49
+ // Build HTML attributes
50
+ const htmlAttrs = [
51
+ `src="${src}"`,
52
+ ...(data.alt ? [`alt="${data.alt}"`] : []),
53
+ ...(data.title ? [`title="${data.title}"`] : []),
54
+ ...(data.className ? [`class="${data.className}"`] : []),
55
+ ...(data.width ? [`width="${data.width}"`] : []),
56
+ ...(data.height ? [`height="${data.height}"`] : [])
57
+ ];
58
+ return `<img ${htmlAttrs.join(' ')}>`;
59
+ }
60
+ /**
61
+ * Convert all shortcodes in content to HTML for display
62
+ */
63
+ export function resolveShortcodes(content, mediaUrlResolver) {
64
+ return content.replace(/\[trokky-image\s+[^\]]+\]/g, (match) => {
65
+ return shortcodeToHtml(match, mediaUrlResolver);
66
+ });
67
+ }
68
+ /**
69
+ * Validate if a string contains Trokky shortcodes
70
+ */
71
+ export function hasShortcodes(content) {
72
+ return /\[trokky-image\s+[^\]]+\]/g.test(content);
73
+ }
74
+ /**
75
+ * Extract all image shortcodes from content
76
+ */
77
+ export function extractImageShortcodes(content) {
78
+ const shortcodes = [];
79
+ const matches = content.matchAll(/\[trokky-image\s+[^\]]+\]/g);
80
+ for (const match of matches) {
81
+ const data = parseImageShortcode(match[0]);
82
+ if (data) {
83
+ shortcodes.push(data);
84
+ }
85
+ }
86
+ return shortcodes;
87
+ }
88
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/shortcodes/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Shortcode Resolver for Client Applications
3
+ * High-level utilities for resolving shortcodes in client content
4
+ */
5
+ import type { HttpClient } from '../http/client.js';
6
+ import type { MediaHelper } from '../media/helper.js';
7
+ import type { MediaUrlResolver } from './types.js';
8
+ /**
9
+ * Create a media URL resolver from TrokkyClient's MediaHelper
10
+ */
11
+ export declare function createMediaUrlResolver(http: HttpClient, mediaHelper?: MediaHelper): MediaUrlResolver;
12
+ /**
13
+ * Shortcode Resolver class for convenient shortcode handling
14
+ */
15
+ export declare class ShortcodeResolver {
16
+ private http;
17
+ private mediaHelper?;
18
+ private mediaUrlResolver;
19
+ constructor(http: HttpClient, mediaHelper?: MediaHelper | undefined);
20
+ /**
21
+ * Resolve shortcodes in content to HTML
22
+ *
23
+ * @param content Content that may contain shortcodes
24
+ * @returns Content with shortcodes resolved to HTML
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const resolver = new ShortcodeResolver(httpClient);
29
+ * const htmlContent = resolver.resolveContent(rawContent);
30
+ * ```
31
+ */
32
+ resolveContent(content: string): string;
33
+ /**
34
+ * Check if content contains shortcodes
35
+ */
36
+ hasShortcodes(content: string): boolean;
37
+ /**
38
+ * Extract all image shortcodes from content
39
+ * Useful for preloading media or understanding content dependencies
40
+ */
41
+ extractImageShortcodes(content: string): import("./types.js").TrokkyImageShortcode[];
42
+ /**
43
+ * Get media URLs for all images in content
44
+ * Useful for preloading or prefetching
45
+ */
46
+ getContentMediaUrls(content: string): Promise<string[]>;
47
+ /**
48
+ * Preload all media in content
49
+ * Creates link preload tags for faster loading
50
+ */
51
+ preloadContentMedia(content: string): Promise<void>;
52
+ /**
53
+ * Get the underlying media URL resolver
54
+ */
55
+ getMediaUrlResolver(): MediaUrlResolver;
56
+ }
57
+ //# sourceMappingURL=resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/shortcodes/resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,UAAU,EAChB,WAAW,CAAC,EAAE,WAAW,GACxB,gBAAgB,CAYlB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,WAAW,CAAC;IAJtB,OAAO,CAAC,gBAAgB,CAAmB;gBAGjC,IAAI,EAAE,UAAU,EAChB,WAAW,CAAC,EAAE,WAAW,YAAA;IAKnC;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAQvC;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIvC;;;OAGG;IACH,sBAAsB,CAAC,OAAO,EAAE,MAAM;IAItC;;;OAGG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAY7D;;;OAGG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzD;;OAEG;IACH,mBAAmB,IAAI,gBAAgB;CAGxC"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Shortcode Resolver for Client Applications
3
+ * High-level utilities for resolving shortcodes in client content
4
+ */
5
+ import { resolveShortcodes, hasShortcodes, extractImageShortcodes } from './parser.js';
6
+ /**
7
+ * Create a media URL resolver from TrokkyClient's MediaHelper
8
+ */
9
+ export function createMediaUrlResolver(http, mediaHelper) {
10
+ return {
11
+ getMediaUrl: (mediaId, variant) => {
12
+ const baseUrl = http.getBaseUrl();
13
+ if (!variant || variant === 'original') {
14
+ return `${baseUrl}/media/${mediaId}/file`;
15
+ }
16
+ return `${baseUrl}/media/${mediaId}/variants/${variant}`;
17
+ }
18
+ };
19
+ }
20
+ /**
21
+ * Shortcode Resolver class for convenient shortcode handling
22
+ */
23
+ export class ShortcodeResolver {
24
+ constructor(http, mediaHelper) {
25
+ this.http = http;
26
+ this.mediaHelper = mediaHelper;
27
+ this.mediaUrlResolver = createMediaUrlResolver(http, mediaHelper);
28
+ }
29
+ /**
30
+ * Resolve shortcodes in content to HTML
31
+ *
32
+ * @param content Content that may contain shortcodes
33
+ * @returns Content with shortcodes resolved to HTML
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * const resolver = new ShortcodeResolver(httpClient);
38
+ * const htmlContent = resolver.resolveContent(rawContent);
39
+ * ```
40
+ */
41
+ resolveContent(content) {
42
+ if (!hasShortcodes(content)) {
43
+ return content; // Fast path if no shortcodes
44
+ }
45
+ return resolveShortcodes(content, this.mediaUrlResolver);
46
+ }
47
+ /**
48
+ * Check if content contains shortcodes
49
+ */
50
+ hasShortcodes(content) {
51
+ return hasShortcodes(content);
52
+ }
53
+ /**
54
+ * Extract all image shortcodes from content
55
+ * Useful for preloading media or understanding content dependencies
56
+ */
57
+ extractImageShortcodes(content) {
58
+ return extractImageShortcodes(content);
59
+ }
60
+ /**
61
+ * Get media URLs for all images in content
62
+ * Useful for preloading or prefetching
63
+ */
64
+ async getContentMediaUrls(content) {
65
+ const shortcodes = this.extractImageShortcodes(content);
66
+ const urls = [];
67
+ for (const shortcode of shortcodes) {
68
+ const url = this.mediaUrlResolver.getMediaUrl(shortcode.id, shortcode.variant);
69
+ urls.push(url);
70
+ }
71
+ return urls;
72
+ }
73
+ /**
74
+ * Preload all media in content
75
+ * Creates link preload tags for faster loading
76
+ */
77
+ async preloadContentMedia(content) {
78
+ if (typeof window === 'undefined' || typeof document === 'undefined') {
79
+ return; // Server-side, skip preloading
80
+ }
81
+ const urls = await this.getContentMediaUrls(content);
82
+ for (const url of urls) {
83
+ const link = document.createElement('link');
84
+ link.rel = 'preload';
85
+ link.as = 'image';
86
+ link.href = url;
87
+ document.head.appendChild(link);
88
+ }
89
+ }
90
+ /**
91
+ * Get the underlying media URL resolver
92
+ */
93
+ getMediaUrlResolver() {
94
+ return this.mediaUrlResolver;
95
+ }
96
+ }
97
+ //# sourceMappingURL=resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/shortcodes/resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAEvF;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAgB,EAChB,WAAyB;IAEzB,OAAO;QACL,WAAW,EAAE,CAAC,OAAe,EAAE,OAAgB,EAAE,EAAE;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAElC,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;gBACvC,OAAO,GAAG,OAAO,UAAU,OAAO,OAAO,CAAC;YAC5C,CAAC;YAED,OAAO,GAAG,OAAO,UAAU,OAAO,aAAa,OAAO,EAAE,CAAC;QAC3D,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAG5B,YACU,IAAgB,EAChB,WAAyB;QADzB,SAAI,GAAJ,IAAI,CAAY;QAChB,gBAAW,GAAX,WAAW,CAAc;QAEjC,IAAI,CAAC,gBAAgB,GAAG,sBAAsB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,OAAe;QAC5B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC,CAAC,6BAA6B;QAC/C,CAAC;QAED,OAAO,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAAe;QAC3B,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,OAAe;QACpC,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB,CAAC,OAAe;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,IAAI,GAAa,EAAE,CAAC;QAE1B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;YAC/E,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB,CAAC,OAAe;QACvC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACrE,OAAO,CAAC,+BAA+B;QACzC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAErD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;YACrB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC;YAClB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Shortcode Types for Client-Side Usage
3
+ * Shared types for shortcode handling between Studio and Client
4
+ */
5
+ export interface TrokkyImageShortcode {
6
+ id: string;
7
+ variant?: string;
8
+ alt?: string;
9
+ title?: string;
10
+ className?: string;
11
+ width?: string;
12
+ height?: string;
13
+ }
14
+ export interface MediaUrlResolver {
15
+ getMediaUrl: (mediaId: string, variant?: string) => string;
16
+ }
17
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shortcodes/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5D"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Shortcode Types for Client-Side Usage
3
+ * Shared types for shortcode handling between Studio and Client
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shortcodes/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Client SDK Types
3
+ * Core types for the TypeScript-native Trokky client
4
+ */
5
+ import type { DocumentResult } from '@trokky/trokky/types';
6
+ export type { BaseDocument, DocumentResult, CollectionResult, DocumentWithContent, QueryOptions, ListOptions, MediaAsset, MediaFieldValue, MediaAssetReference, MediaType } from '@trokky/trokky/types';
7
+ export interface ClientConfig {
8
+ baseUrl: string;
9
+ apiVersion?: string;
10
+ token?: string;
11
+ refreshToken?: string;
12
+ apiToken?: string;
13
+ timeout?: number;
14
+ retries?: number;
15
+ enableCache?: boolean;
16
+ cacheMaxAge?: number;
17
+ enableRealtime?: boolean;
18
+ websocketUrl?: string;
19
+ debug?: boolean;
20
+ }
21
+ export interface AuthConfig {
22
+ username: string;
23
+ password: string;
24
+ }
25
+ export interface ApiTokenAuth {
26
+ token: string;
27
+ }
28
+ export interface AuthTokens {
29
+ accessToken: string;
30
+ refreshToken?: string;
31
+ expiresAt?: number;
32
+ }
33
+ export interface AppToken {
34
+ id: string;
35
+ name: string;
36
+ description?: string;
37
+ permissions: string[];
38
+ createdBy: string;
39
+ createdAt: string;
40
+ lastUsed?: string;
41
+ isActive: boolean;
42
+ }
43
+ export interface CreateAppTokenData {
44
+ name: string;
45
+ description?: string;
46
+ permissions: string[];
47
+ expiresAt?: string;
48
+ }
49
+ export interface AppTokenResult extends AppToken {
50
+ token?: string;
51
+ }
52
+ export interface RequestOptions {
53
+ headers?: Record<string, string>;
54
+ timeout?: number;
55
+ signal?: AbortSignal;
56
+ }
57
+ export interface MediaResult {
58
+ _id: string;
59
+ filename: string;
60
+ mimeType: string;
61
+ size: number;
62
+ url: string;
63
+ uploadedAt: string;
64
+ metadata?: Record<string, any>;
65
+ }
66
+ export interface ValidationError {
67
+ field: string;
68
+ message: string;
69
+ code: string;
70
+ }
71
+ export interface ApiError {
72
+ message: string;
73
+ code: string;
74
+ status: number;
75
+ details?: any;
76
+ validation?: ValidationError[];
77
+ }
78
+ export interface CacheEntry<T = any> {
79
+ data: T;
80
+ timestamp: number;
81
+ maxAge: number;
82
+ }
83
+ export interface TypeGeneratorOptions {
84
+ outputDir: string;
85
+ schemaUrl: string;
86
+ namespace?: string;
87
+ fileExtension?: 'ts' | 'd.ts';
88
+ includeValidation?: boolean;
89
+ authToken?: string;
90
+ username?: string;
91
+ password?: string;
92
+ }
93
+ export interface DocumentGeneratorOptions {
94
+ schemaUrl?: string;
95
+ schemas?: DocumentSchema[];
96
+ count?: number;
97
+ locale?: string;
98
+ seed?: number;
99
+ format?: 'json' | 'typescript' | 'both';
100
+ outputDir?: string;
101
+ fieldOverrides?: Record<string, (faker: any, field: FieldSchema) => any>;
102
+ generateReferences?: boolean;
103
+ existingDocuments?: Record<string, string[]>;
104
+ }
105
+ export interface DocumentSchema {
106
+ name: string;
107
+ title?: string;
108
+ description?: string;
109
+ fields: FieldSchema[];
110
+ }
111
+ export interface FieldSchema {
112
+ type: string;
113
+ name: string;
114
+ title?: string;
115
+ description?: string;
116
+ required?: boolean;
117
+ validation?: Record<string, any>;
118
+ options?: Record<string, any>;
119
+ source?: string | string[];
120
+ autoGenerate?: boolean;
121
+ unique?: boolean;
122
+ prefix?: string;
123
+ suffix?: string;
124
+ }
125
+ export interface ClientEvents {
126
+ 'document:created': (document: DocumentResult) => void;
127
+ 'document:updated': (document: DocumentResult) => void;
128
+ 'document:deleted': (id: string) => void;
129
+ 'connection:open': () => void;
130
+ 'connection:close': () => void;
131
+ 'connection:error': (error: Error) => void;
132
+ }
133
+ export type ClientEventType = keyof ClientEvents;
134
+ //# 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,6 @@
1
+ /**
2
+ * Client SDK Types
3
+ * Core types for the TypeScript-native Trokky client
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
package/package.json ADDED
@@ -0,0 +1,101 @@
1
+ {
2
+ "name": "@trokky/client",
3
+ "version": "2.0.3",
4
+ "description": "TypeScript-native client SDK for Trokky CMS with type generation and shortcode support",
5
+ "keywords": [
6
+ "cms",
7
+ "client",
8
+ "sdk",
9
+ "typescript",
10
+ "type-generation",
11
+ "shortcodes",
12
+ "media",
13
+ "portable-content"
14
+ ],
15
+ "author": "Trokky Team",
16
+ "license": "MIT",
17
+ "type": "module",
18
+ "main": "./dist/index.js",
19
+ "types": "./dist/index.d.ts",
20
+ "bin": {
21
+ "trokky-client": "dist/cli/index.js"
22
+ },
23
+ "exports": {
24
+ ".": {
25
+ "types": "./dist/index.d.ts",
26
+ "import": "./dist/index.js",
27
+ "require": "./dist/index.js"
28
+ },
29
+ "./server": {
30
+ "types": "./dist/server/index.d.ts",
31
+ "import": "./dist/server/index.js",
32
+ "require": "./dist/server/index.js"
33
+ },
34
+ "./query": {
35
+ "types": "./dist/query/index.d.ts",
36
+ "import": "./dist/query/index.js",
37
+ "require": "./dist/query/index.js"
38
+ },
39
+ "./generator": {
40
+ "types": "./dist/generator/index.d.ts",
41
+ "import": "./dist/generator/index.js",
42
+ "require": "./dist/generator/index.js"
43
+ },
44
+ "./document-generator": {
45
+ "types": "./dist/generator/document-generator.d.ts",
46
+ "import": "./dist/generator/document-generator.js",
47
+ "require": "./dist/generator/document-generator.js"
48
+ },
49
+ "./shortcodes": {
50
+ "types": "./dist/shortcodes/index.d.ts",
51
+ "import": "./dist/shortcodes/index.js",
52
+ "require": "./dist/shortcodes/index.js"
53
+ },
54
+ "./react": {
55
+ "types": "./dist/react/index.d.ts",
56
+ "import": "./dist/react/index.js",
57
+ "require": "./dist/react/index.js"
58
+ }
59
+ },
60
+ "files": [
61
+ "dist",
62
+ "README.md"
63
+ ],
64
+ "scripts": {
65
+ "build": "tsc --project tsconfig.build.json",
66
+ "dev": "tsc --watch",
67
+ "test": "vitest run",
68
+ "test:watch": "vitest",
69
+ "test:coverage": "vitest run --coverage",
70
+ "lint": "eslint src --ext .ts",
71
+ "type-check": "tsc --noEmit"
72
+ },
73
+ "dependencies": {
74
+ "@trokky/trokky": "^2.0.3",
75
+ "commander": "^11.0.0"
76
+ },
77
+ "devDependencies": {
78
+ "@faker-js/faker": "^10.6.0",
79
+ "@types/node": "^20.0.0",
80
+ "@vitest/coverage-v8": "^4.1.0",
81
+ "typescript": "^5.0.0",
82
+ "vitest": "^4.1.0"
83
+ },
84
+ "peerDependencies": {
85
+ "typescript": ">=4.5.0",
86
+ "@faker-js/faker": "^10.0.0"
87
+ },
88
+ "repository": {
89
+ "type": "git",
90
+ "url": "git+https://github.com/Trokky/trokky.git"
91
+ },
92
+ "publishConfig": {
93
+ "registry": "https://registry.npmjs.org",
94
+ "access": "public"
95
+ },
96
+ "peerDependenciesMeta": {
97
+ "@faker-js/faker": {
98
+ "optional": true
99
+ }
100
+ }
101
+ }