@arela/uploader 0.0.7 → 0.0.9

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 (3) hide show
  1. package/package.json +2 -1
  2. package/src/index.js +94 -16
  3. package/upload.log +158 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arela/uploader",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "description": "CLI to upload files/directories to Arela",
5
5
  "bin": {
6
6
  "arela": "./src/index.js"
@@ -29,6 +29,7 @@
29
29
  "homepage": "https://github.com/inspiraCode/arela-uploader#readme",
30
30
  "dependencies": {
31
31
  "@supabase/supabase-js": "^2.49.4",
32
+ "cli-progress": "^3.12.0",
32
33
  "commander": "^13.1.0",
33
34
  "dotenv": "^16.5.0",
34
35
  "globby": "^14.1.0",
package/src/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createClient } from '@supabase/supabase-js';
3
+ import cliProgress from 'cli-progress';
3
4
  import { Command } from 'commander';
4
5
  import { config } from 'dotenv';
5
6
  import fs from 'fs';
@@ -117,26 +118,87 @@ const writeLog = (message) => {
117
118
  const timestamp = new Date().toISOString();
118
119
  fs.appendFileSync(logFilePath, `[${timestamp}] ${message}\n`);
119
120
  } catch (error) {
120
- console.error(`❌ Error writing to log file: ${err.message}`);
121
+ console.error(`❌ Error writing to log file: ${error.message}`);
121
122
  }
122
123
  };
123
124
 
