fix(REST): strip webhook tokens (#9723)

* fix(REST): strip webhook tokens

* fix(REST): implement requested changes

Co-authored-by: ckohen <chaikohen@gmail.com>

---------

Co-authored-by: ckohen <chaikohen@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
David Malchin 2023-11-11 20:31:39 +02:00 committed by GitHub
parent 2a25eeaf13
commit cf49f405b0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -434,16 +434,20 @@ export class REST extends AsyncEventEmitter<RestEventsMap> {
};
}
const majorIdMatch = /^\/(?:channels|guilds|webhooks)\/(\d{17,19})/.exec(endpoint);
const majorIdMatch = /(?:^\/webhooks\/(\d{17,19}\/[^/?]+))|(?:^\/(?:channels|guilds|webhooks)\/(\d{17,19}))/.exec(
endpoint,
);
// Get the major id for this route - global otherwise
const majorId = majorIdMatch?.[1] ?? 'global';
// Get the major id or id + token for this route - global otherwise
const majorId = majorIdMatch?.[2] ?? majorIdMatch?.[1] ?? 'global';
const baseRoute = endpoint
// Strip out all ids
.replaceAll(/\d{17,19}/g, ':id')
// Strip out reaction as they fall under the same bucket
.replace(/\/reactions\/(.*)/, '/reactions/:reaction');
.replace(/\/reactions\/(.*)/, '/reactions/:reaction')
// Strip out webhook tokens
.replace(/\/webhooks\/:id\/[^/?]+/, '/webhooks/:id/:token');
let exceptions = '';