@webda/gcp 4.0.0-beta.1 → 4.0.0-beta.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.
Files changed (57) hide show
  1. package/README.md +54 -4
  2. package/lib/index.d.ts +5 -4
  3. package/lib/index.d.ts.map +1 -0
  4. package/lib/index.js +4 -4
  5. package/lib/index.js.map +1 -1
  6. package/lib/services/firestore.service.d.ts +236 -0
  7. package/lib/services/firestore.service.d.ts.map +1 -0
  8. package/lib/services/firestore.service.js +692 -0
  9. package/lib/services/firestore.service.js.map +1 -0
  10. package/lib/services/index.d.ts +2 -1
  11. package/lib/services/index.d.ts.map +1 -0
  12. package/lib/services/index.js +1 -1
  13. package/lib/services/index.js.map +1 -1
  14. package/lib/services/{kms.d.ts → kms.service.d.ts} +14 -14
  15. package/lib/services/kms.service.d.ts.map +1 -0
  16. package/lib/services/{kms.js → kms.service.js} +18 -16
  17. package/lib/services/kms.service.js.map +1 -0
  18. package/lib/services/{pubsub.d.ts → pubsub.service.d.ts} +23 -3
  19. package/lib/services/pubsub.service.d.ts.map +1 -0
  20. package/lib/services/{pubsub.js → pubsub.service.js} +36 -10
  21. package/lib/services/pubsub.service.js.map +1 -0
  22. package/lib/services/{queue.d.ts → queue.service.d.ts} +32 -14
  23. package/lib/services/queue.service.d.ts.map +1 -0
  24. package/lib/services/{queue.js → queue.service.js} +65 -38
  25. package/lib/services/queue.service.js.map +1 -0
  26. package/lib/services/storage.service.d.ts +268 -0
  27. package/lib/services/storage.service.d.ts.map +1 -0
  28. package/lib/services/{storage.js → storage.service.js} +125 -78
  29. package/lib/services/storage.service.js.map +1 -0
  30. package/package.json +34 -40
  31. package/webda.module.json +1120 -1462
  32. package/lib/index.spec.d.ts +0 -4
  33. package/lib/index.spec.js +0 -7
  34. package/lib/index.spec.js.map +0 -1
  35. package/lib/services/firestore.d.ts +0 -134
  36. package/lib/services/firestore.js +0 -424
  37. package/lib/services/firestore.js.map +0 -1
  38. package/lib/services/firestore.spec.d.ts +0 -1
  39. package/lib/services/firestore.spec.js +0 -194
  40. package/lib/services/firestore.spec.js.map +0 -1
  41. package/lib/services/kms.js.map +0 -1
  42. package/lib/services/kms.spec.d.ts +0 -1
  43. package/lib/services/kms.spec.js +0 -53
  44. package/lib/services/kms.spec.js.map +0 -1
  45. package/lib/services/pubsub.js.map +0 -1
  46. package/lib/services/pubsub.spec.d.ts +0 -1
  47. package/lib/services/pubsub.spec.js +0 -95
  48. package/lib/services/pubsub.spec.js.map +0 -1
  49. package/lib/services/queue.js.map +0 -1
  50. package/lib/services/queue.spec.d.ts +0 -1
  51. package/lib/services/queue.spec.js +0 -104
  52. package/lib/services/queue.spec.js.map +0 -1
  53. package/lib/services/storage.d.ts +0 -214
  54. package/lib/services/storage.js.map +0 -1
  55. package/lib/services/storage.spec.d.ts +0 -1
  56. package/lib/services/storage.spec.js +0 -220
  57. package/lib/services/storage.spec.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.service.js","sourceRoot":"","sources":["../../src/services/queue.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,268 @@
1
+ import { Bucket, StorageOptions } from "@google-cloud/storage";
2
+ import { BinaryFile, BinaryFileInfo, BinaryMap, CloudBinary, CloudBinaryParameters, CoreModel, OperationContext } from "@webda/core";
3
+ import { StorageFinder } from "@webda/utils";
4
+ import { Readable, Writable } from "node:stream";
5
+ export type StorageObject = {
6
+ key: string;
7
+ /**
8
+ * bucket is an option,
9
+ * if not provided: it will get the DEFAULT_BUCKET set from environment variable
10
+ */
11
+ bucket?: string;
12
+ };
13
+ export type DownloadParams = StorageObject & {
14
+ localPath: string;
15
+ };
16
+ export type PutObjectParams = StorageObject & {
17
+ localPath?: string;
18
+ content?: string | Buffer;
19
+ };
20
+ export type SignedUrlParams = StorageObject & {
21
+ expires?: number;
22
+ action: "read" | "write" | "delete";
23
+ contentMd5?: string;
24
+ contentType?: string;
25
+ extensionHeaders?: {
26
+ [key: string]: string;
27
+ };
28
+ responseDisposition?: string;
29
+ queryParams?: {
30
+ [key: string]: string;
31
+ };
32
+ };
33
+ export type StorageObjectMeta = {
34
+ size: number;
35
+ contentType: string;
36
+ };
37
+ /**
38
+ * Configuration for {@link Storage}
39
+ */
40
+ export declare class StorageParameters extends CloudBinaryParameters {
41
+ /**
42
+ * Bucket to store binaries in
43
+ */
44
+ bucket: string;
45
+ /**
46
+ * Specify endpoint for GCS
47
+ */
48
+ endpoint?: string;
49
+ }
50
+ /**
51
+ * Google Storage Finder implementation
52
+ */
53
+ export declare class GCSFinder implements StorageFinder {
54
+ private _storage;
55
+ /**
56
+ * @param options - GCS client options
57
+ */
58
+ constructor(options?: StorageOptions);
59
+ /**
60
+ * Get info from url
61
+ * @param path - the gs:// url
62
+ * @returns the bucket and key
63
+ */
64
+ getInfo(path: string): {
65
+ bucket: string;
66
+ key: string;
67
+ };
68
+ /**
69
+ * Depth or options is ignored
70
+ * @override
71
+ * @param path - the gs:// url to walk
72
+ * @param processor - called for each file found
73
+ * @param _options - ignored
74
+ * @param _depth - ignored
75
+ */
76
+ walk(path: string, processor: (filepath: string) => void, _options?: {
77
+ followSymlinks?: boolean;
78
+ resolveSymlink?: boolean;
79
+ includeDir?: boolean;
80
+ maxDepth?: number;
81
+ }, _depth?: number): Promise<void>;
82
+ /**
83
+ * Find files under a gs:// url
84
+ * @param currentPath - the gs:// url to search
85
+ * @param options - only `filterPattern` and `processor` are used
86
+ * @returns the files found
87
+ */
88
+ find(currentPath: string, options?: {
89
+ includeDir?: boolean;
90
+ maxDepth?: number;
91
+ } & {
92
+ filterPattern?: RegExp;
93
+ processor?: (filepath: string) => void;
94
+ }): Promise<string[]>;
95
+ /**
96
+ * Get a write stream
97
+ * @param path - the gs:// url
98
+ * @returns the write stream
99
+ */
100
+ getWriteStream(path: string): Promise<Writable>;
101
+ /**
102
+ * Get a read stream
103
+ * @param path - the gs:// url
104
+ * @returns the read stream
105
+ */
106
+ getReadStream(path: string): Promise<Readable>;
107
+ }
108
+ /**
109
+ * Storage handles the storage of binary on a Google Cloud Storage bucket
110
+ *
111
+ * See Binary the general interface
112
+ * @WebdaModda GoogleCloudStorage
113
+ */
114
+ export default class Storage<T extends StorageParameters = StorageParameters> extends CloudBinary<T> {
115
+ private _storage?;
116
+ /**
117
+ * GCS client, created on first use
118
+ * @returns the GCS client
119
+ */
120
+ private get storage();
121
+ /**
122
+ * @override
123
+ * @param info - the binary map
124
+ * @returns the content stream
125
+ */
126
+ _get(info: BinaryMap): Promise<Readable>;
127
+ /**
128
+ * @override
129
+ * @param map - the binary map
130
+ * @param expires - expiration in seconds
131
+ * @param _context - the operation context
132
+ * @returns the signed url
133
+ */
134
+ getSignedUrlFromMap(map: BinaryMap, expires: number, _context: OperationContext): Promise<string>;
135
+ /**
136
+ * Get object content as a stream
137
+ * @param params - the object to read
138
+ * @param params.bucket - the bucket, default to the one predefined
139
+ * @param params.key - the object key
140
+ * @returns the content stream
141
+ */
142
+ getContent({ bucket, key }: StorageObject): Promise<Readable>;
143
+ /**
144
+ * Upload a local file to GCS bucket destination
145
+ *
146
+ * @param key - key to add to
147
+ * @param body - content of the object, a string is a local file path
148
+ * @param metadata - to put along the object
149
+ * @param bucket - to use
150
+ */
151
+ putObject(key: string, body: Readable | Buffer | string, metadata?: {}, bucket?: string): Promise<void>;
152
+ /**
153
+ * Return the Google Bucket directly
154
+ *
155
+ * @param bucket - name of the bucket default to the one predefined
156
+ * @returns the bucket
157
+ */
158
+ getStorageBucket(bucket?: string): Bucket;
159
+ /**
160
+ * @inheritdoc
161
+ * @param hash - the binary hash
162
+ * @param uuid - the object uuid
163
+ * @param property - the object property
164
+ */
165
+ _cleanUsage(hash: string, uuid: string, property?: string): Promise<void>;
166
+ /**
167
+ * @inheritdoc
168
+ * @param hash - the binary hash
169
+ * @returns the number of objects using the binary
170
+ */
171
+ getUsageCount(hash: string): Promise<number>;
172
+ /**
173
+ * @inheritdoc
174
+ * @param object - the object to attach the binary to
175
+ * @param property - the object property
176
+ * @param file - the binary to store
177
+ */
178
+ store(object: CoreModel, property: string, file: BinaryFile): Promise<void>;
179
+ /**
180
+ * Delete a file inside an existing bucket
181
+ * @param params - the object to delete
182
+ * @param params.bucket - the bucket, default to the one predefined
183
+ * @param params.key - the object key
184
+ */
185
+ deleteObject({ bucket, key }: StorageObject): Promise<void>;
186
+ /**
187
+ * Move a file from one bucket to an other
188
+ * @param source - the object to move
189
+ * @param destination - the new location
190
+ */
191
+ moveObject(source: StorageObject, destination: StorageObject): Promise<void>;
192
+ /**
193
+ * Get a signed url for the client to upload the binary directly to GCS
194
+ * @param object - the object to attach the binary to
195
+ * @param property - the object property
196
+ * @param info - the binary information (hash, challenge), read from the context if not provided
197
+ * @param context - the operation context
198
+ * @returns the upload url, undefined if the binary is already uploaded
199
+ */
200
+ putRedirectUrl(object: CoreModel, property: string, info?: BinaryFileInfo & {
201
+ hash: string;
202
+ challenge: string;
203
+ }, context?: OperationContext<any>): Promise<{
204
+ url: string;
205
+ method: string;
206
+ headers: {
207
+ [key: string]: string;
208
+ };
209
+ }>;
210
+ /**
211
+ * Retrieve one signed URL to download the file in parameter
212
+ * @param params.bucket - the bucket, default to the one predefined
213
+ * @param params.key - the object key
214
+ * @param params.expires - expiration in seconds
215
+ * @param params.action - the action allowed by the url
216
+ * @param params - the object and signature options
217
+ * @returns URL in order to download the file
218
+ */
219
+ getSignedUrl({ bucket, key, expires, action, ...params }: SignedUrlParams): Promise<string>;
220
+ /**
221
+ * Retrieve mandatory headers if needed by the cloud provider (ie. Azure)
222
+ * Returns empty object if no headers are mandatory
223
+ * @returns mandatory headers
224
+ */
225
+ getSignedUrlHeaders(): {
226
+ [key: string]: string;
227
+ };
228
+ /**
229
+ * Retrieve public URL of this object
230
+ * @param params - the object
231
+ * @param params.bucket - the bucket, default to the one predefined
232
+ * @param params.key - the object key
233
+ * @returns Public URL in order to download the file
234
+ */
235
+ getPublicUrl({ bucket, key }: StorageObject): Promise<string>;
236
+ /**
237
+ * Fetch an object's metadata
238
+ * @param params - the object
239
+ * @param params.bucket - the bucket, default to the one predefined
240
+ * @param params.key - the object key
241
+ * @returns size and content type
242
+ */
243
+ getMeta({ bucket, key }: StorageObject): Promise<StorageObjectMeta>;
244
+ /**
245
+ * Get a bucket size with a prefix
246
+ * @param bucket - the bucket, default to the one predefined
247
+ * @param prefix - on the bucket
248
+ * @param regex - to filter files
249
+ * @returns the total size and count of files
250
+ */
251
+ getBucketSize(bucket?: string, prefix?: string, regex?: RegExp): Promise<{
252
+ size: number;
253
+ count: number;
254
+ }>;
255
+ /**
256
+ * Add a usage marker for a binary
257
+ * @param hash - the binary hash
258
+ * @param uuid - the marker name: `${property}_${uuid}`
259
+ * @param model - the model identifier of the object
260
+ */
261
+ putMarker(hash: string, uuid: string, model: string): Promise<void>;
262
+ /**
263
+ * Delete every object under the prefix, used by tests
264
+ */
265
+ __clean(): Promise<void>;
266
+ }
267
+ export { Storage };
268
+ //# sourceMappingURL=storage.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.service.d.ts","sourceRoot":"","sources":["../../src/services/storage.service.ts"],"names":[],"mappings":"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"}