@intuitionrobotics/file-upload 0.47.59 → 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 (100) hide show
  1. package/LICENSE +3 -0
  2. package/dist/app-backend/api/_upload.d.ts +4 -0
  3. package/dist/app-backend/api/_upload.d.ts.map +1 -0
  4. package/dist/app-backend/api/_upload.js +3 -0
  5. package/{app-backend → dist/app-backend}/api/_upload.js.map +1 -1
  6. package/dist/app-backend/api/v1/upload/get-url-with-bucket-name.d.ts +10 -0
  7. package/dist/app-backend/api/v1/upload/get-url-with-bucket-name.d.ts.map +1 -0
  8. package/dist/app-backend/api/v1/upload/get-url-with-bucket-name.js +14 -0
  9. package/dist/app-backend/api/v1/upload/get-url-with-bucket-name.js.map +1 -0
  10. package/dist/app-backend/api/v1/upload/get-url.d.ts +10 -0
  11. package/dist/app-backend/api/v1/upload/get-url.d.ts.map +1 -0
  12. package/dist/app-backend/api/v1/upload/get-url.js +14 -0
  13. package/dist/app-backend/api/v1/upload/get-url.js.map +1 -0
  14. package/dist/app-backend/core/module-pack.d.ts +2 -0
  15. package/dist/app-backend/core/module-pack.d.ts.map +1 -0
  16. package/dist/app-backend/core/module-pack.js +13 -0
  17. package/dist/app-backend/core/module-pack.js.map +1 -0
  18. package/{app-backend → dist/app-backend}/modules/BucketListener.d.ts +1 -0
  19. package/dist/app-backend/modules/BucketListener.d.ts.map +1 -0
  20. package/dist/app-backend/modules/BucketListener.js +21 -0
  21. package/dist/app-backend/modules/BucketListener.js.map +1 -0
  22. package/{app-backend → dist/app-backend}/modules/ServerUploaderModule.d.ts +5 -4
  23. package/dist/app-backend/modules/ServerUploaderModule.d.ts.map +1 -0
  24. package/dist/app-backend/modules/ServerUploaderModule.js +21 -0
  25. package/dist/app-backend/modules/ServerUploaderModule.js.map +1 -0
  26. package/{app-backend → dist/app-backend}/modules/UploaderModule.d.ts +3 -2
  27. package/dist/app-backend/modules/UploaderModule.d.ts.map +1 -0
  28. package/dist/app-backend/modules/UploaderModule.js +102 -0
  29. package/dist/app-backend/modules/UploaderModule.js.map +1 -0
  30. package/{app-backend → dist/app-backend}/modules/UploaderTempFileModule.d.ts +4 -3
  31. package/dist/app-backend/modules/UploaderTempFileModule.d.ts.map +1 -0
  32. package/dist/app-backend/modules/UploaderTempFileModule.js +28 -0
  33. package/dist/app-backend/modules/UploaderTempFileModule.js.map +1 -0
  34. package/dist/app-frontend/core/module-pack.d.ts +2 -0
  35. package/dist/app-frontend/core/module-pack.d.ts.map +1 -0
  36. package/dist/app-frontend/core/module-pack.js +7 -0
  37. package/dist/app-frontend/core/module-pack.js.map +1 -0
  38. package/{app-frontend → dist/app-frontend}/modules/UploaderModule.d.ts +3 -2
  39. package/dist/app-frontend/modules/UploaderModule.d.ts.map +1 -0
  40. package/dist/app-frontend/modules/UploaderModule.js +43 -0
  41. package/dist/app-frontend/modules/UploaderModule.js.map +1 -0
  42. package/dist/backend.d.ts +6 -0
  43. package/dist/backend.d.ts.map +1 -0
  44. package/dist/backend.js +6 -0
  45. package/dist/backend.js.map +1 -0
  46. package/dist/frontend.d.ts +3 -0
  47. package/dist/frontend.d.ts.map +1 -0
  48. package/dist/frontend.js +6 -0
  49. package/dist/frontend.js.map +1 -0
  50. package/dist/index.d.ts +2 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +2 -0
  53. package/dist/index.js.map +1 -0
  54. package/{shared → dist/shared}/modules/BaseUploaderModule.d.ts +2 -1
  55. package/dist/shared/modules/BaseUploaderModule.d.ts.map +1 -0
  56. package/dist/shared/modules/BaseUploaderModule.js +147 -0
  57. package/dist/shared/modules/BaseUploaderModule.js.map +1 -0
  58. package/{shared → dist/shared}/types.d.ts +5 -4
  59. package/dist/shared/types.d.ts.map +1 -0
  60. package/dist/shared/types.js +11 -0
  61. package/dist/shared/types.js.map +1 -0
  62. package/dist/tsconfig.tsbuildinfo +1 -0
  63. package/package.json +63 -17
  64. package/app-backend/api/_upload.d.ts +0 -1
  65. package/app-backend/api/_upload.js +0 -5
  66. package/app-backend/api/v1/upload/get-url-with-bucket-name.d.ts +0 -1
  67. package/app-backend/api/v1/upload/get-url-with-bucket-name.js +0 -25
  68. package/app-backend/api/v1/upload/get-url-with-bucket-name.js.map +0 -1
  69. package/app-backend/api/v1/upload/get-url.d.ts +0 -1
  70. package/app-backend/api/v1/upload/get-url.js +0 -25
  71. package/app-backend/api/v1/upload/get-url.js.map +0 -1
  72. package/app-backend/core/module-pack.d.ts +0 -1
  73. package/app-backend/core/module-pack.js +0 -16
  74. package/app-backend/core/module-pack.js.map +0 -1
  75. package/app-backend/modules/BucketListener.js +0 -37
  76. package/app-backend/modules/BucketListener.js.map +0 -1
  77. package/app-backend/modules/ServerUploaderModule.js +0 -35
  78. package/app-backend/modules/ServerUploaderModule.js.map +0 -1
  79. package/app-backend/modules/UploaderModule.js +0 -116
  80. package/app-backend/modules/UploaderModule.js.map +0 -1
  81. package/app-backend/modules/UploaderTempFileModule.js +0 -30
  82. package/app-backend/modules/UploaderTempFileModule.js.map +0 -1
  83. package/app-frontend/core/module-pack.d.ts +0 -1
  84. package/app-frontend/core/module-pack.js +0 -10
  85. package/app-frontend/core/module-pack.js.map +0 -1
  86. package/app-frontend/modules/UploaderModule.js +0 -58
  87. package/app-frontend/modules/UploaderModule.js.map +0 -1
  88. package/backend.d.ts +0 -5
  89. package/backend.js +0 -22
  90. package/backend.js.map +0 -1
  91. package/frontend.d.ts +0 -2
  92. package/frontend.js +0 -19
  93. package/frontend.js.map +0 -1
  94. package/index.d.ts +0 -1
  95. package/index.js +0 -18
  96. package/index.js.map +0 -1
  97. package/shared/modules/BaseUploaderModule.js +0 -158
  98. package/shared/modules/BaseUploaderModule.js.map +0 -1
  99. package/shared/types.js +0 -10
  100. package/shared/types.js.map +0 -1
