@numerum-tech/yeriasdk 1.0.0

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 (94) hide show
  1. package/README.md +864 -0
  2. package/dist/core/action-grid-view.d.ts +57 -0
  3. package/dist/core/action-grid-view.d.ts.map +1 -0
  4. package/dist/core/action-grid-view.js +112 -0
  5. package/dist/core/action-grid-view.js.map +1 -0
  6. package/dist/core/action-list-view.d.ts +39 -0
  7. package/dist/core/action-list-view.d.ts.map +1 -0
  8. package/dist/core/action-list-view.js +77 -0
  9. package/dist/core/action-list-view.js.map +1 -0
  10. package/dist/core/base/base-action-view.d.ts +82 -0
  11. package/dist/core/base/base-action-view.d.ts.map +1 -0
  12. package/dist/core/base/base-action-view.js +143 -0
  13. package/dist/core/base/base-action-view.js.map +1 -0
  14. package/dist/core/base-view.d.ts +105 -0
  15. package/dist/core/base-view.d.ts.map +1 -0
  16. package/dist/core/base-view.js +426 -0
  17. package/dist/core/base-view.js.map +1 -0
  18. package/dist/core/card-view.d.ts +24 -0
  19. package/dist/core/card-view.d.ts.map +1 -0
  20. package/dist/core/card-view.js +127 -0
  21. package/dist/core/card-view.js.map +1 -0
  22. package/dist/core/carousel-view.d.ts +22 -0
  23. package/dist/core/carousel-view.d.ts.map +1 -0
  24. package/dist/core/carousel-view.js +99 -0
  25. package/dist/core/carousel-view.js.map +1 -0
  26. package/dist/core/form-view.d.ts +165 -0
  27. package/dist/core/form-view.d.ts.map +1 -0
  28. package/dist/core/form-view.js +365 -0
  29. package/dist/core/form-view.js.map +1 -0
  30. package/dist/core/jsonapp.d.ts +263 -0
  31. package/dist/core/jsonapp.d.ts.map +1 -0
  32. package/dist/core/jsonapp.js +528 -0
  33. package/dist/core/jsonapp.js.map +1 -0
  34. package/dist/core/key-store.d.ts +51 -0
  35. package/dist/core/key-store.d.ts.map +1 -0
  36. package/dist/core/key-store.js +138 -0
  37. package/dist/core/key-store.js.map +1 -0
  38. package/dist/core/map-view.d.ts +45 -0
  39. package/dist/core/map-view.d.ts.map +1 -0
  40. package/dist/core/map-view.js +318 -0
  41. package/dist/core/map-view.js.map +1 -0
  42. package/dist/core/media-view.d.ts +20 -0
  43. package/dist/core/media-view.d.ts.map +1 -0
  44. package/dist/core/media-view.js +75 -0
  45. package/dist/core/media-view.js.map +1 -0
  46. package/dist/core/message-view.d.ts +53 -0
  47. package/dist/core/message-view.d.ts.map +1 -0
  48. package/dist/core/message-view.js +109 -0
  49. package/dist/core/message-view.js.map +1 -0
  50. package/dist/core/notification.d.ts +17 -0
  51. package/dist/core/notification.d.ts.map +1 -0
  52. package/dist/core/notification.js +33 -0
  53. package/dist/core/notification.js.map +1 -0
  54. package/dist/core/qr-display-view.d.ts +32 -0
  55. package/dist/core/qr-display-view.d.ts.map +1 -0
  56. package/dist/core/qr-display-view.js +66 -0
  57. package/dist/core/qr-display-view.js.map +1 -0
  58. package/dist/core/qr-scan-view.d.ts +148 -0
  59. package/dist/core/qr-scan-view.d.ts.map +1 -0
  60. package/dist/core/qr-scan-view.js +259 -0
  61. package/dist/core/qr-scan-view.js.map +1 -0
  62. package/dist/core/reader-view.d.ts +73 -0
  63. package/dist/core/reader-view.d.ts.map +1 -0
  64. package/dist/core/reader-view.js +285 -0
  65. package/dist/core/reader-view.js.map +1 -0
  66. package/dist/core/timeline-view.d.ts +16 -0
  67. package/dist/core/timeline-view.d.ts.map +1 -0
  68. package/dist/core/timeline-view.js +68 -0
  69. package/dist/core/timeline-view.js.map +1 -0
  70. package/dist/errors/index.d.ts +276 -0
  71. package/dist/errors/index.d.ts.map +1 -0
  72. package/dist/errors/index.js +431 -0
  73. package/dist/errors/index.js.map +1 -0
  74. package/dist/index.d.ts +26 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +103 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/types/index.d.ts +576 -0
  79. package/dist/types/index.d.ts.map +1 -0
  80. package/dist/types/index.js +48 -0
  81. package/dist/types/index.js.map +1 -0
  82. package/dist/utils/fileFormats.d.ts +52 -0
  83. package/dist/utils/fileFormats.d.ts.map +1 -0
  84. package/dist/utils/fileFormats.js +198 -0
  85. package/dist/utils/fileFormats.js.map +1 -0
  86. package/dist/utils/logger.d.ts +38 -0
  87. package/dist/utils/logger.d.ts.map +1 -0
  88. package/dist/utils/logger.js +109 -0
  89. package/dist/utils/logger.js.map +1 -0
  90. package/dist/utils/validators.d.ts +48 -0
  91. package/dist/utils/validators.d.ts.map +1 -0
  92. package/dist/utils/validators.js +445 -0
  93. package/dist/utils/validators.js.map +1 -0
  94. package/package.json +65 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileFormats.d.ts","sourceRoot":"","sources":["../../src/utils/fileFormats.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAgE9C,CAAC;AAIF,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;IAC3C,OAAO,CAAC,aAAa,CAAkC;IAEvD,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,iBAAiB;IAOvC;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAehD;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAY/C;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK1D;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAK9C;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIpC;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAM/B;;OAEG;IACH,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAYhD;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE;IAe1E;;OAEG;IACH,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAkB9D;;OAEG;IACH,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAYrD;AAGD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAExD"}
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FileFormatManager = exports.fileFormats = void 0;
4
+ exports.getMimeTypes = getMimeTypes;
5
+ exports.fileFormats = {
6
+ // Documents
7
+ pdf: "application/pdf",
8
+ doc: "application/msword",
9
+ docx: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
10
+ xls: "application/vnd.ms-excel",
11
+ xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
12
+ ppt: "application/vnd.ms-powerpoint",
13
+ pptx: "application/vnd.openxmlformats-officedocument.presentationml.presentation",
14
+ csv: "text/csv",
15
+ txt: "text/plain",
16
+ rtf: "application/rtf",
17
+ // Images
18
+ png: "image/png",
19
+ jpeg: "image/jpeg",
20
+ jpg: "image/jpeg",
21
+ gif: "image/gif",
22
+ webp: "image/webp",
23
+ svg: "image/svg+xml",
24
+ bmp: "image/bmp",
25
+ tiff: "image/tiff",
26
+ ico: "image/x-icon",
27
+ // Audio
28
+ mp3: "audio/mpeg",
29
+ wav: "audio/wav",
30
+ ogg: "audio/ogg",
31
+ aac: "audio/aac",
32
+ wma: "audio/x-ms-wma",
33
+ // Vidéo
34
+ mp4: "video/mp4",
35
+ avi: "video/x-msvideo",
36
+ mov: "video/quicktime",
37
+ wmv: "video/x-ms-wmv",
38
+ flv: "video/x-flv",
39
+ webm: "video/webm",
40
+ // Archives
41
+ zip: "application/zip",
42
+ rar: "application/vnd.rar",
43
+ "7z": "application/x-7z-compressed",
44
+ tar: "application/x-tar",
45
+ gz: "application/gzip",
46
+ // Code
47
+ json: "application/json",
48
+ xml: "application/xml",
49
+ html: "text/html",
50
+ css: "text/css",
51
+ js: "application/javascript",
52
+ ts: "application/typescript",
53
+ py: "text/x-python",
54
+ java: "text/x-java-source",
55
+ cpp: "text/x-c++src",
56
+ c: "text/x-csrc",
57
+ // Autres
58
+ sql: "application/sql",
59
+ yaml: "application/x-yaml",
60
+ yml: "application/x-yaml",
61
+ md: "text/markdown",
62
+ log: "text/plain"
63
+ };
64
+ const errors_1 = require("../errors");
65
+ class FileFormatManager {
66
+ constructor() {
67
+ this.customFormats = new Map();
68
+ }
69
+ static getInstance() {
70
+ if (!FileFormatManager.instance) {
71
+ FileFormatManager.instance = new FileFormatManager();
72
+ }
73
+ return FileFormatManager.instance;
74
+ }
75
+ /**
76
+ * Obtient les types MIME pour une liste de formats
77
+ */
78
+ static getMimeTypes(formats) {
79
+ if (!formats || !Array.isArray(formats) || formats.length === 0) {
80
+ throw new errors_1.EmptyCollectionError('formats', 'At least one format must be provided');
81
+ }
82
+ const manager = FileFormatManager.getInstance();
83
+ return formats.map(format => {
84
+ const mimeType = manager.getMimeType(format);
85
+ if (!mimeType) {
86
+ throw new errors_1.InvalidParameterError('format', format, `Unsupported file format: ${format}`);
87
+ }
88
+ return mimeType;
89
+ });
90
+ }
91
+ /**
92
+ * Obtient le type MIME pour un format spécifique
93
+ */
94
+ getMimeType(format) {
95
+ const normalizedFormat = format.toLowerCase().replace(/^\./, '');
96
+ // Vérifier d'abord les formats personnalisés
97
+ if (this.customFormats.has(normalizedFormat)) {
98
+ return this.customFormats.get(normalizedFormat);
99
+ }
100
+ // Puis les formats standards
101
+ return exports.fileFormats[normalizedFormat];
102
+ }
103
+ /**
104
+ * Ajoute un format personnalisé
105
+ */
106
+ addCustomFormat(extension, mimeType) {
107
+ const normalizedExtension = extension.toLowerCase().replace(/^\./, '');
108
+ this.customFormats.set(normalizedExtension, mimeType);
109
+ }
110
+ /**
111
+ * Supprime un format personnalisé
112
+ */
113
+ removeCustomFormat(extension) {
114
+ const normalizedExtension = extension.toLowerCase().replace(/^\./, '');
115
+ return this.customFormats.delete(normalizedExtension);
116
+ }
117
+ /**
118
+ * Vérifie si un format est supporté
119
+ */
120
+ isSupported(format) {
121
+ return this.getMimeType(format) !== undefined;
122
+ }
123
+ /**
124
+ * Obtient tous les formats supportés
125
+ */
126
+ getSupportedFormats() {
127
+ const standardFormats = Object.keys(exports.fileFormats);
128
+ const customFormats = Array.from(this.customFormats.keys());
129
+ return [...standardFormats, ...customFormats];
130
+ }
131
+ /**
132
+ * Obtient les formats par catégorie
133
+ */
134
+ getFormatsByCategory() {
135
+ return {
136
+ documents: ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'csv', 'txt', 'rtf'],
137
+ images: ['png', 'jpeg', 'jpg', 'gif', 'webp', 'svg', 'bmp', 'tiff', 'ico'],
138
+ audio: ['mp3', 'wav', 'ogg', 'aac', 'wma'],
139
+ video: ['mp4', 'avi', 'mov', 'wmv', 'flv', 'webm'],
140
+ archives: ['zip', 'rar', '7z', 'tar', 'gz'],
141
+ code: ['json', 'xml', 'html', 'css', 'js', 'ts', 'py', 'java', 'cpp', 'c'],
142
+ other: ['sql', 'yaml', 'yml', 'md', 'log']
143
+ };
144
+ }
145
+ /**
146
+ * Valide une liste de formats
147
+ */
148
+ validateFormats(formats) {
149
+ const valid = [];
150
+ const invalid = [];
151
+ formats.forEach(format => {
152
+ if (this.isSupported(format)) {
153
+ valid.push(format);
154
+ }
155
+ else {
156
+ invalid.push(format);
157
+ }
158
+ });
159
+ return { valid, invalid };
160
+ }
161
+ /**
162
+ * Obtient l'extension à partir d'un type MIME
163
+ */
164
+ getExtensionFromMimeType(mimeType) {
165
+ // Chercher dans les formats standards
166
+ for (const [ext, mime] of Object.entries(exports.fileFormats)) {
167
+ if (mime === mimeType) {
168
+ return ext;
169
+ }
170
+ }
171
+ // Chercher dans les formats personnalisés
172
+ for (const [ext, mime] of this.customFormats.entries()) {
173
+ if (mime === mimeType) {
174
+ return ext;
175
+ }
176
+ }
177
+ return undefined;
178
+ }
179
+ /**
180
+ * Obtient les types MIME par catégorie
181
+ */
182
+ getMimeTypesByCategory() {
183
+ const categories = this.getFormatsByCategory();
184
+ const result = {};
185
+ for (const [category, formats] of Object.entries(categories)) {
186
+ result[category] = formats
187
+ .map(format => this.getMimeType(format))
188
+ .filter((mime) => mime !== undefined);
189
+ }
190
+ return result;
191
+ }
192
+ }
193
+ exports.FileFormatManager = FileFormatManager;
194
+ // Fonction utilitaire pour la compatibilité avec l'ancien code
195
+ function getMimeTypes(formats) {
196
+ return FileFormatManager.getMimeTypes(formats);
197
+ }
198
+ //# sourceMappingURL=fileFormats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileFormats.js","sourceRoot":"","sources":["../../src/utils/fileFormats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { LogEntry } from '../types';
2
+ /**
3
+ * Legacy Logger class for backward compatibility
4
+ * @deprecated Logger has been removed from SDK. Use error handling instead.
5
+ * The SDK now throws structured errors that you can catch and log as needed.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * try {
10
+ * const view = jsonApp.createFormView('id', 'title');
11
+ * } catch (error) {
12
+ * if (error instanceof ViewValidationError) {
13
+ * myLogger.error('Validation failed', error.toJSON());
14
+ * }
15
+ * }
16
+ * ```
17
+ */
18
+ export declare class Logger {
19
+ private static instance;
20
+ private logLevel;
21
+ private handlers;
22
+ private constructor();
23
+ static getInstance(): Logger;
24
+ setLogLevel(level: LogEntry['level']): void;
25
+ addHandler(handler: (entry: LogEntry) => void): void;
26
+ private shouldLog;
27
+ private createEntry;
28
+ private emit;
29
+ debug(message: string, context?: Record<string, unknown>): void;
30
+ info(message: string, context?: Record<string, unknown>): void;
31
+ warn(message: string, context?: Record<string, unknown>): void;
32
+ error(message: string, context?: Record<string, unknown>): void;
33
+ static debug(message: string, context?: Record<string, unknown>): void;
34
+ static info(message: string, context?: Record<string, unknown>): void;
35
+ static warn(message: string, context?: Record<string, unknown>): void;
36
+ static error(message: string, context?: Record<string, unknown>): void;
37
+ }
38
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,MAAM;IACf,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;IAChC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,QAAQ,CAAwC;IAExD,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,MAAM;IAO5B,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI;IAI3C,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAIpD,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,IAAI;IAkCZ,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI/D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAK/D,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAItE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIrE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIrE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAGzE"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Logger = void 0;
4
+ /**
5
+ * Legacy Logger class for backward compatibility
6
+ * @deprecated Logger has been removed from SDK. Use error handling instead.
7
+ * The SDK now throws structured errors that you can catch and log as needed.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * try {
12
+ * const view = jsonApp.createFormView('id', 'title');
13
+ * } catch (error) {
14
+ * if (error instanceof ViewValidationError) {
15
+ * myLogger.error('Validation failed', error.toJSON());
16
+ * }
17
+ * }
18
+ * ```
19
+ */
20
+ class Logger {
21
+ constructor() {
22
+ this.logLevel = 'info';
23
+ this.handlers = [];
24
+ }
25
+ static getInstance() {
26
+ if (!Logger.instance) {
27
+ Logger.instance = new Logger();
28
+ }
29
+ return Logger.instance;
30
+ }
31
+ setLogLevel(level) {
32
+ this.logLevel = level;
33
+ }
34
+ addHandler(handler) {
35
+ this.handlers.push(handler);
36
+ }
37
+ shouldLog(level) {
38
+ const levels = ['debug', 'info', 'warn', 'error'];
39
+ return levels.indexOf(level) >= levels.indexOf(this.logLevel);
40
+ }
41
+ createEntry(level, message, context) {
42
+ return {
43
+ timestamp: new Date(),
44
+ level,
45
+ message,
46
+ context,
47
+ stack: level === 'error' ? new Error().stack : undefined,
48
+ };
49
+ }
50
+ emit(entry) {
51
+ if (!this.shouldLog(entry.level))
52
+ return;
53
+ // Handler par défaut (console)
54
+ const defaultHandler = (entry) => {
55
+ const prefix = `[${entry.timestamp.toISOString()}] [${entry.level.toUpperCase()}]`;
56
+ const contextStr = entry.context ? ` ${JSON.stringify(entry.context)}` : '';
57
+ switch (entry.level) {
58
+ case 'debug':
59
+ console.debug(`${prefix} ${entry.message}${contextStr}`);
60
+ break;
61
+ case 'info':
62
+ console.info(`${prefix} ${entry.message}${contextStr}`);
63
+ break;
64
+ case 'warn':
65
+ console.warn(`${prefix} ${entry.message}${contextStr}`);
66
+ break;
67
+ case 'error':
68
+ console.error(`${prefix} ${entry.message}${contextStr}`, entry.stack);
69
+ break;
70
+ }
71
+ };
72
+ // Exécuter tous les handlers
73
+ [defaultHandler, ...this.handlers].forEach(handler => {
74
+ try {
75
+ handler(entry);
76
+ }
77
+ catch (error) {
78
+ console.error('Logger handler error:', error);
79
+ }
80
+ });
81
+ }
82
+ debug(message, context) {
83
+ this.emit(this.createEntry('debug', message, context));
84
+ }
85
+ info(message, context) {
86
+ this.emit(this.createEntry('info', message, context));
87
+ }
88
+ warn(message, context) {
89
+ this.emit(this.createEntry('warn', message, context));
90
+ }
91
+ error(message, context) {
92
+ this.emit(this.createEntry('error', message, context));
93
+ }
94
+ // Méthodes statiques pour faciliter l'utilisation
95
+ static debug(message, context) {
96
+ Logger.getInstance().debug(message, context);
97
+ }
98
+ static info(message, context) {
99
+ Logger.getInstance().info(message, context);
100
+ }
101
+ static warn(message, context) {
102
+ Logger.getInstance().warn(message, context);
103
+ }
104
+ static error(message, context) {
105
+ Logger.getInstance().error(message, context);
106
+ }
107
+ }
108
+ exports.Logger = Logger;
109
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;GAeG;AACH,MAAa,MAAM;IAKf;QAHQ,aAAQ,GAAsB,MAAM,CAAC;QACrC,aAAQ,GAAqC,EAAE,CAAC;IAEhC,CAAC;IAEzB,MAAM,CAAC,WAAW;QACd,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,WAAW,CAAC,KAAwB;QAChC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,UAAU,CAAC,OAAkC;QACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAEO,SAAS,CAAC,KAAwB;QACtC,MAAM,MAAM,GAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACvE,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAEO,WAAW,CACf,KAAwB,EACxB,OAAe,EACf,OAAiC;QAEjC,OAAO;YACH,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,KAAK;YACL,OAAO;YACP,OAAO;YACP,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SAC3D,CAAC;IACN,CAAC;IAEO,IAAI,CAAC,KAAe;QACxB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO;QAEzC,+BAA+B;QAC/B,MAAM,cAAc,GAAG,CAAC,KAAe,EAAE,EAAE;YACvC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC;YACnF,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAE5E,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;gBAClB,KAAK,OAAO;oBACR,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC,CAAC;oBACzD,MAAM;gBACV,KAAK,MAAM;oBACP,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC,CAAC;oBACxD,MAAM;gBACV,KAAK,MAAM;oBACP,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC,CAAC;oBACxD,MAAM;gBACV,KAAK,OAAO;oBACR,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,UAAU,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;oBACtE,MAAM;YACd,CAAC;QACL,CAAC,CAAC;QAEF,6BAA6B;QAC7B,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACjD,IAAI,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;YAClD,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAAiC;QACpD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,OAAiC;QACnD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,OAAiC;QACnD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAAiC;QACpD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,kDAAkD;IAClD,MAAM,CAAC,KAAK,CAAC,OAAe,EAAE,OAAiC;QAC3D,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAe,EAAE,OAAiC;QAC1D,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAe,EAAE,OAAiC;QAC1D,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAe,EAAE,OAAiC;QAC3D,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;CACJ;AA3GD,wBA2GC"}
@@ -0,0 +1,48 @@
1
+ import { FieldValidation, ValidationResult, FormFieldParams } from '../types';
2
+ export declare class DataSanitizer {
3
+ /**
4
+ * Sanitizes user input to prevent injection attacks
5
+ * @param input - String to sanitize
6
+ * @param options - Sanitization options
7
+ * @returns Sanitized string
8
+ */
9
+ static sanitizeInput(input: string, options?: {
10
+ allowHtml?: boolean;
11
+ }): string;
12
+ static validateCoordinates(lat: number, lon: number): boolean;
13
+ static validateEmail(email: string): boolean;
14
+ static validateURL(url: string): boolean;
15
+ static validatePhoneNumber(phone: string): boolean;
16
+ static validateDate(dateString: string): boolean;
17
+ static validateNumber(value: unknown): boolean;
18
+ static validatePlusCode(plusCode: string): boolean;
19
+ static validatePassword(password: string, minLength?: number): {
20
+ valid: boolean;
21
+ error?: string;
22
+ };
23
+ }
24
+ export declare class FieldValidator {
25
+ static validateField(fieldType: string, fieldId: string, fieldLabel: string, params?: FormFieldParams): ValidationResult;
26
+ }
27
+ export declare class FormValidator {
28
+ static validateFormData(formData: Record<string, unknown>, fieldValidations: Map<string, FieldValidation>): ValidationResult;
29
+ }
30
+ /**
31
+ * Configuration pour la validation d'URL sécurisée
32
+ */
33
+ export interface URLValidationConfig {
34
+ allowedDomains?: string[];
35
+ allowedProtocols?: string[];
36
+ blockPrivateIPs?: boolean;
37
+ blockLocalhost?: boolean;
38
+ maxUrlLength?: number;
39
+ }
40
+ /**
41
+ * Valide une URL de soumission de manière sécurisée
42
+ */
43
+ export declare function validateSubmissionURL(url: string, config?: URLValidationConfig): ValidationResult;
44
+ /**
45
+ * Configuration par défaut sécurisée
46
+ */
47
+ export declare const DEFAULT_URL_CONFIG: URLValidationConfig;
48
+ //# sourceMappingURL=validators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAiE,MAAM,UAAU,CAAC;AAE7I,qBAAa,aAAa;IACtB;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,MAAM;IA0BlF,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAI7D,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAK5C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IASxC,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAKlD,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAShD,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAI9C,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAMlD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAE,MAAU,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;CAsBvG;AAED,qBAAa,cAAc;IACvB,MAAM,CAAC,aAAa,CAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,eAAe,GACzB,gBAAgB;CAgOtB;AAED,qBAAa,aAAa;IACtB,MAAM,CAAC,gBAAgB,CACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,GAC/C,gBAAgB;CAwFtB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,mBAAwB,GAAG,gBAAgB,CAoFrG;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,mBAKhC,CAAC"}