jopi-toolkit 3.1.25 → 3.1.34

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 (78) hide show
  1. package/dist/jk_app/common.d.ts +1 -0
  2. package/dist/jk_app/common.js +9 -2
  3. package/dist/jk_app/common.js.map +1 -1
  4. package/dist/jk_data/browserActions.d.ts +8 -0
  5. package/dist/jk_data/browserActions.js +9 -0
  6. package/dist/jk_data/browserActions.js.map +1 -0
  7. package/dist/jk_data/bundler_ifServer.d.ts +2 -0
  8. package/dist/jk_data/bundler_ifServer.js +2 -0
  9. package/dist/jk_data/bundler_ifServer.js.map +1 -0
  10. package/dist/jk_data/common.d.ts +8 -0
  11. package/dist/jk_data/common.js +2 -0
  12. package/dist/jk_data/common.js.map +1 -0
  13. package/dist/jk_data/core.d.ts +13 -0
  14. package/dist/jk_data/core.js +85 -0
  15. package/dist/jk_data/core.js.map +1 -0
  16. package/dist/jk_data/dataTableProxy.d.ts +21 -0
  17. package/dist/jk_data/dataTableProxy.js +49 -0
  18. package/dist/jk_data/dataTableProxy.js.map +1 -0
  19. package/dist/jk_data/ifServerSide.d.ts +0 -0
  20. package/dist/jk_data/ifServerSide.js +2 -0
  21. package/dist/jk_data/ifServerSide.js.map +1 -0
  22. package/dist/jk_data/index.d.ts +3 -55
  23. package/dist/jk_data/index.js +3 -105
  24. package/dist/jk_data/index.js.map +1 -1
  25. package/dist/jk_data/interfaces.d.ts +107 -0
  26. package/dist/jk_data/interfaces.js +2 -0
  27. package/dist/jk_data/interfaces.js.map +1 -0
  28. package/dist/jk_data/jBundler_common.d.ts +12 -0
  29. package/dist/jk_data/jBundler_common.js +2 -0
  30. package/dist/jk_data/jBundler_common.js.map +1 -0
  31. package/dist/jk_data/jBundler_ifBrowser.d.ts +2 -0
  32. package/dist/jk_data/jBundler_ifBrowser.js +2 -0
  33. package/dist/jk_data/jBundler_ifBrowser.js.map +1 -0
  34. package/dist/jk_data/jBundler_ifServer.1.d.ts +2 -0
  35. package/dist/jk_data/jBundler_ifServer.1.js +2 -0
  36. package/dist/jk_data/jBundler_ifServer.1.js.map +1 -0
  37. package/dist/jk_data/jBundler_ifServer.d.ts +2 -0
  38. package/dist/jk_data/jBundler_ifServer.js +2 -0
  39. package/dist/jk_data/jBundler_ifServer.js.map +1 -0
  40. package/dist/jk_data/proxy.d.ts +24 -0
  41. package/dist/jk_data/proxy.js +82 -0
  42. package/dist/jk_data/proxy.js.map +1 -0
  43. package/dist/jk_fs/jBundler_ifServer.d.ts +2 -1
  44. package/dist/jk_fs/jBundler_ifServer.js +1 -0
  45. package/dist/jk_fs/jBundler_ifServer.js.map +1 -1
  46. package/dist/jk_logs/index.js +2 -2
  47. package/dist/jk_logs/index.js.map +1 -1
  48. package/dist/jk_memcache/_logs.d.ts +1 -0
  49. package/dist/jk_memcache/_logs.js +3 -0
  50. package/dist/jk_memcache/_logs.js.map +1 -0
  51. package/dist/jk_memcache/index.d.ts +128 -0
  52. package/dist/jk_memcache/index.js +411 -0
  53. package/dist/jk_memcache/index.js.map +1 -0
  54. package/dist/jk_schemas/index.d.ts +20 -16
  55. package/dist/jk_schemas/index.js +13 -15
  56. package/dist/jk_schemas/index.js.map +1 -1
  57. package/dist/jk_tools/common.d.ts +6 -0
  58. package/dist/jk_tools/common.js +6 -0
  59. package/dist/jk_tools/common.js.map +1 -1
  60. package/dist/jk_tools/index.d.ts +1 -0
  61. package/package.json +8 -4
  62. package/src/jk_app/common.ts +12 -2
  63. package/src/jk_data/core.ts +92 -0
  64. package/src/jk_data/index.ts +3 -166
  65. package/src/jk_data/interfaces.ts +140 -0
  66. package/src/jk_data/proxy.ts +102 -0
  67. package/src/jk_fs/jBundler_ifServer.ts +1 -0
  68. package/src/jk_logs/index.ts +2 -2
  69. package/src/jk_memcache/README.md +66 -0
  70. package/src/jk_memcache/_logs.ts +3 -0
  71. package/src/jk_memcache/index.ts +494 -0
  72. package/src/jk_schemas/index.ts +29 -27
  73. package/src/jk_tools/common.ts +6 -0
  74. package/src/jk_tools/index.ts +3 -1
  75. package/src/jk_compress/index.js +0 -1
  76. package/src/jk_compress/jBundler_ifServer.js +0 -10
  77. package/src/jk_data/index.js +0 -155
  78. package/src/jk_schemas/index.js +0 -330
