New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@shoutem/assets-sdk

Package Overview
Dependencies
Maintainers
4
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@shoutem/assets-sdk - npm Package Compare versions

Comparing version 0.0.1-beta.1 to 0.0.1

build/asset-manager/_tests_/AssetManager.spec.js

129

build/asset-manager/AssetManager.js

@@ -9,34 +9,137 @@ 'use strict';

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _urijs = require('urijs');
var _urijs2 = _interopRequireDefault(_urijs);
var _AbstractAssetManager2 = require('./AbstractAssetManager');
var _AbstractAssetManager3 = _interopRequireDefault(_AbstractAssetManager2);
var _services = require('./services');
var services = _interopRequireWildcard(_services);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var AssetManager = function () {
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
function validateConfig(config) {
var mandatoryProperties = ['assetPolicyHost', 'scopeType', 'scopeId'];
_lodash2.default.forEach(mandatoryProperties, function (property) {
if (!_lodash2.default.has(config, property)) {
throw new Error('Cannot create AssetManager. Missing required config property: \'' + property + '\'');
}
});
}
function generatePolicyEndpoint(assetPolicyHost) {
return new _urijs2.default(assetPolicyHost).segment(['v1', 'asset-policies']).toString();
}
function generateHeaders() {
var headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return _extends({
Accept: 'application/vnd.api+json',
'Content-Type': 'application/vnd.api+json'
}, headers);
}
function createBody(attributes) {
return JSON.stringify({
data: {
type: 'shoutem.core.asset-policies',
attributes: attributes
}
});
}
var AssetManager = function (_AbstractAssetManager) {
_inherits(AssetManager, _AbstractAssetManager);
function AssetManager(config) {
_classCallCheck(this, AssetManager);
this.config = config;
var _this = _possibleConstructorReturn(this, (AssetManager.__proto__ || Object.getPrototypeOf(AssetManager)).call(this, config));
validateConfig(config);
_this.policyEndpoint = generatePolicyEndpoint(_this.config.assetPolicyHost);
return _this;
}
// eslint-disable-next-line no-unused-vars
_createClass(AssetManager, [{
key: 'signRequest',
value: function signRequest(path, body, reject) {
var _config = this.config,
scopeType = _config.scopeType,
scopeId = _config.scopeId,
headers = _config.headers;
_createClass(AssetManager, [{
var options = {
method: 'POST',
headers: generateHeaders(headers),
body: createBody(_extends({
scopeType: scopeType,
scopeId: scopeId,
path: path
}, body))
};
return fetch(this.policyEndpoint, options).then(function (res) {
return res.json();
}, reject).then(function (json) {
return Promise.resolve(json.data.attributes.signedRequest);
}, reject);
}
}, {
key: 'uploadFile',
value: function uploadFile(path, file) {
throw new Error('AssetManager.uploadFile not implemented!');
}
var _this2 = this;
// eslint-disable-next-line no-unused-vars
return new Promise(function (resolve, reject) {
_this2.signRequest(path, { action: 'upload', contentType: file.type }, reject).then(function (signedRequest) {
var endpoint = signedRequest.endpoint,
formData = signedRequest.formData;
services.uploadFile(file, endpoint, formData).then(function () {
var filePath = new _urijs2.default(endpoint).segment(formData.key).toString();
return resolve(filePath);
}, reject);
}, reject);
});
}
}, {
key: 'listFolder',
value: function listFolder(path) {
throw new Error('AssetManager.listFolder not implemented!');
var _this3 = this;
return new Promise(function (resolve, reject) {
_this3.signRequest(path, { action: 'list' }, reject).then(function (signedRequest) {
return resolve(services.listFolder(signedRequest.url));
}, reject);
});
}
// eslint-disable-next-line no-unused-vars
}, {
key: 'deleteFile',
value: function deleteFile(path) {
throw new Error('AssetManager.deleteFile not implemented');
var _this4 = this;
return new Promise(function (resolve, reject) {
_this4.signRequest(path, { action: 'delete' }, reject).then(function (signedRequest) {
return resolve(services.deleteFile(signedRequest.url));
}, reject);
});
}

@@ -46,4 +149,4 @@ }]);

return AssetManager;
}();
}(_AbstractAssetManager3.default);
exports.default = AssetManager;

14

build/asset-manager/index.js

@@ -6,4 +6,8 @@ 'use strict';

});
exports.S3AssetManager = exports.AssetManager = undefined;
exports.AssetManager = exports.AbstractAssetManager = undefined;
var _AbstractAssetManager = require('./AbstractAssetManager');
var _AbstractAssetManager2 = _interopRequireDefault(_AbstractAssetManager);
var _AssetManager = require('./AssetManager');

@@ -13,9 +17,5 @@

var _S3AssetManager = require('./s3/S3AssetManager');
var _S3AssetManager2 = _interopRequireDefault(_S3AssetManager);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.AssetManager = _AssetManager2.default;
exports.S3AssetManager = _S3AssetManager2.default;
exports.AbstractAssetManager = _AbstractAssetManager2.default;
exports.AssetManager = _AssetManager2.default;

@@ -91,3 +91,5 @@ 'use strict';

var uriScopeId = uriSegments[remotePathPrefixSegmentLength + 1];
// scope ID is located after scope type
var uriScopeIdSegmentIndex = remotePathPrefixSegmentLength + 1;
var uriScopeId = uriSegments[uriScopeIdSegmentIndex];
var scopeIdStr = '' + scopeId;

@@ -98,3 +100,5 @@ if (scopeIdStr !== uriScopeId) {

var segmentsWithoutScopeTypeId = uriSegments.slice(remotePathPrefixSegmentLength + 2);
// relative path is located after scope type and scope ID
var uriRelativePathSegmentStartIndex = remotePathPrefixSegmentLength + 2;
var segmentsWithoutScopeTypeId = uriSegments.slice(uriRelativePathSegmentStartIndex);

@@ -101,0 +105,0 @@ return new _urijs2.default().protocol(_const.assetSchema).host(uriScopeType).segment(segmentsWithoutScopeTypeId).normalize().toString();

@@ -6,7 +6,10 @@ 'use strict';

});
exports.S3AssetManager = exports.AssetManager = undefined;
exports.AssetUriTransformer = exports.AssetManager = exports.AbstractAssetManager = undefined;
var _assetManager = require('./asset-manager');
var _assetUriTransformer = require('./asset-uri-transformer');
exports.AbstractAssetManager = _assetManager.AbstractAssetManager;
exports.AssetManager = _assetManager.AssetManager;
exports.S3AssetManager = _assetManager.S3AssetManager;
exports.AssetUriTransformer = _assetUriTransformer.AssetUriTransformer;
{
"name": "@shoutem/assets-sdk",
"version": "0.0.1-beta.1",
"version": "0.0.1",
"files": [

@@ -5,0 +5,0 @@ "build"

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc