@morlay/session-rdb 0.0.18 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/artifact.d.mts +1 -1
  2. package/dist/artifact.mjs +1 -1
  3. package/dist/{import-DZIAjOUr.mjs → branch-Co6xlbi0.mjs} +1 -186
  4. package/dist/import.d.mts +3 -2
  5. package/dist/import.mjs +197 -1
  6. package/dist/{index-BEKoV1Uy.d.mts → index-D55G9n4k.d.mts} +4 -3
  7. package/dist/index.d.mts +2 -2
  8. package/dist/index.mjs +94 -39
  9. package/dist/{magic-string.es-BWtG0AyA.mjs → magic-string.es-BgJoa-3K.mjs} +2 -2
  10. package/dist/{schema-Bo6Hy5gW.d.mts → schema-BkQN5GyT.d.mts} +36 -47
  11. package/dist/{sqlite-BIPdMNQb.mjs → sqlite-DYExtbLo.mjs} +27 -6
  12. package/dist/storage.d.mts +1 -1
  13. package/dist/storage.mjs +1 -1
  14. package/dist/testing.d.mts +2 -1
  15. package/dist/testing.mjs +22 -21
  16. package/drizzle/postgres/20260910120001_v3_storage_tables/snapshot.json +25 -78
  17. package/drizzle/postgres/20260910130001_v3_session_title_backfill/snapshot.json +25 -78
  18. package/drizzle/sqlite/20260910120000_v3_storage_tables/snapshot.json +25 -78
  19. package/drizzle/sqlite/20260910130000_v3_session_title_backfill/snapshot.json +25 -78
  20. package/package.json +4 -3
  21. package/src/entities/v3/workspace-state.ts +1 -1
  22. package/src/import-storages.ts +8 -3
  23. package/src/import.ts +41 -4
  24. package/src/index.ts +10 -2
  25. package/src/postgres.ts +15 -9
  26. package/src/session-query.ts +27 -0
  27. package/src/storage-takeover/index.ts +8 -8
  28. package/src/storage-takeover/projection-cache.ts +50 -24
  29. package/src/storage-takeover/repository.ts +66 -20
  30. package/src/storage-takeover/storage-backend.ts +65 -21
  31. package/src/storage-takeover/types.ts +11 -3
  32. package/src/testing.ts +3 -0
@@ -1,3 +1,4 @@
1
+ import { c as truncateLiveSession } from "./index-D55G9n4k.mjs";
1
2
  import { SessionPersistence } from "@deepseek-ai/dsh-session-persistence";
2
3
  import { Session, SessionEvent, SessionHeader, SessionId } from "@deepseek-ai/dsh-session";
3
4
  import { Context, Fiber } from "@deepseek-ai/cordis";
@@ -57,4 +58,4 @@ interface CoordinatorFixture {
57
58
  */
58
59
  declare function runCoordinatorContract(name: string, makeFixture: () => Promise<CoordinatorFixture>): void;
59
60
  //#endregion
60
- export { type ContractBackend, type CoordinatorFixture, EmptySettings, appendLog, meta, oneTurnLog, runCoordinatorContract, runPersistenceContract };
61
+ export { type ContractBackend, type CoordinatorFixture, EmptySettings, appendLog, meta, oneTurnLog, runCoordinatorContract, runPersistenceContract, truncateLiveSession };
package/dist/testing.mjs CHANGED
@@ -1,3 +1,4 @@
1
+ import { a as truncateLiveSession } from "./branch-Co6xlbi0.mjs";
1
2
  import { SessionAlreadyExistsError, SessionAlreadyOwnedError, SessionFormatUnsupportedError, SessionHandleClosedError, SessionPersistenceNotFoundError, SessionReadOnlyError } from "@deepseek-ai/dsh-session-persistence";
2
3
  import SessionStore, { SESSION_FORMAT_VERSION, SessionId, SessionLogOffset, SessionSeq } from "@deepseek-ai/dsh-session";
3
4
  import { Context } from "@deepseek-ai/cordis";
@@ -19,7 +20,7 @@ var EmptySettings = class extends SettingsProvider {
19
20
  }
20
21
  };
21
22
  //#endregion
