@discordkit/core 3.1.0 → 4.0.0
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/CHANGELOG.md +416 -0
- package/README.md +52 -0
- package/dist/index.d.mts +23 -0
- package/dist/index.mjs +23 -0
- package/dist/requests/DiscordSession.d.mts +30 -0
- package/dist/requests/DiscordSession.mjs +202 -0
- package/dist/requests/addParams.d.mts +15 -0
- package/dist/requests/addParams.mjs +24 -0
- package/dist/requests/buildURL.d.mts +7 -0
- package/dist/requests/buildURL.mjs +7 -0
- package/dist/requests/getAsset.d.mts +7 -0
- package/dist/requests/getAsset.mjs +6 -0
- package/dist/requests/index.d.mts +9 -0
- package/dist/requests/index.mjs +9 -0
- package/dist/requests/methods.d.mts +63 -0
- package/dist/requests/methods.mjs +10 -0
- package/dist/requests/request.d.mts +27 -0
- package/dist/requests/request.mjs +29 -0
- package/dist/requests/toProcedure.d.mts +40 -0
- package/dist/requests/toProcedure.mjs +27 -0
- package/dist/requests/toQuery.d.mts +36 -0
- package/dist/requests/toQuery.mjs +17 -0
- package/dist/requests/toValidated.d.mts +16 -0
- package/dist/requests/toValidated.mjs +25 -0
- package/dist/requests/verifyKey.d.mts +13 -0
- package/dist/requests/verifyKey.mjs +63 -0
- package/dist/utils/isBetween.d.mts +4 -0
- package/dist/utils/isBetween.mjs +4 -0
- package/dist/utils/{isNonNullable.d.ts → isNonNullable.d.mts} +5 -2
- package/dist/utils/isNonNullable.mjs +22 -0
- package/dist/utils/isNumericString.d.mts +4 -0
- package/dist/utils/isNumericString.mjs +4 -0
- package/dist/utils/isObject.d.mts +4 -0
- package/dist/utils/isObject.mjs +4 -0
- package/dist/utils/sleep.d.mts +7 -0
- package/dist/utils/sleep.mjs +7 -0
- package/dist/utils/toCamelCase.d.mts +4 -0
- package/dist/utils/toCamelCase.mjs +4 -0
- package/dist/utils/toCamelKeys.d.mts +6 -0
- package/dist/utils/toCamelKeys.mjs +13 -0
- package/dist/utils/toSnakeCase.d.mts +4 -0
- package/dist/utils/toSnakeCase.mjs +4 -0
- package/dist/utils/toSnakeKeys.d.mts +6 -0
- package/dist/utils/toSnakeKeys.mjs +13 -0
- package/dist/validations/asDigits.d.mts +12 -0
- package/dist/validations/asDigits.mjs +10 -0
- package/dist/validations/asInteger.d.mts +12 -0
- package/dist/validations/asInteger.mjs +10 -0
- package/dist/validations/bitfield.d.mts +23 -0
- package/dist/validations/bitfield.mjs +20 -0
- package/dist/validations/boundedArray.d.mts +13 -0
- package/dist/validations/boundedArray.mjs +9 -0
- package/dist/validations/boundedInteger.d.mts +13 -0
- package/dist/validations/boundedInteger.mjs +9 -0
- package/dist/validations/boundedString.d.mts +14 -0
- package/dist/validations/boundedString.mjs +10 -0
- package/dist/validations/datauri.d.mts +24 -0
- package/dist/validations/datauri.mjs +17 -0
- package/dist/validations/fileUpload.d.mts +129 -0
- package/dist/validations/fileUpload.mjs +114 -0
- package/dist/validations/hasMimeType.d.mts +16 -0
- package/dist/validations/hasMimeType.mjs +16 -0
- package/dist/validations/hasSize.d.mts +10 -0
- package/dist/validations/hasSize.mjs +12 -0
- package/dist/validations/index.d.mts +15 -0
- package/dist/validations/index.mjs +15 -0
- package/dist/validations/schema.d.mts +102 -0
- package/dist/validations/schema.mjs +109 -0
- package/dist/validations/{snowflake.d.ts → snowflake.d.mts} +9 -7
- package/dist/validations/snowflake.mjs +28 -0
- package/dist/validations/{timestamp.d.ts → timestamp.d.mts} +5 -1
- package/dist/validations/timestamp.mjs +6 -0
- package/dist/validations/toBlob.d.mts +9 -0
- package/dist/validations/toBlob.mjs +17 -0
- package/dist/validations/url.d.mts +6 -0
- package/dist/validations/url.mjs +5 -0
- package/package.json +13 -23
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -3
- package/dist/index.js.map +0 -1
- package/dist/requests/DiscordSession.d.ts +0 -16
- package/dist/requests/DiscordSession.js +0 -42
- package/dist/requests/DiscordSession.js.map +0 -1
- package/dist/requests/addParams.d.ts +0 -2
- package/dist/requests/addParams.js +0 -11
- package/dist/requests/addParams.js.map +0 -1
- package/dist/requests/buildURL.d.ts +0 -2
- package/dist/requests/buildURL.js +0 -4
- package/dist/requests/buildURL.js.map +0 -1
- package/dist/requests/getAsset.d.ts +0 -2
- package/dist/requests/getAsset.js +0 -3
- package/dist/requests/getAsset.js.map +0 -1
- package/dist/requests/index.d.ts +0 -7
- package/dist/requests/index.js +0 -8
- package/dist/requests/index.js.map +0 -1
- package/dist/requests/methods.d.ts +0 -13
- package/dist/requests/methods.js +0 -8
- package/dist/requests/methods.js.map +0 -1
- package/dist/requests/request.d.ts +0 -2
- package/dist/requests/request.js +0 -35
- package/dist/requests/request.js.map +0 -1
- package/dist/requests/toProcedure.d.ts +0 -31
- package/dist/requests/toProcedure.js +0 -36
- package/dist/requests/toProcedure.js.map +0 -1
- package/dist/requests/toQuery.d.ts +0 -28
- package/dist/requests/toQuery.js +0 -9
- package/dist/requests/toQuery.js.map +0 -1
- package/dist/requests/toValidated.d.ts +0 -13
- package/dist/requests/toValidated.js +0 -29
- package/dist/requests/toValidated.js.map +0 -1
- package/dist/utils/isBetween.d.ts +0 -1
- package/dist/utils/isBetween.js +0 -2
- package/dist/utils/isBetween.js.map +0 -1
- package/dist/utils/isNonNullable.js +0 -20
- package/dist/utils/isNonNullable.js.map +0 -1
- package/dist/utils/isNumericString.d.ts +0 -1
- package/dist/utils/isNumericString.js +0 -2
- package/dist/utils/isNumericString.js.map +0 -1
- package/dist/utils/isObject.d.ts +0 -1
- package/dist/utils/isObject.js +0 -2
- package/dist/utils/isObject.js.map +0 -1
- package/dist/utils/toCamelCase.d.ts +0 -1
- package/dist/utils/toCamelCase.js +0 -2
- package/dist/utils/toCamelCase.js.map +0 -1
- package/dist/utils/toCamelKeys.d.ts +0 -2
- package/dist/utils/toCamelKeys.js +0 -16
- package/dist/utils/toCamelKeys.js.map +0 -1
- package/dist/utils/toSnakeCase.d.ts +0 -1
- package/dist/utils/toSnakeCase.js +0 -4
- package/dist/utils/toSnakeCase.js.map +0 -1
- package/dist/utils/toSnakeKeys.d.ts +0 -2
- package/dist/utils/toSnakeKeys.js +0 -16
- package/dist/utils/toSnakeKeys.js.map +0 -1
- package/dist/validations/asDigits.d.ts +0 -6
- package/dist/validations/asDigits.js +0 -6
- package/dist/validations/asDigits.js.map +0 -1
- package/dist/validations/asInteger.d.ts +0 -6
- package/dist/validations/asInteger.js +0 -6
- package/dist/validations/asInteger.js.map +0 -1
- package/dist/validations/bitfield.d.ts +0 -17
- package/dist/validations/bitfield.js +0 -37
- package/dist/validations/bitfield.js.map +0 -1
- package/dist/validations/boundedArray.d.ts +0 -6
- package/dist/validations/boundedArray.js +0 -8
- package/dist/validations/boundedArray.js.map +0 -1
- package/dist/validations/boundedInteger.d.ts +0 -6
- package/dist/validations/boundedInteger.js +0 -8
- package/dist/validations/boundedInteger.js.map +0 -1
- package/dist/validations/boundedString.d.ts +0 -6
- package/dist/validations/boundedString.js +0 -8
- package/dist/validations/boundedString.js.map +0 -1
- package/dist/validations/datauri.d.ts +0 -20
- package/dist/validations/datauri.js +0 -20
- package/dist/validations/datauri.js.map +0 -1
- package/dist/validations/hasMimeType.d.ts +0 -10
- package/dist/validations/hasMimeType.js +0 -18
- package/dist/validations/hasMimeType.js.map +0 -1
- package/dist/validations/hasSize.d.ts +0 -5
- package/dist/validations/hasSize.js +0 -13
- package/dist/validations/hasSize.js.map +0 -1
- package/dist/validations/index.d.ts +0 -12
- package/dist/validations/index.js +0 -13
- package/dist/validations/index.js.map +0 -1
- package/dist/validations/snowflake.js +0 -39
- package/dist/validations/snowflake.js.map +0 -1
- package/dist/validations/timestamp.js +0 -4
- package/dist/validations/timestamp.js.map +0 -1
- package/dist/validations/toBlob.d.ts +0 -4
- package/dist/validations/toBlob.js +0 -19
- package/dist/validations/toBlob.js.map +0 -1
- package/dist/validations/url.d.ts +0 -2
- package/dist/validations/url.js +0 -3
- package/dist/validations/url.js.map +0 -1
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
export const endpoint = `https://discord.com/api/v10/`;
|
|
2
|
-
/** @internal */
|
|
3
|
-
export class DiscordSession {
|
|
4
|
-
endpoint = endpoint;
|
|
5
|
-
#authToken = null;
|
|
6
|
-
get ready() {
|
|
7
|
-
return Boolean(this.#authToken);
|
|
8
|
-
}
|
|
9
|
-
constructor(authToken) {
|
|
10
|
-
if (authToken) {
|
|
11
|
-
this.setToken(authToken);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Clears the current session details, then attempts to set
|
|
16
|
-
* new session values
|
|
17
|
-
*/
|
|
18
|
-
setToken = (token) => {
|
|
19
|
-
this.#authToken = null;
|
|
20
|
-
if (token.length === 0) {
|
|
21
|
-
throw new Error(`Must provide a non-empty string to set Auth Token`);
|
|
22
|
-
}
|
|
23
|
-
if (!token.startsWith(`Bot `) && !token.startsWith(`Bearer `)) {
|
|
24
|
-
throw new Error(`Token must begin with either "Bot " or "Bearer ", received: ${token}`);
|
|
25
|
-
}
|
|
26
|
-
this.#authToken = token;
|
|
27
|
-
return this;
|
|
28
|
-
};
|
|
29
|
-
clearSession = () => {
|
|
30
|
-
this.#authToken = null;
|
|
31
|
-
return this;
|
|
32
|
-
};
|
|
33
|
-
getSession = () => {
|
|
34
|
-
const token = this.#authToken;
|
|
35
|
-
if (!token) {
|
|
36
|
-
throw new Error(`Auth Token must be set before requests can be made.`);
|
|
37
|
-
}
|
|
38
|
-
return token;
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
export const discord = new DiscordSession();
|
|
42
|
-
//# sourceMappingURL=DiscordSession.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DiscordSession.js","sourceRoot":"","sources":["../../src/requests/DiscordSession.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,8BAA8B,CAAC;AAEvD,gBAAgB;AAChB,MAAM,OAAO,cAAc;IACzB,QAAQ,GAAW,QAAQ,CAAC;IAC5B,UAAU,GAAkB,IAAI,CAAC;IACjC,IAAI,KAAK;QACP,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAED,YAAY,SAAkD;QAC5D,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,QAAQ,GAAG,CAAC,KAAsC,EAAQ,EAAE;QAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CACb,+DAA+D,KAAK,EAAE,CACvE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,YAAY,GAAG,GAAS,EAAE;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,UAAU,GAAG,GAAW,EAAE;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;QAE9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;CACH;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { isNonNullable } from "../utils/isNonNullable.js";
|
|
2
|
-
import { toSnakeCase } from "../utils/toSnakeCase.js";
|
|
3
|
-
export const addParams = (url, params) => {
|
|
4
|
-
for (const [key, value] of Object.entries(params)) {
|
|
5
|
-
if (isNonNullable(value)) {
|
|
6
|
-
url.searchParams.set(toSnakeCase(key), value.toString());
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
return url;
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=addParams.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"addParams.js","sourceRoot":"","sources":["../../src/requests/addParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAStD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAQ,EAAE,MAAqB,EAAO,EAAE;IAChE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buildURL.js","sourceRoot":"","sources":["../../src/requests/buildURL.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAsB,MAAM,gBAAgB,CAAC;AAE/D,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,QAAgB,EAChB,MAAsB,EACtB,IAAa,EACR,EAAE,CACP,SAAS,CACP,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,QAAQ,CAAC,EACtD,MAAM,IAAI,EAAE,CACb,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getAsset.js","sourceRoot":"","sources":["../../src/requests/getAsset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,QAAgB,EAChB,MAAuC,EAC/B,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,6BAA6B,CAAC,CAAC,IAAI,CAAC"}
|
package/dist/requests/index.d.ts
DELETED
package/dist/requests/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export { endpoint, discord } from "./DiscordSession.js";
|
|
2
|
-
export * from "./buildURL.js";
|
|
3
|
-
export * from "./getAsset.js";
|
|
4
|
-
export * from "./methods.js";
|
|
5
|
-
export * from "./toProcedure.js";
|
|
6
|
-
export * from "./toQuery.js";
|
|
7
|
-
export * from "./toValidated.js";
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/requests/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACxD,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { GenericSchema, GenericSchemaAsync, InferOutput } from "valibot";
|
|
2
|
-
import type { RequestParams } from "./addParams.js";
|
|
3
|
-
import type { RequestBody } from "./request.js";
|
|
4
|
-
export type Fetcher<
|
|
5
|
-
/** A schema to validate the input arguments of a fetch call */
|
|
6
|
-
S extends GenericSchema | GenericSchemaAsync | null = null,
|
|
7
|
-
/** The return value expected from the fetch call */
|
|
8
|
-
R = void> = S extends null ? () => Promise<R> : (config: InferOutput<NonNullable<S>>) => Promise<R>;
|
|
9
|
-
export declare const get: <T>(url: string, params?: RequestParams) => Promise<T>;
|
|
10
|
-
export declare const post: <T>(url: string, body?: RequestBody) => Promise<T>;
|
|
11
|
-
export declare const put: <T>(url: string, body?: RequestBody) => Promise<T>;
|
|
12
|
-
export declare const patch: <T>(url: string, body?: RequestBody) => Promise<T>;
|
|
13
|
-
export declare const remove: <T = void>(url: string) => Promise<T>;
|
package/dist/requests/methods.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { buildURL } from "./buildURL.js";
|
|
2
|
-
import { request } from "./request.js";
|
|
3
|
-
export const get = async (url, params) => request(buildURL(url, params));
|
|
4
|
-
export const post = async (url, body) => request(buildURL(url), `POST`, body);
|
|
5
|
-
export const put = async (url, body) => request(buildURL(url), `PUT`, body);
|
|
6
|
-
export const patch = async (url, body) => request(buildURL(url), `PATCH`, body);
|
|
7
|
-
export const remove = async (url) => request(buildURL(url), `DELETE`);
|
|
8
|
-
//# sourceMappingURL=methods.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"methods.js","sourceRoot":"","sources":["../../src/requests/methods.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAWvC,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,EAAK,GAAW,EAAE,MAAsB,EAAc,EAAE,CAC9E,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;AAEjC,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EAAK,GAAW,EAAE,IAAkB,EAAc,EAAE,CAC3E,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAEvC,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,EAAK,GAAW,EAAE,IAAkB,EAAc,EAAE,CAC1E,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAEtC,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAK,GAAW,EAAE,IAAkB,EAAc,EAAE,CAC5E,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EAAY,GAAW,EAAc,EAAE,CAChE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC"}
|
package/dist/requests/request.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { discord } from "./DiscordSession.js";
|
|
2
|
-
import { toCamelKeys } from "../utils/toCamelKeys.js";
|
|
3
|
-
import { toSnakeKeys } from "../utils/toSnakeKeys.js";
|
|
4
|
-
export const request = async (resource, method = `GET`, body) => {
|
|
5
|
-
const token = discord.getSession();
|
|
6
|
-
if (!token) {
|
|
7
|
-
throw new Error(`Auth Token must be set before requests can be made.`);
|
|
8
|
-
}
|
|
9
|
-
const json = () => {
|
|
10
|
-
try {
|
|
11
|
-
return body ? JSON.stringify(toSnakeKeys(body)) : body; //?
|
|
12
|
-
}
|
|
13
|
-
catch (err) {
|
|
14
|
-
console.error(`Received malformed request body:\n\n`, { body });
|
|
15
|
-
throw new Error(`Failed to stringify request body!`, err);
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
const res = await fetch(resource.toString(), {
|
|
19
|
-
method,
|
|
20
|
-
body: json(),
|
|
21
|
-
headers: {
|
|
22
|
-
Authorization: token
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
if (!res.ok) {
|
|
26
|
-
throw new Error(`Request to resource '${resource.toString()}' failed:\n\n${res.statusText}`);
|
|
27
|
-
}
|
|
28
|
-
// Return `void` on `204 No Content` responses
|
|
29
|
-
if (res.status === 204) {
|
|
30
|
-
// @ts-expect-error
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
return toCamelKeys(await res.json());
|
|
34
|
-
};
|
|
35
|
-
//# sourceMappingURL=request.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/requests/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAItD,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,QAAa,EACb,MAAM,GAAG,KAAK,EACd,IAAkB,EACN,EAAE;IACd,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAEnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,IAAI,GAAG,GAA8B,EAAE;QAC3C,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE;QAC3C,MAAM;QACN,IAAI,EAAE,IAAI,EAAE;QACZ,OAAO,EAAE;YACP,aAAa,EAAE,KAAK;SACrB;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,wBAAwB,QAAQ,CAAC,QAAQ,EAAE,gBACzC,GAAG,CAAC,UACN,EAAE,CACH,CAAC;IACJ,CAAC;IAED,8CAA8C;IAC9C,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvB,mBAAmB;QACnB,OAAO;IACT,CAAC;IAED,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AACvC,CAAC,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type * as v from "valibot";
|
|
2
|
-
import type { AnyProcedureBuilder, MutationProcedure, ProcedureType, QueryProcedure, SubscriptionProcedure } from "@trpc/server/unstable-core-do-not-import";
|
|
3
|
-
import type { Fetcher } from "./methods.js";
|
|
4
|
-
type Result<T = void> = T extends v.GenericSchema | v.GenericSchemaAsync ? v.InferOutput<T> : T;
|
|
5
|
-
type Schema = v.GenericSchema | v.GenericSchemaAsync;
|
|
6
|
-
type ProvedureDef<I extends Schema | null = null, O extends Schema | null = null> = I extends Schema ? O extends Schema ? {
|
|
7
|
-
input: v.InferInput<I>;
|
|
8
|
-
output: v.InferOutput<O>;
|
|
9
|
-
meta: unknown;
|
|
10
|
-
} : {
|
|
11
|
-
input: v.InferInput<I>;
|
|
12
|
-
output: undefined;
|
|
13
|
-
meta: unknown;
|
|
14
|
-
} : O extends Schema ? {
|
|
15
|
-
input: undefined;
|
|
16
|
-
output: v.InferOutput<O>;
|
|
17
|
-
meta: unknown;
|
|
18
|
-
} : {
|
|
19
|
-
input: undefined;
|
|
20
|
-
output: undefined;
|
|
21
|
-
meta: unknown;
|
|
22
|
-
};
|
|
23
|
-
type BaseProcedure<T extends ProcedureType, I extends Schema | null = null, O extends Schema | null = null> = T extends `query` ? QueryProcedure<ProvedureDef<I, O>> : T extends `mutation` ? MutationProcedure<ProvedureDef<I, O>> : SubscriptionProcedure<ProvedureDef<I, O>>;
|
|
24
|
-
/**
|
|
25
|
-
* Given a {@link Fetcher | Fetcher} function and it's associated input and
|
|
26
|
-
* output Zod schemas, this produces a function which accepts a tRPC procedure
|
|
27
|
-
* builder of the given procedure type. This can then be used in a tRPC router
|
|
28
|
-
* to scaffold an API route to forward a request to Discord's API.
|
|
29
|
-
*/
|
|
30
|
-
export declare const toProcedure: <T extends ProcedureType, I extends Schema | null = null, O extends Schema | null = null>(type: T, fn: Fetcher<I extends Schema ? I : null, Result<O>>, input?: I, output?: O) => (procedure: AnyProcedureBuilder, errorHandler?: (error: unknown) => void) => BaseProcedure<T, I, O>;
|
|
31
|
-
export {};
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { isNonNullable } from "../utils/isNonNullable.js";
|
|
2
|
-
/**
|
|
3
|
-
* Given a {@link Fetcher | Fetcher} function and it's associated input and
|
|
4
|
-
* output Zod schemas, this produces a function which accepts a tRPC procedure
|
|
5
|
-
* builder of the given procedure type. This can then be used in a tRPC router
|
|
6
|
-
* to scaffold an API route to forward a request to Discord's API.
|
|
7
|
-
*/
|
|
8
|
-
export const toProcedure = (type, fn, input, output) => (procedure, errorHandler) => {
|
|
9
|
-
try {
|
|
10
|
-
if (isNonNullable(input) && isNonNullable(output)) {
|
|
11
|
-
// @ts-expect-error
|
|
12
|
-
return procedure
|
|
13
|
-
.input(input)
|
|
14
|
-
.output(output)[type](async (opts) => fn(opts.input));
|
|
15
|
-
}
|
|
16
|
-
if (isNonNullable(input) && !isNonNullable(output)) {
|
|
17
|
-
// @ts-expect-error
|
|
18
|
-
return procedure.input(input)[type](async (opts) => fn(opts.input));
|
|
19
|
-
}
|
|
20
|
-
if (!isNonNullable(input) && isNonNullable(output)) {
|
|
21
|
-
// @ts-expect-error
|
|
22
|
-
return procedure.output(output)[type](async () => fn());
|
|
23
|
-
}
|
|
24
|
-
// @ts-expect-error
|
|
25
|
-
return procedure[type](async () => fn());
|
|
26
|
-
}
|
|
27
|
-
catch (error) {
|
|
28
|
-
if (typeof errorHandler === `function`) {
|
|
29
|
-
errorHandler(error);
|
|
30
|
-
}
|
|
31
|
-
throw new Error(`Unhandled Procedure Error!`, {
|
|
32
|
-
cause: error
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=toProcedure.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toProcedure.js","sourceRoot":"","sources":["../../src/requests/toProcedure.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAsC1D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GACtB,CAKE,IAAO,EACP,EAAmD,EACnD,KAAS,EACT,MAAU,EACV,EAAE,CACJ,CACE,SAA8B,EAC9B,YAAuC,EACf,EAAE;IAC1B,IAAI,CAAC;QACH,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,mBAAmB;YACnB,OAAO,SAAS;iBACb,KAAK,CAAC,KAAK,CAAC;iBACZ,MAAM,CAAC,MAAM,CAAC,CACd,IAAI,CAAC,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,mBAAmB;YACnB,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,mBAAmB;YACnB,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,mBAAmB;QACnB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE,CAAC;YACvC,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,EAAE;YAC5C,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { GenericSchema } from "valibot";
|
|
2
|
-
import type { Fetcher } from "./methods.js";
|
|
3
|
-
interface Register {
|
|
4
|
-
}
|
|
5
|
-
type QueryKey = readonly unknown[];
|
|
6
|
-
type QueryMeta = Register extends {
|
|
7
|
-
queryMeta: infer TQueryMeta;
|
|
8
|
-
} ? TQueryMeta extends Record<string, unknown> ? TQueryMeta : Record<string, unknown> : Record<string, unknown>;
|
|
9
|
-
type FetchDirection = `backward` | `forward`;
|
|
10
|
-
type QueryFunctionContext<TQueryKey extends QueryKey = QueryKey, TPageParam = never> = [TPageParam] extends [never] ? {
|
|
11
|
-
queryKey: TQueryKey;
|
|
12
|
-
signal: AbortSignal;
|
|
13
|
-
meta: QueryMeta | undefined;
|
|
14
|
-
} : {
|
|
15
|
-
queryKey: TQueryKey;
|
|
16
|
-
signal: AbortSignal;
|
|
17
|
-
pageParam: TPageParam;
|
|
18
|
-
direction: FetchDirection;
|
|
19
|
-
meta: QueryMeta | undefined;
|
|
20
|
-
};
|
|
21
|
-
export type QueryFunction<T = unknown, TQueryKey extends QueryKey = QueryKey, TPageParam = never> = (context: QueryFunctionContext<TQueryKey, TPageParam>) => Promise<T> | T;
|
|
22
|
-
/**
|
|
23
|
-
* Given a {@link Fetcher | Fetcher} function, transforms it into a curried function
|
|
24
|
-
* which can then be used with React-Query as a query function without
|
|
25
|
-
* the need for any additional boilerplate.
|
|
26
|
-
*/
|
|
27
|
-
export declare const toQuery: <S extends GenericSchema | null, R, T extends Fetcher<S, R>>(fn: T) => Parameters<T>[`length`] extends 0 ? () => QueryFunction<Awaited<ReturnType<T>>> : (config: Parameters<T>[0]) => QueryFunction<Awaited<ReturnType<T>>>;
|
|
28
|
-
export {};
|
package/dist/requests/toQuery.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Given a {@link Fetcher | Fetcher} function, transforms it into a curried function
|
|
3
|
-
* which can then be used with React-Query as a query function without
|
|
4
|
-
* the need for any additional boilerplate.
|
|
5
|
-
*/
|
|
6
|
-
export const toQuery = (fn) =>
|
|
7
|
-
// @ts-expect-error
|
|
8
|
-
(...config) => async () => fn(...config);
|
|
9
|
-
//# sourceMappingURL=toQuery.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toQuery.js","sourceRoot":"","sources":["../../src/requests/toQuery.ts"],"names":[],"mappings":"AAoCA;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAClB,CACE,EAAK,EAGiE,EAAE;AAC1E,mBAAmB;AACnB,CAAC,GAAG,MAAiB,EAAE,EAAE,CACzB,KAAK,IAAI,EAAE,CACT,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { type GenericSchema, type GenericSchemaAsync, type InferOutput } from "valibot";
|
|
2
|
-
import type { Fetcher } from "./methods.js";
|
|
3
|
-
type InferFetcherSchema<F> = F extends Fetcher<infer S, unknown> ? S : never;
|
|
4
|
-
type InferFetcherReturn<F> = F extends Fetcher<GenericSchema | GenericSchemaAsync | null, infer R> ? R : never;
|
|
5
|
-
/**
|
|
6
|
-
* Given a {@link Fetcher | Fetcher} function and it's associated input
|
|
7
|
-
* and output Zod schemas, this returns a new validated {@link Fetcher | Fetcher} function which will validate it's input and result at runtime.
|
|
8
|
-
* This is useful in contexts where you want strong guarantees on runtime
|
|
9
|
-
* type-safety when dealing with raw user input in a framework agnostic
|
|
10
|
-
* environment.
|
|
11
|
-
*/
|
|
12
|
-
export declare const toValidated: <F extends Fetcher<GenericSchema | GenericSchemaAsync, InferOutput<GenericSchema | GenericSchemaAsync>> | Fetcher<GenericSchema | GenericSchemaAsync> | Fetcher<null, null> | Fetcher<null, InferOutput<GenericSchema | GenericSchemaAsync>>>(fn: F, input?: InferFetcherSchema<F> | null, output?: GenericSchema<unknown, InferFetcherReturn<F>> | GenericSchemaAsync<unknown, InferFetcherReturn<F>>) => F;
|
|
13
|
-
export {};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { isOfKind, safeParseAsync, summarize } from "valibot";
|
|
2
|
-
/**
|
|
3
|
-
* Given a {@link Fetcher | Fetcher} function and it's associated input
|
|
4
|
-
* and output Zod schemas, this returns a new validated {@link Fetcher | Fetcher} function which will validate it's input and result at runtime.
|
|
5
|
-
* This is useful in contexts where you want strong guarantees on runtime
|
|
6
|
-
* type-safety when dealing with raw user input in a framework agnostic
|
|
7
|
-
* environment.
|
|
8
|
-
*/
|
|
9
|
-
export const toValidated = (fn, input, output) => new Proxy(fn, {
|
|
10
|
-
async apply(target, _, [config]) {
|
|
11
|
-
// Validate the fetcher args before fetching
|
|
12
|
-
if (input && isOfKind(`schema`, input)) {
|
|
13
|
-
const { issues } = await safeParseAsync(input, config);
|
|
14
|
-
if (issues) {
|
|
15
|
-
throw new Error(`Failed to parse input schema: ${input.reference.name}\n\n${summarize(issues)}`);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
const result = await target(config);
|
|
19
|
-
// Validate the result of the fetch call before returning
|
|
20
|
-
if (output && isOfKind(`schema`, output)) {
|
|
21
|
-
const { issues } = await safeParseAsync(output, result);
|
|
22
|
-
if (issues) {
|
|
23
|
-
throw new Error(`Failed to parse input schema: ${output.reference.name}\n\n${summarize(issues)}`);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return result;
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
//# sourceMappingURL=toValidated.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toValidated.js","sourceRoot":"","sources":["../../src/requests/toValidated.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,QAAQ,EACR,cAAc,EACd,SAAS,EACV,MAAM,SAAS,CAAC;AASjB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAUzB,EAAK,EACL,KAAoC,EACpC,MAEsD,EACnD,EAAE,CACL,IAAI,KAAK,CAAI,EAAE,EAAE;IACf,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC;QAC7B,4CAA4C;QAC5C,IAAI,KAAK,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACvD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CACb,iCAAiC,KAAK,CAAC,SAAS,CAAC,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,EAAE,CAChF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAEpC,yDAAyD;QACzD,IAAI,MAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YACzC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CACb,iCAAiC,MAAM,CAAC,SAAS,CAAC,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,EAAE,CACjF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,MAAuB,CAAC;IACjC,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const isBetween: (val: number, min: number, max: number) => boolean;
|
package/dist/utils/isBetween.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isBetween.js","sourceRoot":"","sources":["../../src/utils/isBetween.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,GAAW,EAAW,EAAE,CAC1E,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Used to test whether a `Maybe` typed value is `null` or `undefined`.
|
|
3
|
-
*
|
|
4
|
-
* When called, the given value's type is narrowed to `NonNullable<T>`.
|
|
5
|
-
*
|
|
6
|
-
* ### Example Usage:
|
|
7
|
-
*
|
|
8
|
-
* ```ts
|
|
9
|
-
* const fn = (str: Maybe<string>) => {
|
|
10
|
-
* if (!isNonNullable(str)) {
|
|
11
|
-
* // typeof str = null | undefined
|
|
12
|
-
* // ...
|
|
13
|
-
* }
|
|
14
|
-
* // typeof str = string
|
|
15
|
-
* // ...
|
|
16
|
-
* }
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
export const isNonNullable = (val) => typeof val !== `undefined` && val !== null;
|
|
20
|
-
//# sourceMappingURL=isNonNullable.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isNonNullable.js","sourceRoot":"","sources":["../../src/utils/isNonNullable.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,GAAO,EACgB,EAAE,CAAC,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const isNumericString: (val: unknown) => val is string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isNumericString.js","sourceRoot":"","sources":["../../src/utils/isNumericString.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAY,EAAiB,EAAE,CAC7D,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC"}
|
package/dist/utils/isObject.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const isObject: (val: unknown) => val is object;
|
package/dist/utils/isObject.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isObject.js","sourceRoot":"","sources":["../../src/utils/isObject.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAiB,EAAE,CACtD,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const toCamelCase: (str: string) => string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toCamelCase.js","sourceRoot":"","sources":["../../src/utils/toCamelCase.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE,CACjD,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { isObject } from "./isObject.js";
|
|
2
|
-
import { toCamelCase } from "./toCamelCase.js";
|
|
3
|
-
export const toCamelKeys = (o) => {
|
|
4
|
-
if (Array.isArray(o)) {
|
|
5
|
-
return o.map(toCamelKeys);
|
|
6
|
-
}
|
|
7
|
-
else if (isObject(o)) {
|
|
8
|
-
return Object.entries(o).reduce((acc, [key, value]) => {
|
|
9
|
-
// @ts-expect-error
|
|
10
|
-
acc[toCamelCase(key)] = toCamelKeys(value);
|
|
11
|
-
return acc;
|
|
12
|
-
}, {});
|
|
13
|
-
}
|
|
14
|
-
return o;
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=toCamelKeys.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toCamelKeys.js","sourceRoot":"","sources":["../../src/utils/toCamelKeys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,CAAI,EACyB,EAAE;IAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,CAAgC,CAAC;IAC3D,CAAC;SAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACpD,mBAAmB;YACnB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YAC3C,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAgC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const toSnakeCase: (str: string) => string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toSnakeCase.js","sourceRoot":"","sources":["../../src/utils/toSnakeCase.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE,CACjD,GAAG;KACA,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;KACzD,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { isObject } from "./isObject.js";
|
|
2
|
-
import { toSnakeCase } from "./toSnakeCase.js";
|
|
3
|
-
export const toSnakeKeys = (o) => {
|
|
4
|
-
if (Array.isArray(o)) {
|
|
5
|
-
return o.map(toSnakeKeys);
|
|
6
|
-
}
|
|
7
|
-
else if (isObject(o)) {
|
|
8
|
-
return Object.entries(o).reduce((acc, [key, value]) => {
|
|
9
|
-
// @ts-expect-error
|
|
10
|
-
acc[toSnakeCase(key)] = toSnakeKeys(value);
|
|
11
|
-
return acc;
|
|
12
|
-
}, {});
|
|
13
|
-
}
|
|
14
|
-
return o;
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=toSnakeKeys.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toSnakeKeys.js","sourceRoot":"","sources":["../../src/utils/toSnakeKeys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,CAAI,EACyB,EAAE;IAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,CAAgC,CAAC;IAC3D,CAAC;SAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACpD,mBAAmB;YACnB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YAC3C,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAgC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"asDigits.js","sourceRoot":"","sources":["../../src/validations/asDigits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAG7B;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,MAAmC,EACV,EAAE,CAC3B,CAAC,CAAC,IAAI,CACJ,MAAM,EACN,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EACpC,CAAC,CAAC,MAAM,EAAE,CACgB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"asInteger.js","sourceRoot":"","sources":["../../src/validations/asInteger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAG7B;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,MAAmC,EACV,EAAE,CAC3B,CAAC,CAAC,IAAI,CACJ,MAAM,EACN,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,EAClD,CAAC,CAAC,OAAO,EAAE,CACe,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { type SchemaWithPipe, type TitleAction, type CustomSchema } from "valibot";
|
|
2
|
-
export interface Flags {
|
|
3
|
-
[key: string]: number | bigint | string;
|
|
4
|
-
}
|
|
5
|
-
/**
|
|
6
|
-
* Given an enum of bitwise flags, creates a new schema that
|
|
7
|
-
* can validate a [bitfield](https://en.wikipedia.org/wiki/Bit_field)
|
|
8
|
-
* numeric value (a data structure for efficiently serializing a
|
|
9
|
-
* group of boolean values).
|
|
10
|
-
*/
|
|
11
|
-
export declare const bitfield: <TName extends string>(
|
|
12
|
-
/** A name to differentiate this custom schema */
|
|
13
|
-
name: TName,
|
|
14
|
-
/** An enum of bitwise flags */
|
|
15
|
-
flags: Flags,
|
|
16
|
-
/** An optional error message to display in the event an invalid value is parsed */
|
|
17
|
-
message?: string) => SchemaWithPipe<readonly [CustomSchema<string | number | bigint, string>, TitleAction<string | number | bigint, TName>]>;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { custom, pipe, title } from "valibot";
|
|
2
|
-
import { isNonNullable } from "../utils/isNonNullable.js";
|
|
3
|
-
import { isNumericString } from "../utils/isNumericString.js";
|
|
4
|
-
/**
|
|
5
|
-
* Given an enum of bitwise flags, creates a new schema that
|
|
6
|
-
* can validate a [bitfield](https://en.wikipedia.org/wiki/Bit_field)
|
|
7
|
-
* numeric value (a data structure for efficiently serializing a
|
|
8
|
-
* group of boolean values).
|
|
9
|
-
*/
|
|
10
|
-
export const bitfield = (
|
|
11
|
-
/** A name to differentiate this custom schema */
|
|
12
|
-
name,
|
|
13
|
-
/** An enum of bitwise flags */
|
|
14
|
-
flags,
|
|
15
|
-
/** An optional error message to display in the event an invalid value is parsed */
|
|
16
|
-
message = `Invalid Bitfield`) => {
|
|
17
|
-
// because enums are bidirectionally indexed, pick only the numerical values
|
|
18
|
-
const flagValues = Object.values(flags).filter(
|
|
19
|
-
// flag enums have numerical values, so remove all the key name strings
|
|
20
|
-
(flag) => !isNaN(Number(flag)));
|
|
21
|
-
if (!flagValues.every((flag) => typeof flag === typeof flagValues[0])) {
|
|
22
|
-
throw new Error(`Provided Flags enum must contain values of the same type`);
|
|
23
|
-
}
|
|
24
|
-
// combine the flags to create a validation mask
|
|
25
|
-
const mask = flagValues.reduce((total, flag) => total | BigInt(flag), 0n);
|
|
26
|
-
return pipe(custom((val) =>
|
|
27
|
-
// short-circuit on null + undefined
|
|
28
|
-
isNonNullable(val) &&
|
|
29
|
-
// only work on supported types
|
|
30
|
-
(typeof val === `number` ||
|
|
31
|
-
typeof val === `bigint` ||
|
|
32
|
-
isNumericString(val))
|
|
33
|
-
? // validate the value against the given flags
|
|
34
|
-
(BigInt(val) & mask) === BigInt(val)
|
|
35
|
-
: false, message), title(name));
|
|
36
|
-
};
|
|
37
|
-
//# sourceMappingURL=bitfield.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bitfield.js","sourceRoot":"","sources":["../../src/validations/bitfield.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,IAAI,EACJ,KAAK,EAIN,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAM9D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;AACtB,iDAAiD;AACjD,IAAW;AACX,+BAA+B;AAC/B,KAAY;AACZ,mFAAmF;AACnF,UAAkB,kBAAkB,EAMpC,EAAE;IACF,4EAA4E;IAC5E,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM;IAC5C,uEAAuE;IACvE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAC/B,CAAC;IACF,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,gDAAgD;IAChD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAC5B,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,EACrC,EAAE,CACH,CAAC;IACF,OAAO,IAAI,CACT,MAAM,CACJ,CAAC,GAAG,EAAE,EAAE;IACN,oCAAoC;IACpC,aAAa,CAAC,GAAG,CAAC;QAClB,+BAA+B;QAC/B,CAAC,OAAO,GAAG,KAAK,QAAQ;YACtB,OAAO,GAAG,KAAK,QAAQ;YACvB,eAAe,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,6CAA6C;YAC7C,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC;QACtC,CAAC,CAAC,KAAK,EACX,OAAO,CACR,EACD,KAAK,CAAC,IAAI,CAAC,CACZ,CAAC;AACJ,CAAC,CAAC"}
|