deskbookers
Advanced tools
Comparing version 0.2.1 to 1.0.0
(function (global, factory) { | ||
if (typeof define === "function" && define.amd) { | ||
define(['exports'], factory); | ||
define(['module', 'exports'], factory); | ||
} else if (typeof exports !== "undefined") { | ||
factory(exports); | ||
factory(module, exports); | ||
} else { | ||
@@ -10,6 +10,6 @@ var mod = { | ||
}; | ||
factory(mod.exports); | ||
factory(mod, mod.exports); | ||
global.Error = mod.exports; | ||
} | ||
})(this, function (exports) { | ||
})(this, function (module, exports) { | ||
'use strict'; | ||
@@ -68,2 +68,3 @@ | ||
exports.default = DeskbookersError; | ||
module.exports = exports['default']; | ||
}); |
(function (global, factory) { | ||
if (typeof define === "function" && define.amd) { | ||
define(['exports', './resources/Users', './resources/Workplaces', './resources/Cart'], factory); | ||
define(['module', 'exports', './resources/Account', './resources/Cart', './resources/Events', './resources/Workplaces'], factory); | ||
} else if (typeof exports !== "undefined") { | ||
factory(exports, require('./resources/Users'), require('./resources/Workplaces'), require('./resources/Cart')); | ||
factory(module, exports, require('./resources/Account'), require('./resources/Cart'), require('./resources/Events'), require('./resources/Workplaces')); | ||
} else { | ||
@@ -10,6 +10,6 @@ var mod = { | ||
}; | ||
factory(mod.exports, global.Users, global.Workplaces, global.Cart); | ||
factory(mod, mod.exports, global.Account, global.Cart, global.Events, global.Workplaces); | ||
global.index = mod.exports; | ||
} | ||
})(this, function (exports, _Users, _Workplaces, _Cart) { | ||
})(this, function (module, exports, _Account, _Cart, _Events, _Workplaces) { | ||
'use strict'; | ||
@@ -21,8 +21,10 @@ | ||
var _Users2 = _interopRequireDefault(_Users); | ||
var _Account2 = _interopRequireDefault(_Account); | ||
var _Cart2 = _interopRequireDefault(_Cart); | ||
var _Events2 = _interopRequireDefault(_Events); | ||
var _Workplaces2 = _interopRequireDefault(_Workplaces); | ||
var _Cart2 = _interopRequireDefault(_Cart); | ||
function _interopRequireDefault(obj) { | ||
@@ -34,45 +36,2 @@ return obj && obj.__esModule ? obj : { | ||
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; | ||
}; | ||
function _asyncToGenerator(fn) { | ||
return function () { | ||
var gen = fn.apply(this, arguments); | ||
return new Promise(function (resolve, reject) { | ||
function step(key, arg) { | ||
try { | ||
var info = gen[key](arg); | ||
var value = info.value; | ||
} catch (error) { | ||
reject(error); | ||
return; | ||
} | ||
if (info.done) { | ||
resolve(value); | ||
} else { | ||
return Promise.resolve(value).then(function (value) { | ||
step("next", value); | ||
}, function (err) { | ||
step("throw", err); | ||
}); | ||
} | ||
} | ||
return step("next"); | ||
}); | ||
}; | ||
} | ||
function _classCallCheck(instance, Constructor) { | ||
@@ -84,20 +43,2 @@ if (!(instance instanceof Constructor)) { | ||
var _createClass = function () { | ||
function defineProperties(target, props) { | ||
for (var i = 0; i < props.length; i++) { | ||
var descriptor = props[i]; | ||
descriptor.enumerable = descriptor.enumerable || false; | ||
descriptor.configurable = true; | ||
if ("value" in descriptor) descriptor.writable = true; | ||
Object.defineProperty(target, descriptor.key, descriptor); | ||
} | ||
} | ||
return function (Constructor, protoProps, staticProps) { | ||
if (protoProps) defineProperties(Constructor.prototype, protoProps); | ||
if (staticProps) defineProperties(Constructor, staticProps); | ||
return Constructor; | ||
}; | ||
}(); | ||
var API_HOST = 'backoffice.2cnnct.com'; | ||
@@ -109,221 +50,38 @@ var API_VERSION = 1; | ||
var resources = { | ||
users: _Users2.default, | ||
workplaces: _Workplaces2.default, | ||
cart: _Cart2.default | ||
account: _Account2.default, | ||
cart: _Cart2.default, | ||
events: _Events2.default, | ||
workplaces: _Workplaces2.default | ||
}; | ||
var Deskbookers = function () { | ||
function Deskbookers(_ref) { | ||
var _ref$https = _ref.https, | ||
https = _ref$https === undefined ? true : _ref$https, | ||
_ref$host = _ref.host, | ||
host = _ref$host === undefined ? API_HOST : _ref$host, | ||
_ref$version = _ref.version, | ||
version = _ref$version === undefined ? API_VERSION : _ref$version, | ||
_ref$language = _ref.language, | ||
language = _ref$language === undefined ? API_LANGUAGE : _ref$language, | ||
_ref$resellerId = _ref.resellerId, | ||
resellerId = _ref$resellerId === undefined ? API_RESELLER_ID : _ref$resellerId; | ||
var Deskbookers = function Deskbookers(_ref) { | ||
var _ref$https = _ref.https, | ||
https = _ref$https === undefined ? true : _ref$https, | ||
_ref$host = _ref.host, | ||
host = _ref$host === undefined ? API_HOST : _ref$host, | ||
_ref$version = _ref.version, | ||
version = _ref$version === undefined ? API_VERSION : _ref$version, | ||
_ref$language = _ref.language, | ||
language = _ref$language === undefined ? API_LANGUAGE : _ref$language, | ||
_ref$resellerId = _ref.resellerId, | ||
resellerId = _ref$resellerId === undefined ? API_RESELLER_ID : _ref$resellerId; | ||
_classCallCheck(this, Deskbookers); | ||
_classCallCheck(this, Deskbookers); | ||
// Options | ||
this.https = https; | ||
this.host = host; | ||
this.version = version; | ||
this.language = language; | ||
this.resellerId = resellerId; | ||
this.session_ = null; | ||
// Options | ||
this.https = https; | ||
this.host = host; | ||
this.version = version; | ||
this.language = language; | ||
this.resellerId = resellerId; | ||
this.session = null; | ||
// Init resources | ||
for (var name in resources) { | ||
this[name] = new resources[name](this); | ||
} | ||
// Init resources | ||
for (var name in resources) { | ||
this[name] = new resources[name](this); | ||
} | ||
}; | ||
_createClass(Deskbookers, [{ | ||
key: 'hasSession', | ||
value: function hasSession() { | ||
return !!(this.session_ && this.session_.privateKey); | ||
} | ||
}, { | ||
key: 'validateSession', | ||
value: function () { | ||
var _ref2 = _asyncToGenerator(regeneratorRuntime.mark(function _callee() { | ||
var result; | ||
return regeneratorRuntime.wrap(function _callee$(_context) { | ||
while (1) { | ||
switch (_context.prev = _context.next) { | ||
case 0: | ||
if (this.hasSession()) { | ||
_context.next = 2; | ||
break; | ||
} | ||
return _context.abrupt('return', false); | ||
case 2: | ||
_context.prev = 2; | ||
_context.next = 5; | ||
return this.users.current(); | ||
case 5: | ||
result = _context.sent; | ||
if (!(result && result.id === this.session.user.id)) { | ||
_context.next = 9; | ||
break; | ||
} | ||
// Update user info | ||
this.session_.user = result; | ||
return _context.abrupt('return', true); | ||
case 9: | ||
_context.next = 14; | ||
break; | ||
case 11: | ||
_context.prev = 11; | ||
_context.t0 = _context['catch'](2); | ||
return _context.abrupt('return', false); | ||
case 14: | ||
case 'end': | ||
return _context.stop(); | ||
} | ||
} | ||
}, _callee, this, [[2, 11]]); | ||
})); | ||
function validateSession() { | ||
return _ref2.apply(this, arguments); | ||
} | ||
return validateSession; | ||
}() | ||
}, { | ||
key: 'logout', | ||
value: function () { | ||
var _ref3 = _asyncToGenerator(regeneratorRuntime.mark(function _callee2() { | ||
return regeneratorRuntime.wrap(function _callee2$(_context2) { | ||
while (1) { | ||
switch (_context2.prev = _context2.next) { | ||
case 0: | ||
_context2.next = 2; | ||
return this.users.logout(); | ||
case 2: | ||
this.session = null; | ||
return _context2.abrupt('return', this); | ||
case 4: | ||
case 'end': | ||
return _context2.stop(); | ||
} | ||
} | ||
}, _callee2, this); | ||
})); | ||
function logout() { | ||
return _ref3.apply(this, arguments); | ||
} | ||
return logout; | ||
}() | ||
}, { | ||
key: 'login', | ||
value: function () { | ||
var _ref4 = _asyncToGenerator(regeneratorRuntime.mark(function _callee3(email, password) { | ||
var _users; | ||
for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { | ||
args[_key - 2] = arguments[_key]; | ||
} | ||
var session; | ||
return regeneratorRuntime.wrap(function _callee3$(_context3) { | ||
while (1) { | ||
switch (_context3.prev = _context3.next) { | ||
case 0: | ||
_context3.next = 2; | ||
return (_users = this.users).login.apply(_users, [email, password].concat(args)); | ||
case 2: | ||
session = _context3.sent; | ||
this.session = session; | ||
return _context3.abrupt('return', session.user); | ||
case 5: | ||
case 'end': | ||
return _context3.stop(); | ||
} | ||
} | ||
}, _callee3, this); | ||
})); | ||
function login(_x, _x2) { | ||
return _ref4.apply(this, arguments); | ||
} | ||
return login; | ||
}() | ||
}, { | ||
key: 'signup', | ||
value: function () { | ||
var _ref5 = _asyncToGenerator(regeneratorRuntime.mark(function _callee4(params) { | ||
var _users2; | ||
for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { | ||
args[_key2 - 1] = arguments[_key2]; | ||
} | ||
var session; | ||
return regeneratorRuntime.wrap(function _callee4$(_context4) { | ||
while (1) { | ||
switch (_context4.prev = _context4.next) { | ||
case 0: | ||
_context4.next = 2; | ||
return (_users2 = this.users).signup.apply(_users2, [params].concat(args)); | ||
case 2: | ||
session = _context4.sent; | ||
this.session = session; | ||
return _context4.abrupt('return', session.user); | ||
case 5: | ||
case 'end': | ||
return _context4.stop(); | ||
} | ||
} | ||
}, _callee4, this); | ||
})); | ||
function signup(_x3) { | ||
return _ref5.apply(this, arguments); | ||
} | ||
return signup; | ||
}() | ||
}, { | ||
key: 'session', | ||
get: function get() { | ||
return this.hasSession() ? _extends({}, this.session_) : null; | ||
}, | ||
set: function set(session) { | ||
if (session && session.privateKey && session.publicKey && session.user) { | ||
this.session_ = session; | ||
} else { | ||
this.session_ = null; | ||
} | ||
return this; | ||
} | ||
}]); | ||
return Deskbookers; | ||
}(); | ||
exports.default = Deskbookers; | ||
module.exports = exports['default']; | ||
}); |
(function (global, factory) { | ||
if (typeof define === "function" && define.amd) { | ||
define(['exports', '../utils/fetch', '../utils/requests'], factory); | ||
define(['module', 'exports', '../utils/requests'], factory); | ||
} else if (typeof exports !== "undefined") { | ||
factory(exports, require('../utils/fetch'), require('../utils/requests')); | ||
factory(module, exports, require('../utils/requests')); | ||
} else { | ||
@@ -10,6 +10,6 @@ var mod = { | ||
}; | ||
factory(mod.exports, global.fetch, global.requests); | ||
factory(mod, mod.exports, global.requests); | ||
global.Resource = mod.exports; | ||
} | ||
})(this, function (exports, _fetch, _requests) { | ||
})(this, function (module, exports, _requests) { | ||
'use strict'; | ||
@@ -21,16 +21,2 @@ | ||
var _fetch2 = _interopRequireDefault(_fetch); | ||
function _interopRequireDefault(obj) { | ||
return obj && obj.__esModule ? obj : { | ||
default: obj | ||
}; | ||
} | ||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { | ||
return typeof obj; | ||
} : function (obj) { | ||
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; | ||
}; | ||
var _extends = Object.assign || function (target) { | ||
@@ -149,21 +135,23 @@ for (var i = 1; i < arguments.length; i++) { | ||
_context.next = 8; | ||
_context.prev = 6; | ||
_context.next = 9; | ||
return this.prepareRequest(url, options, args); | ||
case 8: | ||
case 9: | ||
_ref3 = _context.sent; | ||
requestUrl = _ref3.url; | ||
requestOptions = _ref3.options; | ||
_context.next = 13; | ||
return (0, _fetch2.default)(requestUrl, requestOptions); | ||
_context.next = 14; | ||
return fetch(requestUrl, requestOptions); | ||
case 13: | ||
case 14: | ||
response = _context.sent; | ||
_context.next = 16; | ||
return this.parseResponse(response); | ||
return _context.abrupt('return', this.parseResponse(response)); | ||
case 16: | ||
return _context.abrupt('return', _context.sent); | ||
case 18: | ||
_context.prev = 18; | ||
_context.t0 = _context['catch'](6); | ||
return _context.abrupt('return', false); | ||
case 17: | ||
case 21: | ||
case 'end': | ||
@@ -173,3 +161,3 @@ return _context.stop(); | ||
} | ||
}, _callee, this); | ||
}, _callee, this, [[6, 18]]); | ||
})); | ||
@@ -187,3 +175,3 @@ | ||
var _ref4 = _asyncToGenerator(regeneratorRuntime.mark(function _callee2(response) { | ||
var data, msg, extra, i, _msg; | ||
var data, dataProp, result, errors, error, _errors, _error, msg, _error2, _msg; | ||
@@ -199,63 +187,69 @@ return regeneratorRuntime.wrap(function _callee2$(_context2) { | ||
data = _context2.sent; | ||
dataProp = data.data, result = data.result, errors = data.errors, error = data.error; | ||
if (!(data && (typeof data === 'undefined' ? 'undefined' : _typeof(data)) === 'object')) { | ||
_context2.next = 26; | ||
if (!dataProp) { | ||
_context2.next = 8; | ||
break; | ||
} | ||
if (!data.error) { | ||
_context2.next = 10; | ||
return _context2.abrupt('return', dataProp); | ||
case 8: | ||
if (!result) { | ||
_context2.next = 20; | ||
break; | ||
} | ||
msg = data.errorMessage || 'An error occurred'; | ||
extra = data.errorTrace && data.errorTrace.length > 0 ? ' (' + data.errorTrace[0].file + ':' + data.errorTrace[0].line + ')' : null; | ||
throw new Error((data.errorCode || 500) + ': ' + msg + extra); | ||
_errors = result.errors; | ||
case 10: | ||
if (!(data.errors && data.errors.length > 0)) { | ||
_context2.next = 20; | ||
if (!_errors) { | ||
_context2.next = 17; | ||
break; | ||
} | ||
i = 0; | ||
_context2.t0 = regeneratorRuntime.keys(_errors); | ||
case 12: | ||
if (!(i < data.errors.length)) { | ||
_context2.next = 18; | ||
if ((_context2.t1 = _context2.t0()).done) { | ||
_context2.next = 17; | ||
break; | ||
} | ||
_msg = data.errors[i].title || data.errors[i].detail; | ||
throw new Error((data.errors[i].code || 500) + ': ' + _msg); | ||
_error = _context2.t1.value; | ||
throw new Error(_errors[_error]); | ||
case 15: | ||
++i; | ||
_context2.next = 12; | ||
break; | ||
case 17: | ||
return _context2.abrupt('return', result); | ||
case 18: | ||
_context2.next = 26; | ||
break; | ||
case 20: | ||
if (!('result' in data)) { | ||
_context2.next = 24; | ||
if (!error) { | ||
_context2.next = 25; | ||
break; | ||
} | ||
return _context2.abrupt('return', data.result); | ||
msg = data.errorMessage || 'An error occurred'; | ||
throw new Error(msg); | ||
case 24: | ||
if (!('data' in data)) { | ||
_context2.next = 26; | ||
case 25: | ||
if (!errors) { | ||
_context2.next = 33; | ||
break; | ||
} | ||
return _context2.abrupt('return', data.data); | ||
_context2.t2 = regeneratorRuntime.keys(errors); | ||
case 26: | ||
throw new Error('500: Invalid response received'); | ||
case 27: | ||
if ((_context2.t3 = _context2.t2()).done) { | ||
_context2.next = 33; | ||
break; | ||
} | ||
case 27: | ||
_error2 = _context2.t3.value; | ||
_msg = errors[_error2].title || errors[_error2].detail; | ||
throw new Error(_msg); | ||
case 33: | ||
throw new Error('Invalid response received'); | ||
case 34: | ||
case 'end': | ||
@@ -276,32 +270,10 @@ return _context2.stop(); | ||
key: 'prepareRequest', | ||
value: function () { | ||
var _ref5 = _asyncToGenerator(regeneratorRuntime.mark(function _callee3(url, options, args) { | ||
return regeneratorRuntime.wrap(function _callee3$(_context3) { | ||
while (1) { | ||
switch (_context3.prev = _context3.next) { | ||
case 0: | ||
if (!this.api.hasSession()) { | ||
_context3.next = 4; | ||
break; | ||
} | ||
return _context3.abrupt('return', (0, _requests.signer)(this.api.session, url, options, args)); | ||
case 4: | ||
return _context3.abrupt('return', { url: url, options: options }); | ||
case 5: | ||
case 'end': | ||
return _context3.stop(); | ||
} | ||
} | ||
}, _callee3, this); | ||
})); | ||
function prepareRequest(_x3, _x4, _x5) { | ||
return _ref5.apply(this, arguments); | ||
value: function prepareRequest(url, options, args) { | ||
// Sign request? | ||
if (this.api.session) { | ||
return (0, _requests.signer)(this.api.session, url, options, args); | ||
} else { | ||
return { url: url, options: options }; | ||
} | ||
return prepareRequest; | ||
}() | ||
} | ||
}, { | ||
@@ -320,2 +292,3 @@ key: 'apiUrl', | ||
exports.default = Resource; | ||
module.exports = exports['default']; | ||
}); |
(function (global, factory) { | ||
if (typeof define === "function" && define.amd) { | ||
define(['exports', './Resource'], factory); | ||
define(['module', 'exports', './Resource'], factory); | ||
} else if (typeof exports !== "undefined") { | ||
factory(exports, require('./Resource')); | ||
factory(module, exports, require('./Resource')); | ||
} else { | ||
@@ -10,6 +10,6 @@ var mod = { | ||
}; | ||
factory(mod.exports, global.Resource); | ||
factory(mod, mod.exports, global.Resource); | ||
global.Workplaces = mod.exports; | ||
} | ||
})(this, function (exports, _Resource2) { | ||
})(this, function (module, exports, _Resource2) { | ||
'use strict'; | ||
@@ -116,2 +116,3 @@ | ||
exports.default = Workplaces; | ||
module.exports = exports['default']; | ||
}); |
(function (global, factory) { | ||
if (typeof define === "function" && define.amd) { | ||
define(['exports', 'fetch-ponyfill'], factory); | ||
define(['module', 'exports', 'fetch-ponyfill'], factory); | ||
} else if (typeof exports !== "undefined") { | ||
factory(exports, require('fetch-ponyfill')); | ||
factory(module, exports, require('fetch-ponyfill')); | ||
} else { | ||
@@ -10,6 +10,6 @@ var mod = { | ||
}; | ||
factory(mod.exports, global.fetchPonyfill); | ||
factory(mod, mod.exports, global.fetchPonyfill); | ||
global.fetch = mod.exports; | ||
} | ||
})(this, function (exports, _fetchPonyfill) { | ||
})(this, function (module, exports, _fetchPonyfill) { | ||
'use strict'; | ||
@@ -33,2 +33,3 @@ | ||
exports.default = fetch; | ||
module.exports = exports['default']; | ||
}); |
{ | ||
"name": "deskbookers", | ||
"version": "0.2.1", | ||
"version": "1.0.0", | ||
"description": "Deskbookers API JavaScript SDK", | ||
"main": "dist/index.js", | ||
"scripts": { | ||
"test": "ava --timeout=10s test.js", | ||
"test": "ava", | ||
"build": "babel src --out-dir dist", | ||
@@ -22,3 +22,2 @@ "prepublish": "npm run build" | ||
"dotenv": "^2.0.0", | ||
"fetch-ponyfill": "^3.0.2", | ||
"hash.js": "^1.0.3", | ||
@@ -37,9 +36,17 @@ "json_encode": "^0.1.0", | ||
"babel-cli": "^6.18.0", | ||
"babel-plugin-add-module-exports": "^0.2.1", | ||
"babel-plugin-transform-es2015-modules-umd": "^6.18.0", | ||
"babel-polyfill": "^6.23.0", | ||
"babel-preset-latest": "^6.22.0", | ||
"babel-preset-stage-2": "^6.18.0" | ||
"babel-preset-stage-2": "^6.18.0", | ||
"faker": "^4.1.0", | ||
"fetch-everywhere": "^1.0.5" | ||
}, | ||
"ava": { | ||
"require": [ | ||
"babel-register", | ||
"babel-polyfill" | ||
], | ||
"babel": "inherit" | ||
} | ||
} |
# Deskbookers JavaScript SDK | ||
JavaScript library to connect to the Deskbookers API. Available to use server-side or client-side. | ||
JavaScript library to connect to the Deskbookers API. Available to use server-side or client-side, but you must bring your own `fetch` polyfill ([`fetch-everywhere`](https://github.com/lucasfeliciano/fetch-everywhere) recommended). | ||
@@ -12,3 +12,5 @@ ## Installation | ||
```js | ||
import 'fetch-everywhere' | ||
import Deskbookers from 'deskbookers' | ||
const deskbookers = new Deskbookers() | ||
@@ -38,6 +40,11 @@ ``` | ||
* users | ||
* [`login(email, password)`](docs/users.md#loginemail-password) | ||
* [`signup(params)`](docs/users.md#signupparams) | ||
* workplaces | ||
* account | ||
* [`login(email, password)`](docs/account.md#loginemail-password) | ||
* [`signup(params)`](docs/account.md#signupparams) | ||
* [`retrieve()`](docs/account.md#retrieve) | ||
* [`contexts(params)`](docs/account.md#contextsparams) | ||
* workplaces | ||
* `retrieve(workplaceId)` | ||
* events | ||
* [`unread()`](docs/events.md#unread) | ||
* [`list(tabId, limit)`](docs/events.md##listtabid-limit) |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
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
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
203527
11
24
2101
1
49
9
19
2
- Removedfetch-ponyfill@^3.0.2
- Removedencoding@0.1.13(transitive)
- Removedfetch-ponyfill@3.0.2(transitive)
- Removediconv-lite@0.6.3(transitive)
- Removedis-stream@1.1.0(transitive)
- Removednode-fetch@1.6.3(transitive)
- Removedsafer-buffer@2.1.2(transitive)