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

localsync

Package Overview
Dependencies
Maintainers
1
Versions
47
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

localsync - npm Package Compare versions

Comparing version 1.5.6 to 1.6.0

84

lib/cookiesync.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const invariant = require("invariant");
const cookie = require("react-cookie");
const mechanism = "cookiesync";
var invariant = require("invariant");
var cookie = require("react-cookie");
var mechanism = "cookiesync";
/**

@@ -21,18 +21,25 @@ * Creates a synchronizer which uses cookie polling to transmit objects to other tabs.

*/
function cookiesync(key, action, handler, { tracing = false, logger = console, logLevel = "info", idLength = 8, pollFrequency = 3000, path = "/", secure = false, httpOnly = false } = {}) {
function cookiesync(key, action, handler, _a) {
var _b = _a === void 0 ? {} : _a, _c = _b.tracing, tracing = _c === void 0 ? false : _c, _d = _b.logger, logger = _d === void 0 ? console : _d, _e = _b.logLevel, logLevel = _e === void 0 ? "info" : _e, _f = _b.idLength, idLength = _f === void 0 ? 8 : _f, _g = _b.pollFrequency, pollFrequency = _g === void 0 ? 3000 : _g, _h = _b.path, path = _h === void 0 ? "/" : _h, _j = _b.secure, secure = _j === void 0 ? false : _j, _k = _b.httpOnly, httpOnly = _k === void 0 ? false : _k;
invariant(key, "key is required");
invariant(action, "action is required");
invariant(handler, "handler is required");
const log = (...args) => tracing ? logger[logLevel](...args) : () => { };
const cookieOpts = { path, secure, httpOnly };
const cookieKey = `cookiesync_fallback_${key}`;
const instanceID = (N => (Math.random().toString(36) + "00000000000000000").slice(2, N + 2))(idLength);
const loadCookie = () => {
var log = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return tracing ? logger[logLevel].apply(logger, args) : function () { };
};
var cookieOpts = { path: path, secure: secure, httpOnly: httpOnly };
var cookieKey = "cookiesync_fallback_" + key;
var instanceID = (function (N) { return (Math.random().toString(36) + "00000000000000000").slice(2, N + 2); })(idLength);
var loadCookie = function () {
try {
const value = cookie.load(cookieKey, false);
var value = cookie.load(cookieKey, false);
if (typeof value !== "undefined") {
const { instanceID, payload } = value;
invariant(instanceID, `cookiesync cookies must have an instanceID associated => ${JSON.stringify(value)}`);
invariant(typeof instanceID === "string" && instanceID.length === idLength, "instanceID must be a string");
invariant(payload, `cookiesync cookies must have a payload associated => ${JSON.stringify(value)}`);
var instanceID_1 = value.instanceID, payload = value.payload;
invariant(instanceID_1, "cookiesync cookies must have an instanceID associated => " + JSON.stringify(value));
invariant(typeof instanceID_1 === "string" && instanceID_1.length === idLength, "instanceID must be a string");
invariant(payload, "cookiesync cookies must have a payload associated => " + JSON.stringify(value));
}

@@ -43,27 +50,36 @@ log("cookiesync#loadCookie", value);

catch (err) {
logger.error(err, `cookiesync#loadCookie => error occurred in cookiesync, wiping cookie with key ${cookieKey}`);
logger.error(err, "cookiesync#loadCookie => error occurred in cookiesync, wiping cookie with key " + cookieKey);
cookie.remove(cookieKey);
}
};
const saveCookie = (...args) => {
var saveCookie = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
invariant(args.length === 1, "should only have one argument");
const [payload] = args;
const value = { instanceID, payload };
var payload = args[0];
var value = { instanceID: instanceID, payload: payload };
log("cookisync#saveCookie", instanceID, payload);
cookie.save(cookieKey, value, cookieOpts);
};
let isRunning = false;
const trigger = (...args) => {
log("cookiesync#trigger", instanceID, ...args);
const payload = action(...args);
var isRunning = false;
var trigger = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
log.apply(void 0, ["cookiesync#trigger", instanceID].concat(args));
var payload = action.apply(void 0, args);
log("cookiesync#trigger => payload", payload);
saveCookie(payload);
};
let intervalID = null;
const start = (sync = false) => {
var intervalID = null;
var start = function (sync) {
if (sync === void 0) { sync = false; }
log("cookiesync#start", instanceID);
let last = loadCookie();
var last = loadCookie();
if (!last) {
log("cookiesync#start: nolast", instanceID);
last = { instanceID };
last = { instanceID: instanceID };
saveCookie(last);

@@ -73,3 +89,3 @@ }

log("cookiesync#poll", instanceID);
let current = loadCookie();
var current = loadCookie();
if (!current) {

@@ -95,3 +111,3 @@ log("cookiesync#poll: nocurrent", instanceID);

if (sync) {
let current = loadCookie();
var current = loadCookie();
handler(current.payload, last ? last.payload : {}, last ? (last.url || "") : "");

@@ -102,3 +118,3 @@ last = current;

};
const stop = () => {
var stop = function () {
log("cookiesync#stop", instanceID);

@@ -108,12 +124,12 @@ clearInterval(intervalID);

};
return { start,
stop,
trigger,
return { start: start,
stop: stop,
trigger: trigger,
get isRunning() { return isRunning; },
mechanism,
mechanism: mechanism,
isFallback: true,
isServer: false,
instanceID
instanceID: instanceID
};
}
exports.default = cookiesync;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const storagesync_1 = require("./storagesync");
const cookiesync_1 = require("./cookiesync");
const serversync_1 = require("./serversync");
const REGEX = {
var tslib_1 = require("tslib");
var storagesync_1 = require("./storagesync");
var cookiesync_1 = require("./cookiesync");
var serversync_1 = require("./serversync");
var REGEX = {
TRIDENT_EDGE: /(Trident|Edge)/i

@@ -24,5 +25,7 @@ };

*/
function localsync(key, action, handler, opts = {}, navigator = getNavigator()) {
const sync = navigator === null ? serversync_1.default : isEdgeOrIE(navigator) ? cookiesync_1.default : storagesync_1.default;
const completeOpts = Object.assign({}, getDefaultOpts(), opts);
function localsync(key, action, handler, opts, navigator) {
if (opts === void 0) { opts = {}; }
if (navigator === void 0) { navigator = getNavigator(); }
var sync = navigator === null ? serversync_1.default : isEdgeOrIE(navigator) ? cookiesync_1.default : storagesync_1.default;
var completeOpts = tslib_1.__assign({}, getDefaultOpts(), opts);
return sync(key, action, handler, completeOpts);

@@ -29,0 +32,0 @@ }

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const invariant = require("invariant");
const mechanism = "serversync";
var invariant = require("invariant");
var mechanism = "serversync";
/**

@@ -15,26 +15,37 @@ * Creates a mock synchronizer which uses a server safe interface equivalent to serversync

*/
function serversync(key, action, handler, { tracing = false, logger = console, logLevel = "info" } = {}) {
function serversync(key, action, handler, _a) {
var _b = _a === void 0 ? {} : _a, _c = _b.tracing, tracing = _c === void 0 ? false : _c, _d = _b.logger, logger = _d === void 0 ? console : _d, _e = _b.logLevel, logLevel = _e === void 0 ? "info" : _e;
invariant(key, "key is required");
invariant(action, "action is required");
invariant(handler, "handler is required");
const log = (...args) => tracing ? logger[logLevel](...args) : () => { };
let isRunning = false;
const trigger = (...args) => {
var log = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return tracing ? logger[logLevel].apply(logger, args) : function () { };
};
var isRunning = false;
var trigger = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
log("serversync#trigger", args);
const value = action(...args);
var value = action.apply(void 0, args);
log("serversync#trigger action output ignored", args, value);
};
const start = () => {
var start = function () {
log("serversync#start");
isRunning = true;
};
const stop = () => {
var stop = function () {
log("serversync#stop");
isRunning = false;
};
return { start,
stop,
trigger,
return { start: start,
stop: stop,
trigger: trigger,
get isRunning() { return isRunning; },
mechanism,
mechanism: mechanism,
isFallback: false,

@@ -41,0 +52,0 @@ isServer: true

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const invariant = require("invariant");
const ls = require("local-storage");
const mechanism = "storagesync";
var invariant = require("invariant");
var ls = require("local-storage");
var mechanism = "storagesync";
/**

@@ -16,17 +16,29 @@ * Creates a synchronizer which uses localStorage 'storage' event for synchronization between tabs.

*/
function storagesync(key, action, handler, { tracing = false, logger = console, logLevel = "info" } = {}) {
function storagesync(key, action, handler, _a) {
var _b = _a === void 0 ? {} : _a, _c = _b.tracing, tracing = _c === void 0 ? false : _c, _d = _b.logger, logger = _d === void 0 ? console : _d, _e = _b.logLevel, logLevel = _e === void 0 ? "info" : _e;
invariant(key, "key is required");
invariant(action, "action is required");
invariant(handler, "handler is required");
const log = (...args) => tracing ? logger[logLevel](...args) : () => { };
let isRunning = false;
let last = {};
const trigger = (...args) => {
var log = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return tracing ? logger[logLevel].apply(logger, args) : function () { };
};
var isRunning = false;
var last = {};
var trigger = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
log("storagesync#trigger", args);
const value = action(...args);
var value = action.apply(void 0, args);
ls(key, value);
};
const start = (sync = false) => {
var start = function (sync) {
if (sync === void 0) { sync = false; }
log("storagesync#start");
ls.on(key, (value) => {
ls.on(key, function (value) {
handler(value, last, "");

@@ -36,3 +48,3 @@ last = value;

if (sync) {
const value = ls.get(key);
var value = ls.get(key);
handler(value, last, "");

@@ -43,3 +55,3 @@ last = value;

};
const stop = () => {
var stop = function () {
log("storagesync#stop");

@@ -49,7 +61,7 @@ ls.off(key, handler);

};
return { start,
stop,
trigger,
return { start: start,
stop: stop,
trigger: trigger,
get isRunning() { return isRunning; },
mechanism,
mechanism: mechanism,
isFallback: false,

@@ -56,0 +68,0 @@ isServer: false

{
"name": "localsync",
"version": "1.5.6",
"version": "1.6.0",
"description": "a lightweight module to sync JS objects in realtime across tabs / windows of a browser.",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

{
"compilerOptions": {
"experimentalDecorators": true,
"target": "ES6",
"target": "ES5",
"module": "commonjs",

@@ -6,0 +6,0 @@ "moduleResolution": "node",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc