@easyling/sanity-connector 0.0.1 → 0.0.2-rc.1
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.
- package/dist/.tsbuildinfo +1 -1
- package/package.json +18 -12
- package/dist/actions/bulkTranslate.d.ts +0 -7
- package/dist/actions/bulkTranslate.d.ts.map +0 -1
- package/dist/actions/bulkTranslate.js +0 -543
- package/dist/actions/bulkTranslate.js.map +0 -1
- package/dist/actions/manageDNTFields.d.ts +0 -12
- package/dist/actions/manageDNTFields.d.ts.map +0 -1
- package/dist/actions/manageDNTFields.js +0 -100
- package/dist/actions/manageDNTFields.js.map +0 -1
- package/dist/actions/translateDocument.d.ts +0 -7
- package/dist/actions/translateDocument.d.ts.map +0 -1
- package/dist/actions/translateDocument.js +0 -256
- package/dist/actions/translateDocument.js.map +0 -1
- package/dist/components/RadioWithDefault.d.ts +0 -17
- package/dist/components/RadioWithDefault.d.ts.map +0 -1
- package/dist/components/RadioWithDefault.js +0 -29
- package/dist/components/RadioWithDefault.js.map +0 -1
- package/dist/components/auth/AuthNavbar.d.ts +0 -18
- package/dist/components/auth/AuthNavbar.d.ts.map +0 -1
- package/dist/components/auth/AuthNavbar.js +0 -15
- package/dist/components/auth/AuthNavbar.js.map +0 -1
- package/dist/components/auth/AuthStatus.d.ts +0 -27
- package/dist/components/auth/AuthStatus.d.ts.map +0 -1
- package/dist/components/auth/AuthStatus.js +0 -82
- package/dist/components/auth/AuthStatus.js.map +0 -1
- package/dist/components/auth/AuthStatusWrapper.d.ts +0 -15
- package/dist/components/auth/AuthStatusWrapper.d.ts.map +0 -1
- package/dist/components/auth/AuthStatusWrapper.js +0 -39
- package/dist/components/auth/AuthStatusWrapper.js.map +0 -1
- package/dist/components/auth/MigrationPrompt.d.ts +0 -20
- package/dist/components/auth/MigrationPrompt.d.ts.map +0 -1
- package/dist/components/auth/MigrationPrompt.js +0 -16
- package/dist/components/auth/MigrationPrompt.js.map +0 -1
- package/dist/components/auth/MigrationPromptWrapper.d.ts +0 -14
- package/dist/components/auth/MigrationPromptWrapper.d.ts.map +0 -1
- package/dist/components/auth/MigrationPromptWrapper.js +0 -16
- package/dist/components/auth/MigrationPromptWrapper.js.map +0 -1
- package/dist/components/auth/OAuthCallback.d.ts +0 -20
- package/dist/components/auth/OAuthCallback.d.ts.map +0 -1
- package/dist/components/auth/OAuthCallback.js +0 -12
- package/dist/components/auth/OAuthCallback.js.map +0 -1
- package/dist/components/auth/index.d.ts +0 -15
- package/dist/components/auth/index.d.ts.map +0 -1
- package/dist/components/auth/index.js +0 -12
- package/dist/components/auth/index.js.map +0 -1
- package/dist/components/config/LocaleConfigTool.d.ts +0 -17
- package/dist/components/config/LocaleConfigTool.d.ts.map +0 -1
- package/dist/components/config/LocaleConfigTool.js +0 -186
- package/dist/components/config/LocaleConfigTool.js.map +0 -1
- package/dist/components/config/LocaleConfigToolWrapper.d.ts +0 -13
- package/dist/components/config/LocaleConfigToolWrapper.d.ts.map +0 -1
- package/dist/components/config/LocaleConfigToolWrapper.js +0 -26
- package/dist/components/config/LocaleConfigToolWrapper.js.map +0 -1
- package/dist/components/config/OAuthConfig.d.ts +0 -26
- package/dist/components/config/OAuthConfig.d.ts.map +0 -1
- package/dist/components/config/OAuthConfig.js +0 -152
- package/dist/components/config/OAuthConfig.js.map +0 -1
- package/dist/components/config/OAuthConfigWrapper.d.ts +0 -13
- package/dist/components/config/OAuthConfigWrapper.d.ts.map +0 -1
- package/dist/components/config/OAuthConfigWrapper.js +0 -41
- package/dist/components/config/OAuthConfigWrapper.js.map +0 -1
- package/dist/components/config/PasswordInput.d.ts +0 -14
- package/dist/components/config/PasswordInput.d.ts.map +0 -1
- package/dist/components/config/PasswordInput.js +0 -23
- package/dist/components/config/PasswordInput.js.map +0 -1
- package/dist/components/config/index.d.ts +0 -9
- package/dist/components/config/index.d.ts.map +0 -1
- package/dist/components/config/index.js +0 -8
- package/dist/components/config/index.js.map +0 -1
- package/dist/components/config/localeConfigToolDefinition.d.ts +0 -13
- package/dist/components/config/localeConfigToolDefinition.d.ts.map +0 -1
- package/dist/components/config/localeConfigToolDefinition.js +0 -19
- package/dist/components/config/localeConfigToolDefinition.js.map +0 -1
- package/dist/components/config/oauthConfigToolDefinition.d.ts +0 -13
- package/dist/components/config/oauthConfigToolDefinition.d.ts.map +0 -1
- package/dist/components/config/oauthConfigToolDefinition.js +0 -19
- package/dist/components/config/oauthConfigToolDefinition.js.map +0 -1
- package/dist/components/dialogs/ConfirmationDialog.d.ts +0 -21
- package/dist/components/dialogs/ConfirmationDialog.d.ts.map +0 -1
- package/dist/components/dialogs/ConfirmationDialog.js +0 -28
- package/dist/components/dialogs/ConfirmationDialog.js.map +0 -1
- package/dist/components/dialogs/ErrorDialog.d.ts +0 -21
- package/dist/components/dialogs/ErrorDialog.d.ts.map +0 -1
- package/dist/components/dialogs/ErrorDialog.js +0 -28
- package/dist/components/dialogs/ErrorDialog.js.map +0 -1
- package/dist/components/dialogs/LocaleSelectionDialog.d.ts +0 -41
- package/dist/components/dialogs/LocaleSelectionDialog.d.ts.map +0 -1
- package/dist/components/dialogs/LocaleSelectionDialog.js +0 -117
- package/dist/components/dialogs/LocaleSelectionDialog.js.map +0 -1
- package/dist/components/dialogs/SuccessDialog.d.ts +0 -19
- package/dist/components/dialogs/SuccessDialog.d.ts.map +0 -1
- package/dist/components/dialogs/SuccessDialog.js +0 -37
- package/dist/components/dialogs/SuccessDialog.js.map +0 -1
- package/dist/components/dialogs/index.d.ts +0 -12
- package/dist/components/dialogs/index.d.ts.map +0 -1
- package/dist/components/dialogs/index.js +0 -8
- package/dist/components/dialogs/index.js.map +0 -1
- package/dist/components/dnt/DNTFieldBadge.d.ts +0 -16
- package/dist/components/dnt/DNTFieldBadge.d.ts.map +0 -1
- package/dist/components/dnt/DNTFieldBadge.js +0 -56
- package/dist/components/dnt/DNTFieldBadge.js.map +0 -1
- package/dist/components/dnt/DNTFieldComponent.d.ts +0 -17
- package/dist/components/dnt/DNTFieldComponent.d.ts.map +0 -1
- package/dist/components/dnt/DNTFieldComponent.js +0 -21
- package/dist/components/dnt/DNTFieldComponent.js.map +0 -1
- package/dist/components/dnt/DNTFieldInput.d.ts +0 -14
- package/dist/components/dnt/DNTFieldInput.d.ts.map +0 -1
- package/dist/components/dnt/DNTFieldInput.js +0 -76
- package/dist/components/dnt/DNTFieldInput.js.map +0 -1
- package/dist/components/dnt/index.d.ts +0 -7
- package/dist/components/dnt/index.d.ts.map +0 -1
- package/dist/components/dnt/index.js +0 -7
- package/dist/components/dnt/index.js.map +0 -1
- package/dist/config/index.d.ts +0 -6
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -6
- package/dist/config/index.js.map +0 -1
- package/dist/config/pluginConfig.d.ts +0 -163
- package/dist/config/pluginConfig.d.ts.map +0 -1
- package/dist/config/pluginConfig.js +0 -548
- package/dist/config/pluginConfig.js.map +0 -1
- package/dist/index.d.ts +0 -12
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -12
- package/dist/index.js.map +0 -1
- package/dist/plugin.d.ts +0 -3
- package/dist/plugin.d.ts.map +0 -1
- package/dist/plugin.js +0 -137
- package/dist/plugin.js.map +0 -1
- package/dist/services/authStateManager.d.ts +0 -94
- package/dist/services/authStateManager.d.ts.map +0 -1
- package/dist/services/authStateManager.js +0 -208
- package/dist/services/authStateManager.js.map +0 -1
- package/dist/services/contentExtractor.d.ts +0 -95
- package/dist/services/contentExtractor.d.ts.map +0 -1
- package/dist/services/contentExtractor.js +0 -516
- package/dist/services/contentExtractor.js.map +0 -1
- package/dist/services/dialogService.d.ts +0 -96
- package/dist/services/dialogService.d.ts.map +0 -1
- package/dist/services/dialogService.js +0 -244
- package/dist/services/dialogService.js.map +0 -1
- package/dist/services/dntServiceManager.d.ts +0 -44
- package/dist/services/dntServiceManager.d.ts.map +0 -1
- package/dist/services/dntServiceManager.js +0 -74
- package/dist/services/dntServiceManager.js.map +0 -1
- package/dist/services/dntStorageAdapter.d.ts +0 -73
- package/dist/services/dntStorageAdapter.d.ts.map +0 -1
- package/dist/services/dntStorageAdapter.js +0 -192
- package/dist/services/dntStorageAdapter.js.map +0 -1
- package/dist/services/documentCreationService.d.ts +0 -139
- package/dist/services/documentCreationService.d.ts.map +0 -1
- package/dist/services/documentCreationService.js +0 -938
- package/dist/services/documentCreationService.js.map +0 -1
- package/dist/services/localeService.d.ts +0 -160
- package/dist/services/localeService.d.ts.map +0 -1
- package/dist/services/localeService.js +0 -300
- package/dist/services/localeService.js.map +0 -1
- package/dist/services/localeStorageAdapter.d.ts +0 -42
- package/dist/services/localeStorageAdapter.d.ts.map +0 -1
- package/dist/services/localeStorageAdapter.js +0 -107
- package/dist/services/localeStorageAdapter.js.map +0 -1
- package/dist/services/oauthConfigStorage.d.ts +0 -46
- package/dist/services/oauthConfigStorage.d.ts.map +0 -1
- package/dist/services/oauthConfigStorage.js +0 -122
- package/dist/services/oauthConfigStorage.js.map +0 -1
- package/dist/services/oauthService.d.ts +0 -48
- package/dist/services/oauthService.d.ts.map +0 -1
- package/dist/services/oauthService.js +0 -71
- package/dist/services/oauthService.js.map +0 -1
- package/dist/services/oauthServiceManager.d.ts +0 -189
- package/dist/services/oauthServiceManager.d.ts.map +0 -1
- package/dist/services/oauthServiceManager.js +0 -380
- package/dist/services/oauthServiceManager.js.map +0 -1
- package/dist/services/tokenStorage.d.ts +0 -54
- package/dist/services/tokenStorage.d.ts.map +0 -1
- package/dist/services/tokenStorage.js +0 -140
- package/dist/services/tokenStorage.js.map +0 -1
- package/dist/services/translationService.d.ts +0 -374
- package/dist/services/translationService.d.ts.map +0 -1
- package/dist/services/translationService.js +0 -687
- package/dist/services/translationService.js.map +0 -1
- package/dist/services/unifiedConfigStorage.d.ts +0 -124
- package/dist/services/unifiedConfigStorage.d.ts.map +0 -1
- package/dist/services/unifiedConfigStorage.js +0 -304
- package/dist/services/unifiedConfigStorage.js.map +0 -1
- package/dist/test-utils.d.ts +0 -9
- package/dist/test-utils.d.ts.map +0 -1
- package/dist/test-utils.js +0 -13
- package/dist/test-utils.js.map +0 -1
- package/dist/types/dialog.d.ts +0 -107
- package/dist/types/dialog.d.ts.map +0 -1
- package/dist/types/dialog.js +0 -6
- package/dist/types/dialog.js.map +0 -1
- package/dist/types/dnt.d.ts +0 -84
- package/dist/types/dnt.d.ts.map +0 -1
- package/dist/types/dnt.js +0 -5
- package/dist/types/dnt.js.map +0 -1
- package/dist/types/index.d.ts +0 -12
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -6
- package/dist/types/index.js.map +0 -1
- package/dist/types/locale.d.ts +0 -116
- package/dist/types/locale.d.ts.map +0 -1
- package/dist/types/locale.js +0 -189
- package/dist/types/locale.js.map +0 -1
- package/dist/types/oauth.d.ts +0 -90
- package/dist/types/oauth.d.ts.map +0 -1
- package/dist/types/oauth.js +0 -62
- package/dist/types/oauth.js.map +0 -1
- package/dist/types/pluginConfig.d.ts +0 -45
- package/dist/types/pluginConfig.d.ts.map +0 -1
- package/dist/types/pluginConfig.js +0 -6
- package/dist/types/pluginConfig.js.map +0 -1
- package/dist/types/translation.d.ts +0 -122
- package/dist/types/translation.d.ts.map +0 -1
- package/dist/types/translation.js +0 -6
- package/dist/types/translation.js.map +0 -1
- package/dist/utils/htmlFormatter.d.ts +0 -66
- package/dist/utils/htmlFormatter.d.ts.map +0 -1
- package/dist/utils/htmlFormatter.js +0 -191
- package/dist/utils/htmlFormatter.js.map +0 -1
- package/dist/utils/index.d.ts +0 -15
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -16
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -105
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -229
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/oauthErrorFeedback.d.ts +0 -76
- package/dist/utils/oauthErrorFeedback.d.ts.map +0 -1
- package/dist/utils/oauthErrorFeedback.js +0 -134
- package/dist/utils/oauthErrorFeedback.js.map +0 -1
- package/dist/utils/oauthLogger.d.ts +0 -176
- package/dist/utils/oauthLogger.d.ts.map +0 -1
- package/dist/utils/oauthLogger.js +0 -282
- package/dist/utils/oauthLogger.js.map +0 -1
- package/dist/utils/validator.d.ts +0 -67
- package/dist/utils/validator.d.ts.map +0 -1
- package/dist/utils/validator.js +0 -390
- package/dist/utils/validator.js.map +0 -1
|
@@ -1,374 +0,0 @@
|
|
|
1
|
-
import { ExtendedDocumentContent } from './contentExtractor';
|
|
2
|
-
/**
|
|
3
|
-
* Field object structure supporting translation-invariant fields
|
|
4
|
-
*/
|
|
5
|
-
export interface TranslatableField {
|
|
6
|
-
/** The actual field value */
|
|
7
|
-
value: unknown;
|
|
8
|
-
/** Do Not Translate flag - if true, the field should not be translated */
|
|
9
|
-
dnt?: boolean;
|
|
10
|
-
/** Type of the field value from Sanity (e.g., 'string', 'number', 'date', 'slug', 'array', 'object') */
|
|
11
|
-
type?: string;
|
|
12
|
-
}
|
|
13
|
-
export interface TranslationRequest {
|
|
14
|
-
documentId: string;
|
|
15
|
-
endpoint: string;
|
|
16
|
-
payload: TranslationRequestPayload;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Request payload sent to the translation service
|
|
20
|
-
*
|
|
21
|
-
* @example Single locale (backward compatible):
|
|
22
|
-
* ```json
|
|
23
|
-
* {
|
|
24
|
-
* "content": {
|
|
25
|
-
* "body": "<h1>Welcome</h1><p>This is sample content.</p>",
|
|
26
|
-
* "title": "Welcome Article",
|
|
27
|
-
* "slug": "welcome-article",
|
|
28
|
-
* "fields": {
|
|
29
|
-
* "author": { "value": "John Doe", "dnt": false },
|
|
30
|
-
* "category": { "value": "General", "dnt": true }
|
|
31
|
-
* }
|
|
32
|
-
* },
|
|
33
|
-
* "format": "html",
|
|
34
|
-
* "metadata": {
|
|
35
|
-
* "documentId": "article-123",
|
|
36
|
-
* "documentType": "article",
|
|
37
|
-
* "title": "Welcome Article",
|
|
38
|
-
* "sourceLanguage": "en",
|
|
39
|
-
* "targetLanguage": "es"
|
|
40
|
-
* }
|
|
41
|
-
* }
|
|
42
|
-
* ```
|
|
43
|
-
*
|
|
44
|
-
* @example Multiple locales:
|
|
45
|
-
* ```json
|
|
46
|
-
* {
|
|
47
|
-
* "content": {
|
|
48
|
-
* "body": "<h1>Welcome</h1><p>This is sample content.</p>",
|
|
49
|
-
* "title": "Welcome Article",
|
|
50
|
-
* "slug": "welcome-article",
|
|
51
|
-
* "fields": {
|
|
52
|
-
* "author": { "value": "John Doe", "dnt": false },
|
|
53
|
-
* "category": { "value": "General", "dnt": true }
|
|
54
|
-
* }
|
|
55
|
-
* },
|
|
56
|
-
* "format": "html",
|
|
57
|
-
* "metadata": {
|
|
58
|
-
* "documentId": "article-123",
|
|
59
|
-
* "documentType": "article",
|
|
60
|
-
* "title": "Welcome Article",
|
|
61
|
-
* "sourceLanguage": "en",
|
|
62
|
-
* "targetLocales": ["es", "fr", "de"]
|
|
63
|
-
* }
|
|
64
|
-
* }
|
|
65
|
-
* ```
|
|
66
|
-
*/
|
|
67
|
-
export interface TranslationRequestPayload {
|
|
68
|
-
/** Content to be translated */
|
|
69
|
-
content: {
|
|
70
|
-
/** HTML content extracted from Sanity document */
|
|
71
|
-
body: string;
|
|
72
|
-
/** Document title */
|
|
73
|
-
title: string;
|
|
74
|
-
/** Document slug */
|
|
75
|
-
slug: string;
|
|
76
|
-
/** Additional document fields with translation control via dnt flag */
|
|
77
|
-
fields: Record<string, TranslatableField | any>;
|
|
78
|
-
};
|
|
79
|
-
/** Content format - always 'html' for this plugin */
|
|
80
|
-
format: 'html';
|
|
81
|
-
/** Metadata about the document and translation request */
|
|
82
|
-
metadata: {
|
|
83
|
-
/** Unique identifier for the source document */
|
|
84
|
-
documentId: string;
|
|
85
|
-
/** Sanity document type (e.g., 'article', 'page', 'post') */
|
|
86
|
-
documentType: string;
|
|
87
|
-
/** Document title (same as content.title) */
|
|
88
|
-
title: string;
|
|
89
|
-
/** Source language code (optional, e.g., 'en', 'fr', 'es') */
|
|
90
|
-
sourceLanguage?: string;
|
|
91
|
-
/** Target language code (optional, e.g., 'en', 'fr', 'es') - for backward compatibility */
|
|
92
|
-
targetLanguage?: string;
|
|
93
|
-
/** Array of target locale codes (e.g., ['es', 'fr', 'de']) - for multi-locale support */
|
|
94
|
-
targetLocales?: string[];
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Translated document structure
|
|
99
|
-
*/
|
|
100
|
-
export interface TranslatedDocument {
|
|
101
|
-
/**
|
|
102
|
-
* Translated HTML content
|
|
103
|
-
* - Must be valid HTML
|
|
104
|
-
* - Should preserve original structure
|
|
105
|
-
* - Will be converted back to Portable Text by the plugin
|
|
106
|
-
*/
|
|
107
|
-
body: string;
|
|
108
|
-
/**
|
|
109
|
-
* Translated document title
|
|
110
|
-
* - Must be non-empty string
|
|
111
|
-
* - No HTML tags allowed
|
|
112
|
-
*/
|
|
113
|
-
title: string;
|
|
114
|
-
/**
|
|
115
|
-
* Translated/localized slug
|
|
116
|
-
* - Must contain only lowercase letters, numbers, hyphens, and underscores
|
|
117
|
-
* - Should be URL-friendly and unique
|
|
118
|
-
* - Pattern: ^[a-z0-9-_]+$
|
|
119
|
-
*/
|
|
120
|
-
slug: string;
|
|
121
|
-
/**
|
|
122
|
-
* Additional translated document fields
|
|
123
|
-
* - Must be an object (can be empty)
|
|
124
|
-
* - Translatable text fields should be translated
|
|
125
|
-
* - Non-translatable fields (dates, IDs) should be preserved
|
|
126
|
-
* - Fields marked with dnt=true should remain unchanged
|
|
127
|
-
*/
|
|
128
|
-
fields: Record<string, TranslatableField>;
|
|
129
|
-
/**
|
|
130
|
-
* Target locale code for this translation (e.g., 'es', 'fr', 'de')
|
|
131
|
-
*/
|
|
132
|
-
locale?: string;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Response format expected from the translation service
|
|
136
|
-
*
|
|
137
|
-
* @example Single locale success response:
|
|
138
|
-
* ```json
|
|
139
|
-
* {
|
|
140
|
-
* "success": true,
|
|
141
|
-
* "translatedDocuments": [
|
|
142
|
-
* {
|
|
143
|
-
* "body": "<h1>Translated HTML</h1><p>Translated content...</p>",
|
|
144
|
-
* "title": "Translated Title",
|
|
145
|
-
* "slug": "translated-slug",
|
|
146
|
-
* "fields": {
|
|
147
|
-
* "author": { "value": "Translated Author", "dnt": false },
|
|
148
|
-
* "category": { "value": "General", "dnt": true }
|
|
149
|
-
* },
|
|
150
|
-
* "locale": "es"
|
|
151
|
-
* }
|
|
152
|
-
* ],
|
|
153
|
-
* "sourceLocale": "en",
|
|
154
|
-
* "requestId": "req-123"
|
|
155
|
-
* }
|
|
156
|
-
* ```
|
|
157
|
-
*
|
|
158
|
-
* @example Multi-locale success response:
|
|
159
|
-
* ```json
|
|
160
|
-
* {
|
|
161
|
-
* "success": true,
|
|
162
|
-
* "translatedDocuments": [
|
|
163
|
-
* {
|
|
164
|
-
* "body": "<h1>HTML traducido</h1><p>Contenido traducido...</p>",
|
|
165
|
-
* "title": "Título traducido",
|
|
166
|
-
* "slug": "titulo-traducido",
|
|
167
|
-
* "fields": {
|
|
168
|
-
* "author": { "value": "Autor traducido", "dnt": false },
|
|
169
|
-
* "category": { "value": "General", "dnt": true }
|
|
170
|
-
* },
|
|
171
|
-
* "locale": "es"
|
|
172
|
-
* },
|
|
173
|
-
* {
|
|
174
|
-
* "body": "<h1>HTML traduit</h1><p>Contenu traduit...</p>",
|
|
175
|
-
* "title": "Titre traduit",
|
|
176
|
-
* "slug": "titre-traduit",
|
|
177
|
-
* "fields": {
|
|
178
|
-
* "author": { "value": "Auteur traduit", "dnt": false },
|
|
179
|
-
* "category": { "value": "General", "dnt": true }
|
|
180
|
-
* },
|
|
181
|
-
* "locale": "fr"
|
|
182
|
-
* }
|
|
183
|
-
* ],
|
|
184
|
-
* "sourceLocale": "en",
|
|
185
|
-
* "requestId": "req-123"
|
|
186
|
-
* }
|
|
187
|
-
* ```
|
|
188
|
-
*
|
|
189
|
-
* @example Error Response:
|
|
190
|
-
* ```json
|
|
191
|
-
* {
|
|
192
|
-
* "success": false,
|
|
193
|
-
* "error": "Translation failed: Unsupported language pair",
|
|
194
|
-
* "requestId": "req-123"
|
|
195
|
-
* }
|
|
196
|
-
* ```
|
|
197
|
-
*/
|
|
198
|
-
export interface TranslationResponse {
|
|
199
|
-
/** Indicates whether the translation was successful */
|
|
200
|
-
success: boolean;
|
|
201
|
-
/**
|
|
202
|
-
* Array of translated documents (required when success is true)
|
|
203
|
-
* Contains one translated document per target locale
|
|
204
|
-
*/
|
|
205
|
-
translatedDocuments?: TranslatedDocument[];
|
|
206
|
-
/** Source locale code (e.g., 'en') */
|
|
207
|
-
sourceLocale?: string;
|
|
208
|
-
/**
|
|
209
|
-
* Error message (required when success is false)
|
|
210
|
-
* Should provide a clear description of what went wrong
|
|
211
|
-
*/
|
|
212
|
-
error?: string;
|
|
213
|
-
/**
|
|
214
|
-
* Optional unique request identifier for tracking
|
|
215
|
-
* Useful for debugging and request correlation
|
|
216
|
-
*/
|
|
217
|
-
requestId?: string;
|
|
218
|
-
/** @deprecated Use translatedDocuments array instead */
|
|
219
|
-
translatedContent?: TranslatedDocument;
|
|
220
|
-
/** @deprecated Use translatedDocuments array instead */
|
|
221
|
-
translations?: {
|
|
222
|
-
[localeCode: string]: {
|
|
223
|
-
content: TranslatedDocument;
|
|
224
|
-
status: 'completed' | 'failed' | 'pending';
|
|
225
|
-
error?: string;
|
|
226
|
-
};
|
|
227
|
-
};
|
|
228
|
-
}
|
|
229
|
-
export interface BulkTranslationSummary {
|
|
230
|
-
totalDocuments: number;
|
|
231
|
-
processedDocuments: number;
|
|
232
|
-
failedDocuments: number;
|
|
233
|
-
requests: TranslationRequest[];
|
|
234
|
-
responses: TranslationResponse[];
|
|
235
|
-
}
|
|
236
|
-
export declare class TranslationService {
|
|
237
|
-
private placeholderEndpoint;
|
|
238
|
-
private accessToken?;
|
|
239
|
-
private projectId?;
|
|
240
|
-
private requestContentType;
|
|
241
|
-
private responseAcceptHeader;
|
|
242
|
-
constructor(placeholderEndpoint?: string, requestContentType?: 'application/json' | 'application/x-protobuf', responseAcceptHeader?: 'application/json' | 'application/x-protobuf');
|
|
243
|
-
/**
|
|
244
|
-
* Infer the Sanity field type from a value
|
|
245
|
-
*
|
|
246
|
-
* @param value - The field value to inspect
|
|
247
|
-
* @returns The inferred Sanity type string
|
|
248
|
-
*/
|
|
249
|
-
private inferSanityType;
|
|
250
|
-
/**
|
|
251
|
-
* Set authentication token and project ID
|
|
252
|
-
* Requirements: 4.1, 4.2, 4.3
|
|
253
|
-
*
|
|
254
|
-
* @param token - Access token for API authentication
|
|
255
|
-
* @param projectId - Project ID to include in requests
|
|
256
|
-
*/
|
|
257
|
-
setAuthToken(token: string, projectId: string): void;
|
|
258
|
-
/**
|
|
259
|
-
* Clear authentication data
|
|
260
|
-
*/
|
|
261
|
-
clearAuth(): void;
|
|
262
|
-
/**
|
|
263
|
-
* Update configuration for content types and endpoint
|
|
264
|
-
* Allows partial updates - only provided parameters will be updated
|
|
265
|
-
* Requirements: 1.1, 2.3, 3.3
|
|
266
|
-
*
|
|
267
|
-
* @param endpoint - Optional translation API endpoint URL
|
|
268
|
-
* @param requestContentType - Optional request Content-Type header value
|
|
269
|
-
* @param responseAcceptHeader - Optional response Accept header value
|
|
270
|
-
*/
|
|
271
|
-
setConfiguration(endpoint?: string, requestContentType?: 'application/json' | 'application/x-protobuf', responseAcceptHeader?: 'application/json' | 'application/x-protobuf'): void;
|
|
272
|
-
/**
|
|
273
|
-
* Convert internal payload to Protocol Buffer binary format
|
|
274
|
-
* Requirements: Uses @easyling/sanity protobuf library
|
|
275
|
-
*
|
|
276
|
-
* @param payload - Internal translation request payload
|
|
277
|
-
* @returns Binary protobuf message
|
|
278
|
-
*/
|
|
279
|
-
private convertPayloadToProtobuf;
|
|
280
|
-
/**
|
|
281
|
-
* Convert protobuf payload to JSON for logging purposes only
|
|
282
|
-
*
|
|
283
|
-
* @param payload - Internal translation request payload
|
|
284
|
-
* @returns JSON representation for logging
|
|
285
|
-
*/
|
|
286
|
-
private convertPayloadToProtobufJSON;
|
|
287
|
-
/**
|
|
288
|
-
* Normalize field values to ensure consistency
|
|
289
|
-
* Extracts values from TranslatableField objects and handles various formats
|
|
290
|
-
*/
|
|
291
|
-
private normalizeTranslatedFields;
|
|
292
|
-
/**
|
|
293
|
-
* Convert binary protobuf response to internal format
|
|
294
|
-
* Requirements: Uses @easyling/sanity protobuf library
|
|
295
|
-
*
|
|
296
|
-
* @param binaryData - Binary protobuf response data
|
|
297
|
-
* @returns Internal translation response format
|
|
298
|
-
*/
|
|
299
|
-
private convertProtobufBinaryToResponse;
|
|
300
|
-
/**
|
|
301
|
-
* Convert protobuf JSON response back to internal format (for legacy support)
|
|
302
|
-
* Requirements: Uses @easyling/sanity protobuf library
|
|
303
|
-
*
|
|
304
|
-
* @param jsonData - JSON response data
|
|
305
|
-
* @returns Internal translation response format
|
|
306
|
-
*/
|
|
307
|
-
private convertProtobufJSONToResponse;
|
|
308
|
-
/**
|
|
309
|
-
* Prepare a translation request for a single document
|
|
310
|
-
* Requirements: 1.2, 1.3, 3.3, 2.5, 2.7
|
|
311
|
-
*
|
|
312
|
-
* @param content - Document content to translate
|
|
313
|
-
* @param documentType - Type of the document
|
|
314
|
-
* @param sourceLanguage - Source language code (optional)
|
|
315
|
-
* @param targetLanguage - Single target language code (optional, for backward compatibility)
|
|
316
|
-
* @param targetLocales - Array of target locale codes (optional, for multi-locale support)
|
|
317
|
-
*/
|
|
318
|
-
prepareTranslationRequest(content: ExtendedDocumentContent, documentType?: string, sourceLanguage?: string, targetLanguage?: string, targetLocales?: string[]): TranslationRequest;
|
|
319
|
-
/**
|
|
320
|
-
* Translate a single document
|
|
321
|
-
* Requirements: 1.2, 1.3, 3.3, 2.5, 2.7
|
|
322
|
-
*
|
|
323
|
-
* @param content - Document content to translate
|
|
324
|
-
* @param documentType - Type of the document
|
|
325
|
-
* @param sourceLanguage - Source language code (optional)
|
|
326
|
-
* @param targetLanguage - Single target language code (optional, for backward compatibility)
|
|
327
|
-
* @param targetLocales - Array of target locale codes (optional, for multi-locale support)
|
|
328
|
-
*/
|
|
329
|
-
translateDocument(content: ExtendedDocumentContent, documentType?: string, sourceLanguage?: string, targetLanguage?: string, targetLocales?: string[]): Promise<TranslationResponse>;
|
|
330
|
-
/**
|
|
331
|
-
* Send translation request to the configured endpoint
|
|
332
|
-
*
|
|
333
|
-
* Uses the @easyling/sanity Protocol Buffer library to format messages as JSON
|
|
334
|
-
* (not binary protobuf) for better compatibility with various backends.
|
|
335
|
-
* Handles the new array-based response format with backward compatibility.
|
|
336
|
-
* The service now expects translatedDocuments as an array, but will convert
|
|
337
|
-
* legacy formats (translatedContent or translations object) to the new format.
|
|
338
|
-
*
|
|
339
|
-
* Supports dual mode operation:
|
|
340
|
-
* - Authenticated mode: Uses Bearer token authentication when configured
|
|
341
|
-
* - Legacy mode: Works without authentication for backward compatibility
|
|
342
|
-
*/
|
|
343
|
-
sendTranslationRequest(request: TranslationRequest): Promise<TranslationResponse>;
|
|
344
|
-
/**
|
|
345
|
-
* Log translation request to console for verification
|
|
346
|
-
* Requirements: 1.3, 2.4
|
|
347
|
-
*/
|
|
348
|
-
logTranslationRequest(request: TranslationRequest): void;
|
|
349
|
-
/**
|
|
350
|
-
* Process bulk translation for multiple documents
|
|
351
|
-
* Requirements: 2.1, 2.2, 2.3, 2.4, 2.5, 2.7
|
|
352
|
-
*
|
|
353
|
-
* @param contents - Array of document contents to translate
|
|
354
|
-
* @param documentType - Type of the documents
|
|
355
|
-
* @param sourceLanguage - Source language code (optional)
|
|
356
|
-
* @param targetLanguage - Single target language code (optional, for backward compatibility)
|
|
357
|
-
* @param targetLocales - Array of target locale codes (optional, for multi-locale support)
|
|
358
|
-
*/
|
|
359
|
-
processBulkTranslation(contents: ExtendedDocumentContent[], documentType?: string, sourceLanguage?: string, targetLanguage?: string, targetLocales?: string[]): Promise<BulkTranslationSummary>;
|
|
360
|
-
/**
|
|
361
|
-
* Log bulk translation summary
|
|
362
|
-
* Requirements: 2.5
|
|
363
|
-
*/
|
|
364
|
-
private logBulkTranslationSummary;
|
|
365
|
-
/**
|
|
366
|
-
* Update the placeholder endpoint
|
|
367
|
-
*/
|
|
368
|
-
setEndpoint(endpoint: string): void;
|
|
369
|
-
/**
|
|
370
|
-
* Get the current endpoint
|
|
371
|
-
*/
|
|
372
|
-
getEndpoint(): string;
|
|
373
|
-
}
|
|
374
|
-
//# sourceMappingURL=translationService.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"translationService.d.ts","sourceRoot":"","sources":["../../src/services/translationService.ts"],"names":[],"mappings":"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"}
|