@feathersjs/transport-commons 4.5.17 → 4.5.18

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/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.5.18](https://github.com/feathersjs/feathers/compare/v4.5.17...v4.5.18) (2023-07-19)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **transport-commons:** Handle invalid service paths on socket lookups ([#3242](https://github.com/feathersjs/feathers/issues/3242)) ([0b9a6b1](https://github.com/feathersjs/feathers/commit/0b9a6b19b12ad05934e4c8bd9917448ed39d1ed8))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [4.5.17](https://github.com/feathersjs/feathers/compare/v4.5.16...v4.5.17) (2023-07-17)
7
18
 
8
19
  **Note:** Version bump only for package @feathersjs/transport-commons
@@ -28,14 +28,13 @@ function socket({ done, emit, socketMap, socketKey, getParams }) {
28
28
  }
29
29
  });
30
30
  // `connection` event
31
- done.then(provider => provider.on('connection', (connection) => app.emit('connection', getParams(connection))));
31
+ done.then((provider) => provider.on('connection', (connection) => app.emit('connection', getParams(connection))));
32
32
  // `socket.emit('methodName', 'serviceName', ...args)` handlers
33
- done.then(provider => provider.on('connection', (connection) => {
33
+ done.then((provider) => provider.on('connection', (connection) => {
34
34
  for (const method of app.methods) {
35
35
  connection.on(method, (...args) => {
36
- const path = args.shift();
37
- debug(`Got '${method}' call for service '${path}'`);
38
- (0, utils_1.runMethod)(app, getParams(connection), path, method, args);
36
+ const [path, ...rest] = args;
37
+ (0, utils_1.runMethod)(app, getParams(connection), path, method, rest);
39
38
  });
40
39
  }
41
40
  connection.on('authenticate', (...args) => {
@@ -52,9 +51,9 @@ function socket({ done, emit, socketMap, socketKey, getParams }) {
52
51
  });
53
52
  }));
54
53
  // Legacy `socket.emit('serviceName::methodName', ...args)` handlers
55
- app.mixins.push((service, path) => done.then(provider => {
54
+ app.mixins.push((service, path) => done.then((provider) => {
56
55
  provider.on('connection', (socket) => {
57
- const methods = app.methods.filter(current =>
56
+ const methods = app.methods.filter((current) =>
58
57
  // @ts-ignore
59
58
  typeof service[current] === 'function');
60
59
  for (const method of methods) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/socket/index.ts"],"names":[],"mappings":";;;;;;AACA,kDAA0B;AAC1B,0CAAuC;AACvC,wCAAqC;AACrC,mCAAmD;AAGnD,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,+BAA+B,CAAC,CAAC;AAUrD,SAAgB,MAAM,CAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAiB;IACpF,OAAO,CAAC,GAAgB,EAAE,EAAE;QAC1B,MAAM,aAAa,GAAG,CAAC,UAA8B,EAAE,EAAE;YACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;YAEzB,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;aAC7C;QACH,CAAC,CAAC;QAEF,GAAG,CAAC,SAAS,CAAC,IAAA,mBAAQ,GAAE,CAAC,CAAC;QAC1B,GAAG,CAAC,SAAS,CAAC,IAAA,iBAAO,GAAE,CAAC,CAAC;QAEzB,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,IAAA,qBAAa,EAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAC7D,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACpC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,WAAgB,EAAE,MAAc,EAAE,EAAE;YACpD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;YAE9B,IAAI,UAAU,EAAE;gBACd,aAAa,CAAC,UAAU,CAAC,CAAC;aAC3B;QACH,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,UAAe,EAAE,EAAE,CAClE,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAC/C,CAAC;QAEF,+DAA+D;QAC/D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,UAAe,EAAE,EAAE;YAClE,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE;gBAChC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;oBACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;oBAE1B,KAAK,CAAC,QAAQ,MAAM,uBAAuB,IAAI,GAAG,CAAC,CAAC;oBACpD,IAAA,iBAAS,EAAC,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC5D,CAAC,CAAC,CAAC;aACJ;YAED,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;gBAC/C,IAAI,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE;oBACpC,KAAK,CAAC,+BAA+B,CAAC,CAAC;oBACvC,IAAA,iBAAS,EAAC,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;iBACzF;YACH,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAa,EAAE,EAAE;gBACxC,IAAI,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE;oBACpC,KAAK,CAAC,+BAA+B,CAAC,CAAC;oBACvC,IAAA,iBAAS,EAAC,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,CAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAE,CAAC,CAAC;iBAC3G;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;QAEJ,oEAAoE;QACpE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACtD,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAW,EAAE,EAAE;gBACxC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gBAC3C,aAAa;gBACb,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,UAAU,CACvC,CAAC;gBAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;oBAC5B,MAAM,SAAS,GAAG,GAAG,IAAI,KAAK,MAAM,EAAE,CAAC;oBAEvC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;wBACtC,KAAK,CAAC,2BAA2B,SAAS,GAAG,CAAC,CAAC;wBAC/C,IAAA,iBAAS,EAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBACxD,CAAC,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;IACN,CAAC,CAAC;AACJ,CAAC;AAzED,wBAyEC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/socket/index.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,4 @@ export declare const paramsPositions: {
6
6
  };
7
7
  export declare function normalizeError(e: any): any;
8
8
  export declare function getDispatcher(emit: string, socketMap: WeakMap<RealTimeConnection, any>, socketKey?: any): (event: string, channel: CombinedChannel, context: HookContext, data?: any) => void;
9
- export declare function runMethod(app: Application, connection: RealTimeConnection, path: string, method: string, args: any[]): void;
9
+ export declare function runMethod(app: Application, connection: RealTimeConnection, _path: string, _method: string, args: any[]): void;
@@ -52,7 +52,9 @@ function getDispatcher(emit, socketMap, socketKey) {
52
52
  };
53
53
  }
54
54
  exports.getDispatcher = getDispatcher;
55
- function runMethod(app, connection, path, method, args) {
55
+ function runMethod(app, connection, _path, _method, args) {
56
+ const path = typeof _path === 'string' ? _path : null;
57
+ const method = typeof _method === 'string' ? _method : null;
56
58
  const trace = `method '${method}' on service '${path}'`;
57
59
  const methodArgs = args.slice(0);
58
60
  const callback = typeof methodArgs[methodArgs.length - 1] === 'function'
@@ -68,7 +70,7 @@ function runMethod(app, connection, path, method, args) {
68
70
  // No valid service was found, return a 404
69
71
  // just like a REST route would
70
72
  if (lookup === null) {
71
- return Promise.reject(new errors_1.default.NotFound(`Service '${path}' not found`));
73
+ return Promise.reject(new errors_1.default.NotFound(path === null ? 'Invalid service path' : `Service '${path}' not found`));
72
74
  }
73
75
  const { service, params: route = {} } = lookup;
74
76
  // Only service methods are allowed
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/socket/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/socket/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@feathersjs/transport-commons",
3
3
  "description": "Shared functionality for websocket providers",
4
- "version": "4.5.17",
4
+ "version": "4.5.18",
5
5
  "homepage": "https://feathersjs.com",
6
6
  "main": "lib/",
7
7
  "types": "lib/",
@@ -59,5 +59,5 @@
59
59
  "ts-node": "^10.4.0",
60
60
  "typescript": "^4.5.4"
61
61
  },
62
- "gitHead": "022a407dab1e813d23b283d145dfff9a870541ee"
62
+ "gitHead": "2d3671d2e3ff88034181bccf2bfda04de856aa4f"
63
63
  }
@@ -15,7 +15,13 @@ export interface SocketOptions {
15
15
  getParams: (socket: any) => RealTimeConnection;
16
16
  }
17
17
 
18
- export function socket ({ done, emit, socketMap, socketKey, getParams }: SocketOptions) {
18
+ export function socket ({
19
+ done,
20
+ emit,
21
+ socketMap,
22
+ socketKey,
23
+ getParams
24
+ }: SocketOptions) {
19
25
  return (app: Application) => {
20
26
  const leaveChannels = (connection: RealTimeConnection) => {
21
27
  const { channels } = app;
@@ -39,53 +45,71 @@ export function socket ({ done, emit, socketMap, socketKey, getParams }: SocketO
39
45
  });
40
46
 
41
47
  // `connection` event
42
- done.then(provider => provider.on('connection', (connection: any) =>
43
- app.emit('connection', getParams(connection)))
48
+ done.then((provider) =>
49
+ provider.on('connection', (connection: any) =>
50
+ app.emit('connection', getParams(connection))
51
+ )
44
52
  );
45
53
 
46
54
  // `socket.emit('methodName', 'serviceName', ...args)` handlers
47
- done.then(provider => provider.on('connection', (connection: any) => {
48
- for (const method of app.methods) {
49
- connection.on(method, (...args: any[]) => {
50
- const path = args.shift();
55
+ done.then((provider) =>
56
+ provider.on('connection', (connection: any) => {
57
+ for (const method of app.methods) {
58
+ connection.on(method, (...args: any[]) => {
59
+ const [path, ...rest] = args;
51
60
 
52
- debug(`Got '${method}' call for service '${path}'`);
53
- runMethod(app, getParams(connection), path, method, args);
54
- });
55
- }
56
-
57
- connection.on('authenticate', (...args: any[]) => {
58
- if (app.get('defaultAuthentication')) {
59
- debug('Got legacy authenticate event');
60
- runMethod(app, getParams(connection), app.get('defaultAuthentication'), 'create', args);
61
+ runMethod(app, getParams(connection), path, method, rest);
62
+ });
61
63
  }
62
- });
63
64
 
64
- connection.on('logout', (callback: any) => {
65
- if (app.get('defaultAuthentication')) {
66
- debug('Got legacy authenticate event');
67
- runMethod(app, getParams(connection), app.get('defaultAuthentication'), 'remove', [ null, {}, callback ]);
68
- }
69
- });
70
- }));
65
+ connection.on('authenticate', (...args: any[]) => {
66
+ if (app.get('defaultAuthentication')) {
67
+ debug('Got legacy authenticate event');
68
+ runMethod(
69
+ app,
70
+ getParams(connection),
71
+ app.get('defaultAuthentication'),
72
+ 'create',
73
+ args
74
+ );
75
+ }
76
+ });
77
+
78
+ connection.on('logout', (callback: any) => {
79
+ if (app.get('defaultAuthentication')) {
80
+ debug('Got legacy authenticate event');
81
+ runMethod(
82
+ app,
83
+ getParams(connection),
84
+ app.get('defaultAuthentication'),
85
+ 'remove',
86
+ [null, {}, callback]
87
+ );
88
+ }
89
+ });
90
+ })
91
+ );
71
92
 
72
93
  // Legacy `socket.emit('serviceName::methodName', ...args)` handlers
73
- app.mixins.push((service, path) => done.then(provider => {
74
- provider.on('connection', (socket: any) => {
75
- const methods = app.methods.filter(current =>
76
- // @ts-ignore
77
- typeof service[current] === 'function'
78
- );
94
+ app.mixins.push((service, path) =>
95
+ done.then((provider) => {
96
+ provider.on('connection', (socket: any) => {
97
+ const methods = app.methods.filter(
98
+ (current) =>
99
+ // @ts-ignore
100
+ typeof service[current] === 'function'
101
+ );
79
102
 
80
- for (const method of methods) {
81
- const eventName = `${path}::${method}`;
103
+ for (const method of methods) {
104
+ const eventName = `${path}::${method}`;
82
105
 
83
- socket.on(eventName, (...args: any[]) => {
84
- debug(`Got legacy method call '${eventName}'`);
85
- runMethod(app, getParams(socket), path, method, args);
86
- });
87
- }
88
- });
89
- }));
106
+ socket.on(eventName, (...args: any[]) => {
107
+ debug(`Got legacy method call '${eventName}'`);
108
+ runMethod(app, getParams(socket), path, method, args);
109
+ });
110
+ }
111
+ });
112
+ })
113
+ );
90
114
  };
91
115
  }
@@ -62,7 +62,9 @@ export function getDispatcher (emit: string, socketMap: WeakMap<RealTimeConnecti
62
62
  };
63
63
  }
64
64
 
65
- export function runMethod (app: Application, connection: RealTimeConnection, path: string, method: string, args: any[]) {
65
+ export function runMethod (app: Application, connection: RealTimeConnection, _path: string, _method: string, args: any[]) {
66
+ const path = typeof _path === 'string' ? _path : null
67
+ const method = typeof _method === 'string' ? _method : null
66
68
  const trace = `method '${method}' on service '${path}'`;
67
69
  const methodArgs = args.slice(0);
68
70
  const callback = typeof methodArgs[methodArgs.length - 1] === 'function'
@@ -81,7 +83,7 @@ export function runMethod (app: Application, connection: RealTimeConnection, pat
81
83
  // No valid service was found, return a 404
82
84
  // just like a REST route would
83
85
  if (lookup === null) {
84
- return Promise.reject(new errors.NotFound(`Service '${path}' not found`));
86
+ return Promise.reject(new errors.NotFound(path === null ? 'Invalid service path' : `Service '${path}' not found`));
85
87
  }
86
88
 
87
89
  const { service, params: route = {} } = lookup;