retold-data-service 2.0.16 → 2.0.18

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 (28) hide show
  1. package/.claude/launch.json +2 -2
  2. package/.quackage.json +19 -0
  3. package/package.json +13 -6
  4. package/source/services/data-cloner/DataCloner-Command-Sync.js +83 -50
  5. package/source/services/data-cloner/DataCloner-Command-WebUI.js +27 -10
  6. package/source/services/data-cloner/Retold-Data-Service-DataCloner.js +281 -4
  7. package/source/services/data-cloner/pict-app/Pict-Application-DataCloner-Configuration.json +9 -0
  8. package/source/services/data-cloner/pict-app/Pict-Application-DataCloner.js +102 -0
  9. package/source/services/data-cloner/pict-app/Pict-DataCloner-Bundle.js +6 -0
  10. package/source/services/data-cloner/pict-app/providers/Pict-Provider-DataCloner.js +998 -0
  11. package/source/services/data-cloner/pict-app/views/PictView-DataCloner-Connection.js +407 -0
  12. package/source/services/data-cloner/pict-app/views/PictView-DataCloner-Deploy.js +126 -0
  13. package/source/services/data-cloner/pict-app/views/PictView-DataCloner-Export.js +483 -0
  14. package/source/services/data-cloner/pict-app/views/PictView-DataCloner-Layout.js +390 -0
  15. package/source/services/data-cloner/pict-app/views/PictView-DataCloner-Schema.js +241 -0
  16. package/source/services/data-cloner/pict-app/views/PictView-DataCloner-Session.js +268 -0
  17. package/source/services/data-cloner/pict-app/views/PictView-DataCloner-Sync.js +575 -0
  18. package/source/services/data-cloner/pict-app/views/PictView-DataCloner-ViewData.js +176 -0
  19. package/source/services/data-cloner/web/data-cloner.js +7952 -0
  20. package/source/services/data-cloner/web/data-cloner.js.map +1 -0
  21. package/source/services/data-cloner/web/data-cloner.min.js +2 -0
  22. package/source/services/data-cloner/web/data-cloner.min.js.map +1 -0
  23. package/source/services/data-cloner/web/index.html +17 -0
  24. package/test/DataCloner-Integration_tests.js +1205 -0
  25. package/test/DataCloner-Puppeteer_tests.js +502 -0
  26. package/test/integration-report.json +311 -0
  27. package/test/run-integration-tests.js +501 -0
  28. package/source/services/data-cloner/data-cloner-web.html +0 -2706
