diff --git a/.eslintrc b/.eslintrc index ac9f630..a67a1f9 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,8 +1,8 @@ { - "extends": "vue", + "extends": ["plugin:vue/recommended"], "rules": { "space-before-function-paren": [2, "never"], "indent": ["error",4], "camelcase": [2, {"properties": "never"}] } -} \ No newline at end of file +} diff --git a/build/webpack.dev.js b/build/webpack.dev.js index b1125d3..6f82f84 100644 --- a/build/webpack.dev.js +++ b/build/webpack.dev.js @@ -1,24 +1,38 @@ let path = require('path') let webpack = require('webpack') +const VueLoaderPlugin = require('vue-loader/lib/plugin') module.exports = { - entry: { - 'paystack': './examples/commonjs/app.js' - }, - output: { - path: path.resolve(__dirname, '../dist'), - publicPath: '/dist/', - filename: '[name].js' - }, - module: { - rules: [{ - test: /\.vue$/, - loader: 'vue-loader' - }, { - test: /\.js$/, - loader: 'babel-loader', - exclude: /node_modules/ - }] - }, - devtool: 'eval-source-map' + entry: { + 'paystack': './examples/commonjs/app.js' + }, + output: { + path: path.resolve(__dirname, '../dist'), + publicPath: '/dist/', + filename: '[name].js' + }, + module: { + rules: [{ + test: /\.vue$/, + loader: 'vue-loader' + }, { + test: /\.js$/, + loader: 'babel-loader', + exclude: /node_modules/ + }, { + test: /\.css$/, + use: [ + 'vue-style-loader', + 'css-loader' + ] + }] + }, + plugins: [ + new VueLoaderPlugin(), + new webpack.LoaderOptionsPlugin({ + minimize: true, + debug: false + }) + ], + devtool: 'eval-source-map' } diff --git a/build/webpack.dist.js b/build/webpack.dist.js index 9b1d394..7b29c52 100644 --- a/build/webpack.dist.js +++ b/build/webpack.dist.js @@ -1,45 +1,80 @@ var path = require('path') var webpack = require('webpack') +const VueLoaderPlugin = require('vue-loader/lib/plugin') +const UglifyJsPlugin = require('uglifyjs-webpack-plugin') module.exports = { - entry: { - 'paystack': './src/index.js' - }, - output: { - path: path.resolve(__dirname, '../dist'), - publicPath: '/dist/', - filename: '[name].min.js', - library: 'VuePaystack', - libraryTarget: 'umd', - umdNamedDefine: true - }, - module: { - rules: [{ - enforce: 'pre', - test: /\.(js|vue)$/, - exclude: /node_modules/, - loader: 'eslint-loader' - }, { - test: /\.vue$/, - loader: 'vue-loader' - }, { - test: /\.js$/, - loader: 'babel-loader', - exclude: /node_modules/ - }] - }, - plugins: [ - new webpack.LoaderOptionsPlugin({ - minimize: true, - debug: false - }), - new webpack.optimize.UglifyJsPlugin({ - sourceMap: true, - include: /\.min\.js$/, - compress: { - warnings: false - } - }) - ], - devtool: 'source-map' + entry: { + 'paystack': './src/index.js' + }, + output: { + path: path.resolve(__dirname, '../dist'), + publicPath: '/dist/', + filename: '[name].min.js', + library: 'VuePaystack', + libraryTarget: 'umd', + umdNamedDefine: true + }, + module: { + rules: [{ + enforce: 'pre', + test: /\.(js|vue)$/, + exclude: /node_modules/, + loader: 'eslint-loader' + }, { + test: /\.vue$/, + loader: 'vue-loader' + }, { + test: /\.js$/, + loader: 'babel-loader', + exclude: /node_modules/ + }, { + test: /\.css$/, + use: [ + 'vue-style-loader', + 'css-loader' + ] + }] + }, + optimization: { + minimizer: [ + new UglifyJsPlugin({ + uglifyOptions: { + output: { + comments: false + }, + compress: { + unsafe_comps: true, + properties: true, + keep_fargs: false, + pure_getters: true, + collapse_vars: true, + unsafe: true, + warnings: false, + sequences: true, + dead_code: true, + drop_debugger: true, + comparisons: true, + conditionals: true, + evaluate: true, + booleans: true, + loops: true, + unused: true, + hoist_funs: true, + if_return: true, + join_vars: true, + drop_console: true + } + } + }) + ] + }, + plugins: [ + new VueLoaderPlugin(), + new webpack.LoaderOptionsPlugin({ + minimize: true, + debug: false + }) + ], + devtool: 'source-map' } diff --git a/dist/paystack.min.js b/dist/paystack.min.js index 132caac..52f76d3 100644 --- a/dist/paystack.min.js +++ b/dist/paystack.min.js @@ -1,2 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("VuePaystack",[],t):"object"==typeof exports?exports.VuePaystack=t():e.VuePaystack=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=0)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),a=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3),a=n.n(r),o=n(4),c=n(2),u=c(a.a,o.a,!1,null,null,null);t.default=u.exports},function(e,t){e.exports=function(e,t,n,r,a,o){var c,u=e=e||{},i=typeof e.default;"object"!==i&&"function"!==i||(c=e,u=e.default);var s="function"==typeof u?u.options:u;t&&(s.render=t.render,s.staticRenderFns=t.staticRenderFns,s._compiled=!0),n&&(s.functional=!0),a&&(s._scopeId=a);var d;if(o?(d=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(o)},s._ssrRegister=d):r&&(d=r),d){var l=s.functional,f=l?s.render:s.beforeCreate;l?(s._injectStyles=d,s.render=function(e,t){return d.call(t),f(e,t)}):s.beforeCreate=f?[].concat(f,d):[d]}return{esModule:c,exports:u,options:s}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:{embed:{type:Boolean,default:!1},paystackkey:{type:String,required:!0},email:{type:String,required:!0},amount:{type:Number,required:!0},reference:{type:String,required:!0},callback:{type:Function,required:!0,default:function(e){}},close:{type:Function,required:!0,default:function(){}},text:{type:String,default:"Make Payment"},metadata:{type:Object,default:function(){return{}}},currency:{type:String,default:"NGN"},plan:{type:String,default:""},quantity:{type:String,default:""},subaccount:{type:String,default:""},transaction_charge:{type:Number,default:0},bearer:{type:String,default:""}},computed:{scriptLoaded:function(){var e=this;return new Promise(function(t){e.loadScript(function(){t()})})}},mounted:function(){this.embed&&this.payWithPaystack()},methods:{loadScript:function(e){var t=document.createElement("script");t.src="https://js.paystack.co/v1/inline.js",document.getElementsByTagName("head")[0].appendChild(t),t.readyState?t.onreadystatechange=function(){"loaded"!==t.readyState&&"complete"!==t.readyState||(t.onreadystatechange=null,e())}:t.onload=function(){e()}},payWithPaystack:function(){var e=this;this.scriptLoaded.then(function(){var t={key:e.paystackkey,email:e.email,amount:e.amount,ref:e.reference,callback:function(t){e.callback(t)},onClose:function(){e.close()},metadata:e.metadata,currency:e.currency,plan:e.plan,quantity:e.quantity,subaccount:e.subaccount,transaction_charge:e.transaction_charge,bearer:e.bearer};e.embed&&(t.container="paystackEmbedContainer");var n=window.PaystackPop.setup(t);e.embed||n.openIframe()})}}}},function(e,t,n){"use strict";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.embed?n("div",{attrs:{id:"paystackEmbedContainer"}}):n("button",{staticClass:"payButton",domProps:{textContent:e._s(e.text)},on:{click:e.payWithPaystack}})},a=[],o={render:r,staticRenderFns:a};t.a=o}])}); -//# sourceMappingURL=paystack.min.js.map \ No newline at end of file +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("VuePaystack",[],e):"object"==typeof exports?exports.VuePaystack=e():t.VuePaystack=e()}(window,function(){return function(t){function e(r){if(n[r])return n[r].exports;var a=n[r]={i:r,l:!1,exports:{}};return t[r].call(a.exports,a,a.exports,e),a.l=!0,a.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:r})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var a in t)e.d(r,a,function(e){return t[e]}.bind(null,a));return r},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/dist/",e(e.s=4)}([function(t,e,n){"use strict";n.r(e);var r=n(1),a=n.n(r);for(var o in r)"default"!==o&&function(t){n.d(e,t,function(){return r[t]})}(o);e.default=a.a},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={props:{embed:{type:Boolean,default:!1},paystackkey:{type:String,required:!0},email:{type:String,required:!0},amount:{type:Number,required:!0},reference:{type:String,required:!0},callback:{type:Function,required:!0,default:function(){}},close:{type:Function,required:!0,default:function(){}},text:{type:String,default:"Make Payment"},metadata:{type:Object,default:function(){return{}}},currency:{type:String,default:"NGN"},plan:{type:String,default:""},quantity:{type:String,default:""},subaccount:{type:String,default:""},transaction_charge:{type:Number,default:0},bearer:{type:String,default:""}},computed:{scriptLoaded:function(){var t=this;return new Promise(function(e){t.loadScript(function(){e()})})}},mounted:function(){this.embed&&this.payWithPaystack()},methods:{loadScript:function(t){var e=document.createElement("script");e.src="https://js.paystack.co/v1/inline.js",document.getElementsByTagName("head")[0].appendChild(e),e.readyState?e.onreadystatechange=function(){"loaded"!==e.readyState&&"complete"!==e.readyState||(e.onreadystatechange=null,t())}:e.onload=function(){t()}},payWithPaystack:function(){var t=this;this.scriptLoaded.then(function(){var e={key:t.paystackkey,email:t.email,amount:t.amount,ref:t.reference,callback:function(e){t.callback(e)},onClose:function(){t.close()},metadata:t.metadata,currency:t.currency,plan:t.plan,quantity:t.quantity,subaccount:t.subaccount,transaction_charge:t.transaction_charge,bearer:t.bearer};t.embed&&(e.container="paystackEmbedContainer");var n=window.PaystackPop.setup(e);t.embed||n.openIframe()})}}}},function(t,e,n){"use strict";var r=function(){var t=this._self._c||this.$createElement;return this.embed?t("div",{attrs:{id:"paystackEmbedContainer"}}):t("button",{staticClass:"payButton",domProps:{textContent:this._s(this.text)},on:{click:this.payWithPaystack}})},a=[];n.d(e,"a",function(){return r}),n.d(e,"b",function(){return a})},function(t,e,n){"use strict";function r(t,e,n,r,a,o,u,i){var c,s="function"==typeof t?t.options:t;if(e&&(s.render=e,s.staticRenderFns=n,s._compiled=!0),r&&(s.functional=!0),o&&(s._scopeId="data-v-"+o),u?s._ssrRegister=c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),a&&a.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(u)}:a&&(c=i?function(){a.call(this,this.$root.$options.shadowRoot)}:a),c)if(s.functional){s._injectStyles=c;var d=s.render;s.render=function(t,e){return c.call(e),d(t,e)}}else{var f=s.beforeCreate;s.beforeCreate=f?[].concat(f,c):[c]}return{exports:t,options:s}}n.d(e,"a",function(){return r})},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,a=n(5),o=(r=a)&&r.__esModule?r:{default:r};e.default=o.default},function(t,e,n){"use strict";n.r(e);var r=n(2),a=n(0);for(var o in a)"default"!==o&&function(t){n.d(e,t,function(){return a[t]})}(o);var u=n(3),i=Object(u.a)(a.default,r.a,r.b,!1,null,null,null);i.options.__file="paystack.vue",e.default=i.exports}])}); \ No newline at end of file diff --git a/dist/paystack.min.js.map b/dist/paystack.min.js.map deleted file mode 100644 index 1168be5..0000000 --- a/dist/paystack.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///paystack.min.js","webpack:///webpack/bootstrap c843d1a82b39c199b565","webpack:///./src/index.js","webpack:///./src/paystack.vue","webpack:///./node_modules/vue-loader/lib/component-normalizer.js","webpack:///src/paystack.vue","webpack:///./src/paystack.vue?18cf"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","value","_paystack","_paystack2","obj","default","__webpack_exports__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_paystack_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_paystack_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_66811d56_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_paystack_vue__","normalizeComponent","Component","a","rawScriptExports","compiledTemplate","functionalTemplate","injectStyles","scopeId","moduleIdentifier","esModule","scriptExports","type","options","render","staticRenderFns","_compiled","functional","_scopeId","hook","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","existing","beforeCreate","_injectStyles","h","concat","props","embed","Boolean","paystackkey","String","required","email","amount","Number","reference","callback","Function","response","close","text","metadata","currency","plan","quantity","subaccount","transaction_charge","bearer","computed","scriptLoaded","_this","Promise","resolve","loadScript","mounted","payWithPaystack","methods","script","document","createElement","src","getElementsByTagName","appendChild","readyState","onreadystatechange","onload","_this2","then","paystackOptions","key","ref","onClose","container","handler","window","PaystackPop","setup","openIframe","_vm","_h","$createElement","_c","_self","attrs","id","staticClass","domProps","textContent","_s","on","click","esExports"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,IACA,kBAAAG,gBAAAC,IACAD,OAAA,iBAAAH,GACA,gBAAAC,SACAA,QAAA,YAAAD,IAEAD,EAAA,YAAAC,KACCK,KAAA,WACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAP,OAGA,IAAAC,GAAAO,EAAAD,IACAE,EAAAF,EACAG,GAAA,EACAV,WAUA,OANAK,GAAAE,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAS,GAAA,EAGAT,EAAAD,QAvBA,GAAAQ,KA4DA,OAhCAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAQ,EAAA,SAAAd,EAAAe,EAAAC,GACAV,EAAAW,EAAAjB,EAAAe,IACAG,OAAAC,eAAAnB,EAAAe,GACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,KAMAV,EAAAiB,EAAA,SAAAtB,GACA,GAAAe,GAAAf,KAAAuB,WACA,WAA2B,MAAAvB,GAAA,SAC3B,WAAiC,MAAAA,GAEjC,OADAK,GAAAQ,EAAAE,EAAA,IAAAA,GACAA,GAIAV,EAAAW,EAAA,SAAAQ,EAAAC,GAAsD,MAAAR,QAAAS,UAAAC,eAAAjB,KAAAc,EAAAC,IAGtDpB,EAAAuB,EAAA,SAGAvB,IAAAwB,EAAA,KDgBM,SAAU7B,EAAQD,EAASM,GAEjC,YAGAY,QAAOC,eAAenB,EAAS,cAC7B+B,OAAO,GEnFT,IAAAC,GAAA1B,EAAA,GFwFI2B,EAEJ,SAAgCC,GAAO,MAAOA,IAAOA,EAAIV,WAAaU,GAAQC,QAASD,IAF/CF,EAIxChC,GAAQmC,QAAUF,EAAWE,SAIvB,SAAUlC,EAAQmC,EAAqB9B,GAE7C,YACAY,QAAOC,eAAeiB,EAAqB,cAAgBL,OAAO,GAC7C,IAAIM,GAAoH/B,EAAoB,GACxIgC,EAA4HhC,EAAoBiB,EAAEc,GGrG3KE,EAAAjC,EAAA,GAAAkC,EAAAlC,EAAA,GAaAmC,EAAAD,EACAF,EAAAI,EACAH,EAAA,GATA,EAEA,KAEA,KAEA,KAUAH,GAAA,QAAAK,EAAA,SH4GM,SAAUxC,EAAQD,GI5HxBC,EAAAD,QAAA,SACA2C,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,GAAAC,GACAC,EAAAP,QAGAQ,QAAAR,GAAAR,OACA,YAAAgB,GAAA,aAAAA,IACAF,EAAAN,EACAO,EAAAP,EAAAR,QAIA,IAAAiB,GAAA,kBAAAF,GACAA,EAAAE,QACAF,CAGAN,KACAQ,EAAAC,OAAAT,EAAAS,OACAD,EAAAE,gBAAAV,EAAAU,gBACAF,EAAAG,WAAA,GAIAV,IACAO,EAAAI,YAAA,GAIAT,IACAK,EAAAK,SAAAV,EAGA,IAAAW,EA4BA,IA3BAV,GACAU,EAAA,SAAAC,GAEAA,EACAA,GACAvD,KAAAwD,QAAAxD,KAAAwD,OAAAC,YACAzD,KAAA0D,QAAA1D,KAAA0D,OAAAF,QAAAxD,KAAA0D,OAAAF,OAAAC,WAEAF,GAAA,mBAAAI,uBACAJ,EAAAI,qBAGAjB,GACAA,EAAAnC,KAAAP,KAAAuD,GAGAA,KAAAK,uBACAL,EAAAK,sBAAAC,IAAAjB,IAKAI,EAAAc,aAAAR,GACGZ,IACHY,EAAAZ,GAGAY,EAAA,CACA,GAAAF,GAAAJ,EAAAI,WACAW,EAAAX,EACAJ,EAAAC,OACAD,EAAAgB,YAEAZ,IAQAJ,EAAAiB,cAAAX,EAEAN,EAAAC,OAAA,SAAAiB,EAAAX,GAEA,MADAD,GAAA/C,KAAAgD,GACAQ,EAAAG,EAAAX,KAVAP,EAAAgB,aAAAD,KACAI,OAAAJ,EAAAT,IACAA,GAaA,OACAT,WACAjD,QAAAkD,EACAE,aJ2IM,SAAUnD,EAAQD,EAASM,GAEjC,YAGAY,QAAOC,eAAenB,EAAS,cAC3B+B,OAAO,IAQX/B,EAAQmC,SACJqC,OACIC,OACItB,KKtPZuB,QLuPYvC,SKrPZ,GLuPQwC,aACIxB,KKtPZyB,OLuPYC,UKrPZ,GLuPQC,OACI3B,KKtPZyB,OLuPYC,UKrPZ,GLuPQE,QACI5B,KKtPZ6B,OLuPYH,UKrPZ,GLuPQI,WACI9B,KKtPZyB,OLuPYC,UKrPZ,GLuPQK,UACI/B,KKtPZgC,SLuPYN,UKtPZ,ELuPY1C,QAAS,SAAkBiD,MAE/BC,OACIlC,KKtPZgC,SLuPYN,UKtPZ,ELuPY1C,QAAS,cAEbmD,MACInC,KKtPZyB,OLuPYzC,QKrPZ,gBLuPQoD,UACIpC,KKtPZjC,OLuPYiB,QAAS,WACL,WAGRqD,UACIrC,KKxPZyB,OLyPYzC,QKvPZ,OLyPQsD,MACItC,KKxPZyB,OLyPYzC,QKvPZ,ILyPQuD,UACIvC,KKxPZyB,OLyPYzC,QKvPZ,ILyPQwD,YACIxC,KKxPZyB,OLyPYzC,QKvPZ,ILyPQyD,oBACIzC,KKxPZ6B,OLyPY7C,QKvPZ,GLyPQ0D,QACI1C,KKxPZyB,OLyPYzC,QKtPZ,KLyPI2D,UACIC,aAAc,WKxPtB,GAAAC,GAAA5F,IL2PY,OAAO,IAAI6F,SAAQ,SAAUC,GACzBF,EAAMG,WAAW,WKzPjCD,UL+PIE,QAAS,WACDhG,KAAKqE,OACLrE,KK1PZiG,mBL8PIC,SACIH,WAAY,SAAoBjB,GAC5B,GAAIqB,GAASC,SAASC,cK3PlC,SL4PYF,GAAOG,IK3PnB,sCL4PYF,SAASG,qBAAqB,QAAQ,GAAGC,YK3PrDL,GL4PgBA,EAAOM,WAEPN,EAAOO,mBAAqB,WACE,WAAtBP,EAAOM,YAAiD,aAAtBN,EAAOM,aACzCN,EAAOO,mBK5P/B,KACA5B,MLiQgBqB,EAAOQ,OAAS,WK5PhC7B,MLiQQmB,gBAAiB,WK5PzB,GAAAW,GAAA5G,IL+PYA,MAAK2F,aAAakB,KAAK,WACnB,GAAIC,IACAC,IAAKH,EK9PzBrC,YL+PoBG,MAAOkC,EK9P3BlC,ML+PoBC,OAAQiC,EK9P5BjC,OL+PoBqC,IAAKJ,EK9PzB/B,UL+PoBC,SAAU,SAAkBE,GACxB4B,EAAO9B,SK9P/BE,ILgQoBiC,QAAS,WACLL,EK9PxB3B,SLgQoBE,SAAUyB,EK9P9BzB,SL+PoBC,SAAUwB,EK9P9BxB,SL+PoBC,KAAMuB,EK9P1BvB,KL+PoBC,SAAUsB,EK9P9BtB,SL+PoBC,WAAYqB,EK9PhCrB,WL+PoBC,mBAAoBoB,EK9PxCpB,mBL+PoBC,OAAQmB,EK5P5BnB,OL+PoBmB,GAAOvC,QACPyC,EAAgBI,UK9PpC,yBLiQgB,IAAIC,GAAUC,OAAOC,YAAYC,MK9PjDR,EL+PqBF,GAAOvC,OACR8C,EK9PpBI,mBLuQM,SAAU1H,EAAQmC,EAAqB9B,GAE7C,YM9YA,IAAA+C,GAAA,WAA0B,GAAAuE,GAAAxH,KAAayH,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CAAwB,OAAAD,GAAAnD,MAAoIsD,EAAA,OAAYE,OAAOC,GAAA,4BAAvJH,EAAA,UAAiCI,YAAA,YAAAC,UAAkCC,YAAAT,EAAAU,GAAAV,EAAAtC,OAA+BiD,IAAKC,MAAAZ,EAAAvB,oBAChM/C,KACAmF,GAAiBpF,SAAAC,kBACjBlB,GAAA","file":"paystack.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"VuePaystack\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"VuePaystack\"] = factory();\n\telse\n\t\troot[\"VuePaystack\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"VuePaystack\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"VuePaystack\"] = factory();\n\telse\n\t\troot[\"VuePaystack\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _paystack = __webpack_require__(1);\n\nvar _paystack2 = _interopRequireDefault(_paystack);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _paystack2.default;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_paystack_vue__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_paystack_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_paystack_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_66811d56_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_paystack_vue__ = __webpack_require__(4);\nvar normalizeComponent = __webpack_require__(2)\n/* script */\n\n/* template */\n\n/* template functional */\n var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_paystack_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_66811d56_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_paystack_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n//\n//\n//\n//\n//\n\nexports.default = {\n props: {\n embed: {\n type: Boolean,\n default: false\n },\n paystackkey: {\n type: String,\n required: true\n },\n email: {\n type: String,\n required: true\n },\n amount: {\n type: Number,\n required: true\n },\n reference: {\n type: String,\n required: true\n },\n callback: {\n type: Function,\n required: true,\n default: function _default(response) {}\n },\n close: {\n type: Function,\n required: true,\n default: function _default() {}\n },\n text: {\n type: String,\n default: 'Make Payment'\n },\n metadata: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n currency: {\n type: String,\n default: 'NGN'\n },\n plan: {\n type: String,\n default: ''\n },\n quantity: {\n type: String,\n default: ''\n },\n subaccount: {\n type: String,\n default: ''\n },\n transaction_charge: {\n type: Number,\n default: 0\n },\n bearer: {\n type: String,\n default: ''\n }\n },\n computed: {\n scriptLoaded: function scriptLoaded() {\n var _this = this;\n\n return new Promise(function (resolve) {\n _this.loadScript(function () {\n resolve();\n });\n });\n }\n },\n mounted: function mounted() {\n if (this.embed) {\n this.payWithPaystack();\n }\n },\n\n methods: {\n loadScript: function loadScript(callback) {\n var script = document.createElement('script');\n script.src = 'https://js.paystack.co/v1/inline.js';\n document.getElementsByTagName('head')[0].appendChild(script);\n if (script.readyState) {\n // IE\n script.onreadystatechange = function () {\n if (script.readyState === 'loaded' || script.readyState === 'complete') {\n script.onreadystatechange = null;\n callback();\n }\n };\n } else {\n // Others\n script.onload = function () {\n callback();\n };\n }\n },\n payWithPaystack: function payWithPaystack() {\n var _this2 = this;\n\n this.scriptLoaded.then(function () {\n var paystackOptions = {\n key: _this2.paystackkey,\n email: _this2.email,\n amount: _this2.amount,\n ref: _this2.reference,\n callback: function callback(response) {\n _this2.callback(response);\n },\n onClose: function onClose() {\n _this2.close();\n },\n metadata: _this2.metadata,\n currency: _this2.currency,\n plan: _this2.plan,\n quantity: _this2.quantity,\n subaccount: _this2.subaccount,\n transaction_charge: _this2.transaction_charge,\n bearer: _this2.bearer\n };\n\n if (_this2.embed) {\n paystackOptions.container = 'paystackEmbedContainer';\n }\n\n var handler = window.PaystackPop.setup(paystackOptions);\n if (!_this2.embed) {\n handler.openIframe();\n }\n });\n }\n }\n};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.embed)?_c('button',{staticClass:\"payButton\",domProps:{\"textContent\":_vm._s(_vm.text)},on:{\"click\":_vm.payWithPaystack}}):_c('div',{attrs:{\"id\":\"paystackEmbedContainer\"}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ })\n/******/ ]);\n});\n\n\n// WEBPACK FOOTER //\n// paystack.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap c843d1a82b39c199b565","import paystack from './paystack.vue'\n\nexport default paystack\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","var normalizeComponent = require(\"!../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nimport __vue_script__ from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./paystack.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-66811d56\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/selector?type=template&index=0!./paystack.vue\"\n/* template functional */\n var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/paystack.vue\n// module id = 1\n// module chunks = 0","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/component-normalizer.js\n// module id = 2\n// module chunks = 0","\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/paystack.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.embed)?_c('button',{staticClass:\"payButton\",domProps:{\"textContent\":_vm._s(_vm.text)},on:{\"click\":_vm.payWithPaystack}}):_c('div',{attrs:{\"id\":\"paystackEmbedContainer\"}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-66811d56\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/paystack.vue\n// module id = 4\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index dfad840..73b8cb8 100644 --- a/package.json +++ b/package.json @@ -31,18 +31,20 @@ }, "homepage": "", "devDependencies": { - "babel-core": "^6.24.1", - "babel-loader": "^7.0.0", + "babel-core": "^6.26.3", + "babel-loader": "^7.1.5", "babel-preset-es2015": "^6.18.0", - "css-loader": "^0.28.1", + "css-loader": "^1.0.0", "eslint-config-vue": "^2.0.2", - "eslint-loader": "^1.7.1", - "eslint-plugin-vue": "^2.0.1", - "standard": "^10.0.3", - "vue": "^2.5.2", - "vue-loader": "^13.3.0", - "vue-template-compiler": "^2.5.2", - "webpack": "^3.8.1", - "webpack-dev-server": "^2.9.4" + "eslint-loader": "^2.1.0", + "eslint-plugin-vue": "^4.7.1", + "standard": "^11.0.1", + "uglifyjs-webpack-plugin": "^1.3.0", + "vue": "^2.5.17", + "vue-loader": "^15.3.0", + "vue-template-compiler": "^2.5.17", + "webpack": "^4.16.5", + "webpack-cli": "^3.1.0", + "webpack-dev-server": "^3.1.5" } } diff --git a/src/paystack.vue b/src/paystack.vue index 649faaa..1d83638 100644 --- a/src/paystack.vue +++ b/src/paystack.vue @@ -1,140 +1,151 @@