://" or "//" (protocol-relative URL).
- // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
- // by any combination of letters, digits, plus, period, or hyphen.
- return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
-};
diff --git a/node_modules/@slack/bolt/node_modules/axios/lib/helpers/isAxiosError.js b/node_modules/@slack/bolt/node_modules/axios/lib/helpers/isAxiosError.js
deleted file mode 100644
index a037bec..0000000
--- a/node_modules/@slack/bolt/node_modules/axios/lib/helpers/isAxiosError.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-
-var utils = require('./../utils');
-
-/**
- * Determines whether the payload is an error thrown by Axios
- *
- * @param {*} payload The value to test
- * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
- */
-module.exports = function isAxiosError(payload) {
- return utils.isObject(payload) && (payload.isAxiosError === true);
-};
diff --git a/node_modules/@slack/bolt/node_modules/axios/lib/helpers/isURLSameOrigin.js b/node_modules/@slack/bolt/node_modules/axios/lib/helpers/isURLSameOrigin.js
deleted file mode 100644
index f1d89ad..0000000
--- a/node_modules/@slack/bolt/node_modules/axios/lib/helpers/isURLSameOrigin.js
+++ /dev/null
@@ -1,68 +0,0 @@
-'use strict';
-
-var utils = require('./../utils');
-
-module.exports = (
- utils.isStandardBrowserEnv() ?
-
- // Standard browser envs have full support of the APIs needed to test
- // whether the request URL is of the same origin as current location.
- (function standardBrowserEnv() {
- var msie = /(msie|trident)/i.test(navigator.userAgent);
- var urlParsingNode = document.createElement('a');
- var originURL;
-
- /**
- * Parse a URL to discover it's components
- *
- * @param {String} url The URL to be parsed
- * @returns {Object}
- */
- function resolveURL(url) {
- var href = url;
-
- if (msie) {
- // IE needs attribute set twice to normalize properties
- urlParsingNode.setAttribute('href', href);
- href = urlParsingNode.href;
- }
-
- urlParsingNode.setAttribute('href', href);
-
- // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
- return {
- href: urlParsingNode.href,
- protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
- host: urlParsingNode.host,
- search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
- hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
- hostname: urlParsingNode.hostname,
- port: urlParsingNode.port,
- pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
- urlParsingNode.pathname :
- '/' + urlParsingNode.pathname
- };
- }
-
- originURL = resolveURL(window.location.href);
-
- /**
- * Determine if a URL shares the same origin as the current location
- *
- * @param {String} requestURL The URL to test
- * @returns {boolean} True if URL shares the same origin, otherwise false
- */
- return function isURLSameOrigin(requestURL) {
- var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;
- return (parsed.protocol === originURL.protocol &&
- parsed.host === originURL.host);
- };
- })() :
-
- // Non standard browser envs (web workers, react-native) lack needed support.
- (function nonStandardBrowserEnv() {
- return function isURLSameOrigin() {
- return true;
- };
- })()
-);
diff --git a/node_modules/@slack/bolt/node_modules/axios/lib/helpers/normalizeHeaderName.js b/node_modules/@slack/bolt/node_modules/axios/lib/helpers/normalizeHeaderName.js
deleted file mode 100644
index 738c9fe..0000000
--- a/node_modules/@slack/bolt/node_modules/axios/lib/helpers/normalizeHeaderName.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-
-var utils = require('../utils');
-
-module.exports = function normalizeHeaderName(headers, normalizedName) {
- utils.forEach(headers, function processHeader(value, name) {
- if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {
- headers[normalizedName] = value;
- delete headers[name];
- }
- });
-};
diff --git a/node_modules/@slack/bolt/node_modules/axios/lib/helpers/parseHeaders.js b/node_modules/@slack/bolt/node_modules/axios/lib/helpers/parseHeaders.js
deleted file mode 100644
index 8af2cc7..0000000
--- a/node_modules/@slack/bolt/node_modules/axios/lib/helpers/parseHeaders.js
+++ /dev/null
@@ -1,53 +0,0 @@
-'use strict';
-
-var utils = require('./../utils');
-
-// Headers whose duplicates are ignored by node
-// c.f. https://nodejs.org/api/http.html#http_message_headers
-var ignoreDuplicateOf = [
- 'age', 'authorization', 'content-length', 'content-type', 'etag',
- 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',
- 'last-modified', 'location', 'max-forwards', 'proxy-authorization',
- 'referer', 'retry-after', 'user-agent'
-];
-
-/**
- * Parse headers into an object
- *
- * ```
- * Date: Wed, 27 Aug 2014 08:58:49 GMT
- * Content-Type: application/json
- * Connection: keep-alive
- * Transfer-Encoding: chunked
- * ```
- *
- * @param {String} headers Headers needing to be parsed
- * @returns {Object} Headers parsed into an object
- */
-module.exports = function parseHeaders(headers) {
- var parsed = {};
- var key;
- var val;
- var i;
-
- if (!headers) { return parsed; }
-
- utils.forEach(headers.split('\n'), function parser(line) {
- i = line.indexOf(':');
- key = utils.trim(line.substr(0, i)).toLowerCase();
- val = utils.trim(line.substr(i + 1));
-
- if (key) {
- if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {
- return;
- }
- if (key === 'set-cookie') {
- parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);
- } else {
- parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;
- }
- }
- });
-
- return parsed;
-};
diff --git a/node_modules/@slack/bolt/node_modules/axios/lib/helpers/spread.js b/node_modules/@slack/bolt/node_modules/axios/lib/helpers/spread.js
deleted file mode 100644
index 25e3cdd..0000000
--- a/node_modules/@slack/bolt/node_modules/axios/lib/helpers/spread.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-/**
- * Syntactic sugar for invoking a function and expanding an array for arguments.
- *
- * Common use case would be to use `Function.prototype.apply`.
- *
- * ```js
- * function f(x, y, z) {}
- * var args = [1, 2, 3];
- * f.apply(null, args);
- * ```
- *
- * With `spread` this example can be re-written.
- *
- * ```js
- * spread(function(x, y, z) {})([1, 2, 3]);
- * ```
- *
- * @param {Function} callback
- * @returns {Function}
- */
-module.exports = function spread(callback) {
- return function wrap(arr) {
- return callback.apply(null, arr);
- };
-};
diff --git a/node_modules/@slack/bolt/node_modules/axios/lib/helpers/toFormData.js b/node_modules/@slack/bolt/node_modules/axios/lib/helpers/toFormData.js
deleted file mode 100644
index e21d0a7..0000000
--- a/node_modules/@slack/bolt/node_modules/axios/lib/helpers/toFormData.js
+++ /dev/null
@@ -1,55 +0,0 @@
-'use strict';
-
-function combinedKey(parentKey, elKey) {
- return parentKey + '.' + elKey;
-}
-
-function buildFormData(formData, data, parentKey) {
- if (Array.isArray(data)) {
- data.forEach(function buildArray(el, i) {
- buildFormData(formData, el, combinedKey(parentKey, i));
- });
- } else if (
- typeof data === 'object' &&
- !(data instanceof File || data === null)
- ) {
- Object.keys(data).forEach(function buildObject(key) {
- buildFormData(
- formData,
- data[key],
- parentKey ? combinedKey(parentKey, key) : key
- );
- });
- } else {
- if (data === undefined) {
- return;
- }
-
- var value =
- typeof data === 'boolean' || typeof data === 'number'
- ? data.toString()
- : data;
- formData.append(parentKey, value);
- }
-}
-
-/**
- * convert a data object to FormData
- *
- * type FormDataPrimitive = string | Blob | number | boolean
- * interface FormDataNest {
- * [x: string]: FormVal
- * }
- *
- * type FormVal = FormDataNest | FormDataPrimitive
- *
- * @param {FormVal} data
- */
-
-module.exports = function getFormData(data) {
- var formData = new FormData();
-
- buildFormData(formData, data);
-
- return formData;
-};
diff --git a/node_modules/@slack/bolt/node_modules/axios/lib/helpers/validator.js b/node_modules/@slack/bolt/node_modules/axios/lib/helpers/validator.js
deleted file mode 100644
index a4ec413..0000000
--- a/node_modules/@slack/bolt/node_modules/axios/lib/helpers/validator.js
+++ /dev/null
@@ -1,82 +0,0 @@
-'use strict';
-
-var VERSION = require('../env/data').version;
-
-var validators = {};
-
-// eslint-disable-next-line func-names
-['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {
- validators[type] = function validator(thing) {
- return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;
- };
-});
-
-var deprecatedWarnings = {};
-
-/**
- * Transitional option validator
- * @param {function|boolean?} validator - set to false if the transitional option has been removed
- * @param {string?} version - deprecated version / removed since version
- * @param {string?} message - some message with additional info
- * @returns {function}
- */
-validators.transitional = function transitional(validator, version, message) {
- function formatMessage(opt, desc) {
- return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : '');
- }
-
- // eslint-disable-next-line func-names
- return function(value, opt, opts) {
- if (validator === false) {
- throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));
- }
-
- if (version && !deprecatedWarnings[opt]) {
- deprecatedWarnings[opt] = true;
- // eslint-disable-next-line no-console
- console.warn(
- formatMessage(
- opt,
- ' has been deprecated since v' + version + ' and will be removed in the near future'
- )
- );
- }
-
- return validator ? validator(value, opt, opts) : true;
- };
-};
-
-/**
- * Assert object's properties type
- * @param {object} options
- * @param {object} schema
- * @param {boolean?} allowUnknown
- */
-
-function assertOptions(options, schema, allowUnknown) {
- if (typeof options !== 'object') {
- throw new TypeError('options must be an object');
- }
- var keys = Object.keys(options);
- var i = keys.length;
- while (i-- > 0) {
- var opt = keys[i];
- var validator = schema[opt];
- if (validator) {
- var value = options[opt];
- var result = value === undefined || validator(value, opt, options);
- if (result !== true) {
- throw new TypeError('option ' + opt + ' must be ' + result);
- }
- continue;
- }
- if (allowUnknown !== true) {
- throw Error('Unknown option ' + opt);
- }
- }
-}
-
-module.exports = {
- assertOptions: assertOptions,
- validators: validators
-};
diff --git a/node_modules/@slack/bolt/node_modules/axios/lib/utils.js b/node_modules/@slack/bolt/node_modules/axios/lib/utils.js
deleted file mode 100644
index f0f9043..0000000
--- a/node_modules/@slack/bolt/node_modules/axios/lib/utils.js
+++ /dev/null
@@ -1,349 +0,0 @@
-'use strict';
-
-var bind = require('./helpers/bind');
-
-// utils is a library of generic helper functions non-specific to axios
-
-var toString = Object.prototype.toString;
-
-/**
- * Determine if a value is an Array
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is an Array, otherwise false
- */
-function isArray(val) {
- return Array.isArray(val);
-}
-
-/**
- * Determine if a value is undefined
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if the value is undefined, otherwise false
- */
-function isUndefined(val) {
- return typeof val === 'undefined';
-}
-
-/**
- * Determine if a value is a Buffer
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a Buffer, otherwise false
- */
-function isBuffer(val) {
- return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)
- && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);
-}
-
-/**
- * Determine if a value is an ArrayBuffer
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is an ArrayBuffer, otherwise false
- */
-function isArrayBuffer(val) {
- return toString.call(val) === '[object ArrayBuffer]';
-}
-
-/**
- * Determine if a value is a FormData
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is an FormData, otherwise false
- */
-function isFormData(val) {
- return toString.call(val) === '[object FormData]';
-}
-
-/**
- * Determine if a value is a view on an ArrayBuffer
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false
- */
-function isArrayBufferView(val) {
- var result;
- if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {
- result = ArrayBuffer.isView(val);
- } else {
- result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));
- }
- return result;
-}
-
-/**
- * Determine if a value is a String
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a String, otherwise false
- */
-function isString(val) {
- return typeof val === 'string';
-}
-
-/**
- * Determine if a value is a Number
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a Number, otherwise false
- */
-function isNumber(val) {
- return typeof val === 'number';
-}
-
-/**
- * Determine if a value is an Object
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is an Object, otherwise false
- */
-function isObject(val) {
- return val !== null && typeof val === 'object';
-}
-
-/**
- * Determine if a value is a plain Object
- *
- * @param {Object} val The value to test
- * @return {boolean} True if value is a plain Object, otherwise false
- */
-function isPlainObject(val) {
- if (toString.call(val) !== '[object Object]') {
- return false;
- }
-
- var prototype = Object.getPrototypeOf(val);
- return prototype === null || prototype === Object.prototype;
-}
-
-/**
- * Determine if a value is a Date
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a Date, otherwise false
- */
-function isDate(val) {
- return toString.call(val) === '[object Date]';
-}
-
-/**
- * Determine if a value is a File
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a File, otherwise false
- */
-function isFile(val) {
- return toString.call(val) === '[object File]';
-}
-
-/**
- * Determine if a value is a Blob
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a Blob, otherwise false
- */
-function isBlob(val) {
- return toString.call(val) === '[object Blob]';
-}
-
-/**
- * Determine if a value is a Function
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a Function, otherwise false
- */
-function isFunction(val) {
- return toString.call(val) === '[object Function]';
-}
-
-/**
- * Determine if a value is a Stream
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a Stream, otherwise false
- */
-function isStream(val) {
- return isObject(val) && isFunction(val.pipe);
-}
-
-/**
- * Determine if a value is a URLSearchParams object
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a URLSearchParams object, otherwise false
- */
-function isURLSearchParams(val) {
- return toString.call(val) === '[object URLSearchParams]';
-}
-
-/**
- * Trim excess whitespace off the beginning and end of a string
- *
- * @param {String} str The String to trim
- * @returns {String} The String freed of excess whitespace
- */
-function trim(str) {
- return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, '');
-}
-
-/**
- * Determine if we're running in a standard browser environment
- *
- * This allows axios to run in a web worker, and react-native.
- * Both environments support XMLHttpRequest, but not fully standard globals.
- *
- * web workers:
- * typeof window -> undefined
- * typeof document -> undefined
- *
- * react-native:
- * navigator.product -> 'ReactNative'
- * nativescript
- * navigator.product -> 'NativeScript' or 'NS'
- */
-function isStandardBrowserEnv() {
- if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||
- navigator.product === 'NativeScript' ||
- navigator.product === 'NS')) {
- return false;
- }
- return (
- typeof window !== 'undefined' &&
- typeof document !== 'undefined'
- );
-}
-
-/**
- * Iterate over an Array or an Object invoking a function for each item.
- *
- * If `obj` is an Array callback will be called passing
- * the value, index, and complete array for each item.
- *
- * If 'obj' is an Object callback will be called passing
- * the value, key, and complete object for each property.
- *
- * @param {Object|Array} obj The object to iterate
- * @param {Function} fn The callback to invoke for each item
- */
-function forEach(obj, fn) {
- // Don't bother if no value provided
- if (obj === null || typeof obj === 'undefined') {
- return;
- }
-
- // Force an array if not already something iterable
- if (typeof obj !== 'object') {
- /*eslint no-param-reassign:0*/
- obj = [obj];
- }
-
- if (isArray(obj)) {
- // Iterate over array values
- for (var i = 0, l = obj.length; i < l; i++) {
- fn.call(null, obj[i], i, obj);
- }
- } else {
- // Iterate over object keys
- for (var key in obj) {
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
- fn.call(null, obj[key], key, obj);
- }
- }
- }
-}
-
-/**
- * Accepts varargs expecting each argument to be an object, then
- * immutably merges the properties of each object and returns result.
- *
- * When multiple objects contain the same key the later object in
- * the arguments list will take precedence.
- *
- * Example:
- *
- * ```js
- * var result = merge({foo: 123}, {foo: 456});
- * console.log(result.foo); // outputs 456
- * ```
- *
- * @param {Object} obj1 Object to merge
- * @returns {Object} Result of all merge properties
- */
-function merge(/* obj1, obj2, obj3, ... */) {
- var result = {};
- function assignValue(val, key) {
- if (isPlainObject(result[key]) && isPlainObject(val)) {
- result[key] = merge(result[key], val);
- } else if (isPlainObject(val)) {
- result[key] = merge({}, val);
- } else if (isArray(val)) {
- result[key] = val.slice();
- } else {
- result[key] = val;
- }
- }
-
- for (var i = 0, l = arguments.length; i < l; i++) {
- forEach(arguments[i], assignValue);
- }
- return result;
-}
-
-/**
- * Extends object a by mutably adding to it the properties of object b.
- *
- * @param {Object} a The object to be extended
- * @param {Object} b The object to copy properties from
- * @param {Object} thisArg The object to bind function to
- * @return {Object} The resulting value of object a
- */
-function extend(a, b, thisArg) {
- forEach(b, function assignValue(val, key) {
- if (thisArg && typeof val === 'function') {
- a[key] = bind(val, thisArg);
- } else {
- a[key] = val;
- }
- });
- return a;
-}
-
-/**
- * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
- *
- * @param {string} content with BOM
- * @return {string} content value without BOM
- */
-function stripBOM(content) {
- if (content.charCodeAt(0) === 0xFEFF) {
- content = content.slice(1);
- }
- return content;
-}
-
-module.exports = {
- isArray: isArray,
- isArrayBuffer: isArrayBuffer,
- isBuffer: isBuffer,
- isFormData: isFormData,
- isArrayBufferView: isArrayBufferView,
- isString: isString,
- isNumber: isNumber,
- isObject: isObject,
- isPlainObject: isPlainObject,
- isUndefined: isUndefined,
- isDate: isDate,
- isFile: isFile,
- isBlob: isBlob,
- isFunction: isFunction,
- isStream: isStream,
- isURLSearchParams: isURLSearchParams,
- isStandardBrowserEnv: isStandardBrowserEnv,
- forEach: forEach,
- merge: merge,
- extend: extend,
- trim: trim,
- stripBOM: stripBOM
-};
diff --git a/node_modules/@slack/bolt/node_modules/axios/package.json b/node_modules/@slack/bolt/node_modules/axios/package.json
deleted file mode 100644
index 32c275c..0000000
--- a/node_modules/@slack/bolt/node_modules/axios/package.json
+++ /dev/null
@@ -1,86 +0,0 @@
-{
- "name": "axios",
- "version": "0.26.1",
- "description": "Promise based HTTP client for the browser and node.js",
- "main": "index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "grunt test && dtslint",
- "start": "node ./sandbox/server.js",
- "build": "NODE_ENV=production grunt build",
- "preversion": "grunt version && npm test",
- "version": "npm run build && git add -A dist && git add CHANGELOG.md bower.json package.json",
- "postversion": "git push && git push --tags",
- "examples": "node ./examples/server.js",
- "coveralls": "cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",
- "fix": "eslint --fix lib/**/*.js"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/axios/axios.git"
- },
- "keywords": [
- "xhr",
- "http",
- "ajax",
- "promise",
- "node"
- ],
- "author": "Matt Zabriskie",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/axios/axios/issues"
- },
- "homepage": "https://axios-http.com",
- "devDependencies": {
- "abortcontroller-polyfill": "^1.5.0",
- "coveralls": "^3.0.0",
- "dtslint": "^4.1.6",
- "es6-promise": "^4.2.4",
- "grunt": "^1.3.0",
- "grunt-banner": "^0.6.0",
- "grunt-cli": "^1.2.0",
- "grunt-contrib-clean": "^1.1.0",
- "grunt-contrib-watch": "^1.0.0",
- "grunt-eslint": "^23.0.0",
- "grunt-karma": "^4.0.0",
- "grunt-mocha-test": "^0.13.3",
- "grunt-webpack": "^4.0.2",
- "istanbul-instrumenter-loader": "^1.0.0",
- "jasmine-core": "^2.4.1",
- "karma": "^6.3.2",
- "karma-chrome-launcher": "^3.1.0",
- "karma-firefox-launcher": "^2.1.0",
- "karma-jasmine": "^1.1.1",
- "karma-jasmine-ajax": "^0.1.13",
- "karma-safari-launcher": "^1.0.0",
- "karma-sauce-launcher": "^4.3.6",
- "karma-sinon": "^1.0.5",
- "karma-sourcemap-loader": "^0.3.8",
- "karma-webpack": "^4.0.2",
- "load-grunt-tasks": "^3.5.2",
- "minimist": "^1.2.0",
- "mocha": "^8.2.1",
- "sinon": "^4.5.0",
- "terser-webpack-plugin": "^4.2.3",
- "typescript": "^4.0.5",
- "url-search-params": "^0.10.0",
- "webpack": "^4.44.2",
- "webpack-dev-server": "^3.11.0"
- },
- "browser": {
- "./lib/adapters/http.js": "./lib/adapters/xhr.js"
- },
- "jsdelivr": "dist/axios.min.js",
- "unpkg": "dist/axios.min.js",
- "typings": "./index.d.ts",
- "dependencies": {
- "follow-redirects": "^1.14.8"
- },
- "bundlesize": [
- {
- "path": "./dist/axios.min.js",
- "threshold": "5kB"
- }
- ]
-}
diff --git a/node_modules/@slack/bolt/node_modules/axios/tsconfig.json b/node_modules/@slack/bolt/node_modules/axios/tsconfig.json
deleted file mode 100644
index 6665188..0000000
--- a/node_modules/@slack/bolt/node_modules/axios/tsconfig.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "compilerOptions": {
- "module": "es2015",
- "lib": ["dom", "es2015"],
- "types": [],
- "moduleResolution": "node",
- "strict": true,
- "noEmit": true,
- "baseUrl": ".",
- "paths": {
- "axios": ["."]
- }
- }
-}
diff --git a/node_modules/@slack/bolt/node_modules/axios/tslint.json b/node_modules/@slack/bolt/node_modules/axios/tslint.json
deleted file mode 100644
index 3ec44a7..0000000
--- a/node_modules/@slack/bolt/node_modules/axios/tslint.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "extends": "dtslint/dtslint.json",
- "rules": {
- "no-unnecessary-generics": false
- }
-}
diff --git a/node_modules/@slack/bolt/node_modules/axios/LICENSE b/node_modules/@slack/bolt/node_modules/path-to-regexp/LICENSE
similarity index 92%
rename from node_modules/@slack/bolt/node_modules/axios/LICENSE
rename to node_modules/@slack/bolt/node_modules/path-to-regexp/LICENSE
index d36c80e..983fbe8 100644
--- a/node_modules/@slack/bolt/node_modules/axios/LICENSE
+++ b/node_modules/@slack/bolt/node_modules/path-to-regexp/LICENSE
@@ -1,4 +1,6 @@
-Copyright (c) 2014-present Matt Zabriskie
+The MIT License (MIT)
+
+Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/node_modules/@slack/bolt/node_modules/path-to-regexp/Readme.md b/node_modules/@slack/bolt/node_modules/path-to-regexp/Readme.md
new file mode 100644
index 0000000..f20eb28
--- /dev/null
+++ b/node_modules/@slack/bolt/node_modules/path-to-regexp/Readme.md
@@ -0,0 +1,350 @@
+# Path-to-RegExp
+
+> Turn a path string such as `/user/:name` into a regular expression.
+
+[![NPM version][npm-image]][npm-url]
+[![NPM downloads][downloads-image]][downloads-url]
+[![Build status][build-image]][build-url]
+[![Build coverage][coverage-image]][coverage-url]
+[![License][license-image]][license-url]
+
+## Installation
+
+```
+npm install path-to-regexp --save
+```
+
+## Usage
+
+```javascript
+const { pathToRegexp, match, parse, compile } = require("path-to-regexp");
+
+// pathToRegexp(path, keys?, options?)
+// match(path)
+// parse(path)
+// compile(path)
+```
+
+### Path to regexp
+
+The `pathToRegexp` function will return a regular expression object based on the provided `path` argument. It accepts the following arguments:
+
+- **path** A string, array of strings, or a regular expression.
+- **keys** _(optional)_ An array to populate with keys found in the path.
+- **options** _(optional)_
+ - **sensitive** When `true` the regexp will be case sensitive. (default: `false`)
+ - **strict** When `true` the regexp won't allow an optional trailing delimiter to match. (default: `false`)
+ - **end** When `true` the regexp will match to the end of the string. (default: `true`)
+ - **start** When `true` the regexp will match from the beginning of the string. (default: `true`)
+ - **delimiter** The default delimiter for segments, e.g. `[^/#?]` for `:named` patterns. (default: `'/#?'`)
+ - **endsWith** Optional character, or list of characters, to treat as "end" characters.
+ - **encode** A function to encode strings before inserting into `RegExp`. (default: `x => x`)
+ - **prefixes** List of characters to automatically consider prefixes when parsing. (default: `./`)
+
+```javascript
+const keys = [];
+const regexp = pathToRegexp("/foo/:bar", keys);
+// regexp = /^\/foo(?:\/([^\/#\?]+?))[\/#\?]?$/i
+// keys = [{ name: 'bar', prefix: '/', suffix: '', pattern: '[^\\/#\\?]+?', modifier: '' }]
+```
+
+**Please note:** The `RegExp` returned by `path-to-regexp` is intended for ordered data (e.g. pathnames, hostnames). It can not handle arbitrarily ordered data (e.g. query strings, URL fragments, JSON, etc). When using paths that contain query strings, you need to escape the question mark (`?`) to ensure it does not flag the parameter as [optional](#optional).
+
+### Parameters
+
+The path argument is used to define parameters and populate keys.
+
+#### Named Parameters
+
+Named parameters are defined by prefixing a colon to the parameter name (`:foo`).
+
+```js
+const regexp = pathToRegexp("/:foo/:bar");
+// keys = [{ name: 'foo', prefix: '/', ... }, { name: 'bar', prefix: '/', ... }]
+
+regexp.exec("/test/route");
+//=> [ '/test/route', 'test', 'route', index: 0, input: '/test/route', groups: undefined ]
+```
+
+**Please note:** Parameter names must use "word characters" (`[A-Za-z0-9_]`).
+
+##### Custom Matching Parameters
+
+Parameters can have a custom regexp, which overrides the default match (`[^/]+`). For example, you can match digits or names in a path:
+
+```js
+const regexpNumbers = pathToRegexp("/icon-:foo(\\d+).png");
+// keys = [{ name: 'foo', ... }]
+
+regexpNumbers.exec("/icon-123.png");
+//=> ['/icon-123.png', '123']
+
+regexpNumbers.exec("/icon-abc.png");
+//=> null
+
+const regexpWord = pathToRegexp("/(user|u)");
+// keys = [{ name: 0, ... }]
+
+regexpWord.exec("/u");
+//=> ['/u', 'u']
+
+regexpWord.exec("/users");
+//=> null
+```
+
+**Tip:** Backslashes need to be escaped with another backslash in JavaScript strings.
+
+##### Custom Prefix and Suffix
+
+Parameters can be wrapped in `{}` to create custom prefixes or suffixes for your segment:
+
+```js
+const regexp = pathToRegexp("/:attr1?{-:attr2}?{-:attr3}?");
+
+regexp.exec("/test");
+// => ['/test', 'test', undefined, undefined]
+
+regexp.exec("/test-test");
+// => ['/test', 'test', 'test', undefined]
+```
+
+#### Unnamed Parameters
+
+It is possible to write an unnamed parameter that only consists of a regexp. It works the same the named parameter, except it will be numerically indexed:
+
+```js
+const regexp = pathToRegexp("/:foo/(.*)");
+// keys = [{ name: 'foo', ... }, { name: 0, ... }]
+
+regexp.exec("/test/route");
+//=> [ '/test/route', 'test', 'route', index: 0, input: '/test/route', groups: undefined ]
+```
+
+#### Modifiers
+
+Modifiers must be placed after the parameter (e.g. `/:foo?`, `/(test)?`, `/:foo(test)?`, or `{-:foo(test)}?`).
+
+##### Optional
+
+Parameters can be suffixed with a question mark (`?`) to make the parameter optional.
+
+```js
+const regexp = pathToRegexp("/:foo/:bar?");
+// keys = [{ name: 'foo', ... }, { name: 'bar', prefix: '/', modifier: '?' }]
+
+regexp.exec("/test");
+//=> [ '/test', 'test', undefined, index: 0, input: '/test', groups: undefined ]
+
+regexp.exec("/test/route");
+//=> [ '/test/route', 'test', 'route', index: 0, input: '/test/route', groups: undefined ]
+```
+
+**Tip:** The prefix is also optional, escape the prefix `\/` to make it required.
+
+When dealing with query strings, escape the question mark (`?`) so it doesn't mark the parameter as optional. Handling unordered data is outside the scope of this library.
+
+```js
+const regexp = pathToRegexp("/search/:tableName\\?useIndex=true&term=amazing");
+
+regexp.exec("/search/people?useIndex=true&term=amazing");
+//=> [ '/search/people?useIndex=true&term=amazing', 'people', index: 0, input: '/search/people?useIndex=true&term=amazing', groups: undefined ]
+
+// This library does not handle query strings in different orders
+regexp.exec("/search/people?term=amazing&useIndex=true");
+//=> null
+```
+
+##### Zero or more
+
+Parameters can be suffixed with an asterisk (`*`) to denote a zero or more parameter matches.
+
+```js
+const regexp = pathToRegexp("/:foo*");
+// keys = [{ name: 'foo', prefix: '/', modifier: '*' }]
+
+regexp.exec("/");
+//=> [ '/', undefined, index: 0, input: '/', groups: undefined ]
+
+regexp.exec("/bar/baz");
+//=> [ '/bar/baz', 'bar/baz', index: 0, input: '/bar/baz', groups: undefined ]
+```
+
+##### One or more
+
+Parameters can be suffixed with a plus sign (`+`) to denote a one or more parameter matches.
+
+```js
+const regexp = pathToRegexp("/:foo+");
+// keys = [{ name: 'foo', prefix: '/', modifier: '+' }]
+
+regexp.exec("/");
+//=> null
+
+regexp.exec("/bar/baz");
+//=> [ '/bar/baz','bar/baz', index: 0, input: '/bar/baz', groups: undefined ]
+```
+
+### Match
+
+The `match` function will return a function for transforming paths into parameters:
+
+```js
+// Make sure you consistently `decode` segments.
+const fn = match("/user/:id", { decode: decodeURIComponent });
+
+fn("/user/123"); //=> { path: '/user/123', index: 0, params: { id: '123' } }
+fn("/invalid"); //=> false
+fn("/user/caf%C3%A9"); //=> { path: '/user/caf%C3%A9', index: 0, params: { id: 'café' } }
+```
+
+The `match` function can be used to custom match named parameters. For example, this can be used to whitelist a small number of valid paths:
+
+```js
+const urlMatch = match("/users/:id/:tab(home|photos|bio)", {
+ decode: decodeURIComponent,
+});
+
+urlMatch("/users/1234/photos");
+//=> { path: '/users/1234/photos', index: 0, params: { id: '1234', tab: 'photos' } }
+
+urlMatch("/users/1234/bio");
+//=> { path: '/users/1234/bio', index: 0, params: { id: '1234', tab: 'bio' } }
+
+urlMatch("/users/1234/otherstuff");
+//=> false
+```
+
+#### Process Pathname
+
+You should make sure variations of the same path match the expected `path`. Here's one possible solution using `encode`:
+
+```js
+const fn = match("/café", { encode: encodeURI });
+
+fn("/caf%C3%A9"); //=> { path: '/caf%C3%A9', index: 0, params: {} }
+```
+
+**Note:** [`URL`](https://developer.mozilla.org/en-US/docs/Web/API/URL) encodes paths, so `/café` would be normalized to `/caf%C3%A9` and match in the above example.
+
+##### Alternative Using Normalize
+
+Sometimes you won't have already normalized paths to use, so you could normalize it yourself before matching:
+
+```js
+/**
+ * Normalize a pathname for matching, replaces multiple slashes with a single
+ * slash and normalizes unicode characters to "NFC". When using this method,
+ * `decode` should be an identity function so you don't decode strings twice.
+ */
+function normalizePathname(pathname: string) {
+ return (
+ decodeURI(pathname)
+ // Replaces repeated slashes in the URL.
+ .replace(/\/+/g, "/")
+ // Reference: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
+ // Note: Missing native IE support, may want to skip this step.
+ .normalize()
+ );
+}
+
+// Two possible ways of writing `/café`:
+const re = pathToRegexp("/caf\u00E9");
+const input = encodeURI("/cafe\u0301");
+
+re.test(input); //=> false
+re.test(normalizePathname(input)); //=> true
+```
+
+### Parse
+
+The `parse` function will return a list of strings and keys from a path string:
+
+```js
+const tokens = parse("/route/:foo/(.*)");
+
+console.log(tokens[0]);
+//=> "/route"
+
+console.log(tokens[1]);
+//=> { name: 'foo', prefix: '/', suffix: '', pattern: '[^\\/#\\?]+?', modifier: '' }
+
+console.log(tokens[2]);
+//=> { name: 0, prefix: '/', suffix: '', pattern: '.*', modifier: '' }
+```
+
+**Note:** This method only works with strings.
+
+### Compile ("Reverse" Path-To-RegExp)
+
+The `compile` function will return a function for transforming parameters into a valid path:
+
+```js
+// Make sure you encode your path segments consistently.
+const toPath = compile("/user/:id", { encode: encodeURIComponent });
+
+toPath({ id: 123 }); //=> "/user/123"
+toPath({ id: "café" }); //=> "/user/caf%C3%A9"
+toPath({ id: ":/" }); //=> "/user/%3A%2F"
+
+// Without `encode`, you need to make sure inputs are encoded correctly.
+// (Note: You can use `validate: false` to create an invalid paths.)
+const toPathRaw = compile("/user/:id", { validate: false });
+
+toPathRaw({ id: "%3A%2F" }); //=> "/user/%3A%2F"
+toPathRaw({ id: ":/" }); //=> "/user/:/"
+
+const toPathRepeated = compile("/:segment+");
+
+toPathRepeated({ segment: "foo" }); //=> "/foo"
+toPathRepeated({ segment: ["a", "b", "c"] }); //=> "/a/b/c"
+
+const toPathRegexp = compile("/user/:id(\\d+)");
+
+toPathRegexp({ id: 123 }); //=> "/user/123"
+toPathRegexp({ id: "123" }); //=> "/user/123"
+```
+
+**Note:** The generated function will throw on invalid input.
+
+### Working with Tokens
+
+Path-To-RegExp exposes the two functions used internally that accept an array of tokens:
+
+- `tokensToRegexp(tokens, keys?, options?)` Transform an array of tokens into a matching regular expression.
+- `tokensToFunction(tokens)` Transform an array of tokens into a path generator function.
+
+#### Token Information
+
+- `name` The name of the token (`string` for named or `number` for unnamed index)
+- `prefix` The prefix string for the segment (e.g. `"/"`)
+- `suffix` The suffix string for the segment (e.g. `""`)
+- `pattern` The RegExp used to match this token (`string`)
+- `modifier` The modifier character used for the segment (e.g. `?`)
+
+## Compatibility with Express <= 4.x
+
+Path-To-RegExp breaks compatibility with Express <= `4.x`:
+
+- RegExp special characters can only be used in a parameter
+ - Express.js 4.x supported `RegExp` special characters regardless of position - this is considered a bug
+- Parameters have suffixes that augment meaning - `*`, `+` and `?`. E.g. `/:user*`
+- No wildcard asterisk (`*`) - use parameters instead (`(.*)` or `:splat*`)
+
+## Live Demo
+
+You can see a live demo of this library in use at [express-route-tester](http://forbeslindesay.github.io/express-route-tester/).
+
+## License
+
+MIT
+
+[npm-image]: https://img.shields.io/npm/v/path-to-regexp
+[npm-url]: https://npmjs.org/package/path-to-regexp
+[downloads-image]: https://img.shields.io/npm/dm/path-to-regexp
+[downloads-url]: https://npmjs.org/package/path-to-regexp
+[build-image]: https://img.shields.io/github/actions/workflow/status/pillarjs/path-to-regexp/ci.yml?branch=master
+[build-url]: https://github.com/pillarjs/path-to-regexp/actions/workflows/ci.yml?query=branch%3Amaster
+[coverage-image]: https://img.shields.io/codecov/c/gh/pillarjs/path-to-regexp
+[coverage-url]: https://codecov.io/gh/pillarjs/path-to-regexp
+[license-image]: http://img.shields.io/npm/l/path-to-regexp.svg?style=flat
+[license-url]: LICENSE.md
diff --git a/node_modules/@slack/bolt/node_modules/path-to-regexp/dist.es2015/index.js b/node_modules/@slack/bolt/node_modules/path-to-regexp/dist.es2015/index.js
new file mode 100644
index 0000000..f891c1b
--- /dev/null
+++ b/node_modules/@slack/bolt/node_modules/path-to-regexp/dist.es2015/index.js
@@ -0,0 +1,400 @@
+/**
+ * Tokenize input string.
+ */
+function lexer(str) {
+ var tokens = [];
+ var i = 0;
+ while (i < str.length) {
+ var char = str[i];
+ if (char === "*" || char === "+" || char === "?") {
+ tokens.push({ type: "MODIFIER", index: i, value: str[i++] });
+ continue;
+ }
+ if (char === "\\") {
+ tokens.push({ type: "ESCAPED_CHAR", index: i++, value: str[i++] });
+ continue;
+ }
+ if (char === "{") {
+ tokens.push({ type: "OPEN", index: i, value: str[i++] });
+ continue;
+ }
+ if (char === "}") {
+ tokens.push({ type: "CLOSE", index: i, value: str[i++] });
+ continue;
+ }
+ if (char === ":") {
+ var name = "";
+ var j = i + 1;
+ while (j < str.length) {
+ var code = str.charCodeAt(j);
+ if (
+ // `0-9`
+ (code >= 48 && code <= 57) ||
+ // `A-Z`
+ (code >= 65 && code <= 90) ||
+ // `a-z`
+ (code >= 97 && code <= 122) ||
+ // `_`
+ code === 95) {
+ name += str[j++];
+ continue;
+ }
+ break;
+ }
+ if (!name)
+ throw new TypeError("Missing parameter name at ".concat(i));
+ tokens.push({ type: "NAME", index: i, value: name });
+ i = j;
+ continue;
+ }
+ if (char === "(") {
+ var count = 1;
+ var pattern = "";
+ var j = i + 1;
+ if (str[j] === "?") {
+ throw new TypeError("Pattern cannot start with \"?\" at ".concat(j));
+ }
+ while (j < str.length) {
+ if (str[j] === "\\") {
+ pattern += str[j++] + str[j++];
+ continue;
+ }
+ if (str[j] === ")") {
+ count--;
+ if (count === 0) {
+ j++;
+ break;
+ }
+ }
+ else if (str[j] === "(") {
+ count++;
+ if (str[j + 1] !== "?") {
+ throw new TypeError("Capturing groups are not allowed at ".concat(j));
+ }
+ }
+ pattern += str[j++];
+ }
+ if (count)
+ throw new TypeError("Unbalanced pattern at ".concat(i));
+ if (!pattern)
+ throw new TypeError("Missing pattern at ".concat(i));
+ tokens.push({ type: "PATTERN", index: i, value: pattern });
+ i = j;
+ continue;
+ }
+ tokens.push({ type: "CHAR", index: i, value: str[i++] });
+ }
+ tokens.push({ type: "END", index: i, value: "" });
+ return tokens;
+}
+/**
+ * Parse a string for the raw tokens.
+ */
+export function parse(str, options) {
+ if (options === void 0) { options = {}; }
+ var tokens = lexer(str);
+ var _a = options.prefixes, prefixes = _a === void 0 ? "./" : _a;
+ var defaultPattern = "[^".concat(escapeString(options.delimiter || "/#?"), "]+?");
+ var result = [];
+ var key = 0;
+ var i = 0;
+ var path = "";
+ var tryConsume = function (type) {
+ if (i < tokens.length && tokens[i].type === type)
+ return tokens[i++].value;
+ };
+ var mustConsume = function (type) {
+ var value = tryConsume(type);
+ if (value !== undefined)
+ return value;
+ var _a = tokens[i], nextType = _a.type, index = _a.index;
+ throw new TypeError("Unexpected ".concat(nextType, " at ").concat(index, ", expected ").concat(type));
+ };
+ var consumeText = function () {
+ var result = "";
+ var value;
+ while ((value = tryConsume("CHAR") || tryConsume("ESCAPED_CHAR"))) {
+ result += value;
+ }
+ return result;
+ };
+ while (i < tokens.length) {
+ var char = tryConsume("CHAR");
+ var name = tryConsume("NAME");
+ var pattern = tryConsume("PATTERN");
+ if (name || pattern) {
+ var prefix = char || "";
+ if (prefixes.indexOf(prefix) === -1) {
+ path += prefix;
+ prefix = "";
+ }
+ if (path) {
+ result.push(path);
+ path = "";
+ }
+ result.push({
+ name: name || key++,
+ prefix: prefix,
+ suffix: "",
+ pattern: pattern || defaultPattern,
+ modifier: tryConsume("MODIFIER") || "",
+ });
+ continue;
+ }
+ var value = char || tryConsume("ESCAPED_CHAR");
+ if (value) {
+ path += value;
+ continue;
+ }
+ if (path) {
+ result.push(path);
+ path = "";
+ }
+ var open = tryConsume("OPEN");
+ if (open) {
+ var prefix = consumeText();
+ var name_1 = tryConsume("NAME") || "";
+ var pattern_1 = tryConsume("PATTERN") || "";
+ var suffix = consumeText();
+ mustConsume("CLOSE");
+ result.push({
+ name: name_1 || (pattern_1 ? key++ : ""),
+ pattern: name_1 && !pattern_1 ? defaultPattern : pattern_1,
+ prefix: prefix,
+ suffix: suffix,
+ modifier: tryConsume("MODIFIER") || "",
+ });
+ continue;
+ }
+ mustConsume("END");
+ }
+ return result;
+}
+/**
+ * Compile a string to a template function for the path.
+ */
+export function compile(str, options) {
+ return tokensToFunction(parse(str, options), options);
+}
+/**
+ * Expose a method for transforming tokens into the path function.
+ */
+export function tokensToFunction(tokens, options) {
+ if (options === void 0) { options = {}; }
+ var reFlags = flags(options);
+ var _a = options.encode, encode = _a === void 0 ? function (x) { return x; } : _a, _b = options.validate, validate = _b === void 0 ? true : _b;
+ // Compile all the tokens into regexps.
+ var matches = tokens.map(function (token) {
+ if (typeof token === "object") {
+ return new RegExp("^(?:".concat(token.pattern, ")$"), reFlags);
+ }
+ });
+ return function (data) {
+ var path = "";
+ for (var i = 0; i < tokens.length; i++) {
+ var token = tokens[i];
+ if (typeof token === "string") {
+ path += token;
+ continue;
+ }
+ var value = data ? data[token.name] : undefined;
+ var optional = token.modifier === "?" || token.modifier === "*";
+ var repeat = token.modifier === "*" || token.modifier === "+";
+ if (Array.isArray(value)) {
+ if (!repeat) {
+ throw new TypeError("Expected \"".concat(token.name, "\" to not repeat, but got an array"));
+ }
+ if (value.length === 0) {
+ if (optional)
+ continue;
+ throw new TypeError("Expected \"".concat(token.name, "\" to not be empty"));
+ }
+ for (var j = 0; j < value.length; j++) {
+ var segment = encode(value[j], token);
+ if (validate && !matches[i].test(segment)) {
+ throw new TypeError("Expected all \"".concat(token.name, "\" to match \"").concat(token.pattern, "\", but got \"").concat(segment, "\""));
+ }
+ path += token.prefix + segment + token.suffix;
+ }
+ continue;
+ }
+ if (typeof value === "string" || typeof value === "number") {
+ var segment = encode(String(value), token);
+ if (validate && !matches[i].test(segment)) {
+ throw new TypeError("Expected \"".concat(token.name, "\" to match \"").concat(token.pattern, "\", but got \"").concat(segment, "\""));
+ }
+ path += token.prefix + segment + token.suffix;
+ continue;
+ }
+ if (optional)
+ continue;
+ var typeOfMessage = repeat ? "an array" : "a string";
+ throw new TypeError("Expected \"".concat(token.name, "\" to be ").concat(typeOfMessage));
+ }
+ return path;
+ };
+}
+/**
+ * Create path match function from `path-to-regexp` spec.
+ */
+export function match(str, options) {
+ var keys = [];
+ var re = pathToRegexp(str, keys, options);
+ return regexpToFunction(re, keys, options);
+}
+/**
+ * Create a path match function from `path-to-regexp` output.
+ */
+export function regexpToFunction(re, keys, options) {
+ if (options === void 0) { options = {}; }
+ var _a = options.decode, decode = _a === void 0 ? function (x) { return x; } : _a;
+ return function (pathname) {
+ var m = re.exec(pathname);
+ if (!m)
+ return false;
+ var path = m[0], index = m.index;
+ var params = Object.create(null);
+ var _loop_1 = function (i) {
+ if (m[i] === undefined)
+ return "continue";
+ var key = keys[i - 1];
+ if (key.modifier === "*" || key.modifier === "+") {
+ params[key.name] = m[i].split(key.prefix + key.suffix).map(function (value) {
+ return decode(value, key);
+ });
+ }
+ else {
+ params[key.name] = decode(m[i], key);
+ }
+ };
+ for (var i = 1; i < m.length; i++) {
+ _loop_1(i);
+ }
+ return { path: path, index: index, params: params };
+ };
+}
+/**
+ * Escape a regular expression string.
+ */
+function escapeString(str) {
+ return str.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1");
+}
+/**
+ * Get the flags for a regexp from the options.
+ */
+function flags(options) {
+ return options && options.sensitive ? "" : "i";
+}
+/**
+ * Pull out keys from a regexp.
+ */
+function regexpToRegexp(path, keys) {
+ if (!keys)
+ return path;
+ var groupsRegex = /\((?:\?<(.*?)>)?(?!\?)/g;
+ var index = 0;
+ var execResult = groupsRegex.exec(path.source);
+ while (execResult) {
+ keys.push({
+ // Use parenthesized substring match if available, index otherwise
+ name: execResult[1] || index++,
+ prefix: "",
+ suffix: "",
+ modifier: "",
+ pattern: "",
+ });
+ execResult = groupsRegex.exec(path.source);
+ }
+ return path;
+}
+/**
+ * Transform an array into a regexp.
+ */
+function arrayToRegexp(paths, keys, options) {
+ var parts = paths.map(function (path) { return pathToRegexp(path, keys, options).source; });
+ return new RegExp("(?:".concat(parts.join("|"), ")"), flags(options));
+}
+/**
+ * Create a path regexp from string input.
+ */
+function stringToRegexp(path, keys, options) {
+ return tokensToRegexp(parse(path, options), keys, options);
+}
+/**
+ * Expose a function for taking tokens and returning a RegExp.
+ */
+export function tokensToRegexp(tokens, keys, options) {
+ if (options === void 0) { options = {}; }
+ var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function (x) { return x; } : _d, _e = options.delimiter, delimiter = _e === void 0 ? "/#?" : _e, _f = options.endsWith, endsWith = _f === void 0 ? "" : _f;
+ var endsWithRe = "[".concat(escapeString(endsWith), "]|$");
+ var delimiterRe = "[".concat(escapeString(delimiter), "]");
+ var route = start ? "^" : "";
+ // Iterate over the tokens and create our regexp string.
+ for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {
+ var token = tokens_1[_i];
+ if (typeof token === "string") {
+ route += escapeString(encode(token));
+ }
+ else {
+ var prefix = escapeString(encode(token.prefix));
+ var suffix = escapeString(encode(token.suffix));
+ if (token.pattern) {
+ if (keys)
+ keys.push(token);
+ if (prefix || suffix) {
+ if (token.modifier === "+" || token.modifier === "*") {
+ var mod = token.modifier === "*" ? "?" : "";
+ route += "(?:".concat(prefix, "((?:").concat(token.pattern, ")(?:").concat(suffix).concat(prefix, "(?:").concat(token.pattern, "))*)").concat(suffix, ")").concat(mod);
+ }
+ else {
+ route += "(?:".concat(prefix, "(").concat(token.pattern, ")").concat(suffix, ")").concat(token.modifier);
+ }
+ }
+ else {
+ if (token.modifier === "+" || token.modifier === "*") {
+ route += "((?:".concat(token.pattern, ")").concat(token.modifier, ")");
+ }
+ else {
+ route += "(".concat(token.pattern, ")").concat(token.modifier);
+ }
+ }
+ }
+ else {
+ route += "(?:".concat(prefix).concat(suffix, ")").concat(token.modifier);
+ }
+ }
+ }
+ if (end) {
+ if (!strict)
+ route += "".concat(delimiterRe, "?");
+ route += !options.endsWith ? "$" : "(?=".concat(endsWithRe, ")");
+ }
+ else {
+ var endToken = tokens[tokens.length - 1];
+ var isEndDelimited = typeof endToken === "string"
+ ? delimiterRe.indexOf(endToken[endToken.length - 1]) > -1
+ : endToken === undefined;
+ if (!strict) {
+ route += "(?:".concat(delimiterRe, "(?=").concat(endsWithRe, "))?");
+ }
+ if (!isEndDelimited) {
+ route += "(?=".concat(delimiterRe, "|").concat(endsWithRe, ")");
+ }
+ }
+ return new RegExp(route, flags(options));
+}
+/**
+ * Normalize the given path string, returning a regular expression.
+ *
+ * An empty array can be passed in for the keys, which will hold the
+ * placeholder key descriptions. For example, using `/user/:id`, `keys` will
+ * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.
+ */
+export function pathToRegexp(path, keys, options) {
+ if (path instanceof RegExp)
+ return regexpToRegexp(path, keys);
+ if (Array.isArray(path))
+ return arrayToRegexp(path, keys, options);
+ return stringToRegexp(path, keys, options);
+}
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/@slack/bolt/node_modules/path-to-regexp/dist.es2015/index.js.map b/node_modules/@slack/bolt/node_modules/path-to-regexp/dist.es2015/index.js.map
new file mode 100644
index 0000000..a1e2390
--- /dev/null
+++ b/node_modules/@slack/bolt/node_modules/path-to-regexp/dist.es2015/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Tokenizer results.\n */\ninterface LexToken {\n type:\n | \"OPEN\"\n | \"CLOSE\"\n | \"PATTERN\"\n | \"NAME\"\n | \"CHAR\"\n | \"ESCAPED_CHAR\"\n | \"MODIFIER\"\n | \"END\";\n index: number;\n value: string;\n}\n\n/**\n * Tokenize input string.\n */\nfunction lexer(str: string): LexToken[] {\n const tokens: LexToken[] = [];\n let i = 0;\n\n while (i < str.length) {\n const char = str[i];\n\n if (char === \"*\" || char === \"+\" || char === \"?\") {\n tokens.push({ type: \"MODIFIER\", index: i, value: str[i++] });\n continue;\n }\n\n if (char === \"\\\\\") {\n tokens.push({ type: \"ESCAPED_CHAR\", index: i++, value: str[i++] });\n continue;\n }\n\n if (char === \"{\") {\n tokens.push({ type: \"OPEN\", index: i, value: str[i++] });\n continue;\n }\n\n if (char === \"}\") {\n tokens.push({ type: \"CLOSE\", index: i, value: str[i++] });\n continue;\n }\n\n if (char === \":\") {\n let name = \"\";\n let j = i + 1;\n\n while (j < str.length) {\n const code = str.charCodeAt(j);\n\n if (\n // `0-9`\n (code >= 48 && code <= 57) ||\n // `A-Z`\n (code >= 65 && code <= 90) ||\n // `a-z`\n (code >= 97 && code <= 122) ||\n // `_`\n code === 95\n ) {\n name += str[j++];\n continue;\n }\n\n break;\n }\n\n if (!name) throw new TypeError(`Missing parameter name at ${i}`);\n\n tokens.push({ type: \"NAME\", index: i, value: name });\n i = j;\n continue;\n }\n\n if (char === \"(\") {\n let count = 1;\n let pattern = \"\";\n let j = i + 1;\n\n if (str[j] === \"?\") {\n throw new TypeError(`Pattern cannot start with \"?\" at ${j}`);\n }\n\n while (j < str.length) {\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n } else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n throw new TypeError(`Capturing groups are not allowed at ${j}`);\n }\n }\n\n pattern += str[j++];\n }\n\n if (count) throw new TypeError(`Unbalanced pattern at ${i}`);\n if (!pattern) throw new TypeError(`Missing pattern at ${i}`);\n\n tokens.push({ type: \"PATTERN\", index: i, value: pattern });\n i = j;\n continue;\n }\n\n tokens.push({ type: \"CHAR\", index: i, value: str[i++] });\n }\n\n tokens.push({ type: \"END\", index: i, value: \"\" });\n\n return tokens;\n}\n\nexport interface ParseOptions {\n /**\n * Set the default delimiter for repeat parameters. (default: `'/'`)\n */\n delimiter?: string;\n /**\n * List of characters to automatically consider prefixes when parsing.\n */\n prefixes?: string;\n}\n\n/**\n * Parse a string for the raw tokens.\n */\nexport function parse(str: string, options: ParseOptions = {}): Token[] {\n const tokens = lexer(str);\n const { prefixes = \"./\" } = options;\n const defaultPattern = `[^${escapeString(options.delimiter || \"/#?\")}]+?`;\n const result: Token[] = [];\n let key = 0;\n let i = 0;\n let path = \"\";\n\n const tryConsume = (type: LexToken[\"type\"]): string | undefined => {\n if (i < tokens.length && tokens[i].type === type) return tokens[i++].value;\n };\n\n const mustConsume = (type: LexToken[\"type\"]): string => {\n const value = tryConsume(type);\n if (value !== undefined) return value;\n const { type: nextType, index } = tokens[i];\n throw new TypeError(`Unexpected ${nextType} at ${index}, expected ${type}`);\n };\n\n const consumeText = (): string => {\n let result = \"\";\n let value: string | undefined;\n while ((value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\"))) {\n result += value;\n }\n return result;\n };\n\n while (i < tokens.length) {\n const char = tryConsume(\"CHAR\");\n const name = tryConsume(\"NAME\");\n const pattern = tryConsume(\"PATTERN\");\n\n if (name || pattern) {\n let prefix = char || \"\";\n\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n\n if (path) {\n result.push(path);\n path = \"\";\n }\n\n result.push({\n name: name || key++,\n prefix,\n suffix: \"\",\n pattern: pattern || defaultPattern,\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n\n const value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n\n if (path) {\n result.push(path);\n path = \"\";\n }\n\n const open = tryConsume(\"OPEN\");\n if (open) {\n const prefix = consumeText();\n const name = tryConsume(\"NAME\") || \"\";\n const pattern = tryConsume(\"PATTERN\") || \"\";\n const suffix = consumeText();\n\n mustConsume(\"CLOSE\");\n\n result.push({\n name: name || (pattern ? key++ : \"\"),\n pattern: name && !pattern ? defaultPattern : pattern,\n prefix,\n suffix,\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n\n mustConsume(\"END\");\n }\n\n return result;\n}\n\nexport interface TokensToFunctionOptions {\n /**\n * When `true` the regexp will be case sensitive. (default: `false`)\n */\n sensitive?: boolean;\n /**\n * Function for encoding input strings for output.\n */\n encode?: (value: string, token: Key) => string;\n /**\n * When `false` the function can produce an invalid (unmatched) path. (default: `true`)\n */\n validate?: boolean;\n}\n\n/**\n * Compile a string to a template function for the path.\n */\nexport function compile(\n str: string,\n options?: ParseOptions & TokensToFunctionOptions,\n) {\n return tokensToFunction
(parse(str, options), options);\n}\n\nexport type PathFunction
= (data?: P) => string;\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nexport function tokensToFunction
(\n tokens: Token[],\n options: TokensToFunctionOptions = {},\n): PathFunction
{\n const reFlags = flags(options);\n const { encode = (x: string) => x, validate = true } = options;\n\n // Compile all the tokens into regexps.\n const matches = tokens.map((token) => {\n if (typeof token === \"object\") {\n return new RegExp(`^(?:${token.pattern})$`, reFlags);\n }\n });\n\n return (data: Record | null | undefined) => {\n let path = \"\";\n\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n\n if (typeof token === \"string\") {\n path += token;\n continue;\n }\n\n const value = data ? data[token.name] : undefined;\n const optional = token.modifier === \"?\" || token.modifier === \"*\";\n const repeat = token.modifier === \"*\" || token.modifier === \"+\";\n\n if (Array.isArray(value)) {\n if (!repeat) {\n throw new TypeError(\n `Expected \"${token.name}\" to not repeat, but got an array`,\n );\n }\n\n if (value.length === 0) {\n if (optional) continue;\n\n throw new TypeError(`Expected \"${token.name}\" to not be empty`);\n }\n\n for (let j = 0; j < value.length; j++) {\n const segment = encode(value[j], token);\n\n if (validate && !(matches[i] as RegExp).test(segment)) {\n throw new TypeError(\n `Expected all \"${token.name}\" to match \"${token.pattern}\", but got \"${segment}\"`,\n );\n }\n\n path += token.prefix + segment + token.suffix;\n }\n\n continue;\n }\n\n if (typeof value === \"string\" || typeof value === \"number\") {\n const segment = encode(String(value), token);\n\n if (validate && !(matches[i] as RegExp).test(segment)) {\n throw new TypeError(\n `Expected \"${token.name}\" to match \"${token.pattern}\", but got \"${segment}\"`,\n );\n }\n\n path += token.prefix + segment + token.suffix;\n continue;\n }\n\n if (optional) continue;\n\n const typeOfMessage = repeat ? \"an array\" : \"a string\";\n throw new TypeError(`Expected \"${token.name}\" to be ${typeOfMessage}`);\n }\n\n return path;\n };\n}\n\nexport interface RegexpToFunctionOptions {\n /**\n * Function for decoding strings for params.\n */\n decode?: (value: string, token: Key) => string;\n}\n\n/**\n * A match result contains data about the path match.\n */\nexport interface MatchResult {\n path: string;\n index: number;\n params: P;\n}\n\n/**\n * A match is either `false` (no match) or a match result.\n */\nexport type Match
= false | MatchResult
;\n\n/**\n * The match function takes a string and returns whether it matched the path.\n */\nexport type MatchFunction
= (\n path: string,\n) => Match
;\n\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nexport function match
(\n str: Path,\n options?: ParseOptions & TokensToRegexpOptions & RegexpToFunctionOptions,\n) {\n const keys: Key[] = [];\n const re = pathToRegexp(str, keys, options);\n return regexpToFunction
(re, keys, options);\n}\n\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nexport function regexpToFunction
(\n re: RegExp,\n keys: Key[],\n options: RegexpToFunctionOptions = {},\n): MatchFunction
{\n const { decode = (x: string) => x } = options;\n\n return function (pathname: string) {\n const m = re.exec(pathname);\n if (!m) return false;\n\n const { 0: path, index } = m;\n const params = Object.create(null);\n\n for (let i = 1; i < m.length; i++) {\n if (m[i] === undefined) continue;\n\n const key = keys[i - 1];\n\n if (key.modifier === \"*\" || key.modifier === \"+\") {\n params[key.name] = m[i].split(key.prefix + key.suffix).map((value) => {\n return decode(value, key);\n });\n } else {\n params[key.name] = decode(m[i], key);\n }\n }\n\n return { path, index, params };\n };\n}\n\n/**\n * Escape a regular expression string.\n */\nfunction escapeString(str: string) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\n\n/**\n * Get the flags for a regexp from the options.\n */\nfunction flags(options?: { sensitive?: boolean }) {\n return options && options.sensitive ? \"\" : \"i\";\n}\n\n/**\n * Metadata about a key.\n */\nexport interface Key {\n name: string | number;\n prefix: string;\n suffix: string;\n pattern: string;\n modifier: string;\n}\n\n/**\n * A token is a string (nothing special) or key metadata (capture group).\n */\nexport type Token = string | Key;\n\n/**\n * Pull out keys from a regexp.\n */\nfunction regexpToRegexp(path: RegExp, keys?: Key[]): RegExp {\n if (!keys) return path;\n\n const groupsRegex = /\\((?:\\?<(.*?)>)?(?!\\?)/g;\n\n let index = 0;\n let execResult = groupsRegex.exec(path.source);\n while (execResult) {\n keys.push({\n // Use parenthesized substring match if available, index otherwise\n name: execResult[1] || index++,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\",\n });\n execResult = groupsRegex.exec(path.source);\n }\n\n return path;\n}\n\n/**\n * Transform an array into a regexp.\n */\nfunction arrayToRegexp(\n paths: Array,\n keys?: Key[],\n options?: TokensToRegexpOptions & ParseOptions,\n): RegExp {\n const parts = paths.map((path) => pathToRegexp(path, keys, options).source);\n return new RegExp(`(?:${parts.join(\"|\")})`, flags(options));\n}\n\n/**\n * Create a path regexp from string input.\n */\nfunction stringToRegexp(\n path: string,\n keys?: Key[],\n options?: TokensToRegexpOptions & ParseOptions,\n) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\n\nexport interface TokensToRegexpOptions {\n /**\n * When `true` the regexp will be case sensitive. (default: `false`)\n */\n sensitive?: boolean;\n /**\n * When `true` the regexp won't allow an optional trailing delimiter to match. (default: `false`)\n */\n strict?: boolean;\n /**\n * When `true` the regexp will match to the end of the string. (default: `true`)\n */\n end?: boolean;\n /**\n * When `true` the regexp will match from the beginning of the string. (default: `true`)\n */\n start?: boolean;\n /**\n * Sets the final character for non-ending optimistic matches. (default: `/`)\n */\n delimiter?: string;\n /**\n * List of characters that can also be \"end\" characters.\n */\n endsWith?: string;\n /**\n * Encode path tokens for use in the `RegExp`.\n */\n encode?: (value: string) => string;\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n */\nexport function tokensToRegexp(\n tokens: Token[],\n keys?: Key[],\n options: TokensToRegexpOptions = {},\n) {\n const {\n strict = false,\n start = true,\n end = true,\n encode = (x: string) => x,\n delimiter = \"/#?\",\n endsWith = \"\",\n } = options;\n const endsWithRe = `[${escapeString(endsWith)}]|$`;\n const delimiterRe = `[${escapeString(delimiter)}]`;\n let route = start ? \"^\" : \"\";\n\n // Iterate over the tokens and create our regexp string.\n for (const token of tokens) {\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n } else {\n const prefix = escapeString(encode(token.prefix));\n const suffix = escapeString(encode(token.suffix));\n\n if (token.pattern) {\n if (keys) keys.push(token);\n\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n const mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += `(?:${prefix}((?:${token.pattern})(?:${suffix}${prefix}(?:${token.pattern}))*)${suffix})${mod}`;\n } else {\n route += `(?:${prefix}(${token.pattern})${suffix})${token.modifier}`;\n }\n } else {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n route += `((?:${token.pattern})${token.modifier})`;\n } else {\n route += `(${token.pattern})${token.modifier}`;\n }\n }\n } else {\n route += `(?:${prefix}${suffix})${token.modifier}`;\n }\n }\n }\n\n if (end) {\n if (!strict) route += `${delimiterRe}?`;\n\n route += !options.endsWith ? \"$\" : `(?=${endsWithRe})`;\n } else {\n const endToken = tokens[tokens.length - 1];\n const isEndDelimited =\n typeof endToken === \"string\"\n ? delimiterRe.indexOf(endToken[endToken.length - 1]) > -1\n : endToken === undefined;\n\n if (!strict) {\n route += `(?:${delimiterRe}(?=${endsWithRe}))?`;\n }\n\n if (!isEndDelimited) {\n route += `(?=${delimiterRe}|${endsWithRe})`;\n }\n }\n\n return new RegExp(route, flags(options));\n}\n\n/**\n * Supported `path-to-regexp` input types.\n */\nexport type Path = string | RegExp | Array;\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n */\nexport function pathToRegexp(\n path: Path,\n keys?: Key[],\n options?: TokensToRegexpOptions & ParseOptions,\n) {\n if (path instanceof RegExp) return regexpToRegexp(path, keys);\n if (Array.isArray(path)) return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\n"]}
\ No newline at end of file
diff --git a/node_modules/@slack/bolt/node_modules/path-to-regexp/dist/index.d.ts b/node_modules/@slack/bolt/node_modules/path-to-regexp/dist/index.d.ts
new file mode 100644
index 0000000..6e5d250
--- /dev/null
+++ b/node_modules/@slack/bolt/node_modules/path-to-regexp/dist/index.d.ts
@@ -0,0 +1,127 @@
+export interface ParseOptions {
+ /**
+ * Set the default delimiter for repeat parameters. (default: `'/'`)
+ */
+ delimiter?: string;
+ /**
+ * List of characters to automatically consider prefixes when parsing.
+ */
+ prefixes?: string;
+}
+/**
+ * Parse a string for the raw tokens.
+ */
+export declare function parse(str: string, options?: ParseOptions): Token[];
+export interface TokensToFunctionOptions {
+ /**
+ * When `true` the regexp will be case sensitive. (default: `false`)
+ */
+ sensitive?: boolean;
+ /**
+ * Function for encoding input strings for output.
+ */
+ encode?: (value: string, token: Key) => string;
+ /**
+ * When `false` the function can produce an invalid (unmatched) path. (default: `true`)
+ */
+ validate?: boolean;
+}
+/**
+ * Compile a string to a template function for the path.
+ */
+export declare function compile(str: string, options?: ParseOptions & TokensToFunctionOptions): PathFunction
;
+export type PathFunction
= (data?: P) => string;
+/**
+ * Expose a method for transforming tokens into the path function.
+ */
+export declare function tokensToFunction
(tokens: Token[], options?: TokensToFunctionOptions): PathFunction
;
+export interface RegexpToFunctionOptions {
+ /**
+ * Function for decoding strings for params.
+ */
+ decode?: (value: string, token: Key) => string;
+}
+/**
+ * A match result contains data about the path match.
+ */
+export interface MatchResult
{
+ path: string;
+ index: number;
+ params: P;
+}
+/**
+ * A match is either `false` (no match) or a match result.
+ */
+export type Match
= false | MatchResult
;
+/**
+ * The match function takes a string and returns whether it matched the path.
+ */
+export type MatchFunction
= (path: string) => Match
;
+/**
+ * Create path match function from `path-to-regexp` spec.
+ */
+export declare function match
(str: Path, options?: ParseOptions & TokensToRegexpOptions & RegexpToFunctionOptions): MatchFunction
;
+/**
+ * Create a path match function from `path-to-regexp` output.
+ */
+export declare function regexpToFunction
(re: RegExp, keys: Key[], options?: RegexpToFunctionOptions): MatchFunction
;
+/**
+ * Metadata about a key.
+ */
+export interface Key {
+ name: string | number;
+ prefix: string;
+ suffix: string;
+ pattern: string;
+ modifier: string;
+}
+/**
+ * A token is a string (nothing special) or key metadata (capture group).
+ */
+export type Token = string | Key;
+export interface TokensToRegexpOptions {
+ /**
+ * When `true` the regexp will be case sensitive. (default: `false`)
+ */
+ sensitive?: boolean;
+ /**
+ * When `true` the regexp won't allow an optional trailing delimiter to match. (default: `false`)
+ */
+ strict?: boolean;
+ /**
+ * When `true` the regexp will match to the end of the string. (default: `true`)
+ */
+ end?: boolean;
+ /**
+ * When `true` the regexp will match from the beginning of the string. (default: `true`)
+ */
+ start?: boolean;
+ /**
+ * Sets the final character for non-ending optimistic matches. (default: `/`)
+ */
+ delimiter?: string;
+ /**
+ * List of characters that can also be "end" characters.
+ */
+ endsWith?: string;
+ /**
+ * Encode path tokens for use in the `RegExp`.
+ */
+ encode?: (value: string) => string;
+}
+/**
+ * Expose a function for taking tokens and returning a RegExp.
+ */
+export declare function tokensToRegexp(tokens: Token[], keys?: Key[], options?: TokensToRegexpOptions): RegExp;
+/**
+ * Supported `path-to-regexp` input types.
+ */
+export type Path = string | RegExp | Array;
+/**
+ * Normalize the given path string, returning a regular expression.
+ *
+ * An empty array can be passed in for the keys, which will hold the
+ * placeholder key descriptions. For example, using `/user/:id`, `keys` will
+ * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.
+ */
+export declare function pathToRegexp(path: Path, keys?: Key[], options?: TokensToRegexpOptions & ParseOptions): RegExp;
diff --git a/node_modules/@slack/bolt/node_modules/path-to-regexp/dist/index.js b/node_modules/@slack/bolt/node_modules/path-to-regexp/dist/index.js
new file mode 100644
index 0000000..a512e46
--- /dev/null
+++ b/node_modules/@slack/bolt/node_modules/path-to-regexp/dist/index.js
@@ -0,0 +1,410 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.pathToRegexp = exports.tokensToRegexp = exports.regexpToFunction = exports.match = exports.tokensToFunction = exports.compile = exports.parse = void 0;
+/**
+ * Tokenize input string.
+ */
+function lexer(str) {
+ var tokens = [];
+ var i = 0;
+ while (i < str.length) {
+ var char = str[i];
+ if (char === "*" || char === "+" || char === "?") {
+ tokens.push({ type: "MODIFIER", index: i, value: str[i++] });
+ continue;
+ }
+ if (char === "\\") {
+ tokens.push({ type: "ESCAPED_CHAR", index: i++, value: str[i++] });
+ continue;
+ }
+ if (char === "{") {
+ tokens.push({ type: "OPEN", index: i, value: str[i++] });
+ continue;
+ }
+ if (char === "}") {
+ tokens.push({ type: "CLOSE", index: i, value: str[i++] });
+ continue;
+ }
+ if (char === ":") {
+ var name = "";
+ var j = i + 1;
+ while (j < str.length) {
+ var code = str.charCodeAt(j);
+ if (
+ // `0-9`
+ (code >= 48 && code <= 57) ||
+ // `A-Z`
+ (code >= 65 && code <= 90) ||
+ // `a-z`
+ (code >= 97 && code <= 122) ||
+ // `_`
+ code === 95) {
+ name += str[j++];
+ continue;
+ }
+ break;
+ }
+ if (!name)
+ throw new TypeError("Missing parameter name at ".concat(i));
+ tokens.push({ type: "NAME", index: i, value: name });
+ i = j;
+ continue;
+ }
+ if (char === "(") {
+ var count = 1;
+ var pattern = "";
+ var j = i + 1;
+ if (str[j] === "?") {
+ throw new TypeError("Pattern cannot start with \"?\" at ".concat(j));
+ }
+ while (j < str.length) {
+ if (str[j] === "\\") {
+ pattern += str[j++] + str[j++];
+ continue;
+ }
+ if (str[j] === ")") {
+ count--;
+ if (count === 0) {
+ j++;
+ break;
+ }
+ }
+ else if (str[j] === "(") {
+ count++;
+ if (str[j + 1] !== "?") {
+ throw new TypeError("Capturing groups are not allowed at ".concat(j));
+ }
+ }
+ pattern += str[j++];
+ }
+ if (count)
+ throw new TypeError("Unbalanced pattern at ".concat(i));
+ if (!pattern)
+ throw new TypeError("Missing pattern at ".concat(i));
+ tokens.push({ type: "PATTERN", index: i, value: pattern });
+ i = j;
+ continue;
+ }
+ tokens.push({ type: "CHAR", index: i, value: str[i++] });
+ }
+ tokens.push({ type: "END", index: i, value: "" });
+ return tokens;
+}
+/**
+ * Parse a string for the raw tokens.
+ */
+function parse(str, options) {
+ if (options === void 0) { options = {}; }
+ var tokens = lexer(str);
+ var _a = options.prefixes, prefixes = _a === void 0 ? "./" : _a;
+ var defaultPattern = "[^".concat(escapeString(options.delimiter || "/#?"), "]+?");
+ var result = [];
+ var key = 0;
+ var i = 0;
+ var path = "";
+ var tryConsume = function (type) {
+ if (i < tokens.length && tokens[i].type === type)
+ return tokens[i++].value;
+ };
+ var mustConsume = function (type) {
+ var value = tryConsume(type);
+ if (value !== undefined)
+ return value;
+ var _a = tokens[i], nextType = _a.type, index = _a.index;
+ throw new TypeError("Unexpected ".concat(nextType, " at ").concat(index, ", expected ").concat(type));
+ };
+ var consumeText = function () {
+ var result = "";
+ var value;
+ while ((value = tryConsume("CHAR") || tryConsume("ESCAPED_CHAR"))) {
+ result += value;
+ }
+ return result;
+ };
+ while (i < tokens.length) {
+ var char = tryConsume("CHAR");
+ var name = tryConsume("NAME");
+ var pattern = tryConsume("PATTERN");
+ if (name || pattern) {
+ var prefix = char || "";
+ if (prefixes.indexOf(prefix) === -1) {
+ path += prefix;
+ prefix = "";
+ }
+ if (path) {
+ result.push(path);
+ path = "";
+ }
+ result.push({
+ name: name || key++,
+ prefix: prefix,
+ suffix: "",
+ pattern: pattern || defaultPattern,
+ modifier: tryConsume("MODIFIER") || "",
+ });
+ continue;
+ }
+ var value = char || tryConsume("ESCAPED_CHAR");
+ if (value) {
+ path += value;
+ continue;
+ }
+ if (path) {
+ result.push(path);
+ path = "";
+ }
+ var open = tryConsume("OPEN");
+ if (open) {
+ var prefix = consumeText();
+ var name_1 = tryConsume("NAME") || "";
+ var pattern_1 = tryConsume("PATTERN") || "";
+ var suffix = consumeText();
+ mustConsume("CLOSE");
+ result.push({
+ name: name_1 || (pattern_1 ? key++ : ""),
+ pattern: name_1 && !pattern_1 ? defaultPattern : pattern_1,
+ prefix: prefix,
+ suffix: suffix,
+ modifier: tryConsume("MODIFIER") || "",
+ });
+ continue;
+ }
+ mustConsume("END");
+ }
+ return result;
+}
+exports.parse = parse;
+/**
+ * Compile a string to a template function for the path.
+ */
+function compile(str, options) {
+ return tokensToFunction(parse(str, options), options);
+}
+exports.compile = compile;
+/**
+ * Expose a method for transforming tokens into the path function.
+ */
+function tokensToFunction(tokens, options) {
+ if (options === void 0) { options = {}; }
+ var reFlags = flags(options);
+ var _a = options.encode, encode = _a === void 0 ? function (x) { return x; } : _a, _b = options.validate, validate = _b === void 0 ? true : _b;
+ // Compile all the tokens into regexps.
+ var matches = tokens.map(function (token) {
+ if (typeof token === "object") {
+ return new RegExp("^(?:".concat(token.pattern, ")$"), reFlags);
+ }
+ });
+ return function (data) {
+ var path = "";
+ for (var i = 0; i < tokens.length; i++) {
+ var token = tokens[i];
+ if (typeof token === "string") {
+ path += token;
+ continue;
+ }
+ var value = data ? data[token.name] : undefined;
+ var optional = token.modifier === "?" || token.modifier === "*";
+ var repeat = token.modifier === "*" || token.modifier === "+";
+ if (Array.isArray(value)) {
+ if (!repeat) {
+ throw new TypeError("Expected \"".concat(token.name, "\" to not repeat, but got an array"));
+ }
+ if (value.length === 0) {
+ if (optional)
+ continue;
+ throw new TypeError("Expected \"".concat(token.name, "\" to not be empty"));
+ }
+ for (var j = 0; j < value.length; j++) {
+ var segment = encode(value[j], token);
+ if (validate && !matches[i].test(segment)) {
+ throw new TypeError("Expected all \"".concat(token.name, "\" to match \"").concat(token.pattern, "\", but got \"").concat(segment, "\""));
+ }
+ path += token.prefix + segment + token.suffix;
+ }
+ continue;
+ }
+ if (typeof value === "string" || typeof value === "number") {
+ var segment = encode(String(value), token);
+ if (validate && !matches[i].test(segment)) {
+ throw new TypeError("Expected \"".concat(token.name, "\" to match \"").concat(token.pattern, "\", but got \"").concat(segment, "\""));
+ }
+ path += token.prefix + segment + token.suffix;
+ continue;
+ }
+ if (optional)
+ continue;
+ var typeOfMessage = repeat ? "an array" : "a string";
+ throw new TypeError("Expected \"".concat(token.name, "\" to be ").concat(typeOfMessage));
+ }
+ return path;
+ };
+}
+exports.tokensToFunction = tokensToFunction;
+/**
+ * Create path match function from `path-to-regexp` spec.
+ */
+function match(str, options) {
+ var keys = [];
+ var re = pathToRegexp(str, keys, options);
+ return regexpToFunction(re, keys, options);
+}
+exports.match = match;
+/**
+ * Create a path match function from `path-to-regexp` output.
+ */
+function regexpToFunction(re, keys, options) {
+ if (options === void 0) { options = {}; }
+ var _a = options.decode, decode = _a === void 0 ? function (x) { return x; } : _a;
+ return function (pathname) {
+ var m = re.exec(pathname);
+ if (!m)
+ return false;
+ var path = m[0], index = m.index;
+ var params = Object.create(null);
+ var _loop_1 = function (i) {
+ if (m[i] === undefined)
+ return "continue";
+ var key = keys[i - 1];
+ if (key.modifier === "*" || key.modifier === "+") {
+ params[key.name] = m[i].split(key.prefix + key.suffix).map(function (value) {
+ return decode(value, key);
+ });
+ }
+ else {
+ params[key.name] = decode(m[i], key);
+ }
+ };
+ for (var i = 1; i < m.length; i++) {
+ _loop_1(i);
+ }
+ return { path: path, index: index, params: params };
+ };
+}
+exports.regexpToFunction = regexpToFunction;
+/**
+ * Escape a regular expression string.
+ */
+function escapeString(str) {
+ return str.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1");
+}
+/**
+ * Get the flags for a regexp from the options.
+ */
+function flags(options) {
+ return options && options.sensitive ? "" : "i";
+}
+/**
+ * Pull out keys from a regexp.
+ */
+function regexpToRegexp(path, keys) {
+ if (!keys)
+ return path;
+ var groupsRegex = /\((?:\?<(.*?)>)?(?!\?)/g;
+ var index = 0;
+ var execResult = groupsRegex.exec(path.source);
+ while (execResult) {
+ keys.push({
+ // Use parenthesized substring match if available, index otherwise
+ name: execResult[1] || index++,
+ prefix: "",
+ suffix: "",
+ modifier: "",
+ pattern: "",
+ });
+ execResult = groupsRegex.exec(path.source);
+ }
+ return path;
+}
+/**
+ * Transform an array into a regexp.
+ */
+function arrayToRegexp(paths, keys, options) {
+ var parts = paths.map(function (path) { return pathToRegexp(path, keys, options).source; });
+ return new RegExp("(?:".concat(parts.join("|"), ")"), flags(options));
+}
+/**
+ * Create a path regexp from string input.
+ */
+function stringToRegexp(path, keys, options) {
+ return tokensToRegexp(parse(path, options), keys, options);
+}
+/**
+ * Expose a function for taking tokens and returning a RegExp.
+ */
+function tokensToRegexp(tokens, keys, options) {
+ if (options === void 0) { options = {}; }
+ var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function (x) { return x; } : _d, _e = options.delimiter, delimiter = _e === void 0 ? "/#?" : _e, _f = options.endsWith, endsWith = _f === void 0 ? "" : _f;
+ var endsWithRe = "[".concat(escapeString(endsWith), "]|$");
+ var delimiterRe = "[".concat(escapeString(delimiter), "]");
+ var route = start ? "^" : "";
+ // Iterate over the tokens and create our regexp string.
+ for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {
+ var token = tokens_1[_i];
+ if (typeof token === "string") {
+ route += escapeString(encode(token));
+ }
+ else {
+ var prefix = escapeString(encode(token.prefix));
+ var suffix = escapeString(encode(token.suffix));
+ if (token.pattern) {
+ if (keys)
+ keys.push(token);
+ if (prefix || suffix) {
+ if (token.modifier === "+" || token.modifier === "*") {
+ var mod = token.modifier === "*" ? "?" : "";
+ route += "(?:".concat(prefix, "((?:").concat(token.pattern, ")(?:").concat(suffix).concat(prefix, "(?:").concat(token.pattern, "))*)").concat(suffix, ")").concat(mod);
+ }
+ else {
+ route += "(?:".concat(prefix, "(").concat(token.pattern, ")").concat(suffix, ")").concat(token.modifier);
+ }
+ }
+ else {
+ if (token.modifier === "+" || token.modifier === "*") {
+ route += "((?:".concat(token.pattern, ")").concat(token.modifier, ")");
+ }
+ else {
+ route += "(".concat(token.pattern, ")").concat(token.modifier);
+ }
+ }
+ }
+ else {
+ route += "(?:".concat(prefix).concat(suffix, ")").concat(token.modifier);
+ }
+ }
+ }
+ if (end) {
+ if (!strict)
+ route += "".concat(delimiterRe, "?");
+ route += !options.endsWith ? "$" : "(?=".concat(endsWithRe, ")");
+ }
+ else {
+ var endToken = tokens[tokens.length - 1];
+ var isEndDelimited = typeof endToken === "string"
+ ? delimiterRe.indexOf(endToken[endToken.length - 1]) > -1
+ : endToken === undefined;
+ if (!strict) {
+ route += "(?:".concat(delimiterRe, "(?=").concat(endsWithRe, "))?");
+ }
+ if (!isEndDelimited) {
+ route += "(?=".concat(delimiterRe, "|").concat(endsWithRe, ")");
+ }
+ }
+ return new RegExp(route, flags(options));
+}
+exports.tokensToRegexp = tokensToRegexp;
+/**
+ * Normalize the given path string, returning a regular expression.
+ *
+ * An empty array can be passed in for the keys, which will hold the
+ * placeholder key descriptions. For example, using `/user/:id`, `keys` will
+ * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.
+ */
+function pathToRegexp(path, keys, options) {
+ if (path instanceof RegExp)
+ return regexpToRegexp(path, keys);
+ if (Array.isArray(path))
+ return arrayToRegexp(path, keys, options);
+ return stringToRegexp(path, keys, options);
+}
+exports.pathToRegexp = pathToRegexp;
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/@slack/bolt/node_modules/path-to-regexp/dist/index.js.map b/node_modules/@slack/bolt/node_modules/path-to-regexp/dist/index.js.map
new file mode 100644
index 0000000..0b36b8e
--- /dev/null
+++ b/node_modules/@slack/bolt/node_modules/path-to-regexp/dist/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Tokenizer results.\n */\ninterface LexToken {\n type:\n | \"OPEN\"\n | \"CLOSE\"\n | \"PATTERN\"\n | \"NAME\"\n | \"CHAR\"\n | \"ESCAPED_CHAR\"\n | \"MODIFIER\"\n | \"END\";\n index: number;\n value: string;\n}\n\n/**\n * Tokenize input string.\n */\nfunction lexer(str: string): LexToken[] {\n const tokens: LexToken[] = [];\n let i = 0;\n\n while (i < str.length) {\n const char = str[i];\n\n if (char === \"*\" || char === \"+\" || char === \"?\") {\n tokens.push({ type: \"MODIFIER\", index: i, value: str[i++] });\n continue;\n }\n\n if (char === \"\\\\\") {\n tokens.push({ type: \"ESCAPED_CHAR\", index: i++, value: str[i++] });\n continue;\n }\n\n if (char === \"{\") {\n tokens.push({ type: \"OPEN\", index: i, value: str[i++] });\n continue;\n }\n\n if (char === \"}\") {\n tokens.push({ type: \"CLOSE\", index: i, value: str[i++] });\n continue;\n }\n\n if (char === \":\") {\n let name = \"\";\n let j = i + 1;\n\n while (j < str.length) {\n const code = str.charCodeAt(j);\n\n if (\n // `0-9`\n (code >= 48 && code <= 57) ||\n // `A-Z`\n (code >= 65 && code <= 90) ||\n // `a-z`\n (code >= 97 && code <= 122) ||\n // `_`\n code === 95\n ) {\n name += str[j++];\n continue;\n }\n\n break;\n }\n\n if (!name) throw new TypeError(`Missing parameter name at ${i}`);\n\n tokens.push({ type: \"NAME\", index: i, value: name });\n i = j;\n continue;\n }\n\n if (char === \"(\") {\n let count = 1;\n let pattern = \"\";\n let j = i + 1;\n\n if (str[j] === \"?\") {\n throw new TypeError(`Pattern cannot start with \"?\" at ${j}`);\n }\n\n while (j < str.length) {\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n } else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n throw new TypeError(`Capturing groups are not allowed at ${j}`);\n }\n }\n\n pattern += str[j++];\n }\n\n if (count) throw new TypeError(`Unbalanced pattern at ${i}`);\n if (!pattern) throw new TypeError(`Missing pattern at ${i}`);\n\n tokens.push({ type: \"PATTERN\", index: i, value: pattern });\n i = j;\n continue;\n }\n\n tokens.push({ type: \"CHAR\", index: i, value: str[i++] });\n }\n\n tokens.push({ type: \"END\", index: i, value: \"\" });\n\n return tokens;\n}\n\nexport interface ParseOptions {\n /**\n * Set the default delimiter for repeat parameters. (default: `'/'`)\n */\n delimiter?: string;\n /**\n * List of characters to automatically consider prefixes when parsing.\n */\n prefixes?: string;\n}\n\n/**\n * Parse a string for the raw tokens.\n */\nexport function parse(str: string, options: ParseOptions = {}): Token[] {\n const tokens = lexer(str);\n const { prefixes = \"./\" } = options;\n const defaultPattern = `[^${escapeString(options.delimiter || \"/#?\")}]+?`;\n const result: Token[] = [];\n let key = 0;\n let i = 0;\n let path = \"\";\n\n const tryConsume = (type: LexToken[\"type\"]): string | undefined => {\n if (i < tokens.length && tokens[i].type === type) return tokens[i++].value;\n };\n\n const mustConsume = (type: LexToken[\"type\"]): string => {\n const value = tryConsume(type);\n if (value !== undefined) return value;\n const { type: nextType, index } = tokens[i];\n throw new TypeError(`Unexpected ${nextType} at ${index}, expected ${type}`);\n };\n\n const consumeText = (): string => {\n let result = \"\";\n let value: string | undefined;\n while ((value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\"))) {\n result += value;\n }\n return result;\n };\n\n while (i < tokens.length) {\n const char = tryConsume(\"CHAR\");\n const name = tryConsume(\"NAME\");\n const pattern = tryConsume(\"PATTERN\");\n\n if (name || pattern) {\n let prefix = char || \"\";\n\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n\n if (path) {\n result.push(path);\n path = \"\";\n }\n\n result.push({\n name: name || key++,\n prefix,\n suffix: \"\",\n pattern: pattern || defaultPattern,\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n\n const value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n\n if (path) {\n result.push(path);\n path = \"\";\n }\n\n const open = tryConsume(\"OPEN\");\n if (open) {\n const prefix = consumeText();\n const name = tryConsume(\"NAME\") || \"\";\n const pattern = tryConsume(\"PATTERN\") || \"\";\n const suffix = consumeText();\n\n mustConsume(\"CLOSE\");\n\n result.push({\n name: name || (pattern ? key++ : \"\"),\n pattern: name && !pattern ? defaultPattern : pattern,\n prefix,\n suffix,\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n\n mustConsume(\"END\");\n }\n\n return result;\n}\n\nexport interface TokensToFunctionOptions {\n /**\n * When `true` the regexp will be case sensitive. (default: `false`)\n */\n sensitive?: boolean;\n /**\n * Function for encoding input strings for output.\n */\n encode?: (value: string, token: Key) => string;\n /**\n * When `false` the function can produce an invalid (unmatched) path. (default: `true`)\n */\n validate?: boolean;\n}\n\n/**\n * Compile a string to a template function for the path.\n */\nexport function compile(\n str: string,\n options?: ParseOptions & TokensToFunctionOptions,\n) {\n return tokensToFunction
(parse(str, options), options);\n}\n\nexport type PathFunction
= (data?: P) => string;\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nexport function tokensToFunction
(\n tokens: Token[],\n options: TokensToFunctionOptions = {},\n): PathFunction
{\n const reFlags = flags(options);\n const { encode = (x: string) => x, validate = true } = options;\n\n // Compile all the tokens into regexps.\n const matches = tokens.map((token) => {\n if (typeof token === \"object\") {\n return new RegExp(`^(?:${token.pattern})$`, reFlags);\n }\n });\n\n return (data: Record | null | undefined) => {\n let path = \"\";\n\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n\n if (typeof token === \"string\") {\n path += token;\n continue;\n }\n\n const value = data ? data[token.name] : undefined;\n const optional = token.modifier === \"?\" || token.modifier === \"*\";\n const repeat = token.modifier === \"*\" || token.modifier === \"+\";\n\n if (Array.isArray(value)) {\n if (!repeat) {\n throw new TypeError(\n `Expected \"${token.name}\" to not repeat, but got an array`,\n );\n }\n\n if (value.length === 0) {\n if (optional) continue;\n\n throw new TypeError(`Expected \"${token.name}\" to not be empty`);\n }\n\n for (let j = 0; j < value.length; j++) {\n const segment = encode(value[j], token);\n\n if (validate && !(matches[i] as RegExp).test(segment)) {\n throw new TypeError(\n `Expected all \"${token.name}\" to match \"${token.pattern}\", but got \"${segment}\"`,\n );\n }\n\n path += token.prefix + segment + token.suffix;\n }\n\n continue;\n }\n\n if (typeof value === \"string\" || typeof value === \"number\") {\n const segment = encode(String(value), token);\n\n if (validate && !(matches[i] as RegExp).test(segment)) {\n throw new TypeError(\n `Expected \"${token.name}\" to match \"${token.pattern}\", but got \"${segment}\"`,\n );\n }\n\n path += token.prefix + segment + token.suffix;\n continue;\n }\n\n if (optional) continue;\n\n const typeOfMessage = repeat ? \"an array\" : \"a string\";\n throw new TypeError(`Expected \"${token.name}\" to be ${typeOfMessage}`);\n }\n\n return path;\n };\n}\n\nexport interface RegexpToFunctionOptions {\n /**\n * Function for decoding strings for params.\n */\n decode?: (value: string, token: Key) => string;\n}\n\n/**\n * A match result contains data about the path match.\n */\nexport interface MatchResult {\n path: string;\n index: number;\n params: P;\n}\n\n/**\n * A match is either `false` (no match) or a match result.\n */\nexport type Match
= false | MatchResult
;\n\n/**\n * The match function takes a string and returns whether it matched the path.\n */\nexport type MatchFunction
= (\n path: string,\n) => Match
;\n\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nexport function match
(\n str: Path,\n options?: ParseOptions & TokensToRegexpOptions & RegexpToFunctionOptions,\n) {\n const keys: Key[] = [];\n const re = pathToRegexp(str, keys, options);\n return regexpToFunction
(re, keys, options);\n}\n\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nexport function regexpToFunction
(\n re: RegExp,\n keys: Key[],\n options: RegexpToFunctionOptions = {},\n): MatchFunction
{\n const { decode = (x: string) => x } = options;\n\n return function (pathname: string) {\n const m = re.exec(pathname);\n if (!m) return false;\n\n const { 0: path, index } = m;\n const params = Object.create(null);\n\n for (let i = 1; i < m.length; i++) {\n if (m[i] === undefined) continue;\n\n const key = keys[i - 1];\n\n if (key.modifier === \"*\" || key.modifier === \"+\") {\n params[key.name] = m[i].split(key.prefix + key.suffix).map((value) => {\n return decode(value, key);\n });\n } else {\n params[key.name] = decode(m[i], key);\n }\n }\n\n return { path, index, params };\n };\n}\n\n/**\n * Escape a regular expression string.\n */\nfunction escapeString(str: string) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\n\n/**\n * Get the flags for a regexp from the options.\n */\nfunction flags(options?: { sensitive?: boolean }) {\n return options && options.sensitive ? \"\" : \"i\";\n}\n\n/**\n * Metadata about a key.\n */\nexport interface Key {\n name: string | number;\n prefix: string;\n suffix: string;\n pattern: string;\n modifier: string;\n}\n\n/**\n * A token is a string (nothing special) or key metadata (capture group).\n */\nexport type Token = string | Key;\n\n/**\n * Pull out keys from a regexp.\n */\nfunction regexpToRegexp(path: RegExp, keys?: Key[]): RegExp {\n if (!keys) return path;\n\n const groupsRegex = /\\((?:\\?<(.*?)>)?(?!\\?)/g;\n\n let index = 0;\n let execResult = groupsRegex.exec(path.source);\n while (execResult) {\n keys.push({\n // Use parenthesized substring match if available, index otherwise\n name: execResult[1] || index++,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\",\n });\n execResult = groupsRegex.exec(path.source);\n }\n\n return path;\n}\n\n/**\n * Transform an array into a regexp.\n */\nfunction arrayToRegexp(\n paths: Array,\n keys?: Key[],\n options?: TokensToRegexpOptions & ParseOptions,\n): RegExp {\n const parts = paths.map((path) => pathToRegexp(path, keys, options).source);\n return new RegExp(`(?:${parts.join(\"|\")})`, flags(options));\n}\n\n/**\n * Create a path regexp from string input.\n */\nfunction stringToRegexp(\n path: string,\n keys?: Key[],\n options?: TokensToRegexpOptions & ParseOptions,\n) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\n\nexport interface TokensToRegexpOptions {\n /**\n * When `true` the regexp will be case sensitive. (default: `false`)\n */\n sensitive?: boolean;\n /**\n * When `true` the regexp won't allow an optional trailing delimiter to match. (default: `false`)\n */\n strict?: boolean;\n /**\n * When `true` the regexp will match to the end of the string. (default: `true`)\n */\n end?: boolean;\n /**\n * When `true` the regexp will match from the beginning of the string. (default: `true`)\n */\n start?: boolean;\n /**\n * Sets the final character for non-ending optimistic matches. (default: `/`)\n */\n delimiter?: string;\n /**\n * List of characters that can also be \"end\" characters.\n */\n endsWith?: string;\n /**\n * Encode path tokens for use in the `RegExp`.\n */\n encode?: (value: string) => string;\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n */\nexport function tokensToRegexp(\n tokens: Token[],\n keys?: Key[],\n options: TokensToRegexpOptions = {},\n) {\n const {\n strict = false,\n start = true,\n end = true,\n encode = (x: string) => x,\n delimiter = \"/#?\",\n endsWith = \"\",\n } = options;\n const endsWithRe = `[${escapeString(endsWith)}]|$`;\n const delimiterRe = `[${escapeString(delimiter)}]`;\n let route = start ? \"^\" : \"\";\n\n // Iterate over the tokens and create our regexp string.\n for (const token of tokens) {\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n } else {\n const prefix = escapeString(encode(token.prefix));\n const suffix = escapeString(encode(token.suffix));\n\n if (token.pattern) {\n if (keys) keys.push(token);\n\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n const mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += `(?:${prefix}((?:${token.pattern})(?:${suffix}${prefix}(?:${token.pattern}))*)${suffix})${mod}`;\n } else {\n route += `(?:${prefix}(${token.pattern})${suffix})${token.modifier}`;\n }\n } else {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n route += `((?:${token.pattern})${token.modifier})`;\n } else {\n route += `(${token.pattern})${token.modifier}`;\n }\n }\n } else {\n route += `(?:${prefix}${suffix})${token.modifier}`;\n }\n }\n }\n\n if (end) {\n if (!strict) route += `${delimiterRe}?`;\n\n route += !options.endsWith ? \"$\" : `(?=${endsWithRe})`;\n } else {\n const endToken = tokens[tokens.length - 1];\n const isEndDelimited =\n typeof endToken === \"string\"\n ? delimiterRe.indexOf(endToken[endToken.length - 1]) > -1\n : endToken === undefined;\n\n if (!strict) {\n route += `(?:${delimiterRe}(?=${endsWithRe}))?`;\n }\n\n if (!isEndDelimited) {\n route += `(?=${delimiterRe}|${endsWithRe})`;\n }\n }\n\n return new RegExp(route, flags(options));\n}\n\n/**\n * Supported `path-to-regexp` input types.\n */\nexport type Path = string | RegExp | Array;\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n */\nexport function pathToRegexp(\n path: Path,\n keys?: Key[],\n options?: TokensToRegexpOptions & ParseOptions,\n) {\n if (path instanceof RegExp) return regexpToRegexp(path, keys);\n if (Array.isArray(path)) return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\n"]}
\ No newline at end of file
diff --git a/node_modules/@slack/bolt/node_modules/path-to-regexp/package.json b/node_modules/@slack/bolt/node_modules/path-to-regexp/package.json
new file mode 100644
index 0000000..df50fe3
--- /dev/null
+++ b/node_modules/@slack/bolt/node_modules/path-to-regexp/package.json
@@ -0,0 +1,62 @@
+{
+ "name": "path-to-regexp",
+ "version": "6.2.2",
+ "description": "Express style path to RegExp utility",
+ "keywords": [
+ "express",
+ "regexp",
+ "route",
+ "routing"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/pillarjs/path-to-regexp.git"
+ },
+ "license": "MIT",
+ "sideEffects": false,
+ "main": "dist/index.js",
+ "module": "dist.es2015/index.js",
+ "typings": "dist/index.d.ts",
+ "files": [
+ "dist.es2015/",
+ "dist/"
+ ],
+ "scripts": {
+ "build": "ts-scripts build",
+ "format": "ts-scripts format",
+ "lint": "ts-scripts lint",
+ "prepare": "ts-scripts install && npm run build",
+ "size": "size-limit",
+ "specs": "ts-scripts specs",
+ "test": "ts-scripts test && npm run size"
+ },
+ "devDependencies": {
+ "@borderless/ts-scripts": "^0.15.0",
+ "@size-limit/preset-small-lib": "^11.1.2",
+ "@types/node": "^20.4.9",
+ "@types/semver": "^7.3.1",
+ "@vitest/coverage-v8": "^1.4.0",
+ "semver": "^7.3.5",
+ "size-limit": "^11.1.2",
+ "typescript": "^5.1.6"
+ },
+ "publishConfig": {
+ "access": "public"
+ },
+ "size-limit": [
+ {
+ "path": "dist.es2015/index.js",
+ "limit": "2 kB"
+ }
+ ],
+ "ts-scripts": {
+ "dist": [
+ "dist",
+ "dist.es2015"
+ ],
+ "project": [
+ "tsconfig.build.json",
+ "tsconfig.es2015.json"
+ ]
+ }
+}
diff --git a/node_modules/@slack/bolt/package.json b/node_modules/@slack/bolt/package.json
index ccb52e4..ece82f8 100644
--- a/node_modules/@slack/bolt/package.json
+++ b/node_modules/@slack/bolt/package.json
@@ -1,6 +1,6 @@
{
"name": "@slack/bolt",
- "version": "3.12.1",
+ "version": "3.19.0",
"description": "A framework for building Slack apps, fast.",
"author": "Slack Technologies, LLC",
"license": "MIT",
@@ -32,7 +32,6 @@
"mocha": "TS_NODE_PROJECT=tsconfig.json nyc mocha --config .mocharc.json \"src/**/*.spec.ts\"",
"test": "npm run lint && npm run mocha && npm run test:types",
"test:types": "tsd",
- "coverage": "codecov",
"watch": "npx nodemon --watch 'src' --ext 'ts' --exec npm run build"
},
"repository": "slackapi/bolt",
@@ -41,17 +40,17 @@
"url": "https://github.com/slackapi/bolt-js/issues"
},
"dependencies": {
- "@slack/logger": "^3.0.0",
- "@slack/oauth": "^2.5.1",
- "@slack/socket-mode": "^1.3.0",
- "@slack/types": "^2.7.0",
- "@slack/web-api": "^6.7.1",
+ "@slack/logger": "^4.0.0",
+ "@slack/oauth": "^2.6.2",
+ "@slack/socket-mode": "^1.3.3",
+ "@slack/types": "^2.11.0",
+ "@slack/web-api": "^6.11.2",
"@types/express": "^4.16.1",
- "@types/node": ">=12",
"@types/promise.allsettled": "^1.0.3",
"@types/tsscmp": "^1.0.0",
- "axios": "^0.26.1",
+ "axios": "^1.6.0",
"express": "^4.16.4",
+ "path-to-regexp": "^6.2.1",
"please-upgrade-node": "^3.2.0",
"promise.allsettled": "^1.0.2",
"raw-body": "^2.3.3",
@@ -59,22 +58,22 @@
},
"devDependencies": {
"@types/chai": "^4.1.7",
- "@types/mocha": "^5.2.6",
+ "@types/mocha": "^10.0.1",
+ "@types/node": "20.14.2",
"@types/sinon": "^7.0.11",
"@typescript-eslint/eslint-plugin": "^4.4.1",
"@typescript-eslint/parser": "^4.4.0",
- "chai": "^4.2.0",
- "codecov": "^3.2.0",
+ "chai": "~4.3.0",
"eslint": "^7.26.0",
"eslint-config-airbnb-base": "^14.2.1",
"eslint-config-airbnb-typescript": "^12.3.1",
- "eslint-plugin-import": "^2.22.1",
+ "eslint-plugin-import": "^2.28.0",
"eslint-plugin-jsdoc": "^30.6.1",
"eslint-plugin-jsx-a11y": "^6.5.1",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-react": "^7.29.3",
"eslint-plugin-react-hooks": "^4.3.0",
- "mocha": "^9.1.3",
+ "mocha": "^10.2.0",
"nyc": "^15.1.0",
"rewiremock": "^3.13.4",
"shx": "^0.3.2",
@@ -82,7 +81,7 @@
"source-map-support": "^0.5.12",
"ts-node": "^8.1.0",
"tsd": "^0.22.0",
- "typescript": "^4.1.0"
+ "typescript": "4.8.4"
},
"tsd": {
"directory": "types-tests"
diff --git a/node_modules/@slack/logger/README.md b/node_modules/@slack/logger/README.md
index e69de29..465f209 100644
--- a/node_modules/@slack/logger/README.md
+++ b/node_modules/@slack/logger/README.md
@@ -0,0 +1,33 @@
+# Slack Logger
+
+The `@slack/logger` package is intended to be used as a simple logging interface that supports verbosity levels.
+
+## Requirements
+
+This package supports Node v18 and higher. It's highly recommended to use [the latest LTS version of
+node](https://github.com/nodejs/Release#release-schedule), and the documentation is written using syntax and features
+from that version.
+
+## Installation
+
+```shell
+$ npm install @slack/logger
+```
+
+## Usage
+
+This package exports a `ConsoleLogger` class, a generic `Logger` interface and a `LogLevel` enum.
+The source code is short (~150 lines of code), so check out `src/index.ts` for details, but the `ConsoleLogger` API
+mimics the default node `console` API with three additions:
+
+- `getLevel()`: returns the currently-specific `LogLevel` of the logger.
+- `setLevel(LogLevel)`: sets the `LogLevel` of the logger.
+- `setName(string)`: sets a prefix to display in logs. Useful if you have multiple loggers active.
+
+## Getting Help
+
+If you get stuck, we're here to help. The following are the best ways to get assistance working through your issue:
+
+ * [Issue Tracker](http://github.com/slackapi/node-slack-sdk/issues) for questions, feature requests, bug reports and
+ general discussion related to this package. Try searching before you create a new issue.
+ * [Email us](mailto:developers@slack.com) in Slack developer support: `developers@slack.com`
diff --git a/node_modules/@slack/logger/dist/index.d.ts b/node_modules/@slack/logger/dist/index.d.ts
index d658309..f690bc0 100644
--- a/node_modules/@slack/logger/dist/index.d.ts
+++ b/node_modules/@slack/logger/dist/index.d.ts
@@ -13,32 +13,27 @@ export declare enum LogLevel {
export interface Logger {
/**
* Output debug message
- *
* @param msg any data to log
*/
debug(...msg: any[]): void;
/**
* Output info message
- *
* @param msg any data to log
*/
info(...msg: any[]): void;
/**
* Output warn message
- *
* @param msg any data to log
*/
warn(...msg: any[]): void;
/**
* Output error message
- *
* @param msg any data to log
*/
error(...msg: any[]): void;
/**
* This disables all logging below the given level, so that after a log.setLevel("warn") call log.warn("something")
* or log.error("something") will output messages, but log.info("something") will not.
- *
* @param level as a string, like 'error' (case-insensitive)
*/
setLevel(level: LogLevel): void;
@@ -49,7 +44,6 @@ export interface Logger {
/**
* This allows the instance to be named so that they can easily be filtered when many loggers are sending output
* to the same destination.
- *
* @param name as a string, will be output with every log after the level
*/
setName(name: string): void;
diff --git a/node_modules/@slack/logger/dist/index.d.ts.map b/node_modules/@slack/logger/dist/index.d.ts.map
index 97208c0..1de84bb 100644
--- a/node_modules/@slack/logger/dist/index.d.ts.map
+++ b/node_modules/@slack/logger/dist/index.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3B;;;;OAIG;IACH,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE1B;;;;OAIG;IACH,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE1B;;;;OAIG;IACH,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAEhC;;OAEG;IACH,QAAQ,IAAI,QAAQ,CAAC;IAErB;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM;IAC1C,wBAAwB;IACxB,OAAO,CAAC,KAAK,CAAW;IACxB,WAAW;IACX,OAAO,CAAC,IAAI,CAAS;IACrB,uCAAuC;IACvC,OAAO,CAAC,MAAM,CAAC,MAAM,CAMhB;IACL,+DAA+D;IAC/D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAKrB;;IAOK,QAAQ,IAAI,QAAQ;IAI3B;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAItC;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACI,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAKjC;;OAEG;IACI,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAKhC;;OAEG;IACI,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAKhC;;OAEG;IACI,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAMjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;CAGnC"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;OAGG;IAEH,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3B;;;OAGG;IAEH,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE1B;;;OAGG;IAEH,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE1B;;;OAGG;IAEH,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAEhC;;OAEG;IACH,QAAQ,IAAI,QAAQ,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM;IAC1C,wBAAwB;IACxB,OAAO,CAAC,KAAK,CAAW;IAExB,WAAW;IACX,OAAO,CAAC,IAAI,CAAS;IAErB,uCAAuC;IACvC,OAAO,CAAC,MAAM,CAAC,MAAM,CAIhB;IAEL,+DAA+D;IAC/D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAKrB;;IAOK,QAAQ,IAAI,QAAQ;IAI3B;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAItC;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IAEI,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAMjC;;OAEG;IAEI,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAMhC;;OAEG;IAEI,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAMhC;;OAEG;IAEI,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAMjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;CAGnC"}
\ No newline at end of file
diff --git a/node_modules/@slack/logger/dist/index.js b/node_modules/@slack/logger/dist/index.js
index bec82b0..8d3de12 100644
--- a/node_modules/@slack/logger/dist/index.js
+++ b/node_modules/@slack/logger/dist/index.js
@@ -1,4 +1,5 @@
"use strict";
+/* eslint-disable no-console */
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConsoleLogger = exports.LogLevel = void 0;
/**
@@ -37,6 +38,7 @@ class ConsoleLogger {
/**
* Log a debug message
*/
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
debug(...msg) {
if (ConsoleLogger.isMoreOrEqualSevere(LogLevel.DEBUG, this.level)) {
console.debug(ConsoleLogger.labels.get(LogLevel.DEBUG), this.name, ...msg);
@@ -45,6 +47,7 @@ class ConsoleLogger {
/**
* Log an info message
*/
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
info(...msg) {
if (ConsoleLogger.isMoreOrEqualSevere(LogLevel.INFO, this.level)) {
console.info(ConsoleLogger.labels.get(LogLevel.INFO), this.name, ...msg);
@@ -53,6 +56,7 @@ class ConsoleLogger {
/**
* Log a warning message
*/
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
warn(...msg) {
if (ConsoleLogger.isMoreOrEqualSevere(LogLevel.WARN, this.level)) {
console.warn(ConsoleLogger.labels.get(LogLevel.WARN), this.name, ...msg);
@@ -61,6 +65,7 @@ class ConsoleLogger {
/**
* Log an error message
*/
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
error(...msg) {
if (ConsoleLogger.isMoreOrEqualSevere(LogLevel.ERROR, this.level)) {
console.error(ConsoleLogger.labels.get(LogLevel.ERROR), this.name, ...msg);
@@ -77,9 +82,7 @@ exports.ConsoleLogger = ConsoleLogger;
/** Map of labels for each log level */
ConsoleLogger.labels = (() => {
const entries = Object.entries(LogLevel);
- const map = entries.map(([key, value]) => {
- return [value, `[${key}] `];
- });
+ const map = entries.map(([key, value]) => [value, `[${key}] `]);
return new Map(map);
})();
/** Map of severity as comparable numbers for each log level */
diff --git a/node_modules/@slack/logger/dist/index.js.map b/node_modules/@slack/logger/dist/index.js.map
index 4a3f0f5..095d8a1 100644
--- a/node_modules/@slack/logger/dist/index.js.map
+++ b/node_modules/@slack/logger/dist/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@slack/logger/package.json b/node_modules/@slack/logger/package.json
index 29b2fa6..71c62a7 100644
--- a/node_modules/@slack/logger/package.json
+++ b/node_modules/@slack/logger/package.json
@@ -1,8 +1,8 @@
{
"name": "@slack/logger",
- "version": "3.0.0",
+ "version": "4.0.0",
"description": "Logging utility used by Node Slack SDK",
- "author": "Slack Technologies, Inc.",
+ "author": "Slack Technologies, LLC",
"license": "MIT",
"keywords": [
"slack",
@@ -14,8 +14,8 @@
"dist/**/*"
],
"engines": {
- "node": ">= 12.13.0",
- "npm": ">= 6.12.0"
+ "node": ">= 18",
+ "npm": ">= 8.6.0"
},
"repository": "slackapi/node-slack-sdk",
"homepage": "https://slack.dev/node-slack-sdk",
@@ -28,25 +28,36 @@
"scripts": {
"prepare": "npm run build",
"build": "npm run build:clean && tsc",
- "build:clean": "shx rm -rf ./dist",
- "lint": "tslint --project .",
- "test": "npm run build && nyc mocha --config .mocharc.json src/*.spec.js",
+ "build:clean": "shx rm -rf ./dist ./coverage ./.nyc_output",
+ "lint": "eslint --ext .ts src",
+ "mocha": "mocha --config .mocharc.json src/*.spec.js",
+ "test:unit": "npm run build && npm run mocha",
+ "test": "npm run lint && npm run test:unit",
+ "coverage": "npm run build && nyc --reporter=text-summary npm run mocha",
"ref-docs:model": "api-extractor run"
},
"dependencies": {
- "@types/node": ">=12.0.0"
+ "@types/node": ">=18.0.0"
},
"devDependencies": {
- "@microsoft/api-extractor": "^7.3.4",
- "@types/chai": "^4.1.7",
- "@types/mocha": "^5.2.6",
- "chai": "^4.2.0",
- "mocha": "^6.1.4",
- "nyc": "^14.1.1",
+ "@microsoft/api-extractor": "^7.36.4",
+ "@typescript-eslint/eslint-plugin": "^6.4.1",
+ "@typescript-eslint/parser": "^6.4.0",
+ "@types/chai": "^4.3.5",
+ "@types/mocha": "^10.0.1",
+ "chai": "^4.3.8",
+ "eslint": "^8.47.0",
+ "eslint-config-airbnb-base": "^15.0.0",
+ "eslint-config-airbnb-typescript": "^17.1.0",
+ "eslint-plugin-import": "^2.28.1",
+ "eslint-plugin-jsdoc": "^46.5.0",
+ "eslint-plugin-node": "^11.1.0",
+ "mocha": "^10.2.0",
+ "nyc": "^15.1.0",
"shx": "^0.3.2",
"ts-node": "^8.2.0",
- "tslint": "^5.13.1",
- "tslint-config-airbnb": "^5.11.1",
+ "sinon": "^15.2.0",
+ "source-map-support": "^0.5.21",
"typescript": "^4.1.0"
}
}
diff --git a/node_modules/@slack/oauth/node_modules/@slack/logger/README.md b/node_modules/@slack/oauth/node_modules/@slack/logger/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/node_modules/@slack/oauth/node_modules/@slack/logger/dist/index.d.ts b/node_modules/@slack/oauth/node_modules/@slack/logger/dist/index.d.ts
new file mode 100644
index 0000000..d658309
--- /dev/null
+++ b/node_modules/@slack/oauth/node_modules/@slack/logger/dist/index.d.ts
@@ -0,0 +1,100 @@
+/**
+ * Severity levels for log entries
+ */
+export declare enum LogLevel {
+ ERROR = "error",
+ WARN = "warn",
+ INFO = "info",
+ DEBUG = "debug"
+}
+/**
+ * Interface for objects where objects in this package's logs can be sent (can be used as `logger` option).
+ */
+export interface Logger {
+ /**
+ * Output debug message
+ *
+ * @param msg any data to log
+ */
+ debug(...msg: any[]): void;
+ /**
+ * Output info message
+ *
+ * @param msg any data to log
+ */
+ info(...msg: any[]): void;
+ /**
+ * Output warn message
+ *
+ * @param msg any data to log
+ */
+ warn(...msg: any[]): void;
+ /**
+ * Output error message
+ *
+ * @param msg any data to log
+ */
+ error(...msg: any[]): void;
+ /**
+ * This disables all logging below the given level, so that after a log.setLevel("warn") call log.warn("something")
+ * or log.error("something") will output messages, but log.info("something") will not.
+ *
+ * @param level as a string, like 'error' (case-insensitive)
+ */
+ setLevel(level: LogLevel): void;
+ /**
+ * Return the current LogLevel.
+ */
+ getLevel(): LogLevel;
+ /**
+ * This allows the instance to be named so that they can easily be filtered when many loggers are sending output
+ * to the same destination.
+ *
+ * @param name as a string, will be output with every log after the level
+ */
+ setName(name: string): void;
+}
+/**
+ * Default logger which logs to stdout and stderr
+ */
+export declare class ConsoleLogger implements Logger {
+ /** Setting for level */
+ private level;
+ /** Name */
+ private name;
+ /** Map of labels for each log level */
+ private static labels;
+ /** Map of severity as comparable numbers for each log level */
+ private static severity;
+ constructor();
+ getLevel(): LogLevel;
+ /**
+ * Sets the instance's log level so that only messages which are equal or more severe are output to the console.
+ */
+ setLevel(level: LogLevel): void;
+ /**
+ * Set the instance's name, which will appear on each log line before the message.
+ */
+ setName(name: string): void;
+ /**
+ * Log a debug message
+ */
+ debug(...msg: any[]): void;
+ /**
+ * Log an info message
+ */
+ info(...msg: any[]): void;
+ /**
+ * Log a warning message
+ */
+ warn(...msg: any[]): void;
+ /**
+ * Log an error message
+ */
+ error(...msg: any[]): void;
+ /**
+ * Helper to compare two log levels and determine if a is equal or more severe than b
+ */
+ private static isMoreOrEqualSevere;
+}
+//# sourceMappingURL=index.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@slack/oauth/node_modules/@slack/logger/dist/index.d.ts.map b/node_modules/@slack/oauth/node_modules/@slack/logger/dist/index.d.ts.map
new file mode 100644
index 0000000..97208c0
--- /dev/null
+++ b/node_modules/@slack/oauth/node_modules/@slack/logger/dist/index.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3B;;;;OAIG;IACH,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE1B;;;;OAIG;IACH,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE1B;;;;OAIG;IACH,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAEhC;;OAEG;IACH,QAAQ,IAAI,QAAQ,CAAC;IAErB;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM;IAC1C,wBAAwB;IACxB,OAAO,CAAC,KAAK,CAAW;IACxB,WAAW;IACX,OAAO,CAAC,IAAI,CAAS;IACrB,uCAAuC;IACvC,OAAO,CAAC,MAAM,CAAC,MAAM,CAMhB;IACL,+DAA+D;IAC/D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAKrB;;IAOK,QAAQ,IAAI,QAAQ;IAI3B;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAItC;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACI,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAKjC;;OAEG;IACI,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAKhC;;OAEG;IACI,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAKhC;;OAEG;IACI,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAMjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;CAGnC"}
\ No newline at end of file
diff --git a/node_modules/@slack/oauth/node_modules/@slack/logger/dist/index.js b/node_modules/@slack/oauth/node_modules/@slack/logger/dist/index.js
new file mode 100644
index 0000000..bec82b0
--- /dev/null
+++ b/node_modules/@slack/oauth/node_modules/@slack/logger/dist/index.js
@@ -0,0 +1,92 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ConsoleLogger = exports.LogLevel = void 0;
+/**
+ * Severity levels for log entries
+ */
+var LogLevel;
+(function (LogLevel) {
+ LogLevel["ERROR"] = "error";
+ LogLevel["WARN"] = "warn";
+ LogLevel["INFO"] = "info";
+ LogLevel["DEBUG"] = "debug";
+})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
+/**
+ * Default logger which logs to stdout and stderr
+ */
+class ConsoleLogger {
+ constructor() {
+ this.level = LogLevel.INFO;
+ this.name = '';
+ }
+ getLevel() {
+ return this.level;
+ }
+ /**
+ * Sets the instance's log level so that only messages which are equal or more severe are output to the console.
+ */
+ setLevel(level) {
+ this.level = level;
+ }
+ /**
+ * Set the instance's name, which will appear on each log line before the message.
+ */
+ setName(name) {
+ this.name = name;
+ }
+ /**
+ * Log a debug message
+ */
+ debug(...msg) {
+ if (ConsoleLogger.isMoreOrEqualSevere(LogLevel.DEBUG, this.level)) {
+ console.debug(ConsoleLogger.labels.get(LogLevel.DEBUG), this.name, ...msg);
+ }
+ }
+ /**
+ * Log an info message
+ */
+ info(...msg) {
+ if (ConsoleLogger.isMoreOrEqualSevere(LogLevel.INFO, this.level)) {
+ console.info(ConsoleLogger.labels.get(LogLevel.INFO), this.name, ...msg);
+ }
+ }
+ /**
+ * Log a warning message
+ */
+ warn(...msg) {
+ if (ConsoleLogger.isMoreOrEqualSevere(LogLevel.WARN, this.level)) {
+ console.warn(ConsoleLogger.labels.get(LogLevel.WARN), this.name, ...msg);
+ }
+ }
+ /**
+ * Log an error message
+ */
+ error(...msg) {
+ if (ConsoleLogger.isMoreOrEqualSevere(LogLevel.ERROR, this.level)) {
+ console.error(ConsoleLogger.labels.get(LogLevel.ERROR), this.name, ...msg);
+ }
+ }
+ /**
+ * Helper to compare two log levels and determine if a is equal or more severe than b
+ */
+ static isMoreOrEqualSevere(a, b) {
+ return ConsoleLogger.severity[a] >= ConsoleLogger.severity[b];
+ }
+}
+exports.ConsoleLogger = ConsoleLogger;
+/** Map of labels for each log level */
+ConsoleLogger.labels = (() => {
+ const entries = Object.entries(LogLevel);
+ const map = entries.map(([key, value]) => {
+ return [value, `[${key}] `];
+ });
+ return new Map(map);
+})();
+/** Map of severity as comparable numbers for each log level */
+ConsoleLogger.severity = {
+ [LogLevel.ERROR]: 400,
+ [LogLevel.WARN]: 300,
+ [LogLevel.INFO]: 200,
+ [LogLevel.DEBUG]: 100,
+};
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/@slack/oauth/node_modules/@slack/logger/dist/index.js.map b/node_modules/@slack/oauth/node_modules/@slack/logger/dist/index.js.map
new file mode 100644
index 0000000..4a3f0f5
--- /dev/null
+++ b/node_modules/@slack/oauth/node_modules/@slack/logger/dist/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@slack/oauth/node_modules/@slack/logger/package.json b/node_modules/@slack/oauth/node_modules/@slack/logger/package.json
new file mode 100644
index 0000000..29b2fa6
--- /dev/null
+++ b/node_modules/@slack/oauth/node_modules/@slack/logger/package.json
@@ -0,0 +1,52 @@
+{
+ "name": "@slack/logger",
+ "version": "3.0.0",
+ "description": "Logging utility used by Node Slack SDK",
+ "author": "Slack Technologies, Inc.",
+ "license": "MIT",
+ "keywords": [
+ "slack",
+ "logging"
+ ],
+ "main": "dist/index.js",
+ "types": "dist/index.d.ts",
+ "files": [
+ "dist/**/*"
+ ],
+ "engines": {
+ "node": ">= 12.13.0",
+ "npm": ">= 6.12.0"
+ },
+ "repository": "slackapi/node-slack-sdk",
+ "homepage": "https://slack.dev/node-slack-sdk",
+ "publishConfig": {
+ "access": "public"
+ },
+ "bugs": {
+ "url": "https://github.com/slackapi/node-slack-sdk/issues"
+ },
+ "scripts": {
+ "prepare": "npm run build",
+ "build": "npm run build:clean && tsc",
+ "build:clean": "shx rm -rf ./dist",
+ "lint": "tslint --project .",
+ "test": "npm run build && nyc mocha --config .mocharc.json src/*.spec.js",
+ "ref-docs:model": "api-extractor run"
+ },
+ "dependencies": {
+ "@types/node": ">=12.0.0"
+ },
+ "devDependencies": {
+ "@microsoft/api-extractor": "^7.3.4",
+ "@types/chai": "^4.1.7",
+ "@types/mocha": "^5.2.6",
+ "chai": "^4.2.0",
+ "mocha": "^6.1.4",
+ "nyc": "^14.1.1",
+ "shx": "^0.3.2",
+ "ts-node": "^8.2.0",
+ "tslint": "^5.13.1",
+ "tslint-config-airbnb": "^5.11.1",
+ "typescript": "^4.1.0"
+ }
+}
diff --git a/node_modules/@slack/oauth/package.json b/node_modules/@slack/oauth/package.json
index 607ed17..761ec68 100644
--- a/node_modules/@slack/oauth/package.json
+++ b/node_modules/@slack/oauth/package.json
@@ -40,7 +40,7 @@
},
"dependencies": {
"@slack/logger": "^3.0.0",
- "@slack/web-api": "^6.3.0",
+ "@slack/web-api": "^6.11.2",
"@types/jsonwebtoken": "^8.3.7",
"@types/node": ">=12",
"jsonwebtoken": "^9.0.0",
diff --git a/node_modules/@slack/socket-mode/README.md b/node_modules/@slack/socket-mode/README.md
index 405adc0..a67114c 100644
--- a/node_modules/@slack/socket-mode/README.md
+++ b/node_modules/@slack/socket-mode/README.md
@@ -222,7 +222,7 @@ const socketModeClient = new SocketModeClient({
## Requirements
-This package supports Node v12 LTS and higher. It's highly recommended to use [the latest LTS version of
+This package supports Node v14 and higher. It's highly recommended to use [the latest LTS version of
node](https://github.com/nodejs/Release#release-schedule), and the documentation is written using syntax and features from that version.
## Getting Help
diff --git a/node_modules/@slack/socket-mode/dist/SocketModeClient.d.ts.map b/node_modules/@slack/socket-mode/dist/SocketModeClient.d.ts.map
index b11a93e..75389d1 100644
--- a/node_modules/@slack/socket-mode/dist/SocketModeClient.d.ts.map
+++ b/node_modules/@slack/socket-mode/dist/SocketModeClient.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"SocketModeClient.d.ts","sourceRoot":"","sources":["../src/SocketModeClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,SAAS,MAAM,IAAI,CAAC;AAE3B,OAAO,EAEL,2BAA2B,EAK5B,MAAM,gBAAgB,CAAC;AAQxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAyCxD;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD;;OAEG;IACI,SAAS,EAAE,OAAO,CAAS;IAElC;;;;OAIG;IACI,aAAa,EAAE,OAAO,CAAS;IAEtC;;OAEG;IACI,QAAQ,IAAI,OAAO;IAK1B;;OAEG;IACI,SAAS,CAAC,EAAE,SAAS,CAAC;gBAEV,EACjB,MAAkB,EAClB,QAAoB,EACpB,oBAA2B,EAC3B,sBAA8B,EAC9B,iBAAwB,EACxB,iBAAyB,EACzB,QAAoB,EACpB,aAAkB,GACnB,GAAE,iBAAsB;IAkCzB;;;;OAIG;IACI,KAAK,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAiBpD;;;OAGG;IACI,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBlC;;OAEG;IACH,OAAO,CAAC,YAAY,CAA6B;IAEjD;;OAEG;IACH,OAAO,CAAC,oCAAoC,CAAa;IAGzD,OAAO,CAAC,4BAA4B,CA6BvB;IAEb,OAAO,CAAC,2BAA2B,CAqBpB;IAEf;;OAEG;IACH,OAAO,CAAC,kBAAkB,CA8Eb;IAIb;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAAU;IAEtC,OAAO,CAAC,kBAAkB,CAAC,CAAY;IAEvC,OAAO,CAAC,SAAS,CAAY;IAE7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU,CAAsB;IAE/C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAS;IAEvB;;OAEG;IACH,OAAO,CAAC,sBAAsB,CAAU;IAExC;;OAEG;IACH,OAAO,CAAC,uBAAuB,CAAS;IAExC;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAA6B;IAEtD;;MAEE;IACF,OAAO,CAAC,uBAAuB,CAAS;IAExC;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAA6B;IAEtD;;OAEG;IACH,OAAO,CAAC,yBAAyB,CAAqB;IAEtD;;OAEG;IACH,OAAO,CAAC,aAAa,CAAkB;IAEvC;;OAEG;IACH,OAAO,CAAC,qBAAqB,CAAkB;IAE/C;;;OAGG;IACH,OAAO,CAAC,aAAa,CAAmB;IAExC;;;;;OAKG;IACH,OAAO,CAAC,IAAI;YA4BE,cAAc;IAU5B,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,+BAA+B;IASvC,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,8BAA8B;IAMtC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;OAEG;IACH,OAAO,CAAC,cAAc;IAmDtB;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAapC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAkBjC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAchC,OAAO,CAAC,mCAAmC;IAyC3C,OAAO,CAAC,+BAA+B;IASvC;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAiBpC,OAAO,CAAC,iBAAiB;IAUzB;;;OAGG;cACa,kBAAkB,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAqF9E;AAKD,eAAe,gBAAgB,CAAC"}
\ No newline at end of file
+{"version":3,"file":"SocketModeClient.d.ts","sourceRoot":"","sources":["../src/SocketModeClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,SAAS,MAAM,IAAI,CAAC;AAE3B,OAAO,EAEL,2BAA2B,EAK5B,MAAM,gBAAgB,CAAC;AAQxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAwCxD;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD;;OAEG;IACI,SAAS,EAAE,OAAO,CAAS;IAElC;;;;OAIG;IACI,aAAa,EAAE,OAAO,CAAS;IAEtC;;OAEG;IACI,QAAQ,IAAI,OAAO;IAK1B;;OAEG;IACI,SAAS,CAAC,EAAE,SAAS,CAAC;gBAEV,EACjB,MAAkB,EAClB,QAAoB,EACpB,oBAA2B,EAC3B,sBAA8B,EAC9B,iBAAwB,EACxB,iBAAyB,EACzB,QAAoB,EACpB,aAAkB,GACnB,GAAE,iBAAsB;IAkCzB;;;;OAIG;IACI,KAAK,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAiBpD;;;OAGG;IACI,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBlC;;OAEG;IACH,OAAO,CAAC,YAAY,CAA6B;IAEjD;;OAEG;IACH,OAAO,CAAC,oCAAoC,CAAa;IAGzD,OAAO,CAAC,4BAA4B,CA+BvB;IAEb,OAAO,CAAC,2BAA2B,CAqBpB;IAEf;;OAEG;IACH,OAAO,CAAC,kBAAkB,CAgFb;IAIb;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAAU;IAEtC,OAAO,CAAC,kBAAkB,CAAC,CAAY;IAEvC,OAAO,CAAC,SAAS,CAAY;IAE7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU,CAAsB;IAE/C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAS;IAEvB;;OAEG;IACH,OAAO,CAAC,sBAAsB,CAAU;IAExC;;OAEG;IACH,OAAO,CAAC,uBAAuB,CAAS;IAExC;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAA6B;IAEtD;;MAEE;IACF,OAAO,CAAC,uBAAuB,CAAS;IAExC;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAA6B;IAEtD;;OAEG;IACH,OAAO,CAAC,yBAAyB,CAAqB;IAEtD;;OAEG;IACH,OAAO,CAAC,aAAa,CAAkB;IAEvC;;OAEG;IACH,OAAO,CAAC,qBAAqB,CAAkB;IAE/C;;;OAGG;IACH,OAAO,CAAC,aAAa,CAAmB;IAExC;;;;;OAKG;IACH,OAAO,CAAC,IAAI;YA4BE,cAAc;IAU5B,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,+BAA+B;IASvC,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,8BAA8B;IAMtC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;OAEG;IACH,OAAO,CAAC,cAAc;IAwDtB;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAapC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAkBjC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAchC,OAAO,CAAC,mCAAmC;IAyC3C,OAAO,CAAC,+BAA+B;IASvC;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAiBpC,OAAO,CAAC,iBAAiB;IAUzB;;;OAGG;cACa,kBAAkB,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAgF9E;AAKD,eAAe,gBAAgB,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@slack/socket-mode/dist/SocketModeClient.js b/node_modules/@slack/socket-mode/dist/SocketModeClient.js
index 2967682..110fef4 100644
--- a/node_modules/@slack/socket-mode/dist/SocketModeClient.js
+++ b/node_modules/@slack/socket-mode/dist/SocketModeClient.js
@@ -44,11 +44,10 @@ var Event;
Event["WebSocketOpen"] = "websocket open";
Event["WebSocketClose"] = "websocket close";
Event["ServerHello"] = "server hello";
- Event["ServerDisconnectWarning"] = "server disconnect warning";
- Event["ServerDisconnectOldSocket"] = "server disconnect old socket";
+ Event["ServerExplicitDisconnect"] = "server explicit disconnect";
Event["ServerPingsNotReceived"] = "server pings not received";
Event["ServerPongsNotReceived"] = "server pongs not received";
- Event["ExplicitDisconnect"] = "explicit disconnect";
+ Event["ClientExplicitDisconnect"] = "client explicit disconnect";
Event["UnableToSocketModeStart"] = "unable_to_socket_mode_start";
})(Event || (Event = {}));
/**
@@ -58,6 +57,13 @@ var Event;
* and has a built in send method to acknowledge incoming events over the WebSocket connection.
*/
class SocketModeClient extends eventemitter3_1.EventEmitter {
+ /**
+ * Returns true if the underlying WebSocket connection is active.
+ */
+ isActive() {
+ this.logger.debug(`Details of isActive() response (connected: ${this.connected}, authenticated: ${this.authenticated}, badConnection: ${this.badConnection})`);
+ return this.connected && this.authenticated && !this.badConnection;
+ }
constructor({ logger = undefined, logLevel = undefined, autoReconnectEnabled = true, pingPongLoggingEnabled = false, clientPingTimeout = 5000, serverPingTimeout = 30000, appToken = undefined, clientOptions = {}, } = {}) {
super();
/**
@@ -87,15 +93,17 @@ class SocketModeClient extends eventemitter3_1.EventEmitter {
.transitionTo(ConnectingState.Reconnecting).withCondition(this.reconnectingCondition.bind(this))
.transitionTo(ConnectingState.Failed)
.state(ConnectingState.Reconnecting)
- .do(async () => {
+ .do(() => new Promise((res, _rej) => {
// Trying to reconnect after waiting for a bit...
this.numOfConsecutiveReconnectionFailures += 1;
const millisBeforeRetry = this.clientPingTimeoutMillis * this.numOfConsecutiveReconnectionFailures;
this.logger.debug(`Before trying to reconnect, this client will wait for ${millisBeforeRetry} milliseconds`);
setTimeout(() => {
this.emit(ConnectingState.Authenticating);
+ res(true);
}, millisBeforeRetry);
- })
+ }))
+ .onSuccess().transitionTo(ConnectingState.Authenticating)
.onFailure().transitionTo(ConnectingState.Failed)
.state(ConnectingState.Authenticated)
.onEnter(this.configureAuthenticatedWebSocket.bind(this))
@@ -145,6 +153,8 @@ class SocketModeClient extends eventemitter3_1.EventEmitter {
.initialState(State.Disconnected)
.on(Event.Start)
.transitionTo(State.Connecting)
+ .on(Event.ClientExplicitDisconnect)
+ .transitionTo(State.Disconnected)
.state(State.Connecting)
.onEnter(() => {
this.logger.info('Going to establish a new connection to Slack ...');
@@ -155,10 +165,13 @@ class SocketModeClient extends eventemitter3_1.EventEmitter {
.on(Event.WebSocketClose)
.transitionTo(State.Reconnecting).withCondition(this.autoReconnectCondition.bind(this))
.transitionTo(State.Disconnecting)
- .on(Event.ExplicitDisconnect)
+ .on(Event.ClientExplicitDisconnect)
.transitionTo(State.Disconnecting)
.on(Event.Failure)
.transitionTo(State.Disconnected)
+ .on(Event.WebSocketOpen)
+ // If submachine not `authenticated` ignore event
+ .ignore()
.state(State.Connected)
.onEnter(() => {
this.connected = true;
@@ -170,7 +183,7 @@ class SocketModeClient extends eventemitter3_1.EventEmitter {
.withCondition(this.autoReconnectCondition.bind(this))
.withAction(() => this.markCurrentWebSocketAsInactive())
.transitionTo(State.Disconnecting)
- .on(Event.ExplicitDisconnect)
+ .on(Event.ClientExplicitDisconnect)
.transitionTo(State.Disconnecting)
.withAction(() => this.markCurrentWebSocketAsInactive())
.on(Event.ServerPingsNotReceived)
@@ -179,10 +192,7 @@ class SocketModeClient extends eventemitter3_1.EventEmitter {
.on(Event.ServerPongsNotReceived)
.transitionTo(State.Reconnecting).withCondition(this.autoReconnectCondition.bind(this))
.transitionTo(State.Disconnecting)
- .on(Event.ServerDisconnectWarning)
- .transitionTo(State.Reconnecting).withCondition(this.autoReconnectCondition.bind(this))
- .transitionTo(State.Disconnecting)
- .on(Event.ServerDisconnectOldSocket)
+ .on(Event.ServerExplicitDisconnect)
.transitionTo(State.Reconnecting).withCondition(this.autoReconnectCondition.bind(this))
.transitionTo(State.Disconnecting)
.onExit(() => {
@@ -244,13 +254,6 @@ class SocketModeClient extends eventemitter3_1.EventEmitter {
this.stateMachine = finity_1.default.start(this.stateMachineConfig);
this.logger.debug('The Socket Mode client is successfully initialized');
}
- /**
- * Returns true if the underlying WebSocket connection is active.
- */
- isActive() {
- this.logger.debug(`Details of isActive() response (connected: ${this.connected}, authenticated: ${this.authenticated}, badConnection: ${this.badConnection})`);
- return this.connected && this.authenticated && !this.badConnection;
- }
/**
* Start a Socket Mode session app.
* It may take a few milliseconds before being connected.
@@ -289,7 +292,7 @@ class SocketModeClient extends eventemitter3_1.EventEmitter {
}
});
// Delegate behavior to state machine
- this.stateMachine.handle(Event.ExplicitDisconnect);
+ this.stateMachine.handle(Event.ClientExplicitDisconnect);
});
}
/**
@@ -316,7 +319,7 @@ class SocketModeClient extends eventemitter3_1.EventEmitter {
const flatMessage = JSON.stringify(message);
this.logger.debug(`Sending a WebSocket message: ${flatMessage}`);
this.websocket.send(flatMessage, (error) => {
- if (error !== undefined) {
+ if (error !== undefined && error !== null) {
this.logger.error(`Failed to send a WebSocket message (error: ${error.message})`);
return reject((0, errors_1.websocketErrorWithOriginal)(error));
}
@@ -400,32 +403,37 @@ class SocketModeClient extends eventemitter3_1.EventEmitter {
agent: this.clientOptions.agent,
};
let websocket;
+ let socketId;
if (this.websocket === undefined) {
this.websocket = new ws_1.default(url, options);
+ socketId = 'Primary';
websocket = this.websocket;
}
else {
// Set up secondary websocket
// This is used when creating a new connection because the first is about to disconnect
this.secondaryWebsocket = new ws_1.default(url, options);
+ socketId = 'Secondary';
websocket = this.secondaryWebsocket;
}
// Attach event listeners
websocket.addEventListener('open', (event) => {
+ this.logger.debug(`${socketId} WebSocket open event received (connection established)`);
this.stateMachine.handle(Event.WebSocketOpen, event);
});
websocket.addEventListener('close', (event) => {
+ this.logger.debug(`${socketId} WebSocket close event received (code: ${event.code}, reason: ${event.reason})`);
this.stateMachine.handle(Event.WebSocketClose, event);
});
websocket.addEventListener('error', (event) => {
- this.logger.error(`A WebSocket error occurred: ${event.message}`);
+ this.logger.error(`${socketId} WebSocket error occurred: ${event.message}`);
this.emit('error', (0, errors_1.websocketErrorWithOriginal)(event.error));
});
websocket.addEventListener('message', this.onWebSocketMessage.bind(this));
// Confirm WebSocket connection is still active
websocket.addEventListener('ping', ((data) => {
if (this.pingPongLoggingEnabled) {
- this.logger.debug(`Received ping from Slack server (data: ${data})`);
+ this.logger.debug(`${socketId} WebSocket received ping from Slack server (data: ${data})`);
}
this.startMonitoringPingFromSlack();
// Since the `addEventListener` method does not accept listener with data arg in TypeScript,
@@ -433,7 +441,7 @@ class SocketModeClient extends eventemitter3_1.EventEmitter {
})); // eslint-disable-line @typescript-eslint/no-explicit-any
websocket.addEventListener('pong', ((data) => {
if (this.pingPongLoggingEnabled) {
- this.logger.debug(`Received pong from Slack server (data: ${data})`);
+ this.logger.debug(`${socketId} WebSocket received pong from Slack server (data: ${data})`);
}
this.lastPongReceivedTimestamp = new Date().getTime();
// Since the `addEventListener` method does not accept listener with data arg in TypeScript,
@@ -594,21 +602,17 @@ class SocketModeClient extends eventemitter3_1.EventEmitter {
this.stateMachine.handle(Event.ServerHello);
return;
}
- // Open the second WebSocket connection in preparation for the existing WebSocket disconnecting
- if (event.type === 'disconnect' && event.reason === 'warning') {
- this.logger.debug('Received "disconnect" (warning) message - creating the second connection');
- this.stateMachine.handle(Event.ServerDisconnectWarning);
- return;
- }
- // Close the primary WebSocket in favor of secondary WebSocket, assign secondary to primary
- if (event.type === 'disconnect' && event.reason === 'refresh_requested') {
- this.logger.debug('Received "disconnect" (refresh requested) message - closing the old WebSocket connection');
- this.stateMachine.handle(Event.ServerDisconnectOldSocket);
+ if (event.type === 'disconnect') {
+ // Refresh the WebSocket connection when prompted by Slack backend
+ this.logger.debug(`Received "disconnect" (reason: ${event.reason}) message - will ${this.autoReconnectEnabled ? 'attempt reconnect' : 'disconnect (due to autoReconnectEnabled=false)'}`);
+ this.stateMachine.handle(Event.ServerExplicitDisconnect);
return;
}
// Define Ack
const ack = async (response) => {
- this.logger.debug(`Calling ack() - type: ${event.type}, envelope_id: ${event.envelope_id}, data: ${response}`);
+ if (this.logger.getLevel() === logger_1.LogLevel.DEBUG) {
+ this.logger.debug(`Calling ack() - type: ${event.type}, envelope_id: ${event.envelope_id}, data: ${JSON.stringify(response)}`);
+ }
await this.send(event.envelope_id, response);
};
// For events_api messages, expose the type of the event
diff --git a/node_modules/@slack/socket-mode/dist/SocketModeClient.js.map b/node_modules/@slack/socket-mode/dist/SocketModeClient.js.map
index a62021c..641d3b2 100644
--- a/node_modules/@slack/socket-mode/dist/SocketModeClient.js.map
+++ b/node_modules/@slack/socket-mode/dist/SocketModeClient.js.map
@@ -1 +1 @@
-{"version":3,"file":"SocketModeClient.js","sourceRoot":"","sources":["../src/SocketModeClient.ts"],"names":[],"mappings":";;;;;;AAAA,iDAA6C;AAC7C,4CAA2B;AAC3B,oDAAsE;AACtE,4CAOwB;AACxB,qCAAuD;AACvD,qCAIkB;AAClB,2FAAwF;AAGxF,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,6EAA6E;AAE7H,uDAAuD;AACvD,IAAK,KAOJ;AAPD,WAAK,KAAK;IACR,kCAAyB,CAAA;IACzB,gCAAuB,CAAA;IACvB,sCAA6B,CAAA;IAC7B,wCAA+B,CAAA;IAC/B,sCAA6B,CAAA;IAC7B,0BAAiB,CAAA;AACnB,CAAC,EAPI,KAAK,KAAL,KAAK,QAOT;AACD,IAAK,eAMJ;AAND,WAAK,eAAe;IAClB,8CAA2B,CAAA;IAC3B,oDAAiC,CAAA;IACjC,kDAA+B,CAAA;IAC/B,gDAA6B,CAAA;IAC7B,oCAAiB,CAAA;AACnB,CAAC,EANI,eAAe,KAAf,eAAe,QAMnB;AACD,IAAK,cAIJ;AAJD,WAAK,cAAc;IACjB,yCAAuB,CAAA;IACvB,iCAAe,CAAA;IACf,mCAAiB,CAAA;AACnB,CAAC,EAJI,cAAc,KAAd,cAAc,QAIlB;AAED,uDAAuD;AACvD,IAAK,KAYJ;AAZD,WAAK,KAAK;IACR,wBAAe,CAAA;IACf,4BAAmB,CAAA;IACnB,yCAAgC,CAAA;IAChC,2CAAkC,CAAA;IAClC,qCAA4B,CAAA;IAC5B,8DAAqD,CAAA;IACrD,mEAA0D,CAAA;IAC1D,6DAAoD,CAAA;IACpD,6DAAoD,CAAA;IACpD,mDAA0C,CAAA;IAC1C,gEAAuD,CAAA;AACzD,CAAC,EAZI,KAAK,KAAL,KAAK,QAYT;AAED;;;;;GAKG;AACH,MAAa,gBAAiB,SAAQ,4BAAY;IA0BhD,YAAmB,EACjB,MAAM,GAAG,SAAS,EAClB,QAAQ,GAAG,SAAS,EACpB,oBAAoB,GAAG,IAAI,EAC3B,sBAAsB,GAAG,KAAK,EAC9B,iBAAiB,GAAG,IAAI,EACxB,iBAAiB,GAAG,KAAK,EACzB,QAAQ,GAAG,SAAS,EACpB,aAAa,GAAG,EAAE,MACG,EAAE;QACvB,KAAK,EAAE,CAAC;QAnCV;;WAEG;QACI,cAAS,GAAY,KAAK,CAAC;QAElC;;;;WAIG;QACI,kBAAa,GAAY,KAAK,CAAC;QA6GtC;;WAEG;QACK,yCAAoC,GAAW,CAAC,CAAC;QAEzD,wEAAwE;QAChE,iCAA4B,GAChC,gBAAM,CAAC,SAAS,EAA0B;aAC3C,MAAM,EAAE;aACN,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,CAAC,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC;QAC5E,CAAC,CAAC;aACH,YAAY,CAAC,eAAe,CAAC,cAAc,CAAC;aAC1C,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAChC,SAAS,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,aAAa,CAAC;aACvD,SAAS,EAAE;aACT,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/F,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC;aAC1C,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC;aACjC,EAAE,CAAC,KAAK,IAAI,EAAE;YACb,iDAAiD;YACjD,IAAI,CAAC,oCAAoC,IAAI,CAAC,CAAC;YAC/C,MAAM,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,oCAAoC,CAAC;YACnG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,iBAAiB,eAAe,CAAC,CAAC;YAC7G,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YAC5C,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACxB,CAAC,CAAC;aACD,SAAS,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC;aAClD,KAAK,CAAC,eAAe,CAAC,aAAa,CAAC;aAClC,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxD,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,WAAW,CAAC;aACnE,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,6DAA6D;aAChG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC;aAC3B,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpD,SAAS,EAAE,CAAC;QAEL,gCAA2B,GAAyC,gBAAM,CAAC,SAAS,EAAyB;aAClH,MAAM,EAAE;aACN,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC;QAC3E,CAAC,CAAC;aACH,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC;aACpC,EAAE,CAAC,KAAK,IAAI,EAAE;YACb,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC9B,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACjC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAC5B;YACD,mFAAmF;YACnF,oFAAoF;YACpF,IAAI,CAAC,mCAAmC,EAAE,CAAC;YAC3C,yFAAyF;YACzF,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACtC,CAAC,CAAC;aACD,SAAS,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC;aAC9C,SAAS,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC;aACjD,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;aAC1B,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClD,SAAS,EAAE,CAAC;QAEf;;WAEG;QACK,uBAAkB,GAAgC,gBAAM,CAAC,SAAS,EAAgB;aACvF,MAAM,EAAE;aACN,YAAY,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;YACtD,IAAI,KAAK,KAAK,KAAK,CAAC,YAAY,EAAE;gBAChC,iFAAiF;gBACjF,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;aACxC;iBAAM;gBACL,2EAA2E;gBAC3E,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAClB;QACH,CAAC,CAAC;aACH,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC;aAC9B,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;aACb,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC;aAClC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;aACrB,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACvE,CAAC,CAAC;aACD,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC;aAC7C,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;aACnB,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC;aAC/B,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;aACtB,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtF,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC;aACnC,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC;aAC1B,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC;aACnC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;aACf,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC;aACpC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;aACpB,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC7C,CAAC,CAAC;aACD,UAAU,CAAC,IAAI,CAAC,2BAA2B,CAAC;aAC5C,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;aACtB,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC;aAC9B,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrD,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,8BAA8B,EAAE,CAAC;aACzD,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC;aACnC,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC;aAC1B,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC;aACjC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,8BAA8B,EAAE,CAAC;aACzD,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC;aAC9B,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtF,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC;aACnC,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC;aAC9B,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtF,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC;aACnC,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC;aAC/B,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtF,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC;aACnC,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC;aACjC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtF,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC;aACnC,MAAM,CAAC,GAAG,EAAE;YACX,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACtC,CAAC,CAAC;aACH,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;aACvB,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAChD,CAAC,CAAC;aACD,EAAE,CAAC,KAAK,IAAI,EAAE;YACb,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACpC,CAAC,CAAC;aACC,SAAS,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC;aAC1C,SAAS,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;aAC1C,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC;aACxB,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACxC,CAAC,CAAC;aACD,EAAE,CAAC,KAAK,IAAI,EAAE;YACb,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC9C,CAAC,CAAC;aACC,SAAS,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC;aAC5C,SAAS,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;aAC5C,SAAS,EAAE,CAAC;QAqDb;;WAEG;QACK,kBAAa,GAAY,KAAK,CAAC;QAEvC;;WAEG;QACK,0BAAqB,GAAY,KAAK,CAAC;QA7R7C,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;SAC3F;QACD,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,IAAI,CAAC,uBAAuB,GAAG,iBAAiB,CAAC;QACjD,IAAI,CAAC,yBAAyB,GAAG,SAAS,CAAC;QAC3C,IAAI,CAAC,uBAAuB,GAAG,iBAAiB,CAAC;QACjD,mBAAmB;QACnB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;gBACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;aAC5F;SACF;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAA,kBAAS,EAAC,gBAAgB,CAAC,UAAU,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,iBAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SACzF;QACD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK,SAAS,EAAE;YAChD,yEAAyE;YACzE,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;SAChE;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,mBAAS,CAAC,EAAE,kBAC/B,MAAM,EACN,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAChC,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,QAAQ,EAAE,EAAE,IAC7C,aAAa,EAChB,CAAC;QACH,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,YAAY,GAAG,gBAAM,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC1E,CAAC;IAtDD;;OAEG;IACI,QAAQ;QACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,IAAI,CAAC,SAAS,oBAAoB,IAAI,CAAC,aAAa,oBAAoB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QAC/J,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IACrE,CAAC;IAkDD;;;;OAIG;IACI,KAAK;QACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,qCAAqC;QACrC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,iEAAiE;QACjE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE;gBAClD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBAChD,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;gBACpC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;gBAC5D,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACI,UAAU;QACf,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACpE,oCAAoC;YACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;gBACpC,IAAI,GAAG,YAAY,KAAK,EAAE;oBACxB,MAAM,CAAC,GAAG,CAAC,CAAC;iBACb;qBAAM;oBACL,OAAO,EAAE,CAAC;iBACX;YACH,CAAC,CAAC,CAAC;YACH,qCAAqC;YACrC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;IA6ND;;;;;OAKG;IACK,IAAI,CAAC,EAAU,EAAE,IAAI,GAAG,EAAE;QAChC,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,MAAM,OAAO,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,oBAAO,KAAK,CAAE,EAAE,CAAC;QAE3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,sBAAsB,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YAC1J,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;gBAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;gBAC7E,MAAM,CAAC,IAAA,mCAA0B,GAAE,CAAC,CAAC;aACtC;iBAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;gBACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;gBACzE,MAAM,CAAC,IAAA,+BAAsB,GAAE,CAAC,CAAC;aAClC;iBAAM;gBACL,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;gBAEvC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,WAAW,EAAE,CAAC,CAAC;gBACjE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;oBACzC,IAAI,KAAK,KAAK,SAAS,EAAE;wBACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;wBAClF,OAAO,MAAM,CAAC,IAAA,mCAA0B,EAAC,KAAK,CAAC,CAAC,CAAC;qBAClD;oBACD,OAAO,OAAO,EAAE,CAAC;gBACnB,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI;YACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACzD,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACrD;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6DAA6D,KAAK,GAAG,CAAC,CAAC;YACzF,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IAEO,sBAAsB;QAC5B,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAEO,qBAAqB,CAAC,OAAgC;QAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAwB,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QAEvF,6FAA6F;QAC7F,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAChD,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAgB,CAAC,aAAa;YAC5C,MAAM,CAAC,MAAM,CAAC,qEAAiC,CAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC7F,aAAa,GAAG,KAAK,CAAC;SACvB;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAgB,CAAC,YAAY,EAAE;YACvD,aAAa,GAAG,KAAK,CAAC;SACvB;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAgB,CAAC,SAAS,EAAE;YACpD,aAAa,GAAG,KAAK,CAAC;SACvB;QACD,OAAO,IAAI,CAAC,oBAAoB,IAAI,aAAa,CAAC;IACpD,CAAC;IAEO,+BAA+B,CAAC,MAAc,EAAE,OAAgC;QACtF,IAAI,CAAC,oCAAoC,GAAG,CAAC,CAAC,CAAC,0BAA0B;QACzE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxC,YAAY,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,uBAAuB,CAAC,MAAc,EAAE,OAAgC;QAC9E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;QACtF,qCAAqC;QACrC,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,qFAAqF;QACrF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAEO,8BAA8B;QACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED;;OAEG;IACK,uBAAuB;QAC7B,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE;YACzC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACvD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;SACrC;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAChC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC5B;IACH,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,GAAW;QAChC,2BAA2B;QAC3B,MAAM,OAAO,GAA4B;YACvC,iBAAiB,EAAE,KAAK;YACxB,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK;SAChC,CAAC;QAEF,IAAI,SAAoB,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAChC,IAAI,CAAC,SAAS,GAAG,IAAI,YAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC7C,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;SAC5B;aAAM;YACL,6BAA6B;YAC7B,uFAAuF;YACvF,IAAI,CAAC,kBAAkB,GAAG,IAAI,YAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACtD,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC;SACrC;QAED,yBAAyB;QACzB,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC5C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAA,mCAA0B,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1E,+CAA+C;QAC/C,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE;YACnD,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,IAAI,GAAG,CAAC,CAAC;aACtE;YACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,4FAA4F;YAC5F,+CAA+C;QACjD,CAAC,CAAQ,CAAC,CAAC,CAAC,yDAAyD;QAErE,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE;YACnD,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,IAAI,GAAG,CAAC,CAAC;aACtE;YACD,IAAI,CAAC,yBAAyB,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YACtD,4FAA4F;YAC5F,+CAA+C;QACjD,CAAC,CAAQ,CAAC,CAAC,CAAC,yDAAyD;IACvE,CAAC;IAED;;OAEG;IACK,4BAA4B;QAClC,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE;YACxC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;SACpE;QACD,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE;YACxC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;SACpD;IACH,CAAC;IAED;;OAEG;IACK,yBAAyB;QAC/B,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YACzE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,mEAAmE;YACnE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;YACpC,6BAA6B;YAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACzC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,mCAAmC;YACnC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YAEnC,uBAAuB;YACvB,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;SACpD;IACH,CAAC;IAED;;;OAGG;IACK,wBAAwB,CAAC,SAAoB;QACnD,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,IAAI;gBACF,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBACrC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBACtC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBACtC,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBACxC,SAAS,CAAC,SAAS,EAAE,CAAC;aACvB;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,GAAG,CAAC,CAAC;aACrE;SACF;IACH,CAAC;IAEO,mCAAmC;QACzC,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE;YACxC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACtC;QACD,kCAAkC;QAClC,IAAI,CAAC,yBAAyB,GAAG,SAAS,CAAC;QAC3C,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;;gBACxC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACvC,IAAI;oBACF,MAAM,WAAW,GAAG,qBAAqB,SAAS,GAAG,CAAC;oBACtD,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,CAAC,WAAW,CAAC,CAAC;oBAClC,IAAI,IAAI,CAAC,yBAAyB,KAAK,SAAS,EAAE;wBAChD,gBAAgB,IAAI,CAAC,CAAC;qBACvB;yBAAM;wBACL,gBAAgB,GAAG,CAAC,CAAC;qBACtB;oBACD,IAAI,IAAI,CAAC,sBAAsB,EAAE;wBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,WAAW,EAAE,CAAC,CAAC;qBACzD;iBACF;gBAAC,OAAO,CAAC,EAAE;oBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,GAAG,CAAC,CAAC;oBAChE,IAAI,CAAC,+BAA+B,EAAE,CAAC;oBACvC,OAAO;iBACR;gBACD,IAAI,SAAS,GAAY,gBAAgB,GAAG,CAAC,CAAC;gBAC9C,IAAI,IAAI,CAAC,yBAAyB,KAAK,SAAS,EAAE;oBAChD,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,yBAAyB,CAAC;oBAC1D,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC;iBACnD;gBACD,IAAI,SAAS,EAAE;oBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gEAAgE,IAAI,CAAC,uBAAuB,KAAK,CAAC,CAAC;oBACpH,IAAI,CAAC,+BAA+B,EAAE,CAAC;iBACxC;YACH,CAAC,EAAE,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;SAC3D;IACH,CAAC;IAEO,+BAA+B;QACrC,IAAI;YACF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;SACxD;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,GAAG,CAAC,CAAC;SACjE;IACH,CAAC;IAED;;;OAGG;IACK,4BAA4B;QAClC,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE;YACxC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACtC;QACD,4DAA4D;QAC5D,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,GAAG,EAAE;gBACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gEAAgE,IAAI,CAAC,uBAAuB,KAAK,CAAC,CAAC;gBACpH,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;oBAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;oBAC1B,qEAAqE;oBACrE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;iBACxD;YACH,CAAC,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;SAClC;IACH,CAAC;IAEO,iBAAiB;QACvB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;QACzD,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;QAC7D,OAAO,YAAY,KAAK,KAAK,CAAC,SAAS;YACrC,cAAc,KAAK,SAAS;YAC5B,cAAc,CAAC,MAAM,IAAI,CAAC;YAC1B,mGAAmG;YACnG,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,cAAc,CAAC,KAAK,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAoB;QAC3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;QAElE,iCAAiC;QACjC,IAAI,KASH,CAAC;QAEF,IAAI;YACF,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,8DAA8D;SAC7D;QAAC,OAAO,UAAe,EAAE;YACxB,0FAA0F;YAC1F,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kDAAkD,UAAU,CAAC,OAAO,EAAE,CACvE,CAAC;YACF,OAAO;SACR;QAED,0BAA0B;QAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC5C,OAAO;SACR;QAED,+FAA+F;QAC/F,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;YAC9F,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACxD,OAAO;SACR;QAED,2FAA2F;QAC3F,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,mBAAmB,EAAE;YACvE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;YAC9G,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC1D,OAAO;SACR;QAED,aAAa;QACb,MAAM,GAAG,GAAG,KAAK,EAAE,QAAiC,EAAiB,EAAE;YACrE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAAC,WAAW,WAAW,QAAQ,EAAE,CAAC,CAAC;YAC/G,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEF,wDAAwD;QACxD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;gBAClC,GAAG;gBACH,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,IAAI,EAAE,KAAK,CAAC,OAAO;gBACnB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;gBAC1B,SAAS,EAAE,KAAK,CAAC,aAAa;gBAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;aACzD,CAAC,CAAC;SACJ;aAAM;YACL,yDAAyD;YACzD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBACpB,GAAG;gBACH,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,IAAI,EAAE,KAAK,CAAC,OAAO;gBACnB,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;aACzD,CAAC,CAAC;SACJ;QAED,+BAA+B;QAC/B,2CAA2C;QAC3C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,GAAG;YACH,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,OAAO;YACnB,SAAS,EAAE,KAAK,CAAC,aAAa;YAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;SACzD,CAAC,CAAC;IACL,CAAC;;AAxsBH,4CAysBC;AAvbC;;GAEG;AACY,2BAAU,GAAG,kBAAkB,CAAC;AAsbjD,qBAAqB;AACrB,IAAA,wBAAc,EAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;AAEzE,kBAAe,gBAAgB,CAAC"}
\ No newline at end of file
+{"version":3,"file":"SocketModeClient.js","sourceRoot":"","sources":["../src/SocketModeClient.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@slack/socket-mode/dist/errors.d.ts b/node_modules/@slack/socket-mode/dist/errors.d.ts
index 7464aaa..37a8ce8 100644
--- a/node_modules/@slack/socket-mode/dist/errors.d.ts
+++ b/node_modules/@slack/socket-mode/dist/errors.d.ts
@@ -15,7 +15,7 @@ export declare enum ErrorCode {
NoReplyReceivedError = "slack_socket_mode_no_reply_received_error",
InitializationError = "slack_socket_mode_initialization_error"
}
-export declare type SMCallError = SMPlatformError | SMWebsocketError | SMNoReplyReceivedError | SMSendWhileDisconnectedError | SMSendWhileNotReadyError;
+export type SMCallError = SMPlatformError | SMWebsocketError | SMNoReplyReceivedError | SMSendWhileDisconnectedError | SMSendWhileNotReadyError;
export interface SMPlatformError extends CodedError {
code: ErrorCode.SendMessagePlatformError;
data: any;
diff --git a/node_modules/@slack/socket-mode/dist/errors.d.ts.map b/node_modules/@slack/socket-mode/dist/errors.d.ts.map
index b279cb6..4e7a097 100644
--- a/node_modules/@slack/socket-mode/dist/errors.d.ts.map
+++ b/node_modules/@slack/socket-mode/dist/errors.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,KAAK;IACvC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,0BAA0B,oDAAoD;IAC9E,sBAAsB,iDAAiD;IACvE,wBAAwB,kDAAkD;IAC1E,cAAc,sCAAsC;IACpD,oBAAoB,8CAA8C;IAClE,mBAAmB,2CAA2C;CAC/D;AAED,oBAAY,WAAW,GAAG,eAAe,GAAG,gBAAgB,GAAG,sBAAsB,GACnF,4BAA4B,GAAG,wBAAwB,CAAC;AAE1D,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,IAAI,EAAE,SAAS,CAAC,wBAAwB,CAAC;IAEzC,IAAI,EAAE,GAAG,CAAC;CACX;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,IAAI,EAAE,SAAS,CAAC,cAAc,CAAC;IAC/B,QAAQ,EAAE,KAAK,CAAC;CACjB;AAED,MAAM,WAAW,sBAAuB,SAAQ,UAAU;IACxD,IAAI,EAAE,SAAS,CAAC,oBAAoB,CAAC;CACtC;AAED,MAAM,WAAW,4BAA6B,SAAQ,UAAU;IAC9D,IAAI,EAAE,SAAS,CAAC,0BAA0B,CAAC;CAC5C;AAED,MAAM,WAAW,wBAAyB,SAAQ,UAAU;IAC1D,IAAI,EAAE,SAAS,CAAC,sBAAsB,CAAC;CACxC;AAYD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,KAAK,GAAG,gBAAgB,CAO5E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAEpC,KAAK,EAAE,GAAG,GAAG;IAAE,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;KAAE,CAAA;CAAE,GACvC,eAAe,CAOjB;AAGD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,sBAAsB,CAM7D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,4BAA4B,CAKzE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,wBAAwB,CAKjE"}
\ No newline at end of file
+{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,KAAK;IACvC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,0BAA0B,oDAAoD;IAC9E,sBAAsB,iDAAiD;IACvE,wBAAwB,kDAAkD;IAC1E,cAAc,sCAAsC;IACpD,oBAAoB,8CAA8C;IAClE,mBAAmB,2CAA2C;CAC/D;AAED,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,gBAAgB,GAAG,sBAAsB,GACnF,4BAA4B,GAAG,wBAAwB,CAAC;AAE1D,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,IAAI,EAAE,SAAS,CAAC,wBAAwB,CAAC;IAEzC,IAAI,EAAE,GAAG,CAAC;CACX;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,IAAI,EAAE,SAAS,CAAC,cAAc,CAAC;IAC/B,QAAQ,EAAE,KAAK,CAAC;CACjB;AAED,MAAM,WAAW,sBAAuB,SAAQ,UAAU;IACxD,IAAI,EAAE,SAAS,CAAC,oBAAoB,CAAC;CACtC;AAED,MAAM,WAAW,4BAA6B,SAAQ,UAAU;IAC9D,IAAI,EAAE,SAAS,CAAC,0BAA0B,CAAC;CAC5C;AAED,MAAM,WAAW,wBAAyB,SAAQ,UAAU;IAC1D,IAAI,EAAE,SAAS,CAAC,sBAAsB,CAAC;CACxC;AAYD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,KAAK,GAAG,gBAAgB,CAO5E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAEpC,KAAK,EAAE,GAAG,GAAG;IAAE,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;KAAE,CAAA;CAAE,GACvC,eAAe,CAOjB;AAGD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,sBAAsB,CAM7D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,4BAA4B,CAKzE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,wBAAwB,CAKjE"}
\ No newline at end of file
diff --git a/node_modules/@slack/socket-mode/node_modules/@slack/logger/README.md b/node_modules/@slack/socket-mode/node_modules/@slack/logger/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/node_modules/@slack/socket-mode/node_modules/@slack/logger/dist/index.d.ts b/node_modules/@slack/socket-mode/node_modules/@slack/logger/dist/index.d.ts
new file mode 100644
index 0000000..d658309
--- /dev/null
+++ b/node_modules/@slack/socket-mode/node_modules/@slack/logger/dist/index.d.ts
@@ -0,0 +1,100 @@
+/**
+ * Severity levels for log entries
+ */
+export declare enum LogLevel {
+ ERROR = "error",
+ WARN = "warn",
+ INFO = "info",
+ DEBUG = "debug"
+}
+/**
+ * Interface for objects where objects in this package's logs can be sent (can be used as `logger` option).
+ */
+export interface Logger {
+ /**
+ * Output debug message
+ *
+ * @param msg any data to log
+ */
+ debug(...msg: any[]): void;
+ /**
+ * Output info message
+ *
+ * @param msg any data to log
+ */
+ info(...msg: any[]): void;
+ /**
+ * Output warn message
+ *
+ * @param msg any data to log
+ */
+ warn(...msg: any[]): void;
+ /**
+ * Output error message
+ *
+ * @param msg any data to log
+ */
+ error(...msg: any[]): void;
+ /**
+ * This disables all logging below the given level, so that after a log.setLevel("warn") call log.warn("something")
+ * or log.error("something") will output messages, but log.info("something") will not.
+ *
+ * @param level as a string, like 'error' (case-insensitive)
+ */
+ setLevel(level: LogLevel): void;
+ /**
+ * Return the current LogLevel.
+ */
+ getLevel(): LogLevel;
+ /**
+ * This allows the instance to be named so that they can easily be filtered when many loggers are sending output
+ * to the same destination.
+ *
+ * @param name as a string, will be output with every log after the level
+ */
+ setName(name: string): void;
+}
+/**
+ * Default logger which logs to stdout and stderr
+ */
+export declare class ConsoleLogger implements Logger {
+ /** Setting for level */
+ private level;
+ /** Name */
+ private name;
+ /** Map of labels for each log level */
+ private static labels;
+ /** Map of severity as comparable numbers for each log level */
+ private static severity;
+ constructor();
+ getLevel(): LogLevel;
+ /**
+ * Sets the instance's log level so that only messages which are equal or more severe are output to the console.
+ */
+ setLevel(level: LogLevel): void;
+ /**
+ * Set the instance's name, which will appear on each log line before the message.
+ */
+ setName(name: string): void;
+ /**
+ * Log a debug message
+ */
+ debug(...msg: any[]): void;
+ /**
+ * Log an info message
+ */
+ info(...msg: any[]): void;
+ /**
+ * Log a warning message
+ */
+ warn(...msg: any[]): void;
+ /**
+ * Log an error message
+ */
+ error(...msg: any[]): void;
+ /**
+ * Helper to compare two log levels and determine if a is equal or more severe than b
+ */
+ private static isMoreOrEqualSevere;
+}
+//# sourceMappingURL=index.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@slack/socket-mode/node_modules/@slack/logger/dist/index.d.ts.map b/node_modules/@slack/socket-mode/node_modules/@slack/logger/dist/index.d.ts.map
new file mode 100644
index 0000000..97208c0
--- /dev/null
+++ b/node_modules/@slack/socket-mode/node_modules/@slack/logger/dist/index.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3B;;;;OAIG;IACH,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE1B;;;;OAIG;IACH,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE1B;;;;OAIG;IACH,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAEhC;;OAEG;IACH,QAAQ,IAAI,QAAQ,CAAC;IAErB;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM;IAC1C,wBAAwB;IACxB,OAAO,CAAC,KAAK,CAAW;IACxB,WAAW;IACX,OAAO,CAAC,IAAI,CAAS;IACrB,uCAAuC;IACvC,OAAO,CAAC,MAAM,CAAC,MAAM,CAMhB;IACL,+DAA+D;IAC/D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAKrB;;IAOK,QAAQ,IAAI,QAAQ;IAI3B;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAItC;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACI,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAKjC;;OAEG;IACI,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAKhC;;OAEG;IACI,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAKhC;;OAEG;IACI,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAMjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;CAGnC"}
\ No newline at end of file
diff --git a/node_modules/@slack/socket-mode/node_modules/@slack/logger/dist/index.js b/node_modules/@slack/socket-mode/node_modules/@slack/logger/dist/index.js
new file mode 100644
index 0000000..bec82b0
--- /dev/null
+++ b/node_modules/@slack/socket-mode/node_modules/@slack/logger/dist/index.js
@@ -0,0 +1,92 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ConsoleLogger = exports.LogLevel = void 0;
+/**
+ * Severity levels for log entries
+ */
+var LogLevel;
+(function (LogLevel) {
+ LogLevel["ERROR"] = "error";
+ LogLevel["WARN"] = "warn";
+ LogLevel["INFO"] = "info";
+ LogLevel["DEBUG"] = "debug";
+})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
+/**
+ * Default logger which logs to stdout and stderr
+ */
+class ConsoleLogger {
+ constructor() {
+ this.level = LogLevel.INFO;
+ this.name = '';
+ }
+ getLevel() {
+ return this.level;
+ }
+ /**
+ * Sets the instance's log level so that only messages which are equal or more severe are output to the console.
+ */
+ setLevel(level) {
+ this.level = level;
+ }
+ /**
+ * Set the instance's name, which will appear on each log line before the message.
+ */
+ setName(name) {
+ this.name = name;
+ }
+ /**
+ * Log a debug message
+ */
+ debug(...msg) {
+ if (ConsoleLogger.isMoreOrEqualSevere(LogLevel.DEBUG, this.level)) {
+ console.debug(ConsoleLogger.labels.get(LogLevel.DEBUG), this.name, ...msg);
+ }
+ }
+ /**
+ * Log an info message
+ */
+ info(...msg) {
+ if (ConsoleLogger.isMoreOrEqualSevere(LogLevel.INFO, this.level)) {
+ console.info(ConsoleLogger.labels.get(LogLevel.INFO), this.name, ...msg);
+ }
+ }
+ /**
+ * Log a warning message
+ */
+ warn(...msg) {
+ if (ConsoleLogger.isMoreOrEqualSevere(LogLevel.WARN, this.level)) {
+ console.warn(ConsoleLogger.labels.get(LogLevel.WARN), this.name, ...msg);
+ }
+ }
+ /**
+ * Log an error message
+ */
+ error(...msg) {
+ if (ConsoleLogger.isMoreOrEqualSevere(LogLevel.ERROR, this.level)) {
+ console.error(ConsoleLogger.labels.get(LogLevel.ERROR), this.name, ...msg);
+ }
+ }
+ /**
+ * Helper to compare two log levels and determine if a is equal or more severe than b
+ */
+ static isMoreOrEqualSevere(a, b) {
+ return ConsoleLogger.severity[a] >= ConsoleLogger.severity[b];
+ }
+}
+exports.ConsoleLogger = ConsoleLogger;
+/** Map of labels for each log level */
+ConsoleLogger.labels = (() => {
+ const entries = Object.entries(LogLevel);
+ const map = entries.map(([key, value]) => {
+ return [value, `[${key}] `];
+ });
+ return new Map(map);
+})();
+/** Map of severity as comparable numbers for each log level */
+ConsoleLogger.severity = {
+ [LogLevel.ERROR]: 400,
+ [LogLevel.WARN]: 300,
+ [LogLevel.INFO]: 200,
+ [LogLevel.DEBUG]: 100,
+};
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/@slack/socket-mode/node_modules/@slack/logger/dist/index.js.map b/node_modules/@slack/socket-mode/node_modules/@slack/logger/dist/index.js.map
new file mode 100644
index 0000000..4a3f0f5
--- /dev/null
+++ b/node_modules/@slack/socket-mode/node_modules/@slack/logger/dist/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@slack/socket-mode/node_modules/@slack/logger/package.json b/node_modules/@slack/socket-mode/node_modules/@slack/logger/package.json
new file mode 100644
index 0000000..29b2fa6
--- /dev/null
+++ b/node_modules/@slack/socket-mode/node_modules/@slack/logger/package.json
@@ -0,0 +1,52 @@
+{
+ "name": "@slack/logger",
+ "version": "3.0.0",
+ "description": "Logging utility used by Node Slack SDK",
+ "author": "Slack Technologies, Inc.",
+ "license": "MIT",
+ "keywords": [
+ "slack",
+ "logging"
+ ],
+ "main": "dist/index.js",
+ "types": "dist/index.d.ts",
+ "files": [
+ "dist/**/*"
+ ],
+ "engines": {
+ "node": ">= 12.13.0",
+ "npm": ">= 6.12.0"
+ },
+ "repository": "slackapi/node-slack-sdk",
+ "homepage": "https://slack.dev/node-slack-sdk",
+ "publishConfig": {
+ "access": "public"
+ },
+ "bugs": {
+ "url": "https://github.com/slackapi/node-slack-sdk/issues"
+ },
+ "scripts": {
+ "prepare": "npm run build",
+ "build": "npm run build:clean && tsc",
+ "build:clean": "shx rm -rf ./dist",
+ "lint": "tslint --project .",
+ "test": "npm run build && nyc mocha --config .mocharc.json src/*.spec.js",
+ "ref-docs:model": "api-extractor run"
+ },
+ "dependencies": {
+ "@types/node": ">=12.0.0"
+ },
+ "devDependencies": {
+ "@microsoft/api-extractor": "^7.3.4",
+ "@types/chai": "^4.1.7",
+ "@types/mocha": "^5.2.6",
+ "chai": "^4.2.0",
+ "mocha": "^6.1.4",
+ "nyc": "^14.1.1",
+ "shx": "^0.3.2",
+ "ts-node": "^8.2.0",
+ "tslint": "^5.13.1",
+ "tslint-config-airbnb": "^5.11.1",
+ "typescript": "^4.1.0"
+ }
+}
diff --git a/node_modules/@slack/socket-mode/node_modules/p-queue/index.js b/node_modules/@slack/socket-mode/node_modules/p-queue/index.js
deleted file mode 100644
index 27552ab..0000000
--- a/node_modules/@slack/socket-mode/node_modules/p-queue/index.js
+++ /dev/null
@@ -1,189 +0,0 @@
-'use strict';
-
-// Port of lower_bound from http://en.cppreference.com/w/cpp/algorithm/lower_bound
-// Used to compute insertion index to keep queue sorted after insertion
-function lowerBound(array, value, comp) {
- let first = 0;
- let count = array.length;
-
- while (count > 0) {
- const step = (count / 2) | 0;
- let it = first + step;
-
- if (comp(array[it], value) <= 0) {
- first = ++it;
- count -= step + 1;
- } else {
- count = step;
- }
- }
-
- return first;
-}
-
-class PriorityQueue {
- constructor() {
- this._queue = [];
- }
-
- enqueue(run, opts) {
- opts = Object.assign({
- priority: 0
- }, opts);
-
- const element = {priority: opts.priority, run};
-
- if (this.size && this._queue[this.size - 1].priority >= opts.priority) {
- this._queue.push(element);
- return;
- }
-
- const index = lowerBound(this._queue, element, (a, b) => b.priority - a.priority);
- this._queue.splice(index, 0, element);
- }
-
- dequeue() {
- return this._queue.shift().run;
- }
-
- get size() {
- return this._queue.length;
- }
-}
-
-class PQueue {
- constructor(opts) {
- opts = Object.assign({
- concurrency: Infinity,
- autoStart: true,
- queueClass: PriorityQueue
- }, opts);
-
- if (!(typeof opts.concurrency === 'number' && opts.concurrency >= 1)) {
- throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${opts.concurrency}\` (${typeof opts.concurrency})`);
- }
-
- this.queue = new opts.queueClass(); // eslint-disable-line new-cap
- this._queueClass = opts.queueClass;
- this._pendingCount = 0;
- this._concurrency = opts.concurrency;
- this._isPaused = opts.autoStart === false;
- this._resolveEmpty = () => {};
- this._resolveIdle = () => {};
- }
-
- _next() {
- this._pendingCount--;
-
- if (this.queue.size > 0) {
- if (!this._isPaused) {
- this.queue.dequeue()();
- }
- } else {
- this._resolveEmpty();
- this._resolveEmpty = () => {};
-
- if (this._pendingCount === 0) {
- this._resolveIdle();
- this._resolveIdle = () => {};
- }
- }
- }
-
- add(fn, opts) {
- return new Promise((resolve, reject) => {
- const run = () => {
- this._pendingCount++;
-
- try {
- Promise.resolve(fn()).then(
- val => {
- resolve(val);
- this._next();
- },
- err => {
- reject(err);
- this._next();
- }
- );
- } catch (err) {
- reject(err);
- this._next();
- }
- };
-
- if (!this._isPaused && this._pendingCount < this._concurrency) {
- run();
- } else {
- this.queue.enqueue(run, opts);
- }
- });
- }
-
- addAll(fns, opts) {
- return Promise.all(fns.map(fn => this.add(fn, opts)));
- }
-
- start() {
- if (!this._isPaused) {
- return;
- }
-
- this._isPaused = false;
- while (this.queue.size > 0 && this._pendingCount < this._concurrency) {
- this.queue.dequeue()();
- }
- }
-
- pause() {
- this._isPaused = true;
- }
-
- clear() {
- this.queue = new this._queueClass(); // eslint-disable-line new-cap
- }
-
- onEmpty() {
- // Instantly resolve if the queue is empty
- if (this.queue.size === 0) {
- return Promise.resolve();
- }
-
- return new Promise(resolve => {
- const existingResolve = this._resolveEmpty;
- this._resolveEmpty = () => {
- existingResolve();
- resolve();
- };
- });
- }
-
- onIdle() {
- // Instantly resolve if none pending
- if (this._pendingCount === 0) {
- return Promise.resolve();
- }
-
- return new Promise(resolve => {
- const existingResolve = this._resolveIdle;
- this._resolveIdle = () => {
- existingResolve();
- resolve();
- };
- });
- }
-
- get size() {
- return this.queue.size;
- }
-
- get pending() {
- return this._pendingCount;
- }
-
- get isPaused() {
- return this._isPaused;
- }
-}
-
-module.exports = PQueue;
diff --git a/node_modules/@slack/socket-mode/node_modules/p-queue/license b/node_modules/@slack/socket-mode/node_modules/p-queue/license
deleted file mode 100644
index e7af2f7..0000000
--- a/node_modules/@slack/socket-mode/node_modules/p-queue/license
+++ /dev/null
@@ -1,9 +0,0 @@
-MIT License
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/@slack/socket-mode/node_modules/p-queue/package.json b/node_modules/@slack/socket-mode/node_modules/p-queue/package.json
deleted file mode 100644
index ab9d56d..0000000
--- a/node_modules/@slack/socket-mode/node_modules/p-queue/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "name": "p-queue",
- "version": "2.4.2",
- "description": "Promise queue with concurrency control",
- "license": "MIT",
- "repository": "sindresorhus/p-queue",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "maintainers": [
- {
- "name": "Vsevolod Strukchinsky",
- "email": "floatdrop@gmail.com",
- "url": "github.com/floatdrop"
- }
- ],
- "engines": {
- "node": ">=4"
- },
- "scripts": {
- "test": "xo && ava",
- "bench": "node bench.js"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "promise",
- "queue",
- "enqueue",
- "limit",
- "limited",
- "concurrency",
- "throttle",
- "throat",
- "rate",
- "batch",
- "ratelimit",
- "priority",
- "priorityqueue",
- "fifo",
- "job",
- "task",
- "async",
- "await",
- "promises",
- "bluebird"
- ],
- "devDependencies": {
- "ava": "*",
- "benchmark": "^2.1.2",
- "delay": "^2.0.0",
- "in-range": "^1.0.0",
- "random-int": "^1.0.0",
- "time-span": "^2.0.0",
- "xo": "*"
- }
-}
diff --git a/node_modules/@slack/socket-mode/node_modules/p-queue/readme.md b/node_modules/@slack/socket-mode/node_modules/p-queue/readme.md
deleted file mode 100644
index 22bb6b9..0000000
--- a/node_modules/@slack/socket-mode/node_modules/p-queue/readme.md
+++ /dev/null
@@ -1,235 +0,0 @@
-# p-queue [![Build Status](https://travis-ci.org/sindresorhus/p-queue.svg?branch=master)](https://travis-ci.org/sindresorhus/p-queue)
-
-> Promise queue with concurrency control
-
-Useful for rate-limiting async (or sync) operations. For example, when interacting with a REST API or when doing CPU/memory intensive tasks.
-
-
-## Install
-
-```
-$ npm install p-queue
-```
-
-
-## Usage
-
-Here we run only one promise at the time. For example, set `concurrency` to 4 to run four promises at the time.
-
-```js
-const PQueue = require('p-queue');
-const got = require('got');
-
-const queue = new PQueue({concurrency: 1});
-
-queue.add(() => got('sindresorhus.com')).then(() => {
- console.log('Done: sindresorhus.com');
-});
-
-queue.add(() => got('ava.li')).then(() => {
- console.log('Done: ava.li');
-});
-
-getUnicornTask().then(task => queue.add(task)).then(() => {
- console.log('Done: Unicorn task');
-});
-```
-
-
-## API
-
-### PQueue([options])
-
-Returns a new `queue` instance.
-
-#### options
-
-Type: `Object`
-
-##### concurrency
-
-Type: `number`
-Default: `Infinity`
-Minimum: `1`
-
-Concurrency limit.
-
-##### autoStart
-
-Type: `boolean`
-Default: `true`
-
-Whether queue tasks within concurrency limit, are auto-executed as soon as they're added.
-
-##### queueClass
-
-Type: `Function`
-
-Class with a `enqueue` and `dequeue` method, and a `size` getter. See the [Custom QueueClass](#custom-queueclass) section.
-
-### queue
-
-`PQueue` instance.
-
-#### .add(fn, [options])
-
-Adds a sync or async task to the queue. Always returns a promise.
-
-##### fn
-
-Type: `Function`
-
-Promise-returning/async function.
-
-#### options
-
-Type: `Object`
-
-##### priority
-
-Type: `number`
-Default: `0`
-
-Priority of operation. Operations with greater priority will be scheduled first.
-
-#### .addAll(fns, [options])
-
-Same as `.add()`, but accepts an array of sync or async functions and returns a promise that resolves when all functions are resolved.
-
-#### .pause()
-
-Put queue execution on hold.
-
-#### .start()
-
-Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)
-
-#### .onEmpty()
-
-Returns a promise that settles when the queue becomes empty.
-
-Can be called multiple times. Useful if you for example add additional items at a later time.
-
-#### .onIdle()
-
-Returns a promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.
-
-The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.
-
-#### .clear()
-
-Clear the queue.
-
-#### .size
-
-Size of the queue.
-
-#### .pending
-
-Number of pending promises.
-
-#### .isPaused
-
-Whether the queue is currently paused.
-
-## Advanced example
-
-A more advanced example to help you understand the flow.
-
-```js
-const delay = require('delay');
-const PQueue = require('p-queue');
-
-const queue = new PQueue({concurrency: 1});
-
-delay(200).then(() => {
- console.log(`8. Pending promises: ${queue.pending}`);
- //=> '8. Pending promises: 0'
-
- queue.add(() => Promise.resolve('🐙')).then(console.log.bind(null, '11. Resolved'));
-
- console.log('9. Added 🐙');
-
- console.log(`10. Pending promises: ${queue.pending}`);
- //=> '10. Pending promises: 1'
-
- queue.onIdle().then(() => {
- console.log('12. All work is done');
- });
-});
-
-queue.add(() => Promise.resolve('🦄')).then(console.log.bind(null, '5. Resolved'));
-console.log('1. Added 🦄');
-
-queue.add(() => Promise.resolve('🐴')).then(console.log.bind(null, '6. Resolved'));
-console.log('2. Added 🐴');
-
-queue.onEmpty().then(() => {
- console.log('7. Queue is empty');
-});
-
-console.log(`3. Queue size: ${queue.size}`);
-//=> '3. Queue size: 1`
-console.log(`4. Pending promises: ${queue.pending}`);
-//=> '4. Pending promises: 1'
-```
-
-```
-$ node example.js
-1. Added 🦄
-2. Added 🐴
-3. Queue size: 1
-4. Pending promises: 1
-5. Resolved 🦄
-6. Resolved 🐴
-7. Queue is empty
-8. Pending promises: 0
-9. Added 🐙
-10. Pending promises: 1
-11. Resolved 🐙
-12. All work is done
-```
-
-
-## Custom QueueClass
-
-For implementing more complex scheduling policies, you can provide a QueueClass in the options:
-
-```js
-class QueueClass {
- constructor() {
- this._queue = [];
- }
- enqueue(run, options) {
- this._queue.push(run);
- }
- dequeue() {
- return this._queue.shift();
- }
- get size() {
- return this._queue.length;
- }
-}
-```
-
-`p-queue` will call corresponding methods to put and get operations from this queue.
-
-
-## Related
-
-- [p-limit](https://github.com/sindresorhus/p-limit) - Run multiple promise-returning & async functions with limited concurrency
-- [p-throttle](https://github.com/sindresorhus/p-throttle) - Throttle promise-returning & async functions
-- [p-debounce](https://github.com/sindresorhus/p-debounce) - Debounce promise-returning & async functions
-- [p-all](https://github.com/sindresorhus/p-all) - Run promise-returning & async functions concurrently with optional limited concurrency
-- [More…](https://github.com/sindresorhus/promise-fun)
-
-
-## Created by
-
-- [Sindre Sorhus](https://github.com/sindresorhus)
-- [Vsevolod Strukchinsky](https://github.com/floatdrop)
-
-
-## License
-
-MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/@slack/socket-mode/package.json b/node_modules/@slack/socket-mode/package.json
index 7be6ebd..14a72a5 100644
--- a/node_modules/@slack/socket-mode/package.json
+++ b/node_modules/@slack/socket-mode/package.json
@@ -1,6 +1,6 @@
{
"name": "@slack/socket-mode",
- "version": "1.3.1",
+ "version": "1.3.5",
"description": "Official library for using the Slack Platform's Socket Mode API",
"author": "Slack Technologies, LLC",
"license": "MIT",
@@ -40,19 +40,17 @@
"build": "npm run build:clean && tsc",
"build:clean": "shx rm -rf ./dist ./coverage ./.nyc_output",
"lint": "eslint --ext .ts src",
- "test": "npm run lint && npm run build && nyc mocha --config .mocharc.json src/*.spec.js",
+ "test": "npm run lint && npm run build && nyc mocha --config .mocharc.json src/*.spec.js && npm run test:integration",
+ "test:integration": "mocha --config .mocharc.json test/integration.spec.js",
"watch": "npx nodemon --watch 'src' --ext 'ts' --exec npm run build"
},
"dependencies": {
"@slack/logger": "^3.0.0",
- "@slack/web-api": "^6.2.3",
+ "@slack/web-api": "^6.11.2",
"@types/node": ">=12.0.0",
- "@types/p-queue": "^2.3.2",
"@types/ws": "^7.4.7",
- "eventemitter3": "^3.1.0",
+ "eventemitter3": "^5",
"finity": "^0.5.4",
- "p-cancelable": "^1.1.0",
- "p-queue": "^2.4.2",
"ws": "^7.5.3"
},
"devDependencies": {
diff --git a/node_modules/@slack/types/LICENSE b/node_modules/@slack/types/LICENSE
new file mode 100644
index 0000000..b6adbf7
--- /dev/null
+++ b/node_modules/@slack/types/LICENSE
@@ -0,0 +1,23 @@
+MIT License
+
+Copyright (c) 2014- Slack Technologies, LLC
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
diff --git a/node_modules/@slack/types/README.md b/node_modules/@slack/types/README.md
index e69de29..c02d8c2 100644
--- a/node_modules/@slack/types/README.md
+++ b/node_modules/@slack/types/README.md
@@ -0,0 +1,32 @@
+# Slack Types
+
+The `@slack/types` package is intended to be used as a central location for modeling Slack interfaces, types, payloads
+and constructs of all kinds.
+
+## Requirements
+
+This package supports Node v18 and higher. It's highly recommended to use [the latest LTS version of
+node](https://github.com/nodejs/Release#release-schedule), and the documentation is written using syntax and features
+from that version.
+
+## Installation
+
+```shell
+$ npm install @slack/types
+```
+
+## Usage
+
+This package exports many different types and interfaces. It is best to peruse the source code to see what is
+available, but a brief list:
+
+- Block Kit blocks and elements (`./src/block-kit/*`)
+- Message attachments (`./src/message-attachments.ts`)
+
+## Getting Help
+
+If you get stuck, we're here to help. The following are the best ways to get assistance working through your issue:
+
+ * [Issue Tracker](http://github.com/slackapi/node-slack-sdk/issues) for questions, feature requests, bug reports and
+ general discussion related to this package. Try searching before you create a new issue.
+ * [Email us](mailto:developers@slack.com) in Slack developer support: `developers@slack.com`
diff --git a/node_modules/@slack/types/dist/block-kit/block-elements.d.ts b/node_modules/@slack/types/dist/block-kit/block-elements.d.ts
new file mode 100644
index 0000000..a00cb4f
--- /dev/null
+++ b/node_modules/@slack/types/dist/block-kit/block-elements.d.ts
@@ -0,0 +1,904 @@
+import { Actionable, Confirmable, Dispatchable, Focusable, Placeholdable, RichTextStyleable } from './extensions';
+import { Option, PlainTextElement, PlainTextOption, UrlImageObject, SlackFileImageObject } from './composition-objects';
+import { RichTextBlock } from './blocks';
+/**
+ * @description Allows users a direct path to performing basic actions.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#button Button element reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface Button extends Actionable, Confirmable {
+ /**
+ * @description The type of element. In this case `type` is always `button`.
+ */
+ type: 'button';
+ /**
+ * @description A {@link PlainTextElement} that defines the button's text. `text` may truncate with ~30 characters.
+ * Maximum length for the text in this field is 75 characters.
+ */
+ text: PlainTextElement;
+ /**
+ * @description The value to send along with the {@link https://api.slack.com/interactivity/handling#payloads interaction payload}.
+ * Maximum length for this field is 2000 characters.
+ */
+ value?: string;
+ /**
+ * @description A URL to load in the user's browser when the button is clicked. Maximum length for this field is 3000
+ * characters. If you're using `url`, you'll still receive an {@link https://api.slack.com/interactivity/handling#payloads interaction payload}
+ * and will need to send an {@link https://api.slack.com/interactivity/handling#acknowledgment_response acknowledgement response}.
+ */
+ url?: string;
+ /**
+ * @description Decorates buttons with alternative visual color schemes. Use this option with restraint.
+ * `primary` gives buttons a green outline and text, ideal for affirmation or confirmation actions. `primary` should
+ * only be used for one button within a set.
+ * `danger` gives buttons a red outline and text, and should be used when the action is destructive. Use `danger` even
+ * more sparingly than primary.
+ * If you don't include this field, the default button style will be used.
+ */
+ style?: 'danger' | 'primary';
+ /**
+ * @description A label for longer descriptive text about a button element. This label will be read out by screen
+ * readers instead of the button `text` object. Maximum length for this field is 75 characters.
+ */
+ accessibility_label?: string;
+}
+/**
+ * @description Allows users to choose multiple items from a list of options.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#checkboxes Checkboxes element reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface Checkboxes extends Actionable, Confirmable, Focusable {
+ /**
+ * @description The type of element. In this case `type` is always `checkboxes`.
+ */
+ type: 'checkboxes';
+ /**
+ * @description An array of {@link Option} objects that exactly matches one or more of the options within `options`.
+ * These options will be selected when the checkbox group initially loads.
+ */
+ initial_options?: Option[];
+ /**
+ * @description An array of {@link Option} objects. A maximum of 10 options are allowed.
+ */
+ options: Option[];
+}
+/**
+ * @description Allows users to select a date from a calendar style UI.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#datepicker Date picker element reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface Datepicker extends Actionable, Confirmable, Focusable, Placeholdable {
+ /**
+ * @description The type of element. In this case `type` is always `datepicker`.
+ */
+ type: 'datepicker';
+ /**
+ * @description The initial date that is selected when the element is loaded.
+ * This should be in the format `YYYY-MM-DD`.
+ */
+ initial_date?: string;
+}
+/**
+ * @description Allows users to select both a date and a time of day, formatted as a Unix timestamp. On desktop
+ * clients, this time picker will take the form of a dropdown list and the date picker will take the form of a dropdown
+ * calendar. Both options will have free-text entry for precise choices. On mobile clients, the time picker and date
+ * picker will use native UIs.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#datetimepicker Datetime picker element reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface DateTimepicker extends Actionable, Confirmable, Focusable {
+ /**
+ * @description The type of element. In this case `type` is always `datetimepicker`.
+ */
+ type: 'datetimepicker';
+ /**
+ * @description The initial date and time that is selected when the element is loaded, represented as a UNIX
+ * timestamp in seconds. This should be in the format of 10 digits, for example `1628633820` represents the date and
+ * time August 10th, 2021 at 03:17pm PST.
+ */
+ initial_date_time?: number;
+}
+/**
+ * @description Allows user to enter an email into a single-line field.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#email Email input element reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface EmailInput extends Actionable, Dispatchable, Focusable, Placeholdable {
+ /**
+ * @description The type of element. In this case `type` is always `email_text_input`.
+ */
+ type: 'email_text_input';
+ /**
+ * @description The initial value in the email input when it is loaded.
+ */
+ initial_value?: string;
+}
+/**
+ * @description Allows user to upload files. In order to use the `file_input` element within your app,
+ * your app must have the `files:read` scope.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#file_input File input element reference}.
+ */
+export interface FileInput extends Actionable {
+ /**
+ * @description The type of element. In this case `type` is always `file_input`.
+ */
+ type: 'file_input';
+ /**
+ * @description An array of valid {@link https://api.slack.com/types/file#types file extensions} that will be accepted
+ * for this element. All file extensions will be accepted if `filetypes` is not specified. This validation is provided
+ * for convenience only, and you should perform your own file type validation based on what you expect to receive.
+ */
+ filetypes?: string[];
+ /**
+ * @description Maximum number of files that can be uploaded for this `file_input` element. Minimum of `1`, maximum of
+ * `10`. Defaults to `10` if not specified.
+ */
+ max_files?: number;
+}
+/**
+ * @description Displays an image as part of a larger block of content. Use this `image` block if you want a block with
+ * only an image in it.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#image Image element reference}.
+ */
+export type ImageElement = {
+ /**
+ * @description The type of element. In this case `type` is always `image`.
+ */
+ type: 'image';
+ /**
+ * @description A plain-text summary of the image. This should not contain any markup.
+ */
+ alt_text: string;
+} & (UrlImageObject | SlackFileImageObject);
+/**
+ * @description Allows users to choose an option from a drop down menu.
+ * The select menu also includes type-ahead functionality, where a user can type a part or all of an option string to
+ * filter the list. There are different types of select menu elements that depend on different data sources for their
+ * lists of options: {@link StaticSelect}, {@link ExternalSelect}, {@link UsersSelect}, {@link ConversationsSelect},
+ * {@link ChannelsSelect}.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#select Select menu element reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export type Select = UsersSelect | StaticSelect | ConversationsSelect | ChannelsSelect | ExternalSelect;
+/**
+ * @description Allows users to select multiple items from a list of options.
+ * Just like regular {@link Select}, multi-select menus also include type-ahead functionality, where a user can type a
+ * part or all of an option string to filter the list.
+ * There are different types of multi-select menu that depend on different data sources for their lists of options:
+ * {@link MultiStaticSelect}, {@link MultiExternalSelect}, {@link MultiUsersSelect}, {@link MultiConversationsSelect},
+ * {@link MultiChannelsSelect}.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#multi_select Multi-select menu element reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export type MultiSelect = MultiUsersSelect | MultiStaticSelect | MultiConversationsSelect | MultiChannelsSelect | MultiExternalSelect;
+/**
+ * @description This select menu will populate its options with a list of Slack users visible to the current user in the
+ * active workspace.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#users_select Select menu of users reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface UsersSelect extends Actionable, Confirmable, Focusable, Placeholdable {
+ /**
+ * @description The type of element. In this case `type` is always `users_select`.
+ */
+ type: 'users_select';
+ /**
+ * @description The user ID of any valid user to be pre-selected when the menu loads.
+ */
+ initial_user?: string;
+}
+/**
+ * @description This multi-select menu will populate its options with a list of Slack users visible to the current user
+ * in the active workspace.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#users_multi_select Multi-select menu of users reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface MultiUsersSelect extends Actionable, Confirmable, Focusable, Placeholdable {
+ /**
+ * @description The type of element. In this case `type` is always `multi_users_select`.
+ */
+ type: 'multi_users_select';
+ /**
+ * @description An array of user IDs of any valid users to be pre-selected when the menu loads.
+ */
+ initial_users?: string[];
+ /**
+ * @description Specifies the maximum number of items that can be selected in the menu. Minimum number is `1`.
+ */
+ max_selected_items?: number;
+}
+/**
+ * @description This is the simplest form of select menu, with a static list of options passed in when defining the
+ * element.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#static_select Select menu of static options reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface StaticSelect extends Actionable, Confirmable, Focusable, Placeholdable {
+ /**
+ * @description The type of element. In this case `type` is always `static_select`.
+ */
+ type: 'static_select';
+ /**
+ * @description A single option that exactly matches one of the options within `options` or `option_groups`.
+ * This option will be selected when the menu initially loads.
+ */
+ initial_option?: PlainTextOption;
+ /**
+ * @description An array of {@link PlainTextOption}. Maximum number of options is 100. If `option_groups` is
+ * specified, this field should not be.
+ */
+ options?: PlainTextOption[];
+ /**
+ * @description An array of option group objects. Maximum number of option groups is 100. If `options` is specified,
+ * this field should not be.
+ */
+ option_groups?: {
+ label: PlainTextElement;
+ options: PlainTextOption[];
+ }[];
+}
+/**
+ * @description This is the simplest form of select menu, with a static list of options passed in when defining the
+ * element.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#static_multi_select Multi-select menu of static options reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface MultiStaticSelect extends Actionable, Confirmable, Focusable, Placeholdable {
+ /**
+ * @description The type of element. In this case `type` is always `multi_static_select`.
+ */
+ type: 'multi_static_select';
+ /**
+ * @description An array of option objects that exactly match one or more of the options within `options` or
+ * `option_groups`. These options will be selected when the menu initially loads.
+ */
+ initial_options?: PlainTextOption[];
+ /**
+ * @description An array of {@link PlainTextOption}. Maximum number of options is 100. If `option_groups` is
+ * specified, this field should not be.
+ */
+ options?: PlainTextOption[];
+ /**
+ * @description An array of option group objects. Maximum number of option groups is 100. If `options` is specified,
+ * this field should not be.
+ */
+ option_groups?: {
+ label: PlainTextElement;
+ options: PlainTextOption[];
+ }[];
+ /**
+ * @description Specifies the maximum number of items that can be selected in the menu. Minimum number is 1.
+ */
+ max_selected_items?: number;
+}
+/**
+ * @description This select menu will populate its options with a list of public and private channels, DMs, and MPIMs
+ * visible to the current user in the active workspace.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#conversations_select Select menu of conversations reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface ConversationsSelect extends Actionable, Confirmable, Focusable, Placeholdable {
+ /**
+ * @description The type of element. In this case `type` is always `conversations_select`.
+ */
+ type: 'conversations_select';
+ /**
+ * @description The ID of any valid conversation to be pre-selected when the menu loads. If
+ * `default_to_current_conversation` is also supplied, `initial_conversation` will take precedence.
+ */
+ initial_conversation?: string;
+ /**
+ * @description When set to `true`, the {@link https://api.slack.com/reference/interaction-payloads/views#view_submission `view_submission` payload}
+ * from the menu's parent view will contain a `response_url`. This `response_url` can be used for
+ * {@link https://api.slack.com/interactivity/handling#message_responses message responses}. The target conversation
+ * for the message will be determined by the value of this select menu.
+ */
+ response_url_enabled?: boolean;
+ /**
+ * @description Pre-populates the select menu with the conversation that the user was viewing when they opened the
+ * modal, if available. Default is `false`.
+ */
+ default_to_current_conversation?: boolean;
+ /**
+ * @description A filter object that reduces the list of available conversations using the specified criteria.
+ */
+ filter?: {
+ include?: ('im' | 'mpim' | 'private' | 'public')[];
+ exclude_external_shared_channels?: boolean;
+ exclude_bot_users?: boolean;
+ };
+}
+/**
+ * @description This multi-select menu will populate its options with a list of public and private channels, DMs, and
+ * MPIMs visible to the current user in the active workspace.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#conversation_multi_select Multi-select menu of conversations reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface MultiConversationsSelect extends Actionable, Confirmable, Focusable, Placeholdable {
+ /**
+ * @description The type of element. In this case `type` is always `conversations_select`.
+ */
+ type: 'multi_conversations_select';
+ /**
+ * @description An array of one or more IDs of any valid conversations to be pre-selected when the menu loads. If
+ * `default_to_current_conversation` is also supplied, `initial_conversation` will be ignored.
+ */
+ initial_conversations?: string[];
+ /**
+ * @description Specifies the maximum number of items that can be selected in the menu. Minimum number is 1.
+ */
+ max_selected_items?: number;
+ /**
+ * @description Pre-populates the select menu with the conversation that the user was viewing when they opened the
+ * modal, if available. Default is `false`.
+ */
+ default_to_current_conversation?: boolean;
+ /**
+ * @description A filter object that reduces the list of available conversations using the specified criteria.
+ */
+ filter?: {
+ include?: ('im' | 'mpim' | 'private' | 'public')[];
+ exclude_external_shared_channels?: boolean;
+ exclude_bot_users?: boolean;
+ };
+}
+/**
+ * @description This select menu will populate its options with a list of public channels visible to the current user
+ * in the active workspace.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#channels_select Select menu of public channels reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface ChannelsSelect extends Actionable, Confirmable, Focusable, Placeholdable {
+ /**
+ * @description The type of element. In this case `type` is always `channels_select`.
+ */
+ type: 'channels_select';
+ /**
+ * @description The ID of any valid public channel to be pre-selected when the menu loads.
+ */
+ initial_channel?: string;
+ /**
+ * @description When set to `true`, the {@link https://api.slack.com/reference/interaction-payloads/views#view_submission `view_submission` payload}
+ * from the menu's parent view will contain a `response_url`. This `response_url` can be used for
+ * {@link https://api.slack.com/interactivity/handling#message_responses message responses}. The target channel
+ * for the message will be determined by the value of this select menu.
+ */
+ response_url_enabled?: boolean;
+}
+/**
+ * @description This multi-select menu will populate its options with a list of public channels visible to the current
+ * user in the active workspace.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#channel_multi_select Multi-select menu of public channels reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface MultiChannelsSelect extends Actionable, Confirmable, Focusable, Placeholdable {
+ /**
+ * @description The type of element. In this case `type` is always `multi_channels_select`.
+ */
+ type: 'multi_channels_select';
+ /**
+ * @description An array of one or more IDs of any valid public channel to be pre-selected when the menu loads.
+ */
+ initial_channels?: string[];
+ /**
+ * @description Specifies the maximum number of items that can be selected in the menu. Minimum number is 1.
+ */
+ max_selected_items?: number;
+}
+/**
+ * @description This select menu will load its options from an external data source, allowing for a dynamic list of
+ * options.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#external_select Select menu of external data source reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface ExternalSelect extends Actionable, Confirmable, Focusable, Placeholdable {
+ /**
+ * @description The type of element. In this case `type` is always `external_select`.
+ */
+ type: 'external_select';
+ /**
+ * @description A single option to be selected when the menu initially loads.
+ */
+ initial_option?: PlainTextOption;
+ /**
+ * @description When the typeahead field is used, a request will be sent on every character change. If you prefer
+ * fewer requests or more fully ideated queries, use the `min_query_length` attribute to tell Slack the fewest number
+ * of typed characters required before dispatch. The default value is `3`.
+ */
+ min_query_length?: number;
+}
+/**
+ * @description This menu will load its options from an external data source, allowing for a dynamic list of options.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#external_multi_select Multi-select menu of external data source reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface MultiExternalSelect extends Actionable, Confirmable, Focusable, Placeholdable {
+ /**
+ * @description The type of element. In this case `type` is always `multi_external_select`.
+ */
+ type: 'multi_external_select';
+ /**
+ * @description An array of options to be selected when the menu initially loads.
+ */
+ initial_options?: PlainTextOption[];
+ /**
+ * @description When the typeahead field is used, a request will be sent on every character change. If you prefer
+ * fewer requests or more fully ideated queries, use the `min_query_length` attribute to tell Slack the fewest number
+ * of typed characters required before dispatch. The default value is `3`.
+ */
+ min_query_length?: number;
+ /**
+ * @description Specifies the maximum number of items that can be selected in the menu. Minimum number is 1.
+ */
+ max_selected_items?: number;
+}
+/**
+ * @description Allows user to enter a number into a single-line field. The number input element accepts both whole and
+ * decimal numbers. For example, 0.25, 5.5, and -10 are all valid input values. Decimal numbers are only allowed when
+ * `is_decimal_allowed` is equal to `true`.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#number Number input element reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface NumberInput extends Actionable, Dispatchable, Focusable, Placeholdable {
+ /**
+ * @description The type of element. In this case `type` is always `number_input`.
+ */
+ type: 'number_input';
+ /**
+ * @description Decimal numbers are allowed if this property is `true`, set the value to `false` otherwise.
+ */
+ is_decimal_allowed: boolean;
+ /**
+ * @description The initial value in the input when it is loaded.
+ */
+ initial_value?: string;
+ /**
+ * @description The minimum value, cannot be greater than `max_value`.
+ */
+ min_value?: string;
+ /**
+ * @description The maximum value, cannot be less than `min_value`.
+ */
+ max_value?: string;
+}
+/**
+ * @description Allows users to press a button to view a list of options.
+ * Unlike the select menu, there is no typeahead field, and the button always appears with an ellipsis ('…') rather
+ * than customizable text. As such, it is usually used if you want a more compact layout than a select menu, or to
+ * supply a list of less visually important actions after a row of buttons. You can also specify simple URL links as
+ * overflow menu options, instead of actions.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#overflow Overflow menu element reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface Overflow extends Actionable, Confirmable {
+ /**
+ * @description The type of element. In this case `type` is always `number_input`.
+ */
+ type: 'overflow';
+ /**
+ * @description An array of up to 5 {@link PlainTextOption} to display in the menu.
+ */
+ options: PlainTextOption[];
+}
+/**
+ * @description Allows users to enter freeform text data into a single-line or multi-line field.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#input Plain-text input element reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface PlainTextInput extends Actionable, Dispatchable, Focusable, Placeholdable {
+ /**
+ * @description The type of element. In this case `type` is always `plain_text_input`.
+ */
+ type: 'plain_text_input';
+ /**
+ * @description The initial value in the plain-text input when it is loaded.
+ */
+ initial_value?: string;
+ /**
+ * @description Indicates whether the input will be a single line (`false`) or a larger textarea (`true`).
+ * Defaults to `false`.
+ */
+ multiline?: boolean;
+ /**
+ * @description The minimum length of input that the user must provide. If the user provides less, they will receive
+ * an error. Maximum value is 3000.
+ */
+ min_length?: number;
+ /**
+ * @description The maximum length of input that the user can provide. If the user provides more,
+ * they will receive an error.
+ */
+ max_length?: number;
+}
+/**
+ * @description Allows users to choose one item from a list of possible options.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#radio Radio button group element reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface RadioButtons extends Actionable, Confirmable, Focusable {
+ /**
+ * @description The type of element. In this case `type` is always `radio_buttons`.
+ */
+ type: 'radio_buttons';
+ /**
+ * @description An {@link Option} object that exactly matches one of the options within `options`. This option will
+ * be selected when the radio button group initially loads.
+ */
+ initial_option?: Option;
+ /**
+ * @description An array of {@link Option} objects. A maximum of 10 options are allowed.
+ */
+ options: Option[];
+}
+/**
+ * @description Allows users to choose a time from a rich dropdown UI. On desktop clients, this time picker will take
+ * the form of a dropdown list with free-text entry for precise choices. On mobile clients, the time picker will use
+ * native time picker UIs.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#timepicker Time picker element reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface Timepicker extends Actionable, Confirmable, Focusable, Placeholdable {
+ /**
+ * @description The type of element. In this case `type` is always `timepicker`.
+ */
+ type: 'timepicker';
+ /**
+ * @description The initial time that is selected when the element is loaded. This should be in the format `HH:mm`,
+ * where `HH` is the 24-hour format of an hour (00 to 23) and `mm` is minutes with leading zeros (00 to 59),
+ * for example 22:25 for 10:25pm.
+ */
+ initial_time?: string;
+ /**
+ * @description A string in the IANA format, e.g. 'America/Chicago'. The timezone is displayed to end users as hint
+ * text underneath the time picker. It is also passed to the app upon certain interactions, such as view_submission.
+ */
+ timezone?: string;
+}
+/**
+ * @description Allows user to enter a URL into a single-line field.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#url URL input element reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface URLInput extends Actionable, Dispatchable, Focusable, Placeholdable {
+ /**
+ * @description The type of element. In this case `type` is always `url_text_input`.
+ */
+ type: 'url_text_input';
+ /**
+ * @description The initial value in the URL input when it is loaded.
+ */
+ initial_value?: string;
+}
+/**
+ * @description Allows users to run a {@link https://api.slack.com/automation/triggers/link#workflow_buttons link trigger} with customizable inputs.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#workflow_button Workflow button element reference}.
+ */
+export interface WorkflowButton extends Confirmable {
+ /**
+ * @description The type of element. In this case `type` is always `workflow_button`.
+ */
+ type: 'workflow_button';
+ /**
+ * @description A {@link PlainTextElement} that defines the button's text. `text` may truncate with ~30 characters.
+ * Maximum length for the `text` in this field is 75 characters.
+ */
+ text: PlainTextElement;
+ /**
+ * @description A workflow object that contains details about the workflow that will run when the button is clicked.
+ */
+ workflow: {
+ /**
+ * @description Properties of the {@link https://api.slack.com/automation/triggers/link#workflow_buttons link trigger}
+ * that will be invoked via this button.
+ */
+ trigger: {
+ /**
+ * @description The trigger URL of the {@link https://api.slack.com/automation/triggers/link#workflow_buttons link trigger}
+ */
+ url: string;
+ /**
+ * @description List of customizable input parameters and their values. Should match input parameters specified on
+ * the provided trigger.
+ */
+ customizable_input_parameters?: {
+ /**
+ * @description Name of the customizable input, which should be the name of a workflow input parameter for the
+ * matching workflow of the link trigger.
+ */
+ name: string;
+ /**
+ * @description The value of the customizable input parameter. The type of the value is expected to match the
+ * specified type for the matching workflow input parameter.
+ */
+ value: string;
+ }[];
+ };
+ };
+ /**
+ * @description Decorates buttons with alternative visual color schemes. Use this option with restraint.
+ * `primary` gives buttons a green outline and text, ideal for affirmation or confirmation actions. `primary` should
+ * only be used for one button within a set.
+ * `danger` gives buttons a red outline and text, and should be used when the action is destructive. Use `danger` even
+ * more sparingly than primary.
+ * If you don't include this field, the default button style will be used.
+ */
+ style?: 'danger' | 'primary';
+ /**
+ * @description A label for longer descriptive text about a button element. This label will be read out by screen
+ * readers instead of the button `text` object. Maximum length for this field is 75 characters.
+ */
+ accessibility_label?: string;
+}
+/**
+ * @description A broadcast mention element for use in a rich text message.
+ */
+export interface RichTextBroadcastMention extends RichTextStyleable {
+ /**
+ * @description The type of element. In this case `type` is always `broadcast`.
+ */
+ type: 'broadcast';
+ /**
+ * @description The range of the broadcast; can be one of `here`, `channel` and `everyone`.
+ */
+ range: 'here' | 'channel' | 'everyone';
+}
+/**
+ * @description A hex color element for use in a rich text message.
+ */
+export interface RichTextColor extends RichTextStyleable {
+ /**
+ * @description The type of element. In this case `type` is always `color`.
+ */
+ type: 'color';
+ /**
+ * @description The hex value for the color.
+ */
+ value: string;
+}
+/**
+ * @description A channel mention element for use in a rich text message.
+ */
+export interface RichTextChannelMention extends RichTextStyleable {
+ /**
+ * @description The type of element. In this case `type` is always `channel`.
+ */
+ type: 'channel';
+ /**
+ * @description The encoded channel ID, e.g. C1234ABCD.
+ */
+ channel_id: string;
+}
+/**
+ * @description A date element for use in a rich text message.
+ */
+export interface RichTextDate extends RichTextStyleable {
+ /**
+ * @description The type of element. In this case `type` is always `date`.
+ */
+ type: 'date';
+ /**
+ * @description A UNIX timestamp for the date to be displayed in seconds.
+ */
+ timestamp: number;
+ /**
+ * @description A template string containing curly-brace-enclosed tokens to substitute your provided `timestamp`
+ * in a particularly-formatted way. For example: `Posted at {date_long}`. The available date formatting tokens are:
+ * - `{day_divider_pretty}`: Shows `today`, `yesterday` or `tomorrow` if applicable. Otherwise, if the date is in
+ * current year, uses the `{date_long}` format without the year. Otherwise, falls back to using the `{date_long}`
+ * format.
+ * - `{date_num}`: Shows date as YYYY-MM-DD.
+ * - `{date_slash}`: Shows date as DD/MM/YYYY (subject to locale preferences).
+ * - `{date_long}`: Shows date as a long-form sentence including day-of-week, e.g. `Monday, December 23rd, 2013`.
+ * - `{date_long_full}`: Shows date as a long-form sentence without day-of-week, e.g. `August 9, 2020`.
+ * - `{date_long_pretty}`: Shows `yesterday`, `today` or `tomorrow`, otherwise uses the `{date_long}` format.
+ * - `{date}`: Same as `{date_long_full}` but without the year.
+ * - `{date_pretty}`: Shows `today`, `yesterday` or `tomorrow` if applicable, otherwise uses the `{date}` format.
+ * - `{date_short}`: Shows date using short month names without day-of-week, e.g. `Aug 9, 2020`.
+ * - `{date_short_pretty}`: Shows `today`, `yesterday` or `tomorrow` if applicable, otherwise uses the `{date_short}`
+ * format.
+ * - `{time}`: Depending on user preferences, shows just the time-of-day portion of the timestamp using either 12 or
+ * 24 hour clock formats, e.g. `2:34 PM` or `14:34`.
+ * - `{time_secs}`: Depending on user preferences, shows just the time-of-day portion of the timestamp using either 12
+ * or 24 hour clock formats, including seconds, e.g. `2:34:56 PM` or `14:34:56`.
+ * - `{ago}`: A human-readable period of time, e.g. `3 minutes ago`, `4 hours ago`, `2 days ago`.
+ * TODO: test/document `{member_local_time}`, `{status_expiration}` and `{calendar_header}`
+ */
+ format: string;
+ /**
+ * @description URL to link the entire `format` string to.
+ */
+ url?: string;
+ /**
+ * @description Text to display in place of the date should parsing, formatting or displaying fails.
+ */
+ fallback?: string;
+}
+/**
+ * @description An emoji element for use in a rich text message.
+ */
+export interface RichTextEmoji extends RichTextStyleable {
+ /**
+ * @description The type of element. In this case `type` is always `emoji`.
+ */
+ type: 'emoji';
+ /**
+ * @description Name of emoji, without colons or skin tones, e.g. `wave`
+ */
+ name: string;
+ /**
+ * @description Lowercase hexadecimal Unicode representation of a standard emoji (not for use with custom emoji).
+ */
+ unicode?: string;
+ /**
+ * @description URL of emoji asset. Only used when sharing custom emoji across workspaces.
+ */
+ url?: string;
+}
+/**
+ * @description A link element for use in a rich text message.
+ */
+export interface RichTextLink extends RichTextStyleable {
+ /**
+ * @description The type of element. In this case `type` is always `link`.
+ */
+ type: 'link';
+ /**
+ * @description The text to link.
+ */
+ text?: string;
+ /**
+ * @description TODO: ?
+ */
+ unsafe?: boolean;
+ /**
+ * @description URL to link to.
+ */
+ url: string;
+}
+/**
+ * @description A workspace or team mention element for use in a rich text message.
+ */
+export interface RichTextTeamMention extends RichTextStyleable {
+ /**
+ * @description The type of element. In this case `type` is always `team`.
+ */
+ type: 'team';
+ /**
+ * @description The encoded team ID, e.g. T1234ABCD.
+ */
+ team_id: string;
+}
+/**
+ * @description A generic text element for use in a rich text message.
+ */
+export interface RichTextText extends RichTextStyleable {
+ /**
+ * @description The type of element. In this case `type` is always `text`.
+ */
+ type: 'text';
+ /**
+ * @description The text to render.
+ */
+ text: string;
+}
+/**
+ * @description A user mention element for use in a rich text message.
+ */
+export interface RichTextUserMention extends RichTextStyleable {
+ /**
+ * @description The type of element. In this case `type` is always `user`.
+ */
+ type: 'user';
+ /**
+ * @description The encoded user ID, e.g. U1234ABCD.
+ */
+ user_id: string;
+}
+/**
+ * @description A usergroup mention element for use in a rich text message.
+ */
+export interface RichTextUsergroupMention extends RichTextStyleable {
+ /**
+ * @description The type of element. In this case `type` is always `usergroup`.
+ */
+ type: 'usergroup';
+ /**
+ * @description The encoded usergroup ID, e.g. S1234ABCD.
+ */
+ usergroup_id: string;
+}
+/**
+ * @description Union of rich text sub-elements for use within rich text blocks.
+ */
+export type RichTextElement = RichTextBroadcastMention | RichTextColor | RichTextChannelMention | RichTextDate | RichTextEmoji | RichTextLink | RichTextTeamMention | RichTextText | RichTextUserMention | RichTextUsergroupMention;
+/**
+ * @description A section block within a rich text field.
+ */
+export interface RichTextSection {
+ /**
+ * @description The type of element. In this case `type` is always `rich_text_section`.
+ */
+ type: 'rich_text_section';
+ elements: RichTextElement[];
+}
+/**
+ * @description A list block within a rich text field.
+ */
+export interface RichTextList {
+ /**
+ * @description The type of element. In this case `type` is always `rich_text_list`.
+ */
+ type: 'rich_text_list';
+ /**
+ * @description An array of {@link RichTextSection} elements comprising each list item.
+ */
+ elements: RichTextSection[];
+ /**
+ * @description The type of list. Can be either `bullet` (the list points are all rendered the same way) or `ordered`
+ * (the list points increase numerically from 1).
+ */
+ style: 'bullet' | 'ordered';
+ /**
+ * @description The style of the list points. Can be a number from `0` (default) to `8`. Yields a different character
+ * or characters rendered as the list points. Also affected by the `style` property.
+ */
+ indent?: number;
+ /**
+ * @description Whether to render a quote-block-like border on the inline side of the list. `0` renders no border
+ * while `1` renders a border.
+ */
+ border?: 0 | 1;
+}
+/**
+ * @description A quote block within a rich text field.
+ */
+export interface RichTextQuote {
+ /**
+ * @description The type of element. In this case `type` is always `rich_text_quote`.
+ */
+ type: 'rich_text_quote';
+ /**
+ * @description An array of {@link RichTextElement} comprising the quote block.
+ */
+ elements: RichTextElement[];
+ /**
+ * @description Whether to render a quote-block-like border on the inline side of the text quote.
+ * `0` renders no border, while `1` renders a border. Defaults to `0`.
+ */
+ border?: 0 | 1;
+}
+/**
+ * @description A block of preformatted text within a rich text field.
+ */
+export interface RichTextPreformatted {
+ /**
+ * @description The type of element. In this case `type` is always `rich_text_preformatted`.
+ */
+ type: 'rich_text_preformatted';
+ /**
+ * @description An array of either {@link RichTextLink} or {@link RichTextText} comprising the preformatted text.
+ */
+ elements: (RichTextText | RichTextLink)[];
+ /**
+ * @description Whether to render a quote-block-like border on the inline side of the preformatted text.
+ * `0` renders no border, while `1` renders a border. Defaults to `0`.
+ */
+ border?: 0 | 1;
+}
+/**
+ * @description A rich text input creates a composer/WYSIWYG editor for entering formatted text, offering nearly the
+ * same experience you have writing messages in Slack.
+ * @see {@link https://api.slack.com/reference/block-kit/block-elements#rich_text_input Rich-text input element reference}.
+ * @see {@link https://api.slack.com/interactivity/handling This is an interactive component - see our guide to enabling interactivity}.
+ */
+export interface RichTextInput extends Actionable, Dispatchable, Focusable, Placeholdable {
+ /**
+ * @description The type of element. In this case `type` is always `rich_text_input`.
+ */
+ type: 'rich_text_input';
+ /**
+ * @description Initial contents of the input when it is loaded.
+ */
+ initial_value?: RichTextBlock;
+}
+//# sourceMappingURL=block-elements.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/block-kit/block-elements.d.ts.map b/node_modules/@slack/types/dist/block-kit/block-elements.d.ts.map
new file mode 100644
index 0000000..48b66a2
--- /dev/null
+++ b/node_modules/@slack/types/dist/block-kit/block-elements.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"block-elements.d.ts","sourceRoot":"","sources":["../../src/block-kit/block-elements.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/block-kit/block-elements.js b/node_modules/@slack/types/dist/block-kit/block-elements.js
new file mode 100644
index 0000000..ee4a11f
--- /dev/null
+++ b/node_modules/@slack/types/dist/block-kit/block-elements.js
@@ -0,0 +1,4 @@
+"use strict";
+// This file contains objects documented here: https://api.slack.com/reference/block-kit/block-elements
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=block-elements.js.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/block-kit/block-elements.js.map b/node_modules/@slack/types/dist/block-kit/block-elements.js.map
new file mode 100644
index 0000000..e1fc76b
--- /dev/null
+++ b/node_modules/@slack/types/dist/block-kit/block-elements.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"block-elements.js","sourceRoot":"","sources":["../../src/block-kit/block-elements.ts"],"names":[],"mappings":";AAAA,uGAAuG"}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/block-kit/blocks.d.ts b/node_modules/@slack/types/dist/block-kit/blocks.d.ts
new file mode 100644
index 0000000..fe0bbf3
--- /dev/null
+++ b/node_modules/@slack/types/dist/block-kit/blocks.d.ts
@@ -0,0 +1,237 @@
+import { PlainTextElement, MrkdwnElement, UrlImageObject, SlackFileImageObject } from './composition-objects';
+import { Actionable } from './extensions';
+import { Button, Checkboxes, Datepicker, DateTimepicker, EmailInput, FileInput, ImageElement, MultiSelect, NumberInput, Overflow, PlainTextInput, RadioButtons, Select, Timepicker, URLInput, WorkflowButton, RichTextSection, RichTextList, RichTextQuote, RichTextPreformatted, RichTextInput } from './block-elements';
+export interface Block {
+ type: string;
+ /**
+ * @description A string acting as a unique identifier for a block. If not specified, a `block_id` will be generated.
+ * You can use this `block_id` when you receive an interaction payload to
+ * {@link https://api.slack.com/interactivity/handling#payloads identify the source of the action}.
+ * Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of
+ * a message. If a message is updated, use a new `block_id`.
+ */
+ block_id?: string;
+}
+export type KnownBlock = ImageBlock | ContextBlock | ActionsBlock | DividerBlock | SectionBlock | InputBlock | FileBlock | HeaderBlock | VideoBlock | RichTextBlock;
+/**
+ * @description Holds multiple interactive elements.
+ * @see {@link https://api.slack.com/reference/block-kit/blocks#actions Actions block reference}.
+ */
+export interface ActionsBlock extends Block {
+ /**
+ * @description The type of block. For an actions block, `type` is always `actions`.
+ */
+ type: 'actions';
+ /**
+ * @description An array of {@link InteractiveElements} objects.
+ * There is a maximum of 25 elements in each action block.
+ */
+ elements: (Button | Checkboxes | Datepicker | DateTimepicker | MultiSelect | Overflow | RadioButtons | Select | Timepicker | WorkflowButton | RichTextInput)[];
+}
+/**
+ * @description Displays contextual info, which can include both images and text.
+ * @see {@link https://api.slack.com/reference/block-kit/blocks#context Context block reference}.
+ */
+export interface ContextBlock extends Block {
+ /**
+ * @description The type of block. For a context block, `type` is always `context`.
+ */
+ type: 'context';
+ /**
+ * @description An array of {@link ImageElement}, {@link PlainTextElement} or {@link MrkdwnElement} objects.
+ * Maximum number of items is 10.
+ */
+ elements: (ImageElement | PlainTextElement | MrkdwnElement)[];
+}
+/**
+ * @description Visually separates pieces of info inside of a message. A content divider, like an `
`, to split up
+ * different blocks inside of a message. The divider block is nice and neat, requiring only a `type`.
+ * @see {@link https://api.slack.com/reference/block-kit/blocks#divider Divider block reference}.
+ */
+export interface DividerBlock extends Block {
+ /**
+ * @description The type of block. For a divider block, `type` is always `divider`.
+ */
+ type: 'divider';
+}
+/**
+ * @description Displays a {@link https://api.slack.com/messaging/files/remote remote file}. You can't add this block to
+ * app surfaces directly, but it will show up when {@link https://api.slack.com/messaging/retrieving retrieving messages}
+ * that contain remote files. If you want to add remote files to messages,
+ * {@link https://api.slack.com/messaging/files/remote follow our guide}.
+ * @see {@link https://api.slack.com/reference/block-kit/blocks#file File block reference}.
+ */
+export interface FileBlock extends Block {
+ /**
+ * @description The type of block. For a file block, `type` is always `file`.
+ */
+ type: 'file';
+ /**
+ * @description At the moment, source will always be `remote` for a remote file.
+ */
+ source: string;
+ /**
+ * @description The external unique ID for this file.
+ */
+ external_id: string;
+}
+/**
+ * @description Displays a larger-sized text block. A `header` is a plain-text block that displays in a larger, bold
+ * font. Use it to delineate between different groups of content in your app's surfaces.
+ * @see {@link https://api.slack.com/reference/block-kit/blocks#header Header block reference}.
+ */
+export interface HeaderBlock extends Block {
+ /**
+ * @description The type of block. For a header block, `type` is always `header`.
+ */
+ type: 'header';
+ /**
+ * @description The text for the block, in the form of a {@link PlainTextElement}.
+ * Maximum length for the text in this field is 150 characters.
+ */
+ text: PlainTextElement;
+}
+/**
+ * @description Displays an image. A simple image block, designed to make those cat photos really pop.
+ * @see {@link https://api.slack.com/reference/block-kit/blocks#image Image block reference}.
+ */
+export type ImageBlock = {
+ /**
+ * @description The type of block. For an image block, `type` is always `image`.
+ */
+ type: 'image';
+ /**
+ * @description A plain-text summary of the image. This should not contain any markup.
+ * Maximum length for this field is 2000 characters.
+ */
+ alt_text: string;
+ /**
+ * @description An optional title for the image in the form of a {@link PlainTextElement} object.
+ * Maximum length for the text in this field is 2000 characters.
+ */
+ title?: PlainTextElement;
+} & Block & (UrlImageObject | SlackFileImageObject);
+/**
+ * @description Collects information from users via block elements.
+ * @see {@link https://api.slack.com/reference/block-kit/blocks#input Input block reference}.
+ * @see {@link https://api.slack.com/surfaces/modals#gathering_input Collecting input in modals guide}.
+ * @see {@link https://api.slack.com/surfaces/app-home#gathering_input Collecting input in Home tabs guide}.
+ */
+export interface InputBlock extends Block {
+ /**
+ * @description The type of block. For an input block, `type` is always `input`.
+ */
+ type: 'input';
+ /**
+ * @description A label that appears above an input element in the form of a {@link PlainTextElement} object.
+ * Maximum length for the text in this field is 2000 characters.
+ */
+ label: PlainTextElement;
+ /**
+ * @description An optional hint that appears below an input element in a lighter grey. It must be a
+ * {@link PlainTextElement object}. Maximum length for the `text` in this field is 2000 characters.
+ */
+ hint?: PlainTextElement;
+ /**
+ * @description A boolean that indicates whether the input element may be empty when a user submits the modal.
+ * Defaults to `false`.
+ */
+ optional?: boolean;
+ /**
+ * @description A block element.
+ */
+ element: Select | MultiSelect | Datepicker | Timepicker | DateTimepicker | PlainTextInput | URLInput | EmailInput | NumberInput | RadioButtons | Checkboxes | RichTextInput | FileInput;
+ /**
+ * @description A boolean that indicates whether or not the use of elements in this block should dispatch a
+ * {@link https://api.slack.com/reference/interaction-payloads/block-actions block_actions payload}. Defaults to `false`.
+ */
+ dispatch_action?: boolean;
+}
+/**
+ * @description Displays text, possibly alongside block elements. A section can be used as a simple text block, in
+ * combination with text fields, or side-by-side with certain
+ * {@link https://api.slack.com/reference/messaging/block-elements block elements}.
+ * @see {@link https://api.slack.com/reference/block-kit/blocks#section Section block reference}.
+ */
+export interface SectionBlock extends Block {
+ /**
+ * @description The type of block. For a section block, `type` is always `section`.
+ */
+ type: 'section';
+ /**
+ * @description The text for the block, in the form of a text object. Minimum length for the `text` in this field is
+ * 1 and maximum length is 3000 characters. This field is not required if a valid array of `fields` objects is
+ * provided instead.
+ */
+ text?: PlainTextElement | MrkdwnElement;
+ /**
+ * @description Required if no `text` is provided. An array of text objects. Any text objects included with `fields`
+ * will be rendered in a compact format that allows for 2 columns of side-by-side text. Maximum number of items is 10.
+ * Maximum length for the text in each item is 2000 characters.
+ * {@link https://app.slack.com/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22section%22,%22text%22:%7B%22text%22:%22A%20message%20*with%20some%20bold%20text*%20and%20_some%20italicized%20text_.%22,%22type%22:%22mrkdwn%22%7D,%22fields%22:%5B%7B%22type%22:%22mrkdwn%22,%22text%22:%22*Priority*%22%7D,%7B%22type%22:%22mrkdwn%22,%22text%22:%22*Type*%22%7D,%7B%22type%22:%22plain_text%22,%22text%22:%22High%22%7D,%7B%22type%22:%22plain_text%22,%22text%22:%22String%22%7D%5D%7D%5D%7D Click here for an example}.
+ */
+ fields?: (PlainTextElement | MrkdwnElement)[];
+ /**
+ * @description One of the compatible element objects.
+ */
+ accessory?: Button | Overflow | Datepicker | Timepicker | Select | MultiSelect | Actionable | ImageElement | RadioButtons | Checkboxes;
+}
+/**
+ * @description Displays an embedded video player. A video block is designed to embed videos in all app surfaces (e.g.
+ * link unfurls, messages, modals, App Home) — anywhere you can put blocks! To use the video block within your app, you
+ * must have the {@link https://api.slack.com/scopes/links.embed:write `links.embed:write` scope}.
+ * @see {@link https://api.slack.com/reference/block-kit/blocks#video Video block reference}.
+ */
+export interface VideoBlock extends Block {
+ /**
+ * @description The type of block. For a video block, `type` is always `video`.
+ */
+ type: 'video';
+ /**
+ * @description The URL to be embedded. Must match any existing
+ * {@link https://api.slack.com/reference/messaging/link-unfurling#configuring_domains unfurl domains} within the app
+ * and point to a HTTPS URL.
+ */
+ video_url: string;
+ /**
+ * @description The thumbnail image URL.
+ */
+ thumbnail_url: string;
+ /**
+ * @description A tooltip for the video. Required for accessibility.
+ */
+ alt_text: string;
+ /**
+ * @description Video title as a {@link PlainTextElement} object. `text` within must be less than 200 characters.
+ */
+ title: PlainTextElement;
+ /**
+ * @description Hyperlink for the title text. Must correspond to the non-embeddable URL for the video.
+ * Must go to an HTTPS URL.
+ */
+ title_url?: string;
+ /**
+ * @description Author name to be displayed. Must be less than 50 characters.
+ */
+ author_name?: string;
+ /**
+ * @description The originating application or domain of the video, e.g. YouTube.
+ */
+ provider_name?: string;
+ /**
+ * @description Icon for the video provider, e.g. YouTube icon.
+ */
+ provider_icon_url?: string;
+ /**
+ * @description Description for video using a {@link PlainTextElement} object.
+ */
+ description?: PlainTextElement;
+}
+export interface RichTextBlock extends Block {
+ /**
+ * @description The type of block. For a rich text block, `type` is always `rich_text`.
+ */
+ type: 'rich_text';
+ elements: (RichTextSection | RichTextList | RichTextQuote | RichTextPreformatted)[];
+}
+//# sourceMappingURL=blocks.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/block-kit/blocks.d.ts.map b/node_modules/@slack/types/dist/block-kit/blocks.d.ts.map
new file mode 100644
index 0000000..fd5f914
--- /dev/null
+++ b/node_modules/@slack/types/dist/block-kit/blocks.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/block-kit/blocks.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/block-kit/blocks.js b/node_modules/@slack/types/dist/block-kit/blocks.js
new file mode 100644
index 0000000..478a6b0
--- /dev/null
+++ b/node_modules/@slack/types/dist/block-kit/blocks.js
@@ -0,0 +1,4 @@
+"use strict";
+// This file contains objects documented here: https://api.slack.com/reference/block-kit/blocks
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=blocks.js.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/block-kit/blocks.js.map b/node_modules/@slack/types/dist/block-kit/blocks.js.map
new file mode 100644
index 0000000..2958810
--- /dev/null
+++ b/node_modules/@slack/types/dist/block-kit/blocks.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/block-kit/blocks.ts"],"names":[],"mappings":";AAAA,+FAA+F"}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/block-kit/composition-objects.d.ts b/node_modules/@slack/types/dist/block-kit/composition-objects.d.ts
new file mode 100644
index 0000000..aa5cd1c
--- /dev/null
+++ b/node_modules/@slack/types/dist/block-kit/composition-objects.d.ts
@@ -0,0 +1,211 @@
+/**
+ * @deprecated {@link Confirm} aliased to {@link ConfirmationDialog} in order to make the construct clearer
+ * and line up terminology with api.slack.com.
+ * @description Defines a dialog that adds a confirmation step to interactive elements.
+ * @see {@link https://api.slack.com/reference/block-kit/composition-objects#confirm Confirmation dialog object reference}.
+ */
+export interface Confirm {
+ /**
+ * @description A {@link PlainTextElement} text object that defines the dialog's title.
+ * Maximum length for this field is 100 characters.
+ */
+ title?: PlainTextElement;
+ /**
+ * @description A {@link PlainTextElement} text object that defines the explanatory text that appears in the confirm
+ * dialog. Maximum length for the `text` in this field is 300 characters.
+ */
+ text: PlainTextElement | MrkdwnElement;
+ /**
+ * @description A {@link PlainTextElement} text object to define the text of the button that confirms the action.
+ * Maximum length for the `text` in this field is 30 characters.
+ */
+ confirm?: PlainTextElement;
+ /**
+ * @description A {@link PlainTextElement} text object to define the text of the button that cancels the action.
+ * Maximum length for the `text` in this field is 30 characters.
+ */
+ deny?: PlainTextElement;
+ /**
+ * @description Defines the color scheme applied to the `confirm` button. A value of `danger` will display the button
+ * with a red background on desktop, or red text on mobile. A value of `primary` will display the button with a green
+ * background on desktop, or blue text on mobile. If this field is not provided, the default value will be `primary`.
+ */
+ style?: 'primary' | 'danger';
+}
+/**
+ * @description Defines a dialog that adds a confirmation step to interactive elements.
+ * @see {@link https://api.slack.com/reference/block-kit/composition-objects#confirm Confirmation dialog object reference}.
+ */
+export interface ConfirmationDialog extends Confirm {
+}
+/**
+ * @description Defines when a {@link PlainTextElement} will return a {@link https://api.slack.com/reference/interaction-payloads/block-actions `block_actions` interaction payload}.
+ * @see {@link https://api.slack.com/reference/interaction-payloads/block-actions `block_actions` interaction payload}.
+ */
+export interface DispatchActionConfig {
+ /**
+ * @description An array of interaction types that you would like to receive a
+ * {@link https://api.slack.com/reference/interaction-payloads/block-actions `block_actions` payload} for. Should be
+ * one or both of:
+ * `on_enter_pressed` — payload is dispatched when user presses the enter key while the input is in focus. Hint
+ * text will appear underneath the input explaining to the user to press enter to submit.
+ * `on_character_entered` — payload is dispatched when a character is entered (or removed) in the input.
+ */
+ trigger_actions_on?: ('on_enter_pressed' | 'on_character_entered')[];
+}
+interface OptionDescriptor {
+ /**
+ * @description A unique string value that will be passed to your app when this option is chosen.
+ * Maximum length for this field is 75 characters.
+ */
+ value?: string;
+ /**
+ * @description Only available in overflow menus! A URL to load in the user's browser when the option is clicked.
+ * Maximum length for this field is 3000 characters.
+ */
+ url?: string;
+ /**
+ * @description A {@link PlainTextElement} that defines a line of descriptive text shown below the `text` field.
+ * Maximum length for the `text` within this field is 75 characters.
+ */
+ description?: PlainTextElement;
+}
+export interface MrkdwnOption extends OptionDescriptor {
+ /**
+ * @description A {@link MrkdwnElement} that defines the text shown in the option on the menu. To be used with
+ * radio buttons and checkboxes. Maximum length for the `text` in this field is 75 characters.
+ */
+ text: MrkdwnElement;
+}
+export interface PlainTextOption extends OptionDescriptor {
+ /**
+ * @description A {@link PlainTextElement} that defines the text shown in the option on the menu. To be used with
+ * overflow, select and multi-select menus. Maximum length for the `text` in this field is 75 characters.
+ */
+ text: PlainTextElement;
+}
+/**
+ * @description Defines a single item in a number of item selection elements. An object that represents a single
+ * selectable item in a select menu, multi-select menu, checkbox group, radio button group, or overflow menu.
+ * @see {@link https://api.slack.com/reference/block-kit/composition-objects#option Option object reference}.
+ */
+export type Option = MrkdwnOption | PlainTextOption;
+/**
+ * @description Defines a way to group options in a select or multi-select menu.
+ * @see {@link https://api.slack.com/reference/block-kit/composition-objects#option_group Option group object reference}.
+ */
+export interface OptionGroup {
+ /**
+ * @description A {@link PlainTextElement} text object that defines the label shown above this group of options.
+ * Maximum length for the `text` in this field is 75 characters.
+ */
+ label: PlainTextElement;
+ /**
+ * @description An array of {@link Option} that belong to this specific group. Maximum of 100 items.
+ */
+ options: Option[];
+}
+/**
+ * @description Defines an object containing some text.
+ * @see {@link https://api.slack.com/reference/block-kit/composition-objects#text Text object reference}.
+ */
+export interface PlainTextElement {
+ /**
+ * @description The formatting to use for this text object.
+ */
+ type: 'plain_text';
+ /**
+ * @description The text for the block. The minimum length is 1 and maximum length is 3000 characters.
+ */
+ text: string;
+ /**
+ * @description Indicates whether emojis in a text field should be escaped into the colon emoji format.
+ */
+ emoji?: boolean;
+}
+/**
+ * @description Defines an object containing some text.
+ * @see {@link https://api.slack.com/reference/block-kit/composition-objects#text Text object reference}.
+ */
+export interface MrkdwnElement {
+ /**
+ * @description The formatting to use for this text object.
+ */
+ type: 'mrkdwn';
+ /**
+ * @description The text for the block. This field accepts any of the standard text formatting markup.
+ * The minimum length is 1 and maximum length is 3000 characters.
+ */
+ text: string;
+ /**
+ * @description When set to `false` (as is default) URLs will be auto-converted into links, conversation names will
+ * be link-ified, and certain mentions will be {@link https://api.slack.com/reference/surfaces/formatting#automatic-parsing automatically parsed}.
+ * Using a value of `true` will skip any preprocessing of this nature, although you can still include
+ * {@link https://api.slack.com/reference/surfaces/formatting#advanced manual parsing strings}.
+ */
+ verbatim?: boolean;
+}
+type Conversation = 'im' | 'mpim' | 'private' | 'public';
+interface BaseConversationFilter {
+ /**
+ * @description Indicates which type of conversations should be included in the list. When this field is provided, any
+ * conversations that do not match will be excluded. You should provide an array of strings from the following options:
+ * `im`, `mpim`, `private`, and `public`. The array cannot be empty.
+ */
+ include?: [Conversation, ...Conversation[]];
+ /**
+ * @description Indicates whether to exclude external {@link https://api.slack.com/enterprise/shared-channels shared channels}
+ * from conversation lists. This field will not exclude users from shared channels. Defaults to `false`.
+ */
+ exclude_external_shared_channels?: boolean;
+ /**
+ * @description Indicates whether to exclude bot users from conversation lists. Defaults to `false`.
+ */
+ exclude_bot_users?: boolean;
+}
+/**
+ * @description Defines a filter for the list of options in a conversation selector menu. The menu can be either a
+ * conversations select menu or a conversations multi-select menu.
+ * @see {@link https://api.slack.com/reference/block-kit/composition-objects#filter_conversations Conversation filter object reference}.
+ */
+export type ConversationFilter = (BaseConversationFilter & Required>) | (BaseConversationFilter & Required>) | (BaseConversationFilter & Required>);
+/**
+ * @description Object for image which contains a image_url.
+ */
+export interface UrlImageObject {
+ /**
+ * @description The URL of the image to be displayed.
+ */
+ image_url: string;
+}
+/**
+ * @description Object for image which contains a slack_file.
+ */
+export interface SlackFileImageObject {
+ /**
+ * @description The slack file of the image to be displayed.
+ */
+ slack_file: SlackFile;
+}
+interface SlackFileViaUrl {
+ /**
+ * @description This URL can be the `url_private` or the `permalink` of the {@link Slack file https://api.slack.com/types/file}.
+ */
+ url: string;
+}
+interface SlackFileViaId {
+ /**
+ * @description `id` of the {@link Slack file https://api.slack.com/types/file}.
+ */
+ id: string;
+}
+/**
+ * @description Defines an object containing Slack file information to be used in an image block or image element.
+ * This {@link file https://api.slack.com/types/file} must be an image and you must provide either the URL or ID. In addition,
+ * the user posting these blocks must have access to this file. If both are provided then the payload will be rejected.
+ * Currently only `png`, `jpg`, `jpeg`, and `gif` Slack image files are supported.
+ * @see {@link https://api.slack.com/reference/block-kit/composition-objects#slack_file Slack File object reference}.
+ */
+export type SlackFile = SlackFileViaUrl | SlackFileViaId;
+export {};
+//# sourceMappingURL=composition-objects.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/block-kit/composition-objects.d.ts.map b/node_modules/@slack/types/dist/block-kit/composition-objects.d.ts.map
new file mode 100644
index 0000000..bf067b7
--- /dev/null
+++ b/node_modules/@slack/types/dist/block-kit/composition-objects.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"composition-objects.d.ts","sourceRoot":"","sources":["../../src/block-kit/composition-objects.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/block-kit/composition-objects.js b/node_modules/@slack/types/dist/block-kit/composition-objects.js
new file mode 100644
index 0000000..4170cfc
--- /dev/null
+++ b/node_modules/@slack/types/dist/block-kit/composition-objects.js
@@ -0,0 +1,4 @@
+"use strict";
+// This file contains objects documented here: https://api.slack.com/reference/block-kit/composition-objects
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=composition-objects.js.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/block-kit/composition-objects.js.map b/node_modules/@slack/types/dist/block-kit/composition-objects.js.map
new file mode 100644
index 0000000..a57c194
--- /dev/null
+++ b/node_modules/@slack/types/dist/block-kit/composition-objects.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"composition-objects.js","sourceRoot":"","sources":["../../src/block-kit/composition-objects.ts"],"names":[],"mappings":";AAAA,4GAA4G"}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/block-kit/extensions.d.ts b/node_modules/@slack/types/dist/block-kit/extensions.d.ts
new file mode 100644
index 0000000..5c5b2c9
--- /dev/null
+++ b/node_modules/@slack/types/dist/block-kit/extensions.d.ts
@@ -0,0 +1,63 @@
+import { ConfirmationDialog, PlainTextElement, DispatchActionConfig } from './composition-objects';
+/**
+ * @deprecated {@link Action} aliased to {@link Actionable} in order to name the mixins in this file consistently.
+ */
+export interface Action {
+ type: string;
+ /**
+ * @description: An identifier for this action. You can use this when you receive an interaction payload to
+ * {@link https://api.slack.com/interactivity/handling#payloads identify the source of the action}. Should be unique
+ * among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+ */
+ action_id?: string;
+}
+export interface Actionable extends Action {
+}
+export interface Confirmable {
+ /**
+ * @description A {@link Confirm} object that defines an optional confirmation dialog after the element is interacted
+ * with.
+ */
+ confirm?: ConfirmationDialog;
+}
+export interface Focusable {
+ /**
+ * @description Indicates whether the element will be set to auto focus within the
+ * {@link https://api.slack.com/reference/surfaces/views `view` object}. Only one element can be set to `true`.
+ * Defaults to `false`.
+ */
+ focus_on_load?: boolean;
+}
+export interface Placeholdable {
+ /**
+ * @description A {@link PlainTextElement} object that defines the placeholder text shown on the element. Maximum
+ * length for the `text` field in this object is 150 characters.
+ */
+ placeholder?: PlainTextElement;
+}
+export interface Dispatchable {
+ /**
+ * @description A {@link DispatchActionConfig} object that determines when during text input the element returns a
+ * {@link https://api.slack.com/reference/interaction-payloads/block-actions `block_actions` payload}.
+ */
+ dispatch_action_config?: DispatchActionConfig;
+}
+/**
+ * @description For use styling Rich Text sub-elements.
+ */
+export interface RichTextStyleable {
+ /**
+ * @description A limited style object for styling rich text `text` elements.
+ */
+ style?: {
+ /** @description When `true`, boldens the text in this element. Defaults to `false`. */
+ bold?: boolean;
+ /** @description When `true`, the text is preformatted in an inline code style. Defaults to `false. */
+ code?: boolean;
+ /** @description When `true`, italicizes the text in this element. Defaults to `false`. */
+ italic?: boolean;
+ /** @description When `true`, strikes through the text in this element. Defaults to `false`. */
+ strike?: boolean;
+ };
+}
+//# sourceMappingURL=extensions.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/block-kit/extensions.d.ts.map b/node_modules/@slack/types/dist/block-kit/extensions.d.ts.map
new file mode 100644
index 0000000..0722570
--- /dev/null
+++ b/node_modules/@slack/types/dist/block-kit/extensions.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/block-kit/extensions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGnG;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAW,SAAQ,MAAM;CAAG;AAE7C,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,oBAAoB,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE;QACN,uFAAuF;QACvF,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,sGAAsG;QACtG,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,0FAA0F;QAC1F,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,+FAA+F;QAC/F,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;CACH"}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/block-kit/extensions.js b/node_modules/@slack/types/dist/block-kit/extensions.js
new file mode 100644
index 0000000..c1ea6be
--- /dev/null
+++ b/node_modules/@slack/types/dist/block-kit/extensions.js
@@ -0,0 +1,3 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=extensions.js.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/block-kit/extensions.js.map b/node_modules/@slack/types/dist/block-kit/extensions.js.map
new file mode 100644
index 0000000..ee09d0a
--- /dev/null
+++ b/node_modules/@slack/types/dist/block-kit/extensions.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/block-kit/extensions.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/calls.d.ts b/node_modules/@slack/types/dist/calls.d.ts
new file mode 100644
index 0000000..90712af
--- /dev/null
+++ b/node_modules/@slack/types/dist/calls.d.ts
@@ -0,0 +1,26 @@
+/**
+ * @description For use in representing {@link https://api.slack.com/apis/calls#users users in a Slack Call}.
+ */
+export type CallUser = CallUserSlack | CallUserExternal;
+export interface CallUserSlack {
+ /**
+ * @description The Slack encoded user ID, e.g. U1234ABCD. Set this if you have it or know it, otherwise, set
+ * `external_id` and `display_name`.
+ */
+ slack_id: string;
+}
+export interface CallUserExternal {
+ /**
+ * @description A unique ID created by your app to represent your users.
+ */
+ external_id: string;
+ /**
+ * @description Name of the user to be displayed in the Call block in a message.
+ */
+ display_name: string;
+ /**
+ * @description URL to an avatar image of the user.
+ */
+ avatar_url?: string;
+}
+//# sourceMappingURL=calls.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/calls.d.ts.map b/node_modules/@slack/types/dist/calls.d.ts.map
new file mode 100644
index 0000000..9233d7d
--- /dev/null
+++ b/node_modules/@slack/types/dist/calls.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"calls.d.ts","sourceRoot":"","sources":["../src/calls.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,gBAAgB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/calls.js b/node_modules/@slack/types/dist/calls.js
new file mode 100644
index 0000000..0f57166
--- /dev/null
+++ b/node_modules/@slack/types/dist/calls.js
@@ -0,0 +1,6 @@
+"use strict";
+// These types represent users in Slack Calls, which is an API for showing 3rd party calls within the Slack client.
+// More information on the API guide for Calls: https://api.slack.com/apis/calls
+// and on User objects for use with Calls: https://api.slack.com/apis/calls#users
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=calls.js.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/calls.js.map b/node_modules/@slack/types/dist/calls.js.map
new file mode 100644
index 0000000..1d8b7ad
--- /dev/null
+++ b/node_modules/@slack/types/dist/calls.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"calls.js","sourceRoot":"","sources":["../src/calls.ts"],"names":[],"mappings":";AAAA,mHAAmH;AACnH,gFAAgF;AAChF,iFAAiF"}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/dialog.d.ts b/node_modules/@slack/types/dist/dialog.d.ts
new file mode 100644
index 0000000..4a3f71b
--- /dev/null
+++ b/node_modules/@slack/types/dist/dialog.d.ts
@@ -0,0 +1,36 @@
+/**
+ * Reusable shapes for argument values
+ * @deprecated Dialogs are a deprecated surface in Slack. For more details on how to upgrade, check out our {@link https://api.slack.com/block-kit/dialogs-to-modals Upgrading outmoded dialogs to modals guide}. This will be removed in the next major version.
+ */
+export interface Dialog {
+ title: string;
+ callback_id: string;
+ elements: {
+ type: 'text' | 'textarea' | 'select';
+ name: string;
+ label: string;
+ optional?: boolean;
+ placeholder?: string;
+ value?: string;
+ max_length?: number;
+ min_length?: number;
+ hint?: string;
+ subtype?: 'email' | 'number' | 'tel' | 'url';
+ data_source?: 'users' | 'channels' | 'conversations' | 'external';
+ selected_options?: SelectOption[];
+ options?: SelectOption[];
+ option_groups?: {
+ label: string;
+ options: SelectOption[];
+ }[];
+ min_query_length?: number;
+ }[];
+ submit_label?: string;
+ notify_on_cancel?: boolean;
+ state?: string;
+}
+export interface SelectOption {
+ label: string;
+ value: string;
+}
+//# sourceMappingURL=dialog.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/dialog.d.ts.map b/node_modules/@slack/types/dist/dialog.d.ts.map
new file mode 100644
index 0000000..354f353
--- /dev/null
+++ b/node_modules/@slack/types/dist/dialog.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../src/dialog.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;QACrC,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;QAE7C,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,eAAe,GAAG,UAAU,CAAC;QAClE,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC;QAClC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;QACzB,aAAa,CAAC,EAAE;YACd,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,YAAY,EAAE,CAAC;SACzB,EAAE,CAAC;QACJ,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,EAAE,CAAC;IACJ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf"}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/dialog.js b/node_modules/@slack/types/dist/dialog.js
new file mode 100644
index 0000000..2af8b44
--- /dev/null
+++ b/node_modules/@slack/types/dist/dialog.js
@@ -0,0 +1,3 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=dialog.js.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/dialog.js.map b/node_modules/@slack/types/dist/dialog.js.map
new file mode 100644
index 0000000..5491837
--- /dev/null
+++ b/node_modules/@slack/types/dist/dialog.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"dialog.js","sourceRoot":"","sources":["../src/dialog.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/index.d.ts b/node_modules/@slack/types/dist/index.d.ts
index 09530ca..170a0ac 100644
--- a/node_modules/@slack/types/dist/index.d.ts
+++ b/node_modules/@slack/types/dist/index.d.ts
@@ -1,389 +1,10 @@
-export interface Dialog {
- title: string;
- callback_id: string;
- elements: {
- type: 'text' | 'textarea' | 'select';
- name: string;
- label: string;
- optional?: boolean;
- placeholder?: string;
- value?: string;
- max_length?: number;
- min_length?: number;
- hint?: string;
- subtype?: 'email' | 'number' | 'tel' | 'url';
- data_source?: 'users' | 'channels' | 'conversations' | 'external';
- selected_options?: SelectOption[];
- options?: SelectOption[];
- option_groups?: {
- label: string;
- options: SelectOption[];
- }[];
- min_query_length?: number;
- }[];
- submit_label?: string;
- notify_on_cancel?: boolean;
- state?: string;
-}
-export interface HomeView {
- type: 'home';
- blocks: (KnownBlock | Block)[];
- private_metadata?: string;
- callback_id?: string;
- external_id?: string;
-}
-export interface ModalView {
- type: 'modal';
- title: PlainTextElement;
- blocks: (KnownBlock | Block)[];
- close?: PlainTextElement;
- submit?: PlainTextElement;
- private_metadata?: string;
- callback_id?: string;
- clear_on_close?: boolean;
- notify_on_close?: boolean;
- external_id?: string;
-}
-export interface WorkflowStepView {
- type: 'workflow_step';
- blocks: (KnownBlock | Block)[];
- private_metadata?: string;
- callback_id?: string;
- submit_disabled?: boolean;
- external_id?: string;
-}
-export declare type View = HomeView | ModalView | WorkflowStepView;
-export interface ImageElement {
- type: 'image';
- image_url: string;
- alt_text: string;
-}
-export interface PlainTextElement {
- type: 'plain_text';
- text: string;
- emoji?: boolean;
-}
-export interface MrkdwnElement {
- type: 'mrkdwn';
- text: string;
- verbatim?: boolean;
-}
-export interface MrkdwnOption {
- text: MrkdwnElement;
- value?: string;
- url?: string;
- description?: PlainTextElement;
-}
-export interface PlainTextOption {
- text: PlainTextElement;
- value?: string;
- url?: string;
- description?: PlainTextElement;
-}
-export declare type Option = MrkdwnOption | PlainTextOption;
-export interface Confirm {
- title?: PlainTextElement;
- text: PlainTextElement | MrkdwnElement;
- confirm?: PlainTextElement;
- deny?: PlainTextElement;
- style?: 'primary' | 'danger';
-}
-export declare type Select = UsersSelect | StaticSelect | ConversationsSelect | ChannelsSelect | ExternalSelect;
-export declare type MultiSelect = MultiUsersSelect | MultiStaticSelect | MultiConversationsSelect | MultiChannelsSelect | MultiExternalSelect;
-export interface Action {
- type: string;
- action_id?: string;
-}
-export interface UsersSelect extends Action {
- type: 'users_select';
- initial_user?: string;
- placeholder?: PlainTextElement;
- confirm?: Confirm;
- focus_on_load?: boolean;
-}
-export interface MultiUsersSelect extends Action {
- type: 'multi_users_select';
- initial_users?: string[];
- placeholder?: PlainTextElement;
- max_selected_items?: number;
- confirm?: Confirm;
- focus_on_load?: boolean;
-}
-export interface StaticSelect extends Action {
- type: 'static_select';
- placeholder?: PlainTextElement;
- initial_option?: PlainTextOption;
- options?: PlainTextOption[];
- option_groups?: {
- label: PlainTextElement;
- options: PlainTextOption[];
- }[];
- confirm?: Confirm;
- focus_on_load?: boolean;
-}
-export interface MultiStaticSelect extends Action {
- type: 'multi_static_select';
- placeholder?: PlainTextElement;
- initial_options?: PlainTextOption[];
- options?: PlainTextOption[];
- option_groups?: {
- label: PlainTextElement;
- options: PlainTextOption[];
- }[];
- max_selected_items?: number;
- confirm?: Confirm;
- focus_on_load?: boolean;
-}
-export interface ConversationsSelect extends Action {
- type: 'conversations_select';
- initial_conversation?: string;
- placeholder?: PlainTextElement;
- confirm?: Confirm;
- response_url_enabled?: boolean;
- default_to_current_conversation?: boolean;
- filter?: {
- include?: ('im' | 'mpim' | 'private' | 'public')[];
- exclude_external_shared_channels?: boolean;
- exclude_bot_users?: boolean;
- };
- focus_on_load?: boolean;
-}
-export interface MultiConversationsSelect extends Action {
- type: 'multi_conversations_select';
- initial_conversations?: string[];
- placeholder?: PlainTextElement;
- max_selected_items?: number;
- confirm?: Confirm;
- default_to_current_conversation?: boolean;
- filter?: {
- include?: ('im' | 'mpim' | 'private' | 'public')[];
- exclude_external_shared_channels?: boolean;
- exclude_bot_users?: boolean;
- };
- focus_on_load?: boolean;
-}
-export interface ChannelsSelect extends Action {
- type: 'channels_select';
- initial_channel?: string;
- placeholder?: PlainTextElement;
- confirm?: Confirm;
- focus_on_load?: boolean;
-}
-export interface MultiChannelsSelect extends Action {
- type: 'multi_channels_select';
- initial_channels?: string[];
- placeholder?: PlainTextElement;
- max_selected_items?: number;
- confirm?: Confirm;
- focus_on_load?: boolean;
-}
-export interface ExternalSelect extends Action {
- type: 'external_select';
- initial_option?: PlainTextOption;
- placeholder?: PlainTextElement;
- min_query_length?: number;
- confirm?: Confirm;
- focus_on_load?: boolean;
-}
-export interface MultiExternalSelect extends Action {
- type: 'multi_external_select';
- initial_options?: PlainTextOption[];
- placeholder?: PlainTextElement;
- min_query_length?: number;
- max_selected_items?: number;
- confirm?: Confirm;
- focus_on_load?: boolean;
-}
-export interface Button extends Action {
- type: 'button';
- text: PlainTextElement;
- value?: string;
- url?: string;
- style?: 'danger' | 'primary';
- confirm?: Confirm;
- accessibility_label?: string;
-}
-export interface Overflow extends Action {
- type: 'overflow';
- options: PlainTextOption[];
- confirm?: Confirm;
-}
-export interface Datepicker extends Action {
- type: 'datepicker';
- initial_date?: string;
- placeholder?: PlainTextElement;
- confirm?: Confirm;
- focus_on_load?: boolean;
-}
-export interface Timepicker extends Action {
- type: 'timepicker';
- initial_time?: string;
- placeholder?: PlainTextElement;
- confirm?: Confirm;
- focus_on_load?: boolean;
- timezone?: string;
-}
-export interface RadioButtons extends Action {
- type: 'radio_buttons';
- initial_option?: Option;
- options: Option[];
- confirm?: Confirm;
- focus_on_load?: boolean;
-}
-export interface Checkboxes extends Action {
- type: 'checkboxes';
- initial_options?: Option[];
- options: Option[];
- confirm?: Confirm;
- focus_on_load?: boolean;
-}
-export interface PlainTextInput extends Action {
- type: 'plain_text_input';
- placeholder?: PlainTextElement;
- initial_value?: string;
- multiline?: boolean;
- min_length?: number;
- max_length?: number;
- dispatch_action_config?: DispatchActionConfig;
- focus_on_load?: boolean;
-}
-export interface DispatchActionConfig {
- trigger_actions_on?: ('on_enter_pressed' | 'on_character_entered')[];
-}
-export declare type KnownBlock = ImageBlock | ContextBlock | ActionsBlock | DividerBlock | SectionBlock | InputBlock | FileBlock | HeaderBlock;
-export interface Block {
- type: string;
- block_id?: string;
-}
-export interface ImageBlock extends Block {
- type: 'image';
- image_url: string;
- alt_text: string;
- title?: PlainTextElement;
-}
-export interface ContextBlock extends Block {
- type: 'context';
- elements: (ImageElement | PlainTextElement | MrkdwnElement)[];
-}
-export interface ActionsBlock extends Block {
- type: 'actions';
- elements: (Button | Overflow | Datepicker | Timepicker | Select | RadioButtons | Checkboxes | Action)[];
-}
-export interface DividerBlock extends Block {
- type: 'divider';
-}
-export interface SectionBlock extends Block {
- type: 'section';
- text?: PlainTextElement | MrkdwnElement;
- fields?: (PlainTextElement | MrkdwnElement)[];
- accessory?: Button | Overflow | Datepicker | Timepicker | Select | MultiSelect | Action | ImageElement | RadioButtons | Checkboxes;
-}
-export interface FileBlock extends Block {
- type: 'file';
- source: string;
- external_id: string;
-}
-export interface HeaderBlock extends Block {
- type: 'header';
- text: PlainTextElement;
-}
-export interface InputBlock extends Block {
- type: 'input';
- label: PlainTextElement;
- hint?: PlainTextElement;
- optional?: boolean;
- element: Select | MultiSelect | Datepicker | Timepicker | PlainTextInput | RadioButtons | Checkboxes;
- dispatch_action?: boolean;
-}
-export interface MessageMetadata {
- event_type: string;
- event_payload: {
- [key: string]: string | number | boolean | MessageMetadataEventPayloadObject | MessageMetadataEventPayloadObject[];
- };
-}
-export interface MessageMetadataEventPayloadObject {
- [key: string]: string | number | boolean;
-}
-export interface MessageAttachment {
- blocks?: (KnownBlock | Block)[];
- fallback?: string;
- color?: 'good' | 'warning' | 'danger' | string;
- pretext?: string;
- author_name?: string;
- author_link?: string;
- author_icon?: string;
- title?: string;
- title_link?: string;
- text?: string;
- fields?: {
- title: string;
- value: string;
- short?: boolean;
- }[];
- image_url?: string;
- thumb_url?: string;
- footer?: string;
- footer_icon?: string;
- ts?: string;
- actions?: AttachmentAction[];
- callback_id?: string;
- mrkdwn_in?: ('pretext' | 'text' | 'fields')[];
- app_unfurl_url?: string;
- is_app_unfurl?: boolean;
- app_id?: string;
- bot_id?: string;
- preview?: MessageAttachmentPreview;
-}
-export interface MessageAttachmentPreview {
- type?: string;
- can_remove?: boolean;
- title?: PlainTextElement;
- subtitle?: PlainTextElement;
- iconUrl?: string;
-}
-export interface AttachmentAction {
- id?: string;
- confirm?: Confirmation;
- data_source?: 'static' | 'channels' | 'conversations' | 'users' | 'external';
- min_query_length?: number;
- name?: string;
- options?: OptionField[];
- option_groups?: {
- text: string;
- options: OptionField[];
- }[];
- selected_options?: OptionField[];
- style?: 'default' | 'primary' | 'danger';
- text: string;
- type: 'button' | 'select';
- value?: string;
- url?: string;
-}
-export interface OptionField {
- description?: string;
- text: string;
- value: string;
-}
-export interface Confirmation {
- dismiss_text?: string;
- ok_text?: string;
- text: string;
- title?: string;
-}
-export interface LinkUnfurls {
- [linkUrl: string]: MessageAttachment;
-}
-export interface SelectOption {
- label: string;
- value: string;
-}
-export declare type CallUser = CallUserSlack | CallUserExternal;
-export interface CallUserSlack {
- slack_id: string;
-}
-export interface CallUserExternal {
- external_id: string;
- display_name: string;
- avatar_url: string;
-}
+export * from './calls';
+export * from './dialog';
+export * from './message-metadata';
+export * from './message-attachments';
+export * from './views';
+export * from './block-kit/blocks';
+export * from './block-kit/composition-objects';
+export * from './block-kit/block-elements';
+export * from './block-kit/extensions';
//# sourceMappingURL=index.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/index.d.ts.map b/node_modules/@slack/types/dist/index.d.ts.map
index 6d1aa84..b432ad3 100644
--- a/node_modules/@slack/types/dist/index.d.ts.map
+++ b/node_modules/@slack/types/dist/index.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;QACrC,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;QAE7C,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,eAAe,GAAG,UAAU,CAAC;QAClE,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC;QAClC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;QACzB,aAAa,CAAC,EAAE;YACd,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,YAAY,EAAE,CAAC;SACzB,EAAE,CAAC;QACJ,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,EAAE,CAAC;IACJ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,oBAAY,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAAC;AAM3D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,oBAAY,MAAM,GAAG,YAAY,GAAG,eAAe,CAAC;AAEpD,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,IAAI,EAAE,gBAAgB,GAAG,aAAa,CAAC;IACvC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CAC9B;AAOD,oBAAY,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,mBAAmB,GAAG,cAAc,GAAG,cAAc,CAAC;AAExG,oBAAY,WAAW,GACrB,gBAAgB,GAAG,iBAAiB,GAAG,wBAAwB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAE9G,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAY,SAAQ,MAAM;IACzC,IAAI,EAAE,cAAc,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,gBAAiB,SAAQ,MAAM;IAC9C,IAAI,EAAE,oBAAoB,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,YAAa,SAAQ,MAAM;IAC1C,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE;QACd,KAAK,EAAE,gBAAgB,CAAC;QACxB,OAAO,EAAE,eAAe,EAAE,CAAC;KAC5B,EAAE,CAAC;IACJ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAkB,SAAQ,MAAM;IAC/C,IAAI,EAAE,qBAAqB,CAAC;IAC5B,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE;QACd,KAAK,EAAE,gBAAgB,CAAC;QACxB,OAAO,EAAE,eAAe,EAAE,CAAC;KAC5B,EAAE,CAAC;IACJ,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,mBAAoB,SAAQ,MAAM;IACjD,IAAI,EAAE,sBAAsB,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,CAAC,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;QACnD,gCAAgC,CAAC,EAAE,OAAO,CAAC;QAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,wBAAyB,SAAQ,MAAM;IACtD,IAAI,EAAE,4BAA4B,CAAC;IACnC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,CAAC,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;QACnD,gCAAgC,CAAC,EAAE,OAAO,CAAC;QAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,cAAe,SAAQ,MAAM;IAC5C,IAAI,EAAE,iBAAiB,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,mBAAoB,SAAQ,MAAM;IACjD,IAAI,EAAE,uBAAuB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,cAAe,SAAQ,MAAM;IAC5C,IAAI,EAAE,iBAAiB,CAAC;IACxB,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,mBAAoB,SAAQ,MAAM;IACjD,IAAI,EAAE,uBAAuB,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,MAAO,SAAQ,MAAM;IACpC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,QAAS,SAAQ,MAAM;IACtC,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,MAAM;IACxC,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,UAAW,SAAQ,MAAM;IACxC,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAa,SAAQ,MAAM;IAC1C,IAAI,EAAE,eAAe,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,UAAW,SAAQ,MAAM;IACxC,IAAI,EAAE,YAAY,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,cAAe,SAAQ,MAAM;IAC5C,IAAI,EAAE,kBAAkB,CAAC;IACzB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sBAAsB,CAAC,EAAE,oBAAoB,CAAC;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,CAAC,EAAE,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,EAAE,CAAC;CACtE;AAMD,oBAAY,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAChF,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;AAEpD,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,KAAK;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,CAAC,YAAY,GAAG,gBAAgB,GAAG,aAAa,CAAC,EAAE,CAAC;CAC/D;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,CAAC,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;CACzG;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,gBAAgB,GAAG,aAAa,CAAC;IACxC,MAAM,CAAC,EAAE,CAAC,gBAAgB,GAAG,aAAa,CAAC,EAAE,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,GAChB,QAAQ,GACR,UAAU,GACV,UAAU,GACV,MAAM,GACN,WAAW,GACX,MAAM,GACN,YAAY,GACZ,YAAY,GACZ,UAAU,CAAC;CACd;AAED,MAAM,WAAW,SAAU,SAAQ,KAAK;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAY,SAAQ,KAAK;IACxC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,WAAW,UAAW,SAAQ,KAAK;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,GAAG,YAAY,GAAG,UAAU,CAAC;IACrG,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE;QACb,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,iCAAiC,GAAG,iCAAiC,EAAE,CAAC;KACpH,CAAA;CACF;AAED,MAAM,WAAW,iCAAiC;IAChD,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,EAAE,CAAC;IACJ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,wBAAwB,CAAC;CACpC;AAGD,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,eAAe,GAAG,OAAO,GAAG,UAAU,CAAC;IAC7E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,WAAW,EAAE,CAAC;KACxB,EAAE,CAAC;IACJ,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAAC;CACtC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,oBAAY,QAAQ,GAAG,aAAa,GAAG,gBAAgB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/index.js b/node_modules/@slack/types/dist/index.js
index aa219d8..1a9de2b 100644
--- a/node_modules/@slack/types/dist/index.js
+++ b/node_modules/@slack/types/dist/index.js
@@ -1,3 +1,26 @@
"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
Object.defineProperty(exports, "__esModule", { value: true });
+__exportStar(require("./calls"), exports);
+__exportStar(require("./dialog"), exports);
+__exportStar(require("./message-metadata"), exports);
+__exportStar(require("./message-attachments"), exports);
+__exportStar(require("./views"), exports);
+__exportStar(require("./block-kit/blocks"), exports);
+__exportStar(require("./block-kit/composition-objects"), exports);
+__exportStar(require("./block-kit/block-elements"), exports);
+__exportStar(require("./block-kit/extensions"), exports);
//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/index.js.map b/node_modules/@slack/types/dist/index.js.map
index 1ed2df6..134ed5e 100644
--- a/node_modules/@slack/types/dist/index.js.map
+++ b/node_modules/@slack/types/dist/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,2CAAyB;AACzB,qDAAmC;AACnC,wDAAsC;AACtC,0CAAwB;AACxB,qDAAmC;AACnC,kEAAgD;AAChD,6DAA2C;AAC3C,yDAAuC"}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/message-attachments.d.ts b/node_modules/@slack/types/dist/message-attachments.d.ts
new file mode 100644
index 0000000..a64b868
--- /dev/null
+++ b/node_modules/@slack/types/dist/message-attachments.d.ts
@@ -0,0 +1,170 @@
+import { PlainTextElement } from './block-kit/composition-objects';
+import { Block, KnownBlock } from './block-kit/blocks';
+/**
+ * Add {@link https://api.slack.com/messaging/composing/layouts#attachments secondary attachments} to your messages in Slack.
+ * Message attachments are considered a legacy part of messaging functionality. They are not deprecated per se, but they may change in the future, in ways that reduce their visibility or utility. We recommend moving to Block Kit instead. Read more about {@link https://api.slack.com/messaging/composing/layouts#when-to-use-attachments when to use message attachments}.
+ * @see {@link https://api.slack.com/reference/messaging/attachments Secondary message attachments reference documentation}
+ */
+export interface MessageAttachment {
+ /**
+ * @description An array of {@link KnownBlock layout blocks} in the same format
+ * {@link https://api.slack.com/block-kit/building as described in the building blocks guide}.
+ */
+ blocks?: (KnownBlock | Block)[];
+ /**
+ * @description A plain text summary of the attachment used in clients that
+ * don't show formatted text (e.g. mobile notifications).
+ */
+ fallback?: string;
+ /**
+ * @description Changes the color of the border on the left side of this attachment from the default gray. Can either
+ * be one of `good` (green), `warning` (yellow), `danger` (red), or any hex color code (eg. `#439FE0`)
+ */
+ color?: 'good' | 'warning' | 'danger' | string;
+ /**
+ * @description Text that appears above the message attachment block. It can be formatted as plain text,
+ * or with {@link https://api.slack.com/reference/surfaces/formatting#basics `mrkdwn`} by including it in the `mrkdwn_in` field.
+ */
+ pretext?: string;
+ /**
+ * @description Small text used to display the author's name.
+ */
+ author_name?: string;
+ /**
+ * @description A valid URL that will hyperlink the `author_name` text. Will only work if `author_name` is present.
+ */
+ author_link?: string;
+ /**
+ * @description A valid URL that displays a small 16px by 16px image to the left of the `author_name` text.
+ * Will only work if `author_name` is present.
+ */
+ author_icon?: string;
+ author_subname?: string;
+ /**
+ * @description Large title text near the top of the attachment.
+ */
+ title?: string;
+ /**
+ * @description A valid URL that turns the `title` text into a hyperlink.
+ */
+ title_link?: string;
+ /**
+ * @description The main body text of the attachment. It can be formatted as plain text, or with
+ * {@link https://api.slack.com/reference/surfaces/formatting#basics `mrkdwn`} by including it in the `mrkdwn_in` field.
+ * The content will automatically collapse if it contains 700+ characters or 5+ line breaks, and will display
+ * a "Show more..." link to expand the content.
+ */
+ text?: string;
+ /**
+ * @description An array of {@link MessageAttachmentField} that get displayed in a table-like way
+ * (see {@link https://api.slack.com/reference/messaging/attachments#example this example}).
+ * For best results, include no more than 2-3 field objects.
+ */
+ fields?: MessageAttachmentField[];
+ /**
+ * @description A valid URL to an image file that will be displayed at the bottom of the attachment.
+ * We support GIF, JPEG, PNG, and BMP formats.
+ * Large images will be resized to a maximum width of 360px or a maximum height of 500px, while still
+ * maintaining the original aspect ratio. Cannot be used with `thumb_url`.
+ */
+ image_url?: string;
+ /**
+ * @description A valid URL to an image file that will be displayed as a thumbnail on the right side of
+ * a message attachment. We currently support the following formats: GIF, JPEG, PNG, and BMP.
+ * The thumbnail's longest dimension will be scaled down to 75px while maintaining the aspect ratio of the image.
+ * The file size of the image must also be less than 500 KB.
+ * For best results, please use images that are already 75px by 75px.
+ */
+ thumb_url?: string;
+ /**
+ * @description Some brief text to help contextualize and identify an attachment. Limited to 300 characters,
+ * and may be truncated further when displayed to users in environments with limited screen real estate.
+ */
+ footer?: string;
+ /**
+ * @description A valid URL to an image file that will be displayed beside the `footer` text.
+ * Will only work if `footer` is present. We'll render what you provide at 16px by 16px.
+ * It's best to use an image that is similarly sized.
+ */
+ footer_icon?: string;
+ /**
+ * @description A Unix timestamp that is used to relate your attachment to a specific time.
+ * The attachment will display the additional timestamp value as part of the attachment's footer.
+ * Your message's timestamp will be displayed in varying ways, depending on how far in the past or future it is,
+ * relative to the present. Form factors, like mobile versus desktop may also transform its rendered appearance.
+ */
+ ts?: string;
+ actions?: AttachmentAction[];
+ callback_id?: string;
+ /**
+ * @description Field names that should be {@link https://api.slack.com/reference/surfaces/formatting#basics formatted by `mrkdwn` syntax}.
+ * The fields that can be formatted in this way include the names of the `fields` property, or
+ * the `text` or `pretext` properties.
+ */
+ mrkdwn_in?: ('pretext' | 'text' | 'fields')[];
+ app_unfurl_url?: string;
+ is_app_unfurl?: boolean;
+ app_id?: string;
+ bot_id?: string;
+ preview?: MessageAttachmentPreview;
+}
+/**
+ * @description A field object to include in a {@link MessageAttachment}.
+ * @see {@link https://api.slack.com/reference/messaging/attachments#field_objects Field objects reference}.
+ */
+export interface MessageAttachmentField {
+ /**
+ * @description Shown as a bold heading displayed in the field object. It cannot contain markup and
+ * will be escaped for you.
+ */
+ title: string;
+ /**
+ * @description The text value displayed in the field object. It can be formatted as plain text, or with {@link https://api.slack.com/reference/surfaces/formatting#basics `mrkdwn`} by using the `mrkdwn_in` option of {@link MessageAttachment}.
+ */
+ value: string;
+ /**
+ * @description Indicates whether the field object is short enough to be displayed side-by-side with
+ * other field objects. Defaults to `false`.
+ */
+ short?: boolean;
+}
+export interface MessageAttachmentPreview {
+ type?: string;
+ can_remove?: boolean;
+ title?: PlainTextElement;
+ subtitle?: PlainTextElement;
+ iconUrl?: string;
+}
+export interface AttachmentAction {
+ id?: string;
+ confirm?: Confirmation;
+ data_source?: 'static' | 'channels' | 'conversations' | 'users' | 'external';
+ min_query_length?: number;
+ name?: string;
+ options?: OptionField[];
+ option_groups?: {
+ text: string;
+ options: OptionField[];
+ }[];
+ selected_options?: OptionField[];
+ style?: 'default' | 'primary' | 'danger';
+ text: string;
+ type: 'button' | 'select';
+ value?: string;
+ url?: string;
+}
+export interface OptionField {
+ description?: string;
+ text: string;
+ value: string;
+}
+export interface Confirmation {
+ dismiss_text?: string;
+ ok_text?: string;
+ text: string;
+ title?: string;
+}
+export interface LinkUnfurls {
+ [linkUrl: string]: MessageAttachment;
+}
+//# sourceMappingURL=message-attachments.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/message-attachments.d.ts.map b/node_modules/@slack/types/dist/message-attachments.d.ts.map
new file mode 100644
index 0000000..9955240
--- /dev/null
+++ b/node_modules/@slack/types/dist/message-attachments.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"message-attachments.d.ts","sourceRoot":"","sources":["../src/message-attachments.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/message-attachments.js b/node_modules/@slack/types/dist/message-attachments.js
new file mode 100644
index 0000000..f138d10
--- /dev/null
+++ b/node_modules/@slack/types/dist/message-attachments.js
@@ -0,0 +1,3 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=message-attachments.js.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/message-attachments.js.map b/node_modules/@slack/types/dist/message-attachments.js.map
new file mode 100644
index 0000000..6e8f2f3
--- /dev/null
+++ b/node_modules/@slack/types/dist/message-attachments.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"message-attachments.js","sourceRoot":"","sources":["../src/message-attachments.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/message-metadata.d.ts b/node_modules/@slack/types/dist/message-metadata.d.ts
new file mode 100644
index 0000000..db7d949
--- /dev/null
+++ b/node_modules/@slack/types/dist/message-metadata.d.ts
@@ -0,0 +1,22 @@
+/**
+ * @description Application-specific data to attach to Slack message.
+ * @see {@link https://api.slack.com/metadata/using Using Metadata}
+ * @see {@link https://api.slack.com/reference/metadata#payload_structure Metadata Payload Structure}
+ */
+export interface MessageMetadata {
+ /**
+ * @description A human readable alphanumeric string representing your application's metadata event.
+ * The value of this field may appear in the UI to developers.
+ */
+ event_type: string;
+ /**
+ * @description A free-form object containing whatever data your application wishes to attach to messages.
+ */
+ event_payload: {
+ [key: string]: string | number | boolean | MessageMetadataEventPayloadObject | MessageMetadataEventPayloadObject[];
+ };
+}
+export interface MessageMetadataEventPayloadObject {
+ [key: string]: string | number | boolean;
+}
+//# sourceMappingURL=message-metadata.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/message-metadata.d.ts.map b/node_modules/@slack/types/dist/message-metadata.d.ts.map
new file mode 100644
index 0000000..70e3616
--- /dev/null
+++ b/node_modules/@slack/types/dist/message-metadata.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"message-metadata.d.ts","sourceRoot":"","sources":["../src/message-metadata.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,aAAa,EAAE;QACb,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,iCAAiC,GAAG,iCAAiC,EAAE,CAAC;KACpH,CAAA;CACF;AAED,MAAM,WAAW,iCAAiC;IAChD,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CACzC"}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/message-metadata.js b/node_modules/@slack/types/dist/message-metadata.js
new file mode 100644
index 0000000..a748726
--- /dev/null
+++ b/node_modules/@slack/types/dist/message-metadata.js
@@ -0,0 +1,3 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=message-metadata.js.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/message-metadata.js.map b/node_modules/@slack/types/dist/message-metadata.js.map
new file mode 100644
index 0000000..4e14202
--- /dev/null
+++ b/node_modules/@slack/types/dist/message-metadata.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"message-metadata.js","sourceRoot":"","sources":["../src/message-metadata.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/views.d.ts b/node_modules/@slack/types/dist/views.d.ts
new file mode 100644
index 0000000..02a79be
--- /dev/null
+++ b/node_modules/@slack/types/dist/views.d.ts
@@ -0,0 +1,35 @@
+import { Block, KnownBlock } from './block-kit/blocks';
+import { PlainTextElement } from './block-kit/composition-objects';
+export interface HomeView {
+ type: 'home';
+ blocks: (KnownBlock | Block)[];
+ private_metadata?: string;
+ callback_id?: string;
+ external_id?: string;
+}
+export interface ModalView {
+ type: 'modal';
+ title: PlainTextElement;
+ blocks: (KnownBlock | Block)[];
+ close?: PlainTextElement;
+ submit?: PlainTextElement;
+ private_metadata?: string;
+ callback_id?: string;
+ clear_on_close?: boolean;
+ notify_on_close?: boolean;
+ external_id?: string;
+}
+/**
+ * {@link https://api.slack.com/legacy/workflows/steps#handle_config_view Configuration modal} for {@link https://api.slack.com/legacy/workflows/steps legacy Workflow Steps from Apps}.
+ * @deprecated Steps from Apps are deprecated and will no longer be executed starting September 12, 2024. For more information, see our {@link https://api.slack.com/changelog/2023-08-workflow-steps-from-apps-step-back deprecation announcement}.
+ */
+export interface WorkflowStepView {
+ type: 'workflow_step';
+ blocks: (KnownBlock | Block)[];
+ private_metadata?: string;
+ callback_id?: string;
+ submit_disabled?: boolean;
+ external_id?: string;
+}
+export type View = HomeView | ModalView | WorkflowStepView;
+//# sourceMappingURL=views.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/views.d.ts.map b/node_modules/@slack/types/dist/views.d.ts.map
new file mode 100644
index 0000000..a984664
--- /dev/null
+++ b/node_modules/@slack/types/dist/views.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../src/views.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/views.js b/node_modules/@slack/types/dist/views.js
new file mode 100644
index 0000000..61df01a
--- /dev/null
+++ b/node_modules/@slack/types/dist/views.js
@@ -0,0 +1,3 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=views.js.map
\ No newline at end of file
diff --git a/node_modules/@slack/types/dist/views.js.map b/node_modules/@slack/types/dist/views.js.map
new file mode 100644
index 0000000..3c10a9d
--- /dev/null
+++ b/node_modules/@slack/types/dist/views.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"views.js","sourceRoot":"","sources":["../src/views.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/node_modules/@slack/types/package.json b/node_modules/@slack/types/package.json
index 844ca76..7f080d4 100644
--- a/node_modules/@slack/types/package.json
+++ b/node_modules/@slack/types/package.json
@@ -1,6 +1,6 @@
{
"name": "@slack/types",
- "version": "2.7.0",
+ "version": "2.12.0",
"description": "Shared type definitions for the Node Slack SDK",
"author": "Slack Technologies, LLC",
"license": "MIT",
@@ -36,14 +36,15 @@
"ref-docs:model": "api-extractor run"
},
"devDependencies": {
- "@microsoft/api-extractor": "^7.3.4",
- "@typescript-eslint/eslint-plugin": "^4.4.1",
- "@typescript-eslint/parser": "^4.4.0",
- "eslint": "^7.32.0",
- "eslint-config-airbnb-base": "^14.2.1",
- "eslint-config-airbnb-typescript": "^12.3.1",
- "eslint-plugin-import": "^2.22.1",
- "eslint-plugin-jsdoc": "^30.6.1",
+ "@microsoft/api-extractor": "^7.38.0",
+ "@typescript-eslint/eslint-plugin": "^6.4.1",
+ "@typescript-eslint/parser": "^6.4.0",
+ "eslint": "^8.47.0",
+ "eslint-config-airbnb-base": "^15.0.0",
+ "eslint-config-airbnb-typescript": "^17.1.0",
+ "eslint-plugin-import": "^2.28.1",
+ "eslint-plugin-import-newlines": "^1.3.4",
+ "eslint-plugin-jsdoc": "^46.5.0",
"eslint-plugin-node": "^11.1.0",
"shx": "^0.3.2",
"typescript": "^4.1.0"
diff --git a/node_modules/@slack/web-api/README.md b/node_modules/@slack/web-api/README.md
index c93ad9b..cf31dc9 100644
--- a/node_modules/@slack/web-api/README.md
+++ b/node_modules/@slack/web-api/README.md
@@ -6,7 +6,7 @@ The `@slack/web-api` package contains a simple, convenient, and configurable HTT
## Requirements
-This package supports Node v12.13 and higher. It's highly recommended to use [the latest LTS version of
+This package supports Node v14 and higher. It's highly recommended to use [the latest LTS version of
node](https://github.com/nodejs/Release#release-schedule), and the documentation is written using syntax and features
from that version.
diff --git a/node_modules/@slack/web-api/dist/WebClient.d.ts b/node_modules/@slack/web-api/dist/WebClient.d.ts
index a896d6d..83558d1 100644
--- a/node_modules/@slack/web-api/dist/WebClient.d.ts
+++ b/node_modules/@slack/web-api/dist/WebClient.d.ts
@@ -2,7 +2,7 @@
///
import { Agent } from 'http';
import { SecureContextOptions } from 'tls';
-import { Methods } from './methods';
+import { Methods, FilesUploadV2Arguments } from './methods';
import { LogLevel, Logger } from './logger';
import { RetryOptions } from './retry-policies';
export interface WebClientOptions {
@@ -18,7 +18,7 @@ export interface WebClientOptions {
headers?: Record;
teamId?: string;
}
-export declare type TLSOptions = Pick;
+export type TLSOptions = Pick;
export declare enum WebClientEvent {
RATE_LIMITED = "rate_limited"
}
@@ -44,7 +44,7 @@ export interface PaginatePredicate {
export interface PageReducer {
(accumulator: A | undefined, page: WebAPICallResult, index: number): A;
}
-export declare type PageAccumulator = R extends (accumulator: (infer A) | undefined, page: WebAPICallResult, index: number) => infer A ? A : never;
+export type PageAccumulator = R extends (accumulator: (infer A) | undefined, page: WebAPICallResult, index: number) => infer A ? A : never;
/**
* A client for Slack's Web API
*
@@ -127,6 +127,45 @@ export declare class WebClient extends Methods {
paginate(method: string, options?: WebAPICallOptions): AsyncIterable;
paginate(method: string, options: WebAPICallOptions, shouldStop: PaginatePredicate): Promise;
paginate>(method: string, options: WebAPICallOptions, shouldStop: PaginatePredicate, reduce?: PageReducer): Promise;
+ /**
+ * This wrapper method provides an easy way to upload files using the following endpoints:
+ *
+ * **#1**: For each file submitted with this method, submit filenames
+ * and file metadata to {@link https://api.slack.com/methods/files.getUploadURLExternal files.getUploadURLExternal} to request a URL to
+ * which to send the file data to and an id for the file
+ *
+ * **#2**: for each returned file `upload_url`, upload corresponding file to
+ * URLs returned from step 1 (e.g. https://files.slack.com/upload/v1/...\")
+ *
+ * **#3**: Complete uploads {@link https://api.slack.com/methods/files.completeUploadExternal files.completeUploadExternal}
+ *
+ * @param options
+ */
+ filesUploadV2(options: FilesUploadV2Arguments): Promise;
+ /**
+ * For each file submitted with this method, submits filenames
+ * and file metadata to files.getUploadURLExternal to request a URL to
+ * which to send the file data to and an id for the file
+ * @param fileUploads
+ */
+ private fetchAllUploadURLExternal;
+ /**
+ * Complete uploads.
+ * @param fileUploads
+ * @returns
+ */
+ private completeFileUploads;
+ /**
+ * for each returned file upload URL, upload corresponding file
+ * @param fileUploads
+ * @returns
+ */
+ private postFileUploadsToExternalURL;
+ /**
+ * @param options All file uploads arguments
+ * @returns An array of file upload entries
+ */
+ private getAllFileUploads;
/**
* Low-level function to make a single API request. handles queuing, retries, and http-level errors
*/
@@ -149,4 +188,5 @@ export declare class WebClient extends Methods {
private buildResult;
}
export default WebClient;
+export declare function buildThreadTsWarningMessage(method: string): string;
//# sourceMappingURL=WebClient.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@slack/web-api/dist/WebClient.d.ts.map b/node_modules/@slack/web-api/dist/WebClient.d.ts.map
index 132e7ad..833f260 100644
--- a/node_modules/@slack/web-api/dist/WebClient.d.ts.map
+++ b/node_modules/@slack/web-api/dist/WebClient.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"WebClient.d.ts","sourceRoot":"","sources":["../src/WebClient.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"WebClient.d.ts","sourceRoot":"","sources":["../src/WebClient.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAG7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,KAAK,CAAC;AAkB3C,OAAO,EAAE,OAAO,EAA2D,sBAAsB,EAA6F,MAAM,WAAW,CAAC;AAKhN,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAa,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,YAAY,EAAkC,MAAM,kBAAkB,CAAC;AAgBhF,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,KAAK,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;AAElG,oBAAY,cAAc;IAGxB,YAAY,iBAAiB;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE;QAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QAGrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QAEpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAGD,MAAM,WAAW,iBAAiB;IAChC,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;CACtD;AAGD,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,CAAC,WAAW,EAAE,CAAC,GAAG,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC;CACxE;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,WAAW,IAC/C,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE/G;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,OAAO;IACpC;;OAEG;IACH,SAAgB,WAAW,EAAE,MAAM,CAAC;IAEpC;;OAEG;IACH,SAAgB,KAAK,CAAC,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,OAAO,CAAC,WAAW,CAAe;IAElC;;;OAGG;IACH,OAAO,CAAC,YAAY,CAAS;IAE7B;;OAEG;IACH,OAAO,CAAC,KAAK,CAAgB;IAE7B;;OAEG;IACH,OAAO,CAAC,SAAS,CAAa;IAE9B;;OAEG;IACH,OAAO,CAAC,sBAAsB,CAAU;IAExC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU,CAAe;IAExC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAS;IAEvB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,CAAS;IAExB;;OAEG;gBACgB,KAAK,CAAC,EAAE,MAAM,EAAE,EACjC,WAAsC,EACtC,MAAkB,EAClB,QAAoB,EACpB,qBAA2B,EAC3B,WAA4C,EAC5C,KAAiB,EACjB,GAAe,EACf,OAAW,EACX,sBAA8B,EAC9B,OAAY,EACZ,MAAkB,GACnB,GAAE,gBAAqB;IA+CxB;;;;;OAKG;IACU,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6DhG;;;;;;;;;;;;;;;;;;;OAmBG;IACI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,aAAa,CAAC,gBAAgB,CAAC;IACtF,QAAQ,CACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,iBAAiB,GAC5B,OAAO,CAAC,IAAI,CAAC;IACT,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EACjE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,iBAAiB,EAC7B,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,CAAC,CAAC;IAgFb;;;;;;;;;;;;;OAaG;IACU,aAAa,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoBtF;;;;;OAKG;YACW,yBAAyB;IAevC;;;;OAIG;YACW,mBAAmB;IAQjC;;;;OAIG;YACW,4BAA4B;IAyB1C;;;OAGG;YACW,iBAAiB;IAe/B;;OAEG;YAEW,WAAW;IAsEzB;;;;;;;;OAQG;IAEH,OAAO,CAAC,uBAAuB;IA8E/B;;;;OAIG;YAEW,WAAW;CAqE1B;AAED,eAAe,SAAS,CAAC;AAsHzB,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElE"}
\ No newline at end of file
diff --git a/node_modules/@slack/web-api/dist/WebClient.js b/node_modules/@slack/web-api/dist/WebClient.js
index 3cdcc88..0acb328 100644
--- a/node_modules/@slack/web-api/dist/WebClient.js
+++ b/node_modules/@slack/web-api/dist/WebClient.js
@@ -45,9 +45,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
-exports.WebClient = exports.WebClientEvent = void 0;
+exports.buildThreadTsWarningMessage = exports.WebClient = exports.WebClientEvent = void 0;
const querystring_1 = require("querystring");
const path_1 = require("path");
+const zlib_1 = __importDefault(require("zlib"));
+const util_1 = require("util");
const is_stream_1 = __importDefault(require("is-stream"));
const p_queue_1 = __importDefault(require("p-queue"));
const p_retry_1 = __importStar(require("p-retry"));
@@ -60,6 +62,7 @@ const errors_1 = require("./errors");
const logger_1 = require("./logger");
const retry_policies_1 = require("./retry-policies");
const helpers_1 = __importDefault(require("./helpers"));
+const file_upload_1 = require("./file-upload");
/*
* Helpers
*/
@@ -82,7 +85,7 @@ class WebClient extends methods_1.Methods {
/**
* @param token - An API token to authenticate/authorize with Slack (usually start with `xoxp`, `xoxb`)
*/
- constructor(token, { slackApiUrl = 'https://slack.com/api/', logger = undefined, logLevel = undefined, maxRequestConcurrency = 3, retryConfig = retry_policies_1.tenRetriesInAboutThirtyMinutes, agent = undefined, tls = undefined, timeout = 0, rejectRateLimitedCalls = false, headers = {}, teamId = undefined, } = {}) {
+ constructor(token, { slackApiUrl = 'https://slack.com/api/', logger = undefined, logLevel = undefined, maxRequestConcurrency = 100, retryConfig = retry_policies_1.tenRetriesInAboutThirtyMinutes, agent = undefined, tls = undefined, timeout = 0, rejectRateLimitedCalls = false, headers = {}, teamId = undefined, } = {}) {
super();
this.token = token;
this.slackApiUrl = slackApiUrl;
@@ -138,11 +141,15 @@ class WebClient extends methods_1.Methods {
if (typeof options === 'string' || typeof options === 'number' || typeof options === 'boolean') {
throw new TypeError(`Expected an options argument but instead received a ${typeof options}`);
}
+ (0, file_upload_1.warnIfNotUsingFilesUploadV2)(method, this.logger);
+ if (method === 'files.uploadV2')
+ return this.filesUploadV2(options);
const headers = {};
if (options.token)
headers.Authorization = `Bearer ${options.token}`;
const response = await this.makeRequest(method, Object.assign({ team_id: this.teamId }, options), headers);
- const result = this.buildResult(response);
+ const result = await this.buildResult(response);
+ this.logger.debug(`http request result: ${JSON.stringify(result)}`);
// log warnings in response metadata
if (result.response_metadata !== undefined && result.response_metadata.warnings !== undefined) {
result.response_metadata.warnings.forEach(this.logger.warn.bind(this.logger));
@@ -167,9 +174,16 @@ class WebClient extends methods_1.Methods {
}
});
}
- if (!result.ok) {
+ // If result's content is gzip, "ok" property is not returned with successful response
+ // TODO: look into simplifying this code block to only check for the second condition
+ // if an { ok: false } body applies for all API errors
+ if (!result.ok && (response.headers['content-type'] !== 'application/gzip')) {
throw (0, errors_1.platformErrorFromResult)(result);
}
+ else if ('ok' in result && result.ok === false) {
+ throw (0, errors_1.platformErrorFromResult)(result);
+ }
+ this.logger.debug(`apiCall('${method}') end`);
return result;
}
paginate(method, options, shouldStop, reduce) {
@@ -215,7 +229,7 @@ class WebClient extends methods_1.Methods {
// This is done primarily because in order to satisfy the type system, we need a variable that is typed as A
// (shown as accumulator before), but before the first iteration all we have is a variable typed A | undefined.
// Unrolling the first iteration allows us to deal with undefined as a special case.
- var e_1, _a;
+ var _a, e_1, _b, _c;
const pageIterator = generatePages.call(this);
const firstIteratorResult = await pageIterator.next(undefined);
// Assumption: there will always be at least one result in a paginated API request
@@ -229,25 +243,133 @@ class WebClient extends methods_1.Methods {
try {
// Continue iteration
// eslint-disable-next-line no-restricted-syntax
- for (var pageIterator_1 = __asyncValues(pageIterator), pageIterator_1_1; pageIterator_1_1 = await pageIterator_1.next(), !pageIterator_1_1.done;) {
- const page = pageIterator_1_1.value;
- accumulator = pageReducer(accumulator, page, index);
- if (shouldStop(page)) {
- return accumulator;
+ for (var _d = true, pageIterator_1 = __asyncValues(pageIterator), pageIterator_1_1; pageIterator_1_1 = await pageIterator_1.next(), _a = pageIterator_1_1.done, !_a;) {
+ _c = pageIterator_1_1.value;
+ _d = false;
+ try {
+ const page = _c;
+ accumulator = pageReducer(accumulator, page, index);
+ if (shouldStop(page)) {
+ return accumulator;
+ }
+ index += 1;
+ }
+ finally {
+ _d = true;
}
- index += 1;
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
- if (pageIterator_1_1 && !pageIterator_1_1.done && (_a = pageIterator_1.return)) await _a.call(pageIterator_1);
+ if (!_d && !_a && (_b = pageIterator_1.return)) await _b.call(pageIterator_1);
}
finally { if (e_1) throw e_1.error; }
}
return accumulator;
})();
}
+ /* eslint-disable no-trailing-spaces */
+ /**
+ * This wrapper method provides an easy way to upload files using the following endpoints:
+ *
+ * **#1**: For each file submitted with this method, submit filenames
+ * and file metadata to {@link https://api.slack.com/methods/files.getUploadURLExternal files.getUploadURLExternal} to request a URL to
+ * which to send the file data to and an id for the file
+ *
+ * **#2**: for each returned file `upload_url`, upload corresponding file to
+ * URLs returned from step 1 (e.g. https://files.slack.com/upload/v1/...\")
+ *
+ * **#3**: Complete uploads {@link https://api.slack.com/methods/files.completeUploadExternal files.completeUploadExternal}
+ *
+ * @param options
+ */
+ async filesUploadV2(options) {
+ this.logger.debug('files.uploadV2() start');
+ // 1
+ const fileUploads = await this.getAllFileUploads(options);
+ const fileUploadsURLRes = await this.fetchAllUploadURLExternal(fileUploads);
+ // set the upload_url and file_id returned from Slack
+ fileUploadsURLRes.forEach((res, idx) => {
+ fileUploads[idx].upload_url = res.upload_url;
+ fileUploads[idx].file_id = res.file_id;
+ });
+ // 2
+ await this.postFileUploadsToExternalURL(fileUploads, options);
+ // 3
+ const completion = await this.completeFileUploads(fileUploads);
+ return { ok: true, files: completion };
+ }
+ /**
+ * For each file submitted with this method, submits filenames
+ * and file metadata to files.getUploadURLExternal to request a URL to
+ * which to send the file data to and an id for the file
+ * @param fileUploads
+ */
+ async fetchAllUploadURLExternal(fileUploads) {
+ return Promise.all(fileUploads.map((upload) => {
+ /* eslint-disable @typescript-eslint/consistent-type-assertions */
+ const options = {
+ filename: upload.filename,
+ length: upload.length,
+ alt_text: upload.alt_text,
+ snippet_type: upload.snippet_type,
+ };
+ return this.files.getUploadURLExternal(options);
+ }));
+ }
+ /**
+ * Complete uploads.
+ * @param fileUploads
+ * @returns
+ */
+ async completeFileUploads(fileUploads) {
+ const toComplete = Object.values((0, file_upload_1.getAllFileUploadsToComplete)(fileUploads));
+ return Promise.all(toComplete.map((job) => this.files.completeUploadExternal(job)));
+ }
+ /**
+ * for each returned file upload URL, upload corresponding file
+ * @param fileUploads
+ * @returns
+ */
+ async postFileUploadsToExternalURL(fileUploads, options) {
+ return Promise.all(fileUploads.map(async (upload) => {
+ const { upload_url, file_id, filename, data } = upload;
+ // either file or content will be defined
+ const body = data;
+ // try to post to external url
+ if (upload_url) {
+ const headers = {};
+ if (options.token)
+ headers.Authorization = `Bearer ${options.token}`;
+ const uploadRes = await this.makeRequest(upload_url, {
+ body,
+ }, headers);
+ if (uploadRes.status !== 200) {
+ return Promise.reject(Error(`Failed to upload file (id:${file_id}, filename: ${filename})`));
+ }
+ const returnData = { ok: true, body: uploadRes.data };
+ return Promise.resolve(returnData);
+ }
+ return Promise.reject(Error(`No upload url found for file (id: ${file_id}, filename: ${filename}`));
+ }));
+ }
+ /**
+ * @param options All file uploads arguments
+ * @returns An array of file upload entries
+ */
+ async getAllFileUploads(options) {
+ let fileUploads = [];
+ // add single file data to uploads if file or content exists at the top level
+ if (options.file || options.content) {
+ fileUploads.push(await (0, file_upload_1.getFileUploadJob)(options, this.logger));
+ }
+ // add multiple files data when file_uploads is supplied
+ if (options.file_uploads) {
+ fileUploads = fileUploads.concat(await (0, file_upload_1.getMultipleFileUploadJobs)(options, this.logger));
+ }
+ return fileUploads;
+ }
/**
* Low-level function to make a single API request. handles queuing, retries, and http-level errors
*/
@@ -255,14 +377,24 @@ class WebClient extends methods_1.Methods {
async makeRequest(url, body, headers = {}) {
// TODO: better input types - remove any
const task = () => this.requestQueue.add(async () => {
- this.logger.debug('will perform http request');
+ const requestURL = (url.startsWith('https' || 'http')) ? url : `${this.axios.getUri() + url}`;
+ this.logger.debug(`http request url: ${requestURL}`);
+ this.logger.debug(`http request body: ${JSON.stringify(redact(body))}`);
+ this.logger.debug(`http request headers: ${JSON.stringify(redact(headers))}`);
try {
- const response = await this.axios.post(url, body, Object.assign({ headers }, this.tlsConfig));
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ const config = Object.assign({ headers }, this.tlsConfig);
+ // admin.analytics.getFile returns a binary response
+ // To be able to parse it, it should be read as an ArrayBuffer
+ if (url.endsWith('admin.analytics.getFile')) {
+ config.responseType = 'arraybuffer';
+ }
+ const response = await this.axios.post(url, body, config);
this.logger.debug('http response received');
if (response.status === 429) {
const retrySec = parseRetryHeaders(response);
if (retrySec !== undefined) {
- this.emit(WebClientEvent.RATE_LIMITED, retrySec);
+ this.emit(WebClientEvent.RATE_LIMITED, retrySec, { url, body });
if (this.rejectRateLimitedCalls) {
throw new p_retry_1.AbortError((0, errors_1.rateLimitedErrorWithDelay)(retrySec));
}
@@ -337,7 +469,7 @@ class WebClient extends methods_1.Methods {
});
// A body with binary content should be serialized as multipart/form-data
if (containsBinaryData) {
- this.logger.debug('request arguments contain binary data');
+ this.logger.debug('Request arguments contain binary data');
const form = flattened.reduce((frm, [key, value]) => {
if (Buffer.isBuffer(value) || (0, is_stream_1.default)(value)) {
const opts = {};
@@ -389,8 +521,43 @@ class WebClient extends methods_1.Methods {
* @param response - an http response
*/
// eslint-disable-next-line class-methods-use-this
- buildResult(response) {
+ async buildResult(response) {
let { data } = response;
+ const isGzipResponse = response.headers['content-type'] === 'application/gzip';
+ // Check for GZIP response - if so, it is a successful response from admin.analytics.getFile
+ if (isGzipResponse) {
+ // admin.analytics.getFile will return a Buffer that can be unzipped
+ try {
+ const unzippedData = await new Promise((resolve, reject) => {
+ zlib_1.default.unzip(data, (err, buf) => {
+ if (err) {
+ return reject(err);
+ }
+ return resolve(buf.toString().split('\n'));
+ });
+ }).then((res) => res)
+ .catch((err) => {
+ throw err;
+ });
+ const fileData = [];
+ if (Array.isArray(unzippedData)) {
+ unzippedData.forEach((dataset) => {
+ if (dataset && dataset.length > 0) {
+ fileData.push(JSON.parse(dataset));
+ }
+ });
+ }
+ data = { file_data: fileData };
+ }
+ catch (err) {
+ data = { ok: false, error: err };
+ }
+ }
+ else if (!isGzipResponse && response.request.path === '/api/admin.analytics.getFile') {
+ // if it isn't a Gzip response but is from the admin.analytics.getFile request,
+ // decode the ArrayBuffer to JSON read the error
+ data = JSON.parse(new util_1.TextDecoder().decode(data));
+ }
if (typeof data === 'string') {
// response.data can be a string, not an object for some reason
try {
@@ -462,7 +629,7 @@ function parseRetryHeaders(response) {
*/
function warnDeprecations(method, logger) {
const deprecatedConversationsMethods = ['channels.', 'groups.', 'im.', 'mpim.'];
- const deprecatedMethods = ['admin.conversations.whitelist.'];
+ const deprecatedMethods = ['admin.conversations.whitelist.', 'stars.'];
const isDeprecatedConversations = deprecatedConversationsMethods.some((depMethod) => {
const re = new RegExp(`^${depMethod}`);
return re.test(method);
@@ -487,6 +654,7 @@ function warnDeprecations(method, logger) {
function warnIfFallbackIsMissing(method, logger, options) {
const targetMethods = ['chat.postEphemeral', 'chat.postMessage', 'chat.scheduleMessage', 'chat.update'];
const isTargetMethod = targetMethods.includes(method);
+ const hasAttachments = (args) => Array.isArray(args.attachments) && args.attachments.length;
const missingAttachmentFallbackDetected = (args) => Array.isArray(args.attachments) &&
args.attachments.some((attachment) => !attachment.fallback || attachment.fallback.trim() === '');
const isEmptyText = (args) => args.text === undefined || args.text === null || args.text === '';
@@ -498,12 +666,15 @@ function warnIfFallbackIsMissing(method, logger, options) {
'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://api.slack.com/reference/messaging/attachments#legacy_fields for more details).';
if (isTargetMethod && typeof options === 'object') {
- if (isEmptyText(options)) {
- logger.warn(buildMissingTextWarning());
- if (missingAttachmentFallbackDetected(options)) {
+ if (hasAttachments(options)) {
+ if (missingAttachmentFallbackDetected(options) && isEmptyText(options)) {
+ logger.warn(buildMissingTextWarning());
logger.warn(buildMissingFallbackWarning());
}
}
+ else if (isEmptyText(options)) {
+ logger.warn(buildMissingTextWarning());
+ }
}
}
/**
@@ -516,7 +687,48 @@ function warnIfThreadTsIsNotString(method, logger, options) {
const targetMethods = ['chat.postEphemeral', 'chat.postMessage', 'chat.scheduleMessage', 'files.upload'];
const isTargetMethod = targetMethods.includes(method);
if (isTargetMethod && (options === null || options === void 0 ? void 0 : options.thread_ts) !== undefined && typeof (options === null || options === void 0 ? void 0 : options.thread_ts) !== 'string') {
- logger.warn(`The given thread_ts value in the request payload for a ${method} call is a float value. We highly recommend using a string value instead.`);
+ logger.warn(buildThreadTsWarningMessage(method));
}
}
+function buildThreadTsWarningMessage(method) {
+ return `The given thread_ts value in the request payload for a ${method} call is a float value. We highly recommend using a string value instead.`;
+}
+exports.buildThreadTsWarningMessage = buildThreadTsWarningMessage;
+/**
+ * Takes an object and redacts specific items
+ * @param body
+ * @returns
+ */
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+function redact(body) {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ const flattened = Object.entries(body).map(([key, value]) => {
+ // no value provided
+ if (value === undefined || value === null) {
+ return [];
+ }
+ let serializedValue = value;
+ // redact possible tokens
+ if (key.match(/.*token.*/) !== null || key.match(/[Aa]uthorization/)) {
+ serializedValue = '[[REDACTED]]';
+ }
+ // when value is buffer or stream we can avoid logging it
+ if (Buffer.isBuffer(value) || (0, is_stream_1.default)(value)) {
+ serializedValue = '[[BINARY VALUE OMITTED]]';
+ }
+ else if (typeof value !== 'string' && typeof value !== 'number' && typeof value !== 'boolean') {
+ serializedValue = JSON.stringify(value);
+ }
+ return [key, serializedValue];
+ });
+ // return as object
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ const initialValue = {};
+ return flattened.reduce((accumulator, [key, value]) => {
+ if (key !== undefined && value !== undefined) {
+ accumulator[key] = value;
+ }
+ return accumulator;
+ }, initialValue);
+}
//# sourceMappingURL=WebClient.js.map
\ No newline at end of file
diff --git a/node_modules/@slack/web-api/dist/WebClient.js.map b/node_modules/@slack/web-api/dist/WebClient.js.map
index 7d8862a..4637c37 100644
--- a/node_modules/@slack/web-api/dist/WebClient.js.map
+++ b/node_modules/@slack/web-api/dist/WebClient.js.map
@@ -1 +1 @@
-{"version":3,"file":"WebClient.js","sourceRoot":"","sources":["../src/WebClient.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"WebClient.js","sourceRoot":"","sources":["../src/WebClient.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@slack/web-api/dist/errors.d.ts b/node_modules/@slack/web-api/dist/errors.d.ts
index 702fcb2..c0f4f0d 100644
--- a/node_modules/@slack/web-api/dist/errors.d.ts
+++ b/node_modules/@slack/web-api/dist/errors.d.ts
@@ -16,9 +16,18 @@ export declare enum ErrorCode {
RequestError = "slack_webapi_request_error",
HTTPError = "slack_webapi_http_error",
PlatformError = "slack_webapi_platform_error",
- RateLimitedError = "slack_webapi_rate_limited_error"
+ RateLimitedError = "slack_webapi_rate_limited_error",
+ FileUploadInvalidArgumentsError = "slack_webapi_file_upload_invalid_args_error",
+ FileUploadReadFileDataError = "slack_webapi_file_upload_read_file_data_error"
+}
+export type WebAPICallError = WebAPIPlatformError | WebAPIRequestError | WebAPIHTTPError | WebAPIRateLimitedError;
+export type WebAPIFilesUploadError = WebAPIFileUploadInvalidArgumentsError;
+export interface WebAPIFileUploadInvalidArgumentsError extends CodedError {
+ code: ErrorCode.FileUploadInvalidArgumentsError;
+ data: WebAPICallResult & {
+ error: string;
+ };
}
-export declare type WebAPICallError = WebAPIPlatformError | WebAPIRequestError | WebAPIHTTPError | WebAPIRateLimitedError;
export interface WebAPIPlatformError extends CodedError {
code: ErrorCode.PlatformError;
data: WebAPICallResult & {
@@ -40,6 +49,10 @@ export interface WebAPIRateLimitedError extends CodedError {
code: ErrorCode.RateLimitedError;
retryAfter: number;
}
+/**
+ * Factory for producing a {@link CodedError} from a generic error
+ */
+export declare function errorWithCode(error: Error, code: ErrorCode): CodedError;
/**
* A factory to create WebAPIRequestError objects
* @param original - original error
diff --git a/node_modules/@slack/web-api/dist/errors.d.ts.map b/node_modules/@slack/web-api/dist/errors.d.ts.map
index e5b061b..729e113 100644
--- a/node_modules/@slack/web-api/dist/errors.d.ts.map
+++ b/node_modules/@slack/web-api/dist/errors.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,MAAM,CAAC,cAAc;IACvD,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,YAAY,+BAA+B;IAC3C,SAAS,4BAA4B;IACrC,aAAa,gCAAgC;IAC7C,gBAAgB,oCAAoC;CACrD;AAED,oBAAY,eAAe,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,eAAe,GAAG,sBAAsB,CAAC;AAElH,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,IAAI,EAAE,SAAS,CAAC,aAAa,CAAC;IAC9B,IAAI,EAAE,gBAAgB,GAAG;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,IAAI,EAAE,SAAS,CAAC,YAAY,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,mBAAmB,CAAC;IAE7B,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,sBAAuB,SAAQ,UAAU;IACxD,IAAI,EAAE,SAAS,CAAC,gBAAgB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB;AAYD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,KAAK,GAAG,kBAAkB,CAO5E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,eAAe,CAU9E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;CAAE,GAAG,mBAAmB,CAO1G;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,sBAAsB,CAOlF"}
\ No newline at end of file
+{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,MAAM,CAAC,cAAc;IACvD,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,oBAAY,SAAS;IAEnB,YAAY,+BAA+B;IAC3C,SAAS,4BAA4B;IACrC,aAAa,gCAAgC;IAC7C,gBAAgB,oCAAoC;IAGpD,+BAA+B,gDAAgD;IAC/E,2BAA2B,kDAAkD;CAC9E;AAED,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,eAAe,GAAG,sBAAsB,CAAC;AAClH,MAAM,MAAM,sBAAsB,GAAG,qCAAqC,CAAC;AAE3E,MAAM,WAAW,qCAAsC,SAAQ,UAAU;IACvE,IAAI,EAAE,SAAS,CAAC,+BAA+B,CAAC;IAChD,IAAI,EAAE,gBAAgB,GAAG;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,CAAA;CACF;AAED,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,IAAI,EAAE,SAAS,CAAC,aAAa,CAAC;IAC9B,IAAI,EAAE,gBAAgB,GAAG;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,IAAI,EAAE,SAAS,CAAC,YAAY,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,mBAAmB,CAAC;IAE7B,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,sBAAuB,SAAQ,UAAU;IACxD,IAAI,EAAE,SAAS,CAAC,gBAAgB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,GAAG,UAAU,CAKvE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,KAAK,GAAG,kBAAkB,CAO5E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,eAAe,CAgB9E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;CAAE,GAAG,mBAAmB,CAO1G;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,sBAAsB,CAOlF"}
\ No newline at end of file
diff --git a/node_modules/@slack/web-api/dist/errors.js b/node_modules/@slack/web-api/dist/errors.js
index c61ff71..e2e9b9c 100644
--- a/node_modules/@slack/web-api/dist/errors.js
+++ b/node_modules/@slack/web-api/dist/errors.js
@@ -1,15 +1,19 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.rateLimitedErrorWithDelay = exports.platformErrorFromResult = exports.httpErrorFromResponse = exports.requestErrorWithOriginal = exports.ErrorCode = void 0;
+exports.rateLimitedErrorWithDelay = exports.platformErrorFromResult = exports.httpErrorFromResponse = exports.requestErrorWithOriginal = exports.errorWithCode = exports.ErrorCode = void 0;
/**
* A dictionary of codes for errors produced by this package
*/
var ErrorCode;
(function (ErrorCode) {
+ // general error
ErrorCode["RequestError"] = "slack_webapi_request_error";
ErrorCode["HTTPError"] = "slack_webapi_http_error";
ErrorCode["PlatformError"] = "slack_webapi_platform_error";
ErrorCode["RateLimitedError"] = "slack_webapi_rate_limited_error";
+ // file uploads errors
+ ErrorCode["FileUploadInvalidArgumentsError"] = "slack_webapi_file_upload_invalid_args_error";
+ ErrorCode["FileUploadReadFileDataError"] = "slack_webapi_file_upload_read_file_data_error";
})(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {}));
/**
* Factory for producing a {@link CodedError} from a generic error
@@ -20,6 +24,7 @@ function errorWithCode(error, code) {
codedError.code = code;
return codedError;
}
+exports.errorWithCode = errorWithCode;
/**
* A factory to create WebAPIRequestError objects
* @param original - original error
@@ -38,7 +43,13 @@ function httpErrorFromResponse(response) {
const error = errorWithCode(new Error(`An HTTP protocol error occurred: statusCode = ${response.status}`), ErrorCode.HTTPError);
error.statusCode = response.status;
error.statusMessage = response.statusText;
- error.headers = response.headers;
+ const nonNullHeaders = {};
+ Object.keys(response.headers).forEach((k) => {
+ if (k && response.headers[k]) {
+ nonNullHeaders[k] = response.headers[k];
+ }
+ });
+ error.headers = nonNullHeaders;
error.body = response.data;
return error;
}
diff --git a/node_modules/@slack/web-api/dist/errors.js.map b/node_modules/@slack/web-api/dist/errors.js.map
index 494c011..227fb9b 100644
--- a/node_modules/@slack/web-api/dist/errors.js.map
+++ b/node_modules/@slack/web-api/dist/errors.js.map
@@ -1 +1 @@
-{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAWA;;GAEG;AACH,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,wDAA2C,CAAA;IAC3C,kDAAqC,CAAA;IACrC,0DAA6C,CAAA;IAC7C,iEAAoD,CAAA;AACtD,CAAC,EALW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAKpB;AA8BD;;GAEG;AACH,SAAS,aAAa,CAAC,KAAY,EAAE,IAAe;IAClD,kGAAkG;IAClG,MAAM,UAAU,GAAG,KAA4B,CAAC;IAChD,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;IACvB,OAAO,UAAwB,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CAAC,QAAe;IACtD,MAAM,KAAK,GAAG,aAAa,CACzB,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,OAAO,EAAE,CAAC,EAC1D,SAAS,CAAC,YAAY,CACQ,CAAC;IACjC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,OAAQ,KAA4B,CAAC;AACvC,CAAC;AAPD,4DAOC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,QAAuB;IAC3D,MAAM,KAAK,GAAG,aAAa,CACzB,IAAI,KAAK,CAAC,iDAAiD,QAAQ,CAAC,MAAM,EAAE,CAAC,EAC7E,SAAS,CAAC,SAAS,CACQ,CAAC;IAC9B,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;IACnC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC;IAC1C,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IACjC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,OAAQ,KAAyB,CAAC;AACpC,CAAC;AAVD,sDAUC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,MAA6C;IACnF,MAAM,KAAK,GAAG,aAAa,CACzB,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,KAAK,EAAE,CAAC,EACnD,SAAS,CAAC,aAAa,CACQ,CAAC;IAClC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;IACpB,OAAQ,KAA6B,CAAC;AACxC,CAAC;AAPD,0DAOC;AAED;;;GAGG;AACH,SAAgB,yBAAyB,CAAC,QAAgB;IACxD,MAAM,KAAK,GAAG,aAAa,CACzB,IAAI,KAAK,CAAC,gEAAgE,QAAQ,UAAU,CAAC,EAC7F,SAAS,CAAC,gBAAgB,CACQ,CAAC;IACrC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC5B,OAAQ,KAAgC,CAAC;AAC3C,CAAC;AAPD,8DAOC"}
\ No newline at end of file
+{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAWA;;GAEG;AACH,IAAY,SAUX;AAVD,WAAY,SAAS;IACnB,gBAAgB;IAChB,wDAA2C,CAAA;IAC3C,kDAAqC,CAAA;IACrC,0DAA6C,CAAA;IAC7C,iEAAoD,CAAA;IAEpD,sBAAsB;IACtB,4FAA+E,CAAA;IAC/E,0FAA6E,CAAA;AAC/E,CAAC,EAVW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAUpB;AAsCD;;GAEG;AACH,SAAgB,aAAa,CAAC,KAAY,EAAE,IAAe;IACzD,kGAAkG;IAClG,MAAM,UAAU,GAAG,KAA4B,CAAC;IAChD,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;IACvB,OAAO,UAAwB,CAAC;AAClC,CAAC;AALD,sCAKC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CAAC,QAAe;IACtD,MAAM,KAAK,GAAG,aAAa,CACzB,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,OAAO,EAAE,CAAC,EAC1D,SAAS,CAAC,YAAY,CACQ,CAAC;IACjC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,OAAQ,KAA4B,CAAC;AACvC,CAAC;AAPD,4DAOC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,QAAuB;IAC3D,MAAM,KAAK,GAAG,aAAa,CACzB,IAAI,KAAK,CAAC,iDAAiD,QAAQ,CAAC,MAAM,EAAE,CAAC,EAC7E,SAAS,CAAC,SAAS,CACQ,CAAC;IAC9B,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;IACnC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC;IAC1C,MAAM,cAAc,GAA2B,EAAE,CAAC;IAClD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1C,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC5B,cAAc,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SACzC;IACH,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC;IAC/B,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,OAAQ,KAAyB,CAAC;AACpC,CAAC;AAhBD,sDAgBC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,MAA6C;IACnF,MAAM,KAAK,GAAG,aAAa,CACzB,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,KAAK,EAAE,CAAC,EACnD,SAAS,CAAC,aAAa,CACQ,CAAC;IAClC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;IACpB,OAAQ,KAA6B,CAAC;AACxC,CAAC;AAPD,0DAOC;AAED;;;GAGG;AACH,SAAgB,yBAAyB,CAAC,QAAgB;IACxD,MAAM,KAAK,GAAG,aAAa,CACzB,IAAI,KAAK,CAAC,gEAAgE,QAAQ,UAAU,CAAC,EAC7F,SAAS,CAAC,gBAAgB,CACQ,CAAC;IACrC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC5B,OAAQ,KAAgC,CAAC;AAC3C,CAAC;AAPD,8DAOC"}
\ No newline at end of file
diff --git a/node_modules/@slack/web-api/dist/file-upload.d.ts b/node_modules/@slack/web-api/dist/file-upload.d.ts
new file mode 100644
index 0000000..3173735
--- /dev/null
+++ b/node_modules/@slack/web-api/dist/file-upload.d.ts
@@ -0,0 +1,107 @@
+///
+///
+import { Readable } from 'stream';
+import { Logger } from '@slack/logger';
+import { FilesCompleteUploadExternalArguments, FilesUploadV2Arguments, FileUploadV2, FileUploadV2Job } from './methods';
+/**
+ * Returns a fileUploadJob used to represent the of the file upload job and
+ * required metadata.
+ * @param options Options provided by user
+ * @param channelId optional channel id to share file with, omitted, channel is private
+ * @returns
+*/
+export declare function getFileUploadJob(options: FilesUploadV2Arguments | FileUploadV2, logger: Logger): Promise;
+/**
+ * Returns an array of files upload entries when `file_uploads` is supplied.
+ * **Note**
+ * file_uploads should be set when multiple files are intended to be attached to a
+ * single message. To support this, we handle options supplied with
+ * top level `initial_comment`, `thread_ts`, `channel_id` and `file_uploads` parameters.
+ * ```javascript
+ * const res = await client.files.uploadV2({
+ * initial_comment: 'Here are the files!',
+ * thread_ts: '1223313423434.131321',
+ * channel_id: 'C12345',
+ * file_uploads: [
+ * {
+ * file: './test/fixtures/test-txt.txt',
+ * filename: 'test-txt.txt',
+ * },
+ * {
+ * file: './test/fixtures/test-png.png',
+ * filename: 'test-png.png',
+ * },
+ * ],
+ * });
+ * ```
+ * @param options provided by user
+*/
+export declare function getMultipleFileUploadJobs(options: FilesUploadV2Arguments, logger: Logger): Promise;
+/**
+ * Returns a single file upload's data
+ * @param options
+ * @returns Binary data representation of file
+ */
+export declare function getFileData(options: FilesUploadV2Arguments | FileUploadV2): Promise;
+export declare function getFileDataLength(data: Buffer): number;
+export declare function getFileDataAsStream(readable: Readable): Promise;
+/**
+ * Filters through all fileUploads and groups them into jobs for completion
+ * based on combination of channel_id, thread_ts, initial_comment.
+ * {@link https://api.slack.com/methods/files.completeUploadExternal files.completeUploadExternal} allows for multiple
+ * files to be uploaded with a message (`initial_comment`), and as a threaded message (`thread_ts`)
+ * In order to be grouped together, file uploads must have like properties.
+ * @param fileUploads
+ * @returns
+ */
+export declare function getAllFileUploadsToComplete(fileUploads: FileUploadV2Job[]): Record;
+/**
+ * Advise to use the files.uploadV2 method over legacy files.upload method and over
+ * lower-level utilities.
+ * @param method
+ * @param logger
+*/
+export declare function warnIfNotUsingFilesUploadV2(method: string, logger: Logger): void;
+/**
+ * `channels` param is supported but only when a single channel is specified.
+ * @param options
+ * @param logger
+ */
+export declare function warnIfChannels(options: FilesUploadV2Arguments | FileUploadV2, logger: Logger): void;
+/**
+ * v1 files.upload supported `channels` parameter provided as a comma-separated
+ * string of values, e.g. 'C1234,C5678'. V2 no longer supports this csv value.
+ * You may still supply `channels` with a single channel string value e.g. 'C1234'
+ * but it is highly encouraged to supply `channel_id` instead.
+ * @param options
+ */
+export declare function errorIfChannelsCsv(options: FilesUploadV2Arguments | FileUploadV2): void;
+/**
+ * Checks for either a file or content property and errors if missing
+ * @param options
+ */
+export declare function errorIfInvalidOrMissingFileData(options: FilesUploadV2Arguments | FileUploadV2): void;
+/**
+ * @param options
+ * @param logger
+ * @returns filename if it exists
+ */
+export declare function warnIfMissingOrInvalidFileNameAndDefault(options: FilesUploadV2Arguments | FileUploadV2, logger: Logger): string;
+/**
+ * `filetype` param is no longer supported and will be ignored
+ * @param options
+ * @param logger
+ */
+export declare function warnIfLegacyFileType(options: FilesUploadV2Arguments | FileUploadV2, logger: Logger): void;
+export declare function buildMissingFileIdError(): string;
+export declare function buildFileSizeErrorMsg(): string;
+export declare function buildLegacyFileTypeWarning(): string;
+export declare function buildMissingFileNameWarning(): string;
+export declare function buildMissingExtensionWarning(filename: string): string;
+export declare function buildLegacyMethodWarning(method: string): string;
+export declare function buildGeneralFilesUploadWarning(): string;
+export declare function buildFilesUploadMissingMessage(): string;
+export declare function buildChannelsWarning(): string;
+export declare function buildMultipleChannelsErrorMsg(): string;
+export declare function buildInvalidFilesUploadParamError(): string;
+//# sourceMappingURL=file-upload.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@slack/web-api/dist/file-upload.d.ts.map b/node_modules/@slack/web-api/dist/file-upload.d.ts.map
new file mode 100644
index 0000000..42e4005
--- /dev/null
+++ b/node_modules/@slack/web-api/dist/file-upload.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"file-upload.d.ts","sourceRoot":"","sources":["../src/file-upload.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,oCAAoC,EAAE,sBAAsB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAExH;;;;;;EAME;AACF,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,sBAAsB,GAAG,YAAY,EAC9C,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,CAAC,CAyB1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;EAwBE;AACF,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,EAAE,CAAC,CA2B5B;AAID;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,sBAAsB,GAAG,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAiCjG;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQtD;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAoB7E;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,eAAe,EAAE,GAC1E,MAAM,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAwBnD;AAGD;;;;;EAKE;AACF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAKhF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,sBAAsB,GAAG,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAEnG;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,GAAG,YAAY,GAAG,IAAI,CAQvF;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,sBAAsB,GAAG,YAAY,GAAG,IAAI,CAsBpG;AAED;;;;GAIG;AACH,wBAAgB,wCAAwC,CACtD,OAAO,EAAE,sBAAsB,GAAG,YAAY,EAC9C,MAAM,EAAE,MAAM,GACb,MAAM,CAcR;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,GAAG,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAIzG;AAID,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAInD;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAIpD;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,8BAA8B,IAAI,MAAM,CAGvD;AAED,wBAAgB,8BAA8B,IAAI,MAAM,CAEvD;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAG7C;AAED,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAED,wBAAgB,iCAAiC,IAAI,MAAM,CAG1D"}
\ No newline at end of file
diff --git a/node_modules/@slack/web-api/dist/file-upload.js b/node_modules/@slack/web-api/dist/file-upload.js
new file mode 100644
index 0000000..46d3c9a
--- /dev/null
+++ b/node_modules/@slack/web-api/dist/file-upload.js
@@ -0,0 +1,329 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.buildInvalidFilesUploadParamError = exports.buildMultipleChannelsErrorMsg = exports.buildChannelsWarning = exports.buildFilesUploadMissingMessage = exports.buildGeneralFilesUploadWarning = exports.buildLegacyMethodWarning = exports.buildMissingExtensionWarning = exports.buildMissingFileNameWarning = exports.buildLegacyFileTypeWarning = exports.buildFileSizeErrorMsg = exports.buildMissingFileIdError = exports.warnIfLegacyFileType = exports.warnIfMissingOrInvalidFileNameAndDefault = exports.errorIfInvalidOrMissingFileData = exports.errorIfChannelsCsv = exports.warnIfChannels = exports.warnIfNotUsingFilesUploadV2 = exports.getAllFileUploadsToComplete = exports.getFileDataAsStream = exports.getFileDataLength = exports.getFileData = exports.getMultipleFileUploadJobs = exports.getFileUploadJob = void 0;
+const fs_1 = require("fs");
+const stream_1 = require("stream");
+const errors_1 = require("./errors");
+/**
+ * Returns a fileUploadJob used to represent the of the file upload job and
+ * required metadata.
+ * @param options Options provided by user
+ * @param channelId optional channel id to share file with, omitted, channel is private
+ * @returns
+*/
+async function getFileUploadJob(options, logger) {
+ var _a, _b, _c, _d;
+ // Validate parameters
+ warnIfLegacyFileType(options, logger);
+ warnIfChannels(options, logger);
+ errorIfChannelsCsv(options);
+ const fileName = warnIfMissingOrInvalidFileNameAndDefault(options, logger);
+ const fileData = await getFileData(options);
+ const fileDataBytesLength = getFileDataLength(fileData);
+ const fileUploadJob = {
+ // supplied by user
+ alt_text: options.alt_text,
+ channel_id: (_a = options.channels) !== null && _a !== void 0 ? _a : options.channel_id,
+ content: options.content,
+ file: options.file,
+ filename: (_b = options.filename) !== null && _b !== void 0 ? _b : fileName,
+ initial_comment: options.initial_comment,
+ snippet_type: options.snippet_type,
+ thread_ts: options.thread_ts,
+ title: (_c = options.title) !== null && _c !== void 0 ? _c : ((_d = options.filename) !== null && _d !== void 0 ? _d : fileName),
+ // calculated
+ data: fileData,
+ length: fileDataBytesLength,
+ };
+ return fileUploadJob;
+}
+exports.getFileUploadJob = getFileUploadJob;
+/**
+ * Returns an array of files upload entries when `file_uploads` is supplied.
+ * **Note**
+ * file_uploads should be set when multiple files are intended to be attached to a
+ * single message. To support this, we handle options supplied with
+ * top level `initial_comment`, `thread_ts`, `channel_id` and `file_uploads` parameters.
+ * ```javascript
+ * const res = await client.files.uploadV2({
+ * initial_comment: 'Here are the files!',
+ * thread_ts: '1223313423434.131321',
+ * channel_id: 'C12345',
+ * file_uploads: [
+ * {
+ * file: './test/fixtures/test-txt.txt',
+ * filename: 'test-txt.txt',
+ * },
+ * {
+ * file: './test/fixtures/test-png.png',
+ * filename: 'test-png.png',
+ * },
+ * ],
+ * });
+ * ```
+ * @param options provided by user
+*/
+async function getMultipleFileUploadJobs(options, logger) {
+ if (options.file_uploads) {
+ // go through each file_upload and create a job for it
+ return Promise.all(options.file_uploads.map((upload) => {
+ // ensure no omitted properties included in files_upload entry
+ // these properties are valid only at the top-level, not
+ // inside file_uploads.
+ const { channel_id, channels, initial_comment, thread_ts } = upload;
+ if (channel_id || channels || initial_comment || thread_ts) {
+ throw (0, errors_1.errorWithCode)(new Error(buildInvalidFilesUploadParamError()), errors_1.ErrorCode.FileUploadInvalidArgumentsError);
+ }
+ // takes any channel_id, initial_comment and thread_ts
+ // supplied at the top level.
+ return getFileUploadJob(Object.assign(Object.assign({}, upload), { channels: options.channels, channel_id: options.channel_id, initial_comment: options.initial_comment, thread_ts: options.thread_ts }), logger);
+ }));
+ }
+ throw new Error(buildFilesUploadMissingMessage());
+}
+exports.getMultipleFileUploadJobs = getMultipleFileUploadJobs;
+// Helpers to build the FileUploadJob
+/**
+ * Returns a single file upload's data
+ * @param options
+ * @returns Binary data representation of file
+ */
+async function getFileData(options) {
+ errorIfInvalidOrMissingFileData(options);
+ const { file, content } = options;
+ if (file) {
+ // try to handle as buffer
+ if (Buffer.isBuffer(file))
+ return file;
+ // try to handle as filepath
+ if (typeof file === 'string') {
+ // try to read file as if the string was a file path
+ try {
+ const dataBuffer = (0, fs_1.readFileSync)(file);
+ return dataBuffer;
+ }
+ catch (error) {
+ throw (0, errors_1.errorWithCode)(new Error(`Unable to resolve file data for ${file}. Please supply a filepath string, or binary data Buffer or String directly.`), errors_1.ErrorCode.FileUploadInvalidArgumentsError);
+ }
+ }
+ // try to handle as Readable
+ const data = await getFileDataAsStream(file);
+ if (data)
+ return data;
+ }
+ if (content)
+ return Buffer.from(content);
+ // general catch-all error
+ throw (0, errors_1.errorWithCode)(new Error('There was an issue getting the file data for the file or content supplied'), errors_1.ErrorCode.FileUploadReadFileDataError);
+}
+exports.getFileData = getFileData;
+function getFileDataLength(data) {
+ if (data) {
+ return Buffer.byteLength(data, 'utf8');
+ }
+ throw (0, errors_1.errorWithCode)(new Error(buildFileSizeErrorMsg()), errors_1.ErrorCode.FileUploadReadFileDataError);
+}
+exports.getFileDataLength = getFileDataLength;
+async function getFileDataAsStream(readable) {
+ const chunks = [];
+ return new Promise((resolve, reject) => {
+ readable.on('readable', () => {
+ let chunk;
+ /* eslint-disable no-cond-assign */
+ while ((chunk = readable.read()) !== null) {
+ chunks.push(chunk);
+ }
+ });
+ readable.on('end', () => {
+ if (chunks.length > 0) {
+ const content = Buffer.concat(chunks);
+ resolve(content);
+ }
+ else {
+ reject(Error('No data in supplied file'));
+ }
+ });
+ });
+}
+exports.getFileDataAsStream = getFileDataAsStream;
+/**
+ * Filters through all fileUploads and groups them into jobs for completion
+ * based on combination of channel_id, thread_ts, initial_comment.
+ * {@link https://api.slack.com/methods/files.completeUploadExternal files.completeUploadExternal} allows for multiple
+ * files to be uploaded with a message (`initial_comment`), and as a threaded message (`thread_ts`)
+ * In order to be grouped together, file uploads must have like properties.
+ * @param fileUploads
+ * @returns
+ */
+function getAllFileUploadsToComplete(fileUploads) {
+ const toComplete = {};
+ fileUploads.forEach((upload) => {
+ const { channel_id, thread_ts, initial_comment, file_id, title } = upload;
+ if (file_id) {
+ const compareString = `:::${channel_id}:::${thread_ts}:::${initial_comment}`;
+ if (!Object.prototype.hasOwnProperty.call(toComplete, compareString)) {
+ toComplete[compareString] = {
+ files: [{ id: file_id, title }],
+ channel_id,
+ initial_comment,
+ thread_ts,
+ };
+ }
+ else {
+ toComplete[compareString].files.push({
+ id: file_id,
+ title,
+ });
+ }
+ }
+ else {
+ throw new Error(buildMissingFileIdError());
+ }
+ });
+ return toComplete;
+}
+exports.getAllFileUploadsToComplete = getAllFileUploadsToComplete;
+// Validation
+/**
+ * Advise to use the files.uploadV2 method over legacy files.upload method and over
+ * lower-level utilities.
+ * @param method
+ * @param logger
+*/
+function warnIfNotUsingFilesUploadV2(method, logger) {
+ const targetMethods = ['files.upload'];
+ const isTargetMethod = targetMethods.includes(method);
+ if (method === 'files.upload')
+ logger.warn(buildLegacyMethodWarning(method));
+ if (isTargetMethod)
+ logger.info(buildGeneralFilesUploadWarning());
+}
+exports.warnIfNotUsingFilesUploadV2 = warnIfNotUsingFilesUploadV2;
+/**
+ * `channels` param is supported but only when a single channel is specified.
+ * @param options
+ * @param logger
+ */
+function warnIfChannels(options, logger) {
+ if (options.channels)
+ logger.warn(buildChannelsWarning());
+}
+exports.warnIfChannels = warnIfChannels;
+/**
+ * v1 files.upload supported `channels` parameter provided as a comma-separated
+ * string of values, e.g. 'C1234,C5678'. V2 no longer supports this csv value.
+ * You may still supply `channels` with a single channel string value e.g. 'C1234'
+ * but it is highly encouraged to supply `channel_id` instead.
+ * @param options
+ */
+function errorIfChannelsCsv(options) {
+ const channels = options.channels ? options.channels.split(',') : [];
+ if (channels.length > 1) {
+ throw (0, errors_1.errorWithCode)(new Error(buildMultipleChannelsErrorMsg()), errors_1.ErrorCode.FileUploadInvalidArgumentsError);
+ }
+}
+exports.errorIfChannelsCsv = errorIfChannelsCsv;
+/**
+ * Checks for either a file or content property and errors if missing
+ * @param options
+ */
+function errorIfInvalidOrMissingFileData(options) {
+ const { file, content } = options;
+ if (!(file || content) || (file && content)) {
+ throw (0, errors_1.errorWithCode)(new Error('Either a file or content field is required for valid file upload. You cannot supply both'), errors_1.ErrorCode.FileUploadInvalidArgumentsError);
+ }
+ /* eslint-disable @typescript-eslint/no-explicit-any */
+ if (file && !(typeof file === 'string' || Buffer.isBuffer(file) || file instanceof stream_1.Readable)) {
+ throw (0, errors_1.errorWithCode)(new Error('file must be a valid string path, buffer or Readable'), errors_1.ErrorCode.FileUploadInvalidArgumentsError);
+ }
+ if (content && typeof content !== 'string') {
+ throw (0, errors_1.errorWithCode)(new Error('content must be a string'), errors_1.ErrorCode.FileUploadInvalidArgumentsError);
+ }
+}
+exports.errorIfInvalidOrMissingFileData = errorIfInvalidOrMissingFileData;
+/**
+ * @param options
+ * @param logger
+ * @returns filename if it exists
+ */
+function warnIfMissingOrInvalidFileNameAndDefault(options, logger) {
+ var _a;
+ const DEFAULT_FILETYPE = 'txt';
+ const DEFAULT_FILENAME = `file.${(_a = options.filetype) !== null && _a !== void 0 ? _a : DEFAULT_FILETYPE}`;
+ const { filename } = options;
+ if (!filename) {
+ // Filename was an optional property in legacy method
+ logger.warn(buildMissingFileNameWarning());
+ return DEFAULT_FILENAME;
+ }
+ if (filename.split('.').length < 2) {
+ // likely filename is missing extension
+ logger.warn(buildMissingExtensionWarning(filename));
+ }
+ return filename;
+}
+exports.warnIfMissingOrInvalidFileNameAndDefault = warnIfMissingOrInvalidFileNameAndDefault;
+/**
+ * `filetype` param is no longer supported and will be ignored
+ * @param options
+ * @param logger
+ */
+function warnIfLegacyFileType(options, logger) {
+ if (options.filetype) {
+ logger.warn(buildLegacyFileTypeWarning());
+ }
+}
+exports.warnIfLegacyFileType = warnIfLegacyFileType;
+// Validation message utilities
+function buildMissingFileIdError() {
+ return 'Missing required file id for file upload completion';
+}
+exports.buildMissingFileIdError = buildMissingFileIdError;
+function buildFileSizeErrorMsg() {
+ return 'There was an issue calculating the size of your file';
+}
+exports.buildFileSizeErrorMsg = buildFileSizeErrorMsg;
+function buildLegacyFileTypeWarning() {
+ return 'filetype is no longer a supported field in files.uploadV2.' +
+ ' \nPlease remove this field. To indicate file type, please do so via the required filename property' +
+ ' using the appropriate file extension, e.g. image.png, text.txt';
+}
+exports.buildLegacyFileTypeWarning = buildLegacyFileTypeWarning;
+function buildMissingFileNameWarning() {
+ return 'filename is a required field for files.uploadV2. \n For backwards compatibility and ease of migration, ' +
+ 'defaulting the filename. For best experience and consistent unfurl behavior, you' +
+ ' should set the filename property with correct file extension, e.g. image.png, text.txt';
+}
+exports.buildMissingFileNameWarning = buildMissingFileNameWarning;
+function buildMissingExtensionWarning(filename) {
+ return `filename supplied '${filename}' may be missing a proper extension. Missing extenions may result in unexpected unfurl behavior when shared`;
+}
+exports.buildMissingExtensionWarning = buildMissingExtensionWarning;
+function buildLegacyMethodWarning(method) {
+ return `${method} may cause some issues like timeouts for relatively large files.`;
+}
+exports.buildLegacyMethodWarning = buildLegacyMethodWarning;
+function buildGeneralFilesUploadWarning() {
+ return 'Our latest recommendation is to use client.files.uploadV2() method, ' +
+ 'which is mostly compatible and much stabler, instead.';
+}
+exports.buildGeneralFilesUploadWarning = buildGeneralFilesUploadWarning;
+function buildFilesUploadMissingMessage() {
+ return 'Something went wrong with processing file_uploads';
+}
+exports.buildFilesUploadMissingMessage = buildFilesUploadMissingMessage;
+function buildChannelsWarning() {
+ return 'Although the \'channels\' parameter is still supported for smoother migration from legacy files.upload, ' +
+ 'we recommend using the new channel_id parameter with a single str value instead (e.g. \'C12345\').';
+}
+exports.buildChannelsWarning = buildChannelsWarning;
+function buildMultipleChannelsErrorMsg() {
+ return 'Sharing files with multiple channels is no longer supported in v2. Share files in each channel separately instead.';
+}
+exports.buildMultipleChannelsErrorMsg = buildMultipleChannelsErrorMsg;
+function buildInvalidFilesUploadParamError() {
+ return 'You may supply file_uploads only for a single channel, comment, thread respectively. ' +
+ 'Therefore, please supply any channel_id, initial_comment, thread_ts in the top-layer.';
+}
+exports.buildInvalidFilesUploadParamError = buildInvalidFilesUploadParamError;
+//# sourceMappingURL=file-upload.js.map
\ No newline at end of file
diff --git a/node_modules/@slack/web-api/dist/file-upload.js.map b/node_modules/@slack/web-api/dist/file-upload.js.map
new file mode 100644
index 0000000..a98b214
--- /dev/null
+++ b/node_modules/@slack/web-api/dist/file-upload.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"file-upload.js","sourceRoot":"","sources":["../src/file-upload.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@slack/web-api/dist/helpers.js b/node_modules/@slack/web-api/dist/helpers.js
index d11a63f..6e650ac 100644
--- a/node_modules/@slack/web-api/dist/helpers.js
+++ b/node_modules/@slack/web-api/dist/helpers.js
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
*/
function delay(ms) {
return new Promise((resolve) => {
- setTimeout(() => resolve(), ms);
+ setTimeout(resolve, ms);
});
}
exports.default = delay;
diff --git a/node_modules/@slack/web-api/dist/helpers.js.map b/node_modules/@slack/web-api/dist/helpers.js.map
index 74b8d9b..c976770 100644
--- a/node_modules/@slack/web-api/dist/helpers.js.map
+++ b/node_modules/@slack/web-api/dist/helpers.js.map
@@ -1 +1 @@
-{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;AAAA;;;;GAIG;AACH,SAAwB,KAAK,CAAC,EAAU;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC;AAJD,wBAIC"}
\ No newline at end of file
+{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;AAAA;;;;GAIG;AACH,SAAwB,KAAK,CAAC,EAAU;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAJD,wBAIC"}
\ No newline at end of file
diff --git a/node_modules/@slack/web-api/dist/methods.d.ts b/node_modules/@slack/web-api/dist/methods.d.ts
index dbeb582..46092c2 100644
--- a/node_modules/@slack/web-api/dist/methods.d.ts
+++ b/node_modules/@slack/web-api/dist/methods.d.ts
@@ -1,10 +1,10 @@
///
///
import { Stream } from 'stream';
-import { Dialog, View, KnownBlock, Block, MessageAttachment, LinkUnfurls, CallUser } from '@slack/types';
+import { Dialog, View, KnownBlock, Block, MessageAttachment, LinkUnfurls, CallUser, MessageMetadata } from '@slack/types';
import { EventEmitter } from 'eventemitter3';
import { WebAPICallOptions, WebAPICallResult, WebClientEvent } from './WebClient';
-import { AdminAppsApproveResponse, AdminAppsApprovedListResponse, AdminAppsClearResolutionResponse, AdminAppsRequestsListResponse, AdminAppsRestrictResponse, AdminAppsRestrictedListResponse, AdminAppsUninstallResponse, AdminAuthPolicyAssignEntitiesResponse, AdminAuthPolicyGetEntitiesResponse, AdminAuthPolicyRemoveEntitiesResponse, AdminBarriersCreateResponse, AdminBarriersDeleteResponse, AdminBarriersListResponse, AdminBarriersUpdateResponse, AdminConversationsArchiveResponse, AdminConversationsConvertToPrivateResponse, AdminConversationsCreateResponse, AdminConversationsDeleteResponse, AdminConversationsDisconnectSharedResponse, AdminConversationsEkmListOriginalConnectedChannelInfoResponse, AdminConversationsGetConversationPrefsResponse, AdminConversationsGetTeamsResponse, AdminConversationsInviteResponse, AdminConversationsRenameResponse, AdminConversationsRestrictAccessAddGroupResponse, AdminConversationsRestrictAccessListGroupsResponse, AdminConversationsRestrictAccessRemoveGroupResponse, AdminConversationsSearchResponse, AdminConversationsSetConversationPrefsResponse, AdminConversationsSetTeamsResponse, AdminConversationsUnarchiveResponse, AdminConversationsGetCustomRetentionResponse, AdminConversationsSetCustomRetentionResponse, AdminConversationsRemoveCustomRetentionResponse, AdminEmojiAddAliasResponse, AdminEmojiAddResponse, AdminEmojiListResponse, AdminEmojiRemoveResponse, AdminEmojiRenameResponse, AdminInviteRequestsApproveResponse, AdminInviteRequestsApprovedListResponse, AdminInviteRequestsDeniedListResponse, AdminInviteRequestsDenyResponse, AdminInviteRequestsListResponse, AdminTeamsAdminsListResponse, AdminTeamsCreateResponse, AdminTeamsListResponse, AdminTeamsOwnersListResponse, AdminTeamsSettingsInfoResponse, AdminTeamsSettingsSetDefaultChannelsResponse, AdminTeamsSettingsSetDescriptionResponse, AdminTeamsSettingsSetDiscoverabilityResponse, AdminTeamsSettingsSetIconResponse, AdminTeamsSettingsSetNameResponse, AdminUsergroupsAddChannelsResponse, AdminUsergroupsAddTeamsResponse, AdminUsergroupsListChannelsResponse, AdminUsergroupsRemoveChannelsResponse, AdminUsersAssignResponse, AdminUsersInviteResponse, AdminUsersListResponse, AdminUsersRemoveResponse, AdminUsersSessionGetSettingsResponse, AdminUsersSessionSetSettingsResponse, AdminUsersSessionClearSettingsResponse, AdminUsersSessionInvalidateResponse, AdminUsersSessionListResponse, AdminUsersSessionResetResponse, AdminUsersSessionResetBulkResponse, AdminUsersSetAdminResponse, AdminUsersSetExpirationResponse, AdminUsersSetOwnerResponse, AdminUsersSetRegularResponse, AdminUsersUnsupportedVersionsExportResponse, ApiTestResponse, AppsConnectionsOpenResponse, AppsEventAuthorizationsListResponse, AppsUninstallResponse, AuthRevokeResponse, AuthTeamsListResponse, AuthTestResponse, BotsInfoResponse, CallsAddResponse, CallsEndResponse, CallsInfoResponse, CallsUpdateResponse, CallsParticipantsAddResponse, CallsParticipantsRemoveResponse, ChatDeleteResponse, ChatDeleteScheduledMessageResponse, ChatGetPermalinkResponse, ChatMeMessageResponse, ChatPostEphemeralResponse, ChatPostMessageResponse, ChatScheduleMessageResponse, ChatScheduledMessagesListResponse, ChatUnfurlResponse, ChatUpdateResponse, ConversationsAcceptSharedInviteResponse, ConversationsApproveSharedInviteResponse, ConversationsDeclineSharedInviteResponse, ConversationsInviteSharedResponse, ConversationsListConnectInvitesResponse, ConversationsArchiveResponse, ConversationsCloseResponse, ConversationsCreateResponse, ConversationsHistoryResponse, ConversationsInfoResponse, ConversationsInviteResponse, ConversationsJoinResponse, ConversationsKickResponse, ConversationsLeaveResponse, ConversationsListResponse, ConversationsMarkResponse, ConversationsMembersResponse, ConversationsOpenResponse, ConversationsRenameResponse, ConversationsRepliesResponse, ConversationsSetPurposeResponse, ConversationsSetTopicResponse, ConversationsUnarchiveResponse, DialogOpenResponse, DndEndDndResponse, DndEndSnoozeResponse, DndInfoResponse, DndSetSnoozeResponse, DndTeamInfoResponse, EmojiListResponse, FilesCommentsDeleteResponse, FilesDeleteResponse, FilesInfoResponse, FilesListResponse, FilesRemoteAddResponse, FilesRemoteInfoResponse, FilesRemoteListResponse, FilesRemoteRemoveResponse, FilesRemoteShareResponse, FilesRemoteUpdateResponse, FilesRevokePublicURLResponse, FilesSharedPublicURLResponse, FilesUploadResponse, MigrationExchangeResponse, OauthAccessResponse, OauthV2AccessResponse, OauthV2ExchangeResponse, OpenIDConnectTokenResponse, OpenIDConnectUserInfoResponse, PinsAddResponse, PinsListResponse, PinsRemoveResponse, ReactionsAddResponse, ReactionsGetResponse, ReactionsListResponse, ReactionsRemoveResponse, RemindersAddResponse, RemindersCompleteResponse, RemindersDeleteResponse, RemindersInfoResponse, RemindersListResponse, RtmConnectResponse, RtmStartResponse, SearchAllResponse, SearchFilesResponse, SearchMessagesResponse, StarsAddResponse, StarsListResponse, StarsRemoveResponse, TeamAccessLogsResponse, TeamBillableInfoResponse, TeamBillingInfoResponse, TeamInfoResponse, TeamIntegrationLogsResponse, TeamPreferencesListResponse, TeamProfileGetResponse, UsergroupsCreateResponse, UsergroupsDisableResponse, UsergroupsEnableResponse, UsergroupsListResponse, UsergroupsUpdateResponse, UsergroupsUsersListResponse, UsergroupsUsersUpdateResponse, UsersConversationsResponse, UsersDeletePhotoResponse, UsersGetPresenceResponse, UsersIdentityResponse, UsersInfoResponse, UsersListResponse, UsersLookupByEmailResponse, UsersProfileGetResponse, UsersProfileSetResponse, UsersSetPhotoResponse, UsersSetPresenceResponse, ViewsOpenResponse, ViewsPublishResponse, ViewsPushResponse, ViewsUpdateResponse, WorkflowsStepCompletedResponse, WorkflowsStepFailedResponse, WorkflowsUpdateStepResponse, AdminAppsRequestsCancelResponse, BookmarksAddResponse, BookmarksEditResponse, BookmarksListResponse, BookmarksRemoveResponse } from './response';
+import { AdminAnalyticsGetFileResponse, AdminAppsApproveResponse, AdminAppsApprovedListResponse, AdminAppsClearResolutionResponse, AdminAppsRequestsListResponse, AdminAppsRestrictResponse, AdminAppsRestrictedListResponse, AdminAppsUninstallResponse, AdminAuthPolicyAssignEntitiesResponse, AdminAuthPolicyGetEntitiesResponse, AdminAuthPolicyRemoveEntitiesResponse, AdminBarriersCreateResponse, AdminBarriersDeleteResponse, AdminBarriersListResponse, AdminBarriersUpdateResponse, AdminConversationsArchiveResponse, AdminConversationsConvertToPrivateResponse, AdminConversationsCreateResponse, AdminConversationsDeleteResponse, AdminConversationsDisconnectSharedResponse, AdminConversationsEkmListOriginalConnectedChannelInfoResponse, AdminConversationsGetConversationPrefsResponse, AdminConversationsGetTeamsResponse, AdminConversationsInviteResponse, AdminConversationsRenameResponse, AdminConversationsRestrictAccessAddGroupResponse, AdminConversationsRestrictAccessListGroupsResponse, AdminConversationsRestrictAccessRemoveGroupResponse, AdminConversationsSearchResponse, AdminConversationsSetConversationPrefsResponse, AdminConversationsSetTeamsResponse, AdminConversationsUnarchiveResponse, AdminConversationsGetCustomRetentionResponse, AdminConversationsSetCustomRetentionResponse, AdminConversationsRemoveCustomRetentionResponse, AdminConversationsBulkArchiveResponse, AdminConversationsBulkDeleteResponse, AdminConversationsBulkMoveResponse, AdminEmojiAddAliasResponse, AdminEmojiAddResponse, AdminEmojiListResponse, AdminEmojiRemoveResponse, AdminEmojiRenameResponse, AdminInviteRequestsApproveResponse, AdminInviteRequestsApprovedListResponse, AdminInviteRequestsDeniedListResponse, AdminInviteRequestsDenyResponse, AdminInviteRequestsListResponse, AdminTeamsAdminsListResponse, AdminTeamsCreateResponse, AdminTeamsListResponse, AdminTeamsOwnersListResponse, AdminTeamsSettingsInfoResponse, AdminTeamsSettingsSetDefaultChannelsResponse, AdminTeamsSettingsSetDescriptionResponse, AdminTeamsSettingsSetDiscoverabilityResponse, AdminTeamsSettingsSetIconResponse, AdminTeamsSettingsSetNameResponse, AdminUsergroupsAddChannelsResponse, AdminUsergroupsAddTeamsResponse, AdminUsergroupsListChannelsResponse, AdminUsergroupsRemoveChannelsResponse, AdminUsersAssignResponse, AdminUsersInviteResponse, AdminUsersListResponse, AdminUsersRemoveResponse, AdminUsersSessionGetSettingsResponse, AdminUsersSessionSetSettingsResponse, AdminUsersSessionClearSettingsResponse, AdminUsersSessionInvalidateResponse, AdminUsersSessionListResponse, AdminUsersSessionResetResponse, AdminUsersSessionResetBulkResponse, AdminUsersSetAdminResponse, AdminUsersSetExpirationResponse, AdminUsersSetOwnerResponse, AdminUsersSetRegularResponse, AdminUsersUnsupportedVersionsExportResponse, ApiTestResponse, AppsConnectionsOpenResponse, AppsEventAuthorizationsListResponse, AppsManifestCreateResponse, AppsManifestDeleteResponse, AppsManifestExportResponse, AppsManifestUpdateResponse, AppsManifestValidateResponse, AppsUninstallResponse, AuthRevokeResponse, AuthTeamsListResponse, AuthTestResponse, BotsInfoResponse, CallsAddResponse, CallsEndResponse, CallsInfoResponse, CallsUpdateResponse, CallsParticipantsAddResponse, CallsParticipantsRemoveResponse, ChatDeleteResponse, ChatDeleteScheduledMessageResponse, ChatGetPermalinkResponse, ChatMeMessageResponse, ChatPostEphemeralResponse, ChatPostMessageResponse, ChatScheduleMessageResponse, ChatScheduledMessagesListResponse, ChatUnfurlResponse, ChatUpdateResponse, ConversationsAcceptSharedInviteResponse, ConversationsApproveSharedInviteResponse, ConversationsDeclineSharedInviteResponse, ConversationsInviteSharedResponse, ConversationsListConnectInvitesResponse, ConversationsArchiveResponse, ConversationsCloseResponse, ConversationsCreateResponse, ConversationsHistoryResponse, ConversationsInfoResponse, ConversationsInviteResponse, ConversationsJoinResponse, ConversationsKickResponse, ConversationsLeaveResponse, ConversationsListResponse, ConversationsMarkResponse, ConversationsMembersResponse, ConversationsOpenResponse, ConversationsRenameResponse, ConversationsRepliesResponse, ConversationsSetPurposeResponse, ConversationsSetTopicResponse, ConversationsUnarchiveResponse, DialogOpenResponse, DndEndDndResponse, DndEndSnoozeResponse, DndInfoResponse, DndSetSnoozeResponse, DndTeamInfoResponse, EmojiListResponse, FilesCommentsDeleteResponse, FilesCompleteUploadExternalResponse, FilesDeleteResponse, FilesGetUploadURLExternalResponse, FilesInfoResponse, FilesListResponse, FilesRemoteAddResponse, FilesRemoteInfoResponse, FilesRemoteListResponse, FilesRemoteRemoveResponse, FilesRemoteShareResponse, FilesRemoteUpdateResponse, FilesRevokePublicURLResponse, FilesSharedPublicURLResponse, FilesUploadResponse, FunctionsCompleteErrorResponse, FunctionsCompleteSuccessResponse, MigrationExchangeResponse, OauthAccessResponse, OauthV2AccessResponse, OauthV2ExchangeResponse, OpenIDConnectTokenResponse, OpenIDConnectUserInfoResponse, PinsAddResponse, PinsListResponse, PinsRemoveResponse, ReactionsAddResponse, ReactionsGetResponse, ReactionsListResponse, ReactionsRemoveResponse, RemindersAddResponse, RemindersCompleteResponse, RemindersDeleteResponse, RemindersInfoResponse, RemindersListResponse, RtmConnectResponse, RtmStartResponse, SearchAllResponse, SearchFilesResponse, SearchMessagesResponse, StarsAddResponse, StarsListResponse, StarsRemoveResponse, TeamAccessLogsResponse, TeamBillableInfoResponse, TeamBillingInfoResponse, TeamInfoResponse, TeamIntegrationLogsResponse, TeamPreferencesListResponse, TeamProfileGetResponse, ToolingTokensRotateResponse, UsergroupsCreateResponse, UsergroupsDisableResponse, UsergroupsEnableResponse, UsergroupsListResponse, UsergroupsUpdateResponse, UsergroupsUsersListResponse, UsergroupsUsersUpdateResponse, UsersConversationsResponse, UsersDeletePhotoResponse, UsersGetPresenceResponse, UsersIdentityResponse, UsersInfoResponse, UsersListResponse, UsersLookupByEmailResponse, UsersProfileGetResponse, UsersProfileSetResponse, UsersSetPhotoResponse, UsersSetPresenceResponse, ViewsOpenResponse, ViewsPublishResponse, ViewsPushResponse, ViewsUpdateResponse, WorkflowsStepCompletedResponse, WorkflowsStepFailedResponse, WorkflowsUpdateStepResponse, AdminAppsRequestsCancelResponse, BookmarksAddResponse, BookmarksEditResponse, BookmarksListResponse, BookmarksRemoveResponse, AdminConversationsConvertToPublicResponse, AdminConversationsLookupResponse, AdminRolesAddAssignmentsResponse, AdminRolesListAssignmentsResponse, AdminRolesRemoveAssignmentsResponse, AdminAppsActivitiesListResponse, AdminFunctionsListResponse, AdminFunctionsPermissionsLookupResponse, AdminFunctionsPermissionsSetResponse, AdminWorkflowsSearchResponse, AdminWorkflowsUnpublishResponse, AdminWorkflowsCollaboratorsAddResponse, AdminWorkflowsCollaboratorsRemoveResponse, AdminWorkflowsPermissionsLookupResponse } from './response';
/**
* A class that defines all Web API methods, their arguments type, their response type, and binds those methods to the
* `apiCall` class method.
@@ -12,7 +12,11 @@ import { AdminAppsApproveResponse, AdminAppsApprovedListResponse, AdminAppsClear
export declare abstract class Methods extends EventEmitter {
protected constructor();
abstract apiCall(method: string, options?: WebAPICallOptions): Promise;
+ abstract filesUploadV2(options?: WebAPICallOptions): Promise;
readonly admin: {
+ analytics: {
+ getFile: Method;
+ };
apps: {
approve: Method;
approved: {
@@ -28,6 +32,9 @@ export declare abstract class Methods extends EventEmitter {
list: Method;
};
uninstall: Method;
+ activities: {
+ list: Method;
+ };
};
auth: {
policy: {
@@ -44,7 +51,11 @@ export declare abstract class Methods extends EventEmitter {
};
conversations: {
archive: Method;
+ bulkArchive: Method;
+ bulkDelete: Method;
+ bulkMove: Method;
convertToPrivate: Method;
+ convertToPublic: Method;
create: Method;
delete: Method;
disconnectShared: Method;
@@ -63,6 +74,7 @@ export declare abstract class Methods extends EventEmitter {
getCustomRetention: Method;
setCustomRetention: Method;
removeCustomRetention: Method;
+ lookup: Method;
search: Method;
setConversationPrefs: Method;
setTeams: Method;
@@ -75,6 +87,13 @@ export declare abstract class Methods extends EventEmitter {
remove: Method;
rename: Method;
};
+ functions: {
+ list: Method;
+ permissions: {
+ lookup: Method;
+ set: Method;
+ };
+ };
inviteRequests: {
approve: Method;
approved: {
@@ -104,6 +123,11 @@ export declare abstract class Methods extends EventEmitter {
setName: Method;
};
};
+ roles: {
+ addAssignments: Method