loop-client 0.0.1
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/CHANGELOG.md +0 -0
- package/README.md +3 -0
- package/build/const.d.ts +31 -0
- package/build/const.d.ts.map +1 -0
- package/build/const.js +40 -0
- package/build/const.js.map +1 -0
- package/build/errors.d.ts +621 -0
- package/build/errors.d.ts.map +1 -0
- package/build/errors.js +665 -0
- package/build/errors.js.map +1 -0
- package/build/index.d.ts +6 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +27 -0
- package/build/index.js.map +1 -0
- package/build/instrument.d.ts +14 -0
- package/build/instrument.d.ts.map +1 -0
- package/build/instrument.js +75 -0
- package/build/instrument.js.map +1 -0
- package/build/logger.d.ts +6 -0
- package/build/logger.d.ts.map +1 -0
- package/build/logger.js +24 -0
- package/build/logger.js.map +1 -0
- package/build/methods.d.ts +1101 -0
- package/build/methods.d.ts.map +1 -0
- package/build/methods.js +2080 -0
- package/build/methods.js.map +1 -0
- package/build/types/admin.d.ts +56 -0
- package/build/types/admin.d.ts.map +1 -0
- package/build/types/admin.js +18 -0
- package/build/types/admin.js.map +1 -0
- package/build/types/apps.d.ts +214 -0
- package/build/types/apps.d.ts.map +1 -0
- package/build/types/apps.js +81 -0
- package/build/types/apps.js.map +1 -0
- package/build/types/audits.d.ts +10 -0
- package/build/types/audits.d.ts.map +1 -0
- package/build/types/audits.js +3 -0
- package/build/types/audits.js.map +1 -0
- package/build/types/autocomplete.d.ts +13 -0
- package/build/types/autocomplete.d.ts.map +1 -0
- package/build/types/autocomplete.js +3 -0
- package/build/types/autocomplete.js.map +1 -0
- package/build/types/boards.d.ts +57 -0
- package/build/types/boards.d.ts.map +1 -0
- package/build/types/boards.js +28 -0
- package/build/types/boards.js.map +1 -0
- package/build/types/bots.d.ts +16 -0
- package/build/types/bots.d.ts.map +1 -0
- package/build/types/bots.js +3 -0
- package/build/types/bots.js.map +1 -0
- package/build/types/channels.d.ts +279 -0
- package/build/types/channels.d.ts.map +1 -0
- package/build/types/channels.js +62 -0
- package/build/types/channels.js.map +1 -0
- package/build/types/cloud.d.ts +155 -0
- package/build/types/cloud.d.ts.map +1 -0
- package/build/types/cloud.js +12 -0
- package/build/types/cloud.js.map +1 -0
- package/build/types/common.d.ts +5 -0
- package/build/types/common.d.ts.map +1 -0
- package/build/types/common.js +3 -0
- package/build/types/common.js.map +1 -0
- package/build/types/compliance.d.ts +14 -0
- package/build/types/compliance.d.ts.map +1 -0
- package/build/types/compliance.js +3 -0
- package/build/types/compliance.js.map +1 -0
- package/build/types/config.d.ts +966 -0
- package/build/types/config.d.ts.map +1 -0
- package/build/types/config.js +17 -0
- package/build/types/config.js.map +1 -0
- package/build/types/data-retention.d.ts +31 -0
- package/build/types/data-retention.d.ts.map +1 -0
- package/build/types/data-retention.js +3 -0
- package/build/types/data-retention.js.map +1 -0
- package/build/types/dialog.d.ts +63 -0
- package/build/types/dialog.d.ts.map +1 -0
- package/build/types/dialog.js +26 -0
- package/build/types/dialog.js.map +1 -0
- package/build/types/drafts.d.ts +15 -0
- package/build/types/drafts.d.ts.map +1 -0
- package/build/types/drafts.js +3 -0
- package/build/types/drafts.js.map +1 -0
- package/build/types/emojis.d.ts +52 -0
- package/build/types/emojis.d.ts.map +1 -0
- package/build/types/emojis.js +19 -0
- package/build/types/emojis.js.map +1 -0
- package/build/types/files.d.ts +53 -0
- package/build/types/files.d.ts.map +1 -0
- package/build/types/files.js +3 -0
- package/build/types/files.js.map +1 -0
- package/build/types/groups.d.ts +143 -0
- package/build/types/groups.d.ts.map +1 -0
- package/build/types/groups.js +14 -0
- package/build/types/groups.js.map +1 -0
- package/build/types/index.d.ts +46 -0
- package/build/types/index.d.ts.map +1 -0
- package/build/types/index.js +62 -0
- package/build/types/index.js.map +1 -0
- package/build/types/integrations.d.ts +108 -0
- package/build/types/integrations.d.ts.map +1 -0
- package/build/types/integrations.js +15 -0
- package/build/types/integrations.js.map +1 -0
- package/build/types/jobs.d.ts +28 -0
- package/build/types/jobs.d.ts.map +1 -0
- package/build/types/jobs.js +22 -0
- package/build/types/jobs.js.map +1 -0
- package/build/types/limits.d.ts +5 -0
- package/build/types/limits.d.ts.map +1 -0
- package/build/types/limits.js +3 -0
- package/build/types/limits.js.map +1 -0
- package/build/types/marketplace.d.ts +43 -0
- package/build/types/marketplace.d.ts.map +1 -0
- package/build/types/marketplace.js +21 -0
- package/build/types/marketplace.js.map +1 -0
- package/build/types/metadata.d.ts +16 -0
- package/build/types/metadata.d.ts.map +1 -0
- package/build/types/metadata.js +3 -0
- package/build/types/metadata.js.map +1 -0
- package/build/types/methods/bots.methods.d.ts +77 -0
- package/build/types/methods/bots.methods.d.ts.map +1 -0
- package/build/types/methods/bots.methods.js +3 -0
- package/build/types/methods/bots.methods.js.map +1 -0
- package/build/types/methods/brand.methods.d.ts +15 -0
- package/build/types/methods/brand.methods.d.ts.map +1 -0
- package/build/types/methods/brand.methods.js +3 -0
- package/build/types/methods/brand.methods.js.map +1 -0
- package/build/types/methods/channels.methods.d.ts +473 -0
- package/build/types/methods/channels.methods.d.ts.map +1 -0
- package/build/types/methods/channels.methods.js +3 -0
- package/build/types/methods/channels.methods.js.map +1 -0
- package/build/types/methods/cloud.methods.d.ts +14 -0
- package/build/types/methods/cloud.methods.d.ts.map +1 -0
- package/build/types/methods/cloud.methods.js +3 -0
- package/build/types/methods/cloud.methods.js.map +1 -0
- package/build/types/methods/common.methods.d.ts +87 -0
- package/build/types/methods/common.methods.d.ts.map +1 -0
- package/build/types/methods/common.methods.js +4 -0
- package/build/types/methods/common.methods.js.map +1 -0
- package/build/types/methods/compliance.methods.d.ts +32 -0
- package/build/types/methods/compliance.methods.d.ts.map +1 -0
- package/build/types/methods/compliance.methods.js +3 -0
- package/build/types/methods/compliance.methods.js.map +1 -0
- package/build/types/methods/data-retention.methods.d.ts +67 -0
- package/build/types/methods/data-retention.methods.d.ts.map +1 -0
- package/build/types/methods/data-retention.methods.js +3 -0
- package/build/types/methods/data-retention.methods.js.map +1 -0
- package/build/types/methods/emojis.methods.d.ts +32 -0
- package/build/types/methods/emojis.methods.d.ts.map +1 -0
- package/build/types/methods/emojis.methods.js +3 -0
- package/build/types/methods/emojis.methods.js.map +1 -0
- package/build/types/methods/files.methods.d.ts +139 -0
- package/build/types/methods/files.methods.d.ts.map +1 -0
- package/build/types/methods/files.methods.js +3 -0
- package/build/types/methods/files.methods.js.map +1 -0
- package/build/types/methods/groups.methods.d.ts +113 -0
- package/build/types/methods/groups.methods.d.ts.map +1 -0
- package/build/types/methods/groups.methods.js +3 -0
- package/build/types/methods/groups.methods.js.map +1 -0
- package/build/types/methods/index.d.ts +28 -0
- package/build/types/methods/index.d.ts.map +1 -0
- package/build/types/methods/index.js +44 -0
- package/build/types/methods/index.js.map +1 -0
- package/build/types/methods/integrations.methods.d.ts +191 -0
- package/build/types/methods/integrations.methods.d.ts.map +1 -0
- package/build/types/methods/integrations.methods.js +3 -0
- package/build/types/methods/integrations.methods.js.map +1 -0
- package/build/types/methods/interactive.methods.d.ts +38 -0
- package/build/types/methods/interactive.methods.d.ts.map +1 -0
- package/build/types/methods/interactive.methods.js +3 -0
- package/build/types/methods/interactive.methods.js.map +1 -0
- package/build/types/methods/jobs.methods.d.ts +20 -0
- package/build/types/methods/jobs.methods.d.ts.map +1 -0
- package/build/types/methods/jobs.methods.js +3 -0
- package/build/types/methods/jobs.methods.js.map +1 -0
- package/build/types/methods/playbook-runs.methods.d.ts +89 -0
- package/build/types/methods/playbook-runs.methods.d.ts.map +1 -0
- package/build/types/methods/playbook-runs.methods.js +3 -0
- package/build/types/methods/playbook-runs.methods.js.map +1 -0
- package/build/types/methods/playbooks.methods.d.ts +156 -0
- package/build/types/methods/playbooks.methods.d.ts.map +1 -0
- package/build/types/methods/playbooks.methods.js +3 -0
- package/build/types/methods/playbooks.methods.js.map +1 -0
- package/build/types/methods/plugins.methods.d.ts +31 -0
- package/build/types/methods/plugins.methods.d.ts.map +1 -0
- package/build/types/methods/plugins.methods.js +3 -0
- package/build/types/methods/plugins.methods.js.map +1 -0
- package/build/types/methods/posts.methods.d.ts +216 -0
- package/build/types/methods/posts.methods.d.ts.map +1 -0
- package/build/types/methods/posts.methods.js +3 -0
- package/build/types/methods/posts.methods.js.map +1 -0
- package/build/types/methods/preferences.methods.d.ts +12 -0
- package/build/types/methods/preferences.methods.d.ts.map +1 -0
- package/build/types/methods/preferences.methods.js +3 -0
- package/build/types/methods/preferences.methods.js.map +1 -0
- package/build/types/methods/reactions.methods.d.ts +15 -0
- package/build/types/methods/reactions.methods.d.ts.map +1 -0
- package/build/types/methods/reactions.methods.js +3 -0
- package/build/types/methods/reactions.methods.js.map +1 -0
- package/build/types/methods/reports.methods.d.ts +4 -0
- package/build/types/methods/reports.methods.d.ts.map +1 -0
- package/build/types/methods/reports.methods.js +3 -0
- package/build/types/methods/reports.methods.js.map +1 -0
- package/build/types/methods/roles.methods.d.ts +14 -0
- package/build/types/methods/roles.methods.d.ts.map +1 -0
- package/build/types/methods/roles.methods.js +3 -0
- package/build/types/methods/roles.methods.js.map +1 -0
- package/build/types/methods/schemes.methods.d.ts +30 -0
- package/build/types/methods/schemes.methods.d.ts.map +1 -0
- package/build/types/methods/schemes.methods.js +3 -0
- package/build/types/methods/schemes.methods.js.map +1 -0
- package/build/types/methods/system.methods.d.ts +107 -0
- package/build/types/methods/system.methods.d.ts.map +1 -0
- package/build/types/methods/system.methods.js +3 -0
- package/build/types/methods/system.methods.js.map +1 -0
- package/build/types/methods/teams.methods.d.ts +161 -0
- package/build/types/methods/teams.methods.d.ts.map +1 -0
- package/build/types/methods/teams.methods.js +3 -0
- package/build/types/methods/teams.methods.js.map +1 -0
- package/build/types/methods/terms-of-service.methods.d.ts +24 -0
- package/build/types/methods/terms-of-service.methods.d.ts.map +1 -0
- package/build/types/methods/terms-of-service.methods.js +3 -0
- package/build/types/methods/terms-of-service.methods.js.map +1 -0
- package/build/types/methods/uploads.methods.d.ts +13 -0
- package/build/types/methods/uploads.methods.d.ts.map +1 -0
- package/build/types/methods/uploads.methods.js +3 -0
- package/build/types/methods/uploads.methods.js.map +1 -0
- package/build/types/methods/users.methods.d.ts +257 -0
- package/build/types/methods/users.methods.d.ts.map +1 -0
- package/build/types/methods/users.methods.js +3 -0
- package/build/types/methods/users.methods.js.map +1 -0
- package/build/types/mfa.d.ts +5 -0
- package/build/types/mfa.d.ts.map +1 -0
- package/build/types/mfa.js +3 -0
- package/build/types/mfa.js.map +1 -0
- package/build/types/playbooks.d.ts +221 -0
- package/build/types/playbooks.d.ts.map +1 -0
- package/build/types/playbooks.js +3 -0
- package/build/types/playbooks.js.map +1 -0
- package/build/types/plugins.d.ts +101 -0
- package/build/types/plugins.d.ts.map +1 -0
- package/build/types/plugins.js +3 -0
- package/build/types/plugins.js.map +1 -0
- package/build/types/posts.d.ts +290 -0
- package/build/types/posts.d.ts.map +1 -0
- package/build/types/posts.js +88 -0
- package/build/types/posts.js.map +1 -0
- package/build/types/preferences.d.ts +7 -0
- package/build/types/preferences.d.ts.map +1 -0
- package/build/types/preferences.js +3 -0
- package/build/types/preferences.js.map +1 -0
- package/build/types/product-notices.d.ts +27 -0
- package/build/types/product-notices.d.ts.map +1 -0
- package/build/types/product-notices.js +8 -0
- package/build/types/product-notices.js.map +1 -0
- package/build/types/products.d.ts +8 -0
- package/build/types/products.d.ts.map +1 -0
- package/build/types/products.js +3 -0
- package/build/types/products.js.map +1 -0
- package/build/types/reactions.d.ts +7 -0
- package/build/types/reactions.d.ts.map +1 -0
- package/build/types/reactions.js +3 -0
- package/build/types/reactions.js.map +1 -0
- package/build/types/reports.d.ts +66 -0
- package/build/types/reports.d.ts.map +1 -0
- package/build/types/reports.js +30 -0
- package/build/types/reports.js.map +1 -0
- package/build/types/requests.d.ts +61 -0
- package/build/types/requests.d.ts.map +1 -0
- package/build/types/requests.js +12 -0
- package/build/types/requests.js.map +1 -0
- package/build/types/responses/common.responses.d.ts +23 -0
- package/build/types/responses/common.responses.d.ts.map +1 -0
- package/build/types/responses/common.responses.js +3 -0
- package/build/types/responses/common.responses.js.map +1 -0
- package/build/types/responses/index.d.ts +5 -0
- package/build/types/responses/index.d.ts.map +1 -0
- package/build/types/responses/index.js +21 -0
- package/build/types/responses/index.js.map +1 -0
- package/build/types/responses/playbooks.responses.d.ts +19 -0
- package/build/types/responses/playbooks.responses.d.ts.map +1 -0
- package/build/types/responses/playbooks.responses.js +3 -0
- package/build/types/responses/playbooks.responses.js.map +1 -0
- package/build/types/responses/posts.responses.d.ts +32 -0
- package/build/types/responses/posts.responses.d.ts.map +1 -0
- package/build/types/responses/posts.responses.js +8 -0
- package/build/types/responses/posts.responses.js.map +1 -0
- package/build/types/responses/system.responses.d.ts +87 -0
- package/build/types/responses/system.responses.d.ts.map +1 -0
- package/build/types/responses/system.responses.js +3 -0
- package/build/types/responses/system.responses.js.map +1 -0
- package/build/types/roles.d.ts +41 -0
- package/build/types/roles.d.ts.map +1 -0
- package/build/types/roles.js +33 -0
- package/build/types/roles.js.map +1 -0
- package/build/types/saml.d.ts +11 -0
- package/build/types/saml.d.ts.map +1 -0
- package/build/types/saml.js +3 -0
- package/build/types/saml.js.map +1 -0
- package/build/types/schemes.d.ts +28 -0
- package/build/types/schemes.d.ts.map +1 -0
- package/build/types/schemes.js +9 -0
- package/build/types/schemes.js.map +1 -0
- package/build/types/search.d.ts +13 -0
- package/build/types/search.d.ts.map +1 -0
- package/build/types/search.js +3 -0
- package/build/types/search.js.map +1 -0
- package/build/types/setup.d.ts +5 -0
- package/build/types/setup.d.ts.map +1 -0
- package/build/types/setup.js +3 -0
- package/build/types/setup.js.map +1 -0
- package/build/types/state.d.ts +464 -0
- package/build/types/state.d.ts.map +1 -0
- package/build/types/state.js +3 -0
- package/build/types/state.js.map +1 -0
- package/build/types/store.d.ts +65 -0
- package/build/types/store.d.ts.map +1 -0
- package/build/types/store.js +3 -0
- package/build/types/store.js.map +1 -0
- package/build/types/teams.d.ts +94 -0
- package/build/types/teams.d.ts.map +1 -0
- package/build/types/teams.js +9 -0
- package/build/types/teams.js.map +1 -0
- package/build/types/terms-of-service.d.ts +7 -0
- package/build/types/terms-of-service.d.ts.map +1 -0
- package/build/types/terms-of-service.js +3 -0
- package/build/types/terms-of-service.js.map +1 -0
- package/build/types/threads.d.ts +40 -0
- package/build/types/threads.d.ts.map +1 -0
- package/build/types/threads.js +8 -0
- package/build/types/threads.js.map +1 -0
- package/build/types/typing.d.ts +6 -0
- package/build/types/typing.d.ts.map +1 -0
- package/build/types/typing.js +3 -0
- package/build/types/typing.js.map +1 -0
- package/build/types/users.d.ts +281 -0
- package/build/types/users.d.ts.map +1 -0
- package/build/types/users.js +42 -0
- package/build/types/users.js.map +1 -0
- package/build/types/web-client.d.ts +82 -0
- package/build/types/web-client.d.ts.map +1 -0
- package/build/types/web-client.js +17 -0
- package/build/types/web-client.js.map +1 -0
- package/build/utils.d.ts +24 -0
- package/build/utils.d.ts.map +1 -0
- package/build/utils.js +136 -0
- package/build/utils.js.map +1 -0
- package/build/web-client.d.ts +117 -0
- package/build/web-client.d.ts.map +1 -0
- package/build/web-client.js +421 -0
- package/build/web-client.js.map +1 -0
- package/package.json +74 -0
package/build/utils.js
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.threadIsSynthetic = exports.areShippingDetailsValid = exports.warnIfFallbackIsMissing = exports.redact = exports.getFormDataConfig = exports.checkForBinaryData = exports.wait = void 0;
|
|
7
|
+
/** biome-ignore-all lint/complexity/useLiteralKeys: <ts4111> */
|
|
8
|
+
const node_path_1 = require("node:path");
|
|
9
|
+
const form_data_1 = __importDefault(require("form-data"));
|
|
10
|
+
const is_stream_1 = require("is-stream");
|
|
11
|
+
const const_1 = require("./const");
|
|
12
|
+
const types_1 = require("./types");
|
|
13
|
+
const wait = (ms) => {
|
|
14
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
15
|
+
};
|
|
16
|
+
exports.wait = wait;
|
|
17
|
+
/**
|
|
18
|
+
* Checks request data for binary data
|
|
19
|
+
*/
|
|
20
|
+
const checkForBinaryData = (data) => {
|
|
21
|
+
if (!data || typeof data !== "object")
|
|
22
|
+
return false;
|
|
23
|
+
for (const value of Object.values(data)) {
|
|
24
|
+
if (Buffer.isBuffer(value) || (0, is_stream_1.isStream)(value))
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
return false;
|
|
28
|
+
};
|
|
29
|
+
exports.checkForBinaryData = checkForBinaryData;
|
|
30
|
+
const getFormDataConfig = (data, headers) => {
|
|
31
|
+
const config = {
|
|
32
|
+
headers
|
|
33
|
+
};
|
|
34
|
+
const form = new form_data_1.default();
|
|
35
|
+
for (const [key, value] of Object.entries(data)) {
|
|
36
|
+
if (Buffer.isBuffer(value) || (0, is_stream_1.isStream)(value)) {
|
|
37
|
+
const opts = {};
|
|
38
|
+
opts.filename = (() => {
|
|
39
|
+
// attempt to find filename from `value`. adapted from:
|
|
40
|
+
// https://github.com/form-data/form-data/blob/028c21e0f93c5fefa46a7bbf1ba753e4f627ab7a/lib/form_data.js#L227-L230
|
|
41
|
+
// formidable and the browser add a name property
|
|
42
|
+
// fs- and request- streams have path property
|
|
43
|
+
// biome-ignore lint/suspicious/noExplicitAny: form values can be anything
|
|
44
|
+
const streamOrBuffer = value;
|
|
45
|
+
if (typeof streamOrBuffer.name === "string") {
|
|
46
|
+
return (0, node_path_1.basename)(streamOrBuffer.name);
|
|
47
|
+
}
|
|
48
|
+
if (typeof streamOrBuffer.path === "string") {
|
|
49
|
+
return (0, node_path_1.basename)(streamOrBuffer.path);
|
|
50
|
+
}
|
|
51
|
+
return `${const_1.DEFAULT_FILE_NAME}_${Date.now().toString()}`;
|
|
52
|
+
})();
|
|
53
|
+
form.append(key, value, opts);
|
|
54
|
+
}
|
|
55
|
+
else if (key !== undefined && value !== undefined) {
|
|
56
|
+
form.append(key, value);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (headers) {
|
|
60
|
+
// Copying FormData-generated headers into headers param
|
|
61
|
+
// not reassigning to headers param since it is passed by reference and behaves as an inout param
|
|
62
|
+
for (const [header, value] of Object.entries(form.getHeaders())) {
|
|
63
|
+
headers[header] = value;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
config.data = form;
|
|
67
|
+
config.headers = headers;
|
|
68
|
+
return config;
|
|
69
|
+
};
|
|
70
|
+
exports.getFormDataConfig = getFormDataConfig;
|
|
71
|
+
/**
|
|
72
|
+
* Takes an object and redacts specific items
|
|
73
|
+
* @param data
|
|
74
|
+
* @returns
|
|
75
|
+
*/
|
|
76
|
+
const redact = (data) => {
|
|
77
|
+
if (typeof data !== "object" || data === null) {
|
|
78
|
+
return "Data is not an object!";
|
|
79
|
+
}
|
|
80
|
+
const flattened = Object.entries(data).map(([key, value]) => {
|
|
81
|
+
// no value provided
|
|
82
|
+
if (value === undefined || value === null)
|
|
83
|
+
return [];
|
|
84
|
+
let serializedValue = value;
|
|
85
|
+
// redact possible tokens
|
|
86
|
+
if (key.match(/.*token.*/) !== null || key.match(/[Aa]uthorization/)) {
|
|
87
|
+
serializedValue = "[[REDACTED]]";
|
|
88
|
+
}
|
|
89
|
+
// when value is buffer or stream we can avoid logging it
|
|
90
|
+
if (Buffer.isBuffer(value) || (0, is_stream_1.isStream)(value)) {
|
|
91
|
+
serializedValue = "[[BINARY VALUE OMITTED]]";
|
|
92
|
+
}
|
|
93
|
+
else if (typeof value !== "string" &&
|
|
94
|
+
typeof value !== "number" &&
|
|
95
|
+
typeof value !== "boolean") {
|
|
96
|
+
serializedValue = JSON.stringify(value, null, 2);
|
|
97
|
+
}
|
|
98
|
+
return [key, serializedValue];
|
|
99
|
+
});
|
|
100
|
+
// return as object
|
|
101
|
+
return JSON.stringify(flattened.reduce((accumulator, [key, value]) => {
|
|
102
|
+
if (key !== undefined && value !== undefined) {
|
|
103
|
+
accumulator[key] = value;
|
|
104
|
+
}
|
|
105
|
+
return accumulator;
|
|
106
|
+
}, {}));
|
|
107
|
+
};
|
|
108
|
+
exports.redact = redact;
|
|
109
|
+
/**
|
|
110
|
+
* @param path api method being called
|
|
111
|
+
* @param logger instance of we clients logger
|
|
112
|
+
* @param options arguments for the Web API method
|
|
113
|
+
*/
|
|
114
|
+
const warnIfFallbackIsMissing = (path, logger, options) => {
|
|
115
|
+
if (!options || Array.isArray(options))
|
|
116
|
+
return;
|
|
117
|
+
if (Array.isArray(options["attachments"]) &&
|
|
118
|
+
options["attachments"].length > 0 &&
|
|
119
|
+
options["attachments"].some(attachment => !attachment.fallback || attachment.fallback.trim() === "")) {
|
|
120
|
+
logger.warn(`The attachment-level \`fallback\` argument is missing in the request payload for a ${path} call - To avoid this warning, it is recommended to always provide a top-level \`text\` argument when posting a message. Alternatively, you can provide an attachment-level \`fallback\` argument, though this is now considered a legacy field (see https://docs.slack.dev/legacy/legacy-messaging/legacy-secondary-message-attachments for more details).`);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
exports.warnIfFallbackIsMissing = warnIfFallbackIsMissing;
|
|
124
|
+
const areShippingDetailsValid = (address) => {
|
|
125
|
+
if (!address)
|
|
126
|
+
return false;
|
|
127
|
+
return Boolean(address.city &&
|
|
128
|
+
address.country &&
|
|
129
|
+
address.line1 &&
|
|
130
|
+
address.postal_code &&
|
|
131
|
+
address.state);
|
|
132
|
+
};
|
|
133
|
+
exports.areShippingDetailsValid = areShippingDetailsValid;
|
|
134
|
+
const threadIsSynthetic = (thread) => thread.type === types_1.UserThreadType.Synthetic;
|
|
135
|
+
exports.threadIsSynthetic = threadIsSynthetic;
|
|
136
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { Methods } from "./methods";
|
|
2
|
+
import type { WebAPICallResult } from "./types";
|
|
3
|
+
import { type WebApiCallConfig, type WebClientOptions } from "./types/web-client";
|
|
4
|
+
export declare class WebClient extends Methods {
|
|
5
|
+
/**
|
|
6
|
+
* @description The base URL for reaching Loop/Mattermost Web API
|
|
7
|
+
* Must end with `api/v4/`
|
|
8
|
+
* @example https://your-loop.loop.ru/api/v4/
|
|
9
|
+
*/
|
|
10
|
+
url: string;
|
|
11
|
+
/**
|
|
12
|
+
* @descripton Authentication and authorization token for accessing Loop/Mattermost API
|
|
13
|
+
*/
|
|
14
|
+
token: string | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Configuration for retry operations. See {@link https://github.com/triplesunn/again-ts|Again} for more details.
|
|
17
|
+
*/
|
|
18
|
+
private retryConfig;
|
|
19
|
+
/**
|
|
20
|
+
* Queue of requests in which a maximum of {@link WebClientOptions.maxRequestConcurrency} can concurrently be
|
|
21
|
+
* in-flight.
|
|
22
|
+
*/
|
|
23
|
+
private breadline;
|
|
24
|
+
/**
|
|
25
|
+
* Axios HTTP client instance used by this client
|
|
26
|
+
*/
|
|
27
|
+
private axios;
|
|
28
|
+
/**
|
|
29
|
+
* Configuration for custom TLS handling
|
|
30
|
+
*/
|
|
31
|
+
private tlsConfig;
|
|
32
|
+
/**
|
|
33
|
+
* The name used to prefix all logging generated from this object
|
|
34
|
+
*/
|
|
35
|
+
private static loggerName;
|
|
36
|
+
/**
|
|
37
|
+
* This object's logger instance
|
|
38
|
+
*/
|
|
39
|
+
private logger;
|
|
40
|
+
/**
|
|
41
|
+
* @description Current userID
|
|
42
|
+
* useCurrentUserForDirectChannels and useCurrentUserForPostCreation will
|
|
43
|
+
* use it instead of fetching from server if not overriden by token
|
|
44
|
+
*/
|
|
45
|
+
userID: string | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* @description Use current user_id if only one was provided for direct channel creation.
|
|
48
|
+
* Will fetch current user ID from server if no userID was provided or overridden by token in options
|
|
49
|
+
*
|
|
50
|
+
* @default true
|
|
51
|
+
*/
|
|
52
|
+
readonly useCurrentUserForDirectChannels?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* @description Use post.user_id in PostCreateArguments to fetch a channel_id for post
|
|
55
|
+
* Will call channels.create.direct for current user if true
|
|
56
|
+
* Will fetch current user ID from server if no userID was provided or overridden by token in options
|
|
57
|
+
*
|
|
58
|
+
* @default true
|
|
59
|
+
* @default false if userID is provided
|
|
60
|
+
*/
|
|
61
|
+
readonly useCurrentUserForPostCreation?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* @description If true the client will set its userID if it was fetched while
|
|
64
|
+
* useCurrentUserForDirectChannels=true, useCurrentUserForPostCreation=true
|
|
65
|
+
* or via users.profile.get.me()
|
|
66
|
+
*
|
|
67
|
+
* @default false
|
|
68
|
+
*/
|
|
69
|
+
readonly saveFetchedUserID?: boolean;
|
|
70
|
+
private clusterId;
|
|
71
|
+
private serverVersion;
|
|
72
|
+
constructor(url: Readonly<string>, { token, userID, logger, logLevel, maxRequestConcurrency, retryConfig, useCurrentUserForDirectChannels, useCurrentUserForPostCreation, saveFetchedUserID, testConnectionOnInit, agent, tls, timeout, headers, requestInterceptor, adapter }?: WebClientOptions);
|
|
73
|
+
/**
|
|
74
|
+
* Generic method for calling a Web API method
|
|
75
|
+
* @param path - the Web API path to call
|
|
76
|
+
* @param options - method options
|
|
77
|
+
*
|
|
78
|
+
* @throws WebApiCallFailedError with detailed errors in ctx.errors
|
|
79
|
+
*/
|
|
80
|
+
apiCall<T = unknown>(config: WebApiCallConfig, options?: Record<string, unknown>): Promise<Readonly<WebAPICallResult<T>>>;
|
|
81
|
+
/**
|
|
82
|
+
* @description Low-level function to make a single API request.
|
|
83
|
+
* Handles queueing, retries, and http-level errors
|
|
84
|
+
*/
|
|
85
|
+
private makeRequest;
|
|
86
|
+
/**
|
|
87
|
+
* Processes an HTTP response into a WebAPICallResult by performing JSON parsing on the body and merging relevant
|
|
88
|
+
* HTTP headers into the object.
|
|
89
|
+
* @param response - an http response
|
|
90
|
+
*/
|
|
91
|
+
private buildResult;
|
|
92
|
+
private fillRequestUrl;
|
|
93
|
+
/**
|
|
94
|
+
* @description Sets authenticated user id for channel creation
|
|
95
|
+
*/
|
|
96
|
+
private setCurrentUserForDirectChannel;
|
|
97
|
+
/**
|
|
98
|
+
* @description Sets channel_id for user_id for post creation
|
|
99
|
+
*/
|
|
100
|
+
private setCurrentUserForPostCreation;
|
|
101
|
+
/**
|
|
102
|
+
* Gets or fetches current user ID using
|
|
103
|
+
* @param data Axios config.data
|
|
104
|
+
* @returns
|
|
105
|
+
*/
|
|
106
|
+
private getCurrentUserID;
|
|
107
|
+
private transformPathSpecificParams;
|
|
108
|
+
/**
|
|
109
|
+
* Transforms options (a simple key-value object) into an acceptable value for a body. This can be either
|
|
110
|
+
* a string, used when posting with a content-type of url-encoded. Or, it can be a readable stream, used
|
|
111
|
+
* when the options contain a binary (a stream or a buffer) and the upload should be done
|
|
112
|
+
* with content-type multipart/form-data.
|
|
113
|
+
* @param config - The Axios request configuration object
|
|
114
|
+
*/
|
|
115
|
+
private serializeApiCallData;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=web-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-client.d.ts","sourceRoot":"","sources":["../src/web-client.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAGX,gBAAgB,EAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAIN,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,MAAM,oBAAoB,CAAC;AAQ5B,qBAAa,SAAU,SAAQ,OAAO;IACrC;;;;OAIG;IACI,GAAG,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACI,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAEjC;;OAEG;IACH,OAAO,CAAC,WAAW,CAAe;IAElC;;;OAGG;IACH,OAAO,CAAC,SAAS,CAAY;IAE7B;;OAEG;IACH,OAAO,CAAC,KAAK,CAAgB;IAE7B;;OAEG;IACH,OAAO,CAAC,SAAS,CAAyB;IAE1C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU,CAAmB;IAE5C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAS;IAEvB;;;;OAIG;IACI,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAElC;;;;;OAKG;IACH,QAAQ,CAAC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAEnD;;;;;;;OAOG;IACH,QAAQ,CAAC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IAEjD;;;;;;OAMG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAErC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAS;gBAG7B,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,EACrB,EACC,KAAiB,EACjB,MAAkB,EAClB,MAAkB,EAClB,QAAoB,EACpB,qBAA2B,EAC3B,WAA4C,EAC5C,+BAAsC,EACtC,6BAAoC,EACpC,iBAAyB,EACzB,oBAA4B,EAC5B,KAAiB,EACjB,GAAe,EACf,OAAW,EACX,OAAY,EACZ,kBAA8B,EAC9B,OAAmB,EACnB,GAAE,gBAAqB;IAyGzB;;;;;;OAMG;IACU,OAAO,CAAC,CAAC,GAAG,OAAO,EAC/B,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IA6CzC;;;OAGG;YACW,WAAW;IA4DzB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IA8BnB,OAAO,CAAC,cAAc;IAsBtB;;OAEG;YACW,8BAA8B;IAiC5C;;OAEG;YACW,6BAA6B;IAmC3C;;;;OAIG;YACW,gBAAgB;IAwB9B,OAAO,CAAC,2BAA2B;IAgDnC;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;CAmC5B"}
|