style(tracker-zustand): no build output files
This commit is contained in:
parent
90a77f739f
commit
027b649211
16 changed files with 0 additions and 764 deletions
|
|
@ -1,42 +0,0 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const tracker_1 = require("@openreplay/tracker/cjs");
|
||||
const index_js_1 = require("./syncod/index.js");
|
||||
function processMutationAndState(app, options, encoder, mutation, state) {
|
||||
if (options.filter(mutation, state)) {
|
||||
try {
|
||||
const _mutation = encoder.encode(options.mutationTransformer(mutation));
|
||||
const _state = encoder.encode(options.transformer(state));
|
||||
const _table = encoder.commit();
|
||||
for (let key in _table)
|
||||
app.send(tracker_1.Messages.OTable(key, _table[key]));
|
||||
app.send(tracker_1.Messages.Zustand(_mutation, _state));
|
||||
}
|
||||
catch (e) {
|
||||
encoder.clear();
|
||||
app.debug.error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
function default_1(opts = {}) {
|
||||
const options = Object.assign({
|
||||
filter: () => true,
|
||||
transformer: state => state,
|
||||
mutationTransformer: mutation => mutation,
|
||||
}, opts);
|
||||
return (app) => {
|
||||
if (app === null) {
|
||||
return Function.prototype;
|
||||
}
|
||||
const encoder = new index_js_1.Encoder(index_js_1.sha1, 50);
|
||||
const state = {};
|
||||
return (storeName = Math.random().toString(36).substring(2, 9)) => (config) => (set, get, api) => config((...args) => {
|
||||
set(...args);
|
||||
const newState = get();
|
||||
state[storeName] = newState;
|
||||
const triggeredActions = args.map(action => { var _a; return (_a = action.toString) === null || _a === void 0 ? void 0 : _a.call(action); });
|
||||
processMutationAndState(app, options, encoder, triggeredActions, state);
|
||||
}, get, api);
|
||||
};
|
||||
}
|
||||
exports.default = default_1;
|
||||
|
|
@ -1 +0,0 @@
|
|||
{ "type": "commonjs" }
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const chars = {};
|
||||
[
|
||||
"DEL",
|
||||
"UNDEF",
|
||||
"TRUE",
|
||||
"FALSE",
|
||||
"NUMBER",
|
||||
"BIGINT",
|
||||
"FUNCTION",
|
||||
"STRING",
|
||||
"SYMBOL",
|
||||
"NULL",
|
||||
"OBJECT",
|
||||
"ARRAY"
|
||||
].forEach((k, i) => (chars[k] = String.fromCharCode(i + 0xe000)));
|
||||
exports.default = chars;
|
||||
|
|
@ -1,213 +0,0 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const chars_js_1 = require("./chars.js");
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
class Encoder {
|
||||
// @ts-ignore
|
||||
constructor(hash, slen = Infinity) {
|
||||
// @ts-ignore
|
||||
this._hash = hash;
|
||||
// @ts-ignore
|
||||
this._slen = slen;
|
||||
// @ts-ignore
|
||||
this._refmap = new Map();
|
||||
// @ts-ignore
|
||||
this._refset = new Set();
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
_ref_str(str) {
|
||||
// @ts-ignore
|
||||
if (str.length < this._slen && str.indexOf(chars_js_1.default.DEL) === -1) {
|
||||
// @ts-ignore
|
||||
return str;
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
let ref = this._refmap.get(str);
|
||||
// @ts-ignore
|
||||
if (ref === undefined) {
|
||||
// @ts-ignore
|
||||
ref = this._hash(str);
|
||||
// @ts-ignore
|
||||
this._refmap.set(str, ref);
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
return ref;
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
_encode_prim(obj) {
|
||||
// @ts-ignore
|
||||
switch (typeof obj) {
|
||||
// @ts-ignore
|
||||
case "undefined":
|
||||
// @ts-ignore
|
||||
return chars_js_1.default.UNDEF;
|
||||
// @ts-ignore
|
||||
case "boolean":
|
||||
// @ts-ignore
|
||||
return obj ? chars_js_1.default.TRUE : chars_js_1.default.FALSE;
|
||||
// @ts-ignore
|
||||
case "number":
|
||||
// @ts-ignore
|
||||
return chars_js_1.default.NUMBER + obj.toString();
|
||||
// @ts-ignore
|
||||
case "bigint":
|
||||
// @ts-ignore
|
||||
return chars_js_1.default.BIGINT + obj.toString();
|
||||
// @ts-ignore
|
||||
case "function":
|
||||
// @ts-ignore
|
||||
return chars_js_1.default.FUNCTION;
|
||||
// @ts-ignore
|
||||
case "string":
|
||||
// @ts-ignore
|
||||
return chars_js_1.default.STRING + this._ref_str(obj);
|
||||
// @ts-ignore
|
||||
case "symbol":
|
||||
// @ts-ignore
|
||||
return chars_js_1.default.SYMBOL + this._ref_str(obj.toString().slice(7, -1));
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
if (obj === null) {
|
||||
// @ts-ignore
|
||||
return chars_js_1.default.NULL;
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
_encode_obj(obj, ref = this._refmap.get(obj)) {
|
||||
// @ts-ignore
|
||||
return (Array.isArray(obj) ? chars_js_1.default.ARRAY : chars_js_1.default.OBJECT) + ref;
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
_encode_term(obj) {
|
||||
// @ts-ignore
|
||||
return this._encode_prim(obj) || this._encode_obj(obj);
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
_encode_deep(obj, depth) {
|
||||
// @ts-ignore
|
||||
const enc = this._encode_prim(obj);
|
||||
// @ts-ignore
|
||||
if (enc !== undefined) {
|
||||
// @ts-ignore
|
||||
return enc;
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
const ref = this._refmap.get(obj);
|
||||
// @ts-ignore
|
||||
switch (typeof ref) {
|
||||
// @ts-ignore
|
||||
case "number":
|
||||
// @ts-ignore
|
||||
return (depth - ref).toString();
|
||||
// @ts-ignore
|
||||
case "string":
|
||||
// @ts-ignore
|
||||
return this._encode_obj(obj, ref);
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
this._refmap.set(obj, depth);
|
||||
// @ts-ignore
|
||||
const hash = this._hash(
|
||||
// @ts-ignore
|
||||
(Array.isArray(obj)
|
||||
// @ts-ignore
|
||||
? obj.map(v => this._encode_deep(v, depth + 1))
|
||||
// @ts-ignore
|
||||
: Object.keys(obj)
|
||||
// @ts-ignore
|
||||
.sort()
|
||||
// @ts-ignore
|
||||
.map(
|
||||
// @ts-ignore
|
||||
k =>
|
||||
// @ts-ignore
|
||||
this._ref_str(k) + chars_js_1.default.DEL + this._encode_deep(obj[k], depth + 1)
|
||||
// @ts-ignore
|
||||
)
|
||||
// @ts-ignore
|
||||
).join(chars_js_1.default.DEL)
|
||||
// @ts-ignore
|
||||
);
|
||||
// @ts-ignore
|
||||
this._refmap.set(obj, hash);
|
||||
// @ts-ignore
|
||||
return this._encode_obj(obj, hash);
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
encode(obj) {
|
||||
// @ts-ignore
|
||||
return this._encode_deep(obj, 0);
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
commit() {
|
||||
// @ts-ignore
|
||||
const dict = {};
|
||||
// @ts-ignore
|
||||
this._refmap.forEach((ref, obj) => {
|
||||
// @ts-ignore
|
||||
if (this._refset.has(ref)) {
|
||||
// @ts-ignore
|
||||
return;
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
this._refset.add(ref);
|
||||
// @ts-ignore
|
||||
if (typeof obj !== "string") {
|
||||
// @ts-ignore
|
||||
obj = (Array.isArray(obj)
|
||||
// @ts-ignore
|
||||
? obj.map(v => this._encode_term(v))
|
||||
// @ts-ignore
|
||||
: Object.keys(obj).map(
|
||||
// @ts-ignore
|
||||
k => this._ref_str(k) + chars_js_1.default.DEL + this._encode_term(obj[k])
|
||||
// @ts-ignore
|
||||
)
|
||||
// @ts-ignore
|
||||
).join(chars_js_1.default.DEL);
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
dict[ref] = obj;
|
||||
// @ts-ignore
|
||||
});
|
||||
// @ts-ignore
|
||||
this._refmap.clear();
|
||||
// @ts-ignore
|
||||
return dict;
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
clear() {
|
||||
// @ts-ignore
|
||||
this._refmap.clear();
|
||||
// @ts-ignore
|
||||
this._refset.clear();
|
||||
// @ts-ignore
|
||||
}
|
||||
}
|
||||
exports.default = Encoder;
|
||||
// @ts-ignore
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.sha1 = exports.Encoder = void 0;
|
||||
// TODO: SSR solution for all asayer libraries
|
||||
const encoder_js_1 = require("./encoder.js");
|
||||
exports.Encoder = encoder_js_1.default;
|
||||
const sha1_js_1 = require("./sha1.js");
|
||||
exports.sha1 = sha1_js_1.default;
|
||||
|
|
@ -1,96 +0,0 @@
|
|||
"use strict";
|
||||
/*
|
||||
* A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
|
||||
* in FIPS PUB 180-1
|
||||
* Version 2.1a Copyright Paul Johnston 2000 - 2002.
|
||||
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
|
||||
* Distributed under the BSD License
|
||||
* See http://pajhome.org.uk/crypt/md5 for details.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
function core_sha1(x, len) {
|
||||
x[len >> 5] |= 0x80 << (24 - (len % 32));
|
||||
x[(((len + 64) >> 9) << 4) + 15] = len;
|
||||
var w = Array(80);
|
||||
var a = 1732584193;
|
||||
var b = -271733879;
|
||||
var c = -1732584194;
|
||||
var d = 271733878;
|
||||
var e = -1009589776;
|
||||
for (var i = 0; i < x.length; i += 16) {
|
||||
var olda = a;
|
||||
var oldb = b;
|
||||
var oldc = c;
|
||||
var oldd = d;
|
||||
var olde = e;
|
||||
for (var j = 0; j < 80; j++) {
|
||||
if (j < 16)
|
||||
w[j] = x[i + j];
|
||||
else
|
||||
w[j] = rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);
|
||||
var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)), safe_add(safe_add(e, w[j]), sha1_kt(j)));
|
||||
e = d;
|
||||
d = c;
|
||||
c = rol(b, 30);
|
||||
b = a;
|
||||
a = t;
|
||||
}
|
||||
a = safe_add(a, olda);
|
||||
b = safe_add(b, oldb);
|
||||
c = safe_add(c, oldc);
|
||||
d = safe_add(d, oldd);
|
||||
e = safe_add(e, olde);
|
||||
}
|
||||
return Array(a, b, c, d, e);
|
||||
}
|
||||
function sha1_ft(t, b, c, d) {
|
||||
if (t < 20)
|
||||
return (b & c) | (~b & d);
|
||||
if (t < 40)
|
||||
return b ^ c ^ d;
|
||||
if (t < 60)
|
||||
return (b & c) | (b & d) | (c & d);
|
||||
return b ^ c ^ d;
|
||||
}
|
||||
function sha1_kt(t) {
|
||||
return t < 20
|
||||
? 1518500249
|
||||
: t < 40
|
||||
? 1859775393
|
||||
: t < 60
|
||||
? -1894007588
|
||||
: -899497514;
|
||||
}
|
||||
function safe_add(x, y) {
|
||||
var lsw = (x & 0xffff) + (y & 0xffff);
|
||||
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
||||
return (msw << 16) | (lsw & 0xffff);
|
||||
}
|
||||
function rol(num, cnt) {
|
||||
return (num << cnt) | (num >>> (32 - cnt));
|
||||
}
|
||||
function str2binb(str) {
|
||||
var bin = Array();
|
||||
var mask = (1 << 16) - 1;
|
||||
for (var i = 0; i < str.length * 16; i += 16)
|
||||
bin[i >> 5] |= (str.charCodeAt(i / 16) & mask) << (32 - 16 - (i % 32));
|
||||
return bin;
|
||||
}
|
||||
function binb2b64(binarray) {
|
||||
var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
var str = "";
|
||||
for (var i = 0; i < binarray.length * 4; i += 3) {
|
||||
var triplet = (((binarray[i >> 2] >> (8 * (3 - (i % 4)))) & 0xff) << 16) |
|
||||
(((binarray[(i + 1) >> 2] >> (8 * (3 - ((i + 1) % 4)))) & 0xff) << 8) |
|
||||
((binarray[(i + 2) >> 2] >> (8 * (3 - ((i + 2) % 4)))) & 0xff);
|
||||
for (var j = 0; j < 4; j++) {
|
||||
if (i * 8 + j * 6 <= binarray.length * 32)
|
||||
str += tab.charAt((triplet >> (6 * (3 - j))) & 0x3f);
|
||||
}
|
||||
}
|
||||
return str;
|
||||
}
|
||||
function default_1(s) {
|
||||
return binb2b64(core_sha1(str2binb(s), s.length * 16));
|
||||
}
|
||||
exports.default = default_1;
|
||||
7
tracker/tracker-zustand/lib/index.d.ts
vendored
7
tracker/tracker-zustand/lib/index.d.ts
vendored
|
|
@ -1,7 +0,0 @@
|
|||
import { App } from "@openreplay/tracker";
|
||||
export interface Options {
|
||||
filter: (mutation: any, state: any) => boolean;
|
||||
transformer: (state: any) => any;
|
||||
mutationTransformer: (mutation: any) => any;
|
||||
}
|
||||
export default function (opts?: Partial<Options>): (app: App | null) => Function;
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
import { Messages } from "@openreplay/tracker";
|
||||
import { Encoder, sha1 } from "./syncod/index.js";
|
||||
function processMutationAndState(app, options, encoder, mutation, state) {
|
||||
if (options.filter(mutation, state)) {
|
||||
try {
|
||||
const _mutation = encoder.encode(options.mutationTransformer(mutation));
|
||||
const _state = encoder.encode(options.transformer(state));
|
||||
const _table = encoder.commit();
|
||||
for (let key in _table)
|
||||
app.send(Messages.OTable(key, _table[key]));
|
||||
app.send(Messages.Zustand(_mutation, _state));
|
||||
}
|
||||
catch (e) {
|
||||
encoder.clear();
|
||||
app.debug.error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
export default function (opts = {}) {
|
||||
const options = Object.assign({
|
||||
filter: () => true,
|
||||
transformer: state => state,
|
||||
mutationTransformer: mutation => mutation,
|
||||
}, opts);
|
||||
return (app) => {
|
||||
if (app === null) {
|
||||
return Function.prototype;
|
||||
}
|
||||
const encoder = new Encoder(sha1, 50);
|
||||
const state = {};
|
||||
return (storeName = Math.random().toString(36).substring(2, 9)) => (config) => (set, get, api) => config((...args) => {
|
||||
set(...args);
|
||||
const newState = get();
|
||||
state[storeName] = newState;
|
||||
const triggeredActions = args.map(action => { var _a; return (_a = action.toString) === null || _a === void 0 ? void 0 : _a.call(action); });
|
||||
processMutationAndState(app, options, encoder, triggeredActions, state);
|
||||
}, get, api);
|
||||
};
|
||||
}
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
declare const chars: {};
|
||||
export default chars;
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
const chars = {};
|
||||
[
|
||||
"DEL",
|
||||
"UNDEF",
|
||||
"TRUE",
|
||||
"FALSE",
|
||||
"NUMBER",
|
||||
"BIGINT",
|
||||
"FUNCTION",
|
||||
"STRING",
|
||||
"SYMBOL",
|
||||
"NULL",
|
||||
"OBJECT",
|
||||
"ARRAY"
|
||||
].forEach((k, i) => (chars[k] = String.fromCharCode(i + 0xe000)));
|
||||
export default chars;
|
||||
11
tracker/tracker-zustand/lib/syncod/encoder.d.ts
vendored
11
tracker/tracker-zustand/lib/syncod/encoder.d.ts
vendored
|
|
@ -1,11 +0,0 @@
|
|||
export default class Encoder {
|
||||
constructor(hash: any, slen?: number);
|
||||
_ref_str(str: any): any;
|
||||
_encode_prim(obj: any): any;
|
||||
_encode_obj(obj: any, ref?: any): any;
|
||||
_encode_term(obj: any): any;
|
||||
_encode_deep(obj: any, depth: any): any;
|
||||
encode(obj: any): any;
|
||||
commit(): {};
|
||||
clear(): void;
|
||||
}
|
||||
|
|
@ -1,210 +0,0 @@
|
|||
import _ from "./chars.js";
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
export default class Encoder {
|
||||
// @ts-ignore
|
||||
constructor(hash, slen = Infinity) {
|
||||
// @ts-ignore
|
||||
this._hash = hash;
|
||||
// @ts-ignore
|
||||
this._slen = slen;
|
||||
// @ts-ignore
|
||||
this._refmap = new Map();
|
||||
// @ts-ignore
|
||||
this._refset = new Set();
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
_ref_str(str) {
|
||||
// @ts-ignore
|
||||
if (str.length < this._slen && str.indexOf(_.DEL) === -1) {
|
||||
// @ts-ignore
|
||||
return str;
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
let ref = this._refmap.get(str);
|
||||
// @ts-ignore
|
||||
if (ref === undefined) {
|
||||
// @ts-ignore
|
||||
ref = this._hash(str);
|
||||
// @ts-ignore
|
||||
this._refmap.set(str, ref);
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
return ref;
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
_encode_prim(obj) {
|
||||
// @ts-ignore
|
||||
switch (typeof obj) {
|
||||
// @ts-ignore
|
||||
case "undefined":
|
||||
// @ts-ignore
|
||||
return _.UNDEF;
|
||||
// @ts-ignore
|
||||
case "boolean":
|
||||
// @ts-ignore
|
||||
return obj ? _.TRUE : _.FALSE;
|
||||
// @ts-ignore
|
||||
case "number":
|
||||
// @ts-ignore
|
||||
return _.NUMBER + obj.toString();
|
||||
// @ts-ignore
|
||||
case "bigint":
|
||||
// @ts-ignore
|
||||
return _.BIGINT + obj.toString();
|
||||
// @ts-ignore
|
||||
case "function":
|
||||
// @ts-ignore
|
||||
return _.FUNCTION;
|
||||
// @ts-ignore
|
||||
case "string":
|
||||
// @ts-ignore
|
||||
return _.STRING + this._ref_str(obj);
|
||||
// @ts-ignore
|
||||
case "symbol":
|
||||
// @ts-ignore
|
||||
return _.SYMBOL + this._ref_str(obj.toString().slice(7, -1));
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
if (obj === null) {
|
||||
// @ts-ignore
|
||||
return _.NULL;
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
_encode_obj(obj, ref = this._refmap.get(obj)) {
|
||||
// @ts-ignore
|
||||
return (Array.isArray(obj) ? _.ARRAY : _.OBJECT) + ref;
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
_encode_term(obj) {
|
||||
// @ts-ignore
|
||||
return this._encode_prim(obj) || this._encode_obj(obj);
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
_encode_deep(obj, depth) {
|
||||
// @ts-ignore
|
||||
const enc = this._encode_prim(obj);
|
||||
// @ts-ignore
|
||||
if (enc !== undefined) {
|
||||
// @ts-ignore
|
||||
return enc;
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
const ref = this._refmap.get(obj);
|
||||
// @ts-ignore
|
||||
switch (typeof ref) {
|
||||
// @ts-ignore
|
||||
case "number":
|
||||
// @ts-ignore
|
||||
return (depth - ref).toString();
|
||||
// @ts-ignore
|
||||
case "string":
|
||||
// @ts-ignore
|
||||
return this._encode_obj(obj, ref);
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
this._refmap.set(obj, depth);
|
||||
// @ts-ignore
|
||||
const hash = this._hash(
|
||||
// @ts-ignore
|
||||
(Array.isArray(obj)
|
||||
// @ts-ignore
|
||||
? obj.map(v => this._encode_deep(v, depth + 1))
|
||||
// @ts-ignore
|
||||
: Object.keys(obj)
|
||||
// @ts-ignore
|
||||
.sort()
|
||||
// @ts-ignore
|
||||
.map(
|
||||
// @ts-ignore
|
||||
k =>
|
||||
// @ts-ignore
|
||||
this._ref_str(k) + _.DEL + this._encode_deep(obj[k], depth + 1)
|
||||
// @ts-ignore
|
||||
)
|
||||
// @ts-ignore
|
||||
).join(_.DEL)
|
||||
// @ts-ignore
|
||||
);
|
||||
// @ts-ignore
|
||||
this._refmap.set(obj, hash);
|
||||
// @ts-ignore
|
||||
return this._encode_obj(obj, hash);
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
encode(obj) {
|
||||
// @ts-ignore
|
||||
return this._encode_deep(obj, 0);
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
commit() {
|
||||
// @ts-ignore
|
||||
const dict = {};
|
||||
// @ts-ignore
|
||||
this._refmap.forEach((ref, obj) => {
|
||||
// @ts-ignore
|
||||
if (this._refset.has(ref)) {
|
||||
// @ts-ignore
|
||||
return;
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
this._refset.add(ref);
|
||||
// @ts-ignore
|
||||
if (typeof obj !== "string") {
|
||||
// @ts-ignore
|
||||
obj = (Array.isArray(obj)
|
||||
// @ts-ignore
|
||||
? obj.map(v => this._encode_term(v))
|
||||
// @ts-ignore
|
||||
: Object.keys(obj).map(
|
||||
// @ts-ignore
|
||||
k => this._ref_str(k) + _.DEL + this._encode_term(obj[k])
|
||||
// @ts-ignore
|
||||
)
|
||||
// @ts-ignore
|
||||
).join(_.DEL);
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
dict[ref] = obj;
|
||||
// @ts-ignore
|
||||
});
|
||||
// @ts-ignore
|
||||
this._refmap.clear();
|
||||
// @ts-ignore
|
||||
return dict;
|
||||
// @ts-ignore
|
||||
}
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
clear() {
|
||||
// @ts-ignore
|
||||
this._refmap.clear();
|
||||
// @ts-ignore
|
||||
this._refset.clear();
|
||||
// @ts-ignore
|
||||
}
|
||||
}
|
||||
// @ts-ignore
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
import Encoder from "./encoder.js";
|
||||
import sha1 from "./sha1.js";
|
||||
export { Encoder, sha1 };
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
// TODO: SSR solution for all asayer libraries
|
||||
import Encoder from "./encoder.js";
|
||||
import sha1 from "./sha1.js";
|
||||
export { Encoder, sha1 };
|
||||
1
tracker/tracker-zustand/lib/syncod/sha1.d.ts
vendored
1
tracker/tracker-zustand/lib/syncod/sha1.d.ts
vendored
|
|
@ -1 +0,0 @@
|
|||
export default function (s: any): string;
|
||||
|
|
@ -1,93 +0,0 @@
|
|||
/*
|
||||
* A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
|
||||
* in FIPS PUB 180-1
|
||||
* Version 2.1a Copyright Paul Johnston 2000 - 2002.
|
||||
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
|
||||
* Distributed under the BSD License
|
||||
* See http://pajhome.org.uk/crypt/md5 for details.
|
||||
*/
|
||||
function core_sha1(x, len) {
|
||||
x[len >> 5] |= 0x80 << (24 - (len % 32));
|
||||
x[(((len + 64) >> 9) << 4) + 15] = len;
|
||||
var w = Array(80);
|
||||
var a = 1732584193;
|
||||
var b = -271733879;
|
||||
var c = -1732584194;
|
||||
var d = 271733878;
|
||||
var e = -1009589776;
|
||||
for (var i = 0; i < x.length; i += 16) {
|
||||
var olda = a;
|
||||
var oldb = b;
|
||||
var oldc = c;
|
||||
var oldd = d;
|
||||
var olde = e;
|
||||
for (var j = 0; j < 80; j++) {
|
||||
if (j < 16)
|
||||
w[j] = x[i + j];
|
||||
else
|
||||
w[j] = rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);
|
||||
var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)), safe_add(safe_add(e, w[j]), sha1_kt(j)));
|
||||
e = d;
|
||||
d = c;
|
||||
c = rol(b, 30);
|
||||
b = a;
|
||||
a = t;
|
||||
}
|
||||
a = safe_add(a, olda);
|
||||
b = safe_add(b, oldb);
|
||||
c = safe_add(c, oldc);
|
||||
d = safe_add(d, oldd);
|
||||
e = safe_add(e, olde);
|
||||
}
|
||||
return Array(a, b, c, d, e);
|
||||
}
|
||||
function sha1_ft(t, b, c, d) {
|
||||
if (t < 20)
|
||||
return (b & c) | (~b & d);
|
||||
if (t < 40)
|
||||
return b ^ c ^ d;
|
||||
if (t < 60)
|
||||
return (b & c) | (b & d) | (c & d);
|
||||
return b ^ c ^ d;
|
||||
}
|
||||
function sha1_kt(t) {
|
||||
return t < 20
|
||||
? 1518500249
|
||||
: t < 40
|
||||
? 1859775393
|
||||
: t < 60
|
||||
? -1894007588
|
||||
: -899497514;
|
||||
}
|
||||
function safe_add(x, y) {
|
||||
var lsw = (x & 0xffff) + (y & 0xffff);
|
||||
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
||||
return (msw << 16) | (lsw & 0xffff);
|
||||
}
|
||||
function rol(num, cnt) {
|
||||
return (num << cnt) | (num >>> (32 - cnt));
|
||||
}
|
||||
function str2binb(str) {
|
||||
var bin = Array();
|
||||
var mask = (1 << 16) - 1;
|
||||
for (var i = 0; i < str.length * 16; i += 16)
|
||||
bin[i >> 5] |= (str.charCodeAt(i / 16) & mask) << (32 - 16 - (i % 32));
|
||||
return bin;
|
||||
}
|
||||
function binb2b64(binarray) {
|
||||
var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
var str = "";
|
||||
for (var i = 0; i < binarray.length * 4; i += 3) {
|
||||
var triplet = (((binarray[i >> 2] >> (8 * (3 - (i % 4)))) & 0xff) << 16) |
|
||||
(((binarray[(i + 1) >> 2] >> (8 * (3 - ((i + 1) % 4)))) & 0xff) << 8) |
|
||||
((binarray[(i + 2) >> 2] >> (8 * (3 - ((i + 2) % 4)))) & 0xff);
|
||||
for (var j = 0; j < 4; j++) {
|
||||
if (i * 8 + j * 6 <= binarray.length * 32)
|
||||
str += tab.charAt((triplet >> (6 * (3 - j))) & 0x3f);
|
||||
}
|
||||
}
|
||||
return str;
|
||||
}
|
||||
export default function (s) {
|
||||
return binb2b64(core_sha1(str2binb(s), s.length * 16));
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue