Socket
Book a DemoInstallSign in
Socket

@condenast/cna-st-codec

Package Overview
Dependencies
Maintainers
248
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@condenast/cna-st-codec

Standalone library to service all cna.st encoding requests

0.2.0
latest
Source
npmnpm
Version published
Weekly downloads
490
-37.82%
Maintainers
248
Weekly downloads
 
Created
Source

@condenast/cna-st-codec

Standalone library to service all cna.st encoding requests. Below are the services provided by the library:

  • Encode affilate links
  • Encode product embeds
  • Decode affiliate links

Installation

    npm install @condenast/cna-st-codec

Usage

Documentation: Click here

Input params

Query ParameterTypeRequiredExampleDescription
originstringyes60d5a8e87a19ee043b25fb5bOrigin of this link (ex: Copilot page id, newsletter id, etc)
localestringnoUKUsed for localised links.
brandstringyes4gKgcF5Myw5MXdcFAvDQL5L1iAGHId of the source’s brand
channelstringnonewsletter, website, instagramThe channel where the click originated
campaignstringnosummersaleCustom Campaign parameter
productstringno30d5a8eKa919ee043b25fP9IKID of product
componentstringnoPLP-Carousel_4Name to identify which component is generating revenue (including the position)
bucketstringnoBr1639018827824exxA+B test cell bucket ID
actionIdstringno123456Unique ID to reference a click back to a conversion with GA
offerUrlstringyesRetailer product/offer URL
referrerstringnoOrigin URL where click happened
sourcestringnoversosource name eg: verso, amp

To generate encoded text

const cnaStCodec = require('@condenast/cna-st-codec');

const params = {
    brand: "4gKgcEs3YBmxYhgNxdHg8VnbgTnc",
    offerUrl: "http://www.amazon.com/",
    origin: "60d5a8e87a19ee043b25fb5b"
};

let encodedText = cnaStCodec.encodeAffiliateParams(params);
console.log(encodedText);

// Output: 4jjCSCMwBgMHssUvJ6jQbjEfYZMoqQmMUyrkXyfPygqXC4jXjS8nfaa7CwiuVicTz35jocCjuWUSzdvRi6RpqSkKB7ybSrg4KShpeGTbBdLesvvhbgo

To update existing params or add new value to an encoded text

const cnaStCodec = require('@condenast/cna-st-codec');

let encodedText = "4jjCSCMwBgMHssUvJ6jQbjEfYZMoqQmMUyrkXyfPygqXC4jXjS8nfaa7CwiuVicTz35jocCjuWUSzdvRi6RpqSkKB7ybSrg4KShpeGTbBdLesvvhbgo";
const params = {
    offerUrl: "http://go.skimlinks.com/",
    campaign: "test"
};

encodedText = cnaStCodec.encodeAffiliateParams(encodedText, params);
console.log(encodedText);

// Output: RTBwSQLjveX2mJoa9QBGwjuqBsCuZwtP3mdimfraBSaLWCnYkwWyZL85Nvj1ML5qYfokBdnhojbDXLW4mWjBPvotMHwFYNCg4YLYAaSRCYB4eaT79vayNPto

To decode the encoded text

const cnaStCodec = require('@condenast/cna-st-codec');

let encodedText = "4jjCSCMwBgMHssUvJ6jQbjEfYZMoqQmMUyrkXyfPygqXC4jXjS8nfaa7CwiuVicTz35jocCjuWUSzdvRi6RpqSkKB7ybSrg4KShpeGTbBdLesvvhbgo";
let decoded = cnaStCodec.decodeAffiliateParams(encodedText);
console.log(decoded);

// Output: {
//   referrer: '',
//   actionId: '',
//   bucket: '',
//   component: '',
//   campaign: 'test',
//   channel: '',
//   locale: '',
//   origin: '60d5a8e87a19ee043b25fb5b',
//   product: '',
//   offerUrl: 'https://go.skimlinks.com',
//   brand: '4gKgcEs3YBmxYhgNxdHg8VnbgTnc'
// }

FAQs

Package last updated on 04 Aug 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.