Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: slackapi/node-slack-sdk
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: e16a5d118290d6428aa41e317c677573e8e7e60e
Choose a base ref
...
head repository: slackapi/node-slack-sdk
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 35b40af1dc28ef40cb00eb9a47f902e73c27b03f
Choose a head ref

Commits on Mar 4, 2019

  1. Copy the full SHA
    40e8bee View commit details
  2. Remove deprecation test

    Shane DeWael committed Mar 4, 2019
    Copy the full SHA
    e4b2f83 View commit details

Commits on Mar 5, 2019

  1. Remove platformErrorFromResponse

    Shane DeWael committed Mar 5, 2019
    Copy the full SHA
    68a5290 View commit details
  2. Remove on_behalf_of user

    Shane DeWael committed Mar 5, 2019
    Copy the full SHA
    2c085e0 View commit details
  3. Remove logging func

    Shane DeWael committed Mar 5, 2019
    Copy the full SHA
    d67aecf View commit details
  4. Remove callback shims

    Shane DeWael committed Mar 5, 2019
    Copy the full SHA
    f04d71e View commit details

Commits on Mar 6, 2019

  1. Merge pull request #714 from shanedewael/v5-remove-token-rotation-imp…

    …lementation
    
    Remove token rotation implementation
    aoberoi authored Mar 6, 2019
    Copy the full SHA
    22c0756 View commit details
  2. Copy the full SHA
    97ba345 View commit details
  3. Merge pull request #715 from shanedewael/v5-remove-logging-func

    Remove logging function option
    aoberoi authored Mar 6, 2019
    Copy the full SHA
    96be6ce View commit details
  4. Copy the full SHA
    d2d5c38 View commit details
  5. Merge pull request #713 from shanedewael/v5-remove-deprecated-web-api…

    …-methods
    
    Remove deprecated web api methods
    aoberoi authored Mar 6, 2019
    Copy the full SHA
    e0892a8 View commit details
  6. Copy the full SHA
    f85b48d View commit details
  7. Merge pull request #716 from shanedewael/v5-remove-callbackify-shims

    Remove callbackify shims
    aoberoi authored Mar 6, 2019
    Copy the full SHA
    71aebba View commit details
  8. Copy the full SHA
    f313ace View commit details
  9. updates dependencies with node v8 minimum

    does not update ws to v6 because it would drop browser support. we need to explore using isomorphic-ws.
    
    does not update p-queue to v3 because it gets nearly twice as large without any meaningful feature or bug fix additions.
    aoberoi committed Mar 6, 2019
    Copy the full SHA
    47c41b2 View commit details
  10. upgrade dev dependencies

    aoberoi committed Mar 6, 2019
    Copy the full SHA
    9b7188b View commit details

Commits on Mar 7, 2019

  1. Copy the full SHA
    21b1a93 View commit details
  2. Merge pull request #717 from aoberoi/remove-node-lessthan8

    Drop support for node <v8 LTS
    aoberoi authored Mar 7, 2019
    Copy the full SHA
    5dcfe43 View commit details

Commits on Mar 8, 2019

  1. Copy the full SHA
    4cb17e2 View commit details
  2. Copy the full SHA
    310ab9f View commit details
  3. Copy the full SHA
    9395503 View commit details

Commits on Mar 10, 2019

  1. Copy the full SHA
    c6c182a View commit details
  2. Copy the full SHA
    77b5f20 View commit details
  3. adds integration test using dtslint to replace typings-tester

    the integration tests should be failing because the "lib" setting in tsconfig.json
    doesn't reference what should be considered required libs like es2017 and esnext.asynciterable.
    however, since its not failing, i'm not sure dtslint is a suitable replacement.
    
    will keep experimenting with different approaches.
    aoberoi committed Mar 10, 2019
    Copy the full SHA
    69a844b View commit details

Commits on Mar 11, 2019

  1. Copy the full SHA
    61fa202 View commit details
  2. Copy the full SHA
    57c1b20 View commit details
  3. Copy the full SHA
    c9b42ef View commit details
  4. Copy the full SHA
    675a6b7 View commit details
  5. Copy the full SHA
    907ef8f View commit details
  6. Copy the full SHA
    da95ab1 View commit details
  7. Copy the full SHA
    eb858f2 View commit details
  8. Copy the full SHA
    01c1325 View commit details
  9. Copy the full SHA
    38537f1 View commit details

