@based/functions 3.2.4 → 3.3.1

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.d.ts CHANGED
@@ -3,7 +3,7 @@ import { HttpRequest } from './uws.js';
3
3
  import { Context, WebSocketSession, HttpSession } from './context.js';
4
4
  export type AuthState = {
5
5
  token?: string;
6
- userId?: string;
6
+ userId?: string | number;
7
7
  refreshToken?: string;
8
8
  error?: string;
9
9
  persistent?: boolean;
package/dist/client.d.ts CHANGED
@@ -3,18 +3,18 @@ import { BasedChannel } from './channel.js';
3
3
  import { Context } from './context.js';
4
4
  import { BasedQuery } from './query.js';
5
5
  import { StreamFunctionOpts } from './stream.js';
6
- import { Geo } from './geo.js';
7
6
  import type { DbClient } from '@based/db';
8
7
  export declare abstract class BasedFunctionClient {
9
8
  server: any;
10
9
  db: DbClient;
11
10
  dbs: Record<string, DbClient>;
12
11
  abstract call(name: string, payload?: any, ctx?: Context): Promise<any>;
13
- abstract query(name: string, payload?: any): BasedQuery;
12
+ abstract query(name: string, payload?: any, ctx?: {
13
+ [key: string]: any;
14
+ } | Context): BasedQuery;
14
15
  abstract channel(name: string, payload?: any): BasedChannel;
15
16
  abstract stream(name: string, payload: StreamFunctionOpts, ctx?: Context): Promise<any>;
16
17
  abstract sendAuthState(ctx: Context, authState: AuthState): void;
17
- abstract geo(ctx: Context): Promise<Geo>;
18
18
  abstract renewAuthState(ctx: Context, authState?: AuthState): Promise<AuthState>;
19
19
  }
20
20
  export type QueryMap = {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAQA,MAAM,OAAgB,mBAAmB;IACvC,MAAM,CAAK;IAEX,EAAE,CAAU;IACZ,GAAG,CAA0B;CAsB9B"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAQA,MAAM,OAAgB,mBAAmB;IACvC,MAAM,CAAK;IAEX,EAAE,CAAU;IACZ,GAAG,CAA0B;CA0B9B"}
@@ -3,18 +3,18 @@ import { BasedChannel } from './channel.js';
3
3
  import { Context } from './context.js';
4
4
  import { BasedQuery } from './query.js';
5
5
  import { StreamFunctionOpts } from './stream.js';
6
- import { Geo } from './geo.js';
7
6
  import type { DbClient } from '@based/db';
8
7
  export declare abstract class BasedFunctionClient {
9
8
  server: any;
10
9
  db: DbClient;
11
10
  dbs: Record<string, DbClient>;
12
11
  abstract call(name: string, payload?: any, ctx?: Context): Promise<any>;
13
- abstract query(name: string, payload?: any): BasedQuery;
12
+ abstract query(name: string, payload?: any, ctx?: {
13
+ [key: string]: any;
14
+ } | Context): BasedQuery;
14
15
  abstract channel(name: string, payload?: any): BasedChannel;
15
16
  abstract stream(name: string, payload: StreamFunctionOpts, ctx?: Context): Promise<any>;
16
17
  abstract sendAuthState(ctx: Context, authState: AuthState): void;
17
- abstract geo(ctx: Context): Promise<Geo>;
18
18
  abstract renewAuthState(ctx: Context, authState?: AuthState): Promise<AuthState>;
19
19
  }
20
20
  export type QueryMap = {
package/dist/context.d.ts CHANGED
@@ -2,7 +2,7 @@ import { parseQuery } from '@based/utils';
2
2
  import { AuthState } from './auth.js';
3
3
  import { WebSocket, HttpRequest, HttpResponse } from './uws.js';
4
4
  import { BasedFunctionClient } from './client.js';
5
- import { StreamPayload } from './functions.js';
5
+ import { BasedRoute, StreamPayload } from './functions.js';
6
6
  export type WebSocketSession = {
7
7
  state?: any;
8
8
  query: string;
@@ -17,20 +17,21 @@ export type WebSocketSession = {
17
17
  unauthorizedObs?: Set<{
18
18
  id: number;
19
19
  checksum: number;
20
- name: string;
20
+ route: BasedRoute<'query'>;
21
21
  payload: any;
22
22
  }>;
23
+ unauthorizedChannels?: Set<{
24
+ id: number;
25
+ route: BasedRoute<'channel'>;
26
+ payload: any;
27
+ }>;
28
+ attachedCtxObs?: Set<number>;
23
29
  streams?: {
24
30
  [reqId: string]: StreamPayload;
25
31
  };
26
32
  headers: {
27
33
  [key: string]: string;
28
34
  };
29
- unauthorizedChannels?: Set<{
30
- id: number;
31
- name: string;
32
- payload: any;
33
- }>;
34
35
  v?: 2;
35
36
  c?: Context<WebSocketSession>;
36
37
  ws?: BasedWebSocket;
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AA+GA,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,GAAqB,EACQ,EAAE;IAC/B,IAAI,KAAK,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,GAAqB,EACa,EAAE;IACpC,IAAI,GAAG,CAAC,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,GAAqB,EAC2B,EAAE;IAClD,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAA4B,EACJ,EAAE;IAC1B,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,OAA4B,EACC,EAAE;IAC/B,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAgHA,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,GAAqB,EACQ,EAAE;IAC/B,IAAI,KAAK,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,GAAqB,EACa,EAAE;IACpC,IAAI,GAAG,CAAC,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,GAAqB,EAC2B,EAAE;IAClD,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAA4B,EACJ,EAAE;IAC1B,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,OAA4B,EACC,EAAE;IAC/B,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
@@ -39,7 +39,7 @@ export type StreamPayload<P = any> = {
39
39
  seqId?: number;
40
40
  };
41
41
  export type BasedStreamFunction<P = any, K = any> = BasedFunction<StreamPayload<P>, K>;
42
- export type BasedQueryFunction<P = any, K = any> = ((based: BasedFunctionClient, payload: P, update: ObservableUpdateFunction<K>, error: ObserveErrorListener) => Promise<() => void>) | ((based: BasedFunctionClient, payload: P, update: ObservableUpdateFunction<K>, error: ObserveErrorListener) => () => void);
42
+ export type BasedQueryFunction<P = any, K = any> = ((based: BasedFunctionClient, payload: P, update: ObservableUpdateFunction<K>, error: ObserveErrorListener, ctx?: any) => Promise<() => void>) | ((based: BasedFunctionClient, payload: P, update: ObservableUpdateFunction<K>, error: ObserveErrorListener, ctx?: any) => () => void);
43
43
  export type BasedChannelFunction<P = any, K = any> = (based: BasedFunctionClient, payload: P, id: number, update: ChannelMessageFunction<K>, error: (err?: any) => void) => () => void;
44
44
  export type BasedChannelPublishFunction<P = any, M = any> = (based: BasedFunctionClient, payload: P, message: M, id: number, ctx: Context) => void;
45
45
  export type ChannelMessageFunction<M = any> = (message: M) => void;
@@ -218,6 +218,8 @@ export type BasedQueryFunctionConfig = {
218
218
  closeAfterIdleTime?: number;
219
219
  /** Throttle amount of outgoing messages, in milliseconds */
220
220
  throttle?: number;
221
+ /** Bind this query function to specific paths in clients ctx */
222
+ ctx?: string[];
221
223
  };
222
224
  export type BasedStreamFunctionConfig = {
223
225
  /** Function type `app, http, channel, function, query, stream, authorize, job` */
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AA8ZA,MAAM,UAAU,YAAY,CAC1B,IAAO,EACP,KAAU;IAEV,MAAM,YAAY,GAChB,KAAK;QACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,IAAI,KAAK,IAAI;QACnB,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAA;IAChC,OAAO,YAAY,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAU;IACxC,OAAO,CACL,KAAK;QACL,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;YACvB,KAAK,CAAC,IAAI,KAAK,OAAO;YACtB,KAAK,CAAC,IAAI,KAAK,UAAU;YACzB,KAAK,CAAC,IAAI,KAAK,MAAM;YACrB,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;QAC1B,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAC/B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAAO,EACP,MAAW;IAEX,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAAW;IAEX,OAAO,eAAe,CAAC,MAAM,CAAC,CAAA;AAChC,CAAC"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AAkaA,MAAM,UAAU,YAAY,CAC1B,IAAO,EACP,KAAU;IAEV,MAAM,YAAY,GAChB,KAAK;QACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,IAAI,KAAK,IAAI;QACnB,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAA;IAChC,OAAO,YAAY,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAU;IACxC,OAAO,CACL,KAAK;QACL,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;YACvB,KAAK,CAAC,IAAI,KAAK,OAAO;YACtB,KAAK,CAAC,IAAI,KAAK,UAAU;YACzB,KAAK,CAAC,IAAI,KAAK,MAAM;YACrB,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;QAC1B,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAC/B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAAO,EACP,MAAW;IAEX,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAAW;IAEX,OAAO,eAAe,CAAC,MAAM,CAAC,CAAA;AAChC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@based/functions",
3
- "version": "3.2.4",
3
+ "version": "3.3.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -17,10 +17,9 @@
17
17
  },
18
18
  "sideEffects": false,
19
19
  "dependencies": {
20
- "@based/db": "^0.1.0",
21
- "@based/utils": "^1.0.0",
22
- "utility-types": "^3.10.0",
23
- "arktype": "^2.1.20"
20
+ "@based/db": "^0.1.2",
21
+ "@based/utils": "^1.1.0",
22
+ "utility-types": "^3.10.0"
24
23
  },
25
24
  "devDependencies": {
26
25
  "ts-node": "10.9.1"