@fastybird/smart-panel-backend 1.1.0-alpha.2 → 1.1.0-alpha.4

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 (75) hide show
  1. package/dist/common/filters/conflict-exception.filter.d.ts +6 -0
  2. package/dist/common/filters/conflict-exception.filter.js +59 -0
  3. package/dist/common/filters/conflict-exception.filter.js.map +1 -0
  4. package/dist/common/filters/global-error.filter.js +1 -4
  5. package/dist/common/filters/global-error.filter.js.map +1 -1
  6. package/dist/common/filters/global-filters.d.ts +3 -0
  7. package/dist/common/filters/global-filters.js +22 -0
  8. package/dist/common/filters/global-filters.js.map +1 -0
  9. package/dist/common/filters/unprocessable-entity-exception.filter.d.ts +1 -0
  10. package/dist/common/filters/unprocessable-entity-exception.filter.js +15 -3
  11. package/dist/common/filters/unprocessable-entity-exception.filter.js.map +1 -1
  12. package/dist/common/utils/transform.utils.js +3 -0
  13. package/dist/common/utils/transform.utils.js.map +1 -1
  14. package/dist/main.js +2 -7
  15. package/dist/main.js.map +1 -1
  16. package/dist/modules/platform/services/platform.service.d.ts +13 -4
  17. package/dist/modules/platform/services/platform.service.js +57 -35
  18. package/dist/modules/platform/services/platform.service.js.map +1 -1
  19. package/dist/modules/remote-access/dto/update-config.dto.js +5 -0
  20. package/dist/modules/remote-access/dto/update-config.dto.js.map +1 -1
  21. package/dist/modules/remote-access/validators/is-remote-access-url.validator.js +5 -2
  22. package/dist/modules/remote-access/validators/is-remote-access-url.validator.js.map +1 -1
  23. package/dist/modules/system/services/privileged-worker.service.d.ts +10 -0
  24. package/dist/modules/system/services/privileged-worker.service.js +137 -11
  25. package/dist/modules/system/services/privileged-worker.service.js.map +1 -1
  26. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.d.ts +2 -0
  27. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js +143 -102
  28. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js.map +1 -1
  29. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.d.ts +4 -0
  30. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js +18 -1
  31. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js.map +1 -1
  32. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js +8 -11
  33. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js.map +1 -1
  34. package/dist/plugins/devices-shelly-ng/mappings/mapping-loader.service.js +4 -0
  35. package/dist/plugins/devices-shelly-ng/mappings/mapping-loader.service.js.map +1 -1
  36. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.d.ts +0 -1
  37. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js +7 -12
  38. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js.map +1 -1
  39. package/dist/plugins/devices-shelly-ng/utils/transform.utils.d.ts +2 -0
  40. package/dist/plugins/devices-shelly-ng/utils/transform.utils.js +14 -1
  41. package/dist/plugins/devices-shelly-ng/utils/transform.utils.js.map +1 -1
  42. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.d.ts +1 -0
  43. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.js +26 -10
  44. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.js.map +1 -1
  45. package/dist/plugins/remote-access-tailscale/controllers/status.controller.d.ts +6 -1
  46. package/dist/plugins/remote-access-tailscale/controllers/status.controller.js +28 -3
  47. package/dist/plugins/remote-access-tailscale/controllers/status.controller.js.map +1 -1
  48. package/dist/plugins/remote-access-tailscale/models/status.model.d.ts +19 -0
  49. package/dist/plugins/remote-access-tailscale/models/status.model.js +158 -1
  50. package/dist/plugins/remote-access-tailscale/models/status.model.js.map +1 -1
  51. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.d.ts +13 -0
  52. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.js +27 -0
  53. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.js.map +1 -0
  54. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.d.ts +2 -2
  55. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.js +2 -0
  56. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.js.map +1 -1
  57. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.plugin.js +1 -1
  58. package/dist/plugins/remote-access-tailscale/scripts/tailscale-setup.sh +61 -0
  59. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.d.ts +9 -0
  60. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.js +12 -0
  61. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.js.map +1 -1
  62. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.d.ts +1 -0
  63. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js +23 -2
  64. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js.map +1 -1
  65. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.d.ts +26 -0
  66. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js +245 -29
  67. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js.map +1 -1
  68. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.d.ts +8 -3
  69. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.js +39 -12
  70. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.js.map +1 -1
  71. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.d.ts +14 -5
  72. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.js +51 -16
  73. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.js.map +1 -1
  74. package/dist/tsconfig.build.tsbuildinfo +1 -1
  75. package/package.json +2 -2
