@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
package/dist/plugin.js
DELETED
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
// Main plugin definition
|
|
3
|
-
import { definePlugin, useClient } from 'sanity';
|
|
4
|
-
import React, { useEffect } from 'react';
|
|
5
|
-
import { translateDocumentAction } from './actions/translateDocument';
|
|
6
|
-
import { bulkTranslateTool } from './actions/bulkTranslate';
|
|
7
|
-
import { manageDNTFieldsAction } from './actions/manageDNTFields';
|
|
8
|
-
import { createPluginConfigSchema, legacyLocaleConfigSchema } from './config/pluginConfig';
|
|
9
|
-
import { DialogProvider } from './services/dialogService';
|
|
10
|
-
import { OAuthServiceManager } from './services/oauthServiceManager';
|
|
11
|
-
import { DNTServiceManager } from './services/dntServiceManager';
|
|
12
|
-
import { PasswordInput } from './components/config/PasswordInput';
|
|
13
|
-
import { DNTFieldInput } from './components/dnt';
|
|
14
|
-
console.log('Loading sanity-translation-plugin...');
|
|
15
|
-
/**
|
|
16
|
-
* Legacy OAuth configuration schema (deprecated)
|
|
17
|
-
* Kept for backward compatibility and automatic migration
|
|
18
|
-
* @deprecated Now uses unified EL_PluginConfiguration document
|
|
19
|
-
*/
|
|
20
|
-
const legacyOAuthConfigSchema = {
|
|
21
|
-
name: 'EL_oauth-config',
|
|
22
|
-
title: 'Easyling Configuration (Legacy)',
|
|
23
|
-
type: 'document',
|
|
24
|
-
hidden: true, // Hide from UI - legacy documents will be migrated automatically
|
|
25
|
-
fields: [
|
|
26
|
-
{
|
|
27
|
-
name: 'projectId',
|
|
28
|
-
title: 'Project ID',
|
|
29
|
-
type: 'string',
|
|
30
|
-
description: 'Your Easyling project ID',
|
|
31
|
-
validation: (Rule) => Rule.required()
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
name: 'accessToken',
|
|
35
|
-
title: 'Access Token',
|
|
36
|
-
type: 'string',
|
|
37
|
-
description: 'Long-lived access token provided by Easyling (hidden for security)',
|
|
38
|
-
validation: (Rule) => Rule.required(),
|
|
39
|
-
components: {
|
|
40
|
-
input: PasswordInput
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
name: 'lastUpdated',
|
|
45
|
-
title: 'Last Updated',
|
|
46
|
-
type: 'datetime',
|
|
47
|
-
readOnly: true
|
|
48
|
-
}
|
|
49
|
-
]
|
|
50
|
-
};
|
|
51
|
-
// Studio Layout wrapper component to provide DialogProvider and initialize services
|
|
52
|
-
function StudioLayout(props) {
|
|
53
|
-
const client = useClient({ apiVersion: '2023-01-01' });
|
|
54
|
-
// Track initialization state
|
|
55
|
-
const [isInitialized, setIsInitialized] = React.useState(false);
|
|
56
|
-
// Initialize services on mount
|
|
57
|
-
useEffect(() => {
|
|
58
|
-
const initializeServices = async () => {
|
|
59
|
-
try {
|
|
60
|
-
// Initialize OAuth service manager
|
|
61
|
-
const oauthServiceManager = OAuthServiceManager.getInstance(client);
|
|
62
|
-
await oauthServiceManager.initialize();
|
|
63
|
-
// Initialize DNT service manager
|
|
64
|
-
const dntServiceManager = DNTServiceManager.getInstance(client);
|
|
65
|
-
dntServiceManager.initialize(client);
|
|
66
|
-
console.log('Services initialized successfully');
|
|
67
|
-
setIsInitialized(true);
|
|
68
|
-
}
|
|
69
|
-
catch (error) {
|
|
70
|
-
console.error('Failed to initialize services:', error);
|
|
71
|
-
setIsInitialized(true); // Still set to true to prevent blocking
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
initializeServices();
|
|
75
|
-
}, [client]);
|
|
76
|
-
return (_jsx(DialogProvider, { children: props.renderDefault(props) }));
|
|
77
|
-
}
|
|
78
|
-
export default definePlugin({
|
|
79
|
-
name: 'sanity-translation-plugin',
|
|
80
|
-
studio: {
|
|
81
|
-
components: {
|
|
82
|
-
layout: StudioLayout
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
document: {
|
|
86
|
-
actions: (prev) => {
|
|
87
|
-
console.log('Document actions being registered, previous actions:', prev.length);
|
|
88
|
-
const newActions = [...prev, translateDocumentAction, manageDNTFieldsAction];
|
|
89
|
-
console.log('New actions array length:', newActions.length);
|
|
90
|
-
return newActions;
|
|
91
|
-
}
|
|
92
|
-
},
|
|
93
|
-
form: {
|
|
94
|
-
components: {
|
|
95
|
-
field: (props) => {
|
|
96
|
-
const fieldType = props.schemaType?.type?.name;
|
|
97
|
-
const fieldName = props.schemaType?.name;
|
|
98
|
-
const fieldPath = props.path?.join('.');
|
|
99
|
-
// Blacklist: field names that should never show DNT badge
|
|
100
|
-
const blacklistedFieldNames = ['locale', '_type', '_id', '_rev', '_createdAt', '_updatedAt'];
|
|
101
|
-
const isBlacklistedName = blacklistedFieldNames.includes(fieldName || '') ||
|
|
102
|
-
blacklistedFieldNames.some(f => fieldPath?.includes(f));
|
|
103
|
-
// Blacklist: field types that should never show badge (non-translatable types)
|
|
104
|
-
const nonTranslatableTypes = ['date', 'datetime', 'image', 'file', 'reference', 'boolean', 'object', 'document', 'slug'];
|
|
105
|
-
const isNonTranslatableType = fieldType && nonTranslatableTypes.includes(fieldType);
|
|
106
|
-
// Translatable field types (types that contain text/content that can be translated)
|
|
107
|
-
const translatableTypes = ['string', 'text', 'number', 'url', 'email', 'array'];
|
|
108
|
-
const isTranslatableType = fieldType && translatableTypes.includes(fieldType);
|
|
109
|
-
// Show badge only if: translatable type AND not blacklisted by name or type
|
|
110
|
-
// Note: DNTFieldInput internally checks for plugin config types and excludes them
|
|
111
|
-
const shouldShowDNT = isTranslatableType && !isBlacklistedName && !isNonTranslatableType;
|
|
112
|
-
if (shouldShowDNT) {
|
|
113
|
-
return DNTFieldInput(props);
|
|
114
|
-
}
|
|
115
|
-
// Return default for other field types
|
|
116
|
-
return props.renderDefault(props);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
},
|
|
120
|
-
tools: (prev) => {
|
|
121
|
-
console.log('Tools being registered, previous tools:', prev.length);
|
|
122
|
-
// Only register bulk translate tool - config is now in unified EL_PluginConfiguration document
|
|
123
|
-
const newTools = [...prev, bulkTranslateTool];
|
|
124
|
-
console.log('New tools array length:', newTools.length);
|
|
125
|
-
return newTools;
|
|
126
|
-
},
|
|
127
|
-
schema: {
|
|
128
|
-
types: [
|
|
129
|
-
// New unified configuration schema (EL_PluginConfiguration) with password input
|
|
130
|
-
createPluginConfigSchema(PasswordInput),
|
|
131
|
-
// Legacy schemas kept for migration compatibility
|
|
132
|
-
legacyLocaleConfigSchema,
|
|
133
|
-
legacyOAuthConfigSchema
|
|
134
|
-
]
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
//# sourceMappingURL=plugin.js.map
|
package/dist/plugin.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":";AAAA,yBAAyB;AACzB,OAAO,EAAE,YAAY,EAAe,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AAEpD;;;;GAIG;AACH,MAAM,uBAAuB,GAAG;IAC9B,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,iCAAiC;IACxC,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,IAAI,EAAE,iEAAiE;IAC/E,MAAM,EAAE;QACN;YACE,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,0BAA0B;YACvC,UAAU,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;SAC3C;QACD;YACE,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,oEAAoE;YACjF,UAAU,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC1C,UAAU,EAAE;gBACV,KAAK,EAAE,aAAa;aACrB;SACF;QACD;YACE,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,IAAI;SACf;KACF;CACF,CAAC;AAEF,oFAAoF;AACpF,SAAS,YAAY,CAAC,KAAkB;IACtC,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;IAEvD,6BAA6B;IAC7B,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,+BAA+B;IAC/B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,kBAAkB,GAAG,KAAK,IAAI,EAAE;YACpC,IAAI,CAAC;gBACH,mCAAmC;gBACnC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACpE,MAAM,mBAAmB,CAAC,UAAU,EAAE,CAAC;gBAEvC,iCAAiC;gBACjC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAChE,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAErC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;gBACjD,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;gBACvD,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,wCAAwC;YAClE,CAAC;QACH,CAAC,CAAC;QAEF,kBAAkB,EAAE,CAAC;IACvB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,CACL,KAAC,cAAc,cACZ,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,GACZ,CAClB,CAAC;AACJ,CAAC;AAED,eAAe,YAAY,CAAC;IAC1B,IAAI,EAAE,2BAA2B;IACjC,MAAM,EAAE;QACN,UAAU,EAAE;YACV,MAAM,EAAE,YAAY;SACrB;KACF;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,OAAO,CAAC,GAAG,CAAC,sDAAsD,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACjF,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,uBAAuB,EAAE,qBAAqB,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YAC5D,OAAO,UAAU,CAAC;QACpB,CAAC;KACF;IACD,IAAI,EAAE;QACJ,UAAU,EAAE;YACV,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;gBAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC;gBACzC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAExC,0DAA0D;gBAC1D,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;gBAC7F,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;oBAC/C,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAElF,+EAA+E;gBAC/E,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;gBACzH,MAAM,qBAAqB,GAAG,SAAS,IAAI,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAEpF,oFAAoF;gBACpF,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAChF,MAAM,kBAAkB,GAAG,SAAS,IAAI,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAE9E,4EAA4E;gBAC5E,kFAAkF;gBAClF,MAAM,aAAa,GAAG,kBAAkB,IAAI,CAAC,iBAAiB,IAAI,CAAC,qBAAqB,CAAC;gBAEzF,IAAI,aAAa,EAAE,CAAC;oBAClB,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC;gBAED,uCAAuC;gBACvC,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;SACF;KACF;IACD,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;QACd,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACpE,+FAA+F;QAC/F,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,EAAE;QACN,KAAK,EAAE;YACL,gFAAgF;YAChF,wBAAwB,CAAC,aAAa,CAAC;YAEvC,kDAAkD;YAClD,wBAAwB;YACxB,uBAAuB;SACxB;KACF;CACF,CAAC,CAAC"}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Authentication State Manager
|
|
3
|
-
*
|
|
4
|
-
* Manages the overall authentication state and provides reactive updates
|
|
5
|
-
* to UI components through an observable pattern.
|
|
6
|
-
*
|
|
7
|
-
* Requirements: 6.1, 6.2, 6.3, 6.4, 6.5
|
|
8
|
-
*/
|
|
9
|
-
import { AuthState, AuthStateData } from '../types/oauth';
|
|
10
|
-
import { TokenStorage } from './tokenStorage';
|
|
11
|
-
/**
|
|
12
|
-
* Callback function type for state change subscriptions
|
|
13
|
-
*/
|
|
14
|
-
type StateChangeCallback = (state: AuthStateData) => void;
|
|
15
|
-
/**
|
|
16
|
-
* Authentication State Manager
|
|
17
|
-
*
|
|
18
|
-
* Provides centralized management of authentication state with reactive updates.
|
|
19
|
-
* Uses observable pattern to notify subscribers of state changes.
|
|
20
|
-
*/
|
|
21
|
-
export declare class AuthStateManager {
|
|
22
|
-
private currentState;
|
|
23
|
-
private subscribers;
|
|
24
|
-
private tokenStorage;
|
|
25
|
-
/**
|
|
26
|
-
* Create a new Authentication State Manager
|
|
27
|
-
*
|
|
28
|
-
* Requirements: 6.1, 6.2
|
|
29
|
-
*
|
|
30
|
-
* @param tokenStorage - Token storage service for persistence
|
|
31
|
-
*/
|
|
32
|
-
constructor(tokenStorage: TokenStorage);
|
|
33
|
-
/**
|
|
34
|
-
* Validate state transition
|
|
35
|
-
*
|
|
36
|
-
* Requirements: 6.5
|
|
37
|
-
*
|
|
38
|
-
* @param fromState - Current state
|
|
39
|
-
* @param toState - Target state
|
|
40
|
-
* @returns True if transition is valid
|
|
41
|
-
*/
|
|
42
|
-
private isValidTransition;
|
|
43
|
-
/**
|
|
44
|
-
* Get current authentication state
|
|
45
|
-
*
|
|
46
|
-
* Requirements: 6.1, 6.2
|
|
47
|
-
*
|
|
48
|
-
* @returns Current authentication state data
|
|
49
|
-
*/
|
|
50
|
-
getState(): AuthStateData;
|
|
51
|
-
/**
|
|
52
|
-
* Update authentication state and notify subscribers
|
|
53
|
-
*
|
|
54
|
-
* Requirements: 6.2, 6.5
|
|
55
|
-
*
|
|
56
|
-
* @param state - New authentication state
|
|
57
|
-
* @param data - Additional state data
|
|
58
|
-
* @throws {OAuthError} If state transition is invalid
|
|
59
|
-
*/
|
|
60
|
-
setState(state: AuthState, data?: Partial<AuthStateData>): void;
|
|
61
|
-
/**
|
|
62
|
-
* Notify all subscribers of state change
|
|
63
|
-
*
|
|
64
|
-
* Requirements: 6.2
|
|
65
|
-
*/
|
|
66
|
-
private notifySubscribers;
|
|
67
|
-
/**
|
|
68
|
-
* Subscribe to state changes
|
|
69
|
-
*
|
|
70
|
-
* Requirements: 6.2
|
|
71
|
-
*
|
|
72
|
-
* @param callback - Function to call when state changes
|
|
73
|
-
* @returns Unsubscribe function
|
|
74
|
-
*/
|
|
75
|
-
subscribe(callback: StateChangeCallback): () => void;
|
|
76
|
-
/**
|
|
77
|
-
* Initialize state from stored authentication data
|
|
78
|
-
*
|
|
79
|
-
* Requirements: 6.1, 6.4
|
|
80
|
-
*
|
|
81
|
-
* @returns Promise that resolves when initialization is complete
|
|
82
|
-
*/
|
|
83
|
-
initialize(): Promise<void>;
|
|
84
|
-
/**
|
|
85
|
-
* Logout and clear all authentication data
|
|
86
|
-
*
|
|
87
|
-
* Requirements: 6.3, 6.4
|
|
88
|
-
*
|
|
89
|
-
* @returns Promise that resolves when logout is complete
|
|
90
|
-
*/
|
|
91
|
-
logout(): Promise<void>;
|
|
92
|
-
}
|
|
93
|
-
export {};
|
|
94
|
-
//# sourceMappingURL=authStateManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"authStateManager.d.ts","sourceRoot":"","sources":["../../src/services/authStateManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,aAAa,EAA8B,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;GAEG;AACH,KAAK,mBAAmB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAW1D;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,YAAY,CAAe;IAEnC;;;;;;OAMG;gBACS,YAAY,EAAE,YAAY;IAYtC;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;;;;OAMG;IACH,QAAQ,IAAI,aAAa;IAIzB;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAwC/D;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;;;;;;OAOG;IACH,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,IAAI;IAgBpD;;;;;;OAMG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsCjC;;;;;;OAMG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAwB9B"}
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Authentication State Manager
|
|
3
|
-
*
|
|
4
|
-
* Manages the overall authentication state and provides reactive updates
|
|
5
|
-
* to UI components through an observable pattern.
|
|
6
|
-
*
|
|
7
|
-
* Requirements: 6.1, 6.2, 6.3, 6.4, 6.5
|
|
8
|
-
*/
|
|
9
|
-
import { OAuthError, OAuthErrorType } from '../types/oauth';
|
|
10
|
-
/**
|
|
11
|
-
* Valid state transitions to prevent invalid state changes
|
|
12
|
-
*/
|
|
13
|
-
const VALID_TRANSITIONS = {
|
|
14
|
-
unauthenticated: ['authenticated', 'error'],
|
|
15
|
-
authenticated: ['unauthenticated', 'error'],
|
|
16
|
-
error: ['unauthenticated', 'authenticated']
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* Authentication State Manager
|
|
20
|
-
*
|
|
21
|
-
* Provides centralized management of authentication state with reactive updates.
|
|
22
|
-
* Uses observable pattern to notify subscribers of state changes.
|
|
23
|
-
*/
|
|
24
|
-
export class AuthStateManager {
|
|
25
|
-
/**
|
|
26
|
-
* Create a new Authentication State Manager
|
|
27
|
-
*
|
|
28
|
-
* Requirements: 6.1, 6.2
|
|
29
|
-
*
|
|
30
|
-
* @param tokenStorage - Token storage service for persistence
|
|
31
|
-
*/
|
|
32
|
-
constructor(tokenStorage) {
|
|
33
|
-
this.tokenStorage = tokenStorage;
|
|
34
|
-
this.subscribers = new Set();
|
|
35
|
-
// Initialize with unauthenticated state
|
|
36
|
-
this.currentState = {
|
|
37
|
-
state: 'unauthenticated'
|
|
38
|
-
};
|
|
39
|
-
console.log('AuthStateManager initialized');
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Validate state transition
|
|
43
|
-
*
|
|
44
|
-
* Requirements: 6.5
|
|
45
|
-
*
|
|
46
|
-
* @param fromState - Current state
|
|
47
|
-
* @param toState - Target state
|
|
48
|
-
* @returns True if transition is valid
|
|
49
|
-
*/
|
|
50
|
-
isValidTransition(fromState, toState) {
|
|
51
|
-
// Allow staying in the same state
|
|
52
|
-
if (fromState === toState) {
|
|
53
|
-
return true;
|
|
54
|
-
}
|
|
55
|
-
const validNextStates = VALID_TRANSITIONS[fromState];
|
|
56
|
-
return validNextStates.includes(toState);
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Get current authentication state
|
|
60
|
-
*
|
|
61
|
-
* Requirements: 6.1, 6.2
|
|
62
|
-
*
|
|
63
|
-
* @returns Current authentication state data
|
|
64
|
-
*/
|
|
65
|
-
getState() {
|
|
66
|
-
return { ...this.currentState };
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Update authentication state and notify subscribers
|
|
70
|
-
*
|
|
71
|
-
* Requirements: 6.2, 6.5
|
|
72
|
-
*
|
|
73
|
-
* @param state - New authentication state
|
|
74
|
-
* @param data - Additional state data
|
|
75
|
-
* @throws {OAuthError} If state transition is invalid
|
|
76
|
-
*/
|
|
77
|
-
setState(state, data) {
|
|
78
|
-
// Validate state transition
|
|
79
|
-
if (!this.isValidTransition(this.currentState.state, state)) {
|
|
80
|
-
throw new OAuthError(OAuthErrorType.INVALID_CONFIG, `Invalid state transition from ${this.currentState.state} to ${state}`);
|
|
81
|
-
}
|
|
82
|
-
// Create new state data
|
|
83
|
-
const newState = {
|
|
84
|
-
state,
|
|
85
|
-
...data
|
|
86
|
-
};
|
|
87
|
-
// Clear error if transitioning away from error state
|
|
88
|
-
if (this.currentState.state === 'error' && state !== 'error') {
|
|
89
|
-
delete newState.error;
|
|
90
|
-
}
|
|
91
|
-
// Clear user data if transitioning to unauthenticated
|
|
92
|
-
if (state === 'unauthenticated') {
|
|
93
|
-
delete newState.projectId;
|
|
94
|
-
delete newState.projectName;
|
|
95
|
-
delete newState.error;
|
|
96
|
-
}
|
|
97
|
-
console.log('Auth state changed', {
|
|
98
|
-
from: this.currentState.state,
|
|
99
|
-
to: state,
|
|
100
|
-
projectId: newState.projectId
|
|
101
|
-
});
|
|
102
|
-
// Update current state
|
|
103
|
-
this.currentState = newState;
|
|
104
|
-
// Notify all subscribers
|
|
105
|
-
this.notifySubscribers();
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Notify all subscribers of state change
|
|
109
|
-
*
|
|
110
|
-
* Requirements: 6.2
|
|
111
|
-
*/
|
|
112
|
-
notifySubscribers() {
|
|
113
|
-
const stateCopy = this.getState();
|
|
114
|
-
this.subscribers.forEach(callback => {
|
|
115
|
-
try {
|
|
116
|
-
callback(stateCopy);
|
|
117
|
-
}
|
|
118
|
-
catch (error) {
|
|
119
|
-
console.error('Error in state change subscriber:', error);
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Subscribe to state changes
|
|
125
|
-
*
|
|
126
|
-
* Requirements: 6.2
|
|
127
|
-
*
|
|
128
|
-
* @param callback - Function to call when state changes
|
|
129
|
-
* @returns Unsubscribe function
|
|
130
|
-
*/
|
|
131
|
-
subscribe(callback) {
|
|
132
|
-
this.subscribers.add(callback);
|
|
133
|
-
// Immediately call callback with current state
|
|
134
|
-
try {
|
|
135
|
-
callback(this.getState());
|
|
136
|
-
}
|
|
137
|
-
catch (error) {
|
|
138
|
-
console.error('Error in initial state callback:', error);
|
|
139
|
-
}
|
|
140
|
-
// Return unsubscribe function
|
|
141
|
-
return () => {
|
|
142
|
-
this.subscribers.delete(callback);
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Initialize state from stored authentication data
|
|
147
|
-
*
|
|
148
|
-
* Requirements: 6.1, 6.4
|
|
149
|
-
*
|
|
150
|
-
* @returns Promise that resolves when initialization is complete
|
|
151
|
-
*/
|
|
152
|
-
async initialize() {
|
|
153
|
-
try {
|
|
154
|
-
console.log('Initializing auth state from storage');
|
|
155
|
-
// Load stored auth data
|
|
156
|
-
const authData = await this.tokenStorage.getAuthData();
|
|
157
|
-
if (!authData) {
|
|
158
|
-
console.log('No stored auth data found, remaining unauthenticated');
|
|
159
|
-
this.setState('unauthenticated');
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
// Check if token exists (long-lived tokens don't expire)
|
|
163
|
-
const isExpired = await this.tokenStorage.isTokenExpired();
|
|
164
|
-
if (isExpired) {
|
|
165
|
-
console.log('No valid token found');
|
|
166
|
-
this.setState('unauthenticated');
|
|
167
|
-
return;
|
|
168
|
-
}
|
|
169
|
-
// Token is valid, set authenticated state
|
|
170
|
-
console.log('Valid token found, setting authenticated state');
|
|
171
|
-
this.setState('authenticated', {
|
|
172
|
-
projectId: authData.projectId,
|
|
173
|
-
projectName: authData.projectName
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
catch (error) {
|
|
177
|
-
console.error('Error initializing auth state:', error);
|
|
178
|
-
// Set error state
|
|
179
|
-
this.setState('error', {
|
|
180
|
-
error: 'Failed to initialize authentication state'
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Logout and clear all authentication data
|
|
186
|
-
*
|
|
187
|
-
* Requirements: 6.3, 6.4
|
|
188
|
-
*
|
|
189
|
-
* @returns Promise that resolves when logout is complete
|
|
190
|
-
*/
|
|
191
|
-
async logout() {
|
|
192
|
-
try {
|
|
193
|
-
console.log('Logging out');
|
|
194
|
-
// Clear stored auth data
|
|
195
|
-
await this.tokenStorage.clearAuthData();
|
|
196
|
-
// Update state to unauthenticated
|
|
197
|
-
this.setState('unauthenticated');
|
|
198
|
-
console.log('Logout complete');
|
|
199
|
-
}
|
|
200
|
-
catch (error) {
|
|
201
|
-
console.error('Error during logout:', error);
|
|
202
|
-
// Still transition to unauthenticated even if storage clear fails
|
|
203
|
-
this.setState('unauthenticated');
|
|
204
|
-
throw new OAuthError(OAuthErrorType.STORAGE_ERROR, 'Failed to clear authentication data during logout', error);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
//# sourceMappingURL=authStateManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"authStateManager.js","sourceRoot":"","sources":["../../src/services/authStateManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAA4B,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQtF;;GAEG;AACH,MAAM,iBAAiB,GAAmC;IACxD,eAAe,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC;IAC3C,aAAa,EAAE,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAC3C,KAAK,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC;CAC5C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IAK3B;;;;;;OAMG;IACH,YAAY,YAA0B;QACpC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAE7B,wCAAwC;QACxC,IAAI,CAAC,YAAY,GAAG;YAClB,KAAK,EAAE,iBAAiB;SACzB,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;;OAQG;IACK,iBAAiB,CAAC,SAAoB,EAAE,OAAkB;QAChE,kCAAkC;QAClC,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,eAAe,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACrD,OAAO,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;OAMG;IACH,QAAQ;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAClC,CAAC;IAED;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAgB,EAAE,IAA6B;QACtD,4BAA4B;QAC5B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,cAAc,EAC7B,iCAAiC,IAAI,CAAC,YAAY,CAAC,KAAK,OAAO,KAAK,EAAE,CACvE,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,MAAM,QAAQ,GAAkB;YAC9B,KAAK;YACL,GAAG,IAAI;SACR,CAAC;QAEF,qDAAqD;QACrD,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAC7D,OAAO,QAAQ,CAAC,KAAK,CAAC;QACxB,CAAC;QAED,sDAAsD;QACtD,IAAI,KAAK,KAAK,iBAAiB,EAAE,CAAC;YAChC,OAAO,QAAQ,CAAC,SAAS,CAAC;YAC1B,OAAO,QAAQ,CAAC,WAAW,CAAC;YAC5B,OAAO,QAAQ,CAAC,KAAK,CAAC;QACxB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE;YAChC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;YAC7B,EAAE,EAAE,KAAK;YACT,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC,CAAC;QAEH,uBAAuB;QACvB,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAE7B,yBAAyB;QACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACK,iBAAiB;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAElC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAClC,IAAI,CAAC;gBACH,QAAQ,CAAC,SAAS,CAAC,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,QAA6B;QACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE/B,+CAA+C;QAC/C,IAAI,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC;QAED,8BAA8B;QAC9B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YAEpD,wBAAwB;YACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAEvD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;gBACpE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;gBACjC,OAAO;YACT,CAAC;YAED,yDAAyD;YACzD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;YAE3D,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACpC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;gBACjC,OAAO;YACT,CAAC;YAED,0CAA0C;YAC1C,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAC9D,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;gBAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YAEvD,kBAAkB;YAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;gBACrB,KAAK,EAAE,2CAA2C;aACnD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAE3B,yBAAyB;YACzB,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YAExC,kCAAkC;YAClC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAEjC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAE7C,kEAAkE;YAClE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAEjC,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,aAAa,EAC5B,mDAAmD,EACnD,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { SanityDocument } from 'sanity';
|
|
2
|
-
export interface DocumentContent {
|
|
3
|
-
documentId: string;
|
|
4
|
-
title: string;
|
|
5
|
-
htmlContent: string;
|
|
6
|
-
}
|
|
7
|
-
export interface ExtendedDocumentContent extends DocumentContent {
|
|
8
|
-
slug?: string;
|
|
9
|
-
/** Fields can be either flat values or TranslatableField objects with value and dnt properties */
|
|
10
|
-
fields?: Record<string, any>;
|
|
11
|
-
}
|
|
12
|
-
export interface ExtractedContent {
|
|
13
|
-
documentId: string;
|
|
14
|
-
documentType: string;
|
|
15
|
-
title: string;
|
|
16
|
-
htmlContent: string;
|
|
17
|
-
extractedAt: Date;
|
|
18
|
-
}
|
|
19
|
-
export declare class ContentExtractor {
|
|
20
|
-
/**
|
|
21
|
-
* Infer the Sanity field type from a value
|
|
22
|
-
*
|
|
23
|
-
* @param value - The field value to inspect
|
|
24
|
-
* @returns The inferred Sanity type string
|
|
25
|
-
*/
|
|
26
|
-
private inferSanityType;
|
|
27
|
-
/**
|
|
28
|
-
* Extract content from a single Sanity document and convert to HTML
|
|
29
|
-
*/
|
|
30
|
-
extractDocumentContent(document: SanityDocument): Promise<string>;
|
|
31
|
-
/**
|
|
32
|
-
* Convert Sanity document content to HTML format
|
|
33
|
-
*/
|
|
34
|
-
convertToHtml(content: any): string;
|
|
35
|
-
/**
|
|
36
|
-
* Extract structured content with separated body, title, slug, and fields
|
|
37
|
-
* Also applies DNT preferences if available
|
|
38
|
-
*/
|
|
39
|
-
extractStructuredContent(document: SanityDocument): Promise<ExtendedDocumentContent>;
|
|
40
|
-
/**
|
|
41
|
-
* Apply DNT preferences to extracted fields based on document type
|
|
42
|
-
* Now uses document-type-based configuration that applies to all documents of the same type
|
|
43
|
-
*/
|
|
44
|
-
private applyDNTPreferences;
|
|
45
|
-
/**
|
|
46
|
-
* Extract content from multiple documents for bulk operations
|
|
47
|
-
*/
|
|
48
|
-
extractBulkContent(documents: SanityDocument[]): Promise<DocumentContent[]>;
|
|
49
|
-
/**
|
|
50
|
-
* Extract structured content from multiple documents
|
|
51
|
-
*/
|
|
52
|
-
extractBulkStructuredContent(documents: SanityDocument[]): Promise<ExtendedDocumentContent[]>;
|
|
53
|
-
/**
|
|
54
|
-
* Process individual fields based on their type
|
|
55
|
-
*/
|
|
56
|
-
private processField;
|
|
57
|
-
/**
|
|
58
|
-
* Process array fields (like portable text blocks)
|
|
59
|
-
*/
|
|
60
|
-
private processArray;
|
|
61
|
-
/**
|
|
62
|
-
* Process portable text blocks and convert to HTML
|
|
63
|
-
*/
|
|
64
|
-
private processPortableTextBlock;
|
|
65
|
-
/**
|
|
66
|
-
* Extract content from portable text block children
|
|
67
|
-
*/
|
|
68
|
-
private processPortableTextBlockContent;
|
|
69
|
-
/**
|
|
70
|
-
* Process object fields
|
|
71
|
-
*/
|
|
72
|
-
private processObject;
|
|
73
|
-
/**
|
|
74
|
-
* Wrap content in HTML with field name as class
|
|
75
|
-
*/
|
|
76
|
-
private wrapInHtml;
|
|
77
|
-
/**
|
|
78
|
-
* Separate main content from metadata fields
|
|
79
|
-
* All fields are immediately wrapped in TranslatableField format with type information
|
|
80
|
-
*/
|
|
81
|
-
private separateContentAndFields;
|
|
82
|
-
/**
|
|
83
|
-
* Extract slug from document
|
|
84
|
-
*/
|
|
85
|
-
private extractSlug;
|
|
86
|
-
/**
|
|
87
|
-
* Extract title from document
|
|
88
|
-
*/
|
|
89
|
-
private extractTitle;
|
|
90
|
-
/**
|
|
91
|
-
* Escape HTML special characters
|
|
92
|
-
*/
|
|
93
|
-
private escapeHtml;
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=contentExtractor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contentExtractor.d.ts","sourceRoot":"","sources":["../../src/services/contentExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAIxC,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kGAAkG;IAClG,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,IAAI,CAAC;CACnB;AAED,qBAAa,gBAAgB;IAC3B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAmCvB;;OAEG;IACG,sBAAsB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IASvE;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM;IAsBnC;;;OAGG;IACG,wBAAwB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAsB1F;;;OAGG;YACW,mBAAmB;IAgDjC;;OAEG;IACG,kBAAkB,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAsBjF;;OAEG;IACG,4BAA4B,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAgBnG;;OAEG;IACH,OAAO,CAAC,YAAY;IAuBpB;;OAEG;IACH,OAAO,CAAC,YAAY;IA2CpB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;OAEG;IACH,OAAO,CAAC,+BAA+B;IA8CvC;;OAEG;IACH,OAAO,CAAC,aAAa;IAoGrB;;OAEG;IACH,OAAO,CAAC,UAAU;IAKlB;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAgEhC;;OAEG;IACH,OAAO,CAAC,WAAW;IA2BnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAcpB;;OAEG;IACH,OAAO,CAAC,UAAU;CAKnB"}
|