@dereekb/firebase 8.9.0 → 8.11.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 (151) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/package.json +5 -5
  3. package/src/lib/client/firestore/driver.js +2 -2
  4. package/src/lib/client/firestore/driver.js.map +1 -1
  5. package/src/lib/client/firestore/firestore.d.ts +5 -1
  6. package/src/lib/client/firestore/firestore.js +7 -2
  7. package/src/lib/client/firestore/firestore.js.map +1 -1
  8. package/src/lib/client/function/model.function.factory.d.ts +35 -9
  9. package/src/lib/client/function/model.function.factory.js +37 -11
  10. package/src/lib/client/function/model.function.factory.js.map +1 -1
  11. package/src/lib/client/index.d.ts +1 -0
  12. package/src/lib/client/index.js +1 -0
  13. package/src/lib/client/index.js.map +1 -1
  14. package/src/lib/client/storage/driver.accessor.d.ts +17 -0
  15. package/src/lib/client/storage/driver.accessor.js +105 -0
  16. package/src/lib/client/storage/driver.accessor.js.map +1 -0
  17. package/src/lib/client/storage/driver.d.ts +3 -0
  18. package/src/lib/client/storage/driver.js +13 -0
  19. package/src/lib/client/storage/driver.js.map +1 -0
  20. package/src/lib/client/storage/index.d.ts +3 -0
  21. package/src/lib/client/storage/index.js +7 -0
  22. package/src/lib/client/storage/index.js.map +1 -0
  23. package/src/lib/client/storage/storage.d.ts +5 -0
  24. package/src/lib/client/storage/storage.js +10 -0
  25. package/src/lib/client/storage/storage.js.map +1 -0
  26. package/src/lib/common/firestore/context.d.ts +2 -2
  27. package/src/lib/common/firestore/context.js +1 -1
  28. package/src/lib/common/firestore/context.js.map +1 -1
  29. package/src/lib/common/firestore/driver/driver.d.ts +2 -2
  30. package/src/lib/common/index.d.ts +1 -0
  31. package/src/lib/common/index.js +1 -0
  32. package/src/lib/common/index.js.map +1 -1
  33. package/src/lib/common/model/function.d.ts +2 -1
  34. package/src/lib/common/model/function.js +6 -2
  35. package/src/lib/common/model/function.js.map +1 -1
  36. package/src/lib/common/storage/accessor/index.d.ts +1 -0
  37. package/src/lib/common/storage/accessor/index.js +5 -0
  38. package/src/lib/common/storage/accessor/index.js.map +1 -0
  39. package/src/lib/common/storage/accessor/path.model.d.ts +26 -0
  40. package/src/lib/common/storage/accessor/path.model.js +25 -0
  41. package/src/lib/common/storage/accessor/path.model.js.map +1 -0
  42. package/src/lib/common/storage/context.d.ts +35 -0
  43. package/src/lib/common/storage/context.js +34 -0
  44. package/src/lib/common/storage/context.js.map +1 -0
  45. package/src/lib/common/storage/driver/accessor.d.ts +170 -0
  46. package/src/lib/common/storage/driver/accessor.js +3 -0
  47. package/src/lib/common/storage/driver/accessor.js.map +1 -0
  48. package/src/lib/common/storage/driver/driver.d.ts +10 -0
  49. package/src/lib/common/storage/driver/driver.js +3 -0
  50. package/src/lib/common/storage/driver/driver.js.map +1 -0
  51. package/src/lib/common/storage/driver/error.d.ts +3 -0
  52. package/src/lib/common/storage/driver/error.js +16 -0
  53. package/src/lib/common/storage/driver/error.js.map +1 -0
  54. package/src/lib/common/storage/driver/index.d.ts +4 -0
  55. package/src/lib/common/storage/driver/index.js +8 -0
  56. package/src/lib/common/storage/driver/index.js.map +1 -0
  57. package/src/lib/common/storage/driver/list.d.ts +13 -0
  58. package/src/lib/common/storage/driver/list.js +41 -0
  59. package/src/lib/common/storage/driver/list.js.map +1 -0
  60. package/src/lib/common/storage/index.d.ts +5 -0
  61. package/src/lib/common/storage/index.js +9 -0
  62. package/src/lib/common/storage/index.js.map +1 -0
  63. package/src/lib/common/storage/storage.d.ts +65 -0
  64. package/src/lib/common/storage/storage.js +55 -0
  65. package/src/lib/common/storage/storage.js.map +1 -0
  66. package/src/lib/common/storage/types.d.ts +210 -0
  67. package/src/lib/common/storage/types.js +3 -0
  68. package/src/lib/common/storage/types.js.map +1 -0
  69. package/test/CHANGELOG.md +23 -0
  70. package/test/package.json +7 -7
  71. package/test/src/lib/client/{firestore.authorized.d.ts → firebase.authorized.d.ts} +2 -2
  72. package/test/src/lib/client/firebase.authorized.js +35 -0
  73. package/test/src/lib/client/firebase.authorized.js.map +1 -0
  74. package/test/src/lib/client/firebase.d.ts +54 -0
  75. package/test/src/lib/client/{firestore.js → firebase.js} +34 -14
  76. package/test/src/lib/client/firebase.js.map +1 -0
  77. package/test/src/lib/client/firestore.mock.item.fixture.authorized.d.ts +9 -3
  78. package/test/src/lib/client/firestore.mock.item.fixture.authorized.js +13 -6
  79. package/test/src/lib/client/firestore.mock.item.fixture.authorized.js.map +1 -1
  80. package/test/src/lib/client/index.d.ts +2 -2
  81. package/test/src/lib/client/index.js +2 -2
  82. package/test/src/lib/client/index.js.map +1 -1
  83. package/test/src/lib/common/firebase.instance.d.ts +20 -0
  84. package/test/src/lib/common/firebase.instance.js +33 -0
  85. package/test/src/lib/common/firebase.instance.js.map +1 -0
  86. package/test/src/lib/common/{firestore.d.ts → firestore/firestore.d.ts} +1 -1
  87. package/test/src/lib/common/{firestore.mock.d.ts → firestore/firestore.instance.d.ts} +3 -4
  88. package/test/src/lib/common/{firestore.mock.js → firestore/firestore.instance.js} +6 -12
  89. package/test/src/lib/common/firestore/firestore.instance.js.map +1 -0
  90. package/test/src/lib/common/{firestore.js → firestore/firestore.js} +1 -1
  91. package/test/src/lib/common/firestore/firestore.js.map +1 -0
  92. package/test/src/lib/common/firestore/index.d.ts +5 -0
  93. package/test/src/lib/common/firestore/index.js +9 -0
  94. package/test/src/lib/common/firestore/index.js.map +1 -0
  95. package/test/src/lib/common/{test.driver.accessor.d.ts → firestore/test.driver.accessor.d.ts} +2 -2
  96. package/test/src/lib/common/{test.driver.accessor.js → firestore/test.driver.accessor.js} +9 -9
  97. package/test/src/lib/common/firestore/test.driver.accessor.js.map +1 -0
  98. package/test/src/lib/common/firestore/test.driver.query.d.ts +7 -0
  99. package/test/src/lib/common/{test.driver.query.js → firestore/test.driver.query.js} +5 -5
  100. package/test/src/lib/common/firestore/test.driver.query.js.map +1 -0
  101. package/test/src/lib/common/{test.iterator.d.ts → firestore/test.iterator.d.ts} +1 -1
  102. package/test/src/lib/common/{test.iterator.js → firestore/test.iterator.js} +2 -2
  103. package/test/src/lib/common/firestore/test.iterator.js.map +1 -0
  104. package/test/src/lib/common/index.d.ts +3 -8
  105. package/test/src/lib/common/index.js +3 -8
  106. package/test/src/lib/common/index.js.map +1 -1
  107. package/test/src/lib/common/mock/index.d.ts +5 -0
  108. package/test/src/lib/common/mock/index.js +9 -0
  109. package/test/src/lib/common/mock/index.js.map +1 -0
  110. package/test/src/lib/common/mock/mock.item.collection.fixture.d.ts +27 -0
  111. package/test/src/lib/common/{firestore.mock.item.fixture.js → mock/mock.item.collection.fixture.js} +7 -9
  112. package/test/src/lib/common/mock/mock.item.collection.fixture.js.map +1 -0
  113. package/test/src/lib/common/{firestore.mock.item.d.ts → mock/mock.item.d.ts} +0 -0
  114. package/test/src/lib/common/{firestore.mock.item.js → mock/mock.item.js} +1 -1
  115. package/test/src/lib/common/mock/mock.item.js.map +1 -0
  116. package/test/src/lib/common/{firestore.mock.item.query.d.ts → mock/mock.item.query.d.ts} +1 -1
  117. package/test/src/lib/common/{firestore.mock.item.query.js → mock/mock.item.query.js} +1 -1
  118. package/test/src/lib/common/mock/mock.item.query.js.map +1 -0
  119. package/test/src/lib/common/{firestore.mock.item.service.d.ts → mock/mock.item.service.d.ts} +1 -1
  120. package/test/src/lib/common/{firestore.mock.item.service.js → mock/mock.item.service.js} +11 -11
  121. package/test/src/lib/common/mock/mock.item.service.js.map +1 -0
  122. package/test/src/lib/common/mock/mock.item.storage.fixture.d.ts +18 -0
  123. package/test/src/lib/common/mock/mock.item.storage.fixture.js +39 -0
  124. package/test/src/lib/common/mock/mock.item.storage.fixture.js.map +1 -0
  125. package/test/src/lib/common/storage/index.d.ts +3 -0
  126. package/test/src/lib/common/storage/index.js +7 -0
  127. package/test/src/lib/common/storage/index.js.map +1 -0
  128. package/test/src/lib/common/storage/storage.d.ts +24 -0
  129. package/test/src/lib/common/storage/storage.instance.d.ts +13 -0
  130. package/test/src/lib/common/storage/storage.instance.js +23 -0
  131. package/test/src/lib/common/storage/storage.instance.js.map +1 -0
  132. package/test/src/lib/common/storage/storage.js +23 -0
  133. package/test/src/lib/common/storage/storage.js.map +1 -0
  134. package/test/src/lib/common/storage/test.driver.accessor.d.ts +7 -0
  135. package/test/src/lib/common/storage/test.driver.accessor.js +337 -0
  136. package/test/src/lib/common/storage/test.driver.accessor.js.map +1 -0
  137. package/test/src/lib/client/firestore.authorized.js +0 -23
  138. package/test/src/lib/client/firestore.authorized.js.map +0 -1
  139. package/test/src/lib/client/firestore.d.ts +0 -39
  140. package/test/src/lib/client/firestore.js.map +0 -1
  141. package/test/src/lib/common/firestore.js.map +0 -1
  142. package/test/src/lib/common/firestore.mock.item.fixture.d.ts +0 -27
  143. package/test/src/lib/common/firestore.mock.item.fixture.js.map +0 -1
  144. package/test/src/lib/common/firestore.mock.item.js.map +0 -1
  145. package/test/src/lib/common/firestore.mock.item.query.js.map +0 -1
  146. package/test/src/lib/common/firestore.mock.item.service.js.map +0 -1
  147. package/test/src/lib/common/firestore.mock.js.map +0 -1
  148. package/test/src/lib/common/test.driver.accessor.js.map +0 -1
  149. package/test/src/lib/common/test.driver.query.d.ts +0 -7
  150. package/test/src/lib/common/test.driver.query.js.map +0 -1
  151. package/test/src/lib/common/test.iterator.js.map +0 -1
