@broadcastingplatforms/sdk 0.0.0-dev.52fbff9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth-CSkJb9Wc.d.mts +1180 -0
- package/dist/auth-CSkJb9Wc.d.ts +1180 -0
- package/dist/auth.d.mts +1 -0
- package/dist/auth.d.ts +1 -0
- package/dist/auth.js +456 -0
- package/dist/auth.mjs +433 -0
- package/dist/base-client-BHrP5nb_.d.ts +70 -0
- package/dist/base-client-BbMR6ZrV.d.mts +70 -0
- package/dist/browser-client.d.mts +47 -0
- package/dist/browser-client.d.ts +47 -0
- package/dist/browser-client.js +1983 -0
- package/dist/browser-client.mjs +1952 -0
- package/dist/channels.d.mts +1 -0
- package/dist/channels.d.ts +1 -0
- package/dist/channels.js +78 -0
- package/dist/channels.mjs +55 -0
- package/dist/chat.d.mts +1 -0
- package/dist/chat.d.ts +1 -0
- package/dist/chat.js +105 -0
- package/dist/chat.mjs +80 -0
- package/dist/errors.d.mts +68 -0
- package/dist/errors.d.ts +68 -0
- package/dist/errors.js +151 -0
- package/dist/errors.mjs +127 -0
- package/dist/http.d.mts +1 -0
- package/dist/http.d.ts +1 -0
- package/dist/http.js +323 -0
- package/dist/http.mjs +298 -0
- package/dist/index.d.mts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +2072 -0
- package/dist/index.mjs +2025 -0
- package/dist/realtime.d.mts +9 -0
- package/dist/realtime.d.ts +9 -0
- package/dist/realtime.js +1050 -0
- package/dist/realtime.mjs +1021 -0
- package/dist/resource.d.mts +1 -0
- package/dist/resource.d.ts +1 -0
- package/dist/resource.js +52 -0
- package/dist/resource.mjs +27 -0
- package/dist/server-client.d.mts +60 -0
- package/dist/server-client.d.ts +60 -0
- package/dist/server-client.js +1984 -0
- package/dist/server-client.mjs +1954 -0
- package/dist/storage.d.mts +149 -0
- package/dist/storage.d.ts +149 -0
- package/dist/storage.js +243 -0
- package/dist/storage.mjs +211 -0
- package/dist/streams.d.mts +1 -0
- package/dist/streams.d.ts +1 -0
- package/dist/streams.js +267 -0
- package/dist/streams.mjs +242 -0
- package/dist/types.d.mts +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.js +19 -0
- package/dist/types.mjs +1 -0
- package/package.json +139 -0
package/dist/streams.mjs
ADDED
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
+
|
|
5
|
+
// src/errors.ts
|
|
6
|
+
var SDKError = class extends Error {
|
|
7
|
+
/**
|
|
8
|
+
* Construct an SDKError. Signature is compatible with Error.
|
|
9
|
+
* You can pass in a message or an options object, as with the Error constructor.
|
|
10
|
+
* Additional fields (code, etc) may be added via the second argument.
|
|
11
|
+
*/
|
|
12
|
+
constructor(message, details = {}) {
|
|
13
|
+
const resolvedMessage = message ?? (typeof details.message === "string" ? details.message : "Unknown error");
|
|
14
|
+
super(resolvedMessage);
|
|
15
|
+
/**
|
|
16
|
+
* Canonical SDK error code.
|
|
17
|
+
*/
|
|
18
|
+
__publicField(this, "code");
|
|
19
|
+
/**
|
|
20
|
+
* HTTP status code if available.
|
|
21
|
+
*/
|
|
22
|
+
__publicField(this, "statusCode");
|
|
23
|
+
/**
|
|
24
|
+
* End-user safe message.
|
|
25
|
+
*/
|
|
26
|
+
__publicField(this, "userMessage");
|
|
27
|
+
/**
|
|
28
|
+
* Optional request metadata (null when unavailable).
|
|
29
|
+
*/
|
|
30
|
+
__publicField(this, "request");
|
|
31
|
+
/**
|
|
32
|
+
* Optional response metadata (null when unavailable).
|
|
33
|
+
*/
|
|
34
|
+
__publicField(this, "response");
|
|
35
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
36
|
+
if (details && typeof details === "object") {
|
|
37
|
+
for (const [key, value] of Object.entries(details)) {
|
|
38
|
+
if (!["name", "message", "stack"].includes(key)) {
|
|
39
|
+
this[key] = value;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
this.name = "SDKError";
|
|
44
|
+
this.code = details.code ?? "unknown_error";
|
|
45
|
+
this.statusCode = typeof details.statusCode === "number" ? details.statusCode : void 0;
|
|
46
|
+
this.userMessage = typeof details.userMessage === "string" ? details.userMessage : this.message;
|
|
47
|
+
this.request = details.request ?? null;
|
|
48
|
+
this.response = details.response ?? null;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Serialize the error into a plain object, preserving extra fields.
|
|
52
|
+
*/
|
|
53
|
+
toJSON() {
|
|
54
|
+
const extras = { ...this };
|
|
55
|
+
delete extras.code;
|
|
56
|
+
delete extras.statusCode;
|
|
57
|
+
delete extras.message;
|
|
58
|
+
delete extras.userMessage;
|
|
59
|
+
delete extras.request;
|
|
60
|
+
delete extras.response;
|
|
61
|
+
delete extras.form;
|
|
62
|
+
delete extras.cause;
|
|
63
|
+
return {
|
|
64
|
+
...extras,
|
|
65
|
+
code: this.code,
|
|
66
|
+
statusCode: this.statusCode,
|
|
67
|
+
message: this.message,
|
|
68
|
+
userMessage: this.userMessage,
|
|
69
|
+
request: this.request,
|
|
70
|
+
response: this.response
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
var STATUS_CODE_DEFAULTS = {
|
|
75
|
+
401: {
|
|
76
|
+
code: "authentication_required",
|
|
77
|
+
message: "Authentication required",
|
|
78
|
+
userMessage: "Please log in to continue. Your session may have expired."
|
|
79
|
+
},
|
|
80
|
+
403: {
|
|
81
|
+
code: "permission_denied",
|
|
82
|
+
message: "Permission denied",
|
|
83
|
+
userMessage: "You do not have permission to perform this action."
|
|
84
|
+
},
|
|
85
|
+
404: {
|
|
86
|
+
code: "not_found",
|
|
87
|
+
message: "Resource not found",
|
|
88
|
+
userMessage: "The requested resource was not found."
|
|
89
|
+
},
|
|
90
|
+
422: {
|
|
91
|
+
code: "validation_failed",
|
|
92
|
+
message: "Validation failed",
|
|
93
|
+
userMessage: "The provided information is invalid. Please check your input and try again."
|
|
94
|
+
},
|
|
95
|
+
429: {
|
|
96
|
+
code: "rate_limited",
|
|
97
|
+
message: "Rate limit exceeded",
|
|
98
|
+
userMessage: "Too many requests. Please wait a moment and try again."
|
|
99
|
+
},
|
|
100
|
+
500: {
|
|
101
|
+
code: "server_error",
|
|
102
|
+
message: "Internal server error",
|
|
103
|
+
userMessage: "Something went wrong on our end. Please try again later."
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
var DEFAULT_ERROR = {
|
|
107
|
+
code: "unknown_error",
|
|
108
|
+
userMessage: "An unexpected error occurred. Please try again."
|
|
109
|
+
};
|
|
110
|
+
function createSdkError(message, details = {}) {
|
|
111
|
+
const statusCode = details.response?.status;
|
|
112
|
+
const statusValues = statusCode && STATUS_CODE_DEFAULTS[statusCode] ? STATUS_CODE_DEFAULTS[statusCode] : DEFAULT_ERROR;
|
|
113
|
+
const enrichedDetails = {
|
|
114
|
+
...details,
|
|
115
|
+
statusCode,
|
|
116
|
+
code: details.code ?? statusValues.code,
|
|
117
|
+
userMessage: details.userMessage ?? statusValues.userMessage,
|
|
118
|
+
request: details.request ?? null,
|
|
119
|
+
response: details.response ?? null
|
|
120
|
+
};
|
|
121
|
+
return new SDKError(message, enrichedDetails);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// src/resource.ts
|
|
125
|
+
var buildQueryString = (params) => {
|
|
126
|
+
if (!params) {
|
|
127
|
+
return "";
|
|
128
|
+
}
|
|
129
|
+
const searchParams = new URLSearchParams();
|
|
130
|
+
for (const [key, value] of Object.entries(params)) {
|
|
131
|
+
if (Array.isArray(value)) {
|
|
132
|
+
for (const item of value) {
|
|
133
|
+
if (item === null || item === void 0) {
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
searchParams.append(`${key}[]`, String(item));
|
|
137
|
+
}
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
if (value === null || value === void 0) {
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
searchParams.set(key, String(value));
|
|
144
|
+
}
|
|
145
|
+
return searchParams.toString();
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
// src/streams.ts
|
|
149
|
+
var StreamsClient = class {
|
|
150
|
+
/**
|
|
151
|
+
* Create a new streams client instance.
|
|
152
|
+
*/
|
|
153
|
+
constructor(http) {
|
|
154
|
+
__publicField(this, "http");
|
|
155
|
+
this.http = http;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* List active streams.
|
|
159
|
+
*/
|
|
160
|
+
async listActive(options = {}) {
|
|
161
|
+
return this.list(void 0, options);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* List streams with optional query params.
|
|
165
|
+
*/
|
|
166
|
+
async list(params, options = {}) {
|
|
167
|
+
const rest = { ...options, body: void 0 };
|
|
168
|
+
const query = buildQueryString(params);
|
|
169
|
+
const path = query ? `/v2/streams?${query}` : "/v2/streams";
|
|
170
|
+
return this.http.request(path, {
|
|
171
|
+
...rest,
|
|
172
|
+
method: "GET"
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Fetch a stream by id.
|
|
177
|
+
*/
|
|
178
|
+
async get(streamId, options = {}) {
|
|
179
|
+
const rest = { ...options, body: void 0 };
|
|
180
|
+
return this.http.request(
|
|
181
|
+
`/v2/streams/${encodeURIComponent(String(streamId))}`,
|
|
182
|
+
{
|
|
183
|
+
...rest,
|
|
184
|
+
method: "GET"
|
|
185
|
+
}
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Fetch a stream by channel slug.
|
|
190
|
+
* @param userLogin - Channel slug or login handle.
|
|
191
|
+
* @param options - Request options.
|
|
192
|
+
* @returns Stream payload when found, otherwise null.
|
|
193
|
+
*/
|
|
194
|
+
async getBySlug(userLogin, options = {}) {
|
|
195
|
+
const rest = { ...options, body: void 0 };
|
|
196
|
+
try {
|
|
197
|
+
const channelResponse = await this.http.request(
|
|
198
|
+
`/v2/channels/${encodeURIComponent(userLogin)}`,
|
|
199
|
+
{
|
|
200
|
+
...rest,
|
|
201
|
+
method: "GET"
|
|
202
|
+
}
|
|
203
|
+
);
|
|
204
|
+
if (channelResponse?.active_stream) {
|
|
205
|
+
return channelResponse.active_stream;
|
|
206
|
+
}
|
|
207
|
+
return null;
|
|
208
|
+
} catch (error) {
|
|
209
|
+
if (error instanceof SDKError) {
|
|
210
|
+
if (error.statusCode === 404) {
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
213
|
+
throw error;
|
|
214
|
+
}
|
|
215
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
216
|
+
throw createSdkError(message);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Fetch the player source payload for the given stream id.
|
|
221
|
+
*/
|
|
222
|
+
async getPlayerSource(streamId, options = {}) {
|
|
223
|
+
const response = await this.get(streamId, options);
|
|
224
|
+
const stream = this.extractStreamPayload(response);
|
|
225
|
+
return stream?.player_source ?? null;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Normalize stream payloads for get operations.
|
|
229
|
+
*/
|
|
230
|
+
extractStreamPayload(response) {
|
|
231
|
+
if (response && typeof response === "object") {
|
|
232
|
+
if ("data" in response) {
|
|
233
|
+
return response.data ?? null;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return response ?? null;
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
export {
|
|
240
|
+
StreamsClient
|
|
241
|
+
};
|
|
242
|
+
//# sourceMappingURL=streams.mjs.map
|
package/dist/types.d.mts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { i as BeforeRequestHook, N as Channel, O as ChannelCharacteristics, P as ChannelLink, Q as ChannelResponse, T as ChannelTag, U as ChatMessage, V as ChatMessageMetadata, Y as ChatMessageTransaction, Z as ChatMessageUser, W as ChatMessagesQuery, X as ChatMessagesResponse, j as CookieAccessors, k as CookieOptions, l as CookiesStorageAdapter, m as HttpRequest, n as HttpRequestOptions, R as RealtimeChannel, o as RealtimeChatClient, p as RealtimeClient, q as RealtimeClientOptions, _ as RealtimeClientOverrides, r as RealtimeConnectionState, s as RealtimeConnectionStateCallback, t as RealtimeEventCallback, u as RealtimePresenceChannel, D as ResourceId, E as ResourceQueryParams, F as ResourceQueryValue, v as SDKErrorCode, x as SDKErrorShape, h as SdkClient, w as SdkErrorCode, y as SdkErrorShape, z as StorageAdapter, G as Stream, I as StreamChannel, J as StreamListResponse, K as StreamPlayerSource, L as StreamResponse, M as StreamTag, a0 as Tag } from './auth-CSkJb9Wc.mjs';
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { i as BeforeRequestHook, N as Channel, O as ChannelCharacteristics, P as ChannelLink, Q as ChannelResponse, T as ChannelTag, U as ChatMessage, V as ChatMessageMetadata, Y as ChatMessageTransaction, Z as ChatMessageUser, W as ChatMessagesQuery, X as ChatMessagesResponse, j as CookieAccessors, k as CookieOptions, l as CookiesStorageAdapter, m as HttpRequest, n as HttpRequestOptions, R as RealtimeChannel, o as RealtimeChatClient, p as RealtimeClient, q as RealtimeClientOptions, _ as RealtimeClientOverrides, r as RealtimeConnectionState, s as RealtimeConnectionStateCallback, t as RealtimeEventCallback, u as RealtimePresenceChannel, D as ResourceId, E as ResourceQueryParams, F as ResourceQueryValue, v as SDKErrorCode, x as SDKErrorShape, h as SdkClient, w as SdkErrorCode, y as SdkErrorShape, z as StorageAdapter, G as Stream, I as StreamChannel, J as StreamListResponse, K as StreamPlayerSource, L as StreamResponse, M as StreamTag, a0 as Tag } from './auth-CSkJb9Wc.js';
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
|
|
16
|
+
// src/types.ts
|
|
17
|
+
var types_exports = {};
|
|
18
|
+
module.exports = __toCommonJS(types_exports);
|
|
19
|
+
//# sourceMappingURL=types.js.map
|
package/dist/types.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.mjs.map
|
package/package.json
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@broadcastingplatforms/sdk",
|
|
3
|
+
"version": "0.0.0-dev.52fbff9",
|
|
4
|
+
"description": "Broadcasting Platform SDK",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.mjs",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist/",
|
|
10
|
+
"!**/*.map"
|
|
11
|
+
],
|
|
12
|
+
"sideEffects": false,
|
|
13
|
+
"publishConfig": {
|
|
14
|
+
"access": "public"
|
|
15
|
+
},
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./dist/index.d.ts",
|
|
19
|
+
"import": "./dist/index.mjs",
|
|
20
|
+
"require": "./dist/index.js"
|
|
21
|
+
},
|
|
22
|
+
"./auth": {
|
|
23
|
+
"types": "./dist/auth.d.ts",
|
|
24
|
+
"import": "./dist/auth.mjs",
|
|
25
|
+
"require": "./dist/auth.js"
|
|
26
|
+
},
|
|
27
|
+
"./browser-client": {
|
|
28
|
+
"types": "./dist/browser-client.d.ts",
|
|
29
|
+
"import": "./dist/browser-client.mjs",
|
|
30
|
+
"require": "./dist/browser-client.js"
|
|
31
|
+
},
|
|
32
|
+
"./http": {
|
|
33
|
+
"types": "./dist/http.d.ts",
|
|
34
|
+
"import": "./dist/http.mjs",
|
|
35
|
+
"require": "./dist/http.js"
|
|
36
|
+
},
|
|
37
|
+
"./resource": {
|
|
38
|
+
"types": "./dist/resource.d.ts",
|
|
39
|
+
"import": "./dist/resource.mjs",
|
|
40
|
+
"require": "./dist/resource.js"
|
|
41
|
+
},
|
|
42
|
+
"./streams": {
|
|
43
|
+
"types": "./dist/streams.d.ts",
|
|
44
|
+
"import": "./dist/streams.mjs",
|
|
45
|
+
"require": "./dist/streams.js"
|
|
46
|
+
},
|
|
47
|
+
"./channels": {
|
|
48
|
+
"types": "./dist/channels.d.ts",
|
|
49
|
+
"import": "./dist/channels.mjs",
|
|
50
|
+
"require": "./dist/channels.js"
|
|
51
|
+
},
|
|
52
|
+
"./chat": {
|
|
53
|
+
"types": "./dist/chat.d.ts",
|
|
54
|
+
"import": "./dist/chat.mjs",
|
|
55
|
+
"require": "./dist/chat.js"
|
|
56
|
+
},
|
|
57
|
+
"./errors": {
|
|
58
|
+
"types": "./dist/errors.d.ts",
|
|
59
|
+
"import": "./dist/errors.mjs",
|
|
60
|
+
"require": "./dist/errors.js"
|
|
61
|
+
},
|
|
62
|
+
"./storage": {
|
|
63
|
+
"types": "./dist/storage.d.ts",
|
|
64
|
+
"import": "./dist/storage.mjs",
|
|
65
|
+
"require": "./dist/storage.js"
|
|
66
|
+
},
|
|
67
|
+
"./server-client": {
|
|
68
|
+
"types": "./dist/server-client.d.ts",
|
|
69
|
+
"import": "./dist/server-client.mjs",
|
|
70
|
+
"require": "./dist/server-client.js"
|
|
71
|
+
},
|
|
72
|
+
"./realtime": {
|
|
73
|
+
"types": "./dist/realtime.d.ts",
|
|
74
|
+
"import": "./dist/realtime.mjs",
|
|
75
|
+
"require": "./dist/realtime.js"
|
|
76
|
+
},
|
|
77
|
+
"./types": {
|
|
78
|
+
"types": "./dist/types.d.ts",
|
|
79
|
+
"import": "./dist/types.mjs",
|
|
80
|
+
"require": "./dist/types.js"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"tsup": {
|
|
84
|
+
"entry": [
|
|
85
|
+
"src/index.ts",
|
|
86
|
+
"src/auth.ts",
|
|
87
|
+
"src/browser-client.ts",
|
|
88
|
+
"src/http.ts",
|
|
89
|
+
"src/resource.ts",
|
|
90
|
+
"src/streams.ts",
|
|
91
|
+
"src/channels.ts",
|
|
92
|
+
"src/chat.ts",
|
|
93
|
+
"src/errors.ts",
|
|
94
|
+
"src/realtime.ts",
|
|
95
|
+
"src/server-client.ts",
|
|
96
|
+
"src/storage.ts",
|
|
97
|
+
"src/types.ts"
|
|
98
|
+
],
|
|
99
|
+
"format": [
|
|
100
|
+
"esm",
|
|
101
|
+
"cjs"
|
|
102
|
+
],
|
|
103
|
+
"dts": true,
|
|
104
|
+
"sourcemap": true,
|
|
105
|
+
"clean": true,
|
|
106
|
+
"splitting": false,
|
|
107
|
+
"target": "es2020"
|
|
108
|
+
},
|
|
109
|
+
"dependencies": {
|
|
110
|
+
"jwt-decode": "^4.0.0",
|
|
111
|
+
"pusher-js": "^8.4.0"
|
|
112
|
+
},
|
|
113
|
+
"peerDependencies": {
|
|
114
|
+
"typescript": "^5.0.0"
|
|
115
|
+
},
|
|
116
|
+
"engines": {
|
|
117
|
+
"node": ">=22"
|
|
118
|
+
},
|
|
119
|
+
"devDependencies": {
|
|
120
|
+
"@bp/typescript": "*",
|
|
121
|
+
"@typescript-eslint/eslint-plugin": "^8.33.0",
|
|
122
|
+
"@typescript-eslint/parser": "^8.33.0",
|
|
123
|
+
"eslint": "^9.0.0",
|
|
124
|
+
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
125
|
+
"eslint-plugin-react-hooks": "^5.1.0",
|
|
126
|
+
"tsup": "^8.0.2",
|
|
127
|
+
"tsx": "^4.19.2",
|
|
128
|
+
"pusher-js": "^8.4.0",
|
|
129
|
+
"typescript": "^5.0.0",
|
|
130
|
+
"vitest": "^2.1.8"
|
|
131
|
+
},
|
|
132
|
+
"scripts": {
|
|
133
|
+
"build": "tsup",
|
|
134
|
+
"build:watch": "tsup --watch",
|
|
135
|
+
"lint": "eslint -c ./eslint.config.mjs \"{src,tests}/**/*.{ts,tsx,js,jsx}\" --fix",
|
|
136
|
+
"test": "vitest run",
|
|
137
|
+
"manual-tests": "npm run build && vitest run tests/manual-tests.vitest.js"
|
|
138
|
+
}
|
|
139
|
+
}
|