@pi-r/gcp 0.6.5 → 0.6.7
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/client/index.js +11 -8
- package/download/index.js +2 -4
- package/package.json +6 -6
- package/upload/index.js +8 -8
package/client/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
2
|
exports.getProjectId = exports.createBucketRequest = exports.setPredefinedAcl = exports.setPublicRead = exports.executeBatchQuery = exports.executeQuery = exports.deleteObjectsV2 = exports.deleteObjects = exports.setBucketWebsite = exports.setBucketPolicy = exports.createBucketV2 = exports.createBucket = exports.createDatabaseClient = exports.createStorageClient = exports.validateDatabase = exports.validateStorage = exports.isFirebaseApp = void 0;
|
|
4
3
|
const path = require("path");
|
|
5
4
|
const storage = require("@google-cloud/storage");
|
|
@@ -70,7 +69,7 @@ async function updatePredefinedAcl(acl, values, metadata = {}) {
|
|
|
70
69
|
let defaultObjectAcl;
|
|
71
70
|
({ projectNumber, defaultObjectAcl } = metadata);
|
|
72
71
|
if (projectNumber === undefined && (0, types_1.isArray)(defaultObjectAcl)) {
|
|
73
|
-
const target = defaultObjectAcl.find(item => item.projectTeam
|
|
72
|
+
const target = defaultObjectAcl.find(item => { var _a; return (_a = item.projectTeam) === null || _a === void 0 ? void 0 : _a.projectNumber; });
|
|
74
73
|
if (target !== undefined) {
|
|
75
74
|
projectNumber = target.projectTeam.projectNumber;
|
|
76
75
|
}
|
|
@@ -117,7 +116,8 @@ function validateStorage(credential) {
|
|
|
117
116
|
}
|
|
118
117
|
exports.validateStorage = validateStorage;
|
|
119
118
|
function validateDatabase(credential, data) {
|
|
120
|
-
|
|
119
|
+
var _a;
|
|
120
|
+
return (hasKeyFile(credential) || !!credential.authClient) && !!(data.product || data.database || data.table || data.query || data.id || data.keys || data.kind || ((_a = data.options) === null || _a === void 0 ? void 0 : _a.query)) || isFirebaseApp(credential);
|
|
121
121
|
}
|
|
122
122
|
exports.validateDatabase = validateDatabase;
|
|
123
123
|
function createStorageClient(credential, bucket) {
|
|
@@ -210,6 +210,7 @@ async function createBucketV2(credential, bucket, acl, options, service = 'gcp')
|
|
|
210
210
|
}
|
|
211
211
|
exports.createBucketV2 = createBucketV2;
|
|
212
212
|
async function setBucketPolicy(credential, bucket, options, service = 'gcp') {
|
|
213
|
+
var _a;
|
|
213
214
|
if (isFirebaseApp(credential, true, true)) {
|
|
214
215
|
return false;
|
|
215
216
|
}
|
|
@@ -226,7 +227,7 @@ async function setBucketPolicy(credential, bucket, options, service = 'gcp') {
|
|
|
226
227
|
case 'private':
|
|
227
228
|
case 'projectPrivate':
|
|
228
229
|
await client.makePrivate(options).catch(err => !isErrorConflict(err) && errors.push(err));
|
|
229
|
-
await setPredefinedAcl.call(this, client.acl, acl, client, '', options.bucket
|
|
230
|
+
await setPredefinedAcl.call(this, client.acl, acl, client, '', (_a = options.bucket) === null || _a === void 0 ? void 0 : _a.metadata).catch(err => errors.push(err));
|
|
230
231
|
break;
|
|
231
232
|
case 'authenticatedRead':
|
|
232
233
|
await client.makePublic(options).catch(err => !isErrorConflict(err) && errors.push(err));
|
|
@@ -367,6 +368,7 @@ async function executeQuery(credential, data, sessionKey) {
|
|
|
367
368
|
}
|
|
368
369
|
exports.executeQuery = executeQuery;
|
|
369
370
|
async function executeBatchQuery(credential, batch, sessionKey) {
|
|
371
|
+
var _a;
|
|
370
372
|
const length = batch.length;
|
|
371
373
|
const result = new Array(length);
|
|
372
374
|
const clients = [];
|
|
@@ -384,7 +386,7 @@ async function executeBatchQuery(credential, batch, sessionKey) {
|
|
|
384
386
|
};
|
|
385
387
|
const closeClient = () => {
|
|
386
388
|
const fs = clients[3];
|
|
387
|
-
fs
|
|
389
|
+
fs === null || fs === void 0 ? void 0 : fs.terminate();
|
|
388
390
|
};
|
|
389
391
|
const getFamily = (data, row, family) => {
|
|
390
392
|
const familyData = data[family];
|
|
@@ -574,7 +576,7 @@ async function executeBatchQuery(credential, batch, sessionKey) {
|
|
|
574
576
|
});
|
|
575
577
|
}
|
|
576
578
|
}
|
|
577
|
-
else if (product === 'bigquery' || !product && (!name && database && table || (0, types_1.isString)(query) || (0, types_1.isString)(item.options
|
|
579
|
+
else if (product === 'bigquery' || !product && (!name && database && table || (0, types_1.isString)(query) || (0, types_1.isString)((_a = item.options) === null || _a === void 0 ? void 0 : _a.query))) {
|
|
578
580
|
const { params, options = {} } = item;
|
|
579
581
|
if ((0, types_1.isString)(query)) {
|
|
580
582
|
options.query = query;
|
|
@@ -792,6 +794,7 @@ function setPublicRead(acl, pathname, requested, service = 'gcp') {
|
|
|
792
794
|
}
|
|
793
795
|
exports.setPublicRead = setPublicRead;
|
|
794
796
|
async function setPredefinedAcl(target, value, bucket, pathname = '', metadata = {}, requested = true, service = 'gcp') {
|
|
797
|
+
var _a;
|
|
795
798
|
let revoke;
|
|
796
799
|
if (metadata === true) {
|
|
797
800
|
revoke = true;
|
|
@@ -806,7 +809,7 @@ async function setPredefinedAcl(target, value, bucket, pathname = '', metadata =
|
|
|
806
809
|
items = [{ entity: 'allUsers' }, { entity: 'allAuthenticatedUsers', role: revoke ? undefined : 'READER' }];
|
|
807
810
|
break;
|
|
808
811
|
default: {
|
|
809
|
-
const owner = metadata.owner
|
|
812
|
+
const owner = (_a = metadata.owner) === null || _a === void 0 ? void 0 : _a.entity;
|
|
810
813
|
let acl = metadata.acl;
|
|
811
814
|
if ((0, types_1.isArray)(acl)) {
|
|
812
815
|
items = [];
|
|
@@ -864,7 +867,7 @@ async function setPredefinedAcl(target, value, bucket, pathname = '', metadata =
|
|
|
864
867
|
this.formatMessage(64, service, [`Unable to ${revoke ? 'revoke' : 'grant'} ` + value, bucket && pathname ? bucket.name + '/' + pathname : bucket ? bucket.name : pathname], errors[0], { ...Cloud.LOG_CLOUD_WARN });
|
|
865
868
|
}
|
|
866
869
|
else if (requested && (bucket || pathname)) {
|
|
867
|
-
this.formatMessage(64, service, [(revoke ? 'Revoke' : 'Grant') + ' ' + value, bucket
|
|
870
|
+
this.formatMessage(64, service, [(revoke ? 'Revoke' : 'Grant') + ' ' + value, bucket === null || bucket === void 0 ? void 0 : bucket.name], pathname, { ...Cloud.LOG_CLOUD_COMMAND });
|
|
868
871
|
}
|
|
869
872
|
});
|
|
870
873
|
}
|
package/download/index.js
CHANGED
|
@@ -6,7 +6,7 @@ const types_1 = require("@e-mc/types");
|
|
|
6
6
|
const Module = require("@e-mc/module");
|
|
7
7
|
const Cloud = require("@e-mc/cloud");
|
|
8
8
|
const client_1 = require("@pi-r/gcp");
|
|
9
|
-
function download(credential, service = 'gcp') {
|
|
9
|
+
module.exports = function download(credential, service = 'gcp') {
|
|
10
10
|
const storage = client_1.createStorageClient.call(this, credential);
|
|
11
11
|
return (data, callback) => {
|
|
12
12
|
const { bucket: Bucket, download: target } = data;
|
|
@@ -76,6 +76,4 @@ function download(credential, service = 'gcp') {
|
|
|
76
76
|
.catch(err => downloadResponse(err));
|
|
77
77
|
}
|
|
78
78
|
};
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
module.exports = download;
|
|
79
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-r/gcp",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.7",
|
|
4
4
|
"description": "Google (GCP) cloud functions for E-mc.",
|
|
5
5
|
"main": "client/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -20,10 +20,10 @@
|
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"homepage": "https://github.com/anpham6/pi-r#readme",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@e-mc/cloud": "^0.8.
|
|
24
|
-
"@e-mc/module": "^0.8.
|
|
25
|
-
"@e-mc/types": "^0.8.
|
|
26
|
-
"@google-cloud/firestore": "^7.
|
|
27
|
-
"@google-cloud/storage": "^7.
|
|
23
|
+
"@e-mc/cloud": "^0.8.8",
|
|
24
|
+
"@e-mc/module": "^0.8.8",
|
|
25
|
+
"@e-mc/types": "^0.8.8",
|
|
26
|
+
"@google-cloud/firestore": "^7.6.0",
|
|
27
|
+
"@google-cloud/storage": "^7.9.0"
|
|
28
28
|
}
|
|
29
29
|
}
|
package/upload/index.js
CHANGED
|
@@ -8,10 +8,11 @@ const client_1 = require("@pi-r/gcp");
|
|
|
8
8
|
const BUCKET_SESSION = new Set();
|
|
9
9
|
const BUCKET_RESPONSE = {};
|
|
10
10
|
const getBucketKey = (credential, bucket, acl = '') => Module.asString(credential, true) + bucket + '_' + acl;
|
|
11
|
-
function upload(credential, service = 'gcp') {
|
|
11
|
+
module.exports = function upload(credential, service = 'gcp') {
|
|
12
12
|
const storage = client_1.createStorageClient.call(this, credential);
|
|
13
13
|
return async (data, callback) => {
|
|
14
14
|
var _a;
|
|
15
|
+
var _b;
|
|
15
16
|
const firebase = (0, client_1.isFirebaseApp)(credential, true, true);
|
|
16
17
|
const { bucket, localUri } = data;
|
|
17
18
|
const { pathname = '', fileGroup, contentType, metadata, endpoint, active, publicRead, acl, admin = {}, overwrite, options } = data.upload;
|
|
@@ -43,7 +44,7 @@ function upload(credential, service = 'gcp') {
|
|
|
43
44
|
const configBucket = admin.configBucket;
|
|
44
45
|
if (!BUCKET_SESSION.has(bucket)) {
|
|
45
46
|
const bucketAcl = admin.publicRead ? 'publicRead' : admin.acl;
|
|
46
|
-
const response = BUCKET_RESPONSE[
|
|
47
|
+
const response = BUCKET_RESPONSE[_b = bucketKey = getBucketKey(credential, bucket, bucketAcl)] || (BUCKET_RESPONSE[_b] = client_1.createBucketV2.call(this, credential, bucket, bucketAcl, (configBucket === null || configBucket === void 0 ? void 0 : configBucket.create) || (0, client_1.createBucketRequest)(credential)));
|
|
47
48
|
if (!await response) {
|
|
48
49
|
uploadResponse(null);
|
|
49
50
|
return;
|
|
@@ -51,11 +52,12 @@ function upload(credential, service = 'gcp') {
|
|
|
51
52
|
BUCKET_SESSION.add(bucket);
|
|
52
53
|
}
|
|
53
54
|
bucketClient = storage.bucket(bucket);
|
|
54
|
-
const retentionPolicy = configBucket
|
|
55
|
+
const retentionPolicy = configBucket === null || configBucket === void 0 ? void 0 : configBucket.retentionPolicy;
|
|
55
56
|
if (typeof retentionPolicy === 'number') {
|
|
56
57
|
bucketClient.setRetentionPeriod(retentionPolicy)
|
|
57
58
|
.then(([response]) => {
|
|
58
|
-
|
|
59
|
+
var _a;
|
|
60
|
+
this.formatMessage(64, service, ["Bucket configured" + ' (retention policy)', bucket], (_a = response.retentionPolicy) === null || _a === void 0 ? void 0 : _a.effectiveTime, { ...Cloud.LOG_CLOUD_COMMAND });
|
|
59
61
|
})
|
|
60
62
|
.catch(err => addLog(err));
|
|
61
63
|
}
|
|
@@ -167,7 +169,7 @@ function upload(credential, service = 'gcp') {
|
|
|
167
169
|
params.predefinedAcl = acl;
|
|
168
170
|
}
|
|
169
171
|
}
|
|
170
|
-
params.resumable
|
|
172
|
+
(_a = params.resumable) !== null && _a !== void 0 ? _a : (params.resumable = false);
|
|
171
173
|
const file = bucketClient.file(destination);
|
|
172
174
|
file.save(Body[i], params).then(async () => {
|
|
173
175
|
const url = getURL(file.name);
|
|
@@ -190,6 +192,4 @@ function upload(credential, service = 'gcp') {
|
|
|
190
192
|
}
|
|
191
193
|
}
|
|
192
194
|
};
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
module.exports = upload;
|
|
195
|
+
};
|