planning
All checks were successful
Publish To Prod / deploy_and_publish (push) Successful in 35s

This commit is contained in:
2024-10-14 09:15:30 +02:00
parent bcba00a730
commit 6e64e138e2
21059 changed files with 2317811 additions and 1 deletions

103
node_modules/micro-api-client/README.md generated vendored Normal file
View File

@@ -0,0 +1,103 @@
# micro-api-client
[![Build Status](https://travis-ci.org/netlify/micro-api-client.svg?branch=master)](https://travis-ci.org/netlify/micro-api-client)
Small library for talking to micro REST APIs (not related to Netlify's main API).
## Installation
```
yarn add micro-api-client
```
## Usage
```js
import API, { getPagination } from 'micro-api-client'
const api = new API("/some/api/endpoint");
api
.request("foo")
.then(response => console.log(response))
.catch(err => console.error(err));
```
### API
### `api = new API(apiURL, [opts])`
Create a new `micro-api-client` instance. `apiURL` can be a full or relative URL. Optional `opts` include:
```js
{
defaultHeaders: {
} // header values to include in every request.
}
```
### `api.request(path, [opts])`
Make a request to the `apiURL` at the given `path`. Optional `opts` are passed to the [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch) API:
```js
// Default options
{
headers: {} // Optional headers object. Overrides defaultHeaders
credentials: "same-origin" // set fetch credentials option
"Content-Type": "application/json" // set Content-Type fetch option
}
```
Returns a promise with the `response`. If the `contentType` is JSON, it will be checked for pagination and return either the parsed JSON object or a paginated JSON object:
```js
// See src/pagination.js
{
pagination: {
last,
next,
prev,
first,
current,
total
},
items: json
}
```
If an error occurs during the request, the promise may be rejected with an `HTTPError`, `TextHTTPError`, or `JSONHTTPError`.
### `class HTTPError extends Error`
Additional error properties from Error
```js
{
stack, // stack trace of error
status // status code of response
}
```
### `class TextHTTPError extends HTTPError`
Additional error properties from HTTPError
```js
{
data // data of text response
}
```
### `class JSONHTTPError extends HTTPError`
Additional error properties from HTTPError
```js
{
json // json of a JSON response
}
```
### `pagination = getPagination(response)`
Returns a pagination object that `micro-api-client` uses internally.

87
node_modules/micro-api-client/lib/errors.js generated vendored Normal file
View File

@@ -0,0 +1,87 @@
"use strict";
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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 _extendableBuiltin(cls) {
function ExtendableBuiltin() {
var instance = Reflect.construct(cls, Array.from(arguments));
Object.setPrototypeOf(instance, Object.getPrototypeOf(this));
return instance;
}
ExtendableBuiltin.prototype = Object.create(cls.prototype, {
constructor: {
value: cls,
enumerable: false,
writable: true,
configurable: true
}
});
if (Object.setPrototypeOf) {
Object.setPrototypeOf(ExtendableBuiltin, cls);
} else {
ExtendableBuiltin.__proto__ = cls;
}
return ExtendableBuiltin;
}
var HTTPError = function (_extendableBuiltin2) {
_inherits(HTTPError, _extendableBuiltin2);
function HTTPError(response) {
_classCallCheck(this, HTTPError);
var _this = _possibleConstructorReturn(this, (HTTPError.__proto__ || Object.getPrototypeOf(HTTPError)).call(this, response.statusText));
_this.name = _this.constructor.name;
if (typeof Error.captureStackTrace === "function") {
Error.captureStackTrace(_this, _this.constructor);
} else {
_this.stack = new Error(response.statusText).stack;
}
_this.status = response.status;
return _this;
}
return HTTPError;
}(_extendableBuiltin(Error));
var TextHTTPError = function (_HTTPError) {
_inherits(TextHTTPError, _HTTPError);
function TextHTTPError(response, data) {
_classCallCheck(this, TextHTTPError);
var _this2 = _possibleConstructorReturn(this, (TextHTTPError.__proto__ || Object.getPrototypeOf(TextHTTPError)).call(this, response));
_this2.data = data;
return _this2;
}
return TextHTTPError;
}(HTTPError);
var JSONHTTPError = function (_HTTPError2) {
_inherits(JSONHTTPError, _HTTPError2);
function JSONHTTPError(response, json) {
_classCallCheck(this, JSONHTTPError);
var _this3 = _possibleConstructorReturn(this, (JSONHTTPError.__proto__ || Object.getPrototypeOf(JSONHTTPError)).call(this, response));
_this3.json = json;
return _this3;
}
return JSONHTTPError;
}(HTTPError);
module.exports.HTTPError = HTTPError;
module.exports.TextHTTPError = TextHTTPError;
module.exports.JSONHTTPError = JSONHTTPError;

171
node_modules/micro-api-client/lib/index.js generated vendored Normal file
View File

@@ -0,0 +1,171 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.JSONHTTPError = exports.TextHTTPError = exports.HTTPError = exports.getPagination = undefined;
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 _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 _pagination = require("./pagination");
Object.defineProperty(exports, "getPagination", {
enumerable: true,
get: function get() {
return _pagination.getPagination;
}
});
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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 _extendableBuiltin(cls) {
function ExtendableBuiltin() {
var instance = Reflect.construct(cls, Array.from(arguments));
Object.setPrototypeOf(instance, Object.getPrototypeOf(this));
return instance;
}
ExtendableBuiltin.prototype = Object.create(cls.prototype, {
constructor: {
value: cls,
enumerable: false,
writable: true,
configurable: true
}
});
if (Object.setPrototypeOf) {
Object.setPrototypeOf(ExtendableBuiltin, cls);
} else {
ExtendableBuiltin.__proto__ = cls;
}
return ExtendableBuiltin;
}
var HTTPError = exports.HTTPError = function (_extendableBuiltin2) {
_inherits(HTTPError, _extendableBuiltin2);
function HTTPError(response) {
_classCallCheck(this, HTTPError);
var _this = _possibleConstructorReturn(this, (HTTPError.__proto__ || Object.getPrototypeOf(HTTPError)).call(this, response.statusText));
_this.name = _this.constructor.name;
if (typeof Error.captureStackTrace === "function") {
Error.captureStackTrace(_this, _this.constructor);
} else {
_this.stack = new Error(response.statusText).stack;
}
_this.status = response.status;
return _this;
}
return HTTPError;
}(_extendableBuiltin(Error));
var TextHTTPError = exports.TextHTTPError = function (_HTTPError) {
_inherits(TextHTTPError, _HTTPError);
function TextHTTPError(response, data) {
_classCallCheck(this, TextHTTPError);
var _this2 = _possibleConstructorReturn(this, (TextHTTPError.__proto__ || Object.getPrototypeOf(TextHTTPError)).call(this, response));
_this2.data = data;
return _this2;
}
return TextHTTPError;
}(HTTPError);
var JSONHTTPError = exports.JSONHTTPError = function (_HTTPError2) {
_inherits(JSONHTTPError, _HTTPError2);
function JSONHTTPError(response, json) {
_classCallCheck(this, JSONHTTPError);
var _this3 = _possibleConstructorReturn(this, (JSONHTTPError.__proto__ || Object.getPrototypeOf(JSONHTTPError)).call(this, response));
_this3.json = json;
return _this3;
}
return JSONHTTPError;
}(HTTPError);
var API = function () {
function API() {
var apiURL = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var options = arguments[1];
_classCallCheck(this, API);
this.apiURL = apiURL;
if (this.apiURL.match(/\/[^\/]?/)) {
// eslint-disable-line no-useless-escape
this._sameOrigin = true;
}
this.defaultHeaders = options && options.defaultHeaders || {};
}
_createClass(API, [{
key: "headers",
value: function headers() {
var _headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return _extends({}, this.defaultHeaders, {
"Content-Type": "application/json"
}, _headers);
}
}, {
key: "parseJsonResponse",
value: function parseJsonResponse(response) {
return response.json().then(function (json) {
if (!response.ok) {
return Promise.reject(new JSONHTTPError(response, json));
}
var pagination = (0, _pagination.getPagination)(response);
return pagination ? { pagination: pagination, items: json } : json;
});
}
}, {
key: "request",
value: function request(path) {
var _this4 = this;
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var headers = this.headers(options.headers || {});
if (this._sameOrigin) {
options.credentials = options.credentials || "same-origin";
}
return fetch(this.apiURL + path, _extends({}, options, { headers: headers })).then(function (response) {
var contentType = response.headers.get("Content-Type");
if (contentType && contentType.match(/json/)) {
return _this4.parseJsonResponse(response);
}
if (!response.ok) {
return response.text().then(function (data) {
return Promise.reject(new TextHTTPError(response, data));
});
}
return response.text().then(function (data) {
data;
});
});
}
}]);
return API;
}();
exports.default = API;

46
node_modules/micro-api-client/lib/pagination.js generated vendored Normal file
View File

@@ -0,0 +1,46 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
exports.getPagination = getPagination;
function getPagination(response) {
var links = response.headers.get("Link");
var pagination = {};
//var link, url, rel, m, page;
if (links == null) {
return null;
}
links = links.split(",");
var total = response.headers.get("X-Total-Count");
for (var i = 0, len = links.length; i < len; i++) {
var link = links[i].replace(/(^\s*|\s*$)/, "");
var _link$split = link.split(";"),
_link$split2 = _slicedToArray(_link$split, 2),
url = _link$split2[0],
rel = _link$split2[1];
var m = url.match(/page=(\d+)/);
var page = m && parseInt(m[1], 10);
if (rel.match(/last/)) {
pagination.last = page;
} else if (rel.match(/next/)) {
pagination.next = page;
} else if (rel.match(/prev/)) {
pagination.prev = page;
} else if (rel.match(/first/)) {
pagination.first = page;
}
}
pagination.last = Math.max(pagination.last || 0, pagination.prev && pagination.prev + 1 || 0);
pagination.current = pagination.next ? pagination.next - 1 : pagination.last || 1;
pagination.total = total ? parseInt(total, 10) : null;
return pagination;
}

42
node_modules/micro-api-client/package.json generated vendored Normal file
View File

@@ -0,0 +1,42 @@
{
"name": "micro-api-client",
"description": "Micro REST API client",
"version": "3.3.0",
"author": "Mathias Biilmann Christensen",
"bugs": "https://github.com/netlify/micro-api-client/issues",
"devDependencies": {
"babel-cli": "^6.8.0",
"babel-eslint": "^8.2.1",
"babel-plugin-syntax-object-rest-spread": "^6.8.0",
"babel-plugin-transform-builtin-extend": "^1.1.2",
"babel-plugin-transform-object-rest-spread": "^6.8.0",
"babel-preset-env": "^1.6.1",
"eslint": "^4.15.0",
"eslint-config-prettier": "^2.3.0",
"eslint-plugin-import": "^2.8.0",
"eslint-plugin-prettier": "^2.1.2",
"prettier": "^1.10.1"
},
"files": [
"lib"
],
"homepage": "https://github.com/netlify/micro-api-client",
"keywords": [
"api",
"fetch",
"netlify"
],
"license": "ISC",
"main": "lib/index.js",
"repository": {
"type": "git",
"url": "git+https://github.com/netlify/micro-api-client.git"
},
"scripts": {
"compile": "babel src -d lib",
"format": "eslint . --fix && prettier --write 'src/**/*.js'",
"prepublish": "npm run compile",
"prettier-preview": "prettier --list-different 'src/**/*.js'",
"test": "eslint ."
}
}