@rhino-dev/rhino-nestjs 4.4.0 → 4.6.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 (42) hide show
  1. package/README.md +1 -0
  2. package/dist/blueprint/blueprint-parser.d.ts +12 -0
  3. package/dist/blueprint/blueprint-parser.js +11 -0
  4. package/dist/blueprint/blueprint-parser.js.map +1 -1
  5. package/dist/blueprint/generators/resource-definition-generator.js +4 -0
  6. package/dist/blueprint/generators/resource-definition-generator.js.map +1 -1
  7. package/dist/blueprint/generators/test-generator.js +16 -1
  8. package/dist/blueprint/generators/test-generator.js.map +1 -1
  9. package/dist/controllers/global.controller.js +8 -1
  10. package/dist/controllers/global.controller.js.map +1 -1
  11. package/dist/decorators/index.d.ts +5 -0
  12. package/dist/decorators/index.js +11 -0
  13. package/dist/decorators/index.js.map +1 -1
  14. package/dist/errors/rhino-exception.d.ts +6 -1
  15. package/dist/errors/rhino-exception.js +7 -0
  16. package/dist/errors/rhino-exception.js.map +1 -1
  17. package/dist/index.d.ts +3 -2
  18. package/dist/index.js +5 -2
  19. package/dist/index.js.map +1 -1
  20. package/dist/interfaces/rhino-config.interface.d.ts +15 -0
  21. package/dist/rhino.config.d.ts +7 -0
  22. package/dist/rhino.config.js +25 -0
  23. package/dist/rhino.config.js.map +1 -1
  24. package/dist/rhino.module.js +3 -0
  25. package/dist/rhino.module.js.map +1 -1
  26. package/dist/services/query-builder.service.d.ts +8 -0
  27. package/dist/services/query-builder.service.js +24 -1
  28. package/dist/services/query-builder.service.js.map +1 -1
  29. package/dist/services/resource-scope.service.d.ts +50 -0
  30. package/dist/services/resource-scope.service.js +121 -0
  31. package/dist/services/resource-scope.service.js.map +1 -0
  32. package/dist/services/resource.service.d.ts +16 -6
  33. package/dist/services/resource.service.js +48 -5
  34. package/dist/services/resource.service.js.map +1 -1
  35. package/dist/services/serializer.service.d.ts +10 -0
  36. package/dist/services/serializer.service.js +26 -2
  37. package/dist/services/serializer.service.js.map +1 -1
  38. package/dist/tsconfig.build.tsbuildinfo +1 -1
  39. package/dist/utils/model-builder.d.ts +2 -0
  40. package/dist/utils/model-builder.js +2 -0
  41. package/dist/utils/model-builder.js.map +1 -1
  42. package/package.json +1 -1
@@ -5,9 +5,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
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
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
8
14
  Object.defineProperty(exports, "__esModule", { value: true });
9
15
  exports.SerializerService = exports.BASE_HIDDEN_COLUMNS = void 0;
10
16
  const common_1 = require("@nestjs/common");
17
+ const rhino_config_1 = require("../rhino.config");
11
18
  exports.BASE_HIDDEN_COLUMNS = [
12
19
  'password',
13
20
  'rememberToken',
@@ -33,6 +40,19 @@ exports.BASE_HIDDEN_COLUMNS = [
33
40
  * 5. Apply policy whitelist (`permittedAttributesForShow`) — `id` always kept
34
41
  */
35
42
  let SerializerService = class SerializerService {
43
+ config;
44
+ /**
45
+ * Config is optional for backwards compatibility (`new SerializerService()`
46
+ * in older tests/consumers) — without it, only the per-model `routeKey`
47
+ * participates in whitelist retention (the global default falls back to 'id').
48
+ */
49
+ constructor(config) {
50
+ this.config = config;
51
+ }
52
+ /** Resolved route key: per-model, then global config default, then 'id'. */
53
+ routeKeyOf(reg) {
54
+ return reg.routeKey ?? this.config?.globalRouteKey() ?? 'id';
55
+ }
36
56
  /**
37
57
  * @param record The raw record to serialize (from Prisma).
38
58
  * @param reg The model registration driving policy + computed attrs.
@@ -65,7 +85,9 @@ let SerializerService = class SerializerService {
65
85
  delete result[col];
66
86
  const permitted = policy.permittedAttributesForShow(user, organization) ?? ['*'];
67
87
  if (!(permitted.length === 1 && permitted[0] === '*')) {
68
- const keep = new Set([...permitted, 'id']);
88
+ // Always keep `id` AND the resolved route-key column — a whitelist
89
+ // must never strip the value clients need to address the record.
90
+ const keep = new Set([...permitted, 'id', this.routeKeyOf(reg)]);
69
91
  result = Object.fromEntries(Object.entries(result).filter(([k]) => keep.has(k)));
70
92
  }
71
93
  }
@@ -85,6 +107,8 @@ let SerializerService = class SerializerService {
85
107
  };
86
108
  exports.SerializerService = SerializerService;
87
109
  exports.SerializerService = SerializerService = __decorate([
88
- (0, common_1.Injectable)()
110
+ (0, common_1.Injectable)(),
111
+ __param(0, (0, common_1.Optional)()),
112
+ __metadata("design:paramtypes", [rhino_config_1.RhinoConfigService])
89
113
  ], SerializerService);
90
114
  //# sourceMappingURL=serializer.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serializer.service.js","sourceRoot":"","sources":["../../src/services/serializer.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializer.service.js","sourceRoot":"","sources":["../../src/services/serializer.service.ts"],"names":[],"mappings":"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"}