package/LICENSE ADDED
@@ -0,0 +1,3 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ Full license here: http://www.apache.org/licenses/LICENSE-2.0
@@ -0,0 +1,4 @@
1
+ import { RouteResolver } from "@intuitionrobotics/thunderstorm/backend";
2
+ declare const _default: RouteResolver;
3
+ export default _default;
4
+ //# sourceMappingURL=_upload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_upload.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/api/_upload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,yCAAyC,CAAC;;AAEtE,wBAAkD"}
@@ -0,0 +1,3 @@
1
+ import { RouteResolver } from "@intuitionrobotics/thunderstorm/backend";
2
+ export default new RouteResolver(import.meta.url);
3
+ //# sourceMappingURL=_upload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_upload.js","sourceRoot":"","sources":["../../../src/main/app-backend/api/_upload.ts"],"names":[],"mappings":";;AAAA,qEAAsE;AAEtE,MAAM,CAAC,OAAO,GAAG,IAAI,uBAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"_upload.js","sourceRoot":"","sources":["../../../src/main/app-backend/api/_upload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,yCAAyC,CAAC;AAEtE,eAAe,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { ApiResponse, type ExpressRequest, ServerApi_Post } from "@intuitionrobotics/thunderstorm/backend";
2
+ import { type Api_GetUploadUrlWithBucketName, type Body_GetUploadUrlWithBucketName } from "../../../../shared/types.js";
3
+ import { type QueryParams } from "@intuitionrobotics/thunderstorm";
4
+ declare class ServerApi_GetUploadUrlWithBucketName extends ServerApi_Post<Api_GetUploadUrlWithBucketName> {
5
+ constructor();
6
+ protected process(request: ExpressRequest, response: ApiResponse, queryParams: QueryParams, body: Body_GetUploadUrlWithBucketName): Promise<import("../../../../shared/types.js").TempSecureUrl[]>;
7
+ }
8
+ declare const _default: ServerApi_GetUploadUrlWithBucketName;
9
+ export default _default;
10
+ //# sourceMappingURL=get-url-with-bucket-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-url-with-bucket-name.d.ts","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/upload/get-url-with-bucket-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,KAAK,cAAc,EAAE,cAAc,EAAC,MAAM,yCAAyC,CAAC;AACzG,OAAO,EAAC,KAAK,8BAA8B,EAAE,KAAK,+BAA+B,EAAC,MAAM,6BAA6B,CAAC;AACtH,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,iCAAiC,CAAC;AAIjE,cAAM,oCACL,SAAQ,cAAc,CAAC,8BAA8B,CAAC;;cAKtC,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,+BAA+B;CAGvI;;AAED,wBAA0D"}
@@ -0,0 +1,14 @@
1
+ import { ApiResponse, ServerApi_Post } from "@intuitionrobotics/thunderstorm/backend";
2
+ import {} from "../../../../shared/types.js";
3
+ import {} from "@intuitionrobotics/thunderstorm";
4
+ import { UploaderModule } from "../../../modules/UploaderModule.js";
5
+ class ServerApi_GetUploadUrlWithBucketName extends ServerApi_Post {
6
+ constructor() {
7
+ super('get-url-with-bucket-name');
8
+ }
9
+ async process(request, response, queryParams, body) {
10
+ return UploaderModule.getUrl(body.files, body.pathPrefix, body.bucketName);
11
+ }
12
+ }
13
+ export default new ServerApi_GetUploadUrlWithBucketName();
14
+ //# sourceMappingURL=get-url-with-bucket-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-url-with-bucket-name.js","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/upload/get-url-with-bucket-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAuB,cAAc,EAAC,MAAM,yCAAyC,CAAC;AACzG,OAAO,EAA2E,MAAM,6BAA6B,CAAC;AACtH,OAAO,EAAkB,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAC,cAAc,EAAC,MAAM,oCAAoC,CAAC;AAGlE,MAAM,oCACL,SAAQ,cAA8C;IACtD;QACC,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAClC,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,OAAuB,EAAE,QAAqB,EAAE,WAAwB,EAAE,IAAqC;QACtI,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5E,CAAC;CACD;AAED,eAAe,IAAI,oCAAoC,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { ApiResponse, type ExpressRequest, ServerApi_Post } from "@intuitionrobotics/thunderstorm/backend";
2
+ import { type Api_GetUploadUrl, type BaseUploaderFile } from "../../../../shared/types.js";
3
+ import { type QueryParams } from "@intuitionrobotics/thunderstorm";
4
+ declare class ServerApi_GetUploadUrl extends ServerApi_Post<Api_GetUploadUrl> {
5
+ constructor();
6
+ protected process(request: ExpressRequest, response: ApiResponse, queryParams: QueryParams, body: BaseUploaderFile[]): Promise<import("../../../../shared/types.js").TempSecureUrl[]>;
7
+ }
8
+ declare const _default: ServerApi_GetUploadUrl;
9
+ export default _default;
10
+ //# sourceMappingURL=get-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-url.d.ts","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/upload/get-url.ts"],"names":[],"mappings":"AACA,OAAO,EACN,WAAW,EACX,KAAK,cAAc,EACnB,cAAc,EACd,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,iCAAiC,CAAC;AAIjE,cAAM,sBACL,SAAQ,cAAc,CAAC,gBAAgB,CAAC;;cAKxB,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE;CAG1H;;AAED,wBAA4C"}
@@ -0,0 +1,14 @@
1
+ import { ApiResponse, ServerApi_Post } from "@intuitionrobotics/thunderstorm/backend";
2
+ import {} from "../../../../shared/types.js";
3
+ import {} from "@intuitionrobotics/thunderstorm";
4
+ import { UploaderModule } from "../../../modules/UploaderModule.js";
5
+ class ServerApi_GetUploadUrl extends ServerApi_Post {
6
+ constructor() {
7
+ super('get-url');
8
+ }
9
+ async process(request, response, queryParams, body) {
10
+ return UploaderModule.getUrl(body);
11
+ }
12
+ }
13
+ export default new ServerApi_GetUploadUrl();
14
+ //# sourceMappingURL=get-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-url.js","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/upload/get-url.ts"],"names":[],"mappings":"AACA,OAAO,EACN,WAAW,EAEX,cAAc,EACd,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAGN,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAkB,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAC,cAAc,EAAC,MAAM,oCAAoC,CAAC;AAGlE,MAAM,sBACL,SAAQ,cAAgC;IACxC;QACC,KAAK,CAAC,SAAS,CAAC,CAAA;IACjB,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,OAAuB,EAAE,QAAqB,EAAE,WAAwB,EAAE,IAAwB;QACzH,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACD;AAED,eAAe,IAAI,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const Backend_ModulePack_Uploader: (import("../modules/UploaderTempFileModule.js").UploaderTempFileModule_Class | import("../modules/BucketListener.js").BucketListener_Class | import("../modules/UploaderModule.js").UploaderModule_Class | import("@intuitionrobotics/push-pub-sub/backend").PushPubSubModule_Class | import("../modules/ServerUploaderModule.js").ServerUploaderModule_Class | import("@intuitionrobotics/push-pub-sub/backend").ScheduledCleanup_Class)[];
2
+ //# sourceMappingURL=module-pack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-pack.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/core/module-pack.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,2BAA2B,6aAMvC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { UploaderModule } from "../modules/UploaderModule.js";
2
+ import { UploaderTempFileModule } from "../modules/UploaderTempFileModule.js";
3
+ import { BucketListener } from "../modules/BucketListener.js";
4
+ import { Backend_ModulePack_PushPubSub } from "@intuitionrobotics/push-pub-sub/backend";
5
+ import { ServerUploaderModule } from "../modules/ServerUploaderModule.js";
6
+ export const Backend_ModulePack_Uploader = [
7
+ ...Backend_ModulePack_PushPubSub,
8
+ ServerUploaderModule,
9
+ UploaderModule,
10
+ UploaderTempFileModule,
11
+ BucketListener
12
+ ];
13
+ //# sourceMappingURL=module-pack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-pack.js","sourceRoot":"","sources":["../../../src/main/app-backend/core/module-pack.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAC,sBAAsB,EAAC,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAC,6BAA6B,EAAC,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAC,oBAAoB,EAAC,MAAM,oCAAoC,CAAC;AAExE,MAAM,CAAC,MAAM,2BAA2B,GAAG;IAC1C,GAAG,6BAA6B;IAChC,oBAAoB;IACpB,cAAc;IACd,sBAAsB;IACtB,cAAc;CACd,CAAC"}
@@ -8,3 +8,4 @@ export declare class BucketListener_Class extends Firebase_StorageFunction {
8
8
  onFinalize(object: any, context: any): Promise<any>;
9
9
  }
