@dereekb/firebase 8.9.1 → 8.10.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 (145) hide show
  1. package/CHANGELOG.md +16 -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/index.d.ts +1 -0
  9. package/src/lib/client/index.js +1 -0
  10. package/src/lib/client/index.js.map +1 -1
  11. package/src/lib/client/storage/driver.accessor.d.ts +17 -0
  12. package/src/lib/client/storage/driver.accessor.js +105 -0
  13. package/src/lib/client/storage/driver.accessor.js.map +1 -0
  14. package/src/lib/client/storage/driver.d.ts +3 -0
  15. package/src/lib/client/storage/driver.js +13 -0
  16. package/src/lib/client/storage/driver.js.map +1 -0
  17. package/src/lib/client/storage/index.d.ts +3 -0
  18. package/src/lib/client/storage/index.js +7 -0
  19. package/src/lib/client/storage/index.js.map +1 -0
  20. package/src/lib/client/storage/storage.d.ts +5 -0
  21. package/src/lib/client/storage/storage.js +10 -0
  22. package/src/lib/client/storage/storage.js.map +1 -0
  23. package/src/lib/common/firestore/context.d.ts +2 -2
  24. package/src/lib/common/firestore/context.js +1 -1
  25. package/src/lib/common/firestore/context.js.map +1 -1
  26. package/src/lib/common/firestore/driver/driver.d.ts +2 -2
  27. package/src/lib/common/index.d.ts +1 -0
  28. package/src/lib/common/index.js +1 -0
  29. package/src/lib/common/index.js.map +1 -1
  30. package/src/lib/common/storage/accessor/index.d.ts +1 -0
  31. package/src/lib/common/storage/accessor/index.js +5 -0
  32. package/src/lib/common/storage/accessor/index.js.map +1 -0
  33. package/src/lib/common/storage/accessor/path.model.d.ts +26 -0
  34. package/src/lib/common/storage/accessor/path.model.js +25 -0
  35. package/src/lib/common/storage/accessor/path.model.js.map +1 -0
  36. package/src/lib/common/storage/context.d.ts +35 -0
  37. package/src/lib/common/storage/context.js +34 -0
  38. package/src/lib/common/storage/context.js.map +1 -0
  39. package/src/lib/common/storage/driver/accessor.d.ts +170 -0
  40. package/src/lib/common/storage/driver/accessor.js +3 -0
  41. package/src/lib/common/storage/driver/accessor.js.map +1 -0
  42. package/src/lib/common/storage/driver/driver.d.ts +10 -0
  43. package/src/lib/common/storage/driver/driver.js +3 -0
  44. package/src/lib/common/storage/driver/driver.js.map +1 -0
  45. package/src/lib/common/storage/driver/error.d.ts +3 -0
  46. package/src/lib/common/storage/driver/error.js +16 -0
  47. package/src/lib/common/storage/driver/error.js.map +1 -0
  48. package/src/lib/common/storage/driver/index.d.ts +4 -0
  49. package/src/lib/common/storage/driver/index.js +8 -0
  50. package/src/lib/common/storage/driver/index.js.map +1 -0
  51. package/src/lib/common/storage/driver/list.d.ts +13 -0
  52. package/src/lib/common/storage/driver/list.js +41 -0
  53. package/src/lib/common/storage/driver/list.js.map +1 -0
  54. package/src/lib/common/storage/index.d.ts +5 -0
  55. package/src/lib/common/storage/index.js +9 -0
  56. package/src/lib/common/storage/index.js.map +1 -0
  57. package/src/lib/common/storage/storage.d.ts +65 -0
  58. package/src/lib/common/storage/storage.js +55 -0
  59. package/src/lib/common/storage/storage.js.map +1 -0
  60. package/src/lib/common/storage/types.d.ts +210 -0
  61. package/src/lib/common/storage/types.js +3 -0
  62. package/src/lib/common/storage/types.js.map +1 -0
  63. package/test/CHANGELOG.md +15 -0
  64. package/test/package.json +7 -7
  65. package/test/src/lib/client/{firestore.authorized.d.ts → firebase.authorized.d.ts} +2 -2
  66. package/test/src/lib/client/firebase.authorized.js +35 -0
  67. package/test/src/lib/client/firebase.authorized.js.map +1 -0
  68. package/test/src/lib/client/firebase.d.ts +54 -0
  69. package/test/src/lib/client/{firestore.js → firebase.js} +34 -14
  70. package/test/src/lib/client/firebase.js.map +1 -0
  71. package/test/src/lib/client/firestore.mock.item.fixture.authorized.d.ts +9 -3
  72. package/test/src/lib/client/firestore.mock.item.fixture.authorized.js +13 -6
  73. package/test/src/lib/client/firestore.mock.item.fixture.authorized.js.map +1 -1
  74. package/test/src/lib/client/index.d.ts +2 -2
  75. package/test/src/lib/client/index.js +2 -2
  76. package/test/src/lib/client/index.js.map +1 -1
  77. package/test/src/lib/common/firebase.instance.d.ts +20 -0
  78. package/test/src/lib/common/firebase.instance.js +33 -0
  79. package/test/src/lib/common/firebase.instance.js.map +1 -0
  80. package/test/src/lib/common/{firestore.d.ts → firestore/firestore.d.ts} +1 -1
  81. package/test/src/lib/common/{firestore.mock.d.ts → firestore/firestore.instance.d.ts} +3 -4
  82. package/test/src/lib/common/{firestore.mock.js → firestore/firestore.instance.js} +6 -12
  83. package/test/src/lib/common/firestore/firestore.instance.js.map +1 -0
  84. package/test/src/lib/common/{firestore.js → firestore/firestore.js} +1 -1
  85. package/test/src/lib/common/firestore/firestore.js.map +1 -0
  86. package/test/src/lib/common/firestore/index.d.ts +5 -0
  87. package/test/src/lib/common/firestore/index.js +9 -0
  88. package/test/src/lib/common/firestore/index.js.map +1 -0
  89. package/test/src/lib/common/{test.driver.accessor.d.ts → firestore/test.driver.accessor.d.ts} +2 -2
  90. package/test/src/lib/common/{test.driver.accessor.js → firestore/test.driver.accessor.js} +9 -9
  91. package/test/src/lib/common/firestore/test.driver.accessor.js.map +1 -0
  92. package/test/src/lib/common/firestore/test.driver.query.d.ts +7 -0
  93. package/test/src/lib/common/{test.driver.query.js → firestore/test.driver.query.js} +5 -5
  94. package/test/src/lib/common/firestore/test.driver.query.js.map +1 -0
  95. package/test/src/lib/common/{test.iterator.d.ts → firestore/test.iterator.d.ts} +1 -1
  96. package/test/src/lib/common/{test.iterator.js → firestore/test.iterator.js} +2 -2
  97. package/test/src/lib/common/firestore/test.iterator.js.map +1 -0
  98. package/test/src/lib/common/index.d.ts +3 -8
  99. package/test/src/lib/common/index.js +3 -8
  100. package/test/src/lib/common/index.js.map +1 -1
  101. package/test/src/lib/common/mock/index.d.ts +5 -0
  102. package/test/src/lib/common/mock/index.js +9 -0
  103. package/test/src/lib/common/mock/index.js.map +1 -0
  104. package/test/src/lib/common/mock/mock.item.collection.fixture.d.ts +27 -0
  105. package/test/src/lib/common/{firestore.mock.item.fixture.js → mock/mock.item.collection.fixture.js} +7 -9
  106. package/test/src/lib/common/mock/mock.item.collection.fixture.js.map +1 -0
  107. package/test/src/lib/common/{firestore.mock.item.d.ts → mock/mock.item.d.ts} +0 -0
  108. package/test/src/lib/common/{firestore.mock.item.js → mock/mock.item.js} +1 -1
  109. package/test/src/lib/common/mock/mock.item.js.map +1 -0
  110. package/test/src/lib/common/{firestore.mock.item.query.d.ts → mock/mock.item.query.d.ts} +1 -1
  111. package/test/src/lib/common/{firestore.mock.item.query.js → mock/mock.item.query.js} +1 -1
  112. package/test/src/lib/common/mock/mock.item.query.js.map +1 -0
  113. package/test/src/lib/common/{firestore.mock.item.service.d.ts → mock/mock.item.service.d.ts} +1 -1
  114. package/test/src/lib/common/{firestore.mock.item.service.js → mock/mock.item.service.js} +11 -11
  115. package/test/src/lib/common/mock/mock.item.service.js.map +1 -0
  116. package/test/src/lib/common/mock/mock.item.storage.fixture.d.ts +18 -0
  117. package/test/src/lib/common/mock/mock.item.storage.fixture.js +39 -0
  118. package/test/src/lib/common/mock/mock.item.storage.fixture.js.map +1 -0
  119. package/test/src/lib/common/storage/index.d.ts +3 -0
  120. package/test/src/lib/common/storage/index.js +7 -0
  121. package/test/src/lib/common/storage/index.js.map +1 -0
  122. package/test/src/lib/common/storage/storage.d.ts +24 -0
  123. package/test/src/lib/common/storage/storage.instance.d.ts +13 -0
  124. package/test/src/lib/common/storage/storage.instance.js +23 -0
  125. package/test/src/lib/common/storage/storage.instance.js.map +1 -0
  126. package/test/src/lib/common/storage/storage.js +23 -0
  127. package/test/src/lib/common/storage/storage.js.map +1 -0
  128. package/test/src/lib/common/storage/test.driver.accessor.d.ts +7 -0
  129. package/test/src/lib/common/storage/test.driver.accessor.js +337 -0
  130. package/test/src/lib/common/storage/test.driver.accessor.js.map +1 -0
  131. package/test/src/lib/client/firestore.authorized.js +0 -23
  132. package/test/src/lib/client/firestore.authorized.js.map +0 -1
  133. package/test/src/lib/client/firestore.d.ts +0 -39
  134. package/test/src/lib/client/firestore.js.map +0 -1
  135. package/test/src/lib/common/firestore.js.map +0 -1
  136. package/test/src/lib/common/firestore.mock.item.fixture.d.ts +0 -27
  137. package/test/src/lib/common/firestore.mock.item.fixture.js.map +0 -1
  138. package/test/src/lib/common/firestore.mock.item.js.map +0 -1
  139. package/test/src/lib/common/firestore.mock.item.query.js.map +0 -1
  140. package/test/src/lib/common/firestore.mock.item.service.js.map +0 -1
  141. package/test/src/lib/common/firestore.mock.js.map +0 -1
  142. package/test/src/lib/common/test.driver.accessor.js.map +0 -1
  143. package/test/src/lib/common/test.driver.query.d.ts +0 -7
  144. package/test/src/lib/common/test.driver.query.js.map +0 -1
  145. package/test/src/lib/common/test.iterator.js.map +0 -1
@@ -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"}
@@ -0,0 +1,210 @@
1
+ /// <reference types="node" />
2
+ import { ISO8601DateString } from '@dereekb/util';
3
+ export declare type FirebaseStorageLikeStorage = {
4
+ /**
5
+ * The maximum time to retry uploads in milliseconds.
6
+ */
7
+ maxUploadRetryTime: number;
8
+ /**
9
+ * The maximum time to retry operations other than uploads or downloads in
10
+ * milliseconds.
11
+ */
12
+ maxOperationRetryTime: number;
13
+ };
14
+ export declare type GoogleCloudLikeStorage = {
15
+ baseUrl: string;
16
+ projectId: string;
17
+ };
18
+ /**
19
+ * Cast to the local type's Storage if direct access is needed. In most cases, direct access to this type is unncessary.
20
+ */
21
+ export declare type FirebaseStorage = FirebaseStorageLikeStorage | GoogleCloudLikeStorage;
22
+ export declare type StorageDownloadUrl = string;
23
+ /**
24
+ * Example:
25
+ * 'Hello! \\ud83d\\ude0a';
26
+ */
27
+ export declare type StorageRawDataString = string;
28
+ /**
29
+ * Indicates the string should be interpreted "raw", that is, as normal text.
30
+ * The string will be interpreted as UTF-16, then uploaded as a UTF-8 byte
31
+ * sequence.
32
+ * Example: The string 'Hello! \\ud83d\\ude0a' becomes the byte sequence
33
+ * 48 65 6c 6c 6f 21 20 f0 9f 98 8a
34
+ */
35
+ export declare type StorageRawDataStringType = 'raw';
36
+ /**
37
+ * Example:
38
+ * '5b6p5Y+344GX44G+44GX44Gf77yB44GK44KB44Gn44Go44GG77yB';
39
+ */
40
+ export declare type StorageBase64DataString = string;
41
+ /**
42
+ * Indicates the string should be interpreted as base64-encoded data.
43
+ * Padding characters (trailing '='s) are optional.
44
+ * Example: The string 'rWmO++E6t7/rlw==' becomes the byte sequence
45
+ * ad 69 8e fb e1 3a b7 bf eb 97
46
+ */
47
+ export declare type StorageBase64DataStringType = 'base64';
48
+ /**
49
+ * Example:
50
+ * '5b6p5Y-344GX44G-44GX44Gf77yB44GK44KB44Gn44Go44GG77yB';
51
+ */
52
+ export declare type StorageBase64UrlDataString = string;
53
+ /**
54
+ * Indicates the string should be interpreted as base64url-encoded data.
55
+ * Padding characters (trailing '='s) are optional.
56
+ * Example: The string 'rWmO--E6t7_rlw==' becomes the byte sequence
57
+ * ad 69 8e fb e1 3a b7 bf eb 97
58
+ */
59
+ export declare type StorageBase64UrlDataStringType = 'base64url';
60
+ /**
61
+ * Example:
62
+ * 'data:text/plain;base64,5b6p5Y+344GX44G+44GX44Gf77yB44GK44KB44Gn44Go44GG77yB'
63
+ */
64
+ export declare type StorageDataUrlString = string;
65
+ /**
66
+ * Indicates the string is a data URL, such as one obtained from
67
+ * canvas.toDataURL().
68
+ * Example: the string 'data:application/octet-stream;base64,aaaa'
69
+ * becomes the byte sequence
70
+ * 69 a6 9a
71
+ * (the content-type "application/octet-stream" is also applied, but can
72
+ * be overridden in the metadata object).
73
+ */
74
+ export declare type StorageDataUrlStringType = 'data_url';
75
+ /**
76
+ * https://firebase.google.com/docs/storage/web/upload-files#upload_from_a_string
77
+ */
78
+ export declare type StorageDataString = StorageRawDataString | StorageBase64DataString | StorageBase64UrlDataString | StorageDataUrlString;
79
+ export declare type StorageDataStringType = StorageRawDataStringType | StorageBase64DataStringType | StorageBase64UrlDataStringType | StorageDataUrlStringType;
80
+ /**
81
+ * Blob and Byte array types that can be uploaded by the client implementation.
82
+ */
83
+ export declare type StorageClientUploadBytesInput = File | Blob | Uint8Array;
84
+ /**
85
+ * Known types that can be uploaded by the client implementation.
86
+ */
87
+ export declare type StorageClientUploadInput = StorageClientUploadBytesInput | StorageDataString;
88
+ /**
89
+ * Known types that can be uploaded by the client implementation.
90
+ */
91
+ export declare type StorageServerUploadBytesInput = Buffer | Uint8Array;
92
+ /**
93
+ * Known types that can be uploaded by the server implementation.
94
+ */
95
+ export declare type StorageServerUploadInput = StorageServerUploadBytesInput | StorageDataString;
96
+ export declare type StorageUploadInput = StorageClientUploadInput | StorageServerUploadInput;
97
+ export declare type StorageUploadTask = {
98
+ /**
99
+ * Cancels a running task. Has no effect on a complete or failed task.
100
+ * @returns True if the cancel had an effect.
101
+ */
102
+ cancel(): boolean;
103
+ /**
104
+ * Pauses a currently running task. Has no effect on a paused or failed task.
105
+ * @returns True if the operation took effect, false if ignored.
106
+ */
107
+ pause(): boolean;
108
+ /**
109
+ * Resumes a paused task. Has no effect on a currently running or failed task.
110
+ * @returns True if the operation took effect, false if ignored.
111
+ */
112
+ resume(): boolean;
113
+ };
114
+ export declare type StorageClientUploadResult = unknown;
115
+ export declare type StorageUploadResult = StorageClientUploadResult | unknown;
116
+ export interface StorageUploadOptions {
117
+ resumable?: boolean;
118
+ /**
119
+ * String format to handle the upload as. Required if the input is a string.
120
+ */
121
+ stringFormat?: StorageDataStringType;
122
+ /**
123
+ * ContentType for the upload.
124
+ */
125
+ contentType?: string;
126
+ /**
127
+ * other metadata to attach to the file.
128
+ */
129
+ metadata?: StorageMetadata;
130
+ }
131
+ /**
132
+ *
133
+ */
134
+ export declare type StorageMetadata = {
135
+ /**
136
+ * The bucket this object is contained in.
137
+ */
138
+ bucket: string;
139
+ /**
140
+ * The full path of this object.
141
+ */
142
+ fullPath: string;
143
+ /**
144
+ * The object's generation.
145
+ * {@link https://cloud.google.com/storage/docs/metadata#generation-number}
146
+ */
147
+ generation: string;
148
+ /**
149
+ * The object's metageneration.
150
+ * {@link https://cloud.google.com/storage/docs/metadata#generation-number}
151
+ */
152
+ metageneration: string;
153
+ /**
154
+ * The short name of this object, which is the last component of the full path.
155
+ * For example, if fullPath is 'full/path/image.png', name is 'image.png'.
156
+ */
157
+ name: string;
158
+ /**
159
+ * The size of this object, in bytes.
160
+ */
161
+ size: number;
162
+ /**
163
+ * A date string representing when this object was created.
164
+ */
165
+ timeCreated: ISO8601DateString;
166
+ /**
167
+ * A date string representing when this object was last updated.
168
+ */
169
+ updated: ISO8601DateString;
170
+ /**
171
+ * A Base64-encoded MD5 hash of the object being uploaded.
172
+ */
173
+ md5Hash?: string | undefined;
174
+ /**
175
+ * Served as the 'Cache-Control' header on object download.
176
+ */
177
+ cacheControl?: string | undefined;
178
+ /**
179
+ * Served as the 'Content-Disposition' header on object download.
180
+ */
181
+ contentDisposition?: string | undefined;
182
+ /**
183
+ * Served as the 'Content-Encoding' header on object download.
184
+ */
185
+ contentEncoding?: string | undefined;
186
+ /**
187
+ * Served as the 'Content-Language' header on object download.
188
+ */
189
+ contentLanguage?: string | undefined;
190
+ /**
191
+ * Served as the 'Content-Type' header on object download.
192
+ */
193
+ contentType?: string | undefined;
194
+ /**
195
+ * Any user-specified custom metdata.
196
+ */
197
+ customMetadata?: StorageCustomMetadata | undefined;
198
+ };
199
+ /**
200
+ * Additional user-defined custom metadata.
201
+ */
202
+ export declare type StorageCustomMetadata = {
203
+ [key: string]: string;
204
+ };
205
+ export interface StorageDeleteFileOptions {
206
+ /**
207
+ * Ignores errors related to the file not existing.
208
+ */
209
+ ignoreNotFound?: boolean;
210
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/storage/types.ts"],"names":[],"mappings":""}