@abyss-project/main 1.1.2 → 1.3.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 (72) hide show
  1. package/README.md +31 -31
  2. package/dist/api/index.d.ts +2 -0
  3. package/dist/api/index.js +2 -0
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/api/personal-api-key.admin.api.d.ts +3 -0
  6. package/dist/api/personal-api-key.admin.api.js +9 -0
  7. package/dist/api/personal-api-key.admin.api.js.map +1 -0
  8. package/dist/api/personal-api-key.api.d.ts +4 -0
  9. package/dist/api/personal-api-key.api.js +18 -0
  10. package/dist/api/personal-api-key.api.js.map +1 -0
  11. package/dist/constants/billing-catalog.constants.js +70 -18
  12. package/dist/constants/billing-catalog.constants.js.map +1 -1
  13. package/dist/constants/enforcement-registry.constants.js +8 -0
  14. package/dist/constants/enforcement-registry.constants.js.map +1 -1
  15. package/dist/constants/public-plans.constants.js +84 -0
  16. package/dist/constants/public-plans.constants.js.map +1 -1
  17. package/dist/constants/quota-metric-kind.constants.js +2 -0
  18. package/dist/constants/quota-metric-kind.constants.js.map +1 -1
  19. package/dist/index.d.ts +12 -0
  20. package/dist/index.js +12 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/server/encrypt-secret.util.d.ts +3 -0
  23. package/dist/server/encrypt-secret.util.js +47 -0
  24. package/dist/server/encrypt-secret.util.js.map +1 -0
  25. package/dist/server/index.d.ts +1 -0
  26. package/dist/server/index.js +1 -0
  27. package/dist/server/index.js.map +1 -1
  28. package/dist/types/enum/abyss-application-event.enum.d.ts +3 -1
  29. package/dist/types/enum/abyss-application-event.enum.js +2 -0
  30. package/dist/types/enum/abyss-application-event.enum.js.map +1 -1
  31. package/dist/types/enum/content-scope.enum.d.ts +2 -1
  32. package/dist/types/enum/content-scope.enum.js +1 -0
  33. package/dist/types/enum/content-scope.enum.js.map +1 -1
  34. package/dist/types/enum/email-type.enum.d.ts +1 -0
  35. package/dist/types/enum/email-type.enum.js +1 -0
  36. package/dist/types/enum/email-type.enum.js.map +1 -1
  37. package/dist/types/enum/organization-billing.enum.d.ts +2 -0
  38. package/dist/types/enum/organization-billing.enum.js +2 -0
  39. package/dist/types/enum/organization-billing.enum.js.map +1 -1
  40. package/dist/types/interface/api/index.d.ts +2 -0
  41. package/dist/types/interface/api/index.js +2 -0
  42. package/dist/types/interface/api/index.js.map +1 -1
  43. package/dist/types/interface/api/requests/index.d.ts +1 -0
  44. package/dist/types/interface/api/requests/index.js +1 -0
  45. package/dist/types/interface/api/requests/index.js.map +1 -1
  46. package/dist/types/interface/api/requests/personal-api-key.request.d.ts +3 -0
  47. package/dist/types/interface/api/requests/personal-api-key.request.js +3 -0
  48. package/dist/types/interface/api/requests/personal-api-key.request.js.map +1 -0
  49. package/dist/types/interface/api/responses/index.d.ts +1 -0
  50. package/dist/types/interface/api/responses/index.js +1 -0
  51. package/dist/types/interface/api/responses/index.js.map +1 -1
  52. package/dist/types/interface/api/responses/personal-api-key.response.d.ts +24 -0
  53. package/dist/types/interface/api/responses/personal-api-key.response.js +3 -0
  54. package/dist/types/interface/api/responses/personal-api-key.response.js.map +1 -0
  55. package/dist/types/interface/index.d.ts +1 -0
  56. package/dist/types/interface/index.js +1 -0
  57. package/dist/types/interface/index.js.map +1 -1
  58. package/dist/types/interface/models/index.d.ts +1 -0
  59. package/dist/types/interface/models/index.js +1 -0
  60. package/dist/types/interface/models/index.js.map +1 -1
  61. package/dist/types/interface/models/personal-api-key.model.d.ts +14 -0
  62. package/dist/types/interface/models/personal-api-key.model.js +3 -0
  63. package/dist/types/interface/models/personal-api-key.model.js.map +1 -0
  64. package/dist/types/interface/models/user.model.d.ts +2 -0
  65. package/dist/utils/encrypt-secret.util.d.ts +3 -0
  66. package/dist/utils/encrypt-secret.util.js +43 -0
  67. package/dist/utils/encrypt-secret.util.js.map +1 -0
  68. package/dist/utils/resolve-user.utils.d.ts +7 -5
  69. package/dist/utils/resolve-user.utils.js +14 -6
  70. package/dist/utils/resolve-user.utils.js.map +1 -1
  71. package/jest.config.cjs +10 -0
  72. package/package.json +5 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/interface/api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,0DAAwC;AACxC,4DAA0C;AAC1C,+DAA6C;AAE7C,0DAAwC;AACxC,0DAAwC;AACxC,gEAA8C;AAC9C,uEAAqD;AACrD,6EAA2D;AAC3D,6EAA2D;AAC3D,+DAA6C;AAC7C,qEAAmD;AACnD,iEAA+C;AAC/C,uEAAqD;AACrD,mEAAiD;AACjD,6DAA2C;AAC3C,0EAAwD;AACxD,oEAAkD;AAClD,6DAA2C;AAC3C,sEAAoD;AACpD,mEAAiD;AACjD,yEAAuD;AACvD,2DAAyC;AACzC,oEAAkD;AAClD,kEAAgD;AAChD,wEAAsD;AAEtD,4DAA0C;AAC1C,4DAA0C;AAC1C,kEAAgD;AAChD,yEAAuD;AACvD,+EAA6D;AAC7D,+EAA6D;AAC7D,iEAA+C;AAC/C,uEAAqD;AACrD,qEAAmD;AACnD,+DAA6C;AAC7C,mEAAiD;AACjD,yEAAuD;AACvD,qEAAmD;AACnD,+DAA6C;AAC7C,4EAA0D;AAC1D,sEAAoD;AACpD,+DAA6C;AAC7C,wEAAsD;AACtD,qEAAmD;AACnD,2EAAyD;AACzD,6DAA2C;AAC3C,sEAAoD;AACpD,oEAAkD;AAClD,0EAAwD;AAExD,wEAAsD;AACtD,0EAAwD;AACxD,kEAAgD;AAChD,oEAAkD;AAClD,sFAAoE;AACpE,yEAAuD;AACvD,2EAAyD;AACzD,0EAAwD;AACxD,4EAA0D;AAC1D,kEAAgD;AAChD,oEAAkD;AAClD,2EAAyD;AACzD,6EAA2D;AAC3D,4EAA0D;AAC1D,8EAA4D;AAC5D,0DAAwC;AACxC,4DAA0C;AAC1C,qEAAmD;AACnD,uEAAqD;AAErD,kEAAgD;AAChD,oEAAkD;AAElD,oEAAkD;AAElD,mEAAiD;AACjD,qEAAmD;AAEnD,yEAAuD;AACvD,2EAAyD;AAEzD,oEAAkD;AAClD,wEAAsD;AACtD,0EAAwD;AACxD,sEAAoD;AAEpD,gEAA8C;AAC9C,kEAAgD;AAEhD,sEAAoD;AACpD,wEAAsD;AAEtD,yEAAuD;AACvD,2EAAyD;AAEzD,2EAAyD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/interface/api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,0DAAwC;AACxC,4DAA0C;AAC1C,+DAA6C;AAE7C,0DAAwC;AACxC,0DAAwC;AACxC,gEAA8C;AAC9C,uEAAqD;AACrD,6EAA2D;AAC3D,6EAA2D;AAC3D,+DAA6C;AAC7C,qEAAmD;AACnD,iEAA+C;AAC/C,uEAAqD;AACrD,mEAAiD;AACjD,6DAA2C;AAC3C,0EAAwD;AACxD,oEAAkD;AAClD,6DAA2C;AAC3C,sEAAoD;AACpD,mEAAiD;AACjD,yEAAuD;AACvD,2DAAyC;AACzC,oEAAkD;AAClD,kEAAgD;AAChD,wEAAsD;AAEtD,4DAA0C;AAC1C,4DAA0C;AAC1C,kEAAgD;AAChD,yEAAuD;AACvD,+EAA6D;AAC7D,+EAA6D;AAC7D,iEAA+C;AAC/C,uEAAqD;AACrD,qEAAmD;AACnD,+DAA6C;AAC7C,mEAAiD;AACjD,yEAAuD;AACvD,qEAAmD;AACnD,+DAA6C;AAC7C,4EAA0D;AAC1D,sEAAoD;AACpD,+DAA6C;AAC7C,wEAAsD;AACtD,qEAAmD;AACnD,2EAAyD;AACzD,6DAA2C;AAC3C,sEAAoD;AACpD,oEAAkD;AAClD,0EAAwD;AAExD,wEAAsD;AACtD,0EAAwD;AACxD,kEAAgD;AAChD,oEAAkD;AAClD,sFAAoE;AACpE,yEAAuD;AACvD,2EAAyD;AACzD,0EAAwD;AACxD,4EAA0D;AAC1D,kEAAgD;AAChD,oEAAkD;AAClD,2EAAyD;AACzD,6EAA2D;AAC3D,4EAA0D;AAC1D,8EAA4D;AAC5D,0DAAwC;AACxC,4DAA0C;AAC1C,qEAAmD;AACnD,uEAAqD;AAGrD,sEAAoD;AACpD,wEAAsD;AAEtD,kEAAgD;AAChD,oEAAkD;AAElD,oEAAkD;AAElD,mEAAiD;AACjD,qEAAmD;AAEnD,yEAAuD;AACvD,2EAAyD;AAEzD,oEAAkD;AAClD,wEAAsD;AACtD,0EAAwD;AACxD,sEAAoD;AAEpD,gEAA8C;AAC9C,kEAAgD;AAEhD,sEAAoD;AACpD,wEAAsD;AAEtD,yEAAuD;AACvD,2EAAyD;AAEzD,2EAAyD"}
