@rpcbase/api 0.149.0 → 0.151.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.
@@ -1 +1 @@
1
- {"version":3,"file":"initApi.d.ts","sourceRoot":"","sources":["../src/initApi.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,WAAW,EAAwD,MAAM,SAAS,CAAA;AAChG,OAAa,EAAE,KAAK,WAAW,EAAE,MAAM,MAAM,CAAA;AAE7C,OAAO,EAQL,KAAK,yBAAyB,EAC/B,MAAM,UAAU,CAAA;AAoBjB,KAAK,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;AAoBzC,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,WAAW,CAAA;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACnC,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,MAAM,CAAC,EAAE,yBAAyB,CAAA;CACnC,CAAA;AAGD,eAAO,MAAM,OAAO,GAAU,6CAK3B,cAAc,kBA6JhB,CAAA"}
1
+ {"version":3,"file":"initApi.d.ts","sourceRoot":"","sources":["../src/initApi.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,WAAW,EAAwD,MAAM,SAAS,CAAA;AAChG,OAAa,EAAE,KAAK,WAAW,EAAE,MAAM,MAAM,CAAA;AAE7C,OAAO,EAQL,KAAK,yBAAyB,EAC/B,MAAM,UAAU,CAAA;AA6BjB,KAAK,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;AAoBzC,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,WAAW,CAAA;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACnC,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,MAAM,CAAC,EAAE,yBAAyB,CAAA;CACnC,CAAA;AAGD,eAAO,MAAM,OAAO,GAAU,6CAK3B,cAAc,kBA2KhB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { ApiRequestSchema } from './types';
2
+ export declare const parseApiRequest: <Output>(schema: ApiRequestSchema<Output>, input: unknown) => Output;
3
+ //# sourceMappingURL=requestValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestValidation.d.ts","sourceRoot":"","sources":["../src/requestValidation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAoB/C,eAAO,MAAM,eAAe,GAAI,MAAM,EAAE,QAAQ,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,OAAO,KAAG,MAS1F,CAAA"}
package/dist/types.d.ts CHANGED
@@ -17,12 +17,32 @@ export type Ctx<TUser = RBSessionUser> = {
17
17
  export type Payload = unknown;
18
18
  export type Result = unknown;
19
19
  export type ApiHandler<P = Payload, R = Result, U = RBSessionUser> = (payload: P, ctx: Ctx<U>) => Promise<R>;
20
+ export type ApiRequestValidationIssue = {
21
+ readonly message: string;
22
+ readonly path: readonly PropertyKey[];
23
+ };
24
+ export type ApiRequestSchema<Output = unknown> = {
25
+ safeParse: (input: unknown) => {
26
+ success: true;
27
+ data: Output;
28
+ } | {
29
+ success: false;
30
+ error: {
31
+ issues: readonly ApiRequestValidationIssue[];
32
+ };
33
+ };
34
+ };
35
+ export type ApiRequestSchemaOutput<Schema extends ApiRequestSchema> = Schema extends ApiRequestSchema<infer Output> ? Output : never;
20
36
  export type Middleware<U = RBSessionUser> = (req: RpcRequest<U>, res: Response, next: NextFunction) => void;
37
+ export type ApiMethod<U = RBSessionUser> = {
38
+ <Schema extends ApiRequestSchema, R = Result>(path: string, requestSchema: Schema, handler: ApiHandler<ApiRequestSchemaOutput<Schema>, R, U>): void;
39
+ <P = Payload, R = Result>(path: string, handler: ApiHandler<P, R, U>): void;
40
+ };
21
41
  export type Api<U = RBSessionUser> = {
22
42
  use: (path: string, middleware: Middleware<U>) => void;
23
- get: <P = Payload, R = Result>(path: string, handler: ApiHandler<P, R, U>) => void;
24
- post: <P = Payload, R = Result>(path: string, handler: ApiHandler<P, R, U>) => void;
25
- put: <P = Payload, R = Result>(path: string, handler: ApiHandler<P, R, U>) => void;
26
- delete: <P = Payload, R = Result>(path: string, handler: ApiHandler<P, R, U>) => void;
43
+ get: ApiMethod<U>;
44
+ post: ApiMethod<U>;
45
+ put: ApiMethod<U>;
46
+ delete: ApiMethod<U>;
27
47
  };
28
48
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG3D,eAAO,MAAM,SAAS,cAAc,CAAA;AAEpC,MAAM,WAAW,aAAa;CAAG;AAEjC,MAAM,MAAM,UAAU,CAAC,KAAK,GAAG,aAAa,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG;IAC/E,IAAI,CAAC,EAAE,KAAK,CAAC;CACd,CAAC,CAAC,GAAG,IAAI,CAAA;AAEV,MAAM,MAAM,UAAU,CAAC,KAAK,GAAG,aAAa,IAAI,OAAO,GAAG;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;CAC5B,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,KAAK,GAAG,aAAa,IAAI;IACvC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,GAAG,EAAE,QAAQ,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,OAAO,GAAG,OAAO,CAAA;AAC7B,MAAM,MAAM,MAAM,GAAG,OAAO,CAAA;AAE5B,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,aAAa,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;AAE5G,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,aAAa,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;AAG5G,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,aAAa,IAAI;IACnC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACvD,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;IACnF,IAAI,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;IACpF,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;IACnF,MAAM,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;CACvF,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rpcbase/api",
3
- "version": "0.149.0",
3
+ "version": "0.151.0",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"