1.0.24 • Published 28 days ago

studiokit-caliper-js v1.0.24

Weekly downloads
21
License
Apache-2.0
Repository
github
Last release
28 days ago

studiokit-caliper-js

Coverage Status

studiokit-caliper-js is a common library of services for implementing applications with the caliper-js Javascript client for IMS Global Caliper Analytics (an implementation of the Caliper SensorAPI™).

studiokit-caliper-js current supports Caliper v1.0

Features

  • Persistent Queue: Events and Entities are saved to a queue that is persisted to localStorage, or another storage method of your choice.
  • Convenience Methods: Easily start and end Sessions with simplified methods.
  • Session Keep-Alive: The current Session's dateModified is periodically updated and sent to the EventStore to track Session activity before it is ended.
  • Session Timeout: Sessions are ended automatically (timed out) when the user is idle (no mouse, touch, keyboard, scroll events) or away from the app for longer than the sessionTimeoutThreshold.

Installation

npm install --save studiokit-caliper-js

Implementation

With Node

const StudioKit = require('studiokit-caliper-js');
// or
import StudioKit from 'studiokit-caliper-js';

const options = {...}; // see below
const caliperService = new StudioKit.CaliperService(options);

Without Node

npm run build

This will create a browserified file in the dist folder. Add this script to your HTML file like <script src="dist/studiokit-caliper.js"></script>. You can then access the JavaScript global parameter StudioKit.

Options

namerequiredtypedescriptiondefault value
sensorIdtruestringThe caliper-js Sensor Id
sensorOptionstrueObjectThe caliper-js Sensor Options see the node https docs
appIdtruestring (IRI)The JSON-LD @id of the Caliper SoftwareApplication
appNametruestringThe name of Caliper SoftwareApplication
getTokentruefunctionA function that is expected to return a Promise, which when complete, returns an OAuth Access Token response containing the following properties: accessToken: the OAuth token for the EventStoreexpires: A date string representing when the token expires.
storageServicetrueObjectAn object (or service) that provides data persistence, acting as a key-value store, e.g. LocalStorage. Must implement the following methods: function getItem(key): return a saved object by key.function setItem(key, value): save an object by key.function removeItem(key): remove an object by key.An in-memory placeholder, does not actually persist data.
autoSendfalsebooleanWhether or not to send the queue of Caliper events on a timer.true
sendIntervalfalsenumber (milliseconds)How often a request containing the current queue of Caliper events is sent, enabled by autoSend.1000 * 10 // 10 seconds
sessionIriPrefixfalsestringThe value with which to prefix all Caliper Session @id values. Will be prefixed to form valid IRI, e.g. ${sessionIriPrefix}/session/${uuid}null, defaults to appId
sessionTimeoutThresholdfalsenumber (milliseconds)The amount of time a Session can be idle (e.g. no mouse, keyboard, touch, or scroll events) before the Session is ended as TIMED_OUT.1000 * 60 * 30 // 30 minutes
sessionKeepAliveThresholdfalsenumber (milliseconds)How often activity should trigger the Session to be "kept alive" by having its dateModified updated, and sent to the EventStore.1000 * 60 * 15 // 15 minutes
activityUpdateThresholdfalsenumber (milliseconds)How often the activity sent to onActivity() (e.g. mouse, keyboard, touch, or scroll events, or manual calls) is processed.1000 * 60 // 1 minute
onErrorfalsefunctionA function that is called when an error is encountered, e.g. function(err) {}null
1.0.24

28 days ago

1.0.23

3 years ago

1.0.22

3 years ago

1.0.21

4 years ago

1.0.20

4 years ago

1.0.19

4 years ago

1.0.18

7 years ago

1.0.17

7 years ago

1.0.16

7 years ago

1.0.15

7 years ago

1.0.14

7 years ago

1.0.13

7 years ago

1.0.12

7 years ago

1.0.11

7 years ago

1.0.10

7 years ago

1.0.9

7 years ago

1.0.8

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago