@crownpeak/dqm-react-component 1.1.0 → 1.2.0

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 (163) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +52 -24
  3. package/dist/DQMSidebar.d.ts.map +1 -1
  4. package/dist/ErrorBoundary.d.ts.map +1 -1
  5. package/dist/__tests__/setup.d.ts +1 -0
  6. package/dist/__tests__/setup.d.ts.map +1 -0
  7. package/dist/__tests__/utils.d.ts +145 -0
  8. package/dist/__tests__/utils.d.ts.map +1 -0
  9. package/dist/auth-ui/assets/index-YKFZYENy.js +158 -0
  10. package/dist/auth-ui/index.html +1 -1
  11. package/dist/components/auth/DQMLogin.d.ts.map +1 -1
  12. package/dist/components/auth/index.d.ts +0 -1
  13. package/dist/components/auth/index.d.ts.map +1 -1
  14. package/dist/components/cards/AISummaryCard.d.ts +2 -0
  15. package/dist/components/cards/AISummaryCard.d.ts.map +1 -0
  16. package/dist/components/cards/index.d.ts +1 -0
  17. package/dist/components/cards/index.d.ts.map +1 -1
  18. package/dist/components/common/LanguageSwitch.d.ts +5 -0
  19. package/dist/components/common/LanguageSwitch.d.ts.map +1 -0
  20. package/dist/components/common/LanguageSwitchBase.d.ts +16 -0
  21. package/dist/components/common/LanguageSwitchBase.d.ts.map +1 -0
  22. package/dist/components/common/index.d.ts +1 -0
  23. package/dist/components/common/index.d.ts.map +1 -1
  24. package/dist/components/modals/AISettingsDialog.d.ts +61 -0
  25. package/dist/components/modals/AISettingsDialog.d.ts.map +1 -0
  26. package/dist/components/modals/HighlightModal.d.ts +45 -0
  27. package/dist/components/modals/HighlightModal.d.ts.map +1 -0
  28. package/dist/components/modals/LoginOverlay.d.ts +22 -0
  29. package/dist/components/modals/LoginOverlay.d.ts.map +1 -0
  30. package/dist/components/modals/index.d.ts +9 -0
  31. package/dist/components/modals/index.d.ts.map +1 -0
  32. package/dist/components/renderers/BrowserViewRenderer.d.ts.map +1 -1
  33. package/dist/components/renderers/ShadowDOMRenderer.d.ts.map +1 -1
  34. package/dist/components/sidebar/index.d.ts +1 -0
  35. package/dist/components/sidebar/index.d.ts.map +1 -1
  36. package/dist/context/ai/AIContext.d.ts +13 -0
  37. package/dist/context/ai/AIContext.d.ts.map +1 -0
  38. package/dist/context/ai/index.d.ts +12 -0
  39. package/dist/context/ai/index.d.ts.map +1 -0
  40. package/dist/context/ai/types.d.ts +161 -0
  41. package/dist/context/ai/types.d.ts.map +1 -0
  42. package/dist/context/ai/useAIEngine.d.ts +10 -0
  43. package/dist/context/ai/useAIEngine.d.ts.map +1 -0
  44. package/dist/context/ai/useAISummary.d.ts +10 -0
  45. package/dist/context/ai/useAISummary.d.ts.map +1 -0
  46. package/dist/context/ai/useAITranslation.d.ts +10 -0
  47. package/dist/context/ai/useAITranslation.d.ts.map +1 -0
  48. package/dist/context/ai/useTranslationCache.d.ts +9 -0
  49. package/dist/context/ai/useTranslationCache.d.ts.map +1 -0
  50. package/dist/dqm-widget.esm.js +394 -264
  51. package/dist/dqm-widget.iife.js +76 -25
  52. package/dist/hooks/index.d.ts +10 -0
  53. package/dist/hooks/index.d.ts.map +1 -0
  54. package/dist/hooks/useAnalysis.d.ts +43 -0
  55. package/dist/hooks/useAnalysis.d.ts.map +1 -0
  56. package/dist/hooks/useAuthentication.d.ts +49 -0
  57. package/dist/hooks/useAuthentication.d.ts.map +1 -0
  58. package/dist/hooks/useHighlightActions.d.ts +37 -0
  59. package/dist/hooks/useHighlightActions.d.ts.map +1 -0
  60. package/dist/hooks/useHighlights.d.ts +72 -0
  61. package/dist/hooks/useHighlights.d.ts.map +1 -0
  62. package/dist/html-pages/DQMWidget.d.ts.map +1 -1
  63. package/dist/html-pages/index.d.ts.map +1 -1
  64. package/dist/i18n/auth/de.d.ts +25 -0
  65. package/dist/i18n/auth/de.d.ts.map +1 -0
  66. package/dist/i18n/auth/en.d.ts +26 -0
  67. package/dist/i18n/auth/en.d.ts.map +1 -0
  68. package/dist/i18n/auth/es.d.ts +25 -0
  69. package/dist/i18n/auth/es.d.ts.map +1 -0
  70. package/dist/i18n/auth/index.d.ts +8 -0
  71. package/dist/i18n/auth/index.d.ts.map +1 -0
  72. package/dist/i18n/common/de.d.ts +18 -0
  73. package/dist/i18n/common/de.d.ts.map +1 -0
  74. package/dist/i18n/common/en.d.ts +19 -0
  75. package/dist/i18n/common/en.d.ts.map +1 -0
  76. package/dist/i18n/common/es.d.ts +18 -0
  77. package/dist/i18n/common/es.d.ts.map +1 -0
  78. package/dist/i18n/common/index.d.ts +8 -0
  79. package/dist/i18n/common/index.d.ts.map +1 -0
  80. package/dist/i18n/demo/de.d.ts +104 -0
  81. package/dist/i18n/demo/de.d.ts.map +1 -0
  82. package/dist/i18n/demo/en.d.ts +105 -0
  83. package/dist/i18n/demo/en.d.ts.map +1 -0
  84. package/dist/i18n/demo/es.d.ts +104 -0
  85. package/dist/i18n/demo/es.d.ts.map +1 -0
  86. package/dist/i18n/demo/index.d.ts +8 -0
  87. package/dist/i18n/demo/index.d.ts.map +1 -0
  88. package/dist/i18n/index.d.ts +673 -0
  89. package/dist/i18n/index.d.ts.map +1 -0
  90. package/dist/i18n/sidebar/de.d.ts +89 -0
  91. package/dist/i18n/sidebar/de.d.ts.map +1 -0
  92. package/dist/i18n/sidebar/en.d.ts +90 -0
  93. package/dist/i18n/sidebar/en.d.ts.map +1 -0
  94. package/dist/i18n/sidebar/es.d.ts +89 -0
  95. package/dist/i18n/sidebar/es.d.ts.map +1 -0
  96. package/dist/i18n/sidebar/index.d.ts +8 -0
  97. package/dist/i18n/sidebar/index.d.ts.map +1 -0
  98. package/dist/i18n.d.ts +8 -0
  99. package/dist/i18n.d.ts.map +1 -0
  100. package/dist/index.cjs +61 -31
  101. package/dist/index.cjs.map +1 -1
  102. package/dist/index.d.ts +7 -1
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.html +3 -3
  105. package/dist/index.js +17795 -7252
  106. package/dist/index.js.map +1 -1
  107. package/dist/locale.d.ts +25 -0
  108. package/dist/locale.d.ts.map +1 -0
  109. package/dist/mocks/browser.d.ts +23 -0
  110. package/dist/mocks/browser.d.ts.map +1 -0
  111. package/dist/mocks/handlers.d.ts +32 -0
  112. package/dist/mocks/handlers.d.ts.map +1 -0
  113. package/dist/mocks/index.d.ts +7 -0
  114. package/dist/mocks/index.d.ts.map +1 -0
  115. package/dist/mocks/server.d.ts +24 -0
  116. package/dist/mocks/server.d.ts.map +1 -0
  117. package/dist/server/routes/auth.js +0 -10
  118. package/dist/server/routes/auth.js.map +1 -1
  119. package/dist/store/api/dqmApi.d.ts +1793 -0
  120. package/dist/store/api/dqmApi.d.ts.map +1 -0
  121. package/dist/store/api/index.d.ts +6 -0
  122. package/dist/store/api/index.d.ts.map +1 -0
  123. package/dist/store/index.d.ts +57 -0
  124. package/dist/store/index.d.ts.map +1 -0
  125. package/dist/store/localeSlice.d.ts +6 -0
  126. package/dist/store/localeSlice.d.ts.map +1 -0
  127. package/dist/store/slices/aiSlice.d.ts +134 -0
  128. package/dist/store/slices/aiSlice.d.ts.map +1 -0
  129. package/dist/store/slices/analysisSlice.d.ts +54 -0
  130. package/dist/store/slices/analysisSlice.d.ts.map +1 -0
  131. package/dist/store/slices/authSlice.d.ts +170 -0
  132. package/dist/store/slices/authSlice.d.ts.map +1 -0
  133. package/dist/store/slices/highlightSlice.d.ts +188 -0
  134. package/dist/store/slices/highlightSlice.d.ts.map +1 -0
  135. package/dist/store/slices/index.d.ts +12 -0
  136. package/dist/store/slices/index.d.ts.map +1 -0
  137. package/dist/types.d.ts +27 -8
  138. package/dist/types.d.ts.map +1 -1
  139. package/dist/utils/aiJsonClient.d.ts +23 -0
  140. package/dist/utils/aiJsonClient.d.ts.map +1 -0
  141. package/dist/utils/colors/GenerateCategoryColors.d.ts.map +1 -1
  142. package/dist/utils/logger.d.ts +107 -0
  143. package/dist/utils/logger.d.ts.map +1 -0
  144. package/dist/utils/openaiJsonClient.d.ts +8 -0
  145. package/dist/utils/openaiJsonClient.d.ts.map +1 -0
  146. package/dist/utils/sanitizeHtmlDocument.d.ts +4 -0
  147. package/dist/utils/sanitizeHtmlDocument.d.ts.map +1 -0
  148. package/dist/utils/secureStorage.d.ts +95 -0
  149. package/dist/utils/secureStorage.d.ts.map +1 -0
  150. package/dist/utils/storage.d.ts.map +1 -1
  151. package/dist/utils/translationCache.d.ts +45 -0
  152. package/dist/utils/translationCache.d.ts.map +1 -0
  153. package/dist/utils/translationUtils.d.ts +52 -0
  154. package/dist/utils/translationUtils.d.ts.map +1 -0
  155. package/package.json +48 -10
  156. package/AUTHENTICATION.md +0 -281
  157. package/BACKEND-API.md +0 -1829
  158. package/DEVELOPMENT.md +0 -374
  159. package/EXAMPLES.md +0 -381
  160. package/QUICKSTART.md +0 -207
  161. package/dist/auth-ui/assets/index-CczTRrba.js +0 -158
  162. package/dist/components/auth/OAuth2CallbackHandler.d.ts +0 -15
  163. package/dist/components/auth/OAuth2CallbackHandler.d.ts.map +0 -1
