Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f032477067 | ||
|
|
ada811dda2 | ||
|
|
c2c952e96a |
@@ -2,40 +2,24 @@ on:
|
|||||||
push:
|
push:
|
||||||
tags: [ '*' ]
|
tags: [ '*' ]
|
||||||
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
packages: write
|
|
||||||
# This is used to complete the identity challenge
|
|
||||||
# with sigstore/fulcio when running outside of PRs.
|
|
||||||
id-token: write
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
|
|
||||||
- uses: actions/setup-node@v6
|
- uses: actions/setup-node@v6
|
||||||
with:
|
with:
|
||||||
node-version: latest
|
node-version: latest
|
||||||
|
|
||||||
- name: Install Worker Dependencies
|
- name: Install Worker Dependencies
|
||||||
run: npm ci
|
run: npm ci
|
||||||
|
|
||||||
- run: npm run deploy
|
- run: npm run deploy
|
||||||
env:
|
env:
|
||||||
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||||||
- run: npm pack
|
- run: npm version from-git --allow-same-version --no-git-tag-version
|
||||||
- run: mv twitch-cloud-ebs*tgz twitch-cloud-ebs.tgz
|
- run: npm config set registry https://gitea.sugoidogo.com/api/packages/sugoidogo/npm/
|
||||||
- run: git log $(git describe --tags --abbrev=0 HEAD~1)..HEAD --oneline > changelog.txt
|
- run: npm config set -- '//gitea.sugoidogo.com/api/packages/sugoidogo/npm/:_authToken' "$PACKAGES_KEY"
|
||||||
- uses: softprops/action-gh-release@v2
|
env:
|
||||||
with:
|
PACKAGES_KEY: ${{ secrets.PACKAGES_KEY }}
|
||||||
make_latest: true
|
- run: npm publish
|
||||||
body_path: changelog.txt
|
|
||||||
files: '*.tgz'
|
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "twitch-cloud-ebs",
|
"name": "@sugoidogo/twitch-cloud-ebs",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"files": [
|
"files": [
|
||||||
"static",
|
"static",
|
||||||
|
|||||||
@@ -1,5 +1,20 @@
|
|||||||
import * as TwitchAuth from "./TwitchAuth.ts";
|
import * as TwitchAuth from "./TwitchAuth.ts";
|
||||||
import { AccessTokenMaybeWithUserId, AuthProvider, AccessToken, AccessTokenWithUserId } from "@twurple/auth";
|
import { AccessTokenMaybeWithUserId, AuthProvider, AccessTokenWithUserId } from "@twurple/auth";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A type that represents a user and contains a user ID.
|
||||||
|
*/
|
||||||
|
interface UserIdResolvableType {
|
||||||
|
/**
|
||||||
|
* The ID of the user.
|
||||||
|
*/
|
||||||
|
id: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A user ID or a user or channel object.
|
||||||
|
*/
|
||||||
|
type UserIdResolvable = string | number | UserIdResolvableType;
|
||||||
|
|
||||||
type Token = TwitchAuth.TwitchToken & AccessTokenMaybeWithUserId
|
type Token = TwitchAuth.TwitchToken & AccessTokenMaybeWithUserId
|
||||||
|
|
||||||
@@ -59,7 +74,7 @@ export default class SugoiAuthProvider implements AuthProvider {
|
|||||||
this.#token = null
|
this.#token = null
|
||||||
}
|
}
|
||||||
|
|
||||||
async getAccessTokenForUser(user: string | number, ...scopeSets: string[][]) {
|
async getAccessTokenForUser(user: UserIdResolvable, ...scopeSets: string[][]) {
|
||||||
if ((!scopeSets[0]) && (this.#token)) {
|
if ((!scopeSets[0]) && (this.#token)) {
|
||||||
return this.#token as AccessTokenWithUserId
|
return this.#token as AccessTokenWithUserId
|
||||||
}
|
}
|
||||||
@@ -72,18 +87,18 @@ export default class SugoiAuthProvider implements AuthProvider {
|
|||||||
return this.#token as AccessTokenWithUserId
|
return this.#token as AccessTokenWithUserId
|
||||||
}
|
}
|
||||||
|
|
||||||
async getAnyAccessToken(user: string | number) {
|
async getAnyAccessToken(user: UserIdResolvable) {
|
||||||
return this.#token || TwitchAuth.getAppToken(this.clientId).then(getTwurpleProxy)
|
return this.#token || TwitchAuth.getAppToken(this.clientId).then(getTwurpleProxy)
|
||||||
}
|
}
|
||||||
|
|
||||||
getCurrentScopesForUser(user: string | number) {
|
getCurrentScopesForUser(user: UserIdResolvable) {
|
||||||
if (!this.#token || this.#token instanceof Promise) {
|
if (!this.#token || this.#token instanceof Promise) {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
return this.#token.scope
|
return this.#token.scope
|
||||||
}
|
}
|
||||||
|
|
||||||
async refreshAccessTokenForUser(user: string | number) {
|
async refreshAccessTokenForUser(user: UserIdResolvable) {
|
||||||
this.#token = await TwitchAuth.refreshToken(this.clientId, this.#token.refresh_token).then(this.#setToken)
|
this.#token = await TwitchAuth.refreshToken(this.clientId, this.#token.refresh_token).then(this.#setToken)
|
||||||
return this.#token as AccessTokenWithUserId
|
return this.#token as AccessTokenWithUserId
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ export default class WebStorage {
|
|||||||
* @param {import('@twurple/auth').AuthProvider} auth_provider used to add the authentication header to requests for web storage
|
* @param {import('@twurple/auth').AuthProvider} auth_provider used to add the authentication header to requests for web storage
|
||||||
* @param {fetch} fetch defaults to `globalThis.fetch`, allows you to further customize fetch behavior via chaining, for example with `fetch-retry`
|
* @param {fetch} fetch defaults to `globalThis.fetch`, allows you to further customize fetch behavior via chaining, for example with `fetch-retry`
|
||||||
*/
|
*/
|
||||||
constructor(auth_provider: import('@twurple/auth').AuthProvider, fetch: typeof globalThis.fetch = globalThis.fetch, origin?: string) {
|
constructor(auth_provider: import('@twurple/auth').AuthProvider, fetch: typeof globalThis.fetch = (input, init) => globalThis.fetch(input, init), origin?: string) {
|
||||||
this.#fetch = fetch
|
this.#fetch = fetch
|
||||||
this.#auth_provider = auth_provider
|
this.#auth_provider = auth_provider
|
||||||
auth_provider.getAccessTokenForUser(undefined)
|
auth_provider.getAccessTokenForUser(undefined)
|
||||||
|
|||||||
Reference in New Issue
Block a user