@kelet-ai/feedback-ui 1.1.1 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -70
- package/dist/components/vote-feedback.d.ts +1 -1
- package/dist/feedback-ui.es.js +275 -264
- package/dist/feedback-ui.es.js.map +1 -1
- package/dist/feedback-ui.es.min.js +808 -795
- package/dist/feedback-ui.es.min.js.map +1 -1
- package/dist/feedback-ui.umd.js +275 -264
- package/dist/feedback-ui.umd.js.map +1 -1
- package/dist/feedback-ui.umd.min.js +11 -11
- package/dist/feedback-ui.umd.min.js.map +1 -1
- package/dist/hooks/feedback-state/diff-utils.d.ts +1 -1
- package/dist/hooks/feedback-state/types.d.ts +5 -5
- package/dist/types/index.d.ts +16 -9
- package/package.json +2 -1
package/dist/feedback-ui.umd.js
CHANGED
|
@@ -438,7 +438,7 @@
|
|
|
438
438
|
return { ...latestEvent };
|
|
439
439
|
}
|
|
440
440
|
const KeletContext = require$$0$1.createContext(null);
|
|
441
|
-
const DefaultKeletBaseUrl = "https://api.kelet.ai
|
|
441
|
+
const DefaultKeletBaseUrl = "https://api.kelet.ai";
|
|
442
442
|
const useKelet = () => {
|
|
443
443
|
const context = require$$0$1.useContext(KeletContext);
|
|
444
444
|
if (!context) {
|
|
@@ -469,23 +469,31 @@
|
|
|
469
469
|
"apiKey is required either directly or from a parent KeletProvider"
|
|
470
470
|
);
|
|
471
471
|
}
|
|
472
|
+
let resolvedBaseUrl = baseUrl || DefaultKeletBaseUrl;
|
|
473
|
+
if (resolvedBaseUrl.endsWith("/api")) {
|
|
474
|
+
resolvedBaseUrl = resolvedBaseUrl.slice(0, -4);
|
|
475
|
+
}
|
|
476
|
+
if (resolvedBaseUrl.endsWith("/")) {
|
|
477
|
+
resolvedBaseUrl = resolvedBaseUrl.slice(0, -1);
|
|
478
|
+
}
|
|
472
479
|
const feedback = async (data) => {
|
|
473
|
-
const
|
|
474
|
-
const url = `${resolvedBaseUrl}/projects/${project}/signal`;
|
|
480
|
+
const url = `${resolvedBaseUrl}/api/projects/${project}/signal`;
|
|
475
481
|
const capturedEvent = getLatestEvent();
|
|
476
482
|
const metadata = {
|
|
477
|
-
...data.
|
|
483
|
+
...data.metadata ?? {},
|
|
478
484
|
...capturedEvent && { $dom_event: capturedEvent }
|
|
479
485
|
};
|
|
480
486
|
const req = {
|
|
481
487
|
session_id: data.session_id,
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
explanation: data.explanation,
|
|
485
|
-
correction: data.correction,
|
|
486
|
-
selection: data.selection,
|
|
488
|
+
kind: data.kind,
|
|
489
|
+
source: data.source,
|
|
487
490
|
trigger_name: data.trigger_name,
|
|
488
|
-
|
|
491
|
+
score: data.score,
|
|
492
|
+
value: data.value,
|
|
493
|
+
confidence: data.confidence,
|
|
494
|
+
metadata: Object.keys(metadata).length > 0 ? metadata : void 0,
|
|
495
|
+
timestamp: data.timestamp || (/* @__PURE__ */ new Date()).toISOString(),
|
|
496
|
+
trace_id: data.trace_id
|
|
489
497
|
};
|
|
490
498
|
const response = await fetch(url, {
|
|
491
499
|
method: "POST",
|
|
@@ -531,9 +539,7 @@
|
|
|
531
539
|
}
|
|
532
540
|
return { ...slotProps, ...overrideProps };
|
|
533
541
|
};
|
|
534
|
-
const VoteFeedbackContext = require$$0$1.createContext(
|
|
535
|
-
null
|
|
536
|
-
);
|
|
542
|
+
const VoteFeedbackContext = require$$0$1.createContext(null);
|
|
537
543
|
const useVoteFeedbackContext = () => {
|
|
538
544
|
const context = require$$0$1.useContext(VoteFeedbackContext);
|
|
539
545
|
if (!context) {
|
|
@@ -548,10 +554,12 @@
|
|
|
548
554
|
onFeedback,
|
|
549
555
|
defaultText = "",
|
|
550
556
|
session_id: sessionIdProp,
|
|
551
|
-
|
|
552
|
-
trigger_name
|
|
557
|
+
metadata,
|
|
558
|
+
trigger_name: triggerProp,
|
|
559
|
+
trace_id
|
|
553
560
|
}) => {
|
|
554
561
|
const session_id = typeof sessionIdProp === "function" ? sessionIdProp() : sessionIdProp;
|
|
562
|
+
const trigger_name = triggerProp || void 0;
|
|
555
563
|
const [showPopover, setShowPopover] = require$$0$1.useState(false);
|
|
556
564
|
const [feedbackText, setFeedbackText] = require$$0$1.useState(defaultText);
|
|
557
565
|
const [isSubmitting, setIsSubmitting] = require$$0$1.useState(false);
|
|
@@ -573,9 +581,12 @@
|
|
|
573
581
|
setVote("upvote");
|
|
574
582
|
const data = {
|
|
575
583
|
session_id,
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
584
|
+
kind: "feedback",
|
|
585
|
+
source: "human",
|
|
586
|
+
trigger_name,
|
|
587
|
+
score: 1,
|
|
588
|
+
...metadata && { metadata },
|
|
589
|
+
...trace_id && { trace_id }
|
|
579
590
|
};
|
|
580
591
|
try {
|
|
581
592
|
setIsSubmitting(true);
|
|
@@ -583,15 +594,18 @@
|
|
|
583
594
|
} finally {
|
|
584
595
|
setIsSubmitting(false);
|
|
585
596
|
}
|
|
586
|
-
}, [handler, session_id,
|
|
597
|
+
}, [handler, session_id, metadata, trigger_name, trace_id]);
|
|
587
598
|
const handleDownvote = require$$0$1.useCallback(async () => {
|
|
588
599
|
setVote("downvote");
|
|
589
600
|
if (handler) {
|
|
590
601
|
const data = {
|
|
591
602
|
session_id,
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
603
|
+
kind: "feedback",
|
|
604
|
+
source: "human",
|
|
605
|
+
trigger_name,
|
|
606
|
+
score: 0,
|
|
607
|
+
...metadata && { metadata },
|
|
608
|
+
...trace_id && { trace_id }
|
|
595
609
|
};
|
|
596
610
|
try {
|
|
597
611
|
setIsSubmitting(true);
|
|
@@ -611,7 +625,7 @@
|
|
|
611
625
|
document.body.appendChild(announcement);
|
|
612
626
|
setTimeout(() => document.body.removeChild(announcement), 1e3);
|
|
613
627
|
}, 0);
|
|
614
|
-
}, [handler, session_id,
|
|
628
|
+
}, [handler, session_id, metadata, trigger_name, trace_id]);
|
|
615
629
|
const handleTextareaChange = require$$0$1.useCallback(
|
|
616
630
|
(e) => {
|
|
617
631
|
setFeedbackText(e.target.value);
|
|
@@ -623,10 +637,13 @@
|
|
|
623
637
|
if (hasText) {
|
|
624
638
|
const data = {
|
|
625
639
|
session_id,
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
640
|
+
kind: "feedback",
|
|
641
|
+
source: "human",
|
|
642
|
+
trigger_name,
|
|
643
|
+
score: 0,
|
|
644
|
+
value: feedbackText,
|
|
645
|
+
...metadata && { metadata },
|
|
646
|
+
...trace_id && { trace_id }
|
|
630
647
|
};
|
|
631
648
|
try {
|
|
632
649
|
setIsSubmitting(true);
|
|
@@ -651,8 +668,9 @@
|
|
|
651
668
|
feedbackText,
|
|
652
669
|
defaultText,
|
|
653
670
|
session_id,
|
|
654
|
-
|
|
655
|
-
trigger_name
|
|
671
|
+
metadata,
|
|
672
|
+
trigger_name,
|
|
673
|
+
trace_id
|
|
656
674
|
]);
|
|
657
675
|
const handleKeyDown = require$$0$1.useCallback(
|
|
658
676
|
(e) => {
|
|
@@ -703,8 +721,9 @@
|
|
|
703
721
|
popoverId,
|
|
704
722
|
triggerId,
|
|
705
723
|
session_id,
|
|
706
|
-
|
|
707
|
-
trigger_name
|
|
724
|
+
metadata,
|
|
725
|
+
trigger_name,
|
|
726
|
+
trace_id
|
|
708
727
|
};
|
|
709
728
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(VoteFeedbackContext.Provider, { value: contextValue, children });
|
|
710
729
|
};
|
|
@@ -1340,223 +1359,6 @@
|
|
|
1340
1359
|
return deepDiff$1.exports;
|
|
1341
1360
|
}
|
|
1342
1361
|
var deepDiffExports = requireDeepDiff();
|
|
1343
|
-
var levenshtein$1 = { exports: {} };
|
|
1344
|
-
const peq = new Uint32Array(65536);
|
|
1345
|
-
const myers_32 = (a, b) => {
|
|
1346
|
-
const n = a.length;
|
|
1347
|
-
const m = b.length;
|
|
1348
|
-
const lst = 1 << n - 1;
|
|
1349
|
-
let pv = -1;
|
|
1350
|
-
let mv = 0;
|
|
1351
|
-
let sc = n;
|
|
1352
|
-
let i = n;
|
|
1353
|
-
while (i--) {
|
|
1354
|
-
peq[a.charCodeAt(i)] |= 1 << i;
|
|
1355
|
-
}
|
|
1356
|
-
for (i = 0; i < m; i++) {
|
|
1357
|
-
let eq = peq[b.charCodeAt(i)];
|
|
1358
|
-
const xv = eq | mv;
|
|
1359
|
-
eq |= (eq & pv) + pv ^ pv;
|
|
1360
|
-
mv |= ~(eq | pv);
|
|
1361
|
-
pv &= eq;
|
|
1362
|
-
if (mv & lst) {
|
|
1363
|
-
sc++;
|
|
1364
|
-
}
|
|
1365
|
-
if (pv & lst) {
|
|
1366
|
-
sc--;
|
|
1367
|
-
}
|
|
1368
|
-
mv = mv << 1 | 1;
|
|
1369
|
-
pv = pv << 1 | ~(xv | mv);
|
|
1370
|
-
mv &= xv;
|
|
1371
|
-
}
|
|
1372
|
-
i = n;
|
|
1373
|
-
while (i--) {
|
|
1374
|
-
peq[a.charCodeAt(i)] = 0;
|
|
1375
|
-
}
|
|
1376
|
-
return sc;
|
|
1377
|
-
};
|
|
1378
|
-
const myers_x = (b, a) => {
|
|
1379
|
-
const n = a.length;
|
|
1380
|
-
const m = b.length;
|
|
1381
|
-
const mhc = [];
|
|
1382
|
-
const phc = [];
|
|
1383
|
-
const hsize = Math.ceil(n / 32);
|
|
1384
|
-
const vsize = Math.ceil(m / 32);
|
|
1385
|
-
for (let i = 0; i < hsize; i++) {
|
|
1386
|
-
phc[i] = -1;
|
|
1387
|
-
mhc[i] = 0;
|
|
1388
|
-
}
|
|
1389
|
-
let j = 0;
|
|
1390
|
-
for (; j < vsize - 1; j++) {
|
|
1391
|
-
let mv2 = 0;
|
|
1392
|
-
let pv2 = -1;
|
|
1393
|
-
const start2 = j * 32;
|
|
1394
|
-
const vlen2 = Math.min(32, m) + start2;
|
|
1395
|
-
for (let k = start2; k < vlen2; k++) {
|
|
1396
|
-
peq[b.charCodeAt(k)] |= 1 << k;
|
|
1397
|
-
}
|
|
1398
|
-
for (let i = 0; i < n; i++) {
|
|
1399
|
-
const eq = peq[a.charCodeAt(i)];
|
|
1400
|
-
const pb = phc[i / 32 | 0] >>> i & 1;
|
|
1401
|
-
const mb = mhc[i / 32 | 0] >>> i & 1;
|
|
1402
|
-
const xv = eq | mv2;
|
|
1403
|
-
const xh = ((eq | mb) & pv2) + pv2 ^ pv2 | eq | mb;
|
|
1404
|
-
let ph = mv2 | ~(xh | pv2);
|
|
1405
|
-
let mh = pv2 & xh;
|
|
1406
|
-
if (ph >>> 31 ^ pb) {
|
|
1407
|
-
phc[i / 32 | 0] ^= 1 << i;
|
|
1408
|
-
}
|
|
1409
|
-
if (mh >>> 31 ^ mb) {
|
|
1410
|
-
mhc[i / 32 | 0] ^= 1 << i;
|
|
1411
|
-
}
|
|
1412
|
-
ph = ph << 1 | pb;
|
|
1413
|
-
mh = mh << 1 | mb;
|
|
1414
|
-
pv2 = mh | ~(xv | ph);
|
|
1415
|
-
mv2 = ph & xv;
|
|
1416
|
-
}
|
|
1417
|
-
for (let k = start2; k < vlen2; k++) {
|
|
1418
|
-
peq[b.charCodeAt(k)] = 0;
|
|
1419
|
-
}
|
|
1420
|
-
}
|
|
1421
|
-
let mv = 0;
|
|
1422
|
-
let pv = -1;
|
|
1423
|
-
const start = j * 32;
|
|
1424
|
-
const vlen = Math.min(32, m - start) + start;
|
|
1425
|
-
for (let k = start; k < vlen; k++) {
|
|
1426
|
-
peq[b.charCodeAt(k)] |= 1 << k;
|
|
1427
|
-
}
|
|
1428
|
-
let score = m;
|
|
1429
|
-
for (let i = 0; i < n; i++) {
|
|
1430
|
-
const eq = peq[a.charCodeAt(i)];
|
|
1431
|
-
const pb = phc[i / 32 | 0] >>> i & 1;
|
|
1432
|
-
const mb = mhc[i / 32 | 0] >>> i & 1;
|
|
1433
|
-
const xv = eq | mv;
|
|
1434
|
-
const xh = ((eq | mb) & pv) + pv ^ pv | eq | mb;
|
|
1435
|
-
let ph = mv | ~(xh | pv);
|
|
1436
|
-
let mh = pv & xh;
|
|
1437
|
-
score += ph >>> m - 1 & 1;
|
|
1438
|
-
score -= mh >>> m - 1 & 1;
|
|
1439
|
-
if (ph >>> 31 ^ pb) {
|
|
1440
|
-
phc[i / 32 | 0] ^= 1 << i;
|
|
1441
|
-
}
|
|
1442
|
-
if (mh >>> 31 ^ mb) {
|
|
1443
|
-
mhc[i / 32 | 0] ^= 1 << i;
|
|
1444
|
-
}
|
|
1445
|
-
ph = ph << 1 | pb;
|
|
1446
|
-
mh = mh << 1 | mb;
|
|
1447
|
-
pv = mh | ~(xv | ph);
|
|
1448
|
-
mv = ph & xv;
|
|
1449
|
-
}
|
|
1450
|
-
for (let k = start; k < vlen; k++) {
|
|
1451
|
-
peq[b.charCodeAt(k)] = 0;
|
|
1452
|
-
}
|
|
1453
|
-
return score;
|
|
1454
|
-
};
|
|
1455
|
-
const distance = (a, b) => {
|
|
1456
|
-
if (a.length < b.length) {
|
|
1457
|
-
const tmp = b;
|
|
1458
|
-
b = a;
|
|
1459
|
-
a = tmp;
|
|
1460
|
-
}
|
|
1461
|
-
if (b.length === 0) {
|
|
1462
|
-
return a.length;
|
|
1463
|
-
}
|
|
1464
|
-
if (a.length <= 32) {
|
|
1465
|
-
return myers_32(a, b);
|
|
1466
|
-
}
|
|
1467
|
-
return myers_x(a, b);
|
|
1468
|
-
};
|
|
1469
|
-
const closest = (str, arr) => {
|
|
1470
|
-
let min_distance = Infinity;
|
|
1471
|
-
let min_index = 0;
|
|
1472
|
-
for (let i = 0; i < arr.length; i++) {
|
|
1473
|
-
const dist = distance(str, arr[i]);
|
|
1474
|
-
if (dist < min_distance) {
|
|
1475
|
-
min_distance = dist;
|
|
1476
|
-
min_index = i;
|
|
1477
|
-
}
|
|
1478
|
-
}
|
|
1479
|
-
return arr[min_index];
|
|
1480
|
-
};
|
|
1481
|
-
const mod = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1482
|
-
__proto__: null,
|
|
1483
|
-
closest,
|
|
1484
|
-
distance
|
|
1485
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
1486
|
-
const require$$0 = /* @__PURE__ */ getAugmentedNamespace(mod);
|
|
1487
|
-
var hasRequiredLevenshtein;
|
|
1488
|
-
function requireLevenshtein() {
|
|
1489
|
-
if (hasRequiredLevenshtein) return levenshtein$1.exports;
|
|
1490
|
-
hasRequiredLevenshtein = 1;
|
|
1491
|
-
(function(module2, exports3) {
|
|
1492
|
-
(function() {
|
|
1493
|
-
var collator;
|
|
1494
|
-
try {
|
|
1495
|
-
collator = typeof Intl !== "undefined" && typeof Intl.Collator !== "undefined" ? Intl.Collator("generic", { sensitivity: "base" }) : null;
|
|
1496
|
-
} catch (err) {
|
|
1497
|
-
console.log("Collator could not be initialized and wouldn't be used");
|
|
1498
|
-
}
|
|
1499
|
-
var levenshtein2 = require$$0;
|
|
1500
|
-
var prevRow = [], str2Char = [];
|
|
1501
|
-
var Levenshtein = {
|
|
1502
|
-
/**
|
|
1503
|
-
* Calculate levenshtein distance of the two strings.
|
|
1504
|
-
*
|
|
1505
|
-
* @param str1 String the first string.
|
|
1506
|
-
* @param str2 String the second string.
|
|
1507
|
-
* @param [options] Additional options.
|
|
1508
|
-
* @param [options.useCollator] Use `Intl.Collator` for locale-sensitive string comparison.
|
|
1509
|
-
* @return Integer the levenshtein distance (0 and above).
|
|
1510
|
-
*/
|
|
1511
|
-
get: function(str1, str2, options) {
|
|
1512
|
-
var useCollator = options && collator && options.useCollator;
|
|
1513
|
-
if (useCollator) {
|
|
1514
|
-
var str1Len = str1.length, str2Len = str2.length;
|
|
1515
|
-
if (str1Len === 0) return str2Len;
|
|
1516
|
-
if (str2Len === 0) return str1Len;
|
|
1517
|
-
var curCol, nextCol, i, j, tmp;
|
|
1518
|
-
for (i = 0; i < str2Len; ++i) {
|
|
1519
|
-
prevRow[i] = i;
|
|
1520
|
-
str2Char[i] = str2.charCodeAt(i);
|
|
1521
|
-
}
|
|
1522
|
-
prevRow[str2Len] = str2Len;
|
|
1523
|
-
var strCmp;
|
|
1524
|
-
for (i = 0; i < str1Len; ++i) {
|
|
1525
|
-
nextCol = i + 1;
|
|
1526
|
-
for (j = 0; j < str2Len; ++j) {
|
|
1527
|
-
curCol = nextCol;
|
|
1528
|
-
strCmp = 0 === collator.compare(str1.charAt(i), String.fromCharCode(str2Char[j]));
|
|
1529
|
-
nextCol = prevRow[j] + (strCmp ? 0 : 1);
|
|
1530
|
-
tmp = curCol + 1;
|
|
1531
|
-
if (nextCol > tmp) {
|
|
1532
|
-
nextCol = tmp;
|
|
1533
|
-
}
|
|
1534
|
-
tmp = prevRow[j + 1] + 1;
|
|
1535
|
-
if (nextCol > tmp) {
|
|
1536
|
-
nextCol = tmp;
|
|
1537
|
-
}
|
|
1538
|
-
prevRow[j] = curCol;
|
|
1539
|
-
}
|
|
1540
|
-
prevRow[j] = nextCol;
|
|
1541
|
-
}
|
|
1542
|
-
return nextCol;
|
|
1543
|
-
}
|
|
1544
|
-
return levenshtein2.distance(str1, str2);
|
|
1545
|
-
}
|
|
1546
|
-
};
|
|
1547
|
-
if (module2 !== null && true && module2.exports === exports3) {
|
|
1548
|
-
module2.exports = Levenshtein;
|
|
1549
|
-
} else if (typeof self !== "undefined" && typeof self.postMessage === "function" && typeof self.importScripts === "function") {
|
|
1550
|
-
self.Levenshtein = Levenshtein;
|
|
1551
|
-
} else if (typeof window !== "undefined" && window !== null) {
|
|
1552
|
-
window.Levenshtein = Levenshtein;
|
|
1553
|
-
}
|
|
1554
|
-
})();
|
|
1555
|
-
})(levenshtein$1, levenshtein$1.exports);
|
|
1556
|
-
return levenshtein$1.exports;
|
|
1557
|
-
}
|
|
1558
|
-
var levenshteinExports = requireLevenshtein();
|
|
1559
|
-
const levenshtein = /* @__PURE__ */ getDefaultExportFromCjs(levenshteinExports);
|
|
1560
1362
|
class Diff {
|
|
1561
1363
|
diff(oldStr, newStr, options = {}) {
|
|
1562
1364
|
let callback;
|
|
@@ -1966,6 +1768,223 @@
|
|
|
1966
1768
|
}
|
|
1967
1769
|
return result;
|
|
1968
1770
|
}
|
|
1771
|
+
var levenshtein$1 = { exports: {} };
|
|
1772
|
+
const peq = new Uint32Array(65536);
|
|
1773
|
+
const myers_32 = (a, b) => {
|
|
1774
|
+
const n = a.length;
|
|
1775
|
+
const m = b.length;
|
|
1776
|
+
const lst = 1 << n - 1;
|
|
1777
|
+
let pv = -1;
|
|
1778
|
+
let mv = 0;
|
|
1779
|
+
let sc = n;
|
|
1780
|
+
let i = n;
|
|
1781
|
+
while (i--) {
|
|
1782
|
+
peq[a.charCodeAt(i)] |= 1 << i;
|
|
1783
|
+
}
|
|
1784
|
+
for (i = 0; i < m; i++) {
|
|
1785
|
+
let eq = peq[b.charCodeAt(i)];
|
|
1786
|
+
const xv = eq | mv;
|
|
1787
|
+
eq |= (eq & pv) + pv ^ pv;
|
|
1788
|
+
mv |= ~(eq | pv);
|
|
1789
|
+
pv &= eq;
|
|
1790
|
+
if (mv & lst) {
|
|
1791
|
+
sc++;
|
|
1792
|
+
}
|
|
1793
|
+
if (pv & lst) {
|
|
1794
|
+
sc--;
|
|
1795
|
+
}
|
|
1796
|
+
mv = mv << 1 | 1;
|
|
1797
|
+
pv = pv << 1 | ~(xv | mv);
|
|
1798
|
+
mv &= xv;
|
|
1799
|
+
}
|
|
1800
|
+
i = n;
|
|
1801
|
+
while (i--) {
|
|
1802
|
+
peq[a.charCodeAt(i)] = 0;
|
|
1803
|
+
}
|
|
1804
|
+
return sc;
|
|
1805
|
+
};
|
|
1806
|
+
const myers_x = (b, a) => {
|
|
1807
|
+
const n = a.length;
|
|
1808
|
+
const m = b.length;
|
|
1809
|
+
const mhc = [];
|
|
1810
|
+
const phc = [];
|
|
1811
|
+
const hsize = Math.ceil(n / 32);
|
|
1812
|
+
const vsize = Math.ceil(m / 32);
|
|
1813
|
+
for (let i = 0; i < hsize; i++) {
|
|
1814
|
+
phc[i] = -1;
|
|
1815
|
+
mhc[i] = 0;
|
|
1816
|
+
}
|
|
1817
|
+
let j = 0;
|
|
1818
|
+
for (; j < vsize - 1; j++) {
|
|
1819
|
+
let mv2 = 0;
|
|
1820
|
+
let pv2 = -1;
|
|
1821
|
+
const start2 = j * 32;
|
|
1822
|
+
const vlen2 = Math.min(32, m) + start2;
|
|
1823
|
+
for (let k = start2; k < vlen2; k++) {
|
|
1824
|
+
peq[b.charCodeAt(k)] |= 1 << k;
|
|
1825
|
+
}
|
|
1826
|
+
for (let i = 0; i < n; i++) {
|
|
1827
|
+
const eq = peq[a.charCodeAt(i)];
|
|
1828
|
+
const pb = phc[i / 32 | 0] >>> i & 1;
|
|
1829
|
+
const mb = mhc[i / 32 | 0] >>> i & 1;
|
|
1830
|
+
const xv = eq | mv2;
|
|
1831
|
+
const xh = ((eq | mb) & pv2) + pv2 ^ pv2 | eq | mb;
|
|
1832
|
+
let ph = mv2 | ~(xh | pv2);
|
|
1833
|
+
let mh = pv2 & xh;
|
|
1834
|
+
if (ph >>> 31 ^ pb) {
|
|
1835
|
+
phc[i / 32 | 0] ^= 1 << i;
|
|
1836
|
+
}
|
|
1837
|
+
if (mh >>> 31 ^ mb) {
|
|
1838
|
+
mhc[i / 32 | 0] ^= 1 << i;
|
|
1839
|
+
}
|
|
1840
|
+
ph = ph << 1 | pb;
|
|
1841
|
+
mh = mh << 1 | mb;
|
|
1842
|
+
pv2 = mh | ~(xv | ph);
|
|
1843
|
+
mv2 = ph & xv;
|
|
1844
|
+
}
|
|
1845
|
+
for (let k = start2; k < vlen2; k++) {
|
|
1846
|
+
peq[b.charCodeAt(k)] = 0;
|
|
1847
|
+
}
|
|
1848
|
+
}
|
|
1849
|
+
let mv = 0;
|
|
1850
|
+
let pv = -1;
|
|
1851
|
+
const start = j * 32;
|
|
1852
|
+
const vlen = Math.min(32, m - start) + start;
|
|
1853
|
+
for (let k = start; k < vlen; k++) {
|
|
1854
|
+
peq[b.charCodeAt(k)] |= 1 << k;
|
|
1855
|
+
}
|
|
1856
|
+
let score = m;
|
|
1857
|
+
for (let i = 0; i < n; i++) {
|
|
1858
|
+
const eq = peq[a.charCodeAt(i)];
|
|
1859
|
+
const pb = phc[i / 32 | 0] >>> i & 1;
|
|
1860
|
+
const mb = mhc[i / 32 | 0] >>> i & 1;
|
|
1861
|
+
const xv = eq | mv;
|
|
1862
|
+
const xh = ((eq | mb) & pv) + pv ^ pv | eq | mb;
|
|
1863
|
+
let ph = mv | ~(xh | pv);
|
|
1864
|
+
let mh = pv & xh;
|
|
1865
|
+
score += ph >>> m - 1 & 1;
|
|
1866
|
+
score -= mh >>> m - 1 & 1;
|
|
1867
|
+
if (ph >>> 31 ^ pb) {
|
|
1868
|
+
phc[i / 32 | 0] ^= 1 << i;
|
|
1869
|
+
}
|
|
1870
|
+
if (mh >>> 31 ^ mb) {
|
|
1871
|
+
mhc[i / 32 | 0] ^= 1 << i;
|
|
1872
|
+
}
|
|
1873
|
+
ph = ph << 1 | pb;
|
|
1874
|
+
mh = mh << 1 | mb;
|
|
1875
|
+
pv = mh | ~(xv | ph);
|
|
1876
|
+
mv = ph & xv;
|
|
1877
|
+
}
|
|
1878
|
+
for (let k = start; k < vlen; k++) {
|
|
1879
|
+
peq[b.charCodeAt(k)] = 0;
|
|
1880
|
+
}
|
|
1881
|
+
return score;
|
|
1882
|
+
};
|
|
1883
|
+
const distance = (a, b) => {
|
|
1884
|
+
if (a.length < b.length) {
|
|
1885
|
+
const tmp = b;
|
|
1886
|
+
b = a;
|
|
1887
|
+
a = tmp;
|
|
1888
|
+
}
|
|
1889
|
+
if (b.length === 0) {
|
|
1890
|
+
return a.length;
|
|
1891
|
+
}
|
|
1892
|
+
if (a.length <= 32) {
|
|
1893
|
+
return myers_32(a, b);
|
|
1894
|
+
}
|
|
1895
|
+
return myers_x(a, b);
|
|
1896
|
+
};
|
|
1897
|
+
const closest = (str, arr) => {
|
|
1898
|
+
let min_distance = Infinity;
|
|
1899
|
+
let min_index = 0;
|
|
1900
|
+
for (let i = 0; i < arr.length; i++) {
|
|
1901
|
+
const dist = distance(str, arr[i]);
|
|
1902
|
+
if (dist < min_distance) {
|
|
1903
|
+
min_distance = dist;
|
|
1904
|
+
min_index = i;
|
|
1905
|
+
}
|
|
1906
|
+
}
|
|
1907
|
+
return arr[min_index];
|
|
1908
|
+
};
|
|
1909
|
+
const mod = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1910
|
+
__proto__: null,
|
|
1911
|
+
closest,
|
|
1912
|
+
distance
|
|
1913
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
1914
|
+
const require$$0 = /* @__PURE__ */ getAugmentedNamespace(mod);
|
|
1915
|
+
var hasRequiredLevenshtein;
|
|
1916
|
+
function requireLevenshtein() {
|
|
1917
|
+
if (hasRequiredLevenshtein) return levenshtein$1.exports;
|
|
1918
|
+
hasRequiredLevenshtein = 1;
|
|
1919
|
+
(function(module2, exports3) {
|
|
1920
|
+
(function() {
|
|
1921
|
+
var collator;
|
|
1922
|
+
try {
|
|
1923
|
+
collator = typeof Intl !== "undefined" && typeof Intl.Collator !== "undefined" ? Intl.Collator("generic", { sensitivity: "base" }) : null;
|
|
1924
|
+
} catch (err) {
|
|
1925
|
+
console.log("Collator could not be initialized and wouldn't be used");
|
|
1926
|
+
}
|
|
1927
|
+
var levenshtein2 = require$$0;
|
|
1928
|
+
var prevRow = [], str2Char = [];
|
|
1929
|
+
var Levenshtein = {
|
|
1930
|
+
/**
|
|
1931
|
+
* Calculate levenshtein distance of the two strings.
|
|
1932
|
+
*
|
|
1933
|
+
* @param str1 String the first string.
|
|
1934
|
+
* @param str2 String the second string.
|
|
1935
|
+
* @param [options] Additional options.
|
|
1936
|
+
* @param [options.useCollator] Use `Intl.Collator` for locale-sensitive string comparison.
|
|
1937
|
+
* @return Integer the levenshtein distance (0 and above).
|
|
1938
|
+
*/
|
|
1939
|
+
get: function(str1, str2, options) {
|
|
1940
|
+
var useCollator = options && collator && options.useCollator;
|
|
1941
|
+
if (useCollator) {
|
|
1942
|
+
var str1Len = str1.length, str2Len = str2.length;
|
|
1943
|
+
if (str1Len === 0) return str2Len;
|
|
1944
|
+
if (str2Len === 0) return str1Len;
|
|
1945
|
+
var curCol, nextCol, i, j, tmp;
|
|
1946
|
+
for (i = 0; i < str2Len; ++i) {
|
|
1947
|
+
prevRow[i] = i;
|
|
1948
|
+
str2Char[i] = str2.charCodeAt(i);
|
|
1949
|
+
}
|
|
1950
|
+
prevRow[str2Len] = str2Len;
|
|
1951
|
+
var strCmp;
|
|
1952
|
+
for (i = 0; i < str1Len; ++i) {
|
|
1953
|
+
nextCol = i + 1;
|
|
1954
|
+
for (j = 0; j < str2Len; ++j) {
|
|
1955
|
+
curCol = nextCol;
|
|
1956
|
+
strCmp = 0 === collator.compare(str1.charAt(i), String.fromCharCode(str2Char[j]));
|
|
1957
|
+
nextCol = prevRow[j] + (strCmp ? 0 : 1);
|
|
1958
|
+
tmp = curCol + 1;
|
|
1959
|
+
if (nextCol > tmp) {
|
|
1960
|
+
nextCol = tmp;
|
|
1961
|
+
}
|
|
1962
|
+
tmp = prevRow[j + 1] + 1;
|
|
1963
|
+
if (nextCol > tmp) {
|
|
1964
|
+
nextCol = tmp;
|
|
1965
|
+
}
|
|
1966
|
+
prevRow[j] = curCol;
|
|
1967
|
+
}
|
|
1968
|
+
prevRow[j] = nextCol;
|
|
1969
|
+
}
|
|
1970
|
+
return nextCol;
|
|
1971
|
+
}
|
|
1972
|
+
return levenshtein2.distance(str1, str2);
|
|
1973
|
+
}
|
|
1974
|
+
};
|
|
1975
|
+
if (module2 !== null && true && module2.exports === exports3) {
|
|
1976
|
+
module2.exports = Levenshtein;
|
|
1977
|
+
} else if (typeof self !== "undefined" && typeof self.postMessage === "function" && typeof self.importScripts === "function") {
|
|
1978
|
+
self.Levenshtein = Levenshtein;
|
|
1979
|
+
} else if (typeof window !== "undefined" && window !== null) {
|
|
1980
|
+
window.Levenshtein = Levenshtein;
|
|
1981
|
+
}
|
|
1982
|
+
})();
|
|
1983
|
+
})(levenshtein$1, levenshtein$1.exports);
|
|
1984
|
+
return levenshtein$1.exports;
|
|
1985
|
+
}
|
|
1986
|
+
var levenshteinExports = requireLevenshtein();
|
|
1987
|
+
const levenshtein = /* @__PURE__ */ getDefaultExportFromCjs(levenshteinExports);
|
|
1969
1988
|
function formatDiff(oldValue, newValue, diffType = "git", context = 1) {
|
|
1970
1989
|
switch (diffType) {
|
|
1971
1990
|
case "git":
|
|
@@ -2142,25 +2161,17 @@
|
|
|
2142
2161
|
(startState, endState, triggerName) => {
|
|
2143
2162
|
const diffPercentage = calculateDiffPercentage(startState, endState);
|
|
2144
2163
|
const diffString = formatDiff(startState, endState, diffType);
|
|
2145
|
-
|
|
2146
|
-
if (options?.vote) {
|
|
2147
|
-
if (typeof options.vote === "function") {
|
|
2148
|
-
vote = options.vote(startState, endState, diffPercentage);
|
|
2149
|
-
} else {
|
|
2150
|
-
vote = options.vote;
|
|
2151
|
-
}
|
|
2152
|
-
} else {
|
|
2153
|
-
vote = diffPercentage > 0.5 ? "downvote" : "upvote";
|
|
2154
|
-
}
|
|
2164
|
+
const score = typeof options?.score === "function" ? options.score(startState, endState, diffPercentage) : options?.score ?? (diffPercentage > 0.5 ? 0 : 1);
|
|
2155
2165
|
const idString = typeof session_id === "function" ? session_id(endState) : session_id;
|
|
2156
2166
|
feedbackHandler({
|
|
2157
2167
|
session_id: idString,
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2168
|
+
kind: "edit",
|
|
2169
|
+
source: "human",
|
|
2170
|
+
trigger_name: triggerName,
|
|
2171
|
+
score,
|
|
2172
|
+
value: diffString,
|
|
2173
|
+
confidence: diffPercentage,
|
|
2174
|
+
metadata: options?.metadata
|
|
2164
2175
|
});
|
|
2165
2176
|
},
|
|
2166
2177
|
[options, session_id, diffType, feedbackHandler]
|