smartling-api-sdk-nodejs 2.27.0 → 2.28.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/.scannerwork/report-task.txt +2 -2
- package/api/base/base-api.ts +205 -0
- package/api/base/base-file-api.ts +23 -0
- package/api/base/index.ts +2 -205
- package/api/file-translations/index.ts +5 -24
- package/api/files/index.ts +20 -2
- package/api/files/params/download-file-with-metadata-parameters.ts +12 -0
- package/api/files/params/filename-mode.ts +4 -0
- package/built/api/base/base-api.d.ts +26 -0
- package/built/api/base/base-api.js +163 -0
- package/built/api/base/base-api.js.map +1 -0
- package/built/api/base/base-file-api.d.ts +5 -0
- package/built/api/base/base-file-api.js +36 -0
- package/built/api/base/base-file-api.js.map +1 -0
- package/built/api/base/index.d.ts +2 -26
- package/built/api/base/index.js +5 -160
- package/built/api/base/index.js.map +1 -1
- package/built/api/dto/translated-file-dto.js.map +1 -0
- package/built/api/file-translations/index.d.ts +3 -4
- package/built/api/file-translations/index.js +3 -22
- package/built/api/file-translations/index.js.map +1 -1
- package/built/api/files/index.d.ts +5 -2
- package/built/api/files/index.js +7 -2
- package/built/api/files/index.js.map +1 -1
- package/built/api/files/params/download-file-with-metadata-parameters.d.ts +5 -0
- package/built/api/files/params/download-file-with-metadata-parameters.js +15 -0
- package/built/api/files/params/download-file-with-metadata-parameters.js.map +1 -0
- package/built/api/files/params/filename-mode.d.ts +4 -0
- package/built/api/files/params/filename-mode.js +9 -0
- package/built/api/files/params/filename-mode.js.map +1 -0
- package/built/index.d.ts +4 -1
- package/built/index.js +4 -1
- package/built/index.js.map +1 -1
- package/built/package.json +1 -1
- package/index.ts +4 -1
- package/package.json +1 -1
- package/test/base-file.spec.ts +57 -0
- package/test/files.spec.ts +272 -0
- package/built/api/file-translations/dto/translated-file-dto.js.map +0 -1
- /package/api/{file-translations/dto → dto}/translated-file-dto.ts +0 -0
- /package/built/api/{file-translations/dto → dto}/translated-file-dto.d.ts +0 -0
- /package/built/api/{file-translations/dto → dto}/translated-file-dto.js +0 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.SmartlingBaseApi = void 0;
|
|
16
|
+
const merge_deep_1 = __importDefault(require("merge-deep"));
|
|
17
|
+
const default_user_agent_1 = __importDefault(require("default-user-agent"));
|
|
18
|
+
const cross_fetch_1 = __importDefault(require("cross-fetch"));
|
|
19
|
+
const querystring_1 = require("querystring");
|
|
20
|
+
const index_1 = require("../exception/index");
|
|
21
|
+
const response_body_type_1 = require("./enum/response-body-type");
|
|
22
|
+
const packageJson = require("../../package.json");
|
|
23
|
+
class SmartlingBaseApi {
|
|
24
|
+
constructor(logger) {
|
|
25
|
+
this.authApi = undefined;
|
|
26
|
+
this.defaultClientLibId = packageJson.name;
|
|
27
|
+
this.defaultClientVersion = packageJson.version;
|
|
28
|
+
this.clientLibId = this.defaultClientLibId;
|
|
29
|
+
this.clientLibVersion = this.defaultClientVersion;
|
|
30
|
+
this.logger = logger;
|
|
31
|
+
this.options = {};
|
|
32
|
+
}
|
|
33
|
+
setOptions(options) {
|
|
34
|
+
this.options = options;
|
|
35
|
+
}
|
|
36
|
+
getClientLibId() {
|
|
37
|
+
return this.clientLibId;
|
|
38
|
+
}
|
|
39
|
+
setClientLibId(clientLibId) {
|
|
40
|
+
this.clientLibId = clientLibId;
|
|
41
|
+
}
|
|
42
|
+
getClientLibVersion() {
|
|
43
|
+
return this.clientLibVersion;
|
|
44
|
+
}
|
|
45
|
+
setClientLibVersion(clientLibVersion) {
|
|
46
|
+
this.clientLibVersion = clientLibVersion;
|
|
47
|
+
}
|
|
48
|
+
fetch(uri, options) {
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
return yield (0, cross_fetch_1.default)(uri, options);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
ua(clientId, clientVersion) {
|
|
54
|
+
return (0, default_user_agent_1.default)(clientId, clientVersion);
|
|
55
|
+
}
|
|
56
|
+
alterRequestData(uri, opts) {
|
|
57
|
+
return opts;
|
|
58
|
+
}
|
|
59
|
+
getDefaultHeaders(headers = {}) {
|
|
60
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
let defaultHeaders = {};
|
|
62
|
+
if (this.hasOwnProperty("authApi") && undefined !== this.authApi) {
|
|
63
|
+
const accessToken = yield this.authApi.getAccessToken();
|
|
64
|
+
const tokenType = yield this.authApi.getTokenType();
|
|
65
|
+
defaultHeaders = {
|
|
66
|
+
Authorization: `${tokenType} ${accessToken}`
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
defaultHeaders["Content-Type"] = "application/json";
|
|
70
|
+
defaultHeaders["User-Agent"] = this.ua(this.clientLibId, this.clientLibVersion);
|
|
71
|
+
return (0, merge_deep_1.default)(defaultHeaders, headers);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
makeRequest(verb, uri, payload = null, returnRawResponseBody = false, headers = {}) {
|
|
75
|
+
var _a, _b;
|
|
76
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
const opts = (0, merge_deep_1.default)({
|
|
78
|
+
method: verb,
|
|
79
|
+
headers: yield this.getDefaultHeaders(headers)
|
|
80
|
+
}, this.options);
|
|
81
|
+
if (verb.toLowerCase() !== "get" && payload) {
|
|
82
|
+
opts.body = payload;
|
|
83
|
+
}
|
|
84
|
+
else if (payload) {
|
|
85
|
+
uri = `${uri}?${(0, querystring_1.stringify)(payload)}`;
|
|
86
|
+
}
|
|
87
|
+
let response = yield this.fetch(uri, this.alterRequestData(uri, opts));
|
|
88
|
+
if (response.status === 401) {
|
|
89
|
+
this.logger.warn("Got unexpected 401 response code, trying to re-auth carefully...");
|
|
90
|
+
if (this.hasOwnProperty("authApi") && this.authApi !== undefined) {
|
|
91
|
+
this.authApi.resetToken();
|
|
92
|
+
}
|
|
93
|
+
const defaultHeaders = yield this.getDefaultHeaders(headers);
|
|
94
|
+
opts.headers.Authorization = defaultHeaders.Authorization;
|
|
95
|
+
response = yield this.fetch(uri, this.alterRequestData(uri, opts));
|
|
96
|
+
}
|
|
97
|
+
if (response.status >= 400) {
|
|
98
|
+
const responseText = yield response.text();
|
|
99
|
+
throw new index_1.SmartlingException(`Request for ${uri} failed`, {
|
|
100
|
+
statusCode: response.status,
|
|
101
|
+
errorResponse: responseText,
|
|
102
|
+
requestId: response.headers.get("x-sl-requestid")
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
if (returnRawResponseBody === true || returnRawResponseBody === response_body_type_1.ResponseBodyType.TEXT) {
|
|
106
|
+
return response.text();
|
|
107
|
+
}
|
|
108
|
+
if (returnRawResponseBody === response_body_type_1.ResponseBodyType.ARRAY_BUFFER) {
|
|
109
|
+
return response.arrayBuffer();
|
|
110
|
+
}
|
|
111
|
+
if (returnRawResponseBody === response_body_type_1.ResponseBodyType.RAW_RESPONSE) {
|
|
112
|
+
return response;
|
|
113
|
+
}
|
|
114
|
+
let textResponse;
|
|
115
|
+
try {
|
|
116
|
+
textResponse = yield response.text();
|
|
117
|
+
const jsonResponse = JSON.parse(textResponse, (key, value) => {
|
|
118
|
+
const dateProperties = [
|
|
119
|
+
"created",
|
|
120
|
+
"modified",
|
|
121
|
+
"updated",
|
|
122
|
+
"createdDate",
|
|
123
|
+
"modifiedDate",
|
|
124
|
+
"updatedDate",
|
|
125
|
+
"dueDate",
|
|
126
|
+
"actionTime",
|
|
127
|
+
"publishDate",
|
|
128
|
+
"lastModified",
|
|
129
|
+
"attemptDate"
|
|
130
|
+
];
|
|
131
|
+
if (dateProperties.includes(key) && value) {
|
|
132
|
+
return new Date(value);
|
|
133
|
+
}
|
|
134
|
+
return value;
|
|
135
|
+
});
|
|
136
|
+
this.logger.debug(`Received code ${response.status}; content: ${JSON.stringify(jsonResponse, SmartlingBaseApi.sensitiveReplacer)}`);
|
|
137
|
+
return ((_a = jsonResponse === null || jsonResponse === void 0 ? void 0 : jsonResponse.response) === null || _a === void 0 ? void 0 : _a.data) ? (_b = jsonResponse === null || jsonResponse === void 0 ? void 0 : jsonResponse.response) === null || _b === void 0 ? void 0 : _b.data : true;
|
|
138
|
+
}
|
|
139
|
+
catch (e) {
|
|
140
|
+
this.logger.error(`Couldn't parse response json: ${e.toString()}`);
|
|
141
|
+
throw new index_1.SmartlingException("Couldn't parse response json", {
|
|
142
|
+
statusCode: response.status,
|
|
143
|
+
errorResponse: textResponse,
|
|
144
|
+
requestId: response.headers.get("x-sl-requestid")
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
static sensitiveReplacer(key, value) {
|
|
150
|
+
const sensitiveProperties = [
|
|
151
|
+
"userIdentifier",
|
|
152
|
+
"userSecret",
|
|
153
|
+
"accessToken",
|
|
154
|
+
"refreshToken"
|
|
155
|
+
];
|
|
156
|
+
if (sensitiveProperties.includes(key) && value && typeof value === "string") {
|
|
157
|
+
return `${value.substring(0, 10)}xxxxx`;
|
|
158
|
+
}
|
|
159
|
+
return value;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
exports.SmartlingBaseApi = SmartlingBaseApi;
|
|
163
|
+
//# sourceMappingURL=base-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-api.js","sourceRoot":"","sources":["../../../api/base/base-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { SmartlingBaseApi } from "./base-api";
|
|
2
|
+
import { TranslatedFileDto } from "../dto/translated-file-dto";
|
|
3
|
+
export declare class SmartlingBaseFileApi extends SmartlingBaseApi {
|
|
4
|
+
static downloadResponseToTranslatedFileDto(response: Response): Promise<TranslatedFileDto>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.SmartlingBaseFileApi = void 0;
|
|
13
|
+
const base_api_1 = require("./base-api");
|
|
14
|
+
class SmartlingBaseFileApi extends base_api_1.SmartlingBaseApi {
|
|
15
|
+
static downloadResponseToTranslatedFileDto(response) {
|
|
16
|
+
var _a;
|
|
17
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
const contentType = (_a = response.headers.get("content-type")) !== null && _a !== void 0 ? _a : undefined;
|
|
19
|
+
const contentDisposition = response.headers.get("content-disposition");
|
|
20
|
+
let fileName;
|
|
21
|
+
if (contentDisposition) {
|
|
22
|
+
const fileNameMatch = contentDisposition.match(/filename="((?:[^"\\]|\\.)*)"/);
|
|
23
|
+
if (fileNameMatch) {
|
|
24
|
+
fileName = fileNameMatch[1].replace(/\\"/g, "\"");
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
fileContent: yield response.arrayBuffer(),
|
|
29
|
+
fileName,
|
|
30
|
+
contentType
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.SmartlingBaseFileApi = SmartlingBaseFileApi;
|
|
36
|
+
//# sourceMappingURL=base-file-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-file-api.js","sourceRoot":"","sources":["../../../api/base/base-file-api.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAA8C;AAG9C,MAAa,oBAAqB,SAAQ,2BAAgB;IACtD,MAAM,CAAO,mCAAmC,CAC5C,QAAkB;;;YAElB,MAAM,WAAW,GAAG,MAAA,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,mCAAI,SAAS,CAAC;YACtE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACvE,IAAI,QAAQ,CAAC;YACb,IAAI,kBAAkB,EAAE;gBACpB,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBAC/E,IAAI,aAAa,EAAE;oBACf,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;iBACrD;aACJ;YACD,OAAO;gBACH,WAAW,EAAE,MAAM,QAAQ,CAAC,WAAW,EAAE;gBACzC,QAAQ;gBACR,WAAW;aACd,CAAC;;KACL;CACJ;AAnBD,oDAmBC"}
|
|
@@ -1,26 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { AccessTokenProvider } from "../auth/access-token-provider";
|
|
4
|
-
import { ResponseBodyType } from "./enum/response-body-type";
|
|
5
|
-
export declare class SmartlingBaseApi {
|
|
6
|
-
protected authApi: AccessTokenProvider;
|
|
7
|
-
protected entrypoint: string;
|
|
8
|
-
protected defaultClientLibId: string;
|
|
9
|
-
protected defaultClientVersion: string;
|
|
10
|
-
protected clientLibId: string;
|
|
11
|
-
protected clientLibVersion: string;
|
|
12
|
-
protected logger: Logger;
|
|
13
|
-
protected options: Record<string, unknown>;
|
|
14
|
-
constructor(logger: Logger);
|
|
15
|
-
setOptions(options: Record<string, unknown>): void;
|
|
16
|
-
getClientLibId(): string;
|
|
17
|
-
setClientLibId(clientLibId: string): void;
|
|
18
|
-
getClientLibVersion(): string;
|
|
19
|
-
setClientLibVersion(clientLibVersion: string): void;
|
|
20
|
-
fetch(uri: string, options: Record<string, unknown>): Promise<Response>;
|
|
21
|
-
ua(clientId: string, clientVersion: string): string;
|
|
22
|
-
alterRequestData(uri: string, opts: Record<string, unknown>): Record<string, unknown>;
|
|
23
|
-
getDefaultHeaders(headers?: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
24
|
-
makeRequest(verb: string, uri: string, payload?: Record<string, unknown> | string | FormData, returnRawResponseBody?: ResponseBodyType | boolean, headers?: Record<string, unknown>): Promise<any>;
|
|
25
|
-
static sensitiveReplacer(key: string, value: any): any;
|
|
26
|
-
}
|
|
1
|
+
export { SmartlingBaseApi } from "./base-api";
|
|
2
|
+
export { SmartlingBaseFileApi } from "./base-file-api";
|
package/built/api/base/index.js
CHANGED
|
@@ -1,163 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.SmartlingBaseApi = void 0;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const index_1 = require("../exception/index");
|
|
21
|
-
const response_body_type_1 = require("./enum/response-body-type");
|
|
22
|
-
const packageJson = require("../../package.json");
|
|
23
|
-
class SmartlingBaseApi {
|
|
24
|
-
constructor(logger) {
|
|
25
|
-
this.authApi = undefined;
|
|
26
|
-
this.defaultClientLibId = packageJson.name;
|
|
27
|
-
this.defaultClientVersion = packageJson.version;
|
|
28
|
-
this.clientLibId = this.defaultClientLibId;
|
|
29
|
-
this.clientLibVersion = this.defaultClientVersion;
|
|
30
|
-
this.logger = logger;
|
|
31
|
-
this.options = {};
|
|
32
|
-
}
|
|
33
|
-
setOptions(options) {
|
|
34
|
-
this.options = options;
|
|
35
|
-
}
|
|
36
|
-
getClientLibId() {
|
|
37
|
-
return this.clientLibId;
|
|
38
|
-
}
|
|
39
|
-
setClientLibId(clientLibId) {
|
|
40
|
-
this.clientLibId = clientLibId;
|
|
41
|
-
}
|
|
42
|
-
getClientLibVersion() {
|
|
43
|
-
return this.clientLibVersion;
|
|
44
|
-
}
|
|
45
|
-
setClientLibVersion(clientLibVersion) {
|
|
46
|
-
this.clientLibVersion = clientLibVersion;
|
|
47
|
-
}
|
|
48
|
-
fetch(uri, options) {
|
|
49
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
-
return yield (0, cross_fetch_1.default)(uri, options);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
ua(clientId, clientVersion) {
|
|
54
|
-
return (0, default_user_agent_1.default)(clientId, clientVersion);
|
|
55
|
-
}
|
|
56
|
-
alterRequestData(uri, opts) {
|
|
57
|
-
return opts;
|
|
58
|
-
}
|
|
59
|
-
getDefaultHeaders(headers = {}) {
|
|
60
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
-
let defaultHeaders = {};
|
|
62
|
-
if (this.hasOwnProperty("authApi") && undefined !== this.authApi) {
|
|
63
|
-
const accessToken = yield this.authApi.getAccessToken();
|
|
64
|
-
const tokenType = yield this.authApi.getTokenType();
|
|
65
|
-
defaultHeaders = {
|
|
66
|
-
Authorization: `${tokenType} ${accessToken}`
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
defaultHeaders["Content-Type"] = "application/json";
|
|
70
|
-
defaultHeaders["User-Agent"] = this.ua(this.clientLibId, this.clientLibVersion);
|
|
71
|
-
return (0, merge_deep_1.default)(defaultHeaders, headers);
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
makeRequest(verb, uri, payload = null, returnRawResponseBody = false, headers = {}) {
|
|
75
|
-
var _a, _b;
|
|
76
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
-
const opts = (0, merge_deep_1.default)({
|
|
78
|
-
method: verb,
|
|
79
|
-
headers: yield this.getDefaultHeaders(headers)
|
|
80
|
-
}, this.options);
|
|
81
|
-
if (verb.toLowerCase() !== "get" && payload) {
|
|
82
|
-
opts.body = payload;
|
|
83
|
-
}
|
|
84
|
-
else if (payload) {
|
|
85
|
-
uri = `${uri}?${(0, querystring_1.stringify)(payload)}`;
|
|
86
|
-
}
|
|
87
|
-
let response = yield this.fetch(uri, this.alterRequestData(uri, opts));
|
|
88
|
-
if (response.status === 401) {
|
|
89
|
-
this.logger.warn("Got unexpected 401 response code, trying to re-auth carefully...");
|
|
90
|
-
if (this.hasOwnProperty("authApi") && this.authApi !== undefined) {
|
|
91
|
-
this.authApi.resetToken();
|
|
92
|
-
}
|
|
93
|
-
const defaultHeaders = yield this.getDefaultHeaders(headers);
|
|
94
|
-
opts.headers.Authorization = defaultHeaders.Authorization;
|
|
95
|
-
response = yield this.fetch(uri, this.alterRequestData(uri, opts));
|
|
96
|
-
}
|
|
97
|
-
if (response.status >= 400) {
|
|
98
|
-
const responseText = yield response.text();
|
|
99
|
-
throw new index_1.SmartlingException(`Request for ${uri} failed`, {
|
|
100
|
-
statusCode: response.status,
|
|
101
|
-
errorResponse: responseText,
|
|
102
|
-
requestId: response.headers.get("x-sl-requestid")
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
if (returnRawResponseBody === true || returnRawResponseBody === response_body_type_1.ResponseBodyType.TEXT) {
|
|
106
|
-
return response.text();
|
|
107
|
-
}
|
|
108
|
-
if (returnRawResponseBody === response_body_type_1.ResponseBodyType.ARRAY_BUFFER) {
|
|
109
|
-
return response.arrayBuffer();
|
|
110
|
-
}
|
|
111
|
-
if (returnRawResponseBody === response_body_type_1.ResponseBodyType.RAW_RESPONSE) {
|
|
112
|
-
return response;
|
|
113
|
-
}
|
|
114
|
-
let textResponse;
|
|
115
|
-
try {
|
|
116
|
-
textResponse = yield response.text();
|
|
117
|
-
const jsonResponse = JSON.parse(textResponse, (key, value) => {
|
|
118
|
-
const dateProperties = [
|
|
119
|
-
"created",
|
|
120
|
-
"modified",
|
|
121
|
-
"updated",
|
|
122
|
-
"createdDate",
|
|
123
|
-
"modifiedDate",
|
|
124
|
-
"updatedDate",
|
|
125
|
-
"dueDate",
|
|
126
|
-
"actionTime",
|
|
127
|
-
"publishDate",
|
|
128
|
-
"lastModified",
|
|
129
|
-
"attemptDate"
|
|
130
|
-
];
|
|
131
|
-
if (dateProperties.includes(key) && value) {
|
|
132
|
-
return new Date(value);
|
|
133
|
-
}
|
|
134
|
-
return value;
|
|
135
|
-
});
|
|
136
|
-
this.logger.debug(`Received code ${response.status}; content: ${JSON.stringify(jsonResponse, SmartlingBaseApi.sensitiveReplacer)}`);
|
|
137
|
-
return ((_a = jsonResponse === null || jsonResponse === void 0 ? void 0 : jsonResponse.response) === null || _a === void 0 ? void 0 : _a.data) ? (_b = jsonResponse === null || jsonResponse === void 0 ? void 0 : jsonResponse.response) === null || _b === void 0 ? void 0 : _b.data : true;
|
|
138
|
-
}
|
|
139
|
-
catch (e) {
|
|
140
|
-
this.logger.error(`Couldn't parse response json: ${e.toString()}`);
|
|
141
|
-
throw new index_1.SmartlingException("Couldn't parse response json", {
|
|
142
|
-
statusCode: response.status,
|
|
143
|
-
errorResponse: textResponse,
|
|
144
|
-
requestId: response.headers.get("x-sl-requestid")
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
static sensitiveReplacer(key, value) {
|
|
150
|
-
const sensitiveProperties = [
|
|
151
|
-
"userIdentifier",
|
|
152
|
-
"userSecret",
|
|
153
|
-
"accessToken",
|
|
154
|
-
"refreshToken"
|
|
155
|
-
];
|
|
156
|
-
if (sensitiveProperties.includes(key) && value && typeof value === "string") {
|
|
157
|
-
return `${value.substring(0, 10)}xxxxx`;
|
|
158
|
-
}
|
|
159
|
-
return value;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
exports.SmartlingBaseApi = SmartlingBaseApi;
|
|
3
|
+
exports.SmartlingBaseFileApi = exports.SmartlingBaseApi = void 0;
|
|
4
|
+
var base_api_1 = require("./base-api");
|
|
5
|
+
Object.defineProperty(exports, "SmartlingBaseApi", { enumerable: true, get: function () { return base_api_1.SmartlingBaseApi; } });
|
|
6
|
+
var base_file_api_1 = require("./base-file-api");
|
|
7
|
+
Object.defineProperty(exports, "SmartlingBaseFileApi", { enumerable: true, get: function () { return base_file_api_1.SmartlingBaseFileApi; } });
|
|
163
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../api/base/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../api/base/index.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAArC,4GAAA,gBAAgB,OAAA;AACzB,iDAAuD;AAA9C,qHAAA,oBAAoB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translated-file-dto.js","sourceRoot":"","sources":["../../../api/dto/translated-file-dto.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import FormData from "form-data";
|
|
2
|
-
import {
|
|
2
|
+
import { SmartlingBaseFileApi } from "../base";
|
|
3
3
|
import { AccessTokenProvider } from "../auth/access-token-provider";
|
|
4
4
|
import { Logger } from "../logger";
|
|
5
5
|
import { FtsUploadedFileDto } from "./dto/fts-uploaded-file-dto";
|
|
@@ -9,9 +9,9 @@ import { TranslateFileParameters } from "./params/translate-file-parameters";
|
|
|
9
9
|
import { TranslationStatusDto } from "./dto/translation-status-dto";
|
|
10
10
|
import { LanguageDetectionDto } from "./dto/language-detection-dto";
|
|
11
11
|
import { LanguageDetectionStatusDto } from "./dto/language-detection-status-dto";
|
|
12
|
-
import { TranslatedFileDto } from "
|
|
12
|
+
import { TranslatedFileDto } from "../dto/translated-file-dto";
|
|
13
13
|
import { LanguageDetectionParameters } from "./params/language-detection-parameters";
|
|
14
|
-
export declare class SmartlingFileTranslationsApi extends
|
|
14
|
+
export declare class SmartlingFileTranslationsApi extends SmartlingBaseFileApi {
|
|
15
15
|
constructor(smartlingApiBaseUrl: string, authApi: AccessTokenProvider, logger: Logger);
|
|
16
16
|
uploadFile(accountUid: string, parameters: FtsUploadFileParameters): Promise<FtsUploadedFileDto>;
|
|
17
17
|
translateFile(accountUid: string, fileUid: string, params: TranslateFileParameters): Promise<TranslationDto>;
|
|
@@ -24,5 +24,4 @@ export declare class SmartlingFileTranslationsApi extends SmartlingBaseApi {
|
|
|
24
24
|
detectFileLanguage(accountUid: string, fileUid: string, params?: LanguageDetectionParameters): Promise<LanguageDetectionDto>;
|
|
25
25
|
getLanguageDetectionProgress(accountUid: string, fileUid: string, languageDetectionUid: string): Promise<LanguageDetectionStatusDto>;
|
|
26
26
|
static fixContentTypeHeaderCase(form: FormData): Record<string, unknown>;
|
|
27
|
-
private static downloadResponseToTranslatedFileDto;
|
|
28
27
|
}
|
|
@@ -16,7 +16,7 @@ exports.SmartlingFileTranslationsApi = void 0;
|
|
|
16
16
|
const form_data_1 = __importDefault(require("form-data"));
|
|
17
17
|
const base_1 = require("../base");
|
|
18
18
|
const response_body_type_1 = require("../base/enum/response-body-type");
|
|
19
|
-
class SmartlingFileTranslationsApi extends base_1.
|
|
19
|
+
class SmartlingFileTranslationsApi extends base_1.SmartlingBaseFileApi {
|
|
20
20
|
constructor(smartlingApiBaseUrl, authApi, logger) {
|
|
21
21
|
super(logger);
|
|
22
22
|
this.authApi = authApi;
|
|
@@ -57,7 +57,7 @@ class SmartlingFileTranslationsApi extends base_1.SmartlingBaseApi {
|
|
|
57
57
|
}
|
|
58
58
|
downloadTranslatedFileWithMetadata(accountUid, fileUid, mtUid, localeId) {
|
|
59
59
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
return yield
|
|
60
|
+
return yield base_1.SmartlingBaseFileApi.downloadResponseToTranslatedFileDto(yield this.makeRequest("get", `${this.entrypoint}/${accountUid}/files/${fileUid}/mt/${mtUid}/locales/${localeId}/file`, null, response_body_type_1.ResponseBodyType.RAW_RESPONSE));
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
63
|
downloadTranslatedFiles(accountUid, fileUid, mtUid) {
|
|
@@ -67,7 +67,7 @@ class SmartlingFileTranslationsApi extends base_1.SmartlingBaseApi {
|
|
|
67
67
|
}
|
|
68
68
|
downloadTranslatedFilesWithMetadata(accountUid, fileUid, mtUid) {
|
|
69
69
|
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
-
return yield
|
|
70
|
+
return yield base_1.SmartlingBaseFileApi.downloadResponseToTranslatedFileDto(yield this.makeRequest("get", `${this.entrypoint}/${accountUid}/files/${fileUid}/mt/${mtUid}/locales/all/file/zip`, null, response_body_type_1.ResponseBodyType.RAW_RESPONSE));
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
73
|
cancelFileTranslation(accountUid, fileUid, mtUid) {
|
|
@@ -91,25 +91,6 @@ class SmartlingFileTranslationsApi extends base_1.SmartlingBaseApi {
|
|
|
91
91
|
delete headers["content-type"];
|
|
92
92
|
return headers;
|
|
93
93
|
}
|
|
94
|
-
static downloadResponseToTranslatedFileDto(response) {
|
|
95
|
-
var _a;
|
|
96
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
-
const contentType = (_a = response.headers.get("content-type")) !== null && _a !== void 0 ? _a : undefined;
|
|
98
|
-
const contentDisposition = response.headers.get("content-disposition");
|
|
99
|
-
let fileName;
|
|
100
|
-
if (contentDisposition) {
|
|
101
|
-
const fileNameMatch = contentDisposition.match(/filename="((?:[^"\\]|\\.)*)"/);
|
|
102
|
-
if (fileNameMatch) {
|
|
103
|
-
fileName = fileNameMatch[1].replace(/\\"/g, "\"");
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
return {
|
|
107
|
-
fileContent: yield response.arrayBuffer(),
|
|
108
|
-
fileName,
|
|
109
|
-
contentType
|
|
110
|
-
};
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
94
|
}
|
|
114
95
|
exports.SmartlingFileTranslationsApi = SmartlingFileTranslationsApi;
|
|
115
96
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../api/file-translations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0DAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../api/file-translations/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import FormData from "form-data";
|
|
2
|
-
import {
|
|
2
|
+
import { SmartlingBaseFileApi } from "../base";
|
|
3
3
|
import { AccessTokenProvider } from "../auth/access-token-provider";
|
|
4
4
|
import { Logger } from "../logger";
|
|
5
5
|
import { DownloadFileParameters } from "./params/download-file-parameters";
|
|
6
|
+
import { DownloadFileWithMetadataParameters } from "./params/download-file-with-metadata-parameters";
|
|
6
7
|
import { UploadFileParameters } from "./params/upload-file-parameters";
|
|
7
8
|
import { FileStatusForAllLocalesDto } from "./dto/file-status-for-all-locales-dto";
|
|
8
9
|
import { SmartlingListResponse } from "../http/smartling-list-response";
|
|
@@ -12,11 +13,13 @@ import { FileStatusForProjectDto } from "./dto/file-status-for-project-dto";
|
|
|
12
13
|
import { DownloadFileAllTranslationsParameters } from "./params/download-file-all-translations-parameters";
|
|
13
14
|
import { RecentlyUploadedFilesParameters } from "./params/recently-uploaded-files";
|
|
14
15
|
import { ResponseBodyType } from "../base/enum/response-body-type";
|
|
15
|
-
|
|
16
|
+
import { TranslatedFileDto } from "../dto/translated-file-dto";
|
|
17
|
+
export declare class SmartlingFilesApi extends SmartlingBaseFileApi {
|
|
16
18
|
constructor(smartlingApiBaseUrl: string, authApi: AccessTokenProvider, logger: Logger);
|
|
17
19
|
getStatusForAllLocales(projectId: string, fileUri: string): Promise<FileStatusForAllLocalesDto>;
|
|
18
20
|
getLastModified(projectId: string, fileUri: string): Promise<SmartlingListResponse<LastModifiedForLocale>>;
|
|
19
21
|
downloadFile(projectId: string, fileUri: string, locale: string, params: DownloadFileParameters, responseType?: ResponseBodyType): Promise<string>;
|
|
22
|
+
downloadFileWithMetadata(projectId: string, fileUri: string, locale: string, params: DownloadFileWithMetadataParameters): Promise<TranslatedFileDto>;
|
|
20
23
|
downloadFileAllTranslations(projectId: string, fileUri: string, params: DownloadFileAllTranslationsParameters): Promise<string>;
|
|
21
24
|
deleteFile(projectId: string, fileUri: string): Promise<boolean>;
|
|
22
25
|
uploadFile(projectId: string, parameters: UploadFileParameters): Promise<UploadedFileDto>;
|
package/built/api/files/index.js
CHANGED
|
@@ -14,9 +14,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.SmartlingFilesApi = void 0;
|
|
16
16
|
const form_data_1 = __importDefault(require("form-data"));
|
|
17
|
-
const
|
|
17
|
+
const base_1 = require("../base");
|
|
18
18
|
const response_body_type_1 = require("../base/enum/response-body-type");
|
|
19
|
-
class SmartlingFilesApi extends
|
|
19
|
+
class SmartlingFilesApi extends base_1.SmartlingBaseFileApi {
|
|
20
20
|
constructor(smartlingApiBaseUrl, authApi, logger) {
|
|
21
21
|
super(logger);
|
|
22
22
|
this.authApi = authApi;
|
|
@@ -37,6 +37,11 @@ class SmartlingFilesApi extends index_1.SmartlingBaseApi {
|
|
|
37
37
|
return yield this.makeRequest("get", `${this.entrypoint}/${projectId}/locales/${locale}/file`, Object.assign(params.export(), { fileUri }), responseType);
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
|
+
downloadFileWithMetadata(projectId, fileUri, locale, params) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
return yield base_1.SmartlingBaseFileApi.downloadResponseToTranslatedFileDto(yield this.makeRequest("get", `${this.entrypoint}/${projectId}/locales/${locale}/file`, Object.assign(params.export(), { fileUri }), response_body_type_1.ResponseBodyType.RAW_RESPONSE));
|
|
43
|
+
});
|
|
44
|
+
}
|
|
40
45
|
downloadFileAllTranslations(projectId, fileUri, params) {
|
|
41
46
|
return __awaiter(this, void 0, void 0, function* () {
|
|
42
47
|
return yield this.makeRequest("get", `${this.entrypoint}/${projectId}/locales/all/file/zip`, Object.assign(params.export(), { fileUri }), response_body_type_1.ResponseBodyType.ARRAY_BUFFER);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../api/files/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0DAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../api/files/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { DownloadFileParameters } from "./download-file-parameters";
|
|
2
|
+
import { FileNameMode } from "./filename-mode";
|
|
3
|
+
export declare class DownloadFileWithMetadataParameters extends DownloadFileParameters {
|
|
4
|
+
setFileNameMode(fileNameMode: FileNameMode): DownloadFileParameters;
|
|
5
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DownloadFileWithMetadataParameters = void 0;
|
|
4
|
+
const download_file_parameters_1 = require("./download-file-parameters");
|
|
5
|
+
const filename_mode_1 = require("./filename-mode");
|
|
6
|
+
class DownloadFileWithMetadataParameters extends download_file_parameters_1.DownloadFileParameters {
|
|
7
|
+
setFileNameMode(fileNameMode) {
|
|
8
|
+
if (fileNameMode === filename_mode_1.FileNameMode.TRANSFORMED) {
|
|
9
|
+
this.set("changeFileName", true);
|
|
10
|
+
}
|
|
11
|
+
return this;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.DownloadFileWithMetadataParameters = DownloadFileWithMetadataParameters;
|
|
15
|
+
//# sourceMappingURL=download-file-with-metadata-parameters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"download-file-with-metadata-parameters.js","sourceRoot":"","sources":["../../../../api/files/params/download-file-with-metadata-parameters.ts"],"names":[],"mappings":";;;AAAA,yEAAoE;AACpE,mDAA+C;AAE/C,MAAa,kCAAmC,SAAQ,iDAAsB;IAC1E,eAAe,CAAC,YAA0B;QACtC,IAAI,YAAY,KAAK,4BAAY,CAAC,WAAW,EAAE;YAC3C,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;SACpC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AARD,gFAQC"}
|