dphelper 4.6.2 → 4.7.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 (163) hide show
  1. package/index.cjs +3 -3
  2. package/index.js +3 -3
  3. package/markdown/ai.md +345 -0
  4. package/markdown/anchor.md +156 -0
  5. package/markdown/array.md +208 -0
  6. package/markdown/audio.md +113 -0
  7. package/markdown/avoid.md +53 -0
  8. package/markdown/biometric.md +338 -0
  9. package/markdown/browser.md +203 -0
  10. package/markdown/check.md +65 -0
  11. package/markdown/color.md +159 -0
  12. package/markdown/compress.md +310 -0
  13. package/markdown/cookie.md +115 -0
  14. package/markdown/coords.md +127 -0
  15. package/markdown/credits.md +56 -0
  16. package/markdown/date.md +260 -0
  17. package/markdown/disable.md +109 -0
  18. package/markdown/dispatch.md +108 -0
  19. package/markdown/element.md +53 -0
  20. package/markdown/event.md +85 -0
  21. package/markdown/fetch.md +122 -0
  22. package/markdown/form.md +302 -0
  23. package/markdown/format.md +122 -0
  24. package/markdown/i18n.md +292 -0
  25. package/markdown/image.md +298 -0
  26. package/markdown/json.md +269 -0
  27. package/markdown/load.md +133 -0
  28. package/markdown/logging.md +99 -0
  29. package/markdown/math.md +172 -0
  30. package/markdown/memory.md +85 -0
  31. package/markdown/navigation.md +152 -0
  32. package/markdown/net.md +60 -0
  33. package/markdown/obj.md +242 -0
  34. package/markdown/path.md +46 -0
  35. package/markdown/promise.md +94 -0
  36. package/markdown/sanitize.md +129 -0
  37. package/markdown/screen.md +78 -0
  38. package/markdown/scrollbar.md +82 -0
  39. package/markdown/security.md +289 -0
  40. package/markdown/shortcut.md +100 -0
  41. package/markdown/socket.md +134 -0
  42. package/markdown/sse.md +120 -0
  43. package/markdown/svg.md +167 -0
  44. package/markdown/sync.md +171 -0
  45. package/markdown/system.md +78 -0
  46. package/markdown/terminal.md +73 -0
  47. package/markdown/text.md +245 -0
  48. package/markdown/timer.md +98 -0
  49. package/markdown/tools.md +111 -0
  50. package/markdown/translators.md +65 -0
  51. package/markdown/trigger.md +99 -0
  52. package/markdown/triggers.md +133 -0
  53. package/markdown/type.md +109 -0
  54. package/markdown/types.md +102 -0
  55. package/markdown/ui.md +45 -0
  56. package/markdown/window.md +211 -0
  57. package/markdown/worker.md +223 -0
  58. package/modules/ai.cjs +1 -1
  59. package/modules/ai.js +1 -1
  60. package/modules/anchor.cjs +1 -1
  61. package/modules/anchor.js +1 -1
  62. package/modules/array.cjs +1 -1
  63. package/modules/array.js +1 -1
  64. package/modules/audio.cjs +1 -1
  65. package/modules/audio.js +1 -1
  66. package/modules/avoid.cjs +1 -1
  67. package/modules/avoid.js +1 -1
  68. package/modules/biometric.cjs +1 -1
  69. package/modules/biometric.js +1 -1
  70. package/modules/browser.cjs +1 -1
  71. package/modules/browser.js +1 -1
  72. package/modules/check.cjs +1 -1
  73. package/modules/check.js +1 -1
  74. package/modules/color.cjs +1 -1
  75. package/modules/color.js +1 -1
  76. package/modules/compress.cjs +1 -1
  77. package/modules/compress.js +1 -1
  78. package/modules/cookie.cjs +1 -1
  79. package/modules/cookie.js +1 -1
  80. package/modules/coords.cjs +1 -1
  81. package/modules/coords.js +1 -1
  82. package/modules/credits.cjs +1 -1
  83. package/modules/credits.js +1 -1
  84. package/modules/date.cjs +1 -1
  85. package/modules/date.js +1 -1
  86. package/modules/disable.cjs +1 -1
  87. package/modules/disable.js +1 -1
  88. package/modules/dispatch.cjs +1 -1
  89. package/modules/dispatch.js +1 -1
  90. package/modules/elements.cjs +1 -1
  91. package/modules/elements.js +1 -1
  92. package/modules/events.cjs +1 -1
  93. package/modules/events.js +1 -1
  94. package/modules/fetch.cjs +1 -1
  95. package/modules/fetch.js +1 -1
  96. package/modules/form.cjs +1 -1
  97. package/modules/form.js +1 -1
  98. package/modules/format.cjs +1 -1
  99. package/modules/format.js +1 -1
  100. package/modules/i18n.cjs +1 -1
  101. package/modules/i18n.js +1 -1
  102. package/modules/image.cjs +1 -1
  103. package/modules/image.js +1 -1
  104. package/modules/json.cjs +1 -1
  105. package/modules/json.js +1 -1
  106. package/modules/load.cjs +1 -1
  107. package/modules/load.js +1 -1
  108. package/modules/logging.cjs +1 -1
  109. package/modules/logging.js +1 -1
  110. package/modules/math.cjs +1 -1
  111. package/modules/math.js +1 -1
  112. package/modules/memory.cjs +1 -1
  113. package/modules/memory.js +1 -1
  114. package/modules/navigation.cjs +1 -1
  115. package/modules/navigation.js +1 -1
  116. package/modules/net.cjs +1 -1
  117. package/modules/net.js +1 -1
  118. package/modules/objects.cjs +1 -1
  119. package/modules/objects.js +1 -1
  120. package/modules/path.cjs +1 -1
  121. package/modules/path.js +1 -1
  122. package/modules/promise.cjs +1 -1
  123. package/modules/promise.js +1 -1
  124. package/modules/sanitize.cjs +1 -1
  125. package/modules/sanitize.js +1 -1
  126. package/modules/screen.cjs +1 -1
  127. package/modules/screen.js +1 -1
  128. package/modules/scrollbar.cjs +1 -1
  129. package/modules/scrollbar.js +1 -1
  130. package/modules/security.cjs +1 -1
  131. package/modules/security.js +1 -1
  132. package/modules/shortcut.cjs +1 -1
  133. package/modules/shortcut.js +1 -1
  134. package/modules/socket.cjs +1 -1
  135. package/modules/socket.js +1 -1
  136. package/modules/sse.cjs +1 -1
  137. package/modules/sse.js +1 -1
  138. package/modules/svg.cjs +1 -1
  139. package/modules/svg.js +1 -1
  140. package/modules/sync.cjs +1 -1
  141. package/modules/sync.js +1 -1
  142. package/modules/system.cjs +1 -1
  143. package/modules/system.js +1 -1
  144. package/modules/text.cjs +1 -1
  145. package/modules/text.js +1 -1
  146. package/modules/timer.cjs +1 -1
  147. package/modules/timer.js +1 -1
  148. package/modules/tools.cjs +1 -1
  149. package/modules/tools.js +1 -1
  150. package/modules/translators.cjs +1 -1
  151. package/modules/translators.js +1 -1
  152. package/modules/triggers.cjs +1 -1
  153. package/modules/triggers.js +1 -1
  154. package/modules/types.cjs +1 -1
  155. package/modules/types.js +1 -1
  156. package/modules/ui.cjs +1 -1
  157. package/modules/ui.js +1 -1
  158. package/modules/window.cjs +1 -1
  159. package/modules/window.js +1 -1
  160. package/modules/worker.cjs +1 -1
  161. package/modules/worker.js +1 -1
  162. package/package.json +3 -1
  163. package/sbom.json +7 -7