22
- //#region ../../node_modules/.pnpm/tinyrainbow@3.1.1/node_modules/tinyrainbow/dist/index.js
23
+ //#region ../../../node_modules/.pnpm/tinyrainbow@3.1.1/node_modules/tinyrainbow/dist/index.js
23
24
  var b = {
24
25
  reset: [0, 0],
25
26
  bold: [
@@ -102,7 +103,7 @@ function C({ force: e } = {}) {
102
103
  }
103
104
  var y = C();
104
105
  //#endregion
105
- //#region ../../node_modules/.pnpm/@vitest+pretty-format@4.1.11/node_modules/@vitest/pretty-format/dist/index.js
106
+ //#region ../../../node_modules/.pnpm/@vitest+pretty-format@4.1.11/node_modules/@vitest/pretty-format/dist/index.js
106
107
  function _mergeNamespaces(n, m) {
107
108
  m.forEach(function(e) {
108
109
  e && typeof e !== "string" && !Array.isArray(e) && Object.keys(e).forEach(function(k) {
@@ -985,7 +986,7 @@ const plugins = {
985
986
  Error: ErrorPlugin
986
987
  };
987
988
  //#endregion
988
- //#region ../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/display.js
989
+ //#region ../../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/display.js
989
990
  const ansiColors$1 = {
990
991
  bold: ["1", "22"],
991
992
  dim: ["2", "22"],
@@ -1541,7 +1542,7 @@ function objDisplay$1(obj, options = {}) {
1541
1542
  return str;
1542
1543
  }
1543
1544
  //#endregion
1544
- //#region ../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/helpers.js
1545
+ //#region ../../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/helpers.js
1545
1546
  /**
1546
1547
  * Get original stacktrace without source map support the most performant way.
1547
1548
  * - Create only 1 stack frame.
@@ -3030,7 +3031,7 @@ function getCommonAndChangedSubstrings(diffs, op, hasCommonDiff) {
3030
3031
  return diffs.reduce((reduced, diff) => reduced + (diff[0] === 0 ? diff[1] : diff[0] === op ? hasCommonDiff ? y.inverse(diff[1]) : diff[1] : ""), "");
3031
3032
  }
3032
3033
  //#endregion
3033
- //#region ../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/serialize.js
3034
+ //#region ../../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/serialize.js
3034
3035
  const IS_RECORD_SYMBOL$1 = "@@__IMMUTABLE_RECORD__@@";
3035
3036
  const IS_COLLECTION_SYMBOL = "@@__IMMUTABLE_ITERABLE__@@";
3036
3037
  function isImmutable(v) {
@@ -3104,7 +3105,7 @@ function normalizeErrorMessage(message) {
3104
3105
  return message.replace(/\(0\s?,\s?__vite_ssr_import_\d+__.(\w+)\)/g, "$1").replace(/__(vite_ssr_import|vi_import)_\d+__\./g, "").replace(/getByTestId('__vitest_\d+__')/g, "page");
3105
3106
  }
3106
3107
  //#endregion
3107
- //#region ../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/error.js
3108
+ //#region ../../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/error.js
3108
3109
  function processError(_err, diffOptions, seen = /* @__PURE__ */ new WeakSet()) {
3109
3110
  if (!_err || typeof _err !== "object") return { message: String(_err) };
3110
3111
  const err = _err;
@@ -3134,7 +3135,7 @@ function prettifyValue(value, options) {
3134
3135
  return value;
3135
3136
  }
3136
3137
  //#endregion
3137
- //#region ../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/timers.js
3138
+ //#region ../../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/timers.js
3138
3139
  const SAFE_TIMERS_SYMBOL = Symbol("vitest:SAFE_TIMERS");
3139
3140
  function getSafeTimers() {
3140
3141
  const { setTimeout: safeSetTimeout, setInterval: safeSetInterval, clearInterval: safeClearInterval, clearTimeout: safeClearTimeout, setImmediate: safeSetImmediate, clearImmediate: safeClearImmediate, queueMicrotask: safeQueueMicrotask } = globalThis[SAFE_TIMERS_SYMBOL] || globalThis;
@@ -3168,7 +3169,7 @@ function delay(timeout, scheduler = setTimeout) {
3168
3169
  return new Promise((resolve) => scheduler(resolve, timeout));
3169
3170
  }
3170
3171
  //#endregion
3171
- //#region ../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/chunk-pathe.M-eThtNZ.js
3172
+ //#region ../../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/chunk-pathe.M-eThtNZ.js
3172
3173
  const _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
3173
3174
  function normalizeWindowsPath(input = "") {
3174
3175
  if (!input) return input;
@@ -3247,7 +3248,7 @@ const isAbsolute = function(p) {
3247
3248
  return _IS_ABSOLUTE_RE.test(p);
3248
3249
  };
3249
3250
  //#endregion
3250
- //#region ../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/source-map.js
3251
+ //#region ../../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/source-map.js
3251
3252
  var comma = ",".charCodeAt(0);
3252
3253
  var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
3253
3254
  var intToChar = /* @__PURE__ */ new Uint8Array(64);
@@ -3615,7 +3616,7 @@ function getOriginalPosition(map, needle) {
3615
3616
  return result;
3616
3617
  }
3617
3618
  //#endregion
3618
- //#region ../../node_modules/.pnpm/@vitest+runner@4.1.11/node_modules/@vitest/runner/dist/chunk-artifact.js
3619
+ //#region ../../../node_modules/.pnpm/@vitest+runner@4.1.11/node_modules/@vitest/runner/dist/chunk-artifact.js
3619
3620
  var PendingError = class extends Error {
3620
3621
  code = "VITEST_PENDING";
3621
3622
  taskId;
@@ -5116,7 +5117,7 @@ function manageArtifactAttachment(attachment) {
5116
5117
  if (attachment.body != null) attachment.bodyEncoding ??= "base64";
5117
5118
  }
5118
5119
  //#endregion
5119
- //#region ../../node_modules/.pnpm/vitest@4.1.11_@opentelemetry+api@1.9.1_@types+node@26.5.1_happy-dom@20.14.3_vite@8.2.2__e05875f349154650201ff2ddb1226938/node_modules/vitest/dist/chunks/utils.BX5Fg8C4.js
5120
+ //#region ../../../node_modules/.pnpm/vitest@4.1.11_@opentelemetry+api@1.9.1_@types+node@26.5.1_happy-dom@20.14.5_vite@8.3.0__92c0f6eceeda0310e820829bd463d84c/node_modules/vitest/dist/chunks/utils.BX5Fg8C4.js
5120
5121
  const NAME_WORKER_STATE = "__vitest_worker__";
5121
5122
  function getWorkerState() {
5122
5123
  const workerState = globalThis[NAME_WORKER_STATE];
@@ -5156,7 +5157,7 @@ async function waitForImportsToResolve() {
5156
5157
  await waitForImportsToResolve();
5157
5158
  }
5158
5159
  //#endregion
5159
- //#region ../../node_modules/.pnpm/@vitest+spy@4.1.11/node_modules/@vitest/spy/dist/index.js
5160
+ //#region ../../../node_modules/.pnpm/@vitest+spy@4.1.11/node_modules/@vitest/spy/dist/index.js
5160
5161
  function isMockFunction(fn) {
5161
5162
  return typeof fn === "function" && "_isMockFunction" in fn && fn._isMockFunction === true;
5162
5163
  }
@@ -5539,7 +5540,7 @@ function throwConstructorError(shorthand) {
5539
5540
  throw new TypeError(`Cannot use \`${shorthand}\` when called with \`new\`. Use \`mockImplementation\` with a \`class\` keyword instead. See https://vitest.dev/api/mock#class-support for more information.`);
5540
5541
  }
5541
5542
  //#endregion
5542
- //#region ../../node_modules/.pnpm/chai@6.2.2/node_modules/chai/index.js
5543
+ //#region ../../../node_modules/.pnpm/chai@6.2.2/node_modules/chai/index.js
5543
5544
  var __defProp = Object.defineProperty;
5544
5545
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
5545
5546
  enumerable: true,
@@ -8519,7 +8520,7 @@ function use(fn) {
8519
8520
  }
8520
8521
  __name(use, "use");
8521
8522
  //#endregion
8522
- //#region ../../node_modules/.pnpm/@vitest+expect@4.1.11/node_modules/@vitest/expect/dist/index.js
8523
+ //#region ../../../node_modules/.pnpm/@vitest+expect@4.1.11/node_modules/@vitest/expect/dist/index.js
8523
8524
  const ChaiStyleAssertions = (chai, utils) => {
8524
8525
  function defProperty(name, delegateTo) {
8525
8526
  utils.addProperty(chai.Assertion.prototype, name, function() {
@@ -9995,7 +9996,7 @@ const JestExtend = (chai, utils) => {
9995
9996
  });
9996
9997
  };
9997
9998
  //#endregion
9998
- //#region ../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/offset.js
9999
+ //#region ../../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/offset.js
9999
10000
  const lineSplitRE = /\r?\n/;
10000
10001
  function positionToOffset(source, lineNumber, columnNumber) {
10001
10002
  const lines = source.split(lineSplitRE);
@@ -10019,10 +10020,10 @@ function offsetToLineNumber(source, offset) {
10019
10020
  return line + 1;
10020
10021
  }
10021
10022
  //#endregion
10022
- //#region ../../node_modules/.pnpm/vitest@4.1.11_@opentelemetry+api@1.9.1_@types+node@26.5.1_happy-dom@20.14.3_vite@8.2.2__e05875f349154650201ff2ddb1226938/node_modules/vitest/dist/chunks/_commonjsHelpers.D26ty3Ew.js
10023
+ //#region ../../../node_modules/.pnpm/vitest@4.1.11_@opentelemetry+api@1.9.1_@types+node@26.5.1_happy-dom@20.14.5_vite@8.3.0__92c0f6eceeda0310e820829bd463d84c/node_modules/vitest/dist/chunks/_commonjsHelpers.D26ty3Ew.js
10023
10024
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
10024
10025
  //#endregion
10025
- //#region ../../node_modules/.pnpm/vitest@4.1.11_@opentelemetry+api@1.9.1_@types+node@26.5.1_happy-dom@20.14.3_vite@8.2.2__e05875f349154650201ff2ddb1226938/node_modules/vitest/dist/chunks/rpc.MzXet3jl.js
10026
+ //#region ../../../node_modules/.pnpm/vitest@4.1.11_@opentelemetry+api@1.9.1_@types+node@26.5.1_happy-dom@20.14.5_vite@8.3.0__92c0f6eceeda0310e820829bd463d84c/node_modules/vitest/dist/chunks/rpc.MzXet3jl.js
10026
10027
  const RealDate = Date;
10027
10028
  let now = null;
10028
10029
  var MockDate = class MockDate extends RealDate {
@@ -10070,7 +10071,7 @@ function resetDate() {
10070
10071
  }
10071
10072
  const { get } = Reflect;
10072
10073
  //#endregion
10073
- //#region ../../node_modules/.pnpm/@vitest+snapshot@4.1.11/node_modules/@vitest/snapshot/dist/index.js
10074
+ //#region ../../../node_modules/.pnpm/@vitest+snapshot@4.1.11/node_modules/@vitest/snapshot/dist/index.js
10074
10075
  function getDefaultExportFromCjs(x) {
10075
10076
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
10076
10077
  }
@@ -10276,7 +10277,7 @@ function memo(fn) {
10276
10277
  };
10277
10278
  }
10278
10279
  async function saveInlineSnapshots(environment, snapshots) {
10279
- const MagicString = (await import("./magic-string.es-BWtG0AyA.mjs")).default;
10280
+ const MagicString = (await import("./magic-string.es-BgJoa-3K.mjs")).default;
10280
10281
  const files = new Set(snapshots.map((i) => i.file));
10281
10282
  await Promise.all(Array.from(files).map(async (file) => {
10282
10283
  const snaps = snapshots.filter((i) => i.file === file);
@@ -10987,7 +10988,7 @@ function raceWith(promise, other) {
10987
10988
  }))]);
10988
10989
  }
10989
10990
  //#endregion
10990
- //#region ../../node_modules/.pnpm/vitest@4.1.11_@opentelemetry+api@1.9.1_@types+node@26.5.1_happy-dom@20.14.3_vite@8.2.2__e05875f349154650201ff2ddb1226938/node_modules/vitest/dist/chunks/test.DNmyFkvJ.js
10991
+ //#region ../../../node_modules/.pnpm/vitest@4.1.11_@opentelemetry+api@1.9.1_@types+node@26.5.1_happy-dom@20.14.5_vite@8.3.0__92c0f6eceeda0310e820829bd463d84c/node_modules/vitest/dist/chunks/test.DNmyFkvJ.js
10991
10992
  var fakeTimersSrc = {};
10992
10993
  var global$1;
10993
10994
  var hasRequiredGlobal;
@@ -14733,4 +14734,4 @@ function runCoordinatorContract(name, makeFixture) {
14733
14734
  });
14734
14735
  }
14735
14736
  //#endregion
14736
- export { EmptySettings, appendLog, meta, oneTurnLog, runCoordinatorContract, runPersistenceContract };
14737
+ export { EmptySettings, appendLog, meta, oneTurnLog, runCoordinatorContract, runPersistenceContract, truncateLiveSession };
@@ -2,9 +2,7 @@
2
2
  "version": "8",
3
3
  "dialect": "postgres",
4
4
  "id": "8a51a71d-ed27-4028-be4d-2f9a0434b6a4",
5
- "prevIds": [
6
- "d4f668b2-5d9b-4755-8dba-5ab2c30cf372"
7
- ],
5
+ "prevIds": ["d4f668b2-5d9b-4755-8dba-5ab2c30cf372"],
8
6
  "ddl": [
9
7
  {
10
8
  "isRlsEnabled": false,
@@ -572,14 +570,10 @@
572
570
  },
573
571
  {
574
572
  "nameExplicit": false,
575
- "columns": [
576
- "f_session_id"
577
- ],
573
+ "columns": ["f_session_id"],
578
574
  "schemaTo": "public",
579
575
  "tableTo": "t_sessions",
580
- "columnsTo": [
581
- "f_session_id"
582
- ],
576
+ "columnsTo": ["f_session_id"],
583
577
  "onUpdate": "NO ACTION",
584
578
  "onDelete": "CASCADE",
585
579
  "name": "t_session_events_f_session_id_t_sessions_f_session_id_fkey",
@@ -589,14 +583,10 @@
589
583
  },
590
584
  {
591
585
  "nameExplicit": false,
592
- "columns": [
593
- "f_event_id"
594
- ],
586
+ "columns": ["f_event_id"],
595
587
  "schemaTo": "public",
596
588
  "tableTo": "t_events",
597
- "columnsTo": [
598
- "f_event_id"
599
- ],
589
+ "columnsTo": ["f_event_id"],
600
590
  "onUpdate": "NO ACTION",
601
591
  "onDelete": "CASCADE",
602
592
  "name": "t_session_events_f_event_id_t_events_f_event_id_fkey",
@@ -605,9 +595,7 @@
605
595
  "table": "t_session_events"
606
596
  },
607
597
  {
608
- "columns": [
609
- "f_id"
610
- ],
598
+ "columns": ["f_id"],
611
599
  "nameExplicit": false,
612
600
  "name": "t_events_pkey",
613
601
  "schema": "public",
@@ -615,9 +603,7 @@
615
603
  "entityType": "pks"
616
604
  },
617
605
  {
618
- "columns": [
619
- "f_singleton"
620
- ],
606
+ "columns": ["f_singleton"],
621
607
  "nameExplicit": false,
622
608
  "name": "t_persistence_state_pkey",
623
609
  "schema": "public",
@@ -625,9 +611,7 @@
625
611
  "entityType": "pks"
626
612
  },
627
613
  {
628
- "columns": [
629
- "f_key"
630
- ],
614
+ "columns": ["f_key"],
631
615
  "nameExplicit": false,
632
616
  "name": "t_schema_meta_pkey",
633
617
  "schema": "public",
@@ -635,9 +619,7 @@
635
619
  "entityType": "pks"
636
620
  },
637
621
  {
638
- "columns": [
639
- "f_id"
640
- ],
622
+ "columns": ["f_id"],
641
623
  "nameExplicit": false,
642
624
  "name": "t_session_events_pkey",
643
625
  "schema": "public",
@@ -645,9 +627,7 @@
645
627
  "entityType": "pks"
646
628
  },
647
629
  {
648
- "columns": [
649
- "f_id"
650
- ],
630
+ "columns": ["f_id"],
651
631
  "nameExplicit": false,
652
632
  "name": "t_sessions_pkey",
653
633
  "schema": "public",
@@ -656,10 +636,7 @@
656
636
  },
657
637
  {
658
638
  "nameExplicit": true,
659
- "columns": [
660
- "f_session_id",
661
- "f_sequence"
662
- ],
639
+ "columns": ["f_session_id", "f_sequence"],
663
640
  "nullsNotDistinct": false,
664
641
  "name": "uq_session_events_session_sequence",
665
642
  "entityType": "uniques",
@@ -668,9 +645,7 @@
668
645
  },
669
646
  {
670
647
  "nameExplicit": false,
671
- "columns": [
672
- "f_event_id"
673
- ],
648
+ "columns": ["f_event_id"],
674
649
  "nullsNotDistinct": false,
675
650
  "name": "t_events_f_event_id_key",
676
651
  "schema": "public",
@@ -679,9 +654,7 @@
679
654
  },
680
655
  {
681
656
  "nameExplicit": false,
682
- "columns": [
683
- "f_session_id"
684
- ],
657
+ "columns": ["f_session_id"],
685
658
  "nullsNotDistinct": false,
686
659
  "name": "t_sessions_f_session_id_key",
687
660
  "schema": "public",
@@ -1064,9 +1037,7 @@
1064
1037
  "table": "t_workspace_sessions"
1065
1038
  },
1066
1039
  {
1067
- "columns": [
1068
- "f_id"
1069
- ],
1040
+ "columns": ["f_id"],
1070
1041
  "nameExplicit": false,
1071
1042
  "name": "t_session_projcache_row_pkey",
1072
1043
  "schema": "public",
@@ -1074,9 +1045,7 @@
1074
1045
  "entityType": "pks"
1075
1046
  },
1076
1047
  {
1077
- "columns": [
1078
- "f_name"
1079
- ],
1048
+ "columns": ["f_name"],
1080
1049
  "nameExplicit": false,
1081
1050
  "name": "t_storage_units_pkey",
1082
1051
  "schema": "public",
@@ -1084,9 +1053,7 @@
1084
1053
  "entityType": "pks"
1085
1054
  },
1086
1055
  {
1087
- "columns": [
1088
- "f_singleton"
1089
- ],
1056
+ "columns": ["f_singleton"],
1090
1057
  "nameExplicit": false,
1091
1058
  "name": "t_workspace_state_pkey",
1092
1059
  "schema": "public",
@@ -1094,9 +1061,7 @@
1094
1061
  "entityType": "pks"
1095
1062
  },
1096
1063
  {
1097
- "columns": [
1098
- "f_id"
1099
- ],
1064
+ "columns": ["f_id"],
1100
1065
  "nameExplicit": false,
1101
1066
  "name": "t_workspaces_pkey",
1102
1067
  "schema": "public",
@@ -1104,9 +1069,7 @@
1104
1069
  "entityType": "pks"
1105
1070
  },
1106
1071
  {
1107
- "columns": [
1108
- "f_id"
1109
- ],
1072
+ "columns": ["f_id"],
1110
1073
  "nameExplicit": false,
1111
1074
  "name": "t_workspace_sessions_pkey",
1112
1075
  "schema": "public",
@@ -1114,10 +1077,7 @@
1114
1077
  "entityType": "pks"
1115
1078
  },
1116
1079
  {
1117
- "columns": [
1118
- "f_session_id",
1119
- "f_key"
1120
- ],
1080
+ "columns": ["f_session_id", "f_key"],
1121
1081
  "nameExplicit": true,
1122
1082
  "name": "uq_session_projcache_row_session_key",
1123
1083
  "entityType": "uniques",
@@ -1126,9 +1086,7 @@
1126
1086
  "schema": "public"
1127
1087
  },
1128
1088
  {
1129
- "columns": [
1130
- "f_workspace_id"
1131
- ],
1089
+ "columns": ["f_workspace_id"],
1132
1090
  "nameExplicit": false,
1133
1091
  "name": "t_workspaces_f_workspace_id_unique",
1134
1092
  "entityType": "uniques",
@@ -1137,10 +1095,7 @@
1137
1095
  "schema": "public"
1138
1096
  },
1139
1097
  {
1140
- "columns": [
1141
- "f_workspace_id",
1142
- "f_session_id"
1143
- ],
1098
+ "columns": ["f_workspace_id", "f_session_id"],
1144
1099
  "nameExplicit": true,
1145
1100
  "name": "uq_workspace_sessions_workspace_session",
1146
1101
  "entityType": "uniques",
@@ -1198,13 +1153,9 @@
1198
1153
  "schema": "public"
1199
1154
  },
1200
1155
  {
1201
- "columns": [
1202
- "f_session_id"
1203
- ],
1156
+ "columns": ["f_session_id"],
1204
1157
  "tableTo": "t_sessions",
1205
- "columnsTo": [
1206
- "f_session_id"
1207
- ],
1158
+ "columnsTo": ["f_session_id"],
1208
1159
  "onUpdate": "NO ACTION",
1209
1160
  "onDelete": "CASCADE",
1210
1161
  "nameExplicit": false,
@@ -1215,13 +1166,9 @@
1215
1166
  "schema": "public"
1216
1167
  },
1217
1168
  {
1218
- "columns": [
1219
- "f_workspace_id"
1220
- ],
1169
+ "columns": ["f_workspace_id"],
1221
1170
  "tableTo": "t_workspaces",
1222
- "columnsTo": [
1223
- "f_workspace_id"
1224
- ],
1171
+ "columnsTo": ["f_workspace_id"],
1225
1172
  "onUpdate": "NO ACTION",
1226
1173
  "onDelete": "CASCADE",
1227
1174
  "nameExplicit": false,