370 lines
16 KiB
TypeScript
370 lines
16 KiB
TypeScript
/* Metro module 4393; source: lib/Frecency.tsx; dependencies: [6, 7, 22, 3738, 2] */
|
|
import ClassCallCheck from '../by-id/module-00006-ClassCallCheck.js'; /* Metro dependency 6 */
|
|
import CreateClass from '../by-id/module-00007-CreateClass.js'; /* Metro dependency 7 */
|
|
import Module00022 from '../by-id/module-00022.js'; /* Metro dependency 22 */
|
|
import Module03738 from '../by-id/module-03738.js'; /* Metro dependency 3738 */
|
|
import * as FileImportTrackerModule from '../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
|
|
|
|
function _fun37159(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#37159, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4565:6, offset: 0x0109d4e2, size: 150 bytes, params: 8, frame: 18
|
|
const Object = global.Object;
|
|
Object.defineProperty(exports, '__esModule', {value: true});
|
|
const DEFAULT_FRECENCY = function(a0, a1, a2) {
|
|
var Math = global.Math;
|
|
return Math.ceil(a0 * (a1 / a2.numOfRecentUses));
|
|
};
|
|
const DEFAULT_WEIGHT = function(a0) {
|
|
return a0 <= 3 ? 100 : a0 <= 15 ? 70 : a0 <= 30 ? 50 : a0 <= 45 ? 30 : a0 <= 80 ? 10 : 1;
|
|
};
|
|
const value = _fun37162();
|
|
(FileImportTrackerModule).fileFinishedImporting('lib/Frecency.tsx');
|
|
exports.default = value;
|
|
function _fun37162() { // fn#37162, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4565:277, offset: 0x0109d5ed, size: 250 bytes, params: 1, frame: 15
|
|
return CreateClass(Frecency, [{key: 'overwriteHistory', value: function(a0, a1) {
|
|
var value = a0;
|
|
var env0_0 = this;
|
|
var defaultImport = importDefault(dependencyMap[2]);
|
|
this.usageHistory = defaultImport.mapValues(value ?? ({}), _fun37165);
|
|
if (a1 != null) {
|
|
a1.forEach(_fun37166);
|
|
}
|
|
this.markDirty();
|
|
}}, {key: 'markDirty', value: function() {
|
|
this.dirty = true;
|
|
var version = this.version;
|
|
this.version = typeof version === 'bigint' ? version + 1n : +version + 1;
|
|
}}, {key: 'isDirty', value: function() {
|
|
return this.dirty;
|
|
}}, {key: 'track', value: value_37169}, {key: 'getEntry', value: function(a0) {
|
|
var r0;
|
|
var value = null;
|
|
if (value == a0) {
|
|
r0 = value;
|
|
} else {
|
|
if (this.dirty) {
|
|
this.compute();
|
|
}
|
|
r0 = global.Object.prototype.hasOwnProperty.call(this.usageHistory, a0) ? this.usageHistory[a0] : undefined;
|
|
}
|
|
return r0;
|
|
}}, {key: 'getScore', value: function(a0) {
|
|
var value = this.getEntry(a0);
|
|
var value2 = null;
|
|
return value2 != value ? value.score : value2;
|
|
}}, {key: 'getFrecency', value: function(a0) {
|
|
var value = this.getEntry(a0);
|
|
var value2 = null;
|
|
return value2 != value ? value.frecency : value2;
|
|
}}, {key: 'compute', value: value_37173}, {key: 'frequently', get: function() {
|
|
if (this.dirty) {
|
|
this.compute();
|
|
}
|
|
return this._frequently;
|
|
}, set: function(a0) {
|
|
this._frequently = a0;
|
|
}}]);
|
|
function Frecency({computeBonus, computeWeight = DEFAULT_WEIGHT, computeFrecency, calculateMaxTotalUse, lookupKey, afterCompute, numFrequentlyItems, maxSamples}) { // fn#37163, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4565:298, offset: 0x0109d6e7, size: 202 bytes, params: 2, frame: 21
|
|
const r7 = computeFrecency !== undefined ? computeFrecency : DEFAULT_FRECENCY;
|
|
calculateMaxTotalUse = !(calculateMaxTotalUse === undefined) && calculateMaxTotalUse;
|
|
numFrequentlyItems = numFrequentlyItems === undefined ? 32 : numFrequentlyItems;
|
|
maxSamples = maxSamples === undefined ? 10 : maxSamples;
|
|
const value = environment.__proto__;
|
|
env1_2(this, Frecency);
|
|
this.computeBonus = computeBonus;
|
|
this.computeWeight = computeWeight;
|
|
this.computeFrecency = r7;
|
|
this.calculateMaxTotalUse = calculateMaxTotalUse;
|
|
this.afterCompute = afterCompute;
|
|
this.lookupKey = lookupKey;
|
|
this.usageHistory = {};
|
|
this.frequently = [];
|
|
this.maxSamples = maxSamples;
|
|
this.numFrequentlyItems = numFrequentlyItems;
|
|
this.dirty = false;
|
|
this.version = 0;
|
|
}
|
|
|
|
function value_37164(a0, a1) { // fn#37164, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4565:785, offset: 0x0109d7b1, size: 102 bytes, params: 3, frame: 18
|
|
const value = a0;
|
|
const defaultImport = Module00022;
|
|
this.usageHistory = defaultImport.mapValues(value ?? ({}), function(a0) {
|
|
var r2;
|
|
var object = {};
|
|
copyDataProperties(object, a0, r2);
|
|
object['frecency'] = -1;
|
|
return object;
|
|
});
|
|
if (a1 != null) {
|
|
a1.forEach(_fun37166);
|
|
}
|
|
this.markDirty();
|
|
function _fun37166({key, timestamp}) { // fn#37166, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4565:896, offset: 0x0109d834, size: 41 bytes, params: 2, frame: 14
|
|
const binding = env0_0;
|
|
return binding.track(key, {timestamp: timestamp});
|
|
}
|
|
|
|
}
|
|
|
|
function value_37173() { // fn#37173, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4565:1928, offset: 0x0109da89, size: 307 bytes, params: 1, frame: 19
|
|
var environment;
|
|
var defaultImport;
|
|
var maxBy;
|
|
var Object;
|
|
var value4;
|
|
let value = environment.__proto__;
|
|
const env0_1 = (Module03738)();
|
|
if (this.calculateMaxTotalUse) {
|
|
defaultImport = importDefault(22) /* metro dependency 22 */;
|
|
maxBy = defaultImport.maxBy;
|
|
Object = global.Object;
|
|
value4 = Reflect.apply(maxBy, defaultImport, [Object.values(this.usageHistory), function(a0) {
|
|
return a0.totalUses;
|
|
}]);
|
|
}
|
|
value = importDefault(22) /* metro dependency 22 */;
|
|
value.forEach(this.usageHistory, _fun37175);
|
|
value = importDefault(22) /* metro dependency 22 */;
|
|
value = value(this.usageHistory);
|
|
value = value.map(_fun37177);
|
|
value = value.filter(function(a0) {
|
|
return a0 !== null;
|
|
});
|
|
value = value.sortBy(function(a0) {
|
|
var r0;
|
|
var r1;
|
|
var r2;
|
|
var item3;
|
|
var value3;
|
|
var iterator = a0[Symbol.iterator]();
|
|
var iterator2 = iterator.next;
|
|
var item2 = Reflect.apply(iterator2, iterator, []);
|
|
var item = item2.value;
|
|
item2 = item2.done ? undefined : iterator;
|
|
var value = undefined;
|
|
var value2 = item2 === value;
|
|
if (value2) {
|
|
r0 = value;
|
|
r1 = item2;
|
|
r2 = value2;
|
|
} else {
|
|
item3 = Reflect.apply(iterator2, item2, []);
|
|
item = item3.value;
|
|
item3 = item3.done ? undefined : item2;
|
|
value3 = item3 === value;
|
|
if (value3) {
|
|
r0 = value;
|
|
r1 = item3;
|
|
r2 = value3;
|
|
} else {
|
|
r0 = item;
|
|
r1 = item3;
|
|
r2 = value3;
|
|
}
|
|
}
|
|
if (!r2) {
|
|
r1.return();
|
|
}
|
|
return -r0;
|
|
});
|
|
value = value.map(function(a0) {
|
|
var iterator = a0[Symbol.iterator]();
|
|
var item2 = iterator.next();
|
|
var item = item2.value;
|
|
item2 = item2.done ? undefined : iterator;
|
|
var value = undefined;
|
|
var value2 = item2 === value;
|
|
var r0 = value2 ? value : item;
|
|
if (!value2) {
|
|
item2.return();
|
|
}
|
|
return r0;
|
|
});
|
|
value = value.take(this.numFrequentlyItems);
|
|
this.frequently = value.value();
|
|
this.dirty = false;
|
|
this.afterCompute(this.usageHistory, this._frequently);
|
|
function _fun37175(a0, a1) { // fn#37175, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4565:2091, offset: 0x0109dbc7, size: 251 bytes, params: 3, frame: 21
|
|
var environment;
|
|
var binding;
|
|
var value2;
|
|
var value3;
|
|
const env0_0 = a0;
|
|
const totalUses2 = a0.totalUses;
|
|
const recentUses = a0.recentUses;
|
|
if (a0.frecency === -1) {
|
|
binding = env0_0;
|
|
var env0_1 = binding.computeBonus(a1) / 100;
|
|
a0.score = 0;
|
|
value2 = environment.__proto__.__proto__;
|
|
value3 = undefined;
|
|
(importDefault(22) /* metro dependency 22 */).forEach(recentUses, _fun37176);
|
|
if (a0.score > 0) {
|
|
if (a0.recentUses.length > 0) {
|
|
binding = env0_0;
|
|
a0.frecency = binding.computeFrecency(totalUses2, a0.score, {numOfRecentUses: recentUses.length,
|
|
maxTotalUse: ClassCallCheck == null ? value3 : ClassCallCheck.totalUses});
|
|
}
|
|
env0_0.usageHistory[a1] = a0;
|
|
} else {
|
|
delete env0_0.usageHistory[a1];
|
|
}
|
|
}
|
|
function _fun37176(a0, a1) { // fn#37176, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4565:2213, offset: 0x0109dcc2, size: 125 bytes, params: 3, frame: 16
|
|
let value = environment.__proto__;
|
|
if (a1 >= env1_0.maxSamples) {
|
|
return false;
|
|
}
|
|
let binding = env1_0;
|
|
const computeWeight = binding.computeWeight;
|
|
const binding2 = env1_1;
|
|
const diff = binding2.diff;
|
|
value = environment.__proto__.__proto__.__proto__;
|
|
value = importDefault(3738) /* metro dependency 3738 */;
|
|
value = value(a0);
|
|
value = Reflect.apply(computeWeight, binding, [Reflect.apply(diff, binding2, [value, 'days'])]);
|
|
binding = env0_0;
|
|
binding.score = binding.score + env0_1 * value;
|
|
}
|
|
|
|
}
|
|
|
|
function _fun37177(a0, a1) { // fn#37177, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4565:2571, offset: 0x0109dd3f, size: 56 bytes, params: 3, frame: 11
|
|
const value = env0_0.lookupKey(a1);
|
|
const value2 = null;
|
|
return value2 == value ? value2 : [value, a0.frecency];
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
function _fun37165(a0) { // fn#37165, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4565:850, offset: 0x0109d817, size: 29 bytes, params: 2, frame: 12
|
|
const object = {};
|
|
copyDataProperties(object, a0, undefined);
|
|
object['frecency'] = -1;
|
|
return object;
|
|
}
|
|
|
|
function value_37169(a0) { // fn#37169, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4565:1104, offset: 0x0109d886, size: 357 bytes, params: 2, frame: 21
|
|
var r1;
|
|
var r10;
|
|
var r8;
|
|
var r6;
|
|
var r3;
|
|
var object;
|
|
var Object;
|
|
var hasOwn;
|
|
var usageHistory;
|
|
var property;
|
|
var totalUses;
|
|
var recentUses;
|
|
var push;
|
|
var sort;
|
|
var Date;
|
|
var now;
|
|
var length;
|
|
var maxSamples;
|
|
var shift;
|
|
var markDirty;
|
|
let value = a1;
|
|
const value2 = undefined;
|
|
reducibleJoin2: while (true) {
|
|
if (value !== value2) {
|
|
r1 = value;
|
|
break reducibleJoin2;
|
|
}
|
|
r1 = {};
|
|
break reducibleJoin2;
|
|
}
|
|
const timestamp = r1.timestamp;
|
|
const usesSinceLastTrack = r1.usesSinceLastTrack;
|
|
reducibleJoin17: while (true) {
|
|
if (a0 == null) {
|
|
break reducibleJoin17;
|
|
}
|
|
Object = global.Object;
|
|
hasOwn = Object.hasOwn;
|
|
usageHistory = this.usageHistory;
|
|
reducibleJoin5: while (true) {
|
|
if (Reflect.apply(hasOwn, Object, [usageHistory, a0])) {
|
|
usageHistory = this.usageHistory;
|
|
property = usageHistory[a0];
|
|
r10 = property;
|
|
break reducibleJoin5;
|
|
}
|
|
r10 = value2;
|
|
break reducibleJoin5;
|
|
}
|
|
if (r10 == null) {
|
|
object = {};
|
|
value = 1;
|
|
r8 = usesSinceLastTrack ?? value;
|
|
object.totalUses = r8;
|
|
reducibleJoin15: while (true) {
|
|
if (timestamp != null) {
|
|
r6 = timestamp;
|
|
break reducibleJoin15;
|
|
}
|
|
Date = global.Date;
|
|
now = Date.now;
|
|
value = Reflect.apply(now, Date, []);
|
|
r6 = value;
|
|
break reducibleJoin15;
|
|
}
|
|
object.recentUses = [r6];
|
|
object.frecency = -1;
|
|
object.score = 0;
|
|
r3 = object;
|
|
} else {
|
|
r10.frecency = -1;
|
|
totalUses = r10.totalUses;
|
|
value = 1;
|
|
r1 = usesSinceLastTrack ?? value;
|
|
r10.totalUses = totalUses + r1;
|
|
if (timestamp == null) {
|
|
recentUses = r10.recentUses;
|
|
push = recentUses.push;
|
|
Date = global.Date;
|
|
now = Date.now;
|
|
Reflect.apply(push, recentUses, [Reflect.apply(now, Date, [])]);
|
|
} else {
|
|
recentUses = r10.recentUses;
|
|
push = recentUses.push;
|
|
Reflect.apply(push, recentUses, [timestamp]);
|
|
recentUses = r10.recentUses;
|
|
sort = recentUses.sort;
|
|
Reflect.apply(sort, recentUses, []);
|
|
}
|
|
recentUses = r10.recentUses;
|
|
length = recentUses.length;
|
|
maxSamples = this.maxSamples;
|
|
if (length > maxSamples) {
|
|
reducibleLoop11: while (true) {
|
|
recentUses = r10.recentUses;
|
|
shift = recentUses.shift;
|
|
Reflect.apply(shift, recentUses, []);
|
|
recentUses = r10.recentUses;
|
|
length = recentUses.length;
|
|
maxSamples = this.maxSamples;
|
|
if (length > maxSamples) {
|
|
continue reducibleLoop11;
|
|
}
|
|
r3 = r10;
|
|
break reducibleLoop11;
|
|
}
|
|
} else {
|
|
r3 = r10;
|
|
}
|
|
}
|
|
usageHistory = this.usageHistory;
|
|
usageHistory[a0] = r3;
|
|
markDirty = this.markDirty;
|
|
Reflect.apply(markDirty, this, []);
|
|
break reducibleJoin17;
|
|
}
|
|
return value2;
|
|
}
|
|
|
|
global.__d(_fun37159, 4393, [6, 7, 22, 3738, 2]) /* metro module 4393, dependencies: [6, 7, 22, 3738, 2] */;
|