@@ -0,0 +1,223 @@
1
+ # worker
2
+
3
+ Web Worker management utilities for multi-threaded JavaScript execution, including worker creation, pool management, and parallel task processing.
4
+
5
+ ## Functions
6
+
7
+ | Function | Description | Example |
8
+ |----------|-------------|---------|
9
+ | `create` | Create a worker from URL | `dphelper.worker.create('worker.js', { onmessage: (e) => console.log(e.data) })` |
10
+ | `createInline` | Create worker from inline code | `dphelper.worker.createInline('self.onmessage = e => postMessage(e.data * 2)')` |
11
+ | `post` | Send message to worker | `dphelper.worker.post(worker, { type: 'compute', data: 42 })` |
12
+ | `terminate` | Stop a worker | `dphelper.worker.terminate(worker)` |
13
+ | `pool` | Create worker pool | `dphelper.worker.pool('worker.js', 4)` |
14
+ | `poolExec` | Execute tasks in pool | `dphelper.worker.poolExec(pool, tasks)` |
15
+ | `importScripts` | Import scripts into worker | `dphelper.worker.importScripts(worker, ['lib1.js', 'lib2.js'])` |
16
+ | `shared` | Create SharedWorker | `dphelper.worker.shared('my-worker.js', { name: 'shared' })` |
17
+
18
+ ## Description
19
+
20
+ Powerful Web Worker management module providing:
21
+ - **Inline Workers** - Create workers from JavaScript strings without external files
22
+ - **Worker Pools** - Manage multiple workers for parallel processing
23
+ - **SharedWorkers** - Cross-tab communication via shared worker
24
+ - **Script Import** - Dynamically import external scripts into workers
25
+ - **Transferable Support** - Efficient data transfer using Transferable objects
26
+
27
+ ## Usage Examples
28
+
29
+ ### Basic Worker Creation
30
+
31
+ ```javascript
32
+ // Create worker from external file
33
+ const worker = dphelper.worker.create('worker.js', {
34
+ onmessage: (e) => {
35
+ console.log('Received:', e.data);
36
+ },
37
+ onerror: (e) => {
38
+ console.error('Worker error:', e);
39
+ }
40
+ });
41
+
42
+ // Send message to worker
43
+ dphelper.worker.post(worker, { type: 'hello', data: 'world' });
44
+
45
+ // When done, terminate worker
46
+ dphelper.worker.terminate(worker);
47
+ ```
48
+
49
+ ### Inline Workers
50
+
51
+ ```javascript
52
+ // Create worker from inline code
53
+ const worker = dphelper.worker.createInline(`
54
+ self.onmessage = function(e) {
55
+ // Perform heavy computation
56
+ const result = e.data * 2;
57
+ postMessage(result);
58
+ };
59
+ `, {
60
+ onmessage: (e) => {
61
+ console.log('Result:', e.data); // 84
62
+ }
63
+ });
64
+
65
+ dphelper.worker.post(worker, 42);
66
+ ```
67
+
68
+ ### Worker Pool for Parallel Processing
69
+
70
+ ```javascript
71
+ // Create a pool of 4 workers
72
+ const pool = dphelper.worker.pool('compute-worker.js', 4);
73
+
74
+ // Prepare tasks
75
+ const tasks = [
76
+ { id: 1, data: 100 },
77
+ { id: 2, data: 200 },
78
+ { id: 3, data: 300 },
79
+ { id: 4, data: 400 },
80
+ { id: 5, data: 500 }
81
+ ];
82
+
83
+ // Execute all tasks in parallel across the pool
84
+ const results = await dphelper.worker.poolExec(pool, tasks);
85
+ console.log(results); // [200, 400, 600, 800, 1000]
86
+ ```
87
+
88
+ ### SharedWorker for Cross-Tab Communication
89
+
90
+ ```javascript
91
+ // Create shared worker (accessible from multiple tabs)
92
+ const shared = dphelper.worker.shared('shared-worker.js', {
93
+ name: 'my-shared-worker',
94
+ onconnect: (e) => {
95
+ console.log('New connection:', e.ports[0]);
96
+ },
97
+ onmessage: (e) => {
98
+ console.log('Shared message:', e.data);
99
+ }
100
+ });
101
+
102
+ // Send message through port
103
+ shared.port.postMessage({ type: 'hello' });
104
+ shared.port.start();
105
+ ```
106
+
107
+ ### Importing Scripts
108
+
109
+ ```javascript
110
+ const worker = dphelper.worker.create('main-worker.js');
111
+
112
+ // Import external libraries into worker
113
+ dphelper.worker.importScripts(worker, [
114
+ 'https://cdn.example.com/lib1.js',
115
+ 'https://cdn.example.com/lib2.js'
116
+ ]);
117
+ ```
118
+
119
+ ## Advanced Usage
120
+
121
+ ### Parallel Data Processing
122
+
123
+ ```javascript
124
+ // Worker file: data-processor.js
125
+ /*
126
+ self.onmessage = function(e) {
127
+ const { id, numbers } = e.data;
128
+
129
+ // Heavy computation
130
+ const sum = numbers.reduce((a, b) => a + b, 0);
131
+ const avg = sum / numbers.length;
132
+
133
+ postMessage({ id, sum, avg });
134
+ };
135
+ */
136
+
137
+ async function processData(items) {
138
+ const pool = dphelper.worker.pool('data-processor.js', navigator.hardwareConcurrency || 4);
139
+
140
+ const tasks = items.map((item, index) => ({
141
+ index,
142
+ data: { id: item.id, numbers: item.values }
143
+ }));
144
+
145
+ const results = await dphelper.worker.poolExec(pool, tasks);
146
+
147
+ // Sort by original index
148
+ return results.sort((a, b) => a.id - b.id);
149
+ }
150
+
151
+ // Usage
152
+ const data = [
153
+ { id: 1, values: [1, 2, 3, 4, 5] },
154
+ { id: 2, values: [10, 20, 30] },
155
+ { id: 3, values: [100, 200] }
156
+ ];
157
+
158
+ const processed = await processData(data);
159
+ console.log(processed);
160
+ ```
161
+
162
+ ### Real-time Communication with Pool
163
+
164
+ ```javascript
165
+ class WorkerPoolManager {
166
+ constructor(workerScript, poolSize = 4) {
167
+ this.pool = dphelper.worker.pool(workerScript, poolSize);
168
+ this.results = new Map();
169
+ }
170
+
171
+ async processTask(taskId, data) {
172
+ return new Promise((resolve, reject) => {
173
+ const handler = (e) => {
174
+ if (e.data.taskId === taskId) {
175
+ this.results.delete(taskId);
176
+ resolve(e.data.result);
177
+ }
178
+ };
179
+
180
+ this.pool.workers.forEach(w => w.addEventListener('message', handler));
181
+
182
+ dphelper.worker.post(this.pool.workers[0], { taskId, data });
183
+ });
184
+ }
185
+
186
+ terminate() {
187
+ this.pool.workers.forEach(w => dphelper.worker.terminate(w));
188
+ }
189
+ }
190
+ ```
191
+
192
+ ### Web Worker with Transferables
193
+
194
+ ```javascript
195
+ // Efficiently transfer large data without copying
196
+ const buffer = new ArrayBuffer(1024 * 1024); // 1MB
197
+ const numbers = new Uint8Array(buffer);
198
+
199
+ // Fill with data...
200
+
201
+ const worker = dphelper.worker.createInline(`
202
+ self.onmessage = function(e) {
203
+ const data = new Uint8Array(e.data.buffer);
204
+ // Process data...
205
+ postMessage({ processed: true }, [e.data.buffer]);
206
+ };
207
+ `);
208
+
209
+ // Transfer the buffer ownership to worker
210
+ dphelper.worker.post(worker, numbers, [buffer]);
211
+ ```
212
+
213
+ ## Details
214
+
215
+ - **Author:** Dario Passariello
216
+ - **Version:** 0.0.1
217
+ - **Creation Date:** 20260313
218
+ - **Last Modified:** 20260313
219
+ - **Environment:** Client-side only (browser)
220
+
221
+ ---
222
+
223
+ *Automatically generated document*
package/modules/ai.cjs CHANGED
@@ -1,4 +1,4 @@
1
- 'use strict';var P={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var v={version:"4.6.2"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...P},configurable:true,writable:true},version:{value:v.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var f=dphelper;Object.defineProperty(f,"setProps",{value:(e,t,r)=>{Object.defineProperty(e,t.name,r||{writable:false,configurable:false,enumerable:false}),r?.lock&&Object.freeze(e[t.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(f,"setDescription",{value:(e,t)=>{Object.defineProperties(f,{[e.name]:{value:t,writable:false,configurable:false,enumerable:false}}),Object.keys(t).map(r=>(Object.defineProperties(f[e.name],{[r]:{writable:false,configurable:false,enumerable:false}}),null)),f.setProps(f,e,{writable:false,configurable:false,enumerable:false}),f._list.scripts.push(e);}});var M={name:"ai",active:true,subCommand:[{name:"tokenCount",version:"0.0.3",example:"dphelper.ai.tokenCount({ users: [1,2,3] })",author:"Dario Passariello",creationDate:"20260220",lastMod:"20260221",type:"function",active:true,description:"Estimate token count for LLMs. If an object is passed, it uses TOON format for calculation.",env:"both",subCommand:[]},{name:"smartSanitize",version:"0.0.2",example:"dphelper.ai.smartSanitize('My email is test@example.com')",author:"Dario Passariello & Jo",creationDate:"20260220",lastMod:"20260220",type:"function",active:true,description:"Remove PII (emails, phones, etc) from text for AI privacy",subCommand:[]},{name:"toon",version:"0.0.1",example:"dphelper.ai.toon({ users: [{id: 1, name: 'Ada'}] })",author:"TOON + Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Convert JSON to TOON format (Token-Oriented Object Notation)",subCommand:[]},{name:"toonToJson",version:"0.0.1",example:"dphelper.ai.toonToJson('users[1]{id,name}:\\n 1,Ada')",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Convert TOON format back to JSON/Object",subCommand:[]},{name:"chunker",version:"0.0.1",example:"dphelper.ai.chunker(text, { size: 1000, overlap: 200 })",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Split long text into chunks for RAG or AI processing.",subCommand:[]},{name:"similarity",version:"0.0.1",example:"dphelper.ai.similarity(vecA, vecB)",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Calculate cosine similarity between two embedding vectors.",subCommand:[]},{name:"extractReasoning",version:"0.0.1",example:"dphelper.ai.extractReasoning(aiResponse)",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Extract <think> tags or internal reasoning from AI responses.",subCommand:[]},{name:"prompt",version:"0.0.1",example:"dphelper.ai.prompt('Hello {{name}}', { name: 'Ada' })",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Simple prompt template engine with variable injection.",subCommand:[]},{name:"schema",version:"0.0.1",example:"dphelper.ai.schema({ id: 1, name: 'Ada' })",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Generate a TOON-style schema definition for AI instructions.",subCommand:[]},{name:"snapshot",version:"0.0.1",example:"dphelper.ai.snapshot()",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Capture a 'mental snapshot' of the app state (logs/globals) in TOON format for AI debugging.",env:"both",subCommand:[]}]},x=e=>e===null||typeof e!="object",O=e=>e===null?"null":typeof e=="string"?e.includes(",")||e.includes(":")||e.includes('"')||e.includes(`
1
+ 'use strict';var P={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var v={version:"4.7.0"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...P},configurable:true,writable:true},version:{value:v.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var f=dphelper;Object.defineProperty(f,"setProps",{value:(e,t,r)=>{Object.defineProperty(e,t.name,r||{writable:false,configurable:false,enumerable:false}),r?.lock&&Object.freeze(e[t.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(f,"setDescription",{value:(e,t)=>{Object.defineProperties(f,{[e.name]:{value:t,writable:false,configurable:false,enumerable:false}}),Object.keys(t).map(r=>(Object.defineProperties(f[e.name],{[r]:{writable:false,configurable:false,enumerable:false}}),null)),f.setProps(f,e,{writable:false,configurable:false,enumerable:false}),f._list.scripts.push(e);}});var M={name:"ai",active:true,subCommand:[{name:"tokenCount",version:"0.0.3",example:"dphelper.ai.tokenCount({ users: [1,2,3] })",author:"Dario Passariello",creationDate:"20260220",lastMod:"20260221",type:"function",active:true,description:"Estimate token count for LLMs. If an object is passed, it uses TOON format for calculation.",env:"both",subCommand:[]},{name:"smartSanitize",version:"0.0.2",example:"dphelper.ai.smartSanitize('My email is test@example.com')",author:"Dario Passariello & Jo",creationDate:"20260220",lastMod:"20260220",type:"function",active:true,description:"Remove PII (emails, phones, etc) from text for AI privacy",subCommand:[]},{name:"toon",version:"0.0.1",example:"dphelper.ai.toon({ users: [{id: 1, name: 'Ada'}] })",author:"TOON + Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Convert JSON to TOON format (Token-Oriented Object Notation)",subCommand:[]},{name:"toonToJson",version:"0.0.1",example:"dphelper.ai.toonToJson('users[1]{id,name}:\\n 1,Ada')",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Convert TOON format back to JSON/Object",subCommand:[]},{name:"chunker",version:"0.0.1",example:"dphelper.ai.chunker(text, { size: 1000, overlap: 200 })",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Split long text into chunks for RAG or AI processing.",subCommand:[]},{name:"similarity",version:"0.0.1",example:"dphelper.ai.similarity(vecA, vecB)",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Calculate cosine similarity between two embedding vectors.",subCommand:[]},{name:"extractReasoning",version:"0.0.1",example:"dphelper.ai.extractReasoning(aiResponse)",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Extract <think> tags or internal reasoning from AI responses.",subCommand:[]},{name:"prompt",version:"0.0.1",example:"dphelper.ai.prompt('Hello {{name}}', { name: 'Ada' })",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Simple prompt template engine with variable injection.",subCommand:[]},{name:"schema",version:"0.0.1",example:"dphelper.ai.schema({ id: 1, name: 'Ada' })",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Generate a TOON-style schema definition for AI instructions.",subCommand:[]},{name:"snapshot",version:"0.0.1",example:"dphelper.ai.snapshot()",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Capture a 'mental snapshot' of the app state (logs/globals) in TOON format for AI debugging.",env:"both",subCommand:[]}]},x=e=>e===null||typeof e!="object",O=e=>e===null?"null":typeof e=="string"?e.includes(",")||e.includes(":")||e.includes('"')||e.includes(`
2
2
  `)||e.trim()!==e?`"${e.replace(/"/g,'\\"')}"`:e||'""':String(e),b=(e,t=0)=>{let r=" ".repeat(t);if(x(e))return O(e);if(Array.isArray(e)){if(e.length===0)return "[0]:";let n=e[0];if(!x(n)&&!Array.isArray(n)){let s=Object.keys(n),o=`[${e.length}]{${s.join(",")}}:`;for(let i of e){let u=s.map(a=>O(i[a])).join(",");o+=`
3
3
  ${r} ${u}`;}return o}else return `[${e.length}]: `+e.map(O).join(",")}else return Object.entries(e).map(([n,s])=>{let o=n.includes(" ")||n.includes(":")?`"${n}"`:n;if(!x(s)){let i=b(s,t+1);return i.startsWith("[")?`${o}${i}`:`${o}:
4
4
  ${r}${i}`}return `${o}: ${O(s)}`}).join(`
package/modules/ai.js CHANGED
@@ -1,4 +1,4 @@
1
- var v={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var $={version:"4.6.2"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...v},configurable:true,writable:true},version:{value:$.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var f=dphelper;Object.defineProperty(f,"setProps",{value:(e,t,r)=>{Object.defineProperty(e,t.name,r||{writable:false,configurable:false,enumerable:false}),r?.lock&&Object.freeze(e[t.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(f,"setDescription",{value:(e,t)=>{Object.defineProperties(f,{[e.name]:{value:t,writable:false,configurable:false,enumerable:false}}),Object.keys(t).map(r=>(Object.defineProperties(f[e.name],{[r]:{writable:false,configurable:false,enumerable:false}}),null)),f.setProps(f,e,{writable:false,configurable:false,enumerable:false}),f._list.scripts.push(e);}});var N={name:"ai",active:true,subCommand:[{name:"tokenCount",version:"0.0.3",example:"dphelper.ai.tokenCount({ users: [1,2,3] })",author:"Dario Passariello",creationDate:"20260220",lastMod:"20260221",type:"function",active:true,description:"Estimate token count for LLMs. If an object is passed, it uses TOON format for calculation.",env:"both",subCommand:[]},{name:"smartSanitize",version:"0.0.2",example:"dphelper.ai.smartSanitize('My email is test@example.com')",author:"Dario Passariello & Jo",creationDate:"20260220",lastMod:"20260220",type:"function",active:true,description:"Remove PII (emails, phones, etc) from text for AI privacy",subCommand:[]},{name:"toon",version:"0.0.1",example:"dphelper.ai.toon({ users: [{id: 1, name: 'Ada'}] })",author:"TOON + Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Convert JSON to TOON format (Token-Oriented Object Notation)",subCommand:[]},{name:"toonToJson",version:"0.0.1",example:"dphelper.ai.toonToJson('users[1]{id,name}:\\n 1,Ada')",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Convert TOON format back to JSON/Object",subCommand:[]},{name:"chunker",version:"0.0.1",example:"dphelper.ai.chunker(text, { size: 1000, overlap: 200 })",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Split long text into chunks for RAG or AI processing.",subCommand:[]},{name:"similarity",version:"0.0.1",example:"dphelper.ai.similarity(vecA, vecB)",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Calculate cosine similarity between two embedding vectors.",subCommand:[]},{name:"extractReasoning",version:"0.0.1",example:"dphelper.ai.extractReasoning(aiResponse)",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Extract <think> tags or internal reasoning from AI responses.",subCommand:[]},{name:"prompt",version:"0.0.1",example:"dphelper.ai.prompt('Hello {{name}}', { name: 'Ada' })",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Simple prompt template engine with variable injection.",subCommand:[]},{name:"schema",version:"0.0.1",example:"dphelper.ai.schema({ id: 1, name: 'Ada' })",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Generate a TOON-style schema definition for AI instructions.",subCommand:[]},{name:"snapshot",version:"0.0.1",example:"dphelper.ai.snapshot()",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Capture a 'mental snapshot' of the app state (logs/globals) in TOON format for AI debugging.",env:"both",subCommand:[]}]},A=e=>e===null||typeof e!="object",O=e=>e===null?"null":typeof e=="string"?e.includes(",")||e.includes(":")||e.includes('"')||e.includes(`
1
+ var v={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var $={version:"4.7.0"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...v},configurable:true,writable:true},version:{value:$.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var f=dphelper;Object.defineProperty(f,"setProps",{value:(e,t,r)=>{Object.defineProperty(e,t.name,r||{writable:false,configurable:false,enumerable:false}),r?.lock&&Object.freeze(e[t.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(f,"setDescription",{value:(e,t)=>{Object.defineProperties(f,{[e.name]:{value:t,writable:false,configurable:false,enumerable:false}}),Object.keys(t).map(r=>(Object.defineProperties(f[e.name],{[r]:{writable:false,configurable:false,enumerable:false}}),null)),f.setProps(f,e,{writable:false,configurable:false,enumerable:false}),f._list.scripts.push(e);}});var N={name:"ai",active:true,subCommand:[{name:"tokenCount",version:"0.0.3",example:"dphelper.ai.tokenCount({ users: [1,2,3] })",author:"Dario Passariello",creationDate:"20260220",lastMod:"20260221",type:"function",active:true,description:"Estimate token count for LLMs. If an object is passed, it uses TOON format for calculation.",env:"both",subCommand:[]},{name:"smartSanitize",version:"0.0.2",example:"dphelper.ai.smartSanitize('My email is test@example.com')",author:"Dario Passariello & Jo",creationDate:"20260220",lastMod:"20260220",type:"function",active:true,description:"Remove PII (emails, phones, etc) from text for AI privacy",subCommand:[]},{name:"toon",version:"0.0.1",example:"dphelper.ai.toon({ users: [{id: 1, name: 'Ada'}] })",author:"TOON + Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Convert JSON to TOON format (Token-Oriented Object Notation)",subCommand:[]},{name:"toonToJson",version:"0.0.1",example:"dphelper.ai.toonToJson('users[1]{id,name}:\\n 1,Ada')",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Convert TOON format back to JSON/Object",subCommand:[]},{name:"chunker",version:"0.0.1",example:"dphelper.ai.chunker(text, { size: 1000, overlap: 200 })",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Split long text into chunks for RAG or AI processing.",subCommand:[]},{name:"similarity",version:"0.0.1",example:"dphelper.ai.similarity(vecA, vecB)",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Calculate cosine similarity between two embedding vectors.",subCommand:[]},{name:"extractReasoning",version:"0.0.1",example:"dphelper.ai.extractReasoning(aiResponse)",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Extract <think> tags or internal reasoning from AI responses.",subCommand:[]},{name:"prompt",version:"0.0.1",example:"dphelper.ai.prompt('Hello {{name}}', { name: 'Ada' })",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Simple prompt template engine with variable injection.",subCommand:[]},{name:"schema",version:"0.0.1",example:"dphelper.ai.schema({ id: 1, name: 'Ada' })",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Generate a TOON-style schema definition for AI instructions.",subCommand:[]},{name:"snapshot",version:"0.0.1",example:"dphelper.ai.snapshot()",author:"Dario Passariello",creationDate:"20260221",lastMod:"20260221",type:"function",active:true,description:"Capture a 'mental snapshot' of the app state (logs/globals) in TOON format for AI debugging.",env:"both",subCommand:[]}]},A=e=>e===null||typeof e!="object",O=e=>e===null?"null":typeof e=="string"?e.includes(",")||e.includes(":")||e.includes('"')||e.includes(`
2
2
  `)||e.trim()!==e?`"${e.replace(/"/g,'\\"')}"`:e||'""':String(e),b=(e,t=0)=>{let r=" ".repeat(t);if(A(e))return O(e);if(Array.isArray(e)){if(e.length===0)return "[0]:";let n=e[0];if(!A(n)&&!Array.isArray(n)){let s=Object.keys(n),o=`[${e.length}]{${s.join(",")}}:`;for(let i of e){let u=s.map(a=>O(i[a])).join(",");o+=`
3
3
  ${r} ${u}`;}return o}else return `[${e.length}]: `+e.map(O).join(",")}else return Object.entries(e).map(([n,s])=>{let o=n.includes(" ")||n.includes(":")?`"${n}"`:n;if(!A(s)){let i=b(s,t+1);return i.startsWith("[")?`${o}${i}`:`${o}:
4
4
  ${r}${i}`}return `${o}: ${O(s)}`}).join(`
@@ -1,4 +1,4 @@
1
- 'use strict';var p={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var c={version:"4.6.2"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...p},configurable:true,writable:true},version:{value:c.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var r=dphelper;Object.defineProperty(r,"setProps",{value:(e,t,a)=>{Object.defineProperty(e,t.name,a||{writable:false,configurable:false,enumerable:false}),a?.lock&&Object.freeze(e[t.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(r,"setDescription",{value:(e,t)=>{Object.defineProperties(r,{[e.name]:{value:t,writable:false,configurable:false,enumerable:false}}),Object.keys(t).map(a=>(Object.defineProperties(r[e.name],{[a]:{writable:false,configurable:false,enumerable:false}}),null)),r.setProps(r,e,{writable:false,configurable:false,enumerable:false}),r._list.scripts.push(e);}});var b={name:"anchor",active:true,subCommand:[{name:"toOnClick",type:"function",version:"0.0.2",example:"dphelper.anchor.toOnClick([element, 'foo' | '.foo' | '#foo'])",description:`This tool allows you to convert all links in an element to 'onclick'.
1
+ 'use strict';var p={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var c={version:"4.7.0"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...p},configurable:true,writable:true},version:{value:c.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var r=dphelper;Object.defineProperty(r,"setProps",{value:(e,t,a)=>{Object.defineProperty(e,t.name,a||{writable:false,configurable:false,enumerable:false}),a?.lock&&Object.freeze(e[t.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(r,"setDescription",{value:(e,t)=>{Object.defineProperties(r,{[e.name]:{value:t,writable:false,configurable:false,enumerable:false}}),Object.keys(t).map(a=>(Object.defineProperties(r[e.name],{[a]:{writable:false,configurable:false,enumerable:false}}),null)),r.setProps(r,e,{writable:false,configurable:false,enumerable:false}),r._list.scripts.push(e);}});var b={name:"anchor",active:true,subCommand:[{name:"toOnClick",type:"function",version:"0.0.2",example:"dphelper.anchor.toOnClick([element, 'foo' | '.foo' | '#foo'])",description:`This tool allows you to convert all links in an element to 'onclick'.
2
2
  It allows you to avoid the message with the path relative to the requested address
3
3
  and it is very useful when you work with SPA but you want to keep even older browsers.`,author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",active:true,env:"client",subCommand:[]}]},d={toOnClick:e=>{let t=document.querySelector(e);if(!t)return;t.querySelectorAll("a").forEach(o=>{let l=o.getAttribute("href");if(!l)return;o.style.cursor="pointer";let n=dphelper.pathRail()?.[3]?.replace(/\//g,"")||"";n&&o.classList.add(n);let s=o.cloneNode(true);o.parentNode?.replaceChild(s,o),s.removeAttribute("href"),s.addEventListener("mouseup",u=>{l.startsWith("/")?(history.pushState({href:l},"",l),dphelper.navigation.load(l),u.stopPropagation()):dphelper.browser.href(l);});});}};dphelper?.setDescription(b,d);var A=dphelper.anchor;
4
4
  exports.anchor=A;
package/modules/anchor.js CHANGED
@@ -1,4 +1,4 @@
1
- var c={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var u={version:"4.6.2"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...c},configurable:true,writable:true},version:{value:u.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var r=dphelper;Object.defineProperty(r,"setProps",{value:(e,t,a)=>{Object.defineProperty(e,t.name,a||{writable:false,configurable:false,enumerable:false}),a?.lock&&Object.freeze(e[t.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(r,"setDescription",{value:(e,t)=>{Object.defineProperties(r,{[e.name]:{value:t,writable:false,configurable:false,enumerable:false}}),Object.keys(t).map(a=>(Object.defineProperties(r[e.name],{[a]:{writable:false,configurable:false,enumerable:false}}),null)),r.setProps(r,e,{writable:false,configurable:false,enumerable:false}),r._list.scripts.push(e);}});var d={name:"anchor",active:true,subCommand:[{name:"toOnClick",type:"function",version:"0.0.2",example:"dphelper.anchor.toOnClick([element, 'foo' | '.foo' | '#foo'])",description:`This tool allows you to convert all links in an element to 'onclick'.
1
+ var c={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var u={version:"4.7.0"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...c},configurable:true,writable:true},version:{value:u.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var r=dphelper;Object.defineProperty(r,"setProps",{value:(e,t,a)=>{Object.defineProperty(e,t.name,a||{writable:false,configurable:false,enumerable:false}),a?.lock&&Object.freeze(e[t.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(r,"setDescription",{value:(e,t)=>{Object.defineProperties(r,{[e.name]:{value:t,writable:false,configurable:false,enumerable:false}}),Object.keys(t).map(a=>(Object.defineProperties(r[e.name],{[a]:{writable:false,configurable:false,enumerable:false}}),null)),r.setProps(r,e,{writable:false,configurable:false,enumerable:false}),r._list.scripts.push(e);}});var d={name:"anchor",active:true,subCommand:[{name:"toOnClick",type:"function",version:"0.0.2",example:"dphelper.anchor.toOnClick([element, 'foo' | '.foo' | '#foo'])",description:`This tool allows you to convert all links in an element to 'onclick'.
2
2
  It allows you to avoid the message with the path relative to the requested address
3
3
  and it is very useful when you work with SPA but you want to keep even older browsers.`,author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",active:true,env:"client",subCommand:[]}]},m={toOnClick:e=>{let t=document.querySelector(e);if(!t)return;t.querySelectorAll("a").forEach(o=>{let l=o.getAttribute("href");if(!l)return;o.style.cursor="pointer";let p=dphelper.pathRail()?.[3]?.replace(/\//g,"")||"";p&&o.classList.add(p);let s=o.cloneNode(true);o.parentNode?.replaceChild(s,o),s.removeAttribute("href"),s.addEventListener("mouseup",h=>{l.startsWith("/")?(history.pushState({href:l},"",l),dphelper.navigation.load(l),h.stopPropagation()):dphelper.browser.href(l);});});}};dphelper?.setDescription(d,m);var D=dphelper.anchor;
4
4
  export{D as anchor};
package/modules/array.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';var c={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var p={version:"4.6.2"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...c},configurable:true,writable:true},version:{value:p.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var i=dphelper;Object.defineProperty(i,"setProps",{value:(e,a,r)=>{Object.defineProperty(e,a.name,r||{writable:false,configurable:false,enumerable:false}),r?.lock&&Object.freeze(e[a.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(i,"setDescription",{value:(e,a)=>{Object.defineProperties(i,{[e.name]:{value:a,writable:false,configurable:false,enumerable:false}}),Object.keys(a).map(r=>(Object.defineProperties(i[e.name],{[r]:{writable:false,configurable:false,enumerable:false}}),null)),i.setProps(i,e,{writable:false,configurable:false,enumerable:false}),i._list.scripts.push(e);}});var f={name:"array",active:true,subCommand:[{name:"find",version:"0.0.2",example:"dphelper.array.find(array, 'key')",description:"Find an item in the array recursively.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"delete",version:"0.0.2",example:"dphelper.array.delete(array, 'key')",description:"Delete an item from the array recursively.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"unique",version:"0.0.2",example:"dphelper.array.unique(array)",description:"Remove duplicate values from an array.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"merge",version:"0.0.2",example:"dphelper.array.merge(arrA, arrB)",description:"Merge two arrays into one.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"mergeByKey",version:"0.0.2",example:"dphelper.array.mergeByKey(arrA, arrB, 'id')",author:"Dario Passariello",creationDate:"20230603",lastMod:"20260220",type:"function",active:true,description:"Merge two arrays of objects by a specific key.",env:"both",subCommand:[]},{name:"asc",version:"0.0.2",example:"dphelper.array.asc(array)",description:"Sort array in ascending order.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"desc",version:"0.0.2",example:"dphelper.array.desc(array)",description:"Sort array in descending order.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"duplicates",version:"0.0.2",example:"dphelper.array.duplicates(array)",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,description:"Find duplicate items in an array.",env:"both",subCommand:[]},{name:"even",version:"0.0.2",example:"dphelper.array.even(array)",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,description:"Filter even numbers from an array.",env:"both",subCommand:[]},{name:"odd",version:"0.0.2",example:"dphelper.array.odd(array)",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,description:"Filter odd numbers from an array.",env:"both",subCommand:[]},{name:"toObj",version:"0.0.2",example:"dphelper.array.toObj(array)",description:"Convert an array to an object.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"sumColumn",version:"0.0.2",example:"dphelper.array.sumColumn(arr, 0)",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,description:"Sum the values of a specified column in a multidimensional array.",env:"both",subCommand:[]},{name:"shuffle",version:"0.0.2",example:"dphelper.array.shuffle(array)",author:"Dario Passariello",creationDate:"20230527",lastMod:"20260220",type:"function",active:true,description:"Randomly shuffle the elements of an array.",env:"both",subCommand:[]},{name:"generate",version:"0.0.2",example:"dphelper.array.generate(10)",author:"Dario Passariello",creationDate:"20230527",lastMod:"20260220",type:"function",active:true,description:"Generate an array of random numbers (max 500000).",env:"both",subCommand:[]},{name:"testArrayInt",version:"0.0.2",example:"dphelper.array.testArrayInt([1,2,4])",author:"Dario Passariello",creationDate:"20230527",lastMod:"20260220",type:"function",active:true,description:"Check if an array contains consecutive integers.",env:"both",subCommand:[]},{name:"rand32",version:"0.0.2",example:"dphelper.array.rand32(5)",author:"Dario Passariello",creationDate:"20230527",lastMod:"20260220",type:"function",active:true,description:"Generate an array of random 32-bit unsigned integers.",env:"both",subCommand:[]},{name:"findindex",version:"0.0.2",example:"dphelper.array.findindex(array, 'name')",description:"Find the index of an item in an array by key.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"pathToJson",version:"0.0.2",example:"dphelper.array.pathToJson(paths, '/')",description:"Convert an array of paths into a JSON object.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"deepClone",version:"0.0.2",example:"dphelper.array.deepClone(array)",description:"Create a deep clone of an array using structuredClone.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"match",version:"0.0.2",example:"dphelper.array.match(arrA, arrB)",author:"Dario Passariello",creationDate:"20250101",lastMod:"20260220",type:"function",active:true,description:"Find a perfect match between an array of words and an array to check.",env:"both",subCommand:[]}]},y={find:(e,a)=>{if(Array.isArray(e)){for(let r of e){if(r[a]===a)return r;if(r.children){let t=dphelper.array.find(a,r.children);if(t)return t}}return false}},delete:(e,a)=>{Array.isArray(e)&&e.some(function r(t,n,o){if(t[a]===a)return o.splice(n,1),true;for(let s of Object.keys(t)){let u=t[s];if(Array.isArray(u))return u.some(r)}return null});},merge:(e,a)=>{if(!(e&&a))return a||e;for(let r of Object.keys(e))r==="__proto__"||r==="constructor"||r==="prototype"||e[r]instanceof Object&&a[r]&&Object.assign(e[r],dphelper.array.merge(a[r],e[r]));return Object.assign(a,e)},mergeByKey:(e,a,r)=>e.map(t=>{let n=a.find(o=>t[r]===o[r]);return n?Object.assign({},t,n):t}),duplicates:e=>{if(!Array.isArray(e))return;let a=new Set,r=new Set;for(let t of e)a.has(t)?r.add(t):a.add(t);return Array.from(r)},even:e=>{if(Array.isArray(e))return e.filter(a=>a%2===0)},odd:e=>{if(Array.isArray(e))return e.filter(a=>a%2!==0)},sumColumn:(e=[],a=0)=>Array.isArray(e)?typeof a>"u"?"provide a column":e.reduce((r,t)=>r+(t[a]||0),0):"provide a multidimensional array",shuffle:e=>{if(Array.isArray(e)){for(let a=e.length-1;a>0;a--){let r=Math.floor(Math.random()*(a+1));[e[a],e[r]]=[e[r],e[a]];}return e}},generate:e=>{if(Number.isNaN(e))return;let a=Array.from({length:e},(r,t)=>t+1);return dphelper.array.shuffle(a)},testArrayInt:e=>{if(!Array.isArray(e))return;let a=[];for(let r=1;r<=e.length;r++)e.includes(r)||a.push(r);return a},rand32:e=>{let a=performance.now(),r=[];r.nums=[],r.time=[];for(let n=0;n<e;++n)r.nums.push(crypto.getRandomValues(new Uint32Array(1))[0]);let t=performance.now();return r.time.push(t-a),r},match:(e,a)=>e.filter(r=>a.includes(r)),pathToJson:(e,a="/")=>{let r={},t;for(let n of e){t=r;let o=n.split(a);for(let s of o.slice(1,-1)){if(s==="")return;s in t||(t[s]={}),t=t[s];}o.at(-1)&&(t[o.at(-1)]=null);}return r}};dphelper?.setDescription(f,y);var M=dphelper.array;exports.array=M;
1
+ 'use strict';var c={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var p={version:"4.7.0"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...c},configurable:true,writable:true},version:{value:p.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var i=dphelper;Object.defineProperty(i,"setProps",{value:(e,a,r)=>{Object.defineProperty(e,a.name,r||{writable:false,configurable:false,enumerable:false}),r?.lock&&Object.freeze(e[a.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(i,"setDescription",{value:(e,a)=>{Object.defineProperties(i,{[e.name]:{value:a,writable:false,configurable:false,enumerable:false}}),Object.keys(a).map(r=>(Object.defineProperties(i[e.name],{[r]:{writable:false,configurable:false,enumerable:false}}),null)),i.setProps(i,e,{writable:false,configurable:false,enumerable:false}),i._list.scripts.push(e);}});var f={name:"array",active:true,subCommand:[{name:"find",version:"0.0.2",example:"dphelper.array.find(array, 'key')",description:"Find an item in the array recursively.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"delete",version:"0.0.2",example:"dphelper.array.delete(array, 'key')",description:"Delete an item from the array recursively.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"unique",version:"0.0.2",example:"dphelper.array.unique(array)",description:"Remove duplicate values from an array.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"merge",version:"0.0.2",example:"dphelper.array.merge(arrA, arrB)",description:"Merge two arrays into one.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"mergeByKey",version:"0.0.2",example:"dphelper.array.mergeByKey(arrA, arrB, 'id')",author:"Dario Passariello",creationDate:"20230603",lastMod:"20260220",type:"function",active:true,description:"Merge two arrays of objects by a specific key.",env:"both",subCommand:[]},{name:"asc",version:"0.0.2",example:"dphelper.array.asc(array)",description:"Sort array in ascending order.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"desc",version:"0.0.2",example:"dphelper.array.desc(array)",description:"Sort array in descending order.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"duplicates",version:"0.0.2",example:"dphelper.array.duplicates(array)",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,description:"Find duplicate items in an array.",env:"both",subCommand:[]},{name:"even",version:"0.0.2",example:"dphelper.array.even(array)",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,description:"Filter even numbers from an array.",env:"both",subCommand:[]},{name:"odd",version:"0.0.2",example:"dphelper.array.odd(array)",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,description:"Filter odd numbers from an array.",env:"both",subCommand:[]},{name:"toObj",version:"0.0.2",example:"dphelper.array.toObj(array)",description:"Convert an array to an object.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"sumColumn",version:"0.0.2",example:"dphelper.array.sumColumn(arr, 0)",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,description:"Sum the values of a specified column in a multidimensional array.",env:"both",subCommand:[]},{name:"shuffle",version:"0.0.2",example:"dphelper.array.shuffle(array)",author:"Dario Passariello",creationDate:"20230527",lastMod:"20260220",type:"function",active:true,description:"Randomly shuffle the elements of an array.",env:"both",subCommand:[]},{name:"generate",version:"0.0.2",example:"dphelper.array.generate(10)",author:"Dario Passariello",creationDate:"20230527",lastMod:"20260220",type:"function",active:true,description:"Generate an array of random numbers (max 500000).",env:"both",subCommand:[]},{name:"testArrayInt",version:"0.0.2",example:"dphelper.array.testArrayInt([1,2,4])",author:"Dario Passariello",creationDate:"20230527",lastMod:"20260220",type:"function",active:true,description:"Check if an array contains consecutive integers.",env:"both",subCommand:[]},{name:"rand32",version:"0.0.2",example:"dphelper.array.rand32(5)",author:"Dario Passariello",creationDate:"20230527",lastMod:"20260220",type:"function",active:true,description:"Generate an array of random 32-bit unsigned integers.",env:"both",subCommand:[]},{name:"findindex",version:"0.0.2",example:"dphelper.array.findindex(array, 'name')",description:"Find the index of an item in an array by key.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"pathToJson",version:"0.0.2",example:"dphelper.array.pathToJson(paths, '/')",description:"Convert an array of paths into a JSON object.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"deepClone",version:"0.0.2",example:"dphelper.array.deepClone(array)",description:"Create a deep clone of an array using structuredClone.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"match",version:"0.0.2",example:"dphelper.array.match(arrA, arrB)",author:"Dario Passariello",creationDate:"20250101",lastMod:"20260220",type:"function",active:true,description:"Find a perfect match between an array of words and an array to check.",env:"both",subCommand:[]}]},y={find:(e,a)=>{if(Array.isArray(e)){for(let r of e){if(r[a]===a)return r;if(r.children){let t=dphelper.array.find(a,r.children);if(t)return t}}return false}},delete:(e,a)=>{Array.isArray(e)&&e.some(function r(t,n,o){if(t[a]===a)return o.splice(n,1),true;for(let s of Object.keys(t)){let u=t[s];if(Array.isArray(u))return u.some(r)}return null});},merge:(e,a)=>{if(!(e&&a))return a||e;for(let r of Object.keys(e))r==="__proto__"||r==="constructor"||r==="prototype"||e[r]instanceof Object&&a[r]&&Object.assign(e[r],dphelper.array.merge(a[r],e[r]));return Object.assign(a,e)},mergeByKey:(e,a,r)=>e.map(t=>{let n=a.find(o=>t[r]===o[r]);return n?Object.assign({},t,n):t}),duplicates:e=>{if(!Array.isArray(e))return;let a=new Set,r=new Set;for(let t of e)a.has(t)?r.add(t):a.add(t);return Array.from(r)},even:e=>{if(Array.isArray(e))return e.filter(a=>a%2===0)},odd:e=>{if(Array.isArray(e))return e.filter(a=>a%2!==0)},sumColumn:(e=[],a=0)=>Array.isArray(e)?typeof a>"u"?"provide a column":e.reduce((r,t)=>r+(t[a]||0),0):"provide a multidimensional array",shuffle:e=>{if(Array.isArray(e)){for(let a=e.length-1;a>0;a--){let r=Math.floor(Math.random()*(a+1));[e[a],e[r]]=[e[r],e[a]];}return e}},generate:e=>{if(Number.isNaN(e))return;let a=Array.from({length:e},(r,t)=>t+1);return dphelper.array.shuffle(a)},testArrayInt:e=>{if(!Array.isArray(e))return;let a=[];for(let r=1;r<=e.length;r++)e.includes(r)||a.push(r);return a},rand32:e=>{let a=performance.now(),r=[];r.nums=[],r.time=[];for(let n=0;n<e;++n)r.nums.push(crypto.getRandomValues(new Uint32Array(1))[0]);let t=performance.now();return r.time.push(t-a),r},match:(e,a)=>e.filter(r=>a.includes(r)),pathToJson:(e,a="/")=>{let r={},t;for(let n of e){t=r;let o=n.split(a);for(let s of o.slice(1,-1)){if(s==="")return;s in t||(t[s]={}),t=t[s];}o.at(-1)&&(t[o.at(-1)]=null);}return r}};dphelper?.setDescription(f,y);var M=dphelper.array;exports.array=M;
package/modules/array.js CHANGED
@@ -1 +1 @@
1
- var p={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var d={version:"4.6.2"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...p},configurable:true,writable:true},version:{value:d.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var i=dphelper;Object.defineProperty(i,"setProps",{value:(e,a,r)=>{Object.defineProperty(e,a.name,r||{writable:false,configurable:false,enumerable:false}),r?.lock&&Object.freeze(e[a.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(i,"setDescription",{value:(e,a)=>{Object.defineProperties(i,{[e.name]:{value:a,writable:false,configurable:false,enumerable:false}}),Object.keys(a).map(r=>(Object.defineProperties(i[e.name],{[r]:{writable:false,configurable:false,enumerable:false}}),null)),i.setProps(i,e,{writable:false,configurable:false,enumerable:false}),i._list.scripts.push(e);}});var y={name:"array",active:true,subCommand:[{name:"find",version:"0.0.2",example:"dphelper.array.find(array, 'key')",description:"Find an item in the array recursively.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"delete",version:"0.0.2",example:"dphelper.array.delete(array, 'key')",description:"Delete an item from the array recursively.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"unique",version:"0.0.2",example:"dphelper.array.unique(array)",description:"Remove duplicate values from an array.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"merge",version:"0.0.2",example:"dphelper.array.merge(arrA, arrB)",description:"Merge two arrays into one.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"mergeByKey",version:"0.0.2",example:"dphelper.array.mergeByKey(arrA, arrB, 'id')",author:"Dario Passariello",creationDate:"20230603",lastMod:"20260220",type:"function",active:true,description:"Merge two arrays of objects by a specific key.",env:"both",subCommand:[]},{name:"asc",version:"0.0.2",example:"dphelper.array.asc(array)",description:"Sort array in ascending order.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"desc",version:"0.0.2",example:"dphelper.array.desc(array)",description:"Sort array in descending order.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"duplicates",version:"0.0.2",example:"dphelper.array.duplicates(array)",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,description:"Find duplicate items in an array.",env:"both",subCommand:[]},{name:"even",version:"0.0.2",example:"dphelper.array.even(array)",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,description:"Filter even numbers from an array.",env:"both",subCommand:[]},{name:"odd",version:"0.0.2",example:"dphelper.array.odd(array)",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,description:"Filter odd numbers from an array.",env:"both",subCommand:[]},{name:"toObj",version:"0.0.2",example:"dphelper.array.toObj(array)",description:"Convert an array to an object.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"sumColumn",version:"0.0.2",example:"dphelper.array.sumColumn(arr, 0)",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,description:"Sum the values of a specified column in a multidimensional array.",env:"both",subCommand:[]},{name:"shuffle",version:"0.0.2",example:"dphelper.array.shuffle(array)",author:"Dario Passariello",creationDate:"20230527",lastMod:"20260220",type:"function",active:true,description:"Randomly shuffle the elements of an array.",env:"both",subCommand:[]},{name:"generate",version:"0.0.2",example:"dphelper.array.generate(10)",author:"Dario Passariello",creationDate:"20230527",lastMod:"20260220",type:"function",active:true,description:"Generate an array of random numbers (max 500000).",env:"both",subCommand:[]},{name:"testArrayInt",version:"0.0.2",example:"dphelper.array.testArrayInt([1,2,4])",author:"Dario Passariello",creationDate:"20230527",lastMod:"20260220",type:"function",active:true,description:"Check if an array contains consecutive integers.",env:"both",subCommand:[]},{name:"rand32",version:"0.0.2",example:"dphelper.array.rand32(5)",author:"Dario Passariello",creationDate:"20230527",lastMod:"20260220",type:"function",active:true,description:"Generate an array of random 32-bit unsigned integers.",env:"both",subCommand:[]},{name:"findindex",version:"0.0.2",example:"dphelper.array.findindex(array, 'name')",description:"Find the index of an item in an array by key.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"pathToJson",version:"0.0.2",example:"dphelper.array.pathToJson(paths, '/')",description:"Convert an array of paths into a JSON object.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"deepClone",version:"0.0.2",example:"dphelper.array.deepClone(array)",description:"Create a deep clone of an array using structuredClone.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"match",version:"0.0.2",example:"dphelper.array.match(arrA, arrB)",author:"Dario Passariello",creationDate:"20250101",lastMod:"20260220",type:"function",active:true,description:"Find a perfect match between an array of words and an array to check.",env:"both",subCommand:[]}]},h={find:(e,a)=>{if(Array.isArray(e)){for(let r of e){if(r[a]===a)return r;if(r.children){let t=dphelper.array.find(a,r.children);if(t)return t}}return false}},delete:(e,a)=>{Array.isArray(e)&&e.some(function r(t,n,o){if(t[a]===a)return o.splice(n,1),true;for(let s of Object.keys(t)){let c=t[s];if(Array.isArray(c))return c.some(r)}return null});},merge:(e,a)=>{if(!(e&&a))return a||e;for(let r of Object.keys(e))r==="__proto__"||r==="constructor"||r==="prototype"||e[r]instanceof Object&&a[r]&&Object.assign(e[r],dphelper.array.merge(a[r],e[r]));return Object.assign(a,e)},mergeByKey:(e,a,r)=>e.map(t=>{let n=a.find(o=>t[r]===o[r]);return n?Object.assign({},t,n):t}),duplicates:e=>{if(!Array.isArray(e))return;let a=new Set,r=new Set;for(let t of e)a.has(t)?r.add(t):a.add(t);return Array.from(r)},even:e=>{if(Array.isArray(e))return e.filter(a=>a%2===0)},odd:e=>{if(Array.isArray(e))return e.filter(a=>a%2!==0)},sumColumn:(e=[],a=0)=>Array.isArray(e)?typeof a>"u"?"provide a column":e.reduce((r,t)=>r+(t[a]||0),0):"provide a multidimensional array",shuffle:e=>{if(Array.isArray(e)){for(let a=e.length-1;a>0;a--){let r=Math.floor(Math.random()*(a+1));[e[a],e[r]]=[e[r],e[a]];}return e}},generate:e=>{if(Number.isNaN(e))return;let a=Array.from({length:e},(r,t)=>t+1);return dphelper.array.shuffle(a)},testArrayInt:e=>{if(!Array.isArray(e))return;let a=[];for(let r=1;r<=e.length;r++)e.includes(r)||a.push(r);return a},rand32:e=>{let a=performance.now(),r=[];r.nums=[],r.time=[];for(let n=0;n<e;++n)r.nums.push(crypto.getRandomValues(new Uint32Array(1))[0]);let t=performance.now();return r.time.push(t-a),r},match:(e,a)=>e.filter(r=>a.includes(r)),pathToJson:(e,a="/")=>{let r={},t;for(let n of e){t=r;let o=n.split(a);for(let s of o.slice(1,-1)){if(s==="")return;s in t||(t[s]={}),t=t[s];}o.at(-1)&&(t[o.at(-1)]=null);}return r}};dphelper?.setDescription(y,h);var A=dphelper.array;export{A as array};
1
+ var p={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var d={version:"4.7.0"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...p},configurable:true,writable:true},version:{value:d.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var i=dphelper;Object.defineProperty(i,"setProps",{value:(e,a,r)=>{Object.defineProperty(e,a.name,r||{writable:false,configurable:false,enumerable:false}),r?.lock&&Object.freeze(e[a.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(i,"setDescription",{value:(e,a)=>{Object.defineProperties(i,{[e.name]:{value:a,writable:false,configurable:false,enumerable:false}}),Object.keys(a).map(r=>(Object.defineProperties(i[e.name],{[r]:{writable:false,configurable:false,enumerable:false}}),null)),i.setProps(i,e,{writable:false,configurable:false,enumerable:false}),i._list.scripts.push(e);}});var y={name:"array",active:true,subCommand:[{name:"find",version:"0.0.2",example:"dphelper.array.find(array, 'key')",description:"Find an item in the array recursively.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"delete",version:"0.0.2",example:"dphelper.array.delete(array, 'key')",description:"Delete an item from the array recursively.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"unique",version:"0.0.2",example:"dphelper.array.unique(array)",description:"Remove duplicate values from an array.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"merge",version:"0.0.2",example:"dphelper.array.merge(arrA, arrB)",description:"Merge two arrays into one.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"mergeByKey",version:"0.0.2",example:"dphelper.array.mergeByKey(arrA, arrB, 'id')",author:"Dario Passariello",creationDate:"20230603",lastMod:"20260220",type:"function",active:true,description:"Merge two arrays of objects by a specific key.",env:"both",subCommand:[]},{name:"asc",version:"0.0.2",example:"dphelper.array.asc(array)",description:"Sort array in ascending order.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"desc",version:"0.0.2",example:"dphelper.array.desc(array)",description:"Sort array in descending order.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"duplicates",version:"0.0.2",example:"dphelper.array.duplicates(array)",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,description:"Find duplicate items in an array.",env:"both",subCommand:[]},{name:"even",version:"0.0.2",example:"dphelper.array.even(array)",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,description:"Filter even numbers from an array.",env:"both",subCommand:[]},{name:"odd",version:"0.0.2",example:"dphelper.array.odd(array)",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,description:"Filter odd numbers from an array.",env:"both",subCommand:[]},{name:"toObj",version:"0.0.2",example:"dphelper.array.toObj(array)",description:"Convert an array to an object.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"sumColumn",version:"0.0.2",example:"dphelper.array.sumColumn(arr, 0)",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,description:"Sum the values of a specified column in a multidimensional array.",env:"both",subCommand:[]},{name:"shuffle",version:"0.0.2",example:"dphelper.array.shuffle(array)",author:"Dario Passariello",creationDate:"20230527",lastMod:"20260220",type:"function",active:true,description:"Randomly shuffle the elements of an array.",env:"both",subCommand:[]},{name:"generate",version:"0.0.2",example:"dphelper.array.generate(10)",author:"Dario Passariello",creationDate:"20230527",lastMod:"20260220",type:"function",active:true,description:"Generate an array of random numbers (max 500000).",env:"both",subCommand:[]},{name:"testArrayInt",version:"0.0.2",example:"dphelper.array.testArrayInt([1,2,4])",author:"Dario Passariello",creationDate:"20230527",lastMod:"20260220",type:"function",active:true,description:"Check if an array contains consecutive integers.",env:"both",subCommand:[]},{name:"rand32",version:"0.0.2",example:"dphelper.array.rand32(5)",author:"Dario Passariello",creationDate:"20230527",lastMod:"20260220",type:"function",active:true,description:"Generate an array of random 32-bit unsigned integers.",env:"both",subCommand:[]},{name:"findindex",version:"0.0.2",example:"dphelper.array.findindex(array, 'name')",description:"Find the index of an item in an array by key.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"pathToJson",version:"0.0.2",example:"dphelper.array.pathToJson(paths, '/')",description:"Convert an array of paths into a JSON object.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"deepClone",version:"0.0.2",example:"dphelper.array.deepClone(array)",description:"Create a deep clone of an array using structuredClone.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]},{name:"match",version:"0.0.2",example:"dphelper.array.match(arrA, arrB)",author:"Dario Passariello",creationDate:"20250101",lastMod:"20260220",type:"function",active:true,description:"Find a perfect match between an array of words and an array to check.",env:"both",subCommand:[]}]},h={find:(e,a)=>{if(Array.isArray(e)){for(let r of e){if(r[a]===a)return r;if(r.children){let t=dphelper.array.find(a,r.children);if(t)return t}}return false}},delete:(e,a)=>{Array.isArray(e)&&e.some(function r(t,n,o){if(t[a]===a)return o.splice(n,1),true;for(let s of Object.keys(t)){let c=t[s];if(Array.isArray(c))return c.some(r)}return null});},merge:(e,a)=>{if(!(e&&a))return a||e;for(let r of Object.keys(e))r==="__proto__"||r==="constructor"||r==="prototype"||e[r]instanceof Object&&a[r]&&Object.assign(e[r],dphelper.array.merge(a[r],e[r]));return Object.assign(a,e)},mergeByKey:(e,a,r)=>e.map(t=>{let n=a.find(o=>t[r]===o[r]);return n?Object.assign({},t,n):t}),duplicates:e=>{if(!Array.isArray(e))return;let a=new Set,r=new Set;for(let t of e)a.has(t)?r.add(t):a.add(t);return Array.from(r)},even:e=>{if(Array.isArray(e))return e.filter(a=>a%2===0)},odd:e=>{if(Array.isArray(e))return e.filter(a=>a%2!==0)},sumColumn:(e=[],a=0)=>Array.isArray(e)?typeof a>"u"?"provide a column":e.reduce((r,t)=>r+(t[a]||0),0):"provide a multidimensional array",shuffle:e=>{if(Array.isArray(e)){for(let a=e.length-1;a>0;a--){let r=Math.floor(Math.random()*(a+1));[e[a],e[r]]=[e[r],e[a]];}return e}},generate:e=>{if(Number.isNaN(e))return;let a=Array.from({length:e},(r,t)=>t+1);return dphelper.array.shuffle(a)},testArrayInt:e=>{if(!Array.isArray(e))return;let a=[];for(let r=1;r<=e.length;r++)e.includes(r)||a.push(r);return a},rand32:e=>{let a=performance.now(),r=[];r.nums=[],r.time=[];for(let n=0;n<e;++n)r.nums.push(crypto.getRandomValues(new Uint32Array(1))[0]);let t=performance.now();return r.time.push(t-a),r},match:(e,a)=>e.filter(r=>a.includes(r)),pathToJson:(e,a="/")=>{let r={},t;for(let n of e){t=r;let o=n.split(a);for(let s of o.slice(1,-1)){if(s==="")return;s in t||(t[s]={}),t=t[s];}o.at(-1)&&(t[o.at(-1)]=null);}return r}};dphelper?.setDescription(y,h);var A=dphelper.array;export{A as array};
package/modules/audio.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';var i={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var s={version:"4.6.2"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...i},configurable:true,writable:true},version:{value:s.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var a=dphelper;Object.defineProperty(a,"setProps",{value:(e,o,r)=>{Object.defineProperty(e,o.name,r||{writable:false,configurable:false,enumerable:false}),r?.lock&&Object.freeze(e[o.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(a,"setDescription",{value:(e,o)=>{Object.defineProperties(a,{[e.name]:{value:o,writable:false,configurable:false,enumerable:false}}),Object.keys(o).map(r=>(Object.defineProperties(a[e.name],{[r]:{writable:false,configurable:false,enumerable:false}}),null)),a.setProps(a,e,{writable:false,configurable:false,enumerable:false}),a._list.scripts.push(e);}});var c={name:"audio",active:true,subCommand:[{name:"play",version:"0.0.2",example:"dphelper.audio.play([audiofile])",description:"Plays an audio file or removes all audio elements from the document.",author:"Dario Passariello",creationDate:"20240924",lastMod:"20240924",type:"function",active:true,env:"client",subCommand:[]}]},d={play:(e,o="",r=false)=>{if(e){if(!document.querySelector(`#audio_${e}`)){let t=document.createElement("audio");t.id=`audio_${e}`,t.dataset.dphelper="audio",t.src=o+e,t.loop=r,document.body.appendChild(t),t.load(),t.play()?.catch?.(n=>console.error("Error playing audio:",n));}}else document.querySelectorAll("audio[data-dphelper='audio']").forEach(t=>t.remove());}};dphelper?.setDescription(c,d);var O=dphelper.audio;exports.audio=O;
1
+ 'use strict';var i={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var s={version:"4.7.0"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...i},configurable:true,writable:true},version:{value:s.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var a=dphelper;Object.defineProperty(a,"setProps",{value:(e,o,r)=>{Object.defineProperty(e,o.name,r||{writable:false,configurable:false,enumerable:false}),r?.lock&&Object.freeze(e[o.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(a,"setDescription",{value:(e,o)=>{Object.defineProperties(a,{[e.name]:{value:o,writable:false,configurable:false,enumerable:false}}),Object.keys(o).map(r=>(Object.defineProperties(a[e.name],{[r]:{writable:false,configurable:false,enumerable:false}}),null)),a.setProps(a,e,{writable:false,configurable:false,enumerable:false}),a._list.scripts.push(e);}});var c={name:"audio",active:true,subCommand:[{name:"play",version:"0.0.2",example:"dphelper.audio.play([audiofile])",description:"Plays an audio file or removes all audio elements from the document.",author:"Dario Passariello",creationDate:"20240924",lastMod:"20240924",type:"function",active:true,env:"client",subCommand:[]}]},d={play:(e,o="",r=false)=>{if(e){if(!document.querySelector(`#audio_${e}`)){let t=document.createElement("audio");t.id=`audio_${e}`,t.dataset.dphelper="audio",t.src=o+e,t.loop=r,document.body.appendChild(t),t.load(),t.play()?.catch?.(n=>console.error("Error playing audio:",n));}}else document.querySelectorAll("audio[data-dphelper='audio']").forEach(t=>t.remove());}};dphelper?.setDescription(c,d);var O=dphelper.audio;exports.audio=O;
package/modules/audio.js CHANGED
@@ -1 +1 @@
1
- var s={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var n={version:"4.6.2"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...s},configurable:true,writable:true},version:{value:n.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var a=dphelper;Object.defineProperty(a,"setProps",{value:(e,o,r)=>{Object.defineProperty(e,o.name,r||{writable:false,configurable:false,enumerable:false}),r?.lock&&Object.freeze(e[o.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(a,"setDescription",{value:(e,o)=>{Object.defineProperties(a,{[e.name]:{value:o,writable:false,configurable:false,enumerable:false}}),Object.keys(o).map(r=>(Object.defineProperties(a[e.name],{[r]:{writable:false,configurable:false,enumerable:false}}),null)),a.setProps(a,e,{writable:false,configurable:false,enumerable:false}),a._list.scripts.push(e);}});var d={name:"audio",active:true,subCommand:[{name:"play",version:"0.0.2",example:"dphelper.audio.play([audiofile])",description:"Plays an audio file or removes all audio elements from the document.",author:"Dario Passariello",creationDate:"20240924",lastMod:"20240924",type:"function",active:true,env:"client",subCommand:[]}]},b={play:(e,o="",r=false)=>{if(e){if(!document.querySelector(`#audio_${e}`)){let t=document.createElement("audio");t.id=`audio_${e}`,t.dataset.dphelper="audio",t.src=o+e,t.loop=r,document.body.appendChild(t),t.load(),t.play()?.catch?.(p=>console.error("Error playing audio:",p));}}else document.querySelectorAll("audio[data-dphelper='audio']").forEach(t=>t.remove());}};dphelper?.setDescription(d,b);var k=dphelper.audio;export{k as audio};
1
+ var s={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var n={version:"4.7.0"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...s},configurable:true,writable:true},version:{value:n.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var a=dphelper;Object.defineProperty(a,"setProps",{value:(e,o,r)=>{Object.defineProperty(e,o.name,r||{writable:false,configurable:false,enumerable:false}),r?.lock&&Object.freeze(e[o.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(a,"setDescription",{value:(e,o)=>{Object.defineProperties(a,{[e.name]:{value:o,writable:false,configurable:false,enumerable:false}}),Object.keys(o).map(r=>(Object.defineProperties(a[e.name],{[r]:{writable:false,configurable:false,enumerable:false}}),null)),a.setProps(a,e,{writable:false,configurable:false,enumerable:false}),a._list.scripts.push(e);}});var d={name:"audio",active:true,subCommand:[{name:"play",version:"0.0.2",example:"dphelper.audio.play([audiofile])",description:"Plays an audio file or removes all audio elements from the document.",author:"Dario Passariello",creationDate:"20240924",lastMod:"20240924",type:"function",active:true,env:"client",subCommand:[]}]},b={play:(e,o="",r=false)=>{if(e){if(!document.querySelector(`#audio_${e}`)){let t=document.createElement("audio");t.id=`audio_${e}`,t.dataset.dphelper="audio",t.src=o+e,t.loop=r,document.body.appendChild(t),t.load(),t.play()?.catch?.(p=>console.error("Error playing audio:",p));}}else document.querySelectorAll("audio[data-dphelper='audio']").forEach(t=>t.remove());}};dphelper?.setDescription(d,b);var k=dphelper.audio;export{k as audio};
package/modules/avoid.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';var l={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var s={version:"4.6.2"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...l},configurable:true,writable:true},version:{value:s.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var t=dphelper;Object.defineProperty(t,"setProps",{value:(e,r,a)=>{Object.defineProperty(e,r.name,a||{writable:false,configurable:false,enumerable:false}),a?.lock&&Object.freeze(e[r.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(t,"setDescription",{value:(e,r)=>{Object.defineProperties(t,{[e.name]:{value:r,writable:false,configurable:false,enumerable:false}}),Object.keys(r).map(a=>(Object.defineProperties(t[e.name],{[a]:{writable:false,configurable:false,enumerable:false}}),null)),t.setProps(t,e,{writable:false,configurable:false,enumerable:false}),t._list.scripts.push(e);}});var p={name:"avoid",active:true,subCommand:[{name:"cache",version:"0.0.2",example:"dphelper.avoid.cache()",description:"Appends a cache-busting query parameter to a given URI.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]}]},c={cache:e=>{if(typeof e!="string")throw new Error("The provided URI must be a string");return e.concat(/\?/.test(e)?"&":"?","t=",Math.random().toString(36).substring(2))}};dphelper?.setDescription(p,c);var j=dphelper.avoid;exports.avoid=j;
1
+ 'use strict';var l={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var s={version:"4.7.0"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...l},configurable:true,writable:true},version:{value:s.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var t=dphelper;Object.defineProperty(t,"setProps",{value:(e,r,a)=>{Object.defineProperty(e,r.name,a||{writable:false,configurable:false,enumerable:false}),a?.lock&&Object.freeze(e[r.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(t,"setDescription",{value:(e,r)=>{Object.defineProperties(t,{[e.name]:{value:r,writable:false,configurable:false,enumerable:false}}),Object.keys(r).map(a=>(Object.defineProperties(t[e.name],{[a]:{writable:false,configurable:false,enumerable:false}}),null)),t.setProps(t,e,{writable:false,configurable:false,enumerable:false}),t._list.scripts.push(e);}});var p={name:"avoid",active:true,subCommand:[{name:"cache",version:"0.0.2",example:"dphelper.avoid.cache()",description:"Appends a cache-busting query parameter to a given URI.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]}]},c={cache:e=>{if(typeof e!="string")throw new Error("The provided URI must be a string");return e.concat(/\?/.test(e)?"&":"?","t=",Math.random().toString(36).substring(2))}};dphelper?.setDescription(p,c);var j=dphelper.avoid;exports.avoid=j;
package/modules/avoid.js CHANGED
@@ -1 +1 @@
1
- var s={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var i={version:"4.6.2"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...s},configurable:true,writable:true},version:{value:i.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var t=dphelper;Object.defineProperty(t,"setProps",{value:(e,r,a)=>{Object.defineProperty(e,r.name,a||{writable:false,configurable:false,enumerable:false}),a?.lock&&Object.freeze(e[r.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(t,"setDescription",{value:(e,r)=>{Object.defineProperties(t,{[e.name]:{value:r,writable:false,configurable:false,enumerable:false}}),Object.keys(r).map(a=>(Object.defineProperties(t[e.name],{[a]:{writable:false,configurable:false,enumerable:false}}),null)),t.setProps(t,e,{writable:false,configurable:false,enumerable:false}),t._list.scripts.push(e);}});var c={name:"avoid",active:true,subCommand:[{name:"cache",version:"0.0.2",example:"dphelper.avoid.cache()",description:"Appends a cache-busting query parameter to a given URI.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]}]},u={cache:e=>{if(typeof e!="string")throw new Error("The provided URI must be a string");return e.concat(/\?/.test(e)?"&":"?","t=",Math.random().toString(36).substring(2))}};dphelper?.setDescription(c,u);var P=dphelper.avoid;export{P as avoid};
1
+ var s={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var i={version:"4.7.0"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...s},configurable:true,writable:true},version:{value:i.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var t=dphelper;Object.defineProperty(t,"setProps",{value:(e,r,a)=>{Object.defineProperty(e,r.name,a||{writable:false,configurable:false,enumerable:false}),a?.lock&&Object.freeze(e[r.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(t,"setDescription",{value:(e,r)=>{Object.defineProperties(t,{[e.name]:{value:r,writable:false,configurable:false,enumerable:false}}),Object.keys(r).map(a=>(Object.defineProperties(t[e.name],{[a]:{writable:false,configurable:false,enumerable:false}}),null)),t.setProps(t,e,{writable:false,configurable:false,enumerable:false}),t._list.scripts.push(e);}});var c={name:"avoid",active:true,subCommand:[{name:"cache",version:"0.0.2",example:"dphelper.avoid.cache()",description:"Appends a cache-busting query parameter to a given URI.",author:"Dario Passariello",creationDate:"20210101",lastMod:"20260220",type:"function",active:true,env:"both",subCommand:[]}]},u={cache:e=>{if(typeof e!="string")throw new Error("The provided URI must be a string");return e.concat(/\?/.test(e)?"&":"?","t=",Math.random().toString(36).substring(2))}};dphelper?.setDescription(c,u);var P=dphelper.avoid;export{P as avoid};
@@ -1,2 +1,2 @@
1
- 'use strict';var f={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var b={version:"4.6.2"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...f},configurable:true,writable:true},version:{value:b.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var o=dphelper;Object.defineProperty(o,"setProps",{value:(e,t,r)=>{Object.defineProperty(e,t.name,r||{writable:false,configurable:false,enumerable:false}),r?.lock&&Object.freeze(e[t.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(o,"setDescription",{value:(e,t)=>{Object.defineProperties(o,{[e.name]:{value:t,writable:false,configurable:false,enumerable:false}}),Object.keys(t).map(r=>(Object.defineProperties(o[e.name],{[r]:{writable:false,configurable:false,enumerable:false}}),null)),o.setProps(o,e,{writable:false,configurable:false,enumerable:false}),o._list.scripts.push(e);}});var g={name:"biometric",active:true,subCommand:[{name:"isAvailable",version:"0.0.1",example:"dphelper.biometric.isAvailable()",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Check if WebAuthn/biometric authentication is available",env:"client",subCommand:[]},{name:"register",version:"0.0.1",example:"dphelper.biometric.register('user123', 'https://example.com')",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Register a new credential for biometric authentication",env:"client",subCommand:[]},{name:"authenticate",version:"0.0.1",example:"dphelper.biometric.authenticate('user123', 'https://example.com')",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Authenticate using stored biometric credential",env:"client",subCommand:[]},{name:"getCredential",version:"0.0.1",example:"dphelper.biometric.getCredential(credentialId)",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Get a stored credential by ID",env:"client",subCommand:[]},{name:"deleteCredential",version:"0.0.1",example:"dphelper.biometric.deleteCredential(credentialId)",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Delete a stored credential",env:"client",subCommand:[]},{name:"listCredentials",version:"0.0.1",example:"dphelper.biometric.listCredentials()",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"List all stored credentials",env:"client",subCommand:[]},{name:"isSensorAvailable",version:"0.0.1",example:"dphelper.biometric.isSensorAvailable('fingerprint')",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Check if specific biometric sensor is available",env:"client",subCommand:[]},{name:"getWebAuthnSupport",version:"0.0.1",example:"dphelper.biometric.getWebAuthnSupport()",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Get detailed WebAuthn support information",env:"client",subCommand:[]}]},l=()=>!!navigator.credentials&&!!navigator.credentials.create,v=()=>{if(!l())return {supported:false,platformAuthenticator:false,hybridTransport:false,uvToken:false};let t=navigator.userAgent,r=t.includes("Windows"),a=t.includes("Mac"),i=t.includes("Linux");return {supported:true,platformAuthenticator:r||a||i,hybridTransport:false,uvToken:false}},w=async e=>{if(!l())return false;if(typeof PublicKeyCredential<"u")try{if(e==="fingerprint")return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable();if(e==="face")return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable();if(e==="iris")return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()}catch{return false}return false},m=(e=32)=>{let t=new Uint8Array(e);return crypto.getRandomValues(t),t},C=e=>{let t=e instanceof Uint8Array?e:new Uint8Array(e),r="";return t.forEach(a=>r+=String.fromCharCode(a)),btoa(r)},A=e=>{let t=atob(e),r=new Uint8Array(t.length);for(let a=0;a<t.length;a++)r[a]=t.charCodeAt(a);return r},s=new Map,P=async(e,t=window.location.hostname,r=window.location.hostname,a=e)=>{if(!l())return {success:false,error:"WebAuthn not supported"};try{let p={challenge:m().buffer,rp:{id:t,name:r},user:{id:new TextEncoder().encode(e),name:a,displayName:a},pubKeyCredParams:[{type:"public-key",alg:-7},{type:"public-key",alg:-257}],timeout:6e4,attestation:"none",authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred"}},n=await navigator.credentials.create({publicKey:p});if(!n)return {success:!1,error:"Credential creation failed"};let d=C(n.rawId);return s.set(d,{type:"public-key",id:n.rawId}),{success:!0,credentialId:d}}catch(i){return {success:false,error:i.message||"Registration failed"}}},D=async(e,t=window.location.hostname,r)=>{if(!l())return {success:false,error:"WebAuthn not supported"};try{let a=m(),i=[];if(r){let n=A(r).buffer;i.push({type:"public-key",id:n});}else s.size>0&&s.forEach(n=>{i.push(n);});let u={challenge:a.buffer,rpId:t,timeout:6e4,userVerification:"preferred",allowCredentials:i.length>0?i:void 0};return await navigator.credentials.get({publicKey:u})?{success:!0}:{success:!1,error:"Authentication failed"}}catch(a){return {success:false,error:a.message||"Authentication failed"}}},k=e=>s.get(e),x=e=>s.delete(e),j=()=>Array.from(s.keys()),K={isAvailable:l,getWebAuthnSupport:v,isSensorAvailable:w,register:P,authenticate:D,getCredential:k,deleteCredential:x,listCredentials:j};dphelper?.setDescription(g,K);var L=dphelper.biometric;
1
+ 'use strict';var f={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var b={version:"4.7.0"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...f},configurable:true,writable:true},version:{value:b.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var o=dphelper;Object.defineProperty(o,"setProps",{value:(e,t,r)=>{Object.defineProperty(e,t.name,r||{writable:false,configurable:false,enumerable:false}),r?.lock&&Object.freeze(e[t.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(o,"setDescription",{value:(e,t)=>{Object.defineProperties(o,{[e.name]:{value:t,writable:false,configurable:false,enumerable:false}}),Object.keys(t).map(r=>(Object.defineProperties(o[e.name],{[r]:{writable:false,configurable:false,enumerable:false}}),null)),o.setProps(o,e,{writable:false,configurable:false,enumerable:false}),o._list.scripts.push(e);}});var g={name:"biometric",active:true,subCommand:[{name:"isAvailable",version:"0.0.1",example:"dphelper.biometric.isAvailable()",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Check if WebAuthn/biometric authentication is available",env:"client",subCommand:[]},{name:"register",version:"0.0.1",example:"dphelper.biometric.register('user123', 'https://example.com')",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Register a new credential for biometric authentication",env:"client",subCommand:[]},{name:"authenticate",version:"0.0.1",example:"dphelper.biometric.authenticate('user123', 'https://example.com')",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Authenticate using stored biometric credential",env:"client",subCommand:[]},{name:"getCredential",version:"0.0.1",example:"dphelper.biometric.getCredential(credentialId)",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Get a stored credential by ID",env:"client",subCommand:[]},{name:"deleteCredential",version:"0.0.1",example:"dphelper.biometric.deleteCredential(credentialId)",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Delete a stored credential",env:"client",subCommand:[]},{name:"listCredentials",version:"0.0.1",example:"dphelper.biometric.listCredentials()",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"List all stored credentials",env:"client",subCommand:[]},{name:"isSensorAvailable",version:"0.0.1",example:"dphelper.biometric.isSensorAvailable('fingerprint')",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Check if specific biometric sensor is available",env:"client",subCommand:[]},{name:"getWebAuthnSupport",version:"0.0.1",example:"dphelper.biometric.getWebAuthnSupport()",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Get detailed WebAuthn support information",env:"client",subCommand:[]}]},l=()=>!!navigator.credentials&&!!navigator.credentials.create,v=()=>{if(!l())return {supported:false,platformAuthenticator:false,hybridTransport:false,uvToken:false};let t=navigator.userAgent,r=t.includes("Windows"),a=t.includes("Mac"),i=t.includes("Linux");return {supported:true,platformAuthenticator:r||a||i,hybridTransport:false,uvToken:false}},w=async e=>{if(!l())return false;if(typeof PublicKeyCredential<"u")try{if(e==="fingerprint")return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable();if(e==="face")return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable();if(e==="iris")return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()}catch{return false}return false},m=(e=32)=>{let t=new Uint8Array(e);return crypto.getRandomValues(t),t},C=e=>{let t=e instanceof Uint8Array?e:new Uint8Array(e),r="";return t.forEach(a=>r+=String.fromCharCode(a)),btoa(r)},A=e=>{let t=atob(e),r=new Uint8Array(t.length);for(let a=0;a<t.length;a++)r[a]=t.charCodeAt(a);return r},s=new Map,P=async(e,t=window.location.hostname,r=window.location.hostname,a=e)=>{if(!l())return {success:false,error:"WebAuthn not supported"};try{let p={challenge:m().buffer,rp:{id:t,name:r},user:{id:new TextEncoder().encode(e),name:a,displayName:a},pubKeyCredParams:[{type:"public-key",alg:-7},{type:"public-key",alg:-257}],timeout:6e4,attestation:"none",authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred"}},n=await navigator.credentials.create({publicKey:p});if(!n)return {success:!1,error:"Credential creation failed"};let d=C(n.rawId);return s.set(d,{type:"public-key",id:n.rawId}),{success:!0,credentialId:d}}catch(i){return {success:false,error:i.message||"Registration failed"}}},D=async(e,t=window.location.hostname,r)=>{if(!l())return {success:false,error:"WebAuthn not supported"};try{let a=m(),i=[];if(r){let n=A(r).buffer;i.push({type:"public-key",id:n});}else s.size>0&&s.forEach(n=>{i.push(n);});let u={challenge:a.buffer,rpId:t,timeout:6e4,userVerification:"preferred",allowCredentials:i.length>0?i:void 0};return await navigator.credentials.get({publicKey:u})?{success:!0}:{success:!1,error:"Authentication failed"}}catch(a){return {success:false,error:a.message||"Authentication failed"}}},k=e=>s.get(e),x=e=>s.delete(e),j=()=>Array.from(s.keys()),K={isAvailable:l,getWebAuthnSupport:v,isSensorAvailable:w,register:P,authenticate:D,getCredential:k,deleteCredential:x,listCredentials:j};dphelper?.setDescription(g,K);var L=dphelper.biometric;
2
2
  exports.biometric=L;
@@ -1,2 +1,2 @@
1
- var b={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var m={version:"4.6.2"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...b},configurable:true,writable:true},version:{value:m.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var o=dphelper;Object.defineProperty(o,"setProps",{value:(e,t,r)=>{Object.defineProperty(e,t.name,r||{writable:false,configurable:false,enumerable:false}),r?.lock&&Object.freeze(e[t.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(o,"setDescription",{value:(e,t)=>{Object.defineProperties(o,{[e.name]:{value:t,writable:false,configurable:false,enumerable:false}}),Object.keys(t).map(r=>(Object.defineProperties(o[e.name],{[r]:{writable:false,configurable:false,enumerable:false}}),null)),o.setProps(o,e,{writable:false,configurable:false,enumerable:false}),o._list.scripts.push(e);}});var v={name:"biometric",active:true,subCommand:[{name:"isAvailable",version:"0.0.1",example:"dphelper.biometric.isAvailable()",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Check if WebAuthn/biometric authentication is available",env:"client",subCommand:[]},{name:"register",version:"0.0.1",example:"dphelper.biometric.register('user123', 'https://example.com')",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Register a new credential for biometric authentication",env:"client",subCommand:[]},{name:"authenticate",version:"0.0.1",example:"dphelper.biometric.authenticate('user123', 'https://example.com')",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Authenticate using stored biometric credential",env:"client",subCommand:[]},{name:"getCredential",version:"0.0.1",example:"dphelper.biometric.getCredential(credentialId)",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Get a stored credential by ID",env:"client",subCommand:[]},{name:"deleteCredential",version:"0.0.1",example:"dphelper.biometric.deleteCredential(credentialId)",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Delete a stored credential",env:"client",subCommand:[]},{name:"listCredentials",version:"0.0.1",example:"dphelper.biometric.listCredentials()",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"List all stored credentials",env:"client",subCommand:[]},{name:"isSensorAvailable",version:"0.0.1",example:"dphelper.biometric.isSensorAvailable('fingerprint')",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Check if specific biometric sensor is available",env:"client",subCommand:[]},{name:"getWebAuthnSupport",version:"0.0.1",example:"dphelper.biometric.getWebAuthnSupport()",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Get detailed WebAuthn support information",env:"client",subCommand:[]}]},l=()=>!!navigator.credentials&&!!navigator.credentials.create,w=()=>{if(!l())return {supported:false,platformAuthenticator:false,hybridTransport:false,uvToken:false};let t=navigator.userAgent,r=t.includes("Windows"),a=t.includes("Mac"),i=t.includes("Linux");return {supported:true,platformAuthenticator:r||a||i,hybridTransport:false,uvToken:false}},C=async e=>{if(!l())return false;if(typeof PublicKeyCredential<"u")try{if(e==="fingerprint")return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable();if(e==="face")return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable();if(e==="iris")return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()}catch{return false}return false},h=(e=32)=>{let t=new Uint8Array(e);return crypto.getRandomValues(t),t},A=e=>{let t=e instanceof Uint8Array?e:new Uint8Array(e),r="";return t.forEach(a=>r+=String.fromCharCode(a)),btoa(r)},P=e=>{let t=atob(e),r=new Uint8Array(t.length);for(let a=0;a<t.length;a++)r[a]=t.charCodeAt(a);return r},s=new Map,D=async(e,t=window.location.hostname,r=window.location.hostname,a=e)=>{if(!l())return {success:false,error:"WebAuthn not supported"};try{let d={challenge:h().buffer,rp:{id:t,name:r},user:{id:new TextEncoder().encode(e),name:a,displayName:a},pubKeyCredParams:[{type:"public-key",alg:-7},{type:"public-key",alg:-257}],timeout:6e4,attestation:"none",authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred"}},n=await navigator.credentials.create({publicKey:d});if(!n)return {success:!1,error:"Credential creation failed"};let f=A(n.rawId);return s.set(f,{type:"public-key",id:n.rawId}),{success:!0,credentialId:f}}catch(i){return {success:false,error:i.message||"Registration failed"}}},k=async(e,t=window.location.hostname,r)=>{if(!l())return {success:false,error:"WebAuthn not supported"};try{let a=h(),i=[];if(r){let n=P(r).buffer;i.push({type:"public-key",id:n});}else s.size>0&&s.forEach(n=>{i.push(n);});let p={challenge:a.buffer,rpId:t,timeout:6e4,userVerification:"preferred",allowCredentials:i.length>0?i:void 0};return await navigator.credentials.get({publicKey:p})?{success:!0}:{success:!1,error:"Authentication failed"}}catch(a){return {success:false,error:a.message||"Authentication failed"}}},x=e=>s.get(e),j=e=>s.delete(e),K=()=>Array.from(s.keys()),M={isAvailable:l,getWebAuthnSupport:w,isSensorAvailable:C,register:D,authenticate:k,getCredential:x,deleteCredential:j,listCredentials:K};dphelper?.setDescription(v,M);var E=dphelper.biometric;
1
+ var b={info:{title:"List",description:"Complete list of tools"},categories:["3party","system","financial","memory","numbers","time","path","file","forms","ui","other","development"]};var m={version:"4.7.0"};Object.defineProperty(globalThis,"dphelper",{value:new Proxy({},{}),writable:true,configurable:true,enumerable:false});Object.defineProperties(dphelper,{_list:{value:{scripts:[],sockets:[],...b},configurable:true,writable:true},version:{value:m.version,configurable:true,writable:true},isServer:{value:false,configurable:true,writable:true},isBrowser:{value:true,configurable:true,writable:true}});var o=dphelper;Object.defineProperty(o,"setProps",{value:(e,t,r)=>{Object.defineProperty(e,t.name,r||{writable:false,configurable:false,enumerable:false}),r?.lock&&Object.freeze(e[t.name]);},writable:false,configurable:false,enumerable:false});Object.defineProperty(o,"setDescription",{value:(e,t)=>{Object.defineProperties(o,{[e.name]:{value:t,writable:false,configurable:false,enumerable:false}}),Object.keys(t).map(r=>(Object.defineProperties(o[e.name],{[r]:{writable:false,configurable:false,enumerable:false}}),null)),o.setProps(o,e,{writable:false,configurable:false,enumerable:false}),o._list.scripts.push(e);}});var v={name:"biometric",active:true,subCommand:[{name:"isAvailable",version:"0.0.1",example:"dphelper.biometric.isAvailable()",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Check if WebAuthn/biometric authentication is available",env:"client",subCommand:[]},{name:"register",version:"0.0.1",example:"dphelper.biometric.register('user123', 'https://example.com')",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Register a new credential for biometric authentication",env:"client",subCommand:[]},{name:"authenticate",version:"0.0.1",example:"dphelper.biometric.authenticate('user123', 'https://example.com')",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Authenticate using stored biometric credential",env:"client",subCommand:[]},{name:"getCredential",version:"0.0.1",example:"dphelper.biometric.getCredential(credentialId)",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Get a stored credential by ID",env:"client",subCommand:[]},{name:"deleteCredential",version:"0.0.1",example:"dphelper.biometric.deleteCredential(credentialId)",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Delete a stored credential",env:"client",subCommand:[]},{name:"listCredentials",version:"0.0.1",example:"dphelper.biometric.listCredentials()",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"List all stored credentials",env:"client",subCommand:[]},{name:"isSensorAvailable",version:"0.0.1",example:"dphelper.biometric.isSensorAvailable('fingerprint')",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Check if specific biometric sensor is available",env:"client",subCommand:[]},{name:"getWebAuthnSupport",version:"0.0.1",example:"dphelper.biometric.getWebAuthnSupport()",author:"Dario Passariello",creationDate:"20260313",lastMod:"20260313",type:"function",active:true,description:"Get detailed WebAuthn support information",env:"client",subCommand:[]}]},l=()=>!!navigator.credentials&&!!navigator.credentials.create,w=()=>{if(!l())return {supported:false,platformAuthenticator:false,hybridTransport:false,uvToken:false};let t=navigator.userAgent,r=t.includes("Windows"),a=t.includes("Mac"),i=t.includes("Linux");return {supported:true,platformAuthenticator:r||a||i,hybridTransport:false,uvToken:false}},C=async e=>{if(!l())return false;if(typeof PublicKeyCredential<"u")try{if(e==="fingerprint")return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable();if(e==="face")return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable();if(e==="iris")return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()}catch{return false}return false},h=(e=32)=>{let t=new Uint8Array(e);return crypto.getRandomValues(t),t},A=e=>{let t=e instanceof Uint8Array?e:new Uint8Array(e),r="";return t.forEach(a=>r+=String.fromCharCode(a)),btoa(r)},P=e=>{let t=atob(e),r=new Uint8Array(t.length);for(let a=0;a<t.length;a++)r[a]=t.charCodeAt(a);return r},s=new Map,D=async(e,t=window.location.hostname,r=window.location.hostname,a=e)=>{if(!l())return {success:false,error:"WebAuthn not supported"};try{let d={challenge:h().buffer,rp:{id:t,name:r},user:{id:new TextEncoder().encode(e),name:a,displayName:a},pubKeyCredParams:[{type:"public-key",alg:-7},{type:"public-key",alg:-257}],timeout:6e4,attestation:"none",authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred"}},n=await navigator.credentials.create({publicKey:d});if(!n)return {success:!1,error:"Credential creation failed"};let f=A(n.rawId);return s.set(f,{type:"public-key",id:n.rawId}),{success:!0,credentialId:f}}catch(i){return {success:false,error:i.message||"Registration failed"}}},k=async(e,t=window.location.hostname,r)=>{if(!l())return {success:false,error:"WebAuthn not supported"};try{let a=h(),i=[];if(r){let n=P(r).buffer;i.push({type:"public-key",id:n});}else s.size>0&&s.forEach(n=>{i.push(n);});let p={challenge:a.buffer,rpId:t,timeout:6e4,userVerification:"preferred",allowCredentials:i.length>0?i:void 0};return await navigator.credentials.get({publicKey:p})?{success:!0}:{success:!1,error:"Authentication failed"}}catch(a){return {success:false,error:a.message||"Authentication failed"}}},x=e=>s.get(e),j=e=>s.delete(e),K=()=>Array.from(s.keys()),M={isAvailable:l,getWebAuthnSupport:w,isSensorAvailable:C,register:D,authenticate:k,getCredential:x,deleteCredential:j,listCredentials:K};dphelper?.setDescription(v,M);var E=dphelper.biometric;
2
2
  export{E as biometric};