@fjell/core 4.4.6 → 4.4.7
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/dist/cjs/index.js +5 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/item/IQUtils.js +20 -1
- package/dist/cjs/item/IQUtils.js.map +1 -1
- package/dist/cjs/key/KUtils.js +100 -1
- package/dist/cjs/key/KUtils.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/item/IQUtils.js +2 -2
- package/dist/esm/item/IQUtils.js.map +1 -1
- package/dist/esm/key/KUtils.js +96 -2
- package/dist/esm/key/KUtils.js.map +1 -1
- package/dist/index.cjs +120 -2
- package/dist/index.cjs.map +1 -1
- package/dist/key/KUtils.d.ts +7 -2
- package/dist/keys.d.ts +3 -3
- package/package.json +9 -9
- package/src/item/IQUtils.ts +3 -3
- package/src/key/KUtils.ts +114 -6
- package/src/keys.ts +3 -3
package/dist/esm/key/KUtils.js
CHANGED
|
@@ -1,6 +1,100 @@
|
|
|
1
1
|
import LibLogger from '../logger.js';
|
|
2
2
|
|
|
3
3
|
const logger = LibLogger.get('KUtils');
|
|
4
|
+
// Normalize a key value to string for consistent comparison and hashing
|
|
5
|
+
const normalizeKeyValue = (value)=>{
|
|
6
|
+
return String(value);
|
|
7
|
+
};
|
|
8
|
+
// Normalized hash function for Dictionary that converts pk/lk values to strings
|
|
9
|
+
const createNormalizedHashFunction = ()=>{
|
|
10
|
+
return (key)=>{
|
|
11
|
+
if (typeof key === 'object' && key !== null) {
|
|
12
|
+
// Create a normalized version of the key with string values
|
|
13
|
+
const normalizedKey = JSON.parse(JSON.stringify(key));
|
|
14
|
+
// Normalize pk values
|
|
15
|
+
if ('pk' in normalizedKey && normalizedKey.pk !== undefined && normalizedKey.pk !== null) {
|
|
16
|
+
normalizedKey.pk = normalizeKeyValue(normalizedKey.pk);
|
|
17
|
+
}
|
|
18
|
+
// Normalize lk values
|
|
19
|
+
if ('lk' in normalizedKey && normalizedKey.lk !== undefined && normalizedKey.lk !== null) {
|
|
20
|
+
normalizedKey.lk = normalizeKeyValue(normalizedKey.lk);
|
|
21
|
+
}
|
|
22
|
+
// Normalize loc array lk values
|
|
23
|
+
if ('loc' in normalizedKey && Array.isArray(normalizedKey.loc)) {
|
|
24
|
+
normalizedKey.loc = normalizedKey.loc.map((locItem)=>{
|
|
25
|
+
if (locItem && 'lk' in locItem && locItem.lk !== undefined && locItem.lk !== null) {
|
|
26
|
+
return {
|
|
27
|
+
...locItem,
|
|
28
|
+
lk: normalizeKeyValue(locItem.lk)
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
return locItem;
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return JSON.stringify(normalizedKey);
|
|
35
|
+
}
|
|
36
|
+
return JSON.stringify(key);
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
// Normalized comparison functions
|
|
40
|
+
const isPriKeyEqualNormalized = (a, b)=>{
|
|
41
|
+
logger.trace('isPriKeyEqualNormalized', {
|
|
42
|
+
a,
|
|
43
|
+
b
|
|
44
|
+
});
|
|
45
|
+
return a && b && normalizeKeyValue(a.pk) === normalizeKeyValue(b.pk) && a.kt === b.kt;
|
|
46
|
+
};
|
|
47
|
+
const isLocKeyEqualNormalized = (a, b)=>{
|
|
48
|
+
logger.trace('isLocKeyEqualNormalized', {
|
|
49
|
+
a,
|
|
50
|
+
b
|
|
51
|
+
});
|
|
52
|
+
return a && b && normalizeKeyValue(a.lk) === normalizeKeyValue(b.lk) && a.kt === b.kt;
|
|
53
|
+
};
|
|
54
|
+
const isComKeyEqualNormalized = (a, b)=>{
|
|
55
|
+
logger.trace('isComKeyEqualNormalized', {
|
|
56
|
+
a,
|
|
57
|
+
b
|
|
58
|
+
});
|
|
59
|
+
if (a && b && isPriKeyEqualNormalized({
|
|
60
|
+
kt: a.kt,
|
|
61
|
+
pk: a.pk
|
|
62
|
+
}, {
|
|
63
|
+
kt: b.kt,
|
|
64
|
+
pk: b.pk
|
|
65
|
+
})) {
|
|
66
|
+
if (a.loc.length === b.loc.length) {
|
|
67
|
+
for(let i = 0; i < a.loc.length; i++){
|
|
68
|
+
if (!isLocKeyEqualNormalized(a.loc[i], b.loc[i])) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return true;
|
|
73
|
+
} else {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
} else {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
const isItemKeyEqualNormalized = (a, b)=>{
|
|
81
|
+
logger.trace('isItemKeyEqualNormalized', {
|
|
82
|
+
a,
|
|
83
|
+
b
|
|
84
|
+
});
|
|
85
|
+
if (isComKey(a) && isComKey(b)) {
|
|
86
|
+
return isComKeyEqualNormalized(a, b);
|
|
87
|
+
} else if (isPriKey(a) && isPriKey(b)) {
|
|
88
|
+
if (isComKey(a) || isComKey(b)) {
|
|
89
|
+
return false;
|
|
90
|
+
} else {
|
|
91
|
+
return isPriKeyEqualNormalized(a, b);
|
|
92
|
+
}
|
|
93
|
+
} else {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
// Original comparison functions (kept for backward compatibility)
|
|
4
98
|
const isItemKeyEqual = (a, b)=>{
|
|
5
99
|
logger.trace('isKeyEqual', {
|
|
6
100
|
a,
|
|
@@ -119,7 +213,7 @@ const constructPriKey = (pk, kt)=>{
|
|
|
119
213
|
kt
|
|
120
214
|
});
|
|
121
215
|
let pri;
|
|
122
|
-
if (typeof pk === 'string') {
|
|
216
|
+
if (typeof pk === 'string' || typeof pk === 'number') {
|
|
123
217
|
pri = {
|
|
124
218
|
kt: kt,
|
|
125
219
|
pk: pk
|
|
@@ -267,5 +361,5 @@ const isValidItemKey = (key)=>{
|
|
|
267
361
|
};
|
|
268
362
|
const lkaToIK = locKeyArrayToItemKey;
|
|
269
363
|
|
|
270
|
-
export { abbrevIK, abbrevLKA, cPK, constructPriKey, generateKeyArray, ikToLKA, isComKey, isComKeyEqual, isItemKey, isItemKeyEqual, isLocKey, isLocKeyEqual, isPriKey, isPriKeyEqual, isValidComKey, isValidItemKey, isValidLocKey, isValidLocKeyArray, isValidPriKey, itemKeyToLocKeyArray, lkaToIK, locKeyArrayToItemKey, primaryType, toKeyTypeArray };
|
|
364
|
+
export { abbrevIK, abbrevLKA, cPK, constructPriKey, createNormalizedHashFunction, generateKeyArray, ikToLKA, isComKey, isComKeyEqual, isComKeyEqualNormalized, isItemKey, isItemKeyEqual, isItemKeyEqualNormalized, isLocKey, isLocKeyEqual, isLocKeyEqualNormalized, isPriKey, isPriKeyEqual, isPriKeyEqualNormalized, isValidComKey, isValidItemKey, isValidLocKey, isValidLocKeyArray, isValidPriKey, itemKeyToLocKeyArray, lkaToIK, locKeyArrayToItemKey, primaryType, toKeyTypeArray };
|
|
271
365
|
//# sourceMappingURL=KUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KUtils.js","sources":["../../../src/key/KUtils.ts"],"sourcesContent":["/* eslint-disable no-undefined */\nimport {\n ComKey,\n LocKey,\n LocKeyArray,\n PriKey,\n UUID\n} from \"@/keys\";\n\nimport LibLogger from \"@/logger\";\n\nconst logger = LibLogger.get('KUtils');\n\nexport const isItemKeyEqual = <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(a: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, b: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): boolean => {\n logger.trace('isKeyEqual', { a, b });\n if (isComKey(a) && isComKey(b)) {\n return isComKeyEqual(a as ComKey<S, L1, L2, L3, L4, L5>, b as ComKey<S, L1, L2, L3, L4, L5>);\n } else if (isPriKey(a) && isPriKey(b)) {\n if (isComKey(a) || isComKey(b)) {\n return false;\n } else {\n return isPriKeyEqual(a as PriKey<S>, b as PriKey<S>);\n }\n } else {\n return false;\n }\n}\n\nexport const isPriKeyEqual = <\n S extends string,\n>(a: PriKey<S>, b: PriKey<S>): boolean => {\n logger.trace('isPriKeyEqual', { a, b });\n return a && b && a.pk === b.pk && a.kt === b.kt;\n}\n\nexport const isLocKeyEqual = <\n L1 extends string,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(a: LocKey<L1 | L2 | L3 | L4 | L5>, b: LocKey<L1 | L2 | L3 | L4 | L5>): boolean => {\n logger.trace('isLocKeyEqual', { a, b });\n return a && b && a.lk === b.lk && a.kt === b.kt;\n}\n\nexport const isComKeyEqual = <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(a: ComKey<S, L1, L2, L3, L4, L5>, b: ComKey<S, L1, L2, L3, L4, L5>): boolean => {\n logger.trace('isComKeyEqual', { a, b });\n if (a && b && isPriKeyEqual({ kt: a.kt, pk: a.pk } as PriKey<S>, { kt: b.kt, pk: b.pk } as PriKey<S>)) {\n if (a.loc.length === b.loc.length) {\n for (let i = 0; i < a.loc.length; i++) {\n if (!isLocKeyEqual<L1, L2, L3, L4, L5>(a.loc[i], b.loc[i])) {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n}\n\nexport const isItemKey = (key: any): boolean => {\n logger.trace('isItemKey', { key });\n return key !== undefined && (isComKey(key) || isPriKey(key));\n}\n\nexport const isComKey = (key: any): boolean => {\n logger.trace('isComKey', { key });\n return key !== undefined &&\n (key.pk !== undefined && key.kt !== undefined) && (key.loc !== undefined && key.loc.length > 0);\n}\n\nexport const isPriKey = (key: any): boolean => {\n logger.trace('isPriKey', { key });\n return key !== undefined &&\n (key.pk !== undefined && key.kt !== undefined) && (key.loc === undefined || key.loc.length === 0);\n}\n\nexport const isLocKey = (key: any): boolean => {\n logger.trace('isLocKey', { key });\n return key !== undefined && (key.lk !== undefined && key.kt !== undefined);\n}\n\nexport const generateKeyArray = <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never,\n>(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S> | LocKeyArray<L1, L2, L3, L4, L5> | []):\n Array<PriKey<S> | LocKey<L1 | L2 | L3 | L4 | L5>> => {\n logger.trace('generateKeyArray', { key });\n const keys: Array<PriKey<S> | LocKey<L1 | L2 | L3 | L4 | L5>> = [];\n\n if (isComKey(key) || isPriKey(key)) {\n // console.log('it is an item key');\n if (isComKey(key)) {\n // console.log('it is a composite key');\n const comKey = key as ComKey<S, L1, L2, L3, L4, L5>;\n keys.push({ pk: comKey.pk, kt: comKey.kt });\n for (let i = 0; i < comKey.loc.length; i++) {\n keys.push(comKey.loc[i]);\n }\n } else {\n keys.push(key as PriKey<S>);\n }\n } else {\n // console.log('is is an array, length: ' + key.length);\n const locKeys = key as LocKey<L1 | L2 | L3 | L4 | L5>[];\n for (let i = 0; i < locKeys.length; i++) {\n // console.log('Pushing a key');\n keys.push(locKeys[i]);\n }\n }\n return keys;\n}\n\n// TODO: Exactly the same as in ContainedItemLib\nexport const constructPriKey = <S extends string>(\n pk: string | PriKey<S>,\n kt: S,\n) => {\n logger.trace('constructPriKey', { pk, kt });\n let pri: PriKey<S>;\n if (typeof pk === 'string') {\n pri = { kt: kt as S, pk: pk as UUID };\n } else {\n pri = pk;\n }\n return pri;\n}\n\n// TODO: Exactly the same as in ContainedItemLib\nexport const cPK = constructPriKey;\n\nexport const toKeyTypeArray = <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(ik: PriKey<S> | ComKey<S, L1, L2, L3, L4, L5>):\n string[] => {\n logger.trace('toKeyTypeArray', { ik });\n if (isComKey(ik)) {\n const ck = ik as ComKey<S, L1, L2, L3, L4, L5>;\n return [ck.kt, ...ck.loc.map((l: LocKey<L1 | L2 | L3 | L4 | L5>) => l.kt)];\n } else {\n return [(ik as PriKey<S>).kt];\n }\n}\n\nexport const abbrevIK = <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(ik: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): string => {\n logger.trace('abbrevIK', { ik });\n if (ik) {\n if (isComKey(ik)) {\n const ck = ik as ComKey<S, L1, L2, L3, L4, L5>;\n return `${ck.kt}:${ck.pk}:${ck.loc.map((l: LocKey<L1 | L2 | L3 | L4 | L5>) => `${l.kt}:${l.lk}`).join(',')}`;\n } else {\n return `${(ik as PriKey<S>).kt}:${(ik as PriKey<S>).pk}`;\n }\n } else {\n return 'null IK';\n }\n}\n\nexport const abbrevLKA = <\n L1 extends string,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(keyArray: Array<LocKey<L1 | L2 | L3 | L4 | L5>> | null): string => {\n logger.trace('abbrevLKA', { keyArray });\n if (keyArray === undefined || keyArray === null) {\n return 'null LKA';\n } else {\n return keyArray.map(key => {\n if (key) {\n return `${key.kt}:${key.lk}`;\n } else {\n return key;\n }\n }).join(',');\n }\n}\n\nexport const primaryType = <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(ik: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): string => {\n logger.trace('primaryType', { ik });\n if (isComKey(ik)) {\n return (ik as ComKey<S, L1, L2, L3, L4, L5>).kt;\n } else {\n return (ik as PriKey<S>).kt;\n }\n}\n\n/**\n *\n * @param ik ItemKey to be used as a basis for a location\n * @returns\n */\nexport const itemKeyToLocKeyArray =\n <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n >(ik: PriKey<S> | ComKey<S, L1, L2, L3, L4, L5>): LocKeyArray<S, L1, L2, L3, L4> => {\n logger.trace('itemKeyToLocKeyArray', { ik: abbrevIK(ik) });\n let lka: Array<LocKey<L1 | L2 | L3 | L4 | L5>> = [];\n if (isComKey(ik)) {\n const ck = ik as ComKey<S, L1, L2, L3, L4, L5>;\n lka = [{ kt: ck.kt, lk: ck.pk } as unknown as LocKey<L1 | L2 | L3 | L4 | L5>, ...ck.loc];\n } else {\n const pk = ik as PriKey<S>;\n lka = [{ kt: pk.kt, lk: pk.pk } as unknown as LocKey<L1 | L2 | L3 | L4 | L5>];\n }\n logger.trace('itemKeyToLocKeyArray Results', { ik: abbrevIK(ik), lka: abbrevLKA(lka) });\n return lka as LocKeyArray<S, L1, L2, L3, L4>;\n }\n\nexport const ikToLKA = itemKeyToLocKeyArray;\n\n/**\n * Sometimes you need to take a location key array and convert it to the item key that points to the containing item.\n * @param lka A location key array\n * @returns An item key corresponding to the containing item this location refers to.\n */\nexport const locKeyArrayToItemKey =\n <\n L1 extends string,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n >(lka: LocKeyArray<L1, L2, L3, L4, L5>):\n PriKey<L1> | ComKey<L1, L2, L3, L4, L5> => {\n logger.trace('locKeyArrayToItemKey', { lka: abbrevLKA(lka as Array<LocKey<L1 | L2 | L3 | L4 | L5>>) });\n\n if (lka && lka.length === 1) {\n const priKey = cPK(lka[0].lk, lka[0].kt);\n return priKey as PriKey<L1>;\n } else if (lka && lka.length > 1 && lka[0] !== undefined) {\n const locs = lka.slice(1);\n const priKey = cPK(lka[0].lk, lka[0].kt);\n const comKey = { kt: priKey.kt, pk: priKey.pk, loc: locs as unknown as LocKeyArray<L2, L3, L4, L5> };\n return comKey as ComKey<L1, L2, L3, L4, L5>;\n } else {\n throw new Error('locKeyArrayToItemKey: lka is undefined or empty');\n }\n }\n\n// TODO: This is annoying that we have to check for '' and 'null'\nexport const isValidPriKey = <S extends string>(key: PriKey<S>): boolean => {\n const valid = (key !== undefined && key !== null)\n && (key.pk !== undefined && key.pk !== null && key.pk !== '' && key.pk !== 'null')\n && (key.kt !== undefined && key.kt !== null && key.kt !== '' && key.kt !== 'null');\n return valid;\n}\n\n// TODO: This is annoying that we have to check for '' and 'null'\nexport const isValidLocKey = <\n L1 extends string,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(key: LocKey<L1 | L2 | L3 | L4 | L5>): boolean => {\n const valid = (key !== undefined && key !== null)\n && (key.lk !== undefined && key.lk !== null && key.lk !== '' && key.lk !== 'null')\n && (key.kt !== undefined && key.kt !== null && key.kt !== '' && key.kt !== 'null');\n return valid;\n}\n\nexport const isValidLocKeyArray = <\n L1 extends string,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(keyArray: Array<LocKey<L1 | L2 | L3 | L4 | L5>>): boolean => {\n return (keyArray !== undefined && keyArray !== null) && keyArray.every(isValidLocKey);\n}\n\nexport const isValidComKey = <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(key: ComKey<S, L1, L2, L3, L4, L5>): boolean => {\n return (key !== undefined\n && key !== null) && isValidPriKey(key) && isValidLocKeyArray(key.loc as Array<LocKey<L1 | L2 | L3 | L4 | L5>>);\n}\n\nexport const isValidItemKey = <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): boolean => {\n return (isComKey(key) &&\n isValidComKey(key as ComKey<S, L1, L2, L3, L4, L5>)) || (isPriKey(key) && isValidPriKey(key as PriKey<S>));\n}\n\nexport const lkaToIK = locKeyArrayToItemKey;\n"],"names":["logger","LibLogger","get","isItemKeyEqual","a","b","trace","isComKey","isComKeyEqual","isPriKey","isPriKeyEqual","pk","kt","isLocKeyEqual","lk","loc","length","i","isItemKey","key","undefined","isLocKey","generateKeyArray","keys","comKey","push","locKeys","constructPriKey","pri","cPK","toKeyTypeArray","ik","ck","map","l","abbrevIK","join","abbrevLKA","keyArray","primaryType","itemKeyToLocKeyArray","lka","ikToLKA","locKeyArrayToItemKey","priKey","locs","slice","Error","isValidPriKey","valid","isValidLocKey","isValidLocKeyArray","every","isValidComKey","isValidItemKey","lkaToIK"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"KUtils.js","sources":["../../../src/key/KUtils.ts"],"sourcesContent":["/* eslint-disable no-undefined */\nimport {\n ComKey,\n LocKey,\n LocKeyArray,\n PriKey\n} from \"@/keys\";\n\nimport LibLogger from \"@/logger\";\n\nconst logger = LibLogger.get('KUtils');\n\n// Normalize a key value to string for consistent comparison and hashing\nconst normalizeKeyValue = (value: string | number): string => {\n return String(value);\n};\n\n// Normalized hash function for Dictionary that converts pk/lk values to strings\nexport const createNormalizedHashFunction = <T>() => {\n return (key: T): string => {\n if (typeof key === 'object' && key !== null) {\n // Create a normalized version of the key with string values\n const normalizedKey = JSON.parse(JSON.stringify(key));\n\n // Normalize pk values\n if ('pk' in normalizedKey && (normalizedKey.pk !== undefined && normalizedKey.pk !== null)) {\n normalizedKey.pk = normalizeKeyValue(normalizedKey.pk);\n }\n\n // Normalize lk values\n if ('lk' in normalizedKey && (normalizedKey.lk !== undefined && normalizedKey.lk !== null)) {\n normalizedKey.lk = normalizeKeyValue(normalizedKey.lk);\n }\n\n // Normalize loc array lk values\n if ('loc' in normalizedKey && Array.isArray(normalizedKey.loc)) {\n normalizedKey.loc = normalizedKey.loc.map((locItem: any) => {\n if (locItem && 'lk' in locItem && (locItem.lk !== undefined && locItem.lk !== null)) {\n return { ...locItem, lk: normalizeKeyValue(locItem.lk) };\n }\n return locItem;\n });\n }\n\n return JSON.stringify(normalizedKey);\n }\n return JSON.stringify(key);\n };\n};\n\n// Normalized comparison functions\nexport const isPriKeyEqualNormalized = <\n S extends string,\n>(a: PriKey<S>, b: PriKey<S>): boolean => {\n logger.trace('isPriKeyEqualNormalized', { a, b });\n return a && b &&\n normalizeKeyValue(a.pk) === normalizeKeyValue(b.pk) &&\n a.kt === b.kt;\n};\n\nexport const isLocKeyEqualNormalized = <\n L1 extends string,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(a: LocKey<L1 | L2 | L3 | L4 | L5>, b: LocKey<L1 | L2 | L3 | L4 | L5>): boolean => {\n logger.trace('isLocKeyEqualNormalized', { a, b });\n return a && b &&\n normalizeKeyValue(a.lk) === normalizeKeyValue(b.lk) &&\n a.kt === b.kt;\n};\n\nexport const isComKeyEqualNormalized = <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(a: ComKey<S, L1, L2, L3, L4, L5>, b: ComKey<S, L1, L2, L3, L4, L5>): boolean => {\n logger.trace('isComKeyEqualNormalized', { a, b });\n if (a && b && isPriKeyEqualNormalized({ kt: a.kt, pk: a.pk } as PriKey<S>, { kt: b.kt, pk: b.pk } as PriKey<S>)) {\n if (a.loc.length === b.loc.length) {\n for (let i = 0; i < a.loc.length; i++) {\n if (!isLocKeyEqualNormalized<L1, L2, L3, L4, L5>(a.loc[i], b.loc[i])) {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n};\n\nexport const isItemKeyEqualNormalized = <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(a: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, b: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): boolean => {\n logger.trace('isItemKeyEqualNormalized', { a, b });\n if (isComKey(a) && isComKey(b)) {\n return isComKeyEqualNormalized(a as ComKey<S, L1, L2, L3, L4, L5>, b as ComKey<S, L1, L2, L3, L4, L5>);\n } else if (isPriKey(a) && isPriKey(b)) {\n if (isComKey(a) || isComKey(b)) {\n return false;\n } else {\n return isPriKeyEqualNormalized(a as PriKey<S>, b as PriKey<S>);\n }\n } else {\n return false;\n }\n};\n\n// Original comparison functions (kept for backward compatibility)\nexport const isItemKeyEqual = <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(a: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, b: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): boolean => {\n logger.trace('isKeyEqual', { a, b });\n if (isComKey(a) && isComKey(b)) {\n return isComKeyEqual(a as ComKey<S, L1, L2, L3, L4, L5>, b as ComKey<S, L1, L2, L3, L4, L5>);\n } else if (isPriKey(a) && isPriKey(b)) {\n if (isComKey(a) || isComKey(b)) {\n return false;\n } else {\n return isPriKeyEqual(a as PriKey<S>, b as PriKey<S>);\n }\n } else {\n return false;\n }\n};\n\nexport const isPriKeyEqual = <\n S extends string,\n>(a: PriKey<S>, b: PriKey<S>): boolean => {\n logger.trace('isPriKeyEqual', { a, b });\n return a && b && a.pk === b.pk && a.kt === b.kt;\n}\n\nexport const isLocKeyEqual = <\n L1 extends string,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(a: LocKey<L1 | L2 | L3 | L4 | L5>, b: LocKey<L1 | L2 | L3 | L4 | L5>): boolean => {\n logger.trace('isLocKeyEqual', { a, b });\n return a && b && a.lk === b.lk && a.kt === b.kt;\n}\n\nexport const isComKeyEqual = <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(a: ComKey<S, L1, L2, L3, L4, L5>, b: ComKey<S, L1, L2, L3, L4, L5>): boolean => {\n logger.trace('isComKeyEqual', { a, b });\n if (a && b && isPriKeyEqual({ kt: a.kt, pk: a.pk } as PriKey<S>, { kt: b.kt, pk: b.pk } as PriKey<S>)) {\n if (a.loc.length === b.loc.length) {\n for (let i = 0; i < a.loc.length; i++) {\n if (!isLocKeyEqual<L1, L2, L3, L4, L5>(a.loc[i], b.loc[i])) {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n}\n\nexport const isItemKey = (key: any): boolean => {\n logger.trace('isItemKey', { key });\n return key !== undefined && (isComKey(key) || isPriKey(key));\n}\n\nexport const isComKey = (key: any): boolean => {\n logger.trace('isComKey', { key });\n return key !== undefined &&\n (key.pk !== undefined && key.kt !== undefined) && (key.loc !== undefined && key.loc.length > 0);\n}\n\nexport const isPriKey = (key: any): boolean => {\n logger.trace('isPriKey', { key });\n return key !== undefined &&\n (key.pk !== undefined && key.kt !== undefined) && (key.loc === undefined || key.loc.length === 0);\n}\n\nexport const isLocKey = (key: any): boolean => {\n logger.trace('isLocKey', { key });\n return key !== undefined && (key.lk !== undefined && key.kt !== undefined);\n}\n\nexport const generateKeyArray = <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never,\n>(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S> | LocKeyArray<L1, L2, L3, L4, L5> | []):\n Array<PriKey<S> | LocKey<L1 | L2 | L3 | L4 | L5>> => {\n logger.trace('generateKeyArray', { key });\n const keys: Array<PriKey<S> | LocKey<L1 | L2 | L3 | L4 | L5>> = [];\n\n if (isComKey(key) || isPriKey(key)) {\n // console.log('it is an item key');\n if (isComKey(key)) {\n // console.log('it is a composite key');\n const comKey = key as ComKey<S, L1, L2, L3, L4, L5>;\n keys.push({ pk: comKey.pk, kt: comKey.kt });\n for (let i = 0; i < comKey.loc.length; i++) {\n keys.push(comKey.loc[i]);\n }\n } else {\n keys.push(key as PriKey<S>);\n }\n } else {\n // console.log('is is an array, length: ' + key.length);\n const locKeys = key as LocKey<L1 | L2 | L3 | L4 | L5>[];\n for (let i = 0; i < locKeys.length; i++) {\n // console.log('Pushing a key');\n keys.push(locKeys[i]);\n }\n }\n return keys;\n}\n\n// TODO: Exactly the same as in ContainedItemLib\nexport const constructPriKey = <S extends string>(\n pk: string | number | PriKey<S>,\n kt: S,\n) => {\n logger.trace('constructPriKey', { pk, kt });\n let pri: PriKey<S>;\n if (typeof pk === 'string' || typeof pk === 'number') {\n pri = { kt: kt as S, pk: pk };\n } else {\n pri = pk;\n }\n return pri;\n}\n\n// TODO: Exactly the same as in ContainedItemLib\nexport const cPK = constructPriKey;\n\nexport const toKeyTypeArray = <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(ik: PriKey<S> | ComKey<S, L1, L2, L3, L4, L5>):\n string[] => {\n logger.trace('toKeyTypeArray', { ik });\n if (isComKey(ik)) {\n const ck = ik as ComKey<S, L1, L2, L3, L4, L5>;\n return [ck.kt, ...ck.loc.map((l: LocKey<L1 | L2 | L3 | L4 | L5>) => l.kt)];\n } else {\n return [(ik as PriKey<S>).kt];\n }\n}\n\nexport const abbrevIK = <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(ik: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): string => {\n logger.trace('abbrevIK', { ik });\n if (ik) {\n if (isComKey(ik)) {\n const ck = ik as ComKey<S, L1, L2, L3, L4, L5>;\n return `${ck.kt}:${ck.pk}:${ck.loc.map((l: LocKey<L1 | L2 | L3 | L4 | L5>) => `${l.kt}:${l.lk}`).join(',')}`;\n } else {\n return `${(ik as PriKey<S>).kt}:${(ik as PriKey<S>).pk}`;\n }\n } else {\n return 'null IK';\n }\n}\n\nexport const abbrevLKA = <\n L1 extends string,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(keyArray: Array<LocKey<L1 | L2 | L3 | L4 | L5>> | null): string => {\n logger.trace('abbrevLKA', { keyArray });\n if (keyArray === undefined || keyArray === null) {\n return 'null LKA';\n } else {\n return keyArray.map(key => {\n if (key) {\n return `${key.kt}:${key.lk}`;\n } else {\n return key;\n }\n }).join(',');\n }\n}\n\nexport const primaryType = <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(ik: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): string => {\n logger.trace('primaryType', { ik });\n if (isComKey(ik)) {\n return (ik as ComKey<S, L1, L2, L3, L4, L5>).kt;\n } else {\n return (ik as PriKey<S>).kt;\n }\n}\n\n/**\n *\n * @param ik ItemKey to be used as a basis for a location\n * @returns\n */\nexport const itemKeyToLocKeyArray =\n <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n >(ik: PriKey<S> | ComKey<S, L1, L2, L3, L4, L5>): LocKeyArray<S, L1, L2, L3, L4> => {\n logger.trace('itemKeyToLocKeyArray', { ik: abbrevIK(ik) });\n let lka: Array<LocKey<L1 | L2 | L3 | L4 | L5>> = [];\n if (isComKey(ik)) {\n const ck = ik as ComKey<S, L1, L2, L3, L4, L5>;\n lka = [{ kt: ck.kt, lk: ck.pk } as unknown as LocKey<L1 | L2 | L3 | L4 | L5>, ...ck.loc];\n } else {\n const pk = ik as PriKey<S>;\n lka = [{ kt: pk.kt, lk: pk.pk } as unknown as LocKey<L1 | L2 | L3 | L4 | L5>];\n }\n logger.trace('itemKeyToLocKeyArray Results', { ik: abbrevIK(ik), lka: abbrevLKA(lka) });\n return lka as LocKeyArray<S, L1, L2, L3, L4>;\n }\n\nexport const ikToLKA = itemKeyToLocKeyArray;\n\n/**\n * Sometimes you need to take a location key array and convert it to the item key that points to the containing item.\n * @param lka A location key array\n * @returns An item key corresponding to the containing item this location refers to.\n */\nexport const locKeyArrayToItemKey =\n <\n L1 extends string,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n >(lka: LocKeyArray<L1, L2, L3, L4, L5>):\n PriKey<L1> | ComKey<L1, L2, L3, L4, L5> => {\n logger.trace('locKeyArrayToItemKey', { lka: abbrevLKA(lka as Array<LocKey<L1 | L2 | L3 | L4 | L5>>) });\n\n if (lka && lka.length === 1) {\n const priKey = cPK(lka[0].lk, lka[0].kt);\n return priKey as PriKey<L1>;\n } else if (lka && lka.length > 1 && lka[0] !== undefined) {\n const locs = lka.slice(1);\n const priKey = cPK(lka[0].lk, lka[0].kt);\n const comKey = { kt: priKey.kt, pk: priKey.pk, loc: locs as unknown as LocKeyArray<L2, L3, L4, L5> };\n return comKey as ComKey<L1, L2, L3, L4, L5>;\n } else {\n throw new Error('locKeyArrayToItemKey: lka is undefined or empty');\n }\n }\n\n// TODO: This is annoying that we have to check for '' and 'null'\nexport const isValidPriKey = <S extends string>(key: PriKey<S>): boolean => {\n const valid = (key !== undefined && key !== null)\n && (key.pk !== undefined && key.pk !== null && key.pk !== '' && key.pk !== 'null')\n && (key.kt !== undefined && key.kt !== null && key.kt !== '' && key.kt !== 'null');\n return valid;\n}\n\n// TODO: This is annoying that we have to check for '' and 'null'\nexport const isValidLocKey = <\n L1 extends string,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(key: LocKey<L1 | L2 | L3 | L4 | L5>): boolean => {\n const valid = (key !== undefined && key !== null)\n && (key.lk !== undefined && key.lk !== null && key.lk !== '' && key.lk !== 'null')\n && (key.kt !== undefined && key.kt !== null && key.kt !== '' && key.kt !== 'null');\n return valid;\n}\n\nexport const isValidLocKeyArray = <\n L1 extends string,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(keyArray: Array<LocKey<L1 | L2 | L3 | L4 | L5>>): boolean => {\n return (keyArray !== undefined && keyArray !== null) && keyArray.every(isValidLocKey);\n}\n\nexport const isValidComKey = <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(key: ComKey<S, L1, L2, L3, L4, L5>): boolean => {\n return (key !== undefined\n && key !== null) && isValidPriKey(key) && isValidLocKeyArray(key.loc as Array<LocKey<L1 | L2 | L3 | L4 | L5>>);\n}\n\nexport const isValidItemKey = <\n S extends string,\n L1 extends string = never,\n L2 extends string = never,\n L3 extends string = never,\n L4 extends string = never,\n L5 extends string = never\n>(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): boolean => {\n return (isComKey(key) &&\n isValidComKey(key as ComKey<S, L1, L2, L3, L4, L5>)) || (isPriKey(key) && isValidPriKey(key as PriKey<S>));\n}\n\nexport const lkaToIK = locKeyArrayToItemKey;\n"],"names":["logger","LibLogger","get","normalizeKeyValue","value","String","createNormalizedHashFunction","key","normalizedKey","JSON","parse","stringify","pk","undefined","lk","Array","isArray","loc","map","locItem","isPriKeyEqualNormalized","a","b","trace","kt","isLocKeyEqualNormalized","isComKeyEqualNormalized","length","i","isItemKeyEqualNormalized","isComKey","isPriKey","isItemKeyEqual","isComKeyEqual","isPriKeyEqual","isLocKeyEqual","isItemKey","isLocKey","generateKeyArray","keys","comKey","push","locKeys","constructPriKey","pri","cPK","toKeyTypeArray","ik","ck","l","abbrevIK","join","abbrevLKA","keyArray","primaryType","itemKeyToLocKeyArray","lka","ikToLKA","locKeyArrayToItemKey","priKey","locs","slice","Error","isValidPriKey","valid","isValidLocKey","isValidLocKeyArray","every","isValidComKey","isValidItemKey","lkaToIK"],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -6,6 +6,25 @@ const Logging = require('@fjell/logging');
|
|
|
6
6
|
const deepmerge = require('deepmerge');
|
|
7
7
|
const luxon = require('luxon');
|
|
8
8
|
|
|
9
|
+
function _interopNamespaceDefault(e) {
|
|
10
|
+
const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });
|
|
11
|
+
if (e) {
|
|
12
|
+
for (const k in e) {
|
|
13
|
+
if (k !== 'default') {
|
|
14
|
+
const d = Object.getOwnPropertyDescriptor(e, k);
|
|
15
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: () => e[k]
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
n.default = e;
|
|
23
|
+
return Object.freeze(n);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const luxon__namespace = /*#__PURE__*/_interopNamespaceDefault(luxon);
|
|
27
|
+
|
|
9
28
|
const LibLogger = Logging.getLogger('@fjell/core');
|
|
10
29
|
|
|
11
30
|
function _define_property$3(obj, key, value) {
|
|
@@ -72,6 +91,100 @@ class Dictionary {
|
|
|
72
91
|
}
|
|
73
92
|
|
|
74
93
|
const logger$2 = LibLogger.get('KUtils');
|
|
94
|
+
// Normalize a key value to string for consistent comparison and hashing
|
|
95
|
+
const normalizeKeyValue = (value)=>{
|
|
96
|
+
return String(value);
|
|
97
|
+
};
|
|
98
|
+
// Normalized hash function for Dictionary that converts pk/lk values to strings
|
|
99
|
+
const createNormalizedHashFunction = ()=>{
|
|
100
|
+
return (key)=>{
|
|
101
|
+
if (typeof key === 'object' && key !== null) {
|
|
102
|
+
// Create a normalized version of the key with string values
|
|
103
|
+
const normalizedKey = JSON.parse(JSON.stringify(key));
|
|
104
|
+
// Normalize pk values
|
|
105
|
+
if ('pk' in normalizedKey && normalizedKey.pk !== undefined && normalizedKey.pk !== null) {
|
|
106
|
+
normalizedKey.pk = normalizeKeyValue(normalizedKey.pk);
|
|
107
|
+
}
|
|
108
|
+
// Normalize lk values
|
|
109
|
+
if ('lk' in normalizedKey && normalizedKey.lk !== undefined && normalizedKey.lk !== null) {
|
|
110
|
+
normalizedKey.lk = normalizeKeyValue(normalizedKey.lk);
|
|
111
|
+
}
|
|
112
|
+
// Normalize loc array lk values
|
|
113
|
+
if ('loc' in normalizedKey && Array.isArray(normalizedKey.loc)) {
|
|
114
|
+
normalizedKey.loc = normalizedKey.loc.map((locItem)=>{
|
|
115
|
+
if (locItem && 'lk' in locItem && locItem.lk !== undefined && locItem.lk !== null) {
|
|
116
|
+
return {
|
|
117
|
+
...locItem,
|
|
118
|
+
lk: normalizeKeyValue(locItem.lk)
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
return locItem;
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
return JSON.stringify(normalizedKey);
|
|
125
|
+
}
|
|
126
|
+
return JSON.stringify(key);
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
// Normalized comparison functions
|
|
130
|
+
const isPriKeyEqualNormalized = (a, b)=>{
|
|
131
|
+
logger$2.trace('isPriKeyEqualNormalized', {
|
|
132
|
+
a,
|
|
133
|
+
b
|
|
134
|
+
});
|
|
135
|
+
return a && b && normalizeKeyValue(a.pk) === normalizeKeyValue(b.pk) && a.kt === b.kt;
|
|
136
|
+
};
|
|
137
|
+
const isLocKeyEqualNormalized = (a, b)=>{
|
|
138
|
+
logger$2.trace('isLocKeyEqualNormalized', {
|
|
139
|
+
a,
|
|
140
|
+
b
|
|
141
|
+
});
|
|
142
|
+
return a && b && normalizeKeyValue(a.lk) === normalizeKeyValue(b.lk) && a.kt === b.kt;
|
|
143
|
+
};
|
|
144
|
+
const isComKeyEqualNormalized = (a, b)=>{
|
|
145
|
+
logger$2.trace('isComKeyEqualNormalized', {
|
|
146
|
+
a,
|
|
147
|
+
b
|
|
148
|
+
});
|
|
149
|
+
if (a && b && isPriKeyEqualNormalized({
|
|
150
|
+
kt: a.kt,
|
|
151
|
+
pk: a.pk
|
|
152
|
+
}, {
|
|
153
|
+
kt: b.kt,
|
|
154
|
+
pk: b.pk
|
|
155
|
+
})) {
|
|
156
|
+
if (a.loc.length === b.loc.length) {
|
|
157
|
+
for(let i = 0; i < a.loc.length; i++){
|
|
158
|
+
if (!isLocKeyEqualNormalized(a.loc[i], b.loc[i])) {
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return true;
|
|
163
|
+
} else {
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
} else {
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
const isItemKeyEqualNormalized = (a, b)=>{
|
|
171
|
+
logger$2.trace('isItemKeyEqualNormalized', {
|
|
172
|
+
a,
|
|
173
|
+
b
|
|
174
|
+
});
|
|
175
|
+
if (isComKey(a) && isComKey(b)) {
|
|
176
|
+
return isComKeyEqualNormalized(a, b);
|
|
177
|
+
} else if (isPriKey(a) && isPriKey(b)) {
|
|
178
|
+
if (isComKey(a) || isComKey(b)) {
|
|
179
|
+
return false;
|
|
180
|
+
} else {
|
|
181
|
+
return isPriKeyEqualNormalized(a, b);
|
|
182
|
+
}
|
|
183
|
+
} else {
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
// Original comparison functions (kept for backward compatibility)
|
|
75
188
|
const isItemKeyEqual = (a, b)=>{
|
|
76
189
|
logger$2.trace('isKeyEqual', {
|
|
77
190
|
a,
|
|
@@ -190,7 +303,7 @@ const constructPriKey = (pk, kt)=>{
|
|
|
190
303
|
kt
|
|
191
304
|
});
|
|
192
305
|
let pri;
|
|
193
|
-
if (typeof pk === 'string') {
|
|
306
|
+
if (typeof pk === 'string' || typeof pk === 'number') {
|
|
194
307
|
pri = {
|
|
195
308
|
kt: kt,
|
|
196
309
|
pk: pk
|
|
@@ -650,7 +763,7 @@ const logger$1 = LibLogger.get('IQUtils');
|
|
|
650
763
|
// This is a dateTimeReviver used for JSON parse - when we convert a param back to a query, we need this.
|
|
651
764
|
const dateTimeReviver = function(key, value) {
|
|
652
765
|
if (typeof value === 'string') {
|
|
653
|
-
const parsedDate =
|
|
766
|
+
const parsedDate = luxon__namespace.DateTime.fromISO(value);
|
|
654
767
|
if (parsedDate.isValid) {
|
|
655
768
|
return parsedDate.toJSDate();
|
|
656
769
|
}
|
|
@@ -982,19 +1095,24 @@ exports.abbrevQuery = abbrevQuery;
|
|
|
982
1095
|
exports.abbrevRef = abbrevRef;
|
|
983
1096
|
exports.cPK = cPK;
|
|
984
1097
|
exports.constructPriKey = constructPriKey;
|
|
1098
|
+
exports.createNormalizedHashFunction = createNormalizedHashFunction;
|
|
985
1099
|
exports.generateKeyArray = generateKeyArray;
|
|
986
1100
|
exports.ikToLKA = ikToLKA;
|
|
987
1101
|
exports.isComItem = isComItem;
|
|
988
1102
|
exports.isComKey = isComKey;
|
|
989
1103
|
exports.isComKeyEqual = isComKeyEqual;
|
|
1104
|
+
exports.isComKeyEqualNormalized = isComKeyEqualNormalized;
|
|
990
1105
|
exports.isCondition = isCondition;
|
|
991
1106
|
exports.isItemKey = isItemKey;
|
|
992
1107
|
exports.isItemKeyEqual = isItemKeyEqual;
|
|
1108
|
+
exports.isItemKeyEqualNormalized = isItemKeyEqualNormalized;
|
|
993
1109
|
exports.isLocKey = isLocKey;
|
|
994
1110
|
exports.isLocKeyEqual = isLocKeyEqual;
|
|
1111
|
+
exports.isLocKeyEqualNormalized = isLocKeyEqualNormalized;
|
|
995
1112
|
exports.isPriItem = isPriItem;
|
|
996
1113
|
exports.isPriKey = isPriKey;
|
|
997
1114
|
exports.isPriKeyEqual = isPriKeyEqual;
|
|
1115
|
+
exports.isPriKeyEqualNormalized = isPriKeyEqualNormalized;
|
|
998
1116
|
exports.isQueryMatch = isQueryMatch;
|
|
999
1117
|
exports.isValidComKey = isValidComKey;
|
|
1000
1118
|
exports.isValidItemKey = isValidItemKey;
|