@@ -21,6 +21,7 @@ export * from './organization.request';
21
21
  export * from './project-access.admin.request';
22
22
  export * from './project-access.request';
23
23
  export * from './project-api-key.request';
24
+ export * from './personal-api-key.request';
24
25
  export * from './project.admin.request';
25
26
  export * from './project.request';
26
27
  export * from './support-ticket-admin.request';
@@ -37,6 +37,7 @@ __exportStar(require("./organization.request"), exports);
37
37
  __exportStar(require("./project-access.admin.request"), exports);
38
38
  __exportStar(require("./project-access.request"), exports);
39
39
  __exportStar(require("./project-api-key.request"), exports);
40
+ __exportStar(require("./personal-api-key.request"), exports);
40
41
  __exportStar(require("./project.admin.request"), exports);
41
42
  __exportStar(require("./project.request"), exports);
42
43
  __exportStar(require("./support-ticket-admin.request"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/types/interface/api/requests/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,wDAAsC;AACtC,kDAAgC;AAChC,iDAA+B;AAC/B,kEAAgD;AAChD,mEAAiD;AACjD,yDAAuC;AACvC,oDAAkC;AAClC,0DAAwC;AACxC,gEAA8C;AAC9C,4DAA0C;AAC1C,sDAAoC;AACpC,uDAAqC;AACrC,0DAAwC;AACxC,6DAA2C;AAC3C,iEAA+C;AAC/C,6EAA2D;AAC3D,gEAA8C;AAC9C,+DAA6C;AAC7C,yDAAuC;AACvC,iEAA+C;AAC/C,2DAAyC;AACzC,4DAA0C;AAC1C,0DAAwC;AACxC,oDAAkC;AAClC,iEAA+C;AAC/C,+DAA6C;AAC7C,2DAAyC;AACzC,iDAA+B;AAC/B,gEAA8C;AAC9C,yDAAuC;AACvC,oEAAkD;AAClD,8DAA4C;AAC5C,uDAAqC;AACrC,iDAA+B;AAC/B,6DAA2C;AAC3C,gEAA8C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/types/interface/api/requests/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,wDAAsC;AACtC,kDAAgC;AAChC,iDAA+B;AAC/B,kEAAgD;AAChD,mEAAiD;AACjD,yDAAuC;AACvC,oDAAkC;AAClC,0DAAwC;AACxC,gEAA8C;AAC9C,4DAA0C;AAC1C,sDAAoC;AACpC,uDAAqC;AACrC,0DAAwC;AACxC,6DAA2C;AAC3C,iEAA+C;AAC/C,6EAA2D;AAC3D,gEAA8C;AAC9C,+DAA6C;AAC7C,yDAAuC;AACvC,iEAA+C;AAC/C,2DAAyC;AACzC,4DAA0C;AAC1C,6DAA2C;AAC3C,0DAAwC;AACxC,oDAAkC;AAClC,iEAA+C;AAC/C,+DAA6C;AAC7C,2DAAyC;AACzC,iDAA+B;AAC/B,gEAA8C;AAC9C,yDAAuC;AACvC,oEAAkD;AAClD,8DAA4C;AAC5C,uDAAqC;AACrC,iDAA+B;AAC/B,6DAA2C;AAC3C,gEAA8C"}
@@ -0,0 +1,3 @@
1
+ export interface IResolvePersonalApiKeyAdminBody {
2
+ keyLookupHash: string;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=personal-api-key.request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personal-api-key.request.js","sourceRoot":"","sources":["../../../../../src/types/interface/api/requests/personal-api-key.request.ts"],"names":[],"mappings":""}
@@ -23,6 +23,7 @@ export * from './organization.response';
23
23
  export * from './project-access.admin.response';
24
24
  export * from './project-access.response';
25
25
  export * from './project-api-key.response';
26
+ export * from './personal-api-key.response';
26
27
  export * from './project.admin.response';
27
28
  export * from './project.response';
28
29
  export * from './support-ticket.response';
@@ -39,6 +39,7 @@ __exportStar(require("./organization.response"), exports);
39
39
  __exportStar(require("./project-access.admin.response"), exports);
40
40
  __exportStar(require("./project-access.response"), exports);
41
41
  __exportStar(require("./project-api-key.response"), exports);
42
+ __exportStar(require("./personal-api-key.response"), exports);
42
43
  __exportStar(require("./project.admin.response"), exports);
43
44
  __exportStar(require("./project.response"), exports);
44
45
  __exportStar(require("./support-ticket.response"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/types/interface/api/responses/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,yDAAuC;AACvC,mDAAiC;AACjC,kDAAgC;AAChC,mEAAiD;AACjD,oEAAkD;AAClD,0DAAwC;AACxC,qDAAmC;AACnC,0DAAwC;AACxC,2DAAyC;AACzC,iEAA+C;AAC/C,6DAA2C;AAC3C,uDAAqC;AACrC,wDAAsC;AACtC,2DAAyC;AACzC,2DAAyC;AACzC,qDAAmC;AACnC,8DAA4C;AAC5C,kEAAgD;AAChD,iEAA+C;AAC/C,gEAA8C;AAC9C,0DAAwC;AACxC,kEAAgD;AAChD,4DAA0C;AAC1C,6DAA2C;AAC3C,2DAAyC;AACzC,qDAAmC;AACnC,4DAA0C;AAC1C,kDAAgC;AAChC,iEAA+C;AAC/C,0DAAwC;AACxC,iEAA+C;AAC/C,iEAA+C;AAC/C,qEAAmD;AACnD,+DAA6C;AAC7C,wDAAsC;AACtC,kDAAgC;AAChC,8DAA4C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/types/interface/api/responses/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,yDAAuC;AACvC,mDAAiC;AACjC,kDAAgC;AAChC,mEAAiD;AACjD,oEAAkD;AAClD,0DAAwC;AACxC,qDAAmC;AACnC,0DAAwC;AACxC,2DAAyC;AACzC,iEAA+C;AAC/C,6DAA2C;AAC3C,uDAAqC;AACrC,wDAAsC;AACtC,2DAAyC;AACzC,2DAAyC;AACzC,qDAAmC;AACnC,8DAA4C;AAC5C,kEAAgD;AAChD,iEAA+C;AAC/C,gEAA8C;AAC9C,0DAAwC;AACxC,kEAAgD;AAChD,4DAA0C;AAC1C,6DAA2C;AAC3C,8DAA4C;AAC5C,2DAAyC;AACzC,qDAAmC;AACnC,4DAA0C;AAC1C,kDAAgC;AAChC,iEAA+C;AAC/C,0DAAwC;AACxC,iEAA+C;AAC/C,iEAA+C;AAC/C,qEAAmD;AACnD,+DAA6C;AAC7C,wDAAsC;AACtC,kDAAgC;AAChC,8DAA4C"}
@@ -0,0 +1,24 @@
1
+ import { IResponse } from '../type-message/response';
2
+ export interface IGeneratePersonalApiKeyUserData {
3
+ apiKey: string;
4
+ prefix: string;
5
+ last4: string;
6
+ }
7
+ export type IGeneratePersonalApiKeyUserResponse = IResponse<IGeneratePersonalApiKeyUserData>;
8
+ export interface IGetPersonalApiKeyUserData {
9
+ hasKey: boolean;
10
+ apiKey: string | null;
11
+ prefix?: string;
12
+ last4?: string;
13
+ createdAt?: Date;
14
+ lastUsedAt?: Date | null;
15
+ revokedAt?: Date | null;
16
+ }
17
+ export type IGetPersonalApiKeyUserResponse = IResponse<IGetPersonalApiKeyUserData>;
18
+ export type IRevokePersonalApiKeyUserResponse = void;
19
+ export interface IResolvePersonalApiKeyAdminData {
20
+ userId: string;
21
+ isAdmin: boolean;
22
+ revoked: boolean;
23
+ }
24
+ export type IResolvePersonalApiKeyAdminResponse = IResponse<IResolvePersonalApiKeyAdminData>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=personal-api-key.response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personal-api-key.response.js","sourceRoot":"","sources":["../../../../../src/types/interface/api/responses/personal-api-key.response.ts"],"names":[],"mappings":""}
@@ -46,6 +46,7 @@ export * from './models/team-project-access.model';
46
46
  export * from './models/team-project-application-access.model';
47
47
  export * from './models/project-api-key.model';
48
48
  export * from './models/project-api-key-application-access.model';
49
+ export * from './models/personal-api-key.model';
49
50
  export * from './models/content-ownership.model';
50
51
  export * from './models/content-share.model';
51
52
  export * from './models/support-ticket.model';
@@ -62,6 +62,7 @@ __exportStar(require("./models/team-project-access.model"), exports);
62
62
  __exportStar(require("./models/team-project-application-access.model"), exports);
63
63
  __exportStar(require("./models/project-api-key.model"), exports);
64
64
  __exportStar(require("./models/project-api-key-application-access.model"), exports);
65
+ __exportStar(require("./models/personal-api-key.model"), exports);
65
66
  __exportStar(require("./models/content-ownership.model"), exports);
66
67
  __exportStar(require("./models/content-share.model"), exports);
67
68
  __exportStar(require("./models/support-ticket.model"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/interface/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,yDAAuC;AACvC,gEAA8C;AAC9C,4EAA0D;AAC1D,6DAA2C;AAC3C,mEAAiD;AACjD,yEAAuD;AACvD,+DAA6C;AAC7C,+DAA6C;AAC7C,8DAA4C;AAC5C,mEAAiD;AACjD,oEAAkD;AAGlD,2DAAyC;AACzC,sEAAoD;AAGpD,wCAAsB;AAGtB,uDAAqC;AAGrC,wDAAsC;AACtC,gEAA8C;AAC9C,8DAA4C;AAC5C,oEAAkD;AAGlD,8DAA4C;AAC5C,0EAAwD;AACxD,qEAAmD;AAGnD,+DAA6C;AAC7C,iEAA+C;AAC/C,4EAA0D;AAC1D,4EAA0D;AAC1D,8DAA4C;AAC5C,yDAAuC;AACvC,oEAAkD;AAClD,iEAA+C;AAC/C,0EAAwD;AACxD,6DAA2C;AAC3C,wEAAsD;AACtD,sEAAoD;AACpD,mEAAiD;AACjD,mEAAiD;AACjD,kEAAgD;AAChD,wEAAsD;AACtD,+DAA6C;AAC7C,8DAA4C;AAC5C,qEAAmD;AACnD,sDAAoC;AACpC,6DAA2C;AAC3C,qEAAmD;AACnD,iFAA+D;AAC/D,iEAA+C;AAC/C,oFAAkE;AAGlE,mEAAiD;AAGjD,+DAA6C;AAG7C,gEAA8C;AAC9C,wEAAsD;AACtD,2EAAyD;AACzD,oEAAkD;AAClD,yEAAuD;AAGvD,4DAA0C;AAG1C,4DAA0C;AAG1C,qEAAmD;AAGnD,qEAAmD;AAGnD,kEAAgD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/interface/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,yDAAuC;AACvC,gEAA8C;AAC9C,4EAA0D;AAC1D,6DAA2C;AAC3C,mEAAiD;AACjD,yEAAuD;AACvD,+DAA6C;AAC7C,+DAA6C;AAC7C,8DAA4C;AAC5C,mEAAiD;AACjD,oEAAkD;AAGlD,2DAAyC;AACzC,sEAAoD;AAGpD,wCAAsB;AAGtB,uDAAqC;AAGrC,wDAAsC;AACtC,gEAA8C;AAC9C,8DAA4C;AAC5C,oEAAkD;AAGlD,8DAA4C;AAC5C,0EAAwD;AACxD,qEAAmD;AAGnD,+DAA6C;AAC7C,iEAA+C;AAC/C,4EAA0D;AAC1D,4EAA0D;AAC1D,8DAA4C;AAC5C,yDAAuC;AACvC,oEAAkD;AAClD,iEAA+C;AAC/C,0EAAwD;AACxD,6DAA2C;AAC3C,wEAAsD;AACtD,sEAAoD;AACpD,mEAAiD;AACjD,mEAAiD;AACjD,kEAAgD;AAChD,wEAAsD;AACtD,+DAA6C;AAC7C,8DAA4C;AAC5C,qEAAmD;AACnD,sDAAoC;AACpC,6DAA2C;AAC3C,qEAAmD;AACnD,iFAA+D;AAC/D,iEAA+C;AAC/C,oFAAkE;AAGlE,kEAAgD;AAGhD,mEAAiD;AAGjD,+DAA6C;AAG7C,gEAA8C;AAC9C,wEAAsD;AACtD,2EAAyD;AACzD,oEAAkD;AAClD,yEAAuD;AAGvD,4DAA0C;AAG1C,4DAA0C;AAG1C,qEAAmD;AAGnD,qEAAmD;AAGnD,kEAAgD"}
@@ -41,6 +41,7 @@ export * from './team-project-access.model';
41
41
  export * from './team-project-application-access.model';
42
42
  export * from './project-api-key.model';
43
43
  export * from './project-api-key-application-access.model';
44
+ export * from './personal-api-key.model';
44
45
  export * from './content-ownership.model';
45
46
  export * from './content-share.model';
46
47
  export * from './support-ticket.model';
@@ -57,6 +57,7 @@ __exportStar(require("./team-project-access.model"), exports);
57
57
  __exportStar(require("./team-project-application-access.model"), exports);
58
58
  __exportStar(require("./project-api-key.model"), exports);
59
59
  __exportStar(require("./project-api-key-application-access.model"), exports);
60
+ __exportStar(require("./personal-api-key.model"), exports);
60
61
  __exportStar(require("./content-ownership.model"), exports);
61
62
  __exportStar(require("./content-share.model"), exports);
62
63
  __exportStar(require("./support-ticket.model"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/interface/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,kDAAgC;AAChC,yDAAuC;AACvC,qEAAmD;AACnD,sDAAoC;AACpC,4DAA0C;AAC1C,wDAAsC;AACtC,wDAAsC;AACtC,uDAAqC;AACrC,4DAA0C;AAC1C,6DAA2C;AAG3C,oDAAkC;AAClC,+DAA6C;AAG7C,gDAA8B;AAG9B,iDAA+B;AAG/B,uDAAqC;AACrC,mEAAiD;AACjD,8DAA4C;AAG5C,wDAAsC;AACtC,0DAAwC;AACxC,qEAAmD;AACnD,qEAAmD;AACnD,uDAAqC;AACrC,kDAAgC;AAChC,6DAA2C;AAC3C,0DAAwC;AACxC,mEAAiD;AACjD,sDAAoC;AACpC,iEAA+C;AAC/C,+DAA6C;AAC7C,4DAA0C;AAC1C,4DAA0C;AAC1C,2DAAyC;AACzC,iEAA+C;AAC/C,wDAAsC;AACtC,uDAAqC;AACrC,8DAA4C;AAC5C,+CAA6B;AAC7B,sDAAoC;AACpC,8DAA4C;AAC5C,0EAAwD;AACxD,0DAAwC;AACxC,6EAA2D;AAG3D,4DAA0C;AAG1C,wDAAsC;AAGtC,yDAAuC;AACvC,iEAA+C;AAC/C,oEAAkD;AAClD,6DAA2C;AAC3C,kEAAgD;AAGhD,qDAAmC;AAGnC,qDAAmC;AAGnC,8DAA4C;AAG5C,8DAA4C;AAG5C,2DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/interface/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,kDAAgC;AAChC,yDAAuC;AACvC,qEAAmD;AACnD,sDAAoC;AACpC,4DAA0C;AAC1C,wDAAsC;AACtC,wDAAsC;AACtC,uDAAqC;AACrC,4DAA0C;AAC1C,6DAA2C;AAG3C,oDAAkC;AAClC,+DAA6C;AAG7C,gDAA8B;AAG9B,iDAA+B;AAG/B,uDAAqC;AACrC,mEAAiD;AACjD,8DAA4C;AAG5C,wDAAsC;AACtC,0DAAwC;AACxC,qEAAmD;AACnD,qEAAmD;AACnD,uDAAqC;AACrC,kDAAgC;AAChC,6DAA2C;AAC3C,0DAAwC;AACxC,mEAAiD;AACjD,sDAAoC;AACpC,iEAA+C;AAC/C,+DAA6C;AAC7C,4DAA0C;AAC1C,4DAA0C;AAC1C,2DAAyC;AACzC,iEAA+C;AAC/C,wDAAsC;AACtC,uDAAqC;AACrC,8DAA4C;AAC5C,+CAA6B;AAC7B,sDAAoC;AACpC,8DAA4C;AAC5C,0EAAwD;AACxD,0DAAwC;AACxC,6EAA2D;AAG3D,2DAAyC;AAGzC,4DAA0C;AAG1C,wDAAsC;AAGtC,yDAAuC;AACvC,iEAA+C;AAC/C,oEAAkD;AAClD,6DAA2C;AAC3C,kEAAgD;AAGhD,qDAAmC;AAGnC,qDAAmC;AAGnC,8DAA4C;AAG5C,8DAA4C;AAG5C,2DAAyC"}
@@ -0,0 +1,14 @@
1
+ import { IUser } from './user.model';
2
+ export interface IPersonalApiKey {
3
+ id?: string;
4
+ userId: string;
5
+ keyCiphertext?: string;
6
+ keyLookupHash?: string;
7
+ prefix: string;
8
+ last4: string;
9
+ lastUsedAt: Date | null;
10
+ revokedAt: Date | null;
11
+ updatedAt?: Date;
12
+ createdAt?: Date;
13
+ user?: IUser;
14
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=personal-api-key.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personal-api-key.model.js","sourceRoot":"","sources":["../../../../src/types/interface/models/personal-api-key.model.ts"],"names":[],"mappings":""}
@@ -39,6 +39,8 @@ export interface IUser {
39
39
  enabledServices: AbyssService[];
40
40
  professionalStatus: UserProfessionalStatus | null;
41
41
  lastLoginDate?: Date | null;
42
+ personalApiKeyLookupHash?: string | null;
43
+ personalApiKeyRevokedAt?: Date | null;
42
44
  updatedAt?: Date;
43
45
  createdAt?: Date;
44
46
  sponsor?: IUser | null;
@@ -0,0 +1,3 @@
1
+ export declare const encryptSecret: (plaintext: string) => string;
2
+ export declare const decryptSecret: (payload: string) => string;
3
+ export declare const sha256Hex: (input: string) => string;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sha256Hex = exports.decryptSecret = exports.encryptSecret = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const VERSION = 'v1';
6
+ const ALGO = 'aes-256-gcm';
7
+ const loadMasterKey = () => {
8
+ const raw = process.env.ABYSS_SECRET_ENCRYPTION_KEY;
9
+ if (!raw) {
10
+ throw new Error('ABYSS_SECRET_ENCRYPTION_KEY is not set');
11
+ }
12
+ const key = Buffer.from(raw, 'base64');
13
+ if (key.length !== 32) {
14
+ throw new Error('ABYSS_SECRET_ENCRYPTION_KEY must decode to 32 bytes');
15
+ }
16
+ return key;
17
+ };
18
+ const MASTER_KEY = loadMasterKey();
19
+ const encryptSecret = (plaintext) => {
20
+ const iv = (0, crypto_1.randomBytes)(12);
21
+ const cipher = (0, crypto_1.createCipheriv)(ALGO, MASTER_KEY, iv);
22
+ const ct = Buffer.concat([cipher.update(plaintext, 'utf8'), cipher.final()]);
23
+ const tag = cipher.getAuthTag();
24
+ return `${VERSION}:${iv.toString('base64')}.${tag.toString('base64')}.${ct.toString('base64')}`;
25
+ };
26
+ exports.encryptSecret = encryptSecret;
27
+ const decryptSecret = (payload) => {
28
+ const [version, body] = payload.split(':');
29
+ if (version !== VERSION || !body) {
30
+ throw new Error('Unsupported secret payload version');
31
+ }
32
+ const [ivB64, tagB64, ctB64] = body.split('.');
33
+ if (!ivB64 || !tagB64 || !ctB64) {
34
+ throw new Error('Malformed secret payload');
35
+ }
36
+ const decipher = (0, crypto_1.createDecipheriv)(ALGO, MASTER_KEY, Buffer.from(ivB64, 'base64'));
37
+ decipher.setAuthTag(Buffer.from(tagB64, 'base64'));
38
+ return Buffer.concat([decipher.update(Buffer.from(ctB64, 'base64')), decipher.final()]).toString('utf8');
39
+ };
40
+ exports.decryptSecret = decryptSecret;
41
+ const sha256Hex = (input) => (0, crypto_1.createHash)('sha256').update(input, 'utf8').digest('hex');
42
+ exports.sha256Hex = sha256Hex;
43
+ //# sourceMappingURL=encrypt-secret.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encrypt-secret.util.js","sourceRoot":"","sources":["../../src/utils/encrypt-secret.util.ts"],"names":[],"mappings":";;;AAAA,mCAAmF;AAanF,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,MAAM,IAAI,GAAG,aAAa,CAAC;AAE3B,MAAM,aAAa,GAAG,GAAW,EAAE;IACjC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;IACpD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACvC,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAGF,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;AAM5B,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAU,EAAE;IACzD,MAAM,EAAE,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAChC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AAClG,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB;AAOK,MAAM,aAAa,GAAG,CAAC,OAAe,EAAU,EAAE;IACvD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,QAAQ,GAAG,IAAA,yBAAgB,EAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClF,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAC9F,MAAM,CACP,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,aAAa,iBAcxB;AAMK,MAAM,SAAS,GAAG,CAAC,KAAa,EAAU,EAAE,CACjD,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAD9C,QAAA,SAAS,aACqC"}
@@ -7,12 +7,14 @@ export interface IResolveUserParams {
7
7
  logger: IResolveUserLogger;
8
8
  transaction?: unknown;
9
9
  }
10
- interface ISequelizeUserShape {
11
- id: string;
10
+ interface IResolveUserMirror {
12
11
  isAdmin: boolean;
13
- set(values: {
14
- isAdmin: boolean;
15
- }): any;
12
+ personalApiKeyLookupHash: string | null;
13
+ personalApiKeyRevokedAt: Date | null;
14
+ }
15
+ interface ISequelizeUserShape extends IResolveUserMirror {
16
+ id: string;
17
+ set(values: Partial<IResolveUserMirror>): any;
16
18
  save(options?: any): Promise<any>;
17
19
  }
18
20
  export declare const resolveUserFromAbyssMain: <TUser extends ISequelizeUserShape>(params: IResolveUserParams) => Promise<TUser>;
@@ -4,26 +4,34 @@ exports.resolveUserFromAbyssMain = void 0;
4
4
  const __1 = require("..");
5
5
  const resolveUserFromAbyssMain = async (params) => {
6
6
  const { userId, UserModel, logger, transaction } = params;
7
- const existingUser = (await UserModel.findByPk(userId, { transaction }));
7
+ const existingUser = (await UserModel.findByPk(userId, {
8
+ transaction,
9
+ }));
8
10
  let isAdmin = existingUser?.isAdmin ?? false;
11
+ let personalApiKeyLookupHash = existingUser?.personalApiKeyLookupHash ?? null;
12
+ let personalApiKeyRevokedAt = existingUser?.personalApiKeyRevokedAt ?? null;
9
13
  try {
10
14
  const mainUser = await __1.AbyssCore.sdk.user.admin.get({ userId });
11
15
  isAdmin = mainUser.data.user.isAdmin;
16
+ personalApiKeyLookupHash = mainUser.data.user.personalApiKeyLookupHash ?? null;
17
+ personalApiKeyRevokedAt = mainUser.data.user.personalApiKeyRevokedAt ?? null;
12
18
  }
13
19
  catch {
14
- logger.log(`Failed to fetch user ${userId} from abyss-main, defaulting isAdmin to ${isAdmin}`);
20
+ logger.log(`Failed to fetch user ${userId} from abyss-main, defaulting to local mirror`);
15
21
  }
16
22
  const [user, created] = (await UserModel.findOrCreate({
17
23
  where: { id: userId },
18
- defaults: { id: userId, isAdmin },
24
+ defaults: { id: userId, isAdmin, personalApiKeyLookupHash, personalApiKeyRevokedAt },
19
25
  transaction,
20
26
  }));
21
27
  if (created) {
22
28
  logger.log(`Lazy-created user ${userId} (isAdmin: ${isAdmin})`);
23
29
  }
24
- else if (user.isAdmin !== isAdmin) {
25
- logger.log(`Updating isAdmin for user ${userId}: ${user.isAdmin} -> ${isAdmin}`);
26
- user.set({ isAdmin });
30
+ else if (user.isAdmin !== isAdmin ||
31
+ user.personalApiKeyLookupHash !== personalApiKeyLookupHash ||
32
+ Boolean(user.personalApiKeyRevokedAt) !== Boolean(personalApiKeyRevokedAt)) {
33
+ logger.log(`Syncing mirror for user ${userId} from abyss-main`);
34
+ user.set({ isAdmin, personalApiKeyLookupHash, personalApiKeyRevokedAt });
27
35
  await user.save({ transaction });
28
36
  }
29
37
  return user;
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-user.utils.js","sourceRoot":"","sources":["../../src/utils/resolve-user.utils.ts"],"names":[],"mappings":";;;AAAA,0BAA+B;AA0CxB,MAAM,wBAAwB,GAAG,KAAK,EAC3C,MAA0B,EACV,EAAE;IAClB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAE1D,MAAM,YAAY,GAAG,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,CAE/D,CAAC;IAET,IAAI,OAAO,GAAG,YAAY,EAAE,OAAO,IAAI,KAAK,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,aAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAChE,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,GAAG,CACR,wBAAwB,MAAM,2CAA2C,OAAO,EAAE,CACnF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,SAAS,CAAC,YAAY,CAAC;QACpD,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;QACrB,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;QACjC,WAAW;KACZ,CAAC,CAAmC,CAAC;IAEtC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,GAAG,CAAC,qBAAqB,MAAM,cAAc,OAAO,GAAG,CAAC,CAAC;IAClE,CAAC;SAAM,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,CAAC,6BAA6B,MAAM,KAAK,IAAI,CAAC,OAAO,OAAO,OAAO,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACtB,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,IAAa,CAAC;AACvB,CAAC,CAAC;AAlCW,QAAA,wBAAwB,4BAkCnC"}
1
+ {"version":3,"file":"resolve-user.utils.js","sourceRoot":"","sources":["../../src/utils/resolve-user.utils.ts"],"names":[],"mappings":";;;AAAA,0BAA+B;AAkDxB,MAAM,wBAAwB,GAAG,KAAK,EAC3C,MAA0B,EACV,EAAE;IAClB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAE1D,MAAM,YAAY,GAAG,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE;QACrD,WAAW;KACZ,CAAC,CAA+B,CAAC;IAElC,IAAI,OAAO,GAAG,YAAY,EAAE,OAAO,IAAI,KAAK,CAAC;IAC7C,IAAI,wBAAwB,GAAG,YAAY,EAAE,wBAAwB,IAAI,IAAI,CAAC;IAC9E,IAAI,uBAAuB,GAAG,YAAY,EAAE,uBAAuB,IAAI,IAAI,CAAC;IAC5E,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,aAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAChE,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACrC,wBAAwB,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC;QAC/E,uBAAuB,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC;IAC/E,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,GAAG,CAAC,wBAAwB,MAAM,8CAA8C,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,SAAS,CAAC,YAAY,CAAC;QACpD,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;QACrB,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE;QACpF,WAAW;KACZ,CAAC,CAAmC,CAAC;IAEtC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,GAAG,CAAC,qBAAqB,MAAM,cAAc,OAAO,GAAG,CAAC,CAAC;IAClE,CAAC;SAAM,IACL,IAAI,CAAC,OAAO,KAAK,OAAO;QACxB,IAAI,CAAC,wBAAwB,KAAK,wBAAwB;QAG1D,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,OAAO,CAAC,uBAAuB,CAAC,EAC1E,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,2BAA2B,MAAM,kBAAkB,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,CAAC,CAAC;QACzE,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,IAAa,CAAC;AACvB,CAAC,CAAC;AA1CW,QAAA,wBAAwB,4BA0CnC"}
@@ -0,0 +1,10 @@
1
+ /** @type {import('jest').Config} */
2
+ module.exports = {
3
+ testEnvironment: 'node',
4
+ transform: {
5
+ '^.+\\.tsx?$': ['ts-jest', { isolatedModules: true }],
6
+ },
7
+ testMatch: ['**/tests/**/*.spec.ts'],
8
+ modulePathIgnorePatterns: ['dist'],
9
+ testTimeout: 35000,
10
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abyss-project/main",
3
- "version": "1.1.2",
3
+ "version": "1.3.0",
4
4
  "description": "Core package to interact with Abyss-Project",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -31,6 +31,7 @@
31
31
  "tsc": "tsc",
32
32
  "build": "tsc",
33
33
  "dev": "tsc --watch",
34
+ "test": "jest",
34
35
  "prepublish": "tsc"
35
36
  },
36
37
  "repository": {
@@ -62,6 +63,7 @@
62
63
  "@types/byte-size": "^8.1.0",
63
64
  "@types/express": "^4.17.21",
64
65
  "@types/express-serve-static-core": "^4.17.28",
66
+ "@types/jest": "^29.5.5",
65
67
  "@types/lodash": "^4.14.177",
66
68
  "@types/node": "^20.11.0",
67
69
  "@types/uuid": "^9.0.0",
@@ -75,8 +77,10 @@
75
77
  "eslint-plugin-node": "^11.1.0",
76
78
  "eslint-plugin-prettier": "^3.4.0",
77
79
  "eslint-plugin-promise": "^5.1.0",
80
+ "jest": "^29.7.0",
78
81
  "prettier": "2.3.1",
79
82
  "sequelize-cli": "^6.2.0",
83
+ "ts-jest": "^29.1.1",
80
84
  "typescript": "5.4.2"
81
85
  }
82
86
  }