@dereekb/firebase-server 12.5.2 → 12.5.3
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.
- package/CHANGELOG.md +4 -0
- package/mailgun/package.json +1 -1
- package/model/package.json +1 -1
- package/model/src/lib/storagefile/storagefile.upload.service.d.ts +5 -1
- package/model/src/lib/storagefile/storagefile.upload.service.initializer.d.ts +14 -1
- package/model/src/lib/storagefile/storagefile.upload.service.initializer.js +24 -1
- package/model/src/lib/storagefile/storagefile.upload.service.initializer.js.map +1 -1
- package/model/src/lib/storagefile/storagefile.upload.service.js.map +1 -1
- package/package.json +1 -1
- package/test/package.json +1 -1
- package/zoho/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [12.5.3](https://github.com/dereekb/dbx-components/compare/v12.5.2-dev...v12.5.3) (2025-10-16)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
5
9
|
## [12.5.2](https://github.com/dereekb/dbx-components/compare/v12.5.1-dev...v12.5.2) (2025-10-15)
|
|
6
10
|
|
|
7
11
|
|
package/mailgun/package.json
CHANGED
package/model/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FirebaseStorageAccessorFile, StorageFileDocument, StorageFileInitializeFromUploadResultType, UploadedFileTypeDeterminerResult } from '@dereekb/firebase';
|
|
1
|
+
import { FirebaseStorageAccessorFile, StorageFileDocument, StorageFileInitializeFromUploadResultType, StoragePath, UploadedFileTypeDeterminerResult } from '@dereekb/firebase';
|
|
2
2
|
import { Maybe, PromiseOrValue } from '@dereekb/util';
|
|
3
3
|
/**
|
|
4
4
|
* Provides a reference to a StorageFileInitializeFromUploadService instance.
|
|
@@ -19,6 +19,10 @@ export interface StorageFileInitializeFromUploadResult {
|
|
|
19
19
|
* Whether or not the initialization was successful.
|
|
20
20
|
*/
|
|
21
21
|
readonly resultType: StorageFileInitializeFromUploadResultType;
|
|
22
|
+
/**
|
|
23
|
+
* Path of the created file.
|
|
24
|
+
*/
|
|
25
|
+
readonly createdFilePath?: Maybe<StoragePath>;
|
|
22
26
|
/**
|
|
23
27
|
* The initialized StorageFile value, if applicable.
|
|
24
28
|
*/
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { CombineUploadFileTypeDeterminerConfig, CreateStorageFileDocumentPairResult, FirebaseStorageAccessorFile, StorageFileDocument, StorageFileFirestoreCollection, StorageFilePurposeAndUserQueryInput, StoredFileReader, UploadedFileTypeDeterminer, UploadedFileTypeDeterminerResult, UploadedFileTypeIdentifier } from '@dereekb/firebase';
|
|
1
|
+
import { CombineUploadFileTypeDeterminerConfig, CreateStorageFileDocumentPairResult, FirebaseStorageAccessorFile, StorageFileDocument, StorageFileFirestoreCollection, StorageFilePurposeAndUserQueryInput, StoragePathRef, StoredFileReader, UploadedFileTypeDeterminer, UploadedFileTypeDeterminerResult, UploadedFileTypeIdentifier } from '@dereekb/firebase';
|
|
2
2
|
import { ArrayOrValue, AsyncDecisionFunction, Maybe } from '@dereekb/util';
|
|
3
3
|
import { StorageFileInitializeFromUploadService } from './storagefile.upload.service';
|
|
4
|
+
import { FirebaseServerStorageService } from '@dereekb/firebase-server';
|
|
4
5
|
export interface StorageFileInitializeFromUploadServiceInitializerInput {
|
|
5
6
|
/**
|
|
6
7
|
* The result of the determiner.
|
|
@@ -39,6 +40,10 @@ export interface StorageFileInitializeFromUploadServiceInitializerStorageFileDoc
|
|
|
39
40
|
* The StorageFileDocument, if it was initialized.
|
|
40
41
|
*/
|
|
41
42
|
readonly storageFileDocument: StorageFileDocument;
|
|
43
|
+
/**
|
|
44
|
+
* The StoragePathRef of the created file.
|
|
45
|
+
*/
|
|
46
|
+
readonly createdFile: StoragePathRef;
|
|
42
47
|
/**
|
|
43
48
|
* If set, the initializer will query existing StorageFiles for the user and purpose and flag them for deletion.
|
|
44
49
|
*
|
|
@@ -79,6 +84,10 @@ export interface StorageFileInitializeFromUploadServiceConfig {
|
|
|
79
84
|
* They will be combined together with determiners from the processors.
|
|
80
85
|
*/
|
|
81
86
|
readonly determiner?: Maybe<ArrayOrValue<UploadedFileTypeDeterminer>>;
|
|
87
|
+
/**
|
|
88
|
+
* The FirebaseStorageService to use for retrieving/updating files.
|
|
89
|
+
*/
|
|
90
|
+
readonly storageService: FirebaseServerStorageService;
|
|
82
91
|
/**
|
|
83
92
|
* StorageFilleFirestoreCollection used for retrieving existing StorageFiles for marking them as deleted.
|
|
84
93
|
*/
|
|
@@ -94,6 +103,10 @@ export interface StorageFileInitializeFromUploadServiceConfig {
|
|
|
94
103
|
* Optional function to check if the file is allowed to be initialized.
|
|
95
104
|
*/
|
|
96
105
|
readonly checkFileIsAllowedToBeInitialized?: Maybe<AsyncDecisionFunction<FirebaseStorageAccessorFile>>;
|
|
106
|
+
/**
|
|
107
|
+
* If true, throws an error if the created file cannot be updated to link to a StorageFileRelatedFileMetadata.
|
|
108
|
+
*/
|
|
109
|
+
readonly requireStorageFileRelatedFileMetadataBeSet?: Maybe<boolean>;
|
|
97
110
|
/**
|
|
98
111
|
* List of handlers for NotificationTaskTypes.
|
|
99
112
|
*/
|
|
@@ -15,7 +15,7 @@ function storageFileInitializeFromUploadServiceInitializerResultPermanentFailure
|
|
|
15
15
|
* A basic StorageFileInitializeFromUploadService implementation.
|
|
16
16
|
*/
|
|
17
17
|
function storageFileInitializeFromUploadService(config) {
|
|
18
|
-
const { storageFileCollection, initializer: inputInitializers, determiner: inputDeterminers, validate, checkFileIsAllowedToBeInitialized: inputCheckFileIsAllowedToBeInitialized } = config;
|
|
18
|
+
const { storageService, storageFileCollection, initializer: inputInitializers, determiner: inputDeterminers, validate, checkFileIsAllowedToBeInitialized: inputCheckFileIsAllowedToBeInitialized, requireStorageFileRelatedFileMetadataBeSet } = config;
|
|
19
19
|
const allDeterminers = [];
|
|
20
20
|
const initializers = {};
|
|
21
21
|
const detailsAccessorFactory = (0, firebase_1.storedFileReaderFactory)();
|
|
@@ -63,6 +63,7 @@ function storageFileInitializeFromUploadService(config) {
|
|
|
63
63
|
initializeFromUpload: async (input) => {
|
|
64
64
|
const determinerResult = await determineUploadFileType(input);
|
|
65
65
|
let resultType;
|
|
66
|
+
let createdFilePath;
|
|
66
67
|
let storageFileDocument;
|
|
67
68
|
let processorError;
|
|
68
69
|
let previousStorageFilesFlaggedForDeletion;
|
|
@@ -86,6 +87,7 @@ function storageFileInitializeFromUploadService(config) {
|
|
|
86
87
|
let flagPreviousForDelete;
|
|
87
88
|
if (initializerResult.createStorageFileResult) {
|
|
88
89
|
const { createStorageFileResult, flagPreviousForDelete: flagPreviousForDeleteResult } = initializerResult;
|
|
90
|
+
createdFilePath = (0, firebase_1.copyStoragePath)(createStorageFileResult.storageFile);
|
|
89
91
|
storageFileDocument = createStorageFileResult.storageFileDocument;
|
|
90
92
|
if (flagPreviousForDeleteResult) {
|
|
91
93
|
if (typeof flagPreviousForDeleteResult === 'object') {
|
|
@@ -104,9 +106,30 @@ function storageFileInitializeFromUploadService(config) {
|
|
|
104
106
|
}
|
|
105
107
|
}
|
|
106
108
|
else {
|
|
109
|
+
createdFilePath = (0, firebase_1.copyStoragePath)(initializerResult.createdFile.storagePath);
|
|
107
110
|
storageFileDocument = initializerResult.storageFileDocument;
|
|
108
111
|
flagPreviousForDelete = initializerResult.flagPreviousForDelete;
|
|
109
112
|
}
|
|
113
|
+
// set the metadata on the associated file
|
|
114
|
+
try {
|
|
115
|
+
const createdFile = storageService.file(createdFilePath);
|
|
116
|
+
const fileMetadata = await createdFile.getMetadata();
|
|
117
|
+
await createdFile.setMetadata({
|
|
118
|
+
customMetadata: {
|
|
119
|
+
...fileMetadata.customMetadata,
|
|
120
|
+
[firebase_1.STORAGEFILE_RELATED_FILE_METADATA_KEY]: storageFileDocument.id
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
catch (e) {
|
|
125
|
+
// failed to set the metadata. It isn't strictly necessary, so don't throw an error unless configured to always throw an error
|
|
126
|
+
if (requireStorageFileRelatedFileMetadataBeSet) {
|
|
127
|
+
// mark the created item for delete
|
|
128
|
+
await storageFileDocument.update((0, storagefile_util_1.markStorageFileForDeleteTemplate)());
|
|
129
|
+
// throw the exception
|
|
130
|
+
throw e;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
110
133
|
// if flagPreviousForDelete is set, flag the previous storage files for deletion
|
|
111
134
|
if (flagPreviousForDelete) {
|
|
112
135
|
const flagForDeleteResult = await (0, storagefile_util_1.queryAndFlagStorageFilesForDelete)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storagefile.upload.service.initializer.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/model/src/lib/storagefile/storagefile.upload.service.initializer.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"storagefile.upload.service.initializer.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/model/src/lib/storagefile/storagefile.upload.service.initializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storagefile.upload.service.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/model/src/lib/storagefile/storagefile.upload.service.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"storagefile.upload.service.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/model/src/lib/storagefile/storagefile.upload.service.ts"],"names":[],"mappings":";;;AA4CA;;GAEG;AACH,MAAsB,sCAAsC;CAiB3D;AAjBD,wFAiBC"}
|
package/package.json
CHANGED
package/test/package.json
CHANGED