@abyss-project/beam 0.0.0-stage → 1.0.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 (123) hide show
  1. package/.eslintrc.js +32 -0
  2. package/.prettierrc +5 -0
  3. package/README.md +21 -2
  4. package/dist/api/beam.api.d.ts +49 -0
  5. package/dist/api/beam.api.js +110 -0
  6. package/dist/api/beam.api.js.map +1 -0
  7. package/dist/api/index.d.ts +1 -0
  8. package/dist/api/index.js +18 -0
  9. package/dist/api/index.js.map +1 -0
  10. package/dist/constants/beam.constants.d.ts +1 -0
  11. package/dist/constants/beam.constants.js +5 -0
  12. package/dist/constants/beam.constants.js.map +1 -0
  13. package/dist/constants/index.d.ts +1 -0
  14. package/dist/constants/index.js +18 -0
  15. package/dist/constants/index.js.map +1 -0
  16. package/dist/index.d.ts +62 -0
  17. package/dist/index.js +149 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/types/enum/api-error.enum.d.ts +31 -0
  20. package/dist/types/enum/api-error.enum.js +37 -0
  21. package/dist/types/enum/api-error.enum.js.map +1 -0
  22. package/dist/types/enum/beam.enum.d.ts +22 -0
  23. package/dist/types/enum/beam.enum.js +30 -0
  24. package/dist/types/enum/beam.enum.js.map +1 -0
  25. package/dist/types/enum/content-share.enum.d.ts +34 -0
  26. package/dist/types/enum/content-share.enum.js +42 -0
  27. package/dist/types/enum/content-share.enum.js.map +1 -0
  28. package/dist/types/enum/index.d.ts +3 -0
  29. package/dist/types/enum/index.js +20 -0
  30. package/dist/types/enum/index.js.map +1 -0
  31. package/dist/types/index.d.ts +2 -0
  32. package/dist/types/index.js +19 -0
  33. package/dist/types/index.js.map +1 -0
  34. package/dist/types/interface/api/index.d.ts +5 -0
  35. package/dist/types/interface/api/index.js +22 -0
  36. package/dist/types/interface/api/index.js.map +1 -0
  37. package/dist/types/interface/api/requests/beam.request.d.ts +139 -0
  38. package/dist/types/interface/api/requests/beam.request.js +3 -0
  39. package/dist/types/interface/api/requests/beam.request.js.map +1 -0
  40. package/dist/types/interface/api/requests/index.d.ts +1 -0
  41. package/dist/types/interface/api/requests/index.js +18 -0
  42. package/dist/types/interface/api/requests/index.js.map +1 -0
  43. package/dist/types/interface/api/responses/beam.response.d.ts +115 -0
  44. package/dist/types/interface/api/responses/beam.response.js +3 -0
  45. package/dist/types/interface/api/responses/beam.response.js.map +1 -0
  46. package/dist/types/interface/api/responses/index.d.ts +1 -0
  47. package/dist/types/interface/api/responses/index.js +18 -0
  48. package/dist/types/interface/api/responses/index.js.map +1 -0
  49. package/dist/types/interface/api/type-message/api-error.d.ts +6 -0
  50. package/dist/types/interface/api/type-message/api-error.js +3 -0
  51. package/dist/types/interface/api/type-message/api-error.js.map +1 -0
  52. package/dist/types/interface/api/type-message/base-paginate.d.ts +10 -0
  53. package/dist/types/interface/api/type-message/base-paginate.js +3 -0
  54. package/dist/types/interface/api/type-message/base-paginate.js.map +1 -0
  55. package/dist/types/interface/api/type-message/response.d.ts +5 -0
  56. package/dist/types/interface/api/type-message/response.js +3 -0
  57. package/dist/types/interface/api/type-message/response.js.map +1 -0
  58. package/dist/types/interface/index.d.ts +2 -0
  59. package/dist/types/interface/index.js +19 -0
  60. package/dist/types/interface/index.js.map +1 -0
  61. package/dist/types/interface/models/beam.dto.d.ts +70 -0
  62. package/dist/types/interface/models/beam.dto.js +3 -0
  63. package/dist/types/interface/models/beam.dto.js.map +1 -0
  64. package/dist/types/interface/models/content-share.dto.d.ts +15 -0
  65. package/dist/types/interface/models/content-share.dto.js +3 -0
  66. package/dist/types/interface/models/content-share.dto.js.map +1 -0
  67. package/dist/types/interface/models/index.d.ts +5 -0
  68. package/dist/types/interface/models/index.js +22 -0
  69. package/dist/types/interface/models/index.js.map +1 -0
  70. package/dist/types/interface/models/organization.dto.d.ts +11 -0
  71. package/dist/types/interface/models/organization.dto.js +3 -0
  72. package/dist/types/interface/models/organization.dto.js.map +1 -0
  73. package/dist/types/interface/models/project.dto.d.ts +12 -0
  74. package/dist/types/interface/models/project.dto.js +3 -0
  75. package/dist/types/interface/models/project.dto.js.map +1 -0
  76. package/dist/types/interface/models/user.dto.d.ts +11 -0
  77. package/dist/types/interface/models/user.dto.js +3 -0
  78. package/dist/types/interface/models/user.dto.js.map +1 -0
  79. package/dist/utils/enum.utils.d.ts +1 -0
  80. package/dist/utils/enum.utils.js +3 -0
  81. package/dist/utils/enum.utils.js.map +1 -0
  82. package/dist/utils/error.utils.d.ts +15 -0
  83. package/dist/utils/error.utils.js +25 -0
  84. package/dist/utils/error.utils.js.map +1 -0
  85. package/dist/utils/index.d.ts +2 -0
  86. package/dist/utils/index.js +19 -0
  87. package/dist/utils/index.js.map +1 -0
  88. package/package.json +58 -4
  89. package/src/api/beam.api.ts +325 -0
  90. package/src/api/index.ts +1 -0
  91. package/src/api/tests/beam.api.spec.ts +106 -0
  92. package/src/constants/beam.constants.ts +4 -0
  93. package/src/constants/index.ts +1 -0
  94. package/src/index.ts +167 -0
  95. package/src/types/enum/api-error.enum.ts +33 -0
  96. package/src/types/enum/beam.enum.ts +48 -0
  97. package/src/types/enum/content-share.enum.ts +37 -0
  98. package/src/types/enum/index.ts +3 -0
  99. package/src/types/index.ts +2 -0
  100. package/src/types/interface/api/index.ts +5 -0
  101. package/src/types/interface/api/requests/beam.request.ts +180 -0
  102. package/src/types/interface/api/requests/index.ts +1 -0
  103. package/src/types/interface/api/responses/beam.response.ts +162 -0
  104. package/src/types/interface/api/responses/index.ts +1 -0
  105. package/src/types/interface/api/type-message/api-error.ts +7 -0
  106. package/src/types/interface/api/type-message/base-paginate.ts +11 -0
  107. package/src/types/interface/api/type-message/response.ts +6 -0
  108. package/src/types/interface/index.ts +2 -0
  109. package/src/types/interface/models/beam.dto.ts +86 -0
  110. package/src/types/interface/models/content-share.dto.ts +20 -0
  111. package/src/types/interface/models/index.ts +5 -0
  112. package/src/types/interface/models/organization.dto.ts +21 -0
  113. package/src/types/interface/models/project.dto.ts +16 -0
  114. package/src/types/interface/models/user.dto.ts +19 -0
  115. package/src/types/tests/beam-management-types.spec.ts +38 -0
  116. package/src/types/tests/beam-share-enums.spec.ts +11 -0
  117. package/src/types/tests/beam.dto.spec.ts +61 -0
  118. package/src/types/tests/beam.request-response.spec.ts +43 -0
  119. package/src/utils/enum.utils.ts +1 -0
  120. package/src/utils/error.utils.ts +30 -0
  121. package/src/utils/index.ts +2 -0
  122. package/tsconfig.check.json +15 -0
  123. package/tsconfig.json +36 -0
