@crowdin/app-project-module 0.105.1 → 0.107.0-cf-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/app-test/integration/get-integration-files.js +0 -1
- package/out/app-test/integration/mocks/mock-axios.js +0 -1
- package/out/app-test/integration/update-crowdin.js +0 -1
- package/out/app-test/integration/update-integration.js +0 -1
- package/out/index.d.ts +1 -0
- package/out/index.js +30 -12
- package/out/middlewares/crowdin-client.d.ts +1 -1
- package/out/middlewares/integration-credentials.d.ts +1 -1
- package/out/middlewares/integration-credentials.js +4 -1
- package/out/middlewares/render-ui-module.d.ts +3 -3
- package/out/middlewares/render-ui-module.js +9 -13
- package/out/middlewares/ui-module.d.ts +1 -1
- package/out/middlewares/ui-module.js +10 -1
- package/out/modules/about.d.ts +2 -1
- package/out/modules/about.js +10 -3
- package/out/modules/ai-prompt-provider/handlers/compile.d.ts +1 -1
- package/out/modules/ai-prompt-provider/index.js +2 -2
- package/out/modules/ai-provider/handlers/chat-completions.d.ts +1 -1
- package/out/modules/ai-provider/handlers/chat-completions.js +0 -1
- package/out/modules/ai-provider/handlers/get-model-list.d.ts +1 -1
- package/out/modules/ai-provider/index.js +2 -2
- package/out/modules/ai-provider/types.d.ts +2 -2
- package/out/modules/ai-provider/util/index.js +0 -2
- package/out/modules/ai-request-processors/handler.d.ts +1 -1
- package/out/modules/ai-tools/handlers/tool-calls.d.ts +1 -1
- package/out/modules/ai-tools/index.js +1 -1
- package/out/modules/api/api.js +0 -1
- package/out/modules/auth-guard/handlers/verify.d.ts +1 -1
- package/out/modules/auth-guard/index.js +1 -1
- package/out/modules/automation-action/handlers/execute.d.ts +1 -1
- package/out/modules/automation-action/handlers/input-schema.d.ts +1 -1
- package/out/modules/automation-action/handlers/output-schema.d.ts +1 -1
- package/out/modules/automation-action/handlers/validate-settings.d.ts +1 -1
- package/out/modules/automation-action/index.js +1 -1
- package/out/modules/context-menu/index.js +2 -2
- package/out/modules/custom-mt/handlers/translate.d.ts +2 -2
- package/out/modules/custom-mt/handlers/translate.js +53 -4
- package/out/modules/custom-mt/index.js +6 -3
- package/out/modules/custom-mt/types.d.ts +14 -2
- package/out/modules/custom-spell-check/handlers/get-languages-list.d.ts +1 -1
- package/out/modules/custom-spell-check/handlers/spell-check.d.ts +1 -1
- package/out/modules/custom-spell-check/index.js +4 -4
- package/out/modules/editor-right-panel/index.js +1 -1
- package/out/modules/external-qa-check/handlers/validate.d.ts +1 -1
- package/out/modules/external-qa-check/index.js +2 -2
- package/out/modules/file-processing/handlers/custom-file-format.d.ts +7 -2
- package/out/modules/file-processing/handlers/custom-file-format.js +59 -19
- package/out/modules/file-processing/handlers/file-download.d.ts +1 -1
- package/out/modules/file-processing/handlers/file-download.js +5 -0
- package/out/modules/file-processing/handlers/pre-post-process.d.ts +1 -1
- package/out/modules/file-processing/handlers/pre-post-process.js +34 -14
- package/out/modules/file-processing/handlers/translations-alignment.d.ts +1 -1
- package/out/modules/file-processing/index.js +12 -2
- package/out/modules/file-processing/util/defaults.js +50 -6
- package/out/modules/file-processing/util/files.js +2 -1
- package/out/modules/form-data-display.d.ts +1 -1
- package/out/modules/form-data-save.d.ts +1 -1
- package/out/modules/install.d.ts +1 -1
- package/out/modules/integration/handlers/crowdin-file-progress.d.ts +1 -1
- package/out/modules/integration/handlers/crowdin-files.d.ts +1 -1
- package/out/modules/integration/handlers/crowdin-project.d.ts +1 -1
- package/out/modules/integration/handlers/crowdin-update.d.ts +1 -1
- package/out/modules/integration/handlers/crowdin-webhook.d.ts +1 -1
- package/out/modules/integration/handlers/integration-data.d.ts +1 -1
- package/out/modules/integration/handlers/integration-login.d.ts +1 -1
- package/out/modules/integration/handlers/integration-logout.d.ts +1 -1
- package/out/modules/integration/handlers/integration-update.d.ts +1 -1
- package/out/modules/integration/handlers/integration-webhook.d.ts +1 -1
- package/out/modules/integration/handlers/invite-users.d.ts +1 -1
- package/out/modules/integration/handlers/job-cancel.d.ts +1 -1
- package/out/modules/integration/handlers/job-info-deprecated.d.ts +1 -1
- package/out/modules/integration/handlers/job-info.d.ts +1 -1
- package/out/modules/integration/handlers/job-list.d.ts +1 -1
- package/out/modules/integration/handlers/main.d.ts +1 -1
- package/out/modules/integration/handlers/main.js +13 -1
- package/out/modules/integration/handlers/oauth-login.d.ts +1 -1
- package/out/modules/integration/handlers/oauth-login.js +12 -3
- package/out/modules/integration/handlers/oauth-polling.d.ts +2 -2
- package/out/modules/integration/handlers/oauth-polling.js +5 -3
- package/out/modules/integration/handlers/oauth-url.d.ts +1 -1
- package/out/modules/integration/handlers/settings-save.d.ts +1 -1
- package/out/modules/integration/handlers/settings.d.ts +1 -1
- package/out/modules/integration/handlers/sync-settings-save.d.ts +1 -1
- package/out/modules/integration/handlers/sync-settings-save.js +0 -2
- package/out/modules/integration/handlers/sync-settings.d.ts +1 -1
- package/out/modules/integration/handlers/user-errors.d.ts +1 -1
- package/out/modules/integration/handlers/users.d.ts +1 -1
- package/out/modules/integration/index.js +13 -34
- package/out/modules/integration/util/cron.js +1 -10
- package/out/modules/integration/util/defaults.js +31 -28
- package/out/modules/integration/util/files.js +18 -11
- package/out/modules/integration/util/job.js +0 -4
- package/out/modules/integration/util/snapshot.js +1 -5
- package/out/modules/integration/util/webhooks.js +1 -8
- package/out/modules/manifest.js +15 -13
- package/out/modules/modal/index.js +2 -2
- package/out/modules/organization-menu/index.js +5 -4
- package/out/modules/organization-settings-menu/index.js +5 -4
- package/out/modules/profile-resources-menu/index.js +5 -4
- package/out/modules/profile-settings-menu/index.js +5 -4
- package/out/modules/project-menu/index.js +1 -1
- package/out/modules/project-menu-crowdsource/index.js +1 -1
- package/out/modules/project-reports/index.js +3 -2
- package/out/modules/project-tools/index.js +3 -2
- package/out/modules/status.d.ts +1 -1
- package/out/modules/status.js +12 -3
- package/out/modules/subscription-paid.d.ts +1 -1
- package/out/modules/uninstall.d.ts +1 -1
- package/out/modules/webhooks/handlers/webhook-handler.d.ts +1 -1
- package/out/modules/webhooks/handlers/webhook-handler.js +30 -15
- package/out/modules/webhooks/types.d.ts +7 -0
- package/out/modules/workflow-step-type/handlers/delete-step.d.ts +1 -1
- package/out/modules/workflow-step-type/handlers/step-settings-save.d.ts +1 -1
- package/out/modules/workflow-step-type/index.js +2 -2
- package/out/storage/d1.d.ts +107 -0
- package/out/storage/d1.js +829 -0
- package/out/storage/index.js +8 -2
- package/out/storage/mysql.js +0 -3
- package/out/storage/postgre.js +0 -1
- package/out/storage/sqlite.js +0 -3
- package/out/types.d.ts +41 -2
- package/out/util/axios.js +0 -1
- package/out/util/credentials-masker.d.ts +1 -1
- package/out/util/cron.d.ts +29 -0
- package/out/util/cron.js +87 -0
- package/out/util/index.d.ts +12 -1
- package/out/util/index.js +54 -6
- package/out/util/jsx-renderer.d.ts +6 -0
- package/out/util/jsx-renderer.js +13 -0
- package/out/util/logger.js +0 -4
- package/out/util/static-files.d.ts +19 -0
- package/out/util/static-files.js +87 -0
- package/out/views/AboutPage.d.ts +10 -0
- package/out/views/AboutPage.js +76 -0
- package/out/views/ErrorPage.d.ts +18 -0
- package/out/views/ErrorPage.js +56 -0
- package/out/views/FormPage.d.ts +14 -0
- package/out/views/FormPage.js +28 -0
- package/out/views/InstallPage.d.ts +10 -0
- package/out/views/InstallPage.js +22 -0
- package/out/views/LoginPage.d.ts +33 -0
- package/out/views/LoginPage.js +200 -0
- package/out/views/MainPage.d.ts +81 -0
- package/out/views/MainPage.js +1784 -0
- package/out/views/OAuthPage.d.ts +7 -0
- package/out/views/OAuthPage.js +17 -0
- package/out/views/SubscriptionPage.d.ts +7 -0
- package/out/views/SubscriptionPage.js +26 -0
- package/out/views/index.d.ts +13 -0
- package/out/views/index.js +25 -0
- package/out/views/layout/Head.d.ts +9 -0
- package/out/views/layout/Head.js +54 -0
- package/package.json +33 -18
- package/out/util/handlebars.d.ts +0 -1
- package/out/util/handlebars.js +0 -46
- package/out/views/about.handlebars +0 -102
- package/out/views/error.handlebars +0 -54
- package/out/views/form.handlebars +0 -31
- package/out/views/install.handlebars +0 -16
- package/out/views/login.handlebars +0 -332
- package/out/views/main.handlebars +0 -2042
- package/out/views/oauth.handlebars +0 -11
- package/out/views/partials/head.handlebars +0 -53
- package/out/views/subscription.handlebars +0 -26
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { Response } from 'express';
|
|
3
3
|
import { Config } from '../../../types';
|
|
4
4
|
import { IntegrationLogic } from '../types';
|
|
5
|
-
export default function handle(config: Config, integration: IntegrationLogic): (req: import("
|
|
5
|
+
export default function handle(config: Config, integration: IntegrationLogic): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="qs" />
|
|
2
2
|
import { Response } from 'express';
|
|
3
3
|
import { CrowdinClientRequest } from '../../../types';
|
|
4
|
-
export default function handle(): (req:
|
|
4
|
+
export default function handle(): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { Response } from 'express';
|
|
3
3
|
import { Config } from '../../../types';
|
|
4
4
|
import { IntegrationLogic } from '../types';
|
|
5
|
-
export default function handle(config: Config, integration: IntegrationLogic): (req: import("
|
|
5
|
+
export default function handle(config: Config, integration: IntegrationLogic): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { Request, Response } from 'express';
|
|
3
3
|
import { Config } from '../../../types';
|
|
4
4
|
import { IntegrationLogic } from '../types';
|
|
5
|
-
export default function handle(config: Config, integration: IntegrationLogic): (req:
|
|
5
|
+
export default function handle(config: Config, integration: IntegrationLogic): (req: Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="qs" />
|
|
2
2
|
import { Response } from 'express';
|
|
3
3
|
import { IntegrationLogic } from '../types';
|
|
4
|
-
export default function handle(integration: IntegrationLogic): (req: import("
|
|
4
|
+
export default function handle(integration: IntegrationLogic): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { Response } from 'express';
|
|
3
3
|
import { Config, CrowdinClientRequest } from '../../../types';
|
|
4
4
|
import { IntegrationLogic } from '../types';
|
|
5
|
-
export default function handle(config: Config, integration: IntegrationLogic): (req:
|
|
5
|
+
export default function handle(config: Config, integration: IntegrationLogic): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { Response } from 'express';
|
|
3
3
|
import { Config } from '../../../types';
|
|
4
4
|
import { IntegrationLogic } from '../types';
|
|
5
|
-
export default function handle(config: Config, integration: IntegrationLogic): (req: import("
|
|
5
|
+
export default function handle(config: Config, integration: IntegrationLogic): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { Response } from 'express';
|
|
3
3
|
import { Config } from '../../../types';
|
|
4
4
|
import { IntegrationLogic } from '../types';
|
|
5
|
-
export default function handle(config: Config, integration: IntegrationLogic): (req: import("
|
|
5
|
+
export default function handle(config: Config, integration: IntegrationLogic): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { Request, Response } from 'express';
|
|
3
3
|
import { Config } from '../../../types';
|
|
4
4
|
import { IntegrationLogic } from '../types';
|
|
5
|
-
export default function handle(config: Config, integration: IntegrationLogic): (req:
|
|
5
|
+
export default function handle(config: Config, integration: IntegrationLogic): (req: Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference types="qs" />
|
|
2
2
|
import { Response } from 'express';
|
|
3
|
-
export default function handle(): (req: import("
|
|
3
|
+
export default function handle(): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference types="qs" />
|
|
2
2
|
import { Response } from 'express';
|
|
3
|
-
export default function handle(): (req: import("
|
|
3
|
+
export default function handle(): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="qs" />
|
|
2
2
|
import { Response } from 'express';
|
|
3
3
|
import { Config } from '../../../types';
|
|
4
|
-
export default function handle(config: Config): (req: import("
|
|
4
|
+
export default function handle(config: Config): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference types="qs" />
|
|
2
2
|
import { Response } from 'express';
|
|
3
|
-
export default function handle(): (req: import("
|
|
3
|
+
export default function handle(): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference types="qs" />
|
|
2
2
|
import { Response } from 'express';
|
|
3
|
-
export default function handle(): (req: import("
|
|
3
|
+
export default function handle(): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { Response } from 'express';
|
|
3
3
|
import { Config } from '../../../types';
|
|
4
4
|
import { IntegrationLogic } from '../types';
|
|
5
|
-
export default function handle(config: Config, integration: IntegrationLogic): (req: import("
|
|
5
|
+
export default function handle(config: Config, integration: IntegrationLogic): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -14,6 +14,7 @@ const logger_1 = require("../../../util/logger");
|
|
|
14
14
|
const subscription_1 = require("../../../util/subscription");
|
|
15
15
|
const defaults_1 = require("../util/defaults");
|
|
16
16
|
const users_1 = require("./users");
|
|
17
|
+
const views_1 = require("../../../views");
|
|
17
18
|
function handle(config, integration) {
|
|
18
19
|
return (0, util_1.runAsyncWrapper)((req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
19
20
|
var _a, _b, _c, _d;
|
|
@@ -94,7 +95,18 @@ function handle(config, integration) {
|
|
|
94
95
|
checkInterval: ((_d = integration.asyncProgress) === null || _d === void 0 ? void 0 : _d.checkInterval) || 1000,
|
|
95
96
|
};
|
|
96
97
|
logger(`Routing user to ${view} view`);
|
|
97
|
-
|
|
98
|
+
let html;
|
|
99
|
+
if (view === 'install') {
|
|
100
|
+
html = (0, util_1.renderJSX)(views_1.InstallPage, options);
|
|
101
|
+
}
|
|
102
|
+
else if (view === 'login') {
|
|
103
|
+
html = (0, util_1.renderJSX)(views_1.LoginPage, options);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
html = (0, util_1.renderJSX)(views_1.MainPage, options);
|
|
107
|
+
}
|
|
108
|
+
res.setHeader('Content-Type', 'text/html; charset=utf-8');
|
|
109
|
+
return res.send(html);
|
|
98
110
|
}));
|
|
99
111
|
}
|
|
100
112
|
exports.default = handle;
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { Request, Response } from 'express';
|
|
3
3
|
import { Config } from '../../../types';
|
|
4
4
|
import { IntegrationLogic } from '../types';
|
|
5
|
-
export default function handle(config: Config, integration: IntegrationLogic): (req:
|
|
5
|
+
export default function handle(config: Config, integration: IntegrationLogic): (req: Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -18,6 +18,7 @@ const defaults_1 = require("../util/defaults");
|
|
|
18
18
|
const logger_1 = require("../../../util/logger");
|
|
19
19
|
const storage_1 = require("../../../storage");
|
|
20
20
|
const crowdin_apps_functions_1 = require("@crowdin/crowdin-apps-functions");
|
|
21
|
+
const views_1 = require("../../../views");
|
|
21
22
|
function handle(config, integration) {
|
|
22
23
|
return (0, util_1.runAsyncWrapper)((req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
23
24
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
@@ -63,14 +64,22 @@ function handle(config, integration) {
|
|
|
63
64
|
message.data = oauthCredentials;
|
|
64
65
|
if (((_o = integration.oauthLogin) === null || _o === void 0 ? void 0 : _o.mode) === 'polling') {
|
|
65
66
|
yield (0, storage_1.getStorage)().deleteMetadata((0, defaults_1.getOAuthPollingId)(clientId));
|
|
66
|
-
|
|
67
|
+
const encryptedCredentials = (0, util_1.encryptData)(config, JSON.stringify(oauthCredentials));
|
|
68
|
+
yield (0, storage_1.getStorage)().saveMetadata((0, defaults_1.getOAuthPollingId)(clientId), encryptedCredentials, organization);
|
|
67
69
|
}
|
|
68
|
-
|
|
70
|
+
const html = (0, util_1.renderJSX)(views_1.OAuthPage, {
|
|
71
|
+
message: JSON.stringify(message),
|
|
72
|
+
oauthMode: (_p = integration.oauthLogin) === null || _p === void 0 ? void 0 : _p.mode,
|
|
73
|
+
});
|
|
74
|
+
res.setHeader('Content-Type', 'text/html; charset=utf-8');
|
|
75
|
+
return res.send(html);
|
|
69
76
|
}
|
|
70
77
|
catch (e) {
|
|
71
78
|
(0, logger_1.logError)(e);
|
|
72
79
|
message.data = { error: (0, logger_1.getErrorMessage)(e) };
|
|
73
|
-
|
|
80
|
+
const html = (0, util_1.renderJSX)(views_1.OAuthPage, { message: JSON.stringify(message) });
|
|
81
|
+
res.setHeader('Content-Type', 'text/html; charset=utf-8');
|
|
82
|
+
return res.send(html);
|
|
74
83
|
}
|
|
75
84
|
}));
|
|
76
85
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="qs" />
|
|
2
2
|
import { Response } from 'express';
|
|
3
|
-
import { CrowdinClientRequest } from '../../../types';
|
|
3
|
+
import { Config, CrowdinClientRequest } from '../../../types';
|
|
4
4
|
import { IntegrationLogic } from '../types';
|
|
5
|
-
export default function handle(integration: IntegrationLogic): (req:
|
|
5
|
+
export default function handle(config: Config, integration: IntegrationLogic): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
const storage_1 = require("../../../storage");
|
|
13
13
|
const util_1 = require("../../../util");
|
|
14
14
|
const defaults_1 = require("../util/defaults");
|
|
15
|
-
function handle(integration) {
|
|
15
|
+
function handle(config, integration) {
|
|
16
16
|
return (0, util_1.runAsyncWrapper)((req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
17
17
|
req.logInfo('Received OAuth polling request');
|
|
18
18
|
const { oauthLogin } = integration;
|
|
@@ -22,9 +22,11 @@ function handle(integration) {
|
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
24
|
const oauthId = (0, defaults_1.getOAuthPollingId)(req.crowdinContext.clientId);
|
|
25
|
-
const
|
|
26
|
-
|
|
25
|
+
const encryptedCreds = yield (0, storage_1.getStorage)().getMetadata(oauthId);
|
|
26
|
+
let oauthCreds;
|
|
27
|
+
if (encryptedCreds) {
|
|
27
28
|
yield (0, storage_1.getStorage)().deleteMetadata(oauthId);
|
|
29
|
+
oauthCreds = JSON.parse((0, util_1.decryptData)(config, encryptedCreds));
|
|
28
30
|
}
|
|
29
31
|
res.send({ oauthCreds });
|
|
30
32
|
}));
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { Response } from 'express';
|
|
3
3
|
import { Config, CrowdinClientRequest } from '../../../types';
|
|
4
4
|
import { IntegrationLogic } from '../types';
|
|
5
|
-
export default function handle(config: Config, integration: IntegrationLogic): (req:
|
|
5
|
+
export default function handle(config: Config, integration: IntegrationLogic): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { Response } from 'express';
|
|
3
3
|
import { Config } from '../../../types';
|
|
4
4
|
import { IntegrationLogic } from '../types';
|
|
5
|
-
export default function handle(config: Config, integration: IntegrationLogic): (req: import("
|
|
5
|
+
export default function handle(config: Config, integration: IntegrationLogic): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference types="qs" />
|
|
2
2
|
import { Response } from 'express';
|
|
3
|
-
export default function handle(): (req: import("
|
|
3
|
+
export default function handle(): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
import { Response } from 'express';
|
|
3
3
|
import { Config } from '../../../types';
|
|
4
4
|
import { IntegrationLogic } from '../types';
|
|
5
|
-
export default function handle(config: Config, integration: IntegrationLogic): (req: import("
|
|
5
|
+
export default function handle(config: Config, integration: IntegrationLogic): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -62,9 +62,7 @@ function handle(config, integration) {
|
|
|
62
62
|
const allFiles = expandedFiles.map((node) => ({
|
|
63
63
|
id: node.id,
|
|
64
64
|
name: node.name,
|
|
65
|
-
// eslint-disable-next-line @typescript-eslint/camelcase
|
|
66
65
|
node_type: node.nodeType,
|
|
67
|
-
// eslint-disable-next-line @typescript-eslint/camelcase
|
|
68
66
|
parent_id: node.parentId,
|
|
69
67
|
schedule: true,
|
|
70
68
|
sync: false,
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference types="qs" />
|
|
2
2
|
import { Response } from 'express';
|
|
3
|
-
export default function handle(): (req: import("
|
|
3
|
+
export default function handle(): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference types="qs" />
|
|
2
2
|
import { Response } from 'express';
|
|
3
|
-
export default function handle(): (req: import("
|
|
3
|
+
export default function handle(): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import Crowdin, { UsersModel } from '@crowdin/crowdin-api-client';
|
|
3
3
|
import { Response } from 'express';
|
|
4
4
|
export type ProjectMember = UsersModel.ProjectMember | UsersModel.EnterpriseProjectMember;
|
|
5
|
-
export default function handle(): (req: import("
|
|
5
|
+
export default function handle(): (req: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | import("../../../types").CrowdinClientRequest, res: Response<any, Record<string, any>>, next: Function) => void;
|
|
6
6
|
export declare function isManager({ client, projectId, memberId, }: {
|
|
7
7
|
client: Crowdin;
|
|
8
8
|
projectId: number;
|
|
@@ -1,27 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -36,11 +13,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
13
|
};
|
|
37
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
15
|
exports.register = void 0;
|
|
39
|
-
const cron = __importStar(require("node-cron"));
|
|
40
16
|
const crowdin_client_1 = __importDefault(require("../../middlewares/crowdin-client"));
|
|
41
17
|
const integration_credentials_1 = __importDefault(require("../../middlewares/integration-credentials"));
|
|
42
18
|
const json_response_1 = __importDefault(require("../../middlewares/json-response"));
|
|
43
19
|
const util_1 = require("../../util");
|
|
20
|
+
const util_2 = require("../../util");
|
|
21
|
+
const cron_1 = require("../../util/cron");
|
|
44
22
|
const defaults_1 = require("./util/defaults");
|
|
45
23
|
const webhooks_1 = require("./util/webhooks");
|
|
46
24
|
const crowdin_file_progress_1 = __importDefault(require("./handlers/crowdin-file-progress"));
|
|
@@ -68,7 +46,7 @@ const sync_settings_save_1 = __importDefault(require("./handlers/sync-settings-s
|
|
|
68
46
|
const user_errors_1 = __importDefault(require("./handlers/user-errors"));
|
|
69
47
|
const users_1 = __importDefault(require("./handlers/users"));
|
|
70
48
|
const invite_users_1 = __importDefault(require("./handlers/invite-users"));
|
|
71
|
-
const
|
|
49
|
+
const cron_2 = require("./util/cron");
|
|
72
50
|
const storage_1 = require("../../storage");
|
|
73
51
|
function register({ config, app }) {
|
|
74
52
|
var _a, _b, _c;
|
|
@@ -77,7 +55,7 @@ function register({ config, app }) {
|
|
|
77
55
|
return;
|
|
78
56
|
}
|
|
79
57
|
(0, defaults_1.applyIntegrationModuleDefaults)(config, integrationLogic);
|
|
80
|
-
app.
|
|
58
|
+
app.use('/logo/integration', (0, util_2.serveLogo)(config, integrationLogic));
|
|
81
59
|
app.get('/', (0, crowdin_client_1.default)({
|
|
82
60
|
config,
|
|
83
61
|
optional: true,
|
|
@@ -194,20 +172,21 @@ function register({ config, app }) {
|
|
|
194
172
|
optional: false,
|
|
195
173
|
checkSubscriptionExpiration: false,
|
|
196
174
|
moduleKey: integrationLogic.key,
|
|
197
|
-
}), (0, oauth_polling_1.default)(integrationLogic));
|
|
175
|
+
}), (0, oauth_polling_1.default)(config, integrationLogic));
|
|
198
176
|
}
|
|
199
177
|
}
|
|
178
|
+
const cron = (0, cron_1.getCron)();
|
|
200
179
|
if (integrationLogic.cronJobs) {
|
|
201
180
|
integrationLogic.cronJobs.forEach((job) => {
|
|
202
|
-
cron.schedule(job.expression, () => (0,
|
|
181
|
+
cron.schedule(job.expression, () => (0, cron_2.runJob)({ config, integration: integrationLogic, job }).catch(console.error));
|
|
203
182
|
});
|
|
204
183
|
}
|
|
205
184
|
if (integrationLogic.withCronSync) {
|
|
206
|
-
cron.schedule('0 * * * *', () => (0,
|
|
207
|
-
cron.schedule('0 */3 * * *', () => (0,
|
|
208
|
-
cron.schedule('0 */6 * * *', () => (0,
|
|
209
|
-
cron.schedule('0 */12 * * *', () => (0,
|
|
210
|
-
cron.schedule('0 0 * * *', () => (0,
|
|
185
|
+
cron.schedule('0 * * * *', () => (0, cron_2.filesCron)({ config, integration: integrationLogic, period: '1' }).catch(console.error));
|
|
186
|
+
cron.schedule('0 */3 * * *', () => (0, cron_2.filesCron)({ config, integration: integrationLogic, period: '3' }).catch(console.error));
|
|
187
|
+
cron.schedule('0 */6 * * *', () => (0, cron_2.filesCron)({ config, integration: integrationLogic, period: '6' }).catch(console.error));
|
|
188
|
+
cron.schedule('0 */12 * * *', () => (0, cron_2.filesCron)({ config, integration: integrationLogic, period: '12' }).catch(console.error));
|
|
189
|
+
cron.schedule('0 0 * * *', () => (0, cron_2.filesCron)({ config, integration: integrationLogic, period: '24' }).catch(console.error));
|
|
211
190
|
}
|
|
212
191
|
// remove user errors
|
|
213
192
|
cron.schedule('0 0 * * *', () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -216,6 +195,7 @@ function register({ config, app }) {
|
|
|
216
195
|
yield (0, storage_1.getStorage)().deleteAllUsersErrorsOlderThan(`${date.getTime()}`);
|
|
217
196
|
}
|
|
218
197
|
}));
|
|
198
|
+
cron.schedule('0 0 1 * *', () => (0, cron_2.removeFinishedJobs)());
|
|
219
199
|
if (integrationLogic.webhooks) {
|
|
220
200
|
app.post(`${integrationLogic.webhooks.crowdinWebhookUrl
|
|
221
201
|
? integrationLogic.webhooks.crowdinWebhookUrl
|
|
@@ -252,6 +232,5 @@ function register({ config, app }) {
|
|
|
252
232
|
checkSubscriptionExpiration: true,
|
|
253
233
|
moduleKey: integrationLogic.key,
|
|
254
234
|
}), (0, integration_credentials_1.default)(config, integrationLogic), (0, invite_users_1.default)());
|
|
255
|
-
cron.schedule('0 0 1 * *', () => (0, cron_1.removeFinishedJobs)());
|
|
256
235
|
}
|
|
257
236
|
exports.register = register;
|
|
@@ -172,13 +172,9 @@ function processSyncSettings({ config, integration, period, syncSettings, }) {
|
|
|
172
172
|
const context = {
|
|
173
173
|
jwtPayload: {
|
|
174
174
|
context: {
|
|
175
|
-
// eslint-disable-next-line @typescript-eslint/camelcase
|
|
176
175
|
project_id: projectId,
|
|
177
|
-
// eslint-disable-next-line @typescript-eslint/camelcase
|
|
178
176
|
organization_id: crowdinCredentials.organizationId,
|
|
179
|
-
// eslint-disable-next-line @typescript-eslint/camelcase
|
|
180
177
|
organization_domain: crowdinCredentials.domain,
|
|
181
|
-
// eslint-disable-next-line @typescript-eslint/camelcase
|
|
182
178
|
user_id: crowdinCredentials.userId,
|
|
183
179
|
},
|
|
184
180
|
},
|
|
@@ -221,7 +217,6 @@ function processSyncSettings({ config, integration, period, syncSettings, }) {
|
|
|
221
217
|
(0, logger_1.logError)(e, context);
|
|
222
218
|
return;
|
|
223
219
|
}
|
|
224
|
-
// eslint-disable-next-line @typescript-eslint/camelcase
|
|
225
220
|
context.jwtPayload.context.project_identifier = projectData.identifier;
|
|
226
221
|
const rootFolder = yield (0, defaults_1.getRootFolder)(config, integration, crowdinClient, projectId);
|
|
227
222
|
const apiCredentials = yield (0, connection_1.prepareIntegrationCredentials)(config, integration, integrationCredentials);
|
|
@@ -348,11 +343,7 @@ function processSyncSettings({ config, integration, period, syncSettings, }) {
|
|
|
348
343
|
(0, logger_1.log)(`updateIntegration task for files cron job with period [${period}] for project ${projectId} completed`);
|
|
349
344
|
}
|
|
350
345
|
else {
|
|
351
|
-
const allIntFiles = [...files, ...newFiles].map((file) => (Object.assign({ id: file.id, name: file.name, parentId: file.parent_id || file.parentId,
|
|
352
|
-
// eslint-disable-next-line @typescript-eslint/camelcase
|
|
353
|
-
parent_id: file.parent_id || file.parentId,
|
|
354
|
-
// eslint-disable-next-line @typescript-eslint/camelcase
|
|
355
|
-
node_type: file.nodeType || file.node_type }, (file.type ? { type: file.type } : {}))));
|
|
346
|
+
const allIntFiles = [...files, ...newFiles].map((file) => (Object.assign({ id: file.id, name: file.name, parentId: file.parent_id || file.parentId, parent_id: file.parent_id || file.parentId, node_type: file.nodeType || file.node_type }, (file.type ? { type: file.type } : {}))));
|
|
356
347
|
let intFiles = allIntFiles.filter((file) => 'type' in file);
|
|
357
348
|
if (integration.forcePushSources === true && currentFileSnapshot.length > 0) {
|
|
358
349
|
const snapshotMap = new Map(currentFileSnapshot.map((f) => [f.id, f]));
|
|
@@ -61,7 +61,6 @@ function applyIntegrationModuleDefaults(config, integration) {
|
|
|
61
61
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
62
62
|
if (!integration.getCrowdinFiles) {
|
|
63
63
|
integration.getCrowdinFiles = (projectId, client, rootFolder, config, mode) => __awaiter(this, void 0, void 0, function* () {
|
|
64
|
-
const allBranches = (yield client.sourceFilesApi.withFetchAll().listProjectBranches(projectId)).data.map((d) => d.data);
|
|
65
64
|
let options = {};
|
|
66
65
|
if (rootFolder) {
|
|
67
66
|
options = {
|
|
@@ -69,23 +68,38 @@ function applyIntegrationModuleDefaults(config, integration) {
|
|
|
69
68
|
recursion: 'true',
|
|
70
69
|
};
|
|
71
70
|
}
|
|
71
|
+
const needDirectories = !mode || mode === 'directories' || mode === 'files';
|
|
72
|
+
const needFiles = !mode || mode === 'files';
|
|
73
|
+
const [branchesResponse, directoriesResponse, filesResponse] = yield Promise.all([
|
|
74
|
+
client.sourceFilesApi.withFetchAll().listProjectBranches(projectId),
|
|
75
|
+
needDirectories
|
|
76
|
+
? client.sourceFilesApi.withFetchAll().listProjectDirectories(projectId, options)
|
|
77
|
+
: { data: [] },
|
|
78
|
+
needFiles ? client.sourceFilesApi.withFetchAll().listProjectFiles(projectId, options) : { data: [] },
|
|
79
|
+
]);
|
|
80
|
+
const allBranches = branchesResponse.data.map((d) => d.data);
|
|
81
|
+
const allDirectories = directoriesResponse.data.map((d) => d.data);
|
|
82
|
+
const allFiles = filesResponse.data.map((d) => d.data);
|
|
83
|
+
const branchesMap = new Map(allBranches.map((b) => [b.id, b]));
|
|
84
|
+
const addedBranchIds = new Set();
|
|
72
85
|
const res = [];
|
|
86
|
+
const addBranchIfNeeded = (branchId) => {
|
|
87
|
+
const branch = branchesMap.get(branchId);
|
|
88
|
+
if (branch && !addedBranchIds.has(branch.id)) {
|
|
89
|
+
addedBranchIds.add(branch.id);
|
|
90
|
+
res.push({
|
|
91
|
+
id: branch.id.toString(),
|
|
92
|
+
name: branch.name,
|
|
93
|
+
nodeType: '2',
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
return branch === null || branch === void 0 ? void 0 : branch.id;
|
|
97
|
+
};
|
|
73
98
|
if (!mode || mode === 'directories') {
|
|
74
|
-
const allDirectories = (yield client.sourceFilesApi.withFetchAll().listProjectDirectories(projectId, options)).data.map((d) => d.data);
|
|
75
99
|
allDirectories.forEach((e) => {
|
|
76
100
|
let parentId = rootFolder && e.directoryId === rootFolder.id ? undefined : e.directoryId;
|
|
77
101
|
if (!parentId && e.branchId) {
|
|
78
|
-
|
|
79
|
-
if (branch) {
|
|
80
|
-
parentId = branch.id;
|
|
81
|
-
if (!res.find((node) => node.id === branch.id.toString())) {
|
|
82
|
-
res.push({
|
|
83
|
-
id: branch.id.toString(),
|
|
84
|
-
name: branch.name,
|
|
85
|
-
nodeType: '2',
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
}
|
|
102
|
+
parentId = addBranchIfNeeded(e.branchId);
|
|
89
103
|
}
|
|
90
104
|
res.push({
|
|
91
105
|
id: e.id.toString(),
|
|
@@ -96,26 +110,15 @@ function applyIntegrationModuleDefaults(config, integration) {
|
|
|
96
110
|
}
|
|
97
111
|
if (!mode || mode === 'files') {
|
|
98
112
|
const directoryIds = mode === 'files'
|
|
99
|
-
?
|
|
113
|
+
? allDirectories.map((d) => d.id)
|
|
100
114
|
: res.filter((item) => !item.type && item.nodeType !== '2').map((d) => parseInt(d.id));
|
|
101
|
-
|
|
102
|
-
files = files.filter((f) => (rootFolder && f.directoryId === rootFolder.id) ||
|
|
115
|
+
const filteredFiles = allFiles.filter((f) => (rootFolder && f.directoryId === rootFolder.id) ||
|
|
103
116
|
directoryIds.includes(f.directoryId) ||
|
|
104
117
|
(!rootFolder && !f.directoryId));
|
|
105
|
-
|
|
118
|
+
filteredFiles.forEach((e) => {
|
|
106
119
|
let parentId = rootFolder && e.directoryId === rootFolder.id ? undefined : e.directoryId;
|
|
107
120
|
if (!parentId && e.branchId) {
|
|
108
|
-
|
|
109
|
-
if (branch) {
|
|
110
|
-
parentId = branch.id;
|
|
111
|
-
if (!res.find((node) => node.id === branch.id.toString())) {
|
|
112
|
-
res.push({
|
|
113
|
-
id: branch.id.toString(),
|
|
114
|
-
name: branch.name,
|
|
115
|
-
nodeType: '2',
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
}
|
|
121
|
+
parentId = addBranchIfNeeded(e.branchId);
|
|
119
122
|
}
|
|
120
123
|
res.push({
|
|
121
124
|
id: e.id.toString(),
|
|
@@ -213,17 +213,25 @@ function markUnsyncedFiles({ integrationId, crowdinId, client, files, }) {
|
|
|
213
213
|
let unsyncedFiles = (unsyncedFilesData === null || unsyncedFilesData === void 0 ? void 0 : unsyncedFilesData.files)
|
|
214
214
|
? JSON.parse(unsyncedFilesData === null || unsyncedFilesData === void 0 ? void 0 : unsyncedFilesData.files)
|
|
215
215
|
: [];
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
216
|
+
if (unsyncedFiles.length === 0) {
|
|
217
|
+
return files;
|
|
218
|
+
}
|
|
219
|
+
const fileIds = new Set(files.filter((file) => isFileLeaf(file)).map((file) => `${file.id}`));
|
|
220
|
+
const idsToRemove = unsyncedFiles.filter((file) => !fileIds.has(`${file.id}`)).map((file) => file.id);
|
|
221
|
+
if (idsToRemove.length > 0) {
|
|
222
|
+
unsyncedFiles = unsyncedFiles.filter((file) => !idsToRemove.includes(file.id));
|
|
223
|
+
yield (0, storage_1.getStorage)().updateUnsyncedFiles({
|
|
224
|
+
integrationId,
|
|
225
|
+
crowdinId,
|
|
226
|
+
files: JSON.stringify(unsyncedFiles),
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
if (unsyncedFiles.length === 0) {
|
|
230
|
+
return files;
|
|
231
|
+
}
|
|
219
232
|
const userTimezone = (yield client.usersApi.getAuthenticatedUser()).data.timezone;
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
crowdinId,
|
|
223
|
-
files: JSON.stringify(unsyncedFiles),
|
|
224
|
-
});
|
|
225
|
-
files = files.map((file) => {
|
|
226
|
-
const unsynced = unsyncedFiles.find((unsyncedFile) => unsyncedFile.id === file.id);
|
|
233
|
+
return files.map((file) => {
|
|
234
|
+
const unsynced = unsyncedFiles.find((f) => `${f.id}` === `${file.id}`);
|
|
227
235
|
if (unsynced && isFileLeaf(file)) {
|
|
228
236
|
const formattedDate = (0, util_1.getFormattedDate)({ date: new Date(+unsynced.updatedAt), userTimezone });
|
|
229
237
|
file.labels = [
|
|
@@ -238,7 +246,6 @@ function markUnsyncedFiles({ integrationId, crowdinId, client, files, }) {
|
|
|
238
246
|
}
|
|
239
247
|
return file;
|
|
240
248
|
});
|
|
241
|
-
return files;
|
|
242
249
|
});
|
|
243
250
|
}
|
|
244
251
|
exports.markUnsyncedFiles = markUnsyncedFiles;
|
|
@@ -260,13 +260,9 @@ function reRunInProgressJobs(config) {
|
|
|
260
260
|
const context = {
|
|
261
261
|
jwtPayload: {
|
|
262
262
|
context: {
|
|
263
|
-
// eslint-disable-next-line @typescript-eslint/camelcase
|
|
264
263
|
project_id: projectId,
|
|
265
|
-
// eslint-disable-next-line @typescript-eslint/camelcase
|
|
266
264
|
organization_id: crowdinCredentials.organizationId,
|
|
267
|
-
// eslint-disable-next-line @typescript-eslint/camelcase
|
|
268
265
|
organization_domain: crowdinCredentials.domain,
|
|
269
|
-
// eslint-disable-next-line @typescript-eslint/camelcase
|
|
270
266
|
user_id: crowdinCredentials.userId,
|
|
271
267
|
},
|
|
272
268
|
},
|
|
@@ -65,11 +65,7 @@ function getIntegrationSnapshot(integration, integrationCredentials, integration
|
|
|
65
65
|
files = (0, files_1.skipFilesByRegex)(files, integration.skipIntegrationNodes);
|
|
66
66
|
}
|
|
67
67
|
// trick for compatibility in requests and set files
|
|
68
|
-
files = files.map((file) => (Object.assign(Object.assign({}, file), { parentId: file.parent_id || file.parentId,
|
|
69
|
-
// eslint-disable-next-line @typescript-eslint/camelcase
|
|
70
|
-
parent_id: file.parent_id || file.parentId,
|
|
71
|
-
// eslint-disable-next-line @typescript-eslint/camelcase
|
|
72
|
-
node_type: file.nodeType || file.node_type })));
|
|
68
|
+
files = files.map((file) => (Object.assign(Object.assign({}, file), { parentId: file.parent_id || file.parentId, parent_id: file.parent_id || file.parentId, node_type: file.nodeType || file.node_type })));
|
|
73
69
|
return files;
|
|
74
70
|
});
|
|
75
71
|
}
|