@laboratory-one/api-components 0.0.14 → 0.0.16

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 (54) hide show
  1. package/dist/cjs/cron/cron.service.d.ts.map +1 -1
  2. package/dist/cjs/cron/cron.service.js +4 -0
  3. package/dist/cjs/cron/cron.service.js.map +1 -1
  4. package/dist/cjs/cron/cron.util.d.ts +3 -0
  5. package/dist/cjs/cron/cron.util.d.ts.map +1 -0
  6. package/dist/cjs/cron/cron.util.js +13 -0
  7. package/dist/cjs/cron/cron.util.js.map +1 -0
  8. package/dist/cjs/cron/index.d.ts +1 -0
  9. package/dist/cjs/cron/index.d.ts.map +1 -1
  10. package/dist/cjs/cron/index.js +1 -0
  11. package/dist/cjs/cron/index.js.map +1 -1
  12. package/dist/cjs/services/instrument-sentry.d.ts +1 -1
  13. package/dist/cjs/services/instrument-sentry.d.ts.map +1 -1
  14. package/dist/cjs/services/instrument-sentry.js +4 -1
  15. package/dist/cjs/services/instrument-sentry.js.map +1 -1
  16. package/dist/cjs/user/index.d.ts +1 -0
  17. package/dist/cjs/user/index.d.ts.map +1 -1
  18. package/dist/cjs/user/index.js +1 -0
  19. package/dist/cjs/user/index.js.map +1 -1
  20. package/dist/cjs/user/user.util.d.ts +3 -0
  21. package/dist/cjs/user/user.util.d.ts.map +1 -0
  22. package/dist/cjs/user/user.util.js +8 -0
  23. package/dist/cjs/user/user.util.js.map +1 -0
  24. package/dist/esm/cron/cron.service.d.ts.map +1 -1
  25. package/dist/esm/cron/cron.service.js +4 -0
  26. package/dist/esm/cron/cron.service.js.map +1 -1
  27. package/dist/esm/cron/cron.util.d.ts +3 -0
  28. package/dist/esm/cron/cron.util.d.ts.map +1 -0
  29. package/dist/esm/cron/cron.util.js +9 -0
  30. package/dist/esm/cron/cron.util.js.map +1 -0
  31. package/dist/esm/cron/index.d.ts +1 -0
  32. package/dist/esm/cron/index.d.ts.map +1 -1
  33. package/dist/esm/cron/index.js +1 -0
  34. package/dist/esm/cron/index.js.map +1 -1
  35. package/dist/esm/services/instrument-sentry.d.ts +1 -1
  36. package/dist/esm/services/instrument-sentry.d.ts.map +1 -1
  37. package/dist/esm/services/instrument-sentry.js +4 -1
  38. package/dist/esm/services/instrument-sentry.js.map +1 -1
  39. package/dist/esm/user/index.d.ts +1 -0
  40. package/dist/esm/user/index.d.ts.map +1 -1
  41. package/dist/esm/user/index.js +1 -0
  42. package/dist/esm/user/index.js.map +1 -1
  43. package/dist/esm/user/user.util.d.ts +3 -0
  44. package/dist/esm/user/user.util.d.ts.map +1 -0
  45. package/dist/esm/user/user.util.js +4 -0
  46. package/dist/esm/user/user.util.js.map +1 -0
  47. package/dist/tsconfig.tsbuildinfo +1 -1
  48. package/package.json +5 -3
  49. package/src/cron/cron.service.ts +8 -0
  50. package/src/cron/cron.util.ts +10 -0
  51. package/src/cron/index.ts +1 -0
  52. package/src/services/instrument-sentry.ts +4 -1
  53. package/src/user/index.ts +1 -0
  54. package/src/user/user.util.ts +5 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@laboratory-one/api-components",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "description": "API components for Laboratory One",
5
5
  "author": "Laboratory One",
6
6
  "private": false,
@@ -42,7 +42,8 @@
42
42
  "@nestjs/terminus": "10.2.3",
43
43
  "@prisma/client": "5.15.1",
