@proteinjs/db-file 1.8.4 → 1.9.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 (97) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/generated/index.d.ts.map +1 -1
  3. package/dist/generated/index.js +3 -1
  4. package/dist/generated/index.js.map +1 -1
  5. package/dist/index.d.ts +4 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +4 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/src/DbFileStorageDriver.d.ts +7 -0
  10. package/dist/src/DbFileStorageDriver.d.ts.map +1 -1
  11. package/dist/src/DbFileStorageDriver.js +69 -41
  12. package/dist/src/DbFileStorageDriver.js.map +1 -1
  13. package/dist/src/FileCopyForOthers.d.ts +52 -0
  14. package/dist/src/FileCopyForOthers.d.ts.map +1 -0
  15. package/dist/src/FileCopyForOthers.js +62 -0
  16. package/dist/src/FileCopyForOthers.js.map +1 -0
  17. package/dist/src/FileStorage.d.ts +145 -11
  18. package/dist/src/FileStorage.d.ts.map +1 -1
  19. package/dist/src/FileStorage.js +537 -41
  20. package/dist/src/FileStorage.js.map +1 -1
  21. package/dist/src/FileStorageDriver.d.ts +11 -0
  22. package/dist/src/FileStorageDriver.d.ts.map +1 -1
  23. package/dist/src/FileStorageError.d.ts +62 -0
  24. package/dist/src/FileStorageError.d.ts.map +1 -0
  25. package/dist/src/FileStorageError.js +118 -0
  26. package/dist/src/FileStorageError.js.map +1 -0
  27. package/dist/src/FileVariantMaker.d.ts +61 -0
  28. package/dist/src/FileVariantMaker.d.ts.map +1 -0
  29. package/dist/src/FileVariantMaker.js +62 -0
  30. package/dist/src/FileVariantMaker.js.map +1 -0
  31. package/dist/src/routes/FileResponder.d.ts +41 -0
  32. package/dist/src/routes/FileResponder.d.ts.map +1 -0
  33. package/dist/src/routes/FileResponder.js +135 -0
  34. package/dist/src/routes/FileResponder.js.map +1 -0
  35. package/dist/src/routes/getFile.d.ts +5 -13
  36. package/dist/src/routes/getFile.d.ts.map +1 -1
  37. package/dist/src/routes/getFile.js +20 -56
  38. package/dist/src/routes/getFile.js.map +1 -1
  39. package/dist/src/routes/getFileVariant.d.ts +20 -0
  40. package/dist/src/routes/getFileVariant.d.ts.map +1 -0
  41. package/dist/src/routes/getFileVariant.js +112 -0
  42. package/dist/src/routes/getFileVariant.js.map +1 -0
  43. package/dist/src/routes/getFileVariantRoute.d.ts +7 -0
  44. package/dist/src/routes/getFileVariantRoute.d.ts.map +1 -0
  45. package/dist/src/routes/getFileVariantRoute.js +9 -0
  46. package/dist/src/routes/getFileVariantRoute.js.map +1 -0
  47. package/dist/src/tables/FileTable.d.ts +55 -2
  48. package/dist/src/tables/FileTable.d.ts.map +1 -1
  49. package/dist/src/tables/FileTable.js +8 -0
  50. package/dist/src/tables/FileTable.js.map +1 -1
  51. package/dist/test/DbFileStorageDriverMissingBytes.test.d.ts +2 -0
  52. package/dist/test/DbFileStorageDriverMissingBytes.test.d.ts.map +1 -0
  53. package/dist/test/DbFileStorageDriverMissingBytes.test.js +184 -0
  54. package/dist/test/DbFileStorageDriverMissingBytes.test.js.map +1 -0
  55. package/dist/test/FileByteAccess.test.js +6 -3
  56. package/dist/test/FileByteAccess.test.js.map +1 -1
  57. package/dist/test/FileCopyForOthers.test.d.ts +2 -0
  58. package/dist/test/FileCopyForOthers.test.d.ts.map +1 -0
  59. package/dist/test/FileCopyForOthers.test.js +1143 -0
  60. package/dist/test/FileCopyForOthers.test.js.map +1 -0
  61. package/dist/test/FileMediaMetadata.test.js +60 -5
  62. package/dist/test/FileMediaMetadata.test.js.map +1 -1
  63. package/dist/test/FileStorageError.test.d.ts +2 -0
  64. package/dist/test/FileStorageError.test.d.ts.map +1 -0
  65. package/dist/test/FileStorageError.test.js +68 -0
  66. package/dist/test/FileStorageError.test.js.map +1 -0
  67. package/dist/test/FileTestEnvironment.d.ts.map +1 -1
  68. package/dist/test/FileTestEnvironment.js +3 -0
  69. package/dist/test/FileTestEnvironment.js.map +1 -1
  70. package/dist/test/FileVariants.test.d.ts +2 -0
  71. package/dist/test/FileVariants.test.d.ts.map +1 -0
  72. package/dist/test/FileVariants.test.js +1008 -0
  73. package/dist/test/FileVariants.test.js.map +1 -0
  74. package/dist/test/GetFileRoute.test.js +29 -0
  75. package/dist/test/GetFileRoute.test.js.map +1 -1
  76. package/generated/index.ts +3 -1
  77. package/index.ts +4 -0
  78. package/package.json +5 -5
  79. package/src/DbFileStorageDriver.ts +32 -21
  80. package/src/FileCopyForOthers.ts +71 -0
  81. package/src/FileStorage.ts +351 -18
  82. package/src/FileStorageDriver.ts +12 -0
  83. package/src/FileStorageError.ts +123 -0
  84. package/src/FileVariantMaker.ts +84 -0
  85. package/src/routes/FileResponder.ts +85 -0
  86. package/src/routes/getFile.ts +9 -44
  87. package/src/routes/getFileVariant.ts +53 -0
  88. package/src/routes/getFileVariantRoute.ts +7 -0
  89. package/src/tables/FileTable.ts +57 -1
  90. package/test/DbFileStorageDriverMissingBytes.test.ts +85 -0
  91. package/test/FileByteAccess.test.ts +7 -1
  92. package/test/FileCopyForOthers.test.ts +702 -0
  93. package/test/FileMediaMetadata.test.ts +44 -0
  94. package/test/FileStorageError.test.ts +79 -0
  95. package/test/FileTestEnvironment.ts +3 -0
  96. package/test/FileVariants.test.ts +604 -0
  97. package/test/GetFileRoute.test.ts +19 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileVariants.test.js","sourceRoot":"","sources":["../../test/FileVariants.test.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,7 @@ var http = __importStar(require("http"));
63
63
  var reflection_1 = require("@proteinjs/reflection");
64
64
  var user_1 = require("@proteinjs/user");
65
65
  var FileStorage_1 = require("../src/FileStorage");
66
+ var DbFileStorageDriver_1 = require("../src/DbFileStorageDriver");
66
67
  var getFile_1 = require("../src/routes/getFile");
67
68
  var FileTestEnvironment_1 = require("./FileTestEnvironment");
68
69
  /** Every byte value once — a payload that corrupts under any text/base64 mix-up. */
@@ -451,6 +452,34 @@ describe('GET /file/:id — proxy serving (driver without signed URLs)', functio
451
452
  });
452
453
  }); });
453
454
  });
455
+ it('404s when the row is there and its bytes are not — the driver’s not-found, never a 500', function () { return __awaiter(void 0, void 0, void 0, function () {
456
+ var file, response;
457
+ return __generator(this, function (_a) {
458
+ switch (_a.label) {
459
+ case 0:
460
+ testEnv.setDriver(new DbFileStorageDriver_1.DbFileStorageDriver());
461
+ _a.label = 1;
462
+ case 1:
463
+ _a.trys.push([1, , 5, 6]);
464
+ return [4 /*yield*/, new FileStorage_1.FileStorage().createFile({ name: 'lost.png', type: 'image/png', size: rawBytes.length }, rawBytes.toString('base64'))];
465
+ case 2:
466
+ file = _a.sent();
467
+ return [4 /*yield*/, FileStorage_1.FileStorage.getDriver().deleteFile(file.id)];
468
+ case 3:
469
+ _a.sent();
470
+ return [4 /*yield*/, invokeRoute(file.id)];
471
+ case 4:
472
+ response = _a.sent();
473
+ expect(response.statusCode).toEqual(404);
474
+ expect(response.body).toEqual('File not found');
475
+ return [3 /*break*/, 6];
476
+ case 5:
477
+ testEnv.setDriver(driver);
478
+ return [7 /*endfinally*/];
479
+ case 6: return [2 /*return*/];
480
+ }
481
+ });
482
+ }); });
454
483
  });
