@tolgee/core 4.7.0 → 4.7.2-rc.6a39b4d.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.
- package/dist/tolgee.cjs.js +2 -4
- package/dist/tolgee.cjs.js.map +1 -1
- package/dist/tolgee.cjs.min.js +1 -1
- package/dist/tolgee.cjs.min.js.map +1 -1
- package/dist/tolgee.esm.min.mjs +2 -0
- package/dist/tolgee.esm.min.mjs.map +1 -0
- package/dist/tolgee.esm.mjs +5690 -0
- package/dist/tolgee.esm.mjs.map +1 -0
- package/dist/tolgee.umd.js +2 -4
- package/dist/tolgee.umd.js.map +1 -1
- package/dist/tolgee.umd.min.js +1 -1
- package/dist/tolgee.umd.min.js.map +1 -1
- package/lib/Constants/Global.d.ts +0 -0
- package/lib/Constants/ModifierKey.d.ts +0 -0
- package/lib/Errors/ApiHttpError.d.ts +0 -0
- package/lib/Observer.d.ts +0 -0
- package/lib/Properties.d.ts +0 -0
- package/lib/Tolgee.d.ts +0 -0
- package/lib/TolgeeConfig.d.ts +0 -0
- package/lib/helpers/NodeHelper.d.ts +0 -0
- package/lib/helpers/TextHelper.d.ts +0 -0
- package/lib/helpers/commonTypes.d.ts +0 -0
- package/lib/helpers/encoderPolyfill.d.ts +0 -0
- package/lib/helpers/secret.d.ts +0 -0
- package/lib/helpers/sleep.d.ts +0 -0
- package/lib/highlighter/HighlightFunctionsInitializer.d.ts +0 -0
- package/lib/highlighter/MouseEventHandler.d.ts +0 -0
- package/lib/highlighter/TranslationHighlighter.d.ts +0 -0
- package/lib/index.d.ts +0 -0
- package/lib/modules/IcuFormatter.d.ts +0 -0
- package/lib/modules/index.d.ts +0 -0
- package/lib/services/ApiHttpService.d.ts +0 -0
- package/lib/services/CoreService.d.ts +0 -0
- package/lib/services/DependencyService.d.ts +0 -0
- package/lib/services/ElementRegistrar.d.ts +0 -0
- package/lib/services/EventEmitter.d.ts +0 -0
- package/lib/services/EventService.d.ts +0 -0
- package/lib/services/ModuleService.d.ts +0 -0
- package/lib/services/ScreenshotService.d.ts +0 -0
- package/lib/services/Subscription.d.ts +0 -0
- package/lib/services/TextService.d.ts +0 -0
- package/lib/services/TranslationService.d.ts +0 -0
- package/lib/toolsManager/Messages.d.ts +0 -0
- package/lib/toolsManager/PluginManager.d.ts +0 -0
- package/lib/types/DTOs.d.ts +0 -0
- package/lib/types/apiSchema.generated.d.ts +0 -0
- package/lib/types.d.ts +0 -0
- package/lib/wrappers/AbstractWrapper.d.ts +0 -0
- package/lib/wrappers/NodeHandler.d.ts +0 -0
- package/lib/wrappers/WrappedHandler.d.ts +0 -0
- package/lib/wrappers/invisible/AttributeHandler.d.ts +0 -0
- package/lib/wrappers/invisible/Coder.d.ts +0 -0
- package/lib/wrappers/invisible/ContentHandler.d.ts +0 -0
- package/lib/wrappers/invisible/CoreHandler.d.ts +0 -0
- package/lib/wrappers/invisible/InvisibleWrapper.d.ts +0 -0
- package/lib/wrappers/invisible/ValueMemory.d.ts +0 -0
- package/lib/wrappers/text/AttributeHandler.d.ts +0 -0
- package/lib/wrappers/text/Coder.d.ts +0 -0
- package/lib/wrappers/text/ContentHandler.d.ts +0 -0
- package/lib/wrappers/text/CoreHandler.d.ts +0 -0
- package/lib/wrappers/text/TextWrapper.d.ts +0 -0
- package/package.json +10 -9
- package/src/Constants/Global.ts +9 -0
- package/src/Constants/ModifierKey.ts +6 -0
- package/src/Errors/ApiHttpError.ts +8 -0
- package/src/Observer.test.ts +119 -0
- package/src/Observer.ts +68 -0
- package/src/Properties.test.ts +150 -0
- package/src/Properties.ts +112 -0
- package/src/Tolgee.test.ts +473 -0
- package/src/Tolgee.ts +335 -0
- package/src/TolgeeConfig.test.ts +21 -0
- package/src/TolgeeConfig.ts +134 -0
- package/src/__integration/FormatterIcu.test.ts +80 -0
- package/src/__integration/FormatterMissing.ts +54 -0
- package/src/__integration/Tolgee.test.ts +90 -0
- package/src/__integration/TolgeeInvisible.test.ts +145 -0
- package/src/__integration/mockTranslations.ts +6 -0
- package/src/__integration/testConfig.ts +16 -0
- package/src/__testFixtures/classMock.ts +11 -0
- package/src/__testFixtures/createElement.ts +43 -0
- package/src/__testFixtures/createTestDom.ts +25 -0
- package/src/__testFixtures/mocked.ts +25 -0
- package/src/__testFixtures/setupAfterEnv.ts +34 -0
- package/src/helpers/NodeHelper.ts +90 -0
- package/src/helpers/TextHelper.test.ts +62 -0
- package/src/helpers/TextHelper.ts +58 -0
- package/src/helpers/commonTypes.ts +8 -0
- package/src/helpers/encoderPolyfill.ts +96 -0
- package/src/helpers/secret.test.ts +61 -0
- package/src/helpers/secret.ts +68 -0
- package/src/helpers/sleep.ts +2 -0
- package/src/highlighter/HighlightFunctionsInitializer.test.ts +40 -0
- package/src/highlighter/HighlightFunctionsInitializer.ts +61 -0
- package/src/highlighter/MouseEventHandler.test.ts +151 -0
- package/src/highlighter/MouseEventHandler.ts +191 -0
- package/src/highlighter/TranslationHighlighter.test.ts +177 -0
- package/src/highlighter/TranslationHighlighter.ts +113 -0
- package/src/index.ts +10 -0
- package/src/internal.ts +2 -0
- package/src/modules/IcuFormatter.ts +17 -0
- package/src/modules/index.ts +1 -0
- package/src/services/ApiHttpService.ts +85 -0
- package/src/services/CoreService.test.ts +142 -0
- package/src/services/CoreService.ts +76 -0
- package/src/services/DependencyService.test.ts +51 -0
- package/src/services/DependencyService.ts +116 -0
- package/src/services/ElementRegistrar.test.ts +131 -0
- package/src/services/ElementRegistrar.ts +108 -0
- package/src/services/EventEmitter.ts +52 -0
- package/src/services/EventService.ts +14 -0
- package/src/services/ModuleService.ts +14 -0
- package/src/services/ScreenshotService.ts +31 -0
- package/src/services/Subscription.ts +7 -0
- package/src/services/TextService.test.ts +88 -0
- package/src/services/TextService.ts +82 -0
- package/src/services/TranslationService.test.ts +358 -0
- package/src/services/TranslationService.ts +417 -0
- package/src/services/__mocks__/CoreService.ts +17 -0
- package/src/toolsManager/Messages.test.ts +79 -0
- package/src/toolsManager/Messages.ts +60 -0
- package/src/toolsManager/PluginManager.test.ts +108 -0
- package/src/toolsManager/PluginManager.ts +129 -0
- package/src/types/DTOs.ts +25 -0
- package/src/types/apiSchema.generated.ts +6208 -0
- package/src/types.ts +146 -0
- package/src/wrappers/AbstractWrapper.ts +14 -0
- package/src/wrappers/NodeHandler.ts +143 -0
- package/src/wrappers/WrappedHandler.ts +28 -0
- package/src/wrappers/invisible/AttributeHandler.ts +23 -0
- package/src/wrappers/invisible/Coder.ts +65 -0
- package/src/wrappers/invisible/ContentHandler.ts +15 -0
- package/src/wrappers/invisible/CoreHandler.ts +17 -0
- package/src/wrappers/invisible/InvisibleWrapper.ts +59 -0
- package/src/wrappers/invisible/ValueMemory.test.ts +25 -0
- package/src/wrappers/invisible/ValueMemory.ts +16 -0
- package/src/wrappers/text/AttributeHandler.test.ts +117 -0
- package/src/wrappers/text/AttributeHandler.ts +25 -0
- package/src/wrappers/text/Coder.test.ts +298 -0
- package/src/wrappers/text/Coder.ts +202 -0
- package/src/wrappers/text/ContentHandler.test.ts +185 -0
- package/src/wrappers/text/ContentHandler.ts +21 -0
- package/src/wrappers/text/CoreHandler.test.ts +106 -0
- package/src/wrappers/text/CoreHandler.ts +45 -0
- package/src/wrappers/text/TextWrapper.ts +69 -0
- package/dist/tolgee.esm.js +0 -2
- package/dist/tolgee.esm.js.map +0 -1
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { Properties } from '../Properties';
|
|
2
|
+
import { Messages } from './Messages';
|
|
3
|
+
import { EventService } from '../services/EventService';
|
|
4
|
+
import { ElementRegistrar } from '../services/ElementRegistrar';
|
|
5
|
+
import { TolgeeConfig } from '../TolgeeConfig';
|
|
6
|
+
import { TranslationService } from '../services/TranslationService';
|
|
7
|
+
import { TranslationData } from '../types/DTOs';
|
|
8
|
+
import { sleep } from '../helpers/sleep';
|
|
9
|
+
|
|
10
|
+
export class PluginManager {
|
|
11
|
+
public handshakeSucceed = false;
|
|
12
|
+
|
|
13
|
+
constructor(
|
|
14
|
+
private messages: Messages,
|
|
15
|
+
private properties: Properties,
|
|
16
|
+
private eventService: EventService,
|
|
17
|
+
private elementRegistrar: ElementRegistrar,
|
|
18
|
+
private translationService: TranslationService
|
|
19
|
+
) {}
|
|
20
|
+
|
|
21
|
+
run() {
|
|
22
|
+
try {
|
|
23
|
+
this.messages.startListening();
|
|
24
|
+
this.handshake();
|
|
25
|
+
} catch (e) {
|
|
26
|
+
// eslint-disable-next-line no-console
|
|
27
|
+
console.warn(e);
|
|
28
|
+
// eslint-disable-next-line no-console
|
|
29
|
+
console.warn(
|
|
30
|
+
'Can not start communication with browser plugin. Check waning above.'
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
stop() {
|
|
36
|
+
this.messages.stopListening();
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
public readonly takeScreenshot = (
|
|
40
|
+
translationData: TranslationData
|
|
41
|
+
): Promise<string> => {
|
|
42
|
+
return new Promise((resolve, reject) => {
|
|
43
|
+
this.translationService
|
|
44
|
+
.changeTranslations(translationData)
|
|
45
|
+
.then(async (revertChange) => {
|
|
46
|
+
try {
|
|
47
|
+
this.highlightAllByKey(translationData.key);
|
|
48
|
+
await sleep(100);
|
|
49
|
+
this.messages.send('TOLGEE_TAKE_SCREENSHOT');
|
|
50
|
+
const cancel = this.messages.listen(
|
|
51
|
+
'TOLGEE_SCREENSHOT_TAKEN',
|
|
52
|
+
(data) => {
|
|
53
|
+
this.unhighlightAllByKey(translationData.key);
|
|
54
|
+
resolve(data);
|
|
55
|
+
revertChange();
|
|
56
|
+
cancel();
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
} catch (e) {
|
|
60
|
+
revertChange();
|
|
61
|
+
reject(e);
|
|
62
|
+
}
|
|
63
|
+
})
|
|
64
|
+
.catch((e) => {
|
|
65
|
+
reject(e);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
private highlightAllByKey(key: string) {
|
|
71
|
+
this.elementRegistrar
|
|
72
|
+
.findAllByKey(key)
|
|
73
|
+
.forEach((el) => el._tolgee.highlight());
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
private unhighlightAllByKey(key: string) {
|
|
77
|
+
this.elementRegistrar
|
|
78
|
+
.findAllByKey(key)
|
|
79
|
+
.forEach((el) => el._tolgee.unhighlight());
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
private readonly handshake = () => {
|
|
83
|
+
const sharedConfiguration: Partial<Properties> & {
|
|
84
|
+
config: Partial<TolgeeConfig>;
|
|
85
|
+
uiPresent: boolean;
|
|
86
|
+
uiVersion: string | undefined;
|
|
87
|
+
} = {
|
|
88
|
+
...this.properties,
|
|
89
|
+
config: {
|
|
90
|
+
...this.properties.config,
|
|
91
|
+
//remove properties, which cannot be sent by window.postMessage
|
|
92
|
+
staticData: undefined,
|
|
93
|
+
targetElement: undefined,
|
|
94
|
+
_targetElement: undefined,
|
|
95
|
+
ui: undefined,
|
|
96
|
+
} as any as TolgeeConfig,
|
|
97
|
+
uiPresent: Boolean(this.properties.config.ui),
|
|
98
|
+
uiVersion: process.env.TOLGEE_UI_VERSION,
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
let timer: NodeJS.Timer = null;
|
|
102
|
+
|
|
103
|
+
const ping = () => {
|
|
104
|
+
this.messages.send('TOLGEE_READY', sharedConfiguration);
|
|
105
|
+
};
|
|
106
|
+
const finish = () => {
|
|
107
|
+
clearInterval(timer);
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
this.messages.listen('TOLGEE_PLUGIN_READY', () => {
|
|
111
|
+
this.handshakeSucceed = true;
|
|
112
|
+
this.messages.send('TOLGEE_READY', sharedConfiguration);
|
|
113
|
+
finish();
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
ping();
|
|
117
|
+
|
|
118
|
+
// try ping 5 times as sometimes extension doesn't respond right away
|
|
119
|
+
let counter = 0;
|
|
120
|
+
timer = setInterval(() => {
|
|
121
|
+
if (!this.handshakeSucceed && counter < 5) {
|
|
122
|
+
ping();
|
|
123
|
+
counter += 1;
|
|
124
|
+
} else {
|
|
125
|
+
finish();
|
|
126
|
+
}
|
|
127
|
+
}, 200);
|
|
128
|
+
};
|
|
129
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { components } from './apiSchema.generated';
|
|
2
|
+
|
|
3
|
+
export class TranslationData {
|
|
4
|
+
constructor(
|
|
5
|
+
public key: string,
|
|
6
|
+
public translations: { [key: string]: string },
|
|
7
|
+
public id?: number
|
|
8
|
+
) {}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export type ComplexEditKeyDto = components['schemas']['ComplexEditKeyDto'];
|
|
12
|
+
export type KeyWithDataModel = components['schemas']['KeyWithDataModel'];
|
|
13
|
+
export type CreateKeyDto = components['schemas']['CreateKeyDto'];
|
|
14
|
+
export type SetTranslationsWithKeyDto =
|
|
15
|
+
components['schemas']['SetTranslationsWithKeyDto'];
|
|
16
|
+
export type SetTranslationsResponseModel =
|
|
17
|
+
components['schemas']['SetTranslationsResponseModel'];
|
|
18
|
+
export type KeyWithTranslationsModel =
|
|
19
|
+
components['schemas']['KeyWithTranslationsModel'];
|
|
20
|
+
|
|
21
|
+
export type UploadedImageModel = components['schemas']['UploadedImageModel'];
|
|
22
|
+
|
|
23
|
+
export type PagedModelLanguageModel =
|
|
24
|
+
components['schemas']['PagedModelLanguageModel'];
|
|
25
|
+
export type LanguageModel = components['schemas']['LanguageModel'];
|