@crowdin/app-project-module 0.43.0 → 0.44.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/out/index.d.ts +1 -1
- package/out/index.js +57 -166
- package/out/middlewares/integration-credentials.d.ts +2 -1
- package/out/middlewares/ui-module.d.ts +2 -2
- package/out/middlewares/ui-module.js +4 -0
- package/out/models/index.d.ts +52 -698
- package/out/models/index.js +2 -26
- package/out/modules/context-menu/index.d.ts +6 -0
- package/out/modules/context-menu/index.js +17 -0
- package/out/{handlers/custom-mt → modules/custom-mt/handlers}/translate.d.ts +2 -1
- package/out/{handlers/custom-mt → modules/custom-mt/handlers}/translate.js +2 -2
- package/out/modules/custom-mt/index.d.ts +6 -0
- package/out/modules/custom-mt/index.js +17 -0
- package/out/modules/custom-mt/types.d.ts +22 -0
- package/out/modules/custom-mt/types.js +2 -0
- package/out/{handlers/custom-spell-check → modules/custom-spell-check/handlers}/get-languages-list.d.ts +2 -1
- package/out/{handlers/custom-spell-check → modules/custom-spell-check/handlers}/get-languages-list.js +2 -2
- package/out/{handlers/custom-spell-check → modules/custom-spell-check/handlers}/spell-check.d.ts +2 -1
- package/out/{handlers/custom-spell-check → modules/custom-spell-check/handlers}/spell-check.js +5 -3
- package/out/modules/custom-spell-check/index.d.ts +6 -0
- package/out/modules/custom-spell-check/index.js +32 -0
- package/out/modules/custom-spell-check/types.d.ts +56 -0
- package/out/modules/custom-spell-check/types.js +2 -0
- package/out/modules/editor-right-panel/index.d.ts +6 -0
- package/out/modules/editor-right-panel/index.js +17 -0
- package/out/modules/editor-right-panel/types.d.ts +7 -0
- package/out/modules/editor-right-panel/types.js +2 -0
- package/out/modules/editor-themes/index.d.ts +6 -0
- package/out/modules/editor-themes/index.js +11 -0
- package/out/{handlers/file-processing → modules/file-processing/handlers}/custom-file-format.d.ts +2 -1
- package/out/{handlers/file-processing → modules/file-processing/handlers}/custom-file-format.js +5 -5
- package/out/modules/file-processing/handlers/file-download.d.ts +5 -0
- package/out/{handlers/file-processing → modules/file-processing/handlers}/file-download.js +2 -2
- package/out/{handlers/file-processing → modules/file-processing/handlers}/pre-post-process.d.ts +2 -1
- package/out/{handlers/file-processing → modules/file-processing/handlers}/pre-post-process.js +8 -8
- package/out/modules/file-processing/index.d.ts +22 -0
- package/out/modules/file-processing/index.js +57 -0
- package/out/modules/file-processing/types.d.ts +133 -0
- package/out/modules/file-processing/types.js +12 -0
- package/out/{handlers/integration/crowdin-project.d.ts → modules/form-data-display.d.ts} +1 -1
- package/out/modules/form-data-save.d.ts +4 -0
- package/out/{handlers/integration → modules/integration/handlers}/crowdin-file-progress.d.ts +2 -1
- package/out/{handlers/integration → modules/integration/handlers}/crowdin-file-progress.js +2 -2
- package/out/modules/integration/handlers/crowdin-files.d.ts +5 -0
- package/out/{handlers/integration → modules/integration/handlers}/crowdin-files.js +3 -3
- package/out/modules/integration/handlers/crowdin-project.d.ts +4 -0
- package/out/{handlers/integration → modules/integration/handlers}/crowdin-project.js +1 -1
- package/out/modules/integration/handlers/crowdin-update.d.ts +5 -0
- package/out/{handlers/integration → modules/integration/handlers}/crowdin-update.js +6 -6
- package/out/modules/integration/handlers/crowdin-webhook.d.ts +5 -0
- package/out/{handlers/integration → modules/integration/handlers}/crowdin-webhook.js +7 -7
- package/out/modules/integration/handlers/integration-data.d.ts +4 -0
- package/out/{handlers/integration → modules/integration/handlers}/integration-data.js +4 -4
- package/out/{handlers/integration → modules/integration/handlers}/integration-login.d.ts +2 -1
- package/out/{handlers/integration → modules/integration/handlers}/integration-login.js +3 -3
- package/out/modules/integration/handlers/integration-logout.d.ts +5 -0
- package/out/{handlers/integration → modules/integration/handlers}/integration-logout.js +5 -5
- package/out/modules/integration/handlers/integration-update.d.ts +5 -0
- package/out/{handlers/integration → modules/integration/handlers}/integration-update.js +5 -5
- package/out/modules/integration/handlers/integration-webhook.d.ts +5 -0
- package/out/{handlers/integration → modules/integration/handlers}/integration-webhook.js +4 -4
- package/out/modules/integration/handlers/job-cancel.d.ts +3 -0
- package/out/{handlers/integration → modules/integration/handlers}/job-cancel.js +3 -3
- package/out/modules/integration/handlers/job-info.d.ts +3 -0
- package/out/{handlers/integration → modules/integration/handlers}/job-info.js +3 -3
- package/out/modules/integration/handlers/main.d.ts +5 -0
- package/out/{handlers/integration → modules/integration/handlers}/main.js +4 -4
- package/out/modules/integration/handlers/oauth-login.d.ts +5 -0
- package/out/{handlers/integration → modules/integration/handlers}/oauth-login.js +3 -3
- package/out/{handlers/integration → modules/integration/handlers}/oauth-url.d.ts +2 -1
- package/out/{handlers/integration → modules/integration/handlers}/oauth-url.js +2 -2
- package/out/modules/integration/handlers/settings-save.d.ts +5 -0
- package/out/{handlers/integration → modules/integration/handlers}/settings-save.js +10 -10
- package/out/modules/integration/handlers/settings.d.ts +3 -0
- package/out/{handlers/integration → modules/integration/handlers}/settings.js +1 -1
- package/out/{handlers/integration → modules/integration/handlers}/subscription-info.d.ts +1 -1
- package/out/{handlers/integration → modules/integration/handlers}/subscription-info.js +1 -1
- package/out/modules/integration/handlers/sync-settings-save.d.ts +5 -0
- package/out/{handlers/integration → modules/integration/handlers}/sync-settings-save.js +5 -5
- package/out/modules/integration/handlers/sync-settings.d.ts +3 -0
- package/out/{handlers/integration → modules/integration/handlers}/sync-settings.js +2 -2
- package/out/modules/integration/handlers/user-errors.d.ts +3 -0
- package/out/{handlers/integration → modules/integration/handlers}/user-errors.js +2 -2
- package/out/modules/integration/index.d.ts +6 -0
- package/out/modules/integration/index.js +113 -0
- package/out/modules/integration/types.d.ts +446 -0
- package/out/modules/integration/types.js +19 -0
- package/out/modules/manifest.d.ts +3 -0
- package/out/{handlers → modules}/manifest.js +16 -10
- package/out/modules/modal/index.d.ts +6 -0
- package/out/modules/modal/index.js +17 -0
- package/out/modules/organization-menu/index.d.ts +6 -0
- package/out/modules/organization-menu/index.js +19 -0
- package/out/modules/profile-resources-menu/index.d.ts +6 -0
- package/out/modules/profile-resources-menu/index.js +19 -0
- package/out/modules/project-menu/index.d.ts +6 -0
- package/out/modules/project-menu/index.js +17 -0
- package/out/modules/project-menu-crowdsource/index.d.ts +6 -0
- package/out/modules/project-menu-crowdsource/index.js +17 -0
- package/out/modules/project-reports/index.d.ts +6 -0
- package/out/modules/project-reports/index.js +19 -0
- package/out/modules/project-tools/index.d.ts +6 -0
- package/out/modules/project-tools/index.js +19 -0
- package/out/storage/index.d.ts +3 -2
- package/out/storage/mysql.d.ts +2 -1
- package/out/storage/mysql.js +1 -1
- package/out/storage/postgre.d.ts +2 -1
- package/out/storage/postgre.js +9 -7
- package/out/storage/sqlite.d.ts +2 -1
- package/out/util/api/api.d.ts +2 -2
- package/out/util/api/api.js +10 -10
- package/out/util/connection.d.ts +3 -2
- package/out/util/cron.d.ts +2 -1
- package/out/util/cron.js +6 -6
- package/out/util/defaults.d.ts +5 -2
- package/out/util/defaults.js +13 -3
- package/out/util/file-snapshot.d.ts +2 -1
- package/out/util/file-snapshot.js +5 -5
- package/out/util/files.d.ts +2 -1
- package/out/util/index.d.ts +2 -1
- package/out/util/logger.d.ts +2 -2
- package/out/util/webhooks.d.ts +2 -1
- package/out/util/webhooks.js +5 -5
- package/package.json +1 -1
- package/out/handlers/file-processing/file-download.d.ts +0 -4
- package/out/handlers/form-data-display.d.ts +0 -3
- package/out/handlers/form-data-save.d.ts +0 -3
- package/out/handlers/integration/crowdin-files.d.ts +0 -4
- package/out/handlers/integration/crowdin-update.d.ts +0 -4
- package/out/handlers/integration/crowdin-webhook.d.ts +0 -4
- package/out/handlers/integration/integration-data.d.ts +0 -4
- package/out/handlers/integration/integration-logout.d.ts +0 -4
- package/out/handlers/integration/integration-update.d.ts +0 -4
- package/out/handlers/integration/integration-webhook.d.ts +0 -4
- package/out/handlers/integration/job-cancel.d.ts +0 -3
- package/out/handlers/integration/job-info.d.ts +0 -3
- package/out/handlers/integration/main.d.ts +0 -4
- package/out/handlers/integration/oauth-login.d.ts +0 -4
- package/out/handlers/integration/settings-save.d.ts +0 -4
- package/out/handlers/integration/settings.d.ts +0 -3
- package/out/handlers/integration/sync-settings-save.d.ts +0 -4
- package/out/handlers/integration/sync-settings.d.ts +0 -3
- package/out/handlers/integration/user-errors.d.ts +0 -3
- package/out/handlers/manifest.d.ts +0 -3
- /package/out/{handlers → modules}/form-data-display.js +0 -0
- /package/out/{handlers → modules}/form-data-save.js +0 -0
- /package/out/{handlers → modules}/install.d.ts +0 -0
- /package/out/{handlers → modules}/install.js +0 -0
- /package/out/{handlers → modules}/subscription-paid.d.ts +0 -0
- /package/out/{handlers → modules}/subscription-paid.js +0 -0
- /package/out/{handlers → modules}/uninstall.d.ts +0 -0
- /package/out/{handlers → modules}/uninstall.js +0 -0
package/out/index.d.ts
CHANGED
|
@@ -4,5 +4,5 @@ import express from './util/terminus-express';
|
|
|
4
4
|
export { ProjectPermissions, Scope, UserPermissions } from './models';
|
|
5
5
|
export { express };
|
|
6
6
|
export declare const metadataStore: CrowdinMetadataStore;
|
|
7
|
-
export declare function addCrowdinEndpoints(app: Express, clientConfig: Config | ClientConfig): CrowdinAppUtilities
|
|
7
|
+
export declare function addCrowdinEndpoints(app: Express, clientConfig: Config | ClientConfig): Partial<CrowdinAppUtilities>;
|
|
8
8
|
export declare function createApp(clientConfig: ClientConfig): void;
|
package/out/index.js
CHANGED
|
@@ -38,61 +38,43 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
38
38
|
exports.createApp = exports.addCrowdinEndpoints = exports.metadataStore = exports.express = exports.UserPermissions = exports.Scope = exports.ProjectPermissions = void 0;
|
|
39
39
|
const logsFormatter = __importStar(require("@crowdin/logs-formatter"));
|
|
40
40
|
const express_handlebars_1 = __importDefault(require("express-handlebars"));
|
|
41
|
-
const cron = __importStar(require("node-cron"));
|
|
42
41
|
const path_1 = require("path");
|
|
43
|
-
const translate_1 = __importDefault(require("./handlers/custom-mt/translate"));
|
|
44
|
-
const custom_file_format_1 = __importDefault(require("./handlers/file-processing/custom-file-format"));
|
|
45
|
-
const file_download_1 = __importDefault(require("./handlers/file-processing/file-download"));
|
|
46
|
-
const pre_post_process_1 = __importDefault(require("./handlers/file-processing/pre-post-process"));
|
|
47
|
-
const form_data_display_1 = __importDefault(require("./handlers/form-data-display"));
|
|
48
|
-
const form_data_save_1 = __importDefault(require("./handlers/form-data-save"));
|
|
49
|
-
const install_1 = __importDefault(require("./handlers/install"));
|
|
50
|
-
const crowdin_file_progress_1 = __importDefault(require("./handlers/integration/crowdin-file-progress"));
|
|
51
|
-
const crowdin_files_1 = __importDefault(require("./handlers/integration/crowdin-files"));
|
|
52
|
-
const crowdin_project_1 = __importDefault(require("./handlers/integration/crowdin-project"));
|
|
53
|
-
const crowdin_update_1 = __importDefault(require("./handlers/integration/crowdin-update"));
|
|
54
|
-
const crowdin_webhook_1 = __importDefault(require("./handlers/integration/crowdin-webhook"));
|
|
55
|
-
const integration_data_1 = __importDefault(require("./handlers/integration/integration-data"));
|
|
56
|
-
const integration_login_1 = __importDefault(require("./handlers/integration/integration-login"));
|
|
57
|
-
const integration_logout_1 = __importDefault(require("./handlers/integration/integration-logout"));
|
|
58
|
-
const integration_update_1 = __importDefault(require("./handlers/integration/integration-update"));
|
|
59
|
-
const integration_webhook_1 = __importDefault(require("./handlers/integration/integration-webhook"));
|
|
60
|
-
const main_1 = __importDefault(require("./handlers/integration/main"));
|
|
61
|
-
const oauth_login_1 = __importDefault(require("./handlers/integration/oauth-login"));
|
|
62
|
-
const oauth_url_1 = __importDefault(require("./handlers/integration/oauth-url"));
|
|
63
|
-
const settings_save_1 = __importDefault(require("./handlers/integration/settings-save"));
|
|
64
|
-
const subscription_info_1 = __importDefault(require("./handlers/integration/subscription-info"));
|
|
65
|
-
const job_info_1 = __importDefault(require("./handlers/integration/job-info"));
|
|
66
|
-
const job_cancel_1 = __importDefault(require("./handlers/integration/job-cancel"));
|
|
67
|
-
const sync_settings_1 = __importDefault(require("./handlers/integration/sync-settings"));
|
|
68
|
-
const sync_settings_save_1 = __importDefault(require("./handlers/integration/sync-settings-save"));
|
|
69
|
-
const user_errors_1 = __importDefault(require("./handlers/integration/user-errors"));
|
|
70
|
-
const manifest_1 = __importDefault(require("./handlers/manifest"));
|
|
71
|
-
const subscription_paid_1 = __importDefault(require("./handlers/subscription-paid"));
|
|
72
|
-
const uninstall_1 = __importDefault(require("./handlers/uninstall"));
|
|
73
|
-
const get_languages_list_1 = __importDefault(require("./handlers/custom-spell-check/get-languages-list"));
|
|
74
|
-
const spell_check_1 = __importDefault(require("./handlers/custom-spell-check/spell-check"));
|
|
75
42
|
const crowdin_client_1 = __importStar(require("./middlewares/crowdin-client"));
|
|
76
|
-
const integration_credentials_1 = __importDefault(require("./middlewares/integration-credentials"));
|
|
77
43
|
const json_response_1 = __importDefault(require("./middlewares/json-response"));
|
|
78
|
-
const
|
|
79
|
-
const
|
|
80
|
-
const
|
|
44
|
+
const form_data_display_1 = __importDefault(require("./modules/form-data-display"));
|
|
45
|
+
const form_data_save_1 = __importDefault(require("./modules/form-data-save"));
|
|
46
|
+
const install_1 = __importDefault(require("./modules/install"));
|
|
47
|
+
const manifest_1 = __importDefault(require("./modules/manifest"));
|
|
48
|
+
const subscription_paid_1 = __importDefault(require("./modules/subscription-paid"));
|
|
49
|
+
const uninstall_1 = __importDefault(require("./modules/uninstall"));
|
|
81
50
|
const storage = __importStar(require("./storage"));
|
|
82
51
|
const util_1 = require("./util");
|
|
83
52
|
const api_1 = require("./util/api/api");
|
|
84
53
|
const connection_1 = require("./util/connection");
|
|
85
|
-
const cron_1 = require("./util/cron");
|
|
86
54
|
const defaults_1 = require("./util/defaults");
|
|
87
55
|
const logger = __importStar(require("./util/logger"));
|
|
88
56
|
const logger_1 = require("./util/logger");
|
|
89
57
|
const terminus_express_1 = __importDefault(require("./util/terminus-express"));
|
|
90
58
|
exports.express = terminus_express_1.default;
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
59
|
+
//apps
|
|
60
|
+
const contextMenuApp = __importStar(require("./modules/context-menu"));
|
|
61
|
+
const customMTApp = __importStar(require("./modules/custom-mt"));
|
|
62
|
+
const spellCheckApp = __importStar(require("./modules/custom-spell-check"));
|
|
63
|
+
const editorRightPanelApp = __importStar(require("./modules/editor-right-panel"));
|
|
64
|
+
const editorThemesApp = __importStar(require("./modules/editor-themes"));
|
|
65
|
+
const fileProcessingApps = __importStar(require("./modules/file-processing"));
|
|
66
|
+
const integrationApp = __importStar(require("./modules/integration"));
|
|
67
|
+
const modalApp = __importStar(require("./modules/modal"));
|
|
68
|
+
const organizationMenuApp = __importStar(require("./modules/organization-menu"));
|
|
69
|
+
const profileResourcesMenuApp = __importStar(require("./modules/profile-resources-menu"));
|
|
70
|
+
const projectMenuApp = __importStar(require("./modules/project-menu"));
|
|
71
|
+
const projectMenuCrowdsourceApp = __importStar(require("./modules/project-menu-crowdsource"));
|
|
72
|
+
const projectReportsApp = __importStar(require("./modules/project-reports"));
|
|
73
|
+
const projectToolsApp = __importStar(require("./modules/project-tools"));
|
|
74
|
+
var models_1 = require("./models");
|
|
75
|
+
Object.defineProperty(exports, "ProjectPermissions", { enumerable: true, get: function () { return models_1.ProjectPermissions; } });
|
|
76
|
+
Object.defineProperty(exports, "Scope", { enumerable: true, get: function () { return models_1.Scope; } });
|
|
77
|
+
Object.defineProperty(exports, "UserPermissions", { enumerable: true, get: function () { return models_1.UserPermissions; } });
|
|
96
78
|
exports.metadataStore = {
|
|
97
79
|
getMetadata: (id) => {
|
|
98
80
|
return storage.getStorage().getMetadata(id);
|
|
@@ -117,7 +99,6 @@ exports.metadataStore = {
|
|
|
117
99
|
}),
|
|
118
100
|
};
|
|
119
101
|
function addCrowdinEndpoints(app, clientConfig) {
|
|
120
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
121
102
|
const config = (0, defaults_1.convertClientConfig)(clientConfig);
|
|
122
103
|
if (!config.disableGlobalErrorHandling) {
|
|
123
104
|
handleUncaughtErrors();
|
|
@@ -161,139 +142,49 @@ function addCrowdinEndpoints(app, clientConfig) {
|
|
|
161
142
|
}));
|
|
162
143
|
app.set('view engine', 'handlebars');
|
|
163
144
|
app.get((0, util_1.getLogoUrl)(), (req, res) => res.sendFile(config.imagePath));
|
|
164
|
-
app.post('/installed', (0, install_1.default)(config));
|
|
165
|
-
app.post('/uninstall', (0, uninstall_1.default)(config));
|
|
166
145
|
app.get('/manifest.json', json_response_1.default, (0, manifest_1.default)(config));
|
|
167
146
|
if (!(0, connection_1.isAppFree)(config)) {
|
|
168
147
|
app.post('/subscription-paid', (0, subscription_paid_1.default)());
|
|
169
148
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
app.get('/api/crowdin/file-progress/:fileId', (0, crowdin_client_1.default)(config), (0, crowdin_file_progress_1.default)(integrationLogic));
|
|
184
|
-
app.get('/api/integration/data', json_response_1.default, (0, crowdin_client_1.default)(config), (0, integration_credentials_1.default)(config, integrationLogic), (0, integration_data_1.default)(integrationLogic));
|
|
185
|
-
app.post('/api/crowdin/update', json_response_1.default, (0, crowdin_client_1.default)(config), (0, integration_credentials_1.default)(config, integrationLogic), (0, crowdin_update_1.default)(config, integrationLogic));
|
|
186
|
-
app.post('/api/integration/update', json_response_1.default, (0, crowdin_client_1.default)(config), (0, integration_credentials_1.default)(config, integrationLogic), (0, integration_update_1.default)(config, integrationLogic));
|
|
187
|
-
app.get('/api/sync-settings/:provider', json_response_1.default, (0, crowdin_client_1.default)(config), (0, integration_credentials_1.default)(config, integrationLogic), (0, sync_settings_1.default)());
|
|
188
|
-
app.post('/api/sync-settings', json_response_1.default, (0, crowdin_client_1.default)(config), (0, integration_credentials_1.default)(config, integrationLogic), (0, sync_settings_save_1.default)(config, integrationLogic));
|
|
189
|
-
if (integrationLogic.oauthLogin) {
|
|
190
|
-
app.get((0, defaults_1.getOauthRoute)(integrationLogic), (0, oauth_login_1.default)(config, integrationLogic));
|
|
191
|
-
app.post('/api/oauth-url', json_response_1.default, (0, crowdin_client_1.default)(config, false, false), (0, oauth_url_1.default)(config, integrationLogic));
|
|
192
|
-
}
|
|
193
|
-
if (integrationLogic.cronJobs) {
|
|
194
|
-
integrationLogic.cronJobs.forEach((job) => {
|
|
195
|
-
cron.schedule(job.expression, () => (0, cron_1.runJob)(config, integrationLogic, job).catch(console.error));
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
if (integrationLogic.withCronSync) {
|
|
199
|
-
cron.schedule('0 * * * *', () => (0, cron_1.filesCron)(config, integrationLogic, '1').catch(console.error));
|
|
200
|
-
cron.schedule('0 */3 * * *', () => (0, cron_1.filesCron)(config, integrationLogic, '3').catch(console.error));
|
|
201
|
-
cron.schedule('0 */6 * * *', () => (0, cron_1.filesCron)(config, integrationLogic, '6').catch(console.error));
|
|
202
|
-
cron.schedule('0 */12 * * *', () => (0, cron_1.filesCron)(config, integrationLogic, '12').catch(console.error));
|
|
203
|
-
cron.schedule('0 0 * * *', () => (0, cron_1.filesCron)(config, integrationLogic, '24').catch(console.error));
|
|
204
|
-
}
|
|
205
|
-
if (integrationLogic.webhooks) {
|
|
206
|
-
app.post(`${integrationLogic.webhooks.crowdinWebhookUrl
|
|
207
|
-
? integrationLogic.webhooks.crowdinWebhookUrl
|
|
208
|
-
: '/api/crowdin/webhook'}`, json_response_1.default, (0, crowdin_webhook_1.default)(config, integrationLogic));
|
|
209
|
-
if (((_a = integrationLogic.webhooks) === null || _a === void 0 ? void 0 : _a.integrationWebhookInterceptor) && !((_b = integrationLogic.webhooks) === null || _b === void 0 ? void 0 : _b.queueUrl)) {
|
|
210
|
-
app.post(`${integrationLogic.webhooks.integrationWebhookUrl
|
|
211
|
-
? integrationLogic.webhooks.integrationWebhookUrl
|
|
212
|
-
: '/api/integration/webhook'}`, (0, integration_webhook_1.default)(config, integrationLogic));
|
|
213
|
-
}
|
|
214
|
-
if ((_c = integrationLogic.webhooks) === null || _c === void 0 ? void 0 : _c.queueUrl) {
|
|
215
|
-
(0, webhooks_1.listenQueueMessage)(config, integrationLogic, integrationLogic.webhooks.queueUrl, config.identifier);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
app.get('/api/user-errors', json_response_1.default, (0, crowdin_client_1.default)(config), (0, integration_credentials_1.default)(config, integrationLogic), (0, user_errors_1.default)());
|
|
219
|
-
cron.schedule('0 0 1 * *', () => (0, cron_1.removeFinishedJobs)());
|
|
220
|
-
}
|
|
221
|
-
if (config.customFileFormat) {
|
|
222
|
-
(0, defaults_1.applyFileProcessorsModuleDefaults)(config, config.customFileFormat);
|
|
223
|
-
app.post('/process', (0, crowdin_client_1.default)(config), (0, custom_file_format_1.default)(config.baseUrl, config.customFileFormat.filesFolder || config.dbFolder, config.customFileFormat));
|
|
224
|
-
app.get('/file/download', (0, file_download_1.default)(config, config.customFileFormat, 'custom-file-format'));
|
|
225
|
-
}
|
|
226
|
-
if (config.filePreImport) {
|
|
227
|
-
(0, defaults_1.applyFileProcessorsModuleDefaults)(config, config.filePreImport);
|
|
228
|
-
app.post('/pre-import', (0, crowdin_client_1.default)(config), (0, pre_post_process_1.default)(config, config.filePreImport, models_1.ProcessFileJobType.PRE_IMPORT));
|
|
229
|
-
app.get(`/file/download/${models_1.ProcessFileJobType.PRE_IMPORT}`, (0, file_download_1.default)(config, config.filePreImport, models_1.ProcessFileJobType.PRE_IMPORT));
|
|
230
|
-
}
|
|
231
|
-
if (config.filePostImport) {
|
|
232
|
-
(0, defaults_1.applyFileProcessorsModuleDefaults)(config, config.filePostImport);
|
|
233
|
-
app.post('/post-import', (0, crowdin_client_1.default)(config), (0, pre_post_process_1.default)(config, config.filePostImport, models_1.ProcessFileJobType.POST_IMPORT));
|
|
234
|
-
app.get(`/file/download/${models_1.ProcessFileJobType.POST_IMPORT}`, (0, file_download_1.default)(config, config.filePostImport, models_1.ProcessFileJobType.POST_IMPORT));
|
|
235
|
-
}
|
|
236
|
-
if (config.filePreExport) {
|
|
237
|
-
(0, defaults_1.applyFileProcessorsModuleDefaults)(config, config.filePreExport);
|
|
238
|
-
app.post('/pre-export', (0, crowdin_client_1.default)(config), (0, pre_post_process_1.default)(config, config.filePreExport, models_1.ProcessFileJobType.PRE_EXPORT));
|
|
239
|
-
app.get(`/file/download/${models_1.ProcessFileJobType.PRE_EXPORT}`, (0, file_download_1.default)(config, config.filePreExport, models_1.ProcessFileJobType.PRE_EXPORT));
|
|
240
|
-
}
|
|
241
|
-
if (config.filePostExport) {
|
|
242
|
-
(0, defaults_1.applyFileProcessorsModuleDefaults)(config, config.filePostExport);
|
|
243
|
-
app.post('/post-export', (0, crowdin_client_1.default)(config), (0, pre_post_process_1.default)(config, config.filePostExport, models_1.ProcessFileJobType.POST_EXPORT));
|
|
244
|
-
app.get(`/file/download/${models_1.ProcessFileJobType.POST_EXPORT}`, (0, file_download_1.default)(config, config.filePostExport, models_1.ProcessFileJobType.POST_EXPORT));
|
|
245
|
-
}
|
|
246
|
-
if (config.customMT) {
|
|
247
|
-
app.get((0, util_1.getLogoUrl)(config.customMT, '/mt'), (req, res) => { var _a; return res.sendFile(((_a = config.customMT) === null || _a === void 0 ? void 0 : _a.imagePath) || config.imagePath); });
|
|
248
|
-
app.post('/translate', (0, crowdin_client_1.default)(config), (0, translate_1.default)(config.customMT));
|
|
249
|
-
}
|
|
250
|
-
if (config.profileResourcesMenu) {
|
|
251
|
-
app.get((0, util_1.getLogoUrl)(config.profileResourcesMenu, '/resources'), (req, res) => { var _a; return res.sendFile(((_a = config.profileResourcesMenu) === null || _a === void 0 ? void 0 : _a.imagePath) || config.imagePath); });
|
|
252
|
-
app.use('/resources', (0, ui_module_1.default)(config, config.profileResourcesMenu.allowUnauthorized), (0, render_ui_module_1.default)(config.profileResourcesMenu));
|
|
253
|
-
}
|
|
254
|
-
if (config.organizationMenu) {
|
|
255
|
-
app.get((0, util_1.getLogoUrl)(config.organizationMenu, '/resources'), (req, res) => { var _a; return res.sendFile(((_a = config.organizationMenu) === null || _a === void 0 ? void 0 : _a.imagePath) || config.imagePath); });
|
|
256
|
-
app.use('/resources', (0, ui_module_1.default)(config, config.organizationMenu.allowUnauthorized), (0, render_ui_module_1.default)(config.organizationMenu));
|
|
257
|
-
}
|
|
258
|
-
if (config.editorRightPanel) {
|
|
259
|
-
app.use('/editor-panels', (0, ui_module_1.default)(config, config.editorRightPanel.allowUnauthorized), (0, render_ui_module_1.default)(config.editorRightPanel));
|
|
260
|
-
}
|
|
261
|
-
if (config.editorThemes) {
|
|
262
|
-
app.get((0, util_1.getLogoUrl)(config.editorThemes, '/editor-themes'), (req, res) => { var _a; return res.sendFile(((_a = config.editorThemes) === null || _a === void 0 ? void 0 : _a.imagePath) || config.imagePath); });
|
|
263
|
-
}
|
|
264
|
-
if (config.projectMenu) {
|
|
265
|
-
app.use('/project-menu', (0, ui_module_1.default)(config, config.projectMenu.allowUnauthorized), (0, render_ui_module_1.default)(config.projectMenu));
|
|
266
|
-
}
|
|
267
|
-
if (config.projectMenuCrowdsource) {
|
|
268
|
-
app.use('/project-menu-crowdsource', (0, ui_module_1.default)(config, config.projectMenuCrowdsource.allowUnauthorized), (0, render_ui_module_1.default)(config.projectMenuCrowdsource));
|
|
269
|
-
}
|
|
270
|
-
if (config.projectTools) {
|
|
271
|
-
app.get((0, util_1.getLogoUrl)(config.projectTools, '/tools'), (req, res) => { var _a; return res.sendFile(((_a = config.projectTools) === null || _a === void 0 ? void 0 : _a.imagePath) || config.imagePath); });
|
|
272
|
-
app.use('/tools', (0, ui_module_1.default)(config, config.projectTools.allowUnauthorized), (0, render_ui_module_1.default)(config.projectTools));
|
|
273
|
-
}
|
|
274
|
-
if (config.projectReports) {
|
|
275
|
-
app.get((0, util_1.getLogoUrl)(config.projectReports, '/reports'), (req, res) => { var _a; return res.sendFile(((_a = config.projectReports) === null || _a === void 0 ? void 0 : _a.imagePath) || config.imagePath); });
|
|
276
|
-
app.use('/reports', (0, ui_module_1.default)(config, config.projectReports.allowUnauthorized), (0, render_ui_module_1.default)(config.projectReports));
|
|
277
|
-
}
|
|
278
|
-
if (((_d = config.modal) === null || _d === void 0 ? void 0 : _d.uiPath) || ((_e = config.modal) === null || _e === void 0 ? void 0 : _e.formSchema)) {
|
|
279
|
-
app.use('/modal', (0, ui_module_1.default)(config, config.modal.allowUnauthorized), (0, render_ui_module_1.default)(config.modal));
|
|
280
|
-
}
|
|
281
|
-
if (((_f = config.contextMenu) === null || _f === void 0 ? void 0 : _f.uiPath) || ((_g = config.contextMenu) === null || _g === void 0 ? void 0 : _g.formSchema)) {
|
|
282
|
-
app.use('/context', (0, ui_module_1.default)(config, config.contextMenu.allowUnauthorized), (0, render_ui_module_1.default)(config.contextMenu));
|
|
149
|
+
spellCheckApp.register({ config, app });
|
|
150
|
+
editorRightPanelApp.register({ config, app });
|
|
151
|
+
projectMenuApp.register({ config, app });
|
|
152
|
+
profileResourcesMenuApp.register({ config, app });
|
|
153
|
+
organizationMenuApp.register({ config, app });
|
|
154
|
+
projectMenuCrowdsourceApp.register({ config, app });
|
|
155
|
+
projectToolsApp.register({ config, app });
|
|
156
|
+
projectReportsApp.register({ config, app });
|
|
157
|
+
modalApp.register({ config, app });
|
|
158
|
+
contextMenuApp.register({ config, app });
|
|
159
|
+
//other apps only work in authorized context
|
|
160
|
+
if (!(0, defaults_1.isAuthorizedConfig)(config)) {
|
|
161
|
+
return {};
|
|
283
162
|
}
|
|
163
|
+
app.post('/installed', (0, install_1.default)(config));
|
|
164
|
+
app.post('/uninstall', (0, uninstall_1.default)(config));
|
|
165
|
+
/**
|
|
166
|
+
* Module structure
|
|
167
|
+
* /modules
|
|
168
|
+
* /<module-name>
|
|
169
|
+
* index.ts -> registration
|
|
170
|
+
* types.ts -> types, interfaces, etc
|
|
171
|
+
* /util -> folder for utilities # TODO needs to be done
|
|
172
|
+
* /handlers -> for http handlers
|
|
173
|
+
*/
|
|
174
|
+
integrationApp.register({ config, app });
|
|
175
|
+
editorThemesApp.register({ config, app });
|
|
176
|
+
customMTApp.register({ config, app });
|
|
177
|
+
fileProcessingApps.registerCustomFileFormat({ config, app });
|
|
178
|
+
fileProcessingApps.registerFilePreImport({ config, app });
|
|
179
|
+
fileProcessingApps.registerFilePostImport({ config, app });
|
|
180
|
+
fileProcessingApps.registerFilePreExport({ config, app });
|
|
181
|
+
fileProcessingApps.registerFilePostExport({ config, app });
|
|
284
182
|
if (config.api) {
|
|
285
183
|
if (config.api.default) {
|
|
286
184
|
(0, api_1.addDefaultApiEndpoints)(app, config);
|
|
287
185
|
}
|
|
288
186
|
(0, api_1.addSwagerApiDocumentation)(app, config);
|
|
289
187
|
}
|
|
290
|
-
if (config.customSpellchecker) {
|
|
291
|
-
if (config.customSpellchecker.settingsUiModule) {
|
|
292
|
-
app.use('/settings', (0, ui_module_1.default)(config, config.customSpellchecker.settingsUiModule.allowUnauthorized), (0, render_ui_module_1.default)(config.customSpellchecker.settingsUiModule));
|
|
293
|
-
}
|
|
294
|
-
app.get('/languages', json_response_1.default, (0, crowdin_client_1.default)(config), (0, get_languages_list_1.default)(config.customSpellchecker));
|
|
295
|
-
app.post('/spellcheck', json_response_1.default, (0, crowdin_client_1.default)(config), (0, spell_check_1.default)(config.customSpellchecker));
|
|
296
|
-
}
|
|
297
188
|
if (Object.keys(config).some((moduleKey) => {
|
|
298
189
|
const moduleConfig = config[moduleKey];
|
|
299
190
|
return typeof moduleConfig === 'object' && moduleConfig.hasOwnProperty('formSchema');
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="qs" />
|
|
2
2
|
import { Response } from 'express';
|
|
3
|
-
import { Config
|
|
3
|
+
import { Config } from '../models';
|
|
4
|
+
import { IntegrationLogic } from '../modules/integration/types';
|
|
4
5
|
export default function handle(config: Config, integration: IntegrationLogic, optional?: boolean): (req: import("../models").CrowdinClientRequest | import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="qs" />
|
|
2
2
|
import { Request, Response } from 'express';
|
|
3
|
-
import { Config } from '../models';
|
|
4
|
-
export default function handle(config: Config, allowUnauthorized?: boolean): (req: import("../models").CrowdinClientRequest | Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
3
|
+
import { Config, UnauthorizedConfig } from '../models';
|
|
4
|
+
export default function handle(config: Config | UnauthorizedConfig, allowUnauthorized?: boolean): (req: import("../models").CrowdinClientRequest | Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -13,6 +13,7 @@ const crowdin_apps_functions_1 = require("@crowdin/crowdin-apps-functions");
|
|
|
13
13
|
const storage_1 = require("../storage");
|
|
14
14
|
const util_1 = require("../util");
|
|
15
15
|
const connection_1 = require("../util/connection");
|
|
16
|
+
const defaults_1 = require("../util/defaults");
|
|
16
17
|
const logger_1 = require("../util/logger");
|
|
17
18
|
function handle(config, allowUnauthorized = false) {
|
|
18
19
|
return (0, util_1.runAsyncWrapper)((req, res, next) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -20,6 +21,9 @@ function handle(config, allowUnauthorized = false) {
|
|
|
20
21
|
next();
|
|
21
22
|
return;
|
|
22
23
|
}
|
|
24
|
+
if (!(0, defaults_1.isAuthorizedConfig)(config)) {
|
|
25
|
+
throw new Error('Invalid configuration. UI module was configured as authorized but client id and client secret are missing');
|
|
26
|
+
}
|
|
23
27
|
const jwtToken = req.query.jwtToken;
|
|
24
28
|
if (!jwtToken) {
|
|
25
29
|
return res.status(403).send({ error: 'Access denied' });
|