From a5766e5367c69bbfe0a0d48d5eb9816940a611b6 Mon Sep 17 00:00:00 2001 From: John Tran Date: Thu, 20 Aug 2020 17:22:37 -0700 Subject: [PATCH 1/7] Added comments --- Makefile | 12 +++++----- scripts/version.js | 1 + src/amplitude-client.js | 7 ++++-- src/amplitude-snippet.js | 6 +++++ src/amplitude.js | 2 +- src/index.js | 7 ++++++ src/metadata-storage.js | 21 ++++++++++++----- src/notes.md | 51 ++++++++++++++++++++++++++++++++++++++++ src/options.js | 2 +- src/top-domain.js | 1 + 10 files changed, 94 insertions(+), 16 deletions(-) create mode 100644 src/notes.md diff --git a/Makefile b/Makefile index 400c6e0f..050250f7 100644 --- a/Makefile +++ b/Makefile @@ -66,14 +66,14 @@ README.md: $(SNIPPET_OUT) version $(OUT): node_modules $(SRC) package.json rollup.config.js rollup.min.js rollup.native.js rollup.esm.js rollup.umd.js rollup.umd.min.js @$(JSHINT) --verbose $(SRC) - @NODE_ENV=production $(ROLLUP) --config rollup.config.js - @NODE_ENV=production $(ROLLUP) --config rollup.esm.js - @NODE_ENV=production $(ROLLUP) --config rollup.umd.js - @NODE_ENV=production $(ROLLUP) --config rollup.native.js - @NODE_ENV=production $(ROLLUP) --config rollup.nocompat.js + @NODE_ENV=production $(ROLLUP) --config rollup.config.js # is the snippet build config + @NODE_ENV=production $(ROLLUP) --config rollup.esm.js # does not concat dependencies, only has module and dependencies + @NODE_ENV=production $(ROLLUP) --config rollup.umd.js # generates npm version, also usable in require js app + @NODE_ENV=production $(ROLLUP) --config rollup.native.js # generates react native build + @NODE_ENV=production $(ROLLUP) --config rollup.nocompat.js # may be able to remove @NODE_ENV=production $(ROLLUP) --config rollup.umd.min.js @NODE_ENV=production $(ROLLUP) --config rollup.min.js - @NODE_ENV=production $(ROLLUP) --config rollup.nocompat.min.js + @NODE_ENV=production $(ROLLUP) --config rollup.nocompat.min.js # may be able to remove # # Target for minified `amplitude-snippet.js` file. diff --git a/scripts/version.js b/scripts/version.js index a80d64c0..2df50db3 100644 --- a/scripts/version.js +++ b/scripts/version.js @@ -30,6 +30,7 @@ replaceTextInFile( ); // Update integrity hash in snippet +// Provides extra layer of security. If script changes, it will fail to load const sdkText = fs.readFileSync(path.join('.', `amplitude.min.js`), 'utf-8'); const hash = crypto.createHash('sha384').update(sdkText).digest('base64'); replaceTextInFile( diff --git a/src/amplitude-client.js b/src/amplitude-client.js index b782ec0a..2f4cb3c8 100644 --- a/src/amplitude-client.js +++ b/src/amplitude-client.js @@ -1,14 +1,15 @@ +// Core of SDK code import Constants from './constants'; import cookieStorage from './cookiestorage'; import MetadataStorage from '../src/metadata-storage'; -import getUtmData from './utm'; +import getUtmData from './utm'; // Urchin Tracking Module import Identify from './identify'; import localStorage from './localstorage'; // jshint ignore:line import md5 from 'blueimp-md5'; import Request from './xhr'; import Revenue from './revenue'; import type from './type'; -import UAParser from '@amplitude/ua-parser-js'; +import UAParser from '@amplitude/ua-parser-js'; // Identifying device and browser info (maybe move to backend?) import utils from './utils'; import UUID from './uuid'; import base64Id from './base64Id'; @@ -51,6 +52,7 @@ var AmplitudeClient = function AmplitudeClient(instanceName) { this._identifyId = 0; this._lastEventTime = null; this._newSession = false; + // sequence used for by frontend for prioritizing event send retries this._sequenceNumber = 0; this._sessionId = null; this._isInitialized = false; @@ -1567,6 +1569,7 @@ AmplitudeClient.prototype.sendEvents = function sendEvents() { /** * Merge unsent events and identifys together in sequential order based on their sequence number, for uploading. + * Identifys given higher priority than Events. Also earlier sequence given priority * @private */ AmplitudeClient.prototype._mergeEventsAndIdentifys = function _mergeEventsAndIdentifys(numEvents) { diff --git a/src/amplitude-snippet.js b/src/amplitude-snippet.js index d4ff393d..1a54175d 100644 --- a/src/amplitude-snippet.js +++ b/src/amplitude-snippet.js @@ -1,3 +1,9 @@ +/** +* Imported in client browser via