New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@adobe-mcid/visitor-js-server

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@adobe-mcid/visitor-js-server - npm Package Compare versions

Comparing version

to
1.0.0

2

lib/amcv-cookie.js

@@ -32,2 +32,2 @@ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _slicedToArray=function(){function sliceIterator(arr,i){var _arr=[],_n=!0,_d=!1,_e=void 0;try{for(var _s,_i=arr[Symbol.iterator]();!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!(i&&_arr.length===i));_n=!0);}catch(err){_d=!0,_e=err}finally{try{!_n&&_i["return"]&&_i["return"]()}finally{if(_d)throw _e}}return _arr}return function(arr,i){if(Array.isArray(arr))return arr;if(Symbol.iterator in Object(arr))return sliceIterator(arr,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target};/*************************************************************************

*/// Parse into: { settingsDigest: { value: 3213, expire: 0, shouldExpireOnSession: false, hasExpired: false... }}
function isSettingsDigest(a){return a.match(/^[\-0-9]+$/)}function parseSettingsDigest(a){var b=1>=arguments.length||void 0===arguments[1]?{}:arguments[1];if(isSettingsDigest(a[0])){var c={value:a[0],hasExpired:!1,shouldExpireOnSession:!1,expire:0};b.settingsDigest=c,a.shift(),1==a.length%2&&a.pop()}return b}function makeAmcvEntry(a){var b=new Date;return _extends({},a,{hasExpired:!!(0<a.expire&&b.getTime()>=1000*a.expire)})}var amcvCookie={pickValues:function pickValues(){var a=0>=arguments.length||void 0===arguments[0]?"":arguments[0],b=1>=arguments.length||void 0===arguments[1]?[]:arguments[1],c=amcvCookie.parse(a);return b.reduce(function(d,e){var f=c[e];return f&&(d[e]=f.value),d},{})},parse:function parse(a){if(!a||"T"===a)return{};var b=decodeURIComponent(a).split("|"),c=parseSettingsDigest(b);for(var d=0,e=b.length;d<e;d+=2){var _b$d$split=b[d].split("-"),_b$d$split2=_slicedToArray(_b$d$split,2),f=_b$d$split2[0],_b$d$split2$=_b$d$split2[1],g=_b$d$split2$===void 0?0:_b$d$split2$,h=b[d+1],j=!!(g&&g.includes("s")),k=g?parseInt(g,10):g;c[f]=makeAmcvEntry({value:h,expire:k,shouldExpireOnSession:j})}return c}};exports.default=amcvCookie;module.exports=exports["default"];
function isSettingsDigest(a){return a.match(/^[\-0-9]+$/)}function parseSettingsDigest(a){var b=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};if(isSettingsDigest(a[0])){var c={value:a[0],hasExpired:!1,shouldExpireOnSession:!1,expire:0};b.settingsDigest=c,a.shift(),1==a.length%2&&a.pop()}return b}function makeAmcvEntry(a){var b=new Date;return _extends({},a,{hasExpired:!!(0<a.expire&&b.getTime()>=1000*a.expire)})}var amcvCookie={pickValues:function pickValues(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"",b=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[],c=amcvCookie.parse(a);return b.reduce(function(d,e){var f=c[e];return f&&(d[e]=f.value),d},{})},parse:function parse(a){if(!a||"T"===a)return{};var b=decodeURIComponent(a).split("|"),c=parseSettingsDigest(b);for(var d=0,e=b.length;d<e;d+=2){var _b$d$split=b[d].split("-"),_b$d$split2=_slicedToArray(_b$d$split,2),f=_b$d$split2[0],_b$d$split2$=_b$d$split2[1],g=_b$d$split2$===void 0?0:_b$d$split2$,h=b[d+1],j=!!(g&&g.includes("s")),k=g?parseInt(g,10):g;c[f]=makeAmcvEntry({value:h,expire:k,shouldExpireOnSession:j})}return c}};exports.default=amcvCookie;module.exports=exports["default"];