124
- const getProcessedPaths = () => {
125
- const lines = fs.existsSync(logFilePath)
126
- ? fs.readFileSync(logFilePath, 'utf-8').split('\n')
127
- : [];
125
+ // Modified to fetch from Supabase first, then fallback to local log
126
+ const getProcessedPaths = async () => {
128
127
  const processed = new Set();
129
- for (const line of lines) {
130
- const match = line.match(/(SUCCESS|SKIPPED): .*? -> (.+)/);
131
- if (match) {
132
- const [, , path] = match;
133
- processed.add(path.trim());
128
+
129
+ // Try to fetch from Supabase first
130
+ try {
131
+ const { data, error } = await supabase
132
+ .from('upload_logs')
133
+ .select('path')
134
+ .in('status', ['success', 'skipped']);
135
+
136
+ if (error) {
137
+ console.warn(
138
+ `⚠️ Could not fetch processed paths from Supabase: ${error.message}. Falling back to local log.`,
139
+ );
140
+ // Fallback to local log if Supabase fetch fails
141
+ const lines = fs.existsSync(logFilePath)
142
+ ? fs.readFileSync(logFilePath, 'utf-8').split('\\n')
143
+ : [];
144
+ for (const line of lines) {
145
+ const match = line.match(/(SUCCESS|SKIPPED): .*? -> (.+)/);
146
+ if (match) {
147
+ const [, , path] = match;
148
+ processed.add(path.trim());
149
+ }
150
+ }
151
+ } else if (data) {
152
+ data.forEach((log) => {
153
+ if (log.path) {
154
+ processed.add(log.path.trim());
155
+ }
156
+ });
157
+ // Also read from local log to ensure any paths logged before this change or during a Supabase outage are included
158
+ const lines = fs.existsSync(logFilePath)
159
+ ? fs.readFileSync(logFilePath, 'utf-8').split('\\n')
160
+ : [];
161
+ for (const line of lines) {
162
+ const match = line.match(/(SUCCESS|SKIPPED): .*? -> (.+)/);
163
+ if (match) {
164
+ const [, , pathValue] = match;
165
+ if (pathValue) {
166
+ processed.add(pathValue.trim());
167
+ }
168
+ }
169
+ }
170
+ }
171
+ } catch (e) {
172
+ console.warn(
173
+ `⚠️ Error fetching from Supabase or reading local log: ${e.message}. Proceeding with an empty set of processed paths initially.`,
174
+ );
175
+ // Ensure local log is still attempted if Supabase connection itself fails
176
+ const lines = fs.existsSync(logFilePath)
177
+ ? fs.readFileSync(logFilePath, 'utf-8').split('\\n')
178
+ : [];
179
+ for (const line of lines) {
180
+ const match = line.match(/(SUCCESS|SKIPPED): .*? -> (.+)/);
181
+ if (match) {
182
+ const [, , path] = match;
183
+ processed.add(path.trim());
184
+ }
134
185
  }
135
186
  }
136
187
  return processed;
137
188
  };
138
189
 
139
- // const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
190
+ const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
191
+
192
+ const uploadWithRetry = async (uploadFn, maxRetries = 3, delayMs = 1000) => {
193
+ let attempt = 0;
194
+ while (attempt < maxRetries) {
195
+ const result = await uploadFn();
196
+ if (!result.error) return result;
197
+ attempt++;
198
+ if (attempt < maxRetries) await delay(delayMs);
199
+ }
200
+ return { error: new Error('Max retries exceeded') };
201
+ };
140
202
 
141
203
  program
142
204
  .name('supabase-uploader')
@@ -151,7 +213,7 @@ program
151
213
  process.exit(1);
152
214
  }
153
215
 
154
- const processedPaths = getProcessedPaths();
216
+ const processedPaths = await getProcessedPaths();
155
217
  let globalSuccess = 0;
156
218
  let globalFailure = 0;
157
219
 
@@ -165,10 +227,19 @@ program
165
227
  ? await globby([`${sourcePath}/**/*`], { onlyFiles: true })
166
228
  : [sourcePath];
167
229
 
230
+ const progressBar = new cliProgress.SingleBar({
231
+ format: '📂 Reading [{bar}] {percentage}% | {value}/{total} files',
232
+ barCompleteChar: '█',
233
+ barIncompleteChar: '░',
234
+ hideCursor: true,
235
+ });
236
+ progressBar.start(files.length, 0);
237
+
168
238
  let successCount = 0;
169
239
  let failureCount = 0;
170
240
 
171
241
  for (const file of files) {
242
+ progressBar.increment();
172
243
  const content = fs.readFileSync(file);
173
244
  const relativePathRaw = path
174
245
  .relative(basePath, file)
@@ -214,15 +285,20 @@ program
214
285
  try {
215
286
  // await delay(5000); // TODO: Remove this delay before production
216
287
 
217
- const { error } = await supabase.storage
218
- .from(bucket)
219
- .upload(uploadPath, content, {
288
+ const { error } = await uploadWithRetry(() =>
289
+ supabase.storage.from(bucket).upload(uploadPath, content, {
220
290
  upsert: true,
221
291
  contentType,
222
292
  metadata: {
223
293
  originalName: path.basename(file),
294
+ clientPath: path.posix.join(
295
+ basePath,
296
+ folder,
297
+ path.relative(sourcePath, file).replace(/\\/g, '/'),
298
+ ),
224
299
  },
225
- });
300
+ }),
301
+ );
226
302
 
227
303
  if (error) {
228
304
  failureCount++;
@@ -255,6 +331,8 @@ program
255
331
  }
256
332
  }
257
333
 
334
+ progressBar.stop();
335
+
258
336
  console.log(`\n📦 Upload Summary:`);
259
337
  console.log(` ✅ Successfully uploaded files: ${successCount}`);
260
338
  console.log(` ❌ Files with errors: ${failureCount}`);
package/upload.log ADDED
@@ -0,0 +1,158 @@
1
+ [2025-05-13T19:46:47.620Z] SKIPPED: ../../Documents/2023/2003180/VU_3429_070_2003180.xml -> 2023/2003180/VU_3429_070_2003180.xml
2
+ [2025-05-13T19:46:47.650Z] SKIPPED: ../../Documents/2023/2003189/VU_3429_070_2003189.xml -> 2023/2003189/VU_3429_070_2003189.xml
3
+ [2025-05-13T19:46:47.662Z] SKIPPED: ../../Documents/2023/2003202/VU_3429_070_2003202.xml -> 2023/2003202/VU_3429_070_2003202.xml
4
+ [2025-05-13T19:46:47.671Z] SKIPPED: ../../Documents/2023/2002089/044321004UKC5.pdf -> 2023/2002089/044321004UKC5.pdf
5
+ [2025-05-13T19:46:47.682Z] SKIPPED: ../../Documents/2023/2002089/3429-07-22002089-60280-191230MC0-COVE.xml -> 2023/2002089/3429-07-22002089-60280-191230MC0-COVE.xml
6
+ [2025-05-13T19:46:47.688Z] SKIPPED: ../../Documents/2023/2002089/3429-07-22002089-60280-191230MC2-COVE.xml -> 2023/2002089/3429-07-22002089-60280-191230MC2-COVE.xml
7
+ [2025-05-13T19:46:47.695Z] SKIPPED: ../../Documents/2023/2002089/3429-07-22002089-60280-191230MC5-COVE.xml -> 2023/2002089/3429-07-22002089-60280-191230MC5-COVE.xml
8
+ [2025-05-13T19:46:47.701Z] SKIPPED: ../../Documents/2023/2002089/3429-07-22002089-CoveFact.pdf -> 2023/2002089/3429-07-22002089-CoveFact.pdf
9
+ [2025-05-13T19:46:47.708Z] SKIPPED: ../../Documents/2023/2002089/3429-07-22002089-FV-m3429279.006 -> 2023/2002089/3429-07-22002089-FV-m3429279.006
10
+ [2025-05-13T19:46:47.714Z] SKIPPED: ../../Documents/2023/2002089/3429-07-22002089-FV-m3429279.err -> 2023/2002089/3429-07-22002089-FV-m3429279.err
11
+ [2025-05-13T19:46:47.720Z] SKIPPED: ../../Documents/2023/2002089/3429-07-22002089-PE-A3429811.006 -> 2023/2002089/3429-07-22002089-PE-A3429811.006
12
+ [2025-05-13T19:46:47.726Z] SKIPPED: ../../Documents/2023/2002089/3429-07-22002089-PE-E3429811.006 -> 2023/2002089/3429-07-22002089-PE-E3429811.006
13
+ [2025-05-13T19:46:47.731Z] SKIPPED: ../../Documents/2023/2002089/3429-07-22002089-Simplif.pdf -> 2023/2002089/3429-07-22002089-Simplif.pdf
14
+ [2025-05-13T19:46:47.737Z] SKIPPED: ../../Documents/2023/2002089/COVE-3429-070-2002089-COVE225IIKWC1.pdf -> 2023/2002089/COVE-3429-070-2002089-COVE225IIKWC1.pdf
15
+ [2025-05-13T19:46:47.743Z] SKIPPED: ../../Documents/2023/2002089/COVE-3429-070-2002089-COVE225IIKWC1.xml -> 2023/2002089/COVE-3429-070-2002089-COVE225IIKWC1.xml
16
+ [2025-05-13T19:46:47.749Z] SKIPPED: ../../Documents/2023/2002089/COVE-3429-070-2002089-COVE225IINHI2.pdf -> 2023/2002089/COVE-3429-070-2002089-COVE225IINHI2.pdf
17
+ [2025-05-13T19:46:47.756Z] SKIPPED: ../../Documents/2023/2002089/COVE-3429-070-2002089-COVE225IINHI2.xml -> 2023/2002089/COVE-3429-070-2002089-COVE225IINHI2.xml
18
+ [2025-05-13T19:46:47.761Z] SKIPPED: ../../Documents/2023/2002089/DETALLE_COVE225IIKWC1.pdf -> 2023/2002089/DETALLE_COVE225IIKWC1.pdf
19
+ [2025-05-13T19:46:47.766Z] SKIPPED: ../../Documents/2023/2002089/DETALLE_COVE225IINHI2.pdf -> 2023/2002089/DETALLE_COVE225IINHI2.pdf
20
+ [2025-05-13T19:46:47.773Z] SKIPPED: ../../Documents/2023/2002089/EDOC_044321004UKC5.xml -> 2023/2002089/EDOC_044321004UKC5.xml
21
+ [2025-05-13T19:46:47.781Z] SKIPPED: ../../Documents/2023/2002089/VU_3429_070_2002089.xml -> 2023/2002089/VU_3429_070_2002089.xml
22
+ [2025-05-13T19:46:47.787Z] SKIPPED: ../../Documents/2023/2002089/VU_REMESA_3429_070_2002089.xml -> 2023/2002089/VU_REMESA_3429_070_2002089.xml
23
+ [2025-05-13T19:46:47.792Z] SKIPPED: ../../Documents/2023/2000601/04402200X9L27.pdf -> 2023/2000601/04402200X9L27.pdf
24
+ [2025-05-13T19:46:47.798Z] SKIPPED: ../../Documents/2023/2000601/04402200X9L27.xml -> 2023/2000601/04402200X9L27.xml
25
+ [2025-05-13T19:46:47.805Z] SKIPPED: ../../Documents/2023/2000601/04412000Z75A8.pdf -> 2023/2000601/04412000Z75A8.pdf
26
+ [2025-05-13T19:46:47.811Z] SKIPPED: ../../Documents/2023/2000601/04432000491D6.pdf -> 2023/2000601/04432000491D6.pdf
27
+ [2025-05-13T19:46:47.818Z] SKIPPED: ../../Documents/2023/2000601/044320004GF86.pdf -> 2023/2000601/044320004GF86.pdf
28
+ [2025-05-13T19:46:47.824Z] SKIPPED: ../../Documents/2023/2000601/3429-07-22000601-73096-COVE.xml -> 2023/2000601/3429-07-22000601-73096-COVE.xml
29
+ [2025-05-13T19:46:47.830Z] SKIPPED: ../../Documents/2023/2000601/3429-07-22000601-90972508-0001-DODA.pdf -> 2023/2000601/3429-07-22000601-90972508-0001-DODA.pdf
30
+ [2025-05-13T19:46:47.837Z] SKIPPED: ../../Documents/2023/2000601/3429-07-22000601-CoveFact.pdf -> 2023/2000601/3429-07-22000601-CoveFact.pdf
31
+ [2025-05-13T19:46:47.842Z] SKIPPED: ../../Documents/2023/2000601/3429-07-22000601-FV-m3429536.009 -> 2023/2000601/3429-07-22000601-FV-m3429536.009
32
+ [2025-05-13T19:46:47.847Z] SKIPPED: ../../Documents/2023/2000601/3429-07-22000601-FV-m3429536.err -> 2023/2000601/3429-07-22000601-FV-m3429536.err
33
+ [2025-05-13T19:46:47.852Z] SKIPPED: ../../Documents/2023/2000601/3429-07-22000601-MX-B376W_20221212_162523-RespDgs.xml -> 2023/2000601/3429-07-22000601-MX-B376W_20221212_162523-RespDgs.xml
34
+ [2025-05-13T19:46:47.856Z] SKIPPED: ../../Documents/2023/2000601/3429-07-22000601-PE-A3429518.009 -> 2023/2000601/3429-07-22000601-PE-A3429518.009
35
+ [2025-05-13T19:46:47.861Z] SKIPPED: ../../Documents/2023/2000601/3429-07-22000601-PE-E3429518.009 -> 2023/2000601/3429-07-22000601-PE-E3429518.009
36
+ [2025-05-13T19:46:47.866Z] SKIPPED: ../../Documents/2023/2000601/3429-07-22000601-Simplif.pdf -> 2023/2000601/3429-07-22000601-Simplif.pdf
37
+ [2025-05-13T19:46:47.872Z] SKIPPED: ../../Documents/2023/2000601/COVE-3429-070-2000601-COVE225GYTBB3.pdf -> 2023/2000601/COVE-3429-070-2000601-COVE225GYTBB3.pdf
38
+ [2025-05-13T19:46:47.878Z] SKIPPED: ../../Documents/2023/2000601/COVE-3429-070-2000601-COVE225GYTBB3.xml -> 2023/2000601/COVE-3429-070-2000601-COVE225GYTBB3.xml
39
+ [2025-05-13T19:46:47.883Z] SKIPPED: ../../Documents/2023/2000601/DETALLE_COVE225GYTBB3.pdf -> 2023/2000601/DETALLE_COVE225GYTBB3.pdf
40
+ [2025-05-13T19:46:47.889Z] SKIPPED: ../../Documents/2023/2000601/EDOC-3429-070-2000601-04402200X9L27.pdf -> 2023/2000601/EDOC-3429-070-2000601-04402200X9L27.pdf
41
+ [2025-05-13T19:46:47.894Z] SKIPPED: ../../Documents/2023/2000601/EDOC-3429-070-2000601-04412000Z75A8.pdf -> 2023/2000601/EDOC-3429-070-2000601-04412000Z75A8.pdf
42
+ [2025-05-13T19:46:47.900Z] SKIPPED: ../../Documents/2023/2000601/EDOC-3429-070-2000601-04432000491D6.pdf -> 2023/2000601/EDOC-3429-070-2000601-04432000491D6.pdf
43
+ [2025-05-13T19:46:47.905Z] SKIPPED: ../../Documents/2023/2000601/EDOC-3429-070-2000601-044320004GF86.pdf -> 2023/2000601/EDOC-3429-070-2000601-044320004GF86.pdf
44
+ [2025-05-13T19:46:47.911Z] SKIPPED: ../../Documents/2023/2000601/EDOC_04412000Z75A8.xml -> 2023/2000601/EDOC_04412000Z75A8.xml
45
+ [2025-05-13T19:46:47.917Z] SKIPPED: ../../Documents/2023/2000601/EDOC_04432000491D6.xml -> 2023/2000601/EDOC_04432000491D6.xml
46
+ [2025-05-13T19:46:47.922Z] SKIPPED: ../../Documents/2023/2000601/EDOC_044320004GF86.xml -> 2023/2000601/EDOC_044320004GF86.xml
47
+ [2025-05-13T19:46:47.927Z] SKIPPED: ../../Documents/2023/2000601/VU_3429_070_2000601.xml -> 2023/2000601/VU_3429_070_2000601.xml
48
+ [2025-05-13T19:46:47.931Z] SKIPPED: ../../Documents/2023/2000601/VU_REMESA_3429_070_2000601.xml -> 2023/2000601/VU_REMESA_3429_070_2000601.xml
49
+ [2025-05-13T19:46:47.932Z] 📦 Upload Summary for folder 2023: Success: 0, Errors: 0, Skipped: 48
50
+ [2025-05-13T19:46:47.934Z] SANITIZED: 2024/4.- 3 - Prueba ~ 3429-07-22002089-CoveFact copy.pdf → 2024/4.- 3 - Prueba - 3429-07-22002089-CoveFact copy.pdf
51
+ [2025-05-13T19:46:47.939Z] SKIPPED: ../../Documents/2024/4.- 3 - Prueba ~ 3429-07-22002089-CoveFact copy.pdf -> 2024/4.- 3 - Prueba - 3429-07-22002089-CoveFact copy.pdf
52
+ [2025-05-13T19:46:47.943Z] SANITIZED: 2024/2003207/2. 3 - Prueba ~ 3429-07-22002089-CoveFact.pdf → 2024/2003207/2. 3 - Prueba - 3429-07-22002089-CoveFact.pdf
53
+ [2025-05-13T19:46:47.947Z] SKIPPED: ../../Documents/2024/2003207/2. 3 - Prueba ~ 3429-07-22002089-CoveFact.pdf -> 2024/2003207/2. 3 - Prueba - 3429-07-22002089-CoveFact.pdf
54
+ [2025-05-13T19:46:47.952Z] SKIPPED: ../../Documents/2024/2003207/VU_3429_070_2003207.xml -> 2024/2003207/VU_3429_070_2003207.xml
55
+ [2025-05-13T19:46:47.955Z] SANITIZED: 2024/2003212/2.- 5 - Prueba ~ 3429-07-22002089-CoveFact.pdf → 2024/2003212/2.- 5 - Prueba - 3429-07-22002089-CoveFact.pdf
56
+ [2025-05-13T19:46:47.960Z] SKIPPED: ../../Documents/2024/2003212/2.- 5 - Prueba ~ 3429-07-22002089-CoveFact.pdf -> 2024/2003212/2.- 5 - Prueba - 3429-07-22002089-CoveFact.pdf
57
+ [2025-05-13T19:46:47.965Z] SKIPPED: ../../Documents/2024/2003212/VU_3429_070_2003212.xml -> 2024/2003212/VU_3429_070_2003212.xml
58
+ [2025-05-13T19:46:47.967Z] 📦 Upload Summary for folder 2024: Success: 0, Errors: 0, Skipped: 5
59
+ [2025-05-13T19:46:47.981Z] SUCCESS: ../../Documents/2025/2003180/VU_3429_070_2003180.xml -> 2025/2003180/VU_3429_070_2003180.xml
60
+ [2025-05-13T19:46:47.992Z] SUCCESS: ../../Documents/2025/2003189/VU_3429_070_2003189.xml -> 2025/2003189/VU_3429_070_2003189.xml
61
+ [2025-05-13T19:46:48.003Z] SUCCESS: ../../Documents/2025/2003202/VU_3429_070_2003202.xml -> 2025/2003202/VU_3429_070_2003202.xml
62
+ [2025-05-13T19:46:48.027Z] SUCCESS: ../../Documents/2025/2002089/044321004UKC5.pdf -> 2025/2002089/044321004UKC5.pdf
63
+ [2025-05-13T19:46:48.038Z] SUCCESS: ../../Documents/2025/2002089/3429-07-22002089-60280-191230MC0-COVE.xml -> 2025/2002089/3429-07-22002089-60280-191230MC0-COVE.xml
64
+ [2025-05-13T19:46:48.060Z] SUCCESS: ../../Documents/2025/2002089/3429-07-22002089-60280-191230MC2-COVE.xml -> 2025/2002089/3429-07-22002089-60280-191230MC2-COVE.xml
65
+ [2025-05-13T19:46:48.077Z] SUCCESS: ../../Documents/2025/2002089/3429-07-22002089-60280-191230MC5-COVE.xml -> 2025/2002089/3429-07-22002089-60280-191230MC5-COVE.xml
66
+ [2025-05-13T19:46:48.096Z] SUCCESS: ../../Documents/2025/2002089/3429-07-22002089-CoveFact.pdf -> 2025/2002089/3429-07-22002089-CoveFact.pdf
67
+ [2025-05-13T19:46:48.108Z] SUCCESS: ../../Documents/2025/2002089/3429-07-22002089-FV-m3429279.006 -> 2025/2002089/3429-07-22002089-FV-m3429279.006
68
+ [2025-05-13T19:46:48.118Z] SUCCESS: ../../Documents/2025/2002089/3429-07-22002089-FV-m3429279.err -> 2025/2002089/3429-07-22002089-FV-m3429279.err
69
+ [2025-05-13T19:46:48.128Z] SUCCESS: ../../Documents/2025/2002089/3429-07-22002089-PE-A3429811.006 -> 2025/2002089/3429-07-22002089-PE-A3429811.006
70
+ [2025-05-13T19:46:48.138Z] SUCCESS: ../../Documents/2025/2002089/3429-07-22002089-PE-E3429811.006 -> 2025/2002089/3429-07-22002089-PE-E3429811.006
71
+ [2025-05-13T19:46:48.153Z] SUCCESS: ../../Documents/2025/2002089/3429-07-22002089-Simplif.pdf -> 2025/2002089/3429-07-22002089-Simplif.pdf
72
+ [2025-05-13T19:46:48.164Z] SUCCESS: ../../Documents/2025/2002089/COVE-3429-070-2002089-COVE225IIKWC1.pdf -> 2025/2002089/COVE-3429-070-2002089-COVE225IIKWC1.pdf
73
+ [2025-05-13T19:46:48.175Z] SUCCESS: ../../Documents/2025/2002089/COVE-3429-070-2002089-COVE225IIKWC1.xml -> 2025/2002089/COVE-3429-070-2002089-COVE225IIKWC1.xml
74
+ [2025-05-13T19:46:48.187Z] SUCCESS: ../../Documents/2025/2002089/COVE-3429-070-2002089-COVE225IINHI2.pdf -> 2025/2002089/COVE-3429-070-2002089-COVE225IINHI2.pdf
75
+ [2025-05-13T19:46:48.197Z] SUCCESS: ../../Documents/2025/2002089/COVE-3429-070-2002089-COVE225IINHI2.xml -> 2025/2002089/COVE-3429-070-2002089-COVE225IINHI2.xml
76
+ [2025-05-13T19:46:48.212Z] SUCCESS: ../../Documents/2025/2002089/DETALLE_COVE225IIKWC1.pdf -> 2025/2002089/DETALLE_COVE225IIKWC1.pdf
77
+ [2025-05-13T19:46:48.225Z] SUCCESS: ../../Documents/2025/2002089/DETALLE_COVE225IINHI2.pdf -> 2025/2002089/DETALLE_COVE225IINHI2.pdf
78
+ [2025-05-13T19:46:48.243Z] SUCCESS: ../../Documents/2025/2002089/EDOC_044321004UKC5.xml -> 2025/2002089/EDOC_044321004UKC5.xml
79
+ [2025-05-13T19:46:48.253Z] SUCCESS: ../../Documents/2025/2002089/VU_3429_070_2002089.xml -> 2025/2002089/VU_3429_070_2002089.xml
80
+ [2025-05-13T19:46:48.265Z] SUCCESS: ../../Documents/2025/2002089/VU_REMESA_3429_070_2002089.xml -> 2025/2002089/VU_REMESA_3429_070_2002089.xml
81
+ [2025-05-13T19:46:48.319Z] SUCCESS: ../../Documents/2025/2000601/04402200X9L27.pdf -> 2025/2000601/04402200X9L27.pdf
82
+ [2025-05-13T19:46:48.401Z] SUCCESS: ../../Documents/2025/2000601/04402200X9L27.xml -> 2025/2000601/04402200X9L27.xml
83
+ [2025-05-13T19:46:48.512Z] SUCCESS: ../../Documents/2025/2000601/04412000Z75A8.pdf -> 2025/2000601/04412000Z75A8.pdf
84
+ [2025-05-13T19:46:48.650Z] SUCCESS: ../../Documents/2025/2000601/04432000491D6.pdf -> 2025/2000601/04432000491D6.pdf
85
+ [2025-05-13T19:46:48.714Z] SUCCESS: ../../Documents/2025/2000601/044320004GF86.pdf -> 2025/2000601/044320004GF86.pdf
86
+ [2025-05-13T19:46:48.725Z] SUCCESS: ../../Documents/2025/2000601/3429-07-22000601-73096-COVE.xml -> 2025/2000601/3429-07-22000601-73096-COVE.xml
87
+ [2025-05-13T19:46:48.736Z] SUCCESS: ../../Documents/2025/2000601/3429-07-22000601-90972508-0001-DODA.pdf -> 2025/2000601/3429-07-22000601-90972508-0001-DODA.pdf
88
+ [2025-05-13T19:46:48.757Z] SUCCESS: ../../Documents/2025/2000601/3429-07-22000601-CoveFact.pdf -> 2025/2000601/3429-07-22000601-CoveFact.pdf
89
+ [2025-05-13T19:46:48.767Z] SUCCESS: ../../Documents/2025/2000601/3429-07-22000601-FV-m3429536.009 -> 2025/2000601/3429-07-22000601-FV-m3429536.009
90
+ [2025-05-13T19:46:48.778Z] SUCCESS: ../../Documents/2025/2000601/3429-07-22000601-FV-m3429536.err -> 2025/2000601/3429-07-22000601-FV-m3429536.err
91
+ [2025-05-13T19:46:48.787Z] SUCCESS: ../../Documents/2025/2000601/3429-07-22000601-MX-B376W_20221212_162523-RespDgs.xml -> 2025/2000601/3429-07-22000601-MX-B376W_20221212_162523-RespDgs.xml
92
+ [2025-05-13T19:46:48.800Z] SUCCESS: ../../Documents/2025/2000601/3429-07-22000601-PE-A3429518.009 -> 2025/2000601/3429-07-22000601-PE-A3429518.009
93
+ [2025-05-13T19:46:48.810Z] SUCCESS: ../../Documents/2025/2000601/3429-07-22000601-PE-E3429518.009 -> 2025/2000601/3429-07-22000601-PE-E3429518.009
94
+ [2025-05-13T19:46:48.826Z] SUCCESS: ../../Documents/2025/2000601/3429-07-22000601-Simplif.pdf -> 2025/2000601/3429-07-22000601-Simplif.pdf
95
+ [2025-05-13T19:46:48.838Z] SUCCESS: ../../Documents/2025/2000601/COVE-3429-070-2000601-COVE225GYTBB3.pdf -> 2025/2000601/COVE-3429-070-2000601-COVE225GYTBB3.pdf
96
+ [2025-05-13T19:46:48.848Z] SUCCESS: ../../Documents/2025/2000601/COVE-3429-070-2000601-COVE225GYTBB3.xml -> 2025/2000601/COVE-3429-070-2000601-COVE225GYTBB3.xml
97
+ [2025-05-13T19:46:48.861Z] SUCCESS: ../../Documents/2025/2000601/DETALLE_COVE225GYTBB3.pdf -> 2025/2000601/DETALLE_COVE225GYTBB3.pdf
98
+ [2025-05-13T19:46:48.872Z] SUCCESS: ../../Documents/2025/2000601/EDOC-3429-070-2000601-04402200X9L27.pdf -> 2025/2000601/EDOC-3429-070-2000601-04402200X9L27.pdf
99
+ [2025-05-13T19:46:48.884Z] SUCCESS: ../../Documents/2025/2000601/EDOC-3429-070-2000601-04412000Z75A8.pdf -> 2025/2000601/EDOC-3429-070-2000601-04412000Z75A8.pdf
100
+ [2025-05-13T19:46:48.895Z] SUCCESS: ../../Documents/2025/2000601/EDOC-3429-070-2000601-04432000491D6.pdf -> 2025/2000601/EDOC-3429-070-2000601-04432000491D6.pdf
101
+ [2025-05-13T19:46:48.906Z] SUCCESS: ../../Documents/2025/2000601/EDOC-3429-070-2000601-044320004GF86.pdf -> 2025/2000601/EDOC-3429-070-2000601-044320004GF86.pdf
102
+ [2025-05-13T19:46:48.935Z] SUCCESS: ../../Documents/2025/2000601/EDOC_04412000Z75A8.xml -> 2025/2000601/EDOC_04412000Z75A8.xml
103
+ [2025-05-13T19:46:48.976Z] SUCCESS: ../../Documents/2025/2000601/EDOC_04432000491D6.xml -> 2025/2000601/EDOC_04432000491D6.xml
104
+ [2025-05-13T19:46:49.010Z] SUCCESS: ../../Documents/2025/2000601/EDOC_044320004GF86.xml -> 2025/2000601/EDOC_044320004GF86.xml
105
+ [2025-05-13T19:46:49.025Z] SUCCESS: ../../Documents/2025/2000601/VU_3429_070_2000601.xml -> 2025/2000601/VU_3429_070_2000601.xml
106
+ [2025-05-13T19:46:49.036Z] SUCCESS: ../../Documents/2025/2000601/VU_REMESA_3429_070_2000601.xml -> 2025/2000601/VU_REMESA_3429_070_2000601.xml
107
+ [2025-05-13T19:46:49.038Z] 📦 Upload Summary for folder 2025: Success: 48, Errors: 0, Skipped: 0
108
+ [2025-05-13T23:23:45.703Z] 📦 Upload Summary for folder 2023: Success: 0, Errors: 0, Skipped: 48
109
+ [2025-05-13T23:23:45.708Z] SANITIZED: 2024/4.- 3 - Prueba ~ 3429-07-22002089-CoveFact copy.pdf → 2024/4.- 3 - Prueba - 3429-07-22002089-CoveFact copy.pdf
110
+ [2025-05-13T23:23:45.727Z] SANITIZED: 2024/2003207/2. 3 - Prueba ~ 3429-07-22002089-CoveFact.pdf → 2024/2003207/2. 3 - Prueba - 3429-07-22002089-CoveFact.pdf
111
+ [2025-05-13T23:23:45.733Z] SANITIZED: 2024/2003212/2.- 5 - Prueba ~ 3429-07-22002089-CoveFact.pdf → 2024/2003212/2.- 5 - Prueba - 3429-07-22002089-CoveFact.pdf
112
+ [2025-05-13T23:23:45.737Z] 📦 Upload Summary for folder 2024: Success: 0, Errors: 0, Skipped: 5
113
+ [2025-05-13T23:23:45.753Z] 📦 Upload Summary for folder 2025: Success: 0, Errors: 0, Skipped: 48
114
+ [2025-05-13T23:25:07.223Z] 📦 Upload Summary for folder 2023: Success: 0, Errors: 0, Skipped: 48
115
+ [2025-05-13T23:25:07.225Z] SANITIZED: 2024/4.- 3 - Prueba ~ 3429-07-22002089-CoveFact copy.pdf → 2024/4.- 3 - Prueba - 3429-07-22002089-CoveFact copy.pdf
116
+ [2025-05-13T23:25:07.243Z] SANITIZED: 2024/2003207/2. 3 - Prueba ~ 3429-07-22002089-CoveFact.pdf → 2024/2003207/2. 3 - Prueba - 3429-07-22002089-CoveFact.pdf
117
+ [2025-05-13T23:25:07.247Z] SANITIZED: 2024/2003212/2.- 5 - Prueba ~ 3429-07-22002089-CoveFact.pdf → 2024/2003212/2.- 5 - Prueba - 3429-07-22002089-CoveFact.pdf
118
+ [2025-05-13T23:25:07.251Z] 📦 Upload Summary for folder 2024: Success: 0, Errors: 0, Skipped: 5
119
+ [2025-05-13T23:25:07.293Z] SUCCESS: ../../Documents/2025/2003189888/VU_3429_070_2003180.xml -> 2025/2003189888/VU_3429_070_2003180.xml
120
+ [2025-05-13T23:25:07.295Z] 📦 Upload Summary for folder 2025: Success: 1, Errors: 0, Skipped: 48
121
+ [2025-05-13T23:37:57.110Z] 📦 Upload Summary for folder 2023: Success: 0, Errors: 0, Skipped: 48
122
+ [2025-05-13T23:37:57.113Z] SANITIZED: 2024/4.- 3 - Prueba ~ 3429-07-22002089-CoveFact copy.pdf → 2024/4.- 3 - Prueba - 3429-07-22002089-CoveFact copy.pdf
123
+ [2025-05-13T23:37:57.131Z] SANITIZED: 2024/2003207/2. 3 - Prueba ~ 3429-07-22002089-CoveFact.pdf → 2024/2003207/2. 3 - Prueba - 3429-07-22002089-CoveFact.pdf
124
+ [2025-05-13T23:37:57.136Z] SANITIZED: 2024/2003212/2.- 5 - Prueba ~ 3429-07-22002089-CoveFact.pdf → 2024/2003212/2.- 5 - Prueba - 3429-07-22002089-CoveFact.pdf
125
+ [2025-05-13T23:37:57.157Z] SUCCESS: ../../Documents/2024/2003212/VU_3429_070_2003.xml -> 2024/2003212/VU_3429_070_2003.xml
126
+ [2025-05-13T23:37:57.160Z] 📦 Upload Summary for folder 2024: Success: 1, Errors: 0, Skipped: 5
127
+ [2025-05-13T23:37:57.175Z] 📦 Upload Summary for folder 2025: Success: 0, Errors: 0, Skipped: 49
128
+ [2025-05-13T23:40:13.585Z] 📦 Upload Summary for folder 2023: Success: 0, Errors: 0, Skipped: 48
129
+ [2025-05-13T23:40:13.587Z] SANITIZED: 2024/4.- 3 - Prueba ~ 3429-07-22002089-CoveFact copy.pdf → 2024/4.- 3 - Prueba - 3429-07-22002089-CoveFact copy.pdf
130
+ [2025-05-13T23:40:13.602Z] SANITIZED: 2024/2003207/2. 3 - Prueba ~ 3429-07-22002089-CoveFact.pdf → 2024/2003207/2. 3 - Prueba - 3429-07-22002089-CoveFact.pdf
131
+ [2025-05-13T23:40:13.606Z] SANITIZED: 2024/2003212/2.- 5 - Prueba ~ 3429-07-22002089-CoveFact.pdf → 2024/2003212/2.- 5 - Prueba - 3429-07-22002089-CoveFact.pdf
132
+ [2025-05-13T23:40:13.609Z] 📦 Upload Summary for folder 2024: Success: 0, Errors: 0, Skipped: 6
133
+ [2025-05-13T23:40:13.629Z] 📦 Upload Summary for folder 2025: Success: 0, Errors: 0, Skipped: 49
134
+ [2025-05-13T23:40:57.243Z] 📦 Upload Summary for folder 2023: Success: 0, Errors: 0, Skipped: 48
135
+ [2025-05-13T23:40:57.245Z] SANITIZED: 2024/4.- 3 - Prueba ~ 3429-07-22002089-CoveFact copy.pdf → 2024/4.- 3 - Prueba - 3429-07-22002089-CoveFact copy.pdf
136
+ [2025-05-13T23:40:57.262Z] SANITIZED: 2024/2003207/2. 3 - Prueba ~ 3429-07-22002089-CoveFact.pdf → 2024/2003207/2. 3 - Prueba - 3429-07-22002089-CoveFact.pdf
137
+ [2025-05-13T23:40:57.286Z] SUCCESS: ../../Documents/2024/2003207/VU_3429_070_2003.xml -> 2024/2003207/VU_3429_070_2003.xml
138
+ [2025-05-13T23:40:57.289Z] SANITIZED: 2024/2003212/2.- 5 - Prueba ~ 3429-07-22002089-CoveFact.pdf → 2024/2003212/2.- 5 - Prueba - 3429-07-22002089-CoveFact.pdf
139
+ [2025-05-13T23:40:57.292Z] 📦 Upload Summary for folder 2024: Success: 1, Errors: 0, Skipped: 6
140
+ [2025-05-13T23:40:57.309Z] 📦 Upload Summary for folder 2025: Success: 0, Errors: 0, Skipped: 49
141
+ [2025-05-13T23:47:19.890Z] 📦 Upload Summary for folder 2023: Success: 0, Errors: 0, Skipped: 48
142
+ [2025-05-13T23:47:19.892Z] SANITIZED: 2024/4.- 3 - Prueba ~ 3429-07-22002089-CoveFact copy.pdf → 2024/4.- 3 - Prueba - 3429-07-22002089-CoveFact copy.pdf
143
+ [2025-05-13T23:47:19.912Z] SANITIZED: 2024/2003212/2.- 5 - Prueba ~ 3429-07-22002089-CoveFact.pdf → 2024/2003212/2.- 5 - Prueba - 3429-07-22002089-CoveFact.pdf
144
+ [2025-05-13T23:47:19.919Z] SANITIZED: 2024/2003207/2. 3 - Prueba ~ 3429-07-22002089-CoveFact.pdf → 2024/2003207/2. 3 - Prueba - 3429-07-22002089-CoveFact.pdf
145
+ [2025-05-13T23:47:19.923Z] 📦 Upload Summary for folder 2024: Success: 0, Errors: 0, Skipped: 7
146
+ [2025-05-13T23:47:19.939Z] 📦 Upload Summary for folder 2025: Success: 0, Errors: 0, Skipped: 49
147
+ [2025-05-14T00:00:31.007Z] 📦 Upload Summary for folder 2023: Success: 0, Errors: 0, Skipped: 48
148
+ [2025-05-14T00:00:31.010Z] SANITIZED: 2024/4.- 3 - Prueba ~ 3429-07-22002089-CoveFact copy.pdf → 2024/4.- 3 - Prueba - 3429-07-22002089-CoveFact copy.pdf
149
+ [2025-05-14T00:00:31.027Z] SANITIZED: 2024/2003207/2. 3 - Prueba ~ 3429-07-22002089-CoveFact.pdf → 2024/2003207/2. 3 - Prueba - 3429-07-22002089-CoveFact.pdf
150
+ [2025-05-14T00:00:31.032Z] SANITIZED: 2024/2003212/2.- 5 - Prueba ~ 3429-07-22002089-CoveFact.pdf → 2024/2003212/2.- 5 - Prueba - 3429-07-22002089-CoveFact.pdf
151
+ [2025-05-14T00:00:31.037Z] 📦 Upload Summary for folder 2024: Success: 0, Errors: 0, Skipped: 7
152
+ [2025-05-14T00:00:31.054Z] 📦 Upload Summary for folder 2025: Success: 0, Errors: 0, Skipped: 49
153
+ [2025-05-14T00:02:01.388Z] 📦 Upload Summary for folder 2023: Success: 0, Errors: 0, Skipped: 48
154
+ [2025-05-14T00:02:02.398Z] SANITIZED: 2024/4.- 3 - Prueba ~ 3429-07-22002089-CoveFact copy.pdf → 2024/4.- 3 - Prueba - 3429-07-22002089-CoveFact copy.pdf
155
+ [2025-05-14T00:02:03.430Z] SANITIZED: 2024/2003207/2. 3 - Prueba ~ 3429-07-22002089-CoveFact.pdf → 2024/2003207/2. 3 - Prueba - 3429-07-22002089-CoveFact.pdf
156
+ [2025-05-14T00:02:06.448Z] SANITIZED: 2024/2003212/2.- 5 - Prueba ~ 3429-07-22002089-CoveFact.pdf → 2024/2003212/2.- 5 - Prueba - 3429-07-22002089-CoveFact.pdf
157
+ [2025-05-14T00:02:08.465Z] 📦 Upload Summary for folder 2024: Success: 0, Errors: 0, Skipped: 7
158
+ [2025-05-14T00:02:57.621Z] 📦 Upload Summary for folder 2025: Success: 0, Errors: 0, Skipped: 49