@@ -0,0 +1,311 @@
1
+ {
2
+ "timestamp": "2026-03-08T20:33:17.745Z",
3
+ "duration_ms": 54218,
4
+ "summary": {
5
+ "total": 35,
6
+ "passed": 32,
7
+ "failed": 0,
8
+ "skipped": 3
9
+ },
10
+ "storage_engines": {},
11
+ "suites": [
12
+ {
13
+ "name": "Data Cloner Integration",
14
+ "tests": [],
15
+ "duration_ms": 0
16
+ },
17
+ {
18
+ "name": "Connection Management",
19
+ "tests": [
20
+ {
21
+ "name": "Should show initial connection status",
22
+ "status": "pass",
23
+ "duration_ms": 1
24
+ },
25
+ {
26
+ "name": "Should connect SQLite via configure",
27
+ "status": "pass",
28
+ "duration_ms": 2
29
+ },
30
+ {
31
+ "name": "Should show connected after configure",
32
+ "status": "pass",
33
+ "duration_ms": 0
34
+ }
35
+ ],
36
+ "duration_ms": 3
37
+ },
38
+ {
39
+ "name": "Session Configuration",
40
+ "tests": [
41
+ {
42
+ "name": "Should configure session with retold-harness URL",
43
+ "status": "pass",
44
+ "duration_ms": 1
45
+ },
46
+ {
47
+ "name": "Should show session as configured",
48
+ "status": "pass",
49
+ "duration_ms": 9
50
+ },
51
+ {
52
+ "name": "Should reject session configure without ServerURL",
53
+ "status": "pass",
54
+ "duration_ms": 1
55
+ }
56
+ ],
57
+ "duration_ms": 11
58
+ },
59
+ {
60
+ "name": "Schema Fetch",
61
+ "tests": [
62
+ {
63
+ "name": "Should reconfigure session for fresh schema fetch",
64
+ "status": "pass",
65
+ "duration_ms": 1
66
+ },
67
+ {
68
+ "name": "Should fetch schema from retold-harness",
69
+ "status": "pass",
70
+ "duration_ms": 2
71
+ }
72
+ ],
73
+ "duration_ms": 3
74
+ },
75
+ {
76
+ "name": "Schema Deploy",
77
+ "tests": [
78
+ {
79
+ "name": "Should deploy all tables",
80
+ "status": "pass",
81
+ "duration_ms": 25
82
+ }
83
+ ],
84
+ "duration_ms": 25
85
+ },
86
+ {
87
+ "name": "Initial Sync (SQLite)",
88
+ "tests": [
89
+ {
90
+ "name": "Should start initial sync with record cap",
91
+ "status": "pass",
92
+ "duration_ms": 1007
93
+ },
94
+ {
95
+ "name": "All tables should have completed",
96
+ "status": "pass",
97
+ "duration_ms": 1
98
+ },
99
+ {
100
+ "name": "Should have a valid sync report",
101
+ "status": "pass",
102
+ "duration_ms": 3
103
+ },
104
+ {
105
+ "name": "Report tables should have timing data",
106
+ "status": "pass",
107
+ "duration_ms": 1
108
+ }
109
+ ],
110
+ "duration_ms": 1012
111
+ },
112
+ {
113
+ "name": "Data Integrity",
114
+ "tests": [
115
+ {
116
+ "name": "Should fetch harness reference data",
117
+ "status": "pass",
118
+ "duration_ms": 9
119
+ },
120
+ {
121
+ "name": "Local book count should match sync (capped)",
122
+ "status": "pass",
123
+ "duration_ms": 2
124
+ },
125
+ {
126
+ "name": "Local Book 1 should match harness data",
127
+ "status": "pass",
128
+ "duration_ms": 1
129
+ },
130
+ {
131
+ "name": "Local author count should match sync (capped)",
132
+ "status": "pass",
133
+ "duration_ms": 0
134
+ }
135
+ ],
136
+ "duration_ms": 12
137
+ },
138
+ {
139
+ "name": "Pre-Count and Live Status",
140
+ "tests": [
141
+ {
142
+ "name": "Should run a fresh pipeline and capture pre-count data",
143
+ "status": "pass",
144
+ "duration_ms": 7885
145
+ }
146
+ ],
147
+ "duration_ms": 7885
148
+ },
149
+ {
150
+ "name": "Ongoing Sync",
151
+ "tests": [
152
+ {
153
+ "name": "Should run ongoing sync after initial",
154
+ "status": "pass",
155
+ "duration_ms": 1019
156
+ },
157
+ {
158
+ "name": "Ongoing sync report should show success",
159
+ "status": "pass",
160
+ "duration_ms": 1
161
+ }
162
+ ],
163
+ "duration_ms": 1020
164
+ },
165
+ {
166
+ "name": "Stop Sync",
167
+ "tests": [
168
+ {
169
+ "name": "Should be able to stop a sync in progress",
170
+ "status": "pass",
171
+ "duration_ms": 4063
172
+ }
173
+ ],
174
+ "duration_ms": 4063
175
+ },
176
+ {
177
+ "name": "Reset",
178
+ "tests": [
179
+ {
180
+ "name": "Should reset the database",
181
+ "status": "pass",
182
+ "duration_ms": 2
183
+ },
184
+ {
185
+ "name": "Connection should still work after reset",
186
+ "status": "pass",
187
+ "duration_ms": 1
188
+ }
189
+ ],
190
+ "duration_ms": 3
191
+ },
192
+ {
193
+ "name": "Storage Engine: MySQL",
194
+ "tests": [
195
+ {
196
+ "name": "Should sync via MySQL",
197
+ "status": "skip",
198
+ "duration_ms": 0
199
+ }
200
+ ],
201
+ "duration_ms": 0
202
+ },
203
+ {
204
+ "name": "Storage Engine: PostgreSQL",
205
+ "tests": [
206
+ {
207
+ "name": "Should sync via PostgreSQL",
208
+ "status": "skip",
209
+ "duration_ms": 0
210
+ }
211
+ ],
212
+ "duration_ms": 0
213
+ },
214
+ {
215
+ "name": "Storage Engine: MSSQL",
216
+ "tests": [
217
+ {
218
+ "name": "Should sync via MSSQL",
219
+ "status": "skip",
220
+ "duration_ms": 0
221
+ }
222
+ ],
223
+ "duration_ms": 0
224
+ }
225
+ ],
226
+ "puppeteer": {
227
+ "available": true,
228
+ "suites": [
229
+ {
230
+ "name": "Data Cloner Web UI (Puppeteer)",
231
+ "tests": [],
232
+ "duration_ms": 0
233
+ },
234
+ {
235
+ "name": "Web UI Load",
236
+ "tests": [
237
+ {
238
+ "name": "Should load the data cloner page",
239
+ "status": "pass",
240
+ "duration_ms": 734
241
+ },
242
+ {
243
+ "name": "Should display 7 accordion sections",
244
+ "status": "pass",
245
+ "duration_ms": 15
246
+ },
247
+ {
248
+ "name": "Should show live status bar",
249
+ "status": "pass",
250
+ "duration_ms": 201
251
+ }
252
+ ],
253
+ "duration_ms": 950
254
+ },
255
+ {
256
+ "name": "Connection Section",
257
+ "tests": [
258
+ {
259
+ "name": "Should connect to SQLite via go button",
260
+ "status": "pass",
261
+ "duration_ms": 2218
262
+ }
263
+ ],
264
+ "duration_ms": 2218
265
+ },
266
+ {
267
+ "name": "Session, Schema, and Deploy Flow",
268
+ "tests": [
269
+ {
270
+ "name": "Should configure session via UI",
271
+ "status": "pass",
272
+ "duration_ms": 3019
273
+ },
274
+ {
275
+ "name": "Should fetch schema via UI",
276
+ "status": "pass",
277
+ "duration_ms": 2020
278
+ },
279
+ {
280
+ "name": "Should deploy schema via UI",
281
+ "status": "pass",
282
+ "duration_ms": 5074
283
+ }
284
+ ],
285
+ "duration_ms": 10113
286
+ },
287
+ {
288
+ "name": "Sync via Web UI",
289
+ "tests": [
290
+ {
291
+ "name": "Should start sync and complete successfully",
292
+ "status": "pass",
293
+ "duration_ms": 7184
294
+ }
295
+ ],
296
+ "duration_ms": 7184
297
+ },
298
+ {
299
+ "name": "Live Status Display",
300
+ "tests": [
301
+ {
302
+ "name": "Should show progress information during sync",
303
+ "status": "pass",
304
+ "duration_ms": 16243
305
+ }
306
+ ],
307
+ "duration_ms": 16243
308
+ }
309
+ ]
310
+ }
311
+ }