@zintrust/core 0.1.15 → 0.1.16

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.
Files changed (97) hide show
  1. package/package.json +1 -1
  2. package/src/cli/CLI.d.ts.map +1 -1
  3. package/src/cli/CLI.js +6 -0
  4. package/src/cli/commands/BroadcastWorkCommand.d.ts +10 -0
  5. package/src/cli/commands/BroadcastWorkCommand.d.ts.map +1 -0
  6. package/src/cli/commands/BroadcastWorkCommand.js +16 -0
  7. package/src/cli/commands/NotificationWorkCommand.d.ts +10 -0
  8. package/src/cli/commands/NotificationWorkCommand.d.ts.map +1 -0
  9. package/src/cli/commands/NotificationWorkCommand.js +16 -0
  10. package/src/cli/commands/QueueCommand.d.ts +10 -0
  11. package/src/cli/commands/QueueCommand.d.ts.map +1 -0
  12. package/src/cli/commands/QueueCommand.js +63 -0
  13. package/src/cli/commands/QueueWorkCommandUtils.d.ts +10 -0
  14. package/src/cli/commands/QueueWorkCommandUtils.d.ts.map +1 -0
  15. package/src/cli/commands/QueueWorkCommandUtils.js +43 -0
  16. package/src/cli/commands/createKindWorkCommand.d.ts +9 -0
  17. package/src/cli/commands/createKindWorkCommand.d.ts.map +1 -0
  18. package/src/cli/commands/createKindWorkCommand.js +33 -0
  19. package/src/cli/commands/index.d.ts +3 -0
  20. package/src/cli/commands/index.d.ts.map +1 -1
  21. package/src/cli/commands/index.js +3 -0
  22. package/src/cli/scaffolding/ModelGenerator.d.ts.map +1 -1
  23. package/src/cli/scaffolding/ModelGenerator.js +1 -0
  24. package/src/cli/workers/QueueWorkRunner.d.ts +23 -0
  25. package/src/cli/workers/QueueWorkRunner.d.ts.map +1 -0
  26. package/src/cli/workers/QueueWorkRunner.js +142 -0
  27. package/src/collections/Collection.d.ts +30 -0
  28. package/src/collections/Collection.d.ts.map +1 -0
  29. package/src/collections/Collection.js +146 -0
  30. package/src/collections/index.d.ts +3 -0
  31. package/src/collections/index.d.ts.map +1 -0
  32. package/src/collections/index.js +1 -0
  33. package/src/events/EventDispatcher.d.ts +16 -0
  34. package/src/events/EventDispatcher.d.ts.map +1 -0
  35. package/src/events/EventDispatcher.js +90 -0
  36. package/src/events/index.d.ts +3 -0
  37. package/src/events/index.d.ts.map +1 -0
  38. package/src/events/index.js +1 -0
  39. package/src/features/Queue.js +1 -1
  40. package/src/http/Response.d.ts +2 -2
  41. package/src/http/Response.d.ts.map +1 -1
  42. package/src/index.d.ts +11 -0
  43. package/src/index.d.ts.map +1 -1
  44. package/src/index.js +11 -0
  45. package/src/middleware/CsrfMiddleware.d.ts.map +1 -1
  46. package/src/middleware/CsrfMiddleware.js +20 -25
  47. package/src/middleware/SessionMiddleware.d.ts +8 -0
  48. package/src/middleware/SessionMiddleware.d.ts.map +1 -0
  49. package/src/middleware/SessionMiddleware.js +15 -0
  50. package/src/orm/Model.d.ts +15 -0
  51. package/src/orm/Model.d.ts.map +1 -1
  52. package/src/orm/Model.js +57 -8
  53. package/src/orm/QueryBuilder.d.ts +9 -1
  54. package/src/orm/QueryBuilder.d.ts.map +1 -1
  55. package/src/orm/QueryBuilder.js +54 -2
  56. package/src/scripts/TemplateSync.js +23 -1
  57. package/src/security/PasswordResetTokenBroker.d.ts +39 -0
  58. package/src/security/PasswordResetTokenBroker.d.ts.map +1 -0
  59. package/src/security/PasswordResetTokenBroker.js +131 -0
  60. package/src/session/SessionManager.d.ts +39 -0
  61. package/src/session/SessionManager.d.ts.map +1 -0
  62. package/src/session/SessionManager.js +149 -0
  63. package/src/session/index.d.ts +3 -0
  64. package/src/session/index.d.ts.map +1 -0
  65. package/src/session/index.js +1 -0
  66. package/src/templates/features/Queue.ts.tpl +4 -3
  67. package/src/templates/project/basic/config/FileLogWriter.ts.tpl +4 -3
  68. package/src/templates/project/basic/config/SecretsManager.ts.tpl +1 -1
  69. package/src/templates/project/basic/config/broadcast.ts.tpl +2 -2
  70. package/src/templates/project/basic/config/cache.ts.tpl +2 -2
  71. package/src/templates/project/basic/config/database.ts.tpl +2 -2
  72. package/src/templates/project/basic/config/features.ts.tpl +2 -2
  73. package/src/templates/project/basic/config/logger.ts.tpl +0 -2
  74. package/src/templates/project/basic/config/logging/HttpLogger.ts.tpl +1 -1
  75. package/src/templates/project/basic/config/logging/SlackLogger.ts.tpl +1 -1
  76. package/src/templates/project/basic/config/mail.ts.tpl +2 -2
  77. package/src/templates/project/basic/config/microservices.ts.tpl +1 -1
  78. package/src/templates/project/basic/config/middleware.ts.tpl +6 -9
  79. package/src/templates/project/basic/config/notification.ts.tpl +2 -2
  80. package/src/templates/project/basic/config/security.ts.tpl +1 -2
  81. package/src/templates/project/basic/config/storage.ts.tpl +2 -2
  82. package/src/templates/project/basic/config/type.ts.tpl +2 -2
  83. package/src/tools/broadcast/Broadcast.d.ts +8 -0
  84. package/src/tools/broadcast/Broadcast.d.ts.map +1 -1
  85. package/src/tools/broadcast/Broadcast.js +23 -0
  86. package/src/tools/notification/Notification.d.ts +10 -0
  87. package/src/tools/notification/Notification.d.ts.map +1 -1
  88. package/src/tools/notification/Notification.js +21 -0
  89. package/src/workers/BroadcastWorker.d.ts +22 -0
  90. package/src/workers/BroadcastWorker.d.ts.map +1 -0
  91. package/src/workers/BroadcastWorker.js +24 -0
  92. package/src/workers/NotificationWorker.d.ts +22 -0
  93. package/src/workers/NotificationWorker.d.ts.map +1 -0
  94. package/src/workers/NotificationWorker.js +23 -0
  95. package/src/workers/createQueueWorker.d.ts +24 -0
  96. package/src/workers/createQueueWorker.d.ts.map +1 -0
  97. package/src/workers/createQueueWorker.js +114 -0
