@culturehq/client
Advanced tools
Comparing version 14.3.0 to 14.3.1
@@ -9,2 +9,8 @@ # Changelog | ||
## [14.3.1] - 2025-01-09 | ||
### Changed | ||
- Fixing issues with previous versions | ||
## [14.3.0] - 2025-01-09 | ||
@@ -11,0 +17,0 @@ |
@@ -10,7 +10,7 @@ "use strict"; | ||
awsAccessKeyId: "AKIAIPWT257FWZ5I4ZGQ", | ||
signerURL: "https://production-upload-signer.culturehq.com/production/signature", | ||
signerAuthToken: "SIGNER-AUTH-TOKEN", | ||
uploadBucket: "https://culturehq-direct-uploads.s3-us-west-2.amazonaws.com", | ||
AWSAccessKey: "AWS-KEY", | ||
AWSSecretAccessKey: "AWS-SECRET" | ||
signerURL: "https://fyzqa1okfe.execute-api.us-west-2.amazonaws.com/production/signature", | ||
// TODO | ||
// signerURL: "https://production-upload-signer.culturehq.com/production/signature", | ||
// signerAuthToken: "SIGNER-AUTH-TOKEN", | ||
uploadBucket: "https://culturehq-direct-uploads.s3-us-west-2.amazonaws.com" | ||
}; | ||
@@ -17,0 +17,0 @@ |
@@ -8,4 +8,2 @@ "use strict"; | ||
var _clientS = require("@aws-sdk/client-s3"); | ||
var _config = _interopRequireDefault(require("./config")); | ||
@@ -36,70 +34,39 @@ | ||
var signUpload = function signUpload(file, onProgress) { | ||
var folderPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined; | ||
return new Promise(function (resolve, reject) { | ||
return fetch(_config["default"].signerURL).then(function (response) { | ||
return response.json(); | ||
}).then(function (_ref) { | ||
var policy = _ref.policy, | ||
signature = _ref.signature, | ||
key = _ref.key; | ||
var xhr = new XMLHttpRequest(); | ||
xhr.open("POST", "".concat(_config["default"].uploadBucket, "/")); | ||
xhr.upload.addEventListener("load", function (event) { | ||
if (event.type === "error") { | ||
reject(event); | ||
} else { | ||
resolve("".concat(_config["default"].uploadBucket, "/").concat(key)); | ||
} | ||
}); | ||
xhr.upload.addEventListener("error", reject); | ||
if (_config["default"].uploadBucket !== "https://culturehq-direct-uploads-eu.s3-eu-west-2.amazonaws.com") { | ||
return new Promise(function (resolve, reject) { | ||
return fetch(_config["default"].signerURL).then(function (response) { | ||
return response.json(); | ||
}).then(function (_ref) { | ||
var policy = _ref.policy, | ||
signature = _ref.signature, | ||
key = _ref.key; | ||
var xhr = new XMLHttpRequest(); | ||
xhr.open("POST", "".concat(_config["default"].uploadBucket, "/")); | ||
xhr.upload.addEventListener("load", function (event) { | ||
if (event.type === "error") { | ||
reject(event); | ||
} else { | ||
resolve("".concat(_config["default"].uploadBucket, "/").concat(key)); | ||
} | ||
if (onProgress) { | ||
xhr.upload.addEventListener("progress", function (_ref2) { | ||
var loaded = _ref2.loaded, | ||
total = _ref2.total; | ||
onProgress(total === 0 ? 100 : Math.ceil(loaded / total * 100)); | ||
}); | ||
xhr.upload.addEventListener("error", reject); | ||
} | ||
if (onProgress) { | ||
xhr.upload.addEventListener("progress", function (_ref2) { | ||
var loaded = _ref2.loaded, | ||
total = _ref2.total; | ||
onProgress(total === 0 ? 100 : Math.ceil(loaded / total * 100)); | ||
}); | ||
} | ||
xhr.send((0, _formData["default"])({ | ||
key: key, | ||
AWSAccessKeyId: _config["default"].awsAccessKeyId, | ||
acl: "public-read", | ||
policy: policy, | ||
signature: signature, | ||
success_action_status: "201", | ||
"Content-Type": file.type, | ||
file: file | ||
})); | ||
})["catch"](reject); | ||
}); | ||
} | ||
var s3Client = new _clientS.S3Client({ | ||
region: "eu-west-2", | ||
credentials: { | ||
accessKeyId: _config["default"].AWSAccessKey, | ||
secretAccessKey: _config["default"].AWSSecretAccessKey | ||
} | ||
}); // Construct the S3 object key | ||
var objectKey = folderPath ? "".concat(folderPath, "/").concat(file.name) : file.name; // Create a PutObjectCommand to upload the file to S3 | ||
var uploadParams = { | ||
Bucket: _config["default"].bucketName, | ||
Key: objectKey, | ||
Body: file | ||
}; | ||
return new Promise(function (resolve, reject) { | ||
s3Client.send(new _clientS.PutObjectCommand(uploadParams)).then(function (response) { | ||
// eslint-disable-next-line no-console | ||
console.error("File uploaded", response); | ||
resolve(response); | ||
})["catch"](function (error) { | ||
// eslint-disable-next-line no-console | ||
console.error("File upload error:", error); | ||
reject(error); | ||
}); | ||
xhr.send((0, _formData["default"])({ | ||
key: key, | ||
AWSAccessKeyId: _config["default"].awsAccessKeyId, | ||
acl: "public-read", | ||
policy: policy, | ||
signature: signature, | ||
success_action_status: "201", | ||
"Content-Type": file.type, | ||
file: file | ||
})); | ||
})["catch"](reject); | ||
}); | ||
@@ -106,0 +73,0 @@ }; |
{ | ||
"name": "@culturehq/client", | ||
"version": "14.3.0", | ||
"version": "14.3.1", | ||
"description": "A JavaScript client that wraps the CultureHQ API", | ||
@@ -23,3 +23,2 @@ "main": "dist/client.js", | ||
"dependencies": { | ||
"@aws-sdk/client-s3": "^3.405.0", | ||
"@rails/actioncable": "^7.0.0" | ||
@@ -26,0 +25,0 @@ }, |
const config = { | ||
apiHost: "https://api.culturehq.com", | ||
awsAccessKeyId: "AKIAIPWT257FWZ5I4ZGQ", | ||
signerURL: "https://production-upload-signer.culturehq.com/production/signature", | ||
signerAuthToken: "SIGNER-AUTH-TOKEN", | ||
uploadBucket: "https://culturehq-direct-uploads.s3-us-west-2.amazonaws.com", | ||
AWSAccessKey: "AWS-KEY", | ||
AWSSecretAccessKey: "AWS-SECRET" | ||
signerURL: "https://fyzqa1okfe.execute-api.us-west-2.amazonaws.com/production/signature", | ||
// TODO | ||
// signerURL: "https://production-upload-signer.culturehq.com/production/signature", | ||
// signerAuthToken: "SIGNER-AUTH-TOKEN", | ||
uploadBucket: "https://culturehq-direct-uploads.s3-us-west-2.amazonaws.com" | ||
}; | ||
@@ -10,0 +10,0 @@ |
@@ -1,3 +0,1 @@ | ||
import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3"; | ||
import config from "./config"; | ||
@@ -23,76 +21,43 @@ import formData from "./formData"; | ||
/* eslint-disable no-promise-executor-return */ | ||
const signUpload = (file, onProgress, folderPath = undefined) => { | ||
if (config.uploadBucket !== "https://culturehq-direct-uploads-eu.s3-eu-west-2.amazonaws.com") { | ||
return new Promise((resolve, reject) => ( | ||
fetch(config.signerURL) | ||
.then(response => response.json()) | ||
.then(({ policy, signature, key }) => { | ||
const xhr = new XMLHttpRequest(); | ||
xhr.open("POST", `${config.uploadBucket}/`); | ||
const signUpload = (file, onProgress) => ( | ||
new Promise((resolve, reject) => ( | ||
fetch(config.signerURL) | ||
.then(response => response.json()) | ||
.then(({ policy, signature, key }) => { | ||
const xhr = new XMLHttpRequest(); | ||
xhr.open("POST", `${config.uploadBucket}/`); | ||
xhr.upload.addEventListener("load", event => { | ||
if (event.type === "error") { | ||
reject(event); | ||
} else { | ||
resolve(`${config.uploadBucket}/${key}`); | ||
} | ||
}); | ||
xhr.upload.addEventListener("error", reject); | ||
if (onProgress) { | ||
xhr.upload.addEventListener("progress", ({ loaded, total }) => { | ||
onProgress(total === 0 ? 100 : Math.ceil((loaded / total) * 100)); | ||
}); | ||
xhr.upload.addEventListener("load", event => { | ||
if (event.type === "error") { | ||
reject(event); | ||
} else { | ||
resolve(`${config.uploadBucket}/${key}`); | ||
} | ||
}); | ||
xhr.send( | ||
formData({ | ||
key, | ||
AWSAccessKeyId: config.awsAccessKeyId, | ||
acl: "public-read", | ||
policy, | ||
signature, | ||
success_action_status: "201", | ||
"Content-Type": file.type, | ||
file | ||
}) | ||
); | ||
}) | ||
.catch(reject) | ||
)); | ||
} | ||
xhr.upload.addEventListener("error", reject); | ||
const s3Client = new S3Client({ | ||
region: "eu-west-2", | ||
credentials: { | ||
accessKeyId: config.AWSAccessKey, | ||
secretAccessKey: config.AWSSecretAccessKey | ||
} | ||
}); | ||
if (onProgress) { | ||
xhr.upload.addEventListener("progress", ({ loaded, total }) => { | ||
onProgress(total === 0 ? 100 : Math.ceil((loaded / total) * 100)); | ||
}); | ||
} | ||
// Construct the S3 object key | ||
const objectKey = folderPath ? `${folderPath}/${file.name}` : file.name; | ||
xhr.send( | ||
formData({ | ||
key, | ||
AWSAccessKeyId: config.awsAccessKeyId, | ||
acl: "public-read", | ||
policy, | ||
signature, | ||
success_action_status: "201", | ||
"Content-Type": file.type, | ||
file | ||
}) | ||
); | ||
}) | ||
.catch(reject) | ||
)) | ||
); | ||
// Create a PutObjectCommand to upload the file to S3 | ||
const uploadParams = { | ||
Bucket: config.bucketName, | ||
Key: objectKey, | ||
Body: file | ||
}; | ||
return new Promise((resolve, reject) => { | ||
s3Client.send(new PutObjectCommand(uploadParams)) | ||
.then(response => { | ||
// eslint-disable-next-line no-console | ||
console.error("File uploaded", response); | ||
resolve(response); | ||
}).catch(error => { | ||
// eslint-disable-next-line no-console | ||
console.error("File upload error:", error); | ||
reject(error); | ||
}); | ||
}); | ||
}; | ||
export default signUpload; | ||
export default signUpload; |
1
180657
2499
- Removed@aws-sdk/client-s3@^3.405.0
- Removed@aws-crypto/crc32@5.2.0(transitive)
- Removed@aws-crypto/crc32c@5.2.0(transitive)
- Removed@aws-crypto/sha256-browser@5.2.0(transitive)
- Removed@aws-crypto/sha256-js@5.2.0(transitive)
- Removed@aws-crypto/supports-web-crypto@5.2.0(transitive)
- Removed@aws-crypto/util@5.2.0(transitive)
- Removed@aws-sdk/client-s3@3.744.0(transitive)
- Removed@aws-sdk/client-sso@3.744.0(transitive)
- Removed@aws-sdk/core@3.744.0(transitive)
- Removed@aws-sdk/credential-provider-env@3.744.0(transitive)
- Removed@aws-sdk/credential-provider-http@3.744.0(transitive)
- Removed@aws-sdk/credential-provider-ini@3.744.0(transitive)
- Removed@aws-sdk/credential-provider-node@3.744.0(transitive)
- Removed@aws-sdk/credential-provider-process@3.744.0(transitive)
- Removed@aws-sdk/credential-provider-sso@3.744.0(transitive)
- Removed@aws-sdk/credential-provider-web-identity@3.744.0(transitive)
- Removed@aws-sdk/middleware-bucket-endpoint@3.734.0(transitive)
- Removed@aws-sdk/middleware-expect-continue@3.734.0(transitive)
- Removed@aws-sdk/middleware-flexible-checksums@3.744.0(transitive)
- Removed@aws-sdk/middleware-host-header@3.734.0(transitive)
- Removed@aws-sdk/middleware-location-constraint@3.734.0(transitive)
- Removed@aws-sdk/middleware-logger@3.734.0(transitive)
- Removed@aws-sdk/middleware-recursion-detection@3.734.0(transitive)
- Removed@aws-sdk/middleware-sdk-s3@3.744.0(transitive)
- Removed@aws-sdk/middleware-ssec@3.734.0(transitive)
- Removed@aws-sdk/middleware-user-agent@3.744.0(transitive)
- Removed@aws-sdk/nested-clients@3.744.0(transitive)
- Removed@aws-sdk/region-config-resolver@3.734.0(transitive)
- Removed@aws-sdk/signature-v4-multi-region@3.744.0(transitive)
- Removed@aws-sdk/token-providers@3.744.0(transitive)
- Removed@aws-sdk/types@3.734.0(transitive)
- Removed@aws-sdk/util-arn-parser@3.723.0(transitive)
- Removed@aws-sdk/util-endpoints@3.743.0(transitive)
- Removed@aws-sdk/util-locate-window@3.723.0(transitive)
- Removed@aws-sdk/util-user-agent-browser@3.734.0(transitive)
- Removed@aws-sdk/util-user-agent-node@3.744.0(transitive)
- Removed@aws-sdk/xml-builder@3.734.0(transitive)
- Removed@smithy/abort-controller@4.0.1(transitive)
- Removed@smithy/chunked-blob-reader@5.0.0(transitive)
- Removed@smithy/chunked-blob-reader-native@4.0.0(transitive)
- Removed@smithy/config-resolver@4.0.1(transitive)
- Removed@smithy/core@3.1.2(transitive)
- Removed@smithy/credential-provider-imds@4.0.1(transitive)
- Removed@smithy/eventstream-codec@4.0.1(transitive)
- Removed@smithy/eventstream-serde-browser@4.0.1(transitive)
- Removed@smithy/eventstream-serde-config-resolver@4.0.1(transitive)
- Removed@smithy/eventstream-serde-node@4.0.1(transitive)
- Removed@smithy/eventstream-serde-universal@4.0.1(transitive)
- Removed@smithy/fetch-http-handler@5.0.1(transitive)
- Removed@smithy/hash-blob-browser@4.0.1(transitive)
- Removed@smithy/hash-node@4.0.1(transitive)
- Removed@smithy/hash-stream-node@4.0.1(transitive)
- Removed@smithy/invalid-dependency@4.0.1(transitive)
- Removed@smithy/is-array-buffer@2.2.04.0.0(transitive)
- Removed@smithy/md5-js@4.0.1(transitive)
- Removed@smithy/middleware-content-length@4.0.1(transitive)
- Removed@smithy/middleware-endpoint@4.0.3(transitive)
- Removed@smithy/middleware-retry@4.0.4(transitive)
- Removed@smithy/middleware-serde@4.0.2(transitive)
- Removed@smithy/middleware-stack@4.0.1(transitive)
- Removed@smithy/node-config-provider@4.0.1(transitive)
- Removed@smithy/node-http-handler@4.0.2(transitive)
- Removed@smithy/property-provider@4.0.1(transitive)
- Removed@smithy/protocol-http@5.0.1(transitive)
- Removed@smithy/querystring-builder@4.0.1(transitive)
- Removed@smithy/querystring-parser@4.0.1(transitive)
- Removed@smithy/service-error-classification@4.0.1(transitive)
- Removed@smithy/shared-ini-file-loader@4.0.1(transitive)
- Removed@smithy/signature-v4@5.0.1(transitive)
- Removed@smithy/smithy-client@4.1.3(transitive)
- Removed@smithy/types@4.1.0(transitive)
- Removed@smithy/url-parser@4.0.1(transitive)
- Removed@smithy/util-base64@4.0.0(transitive)
- Removed@smithy/util-body-length-browser@4.0.0(transitive)
- Removed@smithy/util-body-length-node@4.0.0(transitive)
- Removed@smithy/util-buffer-from@2.2.04.0.0(transitive)
- Removed@smithy/util-config-provider@4.0.0(transitive)
- Removed@smithy/util-defaults-mode-browser@4.0.4(transitive)
- Removed@smithy/util-defaults-mode-node@4.0.4(transitive)
- Removed@smithy/util-endpoints@3.0.1(transitive)
- Removed@smithy/util-hex-encoding@4.0.0(transitive)
- Removed@smithy/util-middleware@4.0.1(transitive)
- Removed@smithy/util-retry@4.0.1(transitive)
- Removed@smithy/util-stream@4.0.2(transitive)
- Removed@smithy/util-uri-escape@4.0.0(transitive)
- Removed@smithy/util-utf8@2.3.04.0.0(transitive)
- Removed@smithy/util-waiter@4.0.2(transitive)
- Removedbowser@2.11.0(transitive)
- Removedfast-xml-parser@4.4.1(transitive)
- Removedstrnum@1.0.5(transitive)
- Removedtslib@2.8.1(transitive)
- Removeduuid@9.0.1(transitive)