@powersync/service-core 0.5.1 → 0.7.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 (44) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/routes/configure-fastify.d.ts +712 -0
  3. package/dist/routes/configure-fastify.js +57 -0
  4. package/dist/routes/configure-fastify.js.map +1 -0
  5. package/dist/routes/configure-rsocket.d.ts +13 -0
  6. package/dist/routes/configure-rsocket.js +46 -0
  7. package/dist/routes/configure-rsocket.js.map +1 -0
  8. package/dist/routes/endpoints/admin.d.ts +0 -34
  9. package/dist/routes/endpoints/admin.js +2 -22
  10. package/dist/routes/endpoints/admin.js.map +1 -1
  11. package/dist/routes/endpoints/route-endpoints-index.d.ts +0 -1
  12. package/dist/routes/endpoints/route-endpoints-index.js +0 -1
  13. package/dist/routes/endpoints/route-endpoints-index.js.map +1 -1
  14. package/dist/routes/endpoints/socket-route.js +3 -10
  15. package/dist/routes/endpoints/socket-route.js.map +1 -1
  16. package/dist/routes/route-register.d.ts +1 -1
  17. package/dist/routes/route-register.js +1 -1
  18. package/dist/routes/route-register.js.map +1 -1
  19. package/dist/routes/router-socket.d.ts +4 -4
  20. package/dist/routes/router-socket.js.map +1 -1
  21. package/dist/routes/router.d.ts +1 -0
  22. package/dist/routes/router.js.map +1 -1
  23. package/dist/routes/routes-index.d.ts +2 -0
  24. package/dist/routes/routes-index.js +2 -0
  25. package/dist/routes/routes-index.js.map +1 -1
  26. package/dist/sync/sync-index.d.ts +1 -0
  27. package/dist/sync/sync-index.js +1 -0
  28. package/dist/sync/sync-index.js.map +1 -1
  29. package/package.json +3 -3
  30. package/src/routes/configure-fastify.ts +101 -0
  31. package/src/routes/configure-rsocket.ts +59 -0
  32. package/src/routes/endpoints/admin.ts +2 -24
  33. package/src/routes/endpoints/route-endpoints-index.ts +0 -1
  34. package/src/routes/endpoints/socket-route.ts +3 -10
  35. package/src/routes/route-register.ts +2 -2
  36. package/src/routes/router-socket.ts +5 -5
  37. package/src/routes/router.ts +2 -0
  38. package/src/routes/routes-index.ts +2 -0
  39. package/src/sync/sync-index.ts +1 -0
  40. package/tsconfig.tsbuildinfo +1 -1
  41. package/dist/routes/endpoints/dev.d.ts +0 -312
  42. package/dist/routes/endpoints/dev.js +0 -172
  43. package/dist/routes/endpoints/dev.js.map +0 -1
  44. package/src/routes/endpoints/dev.ts +0 -199
@@ -5,31 +5,9 @@ import { internal_routes } from '@powersync/service-types';
5
5
  import * as api from '../../api/api-index.js';
6
6
  import * as util from '../../util/util-index.js';
7
7
 
8
- import { routeDefinition } from '../router.js';
9
8
  import { PersistedSyncRulesContent } from '../../storage/BucketStorage.js';
10
9
  import { authApi } from '../auth.js';
11
-
12
- const demoCredentials = routeDefinition({
13
- path: '/api/admin/v1/demo-credentials',
14
- method: router.HTTPMethod.POST,
15
- authorize: authApi,
16
- validator: schema.createTsCodecValidator(internal_routes.DemoCredentialsRequest, {
17
- allowAdditional: true
18
- }),
19
- handler: async (payload) => {
20
- const connection = payload.context.system.config.connection;
21
- if (connection == null || !connection.demo_database) {
22
- return internal_routes.DemoCredentialsResponse.encode({});
23
- }
24
-
25
- const uri = util.buildDemoPgUri(connection);
26
- return internal_routes.DemoCredentialsResponse.encode({
27
- credentials: {
28
- postgres_uri: uri
29
- }
30
- });
31
- }
32
- });
10
+ import { routeDefinition } from '../router.js';
33
11
 
34
12
  export const executeSql = routeDefinition({
35
13
  path: '/api/admin/v1/execute-sql',
@@ -234,4 +212,4 @@ function mapColumnValue(value: SqliteValue) {
234
212
  }
235
213
  }
236
214
 
237
- export const ADMIN_ROUTES = [demoCredentials, executeSql, diagnostics, getSchema, reprocess, validate];
215
+ export const ADMIN_ROUTES = [executeSql, diagnostics, getSchema, reprocess, validate];
@@ -1,6 +1,5 @@
1
1
  export * from './admin.js';
2
2
  export * from './checkpointing.js';
3
- export * from './dev.js';
4
3
  export * from './socket-route.js';
5
4
  export * from './sync-rules.js';
6
5
  export * from './sync-stream.js';
@@ -3,20 +3,13 @@ import { RequestParameters } from '@powersync/service-sync-rules';
3
3
  import { serialize } from 'bson';
4
4
 
5
5
  import { Metrics } from '../../metrics/Metrics.js';
6
- import { streamResponse } from '../../sync/sync.js';
6
+ import * as sync from '../../sync/sync-index.js';
7
7
  import * as util from '../../util/util-index.js';
8
8
  import { SocketRouteGenerator } from '../router-socket.js';
9
9
  import { SyncRoutes } from './sync-stream.js';
10
- import { RequestTracker } from '../../sync/RequestTracker.js';
11
10
 
12
11
  export const syncStreamReactive: SocketRouteGenerator = (router) =>
13
12
  router.reactiveStream<util.StreamingSyncRequest, any>(SyncRoutes.STREAM, {
14
- authorize: ({ context }) => {
15
- return {
16
- authorized: !!context.token_payload,
17
- errors: ['Authentication required'].concat(context.token_errors ?? [])
18
- };
19
- },
20
13
  validator: schema.createTsCodecValidator(util.StreamingSyncRequest, { allowAdditional: true }),
21
14
  handler: async ({ context, params, responder, observer, initialN }) => {
22
15
  const { system } = context;
@@ -67,9 +60,9 @@ export const syncStreamReactive: SocketRouteGenerator = (router) =>
67
60
  });
68
61
 
69
62
  Metrics.getInstance().concurrent_connections.add(1);
70
- const tracker = new RequestTracker();
63
+ const tracker = new sync.RequestTracker();
71
64
  try {
72
- for await (const data of streamResponse({
65
+ for await (const data of sync.streamResponse({
73
66
  storage,
74
67
  params: {
75
68
  ...params,
@@ -1,6 +1,6 @@
1
- import fastify from 'fastify';
1
+ import type fastify from 'fastify';
2
2
 
3
- import { errors, router, HTTPMethod, logger } from '@powersync/lib-services-framework';
3
+ import { errors, HTTPMethod, logger, router } from '@powersync/lib-services-framework';
4
4
  import { Context, ContextProvider, RequestEndpoint, RequestEndpointHandlerPayload } from './router.js';
5
5
 
6
6
  export type FastifyEndpoint<I, O, C> = RequestEndpoint<I, O, C> & {
@@ -1,13 +1,13 @@
1
+ import { IReactiveStream, ReactiveSocketRouter } from '@powersync/service-rsocket-router';
1
2
  import * as t from 'ts-codec';
2
- import { ReactiveSocketRouter, IReactiveStream } from '@powersync/service-rsocket-router';
3
3
 
4
4
  import { Context } from './router.js';
5
5
 
6
- export const RSocketContextMeta = t.object({
7
- token: t.string
8
- });
9
-
10
6
  /**
11
7
  * Creates a socket route handler given a router instance
12
8
  */
13
9
  export type SocketRouteGenerator = (router: ReactiveSocketRouter<Context>) => IReactiveStream;
10
+
11
+ export const RSocketContextMeta = t.object({
12
+ token: t.string
13
+ });
@@ -36,6 +36,8 @@ export type RequestEndpointHandlerPayload<
36
36
  request: Request;
37
37
  };
38
38
 
39
+ export type RouteDefinition<I = any, O = any> = RequestEndpoint<I, O>;
40
+
39
41
  /**
40
42
  * Helper function for making generics work well when defining routes
41
43
  */
@@ -1,4 +1,6 @@
1
1
  export * as auth from './auth.js';
2
+ export * from './configure-fastify.js';
3
+ export * from './configure-rsocket.js';
2
4
  export * as endpoints from './endpoints/route-endpoints-index.js';
3
5
  export * as hooks from './hooks.js';
4
6
  export * from './route-register.js';
@@ -1,6 +1,7 @@
1
1
  export * from './BroadcastIterable.js';
2
2
  export * from './LastValueSink.js';
3
3
  export * from './merge.js';
4
+ export * from './RequestTracker.js';
4
5
  export * from './safeRace.js';
5
6
  export * from './sync.js';
6
7
  export * from './util.js';