Commits on Mar 12, 2019

  1. Copy the full SHA
    d0e684a View commit details
  2. Copy the full SHA
    743422f View commit details
  3. Copy the full SHA
    7bff2bb View commit details
  4. remote stray comment

    aoberoi committed Mar 12, 2019
    Copy the full SHA
    387972c View commit details
  5. Merge pull request #728 from aoberoi/update-typescript-3.3

    Update minimum to Typescript 3.3
    aoberoi authored Mar 12, 2019
    Copy the full SHA
    d40a495 View commit details
  6. Copy the full SHA
    accf94c View commit details
  7. Merge pull request #732 from aoberoi/move-headers-to-response-metadata

    Move header data to response_metadata in WebAPICallResult
    aoberoi authored Mar 12, 2019
    Copy the full SHA
    17674ea View commit details
  8. Copy the full SHA
    d8a4b8a View commit details
  9. Copy the full SHA
    d330f18 View commit details
  10. Merge pull request #733 from aoberoi/cleanups

    Remove implementation() thunks
    aoberoi authored Mar 12, 2019
    Copy the full SHA
    1acfccb View commit details
  11. simplify AgentOption to Agent

    aoberoi committed Mar 12, 2019
    Copy the full SHA
    b709b25 View commit details
  12. Merge pull request #736 from aoberoi/simplify-agentoption

    Simplify AgentOption to Agent
    aoberoi authored Mar 12, 2019
    Copy the full SHA
    fc1edaf View commit details
  13. cleanup retry policies, fixes #734

    aoberoi committed Mar 12, 2019
    Copy the full SHA
    88e1be8 View commit details
  14. Merge pull request #737 from aoberoi/cleanup-retry-policies

    Cleanup retry policies
    aoberoi authored Mar 12, 2019
    Copy the full SHA
    554fdd7 View commit details
  15. Copy the full SHA
    73dddd4 View commit details
  16. Merge pull request #739 from aoberoi/remove-workspace-methods

    Remove workspace methods methods and types
    aoberoi authored Mar 12, 2019
    Copy the full SHA
    d7e0bf3 View commit details
  17. remove automatic pagination

    aoberoi committed Mar 12, 2019
    Copy the full SHA
    be94368 View commit details
