UNPKG

slack

Version:

Slack API client written in JS

47 lines 8.72 kB
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.slack=f()}})(function(){var define,module,exports;return(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){},{}],2:[function(require,module,exports){var api=require('./api.json') module.exports=function _bind(ns,exec){Object.keys(api).forEach(key=>{var parts=key.split('.') var root=parts.shift() var init=typeof ns[root]==='undefined' if(init){ns[root]={}};(function _iterator(o){var bit=parts.shift() var last=parts.length===0 if(last){o[bit]=exec.bind({},key)} else{var init=typeof o[bit]==='undefined' if(init){o[bit]={}} _iterator(o[bit])}})(ns[root])}) return ns}},{"./api.json":7}],3:[function(require,module,exports){let validate=require('./_validate') let origin=require('./_origin') let encode=encodeURIComponent let serialize=o=>Object.keys(o).map(k=>encode(k)+'='+encode(o[k])).join('&') module.exports=function exec(url,params,callback){if(!callback){return new Promise(function(resolve,reject){_exec(url,params,function __exec(err,res){if(err){reject(err)} else{resolve(res)}})})} else{_exec(url,params,callback)}} async function _exec(url,params,callback){try{var err=validate(url,params) if(err)throw err Object.keys(params).forEach(function(key){if(typeof params[key]==='object'){params[key]=JSON.stringify(params[key])}}) var opts={method:'POST',headers:new Headers({'Content-Type':'application/x-www-form-urlencoded'}),body:serialize(params)} var res=await fetch(`${origin}/api/${url}`,opts) var json=await res.json() if(json.error){var e=Error(json.error) if(json.response_metadata&&json.response_metadata.messages){e.messages=json.response_metadata.messages} callback(e)} else if(res.status===429){var e=Error('ratelimited') e.retry=res.headers.get('retry-after') callback(e)} else{callback(null,json)}} catch(e){callback(e)}}},{"./_origin":5,"./_validate":6}],4:[function(require,module,exports){var bind=require('./_bind') var exec=require('./_exec') var electronExec=require('./_exec-electron') module.exports=function factory(xxx){if(!xxx)xxx={} if(xxx.useElectronNet){exec=electronExec(xxx)} class Slack{constructor(){function _execWithToken(method,params={},callback){params.token=params&&params.token||xxx.token return exec(method,params,callback)} bind(this,_execWithToken)}} return new Slack}},{"./_bind":2,"./_exec":3,"./_exec-electron":1}],5:[function(require,module,exports){var origin='https://slack.com' if(false){origin=false} module.exports=origin},{}],6:[function(require,module,exports){var api=require('./api.json') module.exports=function validate(method,params){let required=api[method] let missing=required.filter(param=>typeof params[param]==='undefined') return missing.length?Error(`${method}missing params:${missing.join(', ')}`):false}},{"./api.json":7}],7:[function(require,module,exports){module.exports={"api.test":[],"apps.permissions.info":["token"],"apps.permissions.request":["token","scopes","trigger_id"],"auth.revoke":["token"],"auth.test":["token"],"bots.info":["token"],"channels.archive":["token","channel"],"channels.create":["token","name"],"channels.history":["token","channel"],"channels.info":["token","channel"],"channels.invite":["token","channel","user"],"channels.join":["token","name"],"channels.kick":["token","channel","user"],"channels.leave":["token","channel"],"channels.list":["token"],"channels.mark":["token","channel","ts"],"channels.rename":["token","channel","name"],"channels.replies":["token","channel","thread_ts"],"channels.setPurpose":["token","channel","purpose"],"channels.setTopic":["token","channel","topic"],"channels.unarchive":["token","channel"],"chat.delete":["token","channel","ts"],"chat.getPermalink":["token","channel","message_ts"],"chat.meMessage":["token","channel","text"],"chat.postEphemeral":["token","channel","text","user"],"chat.postMessage":["token","channel","text"],"chat.unfurl":["token","channel","ts","unfurls"],"chat.update":["token","channel","text","ts"],"conversations.archive":["token","channel"],"conversations.close":["token","channel"],"conversations.create":["token","name"],"conversations.history":["token","channel"],"conversations.info":["token","channel"],"conversations.invite":["token","channel","users"],"conversations.join":["token","channel"],"conversations.kick":["token","channel","user"],"conversations.leave":["token","channel"],"conversations.list":["token"],"conversations.members":["token","channel"],"conversations.open":["token"],"conversations.rename":["token","channel","name"],"conversations.replies":["token","channel","ts"],"conversations.setPurpose":["token","channel","purpose"],"conversations.setTopic":["token","channel","topic"],"conversations.unarchive":["token","channel"],"dialog.open":["token","dialog","trigger_id"],"dnd.endDnd":["token"],"dnd.endSnooze":["token"],"dnd.info":["token"],"dnd.setSnooze":["token","num_minutes"],"dnd.teamInfo":["token"],"emoji.list":["token"],"files.comments.add":["token","comment","file"],"files.comments.delete":["token","file","id"],"files.comments.edit":["token","comment","file","id"],"files.delete":["token","file"],"files.info":["token","file"],"files.list":["token"],"files.revokePublicURL":["token","file"],"files.sharedPublicURL":["token","file"],"files.upload":["token"],"groups.archive":["token","channel"],"groups.create":["token","name"],"groups.createChild":["token","channel"],"groups.history":["token","channel"],"groups.info":["token","channel"],"groups.invite":["token","channel","user"],"groups.kick":["token","channel","user"],"groups.leave":["token","channel"],"groups.list":["token"],"groups.mark":["token","channel","ts"],"groups.open":["token","channel"],"groups.rename":["token","channel","name"],"groups.replies":["token","channel","thread_ts"],"groups.setPurpose":["token","channel","purpose"],"groups.setTopic":["token","channel","topic"],"groups.unarchive":["token","channel"],"im.close":["token","channel"],"im.history":["token","channel"],"im.list":["token"],"im.mark":["token","channel","ts"],"im.open":["token","user"],"im.replies":["token","channel","thread_ts"],"migration.exchange":["token","users"],"mpim.close":["token","channel"],"mpim.history":["token","channel"],"mpim.list":["token"],"mpim.mark":["token","channel","ts"],"mpim.open":["token","users"],"mpim.replies":["token","channel","thread_ts"],"oauth.access":["client_id","client_secret","code"],"oauth.token":["client_id","client_secret","code"],"pins.add":["token","channel"],"pins.list":["token","channel"],"pins.remove":["token","channel"],"reactions.add":["token","name"],"reactions.get":["token"],"reactions.list":["token"],"reactions.remove":["token","name"],"reminders.add":["token","text","time"],"reminders.complete":["token","reminder"],"reminders.delete":["token","reminder"],"reminders.info":["token","reminder"],"reminders.list":["token"],"rtm.connect":["token"],"rtm.start":["token"],"search.all":["token","query"],"search.files":["token","query"],"search.messages":["token","query"],"stars.add":["token"],"stars.list":["token"],"stars.remove":["token"],"team.accessLogs":["token"],"team.billableInfo":["token"],"team.info":["token"],"team.integrationLogs":["token"],"team.profile.get":["token"],"usergroups.create":["token","name"],"usergroups.disable":["token","usergroup"],"usergroups.enable":["token","usergroup"],"usergroups.list":["token"],"usergroups.update":["token","usergroup"],"usergroups.users.list":["token","usergroup"],"usergroups.users.update":["token","usergroup","users"],"users.deletePhoto":["token"],"users.getPresence":["token","user"],"users.identity":["token"],"users.info":["token","user"],"users.list":["token"],"users.lookupByEmail":["token","email"],"users.setActive":["token"],"users.setPhoto":["token","image"],"users.setPresence":["token","presence"],"users.profile.get":["token"],"users.profile.set":["token"]}},{}],8:[function(require,module,exports){let bind=require('./src/_bind') let exec=require('./src/_exec') let factory=require('./src/_factory') module.exports=bind(factory,exec)},{"./src/_bind":2,"./src/_exec":3,"./src/_factory":4}]},{},[8])(8)});