├── .npmignore
├── .babelrc
├── lib
└── cosmic.d.ts
├── test
├── .env.example
├── mocha.opts
├── logo.jpg
├── setup.js
├── constants.js
└── unit_tests
│ ├── t_auth.js
│ ├── t_project_methods.js
│ └── t_bucket_methods.js
├── .eslintignore
├── index-browser.js
├── index.js
├── src
├── helpers
│ ├── http_methods.js
│ ├── constants.js
│ ├── promiser.js
│ ├── request_handler_promise.js
│ └── request_handler.js
├── index.js
├── bucket.js
├── bucket
│ ├── user.js
│ ├── webhook.js
│ ├── object-type.js
│ ├── extension.js
│ ├── media.js
│ └── object.js
└── main.js
├── .editorconfig
├── examples
├── server
│ ├── get-objects.js
│ ├── add-extension-url.js
│ ├── import-bucket.js
│ ├── deploy-app.js
│ └── add-media.js
└── browser
│ ├── add-media.html
│ └── get-objects.html
├── .eslintrc.js
├── webpack.config.js
├── .circleci
└── config.yml
├── dist
├── helpers
│ ├── http_methods.js
│ ├── constants.js
│ ├── promiser.js
│ ├── request_handler_promise.js
│ └── request_handler.js
├── index.js
├── bucket
│ ├── user.js
│ ├── webhook.js
│ ├── object-type.js
│ ├── extension.js
│ ├── media.js
│ └── object.js
├── bucket.js
└── main.js
├── LICENSE
├── .gitignore
├── package.json
└── README.md
/.npmignore:
--------------------------------------------------------------------------------
1 | examples
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | { "presets": ["@babel/preset-env"] }
--------------------------------------------------------------------------------
/lib/cosmic.d.ts:
--------------------------------------------------------------------------------
1 | declare module "cosmicjs";
2 |
--------------------------------------------------------------------------------
/test/.env.example:
--------------------------------------------------------------------------------
1 | # Move to .env
2 | EMAIL=
3 | PASSWORD=
--------------------------------------------------------------------------------
/test/mocha.opts:
--------------------------------------------------------------------------------
1 | --ui tdd
2 | --recursive
3 | --require test/setup.js
4 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | # Ignore everything
2 | /**
3 |
4 | # Except index.js
5 | !src
6 |
--------------------------------------------------------------------------------
/index-browser.js:
--------------------------------------------------------------------------------
1 | import Cosmic from './src/index'
2 |
3 | window.Cosmic = Cosmic
4 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | const Cosmic = require('./dist/index')
2 |
3 | module.exports = Cosmic
4 |
--------------------------------------------------------------------------------
/test/logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cosmicjs/cosmicjs-node/master/test/logo.jpg
--------------------------------------------------------------------------------
/test/setup.js:
--------------------------------------------------------------------------------
1 | var chai = require('chai')
2 |
3 | // Setup chai plugins
4 | chai.use(require('dirty-chai'))
5 |
--------------------------------------------------------------------------------
/test/constants.js:
--------------------------------------------------------------------------------
1 | const envPath = __dirname + `/.env`
2 | require('dotenv').config({ path: envPath })
3 | module.exports = process.env
--------------------------------------------------------------------------------
/src/helpers/http_methods.js:
--------------------------------------------------------------------------------
1 | const HTTP_METHODS = {
2 | POST: 'post',
3 | GET: 'get',
4 | FETCH: 'fetch',
5 | PUT: 'put',
6 | PATCH: 'patch',
7 | DELETE: 'delete'
8 | }
9 |
10 | module.exports = HTTP_METHODS
11 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = tab
5 | indent_size = 2
6 | charset = utf-8
7 | trim_trailing_whitespace = true
8 | insert_final_newline = true
9 | end_of_line = lf
10 | # editorconfig-tools is unable to ignore longs strings or urls
11 | max_line_length = null
12 |
--------------------------------------------------------------------------------
/src/helpers/constants.js:
--------------------------------------------------------------------------------
1 | const API_URL = process.env.COSMIC_API_URL || 'https://api.cosmicjs.com'
2 | const UPLOAD_API_URL = process.env.UPLOAD_API_URL || 'https://upload.cosmicjs.com'
3 | const API_VERSION = process.env.COSMIC_API_VERSION || 'v2'
4 | const URI = `${API_URL}/${API_VERSION}`
5 |
6 | module.exports = {
7 | API_URL,
8 | UPLOAD_API_URL,
9 | API_VERSION,
10 | URI
11 | }
12 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | const { init } = require('./helpers/request_handler')
2 | const mainMethods = require('./main')
3 | const bucketMethods = require('./bucket')
4 |
5 | const Cosmic = (config) => {
6 | init(config)
7 | // Combine methods
8 | const methods = {
9 | bucket: bucketMethods
10 | }
11 | return Object.assign(mainMethods, methods)
12 | }
13 |
14 | module.exports = Cosmic
15 |
--------------------------------------------------------------------------------
/src/helpers/promiser.js:
--------------------------------------------------------------------------------
1 | const HTTP_METHODS = require('./http_methods')
2 | const { requestHandler } = require('./request_handler_promise')
3 |
4 | const promiser = (endpoint) => new Promise((resolve, reject) => {
5 | requestHandler(HTTP_METHODS.GET, endpoint)
6 | .then((response) => resolve(response.data))
7 | .catch((err) => reject(err.response ? err.response.data : err.response))
8 | })
9 | module.exports = promiser
10 |
--------------------------------------------------------------------------------
/examples/server/get-objects.js:
--------------------------------------------------------------------------------
1 | const Cosmic = require('../../dist/index')()
2 |
3 | const express = require('express')
4 | const app = express()
5 | app.get('/', function(req, res, next) {
6 | const bucket = Cosmic.bucket({
7 | slug: 'wedding-site'
8 | })
9 | bucket.getObjects().then(data => {
10 | res.json(data)
11 | }).catch(err => {
12 | res.send('Uh Oh!')
13 | })
14 | })
15 | app.listen(8080, () => console.log('Example app listening on port 8080!'))
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | "extends": "airbnb-base",
3 | "rules": {
4 | // enable additional rules
5 | "no-tabs": "off",
6 | "semi": ["error", "never"],
7 | "linebreak-style": ["error", "unix"],
8 | "quotes": ["error", "single"],
9 |
10 | // override default options for rules from base configurations
11 | "comma-dangle": ["error", "never"],
12 | "no-cond-assign": ["error", "always"],
13 | "no-param-reassign": [2, { "props": false }],
14 |
15 | // disable rules from base configurations
16 | "no-console": "off",
17 | "camelcase": "off",
18 | "indent": ["error", 2]
19 | }
20 | };
--------------------------------------------------------------------------------
/src/helpers/request_handler_promise.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios')
2 |
3 | const init = (config) => {
4 | // Accept Encoding in Node
5 | if (typeof window === 'undefined') {
6 | axios.defaults.headers.common['Accept-Encoding'] = 'gzip, deflate'
7 | }
8 | if (config && config.token) {
9 | axios.defaults.headers.common.Authorization = config.token
10 | }
11 | }
12 |
13 | const requestHandler = (method, url, data, headers) => {
14 | const config = {
15 | method,
16 | url,
17 | data,
18 | headers
19 | }
20 | return axios(config)
21 | }
22 |
23 | module.exports = {
24 | init,
25 | requestHandler
26 | }
27 |
--------------------------------------------------------------------------------
/examples/server/add-extension-url.js:
--------------------------------------------------------------------------------
1 | process.env.COSMIC_API_URL = 'http://localhost:3000'
2 | const Cosmic = require('../../dist/index')
3 |
4 | const fileName = `c12a4150-de2c-11e9-aae6-2b062e8daa4e-extension.zip`
5 | const zipDownloadUrl = `https://cosmic-s3.imgix.net/${fileName}`
6 |
7 | const api = Cosmic()
8 |
9 | const bucket = api.bucket({
10 | slug: 'extension-api-test',
11 | read_key: '',
12 | write_key: ''
13 | })
14 |
15 | const addExtension = async (url) => {
16 | const createExtensionResponse = await bucket.addExtension({
17 | zip_url: url
18 | })
19 | console.log(createExtensionResponse)
20 | }
21 |
22 | addExtension(zipDownloadUrl)
23 |
--------------------------------------------------------------------------------
/examples/server/import-bucket.js:
--------------------------------------------------------------------------------
1 | // const Cosmic = require('../../dist/index')()
2 |
3 | const express = require('express')
4 | const app = express()
5 | const Cosmic = require('../../dist/index')({
6 | token: "token-here"
7 | })
8 |
9 | const bodyParser = require('body-parser')
10 | app.use(bodyParser.urlencoded())
11 | app.use(bodyParser.json())
12 |
13 | app.post('/', function(req, res, next) {
14 | Cosmic.importBucket({ id: req.body.id, bucket: req.body.bucket })
15 | .then((response) => {
16 | res.json(response)
17 | })
18 | .catch((err) => {
19 | res.json(err)
20 | })
21 | })
22 |
23 | app.listen(8080, () => console.log('Example app listening on port 8080!'))
24 |
--------------------------------------------------------------------------------
/examples/server/deploy-app.js:
--------------------------------------------------------------------------------
1 | // const Cosmic = require('../../dist/index')()
2 |
3 | const express = require('express')
4 | const app = express()
5 | const Cosmic = require('../../dist/index')({
6 | token: "token-here"
7 | })
8 |
9 | const bodyParser = require('body-parser')
10 | app.use(bodyParser.urlencoded())
11 | app.use(bodyParser.json())
12 |
13 | app.post('/', function(req, res, next) {
14 | Cosmic.deployApp({ id: req.body.id, repo_url: req.body.repo_url, repo_branch: req.body.repo_branch })
15 | .then((response) => {
16 | res.json(response)
17 | })
18 | .catch((err) => {
19 | res.json(err)
20 | })
21 | })
22 |
23 | app.listen(8080, () => console.log('Example app listening on port 8080!'))
24 |
--------------------------------------------------------------------------------
/src/bucket.js:
--------------------------------------------------------------------------------
1 | const objectMethods = require('./bucket/object')
2 | const objectTypeMethods = require('./bucket/object-type')
3 | const mediaMethods = require('./bucket/media')
4 | const userMethods = require('./bucket/user')
5 | // const webhookMethods = require('./bucket/webhook') // TODO
6 | // const extensionMethods = require('./bucket/extension') // TODO
7 |
8 | const bucket_methods = (bucket_config) => ({
9 | ...objectMethods(bucket_config),
10 | ...objectTypeMethods((bucket_config)),
11 | ...mediaMethods((bucket_config)),
12 | ...userMethods(bucket_config)
13 | // ...webhookMethods(bucket_config), // TODO
14 | // ...extensionMethods(bucket_config) // TODO
15 | })
16 |
17 | module.exports = bucket_methods
18 |
--------------------------------------------------------------------------------
/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | entry: {
3 | browser: './index-browser.js',
4 | },
5 | output: {
6 | path: __dirname,
7 | filename: 'cosmicjs.browser.min.js',
8 | },
9 | module: {
10 | rules: [{
11 | enforce: 'pre',
12 | test: /\index.js?$/,
13 | exclude: /node_modules/,
14 | loader: "eslint-loader"
15 | },
16 | {
17 | test: /\.js?$/,
18 | exclude: /node_modules/,
19 | loader: 'babel-loader',
20 | query: {
21 | presets: [
22 | '@babel/preset-env',
23 | ],
24 | }
25 | }]
26 | },
27 | }
--------------------------------------------------------------------------------
/src/helpers/request_handler.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios')
2 |
3 | const init = (config) => {
4 | // Accept Encoding in Node
5 | if (typeof window === 'undefined') {
6 | axios.defaults.headers.common['Accept-Encoding'] = 'gzip, deflate'
7 | }
8 | if (config && config.token) {
9 | axios.defaults.headers.common.Authorization = config.token
10 | }
11 | }
12 |
13 | const requestHandler = (method, url, data, headers) => {
14 | const config = {
15 | method,
16 | url,
17 | data,
18 | headers
19 | }
20 | return axios(config).then((response) => response.data).catch((error) => {
21 | throw (error.response ? error.response.data : error.response)
22 | })
23 | }
24 |
25 | module.exports = {
26 | init,
27 | requestHandler
28 | }
29 |
--------------------------------------------------------------------------------
/examples/server/add-media.js:
--------------------------------------------------------------------------------
1 | // const Cosmic = require('../../dist/index')()
2 |
3 | const express = require('express')
4 | const app = express()
5 | var multer = require('multer')
6 | const Cosmic = require('../../dist/index')
7 |
8 | const api = Cosmic()
9 | const bucket = api.bucket({
10 | slug: 'test-new-api',
11 | write_key: ''
12 | })
13 | const upload = multer()
14 | const bodyParser = require('body-parser')
15 | app.use(bodyParser.urlencoded())
16 | app.use(bodyParser.json())
17 |
18 | app.post('/', upload.any(), function(req, res, next) {
19 | bucket.addMedia({ media: req.files[0] })
20 | .then((response) => {
21 | res.json(response)
22 | })
23 | .catch((err) => {
24 | res.json(err)
25 | })
26 | })
27 |
28 | app.listen(8080, () => console.log('Example app listening on port 8080!'))
29 |
--------------------------------------------------------------------------------
/src/bucket/user.js:
--------------------------------------------------------------------------------
1 | const { URI } = require('../helpers/constants')
2 | const HTTP_METHODS = require('../helpers/http_methods')
3 | const { requestHandler } = require('../helpers/request_handler')
4 |
5 | const userMethods = (bucket_config) => ({
6 | getUsers: () => {
7 | const endpoint = `${URI}/buckets/${bucket_config.slug}/users`
8 | return requestHandler(HTTP_METHODS.GET, endpoint, null)
9 | },
10 | getUser: (params) => {
11 | const endpoint = `${URI}/buckets/${bucket_config.slug}/users/${params.id}`
12 | return requestHandler(HTTP_METHODS.GET, endpoint, null)
13 | },
14 | addUser: (params) => {
15 | const endpoint = `${URI}/buckets/${bucket_config.slug}/users`
16 | return requestHandler(HTTP_METHODS.POST, endpoint, params)
17 | }
18 | })
19 |
20 | module.exports = userMethods
21 |
--------------------------------------------------------------------------------
/examples/browser/add-media.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Add Media
7 |
8 |
9 |
10 |
11 |
29 |
30 |
--------------------------------------------------------------------------------
/examples/browser/get-objects.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Get Objects
7 |
8 |
9 |
10 |
28 |
29 |
--------------------------------------------------------------------------------
/.circleci/config.yml:
--------------------------------------------------------------------------------
1 | # Javascript Node CircleCI 2.0 configuration file
2 | #
3 | # Check https://circleci.com/docs/2.0/language-javascript/ for more details
4 | #
5 | version: 2
6 | jobs:
7 | build:
8 | docker:
9 | # specify the version you desire here
10 | - image: circleci/node:10
11 |
12 | working_directory: ~/repo
13 |
14 | steps:
15 | - checkout
16 |
17 | # Download and cache dependencies
18 | - restore_cache:
19 | keys:
20 | - v1-dependencies-{{ checksum "package.json" }}
21 | # fallback to using the latest cache if no exact match is found
22 | - v1-dependencies-
23 |
24 | - run: npm install
25 |
26 | - save_cache:
27 | paths:
28 | - node_modules
29 | key: v1-dependencies-{{ checksum "package.json" }}
30 |
31 | # run tests!
32 | - run: npm test
33 |
--------------------------------------------------------------------------------
/src/bucket/webhook.js:
--------------------------------------------------------------------------------
1 | const { URI } = require('../helpers/constants')
2 | const HTTP_METHODS = require('../helpers/http_methods')
3 | const { requestHandler } = require('../helpers/request_handler')
4 |
5 | const webhookMethods = (bucket_config) => ({
6 | getWebhooks: () => {
7 | const endpoint = `${URI}/${bucket_config.slug}/webhooks`
8 | return requestHandler(HTTP_METHODS.GET, endpoint)
9 | },
10 | addWebhook: (params) => {
11 | const endpoint = `${URI}/${bucket_config.slug}/webhooks`
12 | if (bucket_config.write_key) {
13 | params.write_key = bucket_config.write_key
14 | }
15 | return requestHandler(HTTP_METHODS.POST, endpoint, params)
16 | },
17 | deleteWebhook: (params) => {
18 | const endpoint = `${URI}/${bucket_config.slug}/webhooks/${params.id}`
19 | return requestHandler(HTTP_METHODS.DELETE, endpoint, bucket_config)
20 | }
21 | })
22 |
23 | module.exports = webhookMethods
24 |
--------------------------------------------------------------------------------
/test/unit_tests/t_auth.js:
--------------------------------------------------------------------------------
1 | const expect = require('chai').expect
2 | const Cosmic = require('../../src/index')
3 | const { EMAIL, PASSWORD } = require('../constants')
4 |
5 | suite('Test Authenticate.', function() {
6 | this.timeout(30000);
7 | let config = {};
8 | test('authenticate hits expected url and returns data from request', function(done) {
9 | Cosmic().authenticate({
10 | email: EMAIL,
11 | password: PASSWORD
12 | }).then(data => {
13 | config.token = data.token;
14 | expect(data.token).to.be.a('string') /* response was as expected */
15 | done()
16 | }).catch(err => {
17 | console.log(err)
18 | done(err)
19 | })
20 | })
21 | test('getUser', function(done) {
22 | Cosmic({ token: config.token }).getUser()
23 | .then(data => {
24 | expect(data.user).to.be.an('object')
25 | done()
26 | }).catch(err => {
27 | done(err)
28 | })
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/dist/helpers/http_methods.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | var HTTP_METHODS = {
4 | POST: 'post',
5 | GET: 'get',
6 | FETCH: 'fetch',
7 | PUT: 'put',
8 | PATCH: 'patch',
9 | DELETE: 'delete'
10 | };
11 | module.exports = HTTP_METHODS;
12 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL2h0dHBfbWV0aG9kcy5qcyJdLCJuYW1lcyI6WyJIVFRQX01FVEhPRFMiLCJQT1NUIiwiR0VUIiwiRkVUQ0giLCJQVVQiLCJQQVRDSCIsIkRFTEVURSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBTUEsWUFBWSxHQUFHO0FBQ25CQyxFQUFBQSxJQUFJLEVBQUUsTUFEYTtBQUVuQkMsRUFBQUEsR0FBRyxFQUFFLEtBRmM7QUFHbkJDLEVBQUFBLEtBQUssRUFBRSxPQUhZO0FBSW5CQyxFQUFBQSxHQUFHLEVBQUUsS0FKYztBQUtuQkMsRUFBQUEsS0FBSyxFQUFFLE9BTFk7QUFNbkJDLEVBQUFBLE1BQU0sRUFBRTtBQU5XLENBQXJCO0FBU0FDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQlIsWUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBIVFRQX01FVEhPRFMgPSB7XG4gIFBPU1Q6ICdwb3N0JyxcbiAgR0VUOiAnZ2V0JyxcbiAgRkVUQ0g6ICdmZXRjaCcsXG4gIFBVVDogJ3B1dCcsXG4gIFBBVENIOiAncGF0Y2gnLFxuICBERUxFVEU6ICdkZWxldGUnXG59XG5cbm1vZHVsZS5leHBvcnRzID0gSFRUUF9NRVRIT0RTXG4iXX0=
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Cosmic JS
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 |
3 | # Logs
4 | logs
5 | *.log
6 | npm-debug.log*
7 | yarn-debug.log*
8 | yarn-error.log*
9 |
10 | # Runtime data
11 | pids
12 | *.pid
13 | *.seed
14 | *.pid.lock
15 |
16 | # Directory for instrumented libs generated by jscoverage/JSCover
17 | lib-cov
18 |
19 | # Coverage directory used by tools like istanbul
20 | coverage
21 |
22 | # nyc test coverage
23 | .nyc_output
24 |
25 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
26 | .grunt
27 |
28 | # Bower dependency directory (https://bower.io/)
29 | bower_components
30 |
31 | # node-waf configuration
32 | .lock-wscript
33 |
34 | # Compiled binary addons (https://nodejs.org/api/addons.html)
35 | build/Release
36 |
37 | # Dependency directories
38 | node_modules/
39 | jspm_packages/
40 |
41 | # Typescript v1 declaration files
42 | typings/
43 |
44 | # Optional npm cache directory
45 | .npm
46 |
47 | # Optional eslint cache
48 | .eslintcache
49 |
50 | # Optional REPL history
51 | .node_repl_history
52 |
53 | # Output of 'npm pack'
54 | *.tgz
55 |
56 | # Yarn Integrity file
57 | .yarn-integrity
58 |
59 | # dotenv environment variables file
60 | .env
61 |
62 | test.js
--------------------------------------------------------------------------------
/dist/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | var _require = require('./helpers/request_handler'),
4 | init = _require.init;
5 |
6 | var mainMethods = require('./main');
7 |
8 | var bucketMethods = require('./bucket');
9 |
10 | var Cosmic = function Cosmic(config) {
11 | init(config); // Combine methods
12 |
13 | var methods = {
14 | bucket: bucketMethods
15 | };
16 | return Object.assign(mainMethods, methods);
17 | };
18 |
19 | module.exports = Cosmic;
20 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJyZXF1aXJlIiwiaW5pdCIsIm1haW5NZXRob2RzIiwiYnVja2V0TWV0aG9kcyIsIkNvc21pYyIsImNvbmZpZyIsIm1ldGhvZHMiLCJidWNrZXQiLCJPYmplY3QiLCJhc3NpZ24iLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztlQUFpQkEsT0FBTyxDQUFDLDJCQUFELEM7SUFBaEJDLEksWUFBQUEsSTs7QUFDUixJQUFNQyxXQUFXLEdBQUdGLE9BQU8sQ0FBQyxRQUFELENBQTNCOztBQUNBLElBQU1HLGFBQWEsR0FBR0gsT0FBTyxDQUFDLFVBQUQsQ0FBN0I7O0FBRUEsSUFBTUksTUFBTSxHQUFHLFNBQVRBLE1BQVMsQ0FBQ0MsTUFBRCxFQUFZO0FBQ3pCSixFQUFBQSxJQUFJLENBQUNJLE1BQUQsQ0FBSixDQUR5QixDQUV6Qjs7QUFDQSxNQUFNQyxPQUFPLEdBQUc7QUFDZEMsSUFBQUEsTUFBTSxFQUFFSjtBQURNLEdBQWhCO0FBR0EsU0FBT0ssTUFBTSxDQUFDQyxNQUFQLENBQWNQLFdBQWQsRUFBMkJJLE9BQTNCLENBQVA7QUFDRCxDQVBEOztBQVNBSSxNQUFNLENBQUNDLE9BQVAsR0FBaUJQLE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyBpbml0IH0gPSByZXF1aXJlKCcuL2hlbHBlcnMvcmVxdWVzdF9oYW5kbGVyJylcbmNvbnN0IG1haW5NZXRob2RzID0gcmVxdWlyZSgnLi9tYWluJylcbmNvbnN0IGJ1Y2tldE1ldGhvZHMgPSByZXF1aXJlKCcuL2J1Y2tldCcpXG5cbmNvbnN0IENvc21pYyA9IChjb25maWcpID0+IHtcbiAgaW5pdChjb25maWcpXG4gIC8vIENvbWJpbmUgbWV0aG9kc1xuICBjb25zdCBtZXRob2RzID0ge1xuICAgIGJ1Y2tldDogYnVja2V0TWV0aG9kc1xuICB9XG4gIHJldHVybiBPYmplY3QuYXNzaWduKG1haW5NZXRob2RzLCBtZXRob2RzKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IENvc21pY1xuIl19
--------------------------------------------------------------------------------
/dist/helpers/constants.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | var API_URL = process.env.COSMIC_API_URL || 'https://api.cosmicjs.com';
4 | var UPLOAD_API_URL = process.env.UPLOAD_API_URL || 'https://upload.cosmicjs.com';
5 | var API_VERSION = process.env.COSMIC_API_VERSION || 'v2';
6 | var URI = "".concat(API_URL, "/").concat(API_VERSION);
7 | module.exports = {
8 | API_URL: API_URL,
9 | UPLOAD_API_URL: UPLOAD_API_URL,
10 | API_VERSION: API_VERSION,
11 | URI: URI
12 | };
13 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJBUElfVVJMIiwicHJvY2VzcyIsImVudiIsIkNPU01JQ19BUElfVVJMIiwiVVBMT0FEX0FQSV9VUkwiLCJBUElfVkVSU0lPTiIsIkNPU01JQ19BUElfVkVSU0lPTiIsIlVSSSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsY0FBWixJQUE4QiwwQkFBOUM7QUFDQSxJQUFNQyxjQUFjLEdBQUdILE9BQU8sQ0FBQ0MsR0FBUixDQUFZRSxjQUFaLElBQThCLDZCQUFyRDtBQUNBLElBQU1DLFdBQVcsR0FBR0osT0FBTyxDQUFDQyxHQUFSLENBQVlJLGtCQUFaLElBQWtDLElBQXREO0FBQ0EsSUFBTUMsR0FBRyxhQUFNUCxPQUFOLGNBQWlCSyxXQUFqQixDQUFUO0FBRUFHLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNmVCxFQUFBQSxPQUFPLEVBQVBBLE9BRGU7QUFFZkksRUFBQUEsY0FBYyxFQUFkQSxjQUZlO0FBR2ZDLEVBQUFBLFdBQVcsRUFBWEEsV0FIZTtBQUlmRSxFQUFBQSxHQUFHLEVBQUhBO0FBSmUsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBBUElfVVJMID0gcHJvY2Vzcy5lbnYuQ09TTUlDX0FQSV9VUkwgfHwgJ2h0dHBzOi8vYXBpLmNvc21pY2pzLmNvbSdcbmNvbnN0IFVQTE9BRF9BUElfVVJMID0gcHJvY2Vzcy5lbnYuVVBMT0FEX0FQSV9VUkwgfHwgJ2h0dHBzOi8vdXBsb2FkLmNvc21pY2pzLmNvbSdcbmNvbnN0IEFQSV9WRVJTSU9OID0gcHJvY2Vzcy5lbnYuQ09TTUlDX0FQSV9WRVJTSU9OIHx8ICd2MidcbmNvbnN0IFVSSSA9IGAke0FQSV9VUkx9LyR7QVBJX1ZFUlNJT059YFxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgQVBJX1VSTCxcbiAgVVBMT0FEX0FQSV9VUkwsXG4gIEFQSV9WRVJTSU9OLFxuICBVUklcbn1cbiJdfQ==
--------------------------------------------------------------------------------
/src/bucket/object-type.js:
--------------------------------------------------------------------------------
1 | const { URI } = require('../helpers/constants')
2 | const HTTP_METHODS = require('../helpers/http_methods')
3 | const { requestHandler } = require('../helpers/request_handler')
4 |
5 | let headers
6 |
7 | const objectTypeMethods = (bucket_config) => ({
8 | getObjectTypes: () => {
9 | const endpoint = `${URI}/buckets/${bucket_config.slug}/object-types?read_key=${bucket_config.read_key}`
10 | return requestHandler(HTTP_METHODS.GET, endpoint)
11 | },
12 | getObjectType: (params) => {
13 | const endpoint = `${URI}/buckets/${bucket_config.slug}/object-types/${params.slug}?read_key=${bucket_config.read_key}`
14 | return requestHandler(HTTP_METHODS.GET, endpoint)
15 | },
16 | addObjectType: (params) => {
17 | const endpoint = `${URI}/buckets/${bucket_config.slug}/object-types`
18 | if (bucket_config.write_key) {
19 | headers = {
20 | Authorization: `Bearer ${bucket_config.write_key}`
21 | }
22 | }
23 | return requestHandler(HTTP_METHODS.POST, endpoint, params, headers)
24 | },
25 | editObjectType: (params) => {
26 | const endpoint = `${URI}/buckets/${bucket_config.slug}/object-types/${params.slug}`
27 | if (bucket_config.write_key) {
28 | headers = {
29 | Authorization: `Bearer ${bucket_config.write_key}`
30 | }
31 | }
32 | // Remove slug
33 | delete params.slug
34 | return requestHandler(HTTP_METHODS.PATCH, endpoint, params, headers)
35 | },
36 | deleteObjectType: (params) => {
37 | const endpoint = `${URI}/buckets/${bucket_config.slug}/object-types/${params.slug}`
38 | if (bucket_config.write_key) {
39 | headers = {
40 | Authorization: `Bearer ${bucket_config.write_key}`
41 | }
42 | }
43 | return requestHandler(HTTP_METHODS.DELETE, endpoint, null, headers)
44 | }
45 | })
46 |
47 | module.exports = objectTypeMethods
48 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | const HTTP_METHODS = require('./helpers/http_methods')
2 | const { requestHandler } = require('./helpers/request_handler')
3 | const { URI } = require('./helpers/constants')
4 |
5 | const mainMethods = {
6 | authenticate: (params) => {
7 | const endpoint = `${URI}/authenticate`
8 | return requestHandler(HTTP_METHODS.POST, endpoint, params)
9 | },
10 | getUser: () => {
11 | const endpoint = `${URI}/user`
12 | return requestHandler(HTTP_METHODS.GET, endpoint)
13 | },
14 | getProjects: () => {
15 | const endpoint = `${URI}/projects`
16 | return requestHandler(HTTP_METHODS.GET, endpoint)
17 | },
18 | addProject: (params) => {
19 | const endpoint = `${URI}/projects`
20 | return requestHandler(HTTP_METHODS.POST, endpoint, params)
21 | },
22 | getProject: (params) => {
23 | const endpoint = `${URI}/projects/${params.id}`
24 | return requestHandler(HTTP_METHODS.GET, endpoint)
25 | },
26 | editProject: (params) => {
27 | const endpoint = `${URI}/projects/${params.id}`
28 | delete params.id
29 | return requestHandler(HTTP_METHODS.PATCH, endpoint, params)
30 | },
31 | deleteProject: (params) => {
32 | const endpoint = `${URI}/projects/${params.id}`
33 | return requestHandler(HTTP_METHODS.DELETE, endpoint, params)
34 | },
35 | getBuckets: () => {
36 | const endpoint = `${URI}/buckets`
37 | return requestHandler(HTTP_METHODS.GET, endpoint)
38 | },
39 | getBucket: (params) => {
40 | const endpoint = `${URI}/buckets/${params.slug}`
41 | return requestHandler(HTTP_METHODS.GET, endpoint)
42 | },
43 | addBucket: (params) => {
44 | const endpoint = `${URI}/buckets`
45 | return requestHandler(HTTP_METHODS.POST, endpoint, params)
46 | },
47 | editBucket: (params) => {
48 | const endpoint = `${URI}/buckets/${params.slug}`
49 | delete params.slug
50 | return requestHandler(HTTP_METHODS.PATCH, endpoint, params)
51 | },
52 | deleteBucket: (params) => {
53 | const endpoint = `${URI}/buckets/${params.slug}`
54 | return requestHandler(HTTP_METHODS.DELETE, endpoint, params)
55 | }
56 | }
57 |
58 | module.exports = mainMethods
59 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "cosmicjs",
3 | "version": "4.3.7",
4 | "description": "The official client module for Cosmic. This module helps you easily add dynamic content to your website or application using the Cosmic headless CMS.",
5 | "keywords": [
6 | "headlesscms",
7 | "cms",
8 | "node",
9 | "content",
10 | "api",
11 | "react",
12 | "reactjs",
13 | "vue",
14 | "vuejs",
15 | "nextjs"
16 | ],
17 | "homepage": "https://www.cosmicjs.com",
18 | "bugs": {
19 | "url": "https://github.com/cosmicjs/cosmicjs-node/issues"
20 | },
21 | "repository": {
22 | "type": "git",
23 | "url": "git+https://github.com/cosmicjs/cosmicjs-node.git"
24 | },
25 | "license": "MIT",
26 | "author": "Tony Spiro ",
27 | "main": "dist/index.js",
28 | "types": "lib/cosmic.d.ts",
29 | "scripts": {
30 | "build": "npm run clean; webpack -p; babel src --out-dir dist --source-maps inline --copy-files",
31 | "clean": "rm -f ./cosmicjs.browser.min.js; rm -rf dist/*",
32 | "dev": "nodemon test.js && eslint test.js",
33 | "prepublish": "npm run build",
34 | "lint": "eslint src",
35 | "test": "mocha -u tdd test/**/*.js --reporter spec --timeout 5000"
36 | },
37 | "dependencies": {
38 | "axios": "^0.21.1",
39 | "form-data": "^3.0.0",
40 | "regenerator-runtime": "^0.13.9",
41 | "typescript": "^4.6.3"
42 | },
43 | "devDependencies": {
44 | "@babel/cli": "^7.10.4",
45 | "@babel/core": "^7.10.4",
46 | "@babel/preset-env": "^7.10.4",
47 | "archiver": "^4.0.1",
48 | "babel-loader": "^8.1.0",
49 | "blanket": "^1.2.3",
50 | "body-parser": "^1.18.2",
51 | "chai": "^4.1.2",
52 | "dirty-chai": "^2.0.1",
53 | "dotenv": "^8.2.0",
54 | "eslint": "^7.3.1",
55 | "eslint-config-airbnb-base": "^14.2.0",
56 | "eslint-loader": "^4.0.2",
57 | "eslint-plugin-import": "^2.22.0",
58 | "express": "^4.16.3",
59 | "mocha": "^8.0.1",
60 | "multer": "^1.3.0",
61 | "nock": "^13.0.2",
62 | "nodemon": "^2.0.4",
63 | "nyc": "^15.1.0",
64 | "rewire": "^5.0.0",
65 | "webpack": "^4.43.0",
66 | "webpack-cli": "^3.3.12",
67 | "webpack-dev-server": "^3.11.0"
68 | },
69 | "engines": {
70 | "node": ">=6.0"
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/dist/helpers/promiser.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | var HTTP_METHODS = require('./http_methods');
4 |
5 | var _require = require('./request_handler_promise'),
6 | requestHandler = _require.requestHandler;
7 |
8 | var promiser = function promiser(endpoint) {
9 | return new Promise(function (resolve, reject) {
10 | requestHandler(HTTP_METHODS.GET, endpoint).then(function (response) {
11 | return resolve(response.data);
12 | })["catch"](function (err) {
13 | return reject(err.response ? err.response.data : err.response);
14 | });
15 | });
16 | };
17 |
18 | module.exports = promiser;
19 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Byb21pc2VyLmpzIl0sIm5hbWVzIjpbIkhUVFBfTUVUSE9EUyIsInJlcXVpcmUiLCJyZXF1ZXN0SGFuZGxlciIsInByb21pc2VyIiwiZW5kcG9pbnQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsIkdFVCIsInRoZW4iLCJyZXNwb25zZSIsImRhdGEiLCJlcnIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQU1BLFlBQVksR0FBR0MsT0FBTyxDQUFDLGdCQUFELENBQTVCOztlQUMyQkEsT0FBTyxDQUFDLDJCQUFELEM7SUFBMUJDLGMsWUFBQUEsYzs7QUFFUixJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFDQyxRQUFEO0FBQUEsU0FBYyxJQUFJQyxPQUFKLENBQVksVUFBQ0MsT0FBRCxFQUFVQyxNQUFWLEVBQXFCO0FBQzlETCxJQUFBQSxjQUFjLENBQUNGLFlBQVksQ0FBQ1EsR0FBZCxFQUFtQkosUUFBbkIsQ0FBZCxDQUNHSyxJQURILENBQ1EsVUFBQ0MsUUFBRDtBQUFBLGFBQWNKLE9BQU8sQ0FBQ0ksUUFBUSxDQUFDQyxJQUFWLENBQXJCO0FBQUEsS0FEUixXQUVTLFVBQUNDLEdBQUQ7QUFBQSxhQUFTTCxNQUFNLENBQUNLLEdBQUcsQ0FBQ0YsUUFBSixHQUFlRSxHQUFHLENBQUNGLFFBQUosQ0FBYUMsSUFBNUIsR0FBbUNDLEdBQUcsQ0FBQ0YsUUFBeEMsQ0FBZjtBQUFBLEtBRlQ7QUFHRCxHQUo4QixDQUFkO0FBQUEsQ0FBakI7O0FBS0FHLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQlgsUUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBIVFRQX01FVEhPRFMgPSByZXF1aXJlKCcuL2h0dHBfbWV0aG9kcycpXG5jb25zdCB7IHJlcXVlc3RIYW5kbGVyIH0gPSByZXF1aXJlKCcuL3JlcXVlc3RfaGFuZGxlcl9wcm9taXNlJylcblxuY29uc3QgcHJvbWlzZXIgPSAoZW5kcG9pbnQpID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLkdFVCwgZW5kcG9pbnQpXG4gICAgLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNvbHZlKHJlc3BvbnNlLmRhdGEpKVxuICAgIC5jYXRjaCgoZXJyKSA9PiByZWplY3QoZXJyLnJlc3BvbnNlID8gZXJyLnJlc3BvbnNlLmRhdGEgOiBlcnIucmVzcG9uc2UpKVxufSlcbm1vZHVsZS5leHBvcnRzID0gcHJvbWlzZXJcbiJdfQ==
--------------------------------------------------------------------------------
/test/unit_tests/t_project_methods.js:
--------------------------------------------------------------------------------
1 | const expect = require('chai').expect
2 | const Cosmic = require('../../src/index')
3 | const { EMAIL, PASSWORD } = require('../constants')
4 |
5 | let config = {};
6 | suite('Test Project Methods.', function() {
7 | this.timeout(10000);
8 | setup(function(done) {
9 | Cosmic().authenticate({
10 | email: EMAIL,
11 | password: PASSWORD
12 | }).then(data => {
13 | config.token = data.token;
14 | done()
15 | }).catch(err => {
16 | console.log(err)
17 | done(err)
18 | })
19 | })
20 | test('addProject', function(done) {
21 | Cosmic({ token: config.token }).addProject({
22 | title: 'My New Project'
23 | })
24 | .then(data => {
25 | expect(data.project).to.be.an('object')
26 | config.project = data.project;
27 | done()
28 | }).catch(err => {
29 | console.log(err)
30 | done(err)
31 | })
32 | })
33 | test('getProjects', function(done) {
34 | Cosmic({ token: config.token }).getProjects()
35 | .then(data => {
36 | expect(data.projects).to.be.an('array')
37 | done()
38 | }).catch(err => {
39 | console.log(err)
40 | done(err)
41 | })
42 | })
43 | test('getProject', function(done) {
44 | Cosmic({ token: config.token }).getProject({ id: config.project.id })
45 | .then(data => {
46 | expect(data.project).to.be.an('object')
47 | done()
48 | }).catch(err => {
49 | console.log(err)
50 | done(err)
51 | })
52 | })
53 | test('editProject', function(done) {
54 | Cosmic({ token: config.token }).editProject({
55 | id: config.project.id,
56 | title: 'New Project Edit'
57 | })
58 | .then(data => {
59 | expect(data.project).to.be.an('object')
60 | done()
61 | }).catch(err => {
62 | console.log(err)
63 | done(err)
64 | })
65 | })
66 | test('deleteProject', function(done) {
67 | Cosmic({ token: config.token }).deleteProject({ id: config.project.id })
68 | .then(data => {
69 | expect(data.message).to.be.a('string')
70 | done()
71 | }).catch(err => {
72 | console.log(err)
73 | done(err)
74 | })
75 | })
76 | })
--------------------------------------------------------------------------------
/src/bucket/extension.js:
--------------------------------------------------------------------------------
1 | const FormData = require('form-data')
2 | const { URI } = require('../helpers/constants')
3 | const HTTP_METHODS = require('../helpers/http_methods')
4 | const { requestHandler } = require('../helpers/request_handler')
5 |
6 | const extensionMethods = (bucket_config) => ({
7 | getExtensions: () => {
8 | const endpoint = `${URI}/${bucket_config.slug}/extensions`
9 | return requestHandler(HTTP_METHODS.GET, endpoint)
10 | },
11 | addExtension: (params) => {
12 | const endpoint = `${URI}/${bucket_config.slug}/extensions`
13 | let data
14 | if (params.zip) {
15 | data = new FormData()
16 | if (params.zip.buffer) {
17 | data.append('zip', params.zip.buffer, params.zip.originalname)
18 | } else {
19 | data.append('zip', params.zip, params.zip.name)
20 | }
21 | if (bucket_config.write_key) {
22 | data.append('write_key', bucket_config.write_key)
23 | }
24 | } else {
25 | data = params
26 | if (bucket_config.write_key) {
27 | data.write_key = bucket_config.write_key
28 | }
29 | }
30 | const getHeaders = ((form) => new Promise((resolve, reject) => {
31 | if (params.zip) {
32 | if (params.zip.buffer) {
33 | form.getLength((err, length) => {
34 | if (err) reject(err)
35 | const headers = { 'Content-Length': length, ...form.getHeaders() }
36 | resolve(headers)
37 | })
38 | } else {
39 | resolve({ 'Content-Type': 'multipart/form-data' })
40 | }
41 | } else {
42 | resolve({ 'Content-Type': 'application/json' })
43 | }
44 | })
45 | )
46 | return getHeaders(data)
47 | .then((headers) => requestHandler(HTTP_METHODS.POST, endpoint, data, headers)
48 | .catch((error) => {
49 | throw error.response.data
50 | }))
51 | },
52 | editExtension: (params) => {
53 | const endpoint = `${URI}/${bucket_config.slug}/extensions/${params.id}`
54 | if (bucket_config.write_key) {
55 | params.write_key = bucket_config.write_key
56 | }
57 | return requestHandler(HTTP_METHODS.PUT, endpoint, params)
58 | },
59 | deleteExtension: (params) => {
60 | const endpoint = `${URI}/${bucket_config.slug}/extensions/${params.id}`
61 | return requestHandler(HTTP_METHODS.DELETE, endpoint, bucket_config)
62 | }
63 | })
64 |
65 | module.exports = extensionMethods
66 |
--------------------------------------------------------------------------------
/dist/helpers/request_handler_promise.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | var axios = require('axios');
4 |
5 | var init = function init(config) {
6 | // Accept Encoding in Node
7 | if (typeof window === 'undefined') {
8 | axios.defaults.headers.common['Accept-Encoding'] = 'gzip, deflate';
9 | }
10 |
11 | if (config && config.token) {
12 | axios.defaults.headers.common.Authorization = config.token;
13 | }
14 | };
15 |
16 | var requestHandler = function requestHandler(method, url, data, headers) {
17 | var config = {
18 | method: method,
19 | url: url,
20 | data: data,
21 | headers: headers
22 | };
23 | return axios(config);
24 | };
25 |
26 | module.exports = {
27 | init: init,
28 | requestHandler: requestHandler
29 | };
30 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3JlcXVlc3RfaGFuZGxlcl9wcm9taXNlLmpzIl0sIm5hbWVzIjpbImF4aW9zIiwicmVxdWlyZSIsImluaXQiLCJjb25maWciLCJ3aW5kb3ciLCJkZWZhdWx0cyIsImhlYWRlcnMiLCJjb21tb24iLCJ0b2tlbiIsIkF1dGhvcml6YXRpb24iLCJyZXF1ZXN0SGFuZGxlciIsIm1ldGhvZCIsInVybCIsImRhdGEiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLE9BQUQsQ0FBckI7O0FBRUEsSUFBTUMsSUFBSSxHQUFHLFNBQVBBLElBQU8sQ0FBQ0MsTUFBRCxFQUFZO0FBQ3ZCO0FBQ0EsTUFBSSxPQUFPQyxNQUFQLEtBQWtCLFdBQXRCLEVBQW1DO0FBQ2pDSixJQUFBQSxLQUFLLENBQUNLLFFBQU4sQ0FBZUMsT0FBZixDQUF1QkMsTUFBdkIsQ0FBOEIsaUJBQTlCLElBQW1ELGVBQW5EO0FBQ0Q7O0FBQ0QsTUFBSUosTUFBTSxJQUFJQSxNQUFNLENBQUNLLEtBQXJCLEVBQTRCO0FBQzFCUixJQUFBQSxLQUFLLENBQUNLLFFBQU4sQ0FBZUMsT0FBZixDQUF1QkMsTUFBdkIsQ0FBOEJFLGFBQTlCLEdBQThDTixNQUFNLENBQUNLLEtBQXJEO0FBQ0Q7QUFDRixDQVJEOztBQVVBLElBQU1FLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBQ0MsTUFBRCxFQUFTQyxHQUFULEVBQWNDLElBQWQsRUFBb0JQLE9BQXBCLEVBQWdDO0FBQ3JELE1BQU1ILE1BQU0sR0FBRztBQUNiUSxJQUFBQSxNQUFNLEVBQU5BLE1BRGE7QUFFYkMsSUFBQUEsR0FBRyxFQUFIQSxHQUZhO0FBR2JDLElBQUFBLElBQUksRUFBSkEsSUFIYTtBQUliUCxJQUFBQSxPQUFPLEVBQVBBO0FBSmEsR0FBZjtBQU1BLFNBQU9OLEtBQUssQ0FBQ0csTUFBRCxDQUFaO0FBQ0QsQ0FSRDs7QUFVQVcsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2ZiLEVBQUFBLElBQUksRUFBSkEsSUFEZTtBQUVmUSxFQUFBQSxjQUFjLEVBQWRBO0FBRmUsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBheGlvcyA9IHJlcXVpcmUoJ2F4aW9zJylcblxuY29uc3QgaW5pdCA9IChjb25maWcpID0+IHtcbiAgLy8gQWNjZXB0IEVuY29kaW5nIGluIE5vZGVcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgYXhpb3MuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ0FjY2VwdC1FbmNvZGluZyddID0gJ2d6aXAsIGRlZmxhdGUnXG4gIH1cbiAgaWYgKGNvbmZpZyAmJiBjb25maWcudG9rZW4pIHtcbiAgICBheGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vbi5BdXRob3JpemF0aW9uID0gY29uZmlnLnRva2VuXG4gIH1cbn1cblxuY29uc3QgcmVxdWVzdEhhbmRsZXIgPSAobWV0aG9kLCB1cmwsIGRhdGEsIGhlYWRlcnMpID0+IHtcbiAgY29uc3QgY29uZmlnID0ge1xuICAgIG1ldGhvZCxcbiAgICB1cmwsXG4gICAgZGF0YSxcbiAgICBoZWFkZXJzXG4gIH1cbiAgcmV0dXJuIGF4aW9zKGNvbmZpZylcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGluaXQsXG4gIHJlcXVlc3RIYW5kbGVyXG59XG4iXX0=
--------------------------------------------------------------------------------
/dist/helpers/request_handler.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | var axios = require('axios');
4 |
5 | var init = function init(config) {
6 | // Accept Encoding in Node
7 | if (typeof window === 'undefined') {
8 | axios.defaults.headers.common['Accept-Encoding'] = 'gzip, deflate';
9 | }
10 |
11 | if (config && config.token) {
12 | axios.defaults.headers.common.Authorization = config.token;
13 | }
14 | };
15 |
16 | var requestHandler = function requestHandler(method, url, data, headers) {
17 | var config = {
18 | method: method,
19 | url: url,
20 | data: data,
21 | headers: headers
22 | };
23 | return axios(config).then(function (response) {
24 | return response.data;
25 | })["catch"](function (error) {
26 | throw error.response ? error.response.data : error.response;
27 | });
28 | };
29 |
30 | module.exports = {
31 | init: init,
32 | requestHandler: requestHandler
33 | };
34 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3JlcXVlc3RfaGFuZGxlci5qcyJdLCJuYW1lcyI6WyJheGlvcyIsInJlcXVpcmUiLCJpbml0IiwiY29uZmlnIiwid2luZG93IiwiZGVmYXVsdHMiLCJoZWFkZXJzIiwiY29tbW9uIiwidG9rZW4iLCJBdXRob3JpemF0aW9uIiwicmVxdWVzdEhhbmRsZXIiLCJtZXRob2QiLCJ1cmwiLCJkYXRhIiwidGhlbiIsInJlc3BvbnNlIiwiZXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLE9BQUQsQ0FBckI7O0FBRUEsSUFBTUMsSUFBSSxHQUFHLFNBQVBBLElBQU8sQ0FBQ0MsTUFBRCxFQUFZO0FBQ3ZCO0FBQ0EsTUFBSSxPQUFPQyxNQUFQLEtBQWtCLFdBQXRCLEVBQW1DO0FBQ2pDSixJQUFBQSxLQUFLLENBQUNLLFFBQU4sQ0FBZUMsT0FBZixDQUF1QkMsTUFBdkIsQ0FBOEIsaUJBQTlCLElBQW1ELGVBQW5EO0FBQ0Q7O0FBQ0QsTUFBSUosTUFBTSxJQUFJQSxNQUFNLENBQUNLLEtBQXJCLEVBQTRCO0FBQzFCUixJQUFBQSxLQUFLLENBQUNLLFFBQU4sQ0FBZUMsT0FBZixDQUF1QkMsTUFBdkIsQ0FBOEJFLGFBQTlCLEdBQThDTixNQUFNLENBQUNLLEtBQXJEO0FBQ0Q7QUFDRixDQVJEOztBQVVBLElBQU1FLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBQ0MsTUFBRCxFQUFTQyxHQUFULEVBQWNDLElBQWQsRUFBb0JQLE9BQXBCLEVBQWdDO0FBQ3JELE1BQU1ILE1BQU0sR0FBRztBQUNiUSxJQUFBQSxNQUFNLEVBQU5BLE1BRGE7QUFFYkMsSUFBQUEsR0FBRyxFQUFIQSxHQUZhO0FBR2JDLElBQUFBLElBQUksRUFBSkEsSUFIYTtBQUliUCxJQUFBQSxPQUFPLEVBQVBBO0FBSmEsR0FBZjtBQU1BLFNBQU9OLEtBQUssQ0FBQ0csTUFBRCxDQUFMLENBQWNXLElBQWQsQ0FBbUIsVUFBQ0MsUUFBRDtBQUFBLFdBQWNBLFFBQVEsQ0FBQ0YsSUFBdkI7QUFBQSxHQUFuQixXQUFzRCxVQUFDRyxLQUFELEVBQVc7QUFDdEUsVUFBT0EsS0FBSyxDQUFDRCxRQUFOLEdBQWlCQyxLQUFLLENBQUNELFFBQU4sQ0FBZUYsSUFBaEMsR0FBdUNHLEtBQUssQ0FBQ0QsUUFBcEQ7QUFDRCxHQUZNLENBQVA7QUFHRCxDQVZEOztBQVlBRSxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDZmhCLEVBQUFBLElBQUksRUFBSkEsSUFEZTtBQUVmUSxFQUFBQSxjQUFjLEVBQWRBO0FBRmUsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBheGlvcyA9IHJlcXVpcmUoJ2F4aW9zJylcblxuY29uc3QgaW5pdCA9IChjb25maWcpID0+IHtcbiAgLy8gQWNjZXB0IEVuY29kaW5nIGluIE5vZGVcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgYXhpb3MuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ0FjY2VwdC1FbmNvZGluZyddID0gJ2d6aXAsIGRlZmxhdGUnXG4gIH1cbiAgaWYgKGNvbmZpZyAmJiBjb25maWcudG9rZW4pIHtcbiAgICBheGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vbi5BdXRob3JpemF0aW9uID0gY29uZmlnLnRva2VuXG4gIH1cbn1cblxuY29uc3QgcmVxdWVzdEhhbmRsZXIgPSAobWV0aG9kLCB1cmwsIGRhdGEsIGhlYWRlcnMpID0+IHtcbiAgY29uc3QgY29uZmlnID0ge1xuICAgIG1ldGhvZCxcbiAgICB1cmwsXG4gICAgZGF0YSxcbiAgICBoZWFkZXJzXG4gIH1cbiAgcmV0dXJuIGF4aW9zKGNvbmZpZykudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlLmRhdGEpLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIHRocm93IChlcnJvci5yZXNwb25zZSA/IGVycm9yLnJlc3BvbnNlLmRhdGEgOiBlcnJvci5yZXNwb25zZSlcbiAgfSlcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGluaXQsXG4gIHJlcXVlc3RIYW5kbGVyXG59XG4iXX0=
--------------------------------------------------------------------------------
/dist/bucket/user.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | var _require = require('../helpers/constants'),
4 | URI = _require.URI;
5 |
6 | var HTTP_METHODS = require('../helpers/http_methods');
7 |
8 | var _require2 = require('../helpers/request_handler'),
9 | requestHandler = _require2.requestHandler;
10 |
11 | var userMethods = function userMethods(bucket_config) {
12 | return {
13 | getUsers: function getUsers() {
14 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/users");
15 | return requestHandler(HTTP_METHODS.GET, endpoint, null);
16 | },
17 | getUser: function getUser(params) {
18 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/users/").concat(params.id);
19 | return requestHandler(HTTP_METHODS.GET, endpoint, null);
20 | },
21 | addUser: function addUser(params) {
22 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/users");
23 | return requestHandler(HTTP_METHODS.POST, endpoint, params);
24 | }
25 | };
26 | };
27 |
28 | module.exports = userMethods;
29 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWNrZXQvdXNlci5qcyJdLCJuYW1lcyI6WyJyZXF1aXJlIiwiVVJJIiwiSFRUUF9NRVRIT0RTIiwicmVxdWVzdEhhbmRsZXIiLCJ1c2VyTWV0aG9kcyIsImJ1Y2tldF9jb25maWciLCJnZXRVc2VycyIsImVuZHBvaW50Iiwic2x1ZyIsIkdFVCIsImdldFVzZXIiLCJwYXJhbXMiLCJpZCIsImFkZFVzZXIiLCJQT1NUIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7ZUFBZ0JBLE9BQU8sQ0FBQyxzQkFBRCxDO0lBQWZDLEcsWUFBQUEsRzs7QUFDUixJQUFNQyxZQUFZLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUE1Qjs7Z0JBQzJCQSxPQUFPLENBQUMsNEJBQUQsQztJQUExQkcsYyxhQUFBQSxjOztBQUVSLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUNDLGFBQUQ7QUFBQSxTQUFvQjtBQUN0Q0MsSUFBQUEsUUFBUSxFQUFFLG9CQUFNO0FBQ2QsVUFBTUMsUUFBUSxhQUFNTixHQUFOLHNCQUFxQkksYUFBYSxDQUFDRyxJQUFuQyxXQUFkO0FBQ0EsYUFBT0wsY0FBYyxDQUFDRCxZQUFZLENBQUNPLEdBQWQsRUFBbUJGLFFBQW5CLEVBQTZCLElBQTdCLENBQXJCO0FBQ0QsS0FKcUM7QUFLdENHLElBQUFBLE9BQU8sRUFBRSxpQkFBQ0MsTUFBRCxFQUFZO0FBQ25CLFVBQU1KLFFBQVEsYUFBTU4sR0FBTixzQkFBcUJJLGFBQWEsQ0FBQ0csSUFBbkMsb0JBQWlERyxNQUFNLENBQUNDLEVBQXhELENBQWQ7QUFDQSxhQUFPVCxjQUFjLENBQUNELFlBQVksQ0FBQ08sR0FBZCxFQUFtQkYsUUFBbkIsRUFBNkIsSUFBN0IsQ0FBckI7QUFDRCxLQVJxQztBQVN0Q00sSUFBQUEsT0FBTyxFQUFFLGlCQUFDRixNQUFELEVBQVk7QUFDbkIsVUFBTUosUUFBUSxhQUFNTixHQUFOLHNCQUFxQkksYUFBYSxDQUFDRyxJQUFuQyxXQUFkO0FBQ0EsYUFBT0wsY0FBYyxDQUFDRCxZQUFZLENBQUNZLElBQWQsRUFBb0JQLFFBQXBCLEVBQThCSSxNQUE5QixDQUFyQjtBQUNEO0FBWnFDLEdBQXBCO0FBQUEsQ0FBcEI7O0FBZUFJLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQlosV0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IFVSSSB9ID0gcmVxdWlyZSgnLi4vaGVscGVycy9jb25zdGFudHMnKVxuY29uc3QgSFRUUF9NRVRIT0RTID0gcmVxdWlyZSgnLi4vaGVscGVycy9odHRwX21ldGhvZHMnKVxuY29uc3QgeyByZXF1ZXN0SGFuZGxlciB9ID0gcmVxdWlyZSgnLi4vaGVscGVycy9yZXF1ZXN0X2hhbmRsZXInKVxuXG5jb25zdCB1c2VyTWV0aG9kcyA9IChidWNrZXRfY29uZmlnKSA9PiAoe1xuICBnZXRVc2VyczogKCkgPT4ge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7VVJJfS9idWNrZXRzLyR7YnVja2V0X2NvbmZpZy5zbHVnfS91c2Vyc2BcbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLkdFVCwgZW5kcG9pbnQsIG51bGwpXG4gIH0sXG4gIGdldFVzZXI6IChwYXJhbXMpID0+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke1VSSX0vYnVja2V0cy8ke2J1Y2tldF9jb25maWcuc2x1Z30vdXNlcnMvJHtwYXJhbXMuaWR9YFxuICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcihIVFRQX01FVEhPRFMuR0VULCBlbmRwb2ludCwgbnVsbClcbiAgfSxcbiAgYWRkVXNlcjogKHBhcmFtcykgPT4ge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7VVJJfS9idWNrZXRzLyR7YnVja2V0X2NvbmZpZy5zbHVnfS91c2Vyc2BcbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLlBPU1QsIGVuZHBvaW50LCBwYXJhbXMpXG4gIH1cbn0pXG5cbm1vZHVsZS5leHBvcnRzID0gdXNlck1ldGhvZHNcbiJdfQ==
--------------------------------------------------------------------------------
/dist/bucket.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
4 |
5 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
6 |
7 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8 |
9 | var objectMethods = require('./bucket/object');
10 |
11 | var objectTypeMethods = require('./bucket/object-type');
12 |
13 | var mediaMethods = require('./bucket/media');
14 |
15 | var userMethods = require('./bucket/user'); // const webhookMethods = require('./bucket/webhook') // TODO
16 | // const extensionMethods = require('./bucket/extension') // TODO
17 |
18 |
19 | var bucket_methods = function bucket_methods(bucket_config) {
20 | return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, objectMethods(bucket_config)), objectTypeMethods(bucket_config)), mediaMethods(bucket_config)), userMethods(bucket_config));
21 | };
22 |
23 | module.exports = bucket_methods;
24 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9idWNrZXQuanMiXSwibmFtZXMiOlsib2JqZWN0TWV0aG9kcyIsInJlcXVpcmUiLCJvYmplY3RUeXBlTWV0aG9kcyIsIm1lZGlhTWV0aG9kcyIsInVzZXJNZXRob2RzIiwiYnVja2V0X21ldGhvZHMiLCJidWNrZXRfY29uZmlnIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFNQSxhQUFhLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUE3Qjs7QUFDQSxJQUFNQyxpQkFBaUIsR0FBR0QsT0FBTyxDQUFDLHNCQUFELENBQWpDOztBQUNBLElBQU1FLFlBQVksR0FBR0YsT0FBTyxDQUFDLGdCQUFELENBQTVCOztBQUNBLElBQU1HLFdBQVcsR0FBR0gsT0FBTyxDQUFDLGVBQUQsQ0FBM0IsQyxDQUNBO0FBQ0E7OztBQUVBLElBQU1JLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBQ0MsYUFBRDtBQUFBLHFFQUNsQk4sYUFBYSxDQUFDTSxhQUFELENBREssR0FFbEJKLGlCQUFpQixDQUFFSSxhQUFGLENBRkMsR0FHbEJILFlBQVksQ0FBRUcsYUFBRixDQUhNLEdBSWxCRixXQUFXLENBQUNFLGFBQUQsQ0FKTztBQUFBLENBQXZCOztBQVNBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJILGNBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgb2JqZWN0TWV0aG9kcyA9IHJlcXVpcmUoJy4vYnVja2V0L29iamVjdCcpXG5jb25zdCBvYmplY3RUeXBlTWV0aG9kcyA9IHJlcXVpcmUoJy4vYnVja2V0L29iamVjdC10eXBlJylcbmNvbnN0IG1lZGlhTWV0aG9kcyA9IHJlcXVpcmUoJy4vYnVja2V0L21lZGlhJylcbmNvbnN0IHVzZXJNZXRob2RzID0gcmVxdWlyZSgnLi9idWNrZXQvdXNlcicpXG4vLyBjb25zdCB3ZWJob29rTWV0aG9kcyA9IHJlcXVpcmUoJy4vYnVja2V0L3dlYmhvb2snKSAvLyBUT0RPXG4vLyBjb25zdCBleHRlbnNpb25NZXRob2RzID0gcmVxdWlyZSgnLi9idWNrZXQvZXh0ZW5zaW9uJykgLy8gVE9ET1xuXG5jb25zdCBidWNrZXRfbWV0aG9kcyA9IChidWNrZXRfY29uZmlnKSA9PiAoe1xuICAuLi5vYmplY3RNZXRob2RzKGJ1Y2tldF9jb25maWcpLFxuICAuLi5vYmplY3RUeXBlTWV0aG9kcygoYnVja2V0X2NvbmZpZykpLFxuICAuLi5tZWRpYU1ldGhvZHMoKGJ1Y2tldF9jb25maWcpKSxcbiAgLi4udXNlck1ldGhvZHMoYnVja2V0X2NvbmZpZylcbiAgLy8gLi4ud2ViaG9va01ldGhvZHMoYnVja2V0X2NvbmZpZyksIC8vIFRPRE9cbiAgLy8gLi4uZXh0ZW5zaW9uTWV0aG9kcyhidWNrZXRfY29uZmlnKSAvLyBUT0RPXG59KVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJ1Y2tldF9tZXRob2RzXG4iXX0=
--------------------------------------------------------------------------------
/dist/bucket/webhook.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | var _require = require('../helpers/constants'),
4 | URI = _require.URI;
5 |
6 | var HTTP_METHODS = require('../helpers/http_methods');
7 |
8 | var _require2 = require('../helpers/request_handler'),
9 | requestHandler = _require2.requestHandler;
10 |
11 | var webhookMethods = function webhookMethods(bucket_config) {
12 | return {
13 | getWebhooks: function getWebhooks() {
14 | var endpoint = "".concat(URI, "/").concat(bucket_config.slug, "/webhooks");
15 | return requestHandler(HTTP_METHODS.GET, endpoint);
16 | },
17 | addWebhook: function addWebhook(params) {
18 | var endpoint = "".concat(URI, "/").concat(bucket_config.slug, "/webhooks");
19 |
20 | if (bucket_config.write_key) {
21 | params.write_key = bucket_config.write_key;
22 | }
23 |
24 | return requestHandler(HTTP_METHODS.POST, endpoint, params);
25 | },
26 | deleteWebhook: function deleteWebhook(params) {
27 | var endpoint = "".concat(URI, "/").concat(bucket_config.slug, "/webhooks/").concat(params.id);
28 | return requestHandler(HTTP_METHODS.DELETE, endpoint, bucket_config);
29 | }
30 | };
31 | };
32 |
33 | module.exports = webhookMethods;
34 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWNrZXQvd2ViaG9vay5qcyJdLCJuYW1lcyI6WyJyZXF1aXJlIiwiVVJJIiwiSFRUUF9NRVRIT0RTIiwicmVxdWVzdEhhbmRsZXIiLCJ3ZWJob29rTWV0aG9kcyIsImJ1Y2tldF9jb25maWciLCJnZXRXZWJob29rcyIsImVuZHBvaW50Iiwic2x1ZyIsIkdFVCIsImFkZFdlYmhvb2siLCJwYXJhbXMiLCJ3cml0ZV9rZXkiLCJQT1NUIiwiZGVsZXRlV2ViaG9vayIsImlkIiwiREVMRVRFIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7ZUFBZ0JBLE9BQU8sQ0FBQyxzQkFBRCxDO0lBQWZDLEcsWUFBQUEsRzs7QUFDUixJQUFNQyxZQUFZLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUE1Qjs7Z0JBQzJCQSxPQUFPLENBQUMsNEJBQUQsQztJQUExQkcsYyxhQUFBQSxjOztBQUVSLElBQU1DLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBQ0MsYUFBRDtBQUFBLFNBQW9CO0FBQ3pDQyxJQUFBQSxXQUFXLEVBQUUsdUJBQU07QUFDakIsVUFBTUMsUUFBUSxhQUFNTixHQUFOLGNBQWFJLGFBQWEsQ0FBQ0csSUFBM0IsY0FBZDtBQUNBLGFBQU9MLGNBQWMsQ0FBQ0QsWUFBWSxDQUFDTyxHQUFkLEVBQW1CRixRQUFuQixDQUFyQjtBQUNELEtBSndDO0FBS3pDRyxJQUFBQSxVQUFVLEVBQUUsb0JBQUNDLE1BQUQsRUFBWTtBQUN0QixVQUFNSixRQUFRLGFBQU1OLEdBQU4sY0FBYUksYUFBYSxDQUFDRyxJQUEzQixjQUFkOztBQUNBLFVBQUlILGFBQWEsQ0FBQ08sU0FBbEIsRUFBNkI7QUFDM0JELFFBQUFBLE1BQU0sQ0FBQ0MsU0FBUCxHQUFtQlAsYUFBYSxDQUFDTyxTQUFqQztBQUNEOztBQUNELGFBQU9ULGNBQWMsQ0FBQ0QsWUFBWSxDQUFDVyxJQUFkLEVBQW9CTixRQUFwQixFQUE4QkksTUFBOUIsQ0FBckI7QUFDRCxLQVh3QztBQVl6Q0csSUFBQUEsYUFBYSxFQUFFLHVCQUFDSCxNQUFELEVBQVk7QUFDekIsVUFBTUosUUFBUSxhQUFNTixHQUFOLGNBQWFJLGFBQWEsQ0FBQ0csSUFBM0IsdUJBQTRDRyxNQUFNLENBQUNJLEVBQW5ELENBQWQ7QUFDQSxhQUFPWixjQUFjLENBQUNELFlBQVksQ0FBQ2MsTUFBZCxFQUFzQlQsUUFBdEIsRUFBZ0NGLGFBQWhDLENBQXJCO0FBQ0Q7QUFmd0MsR0FBcEI7QUFBQSxDQUF2Qjs7QUFrQkFZLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmQsY0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IFVSSSB9ID0gcmVxdWlyZSgnLi4vaGVscGVycy9jb25zdGFudHMnKVxuY29uc3QgSFRUUF9NRVRIT0RTID0gcmVxdWlyZSgnLi4vaGVscGVycy9odHRwX21ldGhvZHMnKVxuY29uc3QgeyByZXF1ZXN0SGFuZGxlciB9ID0gcmVxdWlyZSgnLi4vaGVscGVycy9yZXF1ZXN0X2hhbmRsZXInKVxuXG5jb25zdCB3ZWJob29rTWV0aG9kcyA9IChidWNrZXRfY29uZmlnKSA9PiAoe1xuICBnZXRXZWJob29rczogKCkgPT4ge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7VVJJfS8ke2J1Y2tldF9jb25maWcuc2x1Z30vd2ViaG9va3NgXG4gICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyKEhUVFBfTUVUSE9EUy5HRVQsIGVuZHBvaW50KVxuICB9LFxuICBhZGRXZWJob29rOiAocGFyYW1zKSA9PiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHtVUkl9LyR7YnVja2V0X2NvbmZpZy5zbHVnfS93ZWJob29rc2BcbiAgICBpZiAoYnVja2V0X2NvbmZpZy53cml0ZV9rZXkpIHtcbiAgICAgIHBhcmFtcy53cml0ZV9rZXkgPSBidWNrZXRfY29uZmlnLndyaXRlX2tleVxuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLlBPU1QsIGVuZHBvaW50LCBwYXJhbXMpXG4gIH0sXG4gIGRlbGV0ZVdlYmhvb2s6IChwYXJhbXMpID0+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke1VSSX0vJHtidWNrZXRfY29uZmlnLnNsdWd9L3dlYmhvb2tzLyR7cGFyYW1zLmlkfWBcbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLkRFTEVURSwgZW5kcG9pbnQsIGJ1Y2tldF9jb25maWcpXG4gIH1cbn0pXG5cbm1vZHVsZS5leHBvcnRzID0gd2ViaG9va01ldGhvZHNcbiJdfQ==
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Cosmic NPM module (dashboard v1)
2 | ## IMPORTANT
3 | This package connects to projects on the old Cosmic dashboard and API v2 only. To connect to projects on the [new Cosmic dashboard](https://app.cosmicjs.com/signup) and API v3 use the [Cosmic JavaScript SDK](https://www.npmjs.com/package/@cosmicjs/sdk).
4 |
5 |
6 | ## Content management made simple, fast, and secure.
7 |
8 | [Cosmic](https://www.cosmicjs.com/) is a [headless CMS](https://www.cosmicjs.com/headless-cms) (content management system) that provides a web dashboard to create content and an API toolkit to deliver content to any website or application. Build nearly any type of content model using our admin dashboard then deliver your content powered by our [reliable infrastructure](https://cosmicjs.statuspage.io/) and global CDN.
9 |
10 | ### Save time and launch faster
11 |
12 | Avoid the pain of building, configuring, and maintaining your own CMS infrastructure. Cosmic has all of the features you need out of the box optimized and ready. Plug into Cosmic, save time, and launch your content-powered apps faster.
13 |
14 | ### **Features include**
15 |
16 | 🛠️ Powerful content modeling
17 | 🔍 Flexible queries
18 | ⚡ Customized API response
19 | 🌎 Localization
20 | 🎨 Image optimization
21 | …and more! [See more features →](https://www.cosmicjs.com/features)
22 |
23 | ## Get started
24 |
25 | Start by going to [https://www.cosmicjs.com](https://www.cosmicjs.com/), create your **free account** and set up a project. You can get started from scratch, or start with a [pre-built template](https://www.cosmicjs.com/apps). Then follow the steps below to use this NPM package.
26 |
27 | ## Install
28 |
29 | Install the Cosmic NPM module:
30 |
31 | ```bash
32 | pnpm install cosmicjs
33 | # OR
34 | yarn add cosmicjs
35 | # OR
36 | npm install cosmicjs
37 | ```
38 |
39 | ## Import
40 |
41 | Import Cosmic into your app:
42 |
43 | ```jsx
44 | const Cosmic = require("cosmicjs")
45 | const api = Cosmic()
46 | ```
47 |
48 | ## Connect
49 |
50 | In your [Cosmic admin dashboard](https://app.cosmicjs.com/login) go to _Your Bucket > Settings > API Access_ and get your Bucket slug and read key then set the variables in your app to connect to your Bucket:
51 |
52 | ```jsx
53 | const bucket = api.bucket({
54 | slug: "YOUR_BUCKET_SLUG",
55 | read_key: "YOUR_BUCKET_READ_KEY",
56 | })
57 | ```
58 |
59 | ## Get content
60 |
61 | Delivering content to your app is simple using the `objects.find` method.
62 |
63 | **Get multiple Objects**
64 |
65 | Use the `objects.find` method and set the `type` property to any Object Type slug. Additional options noted below.
66 |
67 | ```jsx
68 | const data = await bucket.objects.find({
69 | type: "products" // Object Type slug
70 | })
71 | .props("title,slug,metadata") // response properties
72 | .limit(10) // number of Objects to be returned
73 | ```
74 |
75 | **Get single Object by slug**
76 |
77 | Use the `objects.find` method and set the `slug` property to any Object slug.
78 |
79 | ```jsx
80 | const data = await bucket.objects.find({
81 | type: "pages", // Object Type slug
82 | slug: "home", // Object slug
83 | locale: "en", // optional, if localization set on Objects
84 | })
85 | .props("title,slug,metadata") // response properties
86 | ```
87 |
88 | ### More examples
89 |
90 | For more in-depth guides on getting Cosmic data into your app, you can view these [basic query examples](https://docs.cosmicjs.com/examples/basic-queries). When you are ready to level up, check out [advanced query examples](https://docs.cosmicjs.com/examples/advanced-queries).
91 |
92 | ## Add content
93 |
94 | The Cosmic API is fully CRUD (create, read, update, delete) capable, enabling user-generated content and file uploads. Check out the [add Object](https://docs.cosmicjs.com/examples/add-object) and [add media](https://docs.cosmicjs.com/examples/add-media) examples in the documentation.
95 |
96 | ## Further documentation
97 |
98 | See the [full documentation](https://docs.cosmicjs.com/) for more requests and capabilities.
99 |
100 | ## Community support
101 |
102 | For general help, please refer to [the official Cosmic documentation](https://docs.cosmicjs.com). For additional help, you can use one of these channels to ask a question:
103 |
104 | - [Slack](https://www.cosmicjs.com/community) (For live discussions with the Cosmic community and team)
105 | - [GitHub](https://github.com/cosmicjs/cosmicjs-node) (Bug reports, contributions)
106 | - [Twitter](https://twitter.com/cosmicjs) (Get the latest news about Cosmic features and notifications)
107 | - [YouTube](https://www.youtube.com/cosmicjs) (Learn from video tutorials)
108 |
109 | ## License
110 |
111 | This project is published under the [MIT](https://github.com/cosmicjs/cosmicjs-node/blob/HEAD/LICENSE) license.
112 |
--------------------------------------------------------------------------------
/src/bucket/media.js:
--------------------------------------------------------------------------------
1 | require('regenerator-runtime/runtime')
2 |
3 | const FormData = require('form-data')
4 | const { URI, UPLOAD_API_URL, API_VERSION } = require('../helpers/constants')
5 | const HTTP_METHODS = require('../helpers/http_methods')
6 | const { requestHandler } = require('../helpers/request_handler')
7 | const promiser = require('../helpers/promiser')
8 |
9 | const mediaChainMethods = (bucket_config) => ({
10 | // Get
11 | find(query) {
12 | this.endpoint = `${URI}/buckets/${bucket_config.slug}/media?read_key=${bucket_config.read_key}${query ? `&query=${encodeURI(JSON.stringify(query))}` : ''}`
13 | return this
14 | },
15 | // findOne
16 | findOne(query) {
17 | this.endpoint = `${URI}/buckets/${bucket_config.slug}/media/${query.id}?read_key=${bucket_config.read_key}`
18 | return this
19 | },
20 | props(props) {
21 | this.endpoint += `&props=${props}`
22 | return this
23 | },
24 | sort(sort) {
25 | this.endpoint += `&sort=${sort}`
26 | return this
27 | },
28 | limit(limit) {
29 | this.endpoint += `&limit=${limit}`
30 | return this
31 | },
32 | skip(skip) {
33 | this.endpoint += `&skip=${skip}`
34 | return this
35 | },
36 | // insertOne
37 | async insertOne(params) {
38 | const endpoint = `${UPLOAD_API_URL}/${API_VERSION}/buckets/${bucket_config.slug}/media`
39 | const data = new FormData()
40 | if (params.media.buffer) {
41 | data.append('media', params.media.buffer, params.media.originalname)
42 | } else {
43 | data.append('media', params.media, params.media.name)
44 | }
45 | if (bucket_config.write_key) {
46 | data.append('write_key', bucket_config.write_key)
47 | }
48 | if (params.folder) {
49 | data.append('folder', params.folder)
50 | }
51 | if (params.metadata) {
52 | data.append('metadata', JSON.stringify(params.metadata))
53 | }
54 | if (params.trigger_webhook) {
55 | data.append('trigger_webhook', params.trigger_webhook.toString())
56 | }
57 | const getHeaders = ((form) => new Promise((resolve, reject) => {
58 | if (params.media.buffer) {
59 | form.getLength((err, length) => {
60 | if (err) reject(err)
61 | const headers = { 'Content-Length': length, ...form.getHeaders() }
62 | resolve(headers)
63 | })
64 | } else {
65 | resolve({ 'Content-Type': 'multipart/form-data' })
66 | }
67 | })
68 | )
69 | return getHeaders(data)
70 | .then((headers) => {
71 | headers.Authorization = `Bearer ${bucket_config.write_key}`
72 | return requestHandler(HTTP_METHODS.POST, endpoint, data, headers)
73 | }).catch((error) => {
74 | throw error.response.data
75 | })
76 | },
77 | // Delete
78 | async deleteOne(params) {
79 | const endpoint = `${URI}/buckets/${bucket_config.slug}/media/${params.id}${params.trigger_webhook ? '?trigger_webhook=true' : ''}`
80 | let headers
81 | if (bucket_config.write_key) {
82 | headers = {
83 | Authorization: `Bearer ${bucket_config.write_key}`
84 | }
85 | }
86 | return requestHandler(HTTP_METHODS.DELETE, endpoint, null, headers)
87 | },
88 | async then(resolve, reject) {
89 | promiser(this.endpoint).then((res) => resolve(res, null)).catch((err) => {
90 | if (typeof reject === 'function') {
91 | reject(err)
92 | } else {
93 | resolve(null, err)
94 | }
95 | })
96 | }
97 | })
98 |
99 | const mediaMethods = (bucket_config) => ({
100 | media: mediaChainMethods(bucket_config),
101 | addMedia: (params) => {
102 | const endpoint = `${UPLOAD_API_URL}/${API_VERSION}/buckets/${bucket_config.slug}/media`
103 | const data = new FormData()
104 | if (params.media.buffer) {
105 | data.append('media', params.media.buffer, params.media.originalname)
106 | } else {
107 | data.append('media', params.media, params.media.name)
108 | }
109 | if (bucket_config.write_key) {
110 | data.append('write_key', bucket_config.write_key)
111 | }
112 | if (params.folder) {
113 | data.append('folder', params.folder)
114 | }
115 | if (params.metadata) {
116 | data.append('metadata', JSON.stringify(params.metadata))
117 | }
118 | if (params.trigger_webhook) {
119 | data.append('trigger_webhook', params.trigger_webhook.toString())
120 | }
121 | const getHeaders = ((form) => new Promise((resolve, reject) => {
122 | if (params.media.buffer) {
123 | form.getLength((err, length) => {
124 | if (err) reject(err)
125 | const headers = { 'Content-Length': length, ...form.getHeaders() }
126 | resolve(headers)
127 | })
128 | } else {
129 | resolve({ 'Content-Type': 'multipart/form-data' })
130 | }
131 | })
132 | )
133 | return getHeaders(data)
134 | .then((headers) => {
135 | headers.Authorization = `Bearer ${bucket_config.write_key}`
136 | return requestHandler(HTTP_METHODS.POST, endpoint, data, headers)
137 | }).catch((error) => {
138 | throw error.response.data
139 | })
140 | },
141 | getMedia: (params) => {
142 | let endpoint = `${URI}/buckets/${bucket_config.slug}/media?read_key=${bucket_config.read_key}`
143 | if (params && params.limit) {
144 | endpoint += `&limit=${params.limit}`
145 | }
146 | if (params && params.skip) {
147 | endpoint += `&skip=${params.skip}`
148 | }
149 | if (params && params.query) {
150 | endpoint += `&query=${encodeURI(JSON.stringify(params.query))}`
151 | }
152 | if (params && params.props) {
153 | endpoint += `&props=${params.props}`
154 | }
155 | return requestHandler(HTTP_METHODS.GET, endpoint)
156 | },
157 | getSingleMedia: (params) => {
158 | let endpoint = `${URI}/buckets/${bucket_config.slug}/media/${params.id}?read_key=${bucket_config.read_key}`
159 | if (params && params.props) {
160 | endpoint += `&props=${params.props}`
161 | }
162 | return requestHandler(HTTP_METHODS.GET, endpoint)
163 | },
164 | deleteMedia: (params) => {
165 | const endpoint = `${URI}/buckets/${bucket_config.slug}/media/${params.id}${params.trigger_webhook ? '?trigger_webhook=true' : ''}`
166 | let headers
167 | if (bucket_config.write_key) {
168 | headers = {
169 | Authorization: `Bearer ${bucket_config.write_key}`
170 | }
171 | }
172 | return requestHandler(HTTP_METHODS.DELETE, endpoint, null, headers)
173 | }
174 | })
175 |
176 | module.exports = mediaMethods
177 |
--------------------------------------------------------------------------------
/dist/bucket/object-type.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | var _require = require('../helpers/constants'),
4 | URI = _require.URI;
5 |
6 | var HTTP_METHODS = require('../helpers/http_methods');
7 |
8 | var _require2 = require('../helpers/request_handler'),
9 | requestHandler = _require2.requestHandler;
10 |
11 | var headers;
12 |
13 | var objectTypeMethods = function objectTypeMethods(bucket_config) {
14 | return {
15 | getObjectTypes: function getObjectTypes() {
16 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/object-types?read_key=").concat(bucket_config.read_key);
17 | return requestHandler(HTTP_METHODS.GET, endpoint);
18 | },
19 | getObjectType: function getObjectType(params) {
20 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/object-types/").concat(params.slug, "?read_key=").concat(bucket_config.read_key);
21 | return requestHandler(HTTP_METHODS.GET, endpoint);
22 | },
23 | addObjectType: function addObjectType(params) {
24 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/object-types");
25 |
26 | if (bucket_config.write_key) {
27 | headers = {
28 | Authorization: "Bearer ".concat(bucket_config.write_key)
29 | };
30 | }
31 |
32 | return requestHandler(HTTP_METHODS.POST, endpoint, params, headers);
33 | },
34 | editObjectType: function editObjectType(params) {
35 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/object-types/").concat(params.slug);
36 |
37 | if (bucket_config.write_key) {
38 | headers = {
39 | Authorization: "Bearer ".concat(bucket_config.write_key)
40 | };
41 | } // Remove slug
42 |
43 |
44 | delete params.slug;
45 | return requestHandler(HTTP_METHODS.PATCH, endpoint, params, headers);
46 | },
47 | deleteObjectType: function deleteObjectType(params) {
48 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/object-types/").concat(params.slug);
49 |
50 | if (bucket_config.write_key) {
51 | headers = {
52 | Authorization: "Bearer ".concat(bucket_config.write_key)
53 | };
54 | }
55 |
56 | return requestHandler(HTTP_METHODS.DELETE, endpoint, null, headers);
57 | }
58 | };
59 | };
60 |
61 | module.exports = objectTypeMethods;
62 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWNrZXQvb2JqZWN0LXR5cGUuanMiXSwibmFtZXMiOlsicmVxdWlyZSIsIlVSSSIsIkhUVFBfTUVUSE9EUyIsInJlcXVlc3RIYW5kbGVyIiwiaGVhZGVycyIsIm9iamVjdFR5cGVNZXRob2RzIiwiYnVja2V0X2NvbmZpZyIsImdldE9iamVjdFR5cGVzIiwiZW5kcG9pbnQiLCJzbHVnIiwicmVhZF9rZXkiLCJHRVQiLCJnZXRPYmplY3RUeXBlIiwicGFyYW1zIiwiYWRkT2JqZWN0VHlwZSIsIndyaXRlX2tleSIsIkF1dGhvcml6YXRpb24iLCJQT1NUIiwiZWRpdE9iamVjdFR5cGUiLCJQQVRDSCIsImRlbGV0ZU9iamVjdFR5cGUiLCJERUxFVEUiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztlQUFnQkEsT0FBTyxDQUFDLHNCQUFELEM7SUFBZkMsRyxZQUFBQSxHOztBQUNSLElBQU1DLFlBQVksR0FBR0YsT0FBTyxDQUFDLHlCQUFELENBQTVCOztnQkFDMkJBLE9BQU8sQ0FBQyw0QkFBRCxDO0lBQTFCRyxjLGFBQUFBLGM7O0FBRVIsSUFBSUMsT0FBSjs7QUFFQSxJQUFNQyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQW9CLENBQUNDLGFBQUQ7QUFBQSxTQUFvQjtBQUM1Q0MsSUFBQUEsY0FBYyxFQUFFLDBCQUFNO0FBQ3BCLFVBQU1DLFFBQVEsYUFBTVAsR0FBTixzQkFBcUJLLGFBQWEsQ0FBQ0csSUFBbkMsb0NBQWlFSCxhQUFhLENBQUNJLFFBQS9FLENBQWQ7QUFDQSxhQUFPUCxjQUFjLENBQUNELFlBQVksQ0FBQ1MsR0FBZCxFQUFtQkgsUUFBbkIsQ0FBckI7QUFDRCxLQUoyQztBQUs1Q0ksSUFBQUEsYUFBYSxFQUFFLHVCQUFDQyxNQUFELEVBQVk7QUFDekIsVUFBTUwsUUFBUSxhQUFNUCxHQUFOLHNCQUFxQkssYUFBYSxDQUFDRyxJQUFuQywyQkFBd0RJLE1BQU0sQ0FBQ0osSUFBL0QsdUJBQWdGSCxhQUFhLENBQUNJLFFBQTlGLENBQWQ7QUFDQSxhQUFPUCxjQUFjLENBQUNELFlBQVksQ0FBQ1MsR0FBZCxFQUFtQkgsUUFBbkIsQ0FBckI7QUFDRCxLQVIyQztBQVM1Q00sSUFBQUEsYUFBYSxFQUFFLHVCQUFDRCxNQUFELEVBQVk7QUFDekIsVUFBTUwsUUFBUSxhQUFNUCxHQUFOLHNCQUFxQkssYUFBYSxDQUFDRyxJQUFuQyxrQkFBZDs7QUFDQSxVQUFJSCxhQUFhLENBQUNTLFNBQWxCLEVBQTZCO0FBQzNCWCxRQUFBQSxPQUFPLEdBQUc7QUFDUlksVUFBQUEsYUFBYSxtQkFBWVYsYUFBYSxDQUFDUyxTQUExQjtBQURMLFNBQVY7QUFHRDs7QUFDRCxhQUFPWixjQUFjLENBQUNELFlBQVksQ0FBQ2UsSUFBZCxFQUFvQlQsUUFBcEIsRUFBOEJLLE1BQTlCLEVBQXNDVCxPQUF0QyxDQUFyQjtBQUNELEtBakIyQztBQWtCNUNjLElBQUFBLGNBQWMsRUFBRSx3QkFBQ0wsTUFBRCxFQUFZO0FBQzFCLFVBQU1MLFFBQVEsYUFBTVAsR0FBTixzQkFBcUJLLGFBQWEsQ0FBQ0csSUFBbkMsMkJBQXdESSxNQUFNLENBQUNKLElBQS9ELENBQWQ7O0FBQ0EsVUFBSUgsYUFBYSxDQUFDUyxTQUFsQixFQUE2QjtBQUMzQlgsUUFBQUEsT0FBTyxHQUFHO0FBQ1JZLFVBQUFBLGFBQWEsbUJBQVlWLGFBQWEsQ0FBQ1MsU0FBMUI7QUFETCxTQUFWO0FBR0QsT0FOeUIsQ0FPMUI7OztBQUNBLGFBQU9GLE1BQU0sQ0FBQ0osSUFBZDtBQUNBLGFBQU9OLGNBQWMsQ0FBQ0QsWUFBWSxDQUFDaUIsS0FBZCxFQUFxQlgsUUFBckIsRUFBK0JLLE1BQS9CLEVBQXVDVCxPQUF2QyxDQUFyQjtBQUNELEtBNUIyQztBQTZCNUNnQixJQUFBQSxnQkFBZ0IsRUFBRSwwQkFBQ1AsTUFBRCxFQUFZO0FBQzVCLFVBQU1MLFFBQVEsYUFBTVAsR0FBTixzQkFBcUJLLGFBQWEsQ0FBQ0csSUFBbkMsMkJBQXdESSxNQUFNLENBQUNKLElBQS9ELENBQWQ7O0FBQ0EsVUFBSUgsYUFBYSxDQUFDUyxTQUFsQixFQUE2QjtBQUMzQlgsUUFBQUEsT0FBTyxHQUFHO0FBQ1JZLFVBQUFBLGFBQWEsbUJBQVlWLGFBQWEsQ0FBQ1MsU0FBMUI7QUFETCxTQUFWO0FBR0Q7O0FBQ0QsYUFBT1osY0FBYyxDQUFDRCxZQUFZLENBQUNtQixNQUFkLEVBQXNCYixRQUF0QixFQUFnQyxJQUFoQyxFQUFzQ0osT0FBdEMsQ0FBckI7QUFDRDtBQXJDMkMsR0FBcEI7QUFBQSxDQUExQjs7QUF3Q0FrQixNQUFNLENBQUNDLE9BQVAsR0FBaUJsQixpQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IFVSSSB9ID0gcmVxdWlyZSgnLi4vaGVscGVycy9jb25zdGFudHMnKVxuY29uc3QgSFRUUF9NRVRIT0RTID0gcmVxdWlyZSgnLi4vaGVscGVycy9odHRwX21ldGhvZHMnKVxuY29uc3QgeyByZXF1ZXN0SGFuZGxlciB9ID0gcmVxdWlyZSgnLi4vaGVscGVycy9yZXF1ZXN0X2hhbmRsZXInKVxuXG5sZXQgaGVhZGVyc1xuXG5jb25zdCBvYmplY3RUeXBlTWV0aG9kcyA9IChidWNrZXRfY29uZmlnKSA9PiAoe1xuICBnZXRPYmplY3RUeXBlczogKCkgPT4ge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7VVJJfS9idWNrZXRzLyR7YnVja2V0X2NvbmZpZy5zbHVnfS9vYmplY3QtdHlwZXM/cmVhZF9rZXk9JHtidWNrZXRfY29uZmlnLnJlYWRfa2V5fWBcbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLkdFVCwgZW5kcG9pbnQpXG4gIH0sXG4gIGdldE9iamVjdFR5cGU6IChwYXJhbXMpID0+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke1VSSX0vYnVja2V0cy8ke2J1Y2tldF9jb25maWcuc2x1Z30vb2JqZWN0LXR5cGVzLyR7cGFyYW1zLnNsdWd9P3JlYWRfa2V5PSR7YnVja2V0X2NvbmZpZy5yZWFkX2tleX1gXG4gICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyKEhUVFBfTUVUSE9EUy5HRVQsIGVuZHBvaW50KVxuICB9LFxuICBhZGRPYmplY3RUeXBlOiAocGFyYW1zKSA9PiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHtVUkl9L2J1Y2tldHMvJHtidWNrZXRfY29uZmlnLnNsdWd9L29iamVjdC10eXBlc2BcbiAgICBpZiAoYnVja2V0X2NvbmZpZy53cml0ZV9rZXkpIHtcbiAgICAgIGhlYWRlcnMgPSB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtidWNrZXRfY29uZmlnLndyaXRlX2tleX1gXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcihIVFRQX01FVEhPRFMuUE9TVCwgZW5kcG9pbnQsIHBhcmFtcywgaGVhZGVycylcbiAgfSxcbiAgZWRpdE9iamVjdFR5cGU6IChwYXJhbXMpID0+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke1VSSX0vYnVja2V0cy8ke2J1Y2tldF9jb25maWcuc2x1Z30vb2JqZWN0LXR5cGVzLyR7cGFyYW1zLnNsdWd9YFxuICAgIGlmIChidWNrZXRfY29uZmlnLndyaXRlX2tleSkge1xuICAgICAgaGVhZGVycyA9IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2J1Y2tldF9jb25maWcud3JpdGVfa2V5fWBcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUmVtb3ZlIHNsdWdcbiAgICBkZWxldGUgcGFyYW1zLnNsdWdcbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLlBBVENILCBlbmRwb2ludCwgcGFyYW1zLCBoZWFkZXJzKVxuICB9LFxuICBkZWxldGVPYmplY3RUeXBlOiAocGFyYW1zKSA9PiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHtVUkl9L2J1Y2tldHMvJHtidWNrZXRfY29uZmlnLnNsdWd9L29iamVjdC10eXBlcy8ke3BhcmFtcy5zbHVnfWBcbiAgICBpZiAoYnVja2V0X2NvbmZpZy53cml0ZV9rZXkpIHtcbiAgICAgIGhlYWRlcnMgPSB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtidWNrZXRfY29uZmlnLndyaXRlX2tleX1gXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcihIVFRQX01FVEhPRFMuREVMRVRFLCBlbmRwb2ludCwgbnVsbCwgaGVhZGVycylcbiAgfVxufSlcblxubW9kdWxlLmV4cG9ydHMgPSBvYmplY3RUeXBlTWV0aG9kc1xuIl19
--------------------------------------------------------------------------------
/dist/main.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | var HTTP_METHODS = require('./helpers/http_methods');
4 |
5 | var _require = require('./helpers/request_handler'),
6 | requestHandler = _require.requestHandler;
7 |
8 | var _require2 = require('./helpers/constants'),
9 | URI = _require2.URI;
10 |
11 | var mainMethods = {
12 | authenticate: function authenticate(params) {
13 | var endpoint = "".concat(URI, "/authenticate");
14 | return requestHandler(HTTP_METHODS.POST, endpoint, params);
15 | },
16 | getUser: function getUser() {
17 | var endpoint = "".concat(URI, "/user");
18 | return requestHandler(HTTP_METHODS.GET, endpoint);
19 | },
20 | getProjects: function getProjects() {
21 | var endpoint = "".concat(URI, "/projects");
22 | return requestHandler(HTTP_METHODS.GET, endpoint);
23 | },
24 | addProject: function addProject(params) {
25 | var endpoint = "".concat(URI, "/projects");
26 | return requestHandler(HTTP_METHODS.POST, endpoint, params);
27 | },
28 | getProject: function getProject(params) {
29 | var endpoint = "".concat(URI, "/projects/").concat(params.id);
30 | return requestHandler(HTTP_METHODS.GET, endpoint);
31 | },
32 | editProject: function editProject(params) {
33 | var endpoint = "".concat(URI, "/projects/").concat(params.id);
34 | delete params.id;
35 | return requestHandler(HTTP_METHODS.PATCH, endpoint, params);
36 | },
37 | deleteProject: function deleteProject(params) {
38 | var endpoint = "".concat(URI, "/projects/").concat(params.id);
39 | return requestHandler(HTTP_METHODS.DELETE, endpoint, params);
40 | },
41 | getBuckets: function getBuckets() {
42 | var endpoint = "".concat(URI, "/buckets");
43 | return requestHandler(HTTP_METHODS.GET, endpoint);
44 | },
45 | getBucket: function getBucket(params) {
46 | var endpoint = "".concat(URI, "/buckets/").concat(params.slug);
47 | return requestHandler(HTTP_METHODS.GET, endpoint);
48 | },
49 | addBucket: function addBucket(params) {
50 | var endpoint = "".concat(URI, "/buckets");
51 | return requestHandler(HTTP_METHODS.POST, endpoint, params);
52 | },
53 | editBucket: function editBucket(params) {
54 | var endpoint = "".concat(URI, "/buckets/").concat(params.slug);
55 | delete params.slug;
56 | return requestHandler(HTTP_METHODS.PATCH, endpoint, params);
57 | },
58 | deleteBucket: function deleteBucket(params) {
59 | var endpoint = "".concat(URI, "/buckets/").concat(params.slug);
60 | return requestHandler(HTTP_METHODS.DELETE, endpoint, params);
61 | }
62 | };
63 | module.exports = mainMethods;
64 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLmpzIl0sIm5hbWVzIjpbIkhUVFBfTUVUSE9EUyIsInJlcXVpcmUiLCJyZXF1ZXN0SGFuZGxlciIsIlVSSSIsIm1haW5NZXRob2RzIiwiYXV0aGVudGljYXRlIiwicGFyYW1zIiwiZW5kcG9pbnQiLCJQT1NUIiwiZ2V0VXNlciIsIkdFVCIsImdldFByb2plY3RzIiwiYWRkUHJvamVjdCIsImdldFByb2plY3QiLCJpZCIsImVkaXRQcm9qZWN0IiwiUEFUQ0giLCJkZWxldGVQcm9qZWN0IiwiREVMRVRFIiwiZ2V0QnVja2V0cyIsImdldEJ1Y2tldCIsInNsdWciLCJhZGRCdWNrZXQiLCJlZGl0QnVja2V0IiwiZGVsZXRlQnVja2V0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFNQSxZQUFZLEdBQUdDLE9BQU8sQ0FBQyx3QkFBRCxDQUE1Qjs7ZUFDMkJBLE9BQU8sQ0FBQywyQkFBRCxDO0lBQTFCQyxjLFlBQUFBLGM7O2dCQUNRRCxPQUFPLENBQUMscUJBQUQsQztJQUFmRSxHLGFBQUFBLEc7O0FBRVIsSUFBTUMsV0FBVyxHQUFHO0FBQ2xCQyxFQUFBQSxZQUFZLEVBQUUsc0JBQUNDLE1BQUQsRUFBWTtBQUN4QixRQUFNQyxRQUFRLGFBQU1KLEdBQU4sa0JBQWQ7QUFDQSxXQUFPRCxjQUFjLENBQUNGLFlBQVksQ0FBQ1EsSUFBZCxFQUFvQkQsUUFBcEIsRUFBOEJELE1BQTlCLENBQXJCO0FBQ0QsR0FKaUI7QUFLbEJHLEVBQUFBLE9BQU8sRUFBRSxtQkFBTTtBQUNiLFFBQU1GLFFBQVEsYUFBTUosR0FBTixVQUFkO0FBQ0EsV0FBT0QsY0FBYyxDQUFDRixZQUFZLENBQUNVLEdBQWQsRUFBbUJILFFBQW5CLENBQXJCO0FBQ0QsR0FSaUI7QUFTbEJJLEVBQUFBLFdBQVcsRUFBRSx1QkFBTTtBQUNqQixRQUFNSixRQUFRLGFBQU1KLEdBQU4sY0FBZDtBQUNBLFdBQU9ELGNBQWMsQ0FBQ0YsWUFBWSxDQUFDVSxHQUFkLEVBQW1CSCxRQUFuQixDQUFyQjtBQUNELEdBWmlCO0FBYWxCSyxFQUFBQSxVQUFVLEVBQUUsb0JBQUNOLE1BQUQsRUFBWTtBQUN0QixRQUFNQyxRQUFRLGFBQU1KLEdBQU4sY0FBZDtBQUNBLFdBQU9ELGNBQWMsQ0FBQ0YsWUFBWSxDQUFDUSxJQUFkLEVBQW9CRCxRQUFwQixFQUE4QkQsTUFBOUIsQ0FBckI7QUFDRCxHQWhCaUI7QUFpQmxCTyxFQUFBQSxVQUFVLEVBQUUsb0JBQUNQLE1BQUQsRUFBWTtBQUN0QixRQUFNQyxRQUFRLGFBQU1KLEdBQU4sdUJBQXNCRyxNQUFNLENBQUNRLEVBQTdCLENBQWQ7QUFDQSxXQUFPWixjQUFjLENBQUNGLFlBQVksQ0FBQ1UsR0FBZCxFQUFtQkgsUUFBbkIsQ0FBckI7QUFDRCxHQXBCaUI7QUFxQmxCUSxFQUFBQSxXQUFXLEVBQUUscUJBQUNULE1BQUQsRUFBWTtBQUN2QixRQUFNQyxRQUFRLGFBQU1KLEdBQU4sdUJBQXNCRyxNQUFNLENBQUNRLEVBQTdCLENBQWQ7QUFDQSxXQUFPUixNQUFNLENBQUNRLEVBQWQ7QUFDQSxXQUFPWixjQUFjLENBQUNGLFlBQVksQ0FBQ2dCLEtBQWQsRUFBcUJULFFBQXJCLEVBQStCRCxNQUEvQixDQUFyQjtBQUNELEdBekJpQjtBQTBCbEJXLEVBQUFBLGFBQWEsRUFBRSx1QkFBQ1gsTUFBRCxFQUFZO0FBQ3pCLFFBQU1DLFFBQVEsYUFBTUosR0FBTix1QkFBc0JHLE1BQU0sQ0FBQ1EsRUFBN0IsQ0FBZDtBQUNBLFdBQU9aLGNBQWMsQ0FBQ0YsWUFBWSxDQUFDa0IsTUFBZCxFQUFzQlgsUUFBdEIsRUFBZ0NELE1BQWhDLENBQXJCO0FBQ0QsR0E3QmlCO0FBOEJsQmEsRUFBQUEsVUFBVSxFQUFFLHNCQUFNO0FBQ2hCLFFBQU1aLFFBQVEsYUFBTUosR0FBTixhQUFkO0FBQ0EsV0FBT0QsY0FBYyxDQUFDRixZQUFZLENBQUNVLEdBQWQsRUFBbUJILFFBQW5CLENBQXJCO0FBQ0QsR0FqQ2lCO0FBa0NsQmEsRUFBQUEsU0FBUyxFQUFFLG1CQUFDZCxNQUFELEVBQVk7QUFDckIsUUFBTUMsUUFBUSxhQUFNSixHQUFOLHNCQUFxQkcsTUFBTSxDQUFDZSxJQUE1QixDQUFkO0FBQ0EsV0FBT25CLGNBQWMsQ0FBQ0YsWUFBWSxDQUFDVSxHQUFkLEVBQW1CSCxRQUFuQixDQUFyQjtBQUNELEdBckNpQjtBQXNDbEJlLEVBQUFBLFNBQVMsRUFBRSxtQkFBQ2hCLE1BQUQsRUFBWTtBQUNyQixRQUFNQyxRQUFRLGFBQU1KLEdBQU4sYUFBZDtBQUNBLFdBQU9ELGNBQWMsQ0FBQ0YsWUFBWSxDQUFDUSxJQUFkLEVBQW9CRCxRQUFwQixFQUE4QkQsTUFBOUIsQ0FBckI7QUFDRCxHQXpDaUI7QUEwQ2xCaUIsRUFBQUEsVUFBVSxFQUFFLG9CQUFDakIsTUFBRCxFQUFZO0FBQ3RCLFFBQU1DLFFBQVEsYUFBTUosR0FBTixzQkFBcUJHLE1BQU0sQ0FBQ2UsSUFBNUIsQ0FBZDtBQUNBLFdBQU9mLE1BQU0sQ0FBQ2UsSUFBZDtBQUNBLFdBQU9uQixjQUFjLENBQUNGLFlBQVksQ0FBQ2dCLEtBQWQsRUFBcUJULFFBQXJCLEVBQStCRCxNQUEvQixDQUFyQjtBQUNELEdBOUNpQjtBQStDbEJrQixFQUFBQSxZQUFZLEVBQUUsc0JBQUNsQixNQUFELEVBQVk7QUFDeEIsUUFBTUMsUUFBUSxhQUFNSixHQUFOLHNCQUFxQkcsTUFBTSxDQUFDZSxJQUE1QixDQUFkO0FBQ0EsV0FBT25CLGNBQWMsQ0FBQ0YsWUFBWSxDQUFDa0IsTUFBZCxFQUFzQlgsUUFBdEIsRUFBZ0NELE1BQWhDLENBQXJCO0FBQ0Q7QUFsRGlCLENBQXBCO0FBcURBbUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCdEIsV0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBIVFRQX01FVEhPRFMgPSByZXF1aXJlKCcuL2hlbHBlcnMvaHR0cF9tZXRob2RzJylcbmNvbnN0IHsgcmVxdWVzdEhhbmRsZXIgfSA9IHJlcXVpcmUoJy4vaGVscGVycy9yZXF1ZXN0X2hhbmRsZXInKVxuY29uc3QgeyBVUkkgfSA9IHJlcXVpcmUoJy4vaGVscGVycy9jb25zdGFudHMnKVxuXG5jb25zdCBtYWluTWV0aG9kcyA9IHtcbiAgYXV0aGVudGljYXRlOiAocGFyYW1zKSA9PiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHtVUkl9L2F1dGhlbnRpY2F0ZWBcbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLlBPU1QsIGVuZHBvaW50LCBwYXJhbXMpXG4gIH0sXG4gIGdldFVzZXI6ICgpID0+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke1VSSX0vdXNlcmBcbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLkdFVCwgZW5kcG9pbnQpXG4gIH0sXG4gIGdldFByb2plY3RzOiAoKSA9PiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHtVUkl9L3Byb2plY3RzYFxuICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcihIVFRQX01FVEhPRFMuR0VULCBlbmRwb2ludClcbiAgfSxcbiAgYWRkUHJvamVjdDogKHBhcmFtcykgPT4ge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7VVJJfS9wcm9qZWN0c2BcbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLlBPU1QsIGVuZHBvaW50LCBwYXJhbXMpXG4gIH0sXG4gIGdldFByb2plY3Q6IChwYXJhbXMpID0+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke1VSSX0vcHJvamVjdHMvJHtwYXJhbXMuaWR9YFxuICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcihIVFRQX01FVEhPRFMuR0VULCBlbmRwb2ludClcbiAgfSxcbiAgZWRpdFByb2plY3Q6IChwYXJhbXMpID0+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke1VSSX0vcHJvamVjdHMvJHtwYXJhbXMuaWR9YFxuICAgIGRlbGV0ZSBwYXJhbXMuaWRcbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLlBBVENILCBlbmRwb2ludCwgcGFyYW1zKVxuICB9LFxuICBkZWxldGVQcm9qZWN0OiAocGFyYW1zKSA9PiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHtVUkl9L3Byb2plY3RzLyR7cGFyYW1zLmlkfWBcbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLkRFTEVURSwgZW5kcG9pbnQsIHBhcmFtcylcbiAgfSxcbiAgZ2V0QnVja2V0czogKCkgPT4ge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7VVJJfS9idWNrZXRzYFxuICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcihIVFRQX01FVEhPRFMuR0VULCBlbmRwb2ludClcbiAgfSxcbiAgZ2V0QnVja2V0OiAocGFyYW1zKSA9PiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHtVUkl9L2J1Y2tldHMvJHtwYXJhbXMuc2x1Z31gXG4gICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyKEhUVFBfTUVUSE9EUy5HRVQsIGVuZHBvaW50KVxuICB9LFxuICBhZGRCdWNrZXQ6IChwYXJhbXMpID0+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke1VSSX0vYnVja2V0c2BcbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLlBPU1QsIGVuZHBvaW50LCBwYXJhbXMpXG4gIH0sXG4gIGVkaXRCdWNrZXQ6IChwYXJhbXMpID0+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke1VSSX0vYnVja2V0cy8ke3BhcmFtcy5zbHVnfWBcbiAgICBkZWxldGUgcGFyYW1zLnNsdWdcbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLlBBVENILCBlbmRwb2ludCwgcGFyYW1zKVxuICB9LFxuICBkZWxldGVCdWNrZXQ6IChwYXJhbXMpID0+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke1VSSX0vYnVja2V0cy8ke3BhcmFtcy5zbHVnfWBcbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLkRFTEVURSwgZW5kcG9pbnQsIHBhcmFtcylcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1haW5NZXRob2RzXG4iXX0=
--------------------------------------------------------------------------------
/src/bucket/object.js:
--------------------------------------------------------------------------------
1 | require('regenerator-runtime/runtime')
2 |
3 | const { URI } = require('../helpers/constants')
4 | const HTTP_METHODS = require('../helpers/http_methods')
5 | const { requestHandler } = require('../helpers/request_handler')
6 | const promiser = require('../helpers/promiser')
7 |
8 | let headers
9 |
10 | const addParamsToObjectsEndpoint = (endpoint, params) => {
11 | let ep = endpoint
12 | if (params && params.limit) {
13 | ep += `&limit=${params.limit}`
14 | }
15 | if (params && params.skip) {
16 | ep += `&skip=${params.skip}`
17 | }
18 | if (params && params.status) {
19 | ep += `&status=${params.status}`
20 | }
21 | if (params && params.after) {
22 | ep += `&after=${params.after}`
23 | }
24 | if (params && params.sort) {
25 | ep += `&sort=${params.sort}`
26 | }
27 | if (params && params.show_metafields) {
28 | ep += `&show_metafields=${params.show_metafields}`
29 | }
30 | if (params && params.pretty) {
31 | ep += `&pretty=${params.pretty}`
32 | }
33 | if (params && params.props) {
34 | ep += `&props=${params.props}`
35 | }
36 | if (params && params.query) {
37 | ep += `&query=${encodeURI(JSON.stringify(params.query))}`
38 | }
39 | if (params && typeof params.use_cache !== 'undefined') {
40 | ep += `&use_cache=${params.use_cache}`
41 | }
42 | return ep
43 | }
44 |
45 | class FindChaining {
46 | constructor(endpoint) {
47 | this.endpoint = endpoint
48 | }
49 |
50 | props(props) {
51 | this.endpoint += `&props=${props}`
52 | return this
53 | }
54 |
55 | depth(depth) {
56 | this.endpoint += `&depth=${depth}`
57 | return this
58 | }
59 |
60 | sort(sort) {
61 | this.endpoint += `&sort=${sort}`
62 | return this
63 | }
64 |
65 | limit(limit) {
66 | this.endpoint += `&limit=${limit}`
67 | return this
68 | }
69 |
70 | skip(skip) {
71 | this.endpoint += `&skip=${skip}`
72 | return this
73 | }
74 |
75 | status(status) {
76 | this.endpoint += `&status=${status}`
77 | return this
78 | }
79 |
80 | after(after) {
81 | this.endpoint += `&after=${after}`
82 | return this
83 | }
84 |
85 | showMetafields(show_metafields) {
86 | this.endpoint += `&show_metafields=${show_metafields}`
87 | return this
88 | }
89 |
90 | useCache(use_cache) {
91 | this.endpoint += `&use_cache=${use_cache}`
92 | return this
93 | }
94 |
95 | async then(resolve, reject) {
96 | promiser(this.endpoint).then((res) => resolve(res, null)).catch((err) => {
97 | if (typeof reject === 'function') {
98 | reject(err)
99 | } else {
100 | resolve(null, err)
101 | }
102 | })
103 | }
104 | }
105 |
106 | const objectsChainMethods = (bucket_config) => ({
107 | // Get
108 | find(query) {
109 | const endpoint = `${URI}/buckets/${bucket_config.slug}/objects?read_key=${bucket_config.read_key}${query ? `&query=${encodeURI(JSON.stringify(query))}` : ''}`
110 | return new FindChaining(endpoint)
111 | },
112 | // findOne
113 | findOne(query) {
114 | const endpoint = `${URI}/buckets/${bucket_config.slug}/objects/${query.id}?read_key=${bucket_config.read_key}`
115 | return new FindChaining(endpoint)
116 | },
117 | // Add
118 | async insertOne(params) {
119 | const endpoint = `${URI}/buckets/${bucket_config.slug}/objects`
120 | if (bucket_config.write_key) {
121 | headers = {
122 | Authorization: `Bearer ${bucket_config.write_key}`
123 | }
124 | }
125 | return requestHandler(HTTP_METHODS.POST, endpoint, params, headers)
126 | },
127 | // Edit
128 | async updateOne(params, set) {
129 | const endpoint = `${URI}/buckets/${bucket_config.slug}/objects/${params.id}`
130 | const updates = set.$set
131 | if (bucket_config.write_key) {
132 | headers = {
133 | Authorization: `Bearer ${bucket_config.write_key}`
134 | }
135 | }
136 | return requestHandler(HTTP_METHODS.PATCH, endpoint, updates, headers)
137 | },
138 | // Delete
139 | async deleteOne(params) {
140 | const endpoint = `${URI}/buckets/${bucket_config.slug}/objects/${params.id}${params.trigger_webhook ? '?trigger_webhook=true' : ''}`
141 | if (bucket_config.write_key) {
142 | headers = {
143 | Authorization: `Bearer ${bucket_config.write_key}`
144 | }
145 | }
146 | return requestHandler(HTTP_METHODS.DELETE, endpoint, null, headers)
147 | }
148 | })
149 |
150 | const objectMethods = (bucket_config) => ({
151 | objects: objectsChainMethods(bucket_config),
152 | getObjects: (params) => {
153 | let endpoint = `${URI}/buckets/${bucket_config.slug}/objects?read_key=${bucket_config.read_key}`
154 | endpoint = addParamsToObjectsEndpoint(endpoint, params)
155 | return requestHandler(HTTP_METHODS.GET, endpoint)
156 | },
157 | getObject: (params) => {
158 | if (!params) {
159 | throw new Error('Must supply params object with object id')
160 | }
161 | let endpoint = `${URI}/buckets/${bucket_config.slug}/objects/${params.id}?read_key=${bucket_config.read_key}`
162 | if (params && params.status) {
163 | endpoint += `&status=${params.status}`
164 | }
165 | if (params && params.props) {
166 | endpoint += `&props=${params.props}`
167 | }
168 | if (params && typeof params.use_cache !== 'undefined') {
169 | endpoint += `&use_cache=${params.use_cache}`
170 | }
171 | return requestHandler(HTTP_METHODS.GET, endpoint)
172 | },
173 | getObjectRevisions: (params) => {
174 | let endpoint = `${URI}/buckets/${bucket_config.slug}/objects/${params.id}/revisions?read_key=${bucket_config.read_key}`
175 | endpoint = addParamsToObjectsEndpoint(endpoint, params)
176 | return requestHandler(HTTP_METHODS.GET, endpoint)
177 | },
178 | getMergeRequestObjects: (params) => {
179 | let endpoint = `${URI}/buckets/${bucket_config.slug}/merge-requests/${params.id}/objects?read_key=${bucket_config.read_key}`
180 | endpoint = addParamsToObjectsEndpoint(endpoint, params)
181 | return requestHandler(HTTP_METHODS.GET, endpoint)
182 | },
183 | addObject: (params) => {
184 | const endpoint = `${URI}/buckets/${bucket_config.slug}/objects`
185 | if (bucket_config.write_key) {
186 | headers = {
187 | Authorization: `Bearer ${bucket_config.write_key}`
188 | }
189 | }
190 | return requestHandler(HTTP_METHODS.POST, endpoint, params, headers)
191 | },
192 | addObjectRevision: (params) => {
193 | const endpoint = `${URI}/buckets/${bucket_config.slug}/objects/${params.id}/revisions`
194 | delete params.id
195 | delete params.type
196 | if (bucket_config.write_key) {
197 | headers = {
198 | Authorization: `Bearer ${bucket_config.write_key}`
199 | }
200 | }
201 | return requestHandler(HTTP_METHODS.POST, endpoint, params, headers)
202 | },
203 | editObject: (params) => {
204 | const endpoint = `${URI}/buckets/${bucket_config.slug}/objects/${params.id}`
205 | if (bucket_config.write_key) {
206 | headers = {
207 | Authorization: `Bearer ${bucket_config.write_key}`
208 | }
209 | }
210 | // Remove id
211 | delete params.id
212 | return requestHandler(HTTP_METHODS.PATCH, endpoint, params, headers)
213 | },
214 | getObjectMetafields: (params) => {
215 | const endpoint = `${URI}/buckets/${bucket_config.slug}/objects/${params.id}/metafields?read_key=${bucket_config.read_key}`
216 | return requestHandler(HTTP_METHODS.GET, endpoint)
217 | },
218 | /// DEPRECATED
219 | editObjectMetafields: (params) => {
220 | const endpoint = `${URI}/buckets/${bucket_config.slug}/objects/${params.id}/metafields`
221 | if (bucket_config.write_key) {
222 | headers = {
223 | Authorization: `Bearer ${bucket_config.write_key}`
224 | }
225 | }
226 | // Remove id
227 | delete params.id
228 | return requestHandler(HTTP_METHODS.PATCH, endpoint, params, headers)
229 | },
230 | editObjectMetafield: (params) => {
231 | const endpoint = `${URI}/buckets/${bucket_config.slug}/objects/${params.id}/metafields/${params.key}`
232 | if (bucket_config.write_key) {
233 | headers = {
234 | Authorization: `Bearer ${bucket_config.write_key}`
235 | }
236 | }
237 | // Remove id
238 | delete params.id
239 | delete params.key
240 | return requestHandler(HTTP_METHODS.PATCH, endpoint, params, headers)
241 | },
242 | deleteObject: (params) => {
243 | const endpoint = `${URI}/buckets/${bucket_config.slug}/objects/${params.id}`
244 | if (bucket_config.write_key) {
245 | headers = {
246 | Authorization: `Bearer ${bucket_config.write_key}`
247 | }
248 | }
249 | return requestHandler(HTTP_METHODS.DELETE, endpoint, null, headers)
250 | }
251 | })
252 |
253 | module.exports = objectMethods
254 |
--------------------------------------------------------------------------------
/dist/bucket/extension.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
4 |
5 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
6 |
7 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8 |
9 | var FormData = require('form-data');
10 |
11 | var _require = require('../helpers/constants'),
12 | URI = _require.URI;
13 |
14 | var HTTP_METHODS = require('../helpers/http_methods');
15 |
16 | var _require2 = require('../helpers/request_handler'),
17 | requestHandler = _require2.requestHandler;
18 |
19 | var extensionMethods = function extensionMethods(bucket_config) {
20 | return {
21 | getExtensions: function getExtensions() {
22 | var endpoint = "".concat(URI, "/").concat(bucket_config.slug, "/extensions");
23 | return requestHandler(HTTP_METHODS.GET, endpoint);
24 | },
25 | addExtension: function addExtension(params) {
26 | var endpoint = "".concat(URI, "/").concat(bucket_config.slug, "/extensions");
27 | var data;
28 |
29 | if (params.zip) {
30 | data = new FormData();
31 |
32 | if (params.zip.buffer) {
33 | data.append('zip', params.zip.buffer, params.zip.originalname);
34 | } else {
35 | data.append('zip', params.zip, params.zip.name);
36 | }
37 |
38 | if (bucket_config.write_key) {
39 | data.append('write_key', bucket_config.write_key);
40 | }
41 | } else {
42 | data = params;
43 |
44 | if (bucket_config.write_key) {
45 | data.write_key = bucket_config.write_key;
46 | }
47 | }
48 |
49 | var getHeaders = function getHeaders(form) {
50 | return new Promise(function (resolve, reject) {
51 | if (params.zip) {
52 | if (params.zip.buffer) {
53 | form.getLength(function (err, length) {
54 | if (err) reject(err);
55 |
56 | var headers = _objectSpread({
57 | 'Content-Length': length
58 | }, form.getHeaders());
59 |
60 | resolve(headers);
61 | });
62 | } else {
63 | resolve({
64 | 'Content-Type': 'multipart/form-data'
65 | });
66 | }
67 | } else {
68 | resolve({
69 | 'Content-Type': 'application/json'
70 | });
71 | }
72 | });
73 | };
74 |
75 | return getHeaders(data).then(function (headers) {
76 | return requestHandler(HTTP_METHODS.POST, endpoint, data, headers)["catch"](function (error) {
77 | throw error.response.data;
78 | });
79 | });
80 | },
81 | editExtension: function editExtension(params) {
82 | var endpoint = "".concat(URI, "/").concat(bucket_config.slug, "/extensions/").concat(params.id);
83 |
84 | if (bucket_config.write_key) {
85 | params.write_key = bucket_config.write_key;
86 | }
87 |
88 | return requestHandler(HTTP_METHODS.PUT, endpoint, params);
89 | },
90 | deleteExtension: function deleteExtension(params) {
91 | var endpoint = "".concat(URI, "/").concat(bucket_config.slug, "/extensions/").concat(params.id);
92 | return requestHandler(HTTP_METHODS.DELETE, endpoint, bucket_config);
93 | }
94 | };
95 | };
96 |
97 | module.exports = extensionMethods;
98 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWNrZXQvZXh0ZW5zaW9uLmpzIl0sIm5hbWVzIjpbIkZvcm1EYXRhIiwicmVxdWlyZSIsIlVSSSIsIkhUVFBfTUVUSE9EUyIsInJlcXVlc3RIYW5kbGVyIiwiZXh0ZW5zaW9uTWV0aG9kcyIsImJ1Y2tldF9jb25maWciLCJnZXRFeHRlbnNpb25zIiwiZW5kcG9pbnQiLCJzbHVnIiwiR0VUIiwiYWRkRXh0ZW5zaW9uIiwicGFyYW1zIiwiZGF0YSIsInppcCIsImJ1ZmZlciIsImFwcGVuZCIsIm9yaWdpbmFsbmFtZSIsIm5hbWUiLCJ3cml0ZV9rZXkiLCJnZXRIZWFkZXJzIiwiZm9ybSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZ2V0TGVuZ3RoIiwiZXJyIiwibGVuZ3RoIiwiaGVhZGVycyIsInRoZW4iLCJQT1NUIiwiZXJyb3IiLCJyZXNwb25zZSIsImVkaXRFeHRlbnNpb24iLCJpZCIsIlBVVCIsImRlbGV0ZUV4dGVuc2lvbiIsIkRFTEVURSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsV0FBRCxDQUF4Qjs7ZUFDZ0JBLE9BQU8sQ0FBQyxzQkFBRCxDO0lBQWZDLEcsWUFBQUEsRzs7QUFDUixJQUFNQyxZQUFZLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUE1Qjs7Z0JBQzJCQSxPQUFPLENBQUMsNEJBQUQsQztJQUExQkcsYyxhQUFBQSxjOztBQUVSLElBQU1DLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBbUIsQ0FBQ0MsYUFBRDtBQUFBLFNBQW9CO0FBQzNDQyxJQUFBQSxhQUFhLEVBQUUseUJBQU07QUFDbkIsVUFBTUMsUUFBUSxhQUFNTixHQUFOLGNBQWFJLGFBQWEsQ0FBQ0csSUFBM0IsZ0JBQWQ7QUFDQSxhQUFPTCxjQUFjLENBQUNELFlBQVksQ0FBQ08sR0FBZCxFQUFtQkYsUUFBbkIsQ0FBckI7QUFDRCxLQUowQztBQUszQ0csSUFB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ckI7QUFDRCxLQXBEMEM7QUFxRDNDd0IsSUFBQUEsZUFBZSxFQUFFLHlCQUFDeEIsTUFBRCxFQUFZO0FBQzNCLFVBQU1KLFFBQVEsYUFBTU4sR0FBTixjQUFhSSxhQUFhLENBQUNHLElBQTNCLHlCQUE4Q0csTUFBTSxDQUFDc0IsRUFBckQsQ0FBZDtBQUNBLGFBQU85QixjQUFjLENBQUNELFlBQVksQ0FBQ2tDLE1BQWQsRUFBc0I3QixRQUF0QixFQUFnQ0YsYUFBaEMsQ0FBckI7QUFDRDtBQXhEMEMsR0FBcEI7QUFBQSxDQUF6Qjs7QUEyREFnQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJsQyxnQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBGb3JtRGF0YSA9IHJlcXVpcmUoJ2Zvcm0tZGF0YScpXG5jb25zdCB7IFVSSSB9ID0gcmVxdWlyZSgnLi4vaGVscGVycy9jb25zdGFudHMnKVxuY29uc3QgSFRUUF9NRVRIT0RTID0gcmVxdWlyZSgnLi4vaGVscGVycy9odHRwX21ldGhvZHMnKVxuY29uc3QgeyByZXF1ZXN0SGFuZGxlciB9ID0gcmVxdWlyZSgnLi4vaGVscGVycy9yZXF1ZXN0X2hhbmRsZXInKVxuXG5jb25zdCBleHRlbnNpb25NZXRob2RzID0gKGJ1Y2tldF9jb25maWcpID0+ICh7XG4gIGdldEV4dGVuc2lvbnM6ICgpID0+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke1VSSX0vJHtidWNrZXRfY29uZmlnLnNsdWd9L2V4dGVuc2lvbnNgXG4gICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyKEhUVFBfTUVUSE9EUy5HRVQsIGVuZHBvaW50KVxuICB9LFxuICBhZGRFeHRlbnNpb246IChwYXJhbXMpID0+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke1VSSX0vJHtidWNrZXRfY29uZmlnLnNsdWd9L2V4dGVuc2lvbnNgXG4gICAgbGV0IGRhdGFcbiAgICBpZiAocGFyYW1zLnppcCkge1xuICAgICAgZGF0YSA9IG5ldyBGb3JtRGF0YSgpXG4gICAgICBpZiAocGFyYW1zLnppcC5idWZmZXIpIHtcbiAgICAgICAgZGF0YS5hcHBlbmQoJ3ppcCcsIHBhcmFtcy56aXAuYnVmZmVyLCBwYXJhbXMuemlwLm9yaWdpbmFsbmFtZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRhdGEuYXBwZW5kKCd6aXAnLCBwYXJhbXMuemlwLCBwYXJhbXMuemlwLm5hbWUpXG4gICAgICB9XG4gICAgICBpZiAoYnVja2V0X2NvbmZpZy53cml0ZV9rZXkpIHtcbiAgICAgICAgZGF0YS5hcHBlbmQoJ3dyaXRlX2tleScsIGJ1Y2tldF9jb25maWcud3JpdGVfa2V5KVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBkYXRhID0gcGFyYW1zXG4gICAgICBpZiAoYnVja2V0X2NvbmZpZy53cml0ZV9rZXkpIHtcbiAgICAgICAgZGF0YS53cml0ZV9rZXkgPSBidWNrZXRfY29uZmlnLndyaXRlX2tleVxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBnZXRIZWFkZXJzID0gKChmb3JtKSA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAocGFyYW1zLnppcCkge1xuICAgICAgICBpZiAocGFyYW1zLnppcC5idWZmZXIpIHtcbiAgICAgICAgICBmb3JtLmdldExlbmd0aCgoZXJyLCBsZW5ndGgpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnIpIHJlamVjdChlcnIpXG4gICAgICAgICAgICBjb25zdCBoZWFkZXJzID0geyAnQ29udGVudC1MZW5ndGgnOiBsZW5ndGgsIC4uLmZvcm0uZ2V0SGVhZGVycygpIH1cbiAgICAgICAgICAgIHJlc29sdmUoaGVhZGVycylcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc29sdmUoeyAnQ29udGVudC1UeXBlJzogJ211bHRpcGFydC9mb3JtLWRhdGEnIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pXG4gICAgICB9XG4gICAgfSlcbiAgICApXG4gICAgcmV0dXJuIGdldEhlYWRlcnMoZGF0YSlcbiAgICAgIC50aGVuKChoZWFkZXJzKSA9PiByZXF1ZXN0SGFuZGxlcihIVFRQX01FVEhPRFMuUE9TVCwgZW5kcG9pbnQsIGRhdGEsIGhlYWRlcnMpXG4gICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvci5yZXNwb25zZS5kYXRhXG4gICAgICAgIH0pKVxuICB9LFxuICBlZGl0RXh0ZW5zaW9uOiAocGFyYW1zKSA9PiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHtVUkl9LyR7YnVja2V0X2NvbmZpZy5zbHVnfS9leHRlbnNpb25zLyR7cGFyYW1zLmlkfWBcbiAgICBpZiAoYnVja2V0X2NvbmZpZy53cml0ZV9rZXkpIHtcbiAgICAgIHBhcmFtcy53cml0ZV9rZXkgPSBidWNrZXRfY29uZmlnLndyaXRlX2tleVxuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLlBVVCwgZW5kcG9pbnQsIHBhcmFtcylcbiAgfSxcbiAgZGVsZXRlRXh0ZW5zaW9uOiAocGFyYW1zKSA9PiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHtVUkl9LyR7YnVja2V0X2NvbmZpZy5zbHVnfS9leHRlbnNpb25zLyR7cGFyYW1zLmlkfWBcbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLkRFTEVURSwgZW5kcG9pbnQsIGJ1Y2tldF9jb25maWcpXG4gIH1cbn0pXG5cbm1vZHVsZS5leHBvcnRzID0gZXh0ZW5zaW9uTWV0aG9kc1xuIl19
--------------------------------------------------------------------------------
/test/unit_tests/t_bucket_methods.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs')
2 | const expect = require('chai').expect
3 | const Cosmic = require('../../src/index')
4 | const { EMAIL, PASSWORD } = require('../constants')
5 |
6 | let config = {};
7 | let CosmicBucket = {};
8 | suite('Test Bucket Methods.', function() {
9 | this.timeout(10000);
10 | setup(function(done) {
11 | Cosmic().authenticate({
12 | email: EMAIL,
13 | password: PASSWORD
14 | }).then(data => {
15 | config.token = data.token;
16 | done()
17 | }).catch(err => {
18 | console.log(err)
19 | done(err)
20 | })
21 | })
22 | test('getBuckets', function(done) {
23 | Cosmic({ token: config.token }).getBuckets()
24 | .then(data => {
25 | expect(data.buckets).to.be.an('array')
26 | done()
27 | }).catch(err => {
28 | done(err)
29 | })
30 | })
31 |
32 | test('addBucket', function(done) {
33 | Cosmic({ token: config.token }).addBucket({
34 | title: "My Super Awesome Bucket"
35 | })
36 | .then(data => {
37 | expect(data.bucket).to.be.an('object')
38 | // Set Bucket
39 | config.bucket = data.bucket
40 | done()
41 | }).catch(err => {
42 | done(err)
43 | })
44 | })
45 |
46 | test('editBucket', function(done) {
47 | Cosmic({ token: config.token }).editBucket({
48 | slug: config.bucket.slug,
49 | title: "My Super Awesome Bucket EDIT"
50 | })
51 | .then(data => {
52 | expect(data.bucket).to.be.an('object')
53 | done()
54 | }).catch(err => {
55 | done(err)
56 | })
57 | })
58 |
59 | test('addObjectType', function(done) {
60 | CosmicBucket = Cosmic().bucket({
61 | slug: config.bucket.slug,
62 | read_key: config.bucket.api_access.read_key,
63 | write_key: config.bucket.api_access.write_key
64 | })
65 | CosmicBucket.addObjectType({
66 | title: 'Posts',
67 | metafields: [{
68 | type: 'text',
69 | title: 'Headline',
70 | key: 'headline',
71 | value: ''
72 | }]
73 | })
74 | .then(data => {
75 | expect(data.object_type).to.be.an('object')
76 | config.object_type = data.object_type
77 | done()
78 | }).catch(err => {
79 | done(err)
80 | })
81 | })
82 |
83 | test('editObjectType', function(done) {
84 | CosmicBucket.editObjectType({
85 | slug: config.object_type.slug,
86 | title: 'Posts EDITED',
87 | metafields: [{
88 | type: 'text',
89 | title: 'Headline EDITED',
90 | key: 'headline',
91 | value: ''
92 | }]
93 | })
94 | .then(data => {
95 | expect(data.object_type).to.be.an('object')
96 | done()
97 | }).catch(err => {
98 | done(err)
99 | })
100 | })
101 | })
102 |
103 | suite('Test Object Methods.', function() {
104 | test('addObject', function(done) {
105 | CosmicBucket.addObject({
106 | type: config.object_type.slug,
107 | title: 'My New Awesome Post',
108 | metafields: [{
109 | type: 'text',
110 | title: 'Headline',
111 | key: 'headline',
112 | value: 'This is AMAZING!'
113 | }]
114 | })
115 | .then(data => {
116 | config.object = data.object
117 | expect(data.object).to.be.an('object')
118 | done()
119 | }).catch(err => {
120 | done(err)
121 | })
122 | })
123 |
124 | test('objects.insertOne', function(done) {
125 | CosmicBucket.objects.insertOne({
126 | type: config.object_type.slug,
127 | title: 'My New Awesome Post',
128 | metafields: [{
129 | type: 'text',
130 | title: 'Headline',
131 | key: 'headline',
132 | value: 'This is AMAZING!'
133 | }]
134 | })
135 | .then(data => {
136 | config.object2 = data.object
137 | expect(data.object).to.be.an('object')
138 | done()
139 | }).catch(err => {
140 | done(err)
141 | })
142 | })
143 |
144 | test('getObject', function(done) {
145 | CosmicBucket.getObject({
146 | id: config.object.id,
147 | props: 'title,slug'
148 | })
149 | .then(data => {
150 | expect(data.object).to.be.an('object')
151 | done()
152 | }).catch(err => {
153 | done(err)
154 | })
155 | })
156 |
157 | test('getObjects', function(done) {
158 | CosmicBucket.getObjects({
159 | type: config.object.type,
160 | props: 'title,slug'
161 | })
162 | .then(data => {
163 | expect(data.objects).to.be.an('array')
164 | done()
165 | }).catch(err => {
166 | done(err)
167 | })
168 | })
169 |
170 | test('objects.find', function(done) {
171 | CosmicBucket.objects.find({
172 | type: config.object2.type
173 | })
174 | .props('title,slug')
175 | .then(data => {
176 | expect(data.objects).to.be.an('array')
177 | done()
178 | }).catch(err => {
179 | done(err)
180 | })
181 | })
182 |
183 | test('objects.findOne', function(done) {
184 | CosmicBucket.objects.findOne({
185 | id: config.object2.id
186 | })
187 | .props('title,slug')
188 | .then(data => {
189 | expect(data.object).to.be.an('object')
190 | done()
191 | }).catch(err => {
192 | done(err)
193 | })
194 | })
195 |
196 | test('addObjectRevision', function(done) {
197 | CosmicBucket.addObjectRevision({
198 | id: config.object.id,
199 | type: config.object_type.slug,
200 | title: 'My New Awesome Post REVISION',
201 | metafields: [{
202 | type: 'text',
203 | title: 'Headline',
204 | key: 'headline',
205 | value: 'This is AMAZING!'
206 | }]
207 | })
208 | .then(data => {
209 | expect(data.revision).to.be.an('object')
210 | done()
211 | }).catch(err => {
212 | done(err)
213 | })
214 | })
215 | // NEEDS FURTHER DEVELOPMENT (addMergeRequest, etc)
216 | // test('getMergeRequestObjects', function(done) {
217 | // MergeCosmicBucket.getMergeRequestObjects({
218 | // id: 'merge-request-id',
219 | // props: 'title'
220 | // })
221 | // .then(data => {
222 | // expect(data.objects).to.be.an('array')
223 | // done()
224 | // }).catch(err => {
225 | // done(err)
226 | // })
227 | // })
228 |
229 | test('getObjectMetafields', function(done) {
230 | CosmicBucket.getObjectMetafields({
231 | id: config.object.id
232 | })
233 | .then(data => {
234 | expect(data.metafields).to.be.an('array')
235 | done()
236 | }).catch(err => {
237 | done(err)
238 | })
239 | })
240 |
241 | test('editObjectMetafield', function(done) {
242 | CosmicBucket.editObjectMetafield({
243 | id: config.object.id,
244 | key: 'headline',
245 | value: 'New Metafield Value'
246 | })
247 | .then(data => {
248 | expect(data.metafield).to.be.an('object')
249 | done()
250 | }).catch(err => {
251 | done(err)
252 | })
253 | })
254 |
255 | test('editObject', function(done) {
256 | CosmicBucket.editObject({
257 | id: config.object.id,
258 | title: 'EDITED My New Awesome Post'
259 | })
260 | .then(data => {
261 | expect(data.object).to.be.an('object')
262 | done()
263 | }).catch(err => {
264 | done(err)
265 | })
266 | })
267 |
268 | test('objects.updateOne', function(done) {
269 | CosmicBucket.objects.updateOne({
270 | id: config.object2.id
271 | }, {
272 | $set: {
273 | title: 'UPDATE ONE My New Awesome Post'
274 | }
275 | })
276 | .then(data => {
277 | expect(data.object).to.be.an('object')
278 | done()
279 | }).catch(err => {
280 | done(err)
281 | })
282 | })
283 |
284 | test('deleteObject', function(done) {
285 | CosmicBucket.deleteObject({
286 | id: config.object.id
287 | })
288 | .then(data => {
289 | expect(data.message).to.be.a('string')
290 | done()
291 | }).catch(err => {
292 | done(err)
293 | })
294 | })
295 |
296 | test('objects.deleteOne', function(done) {
297 | CosmicBucket.objects.deleteOne({
298 | id: config.object2.id
299 | })
300 | .then(data => {
301 | expect(data.message).to.be.a('string')
302 | done()
303 | }).catch(err => {
304 | done(err)
305 | })
306 | })
307 |
308 | test('deleteObjectType', function(done) {
309 | CosmicBucket.deleteObjectType({
310 | slug: config.object_type.slug
311 | })
312 | .then(data => {
313 | expect(data.message).to.be.a('string')
314 | done()
315 | }).catch(err => {
316 | done(err)
317 | })
318 | })
319 | })
320 |
321 | suite('Test Media Methods.', function() {
322 | test('addMedia', function(done) {
323 | const media_object = {
324 | originalname: 'logo.jpg',
325 | buffer: fs.createReadStream('./test/logo.jpg')
326 | };
327 | CosmicBucket.addMedia({
328 | media: media_object
329 | })
330 | .then(data => {
331 | config.media = data.media
332 | expect(data.media).to.be.an('object')
333 | done()
334 | }).catch(err => {
335 | done(err)
336 | })
337 | })
338 |
339 | test('media.insertOne', function(done) {
340 | const media_object = {
341 | originalname: 'logo.jpg',
342 | buffer: fs.createReadStream('./test/logo.jpg')
343 | };
344 | CosmicBucket.media.insertOne({
345 | media: media_object
346 | })
347 | .then(data => {
348 | config.media2 = data.media
349 | expect(data.media).to.be.an('object')
350 | done()
351 | }).catch(err => {
352 | done(err)
353 | })
354 | })
355 |
356 | test('getMedia', function(done) {
357 | CosmicBucket.getMedia({
358 | limit: 2
359 | })
360 | .then(data => {
361 | expect(data.media).to.be.an('array')
362 | done()
363 | }).catch(err => {
364 | done(err)
365 | })
366 | })
367 |
368 | test('media.find', function(done) {
369 | CosmicBucket.media.find()
370 | .limit(2)
371 | .then(data => {
372 | expect(data.media).to.be.an('array')
373 | done()
374 | }).catch(err => {
375 | done(err)
376 | })
377 | })
378 |
379 | test('media.findOne', function(done) {
380 | CosmicBucket.media.findOne({
381 | id: config.media2.id
382 | })
383 | .limit(2)
384 | .then(data => {
385 | expect(data.media).to.be.an('object')
386 | done()
387 | }).catch(err => {
388 | done(err)
389 | })
390 | })
391 |
392 | test('deleteMedia', function(done) {
393 | CosmicBucket.deleteMedia({
394 | id: config.media.id
395 | })
396 | .then(data => {
397 | expect(data.message).to.be.a('string')
398 | done()
399 | }).catch(err => {
400 | console.log(err)
401 | done(err)
402 | })
403 | })
404 |
405 | test('media.deleteOne', function(done) {
406 | CosmicBucket.media.deleteOne({
407 | id: config.media2.id
408 | })
409 | .then(data => {
410 | expect(data.message).to.be.a('string')
411 | done()
412 | }).catch(err => {
413 | console.log(err)
414 | done(err)
415 | })
416 | })
417 | })
418 |
419 | suite('Delete Bucket.', function() {
420 | test('deleteBucket', function(done) {
421 | Cosmic({ token: config.token }).deleteBucket({
422 | slug: config.bucket.slug
423 | })
424 | .then(data => {
425 | expect(data.message).to.be.a('string')
426 | done()
427 | }).catch(err => {
428 | done(err)
429 | })
430 | })
431 | })
--------------------------------------------------------------------------------
/dist/bucket/media.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
4 |
5 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
6 |
7 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8 |
9 | function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
10 |
11 | function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
12 |
13 | require('regenerator-runtime/runtime');
14 |
15 | var FormData = require('form-data');
16 |
17 | var _require = require('../helpers/constants'),
18 | URI = _require.URI,
19 | UPLOAD_API_URL = _require.UPLOAD_API_URL,
20 | API_VERSION = _require.API_VERSION;
21 |
22 | var HTTP_METHODS = require('../helpers/http_methods');
23 |
24 | var _require2 = require('../helpers/request_handler'),
25 | requestHandler = _require2.requestHandler;
26 |
27 | var promiser = require('../helpers/promiser');
28 |
29 | var mediaChainMethods = function mediaChainMethods(bucket_config) {
30 | return {
31 | // Get
32 | find: function find(query) {
33 | this.endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/media?read_key=").concat(bucket_config.read_key).concat(query ? "&query=".concat(encodeURI(JSON.stringify(query))) : '');
34 | return this;
35 | },
36 | // findOne
37 | findOne: function findOne(query) {
38 | this.endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/media/").concat(query.id, "?read_key=").concat(bucket_config.read_key);
39 | return this;
40 | },
41 | props: function props(_props) {
42 | this.endpoint += "&props=".concat(_props);
43 | return this;
44 | },
45 | sort: function sort(_sort) {
46 | this.endpoint += "&sort=".concat(_sort);
47 | return this;
48 | },
49 | limit: function limit(_limit) {
50 | this.endpoint += "&limit=".concat(_limit);
51 | return this;
52 | },
53 | skip: function skip(_skip) {
54 | this.endpoint += "&skip=".concat(_skip);
55 | return this;
56 | },
57 | // insertOne
58 | insertOne: function insertOne(params) {
59 | return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
60 | var endpoint, data, getHeaders;
61 | return regeneratorRuntime.wrap(function _callee$(_context) {
62 | while (1) {
63 | switch (_context.prev = _context.next) {
64 | case 0:
65 | endpoint = "".concat(UPLOAD_API_URL, "/").concat(API_VERSION, "/buckets/").concat(bucket_config.slug, "/media");
66 | data = new FormData();
67 |
68 | if (params.media.buffer) {
69 | data.append('media', params.media.buffer, params.media.originalname);
70 | } else {
71 | data.append('media', params.media, params.media.name);
72 | }
73 |
74 | if (bucket_config.write_key) {
75 | data.append('write_key', bucket_config.write_key);
76 | }
77 |
78 | if (params.folder) {
79 | data.append('folder', params.folder);
80 | }
81 |
82 | if (params.metadata) {
83 | data.append('metadata', JSON.stringify(params.metadata));
84 | }
85 |
86 | if (params.trigger_webhook) {
87 | data.append('trigger_webhook', params.trigger_webhook.toString());
88 | }
89 |
90 | getHeaders = function getHeaders(form) {
91 | return new Promise(function (resolve, reject) {
92 | if (params.media.buffer) {
93 | form.getLength(function (err, length) {
94 | if (err) reject(err);
95 |
96 | var headers = _objectSpread({
97 | 'Content-Length': length
98 | }, form.getHeaders());
99 |
100 | resolve(headers);
101 | });
102 | } else {
103 | resolve({
104 | 'Content-Type': 'multipart/form-data'
105 | });
106 | }
107 | });
108 | };
109 |
110 | return _context.abrupt("return", getHeaders(data).then(function (headers) {
111 | headers.Authorization = "Bearer ".concat(bucket_config.write_key);
112 | return requestHandler(HTTP_METHODS.POST, endpoint, data, headers);
113 | })["catch"](function (error) {
114 | throw error.response.data;
115 | }));
116 |
117 | case 9:
118 | case "end":
119 | return _context.stop();
120 | }
121 | }
122 | }, _callee);
123 | }))();
124 | },
125 | // Delete
126 | deleteOne: function deleteOne(params) {
127 | return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
128 | var endpoint, headers;
129 | return regeneratorRuntime.wrap(function _callee2$(_context2) {
130 | while (1) {
131 | switch (_context2.prev = _context2.next) {
132 | case 0:
133 | endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/media/").concat(params.id).concat(params.trigger_webhook ? '?trigger_webhook=true' : '');
134 |
135 | if (bucket_config.write_key) {
136 | headers = {
137 | Authorization: "Bearer ".concat(bucket_config.write_key)
138 | };
139 | }
140 |
141 | return _context2.abrupt("return", requestHandler(HTTP_METHODS.DELETE, endpoint, null, headers));
142 |
143 | case 3:
144 | case "end":
145 | return _context2.stop();
146 | }
147 | }
148 | }, _callee2);
149 | }))();
150 | },
151 | then: function then(resolve, reject) {
152 | var _this = this;
153 |
154 | return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
155 | return regeneratorRuntime.wrap(function _callee3$(_context3) {
156 | while (1) {
157 | switch (_context3.prev = _context3.next) {
158 | case 0:
159 | promiser(_this.endpoint).then(function (res) {
160 | return resolve(res, null);
161 | })["catch"](function (err) {
162 | if (typeof reject === 'function') {
163 | reject(err);
164 | } else {
165 | resolve(null, err);
166 | }
167 | });
168 |
169 | case 1:
170 | case "end":
171 | return _context3.stop();
172 | }
173 | }
174 | }, _callee3);
175 | }))();
176 | }
177 | };
178 | };
179 |
180 | var mediaMethods = function mediaMethods(bucket_config) {
181 | return {
182 | media: mediaChainMethods(bucket_config),
183 | addMedia: function addMedia(params) {
184 | var endpoint = "".concat(UPLOAD_API_URL, "/").concat(API_VERSION, "/buckets/").concat(bucket_config.slug, "/media");
185 | var data = new FormData();
186 |
187 | if (params.media.buffer) {
188 | data.append('media', params.media.buffer, params.media.originalname);
189 | } else {
190 | data.append('media', params.media, params.media.name);
191 | }
192 |
193 | if (bucket_config.write_key) {
194 | data.append('write_key', bucket_config.write_key);
195 | }
196 |
197 | if (params.folder) {
198 | data.append('folder', params.folder);
199 | }
200 |
201 | if (params.metadata) {
202 | data.append('metadata', JSON.stringify(params.metadata));
203 | }
204 |
205 | if (params.trigger_webhook) {
206 | data.append('trigger_webhook', params.trigger_webhook.toString());
207 | }
208 |
209 | var getHeaders = function getHeaders(form) {
210 | return new Promise(function (resolve, reject) {
211 | if (params.media.buffer) {
212 | form.getLength(function (err, length) {
213 | if (err) reject(err);
214 |
215 | var headers = _objectSpread({
216 | 'Content-Length': length
217 | }, form.getHeaders());
218 |
219 | resolve(headers);
220 | });
221 | } else {
222 | resolve({
223 | 'Content-Type': 'multipart/form-data'
224 | });
225 | }
226 | });
227 | };
228 |
229 | return getHeaders(data).then(function (headers) {
230 | headers.Authorization = "Bearer ".concat(bucket_config.write_key);
231 | return requestHandler(HTTP_METHODS.POST, endpoint, data, headers);
232 | })["catch"](function (error) {
233 | throw error.response.data;
234 | });
235 | },
236 | getMedia: function getMedia(params) {
237 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/media?read_key=").concat(bucket_config.read_key);
238 |
239 | if (params && params.limit) {
240 | endpoint += "&limit=".concat(params.limit);
241 | }
242 |
243 | if (params && params.skip) {
244 | endpoint += "&skip=".concat(params.skip);
245 | }
246 |
247 | if (params && params.query) {
248 | endpoint += "&query=".concat(encodeURI(JSON.stringify(params.query)));
249 | }
250 |
251 | if (params && params.props) {
252 | endpoint += "&props=".concat(params.props);
253 | }
254 |
255 | return requestHandler(HTTP_METHODS.GET, endpoint);
256 | },
257 | getSingleMedia: function getSingleMedia(params) {
258 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/media/").concat(params.id, "?read_key=").concat(bucket_config.read_key);
259 |
260 | if (params && params.props) {
261 | endpoint += "&props=".concat(params.props);
262 | }
263 |
264 | return requestHandler(HTTP_METHODS.GET, endpoint);
265 | },
266 | deleteMedia: function deleteMedia(params) {
267 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/media/").concat(params.id).concat(params.trigger_webhook ? '?trigger_webhook=true' : '');
268 | var headers;
269 |
270 | if (bucket_config.write_key) {
271 | headers = {
272 | Authorization: "Bearer ".concat(bucket_config.write_key)
273 | };
274 | }
275 |
276 | return requestHandler(HTTP_METHODS.DELETE, endpoint, null, headers);
277 | }
278 | };
279 | };
280 |
281 | module.exports = mediaMethods;
282 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWNrZXQvbWVkaWEuanMiXSwibmFtZXMiOlsicmVxdWlyZSIsIkZvcm1EYXRhIiwiVVJJIiwiVVBMT0FEX0FQSV9VUkwiLCJBUElfVkVSU0lPTiIsIkhUVFBfTUVUSE9EUyIsInJlcXVlc3RIYW5kbGVyIiwicHJvbWlzZXIiLCJtZWRpYUNoYWluTWV0aG9kcyIsImJ1Y2tldF9jb25maWciLCJmaW5kIiwicXVlcnkiLCJlbmRwb2ludCIsInNsdWciLCJyZWFkX2tleSIsImVuY29kZVVSSSIsIkpTT04iLCJzdHJpbmdpZnkiLCJmaW5kT25lIiwiaWQiLCJwcm9wcyIsInNvcnQiLCJsaW1pdCIsInNraXAiLCJpbnNlcnRPbmUiLCJwYXJhbXMiLCJkYXRhIiwibWVkaWEiLCJidWZmZXIiLCJhcHBlbmQiLCJvcmlnaW5hbG5hbWUiLCJuYW1lIiwid3JpdGVfa2V5IiwiZm9sZGVyIiwibWV0YWRhdGEiLCJ0cmlnZ2VyX3dlYmhvb2siLCJ0b1N0cmluZyIsImdldEhlYWRlcnMiLCJmb3JtIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJnZXRMZW5ndGgiLCJlcnIiLCJsZW5ndGgiLCJoZWFkZXJzIiwidGhlbiIsIkF1dGhvcml6YXRpb24iLCJQT1NUIiwiZXJyb3IiLCJyZXNwb25zZSIsImRlbGV0ZU9uZSIsIkRFTEVURSIsInJlcyIsIm1lZGlhTWV0aG9kcyIsImFkZE1lZGlhIiwiZ2V0TWVkaWEiLCJHRVQiLCJnZXRTaW5nbGVNZWRpYSIsImRlbGV0ZU1lZGlhIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUFBLE9BQU8sQ0FBQyw2QkFBRCxDQUFQOztBQUVBLElBQU1DLFFBQVEsR0FBR0QsT0FBTyxDQUFDLFdBQUQsQ0FBeEI7O2VBQzZDQSxPQUFPLENBQUMsc0JBQUQsQztJQUE1Q0UsRyxZQUFBQSxHO0lBQUtDLGMsWUFBQUEsYztJQUFnQkMsVyxZQUFBQSxXOztBQUM3QixJQUFNQyxZQUFZ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LENBQUNMLEtBQXJCLENBQVI7QUFDRDs7QUFDRCxhQUFPZCxjQUFjLENBQUNELFlBQVksQ0FBQ29ELEdBQWQsRUFBbUI3QyxRQUFuQixDQUFyQjtBQUNELEtBaEVzQztBQWlFdkMrQyxJQUFBQSxXQUFXLEVBQUUscUJBQUNsQyxNQUFELEVBQVk7QUFDdkIsVUFBTWIsUUFBUSxhQUFNVixHQUFOLHNCQUFxQk8sYUFBYSxDQUFDSSxJQUFuQyxvQkFBaURZLE1BQU0sQ0FBQ04sRUFBeEQsU0FBNkRNLE1BQU0sQ0FBQ1UsZUFBUCxHQUF5Qix1QkFBekIsR0FBbUQsRUFBaEgsQ0FBZDtBQUNBLFVBQUlVLE9BQUo7O0FBQ0EsVUFBSXBDLGFBQWEsQ0FBQ3VCLFNBQWxCLEVBQTZCO0FBQzNCYSxRQUFBQSxPQUFPLEdBQUc7QUFDUkUsVUFBQUEsYUFBYSxtQkFBWXRDLGFBQWEsQ0FBQ3VCLFNBQTFCO0FBREwsU0FBVjtBQUdEOztBQUNELGFBQU8xQixjQUFjLENBQUNELFlBQVksQ0FBQytDLE1BQWQsRUFBc0J4QyxRQUF0QixFQUFnQyxJQUFoQyxFQUFzQ2lDLE9BQXRDLENBQXJCO0FBQ0Q7QUExRXNDLEdBQXBCO0FBQUEsQ0FBckI7O0FBNkVBZSxNQUFNLENBQUNDLE9BQVAsR0FBaUJQLFlBQWpCIiwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgncmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lJylcblxuY29uc3QgRm9ybURhdGEgPSByZXF1aXJlKCdmb3JtLWRhdGEnKVxuY29uc3QgeyBVUkksIFVQTE9BRF9BUElfVVJMLCBBUElfVkVSU0lPTiB9ID0gcmVxdWlyZSgnLi4vaGVscGVycy9jb25zdGFudHMnKVxuY29uc3QgSFRUUF9NRVRIT0RTID0gcmVxdWlyZSgnLi4vaGVscGVycy9odHRwX21ldGhvZHMnKVxuY29uc3QgeyByZXF1ZXN0SGFuZGxlciB9ID0gcmVxdWlyZSgnLi4vaGVscGVycy9yZXF1ZXN0X2hhbmRsZXInKVxuY29uc3QgcHJvbWlzZXIgPSByZXF1aXJlKCcuLi9oZWxwZXJzL3Byb21pc2VyJylcblxuY29uc3QgbWVkaWFDaGFpbk1ldGhvZHMgPSAoYnVja2V0X2NvbmZpZykgPT4gKHtcbiAgLy8gR2V0XG4gIGZpbmQocXVlcnkpIHtcbiAgICB0aGlzLmVuZHBvaW50ID0gYCR7VVJJfS9idWNrZXRzLyR7YnVja2V0X2NvbmZpZy5zbHVnfS9tZWRpYT9yZWFkX2tleT0ke2J1Y2tldF9jb25maWcucmVhZF9rZXl9JHtxdWVyeSA/IGAmcXVlcnk9JHtlbmNvZGVVUkkoSlNPTi5zdHJpbmdpZnkocXVlcnkpKX1gIDogJyd9YFxuICAgIHJldHVybiB0aGlzXG4gIH0sXG4gIC8vIGZpbmRPbmVcbiAgZmluZE9uZShxdWVyeSkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSBgJHtVUkl9L2J1Y2tldHMvJHtidWNrZXRfY29uZmlnLnNsdWd9L21lZGlhLyR7cXVlcnkuaWR9P3JlYWRfa2V5PSR7YnVja2V0X2NvbmZpZy5yZWFkX2tleX1gXG4gICAgcmV0dXJuIHRoaXNcbiAgfSxcbiAgcHJvcHMocHJvcHMpIHtcbiAgICB0aGlzLmVuZHBvaW50ICs9IGAmcHJvcHM9JHtwcm9wc31gXG4gICAgcmV0dXJuIHRoaXNcbiAgfSxcbiAgc29ydChzb3J0KSB7XG4gICAgdGhpcy5lbmRwb2ludCArPSBgJnNvcnQ9JHtzb3J0fWBcbiAgICByZXR1cm4gdGhpc1xuICB9LFxuICBsaW1pdChsaW1pdCkge1xuICAgIHRoaXMuZW5kcG9pbnQgKz0gYCZsaW1pdD0ke2xpbWl0fWBcbiAgICByZXR1cm4gdGhpc1xuICB9LFxuICBza2lwKHNraXApIHtcbiAgICB0aGlzLmVuZHBvaW50ICs9IGAmc2tpcD0ke3NraXB9YFxuICAgIHJldHVybiB0aGlzXG4gIH0sXG4gIC8vIGluc2VydE9uZVxuICBhc3luYyBpbnNlcnRPbmUocGFyYW1zKSB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHtVUExPQURfQVBJX1VSTH0vJHtBUElfVkVSU0lPTn0vYnVja2V0cy8ke2J1Y2tldF9jb25maWcuc2x1Z30vbWVkaWFgXG4gICAgY29uc3QgZGF0YSA9IG5ldyBGb3JtRGF0YSgpXG4gICAgaWYgKHBhcmFtcy5tZWRpYS5idWZmZXIpIHtcbiAgICAgIGRhdGEuYXBwZW5kKCdtZWRpYScsIHBhcmFtcy5tZWRpYS5idWZmZXIsIHBhcmFtcy5tZWRpYS5vcmlnaW5hbG5hbWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGEuYXBwZW5kKCdtZWRpYScsIHBhcmFtcy5tZWRpYSwgcGFyYW1zLm1lZGlhLm5hbWUpXG4gICAgfVxuICAgIGlmIChidWNrZXRfY29uZmlnLndyaXRlX2tleSkge1xuICAgICAgZGF0YS5hcHBlbmQoJ3dyaXRlX2tleScsIGJ1Y2tldF9jb25maWcud3JpdGVfa2V5KVxuICAgIH1cbiAgICBpZiAocGFyYW1zLmZvbGRlcikge1xuICAgICAgZGF0YS5hcHBlbmQoJ2ZvbGRlcicsIHBhcmFtcy5mb2xkZXIpXG4gICAgfVxuICAgIGlmIChwYXJhbXMubWV0YWRhdGEpIHtcbiAgICAgIGRhdGEuYXBwZW5kKCdtZXRhZGF0YScsIEpTT04uc3RyaW5naWZ5KHBhcmFtcy5tZXRhZGF0YSkpXG4gICAgfVxuICAgIGlmIChwYXJhbXMudHJpZ2dlcl93ZWJob29rKSB7XG4gICAgICBkYXRhLmFwcGVuZCgndHJpZ2dlcl93ZWJob29rJywgcGFyYW1zLnRyaWdnZXJfd2ViaG9vay50b1N0cmluZygpKVxuICAgIH1cbiAgICBjb25zdCBnZXRIZWFkZXJzID0gKChmb3JtKSA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAocGFyYW1zLm1lZGlhLmJ1ZmZlcikge1xuICAgICAgICBmb3JtLmdldExlbmd0aCgoZXJyLCBsZW5ndGgpID0+IHtcbiAgICAgICAgICBpZiAoZXJyKSByZWplY3QoZXJyKVxuICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSB7ICdDb250ZW50LUxlbmd0aCc6IGxlbmd0aCwgLi4uZm9ybS5nZXRIZWFkZXJzKCkgfVxuICAgICAgICAgIHJlc29sdmUoaGVhZGVycylcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUoeyAnQ29udGVudC1UeXBlJzogJ211bHRpcGFydC9mb3JtLWRhdGEnIH0pXG4gICAgICB9XG4gICAgfSlcbiAgICApXG4gICAgcmV0dXJuIGdldEhlYWRlcnMoZGF0YSlcbiAgICAgIC50aGVuKChoZWFkZXJzKSA9PiB7XG4gICAgICAgIGhlYWRlcnMuQXV0aG9yaXphdGlvbiA9IGBCZWFyZXIgJHtidWNrZXRfY29uZmlnLndyaXRlX2tleX1gXG4gICAgICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcihIVFRQX01FVEhPRFMuUE9TVCwgZW5kcG9pbnQsIGRhdGEsIGhlYWRlcnMpXG4gICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgdGhyb3cgZXJyb3IucmVzcG9uc2UuZGF0YVxuICAgICAgfSlcbiAgfSxcbiAgLy8gRGVsZXRlXG4gIGFzeW5jIGRlbGV0ZU9uZShwYXJhbXMpIHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke1VSSX0vYnVja2V0cy8ke2J1Y2tldF9jb25maWcuc2x1Z30vbWVkaWEvJHtwYXJhbXMuaWR9JHtwYXJhbXMudHJpZ2dlcl93ZWJob29rID8gJz90cmlnZ2VyX3dlYmhvb2s9dHJ1ZScgOiAnJ31gXG4gICAgbGV0IGhlYWRlcnNcbiAgICBpZiAoYnVja2V0X2NvbmZpZy53cml0ZV9rZXkpIHtcbiAgICAgIGhlYWRlcnMgPSB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtidWNrZXRfY29uZmlnLndyaXRlX2tleX1gXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcihIVFRQX01FVEhPRFMuREVMRVRFLCBlbmRwb2ludCwgbnVsbCwgaGVhZGVycylcbiAgfSxcbiAgYXN5bmMgdGhlbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICBwcm9taXNlcih0aGlzLmVuZHBvaW50KS50aGVuKChyZXMpID0+IHJlc29sdmUocmVzLCBudWxsKSkuY2F0Y2goKGVycikgPT4ge1xuICAgICAgaWYgKHR5cGVvZiByZWplY3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmVqZWN0KGVycilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUobnVsbCwgZXJyKVxuICAgICAgfVxuICAgIH0pXG4gIH1cbn0pXG5cbmNvbnN0IG1lZGlhTWV0aG9kcyA9IChidWNrZXRfY29uZmlnKSA9PiAoe1xuICBtZWRpYTogbWVkaWFDaGFpbk1ldGhvZHMoYnVja2V0X2NvbmZpZyksXG4gIGFkZE1lZGlhOiAocGFyYW1zKSA9PiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHtVUExPQURfQVBJX1VSTH0vJHtBUElfVkVSU0lPTn0vYnVja2V0cy8ke2J1Y2tldF9jb25maWcuc2x1Z30vbWVkaWFgXG4gICAgY29uc3QgZGF0YSA9IG5ldyBGb3JtRGF0YSgpXG4gICAgaWYgKHBhcmFtcy5tZWRpYS5idWZmZXIpIHtcbiAgICAgIGRhdGEuYXBwZW5kKCdtZWRpYScsIHBhcmFtcy5tZWRpYS5idWZmZXIsIHBhcmFtcy5tZWRpYS5vcmlnaW5hbG5hbWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGEuYXBwZW5kKCdtZWRpYScsIHBhcmFtcy5tZWRpYSwgcGFyYW1zLm1lZGlhLm5hbWUpXG4gICAgfVxuICAgIGlmIChidWNrZXRfY29uZmlnLndyaXRlX2tleSkge1xuICAgICAgZGF0YS5hcHBlbmQoJ3dyaXRlX2tleScsIGJ1Y2tldF9jb25maWcud3JpdGVfa2V5KVxuICAgIH1cbiAgICBpZiAocGFyYW1zLmZvbGRlcikge1xuICAgICAgZGF0YS5hcHBlbmQoJ2ZvbGRlcicsIHBhcmFtcy5mb2xkZXIpXG4gICAgfVxuICAgIGlmIChwYXJhbXMubWV0YWRhdGEpIHtcbiAgICAgIGRhdGEuYXBwZW5kKCdtZXRhZGF0YScsIEpTT04uc3RyaW5naWZ5KHBhcmFtcy5tZXRhZGF0YSkpXG4gICAgfVxuICAgIGlmIChwYXJhbXMudHJpZ2dlcl93ZWJob29rKSB7XG4gICAgICBkYXRhLmFwcGVuZCgndHJpZ2dlcl93ZWJob29rJywgcGFyYW1zLnRyaWdnZXJfd2ViaG9vay50b1N0cmluZygpKVxuICAgIH1cbiAgICBjb25zdCBnZXRIZWFkZXJzID0gKChmb3JtKSA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAocGFyYW1zLm1lZGlhLmJ1ZmZlcikge1xuICAgICAgICBmb3JtLmdldExlbmd0aCgoZXJyLCBsZW5ndGgpID0+IHtcbiAgICAgICAgICBpZiAoZXJyKSByZWplY3QoZXJyKVxuICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSB7ICdDb250ZW50LUxlbmd0aCc6IGxlbmd0aCwgLi4uZm9ybS5nZXRIZWFkZXJzKCkgfVxuICAgICAgICAgIHJlc29sdmUoaGVhZGVycylcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUoeyAnQ29udGVudC1UeXBlJzogJ211bHRpcGFydC9mb3JtLWRhdGEnIH0pXG4gICAgICB9XG4gICAgfSlcbiAgICApXG4gICAgcmV0dXJuIGdldEhlYWRlcnMoZGF0YSlcbiAgICAgIC50aGVuKChoZWFkZXJzKSA9PiB7XG4gICAgICAgIGhlYWRlcnMuQXV0aG9yaXphdGlvbiA9IGBCZWFyZXIgJHtidWNrZXRfY29uZmlnLndyaXRlX2tleX1gXG4gICAgICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcihIVFRQX01FVEhPRFMuUE9TVCwgZW5kcG9pbnQsIGRhdGEsIGhlYWRlcnMpXG4gICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgdGhyb3cgZXJyb3IucmVzcG9uc2UuZGF0YVxuICAgICAgfSlcbiAgfSxcbiAgZ2V0TWVkaWE6IChwYXJhbXMpID0+IHtcbiAgICBsZXQgZW5kcG9pbnQgPSBgJHtVUkl9L2J1Y2tldHMvJHtidWNrZXRfY29uZmlnLnNsdWd9L21lZGlhP3JlYWRfa2V5PSR7YnVja2V0X2NvbmZpZy5yZWFkX2tleX1gXG4gICAgaWYgKHBhcmFtcyAmJiBwYXJhbXMubGltaXQpIHtcbiAgICAgIGVuZHBvaW50ICs9IGAmbGltaXQ9JHtwYXJhbXMubGltaXR9YFxuICAgIH1cbiAgICBpZiAocGFyYW1zICYmIHBhcmFtcy5za2lwKSB7XG4gICAgICBlbmRwb2ludCArPSBgJnNraXA9JHtwYXJhbXMuc2tpcH1gXG4gICAgfVxuICAgIGlmIChwYXJhbXMgJiYgcGFyYW1zLnF1ZXJ5KSB7XG4gICAgICBlbmRwb2ludCArPSBgJnF1ZXJ5PSR7ZW5jb2RlVVJJKEpTT04uc3RyaW5naWZ5KHBhcmFtcy5xdWVyeSkpfWBcbiAgICB9XG4gICAgaWYgKHBhcmFtcyAmJiBwYXJhbXMucHJvcHMpIHtcbiAgICAgIGVuZHBvaW50ICs9IGAmcHJvcHM9JHtwYXJhbXMucHJvcHN9YFxuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLkdFVCwgZW5kcG9pbnQpXG4gIH0sXG4gIGdldFNpbmdsZU1lZGlhOiAocGFyYW1zKSA9PiB7XG4gICAgbGV0IGVuZHBvaW50ID0gYCR7VVJJfS9idWNrZXRzLyR7YnVja2V0X2NvbmZpZy5zbHVnfS9tZWRpYS8ke3BhcmFtcy5pZH0/cmVhZF9rZXk9JHtidWNrZXRfY29uZmlnLnJlYWRfa2V5fWBcbiAgICBpZiAocGFyYW1zICYmIHBhcmFtcy5wcm9wcykge1xuICAgICAgZW5kcG9pbnQgKz0gYCZwcm9wcz0ke3BhcmFtcy5wcm9wc31gXG4gICAgfVxuICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcihIVFRQX01FVEhPRFMuR0VULCBlbmRwb2ludClcbiAgfSxcbiAgZGVsZXRlTWVkaWE6IChwYXJhbXMpID0+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke1VSSX0vYnVja2V0cy8ke2J1Y2tldF9jb25maWcuc2x1Z30vbWVkaWEvJHtwYXJhbXMuaWR9JHtwYXJhbXMudHJpZ2dlcl93ZWJob29rID8gJz90cmlnZ2VyX3dlYmhvb2s9dHJ1ZScgOiAnJ31gXG4gICAgbGV0IGhlYWRlcnNcbiAgICBpZiAoYnVja2V0X2NvbmZpZy53cml0ZV9rZXkpIHtcbiAgICAgIGhlYWRlcnMgPSB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtidWNrZXRfY29uZmlnLndyaXRlX2tleX1gXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcihIVFRQX01FVEhPRFMuREVMRVRFLCBlbmRwb2ludCwgbnVsbCwgaGVhZGVycylcbiAgfVxufSlcblxubW9kdWxlLmV4cG9ydHMgPSBtZWRpYU1ldGhvZHNcbiJdfQ==
--------------------------------------------------------------------------------
/dist/bucket/object.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4 |
5 | function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
6 |
7 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8 |
9 | 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); } }
10 |
11 | function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
12 |
13 | require('regenerator-runtime/runtime');
14 |
15 | var _require = require('../helpers/constants'),
16 | URI = _require.URI;
17 |
18 | var HTTP_METHODS = require('../helpers/http_methods');
19 |
20 | var _require2 = require('../helpers/request_handler'),
21 | requestHandler = _require2.requestHandler;
22 |
23 | var promiser = require('../helpers/promiser');
24 |
25 | var headers;
26 |
27 | var addParamsToObjectsEndpoint = function addParamsToObjectsEndpoint(endpoint, params) {
28 | var ep = endpoint;
29 |
30 | if (params && params.limit) {
31 | ep += "&limit=".concat(params.limit);
32 | }
33 |
34 | if (params && params.skip) {
35 | ep += "&skip=".concat(params.skip);
36 | }
37 |
38 | if (params && params.status) {
39 | ep += "&status=".concat(params.status);
40 | }
41 |
42 | if (params && params.after) {
43 | ep += "&after=".concat(params.after);
44 | }
45 |
46 | if (params && params.sort) {
47 | ep += "&sort=".concat(params.sort);
48 | }
49 |
50 | if (params && params.show_metafields) {
51 | ep += "&show_metafields=".concat(params.show_metafields);
52 | }
53 |
54 | if (params && params.pretty) {
55 | ep += "&pretty=".concat(params.pretty);
56 | }
57 |
58 | if (params && params.props) {
59 | ep += "&props=".concat(params.props);
60 | }
61 |
62 | if (params && params.query) {
63 | ep += "&query=".concat(encodeURI(JSON.stringify(params.query)));
64 | }
65 |
66 | if (params && typeof params.use_cache !== 'undefined') {
67 | ep += "&use_cache=".concat(params.use_cache);
68 | }
69 |
70 | return ep;
71 | };
72 |
73 | var FindChaining = /*#__PURE__*/function () {
74 | function FindChaining(endpoint) {
75 | _classCallCheck(this, FindChaining);
76 |
77 | this.endpoint = endpoint;
78 | }
79 |
80 | _createClass(FindChaining, [{
81 | key: "props",
82 | value: function props(_props) {
83 | this.endpoint += "&props=".concat(_props);
84 | return this;
85 | }
86 | }, {
87 | key: "depth",
88 | value: function depth(_depth) {
89 | this.endpoint += "&depth=".concat(_depth);
90 | return this;
91 | }
92 | }, {
93 | key: "sort",
94 | value: function sort(_sort) {
95 | this.endpoint += "&sort=".concat(_sort);
96 | return this;
97 | }
98 | }, {
99 | key: "limit",
100 | value: function limit(_limit) {
101 | this.endpoint += "&limit=".concat(_limit);
102 | return this;
103 | }
104 | }, {
105 | key: "skip",
106 | value: function skip(_skip) {
107 | this.endpoint += "&skip=".concat(_skip);
108 | return this;
109 | }
110 | }, {
111 | key: "status",
112 | value: function status(_status) {
113 | this.endpoint += "&status=".concat(_status);
114 | return this;
115 | }
116 | }, {
117 | key: "after",
118 | value: function after(_after) {
119 | this.endpoint += "&after=".concat(_after);
120 | return this;
121 | }
122 | }, {
123 | key: "showMetafields",
124 | value: function showMetafields(show_metafields) {
125 | this.endpoint += "&show_metafields=".concat(show_metafields);
126 | return this;
127 | }
128 | }, {
129 | key: "useCache",
130 | value: function useCache(use_cache) {
131 | this.endpoint += "&use_cache=".concat(use_cache);
132 | return this;
133 | }
134 | }, {
135 | key: "then",
136 | value: function () {
137 | var _then = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(resolve, reject) {
138 | return regeneratorRuntime.wrap(function _callee$(_context) {
139 | while (1) {
140 | switch (_context.prev = _context.next) {
141 | case 0:
142 | promiser(this.endpoint).then(function (res) {
143 | return resolve(res, null);
144 | })["catch"](function (err) {
145 | if (typeof reject === 'function') {
146 | reject(err);
147 | } else {
148 | resolve(null, err);
149 | }
150 | });
151 |
152 | case 1:
153 | case "end":
154 | return _context.stop();
155 | }
156 | }
157 | }, _callee, this);
158 | }));
159 |
160 | function then(_x, _x2) {
161 | return _then.apply(this, arguments);
162 | }
163 |
164 | return then;
165 | }()
166 | }]);
167 |
168 | return FindChaining;
169 | }();
170 |
171 | var objectsChainMethods = function objectsChainMethods(bucket_config) {
172 | return {
173 | // Get
174 | find: function find(query) {
175 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/objects?read_key=").concat(bucket_config.read_key).concat(query ? "&query=".concat(encodeURI(JSON.stringify(query))) : '');
176 | return new FindChaining(endpoint);
177 | },
178 | // findOne
179 | findOne: function findOne(query) {
180 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/objects/").concat(query.id, "?read_key=").concat(bucket_config.read_key);
181 | return new FindChaining(endpoint);
182 | },
183 | // Add
184 | insertOne: function insertOne(params) {
185 | return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
186 | var endpoint;
187 | return regeneratorRuntime.wrap(function _callee2$(_context2) {
188 | while (1) {
189 | switch (_context2.prev = _context2.next) {
190 | case 0:
191 | endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/objects");
192 |
193 | if (bucket_config.write_key) {
194 | headers = {
195 | Authorization: "Bearer ".concat(bucket_config.write_key)
196 | };
197 | }
198 |
199 | return _context2.abrupt("return", requestHandler(HTTP_METHODS.POST, endpoint, params, headers));
200 |
201 | case 3:
202 | case "end":
203 | return _context2.stop();
204 | }
205 | }
206 | }, _callee2);
207 | }))();
208 | },
209 | // Edit
210 | updateOne: function updateOne(params, set) {
211 | return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
212 | var endpoint, updates;
213 | return regeneratorRuntime.wrap(function _callee3$(_context3) {
214 | while (1) {
215 | switch (_context3.prev = _context3.next) {
216 | case 0:
217 | endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/objects/").concat(params.id);
218 | updates = set.$set;
219 |
220 | if (bucket_config.write_key) {
221 | headers = {
222 | Authorization: "Bearer ".concat(bucket_config.write_key)
223 | };
224 | }
225 |
226 | return _context3.abrupt("return", requestHandler(HTTP_METHODS.PATCH, endpoint, updates, headers));
227 |
228 | case 4:
229 | case "end":
230 | return _context3.stop();
231 | }
232 | }
233 | }, _callee3);
234 | }))();
235 | },
236 | // Delete
237 | deleteOne: function deleteOne(params) {
238 | return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
239 | var endpoint;
240 | return regeneratorRuntime.wrap(function _callee4$(_context4) {
241 | while (1) {
242 | switch (_context4.prev = _context4.next) {
243 | case 0:
244 | endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/objects/").concat(params.id).concat(params.trigger_webhook ? '?trigger_webhook=true' : '');
245 |
246 | if (bucket_config.write_key) {
247 | headers = {
248 | Authorization: "Bearer ".concat(bucket_config.write_key)
249 | };
250 | }
251 |
252 | return _context4.abrupt("return", requestHandler(HTTP_METHODS.DELETE, endpoint, null, headers));
253 |
254 | case 3:
255 | case "end":
256 | return _context4.stop();
257 | }
258 | }
259 | }, _callee4);
260 | }))();
261 | }
262 | };
263 | };
264 |
265 | var objectMethods = function objectMethods(bucket_config) {
266 | return {
267 | objects: objectsChainMethods(bucket_config),
268 | getObjects: function getObjects(params) {
269 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/objects?read_key=").concat(bucket_config.read_key);
270 | endpoint = addParamsToObjectsEndpoint(endpoint, params);
271 | return requestHandler(HTTP_METHODS.GET, endpoint);
272 | },
273 | getObject: function getObject(params) {
274 | if (!params) {
275 | throw new Error('Must supply params object with object id');
276 | }
277 |
278 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/objects/").concat(params.id, "?read_key=").concat(bucket_config.read_key);
279 |
280 | if (params && params.status) {
281 | endpoint += "&status=".concat(params.status);
282 | }
283 |
284 | if (params && params.props) {
285 | endpoint += "&props=".concat(params.props);
286 | }
287 |
288 | if (params && typeof params.use_cache !== 'undefined') {
289 | endpoint += "&use_cache=".concat(params.use_cache);
290 | }
291 |
292 | return requestHandler(HTTP_METHODS.GET, endpoint);
293 | },
294 | getObjectRevisions: function getObjectRevisions(params) {
295 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/objects/").concat(params.id, "/revisions?read_key=").concat(bucket_config.read_key);
296 | endpoint = addParamsToObjectsEndpoint(endpoint, params);
297 | return requestHandler(HTTP_METHODS.GET, endpoint);
298 | },
299 | getMergeRequestObjects: function getMergeRequestObjects(params) {
300 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/merge-requests/").concat(params.id, "/objects?read_key=").concat(bucket_config.read_key);
301 | endpoint = addParamsToObjectsEndpoint(endpoint, params);
302 | return requestHandler(HTTP_METHODS.GET, endpoint);
303 | },
304 | addObject: function addObject(params) {
305 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/objects");
306 |
307 | if (bucket_config.write_key) {
308 | headers = {
309 | Authorization: "Bearer ".concat(bucket_config.write_key)
310 | };
311 | }
312 |
313 | return requestHandler(HTTP_METHODS.POST, endpoint, params, headers);
314 | },
315 | addObjectRevision: function addObjectRevision(params) {
316 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/objects/").concat(params.id, "/revisions");
317 | delete params.id;
318 | delete params.type;
319 |
320 | if (bucket_config.write_key) {
321 | headers = {
322 | Authorization: "Bearer ".concat(bucket_config.write_key)
323 | };
324 | }
325 |
326 | return requestHandler(HTTP_METHODS.POST, endpoint, params, headers);
327 | },
328 | editObject: function editObject(params) {
329 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/objects/").concat(params.id);
330 |
331 | if (bucket_config.write_key) {
332 | headers = {
333 | Authorization: "Bearer ".concat(bucket_config.write_key)
334 | };
335 | } // Remove id
336 |
337 |
338 | delete params.id;
339 | return requestHandler(HTTP_METHODS.PATCH, endpoint, params, headers);
340 | },
341 | getObjectMetafields: function getObjectMetafields(params) {
342 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/objects/").concat(params.id, "/metafields?read_key=").concat(bucket_config.read_key);
343 | return requestHandler(HTTP_METHODS.GET, endpoint);
344 | },
345 | /// DEPRECATED
346 | editObjectMetafields: function editObjectMetafields(params) {
347 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/objects/").concat(params.id, "/metafields");
348 |
349 | if (bucket_config.write_key) {
350 | headers = {
351 | Authorization: "Bearer ".concat(bucket_config.write_key)
352 | };
353 | } // Remove id
354 |
355 |
356 | delete params.id;
357 | return requestHandler(HTTP_METHODS.PATCH, endpoint, params, headers);
358 | },
359 | editObjectMetafield: function editObjectMetafield(params) {
360 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/objects/").concat(params.id, "/metafields/").concat(params.key);
361 |
362 | if (bucket_config.write_key) {
363 | headers = {
364 | Authorization: "Bearer ".concat(bucket_config.write_key)
365 | };
366 | } // Remove id
367 |
368 |
369 | delete params.id;
370 | delete params.key;
371 | return requestHandler(HTTP_METHODS.PATCH, endpoint, params, headers);
372 | },
373 | deleteObject: function deleteObject(params) {
374 | var endpoint = "".concat(URI, "/buckets/").concat(bucket_config.slug, "/objects/").concat(params.id);
375 |
376 | if (bucket_config.write_key) {
377 | headers = {
378 | Authorization: "Bearer ".concat(bucket_config.write_key)
379 | };
380 | }
381 |
382 | return requestHandler(HTTP_METHODS.DELETE, endpoint, null, headers);
383 | }
384 | };
385 | };
386 |
387 | module.exports = objectMethods;
388 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWNrZXQvb2JqZWN0LmpzIl0sIm5hbWVzIjpbInJlcXVpcmUiLCJVUkkiLCJIVFRQX01FVEhPRFMiLCJyZXF1ZXN0SGFuZGxlciIsInByb21pc2VyIiwiaGVhZGVycyIsImFkZFBhcmFtc1RvT2JqZWN0c0VuZHBvaW50IiwiZW5kcG9pbnQiLCJwYXJhbXMiLCJlcCIsImxpbWl0Iiwic2tpcCIsInN0YXR1cyIsImFmdGVyIiwic29ydCIsInNob3dfbWV0YWZpZWxkcyIsInByZXR0eSIsInByb3BzIiwicXVlcnkiLCJlbmNvZGVVUkkiLCJKU09OIiwic3RyaW5naWZ5IiwidXNlX2NhY2hlIiwiRmluZENoYWluaW5nIiwiZGVwdGgiLCJyZXNvbHZlIiwicmVqZWN0IiwidGhlbiIsInJlcyIsImVyciIsIm9iamVjdHNDaGFpbk1ldGhvZHMiLCJidWNrZXRfY29uZmlnIiwiZmluZCIsInNsdWciLCJyZWFkX2tleSIsImZpbmRPbmUiLCJpZCIsImluc2VydE9uZSIsIndyaXRlX2tleSIsIkF1dGhvcml6YXRpb24iLCJQT1NUIiwidXBkYXRlT25lIiwic2V0IiwidXBkYXRlcyIsIiRzZXQiLCJQQVRDSCIsImRlbGV0ZU9uZSIsInRyaWdnZXJfd2ViaG9vayIsIkRFTEVURSIsIm9iamVjdE1ldGhvZHMiLCJvYmplY3RzIiwiZ2V0T2JqZWN0cyIsIkdFVCIsImdldE9iamVjdCIsIkVycm9yIiwiZ2V0T2JqZWN0UmV2aXNpb25zIiwiZ2V0TWVyZ2VSZXF1ZXN0T2JqZWN0cyIsImFkZE9iamVjdCIsImFkZE9iamVjdFJldmlzaW9uIiwidHlwZSIsImVkaXRPYmplY3QiLCJnZXRPYmplY3RNZXRhZmllbGRzIiwiZWRpdE9iamVjdE1ldGFmaWVsZHMiLCJlZGl0T2JqZWN0TWV0YWZpZWxkIiwia2V5IiwiZGVsZXRlT2JqZWN0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUFBLE9BQU8sQ0FBQyw2QkFBRCxDQUFQ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QzRCLEVBQTFELENBQWQ7O0FBQ0EsVUFBSUwsYUFBYSxDQUFDTyxTQUFsQixFQUE2QjtBQUMzQmpDLFFBQUFBLE9BQU8sR0FBRztBQUNSa0MsVUFBQUEsYUFBYSxtQkFBWVIsYUFBYSxDQUFDTyxTQUExQjtBQURMLFNBQVY7QUFHRDs7QUFDRCxhQUFPbkMsY0FBYyxDQUFDRCxZQUFZLENBQUM4QyxNQUFkLEVBQXNCekMsUUFBdEIsRUFBZ0MsSUFBaEMsRUFBc0NGLE9BQXRDLENBQXJCO0FBQ0Q7QUFwR3VDLEdBQXBCO0FBQUEsQ0FBdEI7O0FBdUdBNkQsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbEIsYUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCdyZWdlbmVyYXRvci1ydW50aW1lL3J1bnRpbWUnKVxuXG5jb25zdCB7IFVSSSB9ID0gcmVxdWlyZSgnLi4vaGVscGVycy9jb25zdGFudHMnKVxuY29uc3QgSFRUUF9NRVRIT0RTID0gcmVxdWlyZSgnLi4vaGVscGVycy9odHRwX21ldGhvZHMnKVxuY29uc3QgeyByZXF1ZXN0SGFuZGxlciB9ID0gcmVxdWlyZSgnLi4vaGVscGVycy9yZXF1ZXN0X2hhbmRsZXInKVxuY29uc3QgcHJvbWlzZXIgPSByZXF1aXJlKCcuLi9oZWxwZXJzL3Byb21pc2VyJylcblxubGV0IGhlYWRlcnNcblxuY29uc3QgYWRkUGFyYW1zVG9PYmplY3RzRW5kcG9pbnQgPSAoZW5kcG9pbnQsIHBhcmFtcykgPT4ge1xuICBsZXQgZXAgPSBlbmRwb2ludFxuICBpZiAocGFyYW1zICYmIHBhcmFtcy5saW1pdCkge1xuICAgIGVwICs9IGAmbGltaXQ9JHtwYXJhbXMubGltaXR9YFxuICB9XG4gIGlmIChwYXJhbXMgJiYgcGFyYW1zLnNraXApIHtcbiAgICBlcCArPSBgJnNraXA9JHtwYXJhbXMuc2tpcH1gXG4gIH1cbiAgaWYgKHBhcmFtcyAmJiBwYXJhbXMuc3RhdHVzKSB7XG4gICAgZXAgKz0gYCZzdGF0dXM9JHtwYXJhbXMuc3RhdHVzfWBcbiAgfVxuICBpZiAocGFyYW1zICYmIHBhcmFtcy5hZnRlcikge1xuICAgIGVwICs9IGAmYWZ0ZXI9JHtwYXJhbXMuYWZ0ZXJ9YFxuICB9XG4gIGlmIChwYXJhbXMgJiYgcGFyYW1zLnNvcnQpIHtcbiAgICBlcCArPSBgJnNvcnQ9JHtwYXJhbXMuc29ydH1gXG4gIH1cbiAgaWYgKHBhcmFtcyAmJiBwYXJhbXMuc2hvd19tZXRhZmllbGRzKSB7XG4gICAgZXAgKz0gYCZzaG93X21ldGFmaWVsZHM9JHtwYXJhbXMuc2hvd19tZXRhZmllbGRzfWBcbiAgfVxuICBpZiAocGFyYW1zICYmIHBhcmFtcy5wcmV0dHkpIHtcbiAgICBlcCArPSBgJnByZXR0eT0ke3BhcmFtcy5wcmV0dHl9YFxuICB9XG4gIGlmIChwYXJhbXMgJiYgcGFyYW1zLnByb3BzKSB7XG4gICAgZXAgKz0gYCZwcm9wcz0ke3BhcmFtcy5wcm9wc31gXG4gIH1cbiAgaWYgKHBhcmFtcyAmJiBwYXJhbXMucXVlcnkpIHtcbiAgICBlcCArPSBgJnF1ZXJ5PSR7ZW5jb2RlVVJJKEpTT04uc3RyaW5naWZ5KHBhcmFtcy5xdWVyeSkpfWBcbiAgfVxuICBpZiAocGFyYW1zICYmIHR5cGVvZiBwYXJhbXMudXNlX2NhY2hlICE9PSAndW5kZWZpbmVkJykge1xuICAgIGVwICs9IGAmdXNlX2NhY2hlPSR7cGFyYW1zLnVzZV9jYWNoZX1gXG4gIH1cbiAgcmV0dXJuIGVwXG59XG5cbmNsYXNzIEZpbmRDaGFpbmluZyB7XG4gIGNvbnN0cnVjdG9yKGVuZHBvaW50KSB7XG4gICAgdGhpcy5lbmRwb2ludCA9IGVuZHBvaW50XG4gIH1cblxuICBwcm9wcyhwcm9wcykge1xuICAgIHRoaXMuZW5kcG9pbnQgKz0gYCZwcm9wcz0ke3Byb3BzfWBcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgZGVwdGgoZGVwdGgpIHtcbiAgICB0aGlzLmVuZHBvaW50ICs9IGAmZGVwdGg9JHtkZXB0aH1gXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHNvcnQoc29ydCkge1xuICAgIHRoaXMuZW5kcG9pbnQgKz0gYCZzb3J0PSR7c29ydH1gXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGxpbWl0KGxpbWl0KSB7XG4gICAgdGhpcy5lbmRwb2ludCArPSBgJmxpbWl0PSR7bGltaXR9YFxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBza2lwKHNraXApIHtcbiAgICB0aGlzLmVuZHBvaW50ICs9IGAmc2tpcD0ke3NraXB9YFxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBzdGF0dXMoc3RhdHVzKSB7XG4gICAgdGhpcy5lbmRwb2ludCArPSBgJnN0YXR1cz0ke3N0YXR1c31gXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGFmdGVyKGFmdGVyKSB7XG4gICAgdGhpcy5lbmRwb2ludCArPSBgJmFmdGVyPSR7YWZ0ZXJ9YFxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBzaG93TWV0YWZpZWxkcyhzaG93X21ldGFmaWVsZHMpIHtcbiAgICB0aGlzLmVuZHBvaW50ICs9IGAmc2hvd19tZXRhZmllbGRzPSR7c2hvd19tZXRhZmllbGRzfWBcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgdXNlQ2FjaGUodXNlX2NhY2hlKSB7XG4gICAgdGhpcy5lbmRwb2ludCArPSBgJnVzZV9jYWNoZT0ke3VzZV9jYWNoZX1gXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGFzeW5jIHRoZW4ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgcHJvbWlzZXIodGhpcy5lbmRwb2ludCkudGhlbigocmVzKSA9PiByZXNvbHZlKHJlcywgbnVsbCkpLmNhdGNoKChlcnIpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgcmVqZWN0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJlamVjdChlcnIpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKG51bGwsIGVycilcbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG5cbmNvbnN0IG9iamVjdHNDaGFpbk1ldGhvZHMgPSAoYnVja2V0X2NvbmZpZykgPT4gKHtcbiAgLy8gR2V0XG4gIGZpbmQocXVlcnkpIHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke1VSSX0vYnVja2V0cy8ke2J1Y2tldF9jb25maWcuc2x1Z30vb2JqZWN0cz9yZWFkX2tleT0ke2J1Y2tldF9jb25maWcucmVhZF9rZXl9JHtxdWVyeSA/IGAmcXVlcnk9JHtlbmNvZGVVUkkoSlNPTi5zdHJpbmdpZnkocXVlcnkpKX1gIDogJyd9YFxuICAgIHJldHVybiBuZXcgRmluZENoYWluaW5nKGVuZHBvaW50KVxuICB9LFxuICAvLyBmaW5kT25lXG4gIGZpbmRPbmUocXVlcnkpIHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke1VSSX0vYnVja2V0cy8ke2J1Y2tldF9jb25maWcuc2x1Z30vb2JqZWN0cy8ke3F1ZXJ5LmlkfT9yZWFkX2tleT0ke2J1Y2tldF9jb25maWcucmVhZF9rZXl9YFxuICAgIHJldHVybiBuZXcgRmluZENoYWluaW5nKGVuZHBvaW50KVxuICB9LFxuICAvLyBBZGRcbiAgYXN5bmMgaW5zZXJ0T25lKHBhcmFtcykge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7VVJJfS9idWNrZXRzLyR7YnVja2V0X2NvbmZpZy5zbHVnfS9vYmplY3RzYFxuICAgIGlmIChidWNrZXRfY29uZmlnLndyaXRlX2tleSkge1xuICAgICAgaGVhZGVycyA9IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2J1Y2tldF9jb25maWcud3JpdGVfa2V5fWBcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyKEhUVFBfTUVUSE9EUy5QT1NULCBlbmRwb2ludCwgcGFyYW1zLCBoZWFkZXJzKVxuICB9LFxuICAvLyBFZGl0XG4gIGFzeW5jIHVwZGF0ZU9uZShwYXJhbXMsIHNldCkge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7VVJJfS9idWNrZXRzLyR7YnVja2V0X2NvbmZpZy5zbHVnfS9vYmplY3RzLyR7cGFyYW1zLmlkfWBcbiAgICBjb25zdCB1cGRhdGVzID0gc2V0LiRzZXRcbiAgICBpZiAoYnVja2V0X2NvbmZpZy53cml0ZV9rZXkpIHtcbiAgICAgIGhlYWRlcnMgPSB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtidWNrZXRfY29uZmlnLndyaXRlX2tleX1gXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcihIVFRQX01FVEhPRFMuUEFUQ0gsIGVuZHBvaW50LCB1cGRhdGVzLCBoZWFkZXJzKVxuICB9LFxuICAvLyBEZWxldGVcbiAgYXN5bmMgZGVsZXRlT25lKHBhcmFtcykge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7VVJJfS9idWNrZXRzLyR7YnVja2V0X2NvbmZpZy5zbHVnfS9vYmplY3RzLyR7cGFyYW1zLmlkfSR7cGFyYW1zLnRyaWdnZXJfd2ViaG9vayA/ICc/dHJpZ2dlcl93ZWJob29rPXRydWUnIDogJyd9YFxuICAgIGlmIChidWNrZXRfY29uZmlnLndyaXRlX2tleSkge1xuICAgICAgaGVhZGVycyA9IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2J1Y2tldF9jb25maWcud3JpdGVfa2V5fWBcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyKEhUVFBfTUVUSE9EUy5ERUxFVEUsIGVuZHBvaW50LCBudWxsLCBoZWFkZXJzKVxuICB9XG59KVxuXG5jb25zdCBvYmplY3RNZXRob2RzID0gKGJ1Y2tldF9jb25maWcpID0+ICh7XG4gIG9iamVjdHM6IG9iamVjdHNDaGFpbk1ldGhvZHMoYnVja2V0X2NvbmZpZyksXG4gIGdldE9iamVjdHM6IChwYXJhbXMpID0+IHtcbiAgICBsZXQgZW5kcG9pbnQgPSBgJHtVUkl9L2J1Y2tldHMvJHtidWNrZXRfY29uZmlnLnNsdWd9L29iamVjdHM/cmVhZF9rZXk9JHtidWNrZXRfY29uZmlnLnJlYWRfa2V5fWBcbiAgICBlbmRwb2ludCA9IGFkZFBhcmFtc1RvT2JqZWN0c0VuZHBvaW50KGVuZHBvaW50LCBwYXJhbXMpXG4gICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyKEhUVFBfTUVUSE9EUy5HRVQsIGVuZHBvaW50KVxuICB9LFxuICBnZXRPYmplY3Q6IChwYXJhbXMpID0+IHtcbiAgICBpZiAoIXBhcmFtcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHN1cHBseSBwYXJhbXMgb2JqZWN0IHdpdGggb2JqZWN0IGlkJylcbiAgICB9XG4gICAgbGV0IGVuZHBvaW50ID0gYCR7VVJJfS9idWNrZXRzLyR7YnVja2V0X2NvbmZpZy5zbHVnfS9vYmplY3RzLyR7cGFyYW1zLmlkfT9yZWFkX2tleT0ke2J1Y2tldF9jb25maWcucmVhZF9rZXl9YFxuICAgIGlmIChwYXJhbXMgJiYgcGFyYW1zLnN0YXR1cykge1xuICAgICAgZW5kcG9pbnQgKz0gYCZzdGF0dXM9JHtwYXJhbXMuc3RhdHVzfWBcbiAgICB9XG4gICAgaWYgKHBhcmFtcyAmJiBwYXJhbXMucHJvcHMpIHtcbiAgICAgIGVuZHBvaW50ICs9IGAmcHJvcHM9JHtwYXJhbXMucHJvcHN9YFxuICAgIH1cbiAgICBpZiAocGFyYW1zICYmIHR5cGVvZiBwYXJhbXMudXNlX2NhY2hlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgZW5kcG9pbnQgKz0gYCZ1c2VfY2FjaGU9JHtwYXJhbXMudXNlX2NhY2hlfWBcbiAgICB9XG4gICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyKEhUVFBfTUVUSE9EUy5HRVQsIGVuZHBvaW50KVxuICB9LFxuICBnZXRPYmplY3RSZXZpc2lvbnM6IChwYXJhbXMpID0+IHtcbiAgICBsZXQgZW5kcG9pbnQgPSBgJHtVUkl9L2J1Y2tldHMvJHtidWNrZXRfY29uZmlnLnNsdWd9L29iamVjdHMvJHtwYXJhbXMuaWR9L3JldmlzaW9ucz9yZWFkX2tleT0ke2J1Y2tldF9jb25maWcucmVhZF9rZXl9YFxuICAgIGVuZHBvaW50ID0gYWRkUGFyYW1zVG9PYmplY3RzRW5kcG9pbnQoZW5kcG9pbnQsIHBhcmFtcylcbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLkdFVCwgZW5kcG9pbnQpXG4gIH0sXG4gIGdldE1lcmdlUmVxdWVzdE9iamVjdHM6IChwYXJhbXMpID0+IHtcbiAgICBsZXQgZW5kcG9pbnQgPSBgJHtVUkl9L2J1Y2tldHMvJHtidWNrZXRfY29uZmlnLnNsdWd9L21lcmdlLXJlcXVlc3RzLyR7cGFyYW1zLmlkfS9vYmplY3RzP3JlYWRfa2V5PSR7YnVja2V0X2NvbmZpZy5yZWFkX2tleX1gXG4gICAgZW5kcG9pbnQgPSBhZGRQYXJhbXNUb09iamVjdHNFbmRwb2ludChlbmRwb2ludCwgcGFyYW1zKVxuICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcihIVFRQX01FVEhPRFMuR0VULCBlbmRwb2ludClcbiAgfSxcbiAgYWRkT2JqZWN0OiAocGFyYW1zKSA9PiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHtVUkl9L2J1Y2tldHMvJHtidWNrZXRfY29uZmlnLnNsdWd9L29iamVjdHNgXG4gICAgaWYgKGJ1Y2tldF9jb25maWcud3JpdGVfa2V5KSB7XG4gICAgICBoZWFkZXJzID0ge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YnVja2V0X2NvbmZpZy53cml0ZV9rZXl9YFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLlBPU1QsIGVuZHBvaW50LCBwYXJhbXMsIGhlYWRlcnMpXG4gIH0sXG4gIGFkZE9iamVjdFJldmlzaW9uOiAocGFyYW1zKSA9PiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHtVUkl9L2J1Y2tldHMvJHtidWNrZXRfY29uZmlnLnNsdWd9L29iamVjdHMvJHtwYXJhbXMuaWR9L3JldmlzaW9uc2BcbiAgICBkZWxldGUgcGFyYW1zLmlkXG4gICAgZGVsZXRlIHBhcmFtcy50eXBlXG4gICAgaWYgKGJ1Y2tldF9jb25maWcud3JpdGVfa2V5KSB7XG4gICAgICBoZWFkZXJzID0ge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YnVja2V0X2NvbmZpZy53cml0ZV9rZXl9YFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdEhhbmRsZXIoSFRUUF9NRVRIT0RTLlBPU1QsIGVuZHBvaW50LCBwYXJhbXMsIGhlYWRlcnMpXG4gIH0sXG4gIGVkaXRPYmplY3Q6IChwYXJhbXMpID0+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke1VSSX0vYnVja2V0cy8ke2J1Y2tldF9jb25maWcuc2x1Z30vb2JqZWN0cy8ke3BhcmFtcy5pZH1gXG4gICAgaWYgKGJ1Y2tldF9jb25maWcud3JpdGVfa2V5KSB7XG4gICAgICBoZWFkZXJzID0ge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YnVja2V0X2NvbmZpZy53cml0ZV9rZXl9YFxuICAgICAgfVxuICAgIH1cbiAgICAvLyBSZW1vdmUgaWRcbiAgICBkZWxldGUgcGFyYW1zLmlkXG4gICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyKEhUVFBfTUVUSE9EUy5QQVRDSCwgZW5kcG9pbnQsIHBhcmFtcywgaGVhZGVycylcbiAgfSxcbiAgZ2V0T2JqZWN0TWV0YWZpZWxkczogKHBhcmFtcykgPT4ge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7VVJJfS9idWNrZXRzLyR7YnVja2V0X2NvbmZpZy5zbHVnfS9vYmplY3RzLyR7cGFyYW1zLmlkfS9tZXRhZmllbGRzP3JlYWRfa2V5PSR7YnVja2V0X2NvbmZpZy5yZWFkX2tleX1gXG4gICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyKEhUVFBfTUVUSE9EUy5HRVQsIGVuZHBvaW50KVxuICB9LFxuICAvLy8gREVQUkVDQVRFRFxuICBlZGl0T2JqZWN0TWV0YWZpZWxkczogKHBhcmFtcykgPT4ge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7VVJJfS9idWNrZXRzLyR7YnVja2V0X2NvbmZpZy5zbHVnfS9vYmplY3RzLyR7cGFyYW1zLmlkfS9tZXRhZmllbGRzYFxuICAgIGlmIChidWNrZXRfY29uZmlnLndyaXRlX2tleSkge1xuICAgICAgaGVhZGVycyA9IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2J1Y2tldF9jb25maWcud3JpdGVfa2V5fWBcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUmVtb3ZlIGlkXG4gICAgZGVsZXRlIHBhcmFtcy5pZFxuICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcihIVFRQX01FVEhPRFMuUEFUQ0gsIGVuZHBvaW50LCBwYXJhbXMsIGhlYWRlcnMpXG4gIH0sXG4gIGVkaXRPYmplY3RNZXRhZmllbGQ6IChwYXJhbXMpID0+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke1VSSX0vYnVja2V0cy8ke2J1Y2tldF9jb25maWcuc2x1Z30vb2JqZWN0cy8ke3BhcmFtcy5pZH0vbWV0YWZpZWxkcy8ke3BhcmFtcy5rZXl9YFxuICAgIGlmIChidWNrZXRfY29uZmlnLndyaXRlX2tleSkge1xuICAgICAgaGVhZGVycyA9IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2J1Y2tldF9jb25maWcud3JpdGVfa2V5fWBcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUmVtb3ZlIGlkXG4gICAgZGVsZXRlIHBhcmFtcy5pZFxuICAgIGRlbGV0ZSBwYXJhbXMua2V5XG4gICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyKEhUVFBfTUVUSE9EUy5QQVRDSCwgZW5kcG9pbnQsIHBhcmFtcywgaGVhZGVycylcbiAgfSxcbiAgZGVsZXRlT2JqZWN0OiAocGFyYW1zKSA9PiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHtVUkl9L2J1Y2tldHMvJHtidWNrZXRfY29uZmlnLnNsdWd9L29iamVjdHMvJHtwYXJhbXMuaWR9YFxuICAgIGlmIChidWNrZXRfY29uZmlnLndyaXRlX2tleSkge1xuICAgICAgaGVhZGVycyA9IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2J1Y2tldF9jb25maWcud3JpdGVfa2V5fWBcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyKEhUVFBfTUVUSE9EUy5ERUxFVEUsIGVuZHBvaW50LCBudWxsLCBoZWFkZXJzKVxuICB9XG59KVxuXG5tb2R1bGUuZXhwb3J0cyA9IG9iamVjdE1ldGhvZHNcbiJdfQ==
--------------------------------------------------------------------------------