@based/server 10.1.1 → 10.2.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.
Files changed (119) hide show
  1. package/dist/authorize.d.ts +6 -8
  2. package/dist/authorize.js +56 -41
  3. package/dist/authorize.js.map +1 -1
  4. package/dist/functionApi/callFunction.js +1 -1
  5. package/dist/functionApi/callFunction.js.map +1 -1
  6. package/dist/functionApi/channelSubscribe.js +2 -2
  7. package/dist/functionApi/channelSubscribe.js.map +1 -1
  8. package/dist/functionApi/client/channel.js +2 -2
  9. package/dist/functionApi/client/channel.js.map +1 -1
  10. package/dist/functionApi/client/index.d.ts +3 -2
  11. package/dist/functionApi/client/index.js +5 -5
  12. package/dist/functionApi/client/index.js.map +1 -1
  13. package/dist/functionApi/client/query.d.ts +9 -4
  14. package/dist/functionApi/client/query.js +23 -5
  15. package/dist/functionApi/client/query.js.map +1 -1
  16. package/dist/functionApi/get.d.ts +2 -3
  17. package/dist/functionApi/get.js +20 -20
  18. package/dist/functionApi/get.js.map +1 -1
  19. package/dist/functionApi/observe.d.ts +2 -3
  20. package/dist/functionApi/observe.js +10 -10
  21. package/dist/functionApi/observe.js.map +1 -1
  22. package/dist/functionApi/publish.js +1 -1
  23. package/dist/functionApi/publish.js.map +1 -1
  24. package/dist/functionApi/stream.js +1 -1
  25. package/dist/functionApi/stream.js.map +1 -1
  26. package/dist/incoming/http/basicFunction.d.ts +3 -3
  27. package/dist/incoming/http/basicFunction.js +1 -1
  28. package/dist/incoming/http/basicFunction.js.map +1 -1
  29. package/dist/incoming/http/fakeWs/handleBinary.js +22 -30
  30. package/dist/incoming/http/fakeWs/handleBinary.js.map +1 -1
  31. package/dist/incoming/http/fakeWs/index.js +1 -1
  32. package/dist/incoming/http/fakeWs/index.js.map +1 -1
  33. package/dist/incoming/http/httpFunction.d.ts +3 -3
  34. package/dist/incoming/http/httpFunction.js +1 -1
  35. package/dist/incoming/http/httpFunction.js.map +1 -1
  36. package/dist/incoming/http/index.js +8 -3
  37. package/dist/incoming/http/index.js.map +1 -1
  38. package/dist/incoming/http/publish.d.ts +3 -3
  39. package/dist/incoming/http/publish.js +5 -5
  40. package/dist/incoming/http/publish.js.map +1 -1
  41. package/dist/incoming/http/query.js +41 -8
  42. package/dist/incoming/http/query.js.map +1 -1
  43. package/dist/incoming/http/streamFunction/multiPart/index.js +2 -2
  44. package/dist/incoming/http/streamFunction/multiPart/index.js.map +1 -1
  45. package/dist/incoming/http/streamFunction/stream/index.js +28 -25
  46. package/dist/incoming/http/streamFunction/stream/index.js.map +1 -1
  47. package/dist/incoming/upgrade.js +0 -1
  48. package/dist/incoming/upgrade.js.map +1 -1
  49. package/dist/incoming/ws/auth.js +56 -26
  50. package/dist/incoming/ws/auth.js.map +1 -1
  51. package/dist/incoming/ws/channelPublish.js +10 -10
  52. package/dist/incoming/ws/channelPublish.js.map +1 -1
  53. package/dist/incoming/ws/channelSubscribe.d.ts +2 -2
  54. package/dist/incoming/ws/channelSubscribe.js +23 -16
  55. package/dist/incoming/ws/channelSubscribe.js.map +1 -1
  56. package/dist/incoming/ws/function.js +27 -19
  57. package/dist/incoming/ws/function.js.map +1 -1
  58. package/dist/incoming/ws/get.js +49 -27
  59. package/dist/incoming/ws/get.js.map +1 -1
  60. package/dist/incoming/ws/index.js +17 -23
  61. package/dist/incoming/ws/index.js.map +1 -1
  62. package/dist/incoming/ws/query.d.ts +4 -2
  63. package/dist/incoming/ws/query.js +60 -26
  64. package/dist/incoming/ws/query.js.map +1 -1
  65. package/dist/incoming/ws/stream.js +22 -14
  66. package/dist/incoming/ws/stream.js.map +1 -1
  67. package/dist/installFn.d.ts +3 -3
  68. package/dist/installFn.js +14 -13
  69. package/dist/installFn.js.map +1 -1
  70. package/dist/protocol.d.ts +4 -2
  71. package/dist/protocol.js +28 -41
  72. package/dist/protocol.js.map +1 -1
  73. package/dist/query/attachCtx.d.ts +8 -0
  74. package/dist/query/attachCtx.js +113 -0
  75. package/dist/query/attachCtx.js.map +1 -0
  76. package/dist/query/cleanup.js +4 -4
  77. package/dist/query/cleanup.js.map +1 -1
  78. package/dist/query/create.d.ts +4 -3
  79. package/dist/query/create.js +12 -9
  80. package/dist/query/create.js.map +1 -1
  81. package/dist/query/destroy.d.ts +1 -1
  82. package/dist/query/destroy.js +7 -7
  83. package/dist/query/destroy.js.map +1 -1
  84. package/dist/query/index.d.ts +0 -1
  85. package/dist/query/index.js +0 -1
  86. package/dist/query/index.js.map +1 -1
  87. package/dist/query/send.js +4 -2
  88. package/dist/query/send.js.map +1 -1
  89. package/dist/query/start/error.js +13 -7
  90. package/dist/query/start/error.js.map +1 -1
  91. package/dist/query/start/genChecksum.js +11 -0
  92. package/dist/query/start/genChecksum.js.map +1 -1
  93. package/dist/query/start/index.js +5 -3
  94. package/dist/query/start/index.js.map +1 -1
  95. package/dist/query/start/relay.js +1 -1
  96. package/dist/query/start/relay.js.map +1 -1
  97. package/dist/query/start/update.js +12 -11
  98. package/dist/query/start/update.js.map +1 -1
  99. package/dist/query/subscribe.js +12 -6
  100. package/dist/query/subscribe.js.map +1 -1
  101. package/dist/query/types.d.ts +11 -1
  102. package/dist/query/unsub.js +35 -3
  103. package/dist/query/unsub.js.map +1 -1
  104. package/dist/server.d.ts +2 -2
  105. package/dist/server.js +2 -2
  106. package/dist/server.js.map +1 -1
  107. package/dist/types.d.ts +18 -0
  108. package/dist/types.js +2 -0
  109. package/dist/types.js.map +1 -0
  110. package/package.json +5 -5
  111. package/dist/incoming/http/fakeWs/function.d.ts +0 -2
  112. package/dist/incoming/http/fakeWs/function.js +0 -50
  113. package/dist/incoming/http/fakeWs/function.js.map +0 -1
  114. package/dist/incoming/http/fakeWs/query.d.ts +0 -2
  115. package/dist/incoming/http/fakeWs/query.js +0 -78
  116. package/dist/incoming/http/fakeWs/query.js.map +0 -1
  117. package/dist/query/genObservableId.d.ts +0 -1
  118. package/dist/query/genObservableId.js +0 -8
  119. package/dist/query/genObservableId.js.map +0 -1