@@ -18,4 +18,4 @@ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _utils=require("./utils");function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}return Array.from(arr)}/*************************************************************************

**************************************************************************/// Target adapter will transform an object into the format of `targetSchema`.
function adapt(a){var b=renameKeys(a,payloadToTargetKeyMap),c=createTargetSchema();return populateCustomerIDs(c,b),populate(c,b)}exports.default={adapt:adapt};// Helpers and Consts:
var ID_KEY_BASE="vst",ID_KEY_SEPARATOR=".",payloadToTargetKeyMap={MCMID:"marketingCloudVisitorId",MCAAMB:"mboxAAMB",MCAAMLH:"mboxMCGLH",sdid:"mboxMCSDID"};function createTargetSchema(){return{marketingCloudVisitorId:void 0,mboxParameters:{mboxAAMB:void 0,mboxMCGLH:void 0,mboxMCSDID:void 0}}}function renameKeys(a,b){return Object.assign.apply(Object,[{}].concat(_toConsumableArray(Object.keys(a).map(function(c){var d=b[c]?b[c]:c;return _defineProperty({},d,a[c])}))))}function populateCustomerIDs(a,_ref2){var _ref2$customerIDs=_ref2.customerIDs,b=_ref2$customerIDs===void 0?{}:_ref2$customerIDs;(0,_utils.forEachKey)(b,function(c){var d=""+ID_KEY_BASE+ID_KEY_SEPARATOR+c,e=b[c];// If value is an object, populate this id in schema per this object's keys.
function adapt(a){var b=renameKeys(a,payloadToTargetKeyMap),c=createTargetSchema();return populateCustomerIDs(c,b),populate(c,b)}function adaptToBatch(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],b=arguments[1],c=adapt(b);return createTargetBatchSchema(c,a)}exports.default={adapt:adapt,adaptToBatch:adaptToBatch};// Helpers and Consts:
var ID_KEY_BASE="vst",ID_KEY_SEPARATOR=".",payloadToTargetKeyMap={MCMID:"marketingCloudVisitorId",MCAAMB:"mboxAAMB",MCAAMLH:"mboxMCGLH",sdid:"mboxMCSDID"};function createTargetSchema(){return{marketingCloudVisitorId:void 0,mboxParameters:{mboxAAMB:void 0,mboxMCGLH:void 0,mboxMCSDID:void 0}}}function createTargetBatchSchema(_ref,c){var a=_ref.marketingCloudVisitorId,b=_ref.mboxParameters;"string"==typeof c&&(c=[c]);var d=a?{marketingCloudVisitorId:a,mboxRequests:[]}:{mboxRequests:[]};return c.reduce(function(e,f){return d.mboxRequests.push({name:f,mboxParameters:b}),d},d)}function renameKeys(a,b){return Object.assign.apply(Object,[{}].concat(_toConsumableArray(Object.keys(a).map(function(c){var d=b[c]?b[c]:c;return _defineProperty({},d,a[c])}))))}function populateCustomerIDs(a,_ref3){var _ref3$customerIDs=_ref3.customerIDs,b=void 0===_ref3$customerIDs?{}:_ref3$customerIDs;(0,_utils.forEachKey)(b,function(c){var d=""+ID_KEY_BASE+ID_KEY_SEPARATOR+c,e=b[c];// If value is an object, populate this id in schema per this object's keys.
(0,_utils.isObject)(e)?(0,_utils.forEachKey)(e,function(f){var g=""+d+ID_KEY_SEPARATOR+f;a.mboxParameters[g]=e[f]}):a.mboxParameters[d]=e})}function populate(a,b){return Object.keys(a).forEach(function(c){(0,_utils.isObject)(a[c])?populate(a[c],b):b.hasOwnProperty(c)&&(a[c]=b[c])}),(0,_utils.filterBadProps)(a)}module.exports=exports["default"];

@@ -17,2 +17,2 @@ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.default=createVisitorPayload;/*************************************************************************

* from Adobe Systems Incorporated.
**************************************************************************/function createVisitorPayload(_ref,d){var a=_ref.sdid,_ref$amcvValues=_ref.amcvValues,c=_ref$amcvValues===void 0?{}:_ref$amcvValues,b=_ref.customerIDs,e=Object.assign(Object.create(null),{sdid:a},c,{customerIDs:b});return d.adapt(e)}module.exports=exports["default"];
**************************************************************************/function createVisitorPayload(_ref,d){var a=_ref.sdid,_ref$amcvValues=_ref.amcvValues,c=void 0===_ref$amcvValues?{}:_ref$amcvValues,b=_ref.customerIDs,e=Object.assign(Object.create(null),{sdid:a},c,{customerIDs:b});return d(e)}module.exports=exports["default"];

@@ -17,2 +17,2 @@ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _visitorJsShared=require("@adobe-mcid/visitor-js-shared"),_amcvCookie=require("./amcv-cookie"),_targetAdapter=require("./target-adapter"),_targetAdapter2=_interopRequireDefault(_targetAdapter),_visitorPayload=require("./visitor-payload"),_visitorPayload2=_interopRequireDefault(_visitorPayload),_utils=require("./utils");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}/*************************************************************************

* from Adobe Systems Incorporated.
**************************************************************************/var CONSUMER_ID_BASE="payload:",AMCV_PREFIX="AMCV_";function Visitor(){var a=0>=arguments.length||void 0===arguments[0]?(0,_utils.throwError)("Visitor requires an Org ID!"):arguments[0],b={},c=(0,_utils.normalizeOrgId)(a),d=function d(g){return b=Object.assign({},b,g)},e=(0,_visitorJsShared.supplementalDataIDFactory)(),f=function f(){var g=0>=arguments.length||void 0===arguments[0]?(0,_utils.throwError)("sdidConsumerID is required"):arguments[0],h=e.getID(""+CONSUMER_ID_BASE+g),i=e.getState();return d({sdid:i}),h};this.generatePayload=function(_ref){var g=_ref.sdidConsumerID,h=_ref.amcvCookie,i=f(g),j=(0,_amcvCookie.pickValues)(h,["MCMID","MCAAMB","MCAAMLH"]),_b=b,k=_b.customerIDs;return(0,_visitorPayload2.default)({sdid:i,amcvValues:j,customerIDs:k},_targetAdapter2.default)},this.setCustomerIDs=function(){var g=0>=arguments.length||void 0===arguments[0]?{}:arguments[0];d({customerIDs:g})},this.getState=function(){return _defineProperty({},c,b)},this.getCookieName=function(){return AMCV_PREFIX+c}}Visitor.AuthState=_visitorJsShared.AuthState;exports.default=Visitor;module.exports=exports["default"];
**************************************************************************/var CONSUMER_ID_BASE="payload:",AMCV_PREFIX="AMCV_";function Visitor(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:(0,_utils.throwError)("Visitor requires an Org ID!"),b={},c=(0,_utils.normalizeOrgId)(a),d=function d(h){return b=Object.assign({},b,h)},e=(0,_visitorJsShared.supplementalDataIDFactory)(),f=function f(){var h=0<arguments.length&&void 0!==arguments[0]?arguments[0]:(0,_utils.throwError)("sdidConsumerID is required"),i=e.getID(""+CONSUMER_ID_BASE+h),j=e.getState();return d({sdid:j}),i},g=function g(h,i){var j=f(h),k=(0,_amcvCookie.pickValues)(i,["MCMID","MCAAMB","MCAAMLH"]),_b=b,l=_b.customerIDs;return{sdid:j,amcvValues:k,customerIDs:l}};this.generatePayload=function(_ref){var h=_ref.sdidConsumerID,i=_ref.amcvCookie,j=g(h,i);return(0,_visitorPayload2.default)(j,_targetAdapter2.default.adapt)},this.generateBatchPayload=function(_ref2){var h=_ref2.sdidConsumerID,i=_ref2.amcvCookie,_ref2$mboxNames=_ref2.mboxNames,j=void 0===_ref2$mboxNames?(0,_utils.throwError)("mboxNames is required"):_ref2$mboxNames,k=g(h,i),l=_targetAdapter2.default.adaptToBatch.bind(_targetAdapter2.default,j);return(0,_visitorPayload2.default)(k,l)},this.setCustomerIDs=function(){var h=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};d({customerIDs:h})},this.getState=function(){return _defineProperty({},c,b)},this.getCookieName=function(){return AMCV_PREFIX+c}}Visitor.AuthState=_visitorJsShared.AuthState;exports.default=Visitor;module.exports=exports["default"];
{
"name": "@adobe-mcid/visitor-js-server",
"version": "0.0.9",
"version": "1.0.0",
"description": "Server compatible Visitor ID service",

@@ -29,2 +29,3 @@ "main": "lib/Visitor.js",

"babel-plugin-add-module-exports": "^0.2.1",
"babel-plugin-minify-mangle-names": "0.0.3",
"babel-plugin-transform-object-rest-spread": "^6.8.0",

@@ -31,0 +32,0 @@ "babel-preset-babili": "0.0.3",

@@ -8,3 +8,4 @@ # Visitor JS - Server Side

- generatePayload(sdidConsumerID: string, amcvCookie: string) : VisitorPayload
- generatePayload({ sdidConsumerID: string, amcvCookie: string }) : VisitorPayload
- generateBatchPayload({ sdidConsumerID: string, amcvCookie: string, mboxNames: string OR array }) : VisitorBatchPayload
- getState() : State { OrgID: { sdid, customerIDs }

@@ -69,3 +70,36 @@ - Visitor#AuthState : Static Enum

## `generateBatchPayload`
Similar to `generatePayload`, this method should be used when requesting batch mboxes from Target in a single call. [View Target docs](https://docs.adobe.com/dev/products/target/reference/delivery.html) (Scroll to Multiple mbox requests in the same call)
Parameter is an object with the following props:
- `sdidConsumerID`: As mentioned above, an `sdidConsumerID` must be provided.
- `amcvCookie`: If an AMCV cookie exists in the browser request, you will need to provide it as well. Use the `visitor#getCookieName` helper to retrieve the cookie name related to your OrgID.
- `mboxNames` (Required): Names of the mboxes you are requesting. If you are requesting only one, the value can be a string. Otherwise, it's an array or mbox names.
```javascript
// 1. Retrieve the AMCV cookie from the request.
var cookies = cookie.parse(req.headers.cookie || "");
var cookieName = visitor.getCookieName();
var amcvCookie = cookies[cookieName];
// 2. Generate Visitor Payload by passing sdidConsumerID (mbox name/id) and AMCV Cookie if found in Req.
var visitorPayload = visitor.generatePayload({
sdidConsumerID: mboxName,
amcvCookie: amcvCookie,
mboxNames: ["mboxOne", "mboxTwo"]
});
// 3. Merge the `visitorPayload` with you target specific into and make the Target call.
var targetPayload = {
thirdPartyId: "2047337005",
tntId: "123455",
imsOrgId: "xxx@AdobeOrg",
apiClientId: "clientid"
};
var fullPayload = Object.assign({}, visitorPayload, targetPayload);
...
```
## `getState`

@@ -72,0 +106,0 @@