10
10
  export declare const BucketListener: BucketListener_Class;
11
+ //# sourceMappingURL=BucketListener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BucketListener.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/modules/BucketListener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AAGvF,MAAM,WAAW,cAAc;IAC9B,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAKD,qBAAa,oBACZ,SAAQ,wBAAwB;;IAMhC,IAAI;IAME,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAOzD;AAED,eAAO,MAAM,cAAc,sBAA6B,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { Firebase_StorageFunction } from "@intuitionrobotics/firebase/backend-functions";
2
+ import { Dispatcher } from "@intuitionrobotics/ts-common";
3
+ const dispatcher_onFileUploaded = new Dispatcher("__onFileUploaded");
4
+ export class BucketListener_Class extends Firebase_StorageFunction {
5
+ constructor() {
6
+ super("BucketListener");
7
+ }
8
+ init() {
9
+ super.init();
10
+ this.logInfo("Bucket Listener config", this.config);
11
+ this.logInfo("bucketName", this.config.bucketName);
12
+ }
13
+ async onFinalize(object, context) {
14
+ const filePath = object.name;
15
+ await dispatcher_onFileUploaded.dispatchModuleAsync(filePath);
16
+ this.logInfo("Object is ", object);
17
+ this.logInfo("Context is ", context);
18
+ }
19
+ }
20
+ export const BucketListener = new BucketListener_Class();
21
+ //# sourceMappingURL=BucketListener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BucketListener.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/BucketListener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAC,UAAU,EAAC,MAAM,8BAA8B,CAAC;AAMxD,MAAM,yBAAyB,GAAG,IAAI,UAAU,CAAqC,kBAAkB,CAAC,CAAC;AAGzG,MAAM,OAAO,oBACZ,SAAQ,wBAAwB;IAChC;QACC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACzB,CAAC;IAGD,IAAI;QACH,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACnD,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAW,EAAE,OAAY;QACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;QAC7B,MAAM,yBAAyB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;CAED;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,oBAAoB,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
- import { BaseUploaderFile, TempSecureUrl, Request_Uploader } from "../../shared/types";
2
- import { BaseUploaderModule_Class, FileStatus } from "../../shared/modules/BaseUploaderModule";
3
- import { Axios_RequestConfig, AxiosHttpModule_Class } from "@intuitionrobotics/thunderstorm/backend";
1
+ import { type BaseUploaderFile, type TempSecureUrl, type Request_Uploader } from "../../shared/types.js";
2
+ import { BaseUploaderModule_Class, FileStatus } from "../../shared/modules/BaseUploaderModule.js";
3
+ import { type Axios_RequestConfig, AxiosHttpModule_Class } from "@intuitionrobotics/thunderstorm/backend";
4
4
  export type ServerFilesToUpload = Request_Uploader & {
5
5
  file: Buffer;
6
6
  onFileStatusChanged: (feId: string, status: FileStatus) => void;
@@ -11,6 +11,7 @@ export declare class ServerUploaderModule_Class extends BaseUploaderModule_Class
11
11
  constructor();
12
12
  init(): void;
13
13
  upload(files: ServerFilesToUpload[]): BaseUploaderFile[];
14
- protected subscribeToPush(toSubscribe: TempSecureUrl[]): Promise<void>;
14
+ protected subscribeToPush(_toSubscribe: TempSecureUrl[]): Promise<void>;
15
15
  }
16
16
  export declare const ServerUploaderModule: ServerUploaderModule_Class;
17
+ //# sourceMappingURL=ServerUploaderModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerUploaderModule.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/modules/ServerUploaderModule.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACf,KAAK,gBAAgB,EACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,wBAAwB,EAAE,UAAU,EACpC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACN,KAAK,mBAAmB,EAExB,qBAAqB,EACrB,MAAM,yCAAyC,CAAC;AAEjD,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IACpD,IAAI,EAAE,MAAM,CAAA;IACZ,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;CAC/D,CAAA;AAED,qBAAa,0BACZ,SAAQ,wBAAwB,CAAC,qBAAqB,EAAE;IAAE,aAAa,EAAE,mBAAmB,CAAA;CAAE,CAAC;;IAM/F,IAAI;IAKJ,MAAM,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,gBAAgB,EAAE;cAIxC,eAAe,CAAC,YAAY,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAI7E;AAED,eAAO,MAAM,oBAAoB,4BAAmC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import {} from "../../shared/types.js";
2
+ import { BaseUploaderModule_Class, FileStatus, } from "../../shared/modules/BaseUploaderModule.js";
3
+ import { AxiosHttpModule, AxiosHttpModule_Class } from "@intuitionrobotics/thunderstorm/backend";
4
+ export class ServerUploaderModule_Class extends BaseUploaderModule_Class {
5
+ constructor() {
6
+ super(AxiosHttpModule, "ServerUploaderModule");
7
+ }
8
+ init() {
9
+ super.init();
10
+ AxiosHttpModule.setRequestOption(this.config.requestConfig);
11
+ }
12
+ upload(files) {
13
+ return this.uploadImpl(files);
14
+ }
15
+ async subscribeToPush(_toSubscribe) {
16
+ // Not sure now
17
+ // We said timeout
18
+ }
19
+ }
20
+ export const ServerUploaderModule = new ServerUploaderModule_Class();
21
+ //# sourceMappingURL=ServerUploaderModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerUploaderModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/ServerUploaderModule.ts"],"names":[],"mappings":"AACA,OAAO,EAIN,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,wBAAwB,EAAE,UAAU,GACpC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAEN,eAAe,EACf,qBAAqB,EACrB,MAAM,yCAAyC,CAAC;AAOjD,MAAM,OAAO,0BACZ,SAAQ,wBAAuF;IAE/F;QACC,KAAK,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC;IAChD,CAAC;IAED,IAAI;QACH,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,KAA4B;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,YAA6B;QAC5D,eAAe;QACf,kBAAkB;IACnB,CAAC;CACD;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,0BAA0B,EAAE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { Module } from "@intuitionrobotics/ts-common";
2
2
  import { FileWrapper } from "@intuitionrobotics/firebase/backend";
3
- import { BaseUploaderFile, DB_Temp_File, TempSecureUrl } from "../../shared/types";
4
- import { OnFileUploaded } from "./BucketListener";
3
+ import { type BaseUploaderFile, type DB_Temp_File, type TempSecureUrl } from "../../shared/types.js";
4
+ import { type OnFileUploaded } from "./BucketListener.js";
5
5
  export declare const Temp_Path = "files-temp";
