Launch Week Day 2: Introducing Reports: An Extensible Reporting Framework for Socket Data.Learn More
Socket
Book a DemoSign in
Socket

wson-diff

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

wson-diff - npm Package Compare versions

Comparing version
1.4.0
to
2.10.1
+24
.eslintrc.js
// eslint-disable-next-line no-undef
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
parserOptions: {
// eslint-disable-next-line no-undef, @typescript-eslint/no-unsafe-assignment
tsconfigRootDir: __dirname,
project: './tsconfig.eslint.json',
ecmaVersion: 2020,
sourceType: 'module',
},
plugins: ['@typescript-eslint', 'prettier'],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:@typescript-eslint/recommended-requiring-type-checking',
'prettier',
],
rules: {
'@typescript-eslint/explicit-module-boundary-types': 'error',
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }],
'prettier/prettier': 'warn',
},
};
name: check-after-push
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 16
- run: npm ci
- run: npm run build
- run: npm run lint
- run: npm test
module.exports = {
semi: true,
trailingComma: "all",
singleQuote: true,
printWidth: 120,
tabWidth: 2,
};
import { Wson, WsonOptions } from 'wson';
import { ArrayLimiter } from './array-diff';
import { Notifier } from './notifier';
import { StringLimiter } from './string-diff';
export interface DiffOptions {
WSON?: Wson;
wsonOptions?: WsonOptions;
stringEdge?: number;
stringLimit?: number | StringLimiter;
arrayLimit?: number | ArrayLimiter;
notifiers?: Notifier | Notifier[];
}
export interface PatchOptions {
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=options.js.map
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":""}
import { Connector } from 'wson';
export declare type Value = unknown;
export declare type AnyArray = unknown[];
export declare type AnyRecord = Record<string, unknown>;
export declare type Delta = string | null | undefined;
export interface DiffConnector extends Connector {
postpatch?: (value: Value) => void;
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=types.js.map
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
{ "extends": "./tsconfig.json",
"include": [
"src/**/*", "test/**/*", ".eslintrc.js"
]
}
+9
-8

@@ -1,4 +0,5 @@

import { State } from "./diff";
import { Idxer } from "./idxer";
export declare type ArrayLimiter = (have: any[], wish: any[]) => number;
import { State } from './diff';
import { Idxer } from './idxer';
import { AnyArray } from './types';
export declare type ArrayLimiter = (have: AnyArray, wish: AnyArray) => number;
export declare type MdxOfs = [number, number];

@@ -38,3 +39,3 @@ export declare type KeyUse = MdxOfs[];

getPatches(meModOff: number, cb: (havePos: number, wishPos: number, len: number) => void): void;
putMove(legId: number): number | undefined;
putMove(legId: number): number;
getMoves(meModOff: number, cb: (srcPos: number, dstPos: number, len: number, reverse: boolean) => void): void;

@@ -44,4 +45,4 @@ }

state: State;
have: any[];
wish: any[];
have: AnyArray;
wish: AnyArray;
haveIdxer: Idxer;

@@ -53,3 +54,3 @@ wishIdxer: Idxer;

wishKeyUses: KeyUses;
constructor(state: State, have: any[], wish: any[]);
constructor(state: State, have: AnyArray, wish: AnyArray);
setupIdxers(): void;

@@ -64,3 +65,3 @@ setupModifiers(limit: number | ArrayLimiter | undefined): void;

getDelta(isRoot: boolean): string | null;
debugModifiers(title: string): void[];
debugModifiers(title: string): void;
}
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ArrayDiff = exports.Modifier = void 0;
// tslint:disable:max-classes-per-file
const _ = require("lodash");
const debug_1 = require("debug");
const mdiff_1 = require("mdiff");
const debug = debug_1.default("wson-diff:array-diff");
const lodash_1 = __importDefault(require("lodash"));
const assert_1 = __importDefault(require("assert"));
const debug_1 = __importDefault(require("debug"));
const mdiff_1 = __importDefault(require("mdiff"));
const debug = (0, debug_1.default)('wson-diff:array-diff');
const idxer_1 = require("./idxer");

@@ -28,5 +31,11 @@ class Modifier {

const { mdx } = this;
const outLegs = _(this.legs).filter((leg) => leg.haveMdx === mdx).sortBy("haveOfs").value();
const inLegs = _(this.legs).filter((leg) => leg.wishMdx === mdx).sortBy("wishOfs").value();
debug("setupLegs: mdx=%o, outLegs=%o, inLegs=%o", mdx, outLegs, inLegs);
const outLegs = (0, lodash_1.default)(this.legs)
.filter((leg) => leg.haveMdx === mdx)
.sortBy('haveOfs')
.value();
const inLegs = (0, lodash_1.default)(this.legs)
.filter((leg) => leg.wishMdx === mdx)
.sortBy('wishOfs')
.value();
debug('setupLegs: mdx=%o, outLegs=%o, inLegs=%o', mdx, outLegs, inLegs);
const legs = [];

@@ -69,3 +78,3 @@ const { haveLen } = this;

let rr = 16;
while (true) {
for (;;) {
let takeIn = false;

@@ -141,2 +150,5 @@ let takeOut = false;

if (takeOut) {
if (outLeg == null) {
throw new Error('missing outLeg');
}
legs.push({

@@ -154,2 +166,5 @@ id: outLeg.id,

if (takeIn) {
if (inLeg == null) {
throw new Error('missing inLeg');
}
legs.push({

@@ -173,3 +188,3 @@ id: inLeg.id,

getDeletes(meModOff, cb) {
debug("getDeletes: mdx=%o meModOff=%o", this.mdx, meModOff);
debug('getDeletes: mdx=%o meModOff=%o', this.mdx, meModOff);
let { restBalance } = this;

@@ -179,6 +194,6 @@ if (restBalance <= 0) {

}
let haveLoc = (this.haveLen + this.doneBalance) - this.closeGap;
let haveLoc = this.haveLen + this.doneBalance - this.closeGap;
for (let legIdx = this.legs.length - 1; legIdx >= 0; legIdx--) {
const leg = this.legs[legIdx];
debug("getDeletes: restBalance=%o haveLoc=%o leg=%o", restBalance, haveLoc, leg);
debug('getDeletes: restBalance=%o haveLoc=%o leg=%o', restBalance, haveLoc, leg);
const legLen = leg.len;

@@ -207,3 +222,3 @@ if (legLen > 0) {

getInserts(meModOff, cb) {
debug("getInserts: mdx=%o meModOff=%o have=%o+%o wish=%o+%o", this.mdx, meModOff, this.haveBegin, this.haveLen, this.wishBegin, this.wishLen);
debug('getInserts: mdx=%o meModOff=%o have=%o+%o wish=%o+%o', this.mdx, meModOff, this.haveBegin, this.haveLen, this.wishBegin, this.wishLen);
let { restBalance } = this;

@@ -213,7 +228,7 @@ if (restBalance >= 0) {

}
let haveLoc = (this.haveLen + this.doneBalance) - this.closeGap;
let haveLoc = this.haveLen + this.doneBalance - this.closeGap;
let wishLoc = this.wishLen - this.closeGap;
for (let legIdx = this.legs.length - 1; legIdx >= 0; legIdx--) {
const leg = this.legs[legIdx];
debug("getInserts: restBalance=%o haveLoc=%o wishLoc=%o leg=%o", restBalance, haveLoc, wishLoc, leg);
debug('getInserts: restBalance=%o haveLoc=%o wishLoc=%o leg=%o', restBalance, haveLoc, wishLoc, leg);
const legLen = leg.len;

@@ -225,3 +240,3 @@ if (legLen > 0) {

else if (leg.youMdx == null) {
cb(this.haveBegin + meModOff + haveLoc, (this.wishBegin + wishLoc) - legLen, legLen);
cb(this.haveBegin + meModOff + haveLoc, this.wishBegin + wishLoc - legLen, legLen);
this.doneBalance += legLen;

@@ -245,3 +260,3 @@ leg.done = true;

getPatches(meModOff, cb) {
debug("getPatches: mdx=%o meModOff=%o have=%o+%o wish=%o+%o", this.mdx, meModOff, this.haveBegin, this.haveLen, this.wishBegin, this.wishLen);
debug('getPatches: mdx=%o meModOff=%o have=%o+%o wish=%o+%o', this.mdx, meModOff, this.haveBegin, this.haveLen, this.wishBegin, this.wishLen);
let haveLoc = 0;

@@ -273,6 +288,6 @@ let wishLoc = 0;

putMove(legId) {
debug("putMove: legId=%o", legId);
debug('putMove: legId=%o', legId);
let meLoc = 0;
for (const leg of this.legs) {
debug("putMove: meLoc=%o leg=%o", meLoc, leg);
debug('putMove: meLoc=%o leg=%o', meLoc, leg);
meLoc += leg.gap;

@@ -295,19 +310,23 @@ const legLen = leg.len;

}
} // should never arrive here
}
// should never arrive here
{
throw new Error('unexpected end of legs');
}
}
getMoves(meModOff, cb) {
debug("getMoves: mdx=%o meModOff=%o", this.mdx, meModOff);
debug('getMoves: mdx=%o meModOff=%o', this.mdx, meModOff);
const { ad } = this;
let meLoc = 0;
for (const leg of this.legs) {
debug("getMoves: meLoc=%o leg=%o", meLoc, leg);
debug('getMoves: meLoc=%o leg=%o', meLoc, leg);
meLoc += leg.gap;
const legLen = leg.len;
const { youMdx } = leg;
if ((youMdx != null) && leg.youMdx > this.mdx) {
if (youMdx != null && leg.youMdx > this.mdx) {
const youModifier = ad.modifiers[youMdx];
const youModOff = meModOff + ad.getModOffDiff(this.mdx, youMdx);
debug("getMoves: meModOff=%o, youModOff=%o", meModOff, youModOff);
debug('getMoves: meModOff=%o, youModOff=%o', meModOff, youModOff);
const youLoc = youModifier.putMove(leg.id);
debug("getMoves: meLoc=%o, youLoc=%o", meLoc, youLoc);
debug('getMoves: meLoc=%o, youLoc=%o', meLoc, youLoc);
const meIdx = this.haveBegin + meModOff + meLoc;

@@ -367,3 +386,3 @@ const youIdx = youModifier.haveBegin + youModOff + youLoc;

function scanCb(haveBegin, haveEnd, wishBegin, wishEnd) {
debug("setupModifiers: %o..%o %o..%o", haveBegin, haveEnd, wishBegin, wishEnd);
debug('setupModifiers: %o..%o %o..%o', haveBegin, haveEnd, wishBegin, wishEnd);
const haveLen = haveEnd - haveBegin;

@@ -392,7 +411,7 @@ const wishLen = wishEnd - wishBegin;

}
if (_.isFunction(limit)) {
if (lodash_1.default.isFunction(limit)) {
limit = limit(this.have, this.wish);
}
const diffLen = mdiff_1.default(haveIdxer.keys, wishIdxer.keys).scanDiff(scanCb, limit);
this.aborted = (diffLen == null);
const diffLen = (0, mdiff_1.default)(haveIdxer.keys, wishIdxer.keys).scanDiff(scanCb, limit);
this.aborted = diffLen == null;
this.modifiers = modifiers;

@@ -421,3 +440,3 @@ this.wishKeyUses = wishKeyUses;

let newLeg = true;
if ((leg != null) && wishMdx === leg.wishMdx && haveOfs === leg.haveOfs + leg.len) {
if (leg != null && wishMdx === leg.wishMdx && haveOfs === leg.haveOfs + leg.len) {
if (leg.len === 1) {

@@ -478,3 +497,3 @@ if (wishOfs === leg.wishOfs + 1) {

}
this.debugModifiers("setupLegs done.");
this.debugModifiers('setupLegs done.');
}

@@ -499,3 +518,3 @@ getModOffDiff(fromMdx, toMdx) {

getDeleteDelta() {
let delta = "";
let delta = '';
let count = 0;

@@ -507,4 +526,4 @@ let meModOff = this.getModOffDiff(0, this.modifiers.length);

modifier.getDeletes(meModOff, (pos, len) => {
debug("getDeleteDelta: pos=%o, len=%o", pos, len);
delta += count === 0 ? "[d" : "|";
debug('getDeleteDelta: pos=%o, len=%o', pos, len);
delta += count === 0 ? '[d' : '|';
delta += pos;

@@ -518,3 +537,3 @@ if (len !== 1) {

if (count > 0) {
delta += "]";
delta += ']';
}

@@ -524,7 +543,7 @@ return delta;

getInsertDelta() {
let delta = "";
let delta = '';
let count = 0;
let meModOff = this.getModOffDiff(0, this.modifiers.length);
const { wishIdxer } = this;
debug("getInsertDelta: meModOff=%o", meModOff);
debug('getInsertDelta: meModOff=%o', meModOff);
for (let modIdx = this.modifiers.length - 1; modIdx >= 0; modIdx--) {

@@ -534,4 +553,4 @@ const modifier = this.modifiers[modIdx];

modifier.getInserts(meModOff, (havePos, wishPos, len) => {
debug("getInsertDelta: havePos=%o, wishPos=%o, len=%o", havePos, wishPos, len);
delta += count === 0 ? "[i" : "|";
debug('getInsertDelta: havePos=%o, wishPos=%o, len=%o', havePos, wishPos, len);
delta += count === 0 ? '[i' : '|';
delta += havePos;

@@ -545,3 +564,3 @@ for (let i = 0; i < len; i++) {

if (count > 0) {
delta += "]";
delta += ']';
}

@@ -551,3 +570,3 @@ return delta;

getPatchDelta() {
let delta = "";
let delta = '';
let count = 0;

@@ -558,7 +577,7 @@ let meModOff = 0;

const { state } = this;
debug("getPatchDelta: meModOff=%o", meModOff);
debug('getPatchDelta: meModOff=%o', meModOff);
for (const modifier of this.modifiers) {
modifier.getPatches(meModOff, (havePos, wishPos, len) => {
debug("getPatchDelta: havePos=%o, wishPos=%o, len=%o", havePos, wishPos, len);
delta += count === 0 ? "[r" : "|";
debug('getPatchDelta: havePos=%o, wishPos=%o, len=%o', havePos, wishPos, len);
delta += count === 0 ? '[r' : '|';
delta += havePos;

@@ -568,3 +587,4 @@ let canChain = true;

const iDelta = state.getDelta(have[havePos + i], wish[wishPos + i], false);
if (iDelta[0] !== ":") {
(0, assert_1.default)(iDelta != null);
if (iDelta[0] !== ':') {
canChain = false;

@@ -582,3 +602,3 @@ }

if (count > 0) {
delta += "]";
delta += ']';
}

@@ -588,3 +608,3 @@ return delta;

getMoveDelta() {
let delta = "";
let delta = '';
let count = 0;

@@ -594,7 +614,7 @@ let meModOff = 0;

modifier.getMoves(meModOff, (srcPos, dstPos, len, reverse) => {
debug("getMoveDelta: srcPos=%o, dstPos=%o, len=%o reverse=%o", srcPos, dstPos, len, reverse);
delta += count === 0 ? "[m" : "|";
debug('getMoveDelta: srcPos=%o, dstPos=%o, len=%o reverse=%o', srcPos, dstPos, len, reverse);
delta += count === 0 ? '[m' : '|';
delta += srcPos;
if (len !== 1) {
delta += (reverse ? "-" : "+") + (len - 1);
delta += (reverse ? '-' : '+') + `${len - 1}`;
}

@@ -607,3 +627,3 @@ delta += `@${dstPos}`;

if (count > 0) {
delta += "]";
delta += ']';
}

@@ -618,3 +638,3 @@ // @debugModifiers 'getMoveDelta done.'

else {
let delta = isRoot ? "|" : "";
let delta = isRoot ? '|' : '';
delta += this.getDeleteDelta();

@@ -628,6 +648,6 @@ delta += this.getMoveDelta();

debugModifiers(title) {
debug(title + " modifiers:");
return this.modifiers.map((modifier) => (debug(" mdx=%o have=%o+%o wish=%o+%o, restBalance=%o", modifier.mdx, modifier.haveBegin, modifier.haveLen, modifier.wishBegin, modifier.wishLen, modifier.restBalance),
modifier.legs.map((leg) => debug(" %o", leg)),
debug(" closeGap=%o", modifier.closeGap)));
debug(title + ' modifiers:');
this.modifiers.map((modifier) => (debug(' mdx=%o have=%o+%o wish=%o+%o, restBalance=%o', modifier.mdx, modifier.haveBegin, modifier.haveLen, modifier.wishBegin, modifier.wishLen, modifier.restBalance),
modifier.legs.map((leg) => debug(' %o', leg)),
debug(' closeGap=%o', modifier.closeGap)));
}

@@ -634,0 +654,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"array-diff.js","sourceRoot":"","sources":["../src/array-diff.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"array-diff.js","sourceRoot":"","sources":["../src/array-diff.ts"],"names":[],"mappings":"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"}

@@ -1,15 +0,17 @@

import { ArrayLimiter } from "./array-diff";
import { StringLimiter } from "./string-diff";
import { WsonDiff } from "./wson-diff";
import { AnyArray, AnyRecord, Delta, Value } from './types';
import { DiffOptions } from './options';
import { ArrayLimiter } from './array-diff';
import { StringLimiter } from './string-diff';
import { WsonDiff } from './wson-diff';
export declare class State {
differ: Differ;
wishStack: any[];
haveStack: any[];
wishStack: AnyArray;
haveStack: AnyArray;
constructor(differ: Differ);
stringify(val: any, useHave?: boolean): string;
getPlainDelta(have: any, wish: any, isRoot: boolean): string;
getStringDelta(have: string, wish: string, isRoot: boolean): string | null | undefined;
getObjectDelta(have: object, wish: object, isRoot: boolean): string | null | undefined;
getArrayDelta(have: any[], wish: any[], isRoot: boolean): string | null | undefined;
getDelta(have: any, wish: any, isRoot: boolean): string | null | undefined;
stringify(val: Value, useHave?: boolean): string;
getPlainDelta(have: Value, wish: Value, isRoot: boolean): string;
getStringDelta(have: string, wish: string, isRoot: boolean): Delta;
getObjectDelta(have: AnyRecord, wish: AnyRecord, isRoot: boolean): Delta;
getArrayDelta(have: AnyArray, wish: AnyArray, isRoot: boolean): string | null | undefined;
getDelta(have: Value, wish: Value, isRoot: boolean): string | null | undefined;
}

@@ -21,4 +23,4 @@ export declare class Differ {

arrayLimit: number | ArrayLimiter | undefined;
constructor(wdiff: WsonDiff, options: any);
diff(have: any, wish: any): string | null | undefined;
constructor(wdiff: WsonDiff, options?: DiffOptions);
diff(have: Value, wish: Value): string | null | undefined;
}
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Differ = exports.State = void 0;
// tslint:disable:max-classes-per-file
const debug_1 = require("debug");
const debug_1 = __importDefault(require("debug"));
const array_diff_1 = require("./array-diff");
const object_diff_1 = require("./object-diff");
const string_diff_1 = require("./string-diff");
const debug = debug_1.default("wson-diff:diff");
const debug = (0, debug_1.default)('wson-diff:diff');
class State {

@@ -18,10 +21,11 @@ constructor(differ) {

const stack = useHave ? this.haveStack : this.wishStack;
debug("stringify val=%o stack=%o", val, stack);
return this.differ.wdiff.WSON.stringify(val, { haverefCb(backVal) {
debug("stringify: backVal=%o", backVal);
debug('stringify val=%o stack=%o', val, stack);
return this.differ.wdiff.WSON.stringify(val, {
haverefCb(backVal) {
debug('stringify: backVal=%o', backVal);
for (let idx = 0; idx < stack.length; idx++) {
const wish = stack[idx];
debug("stringify: wish=%o, idx=%o", wish, idx);
debug('stringify: wish=%o, idx=%o', wish, idx);
if (wish === backVal) {
debug("stringify: found.");
debug('stringify: found.');
return stack.length - idx - 1;

@@ -31,6 +35,7 @@ }

return null;
} });
},
});
}
getPlainDelta(have, wish, isRoot) {
debug("getPlainDelta(have=%o, wish=%o, isRoot=%o)", have, wish, isRoot);
debug('getPlainDelta(have=%o, wish=%o, isRoot=%o)', have, wish, isRoot);
let delta = this.stringify(wish);

@@ -45,8 +50,8 @@ if (!isRoot) {

let delta;
if (!diff.aborted) {
delta = diff.getDelta(isRoot);
}
if (diff.aborted) {
delta = this.getPlainDelta(have, wish, isRoot);
}
else {
delta = diff.getDelta(isRoot);
}
return delta;

@@ -94,3 +99,4 @@ }

case 8: // Number
if (have === wish || (have !== have && wish !== wish)) { // NaN
if (have === wish || (have !== have && wish !== wish)) {
// NaN
return null;

@@ -127,22 +133,9 @@ }

class Differ {
constructor(wdiff, options) {
constructor(wdiff, options = {}) {
var _a, _b, _c, _d;
this.wdiff = wdiff;
const wdOptions = this.wdiff.options;
if (!options) {
options = {};
}
this.stringEdge = (options.stringEdge != null) ?
options.stringEdge
: (wdOptions.stringEdge != null) ?
wdOptions.stringEdge
:
16;
this.stringLimit = (options.stringLimit != null) ?
options.stringLimit
:
wdOptions.stringLimit;
this.arrayLimit = (options.arrayLimit != null) ?
options.arrayLimit
:
wdOptions.arrayLimit;
this.stringEdge = (_b = (_a = options.stringEdge) !== null && _a !== void 0 ? _a : wdOptions.stringEdge) !== null && _b !== void 0 ? _b : 16;
this.stringLimit = (_c = options.stringLimit) !== null && _c !== void 0 ? _c : wdOptions.stringLimit;
this.arrayLimit = (_d = options.arrayLimit) !== null && _d !== void 0 ? _d : wdOptions.arrayLimit;
}

@@ -149,0 +142,0 @@ diff(have, wish) {

@@ -1,1 +0,1 @@

{"version":3,"file":"diff.js","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"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"}

@@ -0,3 +1,6 @@

import { Value } from './types';
export declare class WsonDiffError extends Error {
name: string;
constructor();
}
export declare function errRepr(x: Value): string;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.WsonDiffError = void 0;
exports.errRepr = exports.WsonDiffError = void 0;
class WsonDiffError extends Error {
constructor() {
super();
this.name = '?';
}
}
exports.WsonDiffError = WsonDiffError;
function errRepr(x) {
try {
return JSON.stringify(x);
}
catch (error1) {
return String(x);
}
}
exports.errRepr = errRepr;
//# sourceMappingURL=errors.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,aAAc,SAAQ,KAAK;IACtC;QACE,KAAK,EAAE,CAAA;IACT,CAAC;CACF;AAJD,sCAIC"}
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAc,SAAQ,KAAK;IAGtC;QACE,KAAK,EAAE,CAAC;QAHV,SAAI,GAAG,GAAG,CAAC;IAIX,CAAC;CACF;AAND,sCAMC;AAED,SAAgB,OAAO,CAAC,CAAQ;IAC9B,IAAI;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KAC1B;IAAC,OAAO,MAAM,EAAE;QACf,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;KAClB;AACH,CAAC;AAND,0BAMC"}

@@ -1,2 +0,3 @@

import { State } from "./diff";
import { State } from './diff';
import { AnyArray } from './types';
export declare class Idxer {

@@ -6,4 +7,4 @@ state: State;

allString: boolean;
constructor(state: State, vals: any[], useHave: boolean, allString: boolean);
constructor(state: State, vals: AnyArray, useHave: boolean, allString: boolean);
getItem(idx: number): string;
}
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Idxer = void 0;
const _ = require("lodash");
const debug_1 = require("debug");
const debug = debug_1.default("wson-diff:idxer");
const _ = __importStar(require("lodash"));
const debug_1 = __importDefault(require("debug"));
const debug = (0, debug_1.default)('wson-diff:idxer');
class Idxer {
constructor(state, vals, useHave, allString) {
this.state = state;
let keys;
let keys = [];
if (allString) {

@@ -27,3 +49,3 @@ for (const val of vals) {

}
debug("keys=%o", keys);
debug('keys=%o', keys);
}

@@ -30,0 +52,0 @@ this.keys = keys;

@@ -1,1 +0,1 @@

{"version":3,"file":"idxer.js","sourceRoot":"","sources":["../src/idxer.ts"],"names":[],"mappings":";;;AAAA,4BAA2B;AAC3B,iCAAgC;AAEhC,MAAM,KAAK,GAAG,eAAY,CAAC,iBAAiB,CAAC,CAAA;AAI7C,MAAa,KAAK;IAMhB,YAAY,KAAY,EAAE,IAAW,EAAE,OAAgB,EAAE,SAAkB;QACzE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,IAAc,CAAA;QAClB,IAAI,SAAS,EAAE;YACb,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACpB,SAAS,GAAG,KAAK,CAAA;oBACjB,MAAK;iBACN;aACF;YACD,IAAI,GAAG,IAAgB,CAAA;SACxB;QACD,IAAI,CAAC,SAAS,EAAE;YACd,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC7B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;gBACrB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;gBAC9C,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;aAChB;YACD,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;SACvB;QACD,IAAI,CAAC,IAAI,GAAG,IAAK,CAAA;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,OAAO,CAAC,GAAW;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC1B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;SACjC;aAAM;YACL,OAAO,GAAG,CAAA;SACX;IACH,CAAC;CACF;AAvCD,sBAuCC"}
{"version":3,"file":"idxer.js","sourceRoot":"","sources":["../src/idxer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAA4B;AAC5B,kDAAiC;AAEjC,MAAM,KAAK,GAAG,IAAA,eAAY,EAAC,iBAAiB,CAAC,CAAC;AAK9C,MAAa,KAAK;IAKhB,YAAY,KAAY,EAAE,IAAc,EAAE,OAAgB,EAAE,SAAkB;QAC5E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,GAAa,EAAE,CAAC;QACxB,IAAI,SAAS,EAAE;YACb,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACpB,SAAS,GAAG,KAAK,CAAC;oBAClB,MAAM;iBACP;aACF;YACD,IAAI,GAAG,IAAgB,CAAC;SACzB;QACD,IAAI,CAAC,SAAS,EAAE;YACd,IAAI,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,MAAM,CAAC,CAAC;YACtC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;aACjB;YACD,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SACxB;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAEM,OAAO,CAAC,GAAW;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SAClC;aAAM;YACL,OAAO,GAAG,CAAC;SACZ;IACH,CAAC;CACF;AAtCD,sBAsCC"}

@@ -1,5 +0,6 @@

import { PatchError } from "./patch";
import { WsonDiff } from "./wson-diff";
import { PatchError } from './patch';
import { DiffOptions } from './options';
import { WsonDiff } from './wson-diff';
export interface Factory {
(options: any): WsonDiff;
(options: DiffOptions): WsonDiff;
PatchError: typeof PatchError;

@@ -9,3 +10,3 @@ }

export default factory;
export { Notifier } from "./notifier";
export { Key, Patch, Target } from "./target";
export { Notifier } from './notifier';
export { Key, Patch, Target } from './target';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const debug_1 = require("debug");
const debug_1 = __importDefault(require("debug"));
const patch_1 = require("./patch");
const wson_diff_1 = require("./wson-diff");
const debug = debug_1.default("wson-diff:index");
const _debug = (0, debug_1.default)('wson-diff:index');
const factory = ((createOptions) => {

@@ -8,0 +11,0 @@ return new wson_diff_1.WsonDiff(createOptions);

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,iCAAgC;AAEhC,mCAAoC;AACpC,2CAAsC;AAEtC,MAAM,KAAK,GAAG,eAAY,CAAC,iBAAiB,CAAC,CAAA;AAO7C,MAAM,OAAO,GAAG,CAAC,CAAC,aAAkB,EAAE,EAAE;IACtC,OAAO,IAAI,oBAAQ,CAAC,aAAa,CAAC,CAAA;AACpC,CAAC,CAAY,CAAA;AAEb,OAAO,CAAC,UAAU,GAAG,kBAAU,CAAA;AAE/B,kBAAe,OAAO,CAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,kDAAiC;AAEjC,mCAAqC;AAErC,2CAAuC;AAEvC,MAAM,MAAM,GAAG,IAAA,eAAY,EAAC,iBAAiB,CAAC,CAAC;AAO/C,MAAM,OAAO,GAAG,CAAC,CAAC,aAA0B,EAAE,EAAE;IAC9C,OAAO,IAAI,oBAAQ,CAAC,aAAa,CAAC,CAAC;AACrC,CAAC,CAAY,CAAC;AAEd,OAAO,CAAC,UAAU,GAAG,kBAAU,CAAC;AAEhC,kBAAe,OAAO,CAAC"}

@@ -1,4 +0,5 @@

import { Notifier } from "./notifier";
import { Key, Patch, Target } from "./target";
import { ValueTarget } from "./value-target";
import { Notifier } from './notifier';
import { Key, Patch, Target } from './target';
import { AnyArray, Value } from './types';
import { ValueTarget } from './value-target';
export declare class NotifierTarget implements Target {

@@ -9,12 +10,12 @@ vt: ValueTarget;

constructor(vt: ValueTarget, notifiers: Notifier[]);
get(up: number): undefined;
get(_up: number): undefined;
budge(up: number, key: Key): void;
unset(key: string): void;
assign(key: string | null, value: any): void;
assign(key: Key, value: Value): void;
delete(idx: number, len: number): void;
move(srcIdx: number, dstIdx: number, len: number, reverse: boolean): void;
insert(idx: number, values: any[]): void;
replace(idx: number, values: any[]): void;
insert(idx: number, values: AnyArray): void;
replace(idx: number, values: AnyArray): void;
substitute(patches: Patch[]): void;
done(): void;
}
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.NotifierTarget = void 0;
const debug_1 = require("debug");
const debug = debug_1.default("wson-diff:notifier-target");
const debug_1 = __importDefault(require("debug"));
const debug = (0, debug_1.default)('wson-diff:notifier-target');
class NotifierTarget {

@@ -14,9 +17,12 @@ constructor(vt, notifiers) {

const notifier = notifiers[ndx];
depths[ndx] = notifier.checkedBudge(0, null, current) === false
? 0 // assign root
: null;
depths[ndx] =
notifier.checkedBudge(0, null, current) === false
? 0 // assign root
: null;
}
this.depths = depths;
}
get(up) { return undefined; }
get(_up) {
return undefined;
}
budge(up, key) {

@@ -37,5 +43,3 @@ const { vt } = this;

if (notifyUp > 0) {
const notifyValue = notifyDepth === stackLen
? current
: stack[notifyDepth];
const notifyValue = notifyDepth === stackLen ? current : stack[notifyDepth];
notifier.assign(null, notifyValue);

@@ -55,3 +59,3 @@ notifyDepth = null;

}
debug("budge: notifyUp=%o", notifyUp);
debug('budge: notifyUp=%o', notifyUp);
if (key != null) {

@@ -67,3 +71,3 @@ if (notifyDepth == null) {

}
debug("budge: ->notifyDepth=%o", notifyDepth);
debug('budge: ->notifyDepth=%o', notifyDepth);
depths[ndx] = notifyDepth;

@@ -146,3 +150,3 @@ }

const { stack } = this.vt;
debug("done: stack=%o current=%o depths=%o", stack, current, depths);
debug('done: stack=%o current=%o depths=%o', stack, current, depths);
const stackLen = stack.length;

@@ -153,6 +157,4 @@ for (let ndx = 0; ndx < this.notifiers.length; ndx++) {

if (notifyDepth != null) {
const notifyValue = notifyDepth === stackLen
? current
: stack[notifyDepth];
debug("done: ndx=%o value=%o", ndx, notifyValue);
const notifyValue = notifyDepth === stackLen ? current : stack[notifyDepth];
debug('done: ndx=%o value=%o', ndx, notifyValue);
notifier.assign(null, notifyValue);

@@ -159,0 +161,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"notifier-target.js","sourceRoot":"","sources":["../src/notifier-target.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"notifier-target.js","sourceRoot":"","sources":["../src/notifier-target.ts"],"names":[],"mappings":"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"}

@@ -1,11 +0,12 @@

import { Key, Patch } from "./target";
import { Key, Patch } from './target';
import { AnyArray, Value } from './types';
export interface Notifier {
checkedBudge: (up: number, key: Key, current: any) => boolean;
unset: (key: string, curent: any) => void;
assign: (key: string | null, value: any, current?: any) => void;
delete: (idx: number, len: number, current?: any) => void;
move: (srcIdx: number, dstIdx: number, len: number, reverse: boolean, current?: any) => void;
insert: (idx: number, values: any[], current?: any) => void;
replace: (idx: number, values: any[], current?: any) => void;
substitute: (patches: Patch[], current?: any) => void;
checkedBudge: (up: number, key: Key, current: Value) => boolean;
unset: (key: string, curent: Value) => void;
assign: (key: Key, value: Value, current?: Value) => void;
delete: (idx: number, len: number, current?: Value) => void;
move: (srcIdx: number, dstIdx: number, len: number, reverse: boolean, current?: Value) => void;
insert: (idx: number, values: AnyArray, current?: Value) => void;
replace: (idx: number, values: AnyArray, current?: Value) => void;
substitute: (patches: Patch[], current?: Value) => void;
}

@@ -1,12 +0,10 @@

import { State } from "./diff";
export interface Obj {
[key: string]: any;
}
import { State } from './diff';
import { AnyRecord, Delta } from './types';
export declare class ObjectDiff {
state: State;
have: AnyRecord;
wish: AnyRecord;
aborted: boolean;
have: Obj;
wish: Obj;
constructor(state: State, have: Obj, wish: Obj);
getDelta(isRoot: boolean): string | null;
constructor(state: State, have: AnyRecord, wish: AnyRecord);
getDelta(isRoot: boolean): Delta;
}
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ObjectDiff = void 0;
const _ = require("lodash");
const debug_1 = require("debug");
const debug = debug_1.default("wson-diff:object-diff");
const { hasOwnProperty } = Object.prototype;
const lodash_1 = __importDefault(require("lodash"));
const debug_1 = __importDefault(require("debug"));
const debug = (0, debug_1.default)('wson-diff:object-diff');
class ObjectDiff {
constructor(state, have, wish) {
this.state = state;
if (have.constructor !== wish.constructor) {
this.aborted = true;
}
else {
this.have = have;
this.wish = wish;
this.aborted = false;
}
this.have = have;
this.wish = wish;
this.aborted = have.constructor !== wish.constructor;
}
getDelta(isRoot) {
var _a;
const { have } = this;
const { wish } = this;
debug("getDelta(have=%o, wish=%o, isRoot=%o)", have, wish, isRoot);
let delta = "";
debug('getDelta(have=%o, wish=%o, isRoot=%o)', have, wish, isRoot);
let delta = '';
const { state } = this;
let diffKeys = null;
if ((have.constructor != null) && have.constructor !== Object) {
if (have.constructor != null && have.constructor !== Object) {
const connector = state.differ.wdiff.WSON.connectorOfValue(have);
diffKeys = connector ? connector.diffKeys : null;
diffKeys = connector ? (_a = connector.diffKeys) !== null && _a !== void 0 ? _a : null : null;
console.log('diffKeys=', diffKeys, 'connector=', connector);
}
const hasDiffKeys = (diffKeys != null);
let delCount = 0;
const haveKeys = hasDiffKeys ? diffKeys : _(have).keys().sort().value();
const haveKeys = diffKeys !== null && diffKeys !== void 0 ? diffKeys : (0, lodash_1.default)(have).keys().sort().value();
for (const key of haveKeys) {
if (!hasOwnProperty.call(wish, key)) {
if (!lodash_1.default.has(wish, key)) {
if (delCount === 0) {
if (isRoot) {
delta += "|";
delta += '|';
}
delta += "[-";
delta += '[-';
}
else {
delta += "|";
delta += '|';
}

@@ -50,16 +48,16 @@ delta += state.stringify(key);

if (delCount > 0) {
delta += "]";
delta += ']';
}
let setDelta = "";
let setDelta = '';
let setCount = 0;
const wishKeys = hasDiffKeys ? diffKeys : _(wish).keys().sort().value();
const wishKeys = diffKeys !== null && diffKeys !== void 0 ? diffKeys : (0, lodash_1.default)(wish).keys().sort().value();
for (const key of wishKeys) {
if (hasDiffKeys && !hasOwnProperty.call(wish, key)) {
if (diffKeys && !lodash_1.default.has(wish, key)) {
continue;
}
const keyDelta = state.getDelta(have[key], wish[key], false);
debug("getDelta: key=%o, keyDelta=%o", key, keyDelta);
debug('getDelta: key=%o, keyDelta=%o', key, keyDelta);
if (keyDelta != null) {
if (setCount > 0) {
setDelta += "|";
setDelta += '|';
}

@@ -70,7 +68,7 @@ setDelta += state.stringify(key) + keyDelta;

}
debug("getDelta: setDelta=%o, setCount=%o", setDelta, setCount);
debug('getDelta: setDelta=%o, setCount=%o', setDelta, setCount);
if (setCount > 0) {
if (isRoot) {
if (delCount === 0) {
delta += "|";
delta += '|';
}

@@ -81,3 +79,3 @@ delta += setDelta;

if (setCount === 1 && delCount === 0) {
delta += "|";
delta += '|';
delta += setDelta;

@@ -84,0 +82,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"object-diff.js","sourceRoot":"","sources":["../src/object-diff.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"object-diff.js","sourceRoot":"","sources":["../src/object-diff.ts"],"names":[],"mappings":"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"}

@@ -1,18 +0,19 @@

import { WsonDiffError } from "./errors";
import { Notifier } from "./notifier";
import { Target } from "./target";
import { WsonDiff } from "./wson-diff";
export declare type Delta = string | null | undefined;
import { WsonDiffError } from './errors';
import { Notifier } from './notifier';
import { PatchOptions } from './options';
import { Target } from './target';
import { Delta, Value } from './types';
import { WsonDiff } from './wson-diff';
export declare class PatchError extends WsonDiffError {
delta: string;
name: string;
pos: number;
cause: string;
delta: string;
pos: number;
constructor(delta: string, pos: number, cause: any);
constructor(delta: string, pos: number | null, cause: string | null);
}
export declare class Patcher {
wdiff: WsonDiff;
constructor(wdiff: WsonDiff, options: any);
patchTarget(target: Target, delta: Delta): void;
patch(value: any, delta: Delta, notifiers?: Notifier | Notifier[]): any;
constructor(wdiff: WsonDiff, _options: PatchOptions);
patchTarget(target: Target, delta: Delta): Value;
patch(value: Value, delta: Delta, notifiers?: Notifier | Notifier[]): Value;
}
+122
-117
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Patcher = exports.PatchError = void 0;
// tslint:disable:max-classes-per-file
const debug_1 = require("debug");
const debug = debug_1.default("wson-diff:patch");
const assert_1 = __importDefault(require("assert"));
const debug_1 = __importDefault(require("debug"));
const wson_1 = require("wson");
const errors_1 = require("./errors");
const notifier_target_1 = require("./notifier-target");
const value_target_1 = require("./value-target");
const debug = (0, debug_1.default)('wson-diff:patch');
class PrePatchError extends errors_1.WsonDiffError {
constructor(cause) {
super();
this.name = "PrePatchError";
this.cause = cause;
this.name = 'PrePatchError';
}

@@ -20,13 +25,12 @@ }

super();
this.name = "PatchError";
this.delta = delta;
this.name = 'PatchError';
if (pos == null) {
pos = this.delta.length;
}
this.pos = pos;
this.cause = cause;
if (this.pos == null) {
this.pos = this.delta.length;
}
let char;
if (!this.cause) {
if (!cause) {
if (this.pos >= this.delta.length) {
char = "end";
char = 'end';
}

@@ -36,4 +40,5 @@ else {

}
this.cause = `unexpected ${char}`;
cause = `unexpected ${char}`;
}
this.cause = cause;
this.message = `${this.cause} at '${this.delta.slice(0, this.pos)}^${this.delta.slice(this.pos)}'`;

@@ -92,4 +97,4 @@ }

budgePending(withKey) {
debug("budgePending withKey=%o pendingUp=%o pendingKey=%o", withKey, this.pendingUp, this.pendingKey);
if (withKey && (this.pendingKey != null)) {
debug('budgePending withKey=%o pendingUp=%o pendingKey=%o', withKey, this.pendingUp, this.pendingKey);
if (withKey && this.pendingKey != null) {
this.target.budge(this.pendingUp, this.pendingKey);

@@ -108,3 +113,3 @@ this.targetDepth -= this.pendingUp - 1;

resetPath() {
debug("resetPath targetDepth=%o scopeDepth=%o", this.targetDepth, this.scopeDepth);
debug('resetPath targetDepth=%o scopeDepth=%o', this.targetDepth, this.scopeDepth);
this.pendingUp = this.targetDepth - this.scopeDepth;

@@ -116,10 +121,10 @@ this.pendingKey = null;

this.budgePending(true);
debug("enterObjectKey key=%o", key);
debug('enterObjectKey key=%o', key);
const ti = this.getCurrentTi();
if (ti !== TI_UNKNOW && ti !== TI_OBJECT) {
if (ti === TI_ARRAY) {
throw new PrePatchError(`can't index array ${this.target.get()} with object index ${key}`);
throw new PrePatchError(`can't index array ${(0, errors_1.errRepr)(this.target.get())} with object index ${key}`);
}
else {
throw new PrePatchError(`can't index scalar ${this.target.get()}`);
throw new PrePatchError(`can't index scalar ${(0, errors_1.errRepr)(this.target.get())}`);
}

@@ -131,6 +136,6 @@ }

this.budgePending(true);
debug("enterArrayKey skey=%o", skey);
debug('enterArrayKey skey=%o', skey);
const ti = this.getCurrentTi();
if (!reIndex.test(skey)) {
throw new PrePatchError(`non-numeric array index ${skey} for ${this.target.get()}`);
throw new PrePatchError(`non-numeric array index ${skey} for ${(0, errors_1.errRepr)(this.target.get())}`);
}

@@ -140,6 +145,6 @@ const key = Number(skey);

if (ti === TI_OBJECT) {
throw new PrePatchError(`can't index object ${this.target.get()} with array index ${key}`);
throw new PrePatchError(`can't index object ${(0, errors_1.errRepr)(this.target.get())} with array index ${key}`);
}
else {
throw new PrePatchError(`can't index scalar ${this.target.get()}`);
throw new PrePatchError(`can't index scalar ${(0, errors_1.errRepr)(this.target.get())}`);
}

@@ -150,3 +155,3 @@ }

pushScope(nextStage) {
debug("pushScope scopeDepth=%o @targetDepth=%o stage=%o", this.scopeDepth, this.targetDepth, this.stage ? this.stage.name : undefined);
debug('pushScope scopeDepth=%o @targetDepth=%o stage=%o', this.scopeDepth, this.targetDepth, this.stage ? this.stage.name : undefined);
this.scopeStack.push([this.scopeDepth, this.scopeTi, nextStage]);

@@ -157,8 +162,8 @@ this.scopeDepth = this.targetDepth;

if (!this.stage.canPop) {
throw new PrePatchError();
throw new PrePatchError(null);
}
const { scopeStack } = this;
debug("popScope scopeStack=%o", scopeStack);
debug('popScope scopeStack=%o', scopeStack);
if (scopeStack.length === 0) {
throw new PrePatchError();
throw new PrePatchError(null);
}

@@ -173,3 +178,3 @@ [this.scopeDepth, this.scopeTi, this.stage] = scopeStack.pop();

catch (e) {
throw new PrePatchError(e);
throw new PrePatchError(String(e));
}

@@ -179,9 +184,10 @@ this.assignValues = null;

startReplace() {
return this.replaceValues = [];
return (this.replaceValues = []);
}
addReplace(value) {
return this.replaceValues.push(value);
var _a;
return (_a = this.replaceValues) === null || _a === void 0 ? void 0 : _a.push(value);
}
commitReplace() {
debug("commitReplace pendingKey=%o replaceValues=%o", this.pendingKey, this.replaceValues);
debug('commitReplace pendingKey=%o replaceValues=%o', this.pendingKey, this.replaceValues);
if (this.replaceValues != null) {

@@ -194,3 +200,3 @@ this.budgePending(false);

doUnset(key) {
debug("doUnset key=%o", key);
debug('doUnset key=%o', key);
this.budgePending(false);

@@ -200,3 +206,3 @@ this.target.unset(key);

doDelete(skey) {
debug("doDelete skey=%o", skey);
debug('doDelete skey=%o', skey);
this.budgePending(true);

@@ -208,3 +214,3 @@ const m = reRange.exec(skey);

const idx = Number(m[1]);
const len = (m[3] != null) ? Number(m[3]) + 1 : 1;
const len = m[3] != null ? Number(m[3]) + 1 : 1;
this.target.delete(idx, len);

@@ -215,31 +221,31 @@ }

const ti = this.getCurrentTi();
debug("coninueModify c=%o", c);
debug('coninueModify c=%o', c);
let stage;
let expectedTi;
switch (c) {
case "=":
case '=':
expectedTi = TI_OBJECT;
stage = stages.assignBegin;
break;
case "-":
case '-':
expectedTi = TI_OBJECT;
stage = stages.unsetBegin;
break;
case "d":
case 'd':
expectedTi = TI_ARRAY;
stage = stages.deleteBegin;
break;
case "i":
case 'i':
expectedTi = TI_ARRAY;
stage = stages.insertBegin;
break;
case "m":
case 'm':
expectedTi = TI_ARRAY;
stage = stages.moveBegin;
break;
case "r":
case 'r':
expectedTi = TI_ARRAY;
stage = stages.replaceBegin;
break;
case "s":
case 's':
expectedTi = TI_STRING;

@@ -249,3 +255,3 @@ stage = stages.substituteBegin;

default:
throw new PrePatchError();
throw new PrePatchError(`unexpected patch key "${c}"`);
}

@@ -256,12 +262,12 @@ if (ti !== TI_UNKNOW && ti !== expectedTi) {

case TI_ARRAY:
return "array";
return 'array';
case TI_OBJECT:
return "object";
return 'object';
case TI_STRING:
return "string";
return 'string';
default:
return "scalar";
return 'scalar';
}
})();
throw new PatchError(this.delta, this.pos, `can't patch ${this.target.get()} with ${expectedName} modifier`);
throw new PatchError(this.delta, this.pos, `can't patch ${(0, errors_1.errRepr)(this.target.get())} with ${expectedName} modifier`);
}

@@ -273,3 +279,3 @@ this.stage = stage;

startModify(nextStage) {
debug("startModify nextStage=%o", nextStage.name);
debug('startModify nextStage=%o', nextStage.name);
this.budgePending(true);

@@ -281,3 +287,3 @@ this.pushScope(nextStage);

if (!reIndex.test(skey)) {
throw new PrePatchError(`non-numeric index ${skey} for array ${this.target.get ? this.target.get() : null}`);
throw new PrePatchError(`non-numeric index ${skey} for array ${(0, errors_1.errRepr)(this.target.get ? this.target.get() : null)}`);
}

@@ -291,7 +297,7 @@ this.insertKey = Number(skey);

commitInsert() {
debug("commitInsert insertKey=%o, insertValues=%o", this.insertKey, this.insertValues);
debug('commitInsert insertKey=%o, insertValues=%o', this.insertKey, this.insertValues);
this.target.insert(this.insertKey, this.insertValues);
}
doMove(skey) {
debug("doMove skey=%o", skey);
debug('doMove skey=%o', skey);
const m = reMove.exec(skey);

@@ -306,3 +312,3 @@ if (m == null) {

len = Number(m[3]) + 1;
reverse = m[2][0] === "-";
reverse = m[2][0] === '-';
}

@@ -314,3 +320,3 @@ else {

const dstKey = Number(m[4]);
debug("doMove srcKey=%o dstKey=%o len=%o reverse=%o", srcKey, dstKey, len, reverse);
debug('doMove srcKey=%o dstKey=%o len=%o reverse=%o', srcKey, dstKey, len, reverse);
this.target.move(srcKey, dstKey, len, reverse);

@@ -325,3 +331,3 @@ }

if (m == null) {
throw new PrePatchError(`invalid substitution ${skey} for string ${this.target.get ? this.target.get() : undefined}`);
throw new PrePatchError(`invalid substitution ${skey} for string ${(0, errors_1.errRepr)(this.target.get ? this.target.get() : undefined)}`);
}

@@ -333,3 +339,3 @@ const ofs = Number(m[1]);

lenDiff = Number(m[3]);
if (m[2][0] === "-") {
if (m[2][0] === '-') {
lenDiff = -lenDiff;

@@ -345,3 +351,3 @@ }

else {
str = "";
str = '';
}

@@ -351,3 +357,3 @@ return this.substituteValues.push([ofs, lenDiff, str]);

commitSubstitute() {
debug("commitSubstitute insertValues=%o", this.substituteValues);
debug('commitSubstitute insertValues=%o', this.substituteValues);
this.target.substitute(this.substituteValues);

@@ -362,4 +368,4 @@ }

},
["#"](value) {
this.enterObjectKey("");
['#']() {
this.enterObjectKey('');
this.stage = stages.assignHasKey;

@@ -369,10 +375,10 @@ },

assignHasKey: {
["|"]() {
['|']() {
this.stage = stages.assignBegin;
},
[":"]() {
[':']() {
this.rawNext = false;
this.stage = stages.assignHasColon;
},
["["]() {
['[']() {
this.startModify(stages.assignHasModify);

@@ -388,9 +394,9 @@ },

assignHasValue: {
["|"]() {
['|']() {
this.resetPath();
this.stage = stages.assignBegin;
},
["]"]() {
[']']() {
if (this.scopeStack.length === 0) {
throw new PrePatchError();
throw new PrePatchError(null);
}

@@ -401,3 +407,3 @@ this.stage = stages.modifyEnd;

if (this.scopeStack.length > 0) {
throw new PrePatchError();
throw new PrePatchError(null);
}

@@ -407,9 +413,9 @@ },

assignHasModify: {
["|"]() {
['|']() {
this.resetPath();
this.stage = stages.assignBegin;
},
["]"]() {
[']']() {
if (this.scopeStack.length === 0) {
throw new PrePatchError();
throw new PrePatchError(null);
}

@@ -420,3 +426,3 @@ this.stage = stages.modifyEnd;

if (this.scopeStack.length > 0) {
throw new PrePatchError();
throw new PrePatchError(null);
}

@@ -438,6 +444,6 @@ },

replaceHasKey: {
["|"]() {
['|']() {
this.stage = stages.replaceNextKey;
},
[":"]() {
[':']() {
this.rawNext = false;

@@ -447,3 +453,3 @@ this.stage = stages.replaceHasColon;

},
["["]() {
['[']() {
this.startModify(stages.replaceHasModify);

@@ -459,7 +465,7 @@ },

replaceHasValue: {
[":"]() {
[':']() {
this.rawNext = false;
this.stage = stages.replaceHasColon;
},
["|"]() {
['|']() {
this.commitReplace();

@@ -469,3 +475,3 @@ this.resetPath();

},
["]"]() {
[']']() {
this.commitReplace();

@@ -476,3 +482,3 @@ this.stage = stages.modifyEnd;

replaceHasModify: {
["|"]() {
['|']() {
this.commitReplace();

@@ -482,3 +488,3 @@ this.resetPath();

},
["]"]() {
[']']() {
this.commitReplace();

@@ -493,4 +499,4 @@ this.stage = stages.modifyEnd;

},
["#"]() {
this.doUnset("");
['#']() {
this.doUnset('');
this.stage = stages.unsetHas;

@@ -500,6 +506,6 @@ },

unsetHas: {
["]"]() {
[']']() {
this.stage = stages.modifyEnd;
},
["|"]() {
['|']() {
this.stage = stages.unsetBegin;

@@ -513,4 +519,4 @@ },

},
["#"]() {
this.doDelete("");
['#']() {
this.doDelete('');
this.stage = stages.deleteHas;

@@ -520,6 +526,6 @@ },

deleteHas: {
["]"]() {
[']']() {
this.stage = stages.modifyEnd;
},
["|"]() {
['|']() {
this.stage = stages.deleteBegin;

@@ -535,3 +541,3 @@ },

insertHasKey: {
[":"]() {
[':']() {
this.stage = stages.insertHasColon;

@@ -548,11 +554,11 @@ this.rawNext = false;

insertHasValue: {
[":"]() {
[':']() {
this.stage = stages.insertHasColon;
this.rawNext = false;
},
["|"]() {
['|']() {
this.commitInsert();
this.stage = stages.insertBegin;
},
["]"]() {
[']']() {
this.commitInsert();

@@ -569,6 +575,6 @@ this.stage = stages.modifyEnd;

moveHas: {
["]"]() {
[']']() {
this.stage = stages.modifyEnd;
},
["|"]() {
['|']() {
this.stage = stages.moveBegin;

@@ -584,7 +590,7 @@ },

substituteHas: {
["]"]() {
[']']() {
this.commitSubstitute();
this.stage = stages.modifyEnd;
},
["|"]() {
['|']() {
this.stage = stages.substituteNext;

@@ -601,3 +607,3 @@ },

canPop: true,
["["]() {
['[']() {
this.resetPath();

@@ -612,7 +618,7 @@ return this.continueModify();

},
["#"](value) {
this.enterObjectKey("");
['#'](_value) {
this.enterObjectKey('');
this.stage = stages.assignHasKey;
},
["["]() {
['[']() {
this.startModify(stages.patchHasModify);

@@ -626,3 +632,3 @@ },

},
["#"](value) {
['#'](value) {
this.enterObjectKey(value);

@@ -633,3 +639,3 @@ this.stage = stages.assignHasKey;

if (this.scopeStack.length > 0) {
throw new PrePatchError();
throw new PrePatchError(null);
}

@@ -646,14 +652,15 @@ },

class Patcher {
constructor(wdiff, options) {
constructor(wdiff, _options) {
this.wdiff = wdiff;
}
patchTarget(target, delta) {
debug("patch: target=%o, delta=%o", target, delta);
var _a;
debug('patch: target=%o, delta=%o', target, delta);
if (delta == null) {
return;
}
let state;
let state = null;
try {
let handler;
if (delta[0] !== "|") {
if (delta[0] !== '|') {
const value = this.wdiff.WSON.parse(delta);

@@ -667,5 +674,6 @@ target.assign(null, value);

cb(isValue, value, nextPos) {
while (true) {
(0, assert_1.default)(state != null);
for (;;) {
const { stage } = state;
debug("patch: stage=%o, isValue=%o, value=%o, nextPos=%o", stage.name, isValue, value, nextPos);
debug('patch: stage=%o, isValue=%o, value=%o, nextPos=%o', stage.name, isValue, value, nextPos);
if (isValue) {

@@ -677,3 +685,3 @@ handler = stage.value;

}
debug("patch: handler=%o", handler);
debug('patch: handler=%o', handler);
if (handler) {

@@ -687,3 +695,3 @@ break;

handler.call(state, value, nextPos);
debug("patch: pos=%o, rawNext=%o, skipNext=%o, stage.name=%o", state.pos, state.rawNext, state.skipNext, state.stage ? state.stage.name : undefined);
debug('patch: pos=%o, rawNext=%o, skipNext=%o, stage.name=%o', state.pos, state.rawNext, state.skipNext, state.stage ? state.stage.name : undefined);
state.pos = nextPos;

@@ -698,10 +706,7 @@ if (state.skipNext > 0) {

},
backrefCb: (target.get != null) ?
(refIdx) => target.get(refIdx)
:
null,
backrefCb: target.get != null ? (refIdx) => target.get(refIdx) : null,
});
state.pos = delta.length;
while (true) {
debug("patch: done: stage=%o", state.stage.name);
for (;;) {
debug('patch: done: stage=%o', state.stage.name);
handler = state.stage.end;

@@ -713,3 +718,3 @@ if (handler) {

}
handler.call(state);
handler.call(state, null);
}

@@ -720,6 +725,6 @@ target.done();

catch (error) {
if (error.name === "PrePatchError") {
throw new PatchError(delta, state.pos, error.cause);
if (error instanceof PrePatchError) {
throw new PatchError(delta, (_a = state === null || state === void 0 ? void 0 : state.pos) !== null && _a !== void 0 ? _a : -1, error.cause);
}
else if (error.name === "ParseError") {
else if (error instanceof wson_1.ParseError) {
throw new PatchError(error.s, error.pos, error.cause);

@@ -726,0 +731,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"patch.js","sourceRoot":"","sources":["../src/patch.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../src/patch.ts"],"names":[],"mappings":"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"}

@@ -1,2 +0,3 @@

import { State } from "./diff";
import { State } from './diff';
import { Delta } from './types';
export declare type Patch = [number, number, string];

@@ -9,3 +10,3 @@ export declare type StringLimiter = (have: string, wish: string) => number;

constructor(state: State, have: string, wish: string);
getDelta(isRoot: boolean): string | null;
getDelta(isRoot: boolean): Delta;
}
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.StringDiff = void 0;
const _ = require("lodash");
const debug_1 = require("debug");
const mdiff_1 = require("mdiff");
const debug = debug_1.default("wson-diff:string-diff");
const _ = __importStar(require("lodash"));
const debug_1 = __importDefault(require("debug"));
const mdiff_1 = __importDefault(require("mdiff"));
const debug = (0, debug_1.default)('wson-diff:string-diff');
class StringDiff {
constructor(state, have, wish) {
this.patches = [];
function scanCb(haveBegin, haveEnd, wishBegin, wishEnd) {
debug('scan: %o..%o %o..%o', haveBegin, haveEnd, wishBegin, wishEnd);
patches.push([haveBegin, haveEnd - haveBegin, wish.slice(wishBegin, wishEnd)]);
}
this.state = state;

@@ -22,6 +48,2 @@ const patches = [];

}
function scanCb(haveBegin, haveEnd, wishBegin, wishEnd) {
debug("scan: %o..%o %o..%o", haveBegin, haveEnd, wishBegin, wishEnd);
patches.push([haveBegin, haveEnd - haveBegin, wish.slice(wishBegin, wishEnd)]);
}
let limit = this.state.differ.stringLimit;

@@ -31,4 +53,4 @@ if (_.isFunction(limit)) {

}
const diffLen = mdiff_1.default(have, wish).scanDiff(scanCb, limit);
this.aborted = (diffLen == null);
const diffLen = (0, mdiff_1.default)(have, wish).scanDiff(scanCb, limit);
this.aborted = diffLen == null;
}

@@ -43,3 +65,3 @@ this.patches = patches;

const { WSON } = this.state.differ.wdiff;
let delta = isRoot ? "|[s" : "[s";
let delta = isRoot ? '|[s' : '[s';
for (let patchIdx = 0; patchIdx < patches.length; patchIdx++) {

@@ -49,3 +71,3 @@ const patch = patches[patchIdx];

if (patchIdx > 0) {
delta += "|";
delta += '|';
}

@@ -64,3 +86,3 @@ delta += ofs;

}
delta += "]";
delta += ']';
return delta;

@@ -67,0 +89,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"string-diff.js","sourceRoot":"","sources":["../src/string-diff.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"string-diff.js","sourceRoot":"","sources":["../src/string-diff.ts"],"names":[],"mappings":"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"}

@@ -0,14 +1,15 @@

import { AnyArray, Value } from './types';
export declare type Key = string | number | null;
export declare type Patch = [number, number, string];
export interface Target {
get(up?: number): any;
get(up?: number): Value;
budge(up: number, key: Key): void;
unset(key: string): void;
assign(key: string | null, value: any): void;
assign(key: string | null, value: Value): void;
delete(idx: number, len: number): void;
move(srcIdx: number, dstIdx: number, len: number, reverse: boolean): void;
insert(idx: number, values: any[]): void;
replace(idx: number, values: any[]): void;
insert(idx: number, values: AnyArray): void;
replace(idx: number, values: AnyArray): void;
substitute(patches: Patch[]): void;
done(): void;
}
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const debug_1 = require("debug");
const debug = debug_1.default("wson-diff:target");
const debug_1 = __importDefault(require("debug"));
const _debug = (0, debug_1.default)('wson-diff:target');
//# sourceMappingURL=target.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"target.js","sourceRoot":"","sources":["../src/target.ts"],"names":[],"mappings":";;AAAA,iCAAgC;AAEhC,MAAM,KAAK,GAAG,eAAY,CAAC,kBAAkB,CAAC,CAAA"}
{"version":3,"file":"target.js","sourceRoot":"","sources":["../src/target.ts"],"names":[],"mappings":";;;;;AAAA,kDAAiC;AAGjC,MAAM,MAAM,GAAG,IAAA,eAAY,EAAC,kBAAkB,CAAC,CAAC"}

@@ -1,26 +0,27 @@

import { Wson } from "wson";
import { NotifierTarget } from "./notifier-target";
import { Key, Patch, Target } from "./target";
import { Wson } from 'wson';
import { NotifierTarget } from './notifier-target';
import { Key, Patch, Target } from './target';
import { AnyArray, AnyRecord, Value } from './types';
export declare class ValueTarget implements Target {
WSON: Wson;
root: any;
current: any;
stack: any[];
topKey: any;
root: Value;
current: Value;
stack: AnyRecord[];
topKey: Key;
subTarget: NotifierTarget | null;
constructor(WSON: Wson, root: any);
constructor(WSON: Wson, root: Value);
setSubTarget(subTarget: NotifierTarget | null): void;
put_(key: string | null, value: any): void;
put_(key: Key, value: Value): void;
closeObjects_(tillIdx: number): void;
get(up: number): any;
get(up: number): Value;
budge(up: number, key: Key): void;
unset(key: string): void;
assign(key: string | null, value: any): void;
assign(key: Key, value: Value): void;
delete(idx: number, len: number): void;
move(srcIdx: number, dstIdx: number, len: number, reverse: boolean): void;
insert(idx: number, values: any[]): void;
replace(idx: number, values: any[]): void;
insert(idx: number, values: AnyArray): void;
replace(idx: number, values: AnyArray): void;
substitute(patches: Patch[]): void;
done(): void;
getRoot(): any;
getRoot(): Value;
}
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ValueTarget = void 0;
const debug_1 = require("debug");
const debug = debug_1.default("wson-diff:value-target");
const assert_1 = __importDefault(require("assert"));
const debug_1 = __importDefault(require("debug"));
const debug = (0, debug_1.default)('wson-diff:value-target');
class ValueTarget {

@@ -28,2 +32,3 @@ constructor(WSON, root) {

else {
(0, assert_1.default)(this.topKey != null);
stack[stack.length - 1][this.topKey] = value;

@@ -37,9 +42,12 @@ }

let idx = stack.length;
while (true) {
debug("closeObjects_ %o", value);
if (typeof value === "object" && (value.constructor != null) && value.constructor !== Object) {
for (;;) {
debug('closeObjects_ %o', value);
if (typeof value === 'object' && value.constructor != null && value.constructor !== Object) {
const connector = this.WSON.connectorOfValue(value);
debug("closeObjects_ connector=%o", connector);
if (connector && connector.postpatch) {
connector.postpatch(value);
debug('closeObjects_ connector=%o', connector);
if (connector) {
const { postpatch } = connector;
if (postpatch) {
postpatch(value);
}
}

@@ -54,3 +62,3 @@ }

get(up) {
if ((up == null) || up <= 0) {
if (up == null || up <= 0) {
return this.current;

@@ -64,4 +72,4 @@ }

budge(up, key) {
debug("budge(up=%o key=%o)", up, key);
debug("budge: stack=%o current=%o", this.stack, this.current);
debug('budge(up=%o key=%o)', up, key);
debug('budge: stack=%o current=%o', this.stack, this.current);
const { stack } = this;

@@ -89,3 +97,3 @@ let current;

unset(key) {
debug("unset(key=%o) @current=%o", key, this.current);
debug('unset(key=%o) @current=%o', key, this.current);
if (this.subTarget) {

@@ -97,3 +105,3 @@ this.subTarget.unset(key);

assign(key, value) {
debug("assign(key=%o value=%o)", key, value);
debug('assign(key=%o value=%o)', key, value);
if (this.subTarget) {

@@ -105,3 +113,3 @@ this.subTarget.assign(key, value);

delete(idx, len) {
debug("delete(idx=%o len=%o) @current=%o", idx, len, this.current);
debug('delete(idx=%o len=%o) @current=%o', idx, len, this.current);
if (this.subTarget) {

@@ -113,7 +121,7 @@ this.subTarget.delete(idx, len);

move(srcIdx, dstIdx, len, reverse) {
debug("move(srcIdx=%o dstIdx=%o len=%o reverse=%o)", srcIdx, dstIdx, len, reverse);
debug('move(srcIdx=%o dstIdx=%o len=%o reverse=%o)', srcIdx, dstIdx, len, reverse);
if (this.subTarget) {
this.subTarget.move(srcIdx, dstIdx, len, reverse);
}
const { current } = this;
const current = this.current;
const chunk = current.splice(srcIdx, len);

@@ -123,3 +131,3 @@ if (reverse) {

}
current.splice.apply(current, [dstIdx, 0].concat(chunk));
current.splice(dstIdx, 0, ...chunk);
}

@@ -130,7 +138,7 @@ insert(idx, values) {

}
const { current } = this;
current.splice.apply(current, [idx, 0].concat(values));
const current = this.current;
current.splice(idx, 0, ...values);
}
replace(idx, values) {
debug("replace(idx=%o, values=%o)", idx, values);
debug('replace(idx=%o, values=%o)', idx, values);
if (this.subTarget) {

@@ -143,5 +151,5 @@ this.subTarget.replace(idx, values);

}
const { current } = this;
const current = this.current;
let valuesIdx = 0;
while (true) {
for (;;) {
current[idx] = values[valuesIdx];

@@ -157,8 +165,8 @@ if (++valuesIdx === valuesLen) {

substitute(patches) {
debug("substitute(patches=%o)", patches);
debug('substitute(patches=%o)', patches);
if (this.subTarget) {
this.subTarget.substitute(patches);
}
const { current } = this;
let result = "";
const current = this.current;
let result = '';
let endOfs = 0;

@@ -174,4 +182,4 @@ for (const patch of patches) {

}
endOfs = (ofs + strLen) - lenDiff;
debug("substitute: patch=%o result=%o", patch, result);
endOfs = ofs + strLen - lenDiff;
debug('substitute: patch=%o result=%o', patch, result);
}

@@ -181,7 +189,7 @@ if (current.length > endOfs) {

}
debug("substitute: result=%o", result);
debug('substitute: result=%o', result);
this.put_(null, result);
}
done() {
debug("done: stack=%o current=%o", this.stack, this.current);
debug('done: stack=%o current=%o', this.stack, this.current);
if (this.subTarget) {

@@ -192,5 +200,7 @@ this.subTarget.done();

}
getRoot() { return this.root; }
getRoot() {
return this.root;
}
}
exports.ValueTarget = ValueTarget;
//# sourceMappingURL=value-target.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"value-target.js","sourceRoot":"","sources":["../src/value-target.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"value-target.js","sourceRoot":"","sources":["../src/value-target.ts"],"names":[],"mappings":"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"}

@@ -1,14 +0,16 @@

import { Wson } from "wson";
import { Differ } from "./diff";
import { Delta, Patcher } from "./patch";
import { Target } from "./target";
import { Wson } from 'wson';
import { Delta, Value } from './types';
import { Differ } from './diff';
import { Patcher } from './patch';
import { Target } from './target';
import { DiffOptions, PatchOptions } from './options';
export declare class WsonDiff {
options: DiffOptions;
WSON: Wson;
options: any;
constructor(options?: any);
createPatcher(options?: any): Patcher;
createDiffer(options?: any): Differ;
diff(have: any, wish: any, options: any): string | null | undefined;
patch(have: any, delta: Delta, options: any): any;
patchTarget(target: Target, delta: Delta, options: any): void;
constructor(options?: DiffOptions);
createPatcher(options?: PatchOptions): Patcher;
createDiffer(options?: DiffOptions): Differ;
diff(have: Value, wish: Value, options: DiffOptions): string | undefined | null;
patch(have: Value, delta: Delta, options: DiffOptions): Value;
patchTarget(target: Target, delta: Delta, options: DiffOptions): Value;
}
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.WsonDiff = void 0;
const debug_1 = require("debug");
const wson_1 = require("wson");
const debug_1 = __importDefault(require("debug"));
const wson_1 = __importDefault(require("wson"));
const diff_1 = require("./diff");
const patch_1 = require("./patch");
const debug = debug_1.default("wson-diff:wson-diff");
const _debug = (0, debug_1.default)('wson-diff:wson-diff');
class WsonDiff {
constructor(options = {}) {
this.options = options;
let { WSON } = options;
if (WSON == null) {
WSON = wson_1.default(options.wsonOptions);
WSON = (0, wson_1.default)(options.wsonOptions);
}
this.WSON = WSON;
this.options = options;
}

@@ -18,0 +21,0 @@ createPatcher(options = {}) {

@@ -1,1 +0,1 @@

{"version":3,"file":"wson-diff.js","sourceRoot":"","sources":["../src/wson-diff.ts"],"names":[],"mappings":";;;AACA,iCAAgC;AAChC,+BAAwC;AAExC,iCAA+B;AAC/B,mCAAwC;AAGxC,MAAM,KAAK,GAAG,eAAY,CAAC,qBAAqB,CAAC,CAAA;AAEjD,MAAa,QAAQ;IAKnB,YAAY,UAAe,EAAE;QAC3B,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;QACtB,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,IAAI,GAAG,cAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;SACxC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEM,aAAa,CAAC,UAAe,EAAE;QACpC,OAAO,IAAI,eAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACnC,CAAC;IAEM,YAAY,CAAC,UAAe,EAAE;QACnC,OAAO,IAAI,aAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC;IAEM,IAAI,CAAC,IAAS,EAAE,IAAS,EAAE,OAAY;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QACzC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAChC,CAAC;IAEM,KAAK,CAAC,IAAS,EAAE,KAAY,EAAE,OAAY;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAC3C,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC5E,CAAC;IAEM,WAAW,CAAC,MAAc,EAAE,KAAY,EAAE,OAAY;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAC3C,OAAO,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC3C,CAAC;CACF;AApCD,4BAoCC"}
{"version":3,"file":"wson-diff.js","sourceRoot":"","sources":["../src/wson-diff.ts"],"names":[],"mappings":";;;;;;AACA,kDAAiC;AACjC,gDAAyC;AAGzC,iCAAgC;AAChC,mCAAkC;AAIlC,MAAM,MAAM,GAAG,IAAA,eAAY,EAAC,qBAAqB,CAAC,CAAC;AAEnD,MAAa,QAAQ;IAGnB,YAAmB,UAAuB,EAAE;QAAzB,YAAO,GAAP,OAAO,CAAkB;QAC1C,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACvB,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,IAAI,GAAG,IAAA,cAAW,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SACzC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,aAAa,CAAC,UAAwB,EAAE;QAC7C,OAAO,IAAI,eAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAEM,YAAY,CAAC,UAAuB,EAAE;QAC3C,OAAO,IAAI,aAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAEM,IAAI,CAAC,IAAW,EAAE,IAAW,EAAE,OAAoB;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,IAAW,EAAE,KAAY,EAAE,OAAoB;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7E,CAAC;IAEM,WAAW,CAAC,MAAc,EAAE,KAAY,EAAE,OAAoB;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;CACF;AAjCD,4BAiCC"}
{
"name": "wson-diff",
"version": "1.4.0",
"version": "2.10.1",
"description": "Object diff and patch",

@@ -8,6 +8,8 @@ "main": "./lib",

"scripts": {
"test": "mocha --require ts-node/register --extension ts",
"lint": "tslint \"src/**/*.ts\" \"test/**/*.ts\"",
"build": "tsc",
"prepublishOnly": "npm test && npm run lint && npm run build"
"build-lib": "tsc",
"build": "npm run build-lib",
"lint": "eslint src/**/*.ts test/**/*.ts",
"prettify": "prettier -w src/**/* test/**/*",
"prepublishOnly": "npm test && npm run lint && npm run build",
"test": "mocha --require ts-node/register --extension ts"
},

@@ -32,20 +34,25 @@ "keywords": [

"devDependencies": {
"@types/chai": "^4.2.12",
"@types/mocha": "^8.0.3",
"@types/node": "^14.6.0",
"chai": "^4.2.0",
"mocha": "^8.1.1",
"ts-node": "^8.10.2",
"tslint": "^6.1.3",
"typescript": "^3.9.7",
"wson-addon": "^2.7.1"
"@types/chai": "^4.3.0",
"@types/debug": "^4.1.7",
"@types/lodash": "^4.14.178",
"@types/mocha": "^9.1.0",
"@types/node": "^17.0.14",
"@typescript-eslint/eslint-plugin": "^5.10.2",
"@typescript-eslint/parser": "^5.10.2",
"chai": "^4.3.6",
"eslint": "^8.8.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^4.0.0",
"mocha": "^9.2.0",
"ts-node": "^10.4.0",
"typescript": "^4.5.5",
"wson-addon": "^2.10.0"
},
"dependencies": {
"@types/debug": "^4.1.5",
"@types/lodash": "^4.14.159",
"debug": "^4.1.1",
"lodash": "^4.17.20",
"mdiff": "^1.3.1",
"wson": "^2.8.2"
"assert": "^2.0.0",
"debug": "^4.3.3",
"lodash": "^4.17.21",
"mdiff": "^1.4.2",
"wson": "^2.10.1"
}
}
# wson-diff
[![npm version](https://img.shields.io/npm/v/wson-diff.svg?style=flat-square)](https://www.npmjs.com/package/wson-diff)
[![Build Status](https://secure.travis-ci.org/tapirdata/wson-diff.png?branch=master)](https://travis-ci.org/tapirdata/wson-diff)
[![Dependency Status](https://david-dm.org/tapirdata/wson-diff.svg)](https://david-dm.org/tapirdata/wson-diff)
[![devDependency Status](https://david-dm.org/tapirdata/wson-diff/dev-status.svg)](https://david-dm.org/tapirdata/wson-diff#info=devDependencies)
> A differ/patcher for arbitrary values that presents delta in a terse WSON-like format.

@@ -8,0 +5,0 @@

{
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"allowUnreachableCode": false,
"allowUnusedLabels": false,
"declaration": true,
"emitDecoratorMetadata": true,
"esModuleInterop": true,
"experimentalDecorators": true,
"forceConsistentCasingInFileNames": true,
"jsx": "react",
"lib": ["es2016", "dom"],
"module": "commonjs",
"noEmitOnError": true,
"noFallthroughCasesInSwitch": true,
"noImplicitReturns": true,
"outDir": "lib",
"target": "es2016",
"module": "commonjs",
"noImplicitAny": true,
"pretty": true,
"resolveJsonModule": true,
"sourceMap": true,
"strict": true,
"sourceMap": true,
"declaration": true,
"typeRoots": [
"./@types",
"./node_modules/@types"
]
"target": "es2016"
},
"include": [
"src/**/*.ts"
"src/**/*"
]
}
import * as _ from "lodash"
import { Connector } from "wson"
import addon from "wson-addon"
import { Item } from "./test/fixtures/patch-items"
import wdiffFactory from "./src"
const connectors: Record<string, Connector<any>> = {};
const setups = [
{
name: "basic",
options: {
wsonOptions: {
connectors,
},
},
},
{
name: "native",
options: {
wsonOptions: {
connectors,
addon,
},
},
},
]
const items: Item[] = [
/*
{
have: {foo: "FOO", bar: "BAR"},
delta: "|foo:FU|baz:BAZ",
wish: {foo: "FU", bar: "BAR", baz: "BAZ"},
},
*/
{
have: {foo: "FOO", bar: "BAR"},
delta: "|#:BAZ",
wish: {"foo": "FOO", "bar": "BAR", "": "BAZ"},
},
]
for (const { patchOptions, have, delta, wish } of items) {
for (const setup of setups) {
const wdiff = wdiffFactory(setup.options)
console.log(`${setup.name}:`)
const patcher = wdiff.createPatcher(patchOptions)
const result = patcher.patch(_.cloneDeep(have), delta);
console.log(' have=', have, 'delta=', delta, 'wish=', wish, '\n result=', result)
}
}
{
"defaultSeverity": "error",
"extends": [
"tslint:recommended"
],
"jsRules": {},
"rules": {
"interface-name": false,
"object-literal-sort-keys": false,
"semicolon": [true, "never"]
},
"rulesDirectory": []
}