@@ -1,8 +1,6 @@
1
- import { BasedServer } from './server.js';
2
- import { HttpSession, Context, WebSocketSession, BasedRoute, BasedFunctionConfig } from '@based/functions';
3
- type ClientSession = HttpSession | WebSocketSession;
4
- export type IsAuthorizedHandler<S extends ClientSession = ClientSession, R extends BasedRoute = BasedRoute, P = any> = (route: R, spec: BasedFunctionConfig<R['type']>, server: BasedServer, ctx: Context<S>, payload: P, id?: number, checksum?: number) => void;
5
- export type AuthErrorHandler<S extends ClientSession = ClientSession, R extends BasedRoute = BasedRoute, P = any> = (route: R, server: BasedServer, ctx: Context<S>, payload: P, id?: number, checksum?: number, err?: Error) => true | void;
6
- export declare const defaultAuthError: AuthErrorHandler;
7
- export declare const authorize: <S extends ClientSession = ClientSession, R extends BasedRoute = BasedRoute, P = any>(route: R, server: BasedServer, ctx: Context<S>, payload: P, isAuthorized: IsAuthorizedHandler<S, R, P>, id?: number, checksum?: number, isPublic?: boolean, authError?: AuthErrorHandler<S, R, P>) => void;
8
- export {};
1
+ import { BasedFunctionConfig, BasedRoute } from '@based/functions';
2
+ import { ClientSession, FunctionErrorHandler, FunctionProps } from './types.js';
3
+ export declare const defaultAuthError: FunctionErrorHandler<ClientSession>;
4
+ export declare const authorize: <S extends ClientSession = ClientSession, R extends BasedRoute = BasedRoute, P = any>(props: FunctionProps<S, R, P>, publicHandler?: boolean) => Promise<FunctionProps<S, R, P> & {
5
+ spec: BasedFunctionConfig<R["type"]>;
6
+ }>;
package/dist/authorize.js CHANGED
@@ -1,70 +1,85 @@
1
1
  import { sendError } from './sendError.js';
2
2
  import { BasedErrorCode } from '@based/errors';
3
- import { isBasedRoute, } from '@based/functions';
3
+ import { isBasedRoute } from '@based/functions';
4
4
  import { installFn } from './installFn.js';
5
- export const defaultAuthError = (route, server, ctx, _payload, id, _checksum, err) => {
5
+ export const defaultAuthError = (props, err) => {
6
6
  const code = err
7
7
  ? BasedErrorCode.AuthorizeFunctionError
8
8
  : BasedErrorCode.AuthorizeRejectedError;
9
- if (id && isBasedRoute('channel', route)) {
10
- sendError(server, ctx, code, {
9
+ const route = props.route;
10
+ if (props.id && isBasedRoute('channel', route)) {
11
+ sendError(props.server, props.ctx, code, {
11
12
  route,
12
13
  err,
13
- channelId: id,
14
+ channelId: props.id,
14
15
  });
15
16
  return;
16
17
  }
17
- if (id && isBasedRoute('query', route)) {
18
- sendError(server, ctx, code, {
18
+ if (props.id && isBasedRoute('query', route)) {
19
+ sendError(props.server, props.ctx, code, {
19
20
  route,
20
21
  err,
21
- observableId: id,
22
+ observableId: props.id,
22
23
  });
23
24
  return;
24
25
  }
25
- if (id) {
26
- sendError(server, ctx, code, {
26
+ if (props.id) {
27
+ sendError(props.server, props.ctx, code, {
27
28
  route,
28
29
  err,
29
- requestId: id,
30
+ requestId: props.id,
30
31
  });
31
32
  return;
32
33
  }
33
- sendError(server, ctx, code, {
34
+ sendError(props.server, props.ctx, code, {
34
35
  route,
35
36
  err,
36
37
  });
37
38
  };
38
- export const authorize = (route, server, ctx, payload, isAuthorized, id, checksum, isPublic = false, authError = defaultAuthError) => {
39
- if (!ctx.session) {
40
- return;
41
- }
42
- installFn(server, ctx, route, id).then((spec) => {
43
- if (spec === null) {
44
- return;
45
- }
46
- if (route.public === true || isPublic) {
47
- isAuthorized(route, spec, server, ctx, payload, id, checksum);
48
- return;
49
- }
50
- const authorize = spec.authorize || server.auth.authorize;
51
- authorize(server.client, ctx, route.name, payload)
52
- .then((ok) => {
53
- if (!ctx.session || !ok) {
54
- if (ctx.session &&
55
- !authError(route, server, ctx, payload, id, checksum)) {
56
- defaultAuthError(route, server, ctx, payload, id, checksum);
57
- }
39
+ export const authorize = (props, publicHandler = props.route.public) => {
40
+ return {
41
+ // @ts-ignore (higher perf then a promise)
42
+ then: (resolve) => {
43
+ if (!props.ctx.session) {
58
44
  return;
59
45
  }
60
- isAuthorized(route, spec, server, ctx, payload, id, checksum);
61
- })
62
- .catch((err) => {
63
- if (ctx.session &&
64
- !authError(route, server, ctx, payload, id, checksum, err)) {
65
- defaultAuthError(route, server, ctx, payload, id, checksum, err);
66
- }
67
- });
68
- });
46
+ const onAuthError = props.error ?? defaultAuthError;
47
+ installFn(props).then((spec) => {
48
+ if (!props.ctx.session) {
49
+ return;
50
+ }
51
+ if (spec === null) {
52
+ return;
53
+ }
54
+ if (publicHandler === true) {
55
+ // @ts-ignore
56
+ props.spec = spec;
57
+ // @ts-ignore
58
+ resolve(props);
59
+ return;
60
+ }
61
+ const authorize = spec.authorize || props.server.auth.authorize;
62
+ // non async auth as option?
63
+ authorize(props.server.client, props.ctx, props.route.name, props.payload)
64
+ .then((ok) => {
65
+ if (!props.ctx.session || !ok) {
66
+ if (props.ctx.session && !onAuthError(props)) {
67
+ defaultAuthError(props);
68
+ }
69
+ return;
70
+ }
71
+ // @ts-ignore
72
+ props.spec = spec;
73
+ // @ts-ignore
74
+ resolve(props);
75
+ })
76
+ .catch((err) => {
77
+ if (props.ctx.session && !onAuthError(props, err)) {
78
+ defaultAuthError(props, err);
79
+ }
80
+ });
81
+ });
82
+ },
83
+ };
69
84
  };
70
85
  //# sourceMappingURL=authorize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authorize.js","sourceRoot":"","sources":["../src/authorize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAML,YAAY,GACb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAgC1C,MAAM,CAAC,MAAM,gBAAgB,GAAqB,CAChD,KAAK,EACL,MAAM,EACN,GAAG,EACH,QAAQ,EACR,EAAE,EACF,SAAS,EACT,GAAG,EACH,EAAE;IACF,MAAM,IAAI,GAAG,GAAG;QACd,CAAC,CAAC,cAAc,CAAC,sBAAsB;QACvC,CAAC,CAAC,cAAc,CAAC,sBAAsB,CAAA;IAEzC,IAAI,EAAE,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;QACzC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;YAC3B,KAAK;YACL,GAAG;YACH,SAAS,EAAE,EAAE;SACd,CAAC,CAAA;QACF,OAAM;IACR,CAAC;IAED,IAAI,EAAE,IAAI,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;QACvC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;YAC3B,KAAK;YACL,GAAG;YACH,YAAY,EAAE,EAAE;SACjB,CAAC,CAAA;QACF,OAAM;IACR,CAAC;IAED,IAAI,EAAE,EAAE,CAAC;QACP,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;YAC3B,KAAK;YACL,GAAG;YACH,SAAS,EAAE,EAAE;SACd,CAAC,CAAA;QACF,OAAM;IACR,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;QAC3B,KAAK;QACL,GAAG;KACJ,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAKvB,KAAQ,EACR,MAAmB,EACnB,GAAe,EACf,OAAU,EACV,YAA0C,EAC1C,EAAW,EACX,QAAiB,EACjB,WAAoB,KAAK,EACzB,YAAuC,gBAAgB,EACvD,EAAE;IACF,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,OAAM;IACR,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAM;QACR,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,QAAQ,EAAE,CAAC;YACtC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;YAC7D,OAAM;QACR,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAA;QAEzD,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC;aAC/C,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;YACX,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;gBACxB,IACE,GAAG,CAAC,OAAO;oBACX,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,EACrD,CAAC;oBACD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;gBAC7D,CAAC;gBACD,OAAM;YACR,CAAC;YACD,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;QAC/D,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,IACE,GAAG,CAAC,OAAO;gBACX,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,EAC1D,CAAC;gBACD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAClE,CAAC;QACH,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"authorize.js","sourceRoot":"","sources":["../src/authorize.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export const callFunction = async (server, name, ctx, payload) => {
7
7
  if (route === null) {
8
8
  return;
9
9
  }
10
- const spec = await installFn(server, server.client.ctx, route);
10
+ const spec = await installFn({ server, ctx: server.client.ctx, route });
11
11
  if (!spec) {
12
12
  throw createError(server, ctx, BasedErrorCode.FunctionNotFound, {
13
13
  route,
@@ -1 +1 @@
1
- {"version":3,"file":"callFunction.js","sourceRoot":"","sources":["../../src/functionApi/callFunction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAmB,EACnB,IAAY,EACZ,GAAY,EACZ,OAAY,EACE,EAAE;IAChB,MAAM,KAAK,GAAG,WAAW,CACvB,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,GAAG,EACjB,UAAU,EACV,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC5B,IAAI,CACL,CAAA;IAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAM;IACR,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAE9D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,gBAAgB,EAAE;YAC9D,KAAK;SACN,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,aAAa,EAAE;gBAC3D,KAAK;gBACL,GAAG,EAAE,IAAI,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC;aACnD,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,aAAa,EAAE;gBAC3D,KAAK;gBACL,GAAG;aACJ,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,aAAa,EAAE;YAC3D,KAAK;YACL,GAAG;SACJ,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"callFunction.js","sourceRoot":"","sources":["../../src/functionApi/callFunction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAmB,EACnB,IAAY,EACZ,GAAY,EACZ,OAAY,EACE,EAAE;IAChB,MAAM,KAAK,GAAG,WAAW,CACvB,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,GAAG,EACjB,UAAU,EACV,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC5B,IAAI,CACL,CAAA;IAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAM;IACR,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IAEvE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,gBAAgB,EAAE;YAC9D,KAAK;SACN,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,aAAa,EAAE;gBAC3D,KAAK;gBACL,GAAG,EAAE,IAAI,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC;aACnD,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,aAAa,EAAE;gBAC3D,KAAK;gBACL,GAAG;aACJ,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,aAAa,EAAE;YAC3D,KAAK;YACL,GAAG;SACJ,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { verifyRoute } from '../verifyRoute.js';
2
2
  import { unsubscribeFunction, subscribeChannelFunction, hasChannel, createChannel, } from '../channel/index.js';
3
3
  import { installFn } from '../installFn.js';
4
- import { createError, } from '../error/index.js';
4
+ import { createError } from '../error/index.js';
5
5
  import { BasedErrorCode } from '@based/errors';
6
6
  export const subscribeChannel = (server, name, id, payload, update) => {
7
7
  const route = verifyRoute(server, server.client.ctx, 'channel', server.functions.route(name), name, id);
@@ -20,7 +20,7 @@ export const subscribeChannel = (server, name, id, payload, update) => {
20
20
  subscribeChannelFunction(server, id, update);
21
21
  return close;
22
22
  }
23
- installFn(server, server.client.ctx, route).then((spec) => {
23
+ installFn({ server, ctx: server.client.ctx, route }).then((spec) => {
24
24
  if (isClosed) {
25
25
  return;
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"channelSubscribe.js","sourceRoot":"","sources":["../../src/functionApi/channelSubscribe.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,UAAU,EACV,aAAa,GACd,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,WAAW,GAAG,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAAmB,EACnB,IAAY,EACZ,EAAU,EACV,OAAY,EACZ,MAAsC,EACxB,EAAE;IAChB,MAAM,KAAK,GAAG,WAAW,CACvB,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,GAAG,EACjB,SAAS,EACT,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC5B,IAAI,EACJ,EAAE,CACH,CAAA;IAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,qBAAqB,CAAC,CAAA;IAChD,CAAC;IAED,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,QAAQ,EAAE,CAAC;YACb,OAAM;QACR,CAAC;QACD,QAAQ,GAAG,IAAI,CAAA;QACf,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC,CAAA;IAED,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAC3B,wBAAwB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;QAC5C,OAAO,KAAK,CAAA;IACd,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACxD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAM;QACR,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,CACJ,IAAI,EACJ,WAAW,CACT,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,GAAG,EACjB,cAAc,CAAC,gBAAgB,EAC/B;gBACE,KAAK;aACN,CACF,CACF,CAAA;YACD,OAAM;QACR,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YAC5B,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QAChD,CAAC;QACD,wBAAwB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
1
+ {"version":3,"file":"channelSubscribe.js","sourceRoot":"","sources":["../../src/functionApi/channelSubscribe.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,UAAU,EACV,aAAa,GACd,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAAmB,EACnB,IAAY,EACZ,EAAU,EACV,OAAY,EACZ,MAAsC,EACxB,EAAE;IAChB,MAAM,KAAK,GAAG,WAAW,CACvB,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,GAAG,EACjB,SAAS,EACT,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC5B,IAAI,EACJ,EAAE,CACH,CAAA;IAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,qBAAqB,CAAC,CAAA;IAChD,CAAC;IAED,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,QAAQ,EAAE,CAAC;YACb,OAAM;QACR,CAAC;QACD,QAAQ,GAAG,IAAI,CAAA;QACf,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC,CAAA;IAED,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAC3B,wBAAwB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;QAC5C,OAAO,KAAK,CAAA;IACd,CAAC;IAED,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACjE,IAAI,QAAQ,EAAE,CAAC;YACb,OAAM;QACR,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,CACJ,IAAI,EACJ,WAAW,CACT,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,GAAG,EACjB,cAAc,CAAC,gBAAgB,EAC/B;gBACE,KAAK;aACN,CACF,CACF,CAAA;YACD,OAAM;QACR,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YAC5B,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QAChD,CAAC;QACD,wBAAwB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { BasedChannel as BasedChannelAbstract, } from '@based/functions';
2
- import { genObservableId } from '../../query/index.js';
3
2
  import { publish } from '../publish.js';
4
3
  import { subscribeChannel } from '../channelSubscribe.js';
4
+ import { genObserveId } from '@based/protocol/client-server';
5
5
  export class BasedChannel extends BasedChannelAbstract {
6
6
  payload;
7
7
  name;
@@ -11,7 +11,7 @@ export class BasedChannel extends BasedChannelAbstract {
11
11
  super();
12
12
  this.ctx = ctx;
13
13
  this.payload = payload;
14
- this.id = genObservableId(name, payload);
14
+ this.id = genObserveId(name, payload);
15
15
  this.name = name;
16
16
  }
17
17
  subscribe(onMessage, onError) {
@@ -1 +1 @@
1
- {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../../src/functionApi/client/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,IAAI,oBAAoB,GAIrC,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,MAAM,OAAO,YAAa,SAAQ,oBAAoB;IAC7C,OAAO,CAAK;IACZ,IAAI,CAAQ;IACZ,EAAE,CAAQ;IACV,GAAG,CAAgC;IAE1C,YAAY,GAAmC,EAAE,IAAY,EAAE,OAAY;QACzE,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,SAAS,CACP,SAAiC,EACjC,OAA4B;QAE5B,OAAO,gBAAgB,CACrB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAC9B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,OAAO,EACZ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,CAAA;gBACd,CAAC;gBACD,OAAM;YACR,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,CAAA;QAChB,CAAC,CACF,CAAA;IACH,CAAC;IAED,OAAO,CAAC,OAAY,EAAE,MAAe,IAAI,CAAC,GAAG;QAC3C,OAAO,CACL,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAC9B,IAAI,CAAC,IAAI,EACT,GAAG,EACH,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,OAAO,EACZ,OAAO,CACR,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../../src/functionApi/client/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,IAAI,oBAAoB,GAIrC,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAE5D,MAAM,OAAO,YAAa,SAAQ,oBAAoB;IAC7C,OAAO,CAAK;IACZ,IAAI,CAAQ;IACZ,EAAE,CAAQ;IACV,GAAG,CAAgC;IAE1C,YAAY,GAAmC,EAAE,IAAY,EAAE,OAAY;QACzE,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,SAAS,CACP,SAAiC,EACjC,OAA4B;QAE5B,OAAO,gBAAgB,CACrB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAC9B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,OAAO,EACZ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,CAAA;gBACd,CAAC;gBACD,OAAM;YACR,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,CAAA;QAChB,CAAC,CACF,CAAA;IACH,CAAC;IAED,OAAO,CAAC,OAAY,EAAE,MAAe,IAAI,CAAC,GAAG;QAC3C,OAAO,CACL,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAC9B,IAAI,CAAC,IAAI,EACT,GAAG,EACH,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,OAAO,EACZ,OAAO,CACR,CAAA;IACH,CAAC;CACF"}
@@ -7,9 +7,10 @@ export declare class BasedFunctionClient extends BasedfunctionClientAbstract {
7
7
  server: BasedServer;
8
8
  ctx: Context<InternalSessionClient>;
9
9
  constructor(server: BasedServer);
10
- geo(ctx: Context): Promise<import("@based/functions").Geo>;
11
10
  call(name: string, payload?: any, ctx?: Context): Promise<any>;
12
- query(name: string, payload?: any): BasedQuery;
11
+ query(name: string, payload?: any, attachedCtx?: Context | {
12
+ [key: string]: any;
13
+ }): BasedQuery;
13
14
  channel(name: string, payload?: any): BasedChannel;
14
15
  stream(name: string, streamOpts: StreamFunctionOpts, ctx?: Context): Promise<any>;
15
16
  renewAuthState(ctx: Context<Session>, authState?: AuthState): Promise<AuthState>;
@@ -13,15 +13,15 @@ export class BasedFunctionClient extends BasedfunctionClientAbstract {
13
13
  session: { type: 'client', client: this, headers: {} },
14
14
  };
15
15
  }
16
- geo(ctx) {
17
- return this.server.geo(ctx);
18
- }
16
+ // geo(ctx: Context) {
17
+ // return this.server.geo(ctx)
18
+ // }
19
19
  // TODO: CTX - Transpile the ctx in there by static analysis for "call" & "stream"
20
20
  call(name, payload, ctx = this.ctx) {
21
21
  return callFunction(this.server, name, ctx, payload);
22
22
  }
23
- query(name, payload) {
24
- return new BasedQuery(this.ctx, name, payload);
23
+ query(name, payload, attachedCtx) {
24
+ return new BasedQuery(this.ctx, name, payload, attachedCtx);
25
25
  }
26
26
  channel(name, payload) {
27
27
  return new BasedChannel(this.ctx, name, payload);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functionApi/client/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAEL,mBAAmB,IAAI,2BAA2B,EAGlD,eAAe,EACf,WAAW,GAGZ,MAAM,kBAAkB,CAAA;AAEzB,MAAM,OAAO,mBAAoB,SAAQ,2BAA2B;IAGlE,GAAG,CAAgC;IAEnC,YAAY,MAAmB;QAC7B,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,GAAG,GAAG;YACT,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;SACvD,CAAA;IACH,CAAC;IAED,GAAG,CAAC,GAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;IAED,kFAAkF;IAClF,IAAI,CAAC,IAAY,EAAE,OAAa,EAAE,MAAe,IAAI,CAAC,GAAG;QACvD,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,OAAa;QAC/B,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAChD,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,OAAa;QACjC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,UAA8B,EAC9B,MAAe,IAAI,CAAC,GAAG;QAEvB,aAAa;QACb,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;IAC3D,CAAC;IAED,cAAc,CACZ,GAAqB,EACrB,SAAqB;QAErB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IACxD,CAAC;IAED,YAAY,CAAC,GAAqB,EAAE,SAAoB;QACtD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAM;QACR,CAAC;QACD,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAA;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;IAED,aAAa,CAAC,GAAqB,EAAE,SAAoB;QACvD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IAChD,CAAC;IAED,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnB,OAAO,uBAAuB,CAAA;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functionApi/client/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAEL,mBAAmB,IAAI,2BAA2B,EAGlD,eAAe,EACf,WAAW,GAGZ,MAAM,kBAAkB,CAAA;AAEzB,MAAM,OAAO,mBAAoB,SAAQ,2BAA2B;IAGlE,GAAG,CAAgC;IAEnC,YAAY,MAAmB;QAC7B,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,GAAG,GAAG;YACT,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;SACvD,CAAA;IACH,CAAC;IAED,sBAAsB;IACtB,gCAAgC;IAChC,IAAI;IAEJ,kFAAkF;IAClF,IAAI,CAAC,IAAY,EAAE,OAAa,EAAE,MAAe,IAAI,CAAC,GAAG;QACvD,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CACH,IAAY,EACZ,OAAa,EACb,WAA8C;QAE9C,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IAC7D,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,OAAa;QACjC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,UAA8B,EAC9B,MAAe,IAAI,CAAC,GAAG;QAEvB,aAAa;QACb,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;IAC3D,CAAC;IAED,cAAc,CACZ,GAAqB,EACrB,SAAqB;QAErB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IACxD,CAAC;IAED,YAAY,CAAC,GAAqB,EAAE,SAAoB;QACtD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAM;QACR,CAAC;QACD,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAA;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;IAED,aAAa,CAAC,GAAqB,EAAE,SAAoB;QACvD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IAChD,CAAC;IAED,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnB,OAAO,uBAAuB,CAAA;IAChC,CAAC;CACF"}
@@ -1,10 +1,15 @@
1
- import { ObservableUpdateFunction, ObserveErrorListener } from '../../query/index.js';
2
- import { BasedQuery as BasedQueryAbstract, Context, InternalSessionClient } from '@based/functions';
1
+ import { AttachedCtx, ObservableUpdateFunction, ObserveErrorListener } from '../../query/index.js';
2
+ import { BasedQuery as BasedQueryAbstract, BasedRoute, Context, InternalSessionClient } from '@based/functions';
3
3
  export declare class BasedQuery extends BasedQueryAbstract {
4
- query: any;
4
+ payload: any;
5
5
  name: string;
6
6
  ctx: Context<InternalSessionClient>;
7
- constructor(ctx: Context<InternalSessionClient>, name: string, payload: any);
7
+ attachedCtx: AttachedCtx;
8
+ id: number;
9
+ route: BasedRoute<'query'>;
10
+ constructor(ctx: Context<InternalSessionClient>, name: string, payload: any, attachedCtx?: {
11
+ [key: string]: any;
12
+ } | Context);
8
13
  subscribe(onData: ObservableUpdateFunction, onError?: ObserveErrorListener): () => void;
9
14
  getWhen(condition: (data: any, checksum: number) => boolean): Promise<any>;
10
15
  get(): Promise<any>;
@@ -1,15 +1,33 @@
1
1
  import { observe } from '../observe.js';
2
2
  import { get } from '../get.js';
3
3
  import { BasedQuery as BasedQueryAbstract, } from '@based/functions';
4
+ import { attachCtx, attachCtxInternal } from '../../query/attachCtx.js';
5
+ import { genObserveId } from '@based/protocol/client-server';
6
+ import { verifyRoute } from '../../verifyRoute.js';
4
7
  export class BasedQuery extends BasedQueryAbstract {
5
- query;
8
+ payload;
6
9
  name;
7
10
  ctx;
8
- constructor(ctx, name, payload) {
11
+ attachedCtx;
12
+ id;
13
+ route;
14
+ constructor(ctx, name, payload, attachedCtx) {
9
15
  super();
16
+ const server = ctx.session.client.server;
17
+ this.id = genObserveId(name, payload);
10
18
  this.ctx = ctx;
11
- this.query = payload;
19
+ this.payload = payload;
12
20
  this.name = name;
21
+ this.route = verifyRoute(server, ctx, 'query', server.functions.route(name), name, this.id);
22
+ if (!this.route) {
23
+ throw new Error(`Query ${this.route.name} does not exist`);
24
+ }
25
+ if (attachedCtx && this.route.ctx) {
26
+ this.attachedCtx =
27
+ 'session' in attachedCtx
28
+ ? attachCtx(server, this.route, attachedCtx, this.id)
29
+ : attachCtxInternal(this.route, attachedCtx, this.id);
30
+ }
13
31
  }
14
32
  subscribe(onData, onError) {
15
33
  // @ts-ignore
@@ -46,7 +64,7 @@ export class BasedQuery extends BasedQueryAbstract {
46
64
  // @ts-ignore
47
65
  onData.safe = true;
48
66
  }
49
- return observe(this.ctx.session.client.server, this.name, this.ctx, this.query, onData, onError);
67
+ return observe(this, onData, onError);
50
68
  }
51
69
  async getWhen(condition) {
52
70
  return new Promise((resolve) => {
@@ -59,7 +77,7 @@ export class BasedQuery extends BasedQueryAbstract {
59
77
  });
60
78
  }
61
79
  async get() {
62
- return get(this.ctx.session.client.server, this.name, this.ctx, this.query);
80
+ return get(this);
63
81
  }
64
82
  }
65
83
  //# sourceMappingURL=query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/functionApi/client/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/functionApi/client/query.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,2 @@
1
- import { BasedServer } from '../server.js';
2
- import { Context } from '@based/functions';
3
- export declare const get: (server: BasedServer, name: string, ctx: Context, payload: any) => Promise<any>;
1
+ import { BasedQuery } from './client/query.js';
2
+ export declare const get: (query: BasedQuery) => Promise<any>;
@@ -1,6 +1,5 @@
1
- import { createError, } from '../error/index.js';
2
- import { genObservableId, hasObs, createObs, subscribeNext, getObsAndStopRemove, destroyObs, start, } from '../query/index.js';
3
- import { verifyRoute } from '../verifyRoute.js';
1
+ import { createError } from '../error/index.js';
2
+ import { hasObs, subscribeNext, getObsAndStopRemove, destroyObs, start, createObsNoStart, } from '../query/index.js';
4
3
  import { installFn } from '../installFn.js';
5
4
  import { BasedErrorCode } from '@based/errors';
6
5
  const getObsData = (resolve, reject, server, id, ctx, route) => {
@@ -30,31 +29,32 @@ const getObsData = (resolve, reject, server, id, ctx, route) => {
30
29
  }
31
30
  });
32
31
  };
33
- export const get = (server, name, ctx, payload) => {
32
+ export const get = (query) => {
34
33
  return new Promise((resolve, reject) => {
35
- let route;
36
- try {
37
- route = verifyRoute(server, server.client.ctx, 'query', server.functions.route(name), name);
38
- if (route === null) {
39
- reject(new Error(`[${name}] No session in ctx`));
40
- return;
41
- }
42
- }
43
- catch (err) {
44
- reject(err);
45
- return;
46
- }
47
- const id = genObservableId(name, payload);
34
+ const attachedCtx = query.attachedCtx;
35
+ const id = attachedCtx ? attachedCtx.id : query.id;
36
+ const server = query.ctx.session.client.server;
37
+ const route = query.route;
38
+ const ctx = query.ctx;
39
+ const payload = query.payload;
48
40
  if (!hasObs(server, id)) {
49
- installFn(server, server.client.ctx, route).then((spec) => {
41
+ installFn({ server, ctx, route }).then((spec) => {
50
42
  if (!spec) {
51
- reject(createError(server, ctx, BasedErrorCode.FunctionNotFound, {
43
+ reject(createError(server, query.ctx, BasedErrorCode.FunctionNotFound, {
52
44
  route,
53
45
  }));
54
46
  return;
55
47
  }
56
48
  if (!hasObs(server, id)) {
57
- createObs(server, name, id, payload, true);
49
+ createObsNoStart({
50
+ server,
51
+ route,
52
+ id,
53
+ payload,
54
+ ctx,
55
+ spec,
56
+ attachedCtx,
57
+ });
58
58
  getObsData(resolve, reject, server, id, ctx, route);
59
59
  start(server, id);
60
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/functionApi/get.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/functionApi/get.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { BasedServer } from '../server.js';
2
- import { Context } from '@based/functions';
3
1
  import { ObservableUpdateFunction, ObserveErrorListener } from '../query/index.js';
4
- export declare const observe: (server: BasedServer, name: string, ctx: Context, payload: any, update: ObservableUpdateFunction, error: ObserveErrorListener) => (() => void);
2
+ import { BasedQuery } from './client/query.js';
3
+ export declare const observe: (query: BasedQuery, update: ObservableUpdateFunction, error: ObserveErrorListener) => (() => void);
@@ -1,14 +1,14 @@
1
1
  import { createError } from '../error/index.js';
2
- import { verifyRoute } from '../verifyRoute.js';
3
- import { genObservableId, hasObs, createObs, subscribeFunction, unsubscribeFunction, } from '../query/index.js';
2
+ import { hasObs, createObs, subscribeFunction, unsubscribeFunction, } from '../query/index.js';
4
3
  import { installFn } from '../installFn.js';
5
4
  import { BasedErrorCode } from '@based/errors';
6
- export const observe = (server, name, ctx, payload, update, error) => {
7
- const id = genObservableId(name, payload);
8
- const route = verifyRoute(server, server.client.ctx, 'query', server.functions.route(name), name, id);
9
- if (route === null) {
10
- throw new Error(`[${name}] No session in ctx`);
11
- }
5
+ export const observe = (query, update, error) => {
6
+ const attachedCtx = query.attachedCtx;
7
+ const id = attachedCtx ? attachedCtx.id : query.id;
8
+ const server = query.ctx.session.client.server;
9
+ const route = query.route;
10
+ const ctx = query.ctx;
11
+ const payload = query.payload;
12
12
  let isClosed = false;
13
13
  const close = () => {
14
14
  if (isClosed) {
@@ -21,7 +21,7 @@ export const observe = (server, name, ctx, payload, update, error) => {
21
21
  subscribeFunction(server, id, update);
22
22
  return close;
23
23
  }
24
- installFn(server, server.client.ctx, route).then((spec) => {
24
+ installFn({ server, ctx: server.client.ctx, route }).then((spec) => {
25
25
  if (isClosed) {
26
26
  return;
27
27
  }
@@ -32,7 +32,7 @@ export const observe = (server, name, ctx, payload, update, error) => {
32
32
  return;
33
33
  }
34
34
  if (!hasObs(server, id)) {
35
- createObs(server, name, id, payload);
35
+ createObs({ server, route, id, payload, ctx, spec, attachedCtx });
36
36
  }
37
37
  subscribeFunction(server, id, update);
38
38
  });
@@ -1 +1 @@
1
- {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../src/functionApi/observe.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EACL,eAAe,EACf,MAAM,EACN,SAAS,EAGT,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,MAAmB,EACnB,IAAY,EACZ,GAAY,EACZ,OAAY,EACZ,MAAgC,EAChC,KAA2B,EACb,EAAE;IAChB,MAAM,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAEzC,MAAM,KAAK,GAAG,WAAW,CACvB,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,GAAG,EACjB,OAAO,EACP,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC5B,IAAI,EACJ,EAAE,CACH,CAAA;IAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,qBAAqB,CAAC,CAAA;IAChD,CAAC;IAED,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,QAAQ,EAAE,CAAC;YACb,OAAM;QACR,CAAC;QACD,QAAQ,GAAG,IAAI,CAAA;QACf,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC,CAAA;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACvB,iBAAiB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;QACrC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACxD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAM;QACR,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,KAAK,CACH,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,gBAAgB,EAAE;gBACxD,KAAK;aACN,CAAC,CACH,CAAA;YACD,OAAM;QACR,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACxB,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;QACtC,CAAC;QACD,iBAAiB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
1
+ {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../src/functionApi/observe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EACL,MAAM,EACN,SAAS,EAGT,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAG9C,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,KAAiB,EACjB,MAAgC,EAChC,KAA2B,EACb,EAAE;IAChB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAA;IACrC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAA;IAClD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAA;IAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;IACzB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;IACrB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAE7B,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,QAAQ,EAAE,CAAC;YACb,OAAM;QACR,CAAC;QACD,QAAQ,GAAG,IAAI,CAAA;QACf,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC,CAAA;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACvB,iBAAiB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;QACrC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACjE,IAAI,QAAQ,EAAE,CAAC;YACb,OAAM;QACR,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,KAAK,CACH,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,gBAAgB,EAAE;gBACxD,KAAK;aACN,CAAC,CACH,CAAA;YACD,OAAM;QACR,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACxB,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;QACnE,CAAC;QACD,iBAAiB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
@@ -7,7 +7,7 @@ export const publish = (server, name, ctx, id, payload, msg) => {
7
7
  if (route === null) {
8
8
  return;
9
9
  }
10
- installFn(server, server.client.ctx, route).then((fn) => {
10
+ installFn({ server, ctx: server.client.ctx, route }).then((fn) => {
11
11
  if (fn === null) {
12
12
  return;
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/functionApi/publish.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,MAAmB,EACnB,IAAY,EACZ,GAAY,EACZ,EAAU,EACV,OAAY,EACZ,GAAQ,EACR,EAAE;IACF,MAAM,KAAK,GAAG,WAAW,CACvB,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,GAAG,EACjB,SAAS,EACT,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC5B,IAAI,CACL,CAAA;IACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAM;IACR,CAAC;IACD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;QACtD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,OAAM;QACR,CAAC;QACD,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QAC3D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sBAAsB;YACtB,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,aAAa,EAAE;gBACrD,GAAG;gBACH,KAAK;aACN,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/functionApi/publish.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,MAAmB,EACnB,IAAY,EACZ,GAAY,EACZ,EAAU,EACV,OAAY,EACZ,GAAQ,EACR,EAAE;IACF,MAAM,KAAK,GAAG,WAAW,CACvB,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,GAAG,EACjB,SAAS,EACT,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC5B,IAAI,CACL,CAAA;IACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAM;IACR,CAAC;IACD,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;QAC/D,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,OAAM;QACR,CAAC;QACD,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QAC3D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sBAAsB;YACtB,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,aAAa,EAAE;gBACrD,GAAG;gBACH,KAAK;aACN,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -16,7 +16,7 @@ export const streamFunction = async (server, name, ctx, streamOpts) => {
16
16
  if (route === null) {
17
17
  return;
18
18
  }
19
- const fn = await installFn(server, server.client.ctx, route);
19
+ const fn = await installFn({ server, ctx: server.client.ctx, route });
20
20
  if (!fn) {
21
21
  throw createError(server, ctx, BasedErrorCode.FunctionNotFound, {
22
22
  route,
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/functionApi/stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/functionApi/stream.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { HttpSession } from '@based/functions';
2
- import { IsAuthorizedHandler } from '../../authorize.js';
3
- export declare const basicFunction: IsAuthorizedHandler<HttpSession>;
1
+ import { HttpSession, BasedRoute } from '@based/functions';
2
+ import { FunctionHandler } from '../../types.js';
3
+ export declare const basicFunction: FunctionHandler<HttpSession, BasedRoute<'function'>>;
@@ -1,7 +1,7 @@
1
1
  import { sendHttpResponse } from '../../sendHttpResponse.js';
2
2
  import { BasedErrorCode } from '@based/errors';
3
3
  import { sendError } from '../../sendError.js';
4
- export const basicFunction = async (route, spec, server, ctx, payload) => {
4
+ export const basicFunction = async ({ route, server, ctx, payload, spec }) => {
5
5
  const send = (responseData, headers, status) => {
6
6
  if (!ctx.session) {
7
7
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"basicFunction.js","sourceRoot":"","sources":["../../../src/incoming/http/basicFunction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"basicFunction.js","sourceRoot":"","sources":["../../../src/incoming/http/basicFunction.ts"],"names":[],"mappings":"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"}