@portel/photon 1.6.1 → 1.8.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.
- package/README.md +111 -160
- package/dist/auto-ui/beam.d.ts.map +1 -1
- package/dist/auto-ui/beam.js +218 -106
- package/dist/auto-ui/beam.js.map +1 -1
- package/dist/auto-ui/design-system/tokens.d.ts +1 -1
- package/dist/auto-ui/design-system/tokens.d.ts.map +1 -1
- package/dist/auto-ui/design-system/tokens.js +2 -2
- package/dist/auto-ui/design-system/tokens.js.map +1 -1
- package/dist/auto-ui/frontend/index.html +1 -1
- package/dist/auto-ui/platform-compat.d.ts.map +1 -1
- package/dist/auto-ui/platform-compat.js +12 -2
- package/dist/auto-ui/platform-compat.js.map +1 -1
- package/dist/auto-ui/playground-html.js +5 -5
- package/dist/auto-ui/rendering/components.d.ts.map +1 -1
- package/dist/auto-ui/rendering/components.js +568 -0
- package/dist/auto-ui/rendering/components.js.map +1 -1
- package/dist/auto-ui/rendering/field-analyzer.d.ts +56 -0
- package/dist/auto-ui/rendering/field-analyzer.d.ts.map +1 -1
- package/dist/auto-ui/rendering/field-analyzer.js +177 -0
- package/dist/auto-ui/rendering/field-analyzer.js.map +1 -1
- package/dist/auto-ui/rendering/layout-selector.d.ts +14 -2
- package/dist/auto-ui/rendering/layout-selector.d.ts.map +1 -1
- package/dist/auto-ui/rendering/layout-selector.js +125 -1
- package/dist/auto-ui/rendering/layout-selector.js.map +1 -1
- package/dist/auto-ui/streamable-http-transport.d.ts +1 -1
- package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -1
- package/dist/auto-ui/streamable-http-transport.js +370 -26
- package/dist/auto-ui/streamable-http-transport.js.map +1 -1
- package/dist/auto-ui/types.d.ts +7 -1
- package/dist/auto-ui/types.d.ts.map +1 -1
- package/dist/auto-ui/types.js.map +1 -1
- package/dist/beam.bundle.js +21932 -3307
- package/dist/beam.bundle.js.map +4 -4
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +37 -0
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/package.d.ts.map +1 -1
- package/dist/cli/commands/package.js +16 -0
- package/dist/cli/commands/package.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +640 -17
- package/dist/cli.js.map +1 -1
- package/dist/context-store.d.ts +79 -0
- package/dist/context-store.d.ts.map +1 -0
- package/dist/context-store.js +210 -0
- package/dist/context-store.js.map +1 -0
- package/dist/daemon/client.d.ts +13 -4
- package/dist/daemon/client.d.ts.map +1 -1
- package/dist/daemon/client.js +138 -77
- package/dist/daemon/client.js.map +1 -1
- package/dist/daemon/manager.d.ts +0 -25
- package/dist/daemon/manager.d.ts.map +1 -1
- package/dist/daemon/manager.js +10 -38
- package/dist/daemon/manager.js.map +1 -1
- package/dist/daemon/protocol.d.ts +7 -2
- package/dist/daemon/protocol.d.ts.map +1 -1
- package/dist/daemon/protocol.js.map +1 -1
- package/dist/daemon/server.js +317 -83
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/session-manager.d.ts +24 -4
- package/dist/daemon/session-manager.d.ts.map +1 -1
- package/dist/daemon/session-manager.js +62 -12
- package/dist/daemon/session-manager.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -3
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +3 -20
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +87 -77
- package/dist/loader.js.map +1 -1
- package/dist/markdown-utils.d.ts.map +1 -1
- package/dist/markdown-utils.js +2 -1
- package/dist/markdown-utils.js.map +1 -1
- package/dist/marketplace-manager.d.ts.map +1 -1
- package/dist/marketplace-manager.js +20 -3
- package/dist/marketplace-manager.js.map +1 -1
- package/dist/photon-cli-runner.d.ts.map +1 -1
- package/dist/photon-cli-runner.js +258 -218
- package/dist/photon-cli-runner.js.map +1 -1
- package/dist/photon-doc-extractor.d.ts +2 -0
- package/dist/photon-doc-extractor.d.ts.map +1 -1
- package/dist/photon-doc-extractor.js +45 -7
- package/dist/photon-doc-extractor.js.map +1 -1
- package/dist/photons/maker.photon.d.ts.map +1 -1
- package/dist/photons/maker.photon.js +22 -4
- package/dist/photons/maker.photon.js.map +1 -1
- package/dist/photons/maker.photon.ts +47 -11
- package/dist/security-scanner.d.ts.map +1 -1
- package/dist/security-scanner.js +8 -2
- package/dist/security-scanner.js.map +1 -1
- package/dist/serv/index.d.ts +1 -1
- package/dist/serv/index.d.ts.map +1 -1
- package/dist/serv/index.js +6 -4
- package/dist/serv/index.js.map +1 -1
- package/dist/server.d.ts +32 -15
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +525 -483
- package/dist/server.js.map +1 -1
- package/dist/shared/security.d.ts +79 -0
- package/dist/shared/security.d.ts.map +1 -0
- package/dist/shared/security.js +251 -0
- package/dist/shared/security.js.map +1 -0
- package/dist/shell-completions.d.ts +21 -0
- package/dist/shell-completions.d.ts.map +1 -0
- package/dist/shell-completions.js +102 -0
- package/dist/shell-completions.js.map +1 -0
- package/dist/template-manager.d.ts.map +1 -1
- package/dist/template-manager.js +10 -3
- package/dist/template-manager.js.map +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +12 -7
|
@@ -41,6 +41,62 @@ export declare function formatFieldLabel(field: string): string;
|
|
|
41
41
|
* Get the best display value for a field
|
|
42
42
|
*/
|
|
43
43
|
export declare function getDisplayValue(value: any, typeHint?: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* Count numeric fields in an object
|
|
46
|
+
*/
|
|
47
|
+
export declare function countNumericFields(obj: object): number;
|
|
48
|
+
/**
|
|
49
|
+
* Check if object has date-like fields (by name or value)
|
|
50
|
+
*/
|
|
51
|
+
export declare function hasDateFields(obj: object): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Check if object has numeric fields
|
|
54
|
+
*/
|
|
55
|
+
export declare function hasNumericFields(obj: object): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Get the names of string fields in an object
|
|
58
|
+
*/
|
|
59
|
+
export declare function getStringFields(obj: object): string[];
|
|
60
|
+
/**
|
|
61
|
+
* Get the names of numeric fields in an object
|
|
62
|
+
*/
|
|
63
|
+
export declare function getNumericFields(obj: object): string[];
|
|
64
|
+
/**
|
|
65
|
+
* Get date field names from an object (by name pattern or ISO value)
|
|
66
|
+
*/
|
|
67
|
+
export declare function getDateFields(obj: object): string[];
|
|
68
|
+
/**
|
|
69
|
+
* Check if data looks like a single metric (KPI)
|
|
70
|
+
* Patterns: { value: 1234 }, { value: 1234, label: "Users" }, { value: 1234, delta: "+12%" }
|
|
71
|
+
*/
|
|
72
|
+
export declare function isMetricShaped(data: any): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Check if data looks like a gauge value
|
|
75
|
+
* Patterns: { value: 73, max: 100 }, { progress: 0.73 }
|
|
76
|
+
*/
|
|
77
|
+
export declare function isGaugeShaped(data: any): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Check if array data is chart-shaped
|
|
80
|
+
* Conservative: only returns true for clearly chart-like data
|
|
81
|
+
*/
|
|
82
|
+
export declare function isChartShaped(data: any[]): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Check if array data is timeline-shaped
|
|
85
|
+
* Requires: date field + title/event/description field, 3+ items
|
|
86
|
+
*/
|
|
87
|
+
export declare function isTimelineShaped(data: any[]): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Check if object data is dashboard-shaped
|
|
90
|
+
* Object where values are a mix of metrics, arrays, and objects (3+ keys)
|
|
91
|
+
*/
|
|
92
|
+
export declare function isDashboardShaped(data: any): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Check if data looks like a shopping cart
|
|
95
|
+
* Patterns:
|
|
96
|
+
* - Array where all items have price + (quantity | qty)
|
|
97
|
+
* - Object with items array where items have price + (quantity | qty)
|
|
98
|
+
*/
|
|
99
|
+
export declare function isCartShaped(data: any): boolean;
|
|
44
100
|
/**
|
|
45
101
|
* Generate JavaScript code for field analyzer (to embed in HTML)
|
|
46
102
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-analyzer.d.ts","sourceRoot":"","sources":["../../../src/auto-ui/rendering/field-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CACrF;AAyBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,YAAY,CAgCnE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,aAAa,EAAE,CA4CzE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAajD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWtD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAqBrE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAuGhD"}
|
|
1
|
+
{"version":3,"file":"field-analyzer.d.ts","sourceRoot":"","sources":["../../../src/auto-ui/rendering/field-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CACrF;AAyBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,YAAY,CAgCnE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,aAAa,EAAE,CA4CzE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAajD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWtD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAqBrE;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMlD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAIrD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAItD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAQnD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAYjD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAQhD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAmBlD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAerD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAqBpD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CA0B/C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAuGhD"}
|
|
@@ -160,6 +160,183 @@ export function getDisplayValue(value, typeHint) {
|
|
|
160
160
|
}
|
|
161
161
|
return String(value);
|
|
162
162
|
}
|
|
163
|
+
// ════════════════════════════════════════════════════════════════════════════════
|
|
164
|
+
// Chart Data Shape Detection
|
|
165
|
+
// ════════════════════════════════════════════════════════════════════════════════
|
|
166
|
+
/**
|
|
167
|
+
* Count numeric fields in an object
|
|
168
|
+
*/
|
|
169
|
+
export function countNumericFields(obj) {
|
|
170
|
+
return Object.values(obj).filter((v) => typeof v === 'number').length;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Check if object has date-like fields (by name or value)
|
|
174
|
+
*/
|
|
175
|
+
export function hasDateFields(obj) {
|
|
176
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
177
|
+
if (FIELD_PATTERNS.date.test(key))
|
|
178
|
+
return true;
|
|
179
|
+
if (typeof value === 'string' && VALUE_PATTERNS.isoDate.test(value))
|
|
180
|
+
return true;
|
|
181
|
+
}
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Check if object has numeric fields
|
|
186
|
+
*/
|
|
187
|
+
export function hasNumericFields(obj) {
|
|
188
|
+
return Object.values(obj).some((v) => typeof v === 'number');
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Get the names of string fields in an object
|
|
192
|
+
*/
|
|
193
|
+
export function getStringFields(obj) {
|
|
194
|
+
return Object.entries(obj)
|
|
195
|
+
.filter(([, v]) => typeof v === 'string')
|
|
196
|
+
.map(([k]) => k);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Get the names of numeric fields in an object
|
|
200
|
+
*/
|
|
201
|
+
export function getNumericFields(obj) {
|
|
202
|
+
return Object.entries(obj)
|
|
203
|
+
.filter(([, v]) => typeof v === 'number')
|
|
204
|
+
.map(([k]) => k);
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Get date field names from an object (by name pattern or ISO value)
|
|
208
|
+
*/
|
|
209
|
+
export function getDateFields(obj) {
|
|
210
|
+
return Object.entries(obj)
|
|
211
|
+
.filter(([key, value]) => FIELD_PATTERNS.date.test(key) ||
|
|
212
|
+
(typeof value === 'string' && VALUE_PATTERNS.isoDate.test(value)))
|
|
213
|
+
.map(([k]) => k);
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Check if data looks like a single metric (KPI)
|
|
217
|
+
* Patterns: { value: 1234 }, { value: 1234, label: "Users" }, { value: 1234, delta: "+12%" }
|
|
218
|
+
*/
|
|
219
|
+
export function isMetricShaped(data) {
|
|
220
|
+
if (!data || typeof data !== 'object' || Array.isArray(data))
|
|
221
|
+
return false;
|
|
222
|
+
const keys = Object.keys(data);
|
|
223
|
+
if (keys.length < 1 || keys.length > 5)
|
|
224
|
+
return false;
|
|
225
|
+
// Must have a primary numeric field
|
|
226
|
+
const numericKeys = keys.filter((k) => typeof data[k] === 'number');
|
|
227
|
+
if (numericKeys.length !== 1)
|
|
228
|
+
return false;
|
|
229
|
+
// Remaining fields should be label-like strings (not complex objects)
|
|
230
|
+
const nonNumericKeys = keys.filter((k) => typeof data[k] !== 'number');
|
|
231
|
+
return nonNumericKeys.every((k) => typeof data[k] === 'string' || typeof data[k] === 'boolean');
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Check if data looks like a gauge value
|
|
235
|
+
* Patterns: { value: 73, max: 100 }, { progress: 0.73 }
|
|
236
|
+
*/
|
|
237
|
+
export function isGaugeShaped(data) {
|
|
238
|
+
if (!data || typeof data !== 'object' || Array.isArray(data))
|
|
239
|
+
return false;
|
|
240
|
+
if ('progress' in data && typeof data.progress === 'number')
|
|
241
|
+
return true;
|
|
242
|
+
if ('value' in data && typeof data.value === 'number' && ('max' in data || 'min' in data)) {
|
|
243
|
+
return true;
|
|
244
|
+
}
|
|
245
|
+
return false;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Check if array data is chart-shaped
|
|
249
|
+
* Conservative: only returns true for clearly chart-like data
|
|
250
|
+
*/
|
|
251
|
+
export function isChartShaped(data) {
|
|
252
|
+
if (!Array.isArray(data) || data.length < 2)
|
|
253
|
+
return false;
|
|
254
|
+
const sample = data[0];
|
|
255
|
+
if (!sample || typeof sample !== 'object')
|
|
256
|
+
return false;
|
|
257
|
+
const numFields = countNumericFields(sample);
|
|
258
|
+
const strFields = getStringFields(sample).length;
|
|
259
|
+
const totalFields = Object.keys(sample).length;
|
|
260
|
+
// Pattern 1: exactly 1 string label + 1 numeric value (pie/bar candidate)
|
|
261
|
+
if (totalFields === 2 && strFields === 1 && numFields === 1)
|
|
262
|
+
return true;
|
|
263
|
+
// Pattern 2: date field + numeric field(s) → time series
|
|
264
|
+
if (hasDateFields(sample) && numFields >= 1)
|
|
265
|
+
return true;
|
|
266
|
+
// Pattern 3: 1 string label + 2+ numeric values → grouped bar
|
|
267
|
+
if (strFields === 1 && numFields >= 2 && totalFields <= 6)
|
|
268
|
+
return true;
|
|
269
|
+
return false;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Check if array data is timeline-shaped
|
|
273
|
+
* Requires: date field + title/event/description field, 3+ items
|
|
274
|
+
*/
|
|
275
|
+
export function isTimelineShaped(data) {
|
|
276
|
+
if (!Array.isArray(data) || data.length < 3)
|
|
277
|
+
return false;
|
|
278
|
+
const sample = data[0];
|
|
279
|
+
if (!sample || typeof sample !== 'object')
|
|
280
|
+
return false;
|
|
281
|
+
const hasDate = hasDateFields(sample);
|
|
282
|
+
const keys = Object.keys(sample).map((k) => k.toLowerCase());
|
|
283
|
+
const hasTitleLike = keys.some((k) => /^(title|event|name|label|subject|heading|action|activity)$/i.test(k));
|
|
284
|
+
const hasDescLike = keys.some((k) => /^(description|details|body|content|message|summary|text|note)$/i.test(k));
|
|
285
|
+
return hasDate && (hasTitleLike || hasDescLike);
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Check if object data is dashboard-shaped
|
|
289
|
+
* Object where values are a mix of metrics, arrays, and objects (3+ keys)
|
|
290
|
+
*/
|
|
291
|
+
export function isDashboardShaped(data) {
|
|
292
|
+
if (!data || typeof data !== 'object' || Array.isArray(data))
|
|
293
|
+
return false;
|
|
294
|
+
const keys = Object.keys(data);
|
|
295
|
+
if (keys.length < 3)
|
|
296
|
+
return false;
|
|
297
|
+
let hasArray = false;
|
|
298
|
+
let hasMetric = false;
|
|
299
|
+
let hasObject = false;
|
|
300
|
+
for (const key of keys) {
|
|
301
|
+
const val = data[key];
|
|
302
|
+
if (Array.isArray(val))
|
|
303
|
+
hasArray = true;
|
|
304
|
+
else if (typeof val === 'object' && val !== null) {
|
|
305
|
+
if (isMetricShaped(val) || isGaugeShaped(val))
|
|
306
|
+
hasMetric = true;
|
|
307
|
+
else
|
|
308
|
+
hasObject = true;
|
|
309
|
+
}
|
|
310
|
+
else if (typeof val === 'number')
|
|
311
|
+
hasMetric = true;
|
|
312
|
+
}
|
|
313
|
+
// Dashboard needs at least 2 different types of content
|
|
314
|
+
const types = [hasArray, hasMetric, hasObject].filter(Boolean).length;
|
|
315
|
+
return types >= 2 || (hasArray && keys.length >= 3);
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Check if data looks like a shopping cart
|
|
319
|
+
* Patterns:
|
|
320
|
+
* - Array where all items have price + (quantity | qty)
|
|
321
|
+
* - Object with items array where items have price + (quantity | qty)
|
|
322
|
+
*/
|
|
323
|
+
export function isCartShaped(data) {
|
|
324
|
+
if (Array.isArray(data)) {
|
|
325
|
+
return (data.length > 0 &&
|
|
326
|
+
data.every((item) => item &&
|
|
327
|
+
typeof item === 'object' &&
|
|
328
|
+
'price' in item &&
|
|
329
|
+
('quantity' in item || 'qty' in item)));
|
|
330
|
+
}
|
|
331
|
+
if (data && typeof data === 'object' && data.items && Array.isArray(data.items)) {
|
|
332
|
+
return (data.items.length > 0 &&
|
|
333
|
+
data.items.every((item) => item &&
|
|
334
|
+
typeof item === 'object' &&
|
|
335
|
+
'price' in item &&
|
|
336
|
+
('quantity' in item || 'qty' in item)));
|
|
337
|
+
}
|
|
338
|
+
return false;
|
|
339
|
+
}
|
|
163
340
|
/**
|
|
164
341
|
* Generate JavaScript code for field analyzer (to embed in HTML)
|
|
165
342
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-analyzer.js","sourceRoot":"","sources":["../../../src/auto-ui/rendering/field-analyzer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"field-analyzer.js","sourceRoot":"","sources":["../../../src/auto-ui/rendering/field-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* Determines the optimal component/layout to render data based on:
|
|
5
5
|
* 1. Explicit @format annotation (highest priority)
|
|
6
6
|
* 2. Data shape (array vs object vs primitive)
|
|
7
|
-
* 3. Data content (has images -> grid, etc.)
|
|
7
|
+
* 3. Data content (has images -> grid, charts -> chart, etc.)
|
|
8
8
|
*/
|
|
9
|
-
export type LayoutType = 'text' | 'card' | 'list' | 'grid' | 'tree' | 'kv' | 'chips' | 'table' | 'markdown' | 'mermaid' | 'code' | 'json' | 'html';
|
|
9
|
+
export type LayoutType = 'text' | 'card' | 'list' | 'grid' | 'tree' | 'kv' | 'chips' | 'table' | 'markdown' | 'mermaid' | 'code' | 'json' | 'html' | 'chart' | 'metric' | 'gauge' | 'timeline' | 'dashboard' | 'cart' | 'panels' | 'tabs' | 'accordion' | 'stack' | 'columns';
|
|
10
10
|
export interface LayoutHints {
|
|
11
11
|
title?: string;
|
|
12
12
|
subtitle?: string;
|
|
@@ -18,6 +18,18 @@ export interface LayoutHints {
|
|
|
18
18
|
accessory?: string;
|
|
19
19
|
columns?: number;
|
|
20
20
|
fields?: string[];
|
|
21
|
+
label?: string;
|
|
22
|
+
value?: string;
|
|
23
|
+
x?: string;
|
|
24
|
+
y?: string;
|
|
25
|
+
series?: string;
|
|
26
|
+
chartType?: string;
|
|
27
|
+
min?: number;
|
|
28
|
+
max?: number;
|
|
29
|
+
date?: string;
|
|
30
|
+
description?: string;
|
|
31
|
+
group?: string;
|
|
32
|
+
inner?: string;
|
|
21
33
|
}
|
|
22
34
|
/**
|
|
23
35
|
* Select the best layout type for given data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-selector.d.ts","sourceRoot":"","sources":["../../../src/auto-ui/rendering/layout-selector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"layout-selector.d.ts","sourceRoot":"","sources":["../../../src/auto-ui/rendering/layout-selector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,IAAI,GACJ,OAAO,GACP,OAAO,GACP,UAAU,GACV,SAAS,GACT,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,QAAQ,GACR,OAAO,GACP,UAAU,GACV,WAAW,GACX,MAAM,GACN,QAAQ,GACR,MAAM,GACN,WAAW,GACX,OAAO,GACP,SAAS,CAAC;AAEd,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA+BD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,UAAU,CA4HxF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA8BnD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAahE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAavD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CA4FjE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAyKjD"}
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
* Determines the optimal component/layout to render data based on:
|
|
5
5
|
* 1. Explicit @format annotation (highest priority)
|
|
6
6
|
* 2. Data shape (array vs object vs primitive)
|
|
7
|
-
* 3. Data content (has images -> grid, etc.)
|
|
7
|
+
* 3. Data content (has images -> grid, charts -> chart, etc.)
|
|
8
8
|
*/
|
|
9
|
+
import { isChartShaped, isMetricShaped, isGaugeShaped, isTimelineShaped, isDashboardShaped, isCartShaped, } from './field-analyzer.js';
|
|
9
10
|
// Map legacy @format values to new layout types
|
|
10
11
|
const FORMAT_TO_LAYOUT = {
|
|
11
12
|
table: 'list', // table -> list (smart rendering)
|
|
@@ -22,6 +23,17 @@ const FORMAT_TO_LAYOUT = {
|
|
|
22
23
|
primitive: 'text',
|
|
23
24
|
chips: 'chips',
|
|
24
25
|
html: 'html',
|
|
26
|
+
chart: 'chart',
|
|
27
|
+
metric: 'metric',
|
|
28
|
+
gauge: 'gauge',
|
|
29
|
+
timeline: 'timeline',
|
|
30
|
+
dashboard: 'dashboard',
|
|
31
|
+
cart: 'cart',
|
|
32
|
+
panels: 'panels',
|
|
33
|
+
tabs: 'tabs',
|
|
34
|
+
accordion: 'accordion',
|
|
35
|
+
stack: 'stack',
|
|
36
|
+
columns: 'columns',
|
|
25
37
|
};
|
|
26
38
|
/**
|
|
27
39
|
* Select the best layout type for given data
|
|
@@ -32,6 +44,9 @@ export function selectLayout(data, format, hints) {
|
|
|
32
44
|
// Handle code:language format
|
|
33
45
|
if (format.startsWith('code:'))
|
|
34
46
|
return 'code';
|
|
47
|
+
// Handle chart:subtype format (e.g., chart:bar, chart:pie)
|
|
48
|
+
if (format.startsWith('chart:'))
|
|
49
|
+
return 'chart';
|
|
35
50
|
const layout = FORMAT_TO_LAYOUT[format] || 'json';
|
|
36
51
|
// Smart fallback: if list/table format but data is not an array, use card
|
|
37
52
|
if ((layout === 'list' || format === 'table') &&
|
|
@@ -71,10 +86,22 @@ export function selectLayout(data, format, hints) {
|
|
|
71
86
|
}
|
|
72
87
|
// Array of objects
|
|
73
88
|
if (typeof first === 'object' && first !== null) {
|
|
89
|
+
// Check if cart-shaped (before image/timeline — more specific)
|
|
90
|
+
if (isCartShaped(data)) {
|
|
91
|
+
return 'cart';
|
|
92
|
+
}
|
|
74
93
|
// Check if items have image fields -> grid
|
|
75
94
|
if (hasImageFields(first)) {
|
|
76
95
|
return 'grid';
|
|
77
96
|
}
|
|
97
|
+
// Check if timeline-shaped (before chart — more specific)
|
|
98
|
+
if (isTimelineShaped(data)) {
|
|
99
|
+
return 'timeline';
|
|
100
|
+
}
|
|
101
|
+
// Check if chart-shaped (date+numbers or label+value pairs)
|
|
102
|
+
if (isChartShaped(data)) {
|
|
103
|
+
return 'chart';
|
|
104
|
+
}
|
|
78
105
|
// Default: list
|
|
79
106
|
return 'list';
|
|
80
107
|
}
|
|
@@ -87,6 +114,22 @@ export function selectLayout(data, format, hints) {
|
|
|
87
114
|
if ('diagram' in data && typeof data.diagram === 'string') {
|
|
88
115
|
return 'mermaid';
|
|
89
116
|
}
|
|
117
|
+
// Check if cart-shaped (items array with price+quantity)
|
|
118
|
+
if (isCartShaped(data)) {
|
|
119
|
+
return 'cart';
|
|
120
|
+
}
|
|
121
|
+
// Check if gauge-shaped (value + max/min or progress)
|
|
122
|
+
if (isGaugeShaped(data)) {
|
|
123
|
+
return 'gauge';
|
|
124
|
+
}
|
|
125
|
+
// Check if metric-shaped (single numeric + label)
|
|
126
|
+
if (isMetricShaped(data)) {
|
|
127
|
+
return 'metric';
|
|
128
|
+
}
|
|
129
|
+
// Check if dashboard-shaped (mix of arrays, objects, metrics)
|
|
130
|
+
if (isDashboardShaped(data)) {
|
|
131
|
+
return 'dashboard';
|
|
132
|
+
}
|
|
90
133
|
// Check if deeply nested -> tree
|
|
91
134
|
if (isNested(data)) {
|
|
92
135
|
return 'tree';
|
|
@@ -211,6 +254,47 @@ export function parseLayoutHints(hintsString) {
|
|
|
211
254
|
case 'fields':
|
|
212
255
|
hints.fields = cleanValue.split(/\s+/);
|
|
213
256
|
break;
|
|
257
|
+
// Chart hints
|
|
258
|
+
case 'label':
|
|
259
|
+
hints.label = cleanValue;
|
|
260
|
+
break;
|
|
261
|
+
case 'value':
|
|
262
|
+
hints.value = cleanValue;
|
|
263
|
+
break;
|
|
264
|
+
case 'x':
|
|
265
|
+
hints.x = cleanValue;
|
|
266
|
+
break;
|
|
267
|
+
case 'y':
|
|
268
|
+
hints.y = cleanValue;
|
|
269
|
+
break;
|
|
270
|
+
case 'series':
|
|
271
|
+
hints.series = cleanValue;
|
|
272
|
+
break;
|
|
273
|
+
case 'chartType':
|
|
274
|
+
hints.chartType = cleanValue;
|
|
275
|
+
break;
|
|
276
|
+
// Gauge hints
|
|
277
|
+
case 'min':
|
|
278
|
+
hints.min = parseFloat(cleanValue);
|
|
279
|
+
break;
|
|
280
|
+
case 'max':
|
|
281
|
+
hints.max = parseFloat(cleanValue);
|
|
282
|
+
break;
|
|
283
|
+
// Timeline hints
|
|
284
|
+
case 'date':
|
|
285
|
+
hints.date = cleanValue;
|
|
286
|
+
break;
|
|
287
|
+
case 'description':
|
|
288
|
+
hints.description = cleanValue;
|
|
289
|
+
break;
|
|
290
|
+
// Dashboard/grouping hints
|
|
291
|
+
case 'group':
|
|
292
|
+
hints.group = cleanValue;
|
|
293
|
+
break;
|
|
294
|
+
// Composable container hints
|
|
295
|
+
case 'inner':
|
|
296
|
+
hints.inner = cleanValue;
|
|
297
|
+
break;
|
|
214
298
|
}
|
|
215
299
|
}
|
|
216
300
|
}
|
|
@@ -237,11 +321,23 @@ const FORMAT_TO_LAYOUT = {
|
|
|
237
321
|
'primitive': 'text',
|
|
238
322
|
'chips': 'chips',
|
|
239
323
|
'html': 'html',
|
|
324
|
+
'chart': 'chart',
|
|
325
|
+
'metric': 'metric',
|
|
326
|
+
'gauge': 'gauge',
|
|
327
|
+
'timeline': 'timeline',
|
|
328
|
+
'dashboard': 'dashboard',
|
|
329
|
+
'cart': 'cart',
|
|
330
|
+
'panels': 'panels',
|
|
331
|
+
'tabs': 'tabs',
|
|
332
|
+
'accordion': 'accordion',
|
|
333
|
+
'stack': 'stack',
|
|
334
|
+
'columns': 'columns',
|
|
240
335
|
};
|
|
241
336
|
|
|
242
337
|
function selectLayout(data, format, hints) {
|
|
243
338
|
if (format) {
|
|
244
339
|
if (format.startsWith('code:')) return 'code';
|
|
340
|
+
if (format.startsWith('chart:')) return 'chart';
|
|
245
341
|
var layout = FORMAT_TO_LAYOUT[format] || 'json';
|
|
246
342
|
// Smart fallback: if list/table format but data is not an array, use card
|
|
247
343
|
if ((layout === 'list' || format === 'table') && !Array.isArray(data) && typeof data === 'object' && data !== null) {
|
|
@@ -267,6 +363,7 @@ function selectLayout(data, format, hints) {
|
|
|
267
363
|
const first = data[0];
|
|
268
364
|
if (typeof first === 'string') return 'chips';
|
|
269
365
|
if (typeof first === 'object' && first !== null) {
|
|
366
|
+
if (isCartShaped(data)) return 'cart';
|
|
270
367
|
if (hasImageFields(first)) return 'grid';
|
|
271
368
|
return 'list';
|
|
272
369
|
}
|
|
@@ -275,6 +372,7 @@ function selectLayout(data, format, hints) {
|
|
|
275
372
|
|
|
276
373
|
if (typeof data === 'object') {
|
|
277
374
|
if ('diagram' in data && typeof data.diagram === 'string') return 'mermaid';
|
|
375
|
+
if (isCartShaped(data)) return 'cart';
|
|
278
376
|
if (isNested(data)) return 'tree';
|
|
279
377
|
const fieldCount = Object.keys(data).length;
|
|
280
378
|
if (fieldCount > 10) return 'kv';
|
|
@@ -342,11 +440,37 @@ function parseLayoutHints(hintsString) {
|
|
|
342
440
|
case 'accessory': hints.accessory = cleanValue; break;
|
|
343
441
|
case 'columns': hints.columns = parseInt(cleanValue, 10); break;
|
|
344
442
|
case 'fields': hints.fields = cleanValue.split(/\\s+/); break;
|
|
443
|
+
case 'label': hints.label = cleanValue; break;
|
|
444
|
+
case 'value': hints.value = cleanValue; break;
|
|
445
|
+
case 'x': hints.x = cleanValue; break;
|
|
446
|
+
case 'y': hints.y = cleanValue; break;
|
|
447
|
+
case 'series': hints.series = cleanValue; break;
|
|
448
|
+
case 'chartType': hints.chartType = cleanValue; break;
|
|
449
|
+
case 'min': hints.min = parseFloat(cleanValue); break;
|
|
450
|
+
case 'max': hints.max = parseFloat(cleanValue); break;
|
|
451
|
+
case 'date': hints.date = cleanValue; break;
|
|
452
|
+
case 'description': hints.description = cleanValue; break;
|
|
453
|
+
case 'group': hints.group = cleanValue; break;
|
|
454
|
+
case 'inner': hints.inner = cleanValue; break;
|
|
345
455
|
}
|
|
346
456
|
}
|
|
347
457
|
}
|
|
348
458
|
return hints;
|
|
349
459
|
}
|
|
460
|
+
|
|
461
|
+
function isCartShaped(data) {
|
|
462
|
+
if (Array.isArray(data)) {
|
|
463
|
+
return data.length > 0 && data.every(function(item) {
|
|
464
|
+
return item && typeof item === 'object' && 'price' in item && ('quantity' in item || 'qty' in item);
|
|
465
|
+
});
|
|
466
|
+
}
|
|
467
|
+
if (data && typeof data === 'object' && data.items && Array.isArray(data.items)) {
|
|
468
|
+
return data.items.length > 0 && data.items.every(function(item) {
|
|
469
|
+
return item && typeof item === 'object' && 'price' in item && ('quantity' in item || 'qty' in item);
|
|
470
|
+
});
|
|
471
|
+
}
|
|
472
|
+
return false;
|
|
473
|
+
}
|
|
350
474
|
`;
|
|
351
475
|
}
|
|
352
476
|
//# sourceMappingURL=layout-selector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-selector.js","sourceRoot":"","sources":["../../../src/auto-ui/rendering/layout-selector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"layout-selector.js","sourceRoot":"","sources":["../../../src/auto-ui/rendering/layout-selector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,aAAa,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,GACb,MAAM,qBAAqB,CAAC;AA0D7B,gDAAgD;AAChD,MAAM,gBAAgB,GAA+B;IACnD,KAAK,EAAE,MAAM,EAAE,kCAAkC;IACjD,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,MAAM;IACjB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAS,EAAE,MAAe,EAAE,KAAmB;IAC1E,wDAAwD;IACxD,IAAI,MAAM,EAAE,CAAC;QACX,8BAA8B;QAC9B,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,MAAM,CAAC;QAE9C,2DAA2D;QAC3D,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,OAAO,CAAC;QAEhD,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;QAElD,0EAA0E;QAC1E,IACE,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC;YACzC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACpB,OAAO,IAAI,KAAK,QAAQ;YACxB,IAAI,KAAK,IAAI,EACb,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,oBAAoB;IACpB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gBAAgB;IAChB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,kCAAkC;QAClC,IAAI,iBAAiB,CAAC,IAAI,CAAC;YAAE,OAAO,UAAU,CAAC;QAC/C,iCAAiC;QACjC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7E,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,SAAS,EAAE,CAAC;QAC1D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,YAAY;IACZ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC,CAAC,cAAc;QAEpD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEtB,4BAA4B;QAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,mBAAmB;QACnB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,+DAA+D;YAC/D,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,2CAA2C;YAC3C,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,0DAA0D;YAC1D,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,4DAA4D;YAC5D,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,gBAAgB;YAChB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,4BAA4B;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,aAAa;IACb,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,2BAA2B;QAC3B,IAAI,SAAS,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC1D,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,yDAAyD;QACzD,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,sDAAsD;QACtD,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,kDAAkD;QAClD,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,8DAA8D;QAC9D,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,iCAAiC;QACjC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,8CAA8C;QAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAC5C,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,CAAC,2BAA2B;QAC1C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,WAAW;IACX,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,MAAM,eAAe,GAAG,iDAAiD,CAAC;IAC1E,MAAM,eAAe,GAAG,aAAa,CAAC;IACtC,MAAM,eAAe,GAAG,wCAAwC,CAAC;IACjE,MAAM,cAAc,GAAG,gBAAgB,CAAC;IAExC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,yBAAyB;QACzB,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QAExC,wCAAwC;QACxC,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE3E,sEAAsE;QACtE,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACrF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,6EAA6E;QAC7E,2DAA2D;QAC3D,IACE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;YACzB,KAAK,CAAC,MAAM,GAAG,EAAE;YACjB,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EACnD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,QAAgB,CAAC;IACrD,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,kBAAkB;IAE9C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC7E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzE,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,qCAAqC;IACrC,MAAM,QAAQ,GAAG;QACf,YAAY,EAAE,UAAU;QACxB,eAAe,EAAE,OAAO;QACxB,WAAW,EAAE,SAAS;QACtB,qBAAqB,EAAE,QAAQ;QAC/B,eAAe,EAAE,cAAc;QAC/B,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,iBAAiB;KAClC,CAAC;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,MAAM,KAAK,GAAgB,EAAE,CAAC;IAE9B,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAE/B,qCAAqC;IACrC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAE1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,0CAA0C;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACxD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;YACvC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAEhC,QAAQ,GAAG,EAAE,CAAC;gBACZ,KAAK,OAAO;oBACV,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;oBACzB,MAAM;gBACR,KAAK,UAAU;oBACb,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;oBAC5B,MAAM;gBACR,KAAK,MAAM;oBACT,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;oBACxB,MAAM;gBACR,KAAK,OAAO;oBACV,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;oBACzB,MAAM;gBACR,KAAK,QAAQ;oBACX,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;oBAC1B,MAAM;gBACR,KAAK,OAAO;oBACV,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;oBACzB,MAAM;gBACR,KAAK,OAAO;oBACV,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;oBACzB,MAAM;gBACR,KAAK,WAAW;oBACd,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;oBAC7B,MAAM;gBACR,KAAK,SAAS;oBACZ,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;oBACzC,MAAM;gBACR,KAAK,QAAQ;oBACX,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACvC,MAAM;gBACR,cAAc;gBACd,KAAK,OAAO;oBACV,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;oBACzB,MAAM;gBACR,KAAK,OAAO;oBACV,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;oBACzB,MAAM;gBACR,KAAK,GAAG;oBACN,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC;oBACrB,MAAM;gBACR,KAAK,GAAG;oBACN,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC;oBACrB,MAAM;gBACR,KAAK,QAAQ;oBACX,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;oBAC1B,MAAM;gBACR,KAAK,WAAW;oBACd,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;oBAC7B,MAAM;gBACR,cAAc;gBACd,KAAK,KAAK;oBACR,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;oBACnC,MAAM;gBACR,KAAK,KAAK;oBACR,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;oBACnC,MAAM;gBACR,iBAAiB;gBACjB,KAAK,MAAM;oBACT,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;oBACxB,MAAM;gBACR,KAAK,aAAa;oBAChB,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC;oBAC/B,MAAM;gBACR,2BAA2B;gBAC3B,KAAK,OAAO;oBACV,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;oBACzB,MAAM;gBACR,6BAA6B;gBAC7B,KAAK,OAAO;oBACV,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;oBACzB,MAAM;YACV,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuKR,CAAC;AACF,CAAC"}
|
|
@@ -52,7 +52,7 @@ export interface StreamableHTTPOptions {
|
|
|
52
52
|
};
|
|
53
53
|
broadcast?: (message: object) => void;
|
|
54
54
|
subscriptionManager?: {
|
|
55
|
-
onClientViewingBoard: (sessionId: string, photon: string, board: string,
|
|
55
|
+
onClientViewingBoard: (sessionId: string, photon: string, board: string, lastTimestamp?: number) => void;
|
|
56
56
|
onClientDisconnect: (sessionId: string) => void;
|
|
57
57
|
};
|
|
58
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamable-http-transport.d.ts","sourceRoot":"","sources":["../../src/auto-ui/streamable-http-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAM5D,OAAO,KAAK,EAOV,aAAa,EACb,iBAAiB,EACjB,eAAe,EAChB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"streamable-http-transport.d.ts","sourceRoot":"","sources":["../../src/auto-ui/streamable-http-transport.ts"],"names":[],"mappings":"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"}
|