@@ -0,0 +1,70 @@
1
+ import { IOrganization } from './organization.dto';
2
+ import { IUser } from './user.dto';
3
+ import { IProject } from './project.dto';
4
+ import { BeamVisibility, BeamDownloadKind } from '../../enum/beam.enum';
5
+ export interface IBeamTransfer {
6
+ id: string;
7
+ slug: string;
8
+ manageTokenHash: string | null;
9
+ userId: string | null;
10
+ organizationId: string | null;
11
+ projectId: string | null;
12
+ createdByUserId: string | null;
13
+ visibility: BeamVisibility;
14
+ passwordHash: string | null;
15
+ title: string | null;
16
+ message: string | null;
17
+ isActive: boolean;
18
+ expiresAt: Date | null;
19
+ finalizedAt: Date | null;
20
+ maxDownloads: number | null;
21
+ downloadCount: number;
22
+ lastDownloadedAt: Date | null;
23
+ totalSizeOctet: number;
24
+ fileCount: number;
25
+ createdAt?: Date;
26
+ updatedAt?: Date;
27
+ user?: IUser | null;
28
+ project?: IProject | null;
29
+ organization?: IOrganization | null;
30
+ files?: IBeamFile[];
31
+ recipients?: IBeamRecipient[];
32
+ }
33
+ export interface IBeamFile {
34
+ id: string;
35
+ transferId: string;
36
+ storageFileId: string;
37
+ thumbnailStorageFileId: string | null;
38
+ name: string;
39
+ mimeType: string | null;
40
+ sizeOctet: number;
41
+ isImage: boolean;
42
+ width: number | null;
43
+ height: number | null;
44
+ downloadCount: number;
45
+ position: number;
46
+ createdAt?: Date;
47
+ transfer?: IBeamTransfer;
48
+ }
49
+ export interface IBeamRecipient {
50
+ id: string;
51
+ transferId: string;
52
+ email: string;
53
+ locale: string | null;
54
+ sentAt: Date | null;
55
+ firstOpenedAt: Date | null;
56
+ createdAt?: Date;
57
+ transfer?: IBeamTransfer;
58
+ }
59
+ export interface IBeamDownloadEvent {
60
+ id: string;
61
+ transferId: string;
62
+ fileId: string | null;
63
+ kind: BeamDownloadKind;
64
+ ipHash: string;
65
+ userId: string | null;
66
+ downloadedAt: Date;
67
+ createdAt?: Date;
68
+ transfer?: IBeamTransfer;
69
+ file?: IBeamFile | null;
70
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=beam.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beam.dto.js","sourceRoot":"","sources":["../../../../src/types/interface/models/beam.dto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { ShareableContentType, SharePermission, ShareTargetType } from '../../enum/content-share.enum';
2
+ export interface IContentShare {
3
+ id: string;
4
+ contentType: ShareableContentType;
5
+ contentId: string;
6
+ organizationId: string | null;
7
+ targetType: ShareTargetType;
8
+ targetId: string | null;
9
+ permission: SharePermission;
10
+ publicToken: string | null;
11
+ expiresAt: string | null;
12
+ createdByUserId: string;
13
+ createdAt: string;
14
+ updatedAt: string;
15
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=content-share.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-share.dto.js","sourceRoot":"","sources":["../../../../src/types/interface/models/content-share.dto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export * from './user.dto';
2
+ export * from './organization.dto';
3
+ export * from './project.dto';
4
+ export * from './beam.dto';
5
+ export * from './content-share.dto';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./user.dto"), exports);
18
+ __exportStar(require("./organization.dto"), exports);
19
+ __exportStar(require("./project.dto"), exports);
20
+ __exportStar(require("./beam.dto"), exports);
21
+ __exportStar(require("./content-share.dto"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/interface/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,qDAAmC;AACnC,gDAA8B;AAC9B,6CAA2B;AAC3B,sDAAoC"}
@@ -0,0 +1,11 @@
1
+ import { IProject } from './project.dto';
2
+ export interface IOrganization {
3
+ id?: string;
4
+ name: string;
5
+ slug: string;
6
+ kind?: 'standard' | 'family';
7
+ kindSyncedAt?: string | null;
8
+ updatedAt?: Date;
9
+ createdAt?: Date;
10
+ projects?: IProject[];
11
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=organization.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization.dto.js","sourceRoot":"","sources":["../../../../src/types/interface/models/organization.dto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import { IOrganization } from './organization.dto';
2
+ import { IUser } from './user.dto';
3
+ export interface IProject {
4
+ id?: string;
5
+ name: string;
6
+ createdByUserId: string | null;
7
+ organizationId: string;
8
+ updatedAt?: Date;
9
+ createdAt?: Date;
10
+ organization?: IOrganization;
11
+ user?: IUser;
12
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=project.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.dto.js","sourceRoot":"","sources":["../../../../src/types/interface/models/project.dto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { IProject } from './project.dto';
2
+ export interface IUser {
3
+ id?: string;
4
+ isAdmin: boolean;
5
+ personalApiKeyLookupHash?: string | null;
6
+ personalApiKeyRevokedAt?: Date | null;
7
+ accountDeletedAt?: Date | null;
8
+ updatedAt?: Date;
9
+ createdAt?: Date;
10
+ projects?: IProject[];
11
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=user.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.dto.js","sourceRoot":"","sources":["../../../../src/types/interface/models/user.dto.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export type ValueOf<T> = T[keyof T];
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=enum.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum.utils.js","sourceRoot":"","sources":["../../src/utils/enum.utils.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { Code, ErrorType } from '../types';
2
+ type ErrorParams = {
3
+ code: Code;
4
+ type: ErrorType;
5
+ message?: string;
6
+ };
7
+ export declare class ServiceException extends Error {
8
+ private readonly code;
9
+ private readonly type;
10
+ getCode(): Code;
11
+ getType(): ErrorType;
12
+ constructor(params: ErrorParams);
13
+ }
14
+ export declare const handleError: (error: Error | ErrorParams, _params?: ErrorParams) => Error;
15
+ export {};
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleError = exports.ServiceException = void 0;
4
+ class ServiceException extends Error {
5
+ getCode() {
6
+ return this.code;
7
+ }
8
+ getType() {
9
+ return this.type;
10
+ }
11
+ constructor(params) {
12
+ super(params.message);
13
+ this.code = params.code;
14
+ this.type = params.type;
15
+ }
16
+ }
17
+ exports.ServiceException = ServiceException;
18
+ const handleError = (error, _params) => {
19
+ if (error instanceof Error) {
20
+ return error;
21
+ }
22
+ return new ServiceException(error);
23
+ };
24
+ exports.handleError = handleError;
25
+ //# sourceMappingURL=error.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.utils.js","sourceRoot":"","sources":["../../src/utils/error.utils.ts"],"names":[],"mappings":";;;AAIA,MAAa,gBAAiB,SAAQ,KAAK;IAKzC,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,YAAY,MAAmB;QAC7B,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;CACF;AAlBD,4CAkBC;AAEM,MAAM,WAAW,GAAG,CAAC,KAA0B,EAAE,OAAqB,EAAS,EAAE;IACtF,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC,CAAC;AALW,QAAA,WAAW,eAKtB"}
@@ -0,0 +1,2 @@
1
+ export * from './error.utils';
2
+ export * from './enum.utils';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./error.utils"), exports);
18
+ __exportStar(require("./enum.utils"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAA6B"}
package/package.json CHANGED
@@ -1,6 +1,60 @@
1
1
  {
2
2
  "name": "@abyss-project/beam",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "1.0.0",
4
+ "description": "Core package to interact with AbyssBeam",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "publishConfig": {
8
+ "main": "dist/index.js",
9
+ "types": "dist/index.d.ts"
10
+ },
11
+ "scripts": {
12
+ "lint": "eslint \"{src,apps,libs,test,core}/**/*.ts\" --fix",
13
+ "lint:check": "eslint \"{src,apps,libs,test,core}/**/*.ts\" --max-warnings 0",
14
+ "tsc": "tsc",
15
+ "build": "tsc",
16
+ "prepublishOnly": "tsc && node ../../scripts/check-sdk-surface.cjs",
17
+ "dev": "tsc --watch"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://gitlab.com/abyss-group/abyss-tools/abyss-tools"
22
+ },
23
+ "keywords": [],
24
+ "author": "scylla",
25
+ "license": "ISC",
26
+ "engines": {
27
+ "node": ">=19.8"
28
+ },
29
+ "dependencies": {
30
+ "axios": "^1.6.0",
31
+ "axios-retry": "^4.5.0",
32
+ "date-fns": "^2.30.0",
33
+ "dayjs": "^1.10.7",
34
+ "jsonwebtoken": "^8.5.1",
35
+ "reflect-metadata": "^0.1.13",
36
+ "ts-node": "^10.4.0",
37
+ "ts-node-dev": "^1.1.1",
38
+ "uuid": "^8.3.2"
39
+ },
40
+ "devDependencies": {
41
+ "@types/express-serve-static-core": "^4.19.6",
42
+ "@types/jsonwebtoken": "^8.5.0",
43
+ "@types/node": "^20.11.0",
44
+ "@types/uuid": "^8.3.0",
45
+ "@typescript-eslint/eslint-plugin": "8.71.0",
46
+ "@typescript-eslint/parser": "8.71.0",
47
+ "eslint": "^8.57.1",
48
+ "eslint-config-airbnb-base": "^14.2.1",
49
+ "eslint-config-prettier": "^8.3.0",
50
+ "eslint-config-standard": "^16.0.3",
51
+ "eslint-plugin-filenames-simple": "^0.7.0",
52
+ "eslint-plugin-import": "^2.23.4",
53
+ "eslint-plugin-node": "^11.1.0",
54
+ "eslint-plugin-prettier": "^3.4.0",
55
+ "eslint-plugin-promise": "^5.1.0",
56
+ "prettier": "2.3.1",
57
+ "tsc-watch": "^4.6.2",
58
+ "typescript": "5.9.3"
59
+ }
60
+ }