6
6
  type Config = {
7
7
  bucketName?: string;
@@ -24,3 +24,4 @@ export declare class UploaderModule_Class extends Module<Config> implements OnFi
24
24
  }
25
25
  export declare const UploaderModule: UploaderModule_Class;
26
26
  export {};
27
+ //# sourceMappingURL=UploaderModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploaderModule.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/modules/UploaderModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAKN,MAAM,EAEN,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,WAAW,EAGX,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAGjB,KAAK,aAAa,EAElB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAC,KAAK,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAExD,eAAO,MAAM,SAAS,eAAe,CAAC;AAEtC,KAAK,MAAM,GAAG;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpF,qBAAa,oBACZ,SAAQ,MAAM,CAAC,MAAM,CACrB,YAAW,cAAc;;IAMzB,OAAO,CAAC,OAAO,CAAkB;IAEjC,OAAO,CAAC,aAAa,CAAkC;IAEjD,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM;IAIxC,gBAAgB,GAAI,WAAW;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAAA;KAAE,UAE3D;IAEK,YAAY,GAAI,GAAG,MAAM,mBAM9B;IAEF,IAAI;IAOE,MAAM,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,UAAU,GAAE,MAAkB,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoCtH,YAAY,GAAU,WAAW,MAAM,mBAkCrC;IAEF,OAAO,CAAC,cAAc,CAIpB;CAEF;AAED,eAAO,MAAM,cAAc,sBAA6B,CAAC"}
@@ -0,0 +1,102 @@
1
+ import { auditBy, generateHex, Hour, ImplementationMissingException, Module, ThisShouldNotHappenException } from "@intuitionrobotics/ts-common";
2
+ import { FileWrapper, FirebaseModule, StorageWrapper } from "@intuitionrobotics/firebase/backend";
3
+ import { fileUploadedKey, UploadResult } from "../../shared/types.js";
4
+ import { UploaderTempFileModule } from "./UploaderTempFileModule.js";
5
+ import { PushPubSubModule } from "@intuitionrobotics/push-pub-sub/backend";
6
+ import {} from "./BucketListener.js";
7
+ export const Temp_Path = "files-temp";
8
+ export class UploaderModule_Class extends Module {
9
+ constructor() {
10
+ super("UploaderModule");
11
+ }
12
+ storage;
13
+ postProcessor;
14
+ async __onFileUploaded(filePath) {
15
+ await this.fileUploaded(filePath);
16
+ }
17
+ setPostProcessor = (validator) => {
18
+ this.postProcessor = validator;
19
+ };
20
+ getProcessor = (k) => {
21
+ const postProcessorElement = this.postProcessor[k];
22
+ if (!postProcessorElement)
23
+ throw new ImplementationMissingException(`Missing validator for type ${k}`);
24
+ return postProcessorElement;
25
+ };
26
+ init() {
27
+ if (!this.postProcessor)
28
+ throw new ImplementationMissingException("You must set a postProcessor for the UploaderModule");
29
+ this.storage = FirebaseModule.createAdminSession(this.config.uploaderProjectId).getStorage();
30
+ }
31
+ async getUrl(body, pathPrefix = Temp_Path, _bucketName) {
32
+ const bucketName = _bucketName || this.config?.bucketName;
33
+ const bucket = await this.storage.getOrCreateBucket(bucketName);
34
+ return Promise.all(body.map(async (_file) => {
35
+ const key = _file.key || _file.mimeType;
36
+ this.getProcessor(key);
37
+ const _id = generateHex(32);
38
+ const path = `${pathPrefix}/${_id}`;
39
+ const instance = {
40
+ _id,
41
+ feId: _file.feId,
42
+ name: _file.name,
43
+ mimeType: _file.mimeType,
44
+ key,
45
+ path,
46
+ _audit: auditBy("be-stub"),
47
+ bucketName: bucket.bucketName
48
+ };
49
+ if (_file.public)
50
+ instance.public = _file.public;
51
+ if (_file.metadata)
52
+ instance.metadata = _file.metadata;
53
+ const temp = await UploaderTempFileModule.upsert(instance);
54
+ const file = await bucket.getFile(temp.path);
55
+ const url = await file.getWriteSecuredUrl(_file.mimeType, Hour);
56
+ return {
57
+ secureUrl: url.securedUrl,
58
+ tempDoc: temp
59
+ };
60
+ }));
61
+ }
62
+ fileUploaded = async (filePath) => {
63
+ if (!filePath)
64
+ throw new ThisShouldNotHappenException("Missing file path");
65
+ this.logInfo(`Looking for file with path ${filePath}`);
66
+ // I use collection and not the module directly since I want to handle failure my way
67
+ const tempMeta = await UploaderTempFileModule.collection.queryUnique({ where: { path: filePath } });
68
+ if (!tempMeta)
69
+ return this.logInfo(`File with path: ${filePath}, not found in temp collection db`);
70
+ this.logInfo(`Found temp meta with _id: ${tempMeta._id}`, tempMeta);
71
+ const val = this.postProcessor[tempMeta.key];
72
+ this.logInfo(`Found a validator ${!!val}`);
73
+ if (!val)
74
+ return this.notifyFrontend(tempMeta.feId, UploadResult.Failure, `Missing a validator for ${tempMeta.key} for file: ${tempMeta.name}`);
75
+ const bucket = await this.storage.getOrCreateBucket(tempMeta.bucketName);
76
+ const file = await bucket.getFile(tempMeta.path);
77
+ if (tempMeta.public) {
78
+ try {
79
+ await file.makePublic();
80
+ }
81
+ catch (e) {
82
+ await this.notifyFrontend(tempMeta.feId, UploadResult.Failure, `Failed to make the file public: ${tempMeta.name}`, e);
83
+ }
84
+ }
85
+ try {
86
+ await val(file, tempMeta);
87
+ }
88
+ catch (e) {
89
+ //TODO delete the file and the temp doc
90
+ return await this.notifyFrontend(tempMeta.feId, UploadResult.Failure, `Post-processing failed for file: ${tempMeta.name}`, e);
91
+ }
92
+ return this.notifyFrontend(tempMeta.feId, UploadResult.Success, `Successfully parsed and processed file ${tempMeta.name}`);
93
+ };
94
+ notifyFrontend = async (feId, result, message, cause) => {
95
+ if (cause)
96
+ this.logWarning(cause);
97
+ const data = { message, result, cause };
98
+ await PushPubSubModule.pushToKey(fileUploadedKey, { feId }, data);
99
+ };
100
+ }
101
+ export const UploaderModule = new UploaderModule_Class();
102
+ //# sourceMappingURL=UploaderModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploaderModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/UploaderModule.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
- import { TypeValidator } from "@intuitionrobotics/ts-common";
1
+ import { type TypeValidator } from "@intuitionrobotics/ts-common";
2
2
  import { ServerApi } from "@intuitionrobotics/thunderstorm/backend";