@@ -9,15 +9,19 @@ const util_1 = require("@dereekb/util");
9
9
  * @param data
10
10
  * @returns
11
11
  */
12
- function onCallTypedModelParams(modelTypeInput, data) {
12
+ function onCallTypedModelParams(modelTypeInput, data, specifier) {
13
13
  const modelType = typeof modelTypeInput === 'string' ? modelTypeInput : modelTypeInput.modelType;
14
14
  if (!modelType) {
15
15
  throw new Error('modelType is required.');
16
16
  }
17
- return {
17
+ const result = {
18
18
  modelType,
19
19
  data
20
20
  };
21
+ if (specifier != null) {
22
+ result.specifier = specifier;
23
+ }
24
+ return result;
21
25
  }
22
26
  exports.onCallTypedModelParams = onCallTypedModelParams;
23
27
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"function.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/model/function.ts"],"names":[],"mappings":";;;AAAA,wCAAsD;AAQtD;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAI,cAA0D,EAAE,IAAO;IAC3G,MAAM,SAAS,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC;IAEjG,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;KAC3C;IAED,OAAO;QACL,SAAS;QACT,IAAI;KACL,CAAC;AACJ,CAAC;AAXD,wDAWC;AAED;;GAEG;AACU,QAAA,6BAA6B,GAAG,aAAa,CAAC;AAI3D;;GAEG;AACU,QAAA,6BAA6B,GAAG,aAAa,CAAC;AAG3D;;GAEG;AACU,QAAA,6BAA6B,GAAG,aAAa,CAAC;AAY3D,SAAgB,+BAA+B,CAAC,MAAmD;IACjG,OAAO,uBAAuB,CAAC,IAAA,cAAO,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACjF,CAAC;AAFD,0EAEC;AAED,SAAgB,uBAAuB,CAAC,SAA0C;IAChF,OAAO;QACL,SAAS,EAAE,IAAA,cAAO,EAAC,SAAS,CAAC;KAC9B,CAAC;AACJ,CAAC;AAJD,0DAIC"}
1
+ {"version":3,"file":"function.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/model/function.ts"],"names":[],"mappings":";;;AAAA,wCAAsD;AAStD;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAI,cAA0D,EAAE,IAAO,EAAE,SAAkB;IAC/H,MAAM,SAAS,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC;IAEjG,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;KAC3C;IAED,MAAM,MAAM,GAA8B;QACxC,SAAS;QACT,IAAI;KACL,CAAC;IAEF,IAAI,SAAS,IAAI,IAAI,EAAE;QACrB,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;KAC9B;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAjBD,wDAiBC;AAED;;GAEG;AACU,QAAA,6BAA6B,GAAG,aAAa,CAAC;AAI3D;;GAEG;AACU,QAAA,6BAA6B,GAAG,aAAa,CAAC;AAG3D;;GAEG;AACU,QAAA,6BAA6B,GAAG,aAAa,CAAC;AAY3D,SAAgB,+BAA+B,CAAC,MAAmD;IACjG,OAAO,uBAAuB,CAAC,IAAA,cAAO,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACjF,CAAC;AAFD,0EAEC;AAED,SAAgB,uBAAuB,CAAC,SAA0C;IAChF,OAAO;QACL,SAAS,EAAE,IAAA,cAAO,EAAC,SAAS,CAAC;KAC9B,CAAC;AACJ,CAAC;AAJD,0DAIC"}
@@ -0,0 +1 @@
1
+ export * from './path.model';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./path.model"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/storage/accessor/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B"}
@@ -0,0 +1,26 @@
1
+ import { SlashPath, SlashPathFolder, FactoryWithRequiredInput } from '@dereekb/util';
2
+ import { ReadFirestoreModelKeyInput } from '../../firestore/collection/collection';
3
+ export declare const BASE_MODEL_STORAGE_FILE_PATH: SlashPathFolder;
4
+ /**
5
+ * Shared and configured slashPathFactory configuration for the model storage file path.
6
+ */
7
+ export declare const MODEL_STORAGE_FILE_SLASH_PATH_FACTORY: import("@dereekb/util").SlashPathFactory;
8
+ export interface ModelStorageSlashPathFactoryConfig {
9
+ /**
10
+ * Additional base path to provide.
11
+ *
12
+ * This value is merged with the BASE_MODEL_STORAGE_FILE_PATH (/model/) base path configured for all ModelStorageSlashPathFactory values
13
+ */
14
+ basePath?: string;
15
+ }
16
+ /**
17
+ * Factory for SlashPath values using input ReadFirestoreModelKeyInput values.
18
+ */
19
+ export declare type ModelStorageSlashPathFactory<T extends object = object> = FactoryWithRequiredInput<SlashPath, ReadFirestoreModelKeyInput<T>>;
20
+ /**
21
+ * Creates a ModelStorageSlashPathFactory.
22
+ *
23
+ * @param config
24
+ * @returns
25
+ */
26
+ export declare function modelStorageSlashPathFactory<T extends object = object>(config?: ModelStorageSlashPathFactoryConfig): ModelStorageSlashPathFactory<T>;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.modelStorageSlashPathFactory = exports.MODEL_STORAGE_FILE_SLASH_PATH_FACTORY = exports.BASE_MODEL_STORAGE_FILE_PATH = void 0;
4
+ const util_1 = require("@dereekb/util");
5
+ const collection_1 = require("../../firestore/collection/collection");
6
+ exports.BASE_MODEL_STORAGE_FILE_PATH = '/model/';
7
+ /**
8
+ * Shared and configured slashPathFactory configuration for the model storage file path.
9
+ */
10
+ exports.MODEL_STORAGE_FILE_SLASH_PATH_FACTORY = (0, util_1.slashPathFactory)({ startType: 'absolute', basePath: exports.BASE_MODEL_STORAGE_FILE_PATH });
11
+ /**
12
+ * Creates a ModelStorageSlashPathFactory.
13
+ *
14
+ * @param config
15
+ * @returns
16
+ */
17
+ function modelStorageSlashPathFactory(config) {
18
+ const { basePath = '' } = config !== null && config !== void 0 ? config : {};
19
+ return (input) => {
20
+ const key = (0, collection_1.readFirestoreModelKey)(input, true);
21
+ return (0, exports.MODEL_STORAGE_FILE_SLASH_PATH_FACTORY)([basePath, key]);
22
+ };
23
+ }
24
+ exports.modelStorageSlashPathFactory = modelStorageSlashPathFactory;
25
+ //# sourceMappingURL=path.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.model.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/storage/accessor/path.model.ts"],"names":[],"mappings":";;;AAAA,wCAAuG;AACvG,sEAA0G;AAE7F,QAAA,4BAA4B,GAAoB,SAAS,CAAC;AAEvE;;GAEG;AACU,QAAA,qCAAqC,GAAG,IAAA,uBAAgB,EAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,oCAA4B,EAAE,CAAC,CAAC;AAgBzI;;;;;GAKG;AACH,SAAgB,4BAA4B,CAA4B,MAA2C;IACjH,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;IACvC,OAAO,CAAC,KAAiC,EAAE,EAAE;QAC3C,MAAM,GAAG,GAAG,IAAA,kCAAqB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/C,OAAO,IAAA,6CAAqC,EAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC;AACJ,CAAC;AAND,oEAMC"}
@@ -0,0 +1,35 @@
1
+ import { FirebaseStorageAccessor } from './driver/accessor';
2
+ import { FirebaseStorageDrivers } from './driver/driver';
3
+ import { StorageBucketId } from './storage';
4
+ import { FirebaseStorage } from './types';
5
+ /**
6
+ * A @dereekb/firebase FirebaseStorageContext. Wraps the main FirebaseStorage context and the drivers, as well as utility/convenience functions.
7
+ */
8
+ export interface FirebaseStorageContext<F extends FirebaseStorage = FirebaseStorage> extends FirebaseStorageAccessor {
9
+ readonly storage: F;
10
+ readonly drivers: FirebaseStorageDrivers;
11
+ }
12
+ /**
13
+ * Factory function for generating a FirebaseStorageContext given the input FirebaseStorage.
14
+ */
15
+ export declare type FirebaseStorageContextFactory<F extends FirebaseStorage = FirebaseStorage> = (firebaseStorage: F, config?: FirebaseStorageContextFactoryConfig) => FirebaseStorageContext;
16
+ /**
17
+ * firebaseStorageContextFactory() configuration
18
+ */
19
+ export interface FirebaseStorageContextFactoryConfig {
20
+ /**
21
+ * The default bucket
22
+ */
23
+ defaultBucketId?: StorageBucketId;
24
+ /**
25
+ * Whether or not to force using the default bucket id.
26
+ */
27
+ forceBucket?: boolean;
28
+ }
29
+ /**
30
+ * Creates a new FirebaseStorageContextFactory given the input FirebaseStorageDrivers.
31
+ *
32
+ * @param drivers
33
+ * @returns
34
+ */
35
+ export declare function firebaseStorageContextFactory<F extends FirebaseStorage = FirebaseStorage>(drivers: FirebaseStorageDrivers): FirebaseStorageContextFactory<F>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.firebaseStorageContextFactory = void 0;
4
+ const storage_1 = require("./storage");
5
+ /**
6
+ * Creates a new FirebaseStorageContextFactory given the input FirebaseStorageDrivers.
7
+ *
8
+ * @param drivers
9
+ * @returns
10
+ */
11
+ function firebaseStorageContextFactory(drivers) {
12
+ return (firebaseStorage, config) => {
13
+ var _a, _b;
14
+ const { defaultBucketId: inputDefaultBucketId, forceBucket = false } = config !== null && config !== void 0 ? config : {};
15
+ const defaultBucketId = inputDefaultBucketId || ((_b = (_a = drivers.storageAccessorDriver).defaultBucket) === null || _b === void 0 ? void 0 : _b.call(_a, firebaseStorage)) || '';
16
+ if (!defaultBucketId) {
17
+ throw new Error('Could not resolve a default bucket id for the firebaseStorageContextFactory(). Supply a defaultBucketId.');
18
+ }
19
+ const storagePathBuilder = (0, storage_1.storagePathFactory)({
20
+ bucketId: defaultBucketId,
21
+ replaceBucket: forceBucket
22
+ });
23
+ const context = {
24
+ storage: firebaseStorage,
25
+ drivers,
26
+ defaultBucket: () => defaultBucketId,
27
+ file: (path) => drivers.storageAccessorDriver.file(firebaseStorage, storagePathBuilder(path)),
28
+ folder: (path) => drivers.storageAccessorDriver.folder(firebaseStorage, storagePathBuilder(path))
29
+ };
30
+ return context;
31
+ };
32
+ }
33
+ exports.firebaseStorageContextFactory = firebaseStorageContextFactory;
34
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/storage/context.ts"],"names":[],"mappings":";;;AAEA,uCAAsG;AA8BtG;;;;;GAKG;AACH,SAAgB,6BAA6B,CAA8C,OAA+B;IACxH,OAAO,CAAC,eAAkB,EAAE,MAA4C,EAAE,EAAE;;QAC1E,MAAM,EAAE,eAAe,EAAE,oBAAoB,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;QACpF,MAAM,eAAe,GAAoB,oBAAoB,KAAI,MAAA,MAAA,OAAO,CAAC,qBAAqB,EAAC,aAAa,mDAAG,eAAe,CAAC,CAAA,IAAI,EAAE,CAAC;QAEtI,IAAI,CAAC,eAAe,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,0GAA0G,CAAC,CAAC;SAC7H;QAED,MAAM,kBAAkB,GAAuB,IAAA,4BAAkB,EAAC;YAChE,QAAQ,EAAE,eAAe;YACzB,aAAa,EAAE,WAAW;SAC3B,CAAC,CAAC;QAEH,MAAM,OAAO,GAA8B;YACzC,OAAO,EAAE,eAAe;YACxB,OAAO;YACP,aAAa,EAAE,GAAG,EAAE,CAAC,eAAe;YACpC,IAAI,EAAE,CAAC,IAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC/G,MAAM,EAAE,CAAC,IAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;SACpH,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC;AAxBD,sEAwBC"}
@@ -0,0 +1,170 @@
1
+ /// <reference types="node" />
2
+ import { StorageBucketId, StoragePathInput, StoragePath, StoragePathRef } from '../storage';
3
+ import { FirebaseStorage, StorageClientUploadBytesInput, StorageDeleteFileOptions, StorageDownloadUrl, StorageMetadata, StorageUploadInput, StorageUploadOptions, StorageUploadResult, StorageUploadTask } from '../types';
4
+ import { Maybe } from '@dereekb/util';
5
+ /**
6
+ * Used for accessing files and folders in the storage.
7
+ */
8
+ export interface FirebaseStorageAccessor {
9
+ defaultBucket: () => StorageBucketId;
10
+ file(path: StoragePathInput): FirebaseStorageAccessorFile;
11
+ folder(path: StoragePathInput): FirebaseStorageAccessorFolder;
12
+ }
13
+ /**
14
+ * Generic interface for accessing data from a file at the given path.
15
+ */
16
+ export interface FirebaseStorageAccessorFile<R = unknown> extends StoragePathRef {
17
+ /**
18
+ * Returns the underlying reference type.
19
+ */
20
+ readonly reference: R;
21
+ /**
22
+ * Returns true if the file exists.
23
+ */
24
+ exists(): Promise<boolean>;
25
+ /**
26
+ *
27
+ */
28
+ getDownloadUrl(): Promise<StorageDownloadUrl>;
29
+ /**
30
+ * Returns the metadata from the input objects.
31
+ */
32
+ getMetadata(): Promise<StorageMetadata>;
33
+ /**
34
+ * Downloads the data as an ArrayBuffer.
35
+ */
36
+ getBytes(maxDownloadSizeBytes?: number): Promise<ArrayBuffer>;
37
+ /**
38
+ * Downloads the data as a Blob.
39
+ *
40
+ * Available only in the browser.
41
+ */
42
+ getBlob?(maxDownloadSizeBytes?: number): Promise<Blob>;
43
+ /**
44
+ * Returns a ReadableStream of the bytes.
45
+ *
46
+ * Available only in NodeJS.
47
+ */
48
+ getStream?(maxDownloadSizeBytes?: number): NodeJS.ReadableStream;
49
+ /**
50
+ * Uploads data to the file's path.
51
+ */
52
+ upload(data: StorageUploadInput, options?: StorageUploadOptions): Promise<StorageUploadResult>;
53
+ /**
54
+ * Uploads data to the file's path using a resumable.
55
+ *
56
+ * Optional implementation.
57
+ */
58
+ uploadResumable?(data: StorageClientUploadBytesInput, options?: StorageUploadOptions): StorageUploadTask;
59
+ /**
60
+ * Returns a WritableStream that can be written to.
61
+ *
62
+ * Optional implementation.
63
+ */
64
+ uploadStream?(options?: StorageUploadOptions): NodeJS.WritableStream;
65
+ /**
66
+ * Deletes the file.
67
+ *
68
+ * Throws an error if the file does not exist.
69
+ */
70
+ delete(options?: StorageDeleteFileOptions): Promise<void>;
71
+ }
72
+ export interface StorageListFilesOptions {
73
+ /**
74
+ * If set, limits the total number of `prefixes` and `items` to return.
75
+ * The default and maximum maxResults is 1000.
76
+ */
77
+ maxResults?: number;
78
+ /**
79
+ * The `nextPageToken` from a previous call to `list()`. If provided,
80
+ * listing is resumed from the previous position.
81
+ */
82
+ pageToken?: string;
83
+ }
84
+ export interface StorageListItemResult extends StoragePathRef {
85
+ /**
86
+ * Raw result
87
+ */
88
+ readonly raw?: unknown;
89
+ /**
90
+ * Name of the item
91
+ */
92
+ readonly name: string;
93
+ }
94
+ export interface StorageListFolderResult extends StorageListItemResult {
95
+ /**
96
+ * Gets this item as a FirebaseStorageAccessorFolder
97
+ */
98
+ folder(): FirebaseStorageAccessorFolder;
99
+ }
100
+ export interface StorageListFileResult extends StorageListItemResult {
101
+ /**
102
+ * Gets this item as a FirebaseStorageAccessorFile
103
+ */
104
+ file(): FirebaseStorageAccessorFile;
105
+ }
106
+ export interface StorageListFilesResult<R = unknown> {
107
+ /**
108
+ * The raw result.
109
+ */
110
+ raw: R;
111
+ /**
112
+ * Options used to retrieve the result.
113
+ */
114
+ options: StorageListFilesOptions | undefined;
115
+ /**
116
+ * Whether or not there are more results available.
117
+ */
118
+ hasNext: boolean;
119
+ /**
120
+ * Returns true if any files or folders exist in the results.
121
+ */
122
+ hasItems(): boolean;
123
+ /**
124
+ * Returns all the prefixes/folders in the result.
125
+ */
126
+ folders(): StorageListFolderResult[];
127
+ /**
128
+ * Returns all the files in the result.
129
+ */
130
+ files(): StorageListFileResult[];
131
+ /**
132
+ * Returns the next set of results, if available.
133
+ */
134
+ next(): Promise<StorageListFilesResult>;
135
+ }
136
+ /**
137
+ * Generic interface for accessing "folder" information at the given path.
138
+ */
139
+ export interface FirebaseStorageAccessorFolder<R = unknown> extends StoragePathRef {
140
+ readonly reference: R;
141
+ /**
142
+ * Returns true if the folder exists.
143
+ */
144
+ exists(): Promise<boolean>;
145
+ /**
146
+ * Performs a search for items
147
+ * @param options
148
+ */
149
+ list(options?: StorageListFilesOptions): Promise<StorageListFilesResult>;
150
+ }
151
+ export declare type FirebaseStorageAccessorDriverDefaultBucketFunction = (storage: FirebaseStorage) => Maybe<StorageBucketId>;
152
+ export declare type FirebaseStorageAccessorDriverFileFunction<R = unknown> = (storage: FirebaseStorage, path: StoragePath) => FirebaseStorageAccessorFile<R>;
153
+ export declare type FirebaseStorageAccessorDriverFolderFunction<R = unknown> = (storage: FirebaseStorage, path: StoragePath) => FirebaseStorageAccessorFolder<R>;
154
+ /**
155
+ * A driver to use for storage functionality.
156
+ */
157
+ export interface FirebaseStorageAccessorDriver {
158
+ /**
159
+ * Returns the default bucketId for the input storage.
160
+ */
161
+ readonly defaultBucket?: FirebaseStorageAccessorDriverDefaultBucketFunction;
162
+ readonly file: FirebaseStorageAccessorDriverFileFunction;
163
+ readonly folder: FirebaseStorageAccessorDriverFolderFunction;
164
+ }
165
+ /**
166
+ * Ref to a StorageAccessorDriver.
167
+ */
168
+ export interface FirebaseStorageAccessorDriverRef {
169
+ readonly storageAccessorDriver: FirebaseStorageAccessorDriver;
170
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=accessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessor.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/storage/driver/accessor.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import { FirebaseStorageAccessorDriverRef } from './accessor';
2
+ export declare type FirebaseStorageDriverIdentifier = string;
3
+ export declare type FirebaseStorageDriverType = 'production' | 'testing';
4
+ /**
5
+ * Implements all FirebaseStorage related driver reference interfaces.
6
+ */
7
+ export interface FirebaseStorageDrivers extends FirebaseStorageAccessorDriverRef {
8
+ storageDriverIdentifier?: FirebaseStorageDriverIdentifier;
9
+ storageDriverType: FirebaseStorageDriverType;
10
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/storage/driver/driver.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { StorageDataStringType, StorageUploadOptions } from '../types';
2
+ export declare function assertStorageUploadOptionsStringFormat(options?: StorageUploadOptions): StorageDataStringType;
3
+ export declare function noStringFormatInStorageUploadOptionsError(): Error;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.noStringFormatInStorageUploadOptionsError = exports.assertStorageUploadOptionsStringFormat = void 0;
4
+ function assertStorageUploadOptionsStringFormat(options) {
5
+ const stringFormat = options === null || options === void 0 ? void 0 : options.stringFormat;
6
+ if (!stringFormat) {
7
+ throw noStringFormatInStorageUploadOptionsError();
8
+ }
9
+ return stringFormat;
10
+ }
11
+ exports.assertStorageUploadOptionsStringFormat = assertStorageUploadOptionsStringFormat;
12
+ function noStringFormatInStorageUploadOptionsError() {
13
+ return new Error('stringFormat was missing a value in the StorageUploadOptions.');
14
+ }
15
+ exports.noStringFormatInStorageUploadOptionsError = noStringFormatInStorageUploadOptionsError;
16
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/storage/driver/error.ts"],"names":[],"mappings":";;;AAEA,SAAgB,sCAAsC,CAAC,OAA8B;IACnF,MAAM,YAAY,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC;IAE3C,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,yCAAyC,EAAE,CAAC;KACnD;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AARD,wFAQC;AAED,SAAgB,yCAAyC;IACvD,OAAO,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;AACpF,CAAC;AAFD,8FAEC"}
@@ -0,0 +1,4 @@
1
+ export * from './accessor';
2
+ export * from './driver';
3
+ export * from './error';
4
+ export * from './list';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./accessor"), exports);
5
+ tslib_1.__exportStar(require("./driver"), exports);
6
+ tslib_1.__exportStar(require("./error"), exports);
7
+ tslib_1.__exportStar(require("./list"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/storage/driver/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,mDAAyB;AACzB,kDAAwB;AACxB,iDAAuB"}
@@ -0,0 +1,13 @@
1
+ import { FirebaseStorageAccessorFile, FirebaseStorageAccessorFolder, StorageListFilesOptions, StorageListFilesResult, StorageListItemResult } from './accessor';
2
+ export interface StorageListFilesResultFactoryDelegate<S, R> {
3
+ hasItems(result: R): boolean;
4
+ hasNext(result: R): boolean;
5
+ next(storage: S, folder: FirebaseStorageAccessorFolder, result: R): Promise<StorageListFilesResult>;
6
+ file(storage: S, fileResult: StorageListItemResult): FirebaseStorageAccessorFile;
7
+ folder(storage: S, folderResult: StorageListItemResult): FirebaseStorageAccessorFolder;
8
+ filesFromResult(result: R, folder: FirebaseStorageAccessorFolder): StorageListItemResult[];
9
+ foldersFromResult(result: R, folder: FirebaseStorageAccessorFolder): StorageListItemResult[];
10
+ }
11
+ export declare type StorageListFilesResultFactory<S, R> = (storage: S, folder: FirebaseStorageAccessorFolder, options: StorageListFilesOptions | undefined, result: R) => StorageListFilesResult;
12
+ export declare function storageListFilesResultFactory<S, R>(delegate: StorageListFilesResultFactoryDelegate<S, R>): StorageListFilesResultFactory<S, R>;
13
+ export declare function storageListFilesResultHasNoNextError(): Error;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.storageListFilesResultHasNoNextError = exports.storageListFilesResultFactory = void 0;
4
+ const util_1 = require("@dereekb/util");
5
+ function storageListFilesResultFactory(delegate) {
6
+ return (storage, folder, options, result) => {
7
+ function fileResult(item) {
8
+ item.file = () => delegate.file(storage, item);
9
+ return item;
10
+ }
11
+ function folderResult(item) {
12
+ item.folder = () => delegate.folder(storage, item);
13
+ return item;
14
+ }
15
+ const hasNext = delegate.hasNext(result);
16
+ const next = (0, util_1.cachedGetter)(() => {
17
+ if (!hasNext) {
18
+ throw storageListFilesResultHasNoNextError();
19
+ }
20
+ return delegate.next(storage, folder, result);
21
+ });
22
+ const files = (0, util_1.cachedGetter)(() => delegate.filesFromResult(result, folder).map(fileResult));
23
+ const folders = (0, util_1.cachedGetter)(() => delegate.foldersFromResult(result, folder).map(folderResult));
24
+ const filesResult = {
25
+ raw: result,
26
+ options,
27
+ hasNext,
28
+ hasItems: () => delegate.hasItems(result),
29
+ next,
30
+ files,
31
+ folders
32
+ };
33
+ return filesResult;
34
+ };
35
+ }
36
+ exports.storageListFilesResultFactory = storageListFilesResultFactory;
37
+ function storageListFilesResultHasNoNextError() {
38
+ return new Error('hasNext is false, there are no more results available.');
39
+ }
40
+ exports.storageListFilesResultHasNoNextError = storageListFilesResultHasNoNextError;
41
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/storage/driver/list.ts"],"names":[],"mappings":";;;AAAA,wCAA6C;AAe7C,SAAgB,6BAA6B,CAAO,QAAqD;IACvG,OAAO,CAAC,OAAU,EAAE,MAAqC,EAAE,OAA4C,EAAE,MAAS,EAAE,EAAE;QACpH,SAAS,UAAU,CAAC,IAA2B;YAC5C,IAA8B,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1E,OAAO,IAA6B,CAAC;QACvC,CAAC;QAED,SAAS,YAAY,CAAC,IAA2B;YAC9C,IAAgC,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAChF,OAAO,IAA+B,CAAC;QACzC,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEzC,MAAM,IAAI,GAA0C,IAAA,mBAAY,EAAC,GAAG,EAAE;YACpE,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,oCAAoC,EAAE,CAAC;aAC9C;YAED,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,MAAM,KAAK,GAAkC,IAAA,mBAAY,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1H,MAAM,OAAO,GAAoC,IAAA,mBAAY,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QAElI,MAAM,WAAW,GAA2B;YAC1C,GAAG,EAAE,MAAM;YACX,OAAO;YACP,OAAO;YACP,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YACzC,IAAI;YACJ,KAAK;YACL,OAAO;SACR,CAAC;QAEF,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC;AApCD,sEAoCC;AAED,SAAgB,oCAAoC;IAClD,OAAO,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;AAC7E,CAAC;AAFD,oFAEC"}
@@ -0,0 +1,5 @@
1
+ export * from './accessor';
2
+ export * from './driver';
3
+ export * from './context';
4
+ export * from './storage';
5
+ export * from './types';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./accessor"), exports);
5
+ tslib_1.__exportStar(require("./driver"), exports);
6
+ tslib_1.__exportStar(require("./context"), exports);
7
+ tslib_1.__exportStar(require("./storage"), exports);
8
+ tslib_1.__exportStar(require("./types"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/storage/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,mDAAyB;AACzB,oDAA0B;AAC1B,oDAA0B;AAC1B,kDAAwB"}
@@ -0,0 +1,65 @@
1
+ import { SlashPath, FactoryWithRequiredInput } from '@dereekb/util';
2
+ /**
3
+ * Storage bucket identifier.
4
+ *
5
+ * Should contain no slashes, just the bucket's identifier.
6
+ */
7
+ export declare type StorageBucketId = string;
8
+ /**
9
+ * A reference to a StorageBucketId
10
+ */
11
+ export interface StorageBucketIdRef {
12
+ bucketId: StorageBucketId;
13
+ }
14
+ /**
15
+ * A filepath to a file or folder.
16
+ */
17
+ export declare type StorageSlashPath = SlashPath;
18
+ /**
19
+ * A reference to a StorageSlashPath
20
+ */
21
+ export interface StorageSlashPathRef {
22
+ pathString: StorageSlashPath;
23
+ }
24
+ /**
25
+ * A bucket and path pair.
26
+ *
27
+ * If the bucket is not defined, it implies the default app bucket.
28
+ */
29
+ export interface StoragePath extends StorageBucketIdRef, StorageSlashPathRef {
30
+ }
31
+ /**
32
+ * Storage-Path related input.
33
+ */
34
+ export declare type StoragePathInput = StorageSlashPath | StoragePath | StorageSlashPathRef;
35
+ /**
36
+ * Converts the input to a StoragePath
37
+ */
38
+ export declare type StoragePathFactory = FactoryWithRequiredInput<StoragePath, StoragePathInput>;
39
+ export interface StoragePathFactoryConfig extends StorageBucketIdRef {
40
+ /**
41
+ * Whether or not to replace the bucketId on input that has it.
42
+ *
43
+ * False by default.
44
+ */
45
+ replaceBucket?: boolean;
46
+ }
47
+ /**
48
+ * Creates a StoragePathFactory.
49
+ *
50
+ * @param config
51
+ * @returns
52
+ */
53
+ export declare function storagePathFactory(config: StoragePathFactoryConfig): StoragePathFactory;
54
+ /**
55
+ * A reference to a StoragePath
56
+ */
57
+ export interface StoragePathRef {
58
+ storagePath: StoragePath;
59
+ }
60
+ export declare type GoogleCloudStorageBucketPrefix<S extends StorageBucketId = StorageBucketId> = `gs://${S}`;
61
+ export declare type GoogleCloudStorageDefaultBucketFilePath<P extends StorageSlashPath = StorageSlashPath> = P;
62
+ export declare type GoogleCloudStorageBucketAndFilePath<P extends StorageSlashPath = StorageSlashPath, S extends StorageBucketId = StorageBucketId> = `${GoogleCloudStorageBucketPrefix<S>}/${P}`;
63
+ export declare type GoogleCloudStorageFilePath<P extends StorageSlashPath = StorageSlashPath> = GoogleCloudStorageDefaultBucketFilePath<P> | GoogleCloudStorageBucketAndFilePath<P>;
64
+ export declare function firebaseStorageFilePathFromStorageFilePath(path: StoragePath): GoogleCloudStorageFilePath;
65
+ export declare function firebaseStorageBucketFolderPath(storage: StorageBucketId | StorageBucketIdRef): GoogleCloudStorageBucketPrefix;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.firebaseStorageBucketFolderPath = exports.firebaseStorageFilePathFromStorageFilePath = exports.storagePathFactory = void 0;
4
+ const util_1 = require("@dereekb/util");
5
+ /**
6
+ * Creates a StoragePathFactory.
7
+ *
8
+ * @param config
9
+ * @returns
10
+ */
11
+ function storagePathFactory(config) {
12
+ const { replaceBucket = false, bucketId } = config;
13
+ return (input) => {
14
+ const { pathString, bucketId: inputBucketId } = typeof input === 'string' ? { pathString: input, bucketId: undefined } : input;
15
+ if (replaceBucket) {
16
+ return {
17
+ pathString,
18
+ bucketId
19
+ };
20
+ }
21
+ else {
22
+ return {
23
+ pathString,
24
+ bucketId: inputBucketId || bucketId
25
+ };
26
+ }
27
+ };
28
+ }
29
+ exports.storagePathFactory = storagePathFactory;
30
+ function firebaseStorageFilePathFromStorageFilePath(path) {
31
+ const { bucketId, pathString } = path;
32
+ const relativePathString = (0, util_1.toRelativeSlashPathStartType)(pathString);
33
+ let storagePath;
34
+ if (bucketId) {
35
+ const prefix = firebaseStorageBucketFolderPath(bucketId);
36
+ storagePath = `${prefix}/${relativePathString}`;
37
+ }
38
+ else {
39
+ storagePath = relativePathString;
40
+ }
41
+ return storagePath;
42
+ }
43
+ exports.firebaseStorageFilePathFromStorageFilePath = firebaseStorageFilePathFromStorageFilePath;
44
+ function firebaseStorageBucketFolderPath(storage) {
45
+ let storageId;
46
+ if (typeof storage === 'string') {
47
+ storageId = storage;
48
+ }
49
+ else {
50
+ storageId = storage.bucketId;
51
+ }
52
+ return `gs://${storageId}`;
53
+ }
54
+ exports.firebaseStorageBucketFolderPath = firebaseStorageBucketFolderPath;
55
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/storage/storage.ts"],"names":[],"mappings":";;;AAAA,wCAAkG;AAsDlG;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,MAAgC;IACjE,MAAM,EAAE,aAAa,GAAG,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IACnD,OAAO,CAAC,KAAuB,EAAE,EAAE;QACjC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAE,KAAqB,CAAC;QAEhJ,IAAI,aAAa,EAAE;YACjB,OAAO;gBACL,UAAU;gBACV,QAAQ;aACT,CAAC;SACH;aAAM;YACL,OAAO;gBACL,UAAU;gBACV,QAAQ,EAAE,aAAa,IAAI,QAAQ;aACpC,CAAC;SACH;IACH,CAAC,CAAC;AACJ,CAAC;AAjBD,gDAiBC;AAeD,SAAgB,0CAA0C,CAAC,IAAiB;IAC1E,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IACtC,MAAM,kBAAkB,GAAG,IAAA,mCAA4B,EAAC,UAAU,CAAC,CAAC;IACpE,IAAI,WAAuC,CAAC;IAE5C,IAAI,QAAQ,EAAE;QACZ,MAAM,MAAM,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;QACzD,WAAW,GAAG,GAAG,MAAM,IAAI,kBAAkB,EAAE,CAAC;KACjD;SAAM;QACL,WAAW,GAAG,kBAAkB,CAAC;KAClC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAbD,gGAaC;AAED,SAAgB,+BAA+B,CAAC,OAA6C;IAC3F,IAAI,SAAiB,CAAC;IAEtB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,SAAS,GAAG,OAAO,CAAC;KACrB;SAAM;QACL,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;KAC9B;IAED,OAAO,QAAQ,SAAS,EAAE,CAAC;AAC7B,CAAC;AAVD,0EAUC"}