@@ -0,0 +1,188 @@
1
+ import { PayloadAction } from '@reduxjs/toolkit';
2
+ import { Checkpoint } from '../../types';
3
+ export type ViewMode = 'browser' | 'source';
4
+ export interface HighlightCacheEntry {
5
+ browser?: string;
6
+ source?: string;
7
+ timestamp: number;
8
+ }
9
+ export interface HighlightSliceState {
10
+ /** Currently selected checkpoint for highlighting */
11
+ selectedCheckpoint: Checkpoint | null;
12
+ /** Currently selected checkpoint ID */
13
+ selectedCheckpointId: string | null;
14
+ /** Current view mode (browser or source) */
15
+ viewMode: ViewMode;
16
+ /** Whether to show all highlights or just selected */
17
+ showAllHighlights: boolean;
18
+ /** Index of currently visible highlight (for navigation) - 1-based */
19
+ currentHighlightIndex: number;
20
+ /** Total number of highlights on current page */
21
+ totalHighlights: number;
22
+ /** Index of highlight visible via scroll observation - 1-based */
23
+ visibleHighlightIndex: number;
24
+ /** Cached highlight content by checkpoint ID */
25
+ cache: Record<string, HighlightCacheEntry>;
26
+ /** Scroll positions by checkpoint ID */
27
+ scrollPositions: Record<string, {
28
+ browser: number;
29
+ source: number;
30
+ }>;
31
+ /** Whether highlight modal is open */
32
+ isModalOpen: boolean;
33
+ /** Loading state for highlight content */
34
+ isLoading: boolean;
35
+ /** Error message if highlight loading failed */
36
+ error: string | null;
37
+ /** Current highlighted HTML content to display */
38
+ highlightedContent: string;
39
+ /** Whether scripts are disabled in browser view */
40
+ scriptsDisabled: boolean;
41
+ /** Whether auto-scroll to first highlight has occurred */
42
+ hasAutoScrolled: boolean;
43
+ /** Click indicator to trigger scroll (incremented on nav button click) */
44
+ clickedIndicator: number;
45
+ /** Asset ID for the current analysis */
46
+ currentAssetId: string | null;
47
+ }
48
+ export declare const highlightSlice: import('@reduxjs/toolkit').Slice<HighlightSliceState, {
49
+ /** Select a checkpoint for highlighting */
50
+ selectCheckpoint: (state: import('immer').WritableDraft<HighlightSliceState>, action: PayloadAction<Checkpoint | null>) => void;
51
+ /** Set checkpoint ID without full checkpoint object */
52
+ setSelectedCheckpointId: (state: import('immer').WritableDraft<HighlightSliceState>, action: PayloadAction<string | null>) => void;
53
+ /** Toggle between browser and source view */
54
+ setViewMode: (state: import('immer').WritableDraft<HighlightSliceState>, action: PayloadAction<ViewMode>) => void;
55
+ /** Toggle showing all highlights vs selected */
56
+ toggleShowAllHighlights: (state: import('immer').WritableDraft<HighlightSliceState>) => void;
57
+ /** Set show all highlights explicitly */
58
+ setShowAllHighlights: (state: import('immer').WritableDraft<HighlightSliceState>, action: PayloadAction<boolean>) => void;
59
+ /** Navigate to specific highlight */
60
+ setCurrentHighlightIndex: (state: import('immer').WritableDraft<HighlightSliceState>, action: PayloadAction<number>) => void;
61
+ /** Navigate to next highlight */
62
+ nextHighlight: (state: import('immer').WritableDraft<HighlightSliceState>) => void;
63
+ /** Navigate to previous highlight */
64
+ previousHighlight: (state: import('immer').WritableDraft<HighlightSliceState>) => void;
65
+ /** Set total highlights count */
66
+ setTotalHighlights: (state: import('immer').WritableDraft<HighlightSliceState>, action: PayloadAction<number>) => void;
67
+ /** Update visible highlight from scroll observation */
68
+ setVisibleHighlightIndex: (state: import('immer').WritableDraft<HighlightSliceState>, action: PayloadAction<number>) => void;
69
+ /** Cache highlight content */
70
+ cacheHighlight: (state: import('immer').WritableDraft<HighlightSliceState>, action: PayloadAction<{
71
+ checkpointId: string;
72
+ content: string;
73
+ type: "browser" | "source";
74
+ }>) => void;
75
+ /** Get cached content if valid */
76
+ clearExpiredCache: (state: import('immer').WritableDraft<HighlightSliceState>) => void;
77
+ /** Clear all cache */
78
+ clearCache: (state: import('immer').WritableDraft<HighlightSliceState>) => void;
79
+ /** Save scroll position for checkpoint */
80
+ saveScrollPosition: (state: import('immer').WritableDraft<HighlightSliceState>, action: PayloadAction<{
81
+ checkpointId: string;
82
+ position: {
83
+ browser?: number;
84
+ source?: number;
85
+ };
86
+ }>) => void;
87
+ /** Open highlight modal */
88
+ openModal: (state: import('immer').WritableDraft<HighlightSliceState>) => void;
89
+ /** Close highlight modal */
90
+ closeModal: (state: import('immer').WritableDraft<HighlightSliceState>) => void;
91
+ /** Set highlighted content */
92
+ setHighlightedContent: (state: import('immer').WritableDraft<HighlightSliceState>, action: PayloadAction<string>) => void;
93
+ /** Toggle scripts in browser view */
94
+ toggleScripts: (state: import('immer').WritableDraft<HighlightSliceState>) => void;
95
+ /** Set scripts disabled state */
96
+ setScriptsDisabled: (state: import('immer').WritableDraft<HighlightSliceState>, action: PayloadAction<boolean>) => void;
97
+ /** Set has auto scrolled flag */
98
+ setHasAutoScrolled: (state: import('immer').WritableDraft<HighlightSliceState>, action: PayloadAction<boolean>) => void;
99
+ /** Increment click indicator to trigger scroll */
100
+ incrementClickIndicator: (state: import('immer').WritableDraft<HighlightSliceState>) => void;
101
+ /** Set current asset ID */
102
+ setCurrentAssetId: (state: import('immer').WritableDraft<HighlightSliceState>, action: PayloadAction<string | null>) => void;
103
+ /** Navigate highlight with wrap-around */
104
+ navigateHighlight: (state: import('immer').WritableDraft<HighlightSliceState>, action: PayloadAction<"next" | "prev">) => void;
105
+ /** Set loading state */
106
+ setLoading: (state: import('immer').WritableDraft<HighlightSliceState>, action: PayloadAction<boolean>) => void;
107
+ /** Set error state */
108
+ setError: (state: import('immer').WritableDraft<HighlightSliceState>, action: PayloadAction<string | null>) => void;
109
+ /** Reset highlight state */
110
+ resetHighlight: (state: import('immer').WritableDraft<HighlightSliceState>) => void;
111
+ }, "highlight", "highlight", import('@reduxjs/toolkit').SliceSelectors<HighlightSliceState>>;
112
+ export declare const selectCheckpoint: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<Checkpoint, "highlight/selectCheckpoint">, setSelectedCheckpointId: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<string, "highlight/setSelectedCheckpointId">, setViewMode: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<ViewMode, "highlight/setViewMode">, toggleShowAllHighlights: import('@reduxjs/toolkit').ActionCreatorWithoutPayload<"highlight/toggleShowAllHighlights">, setShowAllHighlights: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<boolean, "highlight/setShowAllHighlights">, setCurrentHighlightIndex: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<number, "highlight/setCurrentHighlightIndex">, nextHighlight: import('@reduxjs/toolkit').ActionCreatorWithoutPayload<"highlight/nextHighlight">, previousHighlight: import('@reduxjs/toolkit').ActionCreatorWithoutPayload<"highlight/previousHighlight">, setTotalHighlights: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<number, "highlight/setTotalHighlights">, setVisibleHighlightIndex: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<number, "highlight/setVisibleHighlightIndex">, cacheHighlight: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<{
113
+ checkpointId: string;
114
+ content: string;
115
+ type: "browser" | "source";
116
+ }, "highlight/cacheHighlight">, clearExpiredCache: import('@reduxjs/toolkit').ActionCreatorWithoutPayload<"highlight/clearExpiredCache">, clearCache: import('@reduxjs/toolkit').ActionCreatorWithoutPayload<"highlight/clearCache">, saveScrollPosition: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<{
117
+ checkpointId: string;
118
+ position: {
119
+ browser?: number;
120
+ source?: number;
121
+ };
122
+ }, "highlight/saveScrollPosition">, openModal: import('@reduxjs/toolkit').ActionCreatorWithoutPayload<"highlight/openModal">, closeModal: import('@reduxjs/toolkit').ActionCreatorWithoutPayload<"highlight/closeModal">, setLoading: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<boolean, "highlight/setLoading">, setError: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<string, "highlight/setError">, resetHighlight: import('@reduxjs/toolkit').ActionCreatorWithoutPayload<"highlight/resetHighlight">, setHighlightedContent: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<string, "highlight/setHighlightedContent">, toggleScripts: import('@reduxjs/toolkit').ActionCreatorWithoutPayload<"highlight/toggleScripts">, setScriptsDisabled: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<boolean, "highlight/setScriptsDisabled">, setHasAutoScrolled: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<boolean, "highlight/setHasAutoScrolled">, incrementClickIndicator: import('@reduxjs/toolkit').ActionCreatorWithoutPayload<"highlight/incrementClickIndicator">, setCurrentAssetId: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<string, "highlight/setCurrentAssetId">, navigateHighlight: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<"next" | "prev", "highlight/navigateHighlight">;
123
+ declare const _default: import('redux').Reducer<HighlightSliceState>;
124
+ export default _default;
125
+ export declare const selectSelectedCheckpoint: (state: {
126
+ highlight: HighlightSliceState;
127
+ }) => Checkpoint;
128
+ export declare const selectSelectedCheckpointId: (state: {
129
+ highlight: HighlightSliceState;
130
+ }) => string;
131
+ export declare const selectViewMode: (state: {
132
+ highlight: HighlightSliceState;
133
+ }) => ViewMode;
134
+ export declare const selectShowAllHighlights: (state: {
135
+ highlight: HighlightSliceState;
136
+ }) => boolean;
137
+ export declare const selectCurrentHighlightIndex: (state: {
138
+ highlight: HighlightSliceState;
139
+ }) => number;
140
+ export declare const selectTotalHighlights: (state: {
141
+ highlight: HighlightSliceState;
142
+ }) => number;
143
+ export declare const selectVisibleHighlightIndex: (state: {
144
+ highlight: HighlightSliceState;
145
+ }) => number;
146
+ export declare const selectHighlightCache: (state: {
147
+ highlight: HighlightSliceState;
148
+ }) => Record<string, HighlightCacheEntry>;
149
+ export declare const selectScrollPositions: (state: {
150
+ highlight: HighlightSliceState;
151
+ }) => Record<string, {
152
+ browser: number;
153
+ source: number;
154
+ }>;
155
+ export declare const selectIsModalOpen: (state: {
156
+ highlight: HighlightSliceState;
157
+ }) => boolean;
158
+ export declare const selectIsHighlightLoading: (state: {
159
+ highlight: HighlightSliceState;
160
+ }) => boolean;
161
+ export declare const selectHighlightError: (state: {
162
+ highlight: HighlightSliceState;
163
+ }) => string;
164
+ export declare const selectHighlightedContent: (state: {
165
+ highlight: HighlightSliceState;
166
+ }) => string;
167
+ export declare const selectScriptsDisabled: (state: {
168
+ highlight: HighlightSliceState;
169
+ }) => boolean;
170
+ export declare const selectHasAutoScrolled: (state: {
171
+ highlight: HighlightSliceState;
172
+ }) => boolean;
173
+ export declare const selectClickedIndicator: (state: {
174
+ highlight: HighlightSliceState;
175
+ }) => number;
176
+ export declare const selectCurrentAssetId: (state: {
177
+ highlight: HighlightSliceState;
178
+ }) => string;
179
+ export declare const selectCachedContent: (checkpointId: string, type: "browser" | "source") => (state: {
180
+ highlight: HighlightSliceState;
181
+ }) => string;
182
+ export declare const selectScrollPosition: (checkpointId: string) => (state: {
183
+ highlight: HighlightSliceState;
184
+ }) => {
185
+ browser: number;
186
+ source: number;
187
+ };
188
+ //# sourceMappingURL=highlightSlice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"highlightSlice.d.ts","sourceRoot":"","sources":["../../../src/store/slices/highlightSlice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Redux Slices exports
3
+ */
4
+ export { analysisSlice, startAnalysis, setAssetId, analysisCompleted, analysisFailed, resetAnalysis, updateAnalysisState, selectAnalysisState, selectAnalysisData, selectAssetId, selectIsAnalyzing, selectAnalysisError, selectAnalysisDuration, } from './analysisSlice';
5
+ export type { AnalysisSliceState } from './analysisSlice';
6
+ export { highlightSlice, selectCheckpoint, setViewMode, toggleShowAllHighlights, setShowAllHighlights, setCurrentHighlightIndex, nextHighlight, previousHighlight, setTotalHighlights, setVisibleHighlightIndex, cacheHighlight, clearExpiredCache, clearCache, saveScrollPosition, openModal, closeModal, setLoading as setHighlightLoading, setError as setHighlightError, resetHighlight, selectSelectedCheckpoint, selectViewMode, selectShowAllHighlights, selectCurrentHighlightIndex, selectTotalHighlights, selectVisibleHighlightIndex, selectHighlightCache, selectScrollPositions, selectIsModalOpen, selectIsHighlightLoading, selectHighlightError, selectCachedContent, selectScrollPosition, } from './highlightSlice';
7
+ export type { HighlightSliceState, ViewMode, HighlightCacheEntry } from './highlightSlice';
8
+ export { authSlice, setApiKey, setWebsiteId, setCredentials, setSessionToken, setRememberMe, acknowledgeStorageWarning, setAuthLoading, setAuthError, logout, resetAuth, hydrateFromStorage, selectApiKey, selectWebsiteId, selectIsAuthenticated, selectSessionType, selectAccessToken, selectRememberMe, selectAuthLoading, selectAuthError, selectStorageWarningAcknowledged, STORAGE_KEYS, } from './authSlice';
9
+ export type { AuthSliceState } from './authSlice';
10
+ export { aiSlice, updateSettings, setProvider, setOpenAIApiKey, setOpenAIModel, setTranslationProvider, openSettings, closeSettings, toggleSettings, startGeneration, generationCompleted, generationFailed, clearError as clearAIError, clearSummaries, clearSummary, resetAI, hydrateSettings, selectAISettings, selectAIProvider, selectAIEnabled, selectOpenAIApiKey, selectOpenAIModel, selectTranslationProvider, selectIsSettingsOpen, selectIsGenerating, selectGeneratingFor, selectAIError, selectAllSummaries, selectSummary, AI_STORAGE_KEYS, } from './aiSlice';
11
+ export type { AISliceState, AISettings, AISummary, AIProvider, TranslationProvider } from './aiSlice';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/store/slices/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,aAAa,EACb,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,UAAU,IAAI,mBAAmB,EACjC,QAAQ,IAAI,iBAAiB,EAC7B,cAAc,EACd,wBAAwB,EACxB,cAAc,EACd,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE3F,OAAO,EACL,SAAS,EACT,SAAS,EACT,YAAY,EACZ,cAAc,EACd,eAAe,EACf,aAAa,EACb,yBAAyB,EACzB,cAAc,EACd,YAAY,EACZ,MAAM,EACN,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gCAAgC,EAChC,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EACL,OAAO,EACP,cAAc,EACd,WAAW,EACX,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,IAAI,YAAY,EAC1B,cAAc,EACd,YAAY,EACZ,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,eAAe,GAChB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC"}
package/dist/types.d.ts CHANGED
@@ -2,13 +2,6 @@ import { default as React } from 'react';
2
2
  export type AnalysisState = 'idle' | 'analyzing' | 'completed' | 'error';