3
3
  import { BaseDB_ApiGenerator } from "@intuitionrobotics/db-api-generator/backend";
4
- import { DB_Temp_File } from "../../shared/types";
4
+ import { type DB_Temp_File } from "../../shared/types.js";
5
5
  export declare const TEMP_COLLECTION = "temp-files-upload";
6
6
  export declare const validateName: import("@intuitionrobotics/ts-common").Validator<string>;
7
7
  export declare class UploaderTempFileModule_Class extends BaseDB_ApiGenerator<DB_Temp_File> {
8
8
  static _validator: TypeValidator<DB_Temp_File>;
9
9
  constructor();
10
- apis(pathPart?: string): ServerApi<any>[];
10
+ apis(_pathPart?: string): ServerApi<any>[];
11
11
  }
12
12
  export declare const UploaderTempFileModule: UploaderTempFileModule_Class;
13
+ //# sourceMappingURL=UploaderTempFileModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploaderTempFileModule.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/modules/UploaderTempFileModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,aAAa,EAGlB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAClE,OAAO,EACN,mBAAmB,EAEnB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAC,KAAK,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAExD,eAAO,MAAM,eAAe,sBAAsB,CAAC;AAEnD,eAAO,MAAM,YAAY,0DAA4B,CAAC;AAEtD,qBAAa,4BACZ,SAAQ,mBAAmB,CAAC,YAAY,CAAC;IACzC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,CAW5C;;IAMF,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE;CAG1C;AAED,eAAO,MAAM,sBAAsB,8BAAqC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { auditValidator, validateExists, validateRegexp } from "@intuitionrobotics/ts-common";
2
+ import { ServerApi } from "@intuitionrobotics/thunderstorm/backend";
3
+ import { BaseDB_ApiGenerator, validateUniqueId } from "@intuitionrobotics/db-api-generator/backend";
4
+ import {} from "../../shared/types.js";
5
+ export const TEMP_COLLECTION = "temp-files-upload";
6
+ export const validateName = validateRegexp(/^.{3,}$/);
7
+ export class UploaderTempFileModule_Class extends BaseDB_ApiGenerator {
8
+ static _validator = {
9
+ _id: validateUniqueId,
10
+ name: validateName,
11
+ feId: validateExists(true),
12
+ mimeType: validateExists(true),
13
+ key: validateExists(true),
14
+ path: validateExists(true),
15
+ _audit: auditValidator(),
16
+ bucketName: validateExists(true),
17
+ public: undefined,
18
+ metadata: undefined
19
+ };
20
+ constructor() {
21
+ super(TEMP_COLLECTION, UploaderTempFileModule_Class._validator, "temp-files", "UploaderTempFileModule");
22
+ }
23
+ apis(_pathPart) {
24
+ return [];
25
+ }
26
+ }
27
+ export const UploaderTempFileModule = new UploaderTempFileModule_Class();
28
+ //# sourceMappingURL=UploaderTempFileModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploaderTempFileModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/UploaderTempFileModule.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,cAAc,EAEd,cAAc,EACd,cAAc,EACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAClE,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAmB,MAAM,uBAAuB,CAAC;AAExD,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAEnD,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;AAEtD,MAAM,OAAO,4BACZ,SAAQ,mBAAiC;IACzC,MAAM,CAAC,UAAU,GAAgC;QAChD,GAAG,EAAE,gBAAgB;QACrB,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;QAC1B,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC;QAC9B,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC;QACzB,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;QAC1B,MAAM,EAAE,cAAc,EAAE;QACxB,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC;QAChC,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,SAAS;KACnB,CAAC;IAEF;QACC,KAAK,CAAC,eAAe,EAAE,4BAA4B,CAAC,UAAU,EAAE,YAAY,EAAE,wBAAwB,CAAC,CAAC;IACzG,CAAC;IAED,IAAI,CAAC,SAAkB;QACtB,OAAO,EAAE,CAAC;IACX,CAAC;;AAGF,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,4BAA4B,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const Frontend_ModulePack_Uploader: (import("../modules/UploaderModule.js").UploaderModule_Class | import("@intuitionrobotics/push-pub-sub/frontend").PushPubSubModule_Class | import("@intuitionrobotics/push-pub-sub/frontend").NotificationsModule_Class | import("@intuitionrobotics/firebase/app-frontend/FirebaseModule").FirebaseModule_Class)[];
2
+ //# sourceMappingURL=module-pack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-pack.d.ts","sourceRoot":"","sources":["../../../src/main/app-frontend/core/module-pack.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,4BAA4B,qTAGxC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { UploaderModule } from "../modules/UploaderModule.js";
2
+ import { Frontend_ModulePack_PushPubSub } from "@intuitionrobotics/push-pub-sub/frontend";
3
+ export const Frontend_ModulePack_Uploader = [
4
+ ...Frontend_ModulePack_PushPubSub,
5
+ UploaderModule
6
+ ];
7
+ //# sourceMappingURL=module-pack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-pack.js","sourceRoot":"","sources":["../../../src/main/app-frontend/core/module-pack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAC,8BAA8B,EAAC,MAAM,0CAA0C,CAAC;AAExF,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC3C,GAAG,8BAA8B;IACjC,cAAc;CACd,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { XhrHttpModule_Class } from "@intuitionrobotics/thunderstorm/frontend";
2
- import { BaseUploaderFile, TempSecureUrl } from "../../shared/types";
3
- import { BaseUploaderModule_Class, FileStatus } from "../../shared/modules/BaseUploaderModule";
2
+ import { type BaseUploaderFile, type TempSecureUrl } from "../../shared/types.js";
3
+ import { BaseUploaderModule_Class, FileStatus } from "../../shared/modules/BaseUploaderModule.js";
4
4
  export declare class UploaderModule_Class extends BaseUploaderModule_Class<XhrHttpModule_Class> {
5
5
  constructor();
6
6
  upload(files: File[], onFileStatusChanged: (feId: string, status: FileStatus) => void, key?: string, _public?: boolean, _bucketName?: string, _pathPrefix?: string): BaseUploaderFile[];
7
7
  protected subscribeToPush(toSubscribe: TempSecureUrl[]): Promise<void>;
8
8
  }
