@sqlrooms/cells 0.29.0-rc.2 → 0.29.0-rc.3
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 +8 -8
- package/dist/cellsSlice.d.ts.map +1 -1
- package/dist/cellsSlice.js +121 -198
- package/dist/cellsSlice.js.map +1 -1
- package/dist/components/CellSourceSelector.d.ts +1 -0
- package/dist/components/CellSourceSelector.d.ts.map +1 -1
- package/dist/components/CellSourceSelector.js +8 -9
- package/dist/components/CellSourceSelector.js.map +1 -1
- package/dist/components/SqlCellContent.js +3 -3
- package/dist/components/SqlCellContent.js.map +1 -1
- package/dist/components/SqlCellDependentsMenu.d.ts +3 -3
- package/dist/components/SqlCellDependentsMenu.d.ts.map +1 -1
- package/dist/components/SqlCellDependentsMenu.js +4 -4
- package/dist/components/SqlCellDependentsMenu.js.map +1 -1
- package/dist/components/VegaCellHeader.d.ts.map +1 -1
- package/dist/components/VegaCellHeader.js +2 -1
- package/dist/components/VegaCellHeader.js.map +1 -1
- package/dist/dagUtils.d.ts +9 -9
- package/dist/dagUtils.d.ts.map +1 -1
- package/dist/dagUtils.js +44 -42
- package/dist/dagUtils.js.map +1 -1
- package/dist/defaultCellRegistry.d.ts.map +1 -1
- package/dist/defaultCellRegistry.js +16 -12
- package/dist/defaultCellRegistry.js.map +1 -1
- package/dist/execution.d.ts.map +1 -1
- package/dist/execution.js +22 -16
- package/dist/execution.js.map +1 -1
- package/dist/helpers.d.ts +9 -17
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +24 -43
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/sqlHelpers.d.ts +5 -5
- package/dist/sqlHelpers.d.ts.map +1 -1
- package/dist/sqlHelpers.js +7 -7
- package/dist/sqlHelpers.js.map +1 -1
- package/dist/types.d.ts +19 -47
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +6 -12
- package/dist/types.js.map +1 -1
- package/dist/useValidateResultName.js +5 -5
- package/dist/useValidateResultName.js.map +1 -1
- package/dist/utils.d.ts +2 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +4 -4
- package/dist/utils.js.map +1 -1
- package/package.json +10 -10
- package/dist/components/DeleteSheetModal.d.ts +0 -9
- package/dist/components/DeleteSheetModal.d.ts.map +0 -1
- package/dist/components/DeleteSheetModal.js +0 -6
- package/dist/components/DeleteSheetModal.js.map +0 -1
- package/dist/components/SheetsTabBar.d.ts +0 -6
- package/dist/components/SheetsTabBar.d.ts.map +0 -1
- package/dist/components/SheetsTabBar.js +0 -58
- package/dist/components/SheetsTabBar.js.map +0 -1
- package/dist/components/SqlCellBody.d.ts +0 -6
- package/dist/components/SqlCellBody.d.ts.map +0 -1
- package/dist/components/SqlCellBody.js +0 -12
- package/dist/components/SqlCellBody.js.map +0 -1
- package/dist/crdt.d.ts +0 -61
- package/dist/crdt.d.ts.map +0 -1
- package/dist/crdt.js +0 -82
- package/dist/crdt.js.map +0 -1
- package/dist/dagSlice.d.ts +0 -3
- package/dist/dagSlice.d.ts.map +0 -1
- package/dist/dagSlice.js +0 -51
- package/dist/dagSlice.js.map +0 -1
- package/dist/typeGuards.d.ts +0 -2
- package/dist/typeGuards.d.ts.map +0 -1
- package/dist/typeGuards.js +0 -4
- package/dist/typeGuards.js.map +0 -1
- package/dist/validation.d.ts +0 -16
- package/dist/validation.d.ts.map +0 -1
- package/dist/validation.js +0 -40
- package/dist/validation.js.map +0 -1
package/dist/types.d.ts
CHANGED
|
@@ -289,7 +289,7 @@ export type CellRegistryItem<TCell extends Cell = Cell> = {
|
|
|
289
289
|
findDependencies: (args: {
|
|
290
290
|
cell: TCell;
|
|
291
291
|
cells: Record<string, Cell>;
|
|
292
|
-
|
|
292
|
+
artifactId: string;
|
|
293
293
|
sqlSelectToJson: SqlSelectToJsonFn;
|
|
294
294
|
}) => Promise<string[] | CellDependencies>;
|
|
295
295
|
/** Optional: custom execution logic (defaults to SQL execution for sql type) */
|
|
@@ -337,14 +337,6 @@ export type CellRegistryItem<TCell extends Cell = Cell> = {
|
|
|
337
337
|
getResultRelation?: (status: CellStatus) => string | undefined;
|
|
338
338
|
};
|
|
339
339
|
export type CellRegistry = Record<string, CellRegistryItem<any>>;
|
|
340
|
-
/** Sheet and Edge types */
|
|
341
|
-
export declare const SheetType: z.ZodEnum<{
|
|
342
|
-
notebook: "notebook";
|
|
343
|
-
canvas: "canvas";
|
|
344
|
-
app: "app";
|
|
345
|
-
dashboard: "dashboard";
|
|
346
|
-
}>;
|
|
347
|
-
export type SheetType = z.infer<typeof SheetType>;
|
|
348
340
|
export declare const EdgeKind: z.ZodEnum<{
|
|
349
341
|
dependency: "dependency";
|
|
350
342
|
manual: "manual";
|
|
@@ -360,22 +352,15 @@ export declare const Edge: z.ZodObject<{
|
|
|
360
352
|
}>>;
|
|
361
353
|
}, z.core.$strip>;
|
|
362
354
|
export type Edge = z.infer<typeof Edge>;
|
|
363
|
-
export declare const
|
|
355
|
+
export declare const CellArtifactGraphCache: z.ZodObject<{
|
|
364
356
|
dependencies: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
|
|
365
357
|
dependents: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
|
|
366
358
|
contentHashByCell: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
367
359
|
tableDependencies: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
|
|
368
360
|
}, z.core.$strip>;
|
|
369
|
-
export type
|
|
370
|
-
export declare const
|
|
361
|
+
export type CellArtifactGraphCache = z.infer<typeof CellArtifactGraphCache>;
|
|
362
|
+
export declare const CellArtifactRuntime: z.ZodObject<{
|
|
371
363
|
id: z.ZodString;
|
|
372
|
-
type: z.ZodEnum<{
|
|
373
|
-
notebook: "notebook";
|
|
374
|
-
canvas: "canvas";
|
|
375
|
-
app: "app";
|
|
376
|
-
dashboard: "dashboard";
|
|
377
|
-
}>;
|
|
378
|
-
title: z.ZodString;
|
|
379
364
|
schemaName: z.ZodOptional<z.ZodString>;
|
|
380
365
|
cellIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
381
366
|
edges: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
@@ -394,7 +379,7 @@ export declare const Sheet: z.ZodObject<{
|
|
|
394
379
|
tableDependencies: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
|
|
395
380
|
}, z.core.$strip>>;
|
|
396
381
|
}, z.core.$strip>;
|
|
397
|
-
export type
|
|
382
|
+
export type CellArtifactRuntime = z.infer<typeof CellArtifactRuntime>;
|
|
398
383
|
/** Cell Status */
|
|
399
384
|
export declare const SqlCellStatus: z.ZodObject<{
|
|
400
385
|
type: z.ZodLiteral<"sql">;
|
|
@@ -456,15 +441,8 @@ export declare const CellsSliceConfig: z.ZodObject<{
|
|
|
456
441
|
type: z.ZodString;
|
|
457
442
|
data: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
458
443
|
}, z.core.$strip>>>;
|
|
459
|
-
|
|
444
|
+
artifacts: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
460
445
|
id: z.ZodString;
|
|
461
|
-
type: z.ZodEnum<{
|
|
462
|
-
notebook: "notebook";
|
|
463
|
-
canvas: "canvas";
|
|
464
|
-
app: "app";
|
|
465
|
-
dashboard: "dashboard";
|
|
466
|
-
}>;
|
|
467
|
-
title: z.ZodString;
|
|
468
446
|
schemaName: z.ZodOptional<z.ZodString>;
|
|
469
447
|
cellIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
470
448
|
edges: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
@@ -483,15 +461,12 @@ export declare const CellsSliceConfig: z.ZodObject<{
|
|
|
483
461
|
tableDependencies: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
|
|
484
462
|
}, z.core.$strip>>;
|
|
485
463
|
}, z.core.$strip>>>;
|
|
486
|
-
sheetOrder: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
487
|
-
currentSheetId: z.ZodOptional<z.ZodString>;
|
|
488
464
|
tableDepSchemas: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
489
465
|
}, z.core.$strip>;
|
|
490
466
|
export type CellsSliceConfig = z.infer<typeof CellsSliceConfig>;
|
|
491
467
|
export type CellsSliceOptions = {
|
|
492
468
|
config?: Partial<CellsSliceConfig>;
|
|
493
469
|
cellRegistry: CellRegistry;
|
|
494
|
-
supportedSheetTypes?: SheetType[];
|
|
495
470
|
};
|
|
496
471
|
/** Data stored for a cell's query result */
|
|
497
472
|
export type CellResultData = {
|
|
@@ -511,7 +486,6 @@ export type CellsSliceState = {
|
|
|
511
486
|
status: Record<string, CellStatus>;
|
|
512
487
|
activeAbortControllers: Record<string, AbortController>;
|
|
513
488
|
cellRegistry: CellRegistry;
|
|
514
|
-
supportedSheetTypes: SheetType[];
|
|
515
489
|
/** Monotonic counter per cell, incremented when a new execution result arrives. Used to trigger pagination reset and re-render. */
|
|
516
490
|
resultVersion: Record<string, number>;
|
|
517
491
|
/** Monotonic counter per cell, incremented when a pagination/sorting fetch completes. Used to trigger re-render without resetting pagination. */
|
|
@@ -524,21 +498,18 @@ export type CellsSliceState = {
|
|
|
524
498
|
setCrossFilterSelection: (chartCellId: string, sqlId: string, selection: CrossFilterSelection | null) => void;
|
|
525
499
|
getCrossFilterPredicate: (chartCellId: string, sqlId: string) => string | null;
|
|
526
500
|
clearCrossFilterGroup: (sqlId: string) => void;
|
|
527
|
-
|
|
501
|
+
ensureArtifact: (artifactId: string, options?: {
|
|
502
|
+
schemaName?: string;
|
|
503
|
+
}) => void;
|
|
504
|
+
removeArtifact: (artifactId: string) => void;
|
|
505
|
+
addCell: (artifactId: string, cell: Cell, index?: number) => Promise<void>;
|
|
528
506
|
removeCell: (id: string) => void;
|
|
529
507
|
updateCell: (id: string, updater: (cell: Cell) => Cell, opts?: {
|
|
530
508
|
cascade?: boolean;
|
|
531
509
|
}) => Promise<void>;
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
openSheet: (sheetId: string) => void;
|
|
536
|
-
setSheetOrder: (sheetOrder: string[]) => void;
|
|
537
|
-
renameSheet: (sheetId: string, title: string) => void;
|
|
538
|
-
setCurrentSheet: (sheetId: string) => void;
|
|
539
|
-
addEdge: (sheetId: string, edge: Omit<Edge, 'id'>) => void;
|
|
540
|
-
removeEdge: (sheetId: string, edgeId: string) => void;
|
|
541
|
-
updateEdgesFromSql: (sheetId: string, cellId: string) => Promise<void>;
|
|
510
|
+
addEdge: (artifactId: string, edge: Omit<Edge, 'id'>) => void;
|
|
511
|
+
removeEdge: (artifactId: string, edgeId: string) => void;
|
|
512
|
+
updateEdgesFromSql: (artifactId: string, cellId: string) => Promise<void>;
|
|
542
513
|
runCell: (id: string, opts?: {
|
|
543
514
|
cascade?: boolean;
|
|
544
515
|
schemaName?: string;
|
|
@@ -556,10 +527,11 @@ export type CellsSliceState = {
|
|
|
556
527
|
id: string;
|
|
557
528
|
desc: boolean;
|
|
558
529
|
}[]) => Promise<void>;
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
530
|
+
getArtifactIdForCell: (cellId: string) => string | undefined;
|
|
531
|
+
getDownstream: (artifactId: string, sourceCellId: string) => string[];
|
|
532
|
+
getRootCells: (artifactId: string) => string[];
|
|
533
|
+
runAllCellsCascade: (artifactId: string) => Promise<void>;
|
|
534
|
+
runDownstreamCascade: (artifactId: string, sourceCellId: string) => Promise<void>;
|
|
563
535
|
};
|
|
564
536
|
initialize?: () => Promise<void>;
|
|
565
537
|
};
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAC,kBAAkB,EAAE,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,iBAAiB;AACjB,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAChE,MAAM,MAAM,QAAQ,GAAG,eAAe,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AACvD,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,uBAAuB;AACvB,eAAO,MAAM,UAAU;;;;EAAyC,CAAC;AACjE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,eAAO,MAAM,SAAS;;;;iBAIpB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD,eAAO,MAAM,WAAW;;;;;;;iBAOtB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,eAAO,MAAM,aAAa;;;;;iBAKxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;2BAIrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,eAAe;AACf,eAAO,MAAM,WAAW;;;;;iBAKtB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,gBAAgB;AAChB,eAAO,MAAM,YAAY;;;iBAGvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,sDAAsD;AACtD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE/D,sDAAsD;AACtD,eAAO,MAAM,iBAAiB;;;oBAKX,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;iBACzD,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,gBAAgB;AAChB,eAAO,MAAM,YAAY;;;;;;;;;wBALN,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;;iBAYzD,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,sBAAsB;AACtB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;iBAGxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,wBAAwB;AACxB,eAAO,MAAM,QAAQ;;;iBAGnB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,OAAO;;;;;;;;;iBAIlB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAE9C,eAAO,MAAM,QAAQ;;;;;;;iBAInB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,QAAQ;;;;;;;;;;;;4BA9CF,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;;;iBAkDzD,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;iBAIpB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAClD,eAAO,MAAM,aAAa;;;;;;;;;iBAAU,CAAC;AACrC,eAAO,MAAM,cAAc;;;;;;;iBAAW,CAAC;AACvC,eAAO,MAAM,cAAc;;;;;;;;;;;;4BA7DR,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;;;iBA6DrB,CAAC;AACvC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;iBAAY,CAAC;AAEzC,qBAAqB;AACrB,eAAO,MAAM,IAAI;;;;iBAIf,CAAC;AACH,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B,CAAC;AAEF,4BAA4B;AAC5B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACvD,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;CACxB,CAAC,CAAC;AAEH,4EAA4E;AAC5E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,cAAc,CAAC;IAC1B,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,cAAc,KAAK,IAAI,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,IAAI,GAAG,IAAI,IAAI;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,KAAK,CAAC;IAC5C,UAAU,EAAE,CAAC,KAAK,EAAE;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,KAAK,CAAC;QACZ,eAAe,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,KAAK,CAAC,YAAY,CAAC;KACpE,KAAK,KAAK,CAAC,YAAY,CAAC;IACzB,oEAAoE;IACpE,gBAAgB,EAAE,CAAC,IAAI,EAAE;QACvB,IAAI,EAAE,KAAK,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5B,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,iBAAiB,CAAC;KACpC,KAAK,OAAO,CAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC,CAAC;IAC3C,gFAAgF;IAChF,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;QACf,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE;YAAC,OAAO,CAAC,EAAE,OAAO,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAA;SAAC,CAAC;QAChD,GAAG,EAAE,MAAM,cAAc,CAAC;QAC1B,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,cAAc,KAAK,IAAI,CAAC;KACnE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QACpB,EAAE,EAAE,MAAM,CAAC;QACX,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,cAAc,CAAC;QAC1B,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,cAAc,KAAK,IAAI,CAAC;KACnE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpB,oFAAoF;IACpF,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,UAAU,CAAC;IAC1C,uHAAuH;IACvH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QACpB,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;QAC/B,GAAG,EAAE,MAAM,cAAc,CAAC;QAC1B,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,cAAc,KAAK,IAAI,CAAC;KACnE,KAAK,IAAI,CAAC;IACX,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;QAC/B,GAAG,EAAE,MAAM,cAAc,CAAC;QAC1B,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,cAAc,KAAK,IAAI,CAAC;KACnE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3B,0FAA0F;IAC1F,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,KAAK,OAAO,CAAC;IAChE,oHAAoH;IACpH,gBAAgB,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,KAAK,UAAU,CAAC;IAC7D,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,MAAM,EAAE,CAAC;IACtD,mEAAmE;IACnE,WAAW,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,UAAU,CAAC;IACzE,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,MAAM,GAAG,SAAS,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AAEjE,eAAO,MAAM,QAAQ;;;EAAmC,CAAC;AACzD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,IAAI;;;;;;;;iBAKf,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;iBAM9B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE,kBAAkB;AAClB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;iBASxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,eAAe;;iBAE1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,yGAAyG;AACzG,MAAM,MAAM,UAAU,GAAG;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAAC;AAEhE,4BAA4B;AAC5B,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB;IACE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD,SAAS,CAAC;AAEd,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAK3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACnC,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,4CAA4C;AAC5C,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,iEAAiE;AACjE,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,cAAc,GAAG;QACtB,MAAM,EAAE,gBAAgB,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACnC,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACxD,YAAY,EAAE,YAAY,CAAC;QAC3B,mIAAmI;QACnI,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,iJAAiJ;QACjJ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEpC;;;WAGG;QACH,qBAAqB,EAAE,MAAM,CAC3B,MAAM,EACN,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC,CAC5C,CAAC;QACF,uBAAuB,EAAE,CACvB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,oBAAoB,GAAG,IAAI,KACnC,IAAI,CAAC;QACV,uBAAuB,EAAE,CACvB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,KACV,MAAM,GAAG,IAAI,CAAC;QACnB,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QAG/C,cAAc,EAAE,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;YAAC,UAAU,CAAC,EAAE,MAAM,CAAA;SAAC,KAC5B,IAAI,CAAC;QACV,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;QAC7C,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3E,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;QACjC,UAAU,EAAE,CACV,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,EAC7B,IAAI,CAAC,EAAE;YAAC,OAAO,CAAC,EAAE,OAAO,CAAA;SAAC,KACvB,OAAO,CAAC,IAAI,CAAC,CAAC;QAGnB,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;QAC9D,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;QACzD,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAG1E,OAAO,EAAE,CACP,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE;YAAC,OAAO,CAAC,EAAE,OAAO,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAA;SAAC,KAC5C,OAAO,CAAC,IAAI,CAAC,CAAC;QACnB,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;QACjC,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;QAG3C,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;QAC1D,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;QAC9D,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS,CAAC;QAC1D,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;QACtC,mBAAmB,EAAE,CACnB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAC,EACjD,OAAO,CAAC,EAAE;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,OAAO,CAAA;SAAC,EAAE,KACpC,OAAO,CAAC,IAAI,CAAC,CAAC;QAGnB,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;QAC7D,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;QACtE,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;QAC/C,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1D,oBAAoB,EAAE,CACpB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,KACjB,OAAO,CAAC,IAAI,CAAC,CAAC;KACpB,CAAC;IAEF,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAC7C,YAAY,GACZ,eAAe,CAAC;AAElB,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,OAAO,CAErD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,QAAQ,CAEvD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,QAAQ,CAEvD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,SAAS,CAEzD;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,GAAG,SAAS,GAC7B,MAAM,IAAI,aAAa,CAEzB"}
|
package/dist/types.js
CHANGED
|
@@ -95,8 +95,6 @@ export const Cell = z.object({
|
|
|
95
95
|
type: CellType,
|
|
96
96
|
data: z.record(z.string(), z.any()),
|
|
97
97
|
});
|
|
98
|
-
/** Sheet and Edge types */
|
|
99
|
-
export const SheetType = z.enum(['notebook', 'canvas', 'app', 'dashboard']);
|
|
100
98
|
export const EdgeKind = z.enum(['dependency', 'manual']);
|
|
101
99
|
export const Edge = z.object({
|
|
102
100
|
id: z.string(),
|
|
@@ -104,20 +102,18 @@ export const Edge = z.object({
|
|
|
104
102
|
target: z.string(), // cellId
|
|
105
103
|
kind: EdgeKind.optional(),
|
|
106
104
|
});
|
|
107
|
-
export const
|
|
105
|
+
export const CellArtifactGraphCache = z.object({
|
|
108
106
|
dependencies: z.record(z.string(), z.array(z.string())).default({}),
|
|
109
107
|
dependents: z.record(z.string(), z.array(z.string())).default({}),
|
|
110
108
|
contentHashByCell: z.record(z.string(), z.string()).optional(),
|
|
111
109
|
tableDependencies: z.record(z.string(), z.array(z.string())).default({}),
|
|
112
110
|
});
|
|
113
|
-
export const
|
|
111
|
+
export const CellArtifactRuntime = z.object({
|
|
114
112
|
id: z.string(),
|
|
115
|
-
type: SheetType,
|
|
116
|
-
title: z.string(),
|
|
117
113
|
schemaName: z.string().optional(),
|
|
118
|
-
cellIds: z.array(z.string()).default([]),
|
|
119
|
-
edges: z.array(Edge).default([]),
|
|
120
|
-
graphCache:
|
|
114
|
+
cellIds: z.array(z.string()).default([]),
|
|
115
|
+
edges: z.array(Edge).default([]),
|
|
116
|
+
graphCache: CellArtifactGraphCache.optional(),
|
|
121
117
|
});
|
|
122
118
|
/** Cell Status */
|
|
123
119
|
export const SqlCellStatus = z.object({
|
|
@@ -135,9 +131,7 @@ export const OtherCellStatus = z.object({
|
|
|
135
131
|
});
|
|
136
132
|
export const CellsSliceConfig = z.object({
|
|
137
133
|
data: z.record(z.string(), Cell).default({}),
|
|
138
|
-
|
|
139
|
-
sheetOrder: z.array(z.string()).default([]),
|
|
140
|
-
currentSheetId: z.string().optional(),
|
|
134
|
+
artifacts: z.record(z.string(), CellArtifactRuntime).default({}),
|
|
141
135
|
/** Which database schemas' tables are eligible for direct table dependencies. */
|
|
142
136
|
tableDepSchemas: z.array(z.string()).default(['main']),
|
|
143
137
|
});
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAKtB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AAEnC,uBAAuB;AACvB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAGjE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC9B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC9B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACrD,SAAS;IACT,WAAW;IACX,aAAa;CACd,CAAC,CAAC;AAGH,eAAe;AACf,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;IACrC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,8CAA8C;IACjF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAGH,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC7B,CAAC,CAAC;AAMH,sDAAsD;AACtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,cAAc,EAAE,CAAC;SACd,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;SACvC,QAAQ,EAA8C;CAC1D,CAAC,CAAC;AAGH,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,0EAA0E;IACxG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,8CAA8C;IAC/E,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,uCAAuC;IACnE,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC5B,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;CACxD,CAAC,CAAC;AAGH,sBAAsB;AACtB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IAClC,KAAK,EAAE,UAAU;CAClB,CAAC,CAAC;AAGH,wBAAwB;AACxB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;CACpC,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACtB,IAAI,EAAE,WAAW;CAClB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,YAAY;CACnB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,YAAY;CACnB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,IAAI,EAAE,aAAa;CACpB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC;AACrC,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC;AACvC,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC;AACvC,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC;AAEzC,qBAAqB;AACrB,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;CACpC,CAAC,CAAC;AA+FH,2BAA2B;AAC3B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;AAG5E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;AAGzD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS;IAC7B,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC1B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACjE,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9D,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACzE,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,mCAAmC;IAC7E,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,eAAe;IACjD,UAAU,EAAE,eAAe,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAGH,kBAAkB;AAClB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACtB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACjD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;CACzB,CAAC,CAAC;AAsCH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/C,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,iFAAiF;IACjF,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;CACvD,CAAC,CAAC;AAiHH,MAAM,UAAU,SAAS,CAAC,IAAU;IAClC,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAU;IACnC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAU;IACnC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAU;IACpC,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,MAA8B;IAE9B,OAAO,MAAM,EAAE,IAAI,KAAK,KAAK,CAAC;AAChC,CAAC","sourcesContent":["import type {DbSliceState} from '@sqlrooms/db';\nimport type {BaseRoomStoreState, SliceFunctions} from '@sqlrooms/room-store';\nimport type * as arrow from 'apache-arrow';\nimport type React from 'react';\nimport {z} from 'zod';\n\n/** Cell types */\nexport type BuiltInCellType = 'sql' | 'text' | 'vega' | 'input';\nexport type CellType = BuiltInCellType | (string & {});\nexport const CellType = z.string();\n\n/** Input Cell types */\nexport const InputTypes = z.enum(['text', 'slider', 'dropdown']);\nexport type InputTypes = z.infer<typeof InputTypes>;\n\nexport const InputText = z.object({\n kind: z.literal(InputTypes.enum.text),\n varName: z.string(),\n value: z.string().default(''),\n});\nexport type InputText = z.infer<typeof InputText>;\n\nexport const InputSlider = z.object({\n kind: z.literal(InputTypes.enum.slider),\n varName: z.string(),\n min: z.number().default(0),\n max: z.number().default(100),\n step: z.number().default(1),\n value: z.number().default(0),\n});\nexport type InputSlider = z.infer<typeof InputSlider>;\n\nexport const InputDropdown = z.object({\n kind: z.literal(InputTypes.enum.dropdown),\n varName: z.string(),\n options: z.array(z.string()).default([]),\n value: z.string().default(''),\n});\nexport type InputDropdown = z.infer<typeof InputDropdown>;\n\nexport const InputUnion = z.discriminatedUnion('kind', [\n InputText,\n InputSlider,\n InputDropdown,\n]);\nexport type InputUnion = z.infer<typeof InputUnion>;\n\n/** SQL Cell */\nexport const SqlCellData = z.object({\n title: z.string().default('Untitled'),\n sql: z.string().default(''),\n resultName: z.string().optional(), // SQL-friendly identifier for the result view\n connectorId: z.string().optional(),\n});\nexport type SqlCellData = z.infer<typeof SqlCellData>;\n\n/** Text Cell */\nexport const TextCellData = z.object({\n title: z.string().default('Text'),\n text: z.string().default(''),\n});\nexport type TextCellData = z.infer<typeof TextCellData>;\n\n/** Field type category for cross-filter predicates */\nexport type BrushFieldType = 'numeric' | 'temporal' | 'string';\n\n/** Cross-filter configuration for Vega chart cells */\nexport const CrossFilterConfig = z.object({\n enabled: z.boolean().default(true),\n brushField: z.string().optional(),\n brushFieldType: z\n .enum(['numeric', 'temporal', 'string'])\n .optional() as z.ZodOptional<z.ZodType<BrushFieldType>>,\n});\nexport type CrossFilterConfig = z.infer<typeof CrossFilterConfig>;\n\n/** Vega Cell */\nexport const VegaCellData = z.object({\n title: z.string().default('Chart'),\n sqlId: z.string().optional(), // In notebook, it links to another cell. In canvas, it might be the same.\n tableRef: z.string().optional(), // Direct table reference, e.g. \"main.flights\"\n sql: z.string().optional(), // In canvas, it often has its own SQL.\n vegaSpec: z.any().optional(),\n crossFilter: CrossFilterConfig.default({enabled: true}),\n});\nexport type VegaCellData = z.infer<typeof VegaCellData>;\n\n/** Input Cell Data */\nexport const InputCellData = z.object({\n title: z.string().default('Input'),\n input: InputUnion,\n});\nexport type InputCellData = z.infer<typeof InputCellData>;\n\n/** Unified Cell Data */\nexport const CellData = z.object({\n type: CellType,\n data: z.record(z.string(), z.any()),\n});\nexport type CellData = {\n type: CellType;\n data: Record<string, any>;\n};\n\nexport const SqlCell = z.object({\n id: z.string(),\n type: z.literal('sql'),\n data: SqlCellData,\n});\nexport type SqlCell = z.infer<typeof SqlCell>;\n\nexport const TextCell = z.object({\n id: z.string(),\n type: z.literal('text'),\n data: TextCellData,\n});\nexport type TextCell = z.infer<typeof TextCell>;\n\nexport const VegaCell = z.object({\n id: z.string(),\n type: z.literal('vega'),\n data: VegaCellData,\n});\nexport type VegaCell = z.infer<typeof VegaCell>;\n\nexport const InputCell = z.object({\n id: z.string(),\n type: z.literal('input'),\n data: InputCellData,\n});\nexport type InputCell = z.infer<typeof InputCell>;\nexport const SqlCellSchema = SqlCell;\nexport const TextCellSchema = TextCell;\nexport const VegaCellSchema = VegaCell;\nexport const InputCellSchema = InputCell;\n\n/** Canonical Cell */\nexport const Cell = z.object({\n id: z.string(),\n type: CellType,\n data: z.record(z.string(), z.any()),\n});\nexport type Cell = {\n id: string;\n type: CellType;\n data: Record<string, any>;\n};\n\n/** Unified Cell Registry */\nexport type CellContainerProps = {\n header?: React.ReactNode;\n content: React.ReactNode;\n footer?: React.ReactNode;\n showHeader?: boolean;\n};\n\n/** Type for SQL AST parsing function from DuckDB slice */\nexport type SqlSelectToJsonFn = (sql: string) => Promise<{\n error: boolean;\n error_type?: string;\n statements?: unknown[];\n}>;\n\n/** Return type from findDependencies: cell IDs and optional table names. */\nexport type CellDependencies = {\n cellIds: string[];\n tableNames?: string[];\n};\n\nexport type CreateCellArgs = {\n id: string;\n get: () => CellsRootState;\n set: (updater: (state: CellsRootState) => CellsRootState) => void;\n};\n\nexport type CellRegistryItem<TCell extends Cell = Cell> = {\n type: string;\n title: string;\n createCell: (args: CreateCellArgs) => TCell;\n renderCell: (props: {\n id: string;\n cell: TCell;\n renderContainer: (props: CellContainerProps) => React.ReactElement;\n }) => React.ReactElement;\n /** Find dependencies for DAG using AST-enabled async resolution. */\n findDependencies: (args: {\n cell: TCell;\n cells: Record<string, Cell>;\n sheetId: string;\n sqlSelectToJson: SqlSelectToJsonFn;\n }) => Promise<string[] | CellDependencies>;\n /** Optional: custom execution logic (defaults to SQL execution for sql type) */\n runCell?: (args: {\n id: string;\n opts?: {cascade?: boolean; schemaName?: string};\n get: () => CellsRootState;\n set: (updater: (state: CellsRootState) => CellsRootState) => void;\n }) => Promise<void>;\n /** Optional: rename the result view when resultName changes */\n renameResult?: (args: {\n id: string;\n oldResultView: string;\n get: () => CellsRootState;\n set: (updater: (state: CellsRootState) => CellsRootState) => void;\n }) => Promise<void>;\n\n /** Return initial CellStatus when a cell is first added. Default: {type:'other'} */\n createStatus?: (id: string) => CellStatus;\n /** Called once during cells.initialize() for each cell of this type. Reset ephemeral runtime state after hydration. */\n onInitialize?: (args: {\n id: string;\n status: CellStatus | undefined;\n get: () => CellsRootState;\n set: (updater: (state: CellsRootState) => CellsRootState) => void;\n }) => void;\n /** Called when cell is removed. Clean up DuckDB relations, caches, etc. */\n onRemove?: (args: {\n id: string;\n status: CellStatus | undefined;\n get: () => CellsRootState;\n set: (updater: (state: CellsRootState) => CellsRootState) => void;\n }) => Promise<void> | void;\n /** Detect whether an updateCell change is semantically significant for this cell type. */\n hasSemanticChange?: (oldCell: TCell, newCell: TCell) => boolean;\n /** Reset status to idle/stale. Called by invalidateCellStatus. If not provided, status is set to {type:'other'}. */\n invalidateStatus?: (currentStatus: CellStatus) => CellStatus;\n /** Collect DuckDB relation names that should be dropped when this cell is removed. */\n getRelationsToDrop?: (status: CellStatus) => string[];\n /** Record an error on the cell status during cascade execution. */\n recordError?: (currentStatus: CellStatus, message: string) => CellStatus;\n /** Return the query relation name for paged fetches, if applicable. */\n getResultRelation?: (status: CellStatus) => string | undefined;\n};\n\nexport type CellRegistry = Record<string, CellRegistryItem<any>>;\n\n/** Sheet and Edge types */\nexport const SheetType = z.enum(['notebook', 'canvas', 'app', 'dashboard']);\nexport type SheetType = z.infer<typeof SheetType>;\n\nexport const EdgeKind = z.enum(['dependency', 'manual']);\nexport type EdgeKind = z.infer<typeof EdgeKind>;\n\nexport const Edge = z.object({\n id: z.string(),\n source: z.string(), // cellId\n target: z.string(), // cellId\n kind: EdgeKind.optional(),\n});\nexport type Edge = z.infer<typeof Edge>;\n\nexport const SheetGraphCache = z.object({\n dependencies: z.record(z.string(), z.array(z.string())).default({}),\n dependents: z.record(z.string(), z.array(z.string())).default({}),\n contentHashByCell: z.record(z.string(), z.string()).optional(),\n tableDependencies: z.record(z.string(), z.array(z.string())).default({}),\n});\nexport type SheetGraphCache = z.infer<typeof SheetGraphCache>;\n\nexport const Sheet = z.object({\n id: z.string(),\n type: SheetType,\n title: z.string(),\n schemaName: z.string().optional(),\n cellIds: z.array(z.string()).default([]), // Which cells belong to this sheet\n edges: z.array(Edge).default([]), // Dependencies\n graphCache: SheetGraphCache.optional(),\n});\nexport type Sheet = z.infer<typeof Sheet>;\n\n/** Cell Status */\nexport const SqlCellStatus = z.object({\n type: z.literal('sql'),\n status: z.enum(['idle', 'running', 'success', 'cancel', 'error']),\n lastError: z.string().optional(),\n referencedTables: z.array(z.string()).default([]),\n resultName: z.string().optional(),\n resultView: z.string().optional(),\n resultRelationType: z.enum(['view', 'table']).optional(),\n lastRunTime: z.number().optional(),\n});\nexport type SqlCellStatus = z.infer<typeof SqlCellStatus>;\n\nexport const OtherCellStatus = z.object({\n type: z.literal('other'),\n});\nexport type OtherCellStatus = z.infer<typeof OtherCellStatus>;\n\n/** Extensible cell status -- each cell type defines its own shape with a discriminating `type` field. */\nexport type CellStatus = {type: string; [key: string]: unknown};\n\n/** SQL execution results */\nexport type SqlRunResult = {\n resultName?: string;\n referencedTables?: string[];\n lastRunTime?: number;\n};\n\nexport type SqlRunCallbacks = {\n onStart?: () => void;\n onSuccess?: (result: SqlRunResult) => void;\n onError?: (message: string) => void;\n onFinally?: () => void;\n};\n\nexport type SqlRenderInput = {\n varName: string;\n value: string | number;\n};\n\nexport type SqlDependencyOptions = {\n inputTypes?: string[];\n sqlTypes?: string[];\n};\n\nexport type SqlCellRunStatus =\n | {\n state: 'idle' | 'running' | 'success' | 'cancel' | 'error';\n message?: string;\n resultName?: string;\n }\n | undefined;\n\nexport const CellsSliceConfig = z.object({\n data: z.record(z.string(), Cell).default({}),\n sheets: z.record(z.string(), Sheet).default({}),\n sheetOrder: z.array(z.string()).default([]),\n currentSheetId: z.string().optional(),\n /** Which database schemas' tables are eligible for direct table dependencies. */\n tableDepSchemas: z.array(z.string()).default(['main']),\n});\nexport type CellsSliceConfig = z.infer<typeof CellsSliceConfig>;\n\nexport type CellsSliceOptions = {\n config?: Partial<CellsSliceConfig>;\n cellRegistry: CellRegistry;\n supportedSheetTypes?: SheetType[];\n};\n\n/** Data stored for a cell's query result */\nexport type CellResultData = {\n arrowTable: arrow.Table;\n totalRows: number;\n};\n\n/** Cross-filter selection value emitted by a Vega chart brush */\nexport type CrossFilterSelection = {\n field: string;\n fieldType?: BrushFieldType;\n type: 'interval' | 'point';\n value: unknown;\n};\n\nexport type CellsSliceState = {\n cells: SliceFunctions & {\n config: CellsSliceConfig;\n status: Record<string, CellStatus>;\n activeAbortControllers: Record<string, AbortController>;\n cellRegistry: CellRegistry;\n supportedSheetTypes: SheetType[];\n /** Monotonic counter per cell, incremented when a new execution result arrives. Used to trigger pagination reset and re-render. */\n resultVersion: Record<string, number>;\n /** Monotonic counter per cell, incremented when a pagination/sorting fetch completes. Used to trigger re-render without resetting pagination. */\n pageVersion: Record<string, number>;\n\n /**\n * Ephemeral cross-filter selections (not persisted).\n * Outer key: sqlId (the shared data source), inner key: chartCellId.\n */\n crossFilterSelections: Record<\n string,\n Record<string, CrossFilterSelection | null>\n >;\n setCrossFilterSelection: (\n chartCellId: string,\n sqlId: string,\n selection: CrossFilterSelection | null,\n ) => void;\n getCrossFilterPredicate: (\n chartCellId: string,\n sqlId: string,\n ) => string | null;\n clearCrossFilterGroup: (sqlId: string) => void;\n\n // Cell CRUD\n addCell: (sheetId: string, cell: Cell, index?: number) => Promise<void>;\n removeCell: (id: string) => void;\n updateCell: (\n id: string,\n updater: (cell: Cell) => Cell,\n opts?: {cascade?: boolean},\n ) => Promise<void>;\n\n // Sheet CRUD\n addSheet: (title?: string, type?: SheetType) => string;\n removeSheet: (sheetId: string) => void;\n closeSheet: (sheetId: string) => void;\n openSheet: (sheetId: string) => void;\n setSheetOrder: (sheetOrder: string[]) => void;\n renameSheet: (sheetId: string, title: string) => void;\n setCurrentSheet: (sheetId: string) => void;\n\n // Edge management\n addEdge: (sheetId: string, edge: Omit<Edge, 'id'>) => void;\n removeEdge: (sheetId: string, edgeId: string) => void;\n updateEdgesFromSql: (sheetId: string, cellId: string) => Promise<void>;\n\n // Execution\n runCell: (\n id: string,\n opts?: {cascade?: boolean; schemaName?: string},\n ) => Promise<void>;\n cancelCell: (id: string) => void;\n invalidateCellStatus: (id: string) => void;\n\n // Cell result cache\n setCellResult: (id: string, data: CellResultData) => void;\n setCellResultPage: (id: string, data: CellResultData) => void;\n getCellResult: (id: string) => CellResultData | undefined;\n clearCellResult: (id: string) => void;\n fetchCellResultPage: (\n id: string,\n pagination: {pageIndex: number; pageSize: number},\n sorting?: {id: string; desc: boolean}[],\n ) => Promise<void>;\n\n // DAG methods\n getDownstream: (sheetId: string, sourceCellId: string) => string[];\n getRootCells: (sheetId: string) => string[];\n runAllCellsCascade: (sheetId: string) => Promise<void>;\n runDownstreamCascade: (\n sheetId: string,\n sourceCellId: string,\n ) => Promise<void>;\n };\n // Slice lifecycle\n initialize?: () => Promise<void>;\n};\n\nexport type CellsRootState = BaseRoomStoreState &\n DbSliceState &\n CellsSliceState;\n\nexport function isSqlCell(cell: Cell): cell is SqlCell {\n return cell.type === 'sql';\n}\n\nexport function isTextCell(cell: Cell): cell is TextCell {\n return cell.type === 'text';\n}\n\nexport function isVegaCell(cell: Cell): cell is VegaCell {\n return cell.type === 'vega';\n}\n\nexport function isInputCell(cell: Cell): cell is InputCell {\n return cell.type === 'input';\n}\n\nexport function isSqlCellStatus(\n status: CellStatus | undefined,\n): status is SqlCellStatus {\n return status?.type === 'sql';\n}\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAKtB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AAEnC,uBAAuB;AACvB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAGjE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC9B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC9B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACrD,SAAS;IACT,WAAW;IACX,aAAa;CACd,CAAC,CAAC;AAGH,eAAe;AACf,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;IACrC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,8CAA8C;IACjF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAGH,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC7B,CAAC,CAAC;AAMH,sDAAsD;AACtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,cAAc,EAAE,CAAC;SACd,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;SACvC,QAAQ,EAA8C;CAC1D,CAAC,CAAC;AAGH,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,0EAA0E;IACxG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,8CAA8C;IAC/E,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,uCAAuC;IACnE,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC5B,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;CACxD,CAAC,CAAC;AAGH,sBAAsB;AACtB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IAClC,KAAK,EAAE,UAAU;CAClB,CAAC,CAAC;AAGH,wBAAwB;AACxB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;CACpC,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACtB,IAAI,EAAE,WAAW;CAClB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,YAAY;CACnB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,YAAY;CACnB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,IAAI,EAAE,aAAa;CACpB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC;AACrC,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC;AACvC,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC;AACvC,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC;AAEzC,qBAAqB;AACrB,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;CACpC,CAAC,CAAC;AA+FH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;AAGzD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS;IAC7B,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC1B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACjE,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9D,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACzE,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAChC,UAAU,EAAE,sBAAsB,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAGH,kBAAkB;AAClB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACtB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACjD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;CACzB,CAAC,CAAC;AAsCH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAChE,iFAAiF;IACjF,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;CACvD,CAAC,CAAC;AA4GH,MAAM,UAAU,SAAS,CAAC,IAAU;IAClC,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAU;IACnC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAU;IACnC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAU;IACpC,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,MAA8B;IAE9B,OAAO,MAAM,EAAE,IAAI,KAAK,KAAK,CAAC;AAChC,CAAC","sourcesContent":["import type {DbSliceState} from '@sqlrooms/db';\nimport type {BaseRoomStoreState, SliceFunctions} from '@sqlrooms/room-store';\nimport type * as arrow from 'apache-arrow';\nimport type React from 'react';\nimport {z} from 'zod';\n\n/** Cell types */\nexport type BuiltInCellType = 'sql' | 'text' | 'vega' | 'input';\nexport type CellType = BuiltInCellType | (string & {});\nexport const CellType = z.string();\n\n/** Input Cell types */\nexport const InputTypes = z.enum(['text', 'slider', 'dropdown']);\nexport type InputTypes = z.infer<typeof InputTypes>;\n\nexport const InputText = z.object({\n kind: z.literal(InputTypes.enum.text),\n varName: z.string(),\n value: z.string().default(''),\n});\nexport type InputText = z.infer<typeof InputText>;\n\nexport const InputSlider = z.object({\n kind: z.literal(InputTypes.enum.slider),\n varName: z.string(),\n min: z.number().default(0),\n max: z.number().default(100),\n step: z.number().default(1),\n value: z.number().default(0),\n});\nexport type InputSlider = z.infer<typeof InputSlider>;\n\nexport const InputDropdown = z.object({\n kind: z.literal(InputTypes.enum.dropdown),\n varName: z.string(),\n options: z.array(z.string()).default([]),\n value: z.string().default(''),\n});\nexport type InputDropdown = z.infer<typeof InputDropdown>;\n\nexport const InputUnion = z.discriminatedUnion('kind', [\n InputText,\n InputSlider,\n InputDropdown,\n]);\nexport type InputUnion = z.infer<typeof InputUnion>;\n\n/** SQL Cell */\nexport const SqlCellData = z.object({\n title: z.string().default('Untitled'),\n sql: z.string().default(''),\n resultName: z.string().optional(), // SQL-friendly identifier for the result view\n connectorId: z.string().optional(),\n});\nexport type SqlCellData = z.infer<typeof SqlCellData>;\n\n/** Text Cell */\nexport const TextCellData = z.object({\n title: z.string().default('Text'),\n text: z.string().default(''),\n});\nexport type TextCellData = z.infer<typeof TextCellData>;\n\n/** Field type category for cross-filter predicates */\nexport type BrushFieldType = 'numeric' | 'temporal' | 'string';\n\n/** Cross-filter configuration for Vega chart cells */\nexport const CrossFilterConfig = z.object({\n enabled: z.boolean().default(true),\n brushField: z.string().optional(),\n brushFieldType: z\n .enum(['numeric', 'temporal', 'string'])\n .optional() as z.ZodOptional<z.ZodType<BrushFieldType>>,\n});\nexport type CrossFilterConfig = z.infer<typeof CrossFilterConfig>;\n\n/** Vega Cell */\nexport const VegaCellData = z.object({\n title: z.string().default('Chart'),\n sqlId: z.string().optional(), // In notebook, it links to another cell. In canvas, it might be the same.\n tableRef: z.string().optional(), // Direct table reference, e.g. \"main.flights\"\n sql: z.string().optional(), // In canvas, it often has its own SQL.\n vegaSpec: z.any().optional(),\n crossFilter: CrossFilterConfig.default({enabled: true}),\n});\nexport type VegaCellData = z.infer<typeof VegaCellData>;\n\n/** Input Cell Data */\nexport const InputCellData = z.object({\n title: z.string().default('Input'),\n input: InputUnion,\n});\nexport type InputCellData = z.infer<typeof InputCellData>;\n\n/** Unified Cell Data */\nexport const CellData = z.object({\n type: CellType,\n data: z.record(z.string(), z.any()),\n});\nexport type CellData = {\n type: CellType;\n data: Record<string, any>;\n};\n\nexport const SqlCell = z.object({\n id: z.string(),\n type: z.literal('sql'),\n data: SqlCellData,\n});\nexport type SqlCell = z.infer<typeof SqlCell>;\n\nexport const TextCell = z.object({\n id: z.string(),\n type: z.literal('text'),\n data: TextCellData,\n});\nexport type TextCell = z.infer<typeof TextCell>;\n\nexport const VegaCell = z.object({\n id: z.string(),\n type: z.literal('vega'),\n data: VegaCellData,\n});\nexport type VegaCell = z.infer<typeof VegaCell>;\n\nexport const InputCell = z.object({\n id: z.string(),\n type: z.literal('input'),\n data: InputCellData,\n});\nexport type InputCell = z.infer<typeof InputCell>;\nexport const SqlCellSchema = SqlCell;\nexport const TextCellSchema = TextCell;\nexport const VegaCellSchema = VegaCell;\nexport const InputCellSchema = InputCell;\n\n/** Canonical Cell */\nexport const Cell = z.object({\n id: z.string(),\n type: CellType,\n data: z.record(z.string(), z.any()),\n});\nexport type Cell = {\n id: string;\n type: CellType;\n data: Record<string, any>;\n};\n\n/** Unified Cell Registry */\nexport type CellContainerProps = {\n header?: React.ReactNode;\n content: React.ReactNode;\n footer?: React.ReactNode;\n showHeader?: boolean;\n};\n\n/** Type for SQL AST parsing function from DuckDB slice */\nexport type SqlSelectToJsonFn = (sql: string) => Promise<{\n error: boolean;\n error_type?: string;\n statements?: unknown[];\n}>;\n\n/** Return type from findDependencies: cell IDs and optional table names. */\nexport type CellDependencies = {\n cellIds: string[];\n tableNames?: string[];\n};\n\nexport type CreateCellArgs = {\n id: string;\n get: () => CellsRootState;\n set: (updater: (state: CellsRootState) => CellsRootState) => void;\n};\n\nexport type CellRegistryItem<TCell extends Cell = Cell> = {\n type: string;\n title: string;\n createCell: (args: CreateCellArgs) => TCell;\n renderCell: (props: {\n id: string;\n cell: TCell;\n renderContainer: (props: CellContainerProps) => React.ReactElement;\n }) => React.ReactElement;\n /** Find dependencies for DAG using AST-enabled async resolution. */\n findDependencies: (args: {\n cell: TCell;\n cells: Record<string, Cell>;\n artifactId: string;\n sqlSelectToJson: SqlSelectToJsonFn;\n }) => Promise<string[] | CellDependencies>;\n /** Optional: custom execution logic (defaults to SQL execution for sql type) */\n runCell?: (args: {\n id: string;\n opts?: {cascade?: boolean; schemaName?: string};\n get: () => CellsRootState;\n set: (updater: (state: CellsRootState) => CellsRootState) => void;\n }) => Promise<void>;\n /** Optional: rename the result view when resultName changes */\n renameResult?: (args: {\n id: string;\n oldResultView: string;\n get: () => CellsRootState;\n set: (updater: (state: CellsRootState) => CellsRootState) => void;\n }) => Promise<void>;\n\n /** Return initial CellStatus when a cell is first added. Default: {type:'other'} */\n createStatus?: (id: string) => CellStatus;\n /** Called once during cells.initialize() for each cell of this type. Reset ephemeral runtime state after hydration. */\n onInitialize?: (args: {\n id: string;\n status: CellStatus | undefined;\n get: () => CellsRootState;\n set: (updater: (state: CellsRootState) => CellsRootState) => void;\n }) => void;\n /** Called when cell is removed. Clean up DuckDB relations, caches, etc. */\n onRemove?: (args: {\n id: string;\n status: CellStatus | undefined;\n get: () => CellsRootState;\n set: (updater: (state: CellsRootState) => CellsRootState) => void;\n }) => Promise<void> | void;\n /** Detect whether an updateCell change is semantically significant for this cell type. */\n hasSemanticChange?: (oldCell: TCell, newCell: TCell) => boolean;\n /** Reset status to idle/stale. Called by invalidateCellStatus. If not provided, status is set to {type:'other'}. */\n invalidateStatus?: (currentStatus: CellStatus) => CellStatus;\n /** Collect DuckDB relation names that should be dropped when this cell is removed. */\n getRelationsToDrop?: (status: CellStatus) => string[];\n /** Record an error on the cell status during cascade execution. */\n recordError?: (currentStatus: CellStatus, message: string) => CellStatus;\n /** Return the query relation name for paged fetches, if applicable. */\n getResultRelation?: (status: CellStatus) => string | undefined;\n};\n\nexport type CellRegistry = Record<string, CellRegistryItem<any>>;\n\nexport const EdgeKind = z.enum(['dependency', 'manual']);\nexport type EdgeKind = z.infer<typeof EdgeKind>;\n\nexport const Edge = z.object({\n id: z.string(),\n source: z.string(), // cellId\n target: z.string(), // cellId\n kind: EdgeKind.optional(),\n});\nexport type Edge = z.infer<typeof Edge>;\n\nexport const CellArtifactGraphCache = z.object({\n dependencies: z.record(z.string(), z.array(z.string())).default({}),\n dependents: z.record(z.string(), z.array(z.string())).default({}),\n contentHashByCell: z.record(z.string(), z.string()).optional(),\n tableDependencies: z.record(z.string(), z.array(z.string())).default({}),\n});\nexport type CellArtifactGraphCache = z.infer<typeof CellArtifactGraphCache>;\n\nexport const CellArtifactRuntime = z.object({\n id: z.string(),\n schemaName: z.string().optional(),\n cellIds: z.array(z.string()).default([]),\n edges: z.array(Edge).default([]),\n graphCache: CellArtifactGraphCache.optional(),\n});\nexport type CellArtifactRuntime = z.infer<typeof CellArtifactRuntime>;\n\n/** Cell Status */\nexport const SqlCellStatus = z.object({\n type: z.literal('sql'),\n status: z.enum(['idle', 'running', 'success', 'cancel', 'error']),\n lastError: z.string().optional(),\n referencedTables: z.array(z.string()).default([]),\n resultName: z.string().optional(),\n resultView: z.string().optional(),\n resultRelationType: z.enum(['view', 'table']).optional(),\n lastRunTime: z.number().optional(),\n});\nexport type SqlCellStatus = z.infer<typeof SqlCellStatus>;\n\nexport const OtherCellStatus = z.object({\n type: z.literal('other'),\n});\nexport type OtherCellStatus = z.infer<typeof OtherCellStatus>;\n\n/** Extensible cell status -- each cell type defines its own shape with a discriminating `type` field. */\nexport type CellStatus = {type: string; [key: string]: unknown};\n\n/** SQL execution results */\nexport type SqlRunResult = {\n resultName?: string;\n referencedTables?: string[];\n lastRunTime?: number;\n};\n\nexport type SqlRunCallbacks = {\n onStart?: () => void;\n onSuccess?: (result: SqlRunResult) => void;\n onError?: (message: string) => void;\n onFinally?: () => void;\n};\n\nexport type SqlRenderInput = {\n varName: string;\n value: string | number;\n};\n\nexport type SqlDependencyOptions = {\n inputTypes?: string[];\n sqlTypes?: string[];\n};\n\nexport type SqlCellRunStatus =\n | {\n state: 'idle' | 'running' | 'success' | 'cancel' | 'error';\n message?: string;\n resultName?: string;\n }\n | undefined;\n\nexport const CellsSliceConfig = z.object({\n data: z.record(z.string(), Cell).default({}),\n artifacts: z.record(z.string(), CellArtifactRuntime).default({}),\n /** Which database schemas' tables are eligible for direct table dependencies. */\n tableDepSchemas: z.array(z.string()).default(['main']),\n});\nexport type CellsSliceConfig = z.infer<typeof CellsSliceConfig>;\n\nexport type CellsSliceOptions = {\n config?: Partial<CellsSliceConfig>;\n cellRegistry: CellRegistry;\n};\n\n/** Data stored for a cell's query result */\nexport type CellResultData = {\n arrowTable: arrow.Table;\n totalRows: number;\n};\n\n/** Cross-filter selection value emitted by a Vega chart brush */\nexport type CrossFilterSelection = {\n field: string;\n fieldType?: BrushFieldType;\n type: 'interval' | 'point';\n value: unknown;\n};\n\nexport type CellsSliceState = {\n cells: SliceFunctions & {\n config: CellsSliceConfig;\n status: Record<string, CellStatus>;\n activeAbortControllers: Record<string, AbortController>;\n cellRegistry: CellRegistry;\n /** Monotonic counter per cell, incremented when a new execution result arrives. Used to trigger pagination reset and re-render. */\n resultVersion: Record<string, number>;\n /** Monotonic counter per cell, incremented when a pagination/sorting fetch completes. Used to trigger re-render without resetting pagination. */\n pageVersion: Record<string, number>;\n\n /**\n * Ephemeral cross-filter selections (not persisted).\n * Outer key: sqlId (the shared data source), inner key: chartCellId.\n */\n crossFilterSelections: Record<\n string,\n Record<string, CrossFilterSelection | null>\n >;\n setCrossFilterSelection: (\n chartCellId: string,\n sqlId: string,\n selection: CrossFilterSelection | null,\n ) => void;\n getCrossFilterPredicate: (\n chartCellId: string,\n sqlId: string,\n ) => string | null;\n clearCrossFilterGroup: (sqlId: string) => void;\n\n // Cell CRUD\n ensureArtifact: (\n artifactId: string,\n options?: {schemaName?: string},\n ) => void;\n removeArtifact: (artifactId: string) => void;\n addCell: (artifactId: string, cell: Cell, index?: number) => Promise<void>;\n removeCell: (id: string) => void;\n updateCell: (\n id: string,\n updater: (cell: Cell) => Cell,\n opts?: {cascade?: boolean},\n ) => Promise<void>;\n\n // Edge management\n addEdge: (artifactId: string, edge: Omit<Edge, 'id'>) => void;\n removeEdge: (artifactId: string, edgeId: string) => void;\n updateEdgesFromSql: (artifactId: string, cellId: string) => Promise<void>;\n\n // Execution\n runCell: (\n id: string,\n opts?: {cascade?: boolean; schemaName?: string},\n ) => Promise<void>;\n cancelCell: (id: string) => void;\n invalidateCellStatus: (id: string) => void;\n\n // Cell result cache\n setCellResult: (id: string, data: CellResultData) => void;\n setCellResultPage: (id: string, data: CellResultData) => void;\n getCellResult: (id: string) => CellResultData | undefined;\n clearCellResult: (id: string) => void;\n fetchCellResultPage: (\n id: string,\n pagination: {pageIndex: number; pageSize: number},\n sorting?: {id: string; desc: boolean}[],\n ) => Promise<void>;\n\n // DAG methods\n getArtifactIdForCell: (cellId: string) => string | undefined;\n getDownstream: (artifactId: string, sourceCellId: string) => string[];\n getRootCells: (artifactId: string) => string[];\n runAllCellsCascade: (artifactId: string) => Promise<void>;\n runDownstreamCascade: (\n artifactId: string,\n sourceCellId: string,\n ) => Promise<void>;\n };\n // Slice lifecycle\n initialize?: () => Promise<void>;\n};\n\nexport type CellsRootState = BaseRoomStoreState &\n DbSliceState &\n CellsSliceState;\n\nexport function isSqlCell(cell: Cell): cell is SqlCell {\n return cell.type === 'sql';\n}\n\nexport function isTextCell(cell: Cell): cell is TextCell {\n return cell.type === 'text';\n}\n\nexport function isVegaCell(cell: Cell): cell is VegaCell {\n return cell.type === 'vega';\n}\n\nexport function isInputCell(cell: Cell): cell is InputCell {\n return cell.type === 'input';\n}\n\nexport function isSqlCellStatus(\n status: CellStatus | undefined,\n): status is SqlCellStatus {\n return status?.type === 'sql';\n}\n"]}
|
|
@@ -79,13 +79,13 @@ export function validateResultName(opts) {
|
|
|
79
79
|
* 4. Self-reference cycle detection
|
|
80
80
|
*/
|
|
81
81
|
export function useValidateResultName(cellId, name) {
|
|
82
|
-
const
|
|
82
|
+
const artifactId = useCellsStore((s) => s.cells.getArtifactIdForCell(cellId));
|
|
83
83
|
const cellsData = useCellsStore((s) => s.cells.config.data);
|
|
84
|
-
const
|
|
84
|
+
const artifacts = useCellsStore((s) => s.cells.config.artifacts);
|
|
85
85
|
const tableSchemas = useCellsStore((s) => s.db.tables);
|
|
86
86
|
const currentCell = cellsData[cellId];
|
|
87
87
|
const currentCellSql = currentCell?.type === 'sql' ? currentCell.data.sql : '';
|
|
88
|
-
const
|
|
88
|
+
const artifactCellIds = useMemo(() => (artifactId ? (artifacts[artifactId]?.cellIds ?? []) : []), [artifactId, artifacts]);
|
|
89
89
|
const mainSchemaTableNames = useMemo(() => tableSchemas
|
|
90
90
|
.filter((t) => (t.table.schema ?? t.schema) === 'main')
|
|
91
91
|
.map((t) => t.table.table ?? t.tableName), [tableSchemas]);
|
|
@@ -94,7 +94,7 @@ export function useValidateResultName(cellId, name) {
|
|
|
94
94
|
proposedName: name,
|
|
95
95
|
currentCellId: cellId,
|
|
96
96
|
currentCellSql,
|
|
97
|
-
sheetCellIds,
|
|
97
|
+
sheetCellIds: artifactCellIds,
|
|
98
98
|
cells: cellsData,
|
|
99
99
|
mainSchemaTableNames,
|
|
100
100
|
convertToValidName: convertToValidColumnOrTableName,
|
|
@@ -103,7 +103,7 @@ export function useValidateResultName(cellId, name) {
|
|
|
103
103
|
name,
|
|
104
104
|
cellId,
|
|
105
105
|
currentCellSql,
|
|
106
|
-
|
|
106
|
+
artifactCellIds,
|
|
107
107
|
cellsData,
|
|
108
108
|
mainSchemaTableNames,
|
|
109
109
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useValidateResultName.js","sourceRoot":"","sources":["../src/useValidateResultName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,+BAA+B,EAAC,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAEtC,OAAO,EAAC,sBAAsB,EAAE,oBAAoB,EAAC,MAAM,SAAS,CAAC;AAErE,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,IAAY;IACpD,8EAA8E;IAC9E,mEAAmE;IACnE,+EAA+E;IAC/E,yEAAyE;IACzE,MAAM,OAAO,GAAG,IAAI,MAAM,CACxB,qBAAqB,YAAY,CAAC,IAAI,CAAC,kBAAkB,EACzD,GAAG,CACJ,CAAC;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAQlC;IACC,MAAM,EACJ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,KAAK,EACL,oBAAoB,EACpB,kBAAkB,GACnB,GAAG,IAAI,CAAC;IAET,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;IAExC,4BAA4B;IAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,OAAO,gCAAgC,CAAC;IAC1C,CAAC;IAED,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IAE5C,qEAAqE;IACrE,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAClC,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACjC,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,sBAAsB,CACtC,IAAI,CAAC,IAAmB,EACxB,kBAAkB,CACnB,CAAC;QAEF,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,8BAA8B,CAAC;QACxC,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC;QACpE,OAAO,+BAA+B,CAAC;IACzC,CAAC;IAED,iFAAiF;IACjF,IAAI,kBAAkB,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,CAAC;QACpD,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAc,EACd,IAAY;IAEZ,MAAM,
|
|
1
|
+
{"version":3,"file":"useValidateResultName.js","sourceRoot":"","sources":["../src/useValidateResultName.ts"],"names":[],"mappings":"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","sourcesContent":["import {convertToValidColumnOrTableName} from '@sqlrooms/utils';\nimport {useMemo} from 'react';\nimport {useCellsStore} from './hooks';\nimport type {Cell, SqlCellData} from './types';\nimport {getEffectiveResultName, isValidSqlIdentifier} from './utils';\n\nfunction escapeRegExp(s: string): string {\n return s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\n/**\n * Strips single-quoted SQL string literals from text so that identifier\n * checks don't produce false positives on quoted string content.\n * Handles escaped single-quotes inside literals (e.g. 'it''s fine').\n */\nfunction stripStringLiterals(sql: string): string {\n return sql.replace(/'(?:[^']|'')*'/g, \"''\");\n}\n\nfunction containsIdentifier(text: string, name: string): boolean {\n // The lookbehind includes '.' so that qualified names like `schema.my_result`\n // are NOT matched — we only want to detect unqualified references.\n // The lookahead intentionally omits '.' so that column-access expressions like\n // `my_result.column` ARE matched (they reference the `my_result` table).\n const pattern = new RegExp(\n `(?<![a-zA-Z0-9_.])${escapeRegExp(name)}(?![a-zA-Z0-9_])`,\n 'i',\n );\n return pattern.test(stripStringLiterals(text));\n}\n\n/**\n * Validates whether a proposed result name is available for a SQL cell.\n *\n * Returns a human-readable error message if the name is taken or would cause\n * problems, or `null` if the name is acceptable.\n *\n * Checks performed (in order):\n * 1. Basic validation (empty, valid SQL identifier)\n * 2. Not already used by another SQL cell in the same sheet (name collision).\n * 3. Not conflicting with a main-schema table name (would shadow real data).\n * 4. Not creating a self-reference cycle (SQL references the proposed name).\n */\nexport function validateResultName(opts: {\n proposedName: string;\n currentCellId: string;\n currentCellSql: string;\n sheetCellIds: string[];\n cells: Record<string, Cell>;\n mainSchemaTableNames: ReadonlyArray<string>;\n convertToValidName: (name: string) => string;\n}): string | null {\n const {\n proposedName,\n currentCellId,\n currentCellSql,\n sheetCellIds,\n cells,\n mainSchemaTableNames,\n convertToValidName,\n } = opts;\n\n const trimmedName = proposedName.trim();\n\n // 1. Basic validation first\n if (!trimmedName) {\n return 'Cannot be empty';\n }\n\n if (!isValidSqlIdentifier(trimmedName)) {\n return 'Must be a valid SQL identifier';\n }\n\n const nameLower = trimmedName.toLowerCase();\n\n // 2. Check for name collision with other SQL cells in the same sheet\n for (const cellId of sheetCellIds) {\n if (cellId === currentCellId) {\n continue;\n }\n\n const cell = cells[cellId];\n if (!cell || cell.type !== 'sql') {\n continue;\n }\n\n const otherName = getEffectiveResultName(\n cell.data as SqlCellData,\n convertToValidName,\n );\n\n if (otherName.toLowerCase() === nameLower) {\n return 'Already used by another cell';\n }\n }\n\n // 3. Check for conflict with main-schema table names\n if (mainSchemaTableNames.some((t) => t.toLowerCase() === nameLower)) {\n return 'Conflicts with existing table';\n }\n\n // 4. Check for self-reference cycle: the cell's SQL references the proposed name\n if (containsIdentifier(currentCellSql, trimmedName)) {\n return 'Name creates a dependency cycle';\n }\n\n return null;\n}\n\n/**\n * Hook to validate SQL cell result names.\n * Returns an error message if invalid, or null if valid.\n *\n * Performs all validation checks via validateResultName:\n * 1. Basic validation (empty, valid SQL identifier)\n * 2. Name collision with other cells\n * 3. Conflict with main-schema tables\n * 4. Self-reference cycle detection\n */\nexport function useValidateResultName(\n cellId: string,\n name: string,\n): string | null {\n const artifactId = useCellsStore((s) => s.cells.getArtifactIdForCell(cellId));\n const cellsData = useCellsStore((s) => s.cells.config.data);\n const artifacts = useCellsStore((s) => s.cells.config.artifacts);\n const tableSchemas = useCellsStore((s) => s.db.tables);\n\n const currentCell = cellsData[cellId];\n const currentCellSql =\n currentCell?.type === 'sql' ? currentCell.data.sql : '';\n\n const artifactCellIds = useMemo(\n () => (artifactId ? (artifacts[artifactId]?.cellIds ?? []) : []),\n [artifactId, artifacts],\n );\n\n const mainSchemaTableNames = useMemo(\n () =>\n tableSchemas\n .filter((t) => (t.table.schema ?? t.schema) === 'main')\n .map((t) => t.table.table ?? t.tableName),\n [tableSchemas],\n );\n\n return useMemo(() => {\n return validateResultName({\n proposedName: name,\n currentCellId: cellId,\n currentCellSql,\n sheetCellIds: artifactCellIds,\n cells: cellsData,\n mainSchemaTableNames,\n convertToValidName: convertToValidColumnOrTableName,\n });\n }, [\n name,\n cellId,\n currentCellSql,\n artifactCellIds,\n cellsData,\n mainSchemaTableNames,\n ]);\n}\n"]}
|
package/dist/utils.d.ts
CHANGED
|
@@ -11,9 +11,9 @@ export declare function isValidSqlIdentifier(name: string): boolean;
|
|
|
11
11
|
*/
|
|
12
12
|
export declare function getEffectiveResultName(data: SqlCellData, convertToValidName: (name: string) => string): string;
|
|
13
13
|
/**
|
|
14
|
-
* Generates a stable SQL schema name for
|
|
14
|
+
* Generates a stable SQL schema name for an artifact id.
|
|
15
15
|
*/
|
|
16
|
-
export declare function
|
|
16
|
+
export declare function getArtifactSchemaName(artifactId: string): string;
|
|
17
17
|
/**
|
|
18
18
|
* Extracts a preview from SQL query - first non-empty line and whether there are more lines.
|
|
19
19
|
* Returns empty firstLine if the SQL is empty or contains only whitespace.
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAEzC,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,KAAK,IAAI,CAAC,CAE7D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,WAAW,EACjB,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAC3C,MAAM,CAeR;AAED;;GAEG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAEzC,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,KAAK,IAAI,CAAC,CAE7D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,WAAW,EACjB,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAC3C,MAAM,CAeR;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;CACvB,CAaA"}
|
package/dist/utils.js
CHANGED
|
@@ -26,11 +26,11 @@ export function getEffectiveResultName(data, convertToValidName) {
|
|
|
26
26
|
return normalizedTitle;
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
|
-
* Generates a stable SQL schema name for
|
|
29
|
+
* Generates a stable SQL schema name for an artifact id.
|
|
30
30
|
*/
|
|
31
|
-
export function
|
|
32
|
-
const normalized =
|
|
33
|
-
return `
|
|
31
|
+
export function getArtifactSchemaName(artifactId) {
|
|
32
|
+
const normalized = artifactId.replace(/[^a-zA-Z0-9_]/g, '_').toLowerCase();
|
|
33
|
+
return `artifact_${normalized}`;
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* Extracts a preview from SQL query - first non-empty line and whether there are more lines.
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAI,KAAoB;IAC/C,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAiB,EACjB,kBAA4C;IAE5C,IAAI,IAAI,CAAC,UAAU,IAAI,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAErE,6DAA6D;IAC7D,sDAAsD;IACtD,MAAM,eAAe,GAAG,eAAe,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC7E,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IACxE,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAI,KAAoB;IAC/C,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAiB,EACjB,kBAA4C;IAE5C,IAAI,IAAI,CAAC,UAAU,IAAI,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAErE,6DAA6D;IAC7D,sDAAsD;IACtD,MAAM,eAAe,GAAG,eAAe,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC7E,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IACxE,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3E,OAAO,YAAY,UAAU,EAAE,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAI5C,MAAM,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG;SAC7B,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAExC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAC,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAC,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,SAAS;QACT,YAAY,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC;KAC9B,CAAC;AACJ,CAAC","sourcesContent":["import type {SqlCellData} from './types';\n\nexport function isDefined<T>(value: T | undefined): value is T {\n return value !== undefined;\n}\n\n/**\n * Validates that a string is a valid SQL identifier.\n * Must start with a letter or underscore, followed by letters, digits, or underscores.\n */\nexport function isValidSqlIdentifier(name: string): boolean {\n return /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(name);\n}\n\n/**\n * Gets the effective result name for a SQL cell.\n * Returns explicit resultName if valid, otherwise auto-generates from title.\n */\nexport function getEffectiveResultName(\n data: SqlCellData,\n convertToValidName: (name: string) => string,\n): string {\n if (data.resultName && isValidSqlIdentifier(data.resultName)) {\n return data.resultName;\n }\n\n const normalizedTitle = convertToValidName(data.title).toLowerCase();\n\n // Keep SQL default titles mapped to a neutral result_* name:\n // \"SQL 1\" -> \"result_1\", \"SQL Query 2\" -> \"result_2\".\n const sqlDefaultMatch = normalizedTitle.match(/^sql(?:_query)?(?:_(\\d+))?$/);\n if (sqlDefaultMatch) {\n return sqlDefaultMatch[1] ? `result_${sqlDefaultMatch[1]}` : 'result';\n }\n\n return normalizedTitle;\n}\n\n/**\n * Generates a stable SQL schema name for an artifact id.\n */\nexport function getArtifactSchemaName(artifactId: string): string {\n const normalized = artifactId.replace(/[^a-zA-Z0-9_]/g, '_').toLowerCase();\n return `artifact_${normalized}`;\n}\n\n/**\n * Extracts a preview from SQL query - first non-empty line and whether there are more lines.\n * Returns empty firstLine if the SQL is empty or contains only whitespace.\n */\nexport function getSqlQueryPreview(sql: string): {\n firstLine: string;\n hasMoreLines: boolean;\n} {\n const [firstLine, ...rest] = sql\n .split('\\n')\n .filter((line) => line.trim() !== '');\n\n if (!firstLine) {\n return {firstLine: '', hasMoreLines: false};\n }\n\n return {\n firstLine,\n hasMoreLines: rest.length > 0,\n };\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sqlrooms/cells",
|
|
3
|
-
"version": "0.29.0-rc.
|
|
3
|
+
"version": "0.29.0-rc.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -26,14 +26,14 @@
|
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@paralleldrive/cuid2": "^2.2.2",
|
|
29
|
-
"@sqlrooms/data-table": "0.29.0-rc.
|
|
30
|
-
"@sqlrooms/db": "0.29.0-rc.
|
|
31
|
-
"@sqlrooms/duckdb": "0.29.0-rc.
|
|
32
|
-
"@sqlrooms/room-store": "0.29.0-rc.
|
|
33
|
-
"@sqlrooms/sql-editor": "0.29.0-rc.
|
|
34
|
-
"@sqlrooms/ui": "0.29.0-rc.
|
|
35
|
-
"@sqlrooms/utils": "0.29.0-rc.
|
|
36
|
-
"@sqlrooms/vega": "0.29.0-rc.
|
|
29
|
+
"@sqlrooms/data-table": "0.29.0-rc.3",
|
|
30
|
+
"@sqlrooms/db": "0.29.0-rc.3",
|
|
31
|
+
"@sqlrooms/duckdb": "0.29.0-rc.3",
|
|
32
|
+
"@sqlrooms/room-store": "0.29.0-rc.3",
|
|
33
|
+
"@sqlrooms/sql-editor": "0.29.0-rc.3",
|
|
34
|
+
"@sqlrooms/ui": "0.29.0-rc.3",
|
|
35
|
+
"@sqlrooms/utils": "0.29.0-rc.3",
|
|
36
|
+
"@sqlrooms/vega": "0.29.0-rc.3",
|
|
37
37
|
"@tanstack/react-table": "^8.21.3",
|
|
38
38
|
"apache-arrow": "17.0.0",
|
|
39
39
|
"immer": "^11.0.1",
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
"react": "^18 || ^19",
|
|
53
53
|
"react-dom": "^18 || ^19"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "4ffaf6c31d41c27f96bd3e4f5e83d431968721c3"
|
|
56
56
|
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export type DeleteSheetModalProps = {
|
|
3
|
-
isOpen: boolean;
|
|
4
|
-
onClose: () => void;
|
|
5
|
-
onConfirm: () => void;
|
|
6
|
-
sheetTitle?: string;
|
|
7
|
-
};
|
|
8
|
-
export declare const DeleteSheetModal: React.FC<DeleteSheetModalProps>;
|
|
9
|
-
//# sourceMappingURL=DeleteSheetModal.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DeleteSheetModal.d.ts","sourceRoot":"","sources":["../../src/components/DeleteSheetModal.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA2B5D,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Button, } from '@sqlrooms/ui';
|
|
3
|
-
export const DeleteSheetModal = ({ isOpen, onClose, onConfirm, sheetTitle, }) => {
|
|
4
|
-
return (_jsx(Dialog, { open: isOpen, onOpenChange: (open) => !open && onClose(), children: _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsxs(DialogTitle, { children: ["Delete ", sheetTitle || 'Sheet'] }), _jsx(DialogDescription, { children: "Are you sure you want to delete this sheet? This action cannot be undone." })] }), _jsxs(DialogFooter, { children: [_jsx(Button, { variant: "outline", onClick: onClose, children: "Cancel" }), _jsx(Button, { variant: "destructive", onClick: onConfirm, children: "Delete" })] })] }) }));
|
|
5
|
-
};
|
|
6
|
-
//# sourceMappingURL=DeleteSheetModal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DeleteSheetModal.js","sourceRoot":"","sources":["../../src/components/DeleteSheetModal.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,MAAM,GACP,MAAM,cAAc,CAAC;AAUtB,MAAM,CAAC,MAAM,gBAAgB,GAAoC,CAAC,EAChE,MAAM,EACN,OAAO,EACP,SAAS,EACT,UAAU,GACX,EAAE,EAAE;IACH,OAAO,CACL,KAAC,MAAM,IAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,OAAO,EAAE,YAC9D,MAAC,aAAa,eACZ,MAAC,YAAY,eACX,MAAC,WAAW,0BAAS,UAAU,IAAI,OAAO,IAAe,EACzD,KAAC,iBAAiB,4FAGE,IACP,EACf,MAAC,YAAY,eACX,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,OAAO,uBAEjC,EACT,KAAC,MAAM,IAAC,OAAO,EAAC,aAAa,EAAC,OAAO,EAAE,SAAS,uBAEvC,IACI,IACD,GACT,CACV,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n Button,\n} from '@sqlrooms/ui';\nimport React from 'react';\n\nexport type DeleteSheetModalProps = {\n isOpen: boolean;\n onClose: () => void;\n onConfirm: () => void;\n sheetTitle?: string;\n};\n\nexport const DeleteSheetModal: React.FC<DeleteSheetModalProps> = ({\n isOpen,\n onClose,\n onConfirm,\n sheetTitle,\n}) => {\n return (\n <Dialog open={isOpen} onOpenChange={(open) => !open && onClose()}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Delete {sheetTitle || 'Sheet'}</DialogTitle>\n <DialogDescription>\n Are you sure you want to delete this sheet? This action cannot be\n undone.\n </DialogDescription>\n </DialogHeader>\n <DialogFooter>\n <Button variant=\"outline\" onClick={onClose}>\n Cancel\n </Button>\n <Button variant=\"destructive\" onClick={onConfirm}>\n Delete\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SheetsTabBar.d.ts","sourceRoot":"","sources":["../../src/components/SheetsTabBar.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAK5D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AASF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAmIpD,CAAC"}
|