3
3
  export type AuthMode = 'props' | 'localStorage' | 'backend';
4
4
  export type SessionType = 'direct' | 'backend';
5
- export interface OAuth2Config {
6
- authUrl: string;
7
- tokenUrl: string;
8
- clientId: string;
9
- redirectUri: string;
10
- scope?: string;
11
- }
12
5
  /**
13
6
  * Position for manual overlay offset configuration.
14
7
  * Specifies from which edge the offset should be applied.
@@ -73,11 +66,22 @@ export interface OverlayConfig {
73
66
  pixels: number;
74
67
  };
75
68
  }
69
+ export interface TranslationConfig {
70
+ /**
71
+ * Enable auto-translation by default (user can still toggle at runtime).
72
+ * Default: false
73
+ */
74
+ enabledByDefault?: boolean;
75
+ /**
76
+ * Translation compute budget in milliseconds.
77
+ * Default: 15000
78
+ */
79
+ computeBudgetMs?: number;
80
+ }
76
81
  export interface DQMConfig {
77
82
  apiKey?: string;
78
83
  websiteId?: string;
79
84
  authBackendUrl?: string;
80
- oauth2Config?: OAuth2Config;
81
85
  useLocalStorage?: boolean;
82
86
  disabled?: boolean;
83
87
  disableLogout?: boolean;
@@ -100,6 +104,20 @@ export interface DQMConfig {
100
104
  * @see OverlayConfig for all available options
101
105
  */
102
106
  overlayConfig?: OverlayConfig;
107
+ /**
108
+ * Optional translation configuration for DQM API results.
109
+ */
110
+ translation?: TranslationConfig;
111
+ /**
112
+ * Optional AI summary configuration.
113
+ */
114
+ summary?: {
115
+ /**
116
+ * Timeout in milliseconds for summary generation.
117
+ * Default: 45000
118
+ */
119
+ timeoutMs?: number;
120
+ };
103
121
  }
104
122
  export interface DQMSidebarProps {
105
123
  open: boolean;
@@ -156,4 +174,5 @@ export interface AnalysisData {
156
174
  totalErrors: number;
157
175
  checkpoints: Checkpoint[];
158
176
  }
177
+ export type GroupedCategories = Record<string, Checkpoint[]>;
159
178
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export type JsonChatResult = {
2
+ content: string;
3
+ finishReason?: string | null;
4
+ };
5
+ export interface JsonChatClient {
6
+ /**
7
+ * Run a non-streaming chat completion that is expected to return JSON.
8
+ * Implementations may enforce JSON mode (e.g. response_format).
9
+ */
10
+ chatJson: (opts: {
11
+ system: string;
12
+ user: string;
13
+ maxTokens: number;
14
+ schema?: string;
15
+ resetChat?: boolean;
16
+ signal?: AbortSignal;
17
+ }) => Promise<JsonChatResult>;
18
+ /** Optional: reset internal state (KV cache, etc.). */
19
+ reset?: (keepStats?: boolean) => Promise<void>;
20
+ /** Optional: interrupt an ongoing generation. */
21
+ interrupt?: () => void;
22
+ }
23
+ //# sourceMappingURL=aiJsonClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aiJsonClient.d.ts","sourceRoot":"","sources":["../../src/utils/aiJsonClient.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE;QACf,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAE9B,uDAAuD;IACvD,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"GenerateCategoryColors.d.ts","sourceRoot":"","sources":["../../../src/utils/colors/GenerateCategoryColors.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,sBAAsB,GAAI,YAAY,MAAM,EAAE,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CA0BlF,CAAC;AACF,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM;;;;CAenC,CAAC;AACF,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,0BA0BnD,CAAC;AACF,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,EAAE,gBAAe,MAAM,EAAO,KAAG;IAC9E,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAmBhB,CAAC"}
1
+ {"version":3,"file":"GenerateCategoryColors.d.ts","sourceRoot":"","sources":["../../../src/utils/colors/GenerateCategoryColors.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,sBAAsB,GAAI,YAAY,MAAM,EAAE,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CA0BlF,CAAC;AACF,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM;;;;CAenC,CAAC;AACF,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,0BA0BnD,CAAC;AACF,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,EAAE,gBAAe,MAAM,EAAO,KAAG;IAC9E,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAmBhB,CAAC"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Logger Utility
3
+ *
4
+ * Provides debug-toggleable logging to replace console.log statements.
5
+ * In production, only warnings and errors are shown unless debug mode is enabled.
6
+ */
7
+ /** Log levels as const object (avoids enum syntax for erasableSyntaxOnly) */
8
+ export declare const LogLevel: {
9
+ readonly DEBUG: 0;
10
+ readonly INFO: 1;
11
+ readonly WARN: 2;
12
+ readonly ERROR: 3;
13
+ readonly NONE: 4;
14
+ };
15
+ export type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];
16
+ /** Logger configuration */
17
+ interface LoggerConfig {
18
+ /** Current log level */
19
+ level: LogLevel;
20
+ /** Prefix for all log messages */
21
+ prefix: string;
22
+ /** Whether to include timestamps */
23
+ timestamps: boolean;
24
+ }
25
+ /**
26
+ * Check if debug mode is enabled via localStorage
27
+ */
28
+ declare function isDebugEnabled(): boolean;
29
+ /**
30
+ * Logger object with level-specific methods
31
+ */
32
+ export declare const logger: {
33
+ /**
34
+ * Log debug message (only in development or when debug mode is enabled)
35
+ */
36
+ debug(...args: unknown[]): void;
37
+ /**
38
+ * Log info message
39
+ */
40
+ info(...args: unknown[]): void;
41
+ /**
42
+ * Log warning message
43
+ */
44
+ warn(...args: unknown[]): void;
45
+ /**
46
+ * Log error message
47
+ */
48
+ error(...args: unknown[]): void;
49
+ /**
50
+ * Log with custom level
51
+ */
52
+ log(level: LogLevel, ...args: unknown[]): void;
53
+ /**
54
+ * Create a group of related logs (collapsed in console)
55
+ */
56
+ group(label: string): void;
57
+ /**
58
+ * End a log group
59
+ */
60
+ groupEnd(): void;
61
+ /**
62
+ * Log a table (useful for arrays and objects)
63
+ */
64
+ table(data: unknown, columns?: string[]): void;
65
+ /**
66
+ * Time a operation
67
+ */
68
+ time(label: string): void;
69
+ /**
70
+ * End timing and log duration
71
+ */
72
+ timeEnd(label: string): void;
73
+ /**
74
+ * Configure logger
75
+ */
76
+ configure(newConfig: Partial<LoggerConfig>): void;
77
+ /**
78
+ * Reset to default configuration
79
+ */
80
+ reset(): void;
81
+ /**
82
+ * Enable debug mode (persists in localStorage)
83
+ */
84
+ enableDebug(): void;
85
+ /**
86
+ * Disable debug mode
87
+ */
88
+ disableDebug(): void;
89
+ /**
90
+ * Check if debug mode is enabled
91
+ */
92
+ isDebugEnabled: typeof isDebugEnabled;
93
+ /**
94
+ * Get current log level
95
+ */
96
+ getLevel(): LogLevel;
97
+ /**
98
+ * Set log level
99
+ */
100
+ setLevel(level: LogLevel): void;
101
+ };
102
+ /**
103
+ * Create a scoped logger with a custom prefix
104
+ */
105
+ export declare function createLogger(scope: string): typeof logger;
106
+ export default logger;
107
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,6EAA6E;AAC7E,eAAO,MAAM,QAAQ;;;;;;CAMX,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEhE,2BAA2B;AAC3B,UAAU,YAAY;IACpB,wBAAwB;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;CACrB;AAeD;;GAEG;AACH,iBAAS,cAAc,IAAI,OAAO,CAMjC;AA4BD;;GAEG;AACH,eAAO,MAAM,MAAM;IACjB;;OAEG;mBACY,OAAO,EAAE,GAAG,IAAI;IAM/B;;OAEG;kBACW,OAAO,EAAE,GAAG,IAAI;IAM9B;;OAEG;kBACW,OAAO,EAAE,GAAG,IAAI;IAM9B;;OAEG;mBACY,OAAO,EAAE,GAAG,IAAI;IAM/B;;OAEG;eACQ,QAAQ,WAAW,OAAO,EAAE,GAAG,IAAI;IAO9C;;OAEG;iBACU,MAAM,GAAG,IAAI;IAM1B;;OAEG;gBACS,IAAI;IAMhB;;OAEG;gBACS,OAAO,YAAY,MAAM,EAAE,GAAG,IAAI;IAM9C;;OAEG;gBACS,MAAM,GAAG,IAAI;IAMzB;;OAEG;mBACY,MAAM,GAAG,IAAI;IAM5B;;OAEG;yBACkB,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAIjD;;OAEG;aACM,IAAI;IAIb;;OAEG;mBACY,IAAI;IASnB;;OAEG;oBACa,IAAI;IASpB;;OAEG;;IAGH;;OAEG;gBACS,QAAQ;IAIpB;;OAEG;oBACa,QAAQ,GAAG,IAAI;CAGhC,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,MAAM,CA+BzD;AAED,eAAe,MAAM,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { JsonChatClient } from './aiJsonClient';
2
+ export type OpenAIClientConfig = {
3
+ apiKey: string;
4
+ model: string;
5
+ baseUrl?: string;
6
+ };
7
+ export declare const createOpenAIJsonClient: (config: OpenAIClientConfig) => JsonChatClient;
8
+ //# sourceMappingURL=openaiJsonClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openaiJsonClient.d.ts","sourceRoot":"","sources":["../../src/utils/openaiJsonClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,gBAAgB,CAAC;AAErE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AASF,eAAO,MAAM,sBAAsB,GAAI,QAAQ,kBAAkB,KAAG,cA8CnE,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const sanitizeHtmlDocument: (html: string, opts?: {
2
+ allowScripts?: boolean;
3
+ }) => string;
4
+ //# sourceMappingURL=sanitizeHtmlDocument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitizeHtmlDocument.d.ts","sourceRoot":"","sources":["../../src/utils/sanitizeHtmlDocument.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,EAAE,OAAO;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,KAAG,MA8BtF,CAAC"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Secure Storage Utility
3
+ *
4
+ * Provides secure credential storage with options for:
5
+ * - sessionStorage (default, cleared on browser close)
6
+ * - localStorage (opt-in with "Remember me", persists across sessions)
7
+ *
8
+ * Security considerations:
9
+ * - sessionStorage is preferred as credentials are cleared when browser closes
10
+ * - localStorage should only be used with explicit user consent ("Remember me")
11
+ * - Users should be warned about the risks of storing credentials in localStorage
12
+ */
13
+ /** Storage keys for DQM credentials */
14
+ export declare const SECURE_STORAGE_KEYS: {
15
+ readonly apiKey: "dqm_apiKey";
16
+ readonly websiteId: "dqm_websiteID";
17
+ readonly rememberMe: "dqm_rememberMe";
18
+ readonly storageWarningAcknowledged: "dqm_storageWarningAcknowledged";
19
+ };
20
+ export type SecureStorageKey = keyof typeof SECURE_STORAGE_KEYS;
21
+ /**
22
+ * Check if "Remember me" is enabled
23
+ */
24
+ export declare function isRememberMeEnabled(): boolean;
25
+ /**
26
+ * Get a value from secure storage
27
+ * Checks sessionStorage first, then localStorage if Remember me is enabled
28
+ */
29
+ export declare function getSecureItem(key: SecureStorageKey): string | null;
30
+ /**
31
+ * Set a value in secure storage
32
+ * Uses sessionStorage by default, localStorage if Remember me is enabled
33
+ */
34
+ export declare function setSecureItem(key: SecureStorageKey, value: string): void;
35
+ /**
36
+ * Remove a value from both storages
37
+ */
38
+ export declare function removeSecureItem(key: SecureStorageKey): void;
39
+ /**
40
+ * Set the Remember me preference
41
+ * When disabling, clears credentials from localStorage
42
+ */
43
+ export declare function setRememberMe(enabled: boolean): void;
44
+ /**
45
+ * Check if user has acknowledged the storage warning
46
+ */
47
+ export declare function hasAcknowledgedStorageWarning(): boolean;
48
+ /**
49
+ * Set that user has acknowledged the storage warning
50
+ */
51
+ export declare function acknowledgeStorageWarning(): void;
52
+ /**
53
+ * Clear all DQM credentials from both storages
54
+ */
55
+ export declare function clearAllCredentials(): void;
56
+ /**
57
+ * Migrate credentials from localStorage to sessionStorage
58
+ * Call this when user disables "Remember me"
59
+ */
60
+ export declare function migrateToSessionOnly(): void;
61
+ /**
62
+ * Get all stored credentials
63
+ * Returns null for each missing credential
64
+ */
65
+ export declare function getCredentials(): {
66
+ apiKey: string | null;
67
+ websiteId: string | null;
68
+ };
69
+ /**
70
+ * Set all credentials at once
71
+ */
72
+ export declare function setCredentials(apiKey: string, websiteId: string): void;
73
+ /**
74
+ * Validate that credentials exist and are non-empty
75
+ */
76
+ export declare function hasValidCredentials(): boolean;
77
+ /**
78
+ * Validate API key encoding (ASCII-only for HTTP headers)
79
+ */
80
+ export declare function validateApiKeyEncoding(apiKey: string): boolean;
81
+ /**
82
+ * Storage warning message for users
83
+ */
84
+ export declare const STORAGE_WARNING_MESSAGE: string;
85
+ /**
86
+ * Hook to initialize storage from existing localStorage/sessionStorage
87
+ * Returns credentials if found
88
+ */
89
+ export declare function hydrateCredentials(): {
90
+ apiKey: string | null;
91
+ websiteId: string | null;
92
+ rememberMe: boolean;
93
+ storageWarningAcknowledged: boolean;
94
+ };
95
+ //# sourceMappingURL=secureStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secureStorage.d.ts","sourceRoot":"","sources":["../../src/utils/secureStorage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,uCAAuC;AACvC,eAAO,MAAM,mBAAmB;;;;;CAKtB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAEhE;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAI7C;AASD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAelE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAcxE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAI5D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAcpD;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAW3C;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAKpF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAGtE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAG7C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAG9D;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,QAO5B,CAAC;AAET;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI;IACpC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,0BAA0B,EAAE,OAAO,CAAC;CACrC,CAOA"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/utils/storage.ts"],"names":[],"mappings":"AAgCA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAU,KAAK,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAehF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAe5E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,IAAI,CAerE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,CAMhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAQ3C,CAAC"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/utils/storage.ts"],"names":[],"mappings":"AAkCA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAU,KAAK,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAehF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAe5E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,IAAI,CAerE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,CAMhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAQ3C,CAAC"}
@@ -0,0 +1,45 @@
1
+ export type TranslationCacheKey = string;
2
+ export type CachedCheckpointTranslation = {
3
+ key: TranslationCacheKey;
4
+ modelId: string;
5
+ lang: string;
6
+ checkpointId: string;
7
+ sourceHash: string;
8
+ translated: {
9
+ name: string;
10
+ description: string;
11
+ category: string;
12
+ topics: string[];
13
+ };
14
+ updatedAt: number;
15
+ };
16
+ export type LabelType = 'category' | 'topic';
17
+ export type CachedLabelTranslation = {
18
+ key: TranslationCacheKey;
19
+ modelId: string;
20
+ lang: string;
21
+ type: LabelType;
22
+ source: string;
23
+ sourceHash: string;
24
+ translated: string;
25
+ updatedAt: number;
26
+ };
27
+ export declare const fnv1aHash: (input: string) => string;
28
+ export declare const makeCheckpointKey: (modelId: string, lang: string, sourceHash: string) => TranslationCacheKey;
29
+ export declare const computeCheckpointSourceHash: (checkpoint: {
30
+ name?: string | null;
31
+ description?: string | null;
32
+ category?: string | null;
33
+ topics?: string[] | null;
34
+ }) => string;
35
+ export declare const makeLabelKey: (modelId: string, lang: string, type: LabelType, sourceHash: string) => TranslationCacheKey;
36
+ export interface TranslationCache {
37
+ getCheckpointMany: (keys: TranslationCacheKey[]) => Promise<Map<TranslationCacheKey, CachedCheckpointTranslation>>;
38
+ putCheckpointMany: (items: CachedCheckpointTranslation[]) => Promise<void>;
39
+ deleteCheckpointMany: (keys: TranslationCacheKey[]) => Promise<void>;
40
+ getLabelMany: (keys: TranslationCacheKey[]) => Promise<Map<TranslationCacheKey, CachedLabelTranslation>>;
41
+ putLabelMany: (items: CachedLabelTranslation[]) => Promise<void>;
42
+ clearAll: () => Promise<void>;
43
+ }
44
+ export declare const createTranslationCache: () => TranslationCache;
45
+ //# sourceMappingURL=translationCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translationCache.d.ts","sourceRoot":"","sources":["../../src/utils/translationCache.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEzC,MAAM,MAAM,2BAA2B,GAAG;IACxC,GAAG,EAAE,mBAAmB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAE7C,MAAM,MAAM,sBAAsB,GAAG;IACnC,GAAG,EAAE,mBAAmB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AA8DF,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,MAOzC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,EAAE,MAAM,MAAM,EAAE,YAAY,MAAM,KAAG,mBACvC,CAAC;AAEhD,eAAO,MAAM,2BAA2B,GAAI,YAAY;IACtD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC1B,KAAG,MAKD,CAAC;AAEJ,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,EAAE,MAAM,MAAM,EAAE,MAAM,SAAS,EAAE,YAAY,MAAM,KAAG,mBAChD,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,CAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,2BAA2B,CAAC,CAAC,CAAC;IACnH,iBAAiB,EAAE,CAAC,KAAK,EAAE,2BAA2B,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,oBAAoB,EAAE,CAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,YAAY,EAAE,CAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,CAAC;IACzG,YAAY,EAAE,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED,eAAO,MAAM,sBAAsB,QAAO,gBAiEzC,CAAC"}