@@ -0,0 +1,411 @@
1
+ import { logMemCache } from "./_logs.js";
2
+ export class JkMemCache {
3
+ _storage = new Map();
4
+ _currentSize = 0;
5
+ _options;
6
+ _intervalId = null;
7
+ _name;
8
+ constructor(options) {
9
+ this._options = {
10
+ name: options.name,
11
+ maxCount: options.maxCount ?? Infinity,
12
+ maxSize: options.maxSize ?? 50 * 1024 * 1024,
13
+ cleanupInterval: options.cleanupInterval ?? 60000,
14
+ };
15
+ this._name = options.name;
16
+ logMemCache.info(`Cache [${this._name}] initialized`);
17
+ if (this._options.cleanupInterval > 0) {
18
+ this.startAutoCleanup();
19
+ }
20
+ }
21
+ /**
22
+ * Start the automatic cleanup interval.
23
+ */
24
+ startAutoCleanup() {
25
+ if (this._intervalId)
26
+ clearInterval(this._intervalId);
27
+ this._intervalId = setInterval(() => {
28
+ this.performCleanup();
29
+ }, this._options.cleanupInterval);
30
+ }
31
+ /**
32
+ * Stop the automatic cleanup interval.
33
+ */
34
+ stopAutoCleanup() {
35
+ if (this._intervalId) {
36
+ clearInterval(this._intervalId);
37
+ this._intervalId = null;
38
+ }
39
+ }
40
+ /**
41
+ * Add or update an item in the cache.
42
+ */
43
+ set(key, value, options = {}) {
44
+ // 1. Prepare new entry details
45
+ let storedValue;
46
+ let type;
47
+ let size = 0;
48
+ // Meta size calculation
49
+ const metaSize = options.meta ? JSON.stringify(options.meta).length * 2 : 0;
50
+ if (value instanceof ArrayBuffer) {
51
+ storedValue = value;
52
+ type = 'buffer';
53
+ size = value.byteLength;
54
+ }
55
+ else if (value instanceof Uint8Array) {
56
+ storedValue = value;
57
+ type = 'buffer';
58
+ size = value.byteLength;
59
+ }
60
+ else if (typeof value === 'string') {
61
+ storedValue = value;
62
+ type = 'string';
63
+ size = value.length * 2; // Approximation for JS string memory
64
+ }
65
+ else {
66
+ storedValue = JSON.stringify(value);
67
+ type = 'json';
68
+ size = storedValue.length * 2;
69
+ }
70
+ // Overhead for object structure (approximate) + Meta size
71
+ size += 100 + metaSize;
72
+ // 2. Check overlap
73
+ if (this._storage.has(key)) {
74
+ this.delete(key);
75
+ }
76
+ // 3. Calculate Expiration
77
+ let expiresAt = null;
78
+ if (options.expiresAt) {
79
+ expiresAt = options.expiresAt;
80
+ }
81
+ else if (options.ttl) {
82
+ expiresAt = Date.now() + options.ttl;
83
+ }
84
+ const entry = {
85
+ key,
86
+ value: storedValue,
87
+ type,
88
+ size,
89
+ createdAt: Date.now(),
90
+ expiresAt,
91
+ accessCount: 0,
92
+ importance: options.importance ?? 1,
93
+ meta: options.meta,
94
+ };
95
+ // 4. Check if item is too big for the cache entirely
96
+ if (entry.size > this._options.maxSize) {
97
+ return;
98
+ }
99
+ // 5. Check if we need to make space
100
+ if (this.needsEviction(entry.size)) {
101
+ this.evictFor(entry.size);
102
+ if (this.needsEviction(entry.size)) {
103
+ return;
104
+ }
105
+ }
106
+ this._storage.set(key, entry);
107
+ this._currentSize += size;
108
+ }
109
+ /**
110
+ * Retrieve an item from the cache.
111
+ */
112
+ get(key, peek = false) {
113
+ const entry = this._storage.get(key);
114
+ if (!entry)
115
+ return null;
116
+ if (entry.expiresAt && entry.expiresAt < Date.now()) {
117
+ this.delete(key);
118
+ return null;
119
+ }
120
+ if (!peek)
121
+ entry.accessCount++;
122
+ if (entry.type === 'buffer') {
123
+ return entry.value;
124
+ }
125
+ else if (entry.type === 'json') {
126
+ return JSON.parse(entry.value);
127
+ }
128
+ else {
129
+ return entry.value;
130
+ }
131
+ }
132
+ /**
133
+ * Retrieve an item from the cache with its metadata.
134
+ */
135
+ getWithMeta(key, peek = false) {
136
+ const entry = this._storage.get(key);
137
+ if (!entry)
138
+ return null;
139
+ if (!peek)
140
+ entry.accessCount++;
141
+ let value;
142
+ if (entry.type === 'buffer') {
143
+ value = entry.value;
144
+ }
145
+ else if (entry.type === 'json') {
146
+ value = JSON.parse(entry.value);
147
+ }
148
+ else {
149
+ value = entry.value;
150
+ }
151
+ return { value, meta: entry.meta, size: entry.size };
152
+ }
153
+ /**
154
+ * Check if an item exists in the cache and is not expired.
155
+ * Does not increment accessCount.
156
+ */
157
+ has(key) {
158
+ const entry = this._storage.get(key);
159
+ if (!entry)
160
+ return false;
161
+ if (entry.expiresAt && entry.expiresAt < Date.now()) {
162
+ this.delete(key);
163
+ return false;
164
+ }
165
+ return true;
166
+ }
167
+ /**
168
+ * Manually delete an item.
169
+ */
170
+ delete(key) {
171
+ const entry = this._storage.get(key);
172
+ if (entry) {
173
+ this._currentSize -= entry.size;
174
+ this._storage.delete(key);
175
+ }
176
+ }
177
+ /**
178
+ * Clear all items.
179
+ */
180
+ clear() {
181
+ this._storage.clear();
182
+ this._currentSize = 0;
183
+ }
184
+ /**
185
+ * Get current cache stats.
186
+ */
187
+ getStats() {
188
+ return {
189
+ count: this._storage.size,
190
+ size: this._currentSize,
191
+ };
192
+ }
193
+ /**
194
+ * Iterate over all valid keys.
195
+ */
196
+ *keys() {
197
+ const now = Date.now();
198
+ for (const [key, entry] of this._storage) {
199
+ if (entry.expiresAt && now > entry.expiresAt) {
200
+ this.delete(key);
201
+ continue;
202
+ }
203
+ yield key;
204
+ }
205
+ }
206
+ /**
207
+ * Iterate over keys starting with a prefix.
208
+ */
209
+ *keysStartingWith(prefix) {
210
+ for (const key of this.keys()) {
211
+ if (key.startsWith(prefix))
212
+ yield key;
213
+ }
214
+ }
215
+ /**
216
+ * Iterate over keys ending with a suffix.
217
+ */
218
+ *keysEndingWith(suffix) {
219
+ for (const key of this.keys()) {
220
+ if (key.endsWith(suffix))
221
+ yield key;
222
+ }
223
+ }
224
+ /**
225
+ * Iterate over keys containing a specific text.
226
+ */
227
+ *keysContaining(text) {
228
+ for (const key of this.keys()) {
229
+ if (key.includes(text))
230
+ yield key;
231
+ }
232
+ }
233
+ /**
234
+ * Check if we need to evict entries to fit a new one (or if limits are exceeded).
235
+ */
236
+ needsEviction(incomingSize) {
237
+ return ((this._storage.size + 1 > this._options.maxCount) ||
238
+ (this._currentSize + incomingSize > this._options.maxSize));
239
+ }
240
+ /**
241
+ * Perform recurrent cleanup (expiration only).
242
+ */
243
+ performCleanup() {
244
+ const now = Date.now();
245
+ let removedCount = 0;
246
+ logMemCache.info(`Cache [${this._name}] Recurrent GC started - ${JSON.stringify({
247
+ count: this._storage.size,
248
+ sizeMB: (this._currentSize / 1024 / 1024).toFixed(2)
249
+ })}`);
250
+ for (const [key, entry] of this._storage) {
251
+ if (entry.expiresAt && now > entry.expiresAt) {
252
+ this.delete(key);
253
+ removedCount++;
254
+ }
255
+ }
256
+ if (removedCount > 0) {
257
+ logMemCache.info(`Cache [${this._name}] Recurrent GC finished - ${JSON.stringify({
258
+ removed: removedCount,
259
+ remaining: this._storage.size,
260
+ sizeMB: (this._currentSize / 1024 / 1024).toFixed(2)
261
+ })}`);
262
+ }
263
+ }
264
+ /**
265
+ * Evict items to make space/reduce count.
266
+ * Strategy: Calculate a score. Lower score = evicted first.
267
+ * Factors:
268
+ * - expired (immediate kill)
269
+ * - importance (higher = keep)
270
+ * - accessCount (higher = keep)
271
+ *
272
+ * Score = (importance * 1000) + (accessCount)
273
+ * (Simplified logic)
274
+ */
275
+ evictFor(requiredSpace) {
276
+ const now = Date.now();
277
+ logMemCache.info(`Cache [${this._name}] GC Eviction started (Memory Pressure) - ${JSON.stringify({
278
+ requiredSpace,
279
+ count: this._storage.size,
280
+ sizeMB: (this._currentSize / 1024 / 1024).toFixed(2)
281
+ })}`);
282
+ // 1. Remove expired first (In-place, no allocation)
283
+ for (const [key, entry] of this._storage) {
284
+ if (entry.expiresAt && now > entry.expiresAt) {
285
+ this.delete(key);
286
+ }
287
+ }
288
+ // Optimization: Low Water Mark.
289
+ // To avoid frequent GC, when we evict, we try to go down to 90% capacity,
290
+ // creating a temporary buffer.
291
+ //
292
+ const safeSize = this._options.maxSize * 0.9;
293
+ const safeCount = this._options.maxCount * 0.9;
294
+ // Helper: Have we reached our goal?
295
+ // If strict is true, we aim for the buffer (90%).
296
+ // If strict is false, we just aim to fit the item (100%).
297
+ const isTargetReached = (strict) => {
298
+ // 1. Absolute requirement: Must fit the new item within MAX limits.
299
+ // needsEviction returns TRUE if we are OVER limits.
300
+ if (this.needsEviction(requiredSpace)) {
301
+ return false; // We are over max, so target is definitely NOT reached.
302
+ }
303
+ // 2. Buffer requirement: specific to strict mode
304
+ if (strict) {
305
+ // We are under MAX, but are we under SAFE limits?
306
+ return (this._currentSize + requiredSpace <= safeSize) && (this._storage.size <= safeCount);
307
+ }
308
+ // If not strict, and needsEviction was false, we are good.
309
+ return true;
310
+ };
311
+ // Helper to format log message
312
+ const logGC = (step, extra = {}) => {
313
+ logMemCache.info(`Cache [${this._name}] [GC] ${step} - ${JSON.stringify({
314
+ ...extra,
315
+ count: this._storage.size,
316
+ sizeMB: (this._currentSize / 1024 / 1024).toFixed(2)
317
+ })}`);
318
+ };
319
+ if (isTargetReached(true)) {
320
+ logGC("Step 1 (Expired) sufficient");
321
+ return;
322
+ }
323
+ // 2. Multi-step Eviction by Importance
324
+ const MAX_SEARCH_LEVEL = 10;
325
+ // We treat levels 1-5 as "recyclable" to build buffer.
326
+ // Levels 6-10 are "protected" -> only evicted if absolutely necessary to fit the item.
327
+ const BUFFER_TARGET_LEVEL = 5;
328
+ for (let level = 1; level <= MAX_SEARCH_LEVEL; level++) {
329
+ const candidates = [];
330
+ for (const entry of this._storage.values()) {
331
+ if (entry.importance === level) {
332
+ candidates.push(entry);
333
+ }
334
+ }
335
+ if (candidates.length === 0)
336
+ continue;
337
+ candidates.sort((a, b) => {
338
+ if (a.accessCount !== b.accessCount) {
339
+ return a.accessCount - b.accessCount;
340
+ }
341
+ return a.createdAt - b.createdAt;
342
+ });
343
+ const aimForBuffer = level <= BUFFER_TARGET_LEVEL;
344
+ for (const candidate of candidates) {
345
+ this.delete(candidate.key);
346
+ // If we reached our target (buffer or just space), we stop.
347
+ if (isTargetReached(aimForBuffer)) {
348
+ logGC("Step 2 (Importance) finished", { level });
349
+ return;
350
+ }
351
+ }
352
+ }
353
+ // 3. Strategy: Delete biggest items
354
+ // If we are still here, it means we have high importance items filling the cache.
355
+ // We try to free space by removing the largest items first.
356
+ if (!isTargetReached(false)) {
357
+ let b1 = null;
358
+ let b2 = null;
359
+ let b3 = null;
360
+ for (const entry of this._storage.values()) {
361
+ if (!b1 || entry.size > b1.size) {
362
+ b3 = b2;
363
+ b2 = b1;
364
+ b1 = entry;
365
+ }
366
+ else if (!b2 || entry.size > b2.size) {
367
+ b3 = b2;
368
+ b2 = entry;
369
+ }
370
+ else if (!b3 || entry.size > b3.size) {
371
+ b3 = entry;
372
+ }
373
+ }
374
+ if (b1) {
375
+ this.delete(b1.key);
376
+ if (isTargetReached(false)) {
377
+ logGC("Step 3 (Biggest) finished");
378
+ return;
379
+ }
380
+ }
381
+ if (b2) {
382
+ this.delete(b2.key);
383
+ if (isTargetReached(false)) {
384
+ logGC("Step 3 (Biggest) finished");
385
+ return;
386
+ }
387
+ }
388
+ if (b3) {
389
+ this.delete(b3.key);
390
+ if (isTargetReached(false)) {
391
+ logGC("Step 3 (Biggest) finished");
392
+ return;
393
+ }
394
+ }
395
+ }
396
+ // 4. Fallback / Emergency
397
+ if (!isTargetReached(false)) {
398
+ const iterator = this._storage.keys();
399
+ let result = iterator.next();
400
+ while (!result.done) {
401
+ this.delete(result.value);
402
+ if (isTargetReached(false)) {
403
+ logGC("Step 4 (Fallback) finished");
404
+ return;
405
+ }
406
+ result = iterator.next();
407
+ }
408
+ }
409
+ }
410
+ }
411
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jk_memcache/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { Translatable } from "jopi-toolkit/jk_tools";
1
2
  /**
2
3
  * Declare an error when validating a schema.
3
4
  * Must be called when validating or normalizing.
@@ -34,15 +35,17 @@ export declare function requireSchema(schemaId: string): Schema;
34
35
  export declare function schema<T extends SchemaDescriptor>(descriptor: T, meta?: SchemaMeta): Schema & {
35
36
  desc: T;
36
37
  };
37
- export interface SchemaDescriptor {
38
- [field: string]: Field;
39
- }
38
+ export type SchemaDescriptor = Record<string, Field>;
40
39
  export interface SchemaMeta {
41
- title?: string;
42
- description?: string;
43
- [key: string]: any;
40
+ /**
41
+ * The title of this schema.
42
+ * Can be translated to languages.
43
+ */
44
+ title?: Translatable;
45
+ description?: Translatable;
44
46
  normalize?: (allValues: any, checkHelper: ValueCheckingHelper) => void;
45
47
  validate?: (allValues: any, checkHelper: ValueCheckingHelper) => void;
48
+ [key: string]: any;
46
49
  }
47
50
  export interface SchemaInfo {
48
51
  desc: SchemaDescriptor;
@@ -169,9 +172,10 @@ export interface ScFieldStore {
169
172
  databaseType?: string;
170
173
  }
171
174
  export interface ScField<T, Opt extends boolean> {
172
- title: string;
175
+ id: string;
173
176
  type: string;
174
- description?: string;
177
+ title?: Translatable;
178
+ description?: Translatable;
175
179
  default?: T;
176
180
  optional?: Opt;
177
181
  errorMessage_isRequired?: string;
@@ -201,22 +205,22 @@ export interface ScField<T, Opt extends boolean> {
201
205
  }
202
206
  export type Field = ScField<any, any>;
203
207
  export type SchemaFieldInfos = Field;
204
- type OnlyInfos<T> = Omit<T, "title" | "optional" | "type">;
208
+ type OnlyInfos<T> = Omit<T, "id" | "optional" | "type">;
205
209
  export interface ScString<Opt extends boolean = boolean> extends ScField<string, Opt> {
206
210
  minLength?: number;
207
211
  errorMessage_minLength?: string;
208
212
  maxLength?: number;
209
213
  errorMessage_maxLength?: string;
210
- placeholder?: string;
214
+ placeholder?: Translatable;
211
215
  }
212
- export declare function string<Opt extends boolean>(title: string, optional: Opt, infos?: OnlyInfos<ScString<Opt>>): ScString<Opt>;
216
+ export declare function string<Opt extends boolean>(id: string, optional: Opt, infos?: OnlyInfos<ScString<Opt>>): ScString<Opt>;
213
217
  export interface ScBoolean<Opt extends boolean = boolean> extends ScField<boolean, Opt> {
214
218
  requireTrue?: boolean;
215
219
  errorMessage_requireTrue?: string;
216
220
  requireFalse?: boolean;
217
221
  errorMessage_requireFalse?: string;
218
222
  }
219
- export declare function boolean<Opt extends boolean>(title: string, optional: Opt, infos?: OnlyInfos<ScBoolean<Opt>>): ScBoolean<Opt>;
223
+ export declare function boolean<Opt extends boolean>(id: string, optional: Opt, infos?: OnlyInfos<ScBoolean<Opt>>): ScBoolean<Opt>;
220
224
  export interface ScNumber<Opt extends boolean = boolean> extends ScField<number, Opt> {
221
225
  minValue?: number;
222
226
  errorMessage_minValue?: string;
@@ -243,10 +247,10 @@ export interface ScNumber<Opt extends boolean = boolean> extends ScField<number,
243
247
  */
244
248
  currency?: string;
245
249
  }
246
- export declare function number<Opt extends boolean>(title: string, optional: Opt, infos?: OnlyInfos<ScNumber<Opt>>): ScNumber<Opt>;
250
+ export declare function number<Opt extends boolean>(id: string, optional: Opt, infos?: OnlyInfos<ScNumber<Opt>>): ScNumber<Opt>;
247
251
  export declare function formatNumber(value: string, fieldNumber: ScNumber, defaultLocalFormat?: string, defaultCurrency?: string): string;
248
- export declare function currency<Opt extends boolean>(title: string, optional: Opt, infos?: OnlyInfos<ScNumber<Opt>>): ScNumber<Opt>;
249
- export declare function percent<Opt extends boolean>(title: string, optional: Opt, infos?: OnlyInfos<ScNumber<Opt>>): ScNumber<Opt>;
252
+ export declare function currency<Opt extends boolean>(id: string, optional: Opt, infos?: OnlyInfos<ScNumber<Opt>>): ScNumber<Opt>;
253
+ export declare function percent<Opt extends boolean>(id: string, optional: Opt, infos?: OnlyInfos<ScNumber<Opt>>): ScNumber<Opt>;
250
254
  export interface File extends Blob {
251
255
  readonly lastModified: number;
252
256
  readonly name: string;
@@ -260,5 +264,5 @@ export interface ScFile<Opt extends boolean> extends ScField<File[], Opt> {
260
264
  maxFileSize?: number;
261
265
  errorMessage_maxFileSize?: string;
262
266
  }
263
- export declare function file<Opt extends boolean>(title: string, optional: Opt, infos?: OnlyInfos<ScFile<Opt>>): ScFile<Opt>;
267
+ export declare function file<Opt extends boolean>(id: string, optional: Opt, infos?: OnlyInfos<ScFile<Opt>>): ScFile<Opt>;
264
268
  export {};
@@ -1,5 +1,3 @@
1
- // noinspection JSUnusedGlobalSymbols
2
- import { generateUUIDv4 } from "jopi-toolkit/jk_tools";
3
1
  //region Validation
4
2
  /**
5
3
  * Throwing this error allows it to be caught
@@ -132,7 +130,7 @@ class ValueCheckingHelper {
132
130
  const gValueCheckingHelper = new ValueCheckingHelper();
133
131
  export function registerSchema(schemaId, schema, meta) {
134
132
  if (!schemaId) {
135
- throw new Error("jk_schemas - Schema id required. If you need an uid you can use: " + generateUUIDv4());
133
+ throw new Error("jk_schemas - Schema id required");
136
134
  }
137
135
  gRegistry[schemaId] = { schema, meta };
138
136
  }
@@ -197,14 +195,14 @@ class SchemaImpl {
197
195
  export function toJson(schema) {
198
196
  return schema;
199
197
  }
200
- export function string(title, optional, infos) {
198
+ export function string(id, optional, infos) {
201
199
  if (!optional) {
202
200
  if (!infos)
203
201
  infos = {};
204
202
  if (infos.minLength === undefined)
205
203
  infos.minLength = 1;
206
204
  }
207
- return { ...infos, title, optional, type: "string" };
205
+ return { ...infos, id, optional, type: "string" };
208
206
  }
209
207
  byTypeValidator["string"] = (v, f) => {
210
208
  if (typeof v !== "string") {
@@ -221,8 +219,8 @@ byTypeValidator["string"] = (v, f) => {
221
219
  return;
222
220
  }
223
221
  };
224
- export function boolean(title, optional, infos) {
225
- return { ...infos, title, optional, type: "boolean" };
222
+ export function boolean(id, optional, infos) {
223
+ return { ...infos, id, optional, type: "boolean" };
226
224
  }
227
225
  byTypeValidator["boolean"] = (v, f) => {
228
226
  if (typeof v !== "boolean") {
@@ -240,8 +238,8 @@ byTypeValidator["boolean"] = (v, f) => {
240
238
  }
241
239
  }
242
240
  };
243
- export function number(title, optional, infos) {
244
- return { ...infos, title, optional, type: "number" };
241
+ export function number(id, optional, infos) {
242
+ return { ...infos, id, optional, type: "number" };
245
243
  }
246
244
  export function formatNumber(value, fieldNumber, defaultLocalFormat = "en-US", defaultCurrency = "USD") {
247
245
  const amount = parseFloat(value);
@@ -272,16 +270,16 @@ byTypeValidator["number"] = (v, f) => {
272
270
  };
273
271
  //endregion
274
272
  //region Currency
275
- export function currency(title, optional, infos) {
276
- return number(title, optional, { ...infos, displayType: "currency" });
273
+ export function currency(id, optional, infos) {
274
+ return number(id, optional, { ...infos, displayType: "currency" });
277
275
  }
278
276
  //endregion
279
277
  //region Percent
280
- export function percent(title, optional, infos) {
281
- return number(title, optional, { ...infos, displayType: "percent" });
278
+ export function percent(id, optional, infos) {
279
+ return number(id, optional, { ...infos, displayType: "percent" });
282
280
  }
283
- export function file(title, optional, infos) {
284
- return { ...infos, title, optional, type: "file" };
281
+ export function file(id, optional, infos) {
282
+ return { ...infos, id, optional, type: "file" };
285
283
  }
286
284
  //endregion
287
285
  //endregion
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jk_schemas/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jk_schemas/index.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,12 @@ export interface ValueWithPriority<T> {
17
17
  value: T;
18
18
  priority: PriorityLevel;
19
19
  }
20
+ /**
21
+ * Sorts a list of items based on their priority level in ascending order.
22
+ * Items with lower priority values (e.g., -200) will appear first in the returned array.
23
+ * @param values The list of items to sort, each containing a value and a priority.
24
+ * @returns An array of just the values, sorted by priority. Returns undefined if the input is undefined.
25
+ */
20
26
  export declare function sortByPriority<T>(values: undefined | ValueWithPriority<T>[]): undefined | (T[]);
21
27
  /**
22
28
  * Allows avoiding calling a function before n-milliseconds is elapsed.
@@ -57,6 +57,12 @@ export var PriorityLevel;
57
57
  PriorityLevel[PriorityLevel["high"] = 100] = "high";
58
58
  PriorityLevel[PriorityLevel["veryHigh"] = 200] = "veryHigh";
59
59
  })(PriorityLevel || (PriorityLevel = {}));
60
+ /**
61
+ * Sorts a list of items based on their priority level in ascending order.
62
+ * Items with lower priority values (e.g., -200) will appear first in the returned array.
63
+ * @param values The list of items to sort, each containing a value and a priority.
64
+ * @returns An array of just the values, sorted by priority. Returns undefined if the input is undefined.
65
+ */
60
66
  export function sortByPriority(values) {
61
67
  if (values === undefined)
62
68
  return undefined;