9
9
  export declare const UploaderModule: UploaderModule_Class;
10
+ //# sourceMappingURL=UploaderModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploaderModule.d.ts","sourceRoot":"","sources":["../../../src/main/app-frontend/modules/UploaderModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAC,MAAM,0CAA0C,CAAC;AAC5F,OAAO,EAAC,KAAK,gBAAgB,EAA8C,KAAK,aAAa,EAAe,MAAM,uBAAuB,CAAC;AAE1I,OAAO,EAAC,wBAAwB,EAAE,UAAU,EAAC,MAAM,4CAA4C,CAAC;AAGhG,qBAAa,oBACT,SAAQ,wBAAwB,CAAC,mBAAmB,CAAC;;IAKrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE;cAavK,eAAe,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAmB/E;AAED,eAAO,MAAM,cAAc,sBAA6B,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { XhrHttpModule, XhrHttpModule_Class } from "@intuitionrobotics/thunderstorm/frontend";
2
+ import { fileUploadedKey, UploadResult } from "../../shared/types.js";
3
+ import { PushPubSubModule } from "@intuitionrobotics/push-pub-sub/frontend";
4
+ import { BaseUploaderModule_Class, FileStatus } from "../../shared/modules/BaseUploaderModule.js";
5
+ import { Second, timeout } from "@intuitionrobotics/ts-common";
6
+ export class UploaderModule_Class extends BaseUploaderModule_Class {
7
+ constructor() {
8
+ super(XhrHttpModule, 'UploaderModule');
9
+ }
10
+ upload(files, onFileStatusChanged, key, _public, _bucketName, _pathPrefix) {
11
+ return this.uploadImpl(files.map((file => {
12
+ return {
13
+ name: file.name,
14
+ mimeType: file.type,
15
+ key,
16
+ file,
17
+ public: _public,
18
+ onFileStatusChanged
19
+ };
20
+ })), _bucketName, _pathPrefix);
21
+ }
22
+ async subscribeToPush(toSubscribe) {
23
+ PushPubSubModule.subscribeMulti(toSubscribe.map(r => {
24
+ const props = { feId: r.tempDoc.feId };
25
+ const callBack = (data) => {
26
+ this.logInfo("Message received from service worker", fileUploadedKey, props, data);
27
+ switch (data.result) {
28
+ case UploadResult.Success:
29
+ this.setFileInfo(props?.feId, "status", FileStatus.Completed);
30
+ break;
31
+ case UploadResult.Failure:
32
+ this.setFileInfo(props?.feId, "status", FileStatus.Error);
33
+ break;
34
+ }
35
+ PushPubSubModule.unsubscribe({ pushKey: fileUploadedKey, props });
36
+ };
37
+ return ({ pushKey: fileUploadedKey, props: props, callBack });
38
+ }));
39
+ await timeout(Second);
40
+ }
41
+ }
42
+ export const UploaderModule = new UploaderModule_Class();
43
+ //# sourceMappingURL=UploaderModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploaderModule.js","sourceRoot":"","sources":["../../../src/main/app-frontend/modules/UploaderModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,mBAAmB,EAAC,MAAM,0CAA0C,CAAC;AAC5F,OAAO,EAAwB,eAAe,EAAiD,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAC1I,OAAO,EAAC,gBAAgB,EAAC,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAC,wBAAwB,EAAE,UAAU,EAAC,MAAM,4CAA4C,CAAC;AAChG,OAAO,EAAC,MAAM,EAAE,OAAO,EAAC,MAAM,8BAA8B,CAAC;AAE7D,MAAM,OAAO,oBACT,SAAQ,wBAA6C;IAErD;QACI,KAAK,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,CAAC,KAAa,EAAE,mBAA+D,EAAE,GAAY,EAAE,OAAiB,EAAE,WAAoB,EAAE,WAAoB;QAC9J,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;YACrC,OAAO;gBACH,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,GAAG;gBACH,IAAI;gBACJ,MAAM,EAAE,OAAO;gBACf,mBAAmB;aACtB,CAAC;QACN,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IACnC,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,WAA4B;QACxD,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAChD,MAAM,KAAK,GAAG,EAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAC,CAAC;YACrC,MAAM,QAAQ,GAAG,CAAC,IAA0B,EAAE,EAAE;gBAC5C,IAAI,CAAC,OAAO,CAAC,sCAAsC,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACnF,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;oBAClB,KAAK,YAAY,CAAC,OAAO;wBACrB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;wBAC9D,MAAM;oBACV,KAAK,YAAY,CAAC,OAAO;wBACrB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;wBAC1D,MAAM;gBACd,CAAC;gBACD,gBAAgB,CAAC,WAAW,CAAC,EAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAC,CAAC,CAAC;YACpE,CAAC,CAAC;YACF,OAAO,CAAC,EAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC,CAAC;QACJ,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./app-backend/core/module-pack.js";
2
+ export * from "./app-backend/modules/UploaderModule.js";
3
+ export * from "./app-backend/modules/BucketListener.js";
4
+ export * from "./app-backend/modules/UploaderTempFileModule.js";
5
+ export * from "./app-backend/modules/ServerUploaderModule.js";
6
+ //# sourceMappingURL=backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/main/backend.ts"],"names":[],"mappings":"AACA,cAAc,mCAAmC,CAAC;AAElD,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC;AAChE,cAAc,+CAA+C,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./app-backend/core/module-pack.js";
2
+ export * from "./app-backend/modules/UploaderModule.js";
3
+ export * from "./app-backend/modules/BucketListener.js";
4
+ export * from "./app-backend/modules/UploaderTempFileModule.js";
5
+ export * from "./app-backend/modules/ServerUploaderModule.js";
6
+ //# sourceMappingURL=backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/main/backend.ts"],"names":[],"mappings":"AACA,cAAc,mCAAmC,CAAC;AAElD,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC;AAChE,cAAc,+CAA+C,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./app-frontend/core/module-pack.js";
2
+ export * from "./app-frontend/modules/UploaderModule.js";
3
+ //# sourceMappingURL=frontend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend.d.ts","sourceRoot":"","sources":["../src/main/frontend.ts"],"names":[],"mappings":"AAGA,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC"}
@@ -0,0 +1,6 @@
1
+ // Already lean: module pack + the singleton UploaderModule. UploaderModule
2
+ // reaches PushPubSub via the push-pub-sub barrel, which itself no longer
3
+ // drags the full firebase SDK transitively (see firebase/frontend.ts).
4
+ export * from "./app-frontend/core/module-pack.js";
5
+ export * from "./app-frontend/modules/UploaderModule.js";
6
+ //# sourceMappingURL=frontend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend.js","sourceRoot":"","sources":["../src/main/frontend.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,yEAAyE;AACzE,uEAAuE;AACvE,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './shared/types.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/main/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './shared/types.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/main/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Module } from "@intuitionrobotics/ts-common";
2
2
  import { BaseHttpModule_Class, BaseHttpRequest } from "@intuitionrobotics/thunderstorm";