455
484
  describe('GET /file/:id — signed-URL serving (302 redirect)', function () {
456
485
  var driver = new TestSignedUrlFileStorageDriver();
@@ -1 +1 @@
1
- {"version":3,"file":"GetFileRoute.test.js","sourceRoot":"","sources":["../../test/GetFileRoute.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GetFileRoute.test.js","sourceRoot":"","sources":["../../test/GetFileRoute.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA6B;AAE7B,oDAAyD;AACzD,wCAAsE;AAEtE,kDAAiD;AAEjD,kEAAiE;AACjE,iDAAgD;AAChD,6DAA4D;AAE5D,oFAAoF;AACpF,IAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,EAAD,CAAC,CAAC,CAAC,CAAC;AAEvE;;;;GAIG;AACH;IAAA;QACW,UAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAqB7C,CAAC;IAnBO,+CAAU,GAAhB,UAAiB,IAAU,EAAE,QAAgB;;;gBAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;;;;KAC1D;IAEK,gDAAW,GAAjB,UAAkB,MAAc;;;;gBACxB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,IAAI,KAAK,SAAS,EAAE;oBACtB,MAAM,IAAI,KAAK,CAAC,0BAAmB,MAAM,CAAE,CAAC,CAAC;iBAC9C;gBACD,sBAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAC;;;KAChC;IAEK,mDAAc,GAApB,UAAqB,MAAc,EAAE,IAAY;;;gBAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;;;;KACrD;IAEK,+CAAU,GAAhB,UAAiB,MAAc;;;gBAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;;;KAC3B;IACH,iCAAC;AAAD,CAAC,AAtBD,IAsBC;AAED;;;;GAIG;AACH;IAAA;QACW,UAAK,GAAG,IAAI,GAAG,EAAkD,CAAC;IAqD7E,CAAC;IAjDO,8CAAK,GAAX;;;;;;wBACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,UAAC,GAAG,EAAE,GAAG;;4BACvC,IAAM,MAAM,GAAG,CAAC,MAAA,GAAG,CAAC,GAAG,mCAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;4BACtE,IAAM,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;4BACpC,IAAI,CAAC,IAAI,EAAE;gCACT,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gCACzB,OAAO;6BACR;4BACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;4BAC9F,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACtB,CAAC,CAAC,CAAC;wBACH,qBAAM,IAAI,OAAO,CAAO,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAA5C,CAA4C,CAAC,EAAA;;wBAAlF,SAAkF,CAAC;wBACnF,IAAI,CAAC,IAAI,GAAI,IAAI,CAAC,MAAO,CAAC,OAAO,EAAkB,CAAC,IAAI,CAAC;;;;;KAC1D;IAEK,6CAAI,GAAV;;;;;;6BACM,IAAI,CAAC,MAAM,EAAX,wBAAW;wBACb,qBAAM,IAAI,OAAO,CAAO,UAAC,OAAO,EAAE,MAAM,IAAK,OAAA,KAAI,CAAC,MAAO,CAAC,KAAK,CAAC,UAAC,GAAG,IAAK,OAAA,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAA/B,CAA+B,CAAC,EAA5D,CAA4D,CAAC,EAAA;;wBAA1G,SAA0G,CAAC;;;;;;KAE9G;IAEK,mDAAU,GAAhB,UAAiB,IAAU,EAAE,QAAgB;;;gBAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;;;;KAC7F;IAEK,oDAAW,GAAjB,UAAkB,MAAc;;;;gBACxB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,IAAI,KAAK,SAAS,EAAE;oBACtB,MAAM,IAAI,KAAK,CAAC,0BAAmB,MAAM,CAAE,CAAC,CAAC;iBAC9C;gBACD,sBAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAC;;;KACtC;IAEK,uDAAc,GAApB,UAAqB,MAAc,EAAE,IAAY;;;;;gBACzC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;oBACrB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;oBAClC,WAAW,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,mCAAI,0BAA0B;iBACjE,CAAC,CAAC;;;;KACJ;IAEK,qDAAY,GAAlB,UAAmB,MAAc,EAAE,OAA4B;;;;;gBACvD,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,mCAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;gBAChE,sBAAO,2BAAoB,IAAI,CAAC,IAAI,mBAAS,MAAM,+BAAqB,OAAO,CAAE,EAAC;;;KACnF;IAEK,mDAAU,GAAhB,UAAiB,MAAc;;;gBAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;;;KAC3B;IACH,qCAAC;AAAD,CAAC,AAtDD,IAsDC;AAED,gFAAgF;AAChF;IAAA;QAIE,YAAO,GAA2B,EAAE,CAAC;IAoBvC,CAAC;IAlBC,iCAAM,GAAN,UAAO,IAAY;QACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+BAAI,GAAJ,UAAK,IAAa;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAS,GAAT,UAAU,IAAY,EAAE,KAAa;QACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;IAC3C,CAAC;IAED,mCAAQ,GAAR,UAAS,MAAc,EAAE,GAAW;QAClC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;IACzB,CAAC;IACH,uBAAC;AAAD,CAAC,AAxBD,IAwBC;AAKD,IAAM,WAAW,GAAG,UAAO,MAAc,EAAE,OAAoC;IAApC,wBAAA,EAAA,YAAoC;;;;;;oBACvE,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;oBACxC,qBAAM,iBAAO,CAAC,SAAS,CACrB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,SAAA,EAA6B,EAC9D,QAAoC,CACrC,EAAA;;oBAHD,SAGC,CAAC;oBACF,sBAAO,QAAQ,EAAC;;;;CACjB,CAAC;AAEF,IAAM,OAAO,GAAG,IAAI,yCAAmB,EAAE,CAAC;AAE1C,IAAI,IAAU,CAAC;AAEf,SAAS,CAAC;;;;oBACR,qBAAM,OAAO,CAAC,SAAS,EAAE,EAAA;;gBAAzB,SAAyB,CAAC;gBAGpB,WAAW,GAAI,6BAAgB,CAAC,GAAG,EAA4D,CAAC,WAAW,CAAC;gBAClH,WAAW,CAAC,4CAA4C,CAAC,GAAG,CAAC,IAAI,eAAQ,EAAE,CAAC,CAAC;gBAC5E,eAAyC,CAAC,QAAQ,GAAG,SAAS,CAAC;gBACzD,qBAAM,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,EAAA;;gBAAvF,IAAI,GAAG,SAAgF,CAAC;gBACxF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;;;;KACrB,CAAC,CAAC;AAEH,QAAQ,CAAC;;;;gBACN,eAAyC,CAAC,QAAQ,GAAG,SAAS,CAAC;gBAChE,qBAAM,OAAO,CAAC,QAAQ,EAAE,EAAA;;gBAAxB,SAAwB,CAAC;;;;KAC1B,CAAC,CAAC;AAEH,QAAQ,CAAC,4DAA4D,EAAE;IACrE,IAAM,MAAM,GAAG,IAAI,0BAA0B,EAAE,CAAC;IAEhD,SAAS,CAAC;QACR,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE;;;;wBACvD,qBAAM,IAAI,yBAAW,EAAE,CAAC,UAAU,CAC7C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAU,EACtE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC5B,EAAA;;oBAHK,IAAI,GAAG,SAGZ;oBAEgB,qBAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA;;oBAArC,QAAQ,GAAG,SAA0B;oBAE3C,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CAAC;oBAC7C,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBAC9D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAClD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;SACnE,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE;;;;wBACpE,qBAAM,IAAI,yBAAW,EAAE,CAAC,UAAU,CAC7C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAU,EACtE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC5B,EAAA;;oBAHK,IAAI,GAAG,SAGZ;oBAEgB,qBAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA;;oBAArC,QAAQ,GAAG,SAA0B;oBAE3C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAClD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;SACnE,CAAC,CAAC;IAEH,0FAA0F;IAC1F,8FAA8F;IAC9F,QAAQ,CAAC,6DAA6D,EAAE;QACtE,IAAI,WAAmB,CAAC;QAExB,SAAS,CAAC;;;;4BACK,qBAAM,IAAI,yBAAW,EAAE,CAAC,UAAU,CAC7C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAU,EACzE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC5B,EAAA;;wBAHK,IAAI,GAAG,SAGZ;wBACD,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC;;;;aACvB,CAAC,CAAC;QAEH,EAAE,CAAC,2EAA2E,EAAE;;;;4BAC7D,qBAAM,WAAW,CAAC,WAAW,CAAC,EAAA;;wBAAzC,QAAQ,GAAG,SAA8B;wBAC/C,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBAC3D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;aACnE,CAAC,CAAC;QAEH,EAAE,CAAC,0EAA0E,EAAE;;;;4BAC5D,qBAAM,WAAW,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,EAAA;;wBAAnE,QAAQ,GAAG,SAAwD;wBACzE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBACzC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;wBACrE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBAC3D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;aACpF,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE;;;;4BAC5C,qBAAM,WAAW,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAA;;wBAAlE,QAAQ,GAAG,SAAuD;wBACxE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBACzC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;wBACvE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;aACjF,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE;;;;4BACxB,qBAAM,WAAW,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAA;;wBAAjE,QAAQ,GAAG,SAAsD;wBACvE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBACzC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;wBACvE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;aACjF,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE;;;;4BACpC,qBAAM,WAAW,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,EAAA;;wBAArE,QAAQ,GAAG,SAA0D;wBAC3E,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBACzC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;wBACvE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;aACjF,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE;;;;4BAChC,qBAAM,WAAW,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAA;;wBAAlE,QAAQ,GAAG,SAAuD;wBACxE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBACzC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;;;;aAClE,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE;;;;;8BACO,EAAzD,MAAC,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,CAAC;;;6BAAzD,CAAA,cAAyD,CAAA;wBAAlE,KAAK;wBACG,qBAAM,WAAW,CAAC,WAAW,EAAE,EAAE,KAAK,OAAA,EAAE,CAAC,EAAA;;wBAApD,QAAQ,GAAG,SAAyC;wBAC1D,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBAC7C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;wBAHhD,IAAyD,CAAA;;;;;aAK9E,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wFAAwF,EAAE;;;;;oBAC3F,OAAO,CAAC,SAAS,CAAC,IAAI,yCAAmB,EAAE,CAAC,CAAC;;;;oBAE9B,qBAAM,IAAI,yBAAW,EAAE,CAAC,UAAU,CAC7C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAU,EACtE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC5B,EAAA;;oBAHK,IAAI,GAAG,SAGZ;oBACD,qBAAM,yBAAW,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA;;oBAAjD,SAAiD,CAAC;oBAEjC,qBAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA;;oBAArC,QAAQ,GAAG,SAA0B;oBAE3C,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACzC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;;;oBAEhD,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;;;;;SAE7B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mDAAmD,EAAE;IAC5D,IAAM,MAAM,GAAG,IAAI,8BAA8B,EAAE,CAAC;IAEpD,SAAS,CAAC;;;wBACR,qBAAM,MAAM,CAAC,KAAK,EAAE,EAAA;;oBAApB,SAAoB,CAAC;oBACrB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;;;;SAC3B,CAAC,CAAC;IAEH,QAAQ,CAAC;;;wBACP,qBAAM,MAAM,CAAC,IAAI,EAAE,EAAA;;oBAAnB,SAAmB,CAAC;;;;SACrB,CAAC,CAAC;IAEH,EAAE,CAAC,qFAAqF,EAAE;;;;wBAC3E,qBAAM,IAAI,yBAAW,EAAE,CAAC,UAAU,CAC7C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAU,EACtE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC5B,EAAA;;oBAHK,IAAI,GAAG,SAGZ;oBAEgB,qBAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA;;oBAArC,QAAQ,GAAG,SAA0B;oBAE3C,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACzC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;oBAEtB,qBAAM,KAAK,CAAC,QAAQ,CAAC,WAAY,CAAC,EAAA;;oBAAjD,YAAY,GAAG,SAAkC;oBACvD,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACzC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBACvD,KAAA,CAAA,KAAA,MAAM,CAAA,CAAC,IAAI,CAAA;oBAAC,qBAAM,YAAY,CAAC,WAAW,EAAE,EAAA;;oBAArD,MAAM,GAAG,cAAY,SAAgC,EAAC;oBAC5D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;SAClD,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE;;;;wBACzE,qBAAM,IAAI,yBAAW,EAAE,CAAC,UAAU,CAC7C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAU,EACtE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC5B,EAAA;;oBAHK,IAAI,GAAG,SAGZ;oBAEgB,qBAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA;;oBAArC,QAAQ,GAAG,SAA0B;oBAE3C,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACzC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;;;;SAC3E,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE;;;;wBAC1C,qBAAM,WAAW,CAAC,sCAAsC,CAAC,EAAA;;oBAApE,QAAQ,GAAG,SAAyD;oBAE1E,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACzC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CAAC;;;;SAC9C,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE;;;;wBAC5D,qBAAM,IAAI,yBAAW,EAAE,CAAC,UAAU,CAC7C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAU,EACtE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC5B,EAAA;;oBAHK,IAAI,GAAG,SAGZ;oBACD,OAAO,CAAC,KAAK,CAAC,gBAA4B,CAAC,CAAC;;;;oBAEzB,qBAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA;;oBAArC,QAAQ,GAAG,SAA0B;oBAE3C,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACzC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CAAC;;;oBAE7C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;;;;;SAEvB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -9,13 +9,14 @@ import '@proteinjs/user';
9
9
  /** Generate Source Graph */
10
10
 
11
11
  const sourceGraph =
12
- '{"options":{"directed":true,"multigraph":false,"compound":false},"nodes":[{"v":"@proteinjs/db-file/FileReachabilityResolver","value":{"packageName":"@proteinjs/db-file","name":"FileReachabilityResolver","filePath":"src/FileReachabilityResolver.ts","qualifiedName":"@proteinjs/db-file/FileReachabilityResolver","properties":[],"methods":[{"name":"canReadViaReference","returnType":{"packageName":"","name":"Promise<boolean>","filePath":null,"qualifiedName":"/Promise<boolean>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]}],"typeParameters":[],"directParents":[{"packageName":"@proteinjs/reflection","name":"Loadable","filePath":null,"qualifiedName":"@proteinjs/reflection/Loadable","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"sourceType":3}},{"v":"@proteinjs/reflection/Loadable"},{"v":"@proteinjs/db-file/DefaultFileStorageDriverFactory","value":{"packageName":"@proteinjs/db-file","name":"DefaultFileStorageDriverFactory","filePath":"src/FileStorage.ts","qualifiedName":"@proteinjs/db-file/DefaultFileStorageDriverFactory","properties":[],"methods":[{"name":"getDriver","returnType":{"packageName":"@proteinjs/db-file","name":"FileStorageDriver","filePath":null,"qualifiedName":"@proteinjs/db-file/FileStorageDriver","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[]}],"typeParameters":[],"directParents":[{"packageName":"@proteinjs/reflection","name":"Loadable","filePath":null,"qualifiedName":"@proteinjs/reflection/Loadable","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"sourceType":3}},{"v":"@proteinjs/db-file/FileStorage","value":{"packageName":"@proteinjs/db-file","name":"FileStorage","filePath":"src/FileStorage.ts","qualifiedName":"@proteinjs/db-file/FileStorage","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"driver","type":{"packageName":"@proteinjs/db-file","name":"FileStorageDriver","filePath":null,"qualifiedName":"@proteinjs/db-file/FileStorageDriver","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":true,"visibility":"private"},{"name":"serviceMetadata","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[{"name":"getDriver","returnType":{"packageName":"@proteinjs/db-file","name":"FileStorageDriver","filePath":null,"qualifiedName":"@proteinjs/db-file/FileStorageDriver","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":true,"visibility":"public","parameters":[]},{"name":"createFile","returnType":{"packageName":"","name":"Promise<File>","filePath":null,"qualifiedName":"/Promise<File>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"fileMetaData","type":{"packageName":"","name":"Omit<File, keyof ScopedRecord>","filePath":null,"qualifiedName":"/Omit<File, keyof ScopedRecord>","typeParameters":null,"directParents":null}},{"name":"fileData","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]},{"name":"getFile","returnType":{"packageName":"","name":"Promise<File>","filePath":null,"qualifiedName":"/Promise<File>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]},{"name":"getFileData","returnType":{"packageName":"","name":"Promise<string>","filePath":null,"qualifiedName":"/Promise<string>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]},{"name":"getSignedUrl","returnType":{"packageName":"","name":"Promise<string | undefined>","filePath":null,"qualifiedName":"/Promise<string | undefined>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}},{"name":"options","type":{"packageName":"@proteinjs/db-file","name":"{ ttlMs?: number }","filePath":null,"qualifiedName":"@proteinjs/db-file/{ ttlMs?: number }","typeParameters":null,"directParents":null}}]},{"name":"updateFileData","returnType":{"packageName":"","name":"Promise<void>","filePath":null,"qualifiedName":"/Promise<void>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}},{"name":"data","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]},{"name":"updateFile","returnType":{"packageName":"","name":"Promise<void>","filePath":null,"qualifiedName":"/Promise<void>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"file","type":{"packageName":"","name":"Omit<File, keyof ScopedRecord>","filePath":null,"qualifiedName":"/Omit<File, keyof ScopedRecord>","typeParameters":null,"directParents":null}}]},{"name":"deleteFile","returnType":{"packageName":"","name":"Promise<void>","filePath":null,"qualifiedName":"/Promise<void>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]}],"typeParameters":[],"directParentInterfaces":[{"packageName":"@proteinjs/db-file","name":"FileStorageService","filePath":null,"qualifiedName":"@proteinjs/db-file/FileStorageService","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"directParentClasses":[],"sourceType":2}},{"v":"@proteinjs/db-file/FileStorageService","value":{"packageName":"@proteinjs/db-file","name":"FileStorageService","filePath":"src/services/FileStorageService.ts","qualifiedName":"@proteinjs/db-file/FileStorageService","properties":[],"methods":[{"name":"createFile","returnType":{"packageName":"","name":"Promise<File>","filePath":null,"qualifiedName":"/Promise<File>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"fileMetaData","type":{"packageName":"","name":"Omit<File, keyof ScopedRecord>","filePath":null,"qualifiedName":"/Omit<File, keyof ScopedRecord>","typeParameters":null,"directParents":null}},{"name":"fileData","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]},{"name":"getFile","returnType":{"packageName":"","name":"Promise<File>","filePath":null,"qualifiedName":"/Promise<File>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]},{"name":"getFileData","returnType":{"packageName":"","name":"Promise<string>","filePath":null,"qualifiedName":"/Promise<string>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]},{"name":"updateFileData","returnType":{"packageName":"","name":"Promise<void>","filePath":null,"qualifiedName":"/Promise<void>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}},{"name":"data","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]},{"name":"updateFile","returnType":{"packageName":"","name":"Promise<void>","filePath":null,"qualifiedName":"/Promise<void>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"file","type":{"packageName":"","name":"Omit<File, keyof ScopedRecord>","filePath":null,"qualifiedName":"/Omit<File, keyof ScopedRecord>","typeParameters":null,"directParents":null}}]},{"name":"deleteFile","returnType":{"packageName":"","name":"Promise<void>","filePath":null,"qualifiedName":"/Promise<void>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]}],"typeParameters":[],"directParents":[{"packageName":"@proteinjs/service","name":"Service","filePath":null,"qualifiedName":"@proteinjs/service/Service","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"sourceType":3}},{"v":"@proteinjs/db-file/FileStorageTableWatcher","value":{"packageName":"@proteinjs/db-file","name":"FileStorageTableWatcher","filePath":"src/FileStorageTableWatcher.ts","qualifiedName":"@proteinjs/db-file/FileStorageTableWatcher","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"logger","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private"}],"methods":[{"name":"name","returnType":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[]},{"name":"table","returnType":{"packageName":"","name":"Table<File>","filePath":null,"qualifiedName":"/Table<File>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[]},{"name":"beforeDelete","returnType":{"packageName":"","name":"Promise<void>","filePath":null,"qualifiedName":"/Promise<void>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"recordsToDelete","type":{"packageName":"","name":"T[]","filePath":null,"qualifiedName":"/T[]","typeParameters":null,"directParents":null}},{"name":"initialQb","type":{"packageName":"","name":"QueryBuilder<T>","filePath":null,"qualifiedName":"/QueryBuilder<T>","typeParameters":null,"directParents":null}},{"name":"deleteQb","type":{"packageName":"","name":"QueryBuilder<T>","filePath":null,"qualifiedName":"/QueryBuilder<T>","typeParameters":null,"directParents":null}}]}],"typeParameters":[],"directParentInterfaces":[{"packageName":"@proteinjs/db","name":"TableWatcher","filePath":null,"qualifiedName":"@proteinjs/db/TableWatcher","properties":[],"methods":[],"typeParameters":["@proteinjs/db-file/File"],"directParents":[]}],"directParentClasses":[],"sourceType":2}},{"v":"@proteinjs/db/TableWatcher"},{"v":"@proteinjs/db-file/getFile","value":{"packageName":"@proteinjs/db-file","name":"getFile","filePath":"src/routes/getFile.ts","qualifiedName":"@proteinjs/db-file/getFile","type":{"packageName":"@proteinjs/server-api","name":"Route","filePath":null,"qualifiedName":"@proteinjs/server-api/Route","typeParameters":[],"directParents":[{"packageName":"@proteinjs/server-api","name":"Route","filePath":null,"qualifiedName":"@proteinjs/server-api/Route","typeParameters":[],"directParents":null}]},"isExported":true,"isConst":true,"sourceType":0}},{"v":"@proteinjs/server-api/Route"},{"v":"@proteinjs/db-file/FileData","value":{"packageName":"@proteinjs/db-file","name":"FileData","filePath":"src/tables/FileDataTable.ts","qualifiedName":"@proteinjs/db-file/FileData","properties":[{"name":"file","type":{"packageName":"","name":"Reference<File>","filePath":null,"qualifiedName":"/Reference<File>","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"order","type":{"packageName":"","name":"number","filePath":null,"qualifiedName":"/number","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"data","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[],"typeParameters":[],"directParents":[{"packageName":"@proteinjs/user","name":"ScopedRecord","filePath":null,"qualifiedName":"@proteinjs/user/ScopedRecord","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"sourceType":3}},{"v":"@proteinjs/user/ScopedRecord"},{"v":"@proteinjs/db-file/FileDataTable","value":{"packageName":"@proteinjs/db-file","name":"FileDataTable","filePath":"src/tables/FileDataTable.ts","qualifiedName":"@proteinjs/db-file/FileDataTable","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"name","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"auth","type":{"packageName":"","name":"Table<FileData>[\'auth\']","filePath":null,"qualifiedName":"/Table<FileData>[\'auth\']","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"columns","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[],"typeParameters":[],"directParentInterfaces":[],"directParentClasses":[{"packageName":"@proteinjs/db","name":"Table","filePath":null,"qualifiedName":"@proteinjs/db/Table","isAbstract":false,"isStatic":false,"visibility":"public","properties":[],"methods":[],"typeParameters":["@proteinjs/db-file/FileData"],"directParentInterfaces":[],"directParentClasses":[]}],"sourceType":2}},{"v":"@proteinjs/db/Table"},{"v":"@proteinjs/db-file/File","value":{"packageName":"@proteinjs/db-file","name":"File","filePath":"src/tables/FileTable.ts","qualifiedName":"@proteinjs/db-file/File","properties":[{"name":"name","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"type","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"size","type":{"packageName":"","name":"number","filePath":null,"qualifiedName":"/number","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"preview","type":{"packageName":"","name":"Reference<File>","filePath":null,"qualifiedName":"/Reference<File>","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"width","type":{"packageName":"","name":"number","filePath":null,"qualifiedName":"/number","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"height","type":{"packageName":"","name":"number","filePath":null,"qualifiedName":"/number","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"durationMs","type":{"packageName":"","name":"number","filePath":null,"qualifiedName":"/number","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"sourceUrl","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"sourcePageUrl","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"retrievedAt","type":{"packageName":"","name":"Date","filePath":null,"qualifiedName":"/Date","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"license","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"licenseUrl","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"attribution","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"contentHash","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[],"typeParameters":[],"directParents":[{"packageName":"@proteinjs/user","name":"ScopedRecord","filePath":null,"qualifiedName":"@proteinjs/user/ScopedRecord","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"sourceType":3}},{"v":"@proteinjs/db-file/FileTable","value":{"packageName":"@proteinjs/db-file","name":"FileTable","filePath":"src/tables/FileTable.ts","qualifiedName":"@proteinjs/db-file/FileTable","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"name","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"auth","type":{"packageName":"","name":"Table<File>[\'auth\']","filePath":null,"qualifiedName":"/Table<File>[\'auth\']","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"columns","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"indexes","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[],"typeParameters":[],"directParentInterfaces":[],"directParentClasses":[{"packageName":"@proteinjs/db","name":"Table","filePath":null,"qualifiedName":"@proteinjs/db/Table","isAbstract":false,"isStatic":false,"visibility":"public","properties":[],"methods":[],"typeParameters":["@proteinjs/db-file/File"],"directParentInterfaces":[],"directParentClasses":[]}],"sourceType":2}},{"v":"@proteinjs/service/Service"}],"edges":[{"v":"@proteinjs/db-file/FileReachabilityResolver","w":"@proteinjs/reflection/Loadable","value":"extends interface"},{"v":"@proteinjs/db-file/DefaultFileStorageDriverFactory","w":"@proteinjs/reflection/Loadable","value":"extends interface"},{"v":"@proteinjs/db-file/FileStorage","w":"@proteinjs/db-file/FileStorageService","value":"implements interface"},{"v":"@proteinjs/db-file/FileStorageTableWatcher","w":"@proteinjs/db/TableWatcher","value":"implements interface"},{"v":"@proteinjs/db-file/getFile","w":"@proteinjs/server-api/Route","value":"has type"},{"v":"@proteinjs/db-file/FileData","w":"@proteinjs/user/ScopedRecord","value":"extends interface"},{"v":"@proteinjs/db-file/FileDataTable","w":"@proteinjs/db/Table","value":"extends class"},{"v":"@proteinjs/db-file/File","w":"@proteinjs/user/ScopedRecord","value":"extends interface"},{"v":"@proteinjs/db-file/FileTable","w":"@proteinjs/db/Table","value":"extends class"},{"v":"@proteinjs/db-file/FileStorageService","w":"@proteinjs/service/Service","value":"extends interface"}]}';
12
+ '{"options":{"directed":true,"multigraph":false,"compound":false},"nodes":[{"v":"@proteinjs/db-file/FileCopyForOthers","value":{"packageName":"@proteinjs/db-file","name":"FileCopyForOthers","filePath":"src/FileCopyForOthers.ts","qualifiedName":"@proteinjs/db-file/FileCopyForOthers","properties":[],"methods":[{"name":"appliesTo","returnType":{"packageName":"","name":"boolean","filePath":null,"qualifiedName":"/boolean","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"file","type":{"packageName":"@proteinjs/db-file","name":"File","filePath":null,"qualifiedName":"@proteinjs/db-file/File","typeParameters":null,"directParents":null}}]},{"name":"make","returnType":{"packageName":"","name":"Promise<Buffer>","filePath":null,"qualifiedName":"/Promise<Buffer>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"file","type":{"packageName":"@proteinjs/db-file","name":"File","filePath":null,"qualifiedName":"@proteinjs/db-file/File","typeParameters":null,"directParents":null}},{"name":"bytes","type":{"packageName":"","name":"Buffer","filePath":null,"qualifiedName":"/Buffer","typeParameters":null,"directParents":null}}]}],"typeParameters":[],"directParents":[{"packageName":"@proteinjs/reflection","name":"Loadable","filePath":null,"qualifiedName":"@proteinjs/reflection/Loadable","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"sourceType":3}},{"v":"@proteinjs/reflection/Loadable"},{"v":"/Error"},{"v":"@proteinjs/db-file/FileReachabilityResolver","value":{"packageName":"@proteinjs/db-file","name":"FileReachabilityResolver","filePath":"src/FileReachabilityResolver.ts","qualifiedName":"@proteinjs/db-file/FileReachabilityResolver","properties":[],"methods":[{"name":"canReadViaReference","returnType":{"packageName":"","name":"Promise<boolean>","filePath":null,"qualifiedName":"/Promise<boolean>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]}],"typeParameters":[],"directParents":[{"packageName":"@proteinjs/reflection","name":"Loadable","filePath":null,"qualifiedName":"@proteinjs/reflection/Loadable","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"sourceType":3}},{"v":"@proteinjs/db-file/DefaultFileStorageDriverFactory","value":{"packageName":"@proteinjs/db-file","name":"DefaultFileStorageDriverFactory","filePath":"src/FileStorage.ts","qualifiedName":"@proteinjs/db-file/DefaultFileStorageDriverFactory","properties":[],"methods":[{"name":"getDriver","returnType":{"packageName":"@proteinjs/db-file","name":"FileStorageDriver","filePath":null,"qualifiedName":"@proteinjs/db-file/FileStorageDriver","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[]}],"typeParameters":[],"directParents":[{"packageName":"@proteinjs/reflection","name":"Loadable","filePath":null,"qualifiedName":"@proteinjs/reflection/Loadable","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"sourceType":3}},{"v":"@proteinjs/db-file/FileStorage","value":{"packageName":"@proteinjs/db-file","name":"FileStorage","filePath":"src/FileStorage.ts","qualifiedName":"@proteinjs/db-file/FileStorage","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"driver","type":{"packageName":"@proteinjs/db-file","name":"FileStorageDriver","filePath":null,"qualifiedName":"@proteinjs/db-file/FileStorageDriver","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":true,"visibility":"private"},{"name":"derivations","type":null,"isOptional":false,"isAbstract":false,"isStatic":true,"visibility":"private"},{"name":"serviceMetadata","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"logger","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private"}],"methods":[{"name":"getDriver","returnType":{"packageName":"@proteinjs/db-file","name":"FileStorageDriver","filePath":null,"qualifiedName":"@proteinjs/db-file/FileStorageDriver","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":true,"visibility":"public","parameters":[]},{"name":"createFile","returnType":{"packageName":"","name":"Promise<File>","filePath":null,"qualifiedName":"/Promise<File>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"fileMetaData","type":{"packageName":"","name":"Omit<File, keyof ScopedRecord>","filePath":null,"qualifiedName":"/Omit<File, keyof ScopedRecord>","typeParameters":null,"directParents":null}},{"name":"fileData","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]},{"name":"getFile","returnType":{"packageName":"","name":"Promise<File>","filePath":null,"qualifiedName":"/Promise<File>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]},{"name":"getVariant","returnType":{"packageName":"","name":"Promise<File | undefined>","filePath":null,"qualifiedName":"/Promise<File | undefined>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}},{"name":"kind","type":{"packageName":"@proteinjs/db-file","name":"FileVariantKind","filePath":null,"qualifiedName":"@proteinjs/db-file/FileVariantKind","typeParameters":null,"directParents":null}}]},{"name":"deriveVariants","returnType":{"packageName":"","name":"Promise<{ file: File; variants: Partial<Record<FileVariantKind, File>> }>","filePath":null,"qualifiedName":"/Promise<{ file: File; variants: Partial<Record<FileVariantKind, File>> }>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"file","type":{"packageName":"@proteinjs/db-file","name":"File","filePath":null,"qualifiedName":"@proteinjs/db-file/File","typeParameters":null,"directParents":null}},{"name":"bytes","type":{"packageName":"","name":"Buffer","filePath":null,"qualifiedName":"/Buffer","typeParameters":null,"directParents":null}}]},{"name":"getFileData","returnType":{"packageName":"","name":"Promise<string>","filePath":null,"qualifiedName":"/Promise<string>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]},{"name":"getAuthorizedFileData","returnType":{"packageName":"","name":"Promise<string>","filePath":null,"qualifiedName":"/Promise<string>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"file","type":{"packageName":"@proteinjs/db-file","name":"File","filePath":null,"qualifiedName":"@proteinjs/db-file/File","typeParameters":null,"directParents":null}}]},{"name":"getSignedUrl","returnType":{"packageName":"","name":"Promise<string | undefined>","filePath":null,"qualifiedName":"/Promise<string | undefined>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}},{"name":"options","type":{"packageName":"@proteinjs/db-file","name":"{ ttlMs?: number }","filePath":null,"qualifiedName":"@proteinjs/db-file/{ ttlMs?: number }","typeParameters":null,"directParents":null}}]},{"name":"updateFileData","returnType":{"packageName":"","name":"Promise<void>","filePath":null,"qualifiedName":"/Promise<void>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}},{"name":"data","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]},{"name":"updateFile","returnType":{"packageName":"","name":"Promise<void>","filePath":null,"qualifiedName":"/Promise<void>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"file","type":{"packageName":"","name":"Omit<File, keyof ScopedRecord>","filePath":null,"qualifiedName":"/Omit<File, keyof ScopedRecord>","typeParameters":null,"directParents":null}}]},{"name":"deleteFile","returnType":{"packageName":"","name":"Promise<void>","filePath":null,"qualifiedName":"/Promise<void>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]},{"name":"servedFileId","returnType":{"packageName":"","name":"Promise<string>","filePath":null,"qualifiedName":"/Promise<string>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private","parameters":[{"name":"file","type":{"packageName":"@proteinjs/db-file","name":"File","filePath":null,"qualifiedName":"@proteinjs/db-file/File","typeParameters":null,"directParents":null}}]},{"name":"ownedByCaller","returnType":{"packageName":"","name":"boolean","filePath":null,"qualifiedName":"/boolean","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private","parameters":[{"name":"file","type":{"packageName":"@proteinjs/db-file","name":"File","filePath":null,"qualifiedName":"@proteinjs/db-file/File","typeParameters":null,"directParents":null}}]},{"name":"makeCopyForOthers","returnType":{"packageName":"","name":"Promise<string>","filePath":null,"qualifiedName":"/Promise<string>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private","parameters":[{"name":"file","type":{"packageName":"@proteinjs/db-file","name":"File","filePath":null,"qualifiedName":"@proteinjs/db-file/File","typeParameters":null,"directParents":null}}]},{"name":"deriveOnce","returnType":{"packageName":"","name":"Promise<string | undefined>","filePath":null,"qualifiedName":"/Promise<string | undefined>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private","parameters":[{"name":"file","type":{"packageName":"@proteinjs/db-file","name":"File","filePath":null,"qualifiedName":"@proteinjs/db-file/File","typeParameters":null,"directParents":null}},{"name":"kind","type":{"packageName":"@proteinjs/db-file","name":"FileVariantKind","filePath":null,"qualifiedName":"@proteinjs/db-file/FileVariantKind","typeParameters":null,"directParents":null}}]},{"name":"makeVariant","returnType":{"packageName":"","name":"Promise<string>","filePath":null,"qualifiedName":"/Promise<string>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private","parameters":[{"name":"file","type":{"packageName":"@proteinjs/db-file","name":"File","filePath":null,"qualifiedName":"@proteinjs/db-file/File","typeParameters":null,"directParents":null}},{"name":"kind","type":{"packageName":"@proteinjs/db-file","name":"FileVariantKind","filePath":null,"qualifiedName":"@proteinjs/db-file/FileVariantKind","typeParameters":null,"directParents":null}},{"name":"bytes","type":{"packageName":"","name":"Buffer","filePath":null,"qualifiedName":"/Buffer","typeParameters":null,"directParents":null}}]},{"name":"dropDerivedFiles","returnType":{"packageName":"","name":"Promise<void>","filePath":null,"qualifiedName":"/Promise<void>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private","parameters":[{"name":"file","type":{"packageName":"@proteinjs/db-file","name":"File","filePath":null,"qualifiedName":"@proteinjs/db-file/File","typeParameters":null,"directParents":null}}]},{"name":"notFound","returnType":{"packageName":"@proteinjs/service","name":"ServiceRefusal","filePath":null,"qualifiedName":"@proteinjs/service/ServiceRefusal","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":true,"visibility":"private","parameters":[]}],"typeParameters":[],"directParentInterfaces":[{"packageName":"@proteinjs/db-file","name":"FileStorageService","filePath":null,"qualifiedName":"@proteinjs/db-file/FileStorageService","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"directParentClasses":[],"sourceType":2}},{"v":"@proteinjs/db-file/FileStorageService","value":{"packageName":"@proteinjs/db-file","name":"FileStorageService","filePath":"src/services/FileStorageService.ts","qualifiedName":"@proteinjs/db-file/FileStorageService","properties":[],"methods":[{"name":"createFile","returnType":{"packageName":"","name":"Promise<File>","filePath":null,"qualifiedName":"/Promise<File>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"fileMetaData","type":{"packageName":"","name":"Omit<File, keyof ScopedRecord>","filePath":null,"qualifiedName":"/Omit<File, keyof ScopedRecord>","typeParameters":null,"directParents":null}},{"name":"fileData","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]},{"name":"getFile","returnType":{"packageName":"","name":"Promise<File>","filePath":null,"qualifiedName":"/Promise<File>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]},{"name":"getFileData","returnType":{"packageName":"","name":"Promise<string>","filePath":null,"qualifiedName":"/Promise<string>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]},{"name":"updateFileData","returnType":{"packageName":"","name":"Promise<void>","filePath":null,"qualifiedName":"/Promise<void>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}},{"name":"data","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]},{"name":"updateFile","returnType":{"packageName":"","name":"Promise<void>","filePath":null,"qualifiedName":"/Promise<void>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"file","type":{"packageName":"","name":"Omit<File, keyof ScopedRecord>","filePath":null,"qualifiedName":"/Omit<File, keyof ScopedRecord>","typeParameters":null,"directParents":null}}]},{"name":"deleteFile","returnType":{"packageName":"","name":"Promise<void>","filePath":null,"qualifiedName":"/Promise<void>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"fileId","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]}],"typeParameters":[],"directParents":[{"packageName":"@proteinjs/service","name":"Service","filePath":null,"qualifiedName":"@proteinjs/service/Service","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"sourceType":3}},{"v":"/\'not-found\' | \'precondition-failed\' | \'forbidden\' | \'unavailable\' | \'unknown\'"},{"v":"@proteinjs/db-file/FileStorageTableWatcher","value":{"packageName":"@proteinjs/db-file","name":"FileStorageTableWatcher","filePath":"src/FileStorageTableWatcher.ts","qualifiedName":"@proteinjs/db-file/FileStorageTableWatcher","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"logger","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private"}],"methods":[{"name":"name","returnType":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[]},{"name":"table","returnType":{"packageName":"","name":"Table<File>","filePath":null,"qualifiedName":"/Table<File>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[]},{"name":"beforeDelete","returnType":{"packageName":"","name":"Promise<void>","filePath":null,"qualifiedName":"/Promise<void>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"recordsToDelete","type":{"packageName":"","name":"T[]","filePath":null,"qualifiedName":"/T[]","typeParameters":null,"directParents":null}},{"name":"initialQb","type":{"packageName":"","name":"QueryBuilder<T>","filePath":null,"qualifiedName":"/QueryBuilder<T>","typeParameters":null,"directParents":null}},{"name":"deleteQb","type":{"packageName":"","name":"QueryBuilder<T>","filePath":null,"qualifiedName":"/QueryBuilder<T>","typeParameters":null,"directParents":null}}]}],"typeParameters":[],"directParentInterfaces":[{"packageName":"@proteinjs/db","name":"TableWatcher","filePath":null,"qualifiedName":"@proteinjs/db/TableWatcher","properties":[],"methods":[],"typeParameters":["@proteinjs/db-file/File"],"directParents":[]}],"directParentClasses":[],"sourceType":2}},{"v":"@proteinjs/db/TableWatcher"},{"v":"/\'preview\' | \'stage\'"},{"v":"/readonly FileVariantKind[]"},{"v":"@proteinjs/db-file/FileVariantMaker","value":{"packageName":"@proteinjs/db-file","name":"FileVariantMaker","filePath":"src/FileVariantMaker.ts","qualifiedName":"@proteinjs/db-file/FileVariantMaker","properties":[],"methods":[{"name":"appliesTo","returnType":{"packageName":"","name":"boolean","filePath":null,"qualifiedName":"/boolean","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"file","type":{"packageName":"@proteinjs/db-file","name":"File","filePath":null,"qualifiedName":"@proteinjs/db-file/File","typeParameters":null,"directParents":null}},{"name":"kind","type":{"packageName":"@proteinjs/db-file","name":"FileVariantKind","filePath":null,"qualifiedName":"@proteinjs/db-file/FileVariantKind","typeParameters":null,"directParents":null}}]},{"name":"make","returnType":{"packageName":"","name":"Promise<FileVariant>","filePath":null,"qualifiedName":"/Promise<FileVariant>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"file","type":{"packageName":"@proteinjs/db-file","name":"File","filePath":null,"qualifiedName":"@proteinjs/db-file/File","typeParameters":null,"directParents":null}},{"name":"bytes","type":{"packageName":"","name":"Buffer","filePath":null,"qualifiedName":"/Buffer","typeParameters":null,"directParents":null}},{"name":"kind","type":{"packageName":"@proteinjs/db-file","name":"FileVariantKind","filePath":null,"qualifiedName":"@proteinjs/db-file/FileVariantKind","typeParameters":null,"directParents":null}}]}],"typeParameters":[],"directParents":[{"packageName":"@proteinjs/reflection","name":"Loadable","filePath":null,"qualifiedName":"@proteinjs/reflection/Loadable","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"sourceType":3}},{"v":"@proteinjs/db-file/getFile","value":{"packageName":"@proteinjs/db-file","name":"getFile","filePath":"src/routes/getFile.ts","qualifiedName":"@proteinjs/db-file/getFile","type":{"packageName":"@proteinjs/server-api","name":"Route","filePath":null,"qualifiedName":"@proteinjs/server-api/Route","typeParameters":[],"directParents":[{"packageName":"@proteinjs/server-api","name":"Route","filePath":null,"qualifiedName":"@proteinjs/server-api/Route","typeParameters":[],"directParents":null}]},"isExported":true,"isConst":true,"sourceType":0}},{"v":"@proteinjs/server-api/Route"},{"v":"@proteinjs/db-file/getFileVariant","value":{"packageName":"@proteinjs/db-file","name":"getFileVariant","filePath":"src/routes/getFileVariant.ts","qualifiedName":"@proteinjs/db-file/getFileVariant","type":{"packageName":"@proteinjs/server-api","name":"Route","filePath":null,"qualifiedName":"@proteinjs/server-api/Route","typeParameters":[],"directParents":[{"packageName":"@proteinjs/server-api","name":"Route","filePath":null,"qualifiedName":"@proteinjs/server-api/Route","typeParameters":[],"directParents":null}]},"isExported":true,"isConst":true,"sourceType":0}},{"v":"@proteinjs/db-file/FileData","value":{"packageName":"@proteinjs/db-file","name":"FileData","filePath":"src/tables/FileDataTable.ts","qualifiedName":"@proteinjs/db-file/FileData","properties":[{"name":"file","type":{"packageName":"","name":"Reference<File>","filePath":null,"qualifiedName":"/Reference<File>","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"order","type":{"packageName":"","name":"number","filePath":null,"qualifiedName":"/number","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"data","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[],"typeParameters":[],"directParents":[{"packageName":"@proteinjs/user","name":"ScopedRecord","filePath":null,"qualifiedName":"@proteinjs/user/ScopedRecord","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"sourceType":3}},{"v":"@proteinjs/user/ScopedRecord"},{"v":"@proteinjs/db-file/FileDataTable","value":{"packageName":"@proteinjs/db-file","name":"FileDataTable","filePath":"src/tables/FileDataTable.ts","qualifiedName":"@proteinjs/db-file/FileDataTable","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"name","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"auth","type":{"packageName":"","name":"Table<FileData>[\'auth\']","filePath":null,"qualifiedName":"/Table<FileData>[\'auth\']","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"columns","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[],"typeParameters":[],"directParentInterfaces":[],"directParentClasses":[{"packageName":"@proteinjs/db","name":"Table","filePath":null,"qualifiedName":"@proteinjs/db/Table","isAbstract":false,"isStatic":false,"visibility":"public","properties":[],"methods":[],"typeParameters":["@proteinjs/db-file/FileData"],"directParentInterfaces":[],"directParentClasses":[]}],"sourceType":2}},{"v":"@proteinjs/db/Table"},{"v":"@proteinjs/db-file/File","value":{"packageName":"@proteinjs/db-file","name":"File","filePath":"src/tables/FileTable.ts","qualifiedName":"@proteinjs/db-file/File","properties":[{"name":"name","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"type","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"size","type":{"packageName":"","name":"number","filePath":null,"qualifiedName":"/number","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"preview","type":{"packageName":"","name":"Reference<File> | null","filePath":null,"qualifiedName":"/Reference<File> | null","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"stage","type":{"packageName":"","name":"Reference<File> | null","filePath":null,"qualifiedName":"/Reference<File> | null","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"variantOf","type":{"packageName":"","name":"Reference<File> | null","filePath":null,"qualifiedName":"/Reference<File> | null","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"copyForOthers","type":{"packageName":"","name":"Reference<File> | null","filePath":null,"qualifiedName":"/Reference<File> | null","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"width","type":{"packageName":"","name":"number","filePath":null,"qualifiedName":"/number","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"height","type":{"packageName":"","name":"number","filePath":null,"qualifiedName":"/number","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"durationMs","type":{"packageName":"","name":"number","filePath":null,"qualifiedName":"/number","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"sourceUrl","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"sourcePageUrl","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"retrievedAt","type":{"packageName":"","name":"Date","filePath":null,"qualifiedName":"/Date","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"license","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"licenseUrl","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"attribution","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"contentHash","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"origin","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"originModel","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[],"typeParameters":[],"directParents":[{"packageName":"@proteinjs/user","name":"ScopedRecord","filePath":null,"qualifiedName":"@proteinjs/user/ScopedRecord","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"sourceType":3}},{"v":"@proteinjs/db-file/FileTable","value":{"packageName":"@proteinjs/db-file","name":"FileTable","filePath":"src/tables/FileTable.ts","qualifiedName":"@proteinjs/db-file/FileTable","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"name","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"auth","type":{"packageName":"","name":"Table<File>[\'auth\']","filePath":null,"qualifiedName":"/Table<File>[\'auth\']","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"columns","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"indexes","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[],"typeParameters":[],"directParentInterfaces":[],"directParentClasses":[{"packageName":"@proteinjs/db","name":"Table","filePath":null,"qualifiedName":"@proteinjs/db/Table","isAbstract":false,"isStatic":false,"visibility":"public","properties":[],"methods":[],"typeParameters":["@proteinjs/db-file/File"],"directParentInterfaces":[],"directParentClasses":[]}],"sourceType":2}},{"v":"@proteinjs/service/Service"}],"edges":[{"v":"@proteinjs/db-file/FileCopyForOthers","w":"@proteinjs/reflection/Loadable","value":"extends interface"},{"v":"@proteinjs/db-file/FileReachabilityResolver","w":"@proteinjs/reflection/Loadable","value":"extends interface"},{"v":"@proteinjs/db-file/DefaultFileStorageDriverFactory","w":"@proteinjs/reflection/Loadable","value":"extends interface"},{"v":"@proteinjs/db-file/FileStorage","w":"@proteinjs/db-file/FileStorageService","value":"implements interface"},{"v":"@proteinjs/db-file/FileStorageTableWatcher","w":"@proteinjs/db/TableWatcher","value":"implements interface"},{"v":"@proteinjs/db-file/FileVariantMaker","w":"@proteinjs/reflection/Loadable","value":"extends interface"},{"v":"@proteinjs/db-file/getFile","w":"@proteinjs/server-api/Route","value":"has type"},{"v":"@proteinjs/db-file/getFileVariant","w":"@proteinjs/server-api/Route","value":"has type"},{"v":"@proteinjs/db-file/FileData","w":"@proteinjs/user/ScopedRecord","value":"extends interface"},{"v":"@proteinjs/db-file/FileDataTable","w":"@proteinjs/db/Table","value":"extends class"},{"v":"@proteinjs/db-file/File","w":"@proteinjs/user/ScopedRecord","value":"extends interface"},{"v":"@proteinjs/db-file/FileTable","w":"@proteinjs/db/Table","value":"extends class"},{"v":"@proteinjs/db-file/FileStorageService","w":"@proteinjs/service/Service","value":"extends interface"}]}';
13
13
 
14
14
  /** Generate Source Links */
15
15
 
16
16
  import { FileStorage } from '../src/FileStorage';
17
17
  import { FileStorageTableWatcher } from '../src/FileStorageTableWatcher';
18
18
  import { getFile } from '../src/routes/getFile';
19
+ import { getFileVariant } from '../src/routes/getFileVariant';
19
20
  import { FileDataTable } from '../src/tables/FileDataTable';
20
21
  import { FileTable } from '../src/tables/FileTable';
21
22
 
@@ -23,6 +24,7 @@ const sourceLinks = {
23
24
  '@proteinjs/db-file/FileStorage': FileStorage,
24
25
  '@proteinjs/db-file/FileStorageTableWatcher': FileStorageTableWatcher,
25
26
  '@proteinjs/db-file/getFile': getFile,
27
+ '@proteinjs/db-file/getFileVariant': getFileVariant,
26
28
  '@proteinjs/db-file/FileDataTable': FileDataTable,
27
29
  '@proteinjs/db-file/FileTable': FileTable,
28
30
  };
package/index.ts CHANGED
@@ -9,8 +9,12 @@ export * from './src/tables/FileDataTable';
9
9
  export * from './src/services/FileStorageService';
10
10
 
11
11
  export * from './src/routes/getFileRoute';
12
+ export * from './src/routes/getFileVariantRoute';
12
13
 
13
14
  export * from './src/FileReachabilityResolver';
15
+ export * from './src/FileCopyForOthers';
16
+ export * from './src/FileVariantMaker';
14
17
  export * from './src/FileStorageDriver';
18
+ export * from './src/FileStorageError';
15
19
  export * from './src/DbFileStorageDriver';
16
20
  export * from './src/FileStorageTableWatcher';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proteinjs/db-file",
3
- "version": "1.8.4",
3
+ "version": "1.9.0",
4
4
  "description": "File storage in the db",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -22,16 +22,16 @@
22
22
  "watch": "reflection-watch"
23
23
  },
24
24
  "dependencies": {
25
- "@proteinjs/db": "^1.48.0",
25
+ "@proteinjs/db": "^1.49.0",
26
26
  "@proteinjs/logger": "^1.0.21",
27
27
  "@proteinjs/reflection": "^1.2.0",
28
28
  "@proteinjs/server-api": "^3.0.11",
29
- "@proteinjs/service": "^1.5.1",
29
+ "@proteinjs/service": "^1.6.0",
30
30
  "@proteinjs/user": "^1.7.1",
31
31
  "moment": "2.29.4"
32
32
  },
33
33
  "devDependencies": {
34
- "@proteinjs/db-driver-spanner": "^1.32.0",
34
+ "@proteinjs/db-driver-spanner": "^1.32.1",
35
35
  "@proteinjs/reflection-build": "^2.0.1",
36
36
  "@types/jest": "29.5.5",
37
37
  "@types/node": "14.0.27",
@@ -46,5 +46,5 @@
46
46
  },
47
47
  "main": "./dist/generated/index.js",
48
48
  "types": "./dist/generated/index.d.ts",
49
- "gitHead": "ec3fd54430dde18afd406ec70eccd857492272a0"
49
+ "gitHead": "5ef7c5a2f3eb6ef3b774aa93cc74cc1754cfa011"
50
50
  }
@@ -3,6 +3,7 @@ import { QueryBuilderFactory, Reference } from '@proteinjs/db';
3
3
  import { File } from './tables/FileTable';
4
4
  import { tables } from './tables/tables';
5
5
  import { FileStorageDriver } from './FileStorageDriver';
6
+ import { FileStorageError } from './FileStorageError';
6
7
 
7
8
  export class DbFileStorageDriver implements FileStorageDriver {
8
9
  private chunkSize = 1048576; // Max length of data written to `FileData.data` (1mb)
@@ -17,16 +18,7 @@ export class DbFileStorageDriver implements FileStorageDriver {
17
18
  }
18
19
 
19
20
  async createFile(file: File, fileData: string): Promise<void> {
20
- const db = getScopedDb();
21
- const chunks = this.splitIntoChunks(fileData);
22
- for (let index = 0; index < chunks.length; index++) {
23
- const chunk = chunks[index];
24
- await db.insert(tables.FileData, {
25
- file: new Reference(tables.FileData.name, file.id),
26
- order: index,
27
- data: chunk,
28
- });
29
- }
21
+ await this.insertChunks(file.id, fileData);
30
22
  }
31
23
 
32
24
  async getFileData(fileId: string): Promise<string> {
@@ -41,6 +33,12 @@ export class DbFileStorageDriver implements FileStorageDriver {
41
33
  .getQueryBuilder(tables.FileData, { file: fileId })
42
34
  .sort([{ field: 'order', desc: false }]);
43
35
  const fileDataRecords = await db.query(tables.FileData, qb);
36
+ if (fileDataRecords.length === 0 && !(await this.isLegacyEmptyFile(fileId))) {
37
+ // The driver contract's one answer for bytes that are not there — the same code the
38
+ // object-store drivers report for a missing object, so callers branch on one thing.
39
+ throw new FileStorageError('not-found', `getFileData failed for file ${fileId}`);
40
+ }
41
+
44
42
  return fileDataRecords.map((record) => record.data).join('');
45
43
  }
46
44
 
@@ -51,16 +49,7 @@ export class DbFileStorageDriver implements FileStorageDriver {
51
49
  const deleteQuery = new QueryBuilderFactory().getQueryBuilder(tables.FileData, { file: fileId });
52
50
  await db.delete(tables.FileData, deleteQuery);
53
51
 
54
- // Split new data into chunks and insert
55
- const chunks = this.splitIntoChunks(data);
56
- for (let index = 0; index < chunks.length; index++) {
57
- const chunk = chunks[index];
58
- await db.insert(tables.FileData, {
59
- file: new Reference(tables.FileData.name, fileId),
60
- order: index,
61
- data: chunk,
62
- });
63
- }
52
+ await this.insertChunks(fileId, data);
64
53
  }
65
54
 
66
55
  async deleteFile(fileId: string): Promise<void> {
@@ -73,11 +62,33 @@ export class DbFileStorageDriver implements FileStorageDriver {
73
62
  await db.delete(tables.FileData, deleteQuery);
74
63
  }
75
64
 
65
+ private async insertChunks(fileId: string, data: string): Promise<void> {
66
+ const db = getScopedDb();
67
+ const chunks = this.splitIntoChunks(data);
68
+ for (let index = 0; index < chunks.length; index++) {
69
+ await db.insert(tables.FileData, {
70
+ file: new Reference(tables.FileData.name, fileId),
71
+ order: index,
72
+ data: chunks[index],
73
+ });
74
+ }
75
+ }
76
+
77
+ /**
78
+ * An EMPTY file is stored as one empty chunk, so stored-but-empty and not-stored never look
79
+ * alike. Files written before that rule have no chunk row at all when they are empty; the file
80
+ * row settles those — a row that states zero bytes is an empty file, anything else is missing.
81
+ */
82
+ private async isLegacyEmptyFile(fileId: string): Promise<boolean> {
83
+ const file = await getScopedDbAsSystem().get(tables.File, { id: fileId });
84
+ return !!file && file.size === 0;
85
+ }
86
+
76
87
  private splitIntoChunks(data: string): string[] {
77
88
  const chunks = [];
78
89
  for (let i = 0; i < data.length; i += this.chunkSize) {
79
90
  chunks.push(data.substring(i, i + this.chunkSize));
80
91
  }
81
- return chunks;
92
+ return chunks.length > 0 ? chunks : [''];
82
93
  }
83
94
  }
@@ -0,0 +1,71 @@
1
+ import { Loadable, SourceRepository } from '@proteinjs/reflection';
2
+ import { File } from './tables/FileTable';
3
+
4
+ /**
5
+ * What a file becomes when it is served to someone who is not its owner.
6
+ *
7
+ * A file's bytes are the owner's, kept exactly as they arrived. When a read resolves through the
8
+ * shared-content leg instead of the owner's own scope (`FileStorage.getFile`: a share recipient
9
+ * reading a file a shared row references), `FileStorage` serves a COPY made by the one registered
10
+ * maker — the package that knows the file's format decides what leaves in it (a picture's
11
+ * location, say, does not). The copy is made once per file, stored as its own `File` in the
12
+ * owner's scope and named on the original's row (`File.copyForOthers`), so every later read by
13
+ * anyone but the owner serves the same bytes without remaking them; it is dropped when the
14
+ * original's bytes change and deleted with the original.
15
+ *
16
+ * Dependency direction is the {@link FileReachabilityResolver} pattern: the seam lives here in
17
+ * db-file, the one implementation lives in the package that knows media, discovered through the
18
+ * SourceRepository. With no maker registered, everyone is served the original.
19
+ */
20
+ export interface FileCopyForOthers extends Loadable {
21
+ /**
22
+ * Whether this file is served to others through a copy at all — decided from the row alone,
23
+ * never from its bytes (a plain document serves as itself and costs no read). True means
24
+ * {@link make} is called once, with the original's bytes, and its answer is what others get.
25
+ */
26
+ appliesTo(file: File): boolean;
27
+ /** The bytes served to anyone but the owner, made from the original's. Throws when no copy can be made — the read then fails rather than serving the original. */
28
+ make(file: File, bytes: Buffer): Promise<Buffer>;
29
+ }
30
+
31
+ export const getFileCopyForOthers = (): FileCopyForOthers | undefined =>
32
+ SourceRepository.get().object<FileCopyForOthers>('@proteinjs/db-file/FileCopyForOthers');
33
+
34
+ /**
35
+ * What a non-owner's read becomes when the registered maker could not make a copy: the file is
36
+ * served to no one but its owner. The seam's own cause, thrown by `FileStorage` in place of
37
+ * whatever the maker threw (the maker's own one-line reason kept as `reason`) and answered by
38
+ * `FileStorage` itself, once for every door — the browser service, `GET /file/:id`, a server-side
39
+ * reader — as a 404 `ServiceRefusal` saying only `File not found`, so a door never meets it: a
40
+ * deliberate refusal every door tells from a failure the same way. Its message and `reason` stay
41
+ * on the server (`FileStorage` logs them at WARN); a caller reads the words a missing file gets.
42
+ * Read by shape ({@link FileCopyRefused.is}), so it holds across duplicate copies of this package.
43
+ */
44
+ export class FileCopyRefused extends Error {
45
+ private static readonly NAME = 'FileCopyRefused';
46
+ /** Free text that reaches a message is one line and bounded. */
47
+ private static readonly MAX_REASON_CHARS = 300;
48
+ readonly fileId: string;
49
+ readonly reason: string;
50
+
51
+ constructor(fileId: string, cause: unknown) {
52
+ const reason = FileCopyRefused.plain(cause);
53
+ super(`File ${fileId} is not available to anyone but its owner${reason ? `: ${reason}` : ''}`);
54
+ this.name = FileCopyRefused.NAME;
55
+ Object.setPrototypeOf(this, FileCopyRefused.prototype);
56
+ this.fileId = fileId;
57
+ this.reason = reason;
58
+ }
59
+
60
+ static is(error: unknown): error is FileCopyRefused {
61
+ return (error as { name?: unknown } | null | undefined)?.name === FileCopyRefused.NAME;
62
+ }
63
+
64
+ private static plain(cause: unknown): string {
65
+ const message = cause instanceof Error ? cause.message : typeof cause === 'string' ? cause : '';
66
+ const line = message.replace(/\s+/g, ' ').trim();
67
+ return line.length > FileCopyRefused.MAX_REASON_CHARS
68
+ ? `${line.slice(0, FileCopyRefused.MAX_REASON_CHARS)}…`
69
+ : line;
70
+ }
71
+ }