@@ -0,0 +1,6 @@
1
+ import { FastifyReply as Response } from 'fastify';
2
+ import { ArgumentsHost, ConflictException, ExceptionFilter } from '@nestjs/common';
3
+ export declare class ConflictExceptionFilter implements ExceptionFilter {
4
+ catch(exception: ConflictException, host: ArgumentsHost): Response<import("fastify").RouteGenericInterface, import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, unknown, import("fastify").FastifySchema, import("fastify").FastifyTypeProviderDefault, unknown>;
5
+ private extractApplicationCode;
6
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ConflictExceptionFilter = void 0;
10
+ const uuid_1 = require("uuid");
11
+ const common_1 = require("@nestjs/common");
12
+ const app_constants_1 = require("../../app.constants");
13
+ let ConflictExceptionFilter = class ConflictExceptionFilter {
14
+ catch(exception, host) {
15
+ const ctx = host.switchToHttp();
16
+ const request = ctx.getRequest();
17
+ const response = ctx.getResponse();
18
+ const status = exception.getStatus() || common_1.HttpStatus.CONFLICT;
19
+ const exceptionResponse = exception.getResponse();
20
+ const requestId = (0, uuid_1.v4)();
21
+ const details = {
22
+ reason: exception.message,
23
+ };
24
+ const applicationCode = this.extractApplicationCode(exceptionResponse);
25
+ if (applicationCode !== undefined) {
26
+ details.code = applicationCode;
27
+ }
28
+ return response
29
+ .code(status)
30
+ .type('application/json')
31
+ .send({
32
+ status: app_constants_1.RequestResultState.ERROR,
33
+ timestamp: new Date().toISOString(),
34
+ request_id: requestId,
35
+ path: request.originalUrl,
36
+ method: request.method,
37
+ error: {
38
+ code: 'ConflictError',
39
+ message: exception.message,
40
+ details,
41
+ },
42
+ metadata: {
43
+ server_time: new Date().toISOString(),
44
+ },
45
+ });
46
+ }
47
+ extractApplicationCode(exceptionResponse) {
48
+ if (typeof exceptionResponse === 'object' && exceptionResponse !== null && 'code' in exceptionResponse) {
49
+ const code = exceptionResponse.code;
50
+ return typeof code === 'string' ? code : undefined;
51
+ }
52
+ return undefined;
53
+ }
54
+ };
55
+ exports.ConflictExceptionFilter = ConflictExceptionFilter;
56
+ exports.ConflictExceptionFilter = ConflictExceptionFilter = __decorate([
57
+ (0, common_1.Catch)(common_1.ConflictException)
58
+ ], ConflictExceptionFilter);
59
+ //# sourceMappingURL=conflict-exception.filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflict-exception.filter.js","sourceRoot":"","sources":["../../../src/common/filters/conflict-exception.filter.ts"],"names":[],"mappings":";;;;;;;;;AACA,+BAAoC;AAEpC,2CAAsG;AAEtG,uDAAyD;AAkBlD,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IACnC,KAAK,CAAC,SAA4B,EAAE,IAAmB;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAW,CAAC;QAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAY,CAAC;QAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,mBAAU,CAAC,QAAQ,CAAC;QAC5D,MAAM,iBAAiB,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,IAAA,SAAM,GAAE,CAAC;QAE3B,MAAM,OAAO,GAAsC;YAClD,MAAM,EAAE,SAAS,CAAC,OAAO;SACzB,CAAC;QAEF,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;QAEvE,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,GAAG,eAAe,CAAC;QAChC,CAAC;QAED,OAAO,QAAQ;aACb,IAAI,CAAC,MAAM,CAAC;aACZ,IAAI,CAAC,kBAAkB,CAAC;aACxB,IAAI,CAAC;YACL,MAAM,EAAE,kCAAkB,CAAC,KAAK;YAChC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,OAAO,CAAC,WAAW;YACzB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE;gBACN,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,OAAO;aACP;YACD,QAAQ,EAAE;gBACT,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC;SACD,CAAC,CAAC;IACL,CAAC;IASO,sBAAsB,CAAC,iBAA0B;QACxD,IAAI,OAAO,iBAAiB,KAAK,QAAQ,IAAI,iBAAiB,KAAK,IAAI,IAAI,MAAM,IAAI,iBAAiB,EAAE,CAAC;YACxG,MAAM,IAAI,GAAI,iBAA6C,CAAC,IAAI,CAAC;YAEjE,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACpD,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;CACD,CAAA;AAvDY,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,cAAK,EAAC,0BAAiB,CAAC;GACZ,uBAAuB,CAuDnC"}
@@ -41,7 +41,6 @@ let GlobalErrorFilter = GlobalErrorFilter_1 = class GlobalErrorFilter {
41
41
  exceptionMessage = 'Unknown error';
42
42
  }
43
43
  this.logger.error(`[ERROR] [GlobalErrorFilter] ${request.method} ${request.originalUrl} ${status} - ${exceptionMessage}`, exception instanceof Error ? exception.stack : undefined);
44
- const isProduction = process.env.NODE_ENV === 'production';
45
44
  const errorResponse = {
46
45
  status: app_constants_1.RequestResultState.ERROR,
47
46
  timestamp: new Date().toISOString(),
@@ -51,9 +50,7 @@ let GlobalErrorFilter = GlobalErrorFilter_1 = class GlobalErrorFilter {
51
50
  error: {
52
51
  code: exception instanceof common_1.HttpException ? exception.name : 'InternalServerError',
53
52
  message: errorMessage,
54
- details: !isProduction && exception instanceof common_1.HttpException
55
- ? exception.getResponse()
56
- : { reason: 'An unexpected server error occurred.' },
53
+ details: { reason: 'An unexpected server error occurred.' },
57
54
  },
58
55
  metadata: {
59
56
  server_time: new Date().toISOString(),
@@ -1 +1 @@
1
- {"version":3,"file":"global-error.filter.js","sourceRoot":"","sources":["../../../src/common/filters/global-error.filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"global-error.filter.js","sourceRoot":"","sources":["../../../src/common/filters/global-error.filter.ts"],"names":[],"mappings":";;;;;;;;;;AACA,+BAAoC;AAEpC,2CAA0G;AAE1G,uDAAyD;AAclD,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAAvB;QACW,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;IAoD9D,CAAC;IAlDA,KAAK,CAAC,SAAkB,EAAE,IAAmB;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAW,CAAC;QAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAY,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAA,SAAM,GAAE,CAAC;QAG3B,MAAM,MAAM,GAAG,SAAS,YAAY,sBAAa,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,mBAAU,CAAC,qBAAqB,CAAC;QAE7G,MAAM,YAAY,GAAG,SAAS,YAAY,sBAAa,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC;QAE9G,IAAI,gBAAwB,CAAC;QAC7B,IAAI,SAAS,YAAY,KAAK,EAAE,CAAC;YAChC,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC;QACtC,CAAC;aAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAChE,IAAI,CAAC;gBACJ,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBAER,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAW,CAAC;YACxE,CAAC;QACF,CAAC;aAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC1C,gBAAgB,GAAG,SAAS,CAAC;QAC9B,CAAC;aAAM,CAAC;YACP,gBAAgB,GAAG,eAAe,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAChB,+BAA+B,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,WAAW,IAAI,MAAM,MAAM,gBAAgB,EAAE,EACtG,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CACxD,CAAC;QAEF,MAAM,aAAa,GAAG;YACrB,MAAM,EAAE,kCAAkB,CAAC,KAAK;YAChC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,OAAO,CAAC,WAAW;YACzB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE;gBACN,IAAI,EAAE,SAAS,YAAY,sBAAa,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB;gBACjF,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,EAAE,MAAM,EAAE,sCAAsC,EAAE;aAC3D;YACD,QAAQ,EAAE;gBACT,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC;SACD,CAAC;QAEF,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpE,CAAC;CACD,CAAA;AArDY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,cAAK,GAAE;GACK,iBAAiB,CAqD7B"}
@@ -0,0 +1,3 @@
1
+ import { ExceptionFilter } from '@nestjs/common';
2
+ import { ConfigService } from '@nestjs/config';
3
+ export declare function createGlobalExceptionFilters(configService: ConfigService): ExceptionFilter[];
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createGlobalExceptionFilters = createGlobalExceptionFilters;
4
+ const bad_request_exception_filter_1 = require("./bad-request-exception.filter");
5
+ const conflict_exception_filter_1 = require("./conflict-exception.filter");
6
+ const global_error_filter_1 = require("./global-error.filter");
7
+ const internal_server_error_exception_filter_1 = require("./internal-server-error-exception.filter");
8
+ const not_found_exception_filter_1 = require("./not-found-exception.filter");
9
+ const query_failed_exception_filter_1 = require("./query-failed-exception.filter");
10
+ const unprocessable_entity_exception_filter_1 = require("./unprocessable-entity-exception.filter");
11
+ function createGlobalExceptionFilters(configService) {
12
+ return [
13
+ new global_error_filter_1.GlobalErrorFilter(),
14
+ new internal_server_error_exception_filter_1.InternalServerErrorExceptionFilter(),
15
+ new bad_request_exception_filter_1.BadRequestExceptionFilter(),
16
+ new conflict_exception_filter_1.ConflictExceptionFilter(),
17
+ new unprocessable_entity_exception_filter_1.UnprocessableEntityExceptionFilter(),
18
+ new not_found_exception_filter_1.NotFoundExceptionFilter(configService),
19
+ new query_failed_exception_filter_1.QueryFailedExceptionFilter(),
20
+ ];
21
+ }
22
+ //# sourceMappingURL=global-filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-filters.js","sourceRoot":"","sources":["../../../src/common/filters/global-filters.ts"],"names":[],"mappings":";;AA0BA,oEAUC;AAjCD,iFAA2E;AAC3E,2EAAsE;AACtE,+DAA0D;AAC1D,qGAA8F;AAC9F,6EAAuE;AACvE,mFAA6E;AAC7E,mGAA6F;AAiB7F,SAAgB,4BAA4B,CAAC,aAA4B;IACxE,OAAO;QACN,IAAI,uCAAiB,EAAE;QACvB,IAAI,2EAAkC,EAAE;QACxC,IAAI,wDAAyB,EAAE;QAC/B,IAAI,mDAAuB,EAAE;QAC7B,IAAI,0EAAkC,EAAE;QACxC,IAAI,oDAAuB,CAAC,aAAa,CAAC;QAC1C,IAAI,0DAA0B,EAAE;KAChC,CAAC;AACH,CAAC"}
@@ -2,4 +2,5 @@ import { FastifyReply as Response } from 'fastify';
2
2
  import { ArgumentsHost, ExceptionFilter, UnprocessableEntityException } from '@nestjs/common';
3
3
  export declare class UnprocessableEntityExceptionFilter implements ExceptionFilter {
4
4
  catch(exception: UnprocessableEntityException, host: ArgumentsHost): Response<import("fastify").RouteGenericInterface, import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, unknown, import("fastify").FastifySchema, import("fastify").FastifyTypeProviderDefault, unknown>;
5
+ private extractApplicationCode;
5
6
  }
@@ -18,6 +18,13 @@ let UnprocessableEntityExceptionFilter = class UnprocessableEntityExceptionFilte
18
18
  const status = exception.getStatus() || common_1.HttpStatus.INTERNAL_SERVER_ERROR;
19
19
  const exceptionResponse = exception.getResponse();
20
20
  const requestId = (0, uuid_1.v4)();
21
+ const details = {
22
+ reason: exceptionResponse.message || `The data provided could not be processed in its current state.`,
23
+ };
24
+ const applicationCode = this.extractApplicationCode(exception.getResponse());
25
+ if (applicationCode !== undefined) {
26
+ details.code = applicationCode;
27
+ }
21
28
  return response
22
29
  .code(status)
23
30
  .type('application/json')
@@ -30,15 +37,20 @@ let UnprocessableEntityExceptionFilter = class UnprocessableEntityExceptionFilte
30
37
  error: {
31
38
  code: 'UnprocessableEntity',
32
39
  message: 'The request could not be processed due to semantic issues.',
33
- details: {
34
- reason: exceptionResponse.message || `The data provided could not be processed in its current state.`,
35
- },
40
+ details,
36
41
  },
37
42
  metadata: {
38
43
  server_time: new Date().toISOString(),
39
44
  },
40
45
  });
41
46
  }
47
+ extractApplicationCode(exceptionResponse) {
48
+ if (typeof exceptionResponse === 'object' && exceptionResponse !== null && 'code' in exceptionResponse) {
49
+ const code = exceptionResponse.code;
50
+ return typeof code === 'string' ? code : undefined;
51
+ }
52
+ return undefined;
53
+ }
42
54
  };
43
55
  exports.UnprocessableEntityExceptionFilter = UnprocessableEntityExceptionFilter;
44
56
  exports.UnprocessableEntityExceptionFilter = UnprocessableEntityExceptionFilter = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"unprocessable-entity-exception.filter.js","sourceRoot":"","sources":["../../../src/common/filters/unprocessable-entity-exception.filter.ts"],"names":[],"mappings":";;;;;;;;;AACA,+BAAoC;AAEpC,2CAAiH;AAEjH,uDAAyD;AAGlD,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;IAC9C,KAAK,CAAC,SAAuC,EAAE,IAAmB;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAW,CAAC;QAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAY,CAAC;QAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,mBAAU,CAAC,qBAAqB,CAAC;QACzE,MAAM,iBAAiB,GAAG,SAAS,CAAC,WAAW,EAE9C,CAAC;QACF,MAAM,SAAS,GAAG,IAAA,SAAM,GAAE,CAAC;QAE3B,OAAO,QAAQ;aACb,IAAI,CAAC,MAAM,CAAC;aACZ,IAAI,CAAC,kBAAkB,CAAC;aACxB,IAAI,CAAC;YACL,MAAM,EAAE,kCAAkB,CAAC,KAAK;YAChC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,OAAO,CAAC,WAAW;YACzB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE;gBACN,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,4DAA4D;gBACrE,OAAO,EAAE;oBACR,MAAM,EAAE,iBAAiB,CAAC,OAAO,IAAI,gEAAgE;iBACrG;aACD;YACD,QAAQ,EAAE;gBACT,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC;SACD,CAAC,CAAC;IACL,CAAC;CACD,CAAA;AAhCY,gFAAkC;6CAAlC,kCAAkC;IAD9C,IAAA,cAAK,EAAC,qCAA4B,CAAC;GACvB,kCAAkC,CAgC9C"}
1
+ {"version":3,"file":"unprocessable-entity-exception.filter.js","sourceRoot":"","sources":["../../../src/common/filters/unprocessable-entity-exception.filter.ts"],"names":[],"mappings":";;;;;;;;;AACA,+BAAoC;AAEpC,2CAAiH;AAEjH,uDAAyD;AAGlD,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;IAC9C,KAAK,CAAC,SAAuC,EAAE,IAAmB;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAW,CAAC;QAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAY,CAAC;QAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,mBAAU,CAAC,qBAAqB,CAAC;QACzE,MAAM,iBAAiB,GAAG,SAAS,CAAC,WAAW,EAE9C,CAAC;QACF,MAAM,SAAS,GAAG,IAAA,SAAM,GAAE,CAAC;QAE3B,MAAM,OAAO,GAAuC;YACnD,MAAM,EAAE,iBAAiB,CAAC,OAAO,IAAI,gEAAgE;SACrG,CAAC;QAMF,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAE7E,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,GAAG,eAAe,CAAC;QAChC,CAAC;QAED,OAAO,QAAQ;aACb,IAAI,CAAC,MAAM,CAAC;aACZ,IAAI,CAAC,kBAAkB,CAAC;aACxB,IAAI,CAAC;YACL,MAAM,EAAE,kCAAkB,CAAC,KAAK;YAChC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,OAAO,CAAC,WAAW;YACzB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE;gBACN,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,4DAA4D;gBACrE,OAAO;aACP;YACD,QAAQ,EAAE;gBACT,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC;SACD,CAAC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,iBAA0B;QACxD,IAAI,OAAO,iBAAiB,KAAK,QAAQ,IAAI,iBAAiB,KAAK,IAAI,IAAI,MAAM,IAAI,iBAAiB,EAAE,CAAC;YACxG,MAAM,IAAI,GAAI,iBAA6C,CAAC,IAAI,CAAC;YAEjE,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACpD,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;CACD,CAAA;AAtDY,gFAAkC;6CAAlC,kCAAkC;IAD9C,IAAA,cAAK,EAAC,qCAA4B,CAAC;GACvB,kCAAkC,CAsD9C"}
@@ -47,6 +47,9 @@ const coerceNumberSafe = (input, opts = {}) => {
47
47
  if (input === null) {
48
48
  return opts.allowNull ? null : 0;
49
49
  }
50
+ if (typeof input !== 'number' && typeof input !== 'string' && typeof input !== 'boolean') {
51
+ return null;
52
+ }
50
53
  if (typeof input === 'number') {
51
54
  if (!Number.isFinite(input)) {
52
55
  return 0;
@@ -1 +1 @@
1
- {"version":3,"file":"transform.utils.js","sourceRoot":"","sources":["../../../src/common/utils/transform.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform.utils.js","sourceRoot":"","sources":["../../../src/common/utils/transform.utils.ts"],"names":[],"mappings":"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"}
package/dist/main.js CHANGED
@@ -15,12 +15,7 @@ const core_1 = require("@nestjs/core");
15
15
  const platform_fastify_1 = require("@nestjs/platform-fastify");
16
16
  const app_constants_1 = require("./app.constants");
17
17
  const app_module_1 = require("./app.module");
18
- const bad_request_exception_filter_1 = require("./common/filters/bad-request-exception.filter");
19
- const global_error_filter_1 = require("./common/filters/global-error.filter");
20
- const internal_server_error_exception_filter_1 = require("./common/filters/internal-server-error-exception.filter");
21
- const not_found_exception_filter_1 = require("./common/filters/not-found-exception.filter");
22
- const query_failed_exception_filter_1 = require("./common/filters/query-failed-exception.filter");
23
- const unprocessable_entity_exception_filter_1 = require("./common/filters/unprocessable-entity-exception.filter");
18
+ const global_filters_1 = require("./common/filters/global-filters");
24
19
  const app_instance_holder_service_1 = require("./common/services/app-instance-holder.service");
25
20
  const config_utils_1 = require("./common/utils/config.utils");
26
21
  const validation_exception_factory_1 = require("./common/validation/validation-exception-factory");
@@ -92,7 +87,7 @@ async function bootstrap() {
92
87
  decorateReply: true,
93
88
  });
94
89
  }
95
- app.useGlobalFilters(new global_error_filter_1.GlobalErrorFilter(), new internal_server_error_exception_filter_1.InternalServerErrorExceptionFilter(), new bad_request_exception_filter_1.BadRequestExceptionFilter(), new unprocessable_entity_exception_filter_1.UnprocessableEntityExceptionFilter(), new not_found_exception_filter_1.NotFoundExceptionFilter(configService), new query_failed_exception_filter_1.QueryFailedExceptionFilter());
90
+ app.useGlobalFilters(...(0, global_filters_1.createGlobalExceptionFilters)(configService));
96
91
  app.useGlobalPipes(new common_1.ValidationPipe({
97
92
  transform: true,
98
93
  whitelist: true,
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;;;AAAA,qDAA+C;AAE/C,2BAAgC;AAChC,gDAAwB;AAExB,6DAAqC;AACrC,mEAAkD;AAClD,6DAA4C;AAC5C,2CAAgE;AAChE,2CAAoE;AACpE,uCAA2C;AAC3C,+DAAkF;AAElF,mDAA4F;AAC5F,6CAAyC;AACzC,gGAA0F;AAC1F,8EAAyE;AACzE,oHAA6G;AAC7G,4FAAsF;AACtF,kGAA4F;AAC5F,kHAA4G;AAC5G,+FAAkF;AAClF,8DAA0D;AAC1D,mGAA8F;AAC9F,4FAAuF;AACvF,yGAAmG;AACnG,+DAA8F;AAC9F,oGAA8F;AAC9F,uEAAmE;AACnE,2FAAsF;AACtF,wEAAyE;AACzE,qFAAiF;AAEjF,KAAK,UAAU,SAAS;IACvB,MAAM,UAAU,GAAG,MAAM,IAAA,oDAAuB,GAAE,CAAC;IAEnD,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO;SACzC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;SAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,cAAc,EAAE,CAAC,CAAC,cAAc;KAChC,CAAC,CAAC,CAAC;IAEL,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO;SACzC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;SAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,cAAc,EAAE,CAAC,CAAC,cAAc;KAChC,CAAC,CAAC,CAAC;IAEL,MAAM,SAAS,GAAG,sBAAS,CAAC,QAAQ,CAAC;QACpC,gBAAgB;QAChB,gBAAgB;KAChB,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAyB,SAAS,EAAE,IAAI,iCAAc,EAAE,EAAE;QAC7F,UAAU,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAI1B,MAAM,eAAe,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE,CAAC;IAE3D,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS;QACvC,WAAW,8BAAc,gCAAgC;QACzD,WAAW,8BAAc,IAAI,uCAAoB,iBAAiB;KAClE,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,IAAI,0BAAU,OAAO,8BAAc,IAAI,iCAAiB,EAAE,CAAC;IAE5E,eAAe,CAAC,OAAO,CACtB,SAAS,EACT,CAAC,YAA6F,EAAE,EAAE;QAEjG,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,IAAI,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC;QAEzD,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,YAAY,CAAC,SAAS,GAAG,6CAA6B,CAAC;QACxD,CAAC;aAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,YAAY,CAAC,SAAS,GAAG,4CAA4B,CAAC;QACvD,CAAC;IACF,CAAC,CACD,CAAC;IAIF,MAAM,GAAG,CAAC,QAAQ,CAAC,gBAAM,EAAE;QAC1B,qBAAqB,EAAE,KAAK;KAC5B,CAAC,CAAC;IAKH,MAAM,GAAG,CAAC,QAAQ,CAAC,mBAAuB,EAAE;QAC3C,MAAM,EAAE,EAAE,QAAQ,EAAE,6CAA6B,EAAE;KACnD,CAAC,CAAC;IAGH,MAAM,iBAAiB,GAAG,GAAG,CAAC,GAAG,CAAC,+CAAiB,CAAC,CAAC;IACrD,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAE9B,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,2CAAmB,CAAC,CAAC;IAE/C,SAAS,CAAC,GAAG,CAAC,iCAAiC,gBAAgB,CAAC,MAAM,cAAc,gBAAgB,CAAC,MAAM,EAAE,EAAE;QAC9G,WAAW;KACX,CAAC,CAAC;IAEH,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAEzB,MAAM,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,sBAAiB,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,IAAA,0BAAW,EAAS,aAAa,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAKzE,MAAM,UAAU,GAAG,IAAA,0BAAW,EAAS,aAAa,EAAE,kBAAkB,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAEhH,IAAI,IAAA,eAAU,EAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QAErD,MAAM,GAAG,CAAC,QAAQ,CAAC,gBAAoB,EAAE;YACxC,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;SACnB,CAAC,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,gBAAgB,CACnB,IAAI,uCAAiB,EAAE,EACvB,IAAI,2EAAkC,EAAE,EACxC,IAAI,wDAAyB,EAAE,EAC/B,IAAI,0EAAkC,EAAE,EACxC,IAAI,oDAAuB,CAAC,aAAa,CAAC,EAC1C,IAAI,0DAA0B,EAAE,CAChC,CAAC;IAEF,GAAG,CAAC,cAAc,CACjB,IAAI,uBAAc,CAAC;QAClB,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;QACf,oBAAoB,EAAE,IAAI;QAC1B,gBAAgB,EAAE;YACjB,wBAAwB,EAAE,IAAI;SAC9B;QACD,gBAAgB,EAAE,CAAC,gBAAgB,EAAE,EAAE;YACtC,OAAO,yDAA0B,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QACrE,CAAC;KACD,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,eAAe,CAAC,0BAAU,CAAC,CAAC;IAEhC,GAAG,CAAC,gBAAgB,CAAC;QACpB,IAAI,EAAE,uBAAc,CAAC,GAAG;QACxB,cAAc,EAAE,GAAG;KACnB,CAAC,CAAC;IAGH,IAAA,8BAAY,EAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,MAAM,gBAAgB,GAAG,GAAG,CAAC,GAAG,CAAC,oCAAgB,CAAC,CAAC;IACnD,gBAAgB,CAAC,MAAM,EAAE,CAAC;IAE1B,GAAG,CAAC,GAAG,CAAC,sDAAwB,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAE5D,GAAG,CAAC,UAAU,EAAE,CAAC;IAMjB,MAAM,oBAAoB,GAAG,GAAG,CAAC,GAAG,CAAC,6CAAoB,CAAC,CAAC;IAE3D,MAAM,oBAAoB,GAAG,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAiB,EAAE;QAClG,IAAI,CAAC;YACJ,MAAM,KAAK,GAAG,OAAO,CAAC,KAA+B,CAAC;YACtD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YAClF,MAAM,IAAI,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAEtG,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC;YACxF,MAAM,IAAI,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAEzE,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;IACF,CAAC,CAAC;IAGF,eAAe,CAAC,GAAG,CAAC,gBAAgB,EAAE,oBAA2B,CAAC,CAAC;IAEnE,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAKlC,GAAG,CAAC,GAAG,CAAC,0BAAW,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;IAClC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,25 @@
1
1
  import { PlatformType } from '../platform.constants';
2
+ export interface PrivilegedWorkerSupport {
3
+ supported: boolean;
4
+ reason: string | null;
5
+ checkedAt: string;
6
+ }
2
7
  export declare class PlatformService {
3
8
  private platform;
4
9
  private platformType;
5
10
  private readonly logger;
6
11
  private readonly platformDetection;
7
- private privilegedWorkersSupportedPromise;
12
+ private privilegedWorkerSupportCache;
13
+ private privilegedWorkerSupportCacheExpiresAt;
14
+ private privilegedWorkerSupportPromise;
8
15
  constructor();
9
16
  getPlatformType(): PlatformType;
10
17
  getPlatformTypeAsync(): Promise<PlatformType>;
11
18
  supportsPrivilegedWorkers(): Promise<boolean>;
12
- private probeSupportsPrivilegedWorkers;
19
+ getPrivilegedWorkerSupport(): Promise<PrivilegedWorkerSupport>;
20
+ isPlatformCapableOfPrivilegedWorkers(): boolean;
21
+ private getFreshPrivilegedWorkerSupportCache;
22
+ private probePrivilegedWorkerSupport;
13
23
  getSystemInfo(): Promise<import("../dto/system-info.dto").SystemInfoDto>;
14
24
  getThrottleStatus(): Promise<import("../dto/throttle-status.dto").ThrottleStatusDto>;
15
25
  getTemperature(): Promise<import("../dto/temperature.dto").TemperatureDto>;
@@ -24,7 +34,6 @@ export declare class PlatformService {
24
34
  private detectPlatform;
25
35
  private autoDetectPlatform;
26
36
  private isRaspberryPiHardware;
27
- private probeSudoNonInteractive;
28
- private probeSystemdRunAvailable;
37
+ private probeSystemdRunScope;
29
38
  private createPlatform;
30
39
  }
@@ -16,7 +16,6 @@ exports.PlatformService = void 0;
16
16
  const fs_1 = require("fs");
17
17
  const node_child_process_1 = require("node:child_process");
18
18
  const systeminformation_1 = __importDefault(require("systeminformation"));
19
- const util_1 = require("util");
20
19
  const common_1 = require("@nestjs/common");
21
20
  const logger_1 = require("../../../common/logger");
22
21
  const platform_constants_1 = require("../platform.constants");
@@ -25,16 +24,19 @@ const docker_platform_1 = require("../platforms/docker.platform");
25
24
  const generic_platform_1 = require("../platforms/generic.platform");
26
25
  const home_assistant_platform_1 = require("../platforms/home-assistant.platform");
27
26
  const raspberry_platform_1 = require("../platforms/raspberry.platform");
28
- const execFileAsync = (0, util_1.promisify)(node_child_process_1.execFile);
29
27
  const PRIVILEGED_WORKERS_UNSUPPORTED_PLATFORMS = new Set([
30
28
  platform_constants_1.PlatformType.DOCKER,
31
29
  platform_constants_1.PlatformType.HOME_ASSISTANT,
32
30
  platform_constants_1.PlatformType.DEVELOPMENT,
33
31
  ]);
32
+ const PRIVILEGED_WORKER_SUPPORT_NEGATIVE_CACHE_TTL_MS = 60_000;
33
+ const PRIVILEGED_WORKER_PROBE_TIMEOUT_MS = 5_000;
34
34
  let PlatformService = class PlatformService {
35
35
  constructor() {
36
36
  this.logger = (0, logger_1.createExtensionLogger)(platform_constants_1.PLATFORM_MODULE_NAME, 'PlatformService');
37
- this.privilegedWorkersSupportedPromise = null;
37
+ this.privilegedWorkerSupportCache = null;
38
+ this.privilegedWorkerSupportCacheExpiresAt = null;
39
+ this.privilegedWorkerSupportPromise = null;
38
40
  this.platformDetection = this.detectPlatform()
39
41
  .then(({ platform, type }) => {
40
42
  this.platform = platform;
@@ -58,21 +60,49 @@ let PlatformService = class PlatformService {
58
60
  return this.platformType;
59
61
  }
60
62
  async supportsPrivilegedWorkers() {
61
- if (this.privilegedWorkersSupportedPromise === null) {
62
- this.privilegedWorkersSupportedPromise = this.probeSupportsPrivilegedWorkers();
63
- }
64
- return this.privilegedWorkersSupportedPromise;
63
+ const { supported } = await this.getPrivilegedWorkerSupport();
64
+ return supported;
65
65
  }
66
- async probeSupportsPrivilegedWorkers() {
66
+ async getPrivilegedWorkerSupport() {
67
67
  await this.platformDetection;
68
+ const cached = this.getFreshPrivilegedWorkerSupportCache();
69
+ if (cached) {
70
+ return cached;
71
+ }
72
+ if (this.privilegedWorkerSupportPromise === null) {
73
+ this.privilegedWorkerSupportPromise = this.probePrivilegedWorkerSupport().finally(() => {
74
+ this.privilegedWorkerSupportPromise = null;
75
+ });
76
+ }
77
+ const result = await this.privilegedWorkerSupportPromise;
78
+ this.privilegedWorkerSupportCache = result;
79
+ this.privilegedWorkerSupportCacheExpiresAt =
80
+ result.supported || PRIVILEGED_WORKERS_UNSUPPORTED_PLATFORMS.has(this.platformType)
81
+ ? null
82
+ : Date.now() + PRIVILEGED_WORKER_SUPPORT_NEGATIVE_CACHE_TTL_MS;
83
+ return result;
84
+ }
85
+ isPlatformCapableOfPrivilegedWorkers() {
86
+ return !PRIVILEGED_WORKERS_UNSUPPORTED_PLATFORMS.has(this.platformType);
87
+ }
88
+ getFreshPrivilegedWorkerSupportCache() {
89
+ if (!this.privilegedWorkerSupportCache) {
90
+ return null;
91
+ }
92
+ const fresh = this.privilegedWorkerSupportCacheExpiresAt === null || Date.now() < this.privilegedWorkerSupportCacheExpiresAt;
93
+ return fresh ? this.privilegedWorkerSupportCache : null;
94
+ }
95
+ async probePrivilegedWorkerSupport() {
96
+ const checkedAt = new Date().toISOString();
68
97
  if (PRIVILEGED_WORKERS_UNSUPPORTED_PLATFORMS.has(this.platformType)) {
69
- return false;
98
+ return {
99
+ supported: false,
100
+ reason: `The '${this.platformType}' platform does not support privileged workers.`,
101
+ checkedAt,
102
+ };
70
103
  }
71
- const [sudoAvailable, systemdRunAvailable] = await Promise.all([
72
- this.probeSudoNonInteractive(),
73
- this.probeSystemdRunAvailable(),
74
- ]);
75
- return sudoAvailable && systemdRunAvailable;
104
+ const probe = await this.probeSystemdRunScope();
105
+ return { supported: probe.success, reason: probe.success ? null : probe.reason, checkedAt };
76
106
  }
77
107
  getSystemInfo() {
78
108
  this.logger.debug('Fetching system information');
@@ -160,27 +190,19 @@ let PlatformService = class PlatformService {
160
190
  }
161
191
  return false;
162
192
  }
163
- async probeSudoNonInteractive() {
164
- try {
165
- await execFileAsync('sudo', ['-n', '-l', '/usr/bin/systemd-run'], { timeout: 2000 });
166
- return true;
167
- }
168
- catch (error) {
169
- const err = error;
170
- this.logger.debug(`Passwordless sudo probe for systemd-run failed, treating privileged workers as unsupported: ${err.message}`);
171
- return false;
172
- }
173
- }
174
- async probeSystemdRunAvailable() {
175
- try {
176
- await execFileAsync('which', ['systemd-run'], { timeout: 2000 });
177
- return true;
178
- }
179
- catch (error) {
180
- const err = error;
181
- this.logger.debug(`systemd-run availability probe failed, treating privileged workers as unsupported: ${err.message}`);
182
- return false;
183
- }
193
+ async probeSystemdRunScope() {
194
+ const unit = `smart-panel-privileged-probe-${process.pid}`;
195
+ return new Promise((resolve) => {
196
+ (0, node_child_process_1.execFile)('sudo', ['-n', 'systemd-run', '--scope', '--quiet', `--unit=${unit}`, '/bin/true'], { timeout: PRIVILEGED_WORKER_PROBE_TIMEOUT_MS }, (error, _stdout, stderr) => {
197
+ if (!error) {
198
+ resolve({ success: true, reason: null });
199
+ return;
200
+ }
201
+ const detail = (stderr ?? '').toString().trim() || error.message;
202
+ this.logger.debug(`Privileged-worker probe (systemd-run scope) failed: ${detail}`);
203
+ resolve({ success: false, reason: detail });
204
+ });
205
+ });
184
206
  }
185
207
  createPlatform(type) {
186
208
  switch (type) {
@@ -1 +1 @@
1
- {"version":3,"file":"platform.service.js","sourceRoot":"","sources":["../../../../src/modules/platform/services/platform.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.service.js","sourceRoot":"","sources":["../../../../src/modules/platform/services/platform.service.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,9 @@ const config_dto_1 = require("../../config/dto/config.dto");
17
17
  const remote_access_constants_1 = require("../remote-access.constants");
18
18
  const is_remote_access_url_validator_1 = require("../validators/is-remote-access-url.validator");
19
19
  const is_trusted_proxy_entry_validator_1 = require("../validators/is-trusted-proxy-entry.validator");
20
+ function normalizeRemoteAccessUrlField({ value }) {
21
+ return typeof value === 'string' ? ((0, is_remote_access_url_validator_1.normalizeRemoteAccessUrl)(value) ?? value) : value;
22
+ }
20
23
  let UpdateRemoteAccessConfigDto = class UpdateRemoteAccessConfigDto extends config_dto_1.UpdateModuleConfigDto {
21
24
  constructor() {
22
25
  super(...arguments);
@@ -44,6 +47,7 @@ __decorate([
44
47
  }),
45
48
  (0, class_transformer_1.Expose)({ name: 'internal_url' }),
46
49
  (0, class_validator_1.IsOptional)(),
50
+ (0, class_transformer_1.Transform)(normalizeRemoteAccessUrlField),
47
51
  (0, class_validator_1.Validate)(is_remote_access_url_validator_1.IsRemoteAccessUrlConstraint, {
48
52
  message: '[{"field":"internal_url","reason":"Internal URL must be a normalized absolute HTTP(S) origin without a path, query, fragment, or credentials."}]',
49
53
  }),
@@ -60,6 +64,7 @@ __decorate([
60
64
  }),
61
65
  (0, class_transformer_1.Expose)({ name: 'external_url' }),
62
66
  (0, class_validator_1.IsOptional)(),
67
+ (0, class_transformer_1.Transform)(normalizeRemoteAccessUrlField),
63
68
  (0, class_validator_1.Validate)(is_remote_access_url_validator_1.IsRemoteAccessUrlConstraint, {
64
69
  message: '[{"field":"external_url","reason":"External URL must be a normalized absolute HTTP(S) origin without a path, query, fragment, or credentials."}]',
65
70
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"update-config.dto.js","sourceRoot":"","sources":["../../../../src/modules/remote-access/dto/update-config.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAA2C;AAC3C,qDAA8G;AAE9G,6CAA8E;AAE9E,4DAAoE;AACpE,wEAAuE;AACvE,iGAA2F;AAC3F,qGAA+F;AAGxF,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,kCAAqB;IAA/D;;QAQN,SAAI,GAAW,mDAAyB,CAAC;IAkE1C,CAAC;CAAA,CAAA;AA1EY,kEAA2B;AAQvC;IAPC,IAAA,qBAAW,EAAC;QACZ,WAAW,EAAE,mBAAmB;QAChC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,mDAAyB;KAClC,CAAC;IACD,IAAA,0BAAM,GAAE;IACR,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,4DAA4D,EAAE,CAAC;;yDAC3C;AAiBzC;IAfC,IAAA,6BAAmB,EAAC;QACpB,IAAI,EAAE,cAAc;QACpB,WAAW,EACV,+GAA+G;QAChH,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,2BAA2B;KACpC,CAAC;IACD,IAAA,0BAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IAChC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,4DAA2B,EAAE;QACtC,OAAO,EACN,kJAAkJ;KACnJ,CAAC;IACD,IAAA,4BAAU,EAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;;iEACZ;AAgB7B;IAdC,IAAA,6BAAmB,EAAC;QACpB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,oGAAoG;QACjH,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,2BAA2B;KACpC,CAAC;IACD,IAAA,0BAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IAChC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,4DAA2B,EAAE;QACtC,OAAO,EACN,kJAAkJ;KACnJ,CAAC;IACD,IAAA,4BAAU,EAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;;iEACZ;AAc7B;IAZC,IAAA,6BAAmB,EAAC;QACpB,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EACV,+HAA+H;QAChI,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;KACd,CAAC;IACD,IAAA,0BAAM,EAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;IAC3C,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC;QACV,OAAO,EAAE,mGAAmG;KAC5G,CAAC;;4EACgC;AAkBlC;IAhBC,IAAA,6BAAmB,EAAC;QACpB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,kFAAkF;QAC/F,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,OAAO,EAAE,EAAE;KACX,CAAC;IACD,IAAA,0BAAM,EAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;IACnC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,EAAC,EAAE,OAAO,EAAE,wFAAwF,EAAE,CAAC;IAC9G,IAAA,6BAAW,EAAC,EAAE,OAAO,EAAE,uFAAuF,EAAE,CAAC;IACjH,IAAA,0BAAQ,EAAC,gEAA6B,EAAE;QACxC,IAAI,EAAE,IAAI;QACV,OAAO,EACN,8GAA8G;KAC/G,CAAC;;oEACyB;sCAzEf,2BAA2B;IADvC,IAAA,mBAAS,EAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC;GACzC,2BAA2B,CA0EvC"}
1
+ {"version":3,"file":"update-config.dto.js","sourceRoot":"","sources":["../../../../src/modules/remote-access/dto/update-config.dto.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,11 @@ exports.IsRemoteAccessUrlConstraint = void 0;
10
10
  exports.normalizeRemoteAccessUrl = normalizeRemoteAccessUrl;
11
11
  const class_validator_1 = require("class-validator");
12
12
  const common_1 = require("@nestjs/common");
13
+ const RAW_DOT_SEGMENT_PATTERN = /\/\.\.?(?:[/?#]|$)/;
13
14
  function normalizeRemoteAccessUrl(value) {
15
+ if (RAW_DOT_SEGMENT_PATTERN.test(value)) {
16
+ return null;
17
+ }
14
18
  let url;
15
19
  try {
16
20
  url = new URL(value);
@@ -27,8 +31,7 @@ function normalizeRemoteAccessUrl(value) {
27
31
  url.pathname !== '/') {
28
32
  return null;
29
33
  }
30
- const normalized = url.origin;
31
- return normalized === value ? normalized : null;
34
+ return url.origin;
32
35
  }
33
36
  let IsRemoteAccessUrlConstraint = class IsRemoteAccessUrlConstraint {
34
37
  validate(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"is-remote-access-url.validator.js","sourceRoot":"","sources":["../../../../src/modules/remote-access/validators/is-remote-access-url.validator.ts"],"names":[],"mappings":";;;;;;;;;AAgBA,4DAwBC;AAxCD,qDAAyG;AAEzG,2CAA4C;AAc5C,SAAgB,wBAAwB,CAAC,KAAa;IACrD,IAAI,GAAQ,CAAC;IAEb,IAAI,CAAC;QACJ,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IACC,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACvD,CAAC,GAAG,CAAC,QAAQ;QACb,GAAG,CAAC,QAAQ;QACZ,GAAG,CAAC,QAAQ;QACZ,GAAG,CAAC,MAAM;QACV,GAAG,CAAC,IAAI;QACR,GAAG,CAAC,QAAQ,KAAK,GAAG,EACnB,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;IAE9B,OAAO,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAIM,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IACvC,QAAQ,CAAC,KAAc;QACtB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,wBAAwB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAC9E,CAAC;IAED,cAAc,CAAC,KAA0B;QACxC,OAAO,yGAAyG,CAAC;IAClH,CAAC;CACD,CAAA;AARY,kEAA2B;sCAA3B,2BAA2B;IAFvC,IAAA,qCAAmB,EAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAChE,IAAA,mBAAU,GAAE;GACA,2BAA2B,CAQvC"}
1
+ {"version":3,"file":"is-remote-access-url.validator.js","sourceRoot":"","sources":["../../../../src/modules/remote-access/validators/is-remote-access-url.validator.ts"],"names":[],"mappings":";;;;;;;;;AAyBA,4DA0BC;AAnDD,qDAAyG;AAEzG,2CAA4C;AAqB5C,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AAErD,SAAgB,wBAAwB,CAAC,KAAa;IACrD,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,GAAQ,CAAC;IAEb,IAAI,CAAC;QACJ,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IACC,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACvD,CAAC,GAAG,CAAC,QAAQ;QACb,GAAG,CAAC,QAAQ;QACZ,GAAG,CAAC,QAAQ;QACZ,GAAG,CAAC,MAAM;QACV,GAAG,CAAC,IAAI;QACR,GAAG,CAAC,QAAQ,KAAK,GAAG,EACnB,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,GAAG,CAAC,MAAM,CAAC;AACnB,CAAC;AAIM,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IACvC,QAAQ,CAAC,KAAc;QACtB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,wBAAwB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAC9E,CAAC;IAED,cAAc,CAAC,KAA0B;QACxC,OAAO,yGAAyG,CAAC;IAClH,CAAC;CACD,CAAA;AARY,kEAA2B;sCAA3B,2BAA2B;IAFvC,IAAA,qCAAmB,EAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAChE,IAAA,mBAAU,GAAE;GACA,2BAA2B,CAQvC"}
@@ -7,12 +7,14 @@ export interface PrivilegedJobSpec {
7
7
  statusFile: string;
8
8
  timeoutMs?: number;
9
9
  mapStatus?: (raw: Record<string, unknown>) => Partial<PrivilegedJobStatus> | null;
10
+ redact?: (line: string) => string;
10
11
  }
11
12
  export interface PrivilegedJobStatus {
12
13
  id: string;
13
14
  state: 'running' | 'complete' | 'failed' | 'timeout';
14
15
  step?: string;
15
16
  message?: string;
17
+ stderr?: string;
16
18
  updatedAt: string;
17
19
  }
18
20
  type StatusHandler = (status: PrivilegedJobStatus) => void;
@@ -27,9 +29,17 @@ export declare class PrivilegedWorkerService {
27
29
  }>;
28
30
  getStatus(id: string): PrivilegedJobStatus | null;
29
31
  onStatus(id: string, handler: StatusHandler): () => void;
32
+ private getCapturedStderr;
33
+ private buildFailureMessage;
34
+ private buildGenericFailureMessage;
30
35
  private startPolling;
36
+ private stopUnit;
37
+ private isUnitActive;
38
+ private handleTimeout;
31
39
  private logInvalidStatusOnce;
32
40
  private finishJob;
41
+ private notifyHandlers;
33
42
  private stopPolling;
43
+ private schedulePrune;
34
44
  }
35
45
  export {};