Showing with 13,891 additions and 7,393 deletions.
  1. +11 −0 .github/CODE_OF_CONDUCT.md
  2. +12 −1 .github/issue_template.md
  3. +105 −59 .github/maintainers_guide.md
  4. +4 −8 .gitignore
  5. +0 −6 .lintstagedrc.json
  6. +19 −3 .travis.yml
  7. +0 −7 .vscode/settings.json
  8. +1 −1 LICENSE
  9. +189 −64 README.md
  10. +4 −0 docs/.env.sample
  11. +1 −0 docs/.gitignore
  12. +1 −1 docs/.ruby-version
  13. +1 −0 docs/Gemfile
  14. +61 −25 docs/_config.yml
  15. +14 −0 docs/_includes/focussed_nav.html
  16. +6 −6 docs/_includes/head.html
  17. +28 −0 docs/_includes/main_nav.html
  18. +4 −7 docs/_includes/page_header.html
  19. +0 −31 docs/_includes/side_nav.html
  20. +0 −15 docs/_layouts/changelog.html
  21. +6 −0 docs/_layouts/contained.html
  22. +22 −9 docs/_layouts/default.html
  23. +0 −10 docs/_layouts/page.html
  24. +12 −0 docs/_main/about.md
  25. +5 −0 docs/_main/auth.md
  26. +23 −0 docs/_main/changelog.md
  27. +37 −42 docs/{_pages → _main}/getting_started.md
  28. +61 −0 docs/_main/index.md
  29. +29 −43 docs/{_pages → _main}/typescript.md
  30. +375 −0 docs/_packages/events_api.md
  31. +519 −0 docs/_packages/interactive_messages.md
  32. +673 −0 docs/_packages/rtm_api.md
  33. +593 −0 docs/_packages/web_api.md
  34. +126 −0 docs/_packages/webhook.md
  35. +0 −16 docs/_pages/about.md
  36. +0 −6 docs/_pages/auth.md
  37. +0 −17 docs/_pages/changelog.html
  38. +0 −29 docs/_pages/incoming_webhook.md
  39. +0 −403 docs/_pages/rtm_client.md
  40. +0 −752 docs/_pages/web_client.md
  41. +0 −4 docs/_posts/2014-12-08-v1.2.0.md
  42. +0 −5 docs/_posts/2014-12-16-v1.2.2.md
  43. +0 −8 docs/_posts/2015-02-03-v1.3.1.md
  44. +0 −9 docs/_posts/2015-02-25-v1.4.0.md
  45. +0 −9 docs/_posts/2015-12-01-v1.5.0.md
  46. +0 −4 docs/_posts/2015-12-15-v1.5.1.md
  47. +0 −12 docs/_posts/2016-02-13-v2.0.0.md
  48. +0 −5 docs/_posts/2016-02-13-v2.0.1.md
  49. +0 −6 docs/_posts/2016-02-15-v2.0.2.md
  50. +0 −5 docs/_posts/2016-02-28-v2.0.3.md
  51. +0 −4 docs/_posts/2016-02-28-v2.0.4.md
  52. +0 −6 docs/_posts/2016-02-28-v2.3.0.md
  53. +0 −10 docs/_posts/2016-03-01-v2.0.5.md
  54. +0 −4 docs/_posts/2016-03-01-v2.0.6.md
  55. +0 −5 docs/_posts/2016-03-05-v2.1.0.md
  56. +0 −6 docs/_posts/2016-03-12-v2.2.0.md
  57. +0 −4 docs/_posts/2016-03-12-v2.2.1.md
  58. +0 −21 docs/_posts/2016-04-24-v3.0.0.md
  59. +0 −7 docs/_posts/2016-05-01-v3.1.0.md
  60. +0 −5 docs/_posts/2016-05-19-v3.1.1.md
  61. +0 −11 docs/_posts/2016-05-23-v3.2.0.md
  62. +0 −5 docs/_posts/2016-05-24-v3.2.1.md
  63. +0 −5 docs/_posts/2016-05-24-v3.3.0.md
  64. +0 −4 docs/_posts/2016-05-26-v3.3.1.md
  65. +0 −4 docs/_posts/2016-05-31-v3.4.0.md
  66. +0 −6 docs/_posts/2016-06-14-v3.5.0.md
  67. +0 −5 docs/_posts/2016-07-06-v3.5.1.md
  68. +0 −4 docs/_posts/2016-07-25-v3.5.2.md
  69. +0 −4 docs/_posts/2016-07-25-v3.5.3.md
  70. +0 −5 docs/_posts/2016-07-29-v3.5.4.md
  71. +0 −5 docs/_posts/2016-09-06-v3.6.0.md
  72. +0 −7 docs/_posts/2016-11-10-v3.6.1.md
  73. +0 −5 docs/_posts/2016-12-05-3.7.0.md
  74. +0 −8 docs/_posts/2016-12-20-3.8.0.md
  75. +0 −4 docs/_posts/2016-12-20-3.8.1.md
  76. +0 −5 docs/_posts/2017-03-15-3.9.0.md
  77. +0 −14 docs/_posts/2017-05-25-v3.10.0.md
  78. +0 −7 docs/_posts/2017-08-11-v3.11.0.md
  79. +0 −5 docs/_posts/2017-08-24-v3.12.0.md
  80. +0 −7 docs/_posts/2017-09-12-v3.13.0.md
  81. +0 −5 docs/_posts/2017-09-12-v3.14.0.md
  82. +0 −5 docs/_posts/2017-09-12-v3.14.1.md
  83. +0 −4 docs/_posts/2017-09-12-v3.14.2.md
  84. +0 −13 docs/_posts/2017-12-21-v3.15.0.md
  85. +0 −8 docs/_posts/2017-12-21-v3.16.0.md
  86. +0 −30 docs/_posts/2018-03-08-v4.0.0.md
  87. +0 −12 docs/_posts/2018-03-14-v4.0.1.md
  88. +0 −12 docs/_posts/2018-03-23-v4.1.0.md
  89. +0 −9 docs/_posts/2018-04-25-v4.2.0.md
  90. +0 −12 docs/_posts/2018-05-11-v4.2.1.md
  91. +0 −5 docs/_posts/2018-05-11-v4.2.2.md
  92. +0 −11 docs/_posts/2018-06-05-v4.3.0.md
  93. +0 −6 docs/_posts/2018-06-06-v4.3.1.md
  94. +0 −24 docs/_posts/2018-08-10-v4.4.0.md
  95. +0 −12 docs/_posts/2018-08-24-v4.5.0.md
  96. +0 −7 docs/_posts/2018-08-30-v4.6.0.md
  97. +0 −24 docs/_posts/2018-10-01-v4.7.0.md
  98. +0 −13 docs/_posts/2018-10-03-v4.8.0.md
  99. +0 −7 docs/_posts/2019-02-13-v4.9.0.md
  100. +0 −5 docs/_posts/2019-02-26-v4.10.0.md
  101. +0 −11 docs/_posts/2019-03-07-v4.11.0.md
  102. +0 −6 docs/_posts/2019-03-19-v4.12.0.md
  103. +0 −45 docs/_reference/IncomingWebhook.md
  104. +0 −170 docs/_reference/RTMClient.md
  105. +0 −62 docs/_reference/WebClient.md
  106. BIN docs/_tutorials/basic-information-page.png
  107. BIN docs/_tutorials/bot-token.png
  108. +121 −0 docs/_tutorials/local_development.md
  109. +405 −0 docs/_tutorials/migrating_to_v5.md
  110. BIN docs/_tutorials/ngrok.gif
  111. BIN docs/_tutorials/request-url-config.png
  112. BIN docs/_tutorials/signing-secret.png
  113. +0 −70 docs/index.md
  114. +37 −0 docs/scripts/auto_anchor.js
  115. +119 −9 docs/styles/docs.css
  116. +0 −1 examples/.nvmrc
  117. +0 −13 examples/README.md
  118. +0 −28 examples/basic-incoming-webhook.js
  119. +0 −41 examples/basic-rtm-client.js
  120. +0 −28 examples/basic-web-client.js
  121. +6 −0 examples/express-all-interactions/.env.sample
  122. +3 −0 examples/express-all-interactions/.gitignore
  123. +1 −0 examples/express-all-interactions/.nvmrc
  124. +48 −0 examples/express-all-interactions/README.md
  125. +53 −0 examples/express-all-interactions/models.js
  126. +20 −0 examples/express-all-interactions/package.json
  127. +265 −0 examples/express-all-interactions/server.js
  128. +3 −0 examples/greet-and-react/.env.sample
  129. +3 −0 examples/greet-and-react/.gitignore
  130. +1 −0 examples/greet-and-react/.nvmrc
  131. +41 −0 examples/greet-and-react/README.md
  132. +129 −0 examples/greet-and-react/index.js
  133. +20 −0 examples/greet-and-react/package.json
  134. +0 −52 examples/incoming-webhook-with-proxy.js
  135. +0 −10 examples/package.json
  136. +0 −45 examples/upload-a-file.js
  137. +3 −0 integration-tests/.gitignore
  138. +28 −0 integration-tests/README.md
  139. +26 −0 integration-tests/package.json
  140. +1 −1 test/proxy/test.js → integration-tests/proxy-test.js
  141. +2 −0 integration-tests/types/index.d.ts
  142. +2 −9 test/typescript/tsconfig-strict.json → integration-tests/types/tsconfig.json
  143. +4 −4 ...script/sources/method-argument-types.ts → integration-tests/types/webclient-named-method-types.ts
  144. +2 −2 {test/typescript/sources → integration-tests/types}/webclient-no-token.ts
  145. +112 −0 integration-tests/types/webclient-paginate-types.ts
  146. +9 −0 lerna.json
  147. +0 −305 migration_guide_v4.md
  148. +55 −0 node-slack-sdk.code-workspace
  149. +3 −91 package.json
  150. +6 −0 packages/client/.gitignore
  151. +3 −0 packages/client/.vscode/settings.json
  152. +7 −0 packages/client/README.md
  153. +60 −0 packages/client/package.json
  154. +58 −0 packages/client/src/index.ts
  155. +39 −0 packages/client/tsconfig.json
  156. +70 −0 packages/client/tslint.json
  157. +11 −0 packages/events-api/.gitignore
  158. 0 {src → packages/events-api}/.mocharc.json
  159. 0 { → packages/events-api}/.nycrc.json
  160. +3 −0 packages/events-api/.vscode/settings.json
  161. +331 −0 packages/events-api/README.md
  162. +80 −0 packages/events-api/package.json
  163. +125 −0 packages/events-api/src/adapter.spec.js
  164. +150 −0 packages/events-api/src/adapter.ts
  165. +185 −0 packages/events-api/src/http-handler.spec.js
  166. +296 −0 packages/events-api/src/http-handler.ts
  167. +10 −0 packages/events-api/src/index.ts
  168. +19 −0 packages/events-api/src/util.ts
  169. +47 −0 packages/events-api/src/verify.ts
  170. BIN packages/events-api/support/event-subscriptions.gif
  171. BIN packages/events-api/support/ngrok.gif
  172. +104 −0 packages/events-api/test/helpers.js
  173. +114 −0 packages/events-api/test/integration/test-adapter-options.js
  174. +218 −0 packages/events-api/test/integration/test-basic.js
  175. +16 −22 { → packages/events-api}/tsconfig.json
  176. +70 −0 packages/events-api/tslint.json
  177. 0 packages/events-api/types/.gitkeep
  178. +4 −0 packages/events-api/types/tsscmp.d.ts
  179. +11 −0 packages/interactive-messages/.gitignore
  180. +1 −3 {test → packages/interactive-messages}/.mocharc.json
  181. +14 −0 packages/interactive-messages/.nycrc.json
  182. +27 −0 packages/interactive-messages/.vscode/launch.json
  183. +501 −0 packages/interactive-messages/README.md
  184. +86 −0 packages/interactive-messages/package.json
  185. +1,208 −0 packages/interactive-messages/src/adapter.spec.js
  186. +651 −0 packages/interactive-messages/src/adapter.ts
  187. +30 −0 packages/interactive-messages/src/errors.ts
  188. +195 −0 packages/interactive-messages/src/http-handler.spec.js
  189. +160 −0 packages/interactive-messages/src/http-handler.ts
  190. +17 −0 packages/interactive-messages/src/index.ts
  191. +45 −0 packages/interactive-messages/src/util.spec.js
  192. +62 −0 packages/interactive-messages/src/util.ts
  193. BIN packages/interactive-messages/support/interactive-components.gif
  194. BIN packages/interactive-messages/support/ngrok.gif
  195. +95 −0 packages/interactive-messages/test/helpers.js
  196. +39 −0 packages/interactive-messages/tsconfig.json
  197. +70 −0 packages/interactive-messages/tslint.json
  198. 0 packages/interactive-messages/types/.gitkeep
  199. +4 −0 packages/interactive-messages/types/tsscmp.d.ts
  200. +10 −0 packages/logger/.gitignore
  201. +3 −0 packages/logger/.vscode/settings.json
  202. 0 packages/logger/README.md
  203. +44 −0 packages/logger/package.json
  204. +2 −115 src/logger.ts → packages/logger/src/index.ts
  205. +39 −0 packages/logger/tsconfig.json
  206. +70 −0 packages/logger/tslint.json
  207. 0 packages/logger/types/.gitkeep
  208. +10 −0 packages/rtm-api/.gitignore
  209. +3 −0 packages/rtm-api/.vscode/settings.json
  210. +449 −0 packages/rtm-api/README.md
  211. +61 −0 packages/rtm-api/package.json
  212. +47 −45 { → packages/rtm-api}/src/KeepAlive.ts
  213. +90 −118 { → packages/rtm-api}/src/RTMClient.ts
  214. +114 −0 packages/rtm-api/src/errors.ts
  215. +21 −0 packages/rtm-api/src/index.ts
  216. +25 −0 packages/rtm-api/src/logger.ts
  217. +39 −0 packages/rtm-api/tsconfig.json
  218. +70 −0 packages/rtm-api/tslint.json
  219. 0 packages/rtm-api/types/.gitkeep
  220. +6 −0 packages/types/.gitignore
  221. +3 −0 packages/types/.vscode/settings.json
  222. 0 packages/types/README.md
  223. +43 −0 packages/types/package.json
  224. +254 −0 packages/types/src/index.ts
  225. +39 −0 packages/types/tsconfig.json
  226. +70 −0 packages/types/tslint.json
  227. +10 −0 packages/web-api/.gitignore
  228. +3 −0 packages/web-api/.mocharc.json
  229. +14 −0 packages/web-api/.nycrc.json
  230. 0 { → packages/web-api}/.vscode/launch.json
  231. +3 −0 packages/web-api/.vscode/settings.json
  232. +394 −0 packages/web-api/README.md
  233. +75 −0 packages/web-api/package.json
  234. +222 −480 { → packages/web-api}/src/WebClient.spec.js
  235. +264 −592 { → packages/web-api}/src/WebClient.ts
  236. +112 −0 packages/web-api/src/errors.ts
  237. +10 −0 packages/web-api/src/helpers.ts
  238. +28 −0 packages/web-api/src/index.ts
  239. +33 −0 packages/web-api/src/instrument.ts
  240. +25 −0 packages/web-api/src/logger.ts
  241. +774 −0 packages/web-api/src/methods.ts
  242. +42 −0 packages/web-api/src/retry-policies.ts
  243. BIN { → packages/web-api}/test/fixtures/train.jpg
  244. +39 −0 packages/web-api/tsconfig.json
  245. +70 −0 packages/web-api/tslint.json
  246. 0 packages/web-api/types/.gitkeep
  247. +10 −0 packages/webhook/.gitignore
  248. +3 −0 packages/webhook/.mocharc.json
  249. +14 −0 packages/webhook/.nycrc.json
  250. +3 −0 packages/webhook/.vscode/settings.json
  251. +124 −0 packages/webhook/README.md
  252. +61 −0 packages/webhook/package.json
  253. +9 −63 { → packages/webhook}/src/IncomingWebhook.spec.js
  254. +110 −0 packages/webhook/src/IncomingWebhook.ts
  255. +64 −0 packages/webhook/src/errors.ts
  256. +15 −0 packages/webhook/src/index.ts
  257. +33 −0 packages/webhook/src/instrument.ts
  258. +39 −0 packages/webhook/tsconfig.json
  259. +70 −0 packages/webhook/tslint.json
  260. 0 packages/webhook/types/.gitkeep
  261. +0 −171 src/IncomingWebhook.ts
  262. +0 −50 src/errors.ts
  263. +0 −58 src/index.ts
  264. +0 −1,033 src/methods.ts
  265. +0 −61 src/retry-policies.ts
  266. +0 −219 src/util.ts
  267. +0 −44 support/jsdoc-to-markdown.js
  268. +0 −31 support/jsdoc/@slack-client-dist-IncomingWebhook.js
  269. +0 −40 support/jsdoc/@slack-client-dist-KeepAlive.js
  270. +0 −11 support/jsdoc/@slack-client-dist-errors.js
  271. +0 −74 support/jsdoc/@slack-client-dist-logger.js
  272. +0 −360 support/jsdoc/@slack-client-dist-methods.js
  273. +0 −36 support/jsdoc/@slack-client-dist-retry-policies.js
  274. +0 −31 support/jsdoc/@slack-client-dist-util.js
  275. +0 −513 support/jsdoc/@slack-client.js
  276. +0 −4 support/templates/docs-main.hbs
  277. +0 −5 support/templates/docs.hbs
  278. +0 −3 support/templates/members.hbs
  279. +0 −13 test/typescript/sources/webclient-callback-type.ts
  280. +0 −16 test/typescript/test.ts
  281. +0 −40 tslint.json
  282. +0 −61 types/eventemitter3.d.ts
  283. +0 −17 types/object.entries.d.ts
  284. +0 −17 types/object.values.d.ts