44
44
  "@sendgrid/mail": "8.1.3",
45
- "@sentry/cli": "^2.32.1",
45
+ "@sentry/cli": "2.32.1",
46
+ "@sentry/nestjs": "8.26.0",
46
47
  "@sentry/node": "8.9.2",
47
48
  "@sentry/profiling-node": "8.9.2",
48
49
  "algoliasearch": "4.23.3",
@@ -51,7 +52,7 @@
51
52
  "class-validator": "0.14.1",
52
53
  "compression": "1.7.4",
53
54
  "expo-server-sdk": "3.10.0",
54
- "globals": "^15.6.0",
55
+ "globals": "15.6.0",
55
56
  "helmet": "7.1.0",
56
57
  "moment": "2.30.1",
57
58
  "prisma": "5.15.1",
@@ -65,6 +66,7 @@
65
66
  "@nestjs/cli": "10.3.2",
66
67
  "@nestjs/schematics": "10.1.1",
67
68
  "@nestjs/testing": "10.3.9",
69
+ "@sentry/types": "8.26.0",
68
70
  "@tanstack/eslint-plugin-query": "5.43.1",
69
71
  "@types/compression": "1.7.5",
70
72
  "@types/express": "4.17.21",
@@ -1,5 +1,12 @@
1
1
  import { Injectable, Logger } from '@nestjs/common';
2
2
  import { Cron } from '@nestjs/schedule';
3
+ import { SentryCron } from '@sentry/nestjs';
4
+ import { MonitorConfig } from '@sentry/types';
5
+
6
+ import { getCronMonitorConfig } from './cron.util';
7
+
8
+ const handleTaskMonitorConfig: MonitorConfig =
9
+ getCronMonitorConfig('0 0 * * * *');
3
10
 
4
11
  @Injectable()
5
12
  export class CronService {
@@ -9,6 +16,7 @@ export class CronService {
9
16
 
10
17
  // @Cron('45 * * * * *')
11
18
  @Cron('0 0 * * * *')
19
+ @SentryCron('handleTask', handleTaskMonitorConfig)
12
20
  handleTask(): void {
13
21
  this.logger.debug('handleTask');
14
22
  }
@@ -0,0 +1,10 @@
1
+ import type { MonitorConfig } from '@sentry/types';
2
+
3
+ export const getCronMonitorConfig = (schedule: string): MonitorConfig => {
4
+ return {
5
+ schedule: {
6
+ type: 'crontab',
7
+ value: schedule,
8
+ },
9
+ };
10
+ };
package/src/cron/index.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './cron.module';
2
2
  export * from './cron.service';
3
+ export * from './cron.util';
@@ -1,13 +1,16 @@
1
1
  import * as Sentry from '@sentry/node';
2
2
  import { nodeProfilingIntegration } from '@sentry/profiling-node';
3
3
 
4
- export const initSentry = () => {
4
+ export const initSentry = (projectName: string) => {
5
5
  // Ensure to call this before requiring any other modules!
6
6
  Sentry.init({
7
7
  dsn: process.env.SENTRY_DSN,
8
+ environment: process.env.ENVIRONMENT,
9
+ release: `${projectName}@${process.env.npm_package_version}`,
8
10
  integrations: [
9
11
  // Add our Profiling integration
10
12
  nodeProfilingIntegration(),
13
+ Sentry.anrIntegration({ captureStackTrace: true }),
11
14
  ],
12
15
  // Add Tracing by setting tracesSampleRate
13
16
  // We recommend adjusting this value in production
package/src/user/index.ts CHANGED
@@ -3,3 +3,4 @@ export * from './schemas';
3
3
  export * from './user.module';
4
4
  export * from './user.service';
5
5
  export * from './user.controller';
6
+ export * from './user.util';
@@ -0,0 +1,5 @@
1
+ import { User } from '@prisma/client';
2
+
3
+ export const getPushTokens = (users: User[]): string[] => {
4
+ return users.map((user) => user.pushToken);
5
+ };