b2m-utils 0.0.310 → 0.0.312
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/build/enums/FeeEnum.d.ts +2 -1
- package/build/enums/RatecardFeeConfigKeyEnum.d.ts +2 -1
- package/build/functions/buildFeeExclusionsMap/index.d.ts +7 -0
- package/build/functions/calculateFeesCacheWithDetails/index.d.ts +35 -0
- package/build/functions/calculateFeesTotal/index.d.ts +3 -2
- package/build/functions/calculateTotalPercentageFees/index.d.ts +2 -1
- package/build/functions/index.d.ts +2 -0
- package/build/index.esm.js +193 -7
- package/build/index.esm.js.gz +0 -0
- package/build/index.esm.js.map +1 -1
- package/build/index.js +195 -6
- package/build/index.js.gz +0 -0
- package/build/index.js.map +1 -1
- package/package.json +1 -1
package/build/index.js
CHANGED
|
@@ -191,6 +191,7 @@ exports.FeeEnum = void 0;
|
|
|
191
191
|
FeeEnum[FeeEnum["TRT_PERCENTAGE_TOTAL"] = 169] = "TRT_PERCENTAGE_TOTAL";
|
|
192
192
|
FeeEnum[FeeEnum["TDA_PERCENTAGE_TOTAL"] = 170] = "TDA_PERCENTAGE_TOTAL";
|
|
193
193
|
FeeEnum[FeeEnum["TDE_PERCENTAGE_TOTAL"] = 171] = "TDE_PERCENTAGE_TOTAL";
|
|
194
|
+
FeeEnum[FeeEnum["APPOINTMENT_BY_INVOICE_QUANTITY"] = 172] = "APPOINTMENT_BY_INVOICE_QUANTITY";
|
|
194
195
|
})(exports.FeeEnum || (exports.FeeEnum = {}));
|
|
195
196
|
|
|
196
197
|
exports.FreightRegionEnum = void 0;
|
|
@@ -255,6 +256,8 @@ exports.RatecardFeeConfigKeyEnum = void 0;
|
|
|
255
256
|
(function (RatecardFeeConfigKeyEnum) {
|
|
256
257
|
// Configurações de fração de peso
|
|
257
258
|
RatecardFeeConfigKeyEnum["MIN_WEIGHT_FOR_FRACTION"] = "min_weight_for_fraction";
|
|
259
|
+
// Configurações de exclusão de fees
|
|
260
|
+
RatecardFeeConfigKeyEnum["EXCLUDE_FROM_TOTAL_PERCENTAGE"] = "exclude_from_total_percentage";
|
|
258
261
|
})(exports.RatecardFeeConfigKeyEnum || (exports.RatecardFeeConfigKeyEnum = {}));
|
|
259
262
|
|
|
260
263
|
exports.RatecardFeeConfigTypeEnum = void 0;
|
|
@@ -417,6 +420,62 @@ var applyRedeliveryMultiplier = function (total, cte) {
|
|
|
417
420
|
};
|
|
418
421
|
};
|
|
419
422
|
|
|
423
|
+
/**
|
|
424
|
+
* Constrói um Map de exclusões de fees baseado nas configurações do tarifário
|
|
425
|
+
* @param ratecard - Tarifário contendo as configurações de fees
|
|
426
|
+
* @returns Map onde a chave é o feeId e o valor é um Set de feeIds excluídos da base de cálculo
|
|
427
|
+
*/
|
|
428
|
+
var buildFeeExclusionsMap = function (ratecard) {
|
|
429
|
+
var _a;
|
|
430
|
+
var exclusionsMap = new Map();
|
|
431
|
+
console.log('[buildFeeExclusionsMap] Iniciando construção do mapa de exclusões', {
|
|
432
|
+
ratecardId: ratecard === null || ratecard === void 0 ? void 0 : ratecard.id,
|
|
433
|
+
hasConfigs: !!(ratecard === null || ratecard === void 0 ? void 0 : ratecard.RatecardFeeConfig),
|
|
434
|
+
configsCount: ((_a = ratecard === null || ratecard === void 0 ? void 0 : ratecard.RatecardFeeConfig) === null || _a === void 0 ? void 0 : _a.length) || 0
|
|
435
|
+
});
|
|
436
|
+
if (!(ratecard === null || ratecard === void 0 ? void 0 : ratecard.RatecardFeeConfig)) {
|
|
437
|
+
console.log('[buildFeeExclusionsMap] Nenhuma configuração encontrada, retornando mapa vazio');
|
|
438
|
+
return exclusionsMap;
|
|
439
|
+
}
|
|
440
|
+
// Iterar sobre todas as configurações de fees do ratecard
|
|
441
|
+
ratecard.RatecardFeeConfig.forEach(function (config) {
|
|
442
|
+
var _a, _b;
|
|
443
|
+
// Verificar se é uma configuração de exclusão
|
|
444
|
+
if (((_a = config.feeConfig) === null || _a === void 0 ? void 0 : _a.configKey) === exports.RatecardFeeConfigKeyEnum.EXCLUDE_FROM_TOTAL_PERCENTAGE &&
|
|
445
|
+
config.configValue &&
|
|
446
|
+
config.feeId) {
|
|
447
|
+
console.log('[buildFeeExclusionsMap] Configuração de exclusão encontrada', {
|
|
448
|
+
feeId: config.feeId,
|
|
449
|
+
feeName: (_b = config.fee) === null || _b === void 0 ? void 0 : _b.name,
|
|
450
|
+
configValue: config.configValue
|
|
451
|
+
});
|
|
452
|
+
// Parse dos IDs separados por vírgula
|
|
453
|
+
var excludedIds = config.configValue
|
|
454
|
+
.split(',')
|
|
455
|
+
.map(function (id) { return parseInt(id.trim(), 10); })
|
|
456
|
+
.filter(function (id) { return !isNaN(id); });
|
|
457
|
+
if (excludedIds.length > 0) {
|
|
458
|
+
exclusionsMap.set(config.feeId, new Set(excludedIds));
|
|
459
|
+
console.log('[buildFeeExclusionsMap] Exclusões adicionadas ao mapa', {
|
|
460
|
+
feeId: config.feeId,
|
|
461
|
+
excludedIds: Array.from(excludedIds)
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
});
|
|
466
|
+
console.log('[buildFeeExclusionsMap] Mapa de exclusões construído', {
|
|
467
|
+
totalExclusions: exclusionsMap.size,
|
|
468
|
+
exclusionsMap: Array.from(exclusionsMap.entries()).map(function (_a) {
|
|
469
|
+
var feeId = _a[0], excludedIds = _a[1];
|
|
470
|
+
return ({
|
|
471
|
+
feeId: feeId,
|
|
472
|
+
excludedIds: Array.from(excludedIds)
|
|
473
|
+
});
|
|
474
|
+
})
|
|
475
|
+
});
|
|
476
|
+
return exclusionsMap;
|
|
477
|
+
};
|
|
478
|
+
|
|
420
479
|
/******************************************************************************
|
|
421
480
|
Copyright (c) Microsoft Corporation.
|
|
422
481
|
|
|
@@ -993,8 +1052,9 @@ var calculateFee = function (ratecardLaneFee, cte, allFees, debug, allFeesForCal
|
|
|
993
1052
|
* para resolver a interdependência entre elas (ex: TRT e GAC)
|
|
994
1053
|
* @param currentValues - Opcional: Map de feeId -> valor atual (para usar valores já calculados/editados)
|
|
995
1054
|
* @param manuallyEditedFeeIds - Opcional: Set de feeIds que foram editadas manualmente e não devem ser recalculadas
|
|
1055
|
+
* @param feeExclusions - Opcional: Map de feeId -> Set de feeIds excluídos da base de cálculo
|
|
996
1056
|
*/
|
|
997
|
-
var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc, currentValues, manuallyEditedFeeIds) {
|
|
1057
|
+
var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc, currentValues, manuallyEditedFeeIds, feeExclusions) {
|
|
998
1058
|
var results = new Map();
|
|
999
1059
|
// Separar fees em dois grupos
|
|
1000
1060
|
// IMPORTANTE: ICMS não deve ser calculado aqui, ele tem tratamento especial no calculateFee
|
|
@@ -1055,11 +1115,20 @@ var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc, curre
|
|
|
1055
1115
|
results.set(pf.fee.id, __assign(__assign({}, pf), { totalFee: manualValue, totalToCalc: manualValue, resultFee: "".concat(convertNumberToCurrency(manualValue, 'pt-br'), " (editado manualmente)") }));
|
|
1056
1116
|
return;
|
|
1057
1117
|
}
|
|
1058
|
-
// Calcular base: fees não-percentuais + outras fees percentuais (exceto ela mesma)
|
|
1118
|
+
// Calcular base: fees não-percentuais + outras fees percentuais (exceto ela mesma e excluídas)
|
|
1119
|
+
var excludedFeeIds = (feeExclusions === null || feeExclusions === void 0 ? void 0 : feeExclusions.get(pf.fee.id)) || new Set();
|
|
1120
|
+
console.log('[calculateTotalPercentageFees] Calculando fee TOTAL_PERCENTAGE', {
|
|
1121
|
+
feeId: pf.fee.id,
|
|
1122
|
+
feeName: pf.fee.name,
|
|
1123
|
+
percentValue: pf.value,
|
|
1124
|
+
hasExclusions: excludedFeeIds.size > 0,
|
|
1125
|
+
excludedFeeIds: Array.from(excludedFeeIds),
|
|
1126
|
+
iteration: iteration
|
|
1127
|
+
});
|
|
1059
1128
|
var basePercentage = Array.from(previousValues.entries())
|
|
1060
1129
|
.filter(function (_a) {
|
|
1061
1130
|
var feeId = _a[0];
|
|
1062
|
-
return feeId !== pf.fee.id;
|
|
1131
|
+
return feeId !== pf.fee.id && !excludedFeeIds.has(feeId);
|
|
1063
1132
|
})
|
|
1064
1133
|
.reduce(function (sum, _a) {
|
|
1065
1134
|
var value = _a[1];
|
|
@@ -1068,6 +1137,23 @@ var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc, curre
|
|
|
1068
1137
|
var baseValue = baseNonPercentage + basePercentage;
|
|
1069
1138
|
var percentValue = (+pf.value / 100);
|
|
1070
1139
|
var calculatedValue = baseValue * percentValue;
|
|
1140
|
+
console.log('[calculateTotalPercentageFees] Base calculada', {
|
|
1141
|
+
feeId: pf.fee.id,
|
|
1142
|
+
feeName: pf.fee.name,
|
|
1143
|
+
baseNonPercentage: baseNonPercentage,
|
|
1144
|
+
basePercentage: basePercentage,
|
|
1145
|
+
baseValue: baseValue,
|
|
1146
|
+
percentValue: "".concat(pf.value, "%"),
|
|
1147
|
+
calculatedValue: calculatedValue,
|
|
1148
|
+
allPreviousValues: Array.from(previousValues.entries()).map(function (_a) {
|
|
1149
|
+
var id = _a[0], val = _a[1];
|
|
1150
|
+
return ({
|
|
1151
|
+
feeId: id,
|
|
1152
|
+
value: val,
|
|
1153
|
+
excluded: excludedFeeIds.has(id)
|
|
1154
|
+
});
|
|
1155
|
+
})
|
|
1156
|
+
});
|
|
1071
1157
|
previousValues.set(pf.fee.id, calculatedValue);
|
|
1072
1158
|
// Armazenar resultado
|
|
1073
1159
|
results.set(pf.fee.id, __assign(__assign({}, pf), { totalFee: calculatedValue, totalToCalc: calculatedValue, resultFee: "".concat(convertNumberToCurrency(baseValue, 'pt-br'), " x ").concat(+pf.value, "% = ").concat(convertNumberToCurrency(calculatedValue, 'pt-br')) }));
|
|
@@ -1136,17 +1222,116 @@ var calculateIcms = function (totalFromAllFees, icmsRate) {
|
|
|
1136
1222
|
};
|
|
1137
1223
|
};
|
|
1138
1224
|
|
|
1225
|
+
/**
|
|
1226
|
+
* Calcula todas as fees em 3 passadas (normais, TOTAL_PERCENTAGE, ICMS) e retorna um cache detalhado
|
|
1227
|
+
* com totalFee, totalToCalc e resultFee para cada fee.
|
|
1228
|
+
*
|
|
1229
|
+
* Esta função centraliza a lógica de cálculo que estava duplicada em vários lugares do ModalCte.
|
|
1230
|
+
*/
|
|
1231
|
+
var calculateFeesCacheWithDetails = function (options) {
|
|
1232
|
+
var fees = options.fees, cte = options.cte, allFeesForCalc = options.allFeesForCalc, _a = options.excludedIndexes, excludedIndexes = _a === void 0 ? new Set() : _a, preCalculatedValues = options.preCalculatedValues, manuallyEditedFeeIds = options.manuallyEditedFeeIds, ratecard = options.ratecard;
|
|
1233
|
+
var cache = {};
|
|
1234
|
+
// Filtrar fees não excluídas
|
|
1235
|
+
var nonExcludedFees = fees.filter(function (_, idx) { return !excludedIndexes.has(idx); });
|
|
1236
|
+
// Obter ratecard se não foi fornecido
|
|
1237
|
+
var ratecardToUse = ratecard || getRatecardFromCte(cte) || undefined;
|
|
1238
|
+
// Construir mapa de exclusões a partir das configurações do ratecard
|
|
1239
|
+
var feeExclusions = buildFeeExclusionsMap(ratecardToUse);
|
|
1240
|
+
// PASSADA 1: Calcular fees normais (não TOTAL_PERCENTAGE, não ICMS)
|
|
1241
|
+
fees.forEach(function (fee, idx) {
|
|
1242
|
+
var _a, _b;
|
|
1243
|
+
if (excludedIndexes.has(idx))
|
|
1244
|
+
return;
|
|
1245
|
+
if (((_a = fee.fee) === null || _a === void 0 ? void 0 : _a.feeCalculationTypeId) !== exports.FeeCalculationTypeEnum.TOTAL_PERCENTAGE &&
|
|
1246
|
+
((_b = fee.fee) === null || _b === void 0 ? void 0 : _b.id) !== exports.FeeEnum.ICMS) {
|
|
1247
|
+
var calculated = calculateFee(fee, cte, nonExcludedFees, true, allFeesForCalc);
|
|
1248
|
+
if (calculated) {
|
|
1249
|
+
cache[idx] = {
|
|
1250
|
+
totalFee: Number((calculated.totalFee || 0).toFixed(2)),
|
|
1251
|
+
totalToCalc: Number((calculated.totalToCalc || 0).toFixed(2)),
|
|
1252
|
+
resultFee: calculated.resultFee || '',
|
|
1253
|
+
};
|
|
1254
|
+
}
|
|
1255
|
+
}
|
|
1256
|
+
});
|
|
1257
|
+
// PASSADA 2: Calcular TOTAL_PERCENTAGE de forma iterativa com exclusões
|
|
1258
|
+
var percentageFeesCache = calculateTotalPercentageFees(nonExcludedFees, cte, allFeesForCalc, preCalculatedValues, manuallyEditedFeeIds, feeExclusions);
|
|
1259
|
+
fees.forEach(function (fee, idx) {
|
|
1260
|
+
var _a, _b;
|
|
1261
|
+
if (excludedIndexes.has(idx))
|
|
1262
|
+
return;
|
|
1263
|
+
if (((_a = fee.fee) === null || _a === void 0 ? void 0 : _a.feeCalculationTypeId) === exports.FeeCalculationTypeEnum.TOTAL_PERCENTAGE && ((_b = fee.fee) === null || _b === void 0 ? void 0 : _b.id)) {
|
|
1264
|
+
var cachedResult = percentageFeesCache.get(fee.fee.id);
|
|
1265
|
+
if (cachedResult) {
|
|
1266
|
+
cache[idx] = {
|
|
1267
|
+
totalFee: Number((cachedResult.totalFee || 0).toFixed(2)),
|
|
1268
|
+
totalToCalc: Number((cachedResult.totalToCalc || 0).toFixed(2)),
|
|
1269
|
+
resultFee: cachedResult.resultFee || '',
|
|
1270
|
+
};
|
|
1271
|
+
}
|
|
1272
|
+
}
|
|
1273
|
+
});
|
|
1274
|
+
// PASSADA 3: Calcular ICMS
|
|
1275
|
+
fees.forEach(function (fee, idx) {
|
|
1276
|
+
var _a;
|
|
1277
|
+
if (excludedIndexes.has(idx))
|
|
1278
|
+
return;
|
|
1279
|
+
if (((_a = fee.fee) === null || _a === void 0 ? void 0 : _a.id) === exports.FeeEnum.ICMS) {
|
|
1280
|
+
var icmsRate = ((cte === null || cte === void 0 ? void 0 : cte.icmsIncidence) !== undefined && (cte === null || cte === void 0 ? void 0 : cte.icmsIncidence) !== null && !isNaN(+cte.icmsIncidence))
|
|
1281
|
+
? +(cte.icmsIncidence) / 100
|
|
1282
|
+
: fee.value || 0;
|
|
1283
|
+
var valuesWithoutIcms = Object.entries(cache)
|
|
1284
|
+
.filter(function (_a) {
|
|
1285
|
+
var _b;
|
|
1286
|
+
var key = _a[0];
|
|
1287
|
+
var feeIdx = Number(key);
|
|
1288
|
+
var f = fees[feeIdx];
|
|
1289
|
+
return ((_b = f.fee) === null || _b === void 0 ? void 0 : _b.id) !== exports.FeeEnum.ICMS;
|
|
1290
|
+
})
|
|
1291
|
+
.map(function (_a) {
|
|
1292
|
+
var calcFee = _a[1];
|
|
1293
|
+
return (calcFee === null || calcFee === void 0 ? void 0 : calcFee.totalToCalc) || 0;
|
|
1294
|
+
})
|
|
1295
|
+
.filter(function (val) { return val > 0; });
|
|
1296
|
+
var icmsCalculation = calculateIcms(valuesWithoutIcms, icmsRate);
|
|
1297
|
+
if (icmsCalculation.isValid) {
|
|
1298
|
+
var resultFee = icmsCalculation.totalValueFromAllFees && icmsCalculation.valueToDivide
|
|
1299
|
+
? "(".concat(icmsCalculation.totalValueFromAllFees.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' }), " / ").concat(icmsCalculation.valueToDivide, ") x ").concat(icmsRate, " = ").concat(icmsCalculation.total.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' }))
|
|
1300
|
+
: '';
|
|
1301
|
+
cache[idx] = {
|
|
1302
|
+
totalFee: Number(icmsCalculation.total.toFixed(2)),
|
|
1303
|
+
totalToCalc: Number(icmsCalculation.total.toFixed(2)),
|
|
1304
|
+
resultFee: resultFee,
|
|
1305
|
+
};
|
|
1306
|
+
}
|
|
1307
|
+
}
|
|
1308
|
+
});
|
|
1309
|
+
return cache;
|
|
1310
|
+
};
|
|
1311
|
+
/**
|
|
1312
|
+
* Calcula o total de fees usando calculateFeesCacheWithDetails
|
|
1313
|
+
*/
|
|
1314
|
+
var calculateFeesTotalFromCache = function (options) {
|
|
1315
|
+
var cache = calculateFeesCacheWithDetails(options);
|
|
1316
|
+
return Object.values(cache).reduce(function (sum, calcFee) { return sum + ((calcFee === null || calcFee === void 0 ? void 0 : calcFee.totalToCalc) || 0); }, 0);
|
|
1317
|
+
};
|
|
1318
|
+
|
|
1139
1319
|
/**
|
|
1140
1320
|
* Calcula o total de fees de forma consistente, usando cálculo iterativo para TOTAL_PERCENTAGE
|
|
1141
1321
|
* @param fees - Array de fees a calcular
|
|
1142
1322
|
* @param cte - CTE para cálculo
|
|
1143
1323
|
* @param allFeesForCalc - Todas as fees disponíveis para cálculo
|
|
1324
|
+
* @param ratecard - Tarifário (opcional, será extraído do CTE se não fornecido)
|
|
1144
1325
|
* @returns Total calculado
|
|
1145
1326
|
*/
|
|
1146
|
-
var calculateFeesTotal = function (fees, cte, allFeesForCalc) {
|
|
1327
|
+
var calculateFeesTotal = function (fees, cte, allFeesForCalc, ratecard) {
|
|
1147
1328
|
if (!fees || fees.length === 0)
|
|
1148
1329
|
return 0;
|
|
1149
1330
|
var cache = {};
|
|
1331
|
+
// Obter ratecard se não foi fornecido
|
|
1332
|
+
var ratecardToUse = ratecard || getRatecardFromCte(cte) || undefined;
|
|
1333
|
+
// Construir mapa de exclusões a partir das configurações do ratecard
|
|
1334
|
+
var feeExclusions = buildFeeExclusionsMap(ratecardToUse);
|
|
1150
1335
|
// PASSADA 1: Calcular fees normais (não TOTAL_PERCENTAGE, não ICMS)
|
|
1151
1336
|
fees.forEach(function (fee, idx) {
|
|
1152
1337
|
var _a, _b;
|
|
@@ -1155,8 +1340,8 @@ var calculateFeesTotal = function (fees, cte, allFeesForCalc) {
|
|
|
1155
1340
|
cache[idx] = calculateFee(fee, cte, fees, true, allFeesForCalc);
|
|
1156
1341
|
}
|
|
1157
1342
|
});
|
|
1158
|
-
// PASSADA 2: Calcular TOTAL_PERCENTAGE de forma iterativa
|
|
1159
|
-
var percentageFeesCache = calculateTotalPercentageFees(fees, cte, allFeesForCalc);
|
|
1343
|
+
// PASSADA 2: Calcular TOTAL_PERCENTAGE de forma iterativa com exclusões
|
|
1344
|
+
var percentageFeesCache = calculateTotalPercentageFees(fees, cte, allFeesForCalc, undefined, undefined, feeExclusions);
|
|
1160
1345
|
fees.forEach(function (fee, idx) {
|
|
1161
1346
|
var _a, _b;
|
|
1162
1347
|
if (((_a = fee.fee) === null || _a === void 0 ? void 0 : _a.feeCalculationTypeId) === exports.FeeCalculationTypeEnum.TOTAL_PERCENTAGE &&
|
|
@@ -1273,6 +1458,7 @@ var getFilteredFeesToAudit = function (_a) {
|
|
|
1273
1458
|
exports.FeeEnum.COLLECT_PERCENTAGE_TOTAL,
|
|
1274
1459
|
exports.FeeEnum.COLLECT_REVERSE_PERCENTAGE_TOTAL,
|
|
1275
1460
|
exports.FeeEnum.APPOINTMENT_MIN_VALUE,
|
|
1461
|
+
exports.FeeEnum.APPOINTMENT_BY_INVOICE_QUANTITY,
|
|
1276
1462
|
];
|
|
1277
1463
|
if (collectAndAppointmentFees.includes((_a = i.fee) === null || _a === void 0 ? void 0 : _a.id)) {
|
|
1278
1464
|
switch ((_b = i.fee) === null || _b === void 0 ? void 0 : _b.id) {
|
|
@@ -8287,8 +8473,11 @@ exports.TARIFF_MAPPING = TARIFF_MAPPING;
|
|
|
8287
8473
|
exports.addTariffMapping = addTariffMapping;
|
|
8288
8474
|
exports.applyRedeliveryMultiplier = applyRedeliveryMultiplier;
|
|
8289
8475
|
exports.buildDynamicMapping = buildDynamicMapping;
|
|
8476
|
+
exports.buildFeeExclusionsMap = buildFeeExclusionsMap;
|
|
8290
8477
|
exports.calculateFee = calculateFee;
|
|
8478
|
+
exports.calculateFeesCacheWithDetails = calculateFeesCacheWithDetails;
|
|
8291
8479
|
exports.calculateFeesTotal = calculateFeesTotal;
|
|
8480
|
+
exports.calculateFeesTotalFromCache = calculateFeesTotalFromCache;
|
|
8292
8481
|
exports.calculateIcms = calculateIcms;
|
|
8293
8482
|
exports.calculateTotalPercentageFees = calculateTotalPercentageFees;
|
|
8294
8483
|
exports.convertNumberToCurrency = convertNumberToCurrency;
|
package/build/index.js.gz
CHANGED
|
Binary file
|