@freshpointcz/fresh-core 0.0.15 → 0.0.17
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/index.d.mts +48 -7
- package/dist/index.d.ts +48 -7
- package/dist/index.js +102 -82
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +100 -80
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
package/dist/index.mjs
CHANGED
|
@@ -108,7 +108,7 @@ var require_main = __commonJS({
|
|
|
108
108
|
var fs = __require("fs");
|
|
109
109
|
var path2 = __require("path");
|
|
110
110
|
var os = __require("os");
|
|
111
|
-
var
|
|
111
|
+
var crypto3 = __require("crypto");
|
|
112
112
|
var packageJson = require_package();
|
|
113
113
|
var version = packageJson.version;
|
|
114
114
|
var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;
|
|
@@ -355,7 +355,7 @@ var require_main = __commonJS({
|
|
|
355
355
|
const authTag = ciphertext.subarray(-16);
|
|
356
356
|
ciphertext = ciphertext.subarray(12, -16);
|
|
357
357
|
try {
|
|
358
|
-
const aesgcm =
|
|
358
|
+
const aesgcm = crypto3.createDecipheriv("aes-256-gcm", key, nonce);
|
|
359
359
|
aesgcm.setAuthTag(authTag);
|
|
360
360
|
return `${aesgcm.update(ciphertext)}${aesgcm.final()}`;
|
|
361
361
|
} catch (error) {
|
|
@@ -648,56 +648,6 @@ __name(_SinglePromiseWaiter, "SinglePromiseWaiter");
|
|
|
648
648
|
__publicField(_SinglePromiseWaiter, "_instance");
|
|
649
649
|
var SinglePromiseWaiter = _SinglePromiseWaiter;
|
|
650
650
|
|
|
651
|
-
// src/common/winston.ts
|
|
652
|
-
import winston from "winston";
|
|
653
|
-
var SERVICE = process.env.SERVICE_NAME || "depot-ordering-service";
|
|
654
|
-
var ENV = process.env.NODE_ENV || "localhost";
|
|
655
|
-
var levelToSeverity = {
|
|
656
|
-
silly: "debug",
|
|
657
|
-
verbose: "debug",
|
|
658
|
-
debug: "debug",
|
|
659
|
-
http: "info",
|
|
660
|
-
info: "info",
|
|
661
|
-
warn: "warn",
|
|
662
|
-
error: "error"
|
|
663
|
-
};
|
|
664
|
-
var baseFormat = winston.format.combine(winston.format.timestamp({
|
|
665
|
-
format: /* @__PURE__ */ __name(() => (/* @__PURE__ */ new Date()).toISOString(), "format")
|
|
666
|
-
}), winston.format.errors({
|
|
667
|
-
stack: true
|
|
668
|
-
}), winston.format.printf((info) => {
|
|
669
|
-
const payload = {
|
|
670
|
-
ts: info.timestamp,
|
|
671
|
-
level: info.level,
|
|
672
|
-
severity: levelToSeverity[info.level] || info.level,
|
|
673
|
-
message: info.message,
|
|
674
|
-
service: SERVICE,
|
|
675
|
-
env: ENV,
|
|
676
|
-
process_name: process.title || process.argv[1] || "node",
|
|
677
|
-
pid: process.pid,
|
|
678
|
-
device: process.env.DEVICE_ID || void 0,
|
|
679
|
-
traceId: info.traceId,
|
|
680
|
-
spanId: info.spanId,
|
|
681
|
-
extra: info.extra || info.meta || void 0,
|
|
682
|
-
stack: info.stack
|
|
683
|
-
};
|
|
684
|
-
return JSON.stringify(payload);
|
|
685
|
-
}));
|
|
686
|
-
var transports = [
|
|
687
|
-
new winston.transports.Console({
|
|
688
|
-
level: process.env.LOG_LEVEL || "info"
|
|
689
|
-
})
|
|
690
|
-
];
|
|
691
|
-
var logger = winston.createLogger({
|
|
692
|
-
level: process.env.LOG_LEVEL || "info",
|
|
693
|
-
format: baseFormat,
|
|
694
|
-
transports,
|
|
695
|
-
exitOnError: false
|
|
696
|
-
});
|
|
697
|
-
logger.stream = {
|
|
698
|
-
write: /* @__PURE__ */ __name((message) => logger.info(message.trim()), "write")
|
|
699
|
-
};
|
|
700
|
-
|
|
701
651
|
// src/common/utils/is-cron-valid.ts
|
|
702
652
|
function isValidCron(expr) {
|
|
703
653
|
const parts = expr.trim().split(/\s+/);
|
|
@@ -822,53 +772,46 @@ import { Entity } from "typeorm";
|
|
|
822
772
|
// src/database/entities/fresh-entity.ts
|
|
823
773
|
import { BaseEntity, PrimaryGeneratedColumn, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, Column } from "typeorm";
|
|
824
774
|
|
|
825
|
-
// ../../node_modules/uuid/dist/esm/
|
|
826
|
-
|
|
827
|
-
for (let i = 0; i < 256; ++i) {
|
|
828
|
-
byteToHex.push((i + 256).toString(16).slice(1));
|
|
829
|
-
}
|
|
830
|
-
function unsafeStringify(arr, offset = 0) {
|
|
831
|
-
return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();
|
|
832
|
-
}
|
|
833
|
-
__name(unsafeStringify, "unsafeStringify");
|
|
834
|
-
|
|
835
|
-
// ../../node_modules/uuid/dist/esm/rng.js
|
|
836
|
-
import { randomFillSync } from "crypto";
|
|
775
|
+
// ../../node_modules/uuid/dist/esm-node/rng.js
|
|
776
|
+
import crypto from "crypto";
|
|
837
777
|
var rnds8Pool = new Uint8Array(256);
|
|
838
778
|
var poolPtr = rnds8Pool.length;
|
|
839
779
|
function rng() {
|
|
840
780
|
if (poolPtr > rnds8Pool.length - 16) {
|
|
841
|
-
randomFillSync(rnds8Pool);
|
|
781
|
+
crypto.randomFillSync(rnds8Pool);
|
|
842
782
|
poolPtr = 0;
|
|
843
783
|
}
|
|
844
784
|
return rnds8Pool.slice(poolPtr, poolPtr += 16);
|
|
845
785
|
}
|
|
846
786
|
__name(rng, "rng");
|
|
847
787
|
|
|
848
|
-
// ../../node_modules/uuid/dist/esm/
|
|
849
|
-
|
|
788
|
+
// ../../node_modules/uuid/dist/esm-node/stringify.js
|
|
789
|
+
var byteToHex = [];
|
|
790
|
+
for (let i = 0; i < 256; ++i) {
|
|
791
|
+
byteToHex.push((i + 256).toString(16).slice(1));
|
|
792
|
+
}
|
|
793
|
+
function unsafeStringify(arr, offset = 0) {
|
|
794
|
+
return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
|
|
795
|
+
}
|
|
796
|
+
__name(unsafeStringify, "unsafeStringify");
|
|
797
|
+
|
|
798
|
+
// ../../node_modules/uuid/dist/esm-node/native.js
|
|
799
|
+
import crypto2 from "crypto";
|
|
850
800
|
var native_default = {
|
|
851
|
-
randomUUID
|
|
801
|
+
randomUUID: crypto2.randomUUID
|
|
852
802
|
};
|
|
853
803
|
|
|
854
|
-
// ../../node_modules/uuid/dist/esm/v4.js
|
|
804
|
+
// ../../node_modules/uuid/dist/esm-node/v4.js
|
|
855
805
|
function v4(options, buf, offset) {
|
|
856
|
-
var _a, _b, _c;
|
|
857
806
|
if (native_default.randomUUID && !buf && !options) {
|
|
858
807
|
return native_default.randomUUID();
|
|
859
808
|
}
|
|
860
809
|
options = options || {};
|
|
861
|
-
const rnds =
|
|
862
|
-
if (rnds.length < 16) {
|
|
863
|
-
throw new Error("Random bytes length must be >= 16");
|
|
864
|
-
}
|
|
810
|
+
const rnds = options.random || (options.rng || rng)();
|
|
865
811
|
rnds[6] = rnds[6] & 15 | 64;
|
|
866
812
|
rnds[8] = rnds[8] & 63 | 128;
|
|
867
813
|
if (buf) {
|
|
868
814
|
offset = offset || 0;
|
|
869
|
-
if (offset < 0 || offset + 16 > buf.length) {
|
|
870
|
-
throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
|
|
871
|
-
}
|
|
872
815
|
for (let i = 0; i < 16; ++i) {
|
|
873
816
|
buf[offset + i] = rnds[i];
|
|
874
817
|
}
|
|
@@ -921,7 +864,7 @@ _ts_decorate([
|
|
|
921
864
|
}),
|
|
922
865
|
Column({
|
|
923
866
|
type: "uuid",
|
|
924
|
-
default: /* @__PURE__ */ __name(() => "
|
|
867
|
+
default: /* @__PURE__ */ __name(() => "gen_random_uuid()", "default")
|
|
925
868
|
}),
|
|
926
869
|
_ts_metadata("design:type", String)
|
|
927
870
|
], FreshEntity.prototype, "uuid", void 0);
|
|
@@ -1171,6 +1114,83 @@ var _FreshDao = class _FreshDao {
|
|
|
1171
1114
|
__name(_FreshDao, "FreshDao");
|
|
1172
1115
|
var FreshDao = _FreshDao;
|
|
1173
1116
|
|
|
1117
|
+
// src/database/subscribers/base-entity-change.subscriber.ts
|
|
1118
|
+
var _BaseEntityChangeSubscriber = class _BaseEntityChangeSubscriber {
|
|
1119
|
+
// ─── TypeORM lifecycle hooks ────────────────────────────────────────
|
|
1120
|
+
afterInsert(event) {
|
|
1121
|
+
var _a;
|
|
1122
|
+
const id = (_a = event.entity) == null ? void 0 : _a.id;
|
|
1123
|
+
if (!id) {
|
|
1124
|
+
return;
|
|
1125
|
+
}
|
|
1126
|
+
if (event.queryRunner.isTransactionActive) {
|
|
1127
|
+
this.addPending(event, id, "created");
|
|
1128
|
+
} else {
|
|
1129
|
+
console.warn(`${this.SUBSCRIBER_NAME} - Notification sent outside transaction for id=${id}`);
|
|
1130
|
+
this.sendNotification(id, "created", event.queryRunner.manager);
|
|
1131
|
+
}
|
|
1132
|
+
}
|
|
1133
|
+
afterUpdate(event) {
|
|
1134
|
+
var _a, _b, _c;
|
|
1135
|
+
const id = (_c = (_a = event.entity) == null ? void 0 : _a.id) != null ? _c : (_b = event.databaseEntity) == null ? void 0 : _b.id;
|
|
1136
|
+
if (!id) {
|
|
1137
|
+
return;
|
|
1138
|
+
}
|
|
1139
|
+
if (event.queryRunner.isTransactionActive) {
|
|
1140
|
+
this.addPending(event, id, "updated");
|
|
1141
|
+
} else {
|
|
1142
|
+
console.warn(`${this.SUBSCRIBER_NAME} - Notification sent outside transaction for id=${id}`);
|
|
1143
|
+
this.sendNotification(id, "updated", event.queryRunner.manager);
|
|
1144
|
+
}
|
|
1145
|
+
}
|
|
1146
|
+
afterSoftRemove(event) {
|
|
1147
|
+
var _a, _b, _c;
|
|
1148
|
+
const id = (_c = (_a = event.entity) == null ? void 0 : _a.id) != null ? _c : (_b = event.databaseEntity) == null ? void 0 : _b.id;
|
|
1149
|
+
if (!id) {
|
|
1150
|
+
return;
|
|
1151
|
+
}
|
|
1152
|
+
if (event.queryRunner.isTransactionActive) {
|
|
1153
|
+
this.addPending(event, id, "deleted");
|
|
1154
|
+
} else {
|
|
1155
|
+
console.warn(`${this.SUBSCRIBER_NAME} - Notification sent outside transaction for id=${id}`);
|
|
1156
|
+
this.sendNotification(id, "deleted", event.queryRunner.manager);
|
|
1157
|
+
}
|
|
1158
|
+
}
|
|
1159
|
+
async afterTransactionCommit(event) {
|
|
1160
|
+
var _a;
|
|
1161
|
+
const pending = (_a = event.queryRunner.data) == null ? void 0 : _a[this.PENDING_KEY];
|
|
1162
|
+
if (!pending || pending.size === 0) {
|
|
1163
|
+
return;
|
|
1164
|
+
}
|
|
1165
|
+
event.queryRunner.data[this.PENDING_KEY] = /* @__PURE__ */ new Map();
|
|
1166
|
+
for (const [id, changeEvent] of pending) {
|
|
1167
|
+
await this.sendNotification(id, changeEvent, event.connection.manager);
|
|
1168
|
+
}
|
|
1169
|
+
}
|
|
1170
|
+
// ─── Private helpers ───────────────────────────────────────────────
|
|
1171
|
+
addPending(event, id, changeEvent) {
|
|
1172
|
+
if (!event.queryRunner.data) {
|
|
1173
|
+
event.queryRunner.data = {};
|
|
1174
|
+
}
|
|
1175
|
+
if (!event.queryRunner.data[this.PENDING_KEY]) {
|
|
1176
|
+
event.queryRunner.data[this.PENDING_KEY] = /* @__PURE__ */ new Map();
|
|
1177
|
+
}
|
|
1178
|
+
const existing = event.queryRunner.data[this.PENDING_KEY].get(id);
|
|
1179
|
+
if (!existing || changeEvent === "created" || changeEvent === "deleted") {
|
|
1180
|
+
event.queryRunner.data[this.PENDING_KEY].set(id, changeEvent);
|
|
1181
|
+
}
|
|
1182
|
+
}
|
|
1183
|
+
async sendNotification(id, changeEvent, manager) {
|
|
1184
|
+
try {
|
|
1185
|
+
await this.handleNotification(id, changeEvent, manager);
|
|
1186
|
+
} catch (error) {
|
|
1187
|
+
console.error(`${this.SUBSCRIBER_NAME} - Failed to send notification: ${error instanceof Error ? error.message : error}`);
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1190
|
+
};
|
|
1191
|
+
__name(_BaseEntityChangeSubscriber, "BaseEntityChangeSubscriber");
|
|
1192
|
+
var BaseEntityChangeSubscriber = _BaseEntityChangeSubscriber;
|
|
1193
|
+
|
|
1174
1194
|
// src/common/schema/entities/category.entity.ts
|
|
1175
1195
|
function _ts_decorate4(decorators, target, key, desc) {
|
|
1176
1196
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -1670,6 +1690,7 @@ export {
|
|
|
1670
1690
|
AMOUNT_UNIT,
|
|
1671
1691
|
ActionCommandCode,
|
|
1672
1692
|
ApiError,
|
|
1693
|
+
BaseEntityChangeSubscriber,
|
|
1673
1694
|
Category,
|
|
1674
1695
|
DataHelper,
|
|
1675
1696
|
DateUtils,
|
|
@@ -1702,7 +1723,6 @@ export {
|
|
|
1702
1723
|
isNumberInRange,
|
|
1703
1724
|
isObject,
|
|
1704
1725
|
isString,
|
|
1705
|
-
isValidCron
|
|
1706
|
-
logger
|
|
1726
|
+
isValidCron
|
|
1707
1727
|
};
|
|
1708
1728
|
//# sourceMappingURL=index.mjs.map
|