storyblok-js-client
Advanced tools
Comparing version 1.0.34 to 1.0.35
@@ -5,6 +5,14 @@ 'use strict'; | ||
var _parseInt2 = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/parse-int")); | ||
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise")); | ||
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator")); | ||
var _parseInt2 = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/parse-int")); | ||
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/toConsumableArray")); | ||
var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values")); | ||
require("core-js/modules/es6.regexp.split"); | ||
require("regenerator-runtime/runtime"); | ||
@@ -20,4 +28,2 @@ | ||
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise")); | ||
var qs = require('qs'); | ||
@@ -29,8 +35,2 @@ | ||
var delay = function delay(ms) { | ||
return new _promise.default(function (res) { | ||
return setTimeout(res, ms); | ||
}); | ||
}; | ||
var RichTextResolver = require('./richTextResolver'); | ||
@@ -40,2 +40,7 @@ | ||
var _require = require('./helpers'), | ||
delay = _require.delay, | ||
getOptionsPage = _require.getOptionsPage, | ||
isCDNUrl = _require.isCDNUrl; | ||
var Storyblok = | ||
@@ -100,23 +105,114 @@ /*#__PURE__*/ | ||
}, { | ||
key: "parseParams", | ||
value: function parseParams() { | ||
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
if (!params.version) { | ||
params.version = 'published'; | ||
} | ||
if (!params.cv) { | ||
params.cv = this.cacheVersion; | ||
} | ||
if (!params.token) { | ||
params.token = this.getToken(); | ||
} | ||
return params; | ||
} | ||
}, { | ||
key: "factoryParamOptions", | ||
value: function factoryParamOptions(url) { | ||
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | ||
if (isCDNUrl(url)) { | ||
return this.parseParams(params); | ||
} | ||
return params; | ||
} | ||
}, { | ||
key: "makeRequest", | ||
value: function makeRequest(url, params, per_page, page) { | ||
var options = this.factoryParamOptions(url, getOptionsPage(params, per_page, page)); | ||
return this.cacheResponse(url, options); | ||
} | ||
}, { | ||
key: "get", | ||
value: function get(slug, params) { | ||
var query = params || {}; | ||
var url = "/".concat(slug); | ||
var query = this.factoryParamOptions(url, params); | ||
return this.cacheResponse(url, query); | ||
} | ||
}, { | ||
key: "getAll", | ||
value: function () { | ||
var _getAll = (0, _asyncToGenerator2.default)( | ||
/*#__PURE__*/ | ||
_regenerator.default.mark(function _callee(slug) { | ||
var params, | ||
entity, | ||
perPage, | ||
page, | ||
url, | ||
urlParts, | ||
res, | ||
all, | ||
total, | ||
lastPage, | ||
_args = arguments; | ||
return _regenerator.default.wrap(function _callee$(_context) { | ||
while (1) { | ||
switch (_context.prev = _context.next) { | ||
case 0: | ||
params = _args.length > 1 && _args[1] !== undefined ? _args[1] : {}; | ||
entity = _args.length > 2 ? _args[2] : undefined; | ||
perPage = params.per_page || 25; | ||
page = 1; | ||
url = "/".concat(slug); | ||
urlParts = url.split('/'); | ||
entity = entity || urlParts[urlParts.length - 1]; | ||
_context.next = 9; | ||
return this.makeRequest(url, params, perPage, page); | ||
if (url.indexOf('/cdn/') > -1) { | ||
if (!query.version) { | ||
query.version = 'published'; | ||
} | ||
case 9: | ||
res = _context.sent; | ||
all = (0, _values.default)(res.data[entity]); | ||
total = res.total; | ||
lastPage = Math.ceil(total / perPage); | ||
if (!query.cv) { | ||
query.cv = this.cacheVersion; | ||
} | ||
case 13: | ||
if (!(page < lastPage)) { | ||
_context.next = 21; | ||
break; | ||
} | ||
if (!query.token) { | ||
query.token = this.getToken(); | ||
} | ||
page++; | ||
_context.next = 17; | ||
return this.makeRequest(url, params, perPage, page); | ||
case 17: | ||
res = _context.sent; | ||
all = [].concat((0, _toConsumableArray2.default)(all), (0, _toConsumableArray2.default)((0, _values.default)(res.data[entity]))); | ||
_context.next = 13; | ||
break; | ||
case 21: | ||
return _context.abrupt("return", all); | ||
case 22: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
} | ||
}, _callee, this); | ||
})); | ||
function getAll(_x) { | ||
return _getAll.apply(this, arguments); | ||
} | ||
return this.cacheResponse(url, query); | ||
} | ||
return getAll; | ||
}() | ||
}, { | ||
@@ -174,7 +270,7 @@ key: "post", | ||
/*#__PURE__*/ | ||
_regenerator.default.mark(function _callee(resolve, reject) { | ||
_regenerator.default.mark(function _callee2(resolve, reject) { | ||
var cacheKey, provider, cache, res, response; | ||
return _regenerator.default.wrap(function _callee$(_context) { | ||
return _regenerator.default.wrap(function _callee2$(_context2) { | ||
while (1) { | ||
switch (_context.prev = _context.next) { | ||
switch (_context2.prev = _context2.next) { | ||
case 0: | ||
@@ -190,31 +286,31 @@ cacheKey = qs.stringify({ | ||
if (!(_this.cache.clear === 'auto' && params.version === 'draft')) { | ||
_context.next = 5; | ||
_context2.next = 5; | ||
break; | ||
} | ||
_context.next = 5; | ||
_context2.next = 5; | ||
return _this.flushCache(); | ||
case 5: | ||
if (!(params.version === 'published')) { | ||
_context.next = 11; | ||
if (!(params.version === 'published' && url != '/cdn/spaces/me')) { | ||
_context2.next = 11; | ||
break; | ||
} | ||
_context.next = 8; | ||
_context2.next = 8; | ||
return provider.get(cacheKey); | ||
case 8: | ||
cache = _context.sent; | ||
cache = _context2.sent; | ||
if (!cache) { | ||
_context.next = 11; | ||
_context2.next = 11; | ||
break; | ||
} | ||
return _context.abrupt("return", resolve(cache)); | ||
return _context2.abrupt("return", resolve(cache)); | ||
case 11: | ||
_context.prev = 11; | ||
_context.next = 14; | ||
_context2.prev = 11; | ||
_context2.next = 14; | ||
return _this.throttle('get', url, { | ||
@@ -230,3 +326,3 @@ params: params, | ||
case 14: | ||
res = _context.sent; | ||
res = _context2.sent; | ||
response = { | ||
@@ -245,10 +341,10 @@ data: res.data, | ||
if (!(res.status != 200)) { | ||
_context.next = 19; | ||
_context2.next = 19; | ||
break; | ||
} | ||
return _context.abrupt("return", reject(res)); | ||
return _context2.abrupt("return", reject(res)); | ||
case 19: | ||
if (params.version === 'published') { | ||
if (params.version === 'published' && url != '/cdn/spaces/me') { | ||
provider.set(cacheKey, response); | ||
@@ -258,11 +354,11 @@ } | ||
resolve(response); | ||
_context.next = 33; | ||
_context2.next = 33; | ||
break; | ||
case 23: | ||
_context.prev = 23; | ||
_context.t0 = _context["catch"](11); | ||
_context2.prev = 23; | ||
_context2.t0 = _context2["catch"](11); | ||
if (!(_context.t0.response && _context.t0.response.status === 429)) { | ||
_context.next = 32; | ||
if (!(_context2.t0.response && _context2.t0.response.status === 429)) { | ||
_context2.next = 32; | ||
break; | ||
@@ -274,3 +370,3 @@ } | ||
if (!(retries < _this.maxRetries)) { | ||
_context.next = 32; | ||
_context2.next = 32; | ||
break; | ||
@@ -280,20 +376,20 @@ } | ||
console.log("Hit rate limit. Retrying in ".concat(retries, " seconds.")); | ||
_context.next = 31; | ||
_context2.next = 31; | ||
return delay(1000 * retries); | ||
case 31: | ||
return _context.abrupt("return", _this.cacheResponse(url, params, retries).then(resolve).catch(reject)); | ||
return _context2.abrupt("return", _this.cacheResponse(url, params, retries).then(resolve).catch(reject)); | ||
case 32: | ||
reject(_context.t0); | ||
reject(_context2.t0); | ||
case 33: | ||
case "end": | ||
return _context.stop(); | ||
return _context2.stop(); | ||
} | ||
} | ||
}, _callee, null, [[11, 23]]); | ||
}, _callee2, null, [[11, 23]]); | ||
})); | ||
return function (_x, _x2) { | ||
return function (_x2, _x3) { | ||
return _ref.apply(this, arguments); | ||
@@ -322,2 +418,5 @@ }; | ||
}, | ||
getAll: function getAll() { | ||
return memory; | ||
}, | ||
set: function set(key, content) { | ||
@@ -335,2 +434,3 @@ memory[key] = content; | ||
get: function get() {}, | ||
getAll: function getAll() {}, | ||
set: function set() {}, | ||
@@ -346,20 +446,20 @@ flush: function flush() {} | ||
/*#__PURE__*/ | ||
_regenerator.default.mark(function _callee2() { | ||
return _regenerator.default.wrap(function _callee2$(_context2) { | ||
_regenerator.default.mark(function _callee3() { | ||
return _regenerator.default.wrap(function _callee3$(_context3) { | ||
while (1) { | ||
switch (_context2.prev = _context2.next) { | ||
switch (_context3.prev = _context3.next) { | ||
case 0: | ||
this.cacheVersion = this.newVersion(); | ||
_context2.next = 3; | ||
_context3.next = 3; | ||
return this.cacheProvider().flush(); | ||
case 3: | ||
return _context2.abrupt("return", this); | ||
return _context3.abrupt("return", this); | ||
case 4: | ||
case "end": | ||
return _context2.stop(); | ||
return _context3.stop(); | ||
} | ||
} | ||
}, _callee2, this); | ||
}, _callee3, this); | ||
})); | ||
@@ -366,0 +466,0 @@ |
{ | ||
"name": "storyblok-js-client", | ||
"version": "1.0.34", | ||
"version": "1.0.35", | ||
"description": "Universal JavaScript SDK for Storyblok's API", | ||
@@ -5,0 +5,0 @@ "main": "./dist/index.js", |
@@ -6,6 +6,8 @@ 'use strict' | ||
const throttledQueue = require('./throttlePromise') | ||
const delay = ms => new Promise(res => setTimeout(res, ms)) | ||
const RichTextResolver = require('./richTextResolver') | ||
let memory = {} | ||
const { delay, getOptionsPage, isCDNUrl } = require('./helpers') | ||
class Storyblok { | ||
@@ -65,21 +67,64 @@ | ||
parseParams(params = {}) { | ||
if (!params.version) { | ||
params.version = 'published' | ||
} | ||
if (!params.cv) { | ||
params.cv = this.cacheVersion | ||
} | ||
if (!params.token) { | ||
params.token = this.getToken() | ||
} | ||
return params | ||
} | ||
factoryParamOptions(url, params = {}) { | ||
if (isCDNUrl(url)) { | ||
return this.parseParams(params) | ||
} | ||
return params | ||
} | ||
makeRequest(url, params, per_page, page) { | ||
const options = this.factoryParamOptions( | ||
url, | ||
getOptionsPage(params, per_page, page) | ||
) | ||
return this.cacheResponse(url, options) | ||
} | ||
get(slug, params) { | ||
let query = params || {} | ||
let url = `/${slug}` | ||
const query = this.factoryParamOptions(url, params) | ||
if (url.indexOf('/cdn/') > -1) { | ||
if (!query.version) { | ||
query.version = 'published' | ||
} | ||
return this.cacheResponse(url, query) | ||
} | ||
if (!query.cv) { | ||
query.cv = this.cacheVersion | ||
} | ||
async getAll(slug, params = {}, entity) { | ||
const perPage = params.per_page || 25 | ||
let page = 1 | ||
let url = `/${slug}` | ||
const urlParts = url.split('/') | ||
entity = entity || urlParts[urlParts.length - 1] | ||
if (!query.token) { | ||
query.token = this.getToken() | ||
} | ||
let res = await this.makeRequest(url, params, perPage, page) | ||
let all = Object.values(res.data[entity]) | ||
let total = res.total | ||
let lastPage = Math.ceil((total / perPage)) | ||
while (page < lastPage) { | ||
page++ | ||
res = await this.makeRequest(url, params, perPage, page) | ||
all = [ | ||
...all, | ||
...Object.values(res.data[entity]) | ||
] | ||
} | ||
return this.cacheResponse(url, query) | ||
return all | ||
} | ||
@@ -131,3 +176,3 @@ | ||
if (params.version === 'published') { | ||
if (params.version === 'published' && url != '/cdn/spaces/me') { | ||
const cache = await provider.get(cacheKey) | ||
@@ -157,3 +202,3 @@ if (cache) { | ||
if (params.version === 'published') { | ||
if (params.version === 'published' && url != '/cdn/spaces/me') { | ||
provider.set(cacheKey, response) | ||
@@ -192,2 +237,5 @@ } | ||
}, | ||
getAll() { | ||
return memory | ||
}, | ||
set(key, content) { | ||
@@ -205,2 +253,3 @@ memory[key] = content | ||
get() {}, | ||
getAll() {}, | ||
set() {}, | ||
@@ -207,0 +256,0 @@ flush() {} |
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
51302
1607
0