@livequery/nestjs 1.0.41 → 1.0.43

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/build/index.js CHANGED
@@ -1,11 +1,7 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
9
5
  }) : (function(o, m, k, k2) {
10
6
  if (k2 === undefined) k2 = k;
11
7
  o[k2] = m[k];
@@ -25,11 +25,11 @@ let LivequeryDatasourceInterceptors = class LivequeryDatasourceInterceptors {
25
25
  const datasource = exports.DatasourceList.has(token) ? exports.DatasourceList.get(token) : this.moduleRef.get(token);
26
26
  const req = ctx.switchToHttp().getRequest();
27
27
  req.livequery_response = await datasource.query(req.livequery);
28
- return next.handle().pipe((0, rxjs_1.map)(rs => rs ?? req.livequery_response));
28
+ return next.handle().pipe(rxjs_1.map(rs => rs ?? req.livequery_response));
29
29
  }
30
30
  };
31
31
  LivequeryDatasourceInterceptors = __decorate([
32
- (0, common_1.Injectable)(),
32
+ common_1.Injectable(),
33
33
  __metadata("design:paramtypes", [core_1.ModuleRef])
34
34
  ], LivequeryDatasourceInterceptors);
35
35
  exports.LivequeryDatasourceInterceptors = LivequeryDatasourceInterceptors;
@@ -67,17 +67,15 @@ let LivequeryInterceptor = class LivequeryInterceptor {
67
67
  return s(null);
68
68
  JWT.sign({ collection_ref, doc_id }, this.secret_or_private_key, {}, (error, data) => s(error ? null : data));
69
69
  });
70
- return next.handle().pipe((0, operators_1.map)(data => ({ data: { ...data, realtime_token } })));
70
+ return next.handle().pipe(operators_1.map(data => ({ data: { ...data, realtime_token } })));
71
71
  }
72
72
  };
73
73
  LivequeryInterceptor = __decorate([
74
- (0, common_1.Injectable)(),
75
- __param(0, (0, common_1.Optional)()),
76
- __param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => LivequeryWebsocketSync_1.LivequeryWebsocketSync))),
77
- __param(1, (0, common_1.Optional)()),
78
- __param(1, (0, UseWebsocketShareKeyPair_1.InjectWebsocketPrivateKey)()),
74
+ common_1.Injectable(),
75
+ __param(0, common_1.Optional()), __param(0, common_1.Inject(common_1.forwardRef(() => LivequeryWebsocketSync_1.LivequeryWebsocketSync))),
76
+ __param(1, common_1.Optional()), __param(1, UseWebsocketShareKeyPair_1.InjectWebsocketPrivateKey()),
79
77
  __metadata("design:paramtypes", [LivequeryWebsocketSync_1.LivequeryWebsocketSync, String])
80
78
  ], LivequeryInterceptor);
81
79
  exports.LivequeryInterceptor = LivequeryInterceptor;
82
- const UseLivequeryInterceptor = () => (0, common_1.UseInterceptors)(LivequeryInterceptor);
80
+ const UseLivequeryInterceptor = () => common_1.UseInterceptors(LivequeryInterceptor);
83
81
  exports.UseLivequeryInterceptor = UseLivequeryInterceptor;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LivequeryRequest = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
- exports.LivequeryRequest = (0, common_1.createParamDecorator)((data, ctx) => {
5
+ exports.LivequeryRequest = common_1.createParamDecorator((data, ctx) => {
6
6
  const request = ctx.switchToHttp().getRequest();
7
7
  return request.livequery;
8
8
  });
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LivequeryResponse = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
- exports.LivequeryResponse = (0, common_1.createParamDecorator)((data, ctx) => ctx.switchToHttp().getRequest().livequery_response);
5
+ exports.LivequeryResponse = common_1.createParamDecorator((data, ctx) => ctx.switchToHttp().getRequest().livequery_response);
@@ -46,7 +46,7 @@ let LivequeryWebsocketSync = class LivequeryWebsocketSync {
46
46
  });
47
47
  this.connections.delete(socket.id);
48
48
  }