11 changes: 11 additions & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Code of Conduct

## Introduction

Diversity and inclusion make our community strong. We encourage participation from the most varied and diverse backgrounds possible and want to be very clear about where we stand.

Our goal is to maintain a safe, helpful and friendly community for everyone, regardless of experience, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or other defining characteristic.

This code and related procedures also apply to unacceptable behavior occurring outside the scope of community activities, in all community venues (online and in-person) as well as in all one-on-one communications, and anywhere such behavior has the potential to adversely affect the safety and well-being of community members.

For more information on our code of conduct, please visit [https://slackhq.github.io/code-of-conduct](https://slackhq.github.io/code-of-conduct)
13 changes: 12 additions & 1 deletion .github/issue_template.md
Original file line number Diff line number Diff line change
@@ -21,9 +21,20 @@ Describe your issue here.

Filling out the following details about bugs will help us solve your issue sooner.

#### Packages:

Select all that apply:

- [ ] `@slack/web-api`
- [ ] `@slack/events-api`
- [ ] `@slack/interactive-messages`
- [ ] `@slack/rtm-api`
- [ ] `@slack/webhooks`
- [ ] I don't know

#### Reproducible in:

`@slack/client` version:
package version:

node version:

164 changes: 105 additions & 59 deletions .github/maintainers_guide.md
Original file line number Diff line number Diff line change
@@ -1,102 +1,148 @@
# Maintainers Guide

> ⚠️ This maintainers guide is out of date. Progress on updating it is being [tracked](https://github.com/slackapi/node-slack-sdk/issues/748).
This document describes tools, tasks and workflow that one needs to be familiar with in order to effectively maintain
this project. If you use this package within your own software as is but don't plan on modifying it, this guide is
this project. If you use this package within your own software but don't plan on modifying it, this guide is
**not** for you.

## Tools

All you need to work with this project is a supported version of [Node.js](https://nodejs.org/en/)
(see `package.json` field "engines") and npm (which is distributed with Node.js).
Maintaining this project requires installing [Node.js](https://nodejs.org) in your development environment. All of the
remaining tools are downloaded as `devDependencies`, which means you'll have them available once you run `npm install`
in a working copy of this repository.

In particular, [`lerna`](https://lerna.js.org/) is a tool you should become familiar with. This project is home to
several packages, and lerna makes it easier to manage operations across the set of packages. The very next thing you
should do is run `npx lerna bootstrap` in the root of this project to install dependencies for each of the packages,
and to allow lerna to link them to each other.

## Tasks

### Testing

This package has unit tests for most modules (files) in the `test` directory. The structure mirrors the `lib` directory closely. You can run the entire test suite using the npm script `npm test`. This command is also executed by Travis, the continuous integration service, for every Pull Request and branch. The coverage is computed with the `istanbul` package. The tests themselves are run using the `mocha` test runner.
This project has tests for individual packages inside of each's respective `test` directory. It also has
integration tests in the `integration-tests` directory at the root. You can run the entire test suite using the npm
script `npm test` at the top level. This script will use Lerna to invoke tests in each package and the integration
tests.

Tests are executed by Travis, our continuous integration system, slightly differently. Travis runs several, more
granular builds in order to report on success and failure in a more useful (targeted) way. There is one build for each
package on each supported version of Node, as well as one for the integration tests on each supported version of Node.
Travis also runs linting in each package, which is separate from tests so you can run tests locally frequently without
having to block for fixing styling problems. Lastly, Travis uploads the coverage report for the tests ran within the
build to Codecov, our coverage reporting system. Travis reports status on each PR. Codecov aggregates all the coverage
reports, and separate reports status on each PR. The configuration is stored in `.travis.yml`.

Test code should be written in syntax that runs on the oldest supported Node.js version, without transpiling. This ensures that backwards compatibility is tested and the APIs look reasonable in versions of Node.js that do not support the most modern syntax.
Test code should be written in syntax that runs on the oldest supported Node.js version, without transpiling. This
ensures that backwards compatibility is tested and the APIs look reasonable in versions of Node.js that do not support
the most modern syntax.

A useful trick for debugging inside tests is to use the Chrome Debugging Protocol feature of Node.js to set breakpoints and interactively debug. In order to do this you must run mocha directly. This means that you should have already linted the source (`npm run lint`), manually. You then run the tests using the following command: `./node_modules/.bin/mocha test/{test-name}.js --debug-brk --inspect` (replace {test-name} with an actual test file).
**TODO** update the following information for debugging with VSCode or with the protocol directly.

A useful trick for debugging inside tests is to use the Chrome Debugging Protocol feature of Node.js to set breakpoints
and interactively debug. In order to do this you must run mocha directly. This means that you should have already linted
the source (`npm run lint`) manually. You then run the tests using the following command: `./node_modules/.bin/mocha
test/{test-name}.js --debug-brk --inspect` (replace {test-name} with an actual test file).

### Generating Documentation

The documentation is built using [Jekyll](https://jekyllrb.com/) and hosted with GitHub Pages.
The source files are contained in the `docs` directory.
The documentation is built using [Jekyll](https://jekyllrb.com/) and hosted with GitHub Pages. The source files are
contained in the `docs` directory. Reading the Jekyll configuration in `docs/_config.yml` is helpful to understand how
the documentation is organized and built.

Part of the documentation is the reference docs, which are generated from comments in the source files using the
[JSDoc](http://usejsdoc.org/) markup syntax. The comments are first processed by running `npm run docs:jsdoc`, which
enriches the comments using type information from TypeScript and places them into an independent file in the
`support/jsdoc` directory. Next, these comments are turned into markdown for the Jekyll site using the `npm run docs`
script. These two commands should be run each time an API changes to keep the documentation site updated.
**TODO** add information regarding building reference documentation, once that process is revised.

### Releasing

0. Update generated content
* Reference docs are updated using `npm run docs:jsdoc`, delete the `@property` tagged method aliases from
`support/jsdoc/@slack-client.js`, then `npm run docs`
Before releasing, it's important to understand that you may release several packages simultaneously. While `lerna` can
offer its view on which packages have changed since the last release, you should **verify version changes yourself**
before continuing with the release. If you find a file or set of files that should be allowed to change without
publishing a package, it might be a good idea to add it to the `ignoreChanges` setting in `lerna.json`.

If you make a mistake, don't fret. NPM allows you to unpublish a release within the first 24 hours of publishing, but
you might not be able to use the same version number again. Venture on!

1. Create the commit for the release:
* Bump the version number in adherence to [Semantic Versioning](http://semver.org/) in `package.json`.
* Add a changelog entry. Release notes should mention contributors (@-mentions) and issues/PRs (#-mentions). An entry is a new file in `docs/_posts`.
* Commit with a message including the new version number. For example `v1.0.8`.
* Tag the commit with the version number. For example `v1.0.8`.
**TODO**: verify NPM's policy on revoking a release and version number reuse.

2. Merge into master repository
* Create a pull request with the commit that was just made. Be certain to include the tag. For
example: `git push username master:rel-v1.0.8 && git push --tags username`.
* Once tests pass and a reviewer has approved, merge the pull request. You will also want to
update your local `master` branch.
> If you have any doubt whether your working copy is in good shape to do a release, here is a succinct way to get a
> fresh start: `npx lerna clean && npx lerna bootstrap`.
3. Distribute the release
* Publish to the package manager. Once you have permission to publish on npm, you can run `npm publish`.
* Create a GitHub Release. Reuse the release notes written for the changelog entry.
0. Verify that everything is in order by testing and linting locally before proceeding: `npm run test && npm run lint`.

4. (Slack Internal) Communicate the release internally. Include a link to the GitHub Release.
1. Create a tagged commit for the release: `npx lerna version`
* Lerna will ask you to make selections for the version increment on each package it plans to tag for release. You
should already have an idea of what the appropriate semver increment (patch, minor, or major) you intend to create.
If Lerna asks about a package you didn't intend to release, it's best to bail at this point
(<kbd>CTRL</kbd>+<kbd>C</kbd>).

5. Announce on Slack Team dev4slack in #slack-api
2. Publish the release(s) to npm: `NPM_CONFIG_OTP=xxxxxx npx lerna publish from-package`
* You should have [2FA set up with NPM](https://docs.npmjs.com/about-two-factor-authentication), and the
`NPM_CONFIG_OTP` value should be set to the one time password from your configured second factor device. If the
publishing process takes longer than the expiration time of the value (30 seconds), then you may see a publish
failure. You can try again as soon as the value changes if you think you can beat the timeout, or you can run
`npm publish` in each of the package directories.

6. (Slack Internal) Tweet? Not necessary for patch updates, might be needed for minor updates,
definitely needed for major updates. Include a link to the GitHub Release.
3. Create GitHub Release(s) and add release notes.
* Release notes should mention contributors (@-mentions) and issues/PRs (#-mentions).

4. (Slack Internal) Communicate the release internally. Include a link to the GitHub Release(s).

5. Announce on Bot Developer Hangout (`dev4slack.slack.com`) in **#slack-api**.

6. (Slack Internal) Tweet? Not necessary for patch updates, might be needed for minor updates, definitely needed for
major updates. Include a link to the GitHub Release(s).

## Workflow

### Versioning and Tags

This project is versioned using [Semantic Versioning](http://semver.org/), particularly in the
[npm flavor](https://docs.npmjs.com/getting-started/semantic-versioning). Each release is tagged
using git.
This project is versioned using [Semantic Versioning](http://semver.org/), particularly in the [npm
flavor](https://docs.npmjs.com/getting-started/semantic-versioning). Each release is tagged using git. The naming
convention for tags is `{package_name}@{version}`. For example, the tag `@slack/web-api@v5.0.0` marks the v5.0.0 release
of the `@slack/web-api` package. A single commit will have multiple tags when multiple packages are released
simultaneously.

While `lerna` is used for management of this repository, it is configured for **independent** versioning. This allows
each package to evolve in a less tightly-coupled manner. Specifically, if one package were to require a major version
increment, it could do so without unnecessarily affecting all the other packages.

### Branches

`master` is where active development occurs. Long running named feature branches are occasionally
created for collaboration on a feature that has a large scope (because everyone cannot push commits
to another person's open Pull Request). At some point in the future after a major version increment,
there may be maintenance branches for older major versions.
`master` is where active development occurs. Long running named feature branches are occasionally created for
collaboration on a feature that has a large scope (because everyone cannot push commits to another person's open Pull
Request). After a major version increment, a maintenance branch for the older major version is left open (e.g. `v3`,
`v4`, etc)

### Issue Management

Labels are used to run issues through an organized workflow. Here are the basic definitions:

* `bug`: A confirmed bug report. A bug is considered confirmed when reproduction steps have been
documented and the issue has been reproduced.
* `enhancement`: A feature request for something this package might not already do.
* `docs`: An issue that is purely about documentation work.
* `tests`: An issue that is purely about testing work.
* `needs feedback`: An issue that may have claimed to be a bug but was not reproducible, or was otherwise missing some information.
* `discussion`: An issue that is purely meant to hold a discussion. Typically the maintainers are looking for feedback in this issues.
* `question`: An issue that is like a support request because the user's usage was not correct.
* `semver:major|minor|patch`: Metadata about how resolving this issue would affect the version number.
* `security`: An issue that has special consideration for security reasons.
* `good first contribution`: An issue that has a well-defined relatively-small scope, with clear expectations. It helps when the testing approach is also known.
* `duplicate`: An issue that is functionally the same as another issue. Apply this only if you've linked the other issue by number.

**Triage** is the process of taking new issues that aren't yet "seen" and marking them with a basic
level of information with labels. An issue should have **one** of the following labels applied:
`bug`, `enhancement`, `question`, `needs feedback`, `docs`, `tests`, or `discussion`.

Issues are closed when a resolution has been reached. If for any reason a closed issue seems
relevant once again, reopening is great and better than creating a duplicate issue.
* `bug`: A confirmed bug report. A bug is considered confirmed when reproduction steps have been documented and the
issue has been reproduced by a maintainer.
* `enhancement`: A feature request for something this package might not already do.
* `docs`: An issue that is purely about documentation work.
* `tests`: An issue that is purely about testing work.
* `needs feedback`: An issue that may have claimed to be a bug but was not reproducible, or was otherwise missing some
information.
* `discussion`: An issue that is purely meant to hold a discussion. Typically the maintainers are looking for feedback
in these issues.
* `question`: An issue that is like a support request where the user needed more information or their usage was not
correct.
* `security`: An issue that has special consideration for security reasons.
* `good first contribution`: An issue that has a well-defined relatively-small scope, with clear expectations. It helps
when the testing approach is also known.
* `duplicate`: An issue that is functionally the same as another issue. Apply this only if you've linked the other issue
by number.
* `semver:major|minor|patch`: Metadata about how resolving this issue would affect the version number.
* `pkg:*`: Metadata about which package(s) this issue affects.

**Triage** is the process of taking new issues that aren't yet "seen" and marking them with a basic level of information
with labels. An issue should have **one** of the following labels applied: `bug`, `enhancement`, `question`,
`needs feedback`, `docs`, `tests`, or `discussion`.

Issues are closed when a resolution has been reached. If for any reason a closed issue seems relevant once again,
reopening is great and better than creating a duplicate issue.

## Everything else

12 changes: 4 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
node_modules
npm-debug.log
coverage
dist
examples/package-lock.json
/node_modules
/package-lock.json

# nyc test coverage
.nyc_output
package-lock.json
npm-debug.log
lerna-debug.log
6 changes: 0 additions & 6 deletions .lintstagedrc.json

This file was deleted.

22 changes: 19 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,25 @@
language: node_js
node_js:
- "6"
- "7"
- "8"
- "9"
- "10"
- "11"
env:
- PACKAGE=@slack/web-api
- PACKAGE=@slack/rtm-api
- PACKAGE=@slack/interactive-messages
- PACKAGE=@slack/events-api
- PACKAGE=@slack/webhook
- PACKAGE=@slack/types
- PACKAGE=@slack/logger
- PACKAGE=@slack/client
- PACKAGE=@slack/sdk-integration-tests
cache: npm
install:
- npm install
- lerna bootstrap --no-ci --hoist
script:
- lerna run test --scope $PACKAGE
- lerna run lint --scope $PACKAGE
after_success:
- npm run coverage
- lerna run coverage --scope $PACKAGE
7 changes: 0 additions & 7 deletions .vscode/settings.json

This file was deleted.

2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2014-2017 Slack Technologies, Inc.
Copyright (c) 2014-2019 Slack Technologies, Inc.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
Loading