3
- import { BaseUploaderFile, DB_Temp_File, Request_Uploader, TempSecureUrl } from "../../shared/types";
3
+ import { type BaseUploaderFile, type DB_Temp_File, type Request_Uploader, type TempSecureUrl } from "../../shared/types.js";
4
4
  export declare enum FileStatus {
5
5
  ObtainingUrl = "ObtainingUrl",
6
6
  UrlObtained = "UrlObtained",
@@ -46,3 +46,4 @@ export declare abstract class BaseUploaderModule_Class<HttpModule extends BaseHt
46
46
  private uploadFile;
47
47
  }
48
48
  export {};
49
+ //# sourceMappingURL=BaseUploaderModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseUploaderModule.d.ts","sourceRoot":"","sources":["../../../src/main/shared/modules/BaseUploaderModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,MAAM,EAET,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,oBAAoB,EACpB,eAAe,EAIlB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAEH,KAAK,gBAAgB,EAErB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACrB,MAAM,uBAAuB,CAAC;AAK/B,oBAAY,UAAU;IAClB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAG/B,cAAc,mBAAmB;IACjC,SAAS,cAAc;IACvB,KAAK,UAAU;CAClB;AAED,MAAM,MAAM,QAAQ,GAAG;IACnB,MAAM,EAAE,UAAU,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;CAC7D,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG;IAE3C,IAAI,EAAE,GAAG,CAAA;IACT,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;CAClE,CAAA;AAED,KAAK,MAAM,GAAG;IACV,wBAAwB,CAAC,EAAE,MAAM,CAAA;CACpC,CAAA;AAED,8BAAsB,wBAAwB,CAAC,UAAU,SAAS,oBAAoB,EAAE,YAAY,SAAS,MAAM,GAAG,EAAE,CACpH,SAAQ,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC;IACrC,SAAS,CAAC,KAAK,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAM;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyD;IACrF,OAAO,CAAC,UAAU,CAAa;IAE/B,SAAS,aAAa,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM;IAKhE,IAAI;IAKJ,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/E,WAAW,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS;IAIlF,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIjD,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAQtF,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAiClG,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,4BAA4B;IAsBpC,OAAO,CAAC,WAAW,CAkBjB;IAEF,OAAO,CAAC,UAAU,CAsBhB;CACL"}