Socket
Socket
Sign inDemoInstall

mendoza

Package Overview
Dependencies
Maintainers
44
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mendoza - npm Package Compare versions

Comparing version 3.0.3 to 3.0.4

306

dist/index.js

@@ -1,21 +0,29 @@

var __defProp$1 = Object.defineProperty;
var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, {
enumerable: true,
configurable: true,
writable: true,
value
}) : obj[key] = value;
var __publicField$1 = (obj, key, value) => {
__defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
return value;
};
const OPS = ["Value", "Copy", "Blank", "ReturnIntoArray", "ReturnIntoObject", "ReturnIntoObjectSameKey", "PushField", "PushElement", "PushParent", "Pop", "PushFieldCopy", "PushFieldBlank", "PushElementCopy", "PushElementBlank", "ReturnIntoObjectPop", "ReturnIntoObjectSameKeyPop", "ReturnIntoArrayPop", "ObjectSetFieldValue", "ObjectCopyField", "ObjectDeleteField", "ArrayAppendValue", "ArrayAppendSlice", "StringAppendString", "StringAppendSlice"];
const OPS = [
"Value",
"Copy",
"Blank",
"ReturnIntoArray",
"ReturnIntoObject",
"ReturnIntoObjectSameKey",
"PushField",
"PushElement",
"PushParent",
"Pop",
"PushFieldCopy",
"PushFieldBlank",
"PushElementCopy",
"PushElementBlank",
"ReturnIntoObjectPop",
"ReturnIntoObjectSameKeyPop",
"ReturnIntoArrayPop",
"ObjectSetFieldValue",
"ObjectCopyField",
"ObjectDeleteField",
"ArrayAppendValue",
"ArrayAppendSlice",
"StringAppendString",
"StringAppendSlice"
];
class Patcher {
constructor(model, root, patch) {
__publicField$1(this, "model");
__publicField$1(this, "root");
__publicField$1(this, "patch");
__publicField$1(this, "i");
__publicField$1(this, "inputStack");
__publicField$1(this, "outputStack");
this.model = model;

@@ -32,12 +40,9 @@ this.root = root;

process() {
this.inputStack.push({
value: this.root
});
this.outputStack.push({
value: this.root
});
for (; this.i < this.patch.length;) {
this.inputStack.push({ value: this.root });
this.outputStack.push({ value: this.root });
for (; this.i < this.patch.length; ) {
let opcode = this.read();
let op = OPS[opcode];
if (!op) throw new Error("Unknown opcode: ".concat(opcode));
if (!op)
throw new Error("Unknown opcode: ".concat(opcode));
let processor = "process".concat(op);

@@ -92,16 +97,10 @@ this[processor].apply(this);

let value = this.model.wrap(this.read());
this.outputStack.push({
value
});
this.outputStack.push({ value });
}
processCopy() {
let input = this.inputEntry();
this.outputStack.push({
value: input.value
});
this.outputStack.push({ value: input.value });
}
processBlank() {
this.outputStack.push({
value: null
});
this.outputStack.push({ value: null });
}

@@ -134,6 +133,3 @@ processReturnIntoArray() {

let value = this.model.objectGetField(entry.value, key);
this.inputStack.push({
value,
key
});
this.inputStack.push({ value, key });
}

@@ -144,5 +140,3 @@ processPushElement() {

let value = this.model.arrayGetElement(entry.value, idx);
this.inputStack.push({
value
});
this.inputStack.push({ value });
}

@@ -222,2 +216,3 @@ processPop() {

}
function utf8charSize(code) {

@@ -239,3 +234,4 @@ if (code >> 16) {

let size = utf8charSize(code);
if (size == 4) i++;
if (size == 4)
i++;
b += size;

@@ -245,4 +241,3 @@ }

}
function utf8resolveIndex(str, idx) {
let start = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
function utf8resolveIndex(str, idx, start = 0) {
let byteCount = start;

@@ -253,3 +248,4 @@ let ucsIdx = 0;

let size = utf8charSize(code);
if (size === 4) ucsIdx++;
if (size === 4)
ucsIdx++;
byteCount += size;

@@ -262,6 +258,7 @@ }

let b = 0;
for (let i = 0; i < len;) {
for (let i = 0; i < len; ) {
let aPoint = str.codePointAt(i);
let bPoint = str2.codePointAt(i);
if (aPoint !== bPoint) return b;
if (aPoint !== bPoint)
return b;
let size = utf8charSize(aPoint);

@@ -273,10 +270,10 @@ b += size;

}
function commonSuffix(str, str2) {
let prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
function commonSuffix(str, str2, prefix = 0) {
let len = Math.min(str.length, str2.length) - prefix;
let b = 0;
for (let i = 0; i < len;) {
for (let i = 0; i < len; ) {
let aPoint = str.codePointAt(str.length - 1 - i);
let bPoint = str2.codePointAt(str2.length - 1 - i);
if (aPoint !== bPoint) return b;
if (aPoint !== bPoint)
return b;
let size = utf8charSize(aPoint);

@@ -288,16 +285,5 @@ b += size;

}
var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
enumerable: true,
configurable: true,
writable: true,
value
}) : obj[key] = value;
var __publicField = (obj, key, value) => {
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
return value;
};
class IncrementalModel {
constructor(meta) {
__publicField(this, "meta");
this.meta = meta;

@@ -308,9 +294,4 @@ }

}
wrapWithMeta(data, startMeta) {
let endMeta = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.meta;
return {
data,
startMeta,
endMeta
};
wrapWithMeta(data, startMeta, endMeta = this.meta) {
return { data, startMeta, endMeta };
}

@@ -323,6 +304,3 @@ asObject(value) {

}
value.content = {
type: "object",
fields
};
value.content = { type: "object", fields };
}

@@ -333,9 +311,7 @@ return value.content;

if (!value.content) {
let elements = value.data.map(item => this.wrapWithMeta(item, value.startMeta));
let elements = value.data.map(
(item) => this.wrapWithMeta(item, value.startMeta)
);
let metas = elements.map(() => this.meta);
value.content = {
type: "array",
elements,
metas
};
value.content = { type: "array", elements, metas };
}

@@ -385,7 +361,3 @@ return value.content;

this.updateEndMeta(content);
return {
content,
startMeta: this.meta,
endMeta: this.meta
};
return { content, startMeta: this.meta, endMeta: this.meta };
}

@@ -483,3 +455,4 @@ markChanged(value) {

resolveStringPart(str, from, len) {
if (len === 0) return from;
if (len === 0)
return from;
for (let i = from; i < str.parts.length; i++) {

@@ -508,3 +481,4 @@ let part = str.parts[i];

let size = utf8charSize(code);
if (size === 4) idx++;
if (size === 4)
idx++;
byteCount += size;

@@ -526,3 +500,4 @@ }

let ndx = use.parts.indexOf(part);
if (ndx === -1) throw new Error("bug: mismatch between string parts and use.");
if (ndx === -1)
throw new Error("bug: mismatch between string parts and use.");
use.parts.splice(ndx + 1, 0, newPart);

@@ -542,10 +517,7 @@ }

function wrap(data, meta) {
return {
data,
startMeta: meta,
endMeta: meta
};
return { data, startMeta: meta, endMeta: meta };
}
function unwrap(value) {
if (typeof value.data !== "undefined") return value.data;
if (typeof value.data !== "undefined")
return value.data;
let result;

@@ -555,14 +527,13 @@ let content = value.content;

case "string":
result = content.parts.map(part => part.value).join("");
result = content.parts.map((part) => part.value).join("");
break;
case "array":
result = content.elements.map(val => unwrap(val));
result = content.elements.map((val) => unwrap(val));
break;
case "object":
{
result = {};
for (let [key, val] of Object.entries(content.fields)) {
result[key] = unwrap(val);
}
case "object": {
result = {};
for (let [key, val] of Object.entries(content.fields)) {
result[key] = unwrap(val);
}
}
}

@@ -573,5 +544,8 @@ value.data = result;

function getType(value) {
if (value.content) return value.content.type;
if (Array.isArray(value.data)) return "array";
if (value.data === null) return "null";
if (value.content)
return value.content.type;
if (Array.isArray(value.data))
return "array";
if (value.data === null)
return "null";
return typeof value.data;

@@ -582,71 +556,71 @@ }

let rightType = getType(right);
if (leftType !== rightType) return right;
if (leftType !== rightType)
return right;
let leftModel = new IncrementalModel(left.endMeta);
let rightModel = new IncrementalModel(right.endMeta);
switch (leftType) {
case "object":
{
let leftObj = leftModel.asObject(left);
let rightObj = rightModel.asObject(right);
let identicalFieldCount = 0;
let leftFieldCount = Object.keys(leftObj.fields).length;
let rightFieldCount = Object.keys(rightObj.fields).length;
for (let [key, rightVal] of Object.entries(rightObj.fields)) {
let leftVal = leftObj.fields[key];
if (leftVal) {
rightObj.fields[key] = rebaseValue(leftVal, rightVal);
if (rightObj.fields[key] === leftVal) {
identicalFieldCount++;
}
case "object": {
let leftObj = leftModel.asObject(left);
let rightObj = rightModel.asObject(right);
let identicalFieldCount = 0;
let leftFieldCount = Object.keys(leftObj.fields).length;
let rightFieldCount = Object.keys(rightObj.fields).length;
for (let [key, rightVal] of Object.entries(rightObj.fields)) {
let leftVal = leftObj.fields[key];
if (leftVal) {
rightObj.fields[key] = rebaseValue(leftVal, rightVal);
if (rightObj.fields[key] === leftVal) {
identicalFieldCount++;
}
}
let isIdentical = leftFieldCount === rightFieldCount && leftFieldCount === identicalFieldCount;
return isIdentical ? left : right;
}
case "array":
{
let leftArr = leftModel.asArray(left);
let rightArr = rightModel.asArray(right);
if (leftArr.elements.length !== rightArr.elements.length) {
break;
let isIdentical = leftFieldCount === rightFieldCount && leftFieldCount === identicalFieldCount;
return isIdentical ? left : right;
}
case "array": {
let leftArr = leftModel.asArray(left);
let rightArr = rightModel.asArray(right);
if (leftArr.elements.length !== rightArr.elements.length) {
break;
}
let numRebased = 0;
for (let i = 0; i < rightArr.elements.length; i++) {
rightArr.elements[i] = rebaseValue(leftArr.elements[i], rightArr.elements[i]);
if (rightArr.elements[i] !== leftArr.elements[i]) {
numRebased++;
}
let numRebased = 0;
for (let i = 0; i < rightArr.elements.length; i++) {
rightArr.elements[i] = rebaseValue(leftArr.elements[i], rightArr.elements[i]);
if (rightArr.elements[i] !== leftArr.elements[i]) {
numRebased++;
}
}
return numRebased === 0 ? left : right;
}
return numRebased === 0 ? left : right;
}
case "null":
case "boolean":
case "number":
{
if (unwrap(left) === unwrap(right)) return left;
break;
case "number": {
if (unwrap(left) === unwrap(right))
return left;
break;
}
case "string": {
let leftRaw = unwrap(left);
let rightRaw = unwrap(right);
if (leftRaw === rightRaw)
return left;
let result = rightModel.copyString(null);
let prefix = commonPrefix(leftRaw, rightRaw);
let suffix = commonSuffix(leftRaw, rightRaw, prefix);
let rightLen = utf8stringSize(rightRaw);
let leftLen = utf8stringSize(leftRaw);
if (0 < prefix) {
rightModel.stringAppendSlice(result, left, 0, prefix);
}
case "string":
{
let leftRaw = unwrap(left);
let rightRaw = unwrap(right);
if (leftRaw === rightRaw) return left;
let result = rightModel.copyString(null);
let prefix = commonPrefix(leftRaw, rightRaw);
let suffix = commonSuffix(leftRaw, rightRaw, prefix);
let rightLen = utf8stringSize(rightRaw);
let leftLen = utf8stringSize(leftRaw);
if (0 < prefix) {
rightModel.stringAppendSlice(result, left, 0, prefix);
}
if (prefix < rightLen - suffix) {
rightModel.stringAppendSlice(result, right, prefix, rightLen - suffix);
}
if (leftLen - suffix < leftLen) {
rightModel.stringAppendSlice(result, left, leftLen - suffix, leftLen);
}
let value = rightModel.finalize(result);
if (unwrap(value) !== rightRaw) throw new Error("incorrect string rebase");
return value;
if (prefix < rightLen - suffix) {
rightModel.stringAppendSlice(result, right, prefix, rightLen - suffix);
}
if (leftLen - suffix < leftLen) {
rightModel.stringAppendSlice(result, left, leftLen - suffix, leftLen);
}
let value = rightModel.finalize(result);
if (unwrap(value) !== rightRaw)
throw new Error("incorrect string rebase");
return value;
}
}

@@ -660,2 +634,3 @@ return right;

}
var incrementalPatcher = /*#__PURE__*/Object.freeze({

@@ -669,2 +644,3 @@ __proto__: null,

});
class SimpleModel {

@@ -706,3 +682,4 @@ wrap(data) {

copyArray(value) {
if (value === null) return [];
if (value === null)
return [];
return value.slice();

@@ -743,3 +720,4 @@ }

}
export { applyPatch, incrementalPatcher as incremental };
//# sourceMappingURL=index.js.map
{
"name": "mendoza",
"version": "3.0.3",
"version": "3.0.4",
"description": "Mendoza, differ for structured documents",

@@ -47,6 +47,3 @@ "keywords": [

},
"browserslist": [
"> 0.2% and supports es6-module and supports es6-module-dynamic-import and not dead and not IE 11",
"maintained node versions"
],
"browserslist": "extends @sanity/browserslist-config",
"prettier": {

@@ -62,20 +59,21 @@ "bracketSpacing": false,

"devDependencies": {
"@sanity/pkg-utils": "^2.3.10",
"@sanity/semantic-release-preset": "^4.1.2",
"@types/node": "^18.17.2",
"@typescript-eslint/eslint-plugin": "^6.2.1",
"@typescript-eslint/parser": "^6.2.1",
"@vitest/coverage-v8": "^0.34.1",
"eslint": "^8.46.0",
"eslint-config-prettier": "^8.10.0",
"eslint-plugin-prettier": "^5.0.0",
"@sanity/pkg-utils": "^4.1.0",
"@sanity/semantic-release-preset": "^4.1.6",
"@types/node": "^18.17.14",
"@typescript-eslint/eslint-plugin": "^6.19.1",
"@typescript-eslint/parser": "^6.19.1",
"@vitest/coverage-v8": "^1.2.1",
"eslint": "^8.56.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-simple-import-sort": "^10.0.0",
"ls-engines": "^0.9.0",
"prettier": "^3.0.1",
"prettier-plugin-packagejson": "^2.4.5",
"ls-engines": "^0.9.1",
"prettier": "^3.2.4",
"prettier-plugin-packagejson": "^2.4.9",
"rimraf": "^4.4.1",
"semantic-release": "^21.0.7",
"typescript": "^5.1.6",
"vitest": "^0.34.1",
"vitest-github-actions-reporter": "^0.10.0"
"semantic-release": "^22.0.12",
"typescript": "^5.3.3",
"vite-tsconfig-paths": "^4.3.1",
"vitest": "^1.2.1",
"vitest-github-actions-reporter": "^0.11.1"
},

@@ -82,0 +80,0 @@ "engines": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc