@webda/gcp 4.0.0-beta.2 → 4.0.0-beta.4

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 (68) hide show
  1. package/README.md +54 -4
  2. package/lib/index.d.ts +4 -4
  3. package/lib/index.d.ts.map +1 -1
  4. package/lib/index.js +4 -4
  5. package/lib/index.js.map +1 -1
  6. package/lib/services/firestore.service.d.ts +237 -0
  7. package/lib/services/firestore.service.d.ts.map +1 -0
  8. package/lib/services/firestore.service.js +693 -0
  9. package/lib/services/firestore.service.js.map +1 -0
  10. package/lib/services/index.d.ts +1 -1
  11. package/lib/services/index.d.ts.map +1 -1
  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 -15
  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 -4
  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 -16
  23. package/lib/services/queue.service.d.ts.map +1 -0
  24. package/lib/services/{queue.js → queue.service.js} +63 -32
  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} +116 -69
  29. package/lib/services/storage.service.js.map +1 -0
  30. package/package.json +33 -43
  31. package/webda.module.json +1122 -1440
  32. package/lib/index.spec.d.ts +0 -5
  33. package/lib/index.spec.d.ts.map +0 -1
  34. package/lib/index.spec.js +0 -7
  35. package/lib/index.spec.js.map +0 -1
  36. package/lib/services/firestore.d.ts +0 -135
  37. package/lib/services/firestore.d.ts.map +0 -1
  38. package/lib/services/firestore.js +0 -423
  39. package/lib/services/firestore.js.map +0 -1
  40. package/lib/services/firestore.spec.d.ts +0 -2
  41. package/lib/services/firestore.spec.d.ts.map +0 -1
  42. package/lib/services/firestore.spec.js +0 -187
  43. package/lib/services/firestore.spec.js.map +0 -1
  44. package/lib/services/kms.d.ts.map +0 -1
  45. package/lib/services/kms.js.map +0 -1
  46. package/lib/services/kms.spec.d.ts +0 -2
  47. package/lib/services/kms.spec.d.ts.map +0 -1
  48. package/lib/services/kms.spec.js +0 -53
  49. package/lib/services/kms.spec.js.map +0 -1
  50. package/lib/services/pubsub.d.ts.map +0 -1
  51. package/lib/services/pubsub.js.map +0 -1
  52. package/lib/services/pubsub.spec.d.ts +0 -2
  53. package/lib/services/pubsub.spec.d.ts.map +0 -1
  54. package/lib/services/pubsub.spec.js +0 -95
  55. package/lib/services/pubsub.spec.js.map +0 -1
  56. package/lib/services/queue.d.ts.map +0 -1
  57. package/lib/services/queue.js.map +0 -1
  58. package/lib/services/queue.spec.d.ts +0 -2
  59. package/lib/services/queue.spec.d.ts.map +0 -1
  60. package/lib/services/queue.spec.js +0 -117
  61. package/lib/services/queue.spec.js.map +0 -1
  62. package/lib/services/storage.d.ts +0 -215
  63. package/lib/services/storage.d.ts.map +0 -1
  64. package/lib/services/storage.js.map +0 -1
  65. package/lib/services/storage.spec.d.ts +0 -2
  66. package/lib/services/storage.spec.d.ts.map +0 -1
  67. package/lib/services/storage.spec.js +0 -224
  68. package/lib/services/storage.spec.js.map +0 -1
@@ -1,215 +0,0 @@
1
- import { Bucket, StorageOptions } from "@google-cloud/storage";
2
- import { BinaryFile, BinaryMap, BinaryParameters, CloudBinary, CoreModel, DeepPartial, OperationContext, StorageFinder, WebContext } from "@webda/core";
3
- import { Readable, Writable } from "node:stream";
4
- export type StorageObject = {
5
- key: string;
6
- /**
7
- * bucket is an option,
8
- * if not provided: it will get the DEFAULT_BUCKET set from environment variable
9
- */
10
- bucket?: string;
11
- };
12
- export type DownloadParams = StorageObject & {
13
- localPath: string;
14
- };
15
- export type PutObjectParams = StorageObject & {
16
- localPath?: string;
17
- content?: string | Buffer;
18
- };
19
- export type SignedUrlParams = StorageObject & {
20
- expires?: number;
21
- action: "read" | "write" | "delete";
22
- contentMd5?: string;
23
- contentType?: string;
24
- extensionHeaders?: {
25
- [key: string]: string;
26
- };
27
- responseDisposition?: string;
28
- queryParams?: {
29
- [key: string]: string;
30
- };
31
- };
32
- export type StorageObjectMeta = {
33
- size: number;
34
- contentType: string;
35
- };
36
- export declare class StorageParameters extends BinaryParameters {
37
- prefix?: string;
38
- bucket: string;
39
- /**
40
- * Specify endpoint for GCS
41
- */
42
- endpoint?: string;
43
- constructor(params: any, service: Storage);
44
- }
45
- /**
46
- * Google Storage Finder implementation
47
- */
48
- export declare class GCSFinder implements StorageFinder {
49
- private _storage;
50
- constructor(options?: StorageOptions);
51
- /**
52
- * Get info from url
53
- * @param path
54
- * @returns
55
- */
56
- getInfo(path: string): {
57
- bucket: string;
58
- key: string;
59
- };
60
- /**
61
- * Depth or options is ignored
62
- * @override
63
- */
64
- walk(path: string, processor: (filepath: string) => void, options?: {
65
- followSymlinks?: boolean;
66
- resolveSymlink?: boolean;
67
- includeDir?: boolean;
68
- maxDepth?: number;
69
- }, depth?: number): Promise<void>;
70
- /**
71
- *
72
- * @param currentPath
73
- * @param options is ignored
74
- * @returns
75
- */
76
- find(currentPath: string, options?: {
77
- includeDir?: boolean;
78
- maxDepth?: number;
79
- } & {
80
- filterPattern?: RegExp;
81
- processor?: (filepath: string) => void;
82
- }): Promise<string[]>;
83
- /**
84
- * Get a write stream
85
- * @param path
86
- * @returns
87
- */
88
- getWriteStream(path: string): Promise<Writable>;
89
- /**
90
- * Get a read stream
91
- * @param path
92
- * @returns
93
- */
94
- getReadStream(path: string): Promise<Readable>;
95
- }
96
- /**
97
- * Storage handles the storage of binary on a Google Cloud Storage bucket
98
- *
99
- * See Binary the general interface
100
- * @WebdaModda GoogleCloudStorage
101
- */
102
- export default class Storage<T extends StorageParameters = StorageParameters> extends CloudBinary<T> {
103
- private _storage?;
104
- private get storage();
105
- /**
106
- * Load the parameters
107
- *
108
- * @param params
109
- */
110
- loadParameters(params: DeepPartial<T>): StorageParameters;
111
- /**
112
- * @override
113
- */
114
- _get(info: BinaryMap): Promise<Readable>;
115
- /**
116
- * @override
117
- */
118
- getSignedUrlFromMap(map: BinaryMap, expires: number, _context: OperationContext): Promise<string>;
119
- /**
120
- * Get object content in Buffer
121
- * @param {StorageObject} params
122
- */
123
- getContent({ bucket, key }: StorageObject): Promise<Readable>;
124
- /**
125
- * Upload a local file to GCS bucket destination
126
- *
127
- * @param key to add to
128
- * @param body content of the object
129
- * @param metadatas to put along the object
130
- * @param bucket to use
131
- */
132
- putObject(key: string, body: Readable | Buffer | string, metadata?: {}, bucket?: string): Promise<void>;
133
- /**
134
- * Return the Google Bucket directly
135
- *
136
- * @param bucket name of the bucket default to the one predefined
137
- * @returns
138
- */
139
- getStorageBucket(bucket?: string): Bucket;
140
- /**
141
- * @inheritdoc
142
- */
143
- _cleanUsage(hash: string, uuid: string, property?: string): Promise<void>;
144
- /**
145
- * @inheritdoc
146
- */
147
- getUsageCount(hash: string): Promise<number>;
148
- /**
149
- * @inheritdoc
150
- */
151
- store(object: CoreModel, property: string, file: BinaryFile): Promise<void>;
152
- /**
153
- * Delete a file inside an existing bucket
154
- * @param {DeleteObjectParams} params
155
- */
156
- deleteObject({ bucket, key }: StorageObject): Promise<void>;
157
- /**
158
- * Move a file from one bucket to an other
159
- * @param {StorageObject} source
160
- * @param {StorageObject} destination
161
- */
162
- moveObject(source: StorageObject, destination: StorageObject): Promise<void>;
163
- /**
164
- * @inheritdoc
165
- */
166
- putRedirectUrl(ctx: WebContext): Promise<{
167
- url: string;
168
- method: string;
169
- headers: {
170
- [key: string]: string;
171
- };
172
- }>;
173
- /**
174
- * Retrieve one signed URL to download the file in parameter
175
- * @param {SignedUrlParams} params
176
- * @returns {string} URL in order to download the file
177
- */
178
- getSignedUrl({ bucket, key, expires, action, ...params }: SignedUrlParams): Promise<string>;
179
- /**
180
- * Retrieve mandatory headers if needed by the cloud provider (ie. Azure)
181
- * Returns empty object if no headers are mandatory
182
- * @returns {[key:string]: string} mandatory headers
183
- */
184
- getSignedUrlHeaders(): {
185
- [key: string]: string;
186
- };
187
- /**
188
- * Retrieve public URL of this object
189
- * @param {StorageModel} store
190
- * @returns {string} Public URL in order to download the file
191
- */
192
- getPublicUrl({ bucket, key }: StorageObject): Promise<string>;
193
- /**
194
- * Fetch an object's metadata
195
- * @param {StorageModel} store
196
- * @returns {any} Metadata
197
- */
198
- getMeta({ bucket, key }: StorageObject): Promise<StorageObjectMeta>;
199
- /**
200
- * Get a bucket size with a prefix
201
- * @param bucket
202
- * @param prefix on the bucket
203
- * @param regex to filter files
204
- */
205
- getBucketSize(bucket?: string, prefix?: string, regex?: RegExp): Promise<{
206
- size: number;
207
- count: number;
208
- }>;
209
- /**
210
- * @inheritdoc
211
- */
212
- putMarker(hash: string, uuid: string, storeName: string): Promise<void>;
213
- }
214
- export { Storage };
215
- //# sourceMappingURL=storage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/services/storage.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/services/storage.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=storage.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.spec.d.ts","sourceRoot":"","sources":["../../src/services/storage.spec.ts"],"names":[],"mappings":""}
@@ -1,224 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { Storage as GCS } from "@google-cloud/storage";
8
- import { suite, test } from "@testdeck/mocha";
9
- import { BinaryService, getCommonJS, RESTDomainService } from "@webda/core";
10
- import { BinaryTest } from "@webda/core/lib/services/binary.spec.js";
11
- import * as assert from "assert";
12
- import * as path from "path";
13
- import * as sinon from "sinon";
14
- import { GCSFinder, Storage } from "./storage.js";
15
- const { __dirname } = getCommonJS(import.meta.url);
16
- const BUCKET = "webda-dev";
17
- let StorageTest = class StorageTest extends BinaryTest {
18
- async before() {
19
- this.apiEndpoint = process.env["GCS_API_ENDPOINT"] || "";
20
- await this.buildWebda();
21
- await this.install();
22
- await super.before();
23
- }
24
- getBinary() {
25
- this.prefix = this.webda.getUuid();
26
- return this.addService(Storage, {
27
- bucket: "webda-dev",
28
- endpoint: this.apiEndpoint,
29
- prefix: this.prefix
30
- });
31
- }
32
- async after() {
33
- await this.cleanData();
34
- }
35
- async install() {
36
- const storage = new GCS({ apiEndpoint: this.apiEndpoint });
37
- try {
38
- const [exists] = await storage.bucket(BUCKET).exists();
39
- if (!exists) {
40
- console.log("INFO", `Google cloud storage creating bucket '${BUCKET}'`);
41
- await storage.createBucket(BUCKET, {
42
- location: "US-WEST2",
43
- storageClass: "COLDLINE"
44
- });
45
- }
46
- else {
47
- await this.cleanData();
48
- }
49
- }
50
- catch (e) {
51
- console.log("ERROR", `Google Cloud Storage error (${e.message})`);
52
- }
53
- }
54
- async cleanData() {
55
- const storage = new GCS({ apiEndpoint: this.apiEndpoint });
56
- try {
57
- const [files] = await storage.bucket(BUCKET).getFiles({
58
- prefix: this.prefix
59
- });
60
- for (const file of files) {
61
- await file.delete();
62
- }
63
- }
64
- catch (err) {
65
- console.error("Error cleaning up", err);
66
- }
67
- }
68
- // Override getNotFound as exception is raised after
69
- // @test
70
- // async getNotFound() {}
71
- async putObject() {
72
- const body = `RAW Body: ${new Date()}`;
73
- const name = `${this.prefix}/plop/test`;
74
- await this.binary.putObject(name, Buffer.from(body), { meta1: "meta1" }, BUCKET);
75
- const getFile = this.binary.getStorageBucket().file(name);
76
- assert.deepStrictEqual((await getFile.getMetadata())[0].metadata, {
77
- meta1: "meta1"
78
- });
79
- }
80
- // Override getNotFound as exception is raised after
81
- async getNotFound() { }
82
- async httpGetError() {
83
- // GET is not through classic binary
84
- // Skip it
85
- }
86
- async redirectUrl() {
87
- const { user1, ctx } = await this.setupDefault();
88
- await this.addService(RESTDomainService, {});
89
- // Making sure we are redirected on GET
90
- const executor = this.getExecutor(ctx, "test.webda.io", "GET", `${this.webda.getRouter().getModelUrl(user1)}/${user1.getUuid()}/images/0`, {});
91
- await executor.execute(ctx);
92
- assert.ok(ctx.getResponseHeaders().Location !== undefined);
93
- }
94
- async redirectUrlInfo() {
95
- const { user1, ctx } = await this.setupDefault();
96
- await this.addService(RESTDomainService, {});
97
- // Making sure we are redirected on GET
98
- const executor = this.getExecutor(ctx, "test.webda.io", "GET", `${this.webda.getRouter().getModelUrl(user1)}/${user1.getUuid()}/images/0/url`, {});
99
- await executor.execute(ctx);
100
- assert.ok(ctx.getResponseHeaders().Location === undefined);
101
- assert.notStrictEqual(JSON.parse(ctx.getResponseBody()).Location, undefined);
102
- }
103
- async cascadeDelete() {
104
- const stubDelete = sinon.stub(await this.getBinary(), "_cleanUsage").callsFake(() => {
105
- throw new Error();
106
- });
107
- try {
108
- // @ts-ignore
109
- await (await this.getBinary()).cascadeDelete({ hash: "pp" }, "pp");
110
- }
111
- finally {
112
- stubDelete.restore();
113
- }
114
- }
115
- async defaultGCS() {
116
- const { user1, ctx } = await this.setupDefault();
117
- // COV for double
118
- const binary = await this.getBinary();
119
- const from = `${this.prefix}/rawAccess`;
120
- const to = `${this.prefix}/movedAccess`;
121
- await binary.putObject(from, path.join(__dirname, "..", "..", "test", "Dockerfile.txt"));
122
- // Test GCS
123
- const finder = new GCSFinder({ apiEndpoint: this.apiEndpoint });
124
- const stub = sinon.stub();
125
- let files = await finder.find("gs://webda-dev/", { processor: stub });
126
- assert.strictEqual(stub.callCount, files.length);
127
- assert.notStrictEqual(files.length, 0);
128
- files = await finder.find(`gs://webda-dev/${this.prefix}`, { filterPattern: /rawAccess$/, processor: stub });
129
- assert.strictEqual(files.length, 1);
130
- const writer = await finder.getWriteStream(`gs://webda-dev/${this.prefix}/test.txt`);
131
- writer.write("test");
132
- const p = new Promise(resolve => {
133
- writer.on("finish", resolve);
134
- });
135
- writer.end();
136
- await p;
137
- assert.strictEqual((await BinaryService.streamToBuffer(await finder.getReadStream(`gs://webda-dev/${this.prefix}/test.txt`))).toString(), "test");
138
- assert.throws(() => finder.getInfo("s3://test/plop.txt"), /Invalid protocol path should be gs:/);
139
- //
140
- await binary.moveObject({ key: from }, { key: to });
141
- assert.deepStrictEqual(binary.getSignedUrlHeaders(), {});
142
- const meta = await binary.getMeta({ bucket: "webda-dev", key: to });
143
- assert.deepStrictEqual(meta, { size: 311, contentType: "text/plain" });
144
- const url = await binary.getPublicUrl({ key: "webda-dev" });
145
- assert.ok(/\/webda-dev\/webda-dev/.exec(url));
146
- if (this.apiEndpoint) {
147
- assert.ok(url.startsWith(this.apiEndpoint));
148
- }
149
- else {
150
- assert.ok(url.startsWith("https://storage.googleapis.com"));
151
- }
152
- await binary.deleteObject({ key: to });
153
- }
154
- /**
155
- * Overwrite the send challenge data to use GCS
156
- * @param info
157
- * @param data
158
- */
159
- async sendChallengeData(info, data) {
160
- const url = new URL(info.url);
161
- const metadata = {};
162
- Object.keys(info.headers)
163
- .filter(k => k.startsWith("x-goog-meta-"))
164
- .forEach(k => {
165
- metadata[k.substring(12)] = info.headers[k];
166
- });
167
- const file = new GCS({ apiEndpoint: this.apiEndpoint })
168
- .bucket(BUCKET)
169
- .file(url.pathname.substring(2 + BUCKET.length));
170
- await file.save(data);
171
- await file.setMetadata({ metadata: metadata });
172
- }
173
- async bucketSize() {
174
- const binary = await this.getBinary();
175
- sinon.stub(binary["storage"], "bucket").callsFake(() => {
176
- return {
177
- getFiles: ({ pageToken }) => {
178
- const res = [];
179
- const offset = pageToken ? parseInt(pageToken) : 1;
180
- for (let i = offset; i < 100 + offset; i++) {
181
- res.push({ name: `a${i}`, getMetadata: async () => [{ size: pageToken ? "20" : "100" }] });
182
- }
183
- return [res, pageToken ? { pageToken: "" } : { pageToken: "666" }];
184
- }
185
- };
186
- });
187
- assert.deepStrictEqual(await binary.getBucketSize(), {
188
- size: 12000,
189
- count: 200
190
- });
191
- assert.deepStrictEqual(await binary.getBucketSize("plop", undefined, /a1/), {
192
- size: 1200,
193
- count: 12
194
- });
195
- }
196
- };
197
- __decorate([
198
- test
199
- ], StorageTest.prototype, "putObject", null);
200
- __decorate([
201
- test
202
- ], StorageTest.prototype, "getNotFound", null);
203
- __decorate([
204
- test
205
- ], StorageTest.prototype, "httpGetError", null);
206
- __decorate([
207
- test
208
- ], StorageTest.prototype, "redirectUrl", null);
209
- __decorate([
210
- test
211
- ], StorageTest.prototype, "redirectUrlInfo", null);
212
- __decorate([
213
- test
214
- ], StorageTest.prototype, "cascadeDelete", null);
215
- __decorate([
216
- test
217
- ], StorageTest.prototype, "defaultGCS", null);
218
- __decorate([
219
- test
220
- ], StorageTest.prototype, "bucketSize", null);
221
- StorageTest = __decorate([
222
- suite
223
- ], StorageTest);
224
- //# sourceMappingURL=storage.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.spec.js","sourceRoot":"","sources":["../../src/services/storage.spec.ts"],"names":[],"mappings":"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"}