choreograph-create-pixel 0.1.9 โ†’ 0.1.10

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.
@@ -1,4 +1,4 @@
1
- /*! choreograph-create-pixel v0.1.9 2022/09/19 */
1
+ /*! choreograph-create-pixel v0.1.10 2022/09/19 */
2
2
  'use strict';
3
3
 
4
4
  class ChoreographCreatePixel {
@@ -9,9 +9,7 @@ class ChoreographCreatePixel {
9
9
  this.settings = {
10
10
  colors: { error: "#f44336", warn: "#ffa726", success: "#66bb6a" },
11
11
  icons: { scrape: "๐Ÿ”", view: "๐Ÿ‘€", basket: "๐Ÿ›’", purchase: "๐Ÿงพ" },
12
- levels: { error: "โ›”๏ธ", warn: "โš ๏ธ", success: "โœ…", info: "โ„น๏ธ" },
13
- titleCss: "font:700 80% HelveticaNeue;margin:12px 0 6px",
14
- iconCss: "font:HelveticaNeue",
12
+ titleCss: "font:700 80% HelveticaNeue;margin:12px 0 8px",
15
13
  messageCss: "font:120% HelveticaNeue;margin-bottom:12px",
16
14
  eventTypes: {
17
15
  view: "product-viewed",
@@ -90,11 +88,11 @@ class ChoreographCreatePixel {
90
88
  if (!this.config.debug || this.logs.includes(message)) return;
91
89
 
92
90
  const args = [
93
- `%cCHOREOGRAPH ${this.config.what.toUpperCase()} PIXEL%c ${
91
+ `%c${
94
92
  this.settings.icons[this.config.what]
95
- }\n${this.settings.levels[level]} %c${message}`,
93
+ } ${this.config.what.toUpperCase()} PIXEL DEBUG%c\n%c${message}`,
96
94
  this.settings.titleCss,
97
- this.settings.iconCss,
95
+ "",
98
96
  this.settings.colors[level]
99
97
  ? `${this.settings.messageCss};color:${this.settings.colors[level]}`
100
98
  : this.settings.messageCss,
@@ -216,8 +214,6 @@ class ChoreographCreatePixel {
216
214
  const jsonString = JSON.stringify(data);
217
215
 
218
216
  if (!hasErrors && this.previouslyScrapedJsonString !== jsonString) {
219
- this.log("Scraped data:", { data });
220
-
221
217
  try {
222
218
  this.config.beforeSend(data, (newData) => {
223
219
  if (this.config.what !== "scrape" && Array.isArray(newData.sku))
@@ -1,4 +1,4 @@
1
- /*! choreograph-create-pixel v0.1.9 2022/09/19 */
1
+ /*! choreograph-create-pixel v0.1.10 2022/09/19 */
2
2
  class ChoreographCreatePixel {
3
3
  constructor(userConfig) {
4
4
  this.previouslyScrapedJsonString = null;
@@ -7,9 +7,7 @@ class ChoreographCreatePixel {
7
7
  this.settings = {
8
8
  colors: { error: "#f44336", warn: "#ffa726", success: "#66bb6a" },
9
9
  icons: { scrape: "๐Ÿ”", view: "๐Ÿ‘€", basket: "๐Ÿ›’", purchase: "๐Ÿงพ" },
10
- levels: { error: "โ›”๏ธ", warn: "โš ๏ธ", success: "โœ…", info: "โ„น๏ธ" },
11
- titleCss: "font:700 80% HelveticaNeue;margin:12px 0 6px",
12
- iconCss: "font:HelveticaNeue",
10
+ titleCss: "font:700 80% HelveticaNeue;margin:12px 0 8px",
13
11
  messageCss: "font:120% HelveticaNeue;margin-bottom:12px",
14
12
  eventTypes: {
15
13
  view: "product-viewed",
@@ -88,11 +86,11 @@ class ChoreographCreatePixel {
88
86
  if (!this.config.debug || this.logs.includes(message)) return;
89
87
 
90
88
  const args = [
91
- `%cCHOREOGRAPH ${this.config.what.toUpperCase()} PIXEL%c ${
89
+ `%c${
92
90
  this.settings.icons[this.config.what]
93
- }\n${this.settings.levels[level]} %c${message}`,
91
+ } ${this.config.what.toUpperCase()} PIXEL DEBUG%c\n%c${message}`,
94
92
  this.settings.titleCss,
95
- this.settings.iconCss,
93
+ "",
96
94
  this.settings.colors[level]
97
95
  ? `${this.settings.messageCss};color:${this.settings.colors[level]}`
98
96
  : this.settings.messageCss,
@@ -214,8 +212,6 @@ class ChoreographCreatePixel {
214
212
  const jsonString = JSON.stringify(data);
215
213
 
216
214
  if (!hasErrors && this.previouslyScrapedJsonString !== jsonString) {
217
- this.log("Scraped data:", { data });
218
-
219
215
  try {
220
216
  this.config.beforeSend(data, (newData) => {
221
217
  if (this.config.what !== "scrape" && Array.isArray(newData.sku))
@@ -1,2 +1,2 @@
1
- /*! choreograph-create-pixel v0.1.9 2022/09/19 */
2
- var ChoreographCreatePixel=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function t(t){for(var n=1;n<arguments.length;n++){var o=null!=arguments[n]?arguments[n]:{};n%2?e(Object(o),!0).forEach((function(e){i(t,e,o[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):e(Object(o)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}))}return t}function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var r=function(){function e(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.previouslyScrapedJsonString=null,this.logs=[],this.settings={colors:{error:"#f44336",warn:"#ffa726",success:"#66bb6a"},icons:{scrape:"๐Ÿ”",view:"๐Ÿ‘€",basket:"๐Ÿ›’",purchase:"๐Ÿงพ"},levels:{error:"โ›”๏ธ",warn:"โš ๏ธ",success:"โœ…",info:"โ„น๏ธ"},titleCss:"font:700 80% HelveticaNeue;margin:12px 0 6px",iconCss:"font:HelveticaNeue",messageCss:"font:120% HelveticaNeue;margin-bottom:12px",eventTypes:{view:"product-viewed",basket:"product-basketed",purchase:"product-purchased"}},this.config=t({debug:/(pixel|lemonpi)_debug/i.test(location.href),beforeSend:function(e,t){return t(e)},afterSend:function(){},optionalFields:[]},n),this.validateConfig()&&this.cycle()}var r,s,c;return r=e,c=[{key:"getUrl",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.allowedQueryParameters,n=void 0===t?[]:t,o=e.allowHash,i=void 0!==o&&o,r="".concat(location.protocol,"//").concat(location.host).concat(location.pathname),s=new URLSearchParams(location.search);return n.reduce((function(e,t){var n=e?"&":"?",o=encodeURI(t),i=s.get(t);return null!=i?(r+="".concat(n).concat(o).concat(""===i?"":"=".concat(encodeURI(i))),!0):e}),!1),i&&(r+=location.hash),r}},{key:"getAllPathSegments",value:function(){return location.pathname.split("/").filter((function(e){return e})).map((function(e){return decodeURI(e)}))}},{key:"getPathSegment",value:function(e){return this.getAllPathSegments()[e]}},{key:"getAllQueryParameters",value:function(){return location.search.replace(/^\?/,"").split("&").filter((function(e){return e})).reduce((function(e,n){return t(t({},e),{},i({},decodeURI(n.split("=")[0]),decodeURI(n.split("=")[1]||"")))}),{})}},{key:"getQueryParameter",value:function(e){return this.getAllQueryParameters()[e]}}],(s=[{key:"log",value:function(e,t){var n,o=t.level,i=void 0===o?"info":o,r=t.data,s=void 0===r?null:r;if(this.config.debug&&!this.logs.includes(e)){var c=["%cCHOREOGRAPH ".concat(this.config.what.toUpperCase()," PIXEL%c ").concat(this.settings.icons[this.config.what],"\n").concat(this.settings.levels[i]," %c").concat(e),this.settings.titleCss,this.settings.iconCss,this.settings.colors[i]?"".concat(this.settings.messageCss,";color:").concat(this.settings.colors[i]):this.settings.messageCss];s&&c.push(s),(n=console).info.apply(n,c),this.logs.push(e)}}},{key:"validateConfig",value:function(){if("number"!=typeof this.config.who)this.log("Please use a number",{level:"error",data:{who:this.config.who}});else if(["scrape","view","basket","purchase"].includes(this.config.what))if(this.config.where instanceof RegExp){if("object"===n(this.config.which)&&this.config.which.sku)return!0;this.log("Please provide an SKU",{level:"error",data:{which:this.config.which}})}else this.log("Please use a regular expression",{level:"error",data:{where:this.config.where}});else this.log("Please use scrape, view, basket, or purchase",{level:"error",data:{what:this.config.what}})}},{key:"cycle",value:function(){var e=this;if(this.config.where.test(location.href))if("scrape"===this.config.what&&document.querySelector('html[class*="translated-"]'))this.log("This page has been translated by the browser, and will be excluded",{level:"warn"});else if(this.config.when)try{var t=this.config.when.elements();t.forEach||(t=[t]),t.forEach((function(t){t.hasAttribute("choreograph-".concat(e.config.when.listener))||(t.addEventListener(e.config.when.listener,(function(){return e.scrape(t)})),t.setAttribute("choreograph-".concat(e.config.when.listener),""))}))}catch(e){this.log(e.message,{level:"error",data:{when:{elements:this.config.when.elements}}})}else this.scrape();else this.log("Pattern does not match ".concat(location.href),{level:"warn",data:{where:this.config.where}});setTimeout((function(){return e.cycle()}),750)}},{key:"scrape",value:function(e){var n=this,o={},r=!1;Object.keys(this.config.which).forEach((function(t){if(o[t]=n.config.which[t],"function"==typeof o[t])try{o[t]=o[t](e)}catch(e){n.config.optionalFields.includes(t)?delete o[t]:(n.log(e.message,{level:"error",data:{which:i({},t,n.config.which[t])}}),r=!0)}"string"==typeof o[t]&&(o[t]=o[t].replace(/\s+/g," ").trim()),null!=o[t]&&""!==o[t]||(n.config.optionalFields.includes(t)?o[t]=null:(n.log("This required field's value is empty",{level:"error",data:{which:i({},t,o[t])}}),r=!0))}));var s=JSON.stringify(o);if(!r&&this.previouslyScrapedJsonString!==s){this.log("Scraped data:",{data:o});try{this.config.beforeSend(o,(function(e){"scrape"!==n.config.what&&Array.isArray(e.sku)?e.sku.forEach((function(o){return n.send(t(t({},e),{},{sku:o}))})):n.send(e)}))}catch(e){this.log(e.message,{level:"error",data:{beforeSend:this.config.beforeSend}})}this.previouslyScrapedJsonString=s,this.logs.length=0}}},{key:"send",value:function(e){var n=this,o=t({},e);delete o.sku;var i="scrape"===this.config.what?"https://d.lemonpi.io/scrapes".concat(this.config.debug?"?validate=true":""):"https://d.lemonpi.io/a/".concat(this.config.who,"/product/event?e=").concat(encodeURIComponent(JSON.stringify({"event-type":this.settings.eventTypes[this.config.what],sku:e.sku})));"scrape"===this.config.what||this.config.debug?fetch(i,"scrape"===this.config.what?{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({"advertiser-id":this.config.who,sku:e.sku,fields:o})}:null).then((function(t){n.config.debug&&t.json().then((function(o){if(t.ok){n.log("Successful, with warnings. Details:",{level:"warn",data:o});try{n.config.afterSend(e)}catch(e){n.log(e.message,{level:"error",data:{afterSend:n.config.afterSend}})}}else n.log("Failed: ".concat(t.status," (").concat(t.statusText,"). Details:"),{level:"error",data:o})})).catch((function(){if(t.ok){n.log("Successful!",{level:"success",data:e});try{n.config.afterSend(e)}catch(e){n.log(e.message,{level:"error",data:{afterSend:n.config.afterSend}})}}else n.log("Failed: ".concat(t.status," (").concat(t.statusText,"). Details:"),{level:"error",data:t})}))})).catch((function(e){n.config.debug&&n.log("Failed: ".concat(e.message),{level:"error"})})):(new Image).src=i}}])&&o(r.prototype,s),c&&o(r,c),Object.defineProperty(r,"prototype",{writable:!1}),e}();return r}();
1
+ /*! choreograph-create-pixel v0.1.10 2022/09/19 */
2
+ var ChoreographCreatePixel=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function t(t){for(var n=1;n<arguments.length;n++){var o=null!=arguments[n]?arguments[n]:{};n%2?e(Object(o),!0).forEach((function(e){i(t,e,o[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):e(Object(o)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}))}return t}function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var r=function(){function e(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.previouslyScrapedJsonString=null,this.logs=[],this.settings={colors:{error:"#f44336",warn:"#ffa726",success:"#66bb6a"},icons:{scrape:"๐Ÿ”",view:"๐Ÿ‘€",basket:"๐Ÿ›’",purchase:"๐Ÿงพ"},titleCss:"font:700 80% HelveticaNeue;margin:12px 0 8px",messageCss:"font:120% HelveticaNeue;margin-bottom:12px",eventTypes:{view:"product-viewed",basket:"product-basketed",purchase:"product-purchased"}},this.config=t({debug:/(pixel|lemonpi)_debug/i.test(location.href),beforeSend:function(e,t){return t(e)},afterSend:function(){},optionalFields:[]},n),this.validateConfig()&&this.cycle()}var r,s,c;return r=e,c=[{key:"getUrl",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.allowedQueryParameters,n=void 0===t?[]:t,o=e.allowHash,i=void 0!==o&&o,r="".concat(location.protocol,"//").concat(location.host).concat(location.pathname),s=new URLSearchParams(location.search);return n.reduce((function(e,t){var n=e?"&":"?",o=encodeURI(t),i=s.get(t);return null!=i?(r+="".concat(n).concat(o).concat(""===i?"":"=".concat(encodeURI(i))),!0):e}),!1),i&&(r+=location.hash),r}},{key:"getAllPathSegments",value:function(){return location.pathname.split("/").filter((function(e){return e})).map((function(e){return decodeURI(e)}))}},{key:"getPathSegment",value:function(e){return this.getAllPathSegments()[e]}},{key:"getAllQueryParameters",value:function(){return location.search.replace(/^\?/,"").split("&").filter((function(e){return e})).reduce((function(e,n){return t(t({},e),{},i({},decodeURI(n.split("=")[0]),decodeURI(n.split("=")[1]||"")))}),{})}},{key:"getQueryParameter",value:function(e){return this.getAllQueryParameters()[e]}}],(s=[{key:"log",value:function(e,t){var n,o=t.level,i=void 0===o?"info":o,r=t.data,s=void 0===r?null:r;if(this.config.debug&&!this.logs.includes(e)){var c=["%c".concat(this.settings.icons[this.config.what]," ").concat(this.config.what.toUpperCase()," PIXEL DEBUG%c\n%c").concat(e),this.settings.titleCss,"",this.settings.colors[i]?"".concat(this.settings.messageCss,";color:").concat(this.settings.colors[i]):this.settings.messageCss];s&&c.push(s),(n=console).info.apply(n,c),this.logs.push(e)}}},{key:"validateConfig",value:function(){if("number"!=typeof this.config.who)this.log("Please use a number",{level:"error",data:{who:this.config.who}});else if(["scrape","view","basket","purchase"].includes(this.config.what))if(this.config.where instanceof RegExp){if("object"===n(this.config.which)&&this.config.which.sku)return!0;this.log("Please provide an SKU",{level:"error",data:{which:this.config.which}})}else this.log("Please use a regular expression",{level:"error",data:{where:this.config.where}});else this.log("Please use scrape, view, basket, or purchase",{level:"error",data:{what:this.config.what}})}},{key:"cycle",value:function(){var e=this;if(this.config.where.test(location.href))if("scrape"===this.config.what&&document.querySelector('html[class*="translated-"]'))this.log("This page has been translated by the browser, and will be excluded",{level:"warn"});else if(this.config.when)try{var t=this.config.when.elements();t.forEach||(t=[t]),t.forEach((function(t){t.hasAttribute("choreograph-".concat(e.config.when.listener))||(t.addEventListener(e.config.when.listener,(function(){return e.scrape(t)})),t.setAttribute("choreograph-".concat(e.config.when.listener),""))}))}catch(e){this.log(e.message,{level:"error",data:{when:{elements:this.config.when.elements}}})}else this.scrape();else this.log("Pattern does not match ".concat(location.href),{level:"warn",data:{where:this.config.where}});setTimeout((function(){return e.cycle()}),750)}},{key:"scrape",value:function(e){var n=this,o={},r=!1;Object.keys(this.config.which).forEach((function(t){if(o[t]=n.config.which[t],"function"==typeof o[t])try{o[t]=o[t](e)}catch(e){n.config.optionalFields.includes(t)?delete o[t]:(n.log(e.message,{level:"error",data:{which:i({},t,n.config.which[t])}}),r=!0)}"string"==typeof o[t]&&(o[t]=o[t].replace(/\s+/g," ").trim()),null!=o[t]&&""!==o[t]||(n.config.optionalFields.includes(t)?o[t]=null:(n.log("This required field's value is empty",{level:"error",data:{which:i({},t,o[t])}}),r=!0))}));var s=JSON.stringify(o);if(!r&&this.previouslyScrapedJsonString!==s){try{this.config.beforeSend(o,(function(e){"scrape"!==n.config.what&&Array.isArray(e.sku)?e.sku.forEach((function(o){return n.send(t(t({},e),{},{sku:o}))})):n.send(e)}))}catch(e){this.log(e.message,{level:"error",data:{beforeSend:this.config.beforeSend}})}this.previouslyScrapedJsonString=s,this.logs.length=0}}},{key:"send",value:function(e){var n=this,o=t({},e);delete o.sku;var i="scrape"===this.config.what?"https://d.lemonpi.io/scrapes".concat(this.config.debug?"?validate=true":""):"https://d.lemonpi.io/a/".concat(this.config.who,"/product/event?e=").concat(encodeURIComponent(JSON.stringify({"event-type":this.settings.eventTypes[this.config.what],sku:e.sku})));"scrape"===this.config.what||this.config.debug?fetch(i,"scrape"===this.config.what?{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({"advertiser-id":this.config.who,sku:e.sku,fields:o})}:null).then((function(t){n.config.debug&&t.json().then((function(o){if(t.ok){n.log("Successful, with warnings. Details:",{level:"warn",data:o});try{n.config.afterSend(e)}catch(e){n.log(e.message,{level:"error",data:{afterSend:n.config.afterSend}})}}else n.log("Failed: ".concat(t.status," (").concat(t.statusText,"). Details:"),{level:"error",data:o})})).catch((function(){if(t.ok){n.log("Successful!",{level:"success",data:e});try{n.config.afterSend(e)}catch(e){n.log(e.message,{level:"error",data:{afterSend:n.config.afterSend}})}}else n.log("Failed: ".concat(t.status," (").concat(t.statusText,"). Details:"),{level:"error",data:t})}))})).catch((function(e){n.config.debug&&n.log("Failed: ".concat(e.message),{level:"error"})})):(new Image).src=i}}])&&o(r.prototype,s),c&&o(r,c),Object.defineProperty(r,"prototype",{writable:!1}),e}();return r}();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "choreograph-create-pixel",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "author": "Rick Stevens <rick.stevens@choreograph.com> (https://www.lemonpi.io/)",
5
5
  "repository": "github:rick-stevens/choreograph-create-pixel",
6
6
  "license": "ISC",