Giter Site home page Giter Site logo

sdk-js's People

Contributors

dependabot[bot] avatar nejczdovc avatar pawan-blotout avatar sensingturtle avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

sdk-js's Issues

Classname error

We are getting error if you hover over svg events-logger.js?2efc:1 Uncaught TypeError: e.className.split is not a function

Split code in packages

Code should be split in two packages.

  • sdk-core (everything that we have - PII/PHI)
  • sdk-personal (PII and PHI api's)

Duplicated events

we are getting duplicate events in the system. This could be related to our retry logic.

Consent API

trends('consent', options)

options Object This is key/values pair object where key is provider/category for example facebook and value is boolean. true if user consents for data to be send to facebook and false if they do not

Example

trends('consent', { 
  facebook: true,
  google: false
})

Another way to use this api is based on categories.

Example

trends('consent', { 
  analytics: false,
  advertising: true
})

User can also just enable everything

Example

trends('consent', { 
  all: true
})

Improve packaging

Right now we just package the whole thing on npm. We should add support for different modules types, so that people can use it as npm module directly: cjs, es, esm, modules, umd, etc

Send click as beacon

We should send system event click as beacon, to be more reliable with capturing.

System events

System events now don't have boolean in manifest anymore, but are defined as an array. Client side needs to handle new type in manifest.

Additional data clarification

In our code right now we use data, eventData and additionalData for the same thing. This should be unified so that it's easier to read the code.

Unification of payload

Right now events are having different structure. We should unify it and only have one prop additionalInfo where we would put things that are event specific.

Manifest changes

  • remove lastUpdatedTime and bundleId from manifest payload
  • remove deviceInfoGrain
  • remove event path (just use hard coded value)
  • remove end point (just use hard coded value)

Add enabled API

Enabled api would allow developer to enable/disable collection at any point.

Fix release action

Right now release action is failing on publishing personal event because dep is not defined correctly. We need to use npm run bootstrap at the beginning to build all packages and do internal linking, so that we can publish all at once and not have dependency to npm.

We also need as part of version bump update package.json deps to blotout packages in sdk-personal and sdk-browser

Remove deviceInfoGrain

deviceInfoGrain will not be needed anymore as server side will now do UA parsing, so logic for this can be removed

Click and Hover system events must capture DOM obj & object title

SDK should be able to capture DOM obj - complete path when nested.

Object Title use cases:
SDK should be able to capture DOM object title as :

  • text displayed to the users.
  • ALT text from images when image.
  • when image without ALT text or object without title then ID
  • When image without ALT text but with link then link
  • As last resort DOM - object identifier or standard default as per DOM.

Current Behaviour:

  • Right now we when I hover over images then though link or ids are present but title is missed because there is no ALT text present & link or IDs are not sent.

Also ALT text from images should be default choice for title if present after link.


Slack icon I was hovering when this event was sent - but I can't know.

Also let's set as recommendation in our documentation that ALT should be present for better analysis then link if ALT is not needed.

image

mid is duplicated

When we send pageView we send two events at the same time. Because of that Date.now() is the same for them so mid is the same. We should use performance.now() instead of Date.now().

API to add data to events

Create API where user can define additional data that will be sent with every event. User can define if this data will be sent out with regular events, dev events or both. This should be stored in local storage per type.

defaultEventData(type, data)
type: 'system', 'codified', 'pii', 'phi'
data: object

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.