@@ -0,0 +1,146 @@
1
+ function normalizeToArray(items) {
2
+ if (items === null || items === undefined)
3
+ return [];
4
+ if (typeof items[Symbol.iterator] === 'function') {
5
+ return Array.from(items);
6
+ }
7
+ return Array.from(items);
8
+ }
9
+ function stableArray(items) {
10
+ return items.slice();
11
+ }
12
+ function firstMatch(snapshot, fn) {
13
+ if (!fn)
14
+ return snapshot[0];
15
+ for (let i = 0; i < snapshot.length; i += 1) {
16
+ if (fn(snapshot[i], i))
17
+ return snapshot[i];
18
+ }
19
+ return undefined;
20
+ }
21
+ function lastMatch(snapshot, fn) {
22
+ if (!fn)
23
+ return snapshot.at(-1);
24
+ for (let i = snapshot.length - 1; i >= 0; i -= 1) {
25
+ if (fn(snapshot[i], i))
26
+ return snapshot[i];
27
+ }
28
+ return undefined;
29
+ }
30
+ function uniqueItems(snapshot, keySelector) {
31
+ const seen = new Set();
32
+ const out = [];
33
+ for (const item of snapshot) {
34
+ const key = keySelector ? keySelector(item) : item;
35
+ if (seen.has(key))
36
+ continue;
37
+ seen.add(key);
38
+ out.push(item);
39
+ }
40
+ return out;
41
+ }
42
+ function sortByKey(snapshot, keySelector) {
43
+ const out = snapshot.slice();
44
+ out.sort((a, b) => {
45
+ const ka = keySelector(a);
46
+ const kb = keySelector(b);
47
+ const aNil = ka === null || ka === undefined;
48
+ const bNil = kb === null || kb === undefined;
49
+ if (aNil && bNil)
50
+ return 0;
51
+ if (aNil)
52
+ return 1;
53
+ if (bNil)
54
+ return -1;
55
+ if (typeof ka === 'number' && typeof kb === 'number')
56
+ return ka - kb;
57
+ return String(ka).localeCompare(String(kb));
58
+ });
59
+ return out;
60
+ }
61
+ function chunkItems(snapshot, size) {
62
+ const n = Math.floor(size);
63
+ if (!Number.isFinite(n) || n <= 0)
64
+ return [];
65
+ const out = [];
66
+ for (let i = 0; i < snapshot.length; i += n) {
67
+ out.push(snapshot.slice(i, i + n));
68
+ }
69
+ return out;
70
+ }
71
+ function keyByItems(snapshot, keySelector) {
72
+ const out = new Map();
73
+ for (const item of snapshot) {
74
+ out.set(keySelector(item), item);
75
+ }
76
+ return out;
77
+ }
78
+ function groupByItems(snapshot, keySelector) {
79
+ const groups = new Map();
80
+ for (const item of snapshot) {
81
+ const key = keySelector(item);
82
+ const bucket = groups.get(key);
83
+ if (bucket)
84
+ bucket.push(item);
85
+ else
86
+ groups.set(key, [item]);
87
+ }
88
+ const out = new Map();
89
+ for (const [k, bucket] of groups.entries()) {
90
+ out.set(k, makeCollection(bucket));
91
+ }
92
+ return out;
93
+ }
94
+ function makeCollection(items) {
95
+ const snapshot = stableArray(items);
96
+ const api = Object.freeze({
97
+ all: () => snapshot.slice(),
98
+ toArray: () => snapshot.slice(),
99
+ count: () => snapshot.length,
100
+ isEmpty: () => snapshot.length === 0,
101
+ map: (fn) => makeCollection(snapshot.map(fn)),
102
+ filter: (fn) => makeCollection(snapshot.filter(fn)),
103
+ reduce: (fn, initial) => snapshot.reduce(fn, initial),
104
+ first: (fn) => firstMatch(snapshot, fn),
105
+ last: (fn) => lastMatch(snapshot, fn),
106
+ pluck: (key) => makeCollection(snapshot.map((item) => item[key])),
107
+ where: (key, value) => makeCollection(snapshot.filter((item) => item[key] === value)),
108
+ unique: (keySelector) => makeCollection(uniqueItems(snapshot, keySelector)),
109
+ sortBy: (keySelector) => makeCollection(sortByKey(snapshot, keySelector)),
110
+ chunk: (size) => makeCollection(chunkItems(snapshot, size)),
111
+ take: (n) => {
112
+ const count = Math.max(0, Math.floor(n));
113
+ return makeCollection(snapshot.slice(0, count));
114
+ },
115
+ skip: (n) => {
116
+ const count = Math.max(0, Math.floor(n));
117
+ return makeCollection(snapshot.slice(count));
118
+ },
119
+ keyBy: (keySelector) => keyByItems(snapshot, keySelector),
120
+ groupBy: (keySelector) => groupByItems(snapshot, keySelector),
121
+ tap: (fn) => {
122
+ fn(snapshot.slice());
123
+ return makeCollection(snapshot);
124
+ },
125
+ [Symbol.iterator]: function* () {
126
+ for (const item of snapshot)
127
+ yield item;
128
+ },
129
+ });
130
+ return api;
131
+ }
132
+ export const Collection = Object.freeze({
133
+ from: (items) => makeCollection(normalizeToArray(items)),
134
+ of: (...items) => makeCollection(items),
135
+ isCollection: (value) => {
136
+ if (value === null || value === undefined)
137
+ return false;
138
+ return (typeof value === 'object' &&
139
+ typeof value.all === 'function' &&
140
+ typeof value.map === 'function' &&
141
+ typeof value[Symbol.iterator] === 'function');
142
+ },
143
+ });
144
+ export function collect(items) {
145
+ return Collection.from(items);
146
+ }
@@ -0,0 +1,3 @@
1
+ export { collect, Collection } from '../collections/Collection';
2
+ export type { ICollection, PrimitiveKey } from '../collections/Collection';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/collections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1 @@
1
+ export { collect, Collection } from '../collections/Collection.js';
@@ -0,0 +1,16 @@
1
+ export type EventMap = Record<string, unknown>;
2
+ export type EventListener<TPayload> = (payload: TPayload) => void | Promise<void>;
3
+ export interface IEventDispatcher<TEvents extends EventMap = EventMap> {
4
+ on<K extends keyof TEvents & string>(event: K, listener: EventListener<TEvents[K]>): () => void;
5
+ once<K extends keyof TEvents & string>(event: K, listener: EventListener<TEvents[K]>): () => void;
6
+ off<K extends keyof TEvents & string>(event: K, listener: EventListener<TEvents[K]>): void;
7
+ emit<K extends keyof TEvents & string>(event: K, payload: TEvents[K]): void;
8
+ emitAsync<K extends keyof TEvents & string>(event: K, payload: TEvents[K]): Promise<void>;
9
+ listenerCount<K extends keyof TEvents & string>(event: K): number;
10
+ clear<K extends keyof TEvents & string>(event?: K): void;
11
+ }
12
+ export declare const EventDispatcher: Readonly<{
13
+ create<TEvents extends EventMap = EventMap>(): IEventDispatcher<TEvents>;
14
+ }>;
15
+ export default EventDispatcher;
16
+ //# sourceMappingURL=EventDispatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventDispatcher.d.ts","sourceRoot":"","sources":["../../../src/events/EventDispatcher.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC/C,MAAM,MAAM,aAAa,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAElF,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,QAAQ,GAAG,QAAQ;IACnE,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;IAChG,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;IAClG,GAAG,CAAC,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC3F,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC5E,SAAS,CAAC,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1F,aAAa,CAAC,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IAClE,KAAK,CAAC,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;CAC1D;AAwBD,eAAO,MAAM,eAAe;WACnB,OAAO,SAAS,QAAQ,gBAAgB,gBAAgB,CAAC,OAAO,CAAC;EAiGxE,CAAC;AAEH,eAAe,eAAe,CAAC"}
@@ -0,0 +1,90 @@
1
+ import { Logger } from '../config/logger.js';
2
+ function getOrCreateSet(store, event) {
3
+ const existing = store.get(event);
4
+ if (existing !== undefined)
5
+ return existing;
6
+ const created = new Set();
7
+ store.set(event, created);
8
+ return created;
9
+ }
10
+ function safeFireAndForget(listener, payload, event) {
11
+ const result = listener(payload);
12
+ if (result instanceof Promise) {
13
+ void result.catch((error) => {
14
+ Logger.error('Unhandled async event listener error', { event, error });
15
+ });
16
+ }
17
+ }
18
+ export const EventDispatcher = Object.freeze({
19
+ create() {
20
+ const listeners = new Map();
21
+ return {
22
+ on(event, listener) {
23
+ const set = getOrCreateSet(listeners, event);
24
+ set.add(listener);
25
+ return () => {
26
+ this.off(event, listener);
27
+ };
28
+ },
29
+ once(event, listener) {
30
+ const wrapped = async (payload) => {
31
+ this.off(event, wrapped);
32
+ return listener(payload);
33
+ };
34
+ const set = getOrCreateSet(listeners, event);
35
+ set.add(wrapped);
36
+ return () => {
37
+ this.off(event, wrapped);
38
+ };
39
+ },
40
+ off(event, listener) {
41
+ const set = listeners.get(event);
42
+ if (set === undefined)
43
+ return;
44
+ set.delete(listener);
45
+ if (set.size === 0) {
46
+ listeners.delete(event);
47
+ }
48
+ },
49
+ emit(event, payload) {
50
+ const set = listeners.get(event);
51
+ if (set === undefined)
52
+ return;
53
+ // Snapshot to avoid mutation during iteration affecting dispatch.
54
+ const snapshot = Array.from(set);
55
+ for (const listener of snapshot) {
56
+ safeFireAndForget(listener, payload, event);
57
+ }
58
+ },
59
+ async emitAsync(event, payload) {
60
+ const set = listeners.get(event);
61
+ if (set === undefined)
62
+ return;
63
+ const snapshot = Array.from(set);
64
+ const results = await Promise.allSettled(snapshot.map(async (listener) => {
65
+ await listener(payload);
66
+ }));
67
+ const errors = results
68
+ .filter((r) => r.status === 'rejected')
69
+ .map((r) => r.reason);
70
+ if (errors.length === 1) {
71
+ throw errors[0];
72
+ }
73
+ if (errors.length > 1) {
74
+ throw new AggregateError(errors, `Multiple event listeners failed for "${event}"`);
75
+ }
76
+ },
77
+ listenerCount(event) {
78
+ return listeners.get(event)?.size ?? 0;
79
+ },
80
+ clear(event) {
81
+ if (event !== undefined) {
82
+ listeners.delete(event);
83
+ return;
84
+ }
85
+ listeners.clear();
86
+ },
87
+ };
88
+ },
89
+ });
90
+ export default EventDispatcher;
@@ -0,0 +1,3 @@
1
+ export { EventDispatcher } from './EventDispatcher';
2
+ export type { EventListener, EventMap, IEventDispatcher } from './EventDispatcher';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1 @@
1
+ export { EventDispatcher } from './EventDispatcher.js';
@@ -11,7 +11,7 @@ export const Queue = Object.freeze({
11
11
  * Add a job to the queue
12
12
  */
13
13
  async add(data) {
14
- const id = await generateSecureJobId();
14
+ const id = generateSecureJobId();
15
15
  const job = {
16
16
  id,
17
17
  data,
@@ -8,8 +8,8 @@ export interface IResponse {
8
8
  setStatus(code: number): IResponse;
9
9
  getStatus(): number;
10
10
  readonly statusCode: number;
11
- setHeader(name: string, value: string): IResponse;
12
- getHeader(name: string): string | undefined;
11
+ setHeader(name: string, value: string | string[]): IResponse;
12
+ getHeader(name: string): string | string[] | undefined;
13
13
  json(data: unknown): void;
14
14
  text(text: string): void;
15
15
  html(html: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Response.d.ts","sourceRoot":"","sources":["../../../src/http/Response.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAE9C,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,SAAS,IAAI,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAClD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ;IACnB;;OAEG;gBACS,IAAI,CAAC,cAAc,GAAG,SAAS;EA0D3C,CAAC;AAEH,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Response.d.ts","sourceRoot":"","sources":["../../../src/http/Response.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAE9C,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,SAAS,IAAI,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IAC7D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IACvD,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ;IACnB;;OAEG;gBACS,IAAI,CAAC,cAAc,GAAG,SAAS;EA0D3C,CAAC;AAEH,eAAe,QAAQ,CAAC"}
package/src/index.d.ts CHANGED
@@ -65,6 +65,7 @@ export { MiddlewareStack } from './middleware/MiddlewareStack';
65
65
  export type { Middleware } from './middleware/MiddlewareStack';
66
66
  export { RateLimiter } from './middleware/RateLimiter';
67
67
  export { SecurityMiddleware } from './middleware/SecurityMiddleware';
68
+ export { SessionMiddleware } from './middleware/SessionMiddleware';
68
69
  export { MySQLAdapter } from './orm/adapters/MySQLAdapter';
69
70
  export { PostgreSQLAdapter } from './orm/adapters/PostgreSQLAdapter';
70
71
  export { SQLiteAdapter } from './orm/adapters/SQLiteAdapter';
@@ -81,6 +82,8 @@ export type { IRouter } from './routing/Router';
81
82
  export { delay, ensureDirSafe } from './common/index';
82
83
  export { generateSecureJobId, generateUuid } from './common/uuid';
83
84
  export { ZintrustAwsSigV4 as AwsSigV4 };
85
+ export { collect, Collection } from './collections/index';
86
+ export type { ICollection, PrimitiveKey } from './collections/index';
84
87
  export { HttpClient } from './tools/http/Http';
85
88
  export type { IHttpRequest, IHttpResponse } from './tools/http/Http';
86
89
  export type { DatabaseConfig, ID1Database } from './orm/DatabaseAdapter';
@@ -99,10 +102,16 @@ export { Encryptor } from './security/Encryptor';
99
102
  export { Hash } from './security/Hash';
100
103
  export { JwtManager } from './security/JwtManager';
101
104
  export type { IJwtManager, JwtAlgorithm, JwtManagerType, JwtOptions, JwtPayload, } from './security/JwtManager';
105
+ export { PasswordResetTokenBroker } from './security/PasswordResetTokenBroker';
106
+ export type { IPasswordResetTokenBroker, IPasswordResetTokenStore, PasswordResetTokenBrokerOptions, PasswordResetTokenBrokerType, PasswordResetTokenRecord, } from './security/PasswordResetTokenBroker';
102
107
  export { Xss } from './security/Xss';
103
108
  export { XssProtection } from './security/XssProtection';
104
109
  export { ZintrustSignedRequest as SignedRequest };
105
110
  export { ErrorFactory } from './exceptions/ZintrustError';
111
+ export { EventDispatcher } from './events/EventDispatcher';
112
+ export type { EventListener, EventMap, IEventDispatcher } from './events/EventDispatcher';
113
+ export { SessionManager } from './session/SessionManager';
114
+ export type { ISession, ISessionManager, SessionData, SessionManagerOptions, } from './session/SessionManager';
106
115
  export { Env } from './config/env';
107
116
  export { Logger } from './config/logger';
108
117
  export { appConfig } from './config/app';
@@ -154,9 +163,11 @@ export { Notification } from './tools/notification/Notification';
154
163
  export { NotificationRegistry } from './tools/notification/Registry';
155
164
  export { MarkdownRenderer } from './tools/templates';
156
165
  export { RuntimeHealthProbes } from './health/RuntimeHealthProbes';
166
+ export { BroadcastWorker } from './workers/BroadcastWorker';
157
167
  export { Broadcast } from './tools/broadcast/Broadcast';
158
168
  export { BroadcastRegistry } from './tools/broadcast/BroadcastRegistry';
159
169
  export { registerBroadcastersFromRuntimeConfig } from './tools/broadcast/BroadcastRuntimeRegistration';
170
+ export { NotificationWorker } from './workers/NotificationWorker';
160
171
  export { Storage } from './tools/storage/index';
161
172
  export { LocalSignedUrl } from './tools/storage/LocalSignedUrl';
162
173
  export { StorageDriverRegistry } from './tools/storage/StorageDriverRegistry';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/src/index.js CHANGED
@@ -20,6 +20,7 @@ export { LoggingMiddleware } from './middleware/LoggingMiddleware.js';
20
20
  export { MiddlewareStack } from './middleware/MiddlewareStack.js';
21
21
  export { RateLimiter } from './middleware/RateLimiter.js';
22
22
  export { SecurityMiddleware } from './middleware/SecurityMiddleware.js';
23
+ export { SessionMiddleware } from './middleware/SessionMiddleware.js';
23
24
  export { MySQLAdapter } from './orm/adapters/MySQLAdapter.js';
24
25
  export { PostgreSQLAdapter } from './orm/adapters/PostgreSQLAdapter.js';
25
26
  export { SQLiteAdapter } from './orm/adapters/SQLiteAdapter.js';
@@ -35,6 +36,8 @@ export { Router } from './routing/Router.js';
35
36
  export { delay, ensureDirSafe } from './common/index.js';
36
37
  export { generateSecureJobId, generateUuid } from './common/uuid.js';
37
38
  export { ZintrustAwsSigV4 as AwsSigV4 };
39
+ // Collections
40
+ export { collect, Collection } from './collections/index.js';
38
41
  // HTTP Client
39
42
  export { HttpClient } from './tools/http/Http.js';
40
43
  // Profiling
@@ -50,11 +53,16 @@ export { CsrfTokenManager } from './security/CsrfTokenManager.js';
50
53
  export { Encryptor } from './security/Encryptor.js';
51
54
  export { Hash } from './security/Hash.js';
52
55
  export { JwtManager } from './security/JwtManager.js';
56
+ export { PasswordResetTokenBroker } from './security/PasswordResetTokenBroker.js';
53
57
  export { Xss } from './security/Xss.js';
54
58
  export { XssProtection } from './security/XssProtection.js';
55
59
  export { ZintrustSignedRequest as SignedRequest };
56
60
  // Exceptions
57
61
  export { ErrorFactory } from './exceptions/ZintrustError.js';
62
+ // Events
63
+ export { EventDispatcher } from './events/EventDispatcher.js';
64
+ // Sessions
65
+ export { SessionManager } from './session/SessionManager.js';
58
66
  // Config (core-owned)
59
67
  export { Env } from './config/env.js';
60
68
  export { Logger } from './config/logger.js';
@@ -100,9 +108,12 @@ export { MarkdownRenderer } from './tools/templates/index.js';
100
108
  // Health & Runtime (for scaffolded routes and health checks)
101
109
  export { RuntimeHealthProbes } from './health/RuntimeHealthProbes.js';
102
110
  // Broadcast (for real-time features)
111
+ export { BroadcastWorker } from './workers/BroadcastWorker.js';
103
112
  export { Broadcast } from './tools/broadcast/Broadcast.js';
104
113
  export { BroadcastRegistry } from './tools/broadcast/BroadcastRegistry.js';
105
114
  export { registerBroadcastersFromRuntimeConfig } from './tools/broadcast/BroadcastRuntimeRegistration.js';
115
+ // Notification Workers
116
+ export { NotificationWorker } from './workers/NotificationWorker.js';
106
117
  // Storage (for file management and signed URLs)
107
118
  export { Storage } from './tools/storage/index.js';
108
119
  export { LocalSignedUrl } from './tools/storage/LocalSignedUrl.js';
@@ -1 +1 @@
1
- {"version":3,"file":"CsrfMiddleware.d.ts","sourceRoot":"","sources":["../../../src/middleware/CsrfMiddleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAGzD,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AASD,eAAO,MAAM,cAAc;IACzB;;OAEG;qBACa,WAAW,GAAQ,UAAU;EAiF7C,CAAC"}
1
+ {"version":3,"file":"CsrfMiddleware.d.ts","sourceRoot":"","sources":["../../../src/middleware/CsrfMiddleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAIzD,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AASD,eAAO,MAAM,cAAc;IACzB;;OAEG;qBACa,WAAW,GAAQ,UAAU;EA4D7C,CAAC"}
@@ -3,9 +3,9 @@
3
3
  * Protects against Cross-Site Request Forgery attacks
4
4
  * Uses CsrfTokenManager for token generation and validation
5
5
  */
6
- import { generateSecureJobId } from '../common/uuid.js';
7
6
  import { Logger } from '../config/logger.js';
8
7
  import { CsrfTokenManager } from '../security/CsrfTokenManager.js';
8
+ import { SessionManager } from '../session/SessionManager.js';
9
9
  const DEFAULT_OPTIONS = {
10
10
  cookieName: 'XSRF-TOKEN',
11
11
  headerName: 'X-CSRF-Token',
@@ -19,6 +19,7 @@ export const CsrfMiddleware = Object.freeze({
19
19
  create(options = {}) {
20
20
  const config = { ...DEFAULT_OPTIONS, ...options };
21
21
  const manager = CsrfTokenManager.create();
22
+ const sessions = SessionManager.create();
22
23
  // Periodic cleanup to prevent memory leaks
23
24
  // Run every hour (matching default token TTL)
24
25
  const cleanupTimer = setInterval(() => {
@@ -29,35 +30,17 @@ export const CsrfMiddleware = Object.freeze({
29
30
  cleanupTimer.unref();
30
31
  }
31
32
  return async (req, res, next) => {
32
- // We need a session ID to bind the token to.
33
- // Assuming a session middleware has run before this and populated req.context.sessionId
34
- // or we use a cookie for the session ID.
35
- // For now, we'll try to get it from a cookie or generate a temporary one if missing (stateless fallback)
36
- // Note: In a real scenario, this MUST be tied to the user's authenticated session.
37
- // Here we check for a specific session cookie or header.
38
- const cookies = parseCookies(req.getHeader('cookie') || '');
39
- let sessionId = cookies['ZIN_SESSION_ID'] || req.context['sessionId'];
40
- if (!sessionId) {
41
- // If no session exists, we can't effectively bind CSRF to a session.
42
- // However, for the sake of the middleware functioning in a stateless way (Double Submit Cookie pattern),
43
- // we can generate a pseudo-session-id if one doesn't exist, but it's less secure.
44
- // Ideally, this middleware should throw if session is missing.
45
- // For this implementation, we'll skip if no session is found, but log a warning.
46
- // Logger.warn('CSRF Middleware: No session ID found. Skipping CSRF check.');
47
- // await next();
48
- // return;
49
- // Better approach: Generate a session ID if missing (Double Submit Cookie foundation)
50
- // IMPORTANT: use a cryptographically secure generator (Sonar S2245).
51
- sessionId = await generateSecureJobId('CSRF Middleware: secure crypto API not available to generate a session id');
52
- // We would need to set this session cookie, but we can't easily do that without a SessionManager.
53
- // We'll assume the SessionMiddleware handles session creation.
54
- }
33
+ const cookieHeader = req.getHeader('cookie');
34
+ const cookies = parseCookies(typeof cookieHeader === 'string' ? cookieHeader : '');
35
+ // Guarantee a session id exists and a session cookie is set if missing.
36
+ // This allows CSRF tokens to be bound to a stable session identifier.
37
+ const sessionId = await sessions.ensureSessionId(req, res);
55
38
  const method = req.getMethod();
56
39
  // 1. Token Generation (for safe methods)
57
40
  if (config.ignoreMethods?.includes(method) ?? false) {
58
41
  const token = manager.generateToken(sessionId);
59
42
  // Set cookie for Double Submit Cookie pattern (readable by frontend)
60
- res.setHeader('Set-Cookie', `${config.cookieName}=${token}; Path=/; SameSite=Strict`);
43
+ appendSetCookie(res, `${config.cookieName}=${token}; Path=/; SameSite=Strict`);
61
44
  // Also expose in locals for server-side rendering
62
45
  res.locals['csrfToken'] = token;
63
46
  await next();
@@ -81,6 +64,18 @@ export const CsrfMiddleware = Object.freeze({
81
64
  };
82
65
  },
83
66
  });
67
+ function appendSetCookie(res, cookie) {
68
+ const existing = res.getHeader('Set-Cookie');
69
+ if (existing === undefined) {
70
+ res.setHeader('Set-Cookie', cookie);
71
+ return;
72
+ }
73
+ if (Array.isArray(existing)) {
74
+ res.setHeader('Set-Cookie', [...existing, cookie]);
75
+ return;
76
+ }
77
+ res.setHeader('Set-Cookie', [existing, cookie]);
78
+ }
84
79
  /**
85
80
  * Helper to parse cookies
86
81
  */
@@ -0,0 +1,8 @@
1
+ import { Middleware } from './MiddlewareStack';
2
+ import { type SessionManagerOptions } from '../session/SessionManager';
3
+ export type SessionOptions = SessionManagerOptions;
4
+ export declare const SessionMiddleware: Readonly<{
5
+ create(options?: SessionOptions): Middleware;
6
+ }>;
7
+ export default SessionMiddleware;
8
+ //# sourceMappingURL=SessionMiddleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionMiddleware.d.ts","sourceRoot":"","sources":["../../../src/middleware/SessionMiddleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAkB,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErF,MAAM,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAEnD,eAAO,MAAM,iBAAiB;qBACZ,cAAc,GAAQ,UAAU;EAehD,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { SessionManager } from '../session/SessionManager.js';
2
+ export const SessionMiddleware = Object.freeze({
3
+ create(options = {}) {
4
+ const manager = SessionManager.create(options);
5
+ return async (req, res, next) => {
6
+ const sessionId = await manager.ensureSessionId(req, res);
7
+ // Keep both request state + context aligned.
8
+ req.sessionId = sessionId;
9
+ req.context['sessionId'] = sessionId;
10
+ res.locals['sessionId'] = sessionId;
11
+ await next();
12
+ };
13
+ },
14
+ });
15
+ export default SessionMiddleware;
@@ -10,6 +10,20 @@ export interface ModelConfig {
10
10
  hidden: string[];
11
11
  timestamps: boolean;
12
12
  casts: Record<string, string>;
13
+ softDeletes?: boolean;
14
+ accessors?: Record<string, (value: unknown, attrs: Record<string, unknown>) => unknown>;
15
+ mutators?: Record<string, (value: unknown, attrs: Record<string, unknown>) => unknown>;
16
+ scopes?: Record<string, (builder: IQueryBuilder, ...args: unknown[]) => IQueryBuilder>;
17
+ observers?: Array<{
18
+ saving?: (model: IModel) => void | Promise<void>;
19
+ saved?: (model: IModel) => void | Promise<void>;
20
+ creating?: (model: IModel) => void | Promise<void>;
21
+ created?: (model: IModel) => void | Promise<void>;
22
+ updating?: (model: IModel) => void | Promise<void>;
23
+ updated?: (model: IModel) => void | Promise<void>;
24
+ deleting?: (model: IModel) => void | Promise<void>;
25
+ deleted?: (model: IModel) => void | Promise<void>;
26
+ }>;
13
27
  connection?: string;
14
28
  }
15
29
  export interface ModelStatic {
@@ -60,6 +74,7 @@ export type DefinedModel<T extends BoundModelMethods> = {
60
74
  find: (id: unknown) => Promise<(IModel & T) | null>;
61
75
  all: () => Promise<Array<IModel & T>>;
62
76
  query: () => IQueryBuilder;
77
+ scope: (name: string, ...args: unknown[]) => IQueryBuilder;
63
78
  getTable: () => string;
64
79
  db: (connection: string) => DefinedModel<T>;
65
80
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../../src/orm/Model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../../src/orm/Model.ts"],"names":[],"mappings":"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"}