Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/two-socks-talk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@tma.js/init-data-node": patch
"@tma.js/bridge": patch
"@tma.js/sdk": patch
---

Bump `error-kid`.
2 changes: 1 addition & 1 deletion packages/bridge/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
"@tma.js/transformers": "workspace:^",
"@tma.js/types": "workspace:^",
"better-promises": "^1.0.0",
"error-kid": "^1.0.2",
"error-kid": "^2.0.0",
"fp-ts": "^2.16.11",
"mitt": "^3.0.1",
"valibot": "^1.1.0"
Expand Down
49 changes: 29 additions & 20 deletions packages/bridge/src/errors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,31 @@ import { errorClass, errorClassWithData } from 'error-kid';

export class MethodUnsupportedError extends /* @__PURE__ */ errorClass<
[method: string, version: Version]
>('MethodUnsupportedError', (method, version) => [
`Method "${method}" is unsupported in Mini Apps version ${version}`,
]) {
>({
name: 'MethodUnsupportedError',
super: (method, version) => [
`Method "${method}" is unsupported in Mini Apps version ${version}`,
],
}) {
}

export class MethodParameterUnsupportedError extends /* @__PURE__ */ errorClass<
[method: string, param: string, version: Version]
>('MethodParameterUnsupportedError', (method, param, version) => [
`Parameter "${param}" of "${method}" method is unsupported in Mini Apps version ${version}`,
]) {
>({
name: 'MethodParameterUnsupportedError',
super: (method, param, version) => [
`Parameter "${param}" of "${method}" method is unsupported in Mini Apps version ${version}`,
],
}) {
}

export class LaunchParamsRetrieveError extends /* @__PURE__ */ errorClassWithData<
{ errors: { source: string; error: unknown }[] },
[{ source: string; error: unknown }[]]
>(
'LaunchParamsRetrieveError',
errors => ({ errors }),
errors => [
>({
name: 'LaunchParamsRetrieveError',
data: errors => ({ errors }),
super: errors => [
[
'Unable to retrieve launch parameters from any known source. Perhaps, you have opened your app outside Telegram?',
'📖 Refer to docs for more information:',
Expand All @@ -33,22 +39,25 @@ export class LaunchParamsRetrieveError extends /* @__PURE__ */ errorClassWithDat
}),
].join('\n'),
],
) {
}) {
}

export class InvalidLaunchParamsError extends /* @__PURE__ */ errorClass<
[launchParams: string, cause: unknown]
>('InvalidLaunchParamsError', (launchParams, cause) => [
`Invalid value for launch params: ${launchParams}`,
{ cause },
]) {
>({
name: 'InvalidLaunchParamsError',
super: (launchParams, cause) => [
`Invalid value for launch params: ${launchParams}`,
{ cause },
],
}) {
}

export class UnknownEnvError extends /* @__PURE__ */ errorClass('UnknownEnvError') {
export class UnknownEnvError extends /* @__PURE__ */ errorClass({ name: 'UnknownEnvError' }) {
}

export class InvokeCustomMethodFailedError extends /* @__PURE__ */ errorClass<[error: string]>(
'InvokeCustomMethodError',
error => [`Server returned error: ${error}`],
) {
export class InvokeCustomMethodFailedError extends /* @__PURE__ */ errorClass<[error: string]>({
name: 'InvokeCustomMethodError',
super: error => [`Server returned error: ${error}`],
}) {
}
2 changes: 1 addition & 1 deletion packages/init-data-node/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
"@tma.js/transformers": "workspace:^",
"@tma.js/types": "workspace:^",
"better-promises": "^1.0.0",
"error-kid": "^1.0.2",
"error-kid": "^2.0.0",
"fp-ts": "^2.16.11"
}
}
34 changes: 16 additions & 18 deletions packages/init-data-node/src/errors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,35 +3,33 @@ import { errorClass, errorClassWithData } from 'error-kid';
export class AuthDateInvalidError extends errorClassWithData<
{ value: string | undefined },
[value?: string]
>(
'AuthDateInvalidError',
value => ({ value }),
value => [`"auth_date" is invalid: ${value || 'value is missing'}`],
) {
>({
name: 'AuthDateInvalidError',
data: value => ({ value }),
super: value => [`"auth_date" is invalid: ${value || 'value is missing'}`],
}) {
}

export class SignatureInvalidError extends errorClass('SignatureInvalidError') {
export class SignatureInvalidError extends errorClass({ name: 'SignatureInvalidError' }) {
}

export class HexStringLengthInvalidError extends errorClass(
'HexStringLengthInvalidError',
) {
export class HexStringLengthInvalidError extends errorClass({ name: 'HexStringLengthInvalidError' }) {
}

export class SignatureMissingError extends errorClass<[thirdParty: boolean]>(
'SignatureMissingError',
thirdParty => [`"${thirdParty ? 'signature' : 'hash'}" parameter is missing`],
) {
export class SignatureMissingError extends errorClass<[thirdParty: boolean]>({
name: 'SignatureMissingError',
super: thirdParty => [`"${thirdParty ? 'signature' : 'hash'}" parameter is missing`],
}) {
}

export class ExpiredError extends errorClassWithData<
{ issuedAt: Date; expiresAt: Date },
[issuedAt: Date, expiresAt: Date, now: Date]
>(
'ExpiredError',
(issuedAt, expiresAt) => ({ issuedAt, expiresAt }),
(issuedAt, expiresAt, now) => [
>({
name: 'ExpiredError',
data: (issuedAt, expiresAt) => ({ issuedAt, expiresAt }),
super: (issuedAt, expiresAt, now) => [
`Init data expired. Issued at ${issuedAt.toISOString()}, expires at ${expiresAt.toISOString()}, now is ${now.toISOString()}`,
],
) {
}) {
}
2 changes: 1 addition & 1 deletion packages/sdk/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
"@tma.js/transformers": "workspace:^",
"@tma.js/types": "workspace:^",
"better-promises": "^1.0.0",
"error-kid": "^1.0.2",
"error-kid": "^2.0.0",
"fp-ts": "^2.16.11",
"valibot": "^1.1.0"
},
Expand Down
110 changes: 59 additions & 51 deletions packages/sdk/src/errors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,87 +8,95 @@
export class ValidationError extends /* #__PURE__ */ errorClassWithData<
{ input: unknown; issues: BaseIssue<any>[] },
[input: unknown, issues: BaseIssue<any>[]]
>(
'ValidationError',
(input, issues) => ({ input, issues }),
'Validation error',
) {
>({
name: 'ValidationError',
data: (input, issues) => ({ input, issues }),
super: 'Validation error',
}) {
}

export class CSSVarsBoundError extends /* #__PURE__ */ errorClass(
'CSSVarsBoundError',
'CSS variables are already bound',
) {
export class CSSVarsBoundError extends /* #__PURE__ */ errorClass({
name: 'CSSVarsBoundError',
super: 'CSS variables are already bound',
}) {
}

export class DeviceStorageMethodError extends /* #__PURE__ */ errorClassWithData<
{ error: string },
[error: string]
>('DeviceStorageMethodError', error => ({ error }), error => [error]) {
>({
name: 'DeviceStorageMethodError',
data: error => ({ error }),
super: error => [error],
}) {
}

export class SecureStorageMethodError extends /* #__PURE__ */ errorClassWithData<
{ error: string },
[error: string]
>('SecureStorageMethodError', error => ({ error }), error => [error]) {
>({
name: 'SecureStorageMethodError',
data: error => ({ error }),
super: error => [error],
}) {
}

export class NotAvailableError extends /* #__PURE__ */ errorClass<[message: string]>(
'NotAvailableError',
msgToTuple,
) {
export class NotAvailableError extends /* #__PURE__ */ errorClass<[message: string]>({
name: 'NotAvailableError',
super: msgToTuple,
}) {
}

export class InvalidEnvError extends /* #__PURE__ */ errorClass<[message?: string]>(
'InvalidEnvError',
msgToTuple,
) {
export class InvalidEnvError extends /* #__PURE__ */ errorClass<[message?: string]>({
name: 'InvalidEnvError',
super: msgToTuple,
}) {
}

export class FunctionUnavailableError extends /* #__PURE__ */ errorClass<[message?: string]>(
'FunctionNotAvailableError',
msgToTuple,
) {
export class FunctionUnavailableError extends /* #__PURE__ */ errorClass<[message?: string]>({
name: 'FunctionNotAvailableError',
super: msgToTuple,
}) {
}

export class InvalidArgumentsError extends /* #__PURE__ */ errorClass<[message: string, cause?: unknown]>(
'InvalidArgumentsError',
(message, cause) => [message, { cause }],
) {
export class InvalidArgumentsError extends /* #__PURE__ */ errorClass<[message: string, cause?: unknown]>({

Check warning on line 62 in packages/sdk/src/errors.ts

View workflow job for this annotation

GitHub Actions / Test pull request

This line has a length of 107. Maximum allowed is 100
name: 'InvalidArgumentsError',
super: (message, cause) => [message, { cause }],
}) {
}

export class ConcurrentCallError extends /* #__PURE__ */ errorClass<[message: string]>(
'ConcurrentCallError',
msgToTuple,
) {
export class ConcurrentCallError extends /* #__PURE__ */ errorClass<[message: string]>({
name: 'ConcurrentCallError',
super: msgToTuple,
}) {
}

export class SetEmojiStatusError extends /* #__PURE__ */ errorClass<[error: string]>(
'SetEmojiStatusError',
error => [`Failed to set emoji status: ${error}`],
) {
export class SetEmojiStatusError extends /* #__PURE__ */ errorClass<[error: string]>({
name: 'SetEmojiStatusError',
super: error => [`Failed to set emoji status: ${error}`],
}) {
}

export class AccessDeniedError extends /* #__PURE__ */ errorClass<[message: string]>(
'AccessDeniedError',
msgToTuple,
) {
export class AccessDeniedError extends /* #__PURE__ */ errorClass<[message: string]>({
name: 'AccessDeniedError',
super: msgToTuple,
}) {
}

export class FullscreenFailedError extends /* #__PURE__ */ errorClass<[message: string]>(
'FullscreenFailedError',
msgToTuple,
) {
export class FullscreenFailedError extends /* #__PURE__ */ errorClass<[message: string]>({
name: 'FullscreenFailedError',
super: msgToTuple,
}) {
}

export class ShareMessageError extends /* #__PURE__ */ errorClass<[error: string]>(
'ShareMessageError',
msgToTuple,
) {
export class ShareMessageError extends /* #__PURE__ */ errorClass<[error: string]>({
name: 'ShareMessageError',
super: msgToTuple,
}) {
}

export class UnknownThemeParamsKeyError extends /* #__PURE__ */ errorClass<[key: string]>(
'UnknownThemeParamsKeyError',
key => [`Unknown theme params key passed: ${key}`],
) {
export class UnknownThemeParamsKeyError extends /* #__PURE__ */ errorClass<[key: string]>({
name: 'UnknownThemeParamsKeyError',
super: key => [`Unknown theme params key passed: ${key}`],
}) {
}
17 changes: 11 additions & 6 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.