@builderbot/provider-web-whatsapp 1.0.14-alpha.0 → 1.0.16-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -29675,571 +29675,264 @@ function requireUrlencoded () {
29675
29675
 
29676
29676
  var bodyParserExports = bodyParser.exports;
29677
29677
 
29678
- function every (arr, cb) {
29679
- var i=0, len=arr.length;
29680
-
29681
- for (; i < len; i++) {
29682
- if (!cb(arr[i], i, arr)) {
29683
- return false;
29684
- }
29685
- }
29678
+ var lib = {exports: {}};
29686
29679
 
29687
- return true;
29688
- }
29680
+ /*
29681
+ object-assign
29682
+ (c) Sindre Sorhus
29683
+ @license MIT
29684
+ */
29685
+ /* eslint-disable no-unused-vars */
29686
+ var getOwnPropertySymbols = Object.getOwnPropertySymbols;
29687
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
29688
+ var propIsEnumerable = Object.prototype.propertyIsEnumerable;
29689
29689
 
29690
- const SEP = '/';
29691
- // Types ~> static, param, any, optional
29692
- const STYPE=0, PTYPE=1, ATYPE=2, OTYPE=3;
29693
- // Char Codes ~> / : *
29694
- const SLASH=47, COLON=58, ASTER=42, QMARK=63;
29690
+ function toObject(val) {
29691
+ if (val === null || val === undefined) {
29692
+ throw new TypeError('Object.assign cannot be called with null or undefined');
29693
+ }
29695
29694
 
29696
- function strip(str) {
29697
- if (str === SEP) return str;
29698
- (str.charCodeAt(0) === SLASH) && (str=str.substring(1));
29699
- var len = str.length - 1;
29700
- return str.charCodeAt(len) === SLASH ? str.substring(0, len) : str;
29695
+ return Object(val);
29701
29696
  }
29702
29697
 
29703
- function split(str) {
29704
- return (str=strip(str)) === SEP ? [SEP] : str.split(SEP);
29705
- }
29698
+ function shouldUseNative() {
29699
+ try {
29700
+ if (!Object.assign) {
29701
+ return false;
29702
+ }
29706
29703
 
29707
- function isMatch(arr, obj, idx) {
29708
- idx = arr[idx];
29709
- return (obj.val === idx && obj.type === STYPE) || (idx === SEP ? obj.type > PTYPE : obj.type !== STYPE && (idx || '').endsWith(obj.end));
29710
- }
29704
+ // Detect buggy property enumeration order in older V8 versions.
29711
29705
 
29712
- function match$1(str, all) {
29713
- var i=0, tmp, segs=split(str), len=segs.length, l;
29714
- var fn = isMatch.bind(isMatch, segs);
29706
+ // https://bugs.chromium.org/p/v8/issues/detail?id=4118
29707
+ var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
29708
+ test1[5] = 'de';
29709
+ if (Object.getOwnPropertyNames(test1)[0] === '5') {
29710
+ return false;
29711
+ }
29715
29712
 
29716
- for (; i < all.length; i++) {
29717
- tmp = all[i];
29718
- if ((l=tmp.length) === len || (l < len && tmp[l-1].type === ATYPE) || (l > len && tmp[l-1].type === OTYPE)) {
29719
- if (every(tmp, fn)) return tmp;
29713
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
29714
+ var test2 = {};
29715
+ for (var i = 0; i < 10; i++) {
29716
+ test2['_' + String.fromCharCode(i)] = i;
29717
+ }
29718
+ var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
29719
+ return test2[n];
29720
+ });
29721
+ if (order2.join('') !== '0123456789') {
29722
+ return false;
29720
29723
  }
29721
- }
29722
29724
 
29723
- return [];
29724
- }
29725
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
29726
+ var test3 = {};
29727
+ 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
29728
+ test3[letter] = letter;
29729
+ });
29730
+ if (Object.keys(Object.assign({}, test3)).join('') !==
29731
+ 'abcdefghijklmnopqrst') {
29732
+ return false;
29733
+ }
29725
29734
 
29726
- function parse$3(str) {
29727
- if (str === SEP) {
29728
- return [{ old:str, type:STYPE, val:str, end:'' }];
29735
+ return true;
29736
+ } catch (err) {
29737
+ // We don't expect any of the above to throw, but better to be safe.
29738
+ return false;
29729
29739
  }
29740
+ }
29730
29741
 
29731
- var c, x, t, sfx, nxt=strip(str), i=-1, j=0, len=nxt.length, out=[];
29732
-
29733
- while (++i < len) {
29734
- c = nxt.charCodeAt(i);
29742
+ var objectAssign = shouldUseNative() ? Object.assign : function (target, source) {
29743
+ var from;
29744
+ var to = toObject(target);
29745
+ var symbols;
29735
29746
 
29736
- if (c === COLON) {
29737
- j = i + 1; // begining of param
29738
- t = PTYPE; // set type
29739
- x = 0; // reset mark
29740
- sfx = '';
29747
+ for (var s = 1; s < arguments.length; s++) {
29748
+ from = Object(arguments[s]);
29741
29749
 
29742
- while (i < len && nxt.charCodeAt(i) !== SLASH) {
29743
- c = nxt.charCodeAt(i);
29744
- if (c === QMARK) {
29745
- x=i; t=OTYPE;
29746
- } else if (c === 46 && sfx.length === 0) {
29747
- sfx = nxt.substring(x=i);
29748
- }
29749
- i++; // move on
29750
+ for (var key in from) {
29751
+ if (hasOwnProperty.call(from, key)) {
29752
+ to[key] = from[key];
29750
29753
  }
29754
+ }
29751
29755
 
29752
- out.push({
29753
- old: str,
29754
- type: t,
29755
- val: nxt.substring(j, x||i),
29756
- end: sfx
29757
- });
29758
-
29759
- // shorten string & update pointers
29760
- nxt=nxt.substring(i); len-=i; i=0;
29761
-
29762
- continue; // loop
29763
- } else if (c === ASTER) {
29764
- out.push({
29765
- old: str,
29766
- type: ATYPE,
29767
- val: nxt.substring(i),
29768
- end: ''
29769
- });
29770
- continue; // loop
29771
- } else {
29772
- j = i;
29773
- while (i < len && nxt.charCodeAt(i) !== SLASH) {
29774
- ++i; // skip to next slash
29756
+ if (getOwnPropertySymbols) {
29757
+ symbols = getOwnPropertySymbols(from);
29758
+ for (var i = 0; i < symbols.length; i++) {
29759
+ if (propIsEnumerable.call(from, symbols[i])) {
29760
+ to[symbols[i]] = from[symbols[i]];
29761
+ }
29775
29762
  }
29776
- out.push({
29777
- old: str,
29778
- type: STYPE,
29779
- val: nxt.substring(j, i),
29780
- end: ''
29781
- });
29782
- // shorten string & update pointers
29783
- nxt=nxt.substring(i); len-=i; i=j=0;
29784
29763
  }
29785
29764
  }
29786
29765
 
29787
- return out;
29788
- }
29766
+ return to;
29767
+ };
29789
29768
 
29790
- function exec$1(str, arr) {
29791
- var i=0, x, y, segs=split(str), out={};
29792
- for (; i < arr.length; i++) {
29793
- x=segs[i]; y=arr[i];
29794
- if (x === SEP) continue;
29795
- if (x !== void 0 && y.type | 2 === OTYPE) {
29796
- out[ y.val ] = x.replace(y.end, '');
29797
- }
29798
- }
29799
- return out;
29800
- }
29769
+ var vary$1 = {exports: {}};
29801
29770
 
29802
- var matchit = /*#__PURE__*/Object.freeze({
29803
- __proto__: null,
29804
- exec: exec$1,
29805
- match: match$1,
29806
- parse: parse$3
29807
- });
29771
+ /*!
29772
+ * vary
29773
+ * Copyright(c) 2014-2017 Douglas Christopher Wilson
29774
+ * MIT Licensed
29775
+ */
29808
29776
 
29809
- var require$$0 = /*@__PURE__*/getAugmentedNamespace(matchit);
29777
+ /**
29778
+ * Module exports.
29779
+ */
29810
29780
 
29811
- const { exec, match, parse: parse$2 } = require$$0;
29781
+ vary$1.exports = vary;
29782
+ vary$1.exports.append = append;
29812
29783
 
29813
- class Trouter {
29814
- constructor(opts) {
29815
- this.opts = opts || {};
29816
- this.routes = {};
29817
- this.handlers = {};
29784
+ /**
29785
+ * RegExp to match field-name in RFC 7230 sec 3.2
29786
+ *
29787
+ * field-name = token
29788
+ * token = 1*tchar
29789
+ * tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*"
29790
+ * / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~"
29791
+ * / DIGIT / ALPHA
29792
+ * ; any VCHAR, except delimiters
29793
+ */
29818
29794
 
29819
- this.all = this.add.bind(this, '*');
29820
- this.get = this.add.bind(this, 'GET');
29821
- this.head = this.add.bind(this, 'HEAD');
29822
- this.patch = this.add.bind(this, 'PATCH');
29823
- this.options = this.add.bind(this, 'OPTIONS');
29824
- this.connect = this.add.bind(this, 'CONNECT');
29825
- this.delete = this.add.bind(this, 'DELETE');
29826
- this.trace = this.add.bind(this, 'TRACE');
29827
- this.post = this.add.bind(this, 'POST');
29828
- this.put = this.add.bind(this, 'PUT');
29829
- }
29795
+ var FIELD_NAME_REGEXP = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
29830
29796
 
29831
- add(method, pattern, ...fns) {
29832
- // Save decoded pattern info
29833
- if (this.routes[method] === void 0) this.routes[method]=[];
29834
- this.routes[method].push(parse$2(pattern));
29835
- // Save route handler(s)
29836
- if (this.handlers[method] === void 0) this.handlers[method]={};
29837
- this.handlers[method][pattern] = fns;
29838
- // Allow chainable
29839
- return this;
29840
- }
29797
+ /**
29798
+ * Append a field to a vary header.
29799
+ *
29800
+ * @param {String} header
29801
+ * @param {String|Array} field
29802
+ * @return {String}
29803
+ * @public
29804
+ */
29841
29805
 
29842
- find(method, url) {
29843
- let arr = match(url, this.routes[method] || []);
29844
- if (arr.length === 0) {
29845
- arr = match(url, this.routes[method='*'] || []);
29846
- if (!arr.length) return false;
29847
- }
29848
- return {
29849
- params: exec(url, arr),
29850
- handlers: this.handlers[method][arr[0].old]
29851
- };
29852
- }
29853
- }
29806
+ function append (header, field) {
29807
+ if (typeof header !== 'string') {
29808
+ throw new TypeError('header argument is required')
29809
+ }
29854
29810
 
29855
- var trouter = Trouter;
29811
+ if (!field) {
29812
+ throw new TypeError('field argument is required')
29813
+ }
29856
29814
 
29857
- var url = function (req) {
29858
- let url = req.url;
29859
- if (url === void 0) return url;
29815
+ // get fields array
29816
+ var fields = !Array.isArray(field)
29817
+ ? parse$3(String(field))
29818
+ : field;
29860
29819
 
29861
- let obj = req._parsedUrl;
29862
- if (obj && obj._raw === url) return obj;
29863
-
29864
- obj = {};
29865
- obj.query = obj.search = null;
29866
- obj.href = obj.path = obj.pathname = url;
29867
-
29868
- let idx = url.indexOf('?', 1);
29869
- if (idx !== -1) {
29870
- obj.search = url.substring(idx);
29871
- obj.query = obj.search.substring(1);
29872
- obj.pathname = url.substring(0, idx);
29873
- }
29874
-
29875
- obj._raw = url;
29820
+ // assert on invalid field names
29821
+ for (var j = 0; j < fields.length; j++) {
29822
+ if (!FIELD_NAME_REGEXP.test(fields[j])) {
29823
+ throw new TypeError('field argument contains an invalid header name')
29824
+ }
29825
+ }
29876
29826
 
29877
- return (req._parsedUrl = obj);
29878
- };
29827
+ // existing, unspecified vary
29828
+ if (header === '*') {
29829
+ return header
29830
+ }
29879
29831
 
29880
- const http = require$$0$7;
29881
- const Router = trouter;
29882
- const { parse: parse$1 } = require$$8;
29883
- const parser = url;
29832
+ // enumerate current values
29833
+ var val = header;
29834
+ var vals = parse$3(header.toLowerCase());
29884
29835
 
29885
- function lead(x) {
29886
- return x.charCodeAt(0) === 47 ? x : ('/' + x);
29887
- }
29836
+ // unspecified vary
29837
+ if (fields.indexOf('*') !== -1 || vals.indexOf('*') !== -1) {
29838
+ return '*'
29839
+ }
29888
29840
 
29889
- function value(x) {
29890
- let y = x.indexOf('/', 1);
29891
- return y > 1 ? x.substring(0, y) : x;
29892
- }
29841
+ for (var i = 0; i < fields.length; i++) {
29842
+ var fld = fields[i].toLowerCase();
29893
29843
 
29894
- function mutate(str, req) {
29895
- req.url = req.url.substring(str.length) || '/';
29896
- req.path = req.path.substring(str.length) || '/';
29897
- }
29844
+ // append value (case-preserving)
29845
+ if (vals.indexOf(fld) === -1) {
29846
+ vals.push(fld);
29847
+ val = val
29848
+ ? val + ', ' + fields[i]
29849
+ : fields[i];
29850
+ }
29851
+ }
29898
29852
 
29899
- function onError(err, req, res, next) {
29900
- let code = (res.statusCode = err.code || err.status || 500);
29901
- res.end(err.length && err || err.message || http.STATUS_CODES[code]);
29853
+ return val
29902
29854
  }
29903
29855
 
29904
- class Polka extends Router {
29905
- constructor(opts={}) {
29906
- super(opts);
29907
- this.apps = {};
29908
- this.wares = [];
29909
- this.bwares = {};
29910
- this.parse = parser;
29911
- this.server = opts.server;
29912
- this.handler = this.handler.bind(this);
29913
- this.onError = opts.onError || onError; // catch-all handler
29914
- this.onNoMatch = opts.onNoMatch || this.onError.bind(null, { code:404 });
29915
- }
29856
+ /**
29857
+ * Parse a vary header into an array.
29858
+ *
29859
+ * @param {String} header
29860
+ * @return {Array}
29861
+ * @private
29862
+ */
29916
29863
 
29917
- add(method, pattern, ...fns) {
29918
- let base = lead(value(pattern));
29919
- if (this.apps[base] !== void 0) throw new Error(`Cannot mount ".${method.toLowerCase()}('${lead(pattern)}')" because a Polka application at ".use('${base}')" already exists! You should move this handler into your Polka application instead.`);
29920
- return super.add(method, pattern, ...fns);
29921
- }
29864
+ function parse$3 (header) {
29865
+ var end = 0;
29866
+ var list = [];
29867
+ var start = 0;
29922
29868
 
29923
- use(base, ...fns) {
29924
- if (typeof base === 'function') {
29925
- this.wares = this.wares.concat(base, fns);
29926
- } else if (base === '/') {
29927
- this.wares = this.wares.concat(fns);
29928
- } else {
29929
- base = lead(base);
29930
- fns.forEach(fn => {
29931
- if (fn instanceof Polka) {
29932
- this.apps[base] = fn;
29933
- } else {
29934
- let arr = this.bwares[base] || [];
29935
- arr.length > 0 || arr.push((r, _, nxt) => (mutate(base, r),nxt()));
29936
- this.bwares[base] = arr.concat(fn);
29937
- }
29938
- });
29939
- }
29940
- return this; // chainable
29941
- }
29869
+ // gather tokens
29870
+ for (var i = 0, len = header.length; i < len; i++) {
29871
+ switch (header.charCodeAt(i)) {
29872
+ case 0x20: /* */
29873
+ if (start === end) {
29874
+ start = end = i + 1;
29875
+ }
29876
+ break
29877
+ case 0x2c: /* , */
29878
+ list.push(header.substring(start, end));
29879
+ start = end = i + 1;
29880
+ break
29881
+ default:
29882
+ end = i + 1;
29883
+ break
29884
+ }
29885
+ }
29942
29886
 
29943
- listen() {
29944
- (this.server = this.server || http.createServer()).on('request', this.handler);
29945
- this.server.listen.apply(this.server, arguments);
29946
- return this;
29947
- }
29887
+ // final token
29888
+ list.push(header.substring(start, end));
29948
29889
 
29949
- handler(req, res, info) {
29950
- info = info || this.parse(req);
29951
- let fns=[], arr=this.wares, obj=this.find(req.method, info.pathname);
29952
- req.originalUrl = req.originalUrl || req.url;
29953
- let base = value(req.path = info.pathname);
29954
- if (this.bwares[base] !== void 0) {
29955
- arr = arr.concat(this.bwares[base]);
29956
- }
29957
- if (obj) {
29958
- fns = obj.handlers;
29959
- req.params = obj.params;
29960
- } else if (this.apps[base] !== void 0) {
29961
- mutate(base, req); info.pathname=req.path; //=> updates
29962
- fns.push(this.apps[base].handler.bind(null, req, res, info));
29963
- } else if (fns.length === 0) {
29964
- fns.push(this.onNoMatch);
29965
- }
29966
- // Grab addl values from `info`
29967
- req.search = info.search;
29968
- req.query = parse$1(info.query);
29969
- // Exit if only a single function
29970
- let i=0, len=arr.length, num=fns.length;
29971
- if (len === i && num === 1) return fns[0](req, res);
29972
- // Otherwise loop thru all middlware
29973
- let next = err => err ? this.onError(err, req, res, next) : loop();
29974
- let loop = _ => res.finished || (i < len) && arr[i++](req, res, next);
29975
- arr = arr.concat(fns);
29976
- len += num;
29977
- loop(); // init
29978
- }
29890
+ return list
29979
29891
  }
29980
29892
 
29981
- var polka = opts => new Polka(opts);
29982
-
29983
- var polka$1 = /*@__PURE__*/getDefaultExportFromCjs(polka);
29984
-
29985
- var lib = {exports: {}};
29893
+ /**
29894
+ * Mark that a request is varied on a header field.
29895
+ *
29896
+ * @param {Object} res
29897
+ * @param {String|Array} field
29898
+ * @public
29899
+ */
29986
29900
 
29987
- /*
29988
- object-assign
29989
- (c) Sindre Sorhus
29990
- @license MIT
29991
- */
29992
- /* eslint-disable no-unused-vars */
29993
- var getOwnPropertySymbols = Object.getOwnPropertySymbols;
29994
- var hasOwnProperty = Object.prototype.hasOwnProperty;
29995
- var propIsEnumerable = Object.prototype.propertyIsEnumerable;
29901
+ function vary (res, field) {
29902
+ if (!res || !res.getHeader || !res.setHeader) {
29903
+ // quack quack
29904
+ throw new TypeError('res argument is required')
29905
+ }
29996
29906
 
29997
- function toObject(val) {
29998
- if (val === null || val === undefined) {
29999
- throw new TypeError('Object.assign cannot be called with null or undefined');
30000
- }
29907
+ // get existing header
29908
+ var val = res.getHeader('Vary') || '';
29909
+ var header = Array.isArray(val)
29910
+ ? val.join(', ')
29911
+ : String(val);
30001
29912
 
30002
- return Object(val);
29913
+ // set new header
29914
+ if ((val = append(header, field))) {
29915
+ res.setHeader('Vary', val);
29916
+ }
30003
29917
  }
30004
29918
 
30005
- function shouldUseNative() {
30006
- try {
30007
- if (!Object.assign) {
30008
- return false;
30009
- }
30010
-
30011
- // Detect buggy property enumeration order in older V8 versions.
29919
+ var varyExports = vary$1.exports;
30012
29920
 
30013
- // https://bugs.chromium.org/p/v8/issues/detail?id=4118
30014
- var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
30015
- test1[5] = 'de';
30016
- if (Object.getOwnPropertyNames(test1)[0] === '5') {
30017
- return false;
30018
- }
29921
+ (function () {
30019
29922
 
30020
- // https://bugs.chromium.org/p/v8/issues/detail?id=3056
30021
- var test2 = {};
30022
- for (var i = 0; i < 10; i++) {
30023
- test2['_' + String.fromCharCode(i)] = i;
30024
- }
30025
- var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
30026
- return test2[n];
30027
- });
30028
- if (order2.join('') !== '0123456789') {
30029
- return false;
30030
- }
29923
+ var assign = objectAssign;
29924
+ var vary = varyExports;
30031
29925
 
30032
- // https://bugs.chromium.org/p/v8/issues/detail?id=3056
30033
- var test3 = {};
30034
- 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
30035
- test3[letter] = letter;
30036
- });
30037
- if (Object.keys(Object.assign({}, test3)).join('') !==
30038
- 'abcdefghijklmnopqrst') {
30039
- return false;
30040
- }
29926
+ var defaults = {
29927
+ origin: '*',
29928
+ methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
29929
+ preflightContinue: false,
29930
+ optionsSuccessStatus: 204
29931
+ };
30041
29932
 
30042
- return true;
30043
- } catch (err) {
30044
- // We don't expect any of the above to throw, but better to be safe.
30045
- return false;
30046
- }
30047
- }
30048
-
30049
- var objectAssign = shouldUseNative() ? Object.assign : function (target, source) {
30050
- var from;
30051
- var to = toObject(target);
30052
- var symbols;
30053
-
30054
- for (var s = 1; s < arguments.length; s++) {
30055
- from = Object(arguments[s]);
30056
-
30057
- for (var key in from) {
30058
- if (hasOwnProperty.call(from, key)) {
30059
- to[key] = from[key];
30060
- }
30061
- }
30062
-
30063
- if (getOwnPropertySymbols) {
30064
- symbols = getOwnPropertySymbols(from);
30065
- for (var i = 0; i < symbols.length; i++) {
30066
- if (propIsEnumerable.call(from, symbols[i])) {
30067
- to[symbols[i]] = from[symbols[i]];
30068
- }
30069
- }
30070
- }
30071
- }
30072
-
30073
- return to;
30074
- };
30075
-
30076
- var vary$1 = {exports: {}};
30077
-
30078
- /*!
30079
- * vary
30080
- * Copyright(c) 2014-2017 Douglas Christopher Wilson
30081
- * MIT Licensed
30082
- */
30083
-
30084
- /**
30085
- * Module exports.
30086
- */
30087
-
30088
- vary$1.exports = vary;
30089
- vary$1.exports.append = append;
30090
-
30091
- /**
30092
- * RegExp to match field-name in RFC 7230 sec 3.2
30093
- *
30094
- * field-name = token
30095
- * token = 1*tchar
30096
- * tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*"
30097
- * / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~"
30098
- * / DIGIT / ALPHA
30099
- * ; any VCHAR, except delimiters
30100
- */
30101
-
30102
- var FIELD_NAME_REGEXP = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
30103
-
30104
- /**
30105
- * Append a field to a vary header.
30106
- *
30107
- * @param {String} header
30108
- * @param {String|Array} field
30109
- * @return {String}
30110
- * @public
30111
- */
30112
-
30113
- function append (header, field) {
30114
- if (typeof header !== 'string') {
30115
- throw new TypeError('header argument is required')
30116
- }
30117
-
30118
- if (!field) {
30119
- throw new TypeError('field argument is required')
30120
- }
30121
-
30122
- // get fields array
30123
- var fields = !Array.isArray(field)
30124
- ? parse(String(field))
30125
- : field;
30126
-
30127
- // assert on invalid field names
30128
- for (var j = 0; j < fields.length; j++) {
30129
- if (!FIELD_NAME_REGEXP.test(fields[j])) {
30130
- throw new TypeError('field argument contains an invalid header name')
30131
- }
30132
- }
30133
-
30134
- // existing, unspecified vary
30135
- if (header === '*') {
30136
- return header
30137
- }
30138
-
30139
- // enumerate current values
30140
- var val = header;
30141
- var vals = parse(header.toLowerCase());
30142
-
30143
- // unspecified vary
30144
- if (fields.indexOf('*') !== -1 || vals.indexOf('*') !== -1) {
30145
- return '*'
30146
- }
30147
-
30148
- for (var i = 0; i < fields.length; i++) {
30149
- var fld = fields[i].toLowerCase();
30150
-
30151
- // append value (case-preserving)
30152
- if (vals.indexOf(fld) === -1) {
30153
- vals.push(fld);
30154
- val = val
30155
- ? val + ', ' + fields[i]
30156
- : fields[i];
30157
- }
30158
- }
30159
-
30160
- return val
30161
- }
30162
-
30163
- /**
30164
- * Parse a vary header into an array.
30165
- *
30166
- * @param {String} header
30167
- * @return {Array}
30168
- * @private
30169
- */
30170
-
30171
- function parse (header) {
30172
- var end = 0;
30173
- var list = [];
30174
- var start = 0;
30175
-
30176
- // gather tokens
30177
- for (var i = 0, len = header.length; i < len; i++) {
30178
- switch (header.charCodeAt(i)) {
30179
- case 0x20: /* */
30180
- if (start === end) {
30181
- start = end = i + 1;
30182
- }
30183
- break
30184
- case 0x2c: /* , */
30185
- list.push(header.substring(start, end));
30186
- start = end = i + 1;
30187
- break
30188
- default:
30189
- end = i + 1;
30190
- break
30191
- }
30192
- }
30193
-
30194
- // final token
30195
- list.push(header.substring(start, end));
30196
-
30197
- return list
30198
- }
30199
-
30200
- /**
30201
- * Mark that a request is varied on a header field.
30202
- *
30203
- * @param {Object} res
30204
- * @param {String|Array} field
30205
- * @public
30206
- */
30207
-
30208
- function vary (res, field) {
30209
- if (!res || !res.getHeader || !res.setHeader) {
30210
- // quack quack
30211
- throw new TypeError('res argument is required')
30212
- }
30213
-
30214
- // get existing header
30215
- var val = res.getHeader('Vary') || '';
30216
- var header = Array.isArray(val)
30217
- ? val.join(', ')
30218
- : String(val);
30219
-
30220
- // set new header
30221
- if ((val = append(header, field))) {
30222
- res.setHeader('Vary', val);
30223
- }
30224
- }
30225
-
30226
- var varyExports = vary$1.exports;
30227
-
30228
- (function () {
30229
-
30230
- var assign = objectAssign;
30231
- var vary = varyExports;
30232
-
30233
- var defaults = {
30234
- origin: '*',
30235
- methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
30236
- preflightContinue: false,
30237
- optionsSuccessStatus: 204
30238
- };
30239
-
30240
- function isString(s) {
30241
- return typeof s === 'string' || s instanceof String;
30242
- }
29933
+ function isString(s) {
29934
+ return typeof s === 'string' || s instanceof String;
29935
+ }
30243
29936
 
30244
29937
  function isOriginAllowed(origin, allowedOrigin) {
30245
29938
  if (Array.isArray(allowedOrigin)) {
@@ -30465,6 +30158,313 @@ var varyExports = vary$1.exports;
30465
30158
  var libExports = lib.exports;
30466
30159
  var cors = /*@__PURE__*/getDefaultExportFromCjs(libExports);
30467
30160
 
30161
+ function every (arr, cb) {
30162
+ var i=0, len=arr.length;
30163
+
30164
+ for (; i < len; i++) {
30165
+ if (!cb(arr[i], i, arr)) {
30166
+ return false;
30167
+ }
30168
+ }
30169
+
30170
+ return true;
30171
+ }
30172
+
30173
+ const SEP = '/';
30174
+ // Types ~> static, param, any, optional
30175
+ const STYPE=0, PTYPE=1, ATYPE=2, OTYPE=3;
30176
+ // Char Codes ~> / : *
30177
+ const SLASH=47, COLON=58, ASTER=42, QMARK=63;
30178
+
30179
+ function strip(str) {
30180
+ if (str === SEP) return str;
30181
+ (str.charCodeAt(0) === SLASH) && (str=str.substring(1));
30182
+ var len = str.length - 1;
30183
+ return str.charCodeAt(len) === SLASH ? str.substring(0, len) : str;
30184
+ }
30185
+
30186
+ function split(str) {
30187
+ return (str=strip(str)) === SEP ? [SEP] : str.split(SEP);
30188
+ }
30189
+
30190
+ function isMatch(arr, obj, idx) {
30191
+ idx = arr[idx];
30192
+ return (obj.val === idx && obj.type === STYPE) || (idx === SEP ? obj.type > PTYPE : obj.type !== STYPE && (idx || '').endsWith(obj.end));
30193
+ }
30194
+
30195
+ function match$1(str, all) {
30196
+ var i=0, tmp, segs=split(str), len=segs.length, l;
30197
+ var fn = isMatch.bind(isMatch, segs);
30198
+
30199
+ for (; i < all.length; i++) {
30200
+ tmp = all[i];
30201
+ if ((l=tmp.length) === len || (l < len && tmp[l-1].type === ATYPE) || (l > len && tmp[l-1].type === OTYPE)) {
30202
+ if (every(tmp, fn)) return tmp;
30203
+ }
30204
+ }
30205
+
30206
+ return [];
30207
+ }
30208
+
30209
+ function parse$2(str) {
30210
+ if (str === SEP) {
30211
+ return [{ old:str, type:STYPE, val:str, end:'' }];
30212
+ }
30213
+
30214
+ var c, x, t, sfx, nxt=strip(str), i=-1, j=0, len=nxt.length, out=[];
30215
+
30216
+ while (++i < len) {
30217
+ c = nxt.charCodeAt(i);
30218
+
30219
+ if (c === COLON) {
30220
+ j = i + 1; // begining of param
30221
+ t = PTYPE; // set type
30222
+ x = 0; // reset mark
30223
+ sfx = '';
30224
+
30225
+ while (i < len && nxt.charCodeAt(i) !== SLASH) {
30226
+ c = nxt.charCodeAt(i);
30227
+ if (c === QMARK) {
30228
+ x=i; t=OTYPE;
30229
+ } else if (c === 46 && sfx.length === 0) {
30230
+ sfx = nxt.substring(x=i);
30231
+ }
30232
+ i++; // move on
30233
+ }
30234
+
30235
+ out.push({
30236
+ old: str,
30237
+ type: t,
30238
+ val: nxt.substring(j, x||i),
30239
+ end: sfx
30240
+ });
30241
+
30242
+ // shorten string & update pointers
30243
+ nxt=nxt.substring(i); len-=i; i=0;
30244
+
30245
+ continue; // loop
30246
+ } else if (c === ASTER) {
30247
+ out.push({
30248
+ old: str,
30249
+ type: ATYPE,
30250
+ val: nxt.substring(i),
30251
+ end: ''
30252
+ });
30253
+ continue; // loop
30254
+ } else {
30255
+ j = i;
30256
+ while (i < len && nxt.charCodeAt(i) !== SLASH) {
30257
+ ++i; // skip to next slash
30258
+ }
30259
+ out.push({
30260
+ old: str,
30261
+ type: STYPE,
30262
+ val: nxt.substring(j, i),
30263
+ end: ''
30264
+ });
30265
+ // shorten string & update pointers
30266
+ nxt=nxt.substring(i); len-=i; i=j=0;
30267
+ }
30268
+ }
30269
+
30270
+ return out;
30271
+ }
30272
+
30273
+ function exec$1(str, arr) {
30274
+ var i=0, x, y, segs=split(str), out={};
30275
+ for (; i < arr.length; i++) {
30276
+ x=segs[i]; y=arr[i];
30277
+ if (x === SEP) continue;
30278
+ if (x !== void 0 && y.type | 2 === OTYPE) {
30279
+ out[ y.val ] = x.replace(y.end, '');
30280
+ }
30281
+ }
30282
+ return out;
30283
+ }
30284
+
30285
+ var matchit = /*#__PURE__*/Object.freeze({
30286
+ __proto__: null,
30287
+ exec: exec$1,
30288
+ match: match$1,
30289
+ parse: parse$2
30290
+ });
30291
+
30292
+ var require$$0 = /*@__PURE__*/getAugmentedNamespace(matchit);
30293
+
30294
+ const { exec, match, parse: parse$1 } = require$$0;
30295
+
30296
+ class Trouter {
30297
+ constructor(opts) {
30298
+ this.opts = opts || {};
30299
+ this.routes = {};
30300
+ this.handlers = {};
30301
+
30302
+ this.all = this.add.bind(this, '*');
30303
+ this.get = this.add.bind(this, 'GET');
30304
+ this.head = this.add.bind(this, 'HEAD');
30305
+ this.patch = this.add.bind(this, 'PATCH');
30306
+ this.options = this.add.bind(this, 'OPTIONS');
30307
+ this.connect = this.add.bind(this, 'CONNECT');
30308
+ this.delete = this.add.bind(this, 'DELETE');
30309
+ this.trace = this.add.bind(this, 'TRACE');
30310
+ this.post = this.add.bind(this, 'POST');
30311
+ this.put = this.add.bind(this, 'PUT');
30312
+ }
30313
+
30314
+ add(method, pattern, ...fns) {
30315
+ // Save decoded pattern info
30316
+ if (this.routes[method] === void 0) this.routes[method]=[];
30317
+ this.routes[method].push(parse$1(pattern));
30318
+ // Save route handler(s)
30319
+ if (this.handlers[method] === void 0) this.handlers[method]={};
30320
+ this.handlers[method][pattern] = fns;
30321
+ // Allow chainable
30322
+ return this;
30323
+ }
30324
+
30325
+ find(method, url) {
30326
+ let arr = match(url, this.routes[method] || []);
30327
+ if (arr.length === 0) {
30328
+ arr = match(url, this.routes[method='*'] || []);
30329
+ if (!arr.length) return false;
30330
+ }
30331
+ return {
30332
+ params: exec(url, arr),
30333
+ handlers: this.handlers[method][arr[0].old]
30334
+ };
30335
+ }
30336
+ }
30337
+
30338
+ var trouter = Trouter;
30339
+
30340
+ var url = function (req) {
30341
+ let url = req.url;
30342
+ if (url === void 0) return url;
30343
+
30344
+ let obj = req._parsedUrl;
30345
+ if (obj && obj._raw === url) return obj;
30346
+
30347
+ obj = {};
30348
+ obj.query = obj.search = null;
30349
+ obj.href = obj.path = obj.pathname = url;
30350
+
30351
+ let idx = url.indexOf('?', 1);
30352
+ if (idx !== -1) {
30353
+ obj.search = url.substring(idx);
30354
+ obj.query = obj.search.substring(1);
30355
+ obj.pathname = url.substring(0, idx);
30356
+ }
30357
+
30358
+ obj._raw = url;
30359
+
30360
+ return (req._parsedUrl = obj);
30361
+ };
30362
+
30363
+ const http = require$$0$7;
30364
+ const Router = trouter;
30365
+ const { parse } = require$$8;
30366
+ const parser = url;
30367
+
30368
+ function lead(x) {
30369
+ return x.charCodeAt(0) === 47 ? x : ('/' + x);
30370
+ }
30371
+
30372
+ function value(x) {
30373
+ let y = x.indexOf('/', 1);
30374
+ return y > 1 ? x.substring(0, y) : x;
30375
+ }
30376
+
30377
+ function mutate(str, req) {
30378
+ req.url = req.url.substring(str.length) || '/';
30379
+ req.path = req.path.substring(str.length) || '/';
30380
+ }
30381
+
30382
+ function onError(err, req, res, next) {
30383
+ let code = (res.statusCode = err.code || err.status || 500);
30384
+ res.end(err.length && err || err.message || http.STATUS_CODES[code]);
30385
+ }
30386
+
30387
+ class Polka extends Router {
30388
+ constructor(opts={}) {
30389
+ super(opts);
30390
+ this.apps = {};
30391
+ this.wares = [];
30392
+ this.bwares = {};
30393
+ this.parse = parser;
30394
+ this.server = opts.server;
30395
+ this.handler = this.handler.bind(this);
30396
+ this.onError = opts.onError || onError; // catch-all handler
30397
+ this.onNoMatch = opts.onNoMatch || this.onError.bind(null, { code:404 });
30398
+ }
30399
+
30400
+ add(method, pattern, ...fns) {
30401
+ let base = lead(value(pattern));
30402
+ if (this.apps[base] !== void 0) throw new Error(`Cannot mount ".${method.toLowerCase()}('${lead(pattern)}')" because a Polka application at ".use('${base}')" already exists! You should move this handler into your Polka application instead.`);
30403
+ return super.add(method, pattern, ...fns);
30404
+ }
30405
+
30406
+ use(base, ...fns) {
30407
+ if (typeof base === 'function') {
30408
+ this.wares = this.wares.concat(base, fns);
30409
+ } else if (base === '/') {
30410
+ this.wares = this.wares.concat(fns);
30411
+ } else {
30412
+ base = lead(base);
30413
+ fns.forEach(fn => {
30414
+ if (fn instanceof Polka) {
30415
+ this.apps[base] = fn;
30416
+ } else {
30417
+ let arr = this.bwares[base] || [];
30418
+ arr.length > 0 || arr.push((r, _, nxt) => (mutate(base, r),nxt()));
30419
+ this.bwares[base] = arr.concat(fn);
30420
+ }
30421
+ });
30422
+ }
30423
+ return this; // chainable
30424
+ }
30425
+
30426
+ listen() {
30427
+ (this.server = this.server || http.createServer()).on('request', this.handler);
30428
+ this.server.listen.apply(this.server, arguments);
30429
+ return this;
30430
+ }
30431
+
30432
+ handler(req, res, info) {
30433
+ info = info || this.parse(req);
30434
+ let fns=[], arr=this.wares, obj=this.find(req.method, info.pathname);
30435
+ req.originalUrl = req.originalUrl || req.url;
30436
+ let base = value(req.path = info.pathname);
30437
+ if (this.bwares[base] !== void 0) {
30438
+ arr = arr.concat(this.bwares[base]);
30439
+ }
30440
+ if (obj) {
30441
+ fns = obj.handlers;
30442
+ req.params = obj.params;
30443
+ } else if (this.apps[base] !== void 0) {
30444
+ mutate(base, req); info.pathname=req.path; //=> updates
30445
+ fns.push(this.apps[base].handler.bind(null, req, res, info));
30446
+ } else if (fns.length === 0) {
30447
+ fns.push(this.onNoMatch);
30448
+ }
30449
+ // Grab addl values from `info`
30450
+ req.search = info.search;
30451
+ req.query = parse(info.query);
30452
+ // Exit if only a single function
30453
+ let i=0, len=arr.length, num=fns.length;
30454
+ if (len === i && num === 1) return fns[0](req, res);
30455
+ // Otherwise loop thru all middlware
30456
+ let next = err => err ? this.onError(err, req, res, next) : loop();
30457
+ let loop = _ => res.finished || (i < len) && arr[i++](req, res, next);
30458
+ arr = arr.concat(fns);
30459
+ len += num;
30460
+ loop(); // init
30461
+ }
30462
+ }
30463
+
30464
+ var polka = opts => new Polka(opts);
30465
+
30466
+ var polka$1 = /*@__PURE__*/getDefaultExportFromCjs(polka);
30467
+
30468
30468
  var _WebWhatsappHttpServer_botName;
30469
30469
  const idCtxBot = 'id-ctx-bot';
30470
30470
  const idBotName = 'id-bot';
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,aAAa,CAAA;AAGtC,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAGpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK1C,qBAAa,qBAAsB,SAAQ,YAAY;;IAC5C,MAAM,EAAE,KAAK,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;gBAGP,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAO1C;;OAEG;IACH,SAAS,CAAC,eAAe,IAAI,KAAK;IAQlC;;OAEG;IAEH,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAczE;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAMpC;IAED,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAWxB;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW;cACyD,mBAAmB;2BACxD,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,WAE7D,GAAG,OAAO,GAAG,QAoBlB,CAAA"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAEA,OAAO,YAAY,MAAM,aAAa,CAAA;AAGtC,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK1C,qBAAa,qBAAsB,SAAQ,YAAY;;IAC5C,MAAM,EAAE,KAAK,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;gBAGP,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAO1C;;OAEG;IACH,SAAS,CAAC,eAAe,IAAI,KAAK;IAQlC;;OAEG;IAEH,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAczE;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAMpC;IAED,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAWxB;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW;cACyD,mBAAmB;2BACxD,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,WAEjE,GAAG,OAAO,GAAG,QAoBlB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builderbot/provider-web-whatsapp",
3
- "version": "1.0.14-alpha.0",
3
+ "version": "1.0.16-alpha.0",
4
4
  "description": "Now I’m the model of a modern major general / The venerated Virginian veteran whose men are all / Lining up, to put me up on a pedestal / Writin’ letters to relatives / Embellishin’ my elegance and eloquence / But the elephant is in the room / The truth is in ya face when ya hear the British cannons go / BOOM",
5
5
  "keywords": [],
6
6
  "author": "Leifer Mendez <leifer33@gmail.com>",
@@ -29,7 +29,7 @@
29
29
  },
30
30
  "homepage": "https://github.com/codigoencasa/bot-whatsapp#readme",
31
31
  "devDependencies": {
32
- "@builderbot/bot": "^1.0.14-alpha.0",
32
+ "@builderbot/bot": "^1.0.16-alpha.0",
33
33
  "@rollup/plugin-commonjs": "^25.0.7",
34
34
  "@rollup/plugin-json": "^6.1.0",
35
35
  "@rollup/plugin-node-resolve": "^15.2.3",
@@ -53,5 +53,5 @@
53
53
  "polka": "^0.5.2",
54
54
  "whatsapp-web.js": "^1.23.0"
55
55
  },
56
- "gitHead": "aa29bfde41cd1b73dc315e8a5d383ae2c19d135b"
56
+ "gitHead": "c4e161de0befb91b56a6c85866462abbaf462f43"
57
57
  }