49
- start({ id = (0, uuid_1.v4)() }, socket) {
49
+ start({ id = uuid_1.v4() }, socket) {
50
50
  if (typeof id == 'string' && id.length < 40) {
51
51
  socket.id = id;
52
52
  this.connections.set(id, { socket, refs: new Set() });
@@ -75,35 +75,33 @@ let LivequeryWebsocketSync = class LivequeryWebsocketSync {
75
75
  }
76
76
  };
77
77
  __decorate([
78
- (0, websockets_1.SubscribeMessage)('start'),
79
- __param(0, (0, websockets_1.MessageBody)()),
80
- __param(1, (0, websockets_1.ConnectedSocket)()),
78
+ websockets_1.SubscribeMessage('start'),
79
+ __param(0, websockets_1.MessageBody()),
80
+ __param(1, websockets_1.ConnectedSocket()),
81
81
  __metadata("design:type", Function),
82
82
  __metadata("design:paramtypes", [Object, Object]),
83
83
  __metadata("design:returntype", void 0)
84
84
  ], LivequeryWebsocketSync.prototype, "start", null);
85
85
  __decorate([
86
- (0, websockets_1.SubscribeMessage)('subscribe'),
87
- __param(0, (0, websockets_1.MessageBody)()),
88
- __param(1, (0, websockets_1.ConnectedSocket)()),
86
+ websockets_1.SubscribeMessage('subscribe'),
87
+ __param(0, websockets_1.MessageBody()),
88
+ __param(1, websockets_1.ConnectedSocket()),
89
89
  __metadata("design:type", Function),
90
90
  __metadata("design:paramtypes", [Object, Object]),
91
91
  __metadata("design:returntype", Promise)
92
92
  ], LivequeryWebsocketSync.prototype, "subscribe", null);
93
93
  __decorate([
94
- (0, websockets_1.SubscribeMessage)('unsubscribe'),
95
- __param(0, (0, websockets_1.MessageBody)()),
96
- __param(1, (0, websockets_1.ConnectedSocket)()),
94
+ websockets_1.SubscribeMessage('unsubscribe'),
95
+ __param(0, websockets_1.MessageBody()),
96
+ __param(1, websockets_1.ConnectedSocket()),
97
97
  __metadata("design:type", Function),
98
98
  __metadata("design:paramtypes", [Object, Object]),
99
99
  __metadata("design:returntype", void 0)
100
100
  ], LivequeryWebsocketSync.prototype, "unsubscribe", null);
101
101
  LivequeryWebsocketSync = __decorate([
102
- (0, websockets_1.WebSocketGateway)({ path: process.env.REALTIME_UPDATE_SOCKET_PATH || '/livequery/realtime-updates' }),
103
- __param(0, (0, common_1.Optional)()),
104
- __param(0, (0, UseWebsocketShareKeyPair_1.InjectWebsocketPublicKey)()),
105
- __param(1, (0, common_1.Optional)()),
106
- __param(1, (0, common_1.Inject)((0, common_1.forwardRef)(() => LivequeryInterceptor_1.LivequeryInterceptor))),
102
+ websockets_1.WebSocketGateway({ path: process.env.REALTIME_UPDATE_SOCKET_PATH || '/livequery/realtime-updates' }),
103
+ __param(0, common_1.Optional()), __param(0, UseWebsocketShareKeyPair_1.InjectWebsocketPublicKey()),
104
+ __param(1, common_1.Optional()), __param(1, common_1.Inject(common_1.forwardRef(() => LivequeryInterceptor_1.LivequeryInterceptor))),
107
105
  __metadata("design:paramtypes", [String, LivequeryInterceptor_1.LivequeryInterceptor])
108
106
  ], LivequeryWebsocketSync);
109
107
  exports.LivequeryWebsocketSync = LivequeryWebsocketSync;
@@ -4,9 +4,9 @@ exports.UseWebsocketPrivateKey = exports.UseWebsocketPublicKey = exports.InjectW
4
4
  const common_1 = require("@nestjs/common");
5
5
  const WebsocketPublicKey = 'WebsocketPublicKey';
6
6
  const WebsocketPrivateKey = 'WebsocketPrivateKey';
7
- const InjectWebsocketPublicKey = () => (0, common_1.Inject)(WebsocketPublicKey);
7
+ const InjectWebsocketPublicKey = () => common_1.Inject(WebsocketPublicKey);
8
8
  exports.InjectWebsocketPublicKey = InjectWebsocketPublicKey;
9
- const InjectWebsocketPrivateKey = () => (0, common_1.Inject)(WebsocketPrivateKey);
9
+ const InjectWebsocketPrivateKey = () => common_1.Inject(WebsocketPrivateKey);
10
10
  exports.InjectWebsocketPrivateKey = InjectWebsocketPrivateKey;
11
11
  const UseWebsocketPublicKey = (secret_or_public_key) => ({
12
12
  provide: WebsocketPublicKey,
@@ -1,6 +1,7 @@
1
1
  import { Provider } from "@nestjs/common";
2
- import { Datasource, DatasourceOptions } from "../LivequeryDatasourceInterceptors";
3
- export declare const createDatasourceMapper: <T extends {}>(datasource_factory: new (...args: any[]) => Datasource) => [({ useFactory, inject }: {
4
- useFactory: (options: DatasourceOptions<T>, ...injects: any[]) => Datasource<T> | Promise<Datasource<T>>;
5
- inject?: any[];
6
- }) => Provider<any>, (options: T) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void];
2
+ import { Datasource } from "../LivequeryDatasourceInterceptors";
3
+ export declare const createDatasourceMapper: <T extends {}>(datasource_factory: new (...args: any[]) => Datasource) => [(fn: (options: (T & {
4
+ refs: string[];
5
+ })[]) => Omit<Provider, 'provide'>) => {
6
+ provide: new (...args: any[]) => Datasource;
7
+ }, (options: T) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void];
@@ -7,25 +7,17 @@ const LivequeryInterceptor_1 = require("../LivequeryInterceptor");
7
7
  const PathHelper_1 = require("./PathHelper");
8
8
  const createDatasourceMapper = (datasource_factory) => {
9
9
  const RouteConfigList = [];
10
- const decorator = (options) => (0, common_1.applyDecorators)((target, method) => RouteConfigList.push({ target, method, options }), (0, LivequeryInterceptor_1.UseLivequeryInterceptor)(), (0, common_1.UseInterceptors)(LivequeryDatasourceInterceptors_1.LivequeryDatasourceInterceptors), (target, method, descriptor) => {
10
+ const decorator = (options) => common_1.applyDecorators((target, method) => RouteConfigList.push({ target, method, options }), LivequeryInterceptor_1.UseLivequeryInterceptor(), common_1.UseInterceptors(LivequeryDatasourceInterceptors_1.LivequeryDatasourceInterceptors), (target, method, descriptor) => {
11
11
  Reflect.defineMetadata(LivequeryDatasourceInterceptors_1.$__datasource_factory_token, datasource_factory, descriptor.value);
12
12
  });
13
- const UseDatasource = ({ useFactory, inject }) => {
14
- return {
15
- provide: datasource_factory,
16
- inject,
17
- useFactory: async (...injects) => {
18
- const options = RouteConfigList.map(config => {
19
- return {
20
- ...(config.options || {}),
21
- refs: PathHelper_1.PathHelper.join(Reflect.getMetadata('path', config.target.constructor), Reflect.getMetadata('path', config.target[config.method])).map(PathHelper_1.PathHelper.trimLivequeryHotkey)
22
- };
23
- });
24
- const datasource = await useFactory(options, ...injects);
25
- LivequeryDatasourceInterceptors_1.DatasourceList.set(datasource_factory, datasource);
26
- return datasource;
27
- }
28
- };
13
+ const UseDatasource = (fn) => {
14
+ const options = RouteConfigList.map(config => {
15
+ return {
16
+ ...(config.options || {}),
17
+ refs: PathHelper_1.PathHelper.join(Reflect.getMetadata('path', config.target.constructor), Reflect.getMetadata('path', config.target[config.method])).map(PathHelper_1.PathHelper.trimLivequeryHotkey)
18
+ };
19
+ });
20
+ return { ...fn(options), provide: datasource_factory };
29
21
  };
30
22
  return [UseDatasource, decorator];
31
23
  };
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "repository": {
4
4
  "url": "git@github.com:livequery/nestjs.git"
5
5
  },
6
- "version": "1.0.41",
6
+ "version": "1.0.43",
7
7
  "description": "",
8
8
  "main": "build/index.js",
9
9
  "types": "build/index.d.ts",
@@ -1,11 +0,0 @@
1
- export declare class PathHelper {
2
- static trimLivequeryHotkey(path: string): string;
3
- static parseHttpRequestPath(path: string): {
4
- ref: string;
5
- schema_ref: string;
6
- is_collection: boolean;
7
- doc_id: string;
8
- collection_ref: string;
9
- };
10
- static join(a: string | string[], b: string | string[]): string[];
11
- }
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PathHelper = void 0;
4
- const const_1 = require("./const");
5
- class PathHelper {
6
- static trimLivequeryHotkey(path) {
7
- const ref = path
8
- ?.split('~')[0]
9
- ?.replaceAll(':', '')
10
- ?.split(const_1.LIVEQUERY_MAGIC_KEY)?.[1]
11
- ?.split('/')
12
- ?.filter(s => s.length > 0)
13
- ?.join('/');
14
- if (!ref)
15
- throw 'LIVEQUERY_MAGIC_KEY_NOT_FOUND';
16
- return ref;
17
- }
18
- static parseHttpRequestPath(path) {
19
- const refs = path
20
- ?.split('~')[0]
21
- ?.replaceAll(':', '')
22
- ?.split(const_1.LIVEQUERY_MAGIC_KEY)?.[1]
23
- ?.split('/')
24
- ?.filter(s => s.length > 0);
25
- if (!refs)
26
- throw 'LIVEQUERY_MAGIC_KEY_NOT_FOUND';
27
- const is_collection = refs.length % 2 == 1;
28
- const ref = refs.join('/');
29
- const collection_ref = is_collection ? ref : refs.slice(0, refs.length - 1).join('/');
30
- const schema_ref = refs.filter((_, i) => i % 2 == 0).join('/');
31
- const doc_id = is_collection ? null : refs[refs.length - 1];
32
- return { ref, schema_ref, is_collection, doc_id, collection_ref };
33
- }
34
- static join(a, b) {
35
- return [a || '']
36
- .flat(2)
37
- .map(r1 => [b || ''].flat(2).map(r2 => `${r1}/${r2}`))
38
- .flat(2)
39
- .map(r => r.split('/')
40
- .filter(r => r != '')
41
- .join('/'));
42
- }
43
- }
44
- exports.PathHelper = PathHelper;
@@ -1,6 +0,0 @@
1
- import { Provider } from "@nestjs/common";
2
- import { Datasource, DatasourceOptions } from "./LivequeryDatasourceInterceptors";
3
- export declare const createDatasourceMapper: <T extends {}>(datasource_factory: new (...args: any[]) => Datasource) => [({ useFactory, inject }: {
4
- useFactory: (options: DatasourceOptions<T>, ...injects: any[]) => Datasource<T> | Promise<Datasource<T>>;
5
- inject?: any[];
6
- }) => Provider<any>, (options: T) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void];
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDatasourceMapper = void 0;
4
- const common_1 = require("@nestjs/common");
5
- const LivequeryDatasourceInterceptors_1 = require("./LivequeryDatasourceInterceptors");
6
- const LivequeryInterceptor_1 = require("./LivequeryInterceptor");
7
- const PathHelper_1 = require("./PathHelper");
8
- const createDatasourceMapper = (datasource_factory) => {
9
- const RouteConfigList = [];
10
- const decorator = (options) => (0, common_1.applyDecorators)((target, method) => RouteConfigList.push({ target, method, options }), (0, LivequeryInterceptor_1.UseLivequeryInterceptor)(), (0, common_1.UseInterceptors)(LivequeryDatasourceInterceptors_1.LivequeryDatasourceInterceptors), (target, method, descriptor) => {
11
- Reflect.defineMetadata(LivequeryDatasourceInterceptors_1.$__datasource_factory_token, datasource_factory, descriptor.value);
12
- });
13
- const UseDatasource = ({ useFactory, inject }) => {
14
- return {
15
- provide: datasource_factory,
16
- inject,
17
- useFactory: async (...injects) => {
18
- const options = RouteConfigList.map(config => {
19
- return {
20
- ...(config.options || {}),
21
- refs: PathHelper_1.PathHelper.join(Reflect.getMetadata('path', config.target.constructor), Reflect.getMetadata('path', config.target[config.method])).map(PathHelper_1.PathHelper.trimLivequeryHotkey)
22
- };
23
- });
24
- const datasource = await useFactory(options, ...injects);
25
- LivequeryDatasourceInterceptors_1.DatasourceList.set(datasource_factory, datasource);
26
- return datasource;
27
- }
28
- };
29
- };
30
- return [UseDatasource, decorator];
31
- };
32
- exports.createDatasourceMapper = createDatasourceMapper;